<?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>43005</bug_id>
          
          <creation_ts>2010-07-26 14:39:26 -0700</creation_ts>
          <short_desc>AX: Support methods for web apps to interact with the native accessibility APIs</short_desc>
          <delta_ts>2013-09-30 18:50:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>abarth</cc>
    
    <cc>bdakin</cc>
    
    <cc>ctguil</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>jcraig</cc>
    
    <cc>ossy</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>256249</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-26 14:39:26 -0700</bug_when>
    <thetext>With web apps becoming a popular option that can stand side-by-side with native apps, the need exists for web apps to be able to integrate with existing accessibility API more easily.

With that in mind, this patch extends Navigator to return an accessibility object. Within that is a screenReader object which can be queried.

Here is the initial API. Myself and members of the WAI-ARIA working group are working on a standard for this as well.


window.navigator.accessibility
… new accessibility object added as a property of window.navigator.

window.navigator.accessibility.screenChanged() 
… tells API entire screen has changed, update entire accessibility tree

window.navigator.accessibility.elementsChanged()
… tells API elements have changed and are finished changing for new (e.g. animation finished), assistive tech update any its interested in (like currently focused element)

window.navigator.accessibility.screenreader
… properties and methods specific to a screen reader. 

window.navigator.accessibility.screenreader.active
… true if the screen reader is running, false if not.

window.navigator.accessibility.screenreader.version
… string value similar to user agent string (e.g. &apos;Apple VoiceOver 3.0.1 (210.11)&apos; )

window.navigator.accessibility. screenreader.activeElement
… VO cursor equivalent of document.activeElement for native kb focus</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256252</commentid>
    <comment_count>1</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-26 14:42:38 -0700</bug_when>
    <thetext>this initial patch will fail on a lot of systems i imagine. will gather build output to fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256255</commentid>
    <comment_count>2</comment_count>
      <attachid>62612</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-26 14:45:35 -0700</bug_when>
    <thetext>Created attachment 62612
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257971</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-07-29 16:35:30 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created an attachment (id=62612) [details]
&gt; Patch

Are you waiting for build output for this, or is the patch ready for review?

It looks like the bots all failed to apply the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257972</commentid>
    <comment_count>4</comment_count>
      <attachid>62612</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-07-29 16:36:02 -0700</bug_when>
    <thetext>Comment on attachment 62612
Patch

r- to post another patch for the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257976</commentid>
    <comment_count>5</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-29 16:50:38 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; Created an attachment (id=62612) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; Are you waiting for build output for this, or is the patch ready for review?
&gt; 
&gt; It looks like the bots all failed to apply the patch.

patch is ready, but i suspect it won&apos;t work on every build. will try again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258240</commentid>
    <comment_count>6</comment_count>
      <attachid>63068</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-30 09:57:11 -0700</bug_when>
    <thetext>Created attachment 63068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258247</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-30 10:02:39 -0700</bug_when>
    <thetext>Attachment 63068 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/page/Navigator.h:30:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
WebCore/accessibility/AccessibilityAllInOne.cpp:29:  One or more unexpected \r (^M) found; better to use only a \n  [whitespace/carriage_return] [1]
Suppressing further [whitespace/carriage_return] reports for this file.
Total errors found: 3 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258249</commentid>
    <comment_count>8</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-07-30 10:06:39 -0700</bug_when>
    <thetext>Attachment 63068 did not build on qt:
Build output: http://queues.webkit.org/results/3610443</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258262</commentid>
    <comment_count>9</comment_count>
      <attachid>63074</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-30 10:17:28 -0700</bug_when>
    <thetext>Created attachment 63074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258265</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-30 10:18:26 -0700</bug_when>
    <thetext>Attachment 63074 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/page/Navigator.h:30:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
WebCore/accessibility/AccessibilityAllInOne.cpp:29:  One or more unexpected \r (^M) found; better to use only a \n  [whitespace/carriage_return] [1]
Suppressing further [whitespace/carriage_return] reports for this file.
Total errors found: 3 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258272</commentid>
    <comment_count>11</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-07-30 10:29:51 -0700</bug_when>
    <thetext>Attachment 63074 did not build on qt:
Build output: http://queues.webkit.org/results/3574705</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258285</commentid>
    <comment_count>12</comment_count>
      <attachid>63082</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-30 10:41:35 -0700</bug_when>
    <thetext>Created attachment 63082
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258288</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-30 10:43:37 -0700</bug_when>
    <thetext>Attachment 63082 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/DerivedSources.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/page/Navigator.h:30:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 2 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258289</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-30 10:45:49 -0700</bug_when>
    <thetext>Attachment 63068 did not build on chromium:
Build output: http://queues.webkit.org/results/3590631</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258295</commentid>
    <comment_count>15</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-07-30 10:59:44 -0700</bug_when>
    <thetext>Attachment 63082 did not build on qt:
Build output: http://queues.webkit.org/results/3633195</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258296</commentid>
    <comment_count>16</comment_count>
      <attachid>63086</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-30 11:04:13 -0700</bug_when>
    <thetext>Created attachment 63086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258300</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-30 11:10:02 -0700</bug_when>
    <thetext>Attachment 63086 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/DerivedSources.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/page/Navigator.h:30:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 2 in 27 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258301</commentid>
    <comment_count>18</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-07-30 11:11:54 -0700</bug_when>
    <thetext>Attachment 63086 did not build on qt:
Build output: http://queues.webkit.org/results/3580603</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258340</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-30 13:04:26 -0700</bug_when>
    <thetext>Attachment 63086 did not build on chromium:
Build output: http://queues.webkit.org/results/3590635</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258351</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-30 13:26:03 -0700</bug_when>
    <thetext>Attachment 63086 did not build on gtk:
Build output: http://queues.webkit.org/results/3573632</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258382</commentid>
    <comment_count>21</comment_count>
      <attachid>63101</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-30 14:25:59 -0700</bug_when>
    <thetext>Created attachment 63101
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258387</commentid>
    <comment_count>22</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-07-30 14:33:16 -0700</bug_when>
    <thetext>Attachment 63101 did not build on qt:
Build output: http://queues.webkit.org/results/3634161</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258388</commentid>
    <comment_count>23</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-30 14:34:19 -0700</bug_when>
    <thetext>Attachment 63101 did not build on mac:
Build output: http://queues.webkit.org/results/3561639</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258390</commentid>
    <comment_count>24</comment_count>
      <attachid>63102</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-30 14:36:43 -0700</bug_when>
    <thetext>Created attachment 63102
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258393</commentid>
    <comment_count>25</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-07-30 14:43:42 -0700</bug_when>
    <thetext>Attachment 63102 did not build on qt:
Build output: http://queues.webkit.org/results/3611423</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258396</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-30 14:44:05 -0700</bug_when>
    <thetext>Attachment 63101 did not build on chromium:
Build output: http://queues.webkit.org/results/3572654</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258400</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-30 14:45:26 -0700</bug_when>
    <thetext>Attachment 63101 did not build on gtk:
Build output: http://queues.webkit.org/results/3649049</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258405</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-30 15:00:00 -0700</bug_when>
    <thetext>Attachment 63102 did not build on chromium:
Build output: http://queues.webkit.org/results/3565734</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258408</commentid>
    <comment_count>29</comment_count>
      <attachid>63107</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-30 15:03:10 -0700</bug_when>
    <thetext>Created attachment 63107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258411</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-30 15:04:46 -0700</bug_when>
    <thetext>Attachment 63102 did not build on gtk:
Build output: http://queues.webkit.org/results/3577665</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258425</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-30 15:37:03 -0700</bug_when>
    <thetext>Attachment 63107 did not build on gtk:
Build output: http://queues.webkit.org/results/3640116</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258491</commentid>
    <comment_count>32</comment_count>
      <attachid>63129</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-30 17:12:35 -0700</bug_when>
    <thetext>Created attachment 63129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258528</commentid>
    <comment_count>33</comment_count>
      <attachid>63129</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-07-30 21:02:42 -0700</bug_when>
    <thetext>Comment on attachment 63129
Patch

WebCore/accessibility/Accessibility.cpp:13
 +   * 3.  Neither the name of Apple Computer, Inc. (&quot;Apple&quot;) nor the names of

This third clause is no longer in the current license (see WebCore/LICENSE-APPLE).  Please update the license on all of the new files.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258949</commentid>
    <comment_count>34</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-08-02 10:16:19 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/64471</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258969</commentid>
    <comment_count>35</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-02 10:41:49 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/64471 might have broken Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258970</commentid>
    <comment_count>36</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-08-02 10:43:04 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; http://trac.webkit.org/changeset/64471 might have broken Qt Linux Release

didn&apos;t break it but changed some layout test results. will update</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259002</commentid>
    <comment_count>37</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-08-02 11:20:45 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; (In reply to comment #35)
&gt; &gt; http://trac.webkit.org/changeset/64471 might have broken Qt Linux Release
&gt; 
&gt; didn&apos;t break it but changed some layout test results. will update

updated tests that would be changed by this change

http://trac.webkit.org/changeset/64478</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259015</commentid>
    <comment_count>38</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-08-02 11:45:14 -0700</bug_when>
    <thetext>(In reply to comment #37)
&gt; (In reply to comment #36)
&gt; &gt; (In reply to comment #35)
&gt; &gt; &gt; http://trac.webkit.org/changeset/64471 might have broken Qt Linux Release
&gt; &gt; 
&gt; &gt; didn&apos;t break it but changed some layout test results. will update
&gt; 
&gt; updated tests that would be changed by this change
&gt; 
&gt; http://trac.webkit.org/changeset/64478

QT is behaving wierdly. It&apos;s still failing

http://build.webkit.org/results/Qt%20Linux%20Release/r64480%20(16816)/results.html

but by all accounts it looks like it should have been fixed by

http://trac.webkit.org/changeset/64478. it would seem that that file was not updated?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259057</commentid>
    <comment_count>39</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-08-02 12:52:48 -0700</bug_when>
    <thetext>Qt has its own fast/dom/Window/window-properties-expected.txt expected file,
and was updated by http://trac.webkit.org/changeset/64486</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259164</commentid>
    <comment_count>40</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-02 15:53:44 -0700</bug_when>
    <thetext>Hi Chris,

Without a spec or conversation with the rest of the WebKit community, I don&apos;t think we should be landing this in the tree, especially without any #define guards around it.  Please revert this until there has been the appropriate discussion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259170</commentid>
    <comment_count>41</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-08-02 16:02:57 -0700</bug_when>
    <thetext>(In reply to comment #40)
&gt; Hi Chris,
&gt; 
&gt; Without a spec or conversation with the rest of the WebKit community, I don&apos;t think we should be landing this in the tree, especially without any #define guards around it.  Please revert this until there has been the appropriate discussion.

Sorry, I should have not given this an r+ without more discussion about the API.

It would be nice to have a basic outline for the WebKit API review process posted on webkit.org for future reference, even if it&apos;s just a list of mailing lists where you should send proposals for each standards body.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259215</commentid>
    <comment_count>42</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-08-02 17:30:44 -0700</bug_when>
    <thetext>Reverted r64486 for reason:

Rolling out https://bugs.webkit.org/show_bug.cgi?id=43005 until further discussion

Committed r64511: &lt;http://trac.webkit.org/changeset/64511&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259219</commentid>
    <comment_count>43</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-08-02 17:39:02 -0700</bug_when>
    <thetext>Reverted r64478 for reason:

Rolling out https://bugs.webkit.org/show_bug.cgi?id=43005 until further discussion

Committed r64512: &lt;http://trac.webkit.org/changeset/64512&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259222</commentid>
    <comment_count>44</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-02 17:49:10 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/64511 might have broken Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259223</commentid>
    <comment_count>45</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-08-02 17:50:02 -0700</bug_when>
    <thetext>(In reply to comment #44)
&gt; http://trac.webkit.org/changeset/64511 might have broken Qt Linux Release

I&apos;m rolling out all changes associated with this patch right now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259225</commentid>
    <comment_count>46</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-08-02 17:51:26 -0700</bug_when>
    <thetext>Reverted r64476 for reason:

Rolling out https://bugs.webkit.org/show_bug.cgi?id=43005 until further discussion

Committed r64514: &lt;http://trac.webkit.org/changeset/64514&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259229</commentid>
    <comment_count>47</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-08-02 17:57:36 -0700</bug_when>
    <thetext>Reverted r64472 for reason:

Rolling out https://bugs.webkit.org/show_bug.cgi?id=43005 until further discussion

Committed r64515: &lt;http://trac.webkit.org/changeset/64515&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259234</commentid>
    <comment_count>48</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-08-02 18:05:44 -0700</bug_when>
    <thetext>Reverted r64471 for reason:

Rolling out https://bugs.webkit.org/show_bug.cgi?id=43005 until further discussion

Committed r64517: &lt;http://trac.webkit.org/changeset/64517&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259241</commentid>
    <comment_count>49</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-02 18:25:10 -0700</bug_when>
    <thetext>Thanks Chris.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259389</commentid>
    <comment_count>50</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-03 05:32:04 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/64517 might have broken Leopard Intel Debug (Tests)
The following changes are on the blame list:
http://trac.webkit.org/changeset/64517
http://trac.webkit.org/changeset/64518
http://trac.webkit.org/changeset/64519
http://trac.webkit.org/changeset/64520
http://trac.webkit.org/changeset/64521
http://trac.webkit.org/changeset/64522
http://trac.webkit.org/changeset/64523
http://trac.webkit.org/changeset/64524
http://trac.webkit.org/changeset/64525
http://trac.webkit.org/changeset/64526
http://trac.webkit.org/changeset/64527</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263057</commentid>
    <comment_count>51</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-10 23:09:14 -0700</bug_when>
    <thetext>This bug is mysterious to me.  Does this patch need to be landed or do we want more review here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263071</commentid>
    <comment_count>52</comment_count>
      <attachid>63129</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-08-10 23:43:46 -0700</bug_when>
    <thetext>Comment on attachment 63129
Patch

Clearing r+ flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263306</commentid>
    <comment_count>53</comment_count>
      <attachid>63129</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-08-11 09:50:20 -0700</bug_when>
    <thetext>Comment on attachment 63129
Patch

going to hold off on this until we make a formal proposal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279720</commentid>
    <comment_count>54</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-09-15 14:25:10 -0700</bug_when>
    <thetext>we have made the proposal public for a number of weeks now. no major criticisms

http://lists.w3.org/Archives/Public/wai-xtech/2010Aug/att-0079/UserInterfaceIndependence.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279771</commentid>
    <comment_count>55</comment_count>
      <attachid>67731</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-09-15 15:35:11 -0700</bug_when>
    <thetext>Created attachment 67731
patch

This is the same patch that david kilzer reviewed before but also includes all the fixes i had made to get it to build on each platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279793</commentid>
    <comment_count>56</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-15 16:03:17 -0700</bug_when>
    <thetext>Attachment 67731 did not build on mac:
Build output: http://queues.webkit.org/results/4014022</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279796</commentid>
    <comment_count>57</comment_count>
      <attachid>67736</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-09-15 16:06:00 -0700</bug_when>
    <thetext>Created attachment 67736
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333375</commentid>
    <comment_count>58</comment_count>
      <attachid>67736</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-01-12 15:50:24 -0800</bug_when>
    <thetext>Comment on attachment 67736
patch

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

Seems reasonable.  Some nits below.

&gt; WebCore/accessibility/AXObjectCache.h:47
&gt; +#if PLATFORM(MAC)
&gt; +#define SUPPORTS_JSACCESSIBILITY 1
&gt; +#else
&gt; +#define SUPPORTS_JSACCESSIBILITY 0
&gt; +#endif

This isn&apos;t the way we usually enable features.  We usually use ENABLE macros?

&gt; WebCore/accessibility/Accessibility.cpp:60
&gt; +    Document* doc = m_frame-&gt;document();

Please use document as the variable name for the document.

&gt; WebCore/accessibility/Accessibility.cpp:62
&gt; +    if (!doc)
&gt; +        return;

m_frame-&gt;document() can never be null.

&gt; WebCore/accessibility/Accessibility.cpp:64
&gt; +    AccessibilityObject* root = doc-&gt;axObjectCache()-&gt;getOrCreate(doc-&gt;renderer());

Is there any chance of this code running JavaScript?  If so, we need to hold a reference to the document.

&gt; WebCore/accessibility/Accessibility.cpp:75
&gt; +    if (!doc)
&gt; +        return;

m_frame-&gt;document() can never be null.

&gt; WebCore/accessibility/Accessibility.idl:33
&gt; +

This line sounds extra.

&gt; WebCore/accessibility/ScreenReader.h:47
&gt; +private:

missing a newline above here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934863</commentid>
    <comment_count>59</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2013-09-30 17:46:38 -0700</bug_when>
    <thetext>Given that this section never made it into IndieUI, should we close this one as WONTFIX?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934869</commentid>
    <comment_count>60</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-09-30 18:01:50 -0700</bug_when>
    <thetext>(In reply to comment #59)
&gt; Given that this section never made it into IndieUI, should we close this one as WONTFIX?

Yes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934872</commentid>
    <comment_count>61</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2013-09-30 18:50:24 -0700</bug_when>
    <thetext>Closing</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62612</attachid>
            <date>2010-07-26 14:45:35 -0700</date>
            <delta_ts>2010-07-30 09:57:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43005-20100726144534.patch</filename>
            <type>text/plain</type>
            <size>36706</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDA3OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTYgQEAKKzIwMTAtMDctMjYgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBWDogU3VwcG9ydCBtZXRob2RzIGZvciB3ZWIgYXBwcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBu
YXRpdmUgYWNjZXNzaWJpbGl0eSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MzAwNQorCisgICAgICAgIEFkZHMgYSBuZXcgImFjY2Vzc2liaWxp
dHkiIG9iamVjdCB0aGF0IGhhbmdzIG9mZiBvZiAid2luZG93Lm5hdmlnYXRvciIuCisgICAgICAg
IFRoaXMgYWNjZXNzaWJpbGl0eSBvYmplY3Qgd2lsbCBhbGxvdyB3ZWIgYXBwcyB0byBpbnRlcmFj
dCB3aXRoIG5hdGl2ZSBhY2Nlc3NpYmlsaXR5IEFQSXMKKyAgICAgICAgdG8gcHJvdmlkZSBhIHJp
Y2hlciBleHBlcmllbmNlIChmb3Igc2NyZWVuIHJlYWRlciB1c2VycyBwcmltYXJpbHkpLgorCisg
ICAgICAgIFRlc3Q6IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHku
aHRtbAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjopOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eTo6QWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5Ojp+QWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5OjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eTo6c2NyZWVuQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjplbGVt
ZW50c0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6c2NyZWVuUmVh
ZGVyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjpjcmVhdGUpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eS5pZGw6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNTY3JlZW5SZWFkZXJSdW5uaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlckZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlclZlcnNpb24pOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTY3JlZW5SZWFkZXI6OlNjcmVlblJlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jl
ZW5SZWFkZXI6On5TY3JlZW5SZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVy
OjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVyOjphY3Rp
dmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVyOjphY3RpdmVFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmVlblJlYWRlcjo6dmVyc2lvbik6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9TY3JlZW5SZWFkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5S
ZWFkZXI6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNTY3JlZW5SZWFk
ZXJSdW5uaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVl
blJlYWRlckZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OnNjcmVlblJlYWRlclZlcnNpb24pOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvcjo6ZGlzY29ubmVjdEZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5hdmlnYXRvcjo6YWNjZXNzaWJpbGl0eSk6CisgICAgICAgICogcGFnZS9O
YXZpZ2F0b3IuaDoKKyAgICAgICAgKiBwYWdlL05hdmlnYXRvci5pZGw6CisKIDIwMTAtMDctMjYg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpJbmRleDogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gNjQw
NTUpCisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDYgKzI4LDcgQEAKIAogVlBBVEggPSBcCiAgICAgJChXZWJDb3JlKSBcCisgICAgJChXZWJDb3Jl
KS9hY2Nlc3NpYmlsaXR5IFwKICAgICAkKFdlYkNvcmUpL2JpbmRpbmdzL2pzIFwKICAgICAkKFdl
YkNvcmUpL2JpbmRpbmdzL29iamMgXAogICAgICQoV2ViQ29yZSkvY3NzIFwKQEAgLTUwLDYgKzUx
LDcgQEAgVlBBVEggPSBcCiBET01fQ0xBU1NFUyA9IFwKICAgICBBYnN0cmFjdFZpZXcgXAogICAg
IEFic3RyYWN0V29ya2VyIFwKKyAgICBBY2Nlc3NpYmlsaXR5IFwKICAgICBBdHRyIFwKICAgICBC
YXJJbmZvIFwKICAgICBCZWZvcmVMb2FkRXZlbnQgXApAQCAtNDMxLDYgKzQzMyw3IEBAIERPTV9D
TEFTU0VTID0gXAogICAgIFNWR1pvb21BbmRQYW4gXAogICAgIFNWR1pvb21FdmVudCBcCiAgICAg
U2NyZWVuIFwKKyAgICBTY3JlZW5SZWFkZXIgXAogICAgIFN0eWxlTWVkaWEgXAogICAgIFN0eWxl
U2hlZXQgXAogICAgIFN0eWxlU2hlZXRMaXN0IFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA2NDA1NSkKKysrIFdlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02MTcsNiArNjE3
LDE0IEBACiAJCTI0RjU0RUFEMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlvbkNhY2hlSG9z
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjRGNTRF
QUIxMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJMjU0MkY0REExMTY2QzI1QTAwRTg5QTg2IC8q
IFVzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDI1NDJGNEQ4MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUlu
ZGljYXRvci5jcHAgKi87IH07CiAJCTI1NDJGNERCMTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2Vz
dHVyZUluZGljYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjU0MkY0RDkxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5kaWNhdG9yLmgg
Ki87IH07CisJCTI5NzQ0NjNEMTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjM3MTFG
RTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmNwcCAqLzsgfTsKKwkJMjk3NDQ2M0UxMUZF
MjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjM4MTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3Np
YmlsaXR5LmggKi87IH07CisJCTI5NzQ0NjQwMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFk
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3
NDQ2M0ExMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5jcHAgKi87IH07CisJCTI5NzQ0
NjQxMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjNCMTFGRTI1N0EwMDQ1MjNGOCAvKiBT
Y3JlZW5SZWFkZXIuaCAqLzsgfTsKKwkJMjk3NDQ2NkYxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNj
ZXNzaWJpbGl0eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyOTc0NDY2RDExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmNwcCAqLzsg
fTsKKwkJMjk3NDQ2NzAxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2NkUxMUZFMkIz
MjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5oICovOyB9OworCQkyOTc0NDY4RTExRkUyQkUx
MDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2OEMxMUZFMkJFMTAwNDUyM0Y4IC8qIEpTU2NyZWVu
UmVhZGVyLmNwcCAqLzsgfTsKKwkJMjk3NDQ2OEYxMUZFMkJFMTAwNDUyM0Y4IC8qIEpTU2NyZWVu
UmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
OTc0NDY4RDExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIuaCAqLzsgfTsKIAkJMjlB
ODEyMjYwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBODEyMDgwRkJC
OUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwICovOyB9OwogCQky
OUE4MTIyNzBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVRhYmxlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTgxMjA5MEZCQjlDMUQw
MDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGUuY3BwICovOyB9OwogCQkyOUE4MTIyODBGQkI5
QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTgxMjBBMEZCQjlDMUQwMDUxMDI5MyAv
KiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwICovOyB9OwpAQCAtNjMwNCw2ICs2MzEyLDE2IEBA
CiAJCTI0RjU0RUFCMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlvbkNhY2hlSG9zdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsaWNhdGlvbkNhY2hlSG9zdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNTQyRjREODExNjZDMjVBMDBFODlBODYgLyog
VXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyNTQyRjREOTExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlckdlc3R1cmVJbmRpY2F0b3IuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2MzcxMUZFMjU3QTAwNDUyM0Y4IC8q
IEFjY2Vzc2liaWxpdHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QWNjZXNzaWJpbGl0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjM4
MTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMjk3NDQ2MzkxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IEFjY2Vzc2liaWxpdHkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkyOTc0NDYzQTExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmVlblJlYWRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjNCMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3Jl
ZW5SZWFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyZWVuUmVhZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjNDMTFGRTI1N0EwMDQ1MjNG
OCAvKiBTY3JlZW5SZWFkZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcmVlblJlYWRl
ci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjZEMTFGRTJCMzIwMDQ1
MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNBY2Nlc3NpYmlsaXR5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMjk3NDQ2NkUxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FjY2Vzc2liaWxpdHkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2OEMxMUZFMkJFMTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVh
ZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2NyZWVuUmVh
ZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2OEQxMUZFMkJFMTAw
NDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTU2NyZWVuUmVhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QTgx
MjA4MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUE4MTIwOTBGQkI5QzFEMDA1
MTAyOTMgLyogQWNjZXNzaWJpbGl0eVRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlUYWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTI5QTgxMjBBMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdy
aWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0
eUFSSUFHcmlkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNTI4LDYgKzEx
NTQ2LDkgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMjlBODEy
MDUwRkJCOUI1MjAwNTEwMjkzIC8qIG1hYyAqLywKKwkJCQkyOTc0NDYzNzExRkUyNTdBMDA0NTIz
RjggLyogQWNjZXNzaWJpbGl0eS5jcHAgKi8sCisJCQkJMjk3NDQ2MzgxMUZFMjU3QTAwNDUyM0Y4
IC8qIEFjY2Vzc2liaWxpdHkuaCAqLywKKwkJCQkyOTc0NDYzOTExRkUyNTdBMDA0NTIzRjggLyog
QWNjZXNzaWJpbGl0eS5pZGwgKi8sCiAJCQkJMjlBODEyMEEwRkJCOUMxRDAwNTEwMjkzIC8qIEFj
Y2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgKi8sCiAJCQkJMjlBODEyMTYwRkJCOUMxRDAwNTEwMjkz
IC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZC5oICovLAogCQkJCTI5QTgxMjEyMEZCQjlDMUQwMDUx
MDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcCAqLywKQEAgLTExNTcyLDYgKzEx
NTkzLDkgQEAKIAkJCQkyOUE4MTIxMzBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVRh
YmxlUm93LmggKi8sCiAJCQkJMjlBODEyMTkwRkJCOUMxRDAwNTEwMjkzIC8qIEFYT2JqZWN0Q2Fj
aGUuY3BwICovLAogCQkJCTI5QTgxMjFBMEZCQjlDMUQwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hl
LmggKi8sCisJCQkJMjk3NDQ2M0ExMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5jcHAg
Ki8sCisJCQkJMjk3NDQ2M0IxMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5oICovLAor
CQkJCTI5NzQ0NjNDMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuaWRsICovLAogCQkJ
KTsKIAkJCXBhdGggPSBhY2Nlc3NpYmlsaXR5OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
QEAgLTE0NjM4LDYgKzE0NjYyLDggQEAKIAkJQTgzQjc5MTAwQ0NCMDAxQjAwMEIwODI1IC8qIENv
cmUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTI5NzQ0
NjZEMTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuY3BwICovLAorCQkJCTI5NzQ0
NjZFMTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuaCAqLywKIAkJCQk2NURGMzFE
ODA5RDFDMTIyMDAwQkUzMjUgLyogSlNBdHRyLmNwcCAqLywKIAkJCQk2NURGMzFEOTA5RDFDMTIz
MDAwQkUzMjUgLyogSlNBdHRyLmggKi8sCiAJCQkJOTNGOUI3OUUwQkE2MDMyNjAwODU0MDY0IC8q
IEpTQ0RBVEFTZWN0aW9uLmNwcCAqLywKQEAgLTE0NjkwLDYgKzE0NzE2LDggQEAKIAkJCQk2NURG
MzFFQzA5RDFDQzYwMDAwQkUzMjUgLyogSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCAqLywKIAkJ
CQlFNEI0MjM4NTBDQkZCNzNDMDBBRjJFQ0UgLyogSlNQcm9ncmVzc0V2ZW50LmNwcCAqLywKIAkJ
CQlFNEI0MjM4NjBDQkZCNzNDMDBBRjJFQ0UgLyogSlNQcm9ncmVzc0V2ZW50LmggKi8sCisJCQkJ
Mjk3NDQ2OEMxMUZFMkJFMTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmNwcCAqLywKKwkJCQky
OTc0NDY4RDExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIuaCAqLywKIAkJCQk2NURG
MzFFRjA5RDFDQzYwMDAwQkUzMjUgLyogSlNUZXh0LmNwcCAqLywKIAkJCQk2NURGMzFGMDA5RDFD
QzYwMDAwQkUzMjUgLyogSlNUZXh0LmggKi8sCiAJCQkpOwpAQCAtMTk4NjAsNiArMTk4ODgsMTAg
QEAKIAkJCQlCQ0RGMzE3QzExRjhENjgzMDAzQzVCRjggLyogVXNlclR5cGluZ0dlc3R1cmVJbmRp
Y2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGNzA3QTlBMTFFRjY3OTQwMEFDREE2OSAvKiBJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEExMkUzNUQx
MUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMjk3NDQ2M0UxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTI5NzQ0NjQxMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTI5NzQ0NjcwMTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxp
dHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTI5NzQ0NjhGMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1Nj
cmVlblJlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMjI1Niw2ICsyMjI4OCwxMCBAQAogCQkJ
CTUxNjJDN0Y0MTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQ0RGMzE3QjExRjhENjgzMDAzQzVCRjggLyogVXNlclR5cGluZ0dlc3R1cmVJ
bmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEY3MDdBOTkxMUVGNjc5NDAwQUNEQTY5
IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI5
NzQ0NjNEMTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTI5NzQ0NjQwMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMjk3NDQ2NkYxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0
eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyOTc0NDY4RTExRkUyQkUxMDA0NTIzRjggLyogSlNT
Y3JlZW5SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmgJKHJldmlzaW9uIDY0MDU1KQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTE5LDYgKzExOSw4IEBAIHB1Ymxp
YzoKICAgICAgICAgQVhSb3dDb3VudENoYW5nZWQsCiAgICAgICAgIEFYUm93Q29sbGFwc2VkLAog
ICAgICAgICBBWFJvd0V4cGFuZGVkLAorICAgICAgICBBWFNjcmVlbkNoYW5nZWQsCisgICAgICAg
IEFYRWxlbWVudHNDaGFuZ2VkCiAgICAgfTsKIAogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihS
ZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgYm9vbCBwb3N0VG9FbGVtZW50LCBQb3N0VHlw
ZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHkuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHkuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgi
QXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eS5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RD
YWNoZS5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIlNjcmVlblJlYWRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K0FjY2Vzc2liaWxpdHk6OkFjY2Vzc2liaWxpdHkoRnJhbWUqIGZyYW1lKQorICAgIDogbV9mcmFt
ZShmcmFtZSkgCit7Cit9CisKK0FjY2Vzc2liaWxpdHk6On5BY2Nlc3NpYmlsaXR5KCkKK3sKKyAg
ICBkaXNjb25uZWN0RnJhbWUoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5OjpkaXNjb25uZWN0
RnJhbWUoKQoreworICAgIGlmIChtX3NjcmVlblJlYWRlcikgeworICAgICAgICBtX3NjcmVlblJl
YWRlci0+ZGlzY29ubmVjdEZyYW1lKCk7CisgICAgICAgIG1fc2NyZWVuUmVhZGVyID0gMDsKKyAg
ICB9CisgICAgbV9mcmFtZSA9IDA7Cit9CisgICAgCit2b2lkIEFjY2Vzc2liaWxpdHk6OnNjcmVl
bkNoYW5nZWQoKQoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgIAor
ICAgIERvY3VtZW50KiBkb2MgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jKQor
ICAgICAgICByZXR1cm47CisgICAgCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdCA9IGRv
Yy0+YXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShkb2MtPnJlbmRlcmVyKCkpOworICAgIGRv
Yy0+YXhPYmplY3RDYWNoZSgpLT5wb3N0Tm90aWZpY2F0aW9uKHJvb3QsIGRvYywgQVhPYmplY3RD
YWNoZTo6QVhTY3JlZW5DaGFuZ2VkLCBmYWxzZSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eTo6
ZWxlbWVudHNDaGFuZ2VkKCkKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybjsK
KyAgICAKKyAgICBEb2N1bWVudCogZG9jID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAo
IWRvYykKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJv
b3QgPSBkb2MtPmF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoZG9jLT5yZW5kZXJlcigpKTsK
KyAgICBkb2MtPmF4T2JqZWN0Q2FjaGUoKS0+cG9zdE5vdGlmaWNhdGlvbihyb290LCBkb2MsIEFY
T2JqZWN0Q2FjaGU6OkFYRWxlbWVudHNDaGFuZ2VkLCBmYWxzZSk7Cit9CisgICAgCitTY3JlZW5S
ZWFkZXIqIEFjY2Vzc2liaWxpdHk6OnNjcmVlblJlYWRlcigpIGNvbnN0Cit7CisgICAgaWYgKCFt
X3NjcmVlblJlYWRlcikKKyAgICAgICAgbV9zY3JlZW5SZWFkZXIgPSBTY3JlZW5SZWFkZXI6OmNy
ZWF0ZShtX2ZyYW1lKTsKKyAgICAKKyAgICByZXR1cm4gbV9zY3JlZW5SZWFkZXIuZ2V0KCk7Cit9
CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHkuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4g
KCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQWNj
ZXNzaWJpbGl0eV9oCisjZGVmaW5lIEFjY2Vzc2liaWxpdHlfaAorCisjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorY2xhc3MgRnJhbWU7CitjbGFz
cyBTY3JlZW5SZWFkZXI7CisgICAgCitjbGFzcyBBY2Nlc3NpYmlsaXR5IDogcHVibGljIFJlZkNv
dW50ZWQ8QWNjZXNzaWJpbGl0eT4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFj
Y2Vzc2liaWxpdHk+IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBB
Y2Nlc3NpYmlsaXR5KGZyYW1lKSk7IH0KKyAgICB+QWNjZXNzaWJpbGl0eSgpOworICAgIAorICAg
IFNjcmVlblJlYWRlciogc2NyZWVuUmVhZGVyKCkgY29uc3Q7CisgICAgdm9pZCBzY3JlZW5DaGFu
Z2VkKCk7CisgICAgdm9pZCBlbGVtZW50c0NoYW5nZWQoKTsKKyAgICAKKyAgICB2b2lkIGRpc2Nv
bm5lY3RGcmFtZSgpOworICAgIAorcHJpdmF0ZToKKyAgICBBY2Nlc3NpYmlsaXR5KEZyYW1lKik7
CisgICAgRnJhbWUqIG1fZnJhbWU7CisgICAgbXV0YWJsZSBSZWZQdHI8U2NyZWVuUmVhZGVyPiBt
X3NjcmVlblJlYWRlcjsKK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBBY2Nlc3NpYmlsaXR5X2gKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eS5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eS5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBs
ZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB3aW5kb3cgewor
CisgICAgaW50ZXJmYWNlIFtPbWl0Q29uc3RydWN0b3JdIEFjY2Vzc2liaWxpdHkgeworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgU2NyZWVuUmVhZGVyIHNjcmVlblJlYWRlcjsKKworICAgICAg
ICB2b2lkIHNjcmVlbkNoYW5nZWQoKTsKKyAgICAgICAgdm9pZCBlbGVtZW50c0NoYW5nZWQoKTsK
KworICAgIH07Cit9CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmgJKHJldmlzaW9uIDY0MDU1KQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsMTAgQEAKICNpbmNs
dWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9S
TShNQUMpCisjZGVmaW5lIFNVUFBPUlRTX0pTQUNDRVNTSUJJTElUWSAxCisjZW5kaWYKKwogdHlw
ZWRlZiBzdHJ1Y3QgX05TUmFuZ2UgTlNSYW5nZTsKIAogI2lmZGVmIF9fT0JKQ19fCkBAIC01NDQs
NiArNTQ4LDEyIEBAIHB1YmxpYzoKICNlbmRpZgogI2VuZGlmCiAKKyNpZiBTVVBQT1JUU19KU0FD
Q0VTU0lCSUxJVFkKKyAgICBib29sIGlzU2NyZWVuUmVhZGVyUnVubmluZygpIGNvbnN0OworICAg
IEVsZW1lbnQqIHNjcmVlblJlYWRlckZvY3VzZWRFbGVtZW50KCkgY29uc3Q7CisgICAgU3RyaW5n
IHNjcmVlblJlYWRlclZlcnNpb24oKSBjb25zdDsKKyNlbmRpZgorICAgIAogI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkKICAgICAvLyBhIHBsYXRmb3JtLXNwZWNpZmljIG1ldGhvZCBmb3IgZGV0ZXJt
aW5pbmcgaWYgYW4gYXR0YWNobWVudCBpcyBpZ25vcmVkCiAgICAgYm9vbCBhY2Nlc3NpYmlsaXR5
SWdub3JlQXR0YWNobWVudCgpIGNvbnN0OwpAQCAtNTc4LDYgKzU4OCwxMiBAQCBwcm90ZWN0ZWQ6
CiAjZW5kaWYKIH07CiAKKyNpZiAhU1VQUE9SVFNfSlNBQ0NFU1NJQklMSVRZCitpbmxpbmUgYm9v
bCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1NjcmVlblJlYWRlclJ1bm5pbmcoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQoraW5saW5lIEVsZW1lbnQqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVl
blJlYWRlckZvY3VzZWRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbmlsOyB9CitpbmxpbmUgU3Ry
aW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlclZlcnNpb24oKSBjb25zdCB7IHJl
dHVybiBudWxsQXRvbTsgfQorI2VuZGlmCisgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBBY2Nlc3NpYmlsaXR5T2JqZWN0X2gKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJp
bGl0eS9TY3JlZW5SZWFkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0
eS9TY3JlZW5SZWFkZXIuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L1NjcmVlblJlYWRlci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JlZW5SZWFkZXIuaCIKKworI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTY3JlZW5SZWFkZXI6
OlNjcmVlblJlYWRlcihGcmFtZSogZnJhbWUpCisgICAgOiBtX2ZyYW1lKGZyYW1lKQoreworfQor
CitTY3JlZW5SZWFkZXI6On5TY3JlZW5SZWFkZXIoKQoreworICAgIGRpc2Nvbm5lY3RGcmFtZSgp
OworfQorICAgIAordm9pZCBTY3JlZW5SZWFkZXI6OmRpc2Nvbm5lY3RGcmFtZSgpCit7CisgICAg
bV9mcmFtZSA9IDA7Cit9CisKK2Jvb2wgU2NyZWVuUmVhZGVyOjphY3RpdmUoKSBjb25zdAorewor
ICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIERvY3Vt
ZW50KiBkb2MgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZG9jLT5h
eE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKGRvYy0+cmVuZGVyZXIoKSk7CisgICAgcmV0dXJu
IG9iai0+aXNTY3JlZW5SZWFkZXJSdW5uaW5nKCk7Cit9CisgICAgCitFbGVtZW50KiBTY3JlZW5S
ZWFkZXI6OmFjdGl2ZUVsZW1lbnQoKSBjb25zdAoreworICAgIERvY3VtZW50KiBkb2MgPSBtX2Zy
YW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZG9jLT5heE9iamVjdENhY2hlKCkt
PmdldE9yQ3JlYXRlKGRvYy0+cmVuZGVyZXIoKSk7CisgICAgcmV0dXJuIG9iai0+c2NyZWVuUmVh
ZGVyRm9jdXNlZEVsZW1lbnQoKTsgICAgCit9CisgICAgCitTdHJpbmcgU2NyZWVuUmVhZGVyOjp2
ZXJzaW9uKCkgY29uc3QKK3sKKyAgICBEb2N1bWVudCogZG9jID0gbV9mcmFtZS0+ZG9jdW1lbnQo
KTsKKyAgICBpZiAoIWRvYykKKyAgICAgICAgcmV0dXJuIG51bGxBdG9tOworICAgIAorICAgIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGRvYy0+YXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0
ZShkb2MtPnJlbmRlcmVyKCkpOworICAgIHJldHVybiBvYmotPnNjcmVlblJlYWRlclZlcnNpb24o
KTsKK30KKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmU7CkluZGV4OiBXZWJDb3JlL2FjY2Vz
c2liaWxpdHkvU2NyZWVuUmVhZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L1NjcmVlblJlYWRlci5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L1NjcmVlblJlYWRlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMu
ICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZy
b20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNj
cmVlblJlYWRlcl9oCisjZGVmaW5lIFNjcmVlblJlYWRlcl9oCisKKyNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKyAgICAKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBGcmFtZTsKK2NsYXNzIFN0cmluZzsK
KyAgICAKK2NsYXNzIFNjcmVlblJlYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFNjcmVlblJlYWRl
cj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNjcmVlblJlYWRlcj4gY3JlYXRl
KEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNjcmVlblJlYWRlcihmcmFtZSkp
OyB9CisgICAgflNjcmVlblJlYWRlcigpOworICAgIAorICAgIFN0cmluZyB2ZXJzaW9uKCkgY29u
c3Q7CisgICAgYm9vbCBhY3RpdmUoKSBjb25zdDsKKyAgICBFbGVtZW50KiBhY3RpdmVFbGVtZW50
KCkgY29uc3Q7CisgICAgCisgICAgdm9pZCBkaXNjb25uZWN0RnJhbWUoKTsKK3ByaXZhdGU6Cisg
ICAgU2NyZWVuUmVhZGVyKEZyYW1lKik7CisgICAgRnJhbWUqIG1fZnJhbWU7Cit9OworICAgIAor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU2NyZWVuUmVhZGVyX2gKSW5kZXg6
IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2Yg
QXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBp
dHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK21vZHVsZSB3aW5kb3cgeworCisgICAgaW50ZXJmYWNlICBbT21pdENvbnN0cnVj
dG9yXSBTY3JlZW5SZWFkZXIgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHZlcnNpb247CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGFjdGl2ZTsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgYWN0aXZlRWxlbWVudDsKKyAgICB9Owor
Cit9CisKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVN
YWMubW0JKHJldmlzaW9uIDY0MDU1KQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9i
amVjdENhY2hlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Niw2ICs3NiwxMiBAQCB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhCiAgICAgICAgIGNhc2UgQVhMYXlvdXRD
b21wbGV0ZToKICAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9ICJBWExheW91dENvbXBsZXRl
IjsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYU2NyZWVuQ2hhbmdlZDoKKyAg
ICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9ICJBWFNjcmVlbkNoYW5nZWQiOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhFbGVtZW50c0NoYW5nZWQ6CisgICAgICAgICAgICBt
YWNOb3RpZmljYXRpb24gPSAiQVhFbGVtZW50c0NoYW5nZWQiOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQVhMb2FkQ29tcGxldGU6CiAgICAgICAgICAgICBtYWNOb3RpZmljYXRp
b24gPSAiQVhMb2FkQ29tcGxldGUiOwogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBXZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCShy
ZXZpc2lvbiA2NDA1NSkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0
eU9iamVjdE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjksOSArMjksMjYgQEAKICNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpCiAKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLmgi
CisjaW1wb3J0ICJBWE9iamVjdENhY2hlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorYm9v
bCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1NjcmVlblJlYWRlclJ1bm5pbmcoKSBjb25zdAorewor
ICAgIC8vIElmIHRoZSBlbmhhbmNlZCB1c2VyIGludGVyZmFjZSBpcyBlbmFibGVkLCBpdCBtZWFu
cyBWb2ljZU92ZXIgaXMgcnVubmluZy4KKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQoKTsKK30KKyAgICAKK0VsZW1lbnQq
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlckZvY3VzZWRFbGVtZW50KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gMDsKK30KKyAgICAKK1N0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpz
Y3JlZW5SZWFkZXJWZXJzaW9uKCkgY29uc3QKK3sgCisgICAgcmV0dXJuIG51bGxBdG9tOworfQor
ICAgIAogYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5SWdub3JlQXR0YWNo
bWVudCgpIGNvbnN0CiB7CiAgICAgTlNWaWV3KiBhdHRhY2htZW50ID0gW3dyYXBwZXIoKSBhdHRh
Y2htZW50Vmlld107CkluZGV4OiBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAkocmV2aXNpb24gNjQwNTUpCisrKyBXZWJD
b3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogCisjaW5jbHVkZSAi
QWNjZXNzaWJpbGl0eS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNvb2tpZUph
ci5oIgogI2luY2x1ZGUgIkRPTU1pbWVUeXBlQXJyYXkuaCIKQEAgLTY2LDYgKzY3LDEwIEBAIHZv
aWQgTmF2aWdhdG9yOjpkaXNjb25uZWN0RnJhbWUoKQogICAgICAgICBtX2dlb2xvY2F0aW9uLT5k
aXNjb25uZWN0RnJhbWUoKTsKICAgICAgICAgbV9nZW9sb2NhdGlvbiA9IDA7CiAgICAgfQorICAg
IGlmIChtX2FjY2Vzc2liaWxpdHkpIHsKKyAgICAgICAgbV9hY2Nlc3NpYmlsaXR5LT5kaXNjb25u
ZWN0RnJhbWUoKTsKKyAgICAgICAgbV9hY2Nlc3NpYmlsaXR5ID0gMDsKKyAgICB9CiAgICAgbV9m
cmFtZSA9IDA7CiB9CiAKQEAgLTEyNyw2ICsxMzIsMTMgQEAgRE9NTWltZVR5cGVBcnJheSogTmF2
aWdhdG9yOjptaW1lVHlwZXMoKQogICAgICAgICBtX21pbWVUeXBlcyA9IERPTU1pbWVUeXBlQXJy
YXk6OmNyZWF0ZShtX2ZyYW1lKTsKICAgICByZXR1cm4gbV9taW1lVHlwZXMuZ2V0KCk7CiB9Cisg
ICAgCitBY2Nlc3NpYmlsaXR5KiBOYXZpZ2F0b3I6OmFjY2Vzc2liaWxpdHkoKSBjb25zdAorewor
ICAgIGlmICghbV9hY2Nlc3NpYmlsaXR5KQorICAgICAgICBtX2FjY2Vzc2liaWxpdHkgPSBBY2Nl
c3NpYmlsaXR5OjpjcmVhdGUobV9mcmFtZSk7CisgICAgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eS5n
ZXQoKTsKK30KIAogYm9vbCBOYXZpZ2F0b3I6OmNvb2tpZUVuYWJsZWQoKSBjb25zdAogewpJbmRl
eDogV2ViQ29yZS9wYWdlL05hdmlnYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9O
YXZpZ2F0b3IuaAkocmV2aXNpb24gNjQwNTUpCisrKyBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CisgICAgY2xhc3MgQWNjZXNzaWJpbGl0eTsKICAgICBjbGFzcyBET01NaW1lVHlwZUFycmF5Owog
ICAgIGNsYXNzIERPTVBsdWdpbkFycmF5OwogICAgIGNsYXNzIEZyYW1lOwpAQCAtNDYsNiArNDcs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFN0cmluZyBsYW5ndWFnZSgpIGNvbnN0
OwogICAgICAgICBET01QbHVnaW5BcnJheSogcGx1Z2lucygpIGNvbnN0OwogICAgICAgICBET01N
aW1lVHlwZUFycmF5KiBtaW1lVHlwZXMoKSBjb25zdDsKKyAgICAgICAgQWNjZXNzaWJpbGl0eSog
YWNjZXNzaWJpbGl0eSgpIGNvbnN0OwogICAgICAgICBib29sIGNvb2tpZUVuYWJsZWQoKSBjb25z
dDsKICAgICAgICAgYm9vbCBqYXZhRW5hYmxlZCgpIGNvbnN0OwogCkBAIC02Niw2ICs2OCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8RE9NUGx1Z2luQXJy
YXk+IG1fcGx1Z2luczsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8RE9NTWltZVR5cGVBcnJheT4g
bV9taW1lVHlwZXM7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPEdlb2xvY2F0aW9uPiBtX2dlb2xv
Y2F0aW9uOworICAgICAgICBtdXRhYmxlIFJlZlB0cjxBY2Nlc3NpYmlsaXR5PiBtX2FjY2Vzc2li
aWxpdHk7CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwJKHJldmlzaW9uIDY0MDU1KQor
KysgV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMx
LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgcGxhdGZvcm07CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01QbHVnaW5BcnJheSBw
bHVnaW5zOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NTWltZVR5cGVBcnJheSBtaW1l
VHlwZXM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBY2Nlc3NpYmlsaXR5IGFjY2Vzc2li
aWxpdHk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcHJvZHVjdDsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBwcm9kdWN0U3ViOwogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlbmRvcjsKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY0
MDc4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMTAtMDctMjYgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBWDogU3Vw
cG9ydCBtZXRob2RzIGZvciB3ZWIgYXBwcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBuYXRpdmUgYWNj
ZXNzaWJpbGl0eSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MzAwNQorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMt
YWNjZXNzaWJpbGl0eS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHkuaHRtbDogQWRkZWQuCisKIDIwMTAtMDct
MjYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0eS1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0
eS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
YWNjZXNzaWJpbGl0eS9qcy1hY2Nlc3NpYmlsaXR5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxMyBAQAorVGhpcyB0ZXN0cyB0aGUgamF2YXNjcmlwdCBpbnRlcmZhY2UgdG8g
YWNjZXNzaWJpbGl0eQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBheC5z
Y3JlZW5SZWFkZXIuYWN0aXZlIGlzIGZhbHNlCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRy
dWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFT
UyBuYW1lIGlzICdBWFNjcmVlbkNoYW5nZWQnCitQQVNTIG5hbWUgaXMgJ0FYRWxlbWVudHNDaGFu
Z2VkJworCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9qcy1h
Y2Nlc3NpYmlsaXR5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0eS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0eS5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0PgordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgZGVzY3Jp
cHRpb24oIlRoaXMgdGVzdHMgdGhlIGphdmFzY3JpcHQgaW50ZXJmYWNlIHRvIGFjY2Vzc2liaWxp
dHkiKTsKKworICAgIHZhciBib2R5ID0gMDsKKyAgICB2YXIgbmFtZSA9IDA7CisgICAgZnVuY3Rp
b24gbm90aWZ5Q2FsbGJhY2sobm90aWZpY2F0aW9uKSB7ICAKKyAgICAgICAgbmFtZSA9IG5vdGlm
aWNhdGlvbjsKKyAgICAgICAgaWYgKG5hbWUgPT0gIkFYU2NyZWVuQ2hhbmdlZCIpIHsKKyAgICAg
ICAgICAgIHNob3VsZEJlKCJuYW1lIiwgIidBWFNjcmVlbkNoYW5nZWQnIik7CisgICAgICAgIH0K
KyAgICAgICAgZWxzZSBpZiAobmFtZSA9PSAiQVhFbGVtZW50c0NoYW5nZWQiKSB7CisgICAgICAg
ICAgICBzaG91bGRCZSgibmFtZSIsICInQVhFbGVtZW50c0NoYW5nZWQnIik7CisgICAgICAgICAg
ICBib2R5LnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICB3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisgICAgfQorPC9z
Y3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGF4ID0gd2luZG93Lm5hdmlnYXRvci5hY2Nlc3Np
YmlsaXR5OworCisgICAgLy8gc2NyZWVuIHJlYWRlciBzaG91bGQgbm90IGJlIHJ1bm5pbmcgd2l0
aGluIGxheW91dCB0ZXN0cy4KKyAgICBzaG91bGRCZSgiYXguc2NyZWVuUmVhZGVyLmFjdGl2ZSIs
ICJmYWxzZSIpOworCisgICAgLy8gc2hvdWxkIG5vdCBjYXVzZSBhbiBlcnJvci4KKyAgICB2YXIg
dmVyc2lvbiA9IGF4LnNjcmVlblJlYWRlci52ZXJzaW9uOworCisgICAgLy8gc2hvdWxkIG5vdCBj
YXVzZSBhbiBlcnJvcgorICAgIHZhciBhY3RpdmVFbGVtZW50ID0gYXguc2NyZWVuUmVhZGVyLmFj
dGl2ZUVsZW1lbnQ7CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7
CisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisK
KyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvZHkiKS5mb2N1cygpOworCisgICAg
ICAgIGJvZHkgPSB3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7
CisKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gYm9keS5hZGROb3RpZmljYXRpb25M
aXN0ZW5lcihub3RpZnlDYWxsYmFjayk7CisgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNh
dGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAgLy8gc2hvdWxkIGNhdXNlIGEgQVhTY3JlZW5DaGFu
Z2VkIHRvIGJlIHNlbnQgb3V0LgorICAgICAgICBheC5zY3JlZW5DaGFuZ2VkKCk7CisKKyAgICAg
ICAgLy8gc2hvdWxkIGNhdXNlIGEgQVhFbGVtZW50c0NoYW5nZWQgdG8gYmUgc2VudCBvdXQuCisg
ICAgICAgIGF4LmVsZW1lbnRzQ2hhbmdlZCgpOworICAgIH0KKworICAgIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63068</attachid>
            <date>2010-07-30 09:57:11 -0700</date>
            <delta_ts>2010-07-30 10:17:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43005-20100730095710.patch</filename>
            <type>text/plain</type>
            <size>38197</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTYgQEAKKzIwMTAtMDctMzAgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBWDogU3VwcG9ydCBtZXRob2RzIGZvciB3ZWIgYXBwcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBu
YXRpdmUgYWNjZXNzaWJpbGl0eSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MzAwNQorCisgICAgICAgIEFkZHMgYSBuZXcgImFjY2Vzc2liaWxp
dHkiIG9iamVjdCB0aGF0IGhhbmdzIG9mZiBvZiAid2luZG93Lm5hdmlnYXRvciIuCisgICAgICAg
IFRoaXMgYWNjZXNzaWJpbGl0eSBvYmplY3Qgd2lsbCBhbGxvdyB3ZWIgYXBwcyB0byBpbnRlcmFj
dCB3aXRoIG5hdGl2ZSBhY2Nlc3NpYmlsaXR5IEFQSXMKKyAgICAgICAgdG8gcHJvdmlkZSBhIHJp
Y2hlciBleHBlcmllbmNlIChmb3Igc2NyZWVuIHJlYWRlciB1c2VycyBwcmltYXJpbHkpLgorCisg
ICAgICAgIFRlc3Q6IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHku
aHRtbAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjopOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eTo6QWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5Ojp+QWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5OjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eTo6c2NyZWVuQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjplbGVt
ZW50c0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6c2NyZWVuUmVh
ZGVyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjpjcmVhdGUpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eS5pZGw6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNTY3JlZW5SZWFkZXJSdW5uaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlckZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlclZlcnNpb24pOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTY3JlZW5SZWFkZXI6OlNjcmVlblJlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jl
ZW5SZWFkZXI6On5TY3JlZW5SZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVy
OjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVyOjphY3Rp
dmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVyOjphY3RpdmVFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmVlblJlYWRlcjo6dmVyc2lvbik6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9TY3JlZW5SZWFkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5S
ZWFkZXI6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNTY3JlZW5SZWFk
ZXJSdW5uaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVl
blJlYWRlckZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OnNjcmVlblJlYWRlclZlcnNpb24pOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvcjo6ZGlzY29ubmVjdEZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5hdmlnYXRvcjo6YWNjZXNzaWJpbGl0eSk6CisgICAgICAgICogcGFnZS9O
YXZpZ2F0b3IuaDoKKyAgICAgICAgKiBwYWdlL05hdmlnYXRvci5pZGw6CisKIDIwMTAtMDctMjkg
IEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgU3RldmUgQmxvY2suCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiA2NDM1OCkKKysr
IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgs
NyBAQAogCiBWUEFUSCA9IFwKICAgICAkKFdlYkNvcmUpIFwKKyAgICAkKFdlYkNvcmUpL2FjY2Vz
c2liaWxpdHkgXAogICAgICQoV2ViQ29yZSkvYmluZGluZ3MvanMgXAogICAgICQoV2ViQ29yZSkv
YmluZGluZ3Mvb2JqYyBcCiAgICAgJChXZWJDb3JlKS9jc3MgXApAQCAtNTAsNiArNTEsNyBAQCBW
UEFUSCA9IFwKIERPTV9DTEFTU0VTID0gXAogICAgIEFic3RyYWN0VmlldyBcCiAgICAgQWJzdHJh
Y3RXb3JrZXIgXAorICAgIEFjY2Vzc2liaWxpdHkgXAogICAgIEF0dHIgXAogICAgIEJhckluZm8g
XAogICAgIEJlZm9yZUxvYWRFdmVudCBcCkBAIC00MzAsNiArNDMyLDcgQEAgRE9NX0NMQVNTRVMg
PSBcCiAgICAgU1ZHWm9vbUFuZFBhbiBcCiAgICAgU1ZHWm9vbUV2ZW50IFwKICAgICBTY3JlZW4g
XAorICAgIFNjcmVlblJlYWRlciBcCiAgICAgU3R5bGVNZWRpYSBcCiAgICAgU3R5bGVTaGVldCBc
CiAgICAgU3R5bGVTaGVldExpc3QgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUv
V2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTI1NCw2ICsyNTQsNyBAQCBjb250YWlucyhE
RUZJTkVTLCBFTkFCTEVfV0NTUz0xKSB7CiB9CiAKIFNPVVJDRVMgKz0gXAorICAgIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eS5jcHAgXAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUltYWdlTWFwTGluay5jcHAgXAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlh
Q29udHJvbHMuY3BwIFwgICAgCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxp
c3QuY3BwIFwKQEAgLTI3Niw2ICsyNzcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5jcHAgXCAgICAKICAgICBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAgXCAgICAKICAgICBhY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwIFwKKyAgICBhY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5j
cHAgXAogICAgIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgXAog
ICAgIGJpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0RPTU9i
amVjdEhhc2hUYWJsZU1hcC5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDY0MzU4KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTYyNCw2ICs2MjQsMTQgQEAK
IAkJMjRGNTRFQUQxMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNEY1NEVBQjEwMUZF
OTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9ICgpOyB9OyB9OwogCQkyNTQyRjREQTExNjZDMjVBMDBFODlBODYgLyogVXNlckdl
c3R1cmVJbmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjU0MkY0RDgxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5kaWNhdG9y
LmNwcCAqLzsgfTsKIAkJMjU0MkY0REIxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5k
aWNhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
NTQyRjREOTExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuaCAqLzsgfTsK
KwkJMjk3NDQ2M0QxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2MzcxMUZFMjU3QTAw
NDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuY3BwICovOyB9OworCQkyOTc0NDYzRTExRkUyNTdBMDA0
NTIzRjggLyogQWNjZXNzaWJpbGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjk3NDQ2MzgxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHku
aCAqLzsgfTsKKwkJMjk3NDQ2NDAxMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTc0NDYzQTEx
RkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmNwcCAqLzsgfTsKKwkJMjk3NDQ2NDExMUZF
MjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2M0IxMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJl
YWRlci5oICovOyB9OworCQkyOTc0NDY2RjExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3NpYmls
aXR5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5
NzQ0NjZEMTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuY3BwICovOyB9OworCQky
OTc0NDY3MDExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTc0NDY2RTExRkUyQjMyMDA0NTIz
RjggLyogSlNBY2Nlc3NpYmlsaXR5LmggKi87IH07CisJCTI5NzQ0NjhFMTFGRTJCRTEwMDQ1MjNG
OCAvKiBKU1NjcmVlblJlYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyOTc0NDY4QzExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIu
Y3BwICovOyB9OworCQkyOTc0NDY4RjExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjhE
MTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5oICovOyB9OwogCQkyOUE4MTIyNjBG
QkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4MTIwODBGQkI5QzFEMDA1
MTAyOTMgLyogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgKi87IH07CiAJCTI5QTgxMjI3
MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBODEyMDkwRkJCOUMxRDAwNTEwMjkz
IC8qIEFjY2Vzc2liaWxpdHlUYWJsZS5jcHAgKi87IH07CiAJCTI5QTgxMjI4MEZCQjlDMUQwMDUx
MDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBODEyMEEwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vz
c2liaWxpdHlBUklBR3JpZC5jcHAgKi87IH07CkBAIC02MzE5LDYgKzYzMjcsMTYgQEAKIAkJMjRG
NTRFQUIxMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxpY2F0aW9uQ2FjaGVIb3N0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI1NDJGNEQ4MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2Vz
dHVyZUluZGljYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBV
c2VyR2VzdHVyZUluZGljYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI1
NDJGNEQ5MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyR2VzdHVyZUluZGljYXRvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0NDYzNzExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNz
aWJpbGl0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3Np
YmlsaXR5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2MzgxMUZFMjU3
QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQWNjZXNzaWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0
NDYzOTExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gQWNjZXNzaWJpbGl0eS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTI5NzQ0NjNBMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyZWVuUmVhZGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2M0IxMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JlZW5SZWFkZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2M0MxMUZFMjU3QTAwNDUyM0Y4IC8qIFNj
cmVlblJlYWRlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2NyZWVuUmVhZGVyLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2NkQxMUZFMkIzMjAwNDUyM0Y4IC8q
IEpTQWNjZXNzaWJpbGl0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0FjY2Vzc2liaWxpdHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0
NDY2RTExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTQWNjZXNzaWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyOTc0NDY4QzExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JlZW5SZWFkZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0NDY4RDExRkUyQkUxMDA0NTIzRjgg
LyogSlNTY3JlZW5SZWFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNT
Y3JlZW5SZWFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBODEyMDgwRkJC
OUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QTgxMjA5MEZCQjlDMUQwMDUxMDI5MyAv
KiBBY2Nlc3NpYmlsaXR5VGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQWNjZXNzaWJpbGl0eVRhYmxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjlBODEyMEEwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5QVJJQUdy
aWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE1NDAsNiArMTE1NTgsOSBA
QAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkyOUE4MTIwNTBGQkI5
QjUyMDA1MTAyOTMgLyogbWFjICovLAorCQkJCTI5NzQ0NjM3MTFGRTI1N0EwMDQ1MjNGOCAvKiBB
Y2Nlc3NpYmlsaXR5LmNwcCAqLywKKwkJCQkyOTc0NDYzODExRkUyNTdBMDA0NTIzRjggLyogQWNj
ZXNzaWJpbGl0eS5oICovLAorCQkJCTI5NzQ0NjM5MTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3Np
YmlsaXR5LmlkbCAqLywKIAkJCQkyOUE4MTIwQTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJp
bGl0eUFSSUFHcmlkLmNwcCAqLywKIAkJCQkyOUE4MTIxNjBGQkI5QzFEMDA1MTAyOTMgLyogQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkLmggKi8sCiAJCQkJMjlBODEyMTIwRkJCOUMxRDAwNTEwMjkzIC8q
IEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwICovLApAQCAtMTE1ODQsNiArMTE2MDUsOSBA
QAogCQkJCTI5QTgxMjEzMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGVSb3cu
aCAqLywKIAkJCQkyOUE4MTIxOTBGQkI5QzFEMDA1MTAyOTMgLyogQVhPYmplY3RDYWNoZS5jcHAg
Ki8sCiAJCQkJMjlBODEyMUEwRkJCOUMxRDAwNTEwMjkzIC8qIEFYT2JqZWN0Q2FjaGUuaCAqLywK
KwkJCQkyOTc0NDYzQTExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmNwcCAqLywKKwkJ
CQkyOTc0NDYzQjExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmggKi8sCisJCQkJMjk3
NDQ2M0MxMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5pZGwgKi8sCiAJCQkpOwogCQkJ
cGF0aCA9IGFjY2Vzc2liaWxpdHk7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTQ2
NTMsNiArMTQ2NzcsOCBAQAogCQlBODNCNzkxMDBDQ0IwMDFCMDAwQjA4MjUgLyogQ29yZSAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMjk3NDQ2NkQxMUZF
MkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5jcHAgKi8sCisJCQkJMjk3NDQ2NkUxMUZF
MkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5oICovLAogCQkJCTY1REYzMUQ4MDlEMUMx
MjIwMDBCRTMyNSAvKiBKU0F0dHIuY3BwICovLAogCQkJCTY1REYzMUQ5MDlEMUMxMjMwMDBCRTMy
NSAvKiBKU0F0dHIuaCAqLywKIAkJCQk5M0Y5Qjc5RTBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFU
QVNlY3Rpb24uY3BwICovLApAQCAtMTQ3MDUsNiArMTQ3MzEsOCBAQAogCQkJCTY1REYzMUVDMDlE
MUNDNjAwMDBCRTMyNSAvKiBKU1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oICovLAogCQkJCUU0QjQy
Mzg1MENCRkI3M0MwMEFGMkVDRSAvKiBKU1Byb2dyZXNzRXZlbnQuY3BwICovLAogCQkJCUU0QjQy
Mzg2MENCRkI3M0MwMEFGMkVDRSAvKiBKU1Byb2dyZXNzRXZlbnQuaCAqLywKKwkJCQkyOTc0NDY4
QzExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIuY3BwICovLAorCQkJCTI5NzQ0NjhE
MTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5oICovLAogCQkJCTY1REYzMUVGMDlE
MUNDNjAwMDBCRTMyNSAvKiBKU1RleHQuY3BwICovLAogCQkJCTY1REYzMUYwMDlEMUNDNjAwMDBC
RTMyNSAvKiBKU1RleHQuaCAqLywKIAkJCSk7CkBAIC0xOTg4NSw2ICsxOTkxMywxMCBAQAogCQkJ
CUM1NzJFRTBFMTIwMUM3MzYwMDdEOEY4MiAvKiBJREJJbmRleEJhY2tlbmRJbXBsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDNTcyRUUwRjEyMDFDNzM2MDA3RDhGODIgLyogSURCSW5kZXhCYWNrZW5k
SW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTcyRUUxRjEyMDFDOUJDMDA3RDhGODIg
LyogSlNJREJJbmRleC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjk3NDQ2M0UxMUZFMjU3QTAwNDUy
M0Y4IC8qIEFjY2Vzc2liaWxpdHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTI5NzQ0NjQxMTFGRTI1
N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTI5NzQ0Njcw
MTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTI5NzQ0NjhGMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkBAIC0yMjI4Niw2ICsyMjMxOCwxMCBAQAogCQkJCUM1NzJFRTBBMTIwMUM3MzYwMDdEOEY4
MiAvKiBJREJJbmRleC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTcyRUUwRDEyMDFDNzM2MDA3
RDhGODIgLyogSURCSW5kZXhCYWNrZW5kSW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTcy
RUUxRTEyMDFDOUJDMDA3RDhGODIgLyogSlNJREJJbmRleC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkyOTc0NDYzRDExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkyOTc0NDY0MDExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTI5NzQ0NjZGMTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2li
aWxpdHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjk3NDQ2OEUxMUZFMkJFMTAwNDUyM0Y4IC8q
IEpTU2NyZWVuUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5oCShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOSw2ICsxMTksOCBAQCBw
dWJsaWM6CiAgICAgICAgIEFYUm93Q291bnRDaGFuZ2VkLAogICAgICAgICBBWFJvd0NvbGxhcHNl
ZCwKICAgICAgICAgQVhSb3dFeHBhbmRlZCwKKyAgICAgICAgQVhTY3JlZW5DaGFuZ2VkLAorICAg
ICAgICBBWEVsZW1lbnRzQ2hhbmdlZAogICAgIH07CiAKICAgICB2b2lkIHBvc3ROb3RpZmljYXRp
b24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIGJvb2wgcG9zdFRvRWxlbWVudCwgUG9z
dFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5j
LiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBm
cm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHkuaCIKKworI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJTY3JlZW5SZWFkZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitBY2Nlc3NpYmlsaXR5OjpBY2Nlc3NpYmlsaXR5KEZyYW1lKiBmcmFtZSkKKyAgICA6IG1f
ZnJhbWUoZnJhbWUpIAoreworfQorCitBY2Nlc3NpYmlsaXR5Ojp+QWNjZXNzaWJpbGl0eSgpCit7
CisgICAgZGlzY29ubmVjdEZyYW1lKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eTo6ZGlzY29u
bmVjdEZyYW1lKCkKK3sKKyAgICBpZiAobV9zY3JlZW5SZWFkZXIpIHsKKyAgICAgICAgbV9zY3Jl
ZW5SZWFkZXItPmRpc2Nvbm5lY3RGcmFtZSgpOworICAgICAgICBtX3NjcmVlblJlYWRlciA9IDA7
CisgICAgfQorICAgIG1fZnJhbWUgPSAwOworfQorICAgIAordm9pZCBBY2Nlc3NpYmlsaXR5Ojpz
Y3JlZW5DaGFuZ2VkKCkKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBEb2N1bWVudCogZG9jID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRv
YykKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3Qg
PSBkb2MtPmF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoZG9jLT5yZW5kZXJlcigpKTsKKyAg
ICBkb2MtPmF4T2JqZWN0Q2FjaGUoKS0+cG9zdE5vdGlmaWNhdGlvbihyb290LCBkb2MsIEFYT2Jq
ZWN0Q2FjaGU6OkFYU2NyZWVuQ2hhbmdlZCwgZmFsc2UpOworfQorCit2b2lkIEFjY2Vzc2liaWxp
dHk6OmVsZW1lbnRzQ2hhbmdlZCgpCit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1
cm47CisgICAgCisgICAgRG9jdW1lbnQqIGRvYyA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CisgICAg
aWYgKCFkb2MpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiByb290ID0gZG9jLT5heE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKGRvYy0+cmVuZGVyZXIo
KSk7CisgICAgZG9jLT5heE9iamVjdENhY2hlKCktPnBvc3ROb3RpZmljYXRpb24ocm9vdCwgZG9j
LCBBWE9iamVjdENhY2hlOjpBWEVsZW1lbnRzQ2hhbmdlZCwgZmFsc2UpOworfQorICAgIAorU2Ny
ZWVuUmVhZGVyKiBBY2Nlc3NpYmlsaXR5OjpzY3JlZW5SZWFkZXIoKSBjb25zdAoreworICAgIGlm
ICghbV9zY3JlZW5SZWFkZXIpCisgICAgICAgIG1fc2NyZWVuUmVhZGVyID0gU2NyZWVuUmVhZGVy
OjpjcmVhdGUobV9mcmFtZSk7CisgICAgCisgICAgcmV0dXJuIG1fc2NyZWVuUmVhZGVyLmdldCgp
OworfQorICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCkluZGV4OiBXZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJ
bmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAg
IGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IEFjY2Vzc2liaWxpdHlfaAorI2RlZmluZSBBY2Nlc3NpYmlsaXR5X2gKKworI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIEZyYW1lOwor
Y2xhc3MgU2NyZWVuUmVhZGVyOworICAgIAorY2xhc3MgQWNjZXNzaWJpbGl0eSA6IHB1YmxpYyBS
ZWZDb3VudGVkPEFjY2Vzc2liaWxpdHk+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5PiBjcmVhdGUoRnJhbWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgQWNjZXNzaWJpbGl0eShmcmFtZSkpOyB9CisgICAgfkFjY2Vzc2liaWxpdHkoKTsKKyAgICAK
KyAgICBTY3JlZW5SZWFkZXIqIHNjcmVlblJlYWRlcigpIGNvbnN0OworICAgIHZvaWQgc2NyZWVu
Q2hhbmdlZCgpOworICAgIHZvaWQgZWxlbWVudHNDaGFuZ2VkKCk7CisgICAgCisgICAgdm9pZCBk
aXNjb25uZWN0RnJhbWUoKTsKKyAgICAKK3ByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eShGcmFt
ZSopOworICAgIEZyYW1lKiBtX2ZyYW1lOworICAgIG11dGFibGUgUmVmUHRyPFNjcmVlblJlYWRl
cj4gbV9zY3JlZW5SZWFkZXI7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gQWNjZXNzaWJpbGl0eV9oCkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHkuaWRsCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHkuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgi
QXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgd2luZG93
IHsKKworICAgIGludGVyZmFjZSBbT21pdENvbnN0cnVjdG9yXSBBY2Nlc3NpYmlsaXR5IHsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNjcmVlblJlYWRlciBzY3JlZW5SZWFkZXI7CisKKyAg
ICAgICAgdm9pZCBzY3JlZW5DaGFuZ2VkKCk7CisgICAgICAgIHZvaWQgZWxlbWVudHNDaGFuZ2Vk
KCk7CisKKyAgICB9OworfQpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlBbGxJbk9uZS5jcHAJKHJldmlzaW9uIDY0MzU4KQorKysgV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlBbGxJbk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYg
KzI2LDcgQEAKIC8vIFRoaXMgYWxsLWluLW9uZSBjcHAgZmlsZSBjdXRzIGRvd24gb24gdGVtcGxh
dGUgYmxvYXQgdG8gYWxsb3cgdXMgdG8gYnVpbGQgb3VyIFdpbmRvd3MgcmVsZWFzZSBidWlsZC4N
CiANCiAjaW5jbHVkZSA8QVhPYmplY3RDYWNoZS5jcHA+DQorI2luY2x1ZGUgPEFjY2Vzc2liaWxp
dHkuY3BwPg0KICNpbmNsdWRlIDxBY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwPg0KICNpbmNsdWRl
IDxBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcD4NCiAjaW5jbHVkZSA8QWNjZXNzaWJpbGl0
eUFSSUFHcmlkUm93LmNwcD4NCkBAIC00MywzICs0NCw0IEBACiAjaW5jbHVkZSA8QWNjZXNzaWJp
bGl0eVRhYmxlQ29sdW1uLmNwcD4NCiAjaW5jbHVkZSA8QWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVy
Q29udGFpbmVyLmNwcD4NCiAjaW5jbHVkZSA8QWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcD4NCisj
aW5jbHVkZSA8U2NyZWVuUmVhZGVyLmNwcD4NCkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgJKHJldmlzaW9uIDY0MzU4KQorKysgV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiAr
NDYsMTAgQEAKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5oIgogI2VuZGlm
CiAKKyNpZiBQTEFURk9STShNQUMpCisjZGVmaW5lIFNVUFBPUlRTX0pTQUNDRVNTSUJJTElUWSAx
CisjZW5kaWYKKwogdHlwZWRlZiBzdHJ1Y3QgX05TUmFuZ2UgTlNSYW5nZTsKIAogI2lmZGVmIF9f
T0JKQ19fCkBAIC01NDgsNiArNTUyLDEyIEBAIHB1YmxpYzoKICNlbmRpZgogI2VuZGlmCiAKKyNp
ZiBTVVBQT1JUU19KU0FDQ0VTU0lCSUxJVFkKKyAgICBib29sIGlzU2NyZWVuUmVhZGVyUnVubmlu
ZygpIGNvbnN0OworICAgIEVsZW1lbnQqIHNjcmVlblJlYWRlckZvY3VzZWRFbGVtZW50KCkgY29u
c3Q7CisgICAgU3RyaW5nIHNjcmVlblJlYWRlclZlcnNpb24oKSBjb25zdDsKKyNlbmRpZgorICAg
IAogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKICAgICAvLyBhIHBsYXRmb3JtLXNwZWNpZmljIG1l
dGhvZCBmb3IgZGV0ZXJtaW5pbmcgaWYgYW4gYXR0YWNobWVudCBpcyBpZ25vcmVkCiAgICAgYm9v
bCBhY2Nlc3NpYmlsaXR5SWdub3JlQXR0YWNobWVudCgpIGNvbnN0OwpAQCAtNTgyLDYgKzU5Miwx
MiBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIH07CiAKKyNpZiAhU1VQUE9SVFNfSlNBQ0NFU1NJQklM
SVRZCitpbmxpbmUgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1NjcmVlblJlYWRlclJ1bm5p
bmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQoraW5saW5lIEVsZW1lbnQqIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OnNjcmVlblJlYWRlckZvY3VzZWRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbmls
OyB9CitpbmxpbmUgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlclZlcnNp
b24oKSBjb25zdCB7IHJldHVybiBudWxsQXRvbTsgfQorI2VuZGlmCisgICAgCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBBY2Nlc3NpYmlsaXR5T2JqZWN0X2gKSW5kZXg6IFdl
YkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
ODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBw
bGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JlZW5SZWFkZXIuaCIKKwor
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVk
ZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitTY3JlZW5SZWFkZXI6OlNjcmVlblJlYWRlcihGcmFtZSogZnJhbWUpCisgICAgOiBtX2ZyYW1l
KGZyYW1lKQoreworfQorCitTY3JlZW5SZWFkZXI6On5TY3JlZW5SZWFkZXIoKQoreworICAgIGRp
c2Nvbm5lY3RGcmFtZSgpOworfQorICAgIAordm9pZCBTY3JlZW5SZWFkZXI6OmRpc2Nvbm5lY3RG
cmFtZSgpCit7CisgICAgbV9mcmFtZSA9IDA7Cit9CisKK2Jvb2wgU2NyZWVuUmVhZGVyOjphY3Rp
dmUoKSBjb25zdAoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIAorICAgIERvY3VtZW50KiBkb2MgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICgh
ZG9jKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqID0gZG9jLT5heE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKGRvYy0+cmVuZGVyZXIo
KSk7CisgICAgcmV0dXJuIG9iai0+aXNTY3JlZW5SZWFkZXJSdW5uaW5nKCk7Cit9CisgICAgCitF
bGVtZW50KiBTY3JlZW5SZWFkZXI6OmFjdGl2ZUVsZW1lbnQoKSBjb25zdAoreworICAgIERvY3Vt
ZW50KiBkb2MgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZG9jLT5h
eE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKGRvYy0+cmVuZGVyZXIoKSk7CisgICAgcmV0dXJu
IG9iai0+c2NyZWVuUmVhZGVyRm9jdXNlZEVsZW1lbnQoKTsgICAgCit9CisgICAgCitTdHJpbmcg
U2NyZWVuUmVhZGVyOjp2ZXJzaW9uKCkgY29uc3QKK3sKKyAgICBEb2N1bWVudCogZG9jID0gbV9m
cmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvYykKKyAgICAgICAgcmV0dXJuIG51bGxBdG9t
OworICAgIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGRvYy0+YXhPYmplY3RDYWNo
ZSgpLT5nZXRPckNyZWF0ZShkb2MtPnJlbmRlcmVyKCkpOworICAgIHJldHVybiBvYmotPnNjcmVl
blJlYWRlclZlcnNpb24oKTsKK30KKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmU7CkluZGV4
OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxl
IENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFNjcmVlblJlYWRlcl9oCisjZGVmaW5lIFNjcmVlblJlYWRlcl9oCisKKyNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBGcmFtZTsK
K2NsYXNzIFN0cmluZzsKKyAgICAKK2NsYXNzIFNjcmVlblJlYWRlciA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFNjcmVlblJlYWRlcj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNjcmVl
blJlYWRlcj4gY3JlYXRlKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNjcmVl
blJlYWRlcihmcmFtZSkpOyB9CisgICAgflNjcmVlblJlYWRlcigpOworICAgIAorICAgIFN0cmlu
ZyB2ZXJzaW9uKCkgY29uc3Q7CisgICAgYm9vbCBhY3RpdmUoKSBjb25zdDsKKyAgICBFbGVtZW50
KiBhY3RpdmVFbGVtZW50KCkgY29uc3Q7CisgICAgCisgICAgdm9pZCBkaXNjb25uZWN0RnJhbWUo
KTsKK3ByaXZhdGU6CisgICAgU2NyZWVuUmVhZGVyKEZyYW1lKik7CisgICAgRnJhbWUqIG1fZnJh
bWU7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU2NyZWVu
UmVhZGVyX2gKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsCShyZXZp
c2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5pZGwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB3aW5kb3cgeworCisgICAgaW50ZXJmYWNl
ICBbT21pdENvbnN0cnVjdG9yXSBTY3JlZW5SZWFkZXIgeworICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHZlcnNpb247CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIGFjdGl2ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgYWN0aXZlRWxl
bWVudDsKKyAgICB9OworCit9CisKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhP
YmplY3RDYWNoZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L0FYT2JqZWN0Q2FjaGVNYWMubW0JKHJldmlzaW9uIDY0MzU4KQorKysgV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Niw2ICs3
NiwxMiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhCiAgICAgICAg
IGNhc2UgQVhMYXlvdXRDb21wbGV0ZToKICAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9ICJB
WExheW91dENvbXBsZXRlIjsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYU2Ny
ZWVuQ2hhbmdlZDoKKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9ICJBWFNjcmVlbkNoYW5n
ZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhFbGVtZW50c0NoYW5nZWQ6
CisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAiQVhFbGVtZW50c0NoYW5nZWQiOworICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhMb2FkQ29tcGxldGU6CiAgICAgICAgICAg
ICBtYWNOb3RpZmljYXRpb24gPSAiQVhMb2FkQ29tcGxldGUiOwogICAgICAgICAgICAgYnJlYWs7
CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5
T2JqZWN0TWFjLm1tCShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjksOSArMjks
MjYgQEAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyLmgiCisjaW1wb3J0ICJBWE9iamVjdENhY2hlLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1NjcmVlblJlYWRlclJ1bm5p
bmcoKSBjb25zdAoreworICAgIC8vIElmIHRoZSBlbmhhbmNlZCB1c2VyIGludGVyZmFjZSBpcyBl
bmFibGVkLCBpdCBtZWFucyBWb2ljZU92ZXIgaXMgcnVubmluZy4KKyAgICByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQoKTsKK30K
KyAgICAKK0VsZW1lbnQqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlckZvY3VzZWRF
bGVtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKyAgICAKK1N0cmluZyBBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpzY3JlZW5SZWFkZXJWZXJzaW9uKCkgY29uc3QKK3sgCisgICAgcmV0dXJu
IG51bGxBdG9tOworfQorICAgIAogYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmls
aXR5SWdub3JlQXR0YWNobWVudCgpIGNvbnN0CiB7CiAgICAgTlNWaWV3KiBhdHRhY2htZW50ID0g
W3dyYXBwZXIoKSBhdHRhY2htZW50Vmlld107CkluZGV4OiBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9y
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAkocmV2aXNpb24g
NjQzNTgpCisrKyBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjMsNiArMjMsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5o
IgogCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2lu
Y2x1ZGUgIkNvb2tpZUphci5oIgogI2luY2x1ZGUgIkRPTU1pbWVUeXBlQXJyYXkuaCIKQEAgLTY2
LDYgKzY3LDEwIEBAIHZvaWQgTmF2aWdhdG9yOjpkaXNjb25uZWN0RnJhbWUoKQogICAgICAgICBt
X2dlb2xvY2F0aW9uLT5kaXNjb25uZWN0RnJhbWUoKTsKICAgICAgICAgbV9nZW9sb2NhdGlvbiA9
IDA7CiAgICAgfQorICAgIGlmIChtX2FjY2Vzc2liaWxpdHkpIHsKKyAgICAgICAgbV9hY2Nlc3Np
YmlsaXR5LT5kaXNjb25uZWN0RnJhbWUoKTsKKyAgICAgICAgbV9hY2Nlc3NpYmlsaXR5ID0gMDsK
KyAgICB9CiAgICAgbV9mcmFtZSA9IDA7CiB9CiAKQEAgLTEyNyw2ICsxMzIsMTMgQEAgRE9NTWlt
ZVR5cGVBcnJheSogTmF2aWdhdG9yOjptaW1lVHlwZXMoKQogICAgICAgICBtX21pbWVUeXBlcyA9
IERPTU1pbWVUeXBlQXJyYXk6OmNyZWF0ZShtX2ZyYW1lKTsKICAgICByZXR1cm4gbV9taW1lVHlw
ZXMuZ2V0KCk7CiB9CisgICAgCitBY2Nlc3NpYmlsaXR5KiBOYXZpZ2F0b3I6OmFjY2Vzc2liaWxp
dHkoKSBjb25zdAoreworICAgIGlmICghbV9hY2Nlc3NpYmlsaXR5KQorICAgICAgICBtX2FjY2Vz
c2liaWxpdHkgPSBBY2Nlc3NpYmlsaXR5OjpjcmVhdGUobV9mcmFtZSk7CisgICAgcmV0dXJuIG1f
YWNjZXNzaWJpbGl0eS5nZXQoKTsKK30KIAogYm9vbCBOYXZpZ2F0b3I6OmNvb2tpZUVuYWJsZWQo
KSBjb25zdAogewpJbmRleDogV2ViQ29yZS9wYWdlL05hdmlnYXRvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAkocmV2aXNpb24gNjQzNTgpCisrKyBXZWJDb3JlL3Bh
Z2UvTmF2aWdhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCisgICAgY2xhc3MgQWNjZXNzaWJpbGl0eTsKICAgICBjbGFzcyBET01N
aW1lVHlwZUFycmF5OwogICAgIGNsYXNzIERPTVBsdWdpbkFycmF5OwogICAgIGNsYXNzIEZyYW1l
OwpAQCAtNDYsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFN0cmluZyBs
YW5ndWFnZSgpIGNvbnN0OwogICAgICAgICBET01QbHVnaW5BcnJheSogcGx1Z2lucygpIGNvbnN0
OwogICAgICAgICBET01NaW1lVHlwZUFycmF5KiBtaW1lVHlwZXMoKSBjb25zdDsKKyAgICAgICAg
QWNjZXNzaWJpbGl0eSogYWNjZXNzaWJpbGl0eSgpIGNvbnN0OwogICAgICAgICBib29sIGNvb2tp
ZUVuYWJsZWQoKSBjb25zdDsKICAgICAgICAgYm9vbCBqYXZhRW5hYmxlZCgpIGNvbnN0OwogCkBA
IC02Niw2ICs2OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0YWJsZSBSZWZQ
dHI8RE9NUGx1Z2luQXJyYXk+IG1fcGx1Z2luczsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8RE9N
TWltZVR5cGVBcnJheT4gbV9taW1lVHlwZXM7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPEdlb2xv
Y2F0aW9uPiBtX2dlb2xvY2F0aW9uOworICAgICAgICBtdXRhYmxlIFJlZlB0cjxBY2Nlc3NpYmls
aXR5PiBtX2FjY2Vzc2liaWxpdHk7CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9wYWdlL05h
dmlnYXRvci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwJKHJl
dmlzaW9uIDY0MzU4KQorKysgV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDYgKzMxLDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgcGxhdGZvcm07CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01QbHVnaW5BcnJheSBwbHVnaW5zOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NTWlt
ZVR5cGVBcnJheSBtaW1lVHlwZXM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBY2Nlc3Np
YmlsaXR5IGFjY2Vzc2liaWxpdHk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgcHJvZHVjdDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBwcm9kdWN0
U3ViOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlbmRvcjsKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDY0MzU4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDctMjYgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6
YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBWDogU3VwcG9ydCBtZXRob2RzIGZvciB3ZWIgYXBwcyB0byBpbnRlcmFjdCB3aXRo
IHRoZSBuYXRpdmUgYWNjZXNzaWJpbGl0eSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzAwNQorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0eS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHkuaHRtbDogQWRk
ZWQuCisKIDIwMTAtMDctMzAgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0eS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNj
ZXNzaWJpbGl0eS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9qcy1hY2Nlc3NpYmlsaXR5LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorVGhpcyB0ZXN0cyB0aGUgamF2YXNjcmlwdCBpbnRl
cmZhY2UgdG8gYWNjZXNzaWJpbGl0eQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBheC5zY3JlZW5SZWFkZXIuYWN0aXZlIGlzIGZhbHNlCitQQVNTIGFkZGVkTm90aWZpY2F0
aW9uIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorUEFTUyBuYW1lIGlzICdBWFNjcmVlbkNoYW5nZWQnCitQQVNTIG5hbWUgaXMgJ0FYRWxl
bWVudHNDaGFuZ2VkJworCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9qcy1hY2Nlc3NpYmlsaXR5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0eS5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJp
bGl0eS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Cis8c2NyaXB0PgordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisg
ICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhlIGphdmFzY3JpcHQgaW50ZXJmYWNlIHRvIGFj
Y2Vzc2liaWxpdHkiKTsKKworICAgIHZhciBib2R5ID0gMDsKKyAgICB2YXIgbmFtZSA9IDA7Cisg
ICAgZnVuY3Rpb24gbm90aWZ5Q2FsbGJhY2sobm90aWZpY2F0aW9uKSB7ICAKKyAgICAgICAgbmFt
ZSA9IG5vdGlmaWNhdGlvbjsKKyAgICAgICAgaWYgKG5hbWUgPT0gIkFYU2NyZWVuQ2hhbmdlZCIp
IHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJuYW1lIiwgIidBWFNjcmVlbkNoYW5nZWQnIik7Cisg
ICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobmFtZSA9PSAiQVhFbGVtZW50c0NoYW5nZWQiKSB7
CisgICAgICAgICAgICBzaG91bGRCZSgibmFtZSIsICInQVhFbGVtZW50c0NoYW5nZWQnIik7Cisg
ICAgICAgICAgICBib2R5LnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAg
ICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9Cisg
ICAgfQorPC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGF4ID0gd2luZG93Lm5hdmlnYXRv
ci5hY2Nlc3NpYmlsaXR5OworCisgICAgLy8gc2NyZWVuIHJlYWRlciBzaG91bGQgbm90IGJlIHJ1
bm5pbmcgd2l0aGluIGxheW91dCB0ZXN0cy4KKyAgICBzaG91bGRCZSgiYXguc2NyZWVuUmVhZGVy
LmFjdGl2ZSIsICJmYWxzZSIpOworCisgICAgLy8gc2hvdWxkIG5vdCBjYXVzZSBhbiBlcnJvci4K
KyAgICB2YXIgdmVyc2lvbiA9IGF4LnNjcmVlblJlYWRlci52ZXJzaW9uOworCisgICAgLy8gc2hv
dWxkIG5vdCBjYXVzZSBhbiBlcnJvcgorICAgIHZhciBhY3RpdmVFbGVtZW50ID0gYXguc2NyZWVu
UmVhZGVyLmFjdGl2ZUVsZW1lbnQ7CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvZHkiKS5mb2N1cygp
OworCisgICAgICAgIGJvZHkgPSB3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNl
ZEVsZW1lbnQ7CisKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gYm9keS5hZGROb3Rp
ZmljYXRpb25MaXN0ZW5lcihub3RpZnlDYWxsYmFjayk7CisgICAgICAgIHNob3VsZEJlKCJhZGRl
ZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAgLy8gc2hvdWxkIGNhdXNlIGEgQVhT
Y3JlZW5DaGFuZ2VkIHRvIGJlIHNlbnQgb3V0LgorICAgICAgICBheC5zY3JlZW5DaGFuZ2VkKCk7
CisKKyAgICAgICAgLy8gc2hvdWxkIGNhdXNlIGEgQVhFbGVtZW50c0NoYW5nZWQgdG8gYmUgc2Vu
dCBvdXQuCisgICAgICAgIGF4LmVsZW1lbnRzQ2hhbmdlZCgpOworICAgIH0KKworICAgIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63074</attachid>
            <date>2010-07-30 10:17:28 -0700</date>
            <delta_ts>2010-07-30 10:41:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43005-20100730101727.patch</filename>
            <type>text/plain</type>
            <size>39726</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTYgQEAKKzIwMTAtMDctMzAgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBWDogU3VwcG9ydCBtZXRob2RzIGZvciB3ZWIgYXBwcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBu
YXRpdmUgYWNjZXNzaWJpbGl0eSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MzAwNQorCisgICAgICAgIEFkZHMgYSBuZXcgImFjY2Vzc2liaWxp
dHkiIG9iamVjdCB0aGF0IGhhbmdzIG9mZiBvZiAid2luZG93Lm5hdmlnYXRvciIuCisgICAgICAg
IFRoaXMgYWNjZXNzaWJpbGl0eSBvYmplY3Qgd2lsbCBhbGxvdyB3ZWIgYXBwcyB0byBpbnRlcmFj
dCB3aXRoIG5hdGl2ZSBhY2Nlc3NpYmlsaXR5IEFQSXMKKyAgICAgICAgdG8gcHJvdmlkZSBhIHJp
Y2hlciBleHBlcmllbmNlIChmb3Igc2NyZWVuIHJlYWRlciB1c2VycyBwcmltYXJpbHkpLgorCisg
ICAgICAgIFRlc3Q6IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHku
aHRtbAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjopOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eTo6QWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5Ojp+QWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5OjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eTo6c2NyZWVuQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjplbGVt
ZW50c0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6c2NyZWVuUmVh
ZGVyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjpjcmVhdGUpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eS5pZGw6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNTY3JlZW5SZWFkZXJSdW5uaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlckZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlclZlcnNpb24pOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTY3JlZW5SZWFkZXI6OlNjcmVlblJlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jl
ZW5SZWFkZXI6On5TY3JlZW5SZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVy
OjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVyOjphY3Rp
dmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVyOjphY3RpdmVFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmVlblJlYWRlcjo6dmVyc2lvbik6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9TY3JlZW5SZWFkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5S
ZWFkZXI6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNTY3JlZW5SZWFk
ZXJSdW5uaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVl
blJlYWRlckZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OnNjcmVlblJlYWRlclZlcnNpb24pOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvcjo6ZGlzY29ubmVjdEZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5hdmlnYXRvcjo6YWNjZXNzaWJpbGl0eSk6CisgICAgICAgICogcGFnZS9O
YXZpZ2F0b3IuaDoKKyAgICAgICAgKiBwYWdlL05hdmlnYXRvci5pZGw6CisKIDIwMTAtMDctMjkg
IEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgU3RldmUgQmxvY2suCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiA2NDM1OCkKKysr
IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgs
NyBAQAogCiBWUEFUSCA9IFwKICAgICAkKFdlYkNvcmUpIFwKKyAgICAkKFdlYkNvcmUpL2FjY2Vz
c2liaWxpdHkgXAogICAgICQoV2ViQ29yZSkvYmluZGluZ3MvanMgXAogICAgICQoV2ViQ29yZSkv
YmluZGluZ3Mvb2JqYyBcCiAgICAgJChXZWJDb3JlKS9jc3MgXApAQCAtNTAsNiArNTEsNyBAQCBW
UEFUSCA9IFwKIERPTV9DTEFTU0VTID0gXAogICAgIEFic3RyYWN0VmlldyBcCiAgICAgQWJzdHJh
Y3RXb3JrZXIgXAorICAgIEFjY2Vzc2liaWxpdHkgXAogICAgIEF0dHIgXAogICAgIEJhckluZm8g
XAogICAgIEJlZm9yZUxvYWRFdmVudCBcCkBAIC00MzAsNiArNDMyLDcgQEAgRE9NX0NMQVNTRVMg
PSBcCiAgICAgU1ZHWm9vbUFuZFBhbiBcCiAgICAgU1ZHWm9vbUV2ZW50IFwKICAgICBTY3JlZW4g
XAorICAgIFNjcmVlblJlYWRlciBcCiAgICAgU3R5bGVNZWRpYSBcCiAgICAgU3R5bGVTaGVldCBc
CiAgICAgU3R5bGVTaGVldExpc3QgXApJbmRleDogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA2NDM1OCkKKysrIFdl
YkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTU3NSw2ICs1NzUsOCBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvV2ViQ29yZVByZWZpeC5oIFwKIAlXZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmggXAorCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
LmNwcCBcCisJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaCBcCiAJV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgXAogCVdlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuaCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwIFwKQEAgLTYxNyw2ICs2MTksOCBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
VGFibGVIZWFkZXJDb250YWluZXIuaCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZVJvdy5jcHAgXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
VGFibGVSb3cuaCBcCisJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5jcHAgXAor
CVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaCBcCiAJV2ViQ29yZS9iaW5kaW5n
cy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdz
L2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pz
L0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggXApAQCAtNDQxNiw2ICs0NDIwLDcgQEAgRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9SZW1vdGVJbnNwZWN0b3JGcgogCSQoQU1fVl9HRU4pJChQRVJM
KSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAtSSQoV2ViQ29yZSkvaW5zcGVjdG9yICQo
V2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAkKElETF9QQVRI
OiU9LS1pbmNsdWRlICIlIikgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIgLS1k
ZWZpbmVzICJMQU5HVUFHRV9KQVZBU0NSSVBUPTEgJChGRUFUVVJFX0RFRklORVMpIiAtLWdlbmVy
YXRvciBJbnNwZWN0b3IgJDwKIAogSURMX1BBVEggOj0gXAorICAgICQoV2ViQ29yZSkvYWNjZXNz
aWJpbGl0eSBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9qcyBcCiAgICAgJChXZWJDb3JlKS9j
c3MgXAogICAgICQoV2ViQ29yZSkvZG9tIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gNjQzNTgpCisrKyBXZWJD
b3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0yNTQsNiArMjU0LDcgQEAgY29udGFp
bnMoREVGSU5FUywgRU5BQkxFX1dDU1M9MSkgewogfQogCiBTT1VSQ0VTICs9IFwKKyAgICBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuY3BwIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlJbWFnZU1hcExpbmsuY3BwIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlN
ZWRpYUNvbnRyb2xzLmNwcCBcICAgIAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1l
bnVMaXN0LmNwcCBcCkBAIC0yNzYsNiArMjc3LDcgQEAgU09VUkNFUyArPSBcCiAgICAgYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuY3BwIFwgICAgCiAgICAg
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwIFwgICAgCiAgICAgYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBcCisgICAgYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFk
ZXIuY3BwIFwKICAgICBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3Bw
IFwKICAgICBiaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9E
T01PYmplY3RIYXNoVGFibGVNYXAuY3BwIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02MjQsNiArNjI0LDE0
IEBACiAJCTI0RjU0RUFEMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlvbkNhY2hlSG9zdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjRGNTRFQUIx
MDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJMjU0MkY0REExMTY2QzI1QTAwRTg5QTg2IC8qIFVz
ZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDI1NDJGNEQ4MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGlj
YXRvci5jcHAgKi87IH07CiAJCTI1NDJGNERCMTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVy
ZUluZGljYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjU0MkY0RDkxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5kaWNhdG9yLmggKi87
IH07CisJCTI5NzQ0NjNEMTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjM3MTFGRTI1
N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmNwcCAqLzsgfTsKKwkJMjk3NDQ2M0UxMUZFMjU3
QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjM4MTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmls
aXR5LmggKi87IH07CisJCTI5NzQ0NjQwMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2
M0ExMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5jcHAgKi87IH07CisJCTI5NzQ0NjQx
MTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjNCMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3Jl
ZW5SZWFkZXIuaCAqLzsgfTsKKwkJMjk3NDQ2NkYxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNz
aWJpbGl0eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyOTc0NDY2RDExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmNwcCAqLzsgfTsK
KwkJMjk3NDQ2NzAxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2NkUxMUZFMkIzMjAw
NDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5oICovOyB9OworCQkyOTc0NDY4RTExRkUyQkUxMDA0
NTIzRjggLyogSlNTY3JlZW5SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2OEMxMUZFMkJFMTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVh
ZGVyLmNwcCAqLzsgfTsKKwkJMjk3NDQ2OEYxMUZFMkJFMTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVh
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTc0
NDY4RDExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIuaCAqLzsgfTsKIAkJMjlBODEy
MjYwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBODEyMDgwRkJCOUMx
RDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwICovOyB9OwogCQkyOUE4
MTIyNzBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVRhYmxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTgxMjA5MEZCQjlDMUQwMDUx
MDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGUuY3BwICovOyB9OwogCQkyOUE4MTIyODBGQkI5QzFE
MDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTgxMjBBMEZCQjlDMUQwMDUxMDI5MyAvKiBB
Y2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwICovOyB9OwpAQCAtNjMxOSw2ICs2MzI3LDE2IEBACiAJ
CTI0RjU0RUFCMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlvbkNhY2hlSG9zdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsaWNhdGlvbkNhY2hlSG9zdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNTQyRjREODExNjZDMjVBMDBFODlBODYgLyogVXNl
ckdlc3R1cmVJbmRpY2F0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyNTQyRjREOTExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlckdlc3R1cmVJbmRpY2F0b3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2MzcxMUZFMjU3QTAwNDUyM0Y4IC8qIEFj
Y2Vzc2liaWxpdHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNj
ZXNzaWJpbGl0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjM4MTFG
RTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFjY2Vzc2liaWxpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Mjk3NDQ2MzkxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEFjY2Vzc2liaWxpdHkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyOTc0NDYzQTExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmVlblJlYWRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjNCMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5S
ZWFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyZWVuUmVhZGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjNDMTFGRTI1N0EwMDQ1MjNGOCAv
KiBTY3JlZW5SZWFkZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcmVlblJlYWRlci5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjZEMTFGRTJCMzIwMDQ1MjNG
OCAvKiBKU0FjY2Vzc2liaWxpdHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNBY2Nlc3NpYmlsaXR5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Mjk3NDQ2NkUxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FjY2Vzc2liaWxpdHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2OEMxMUZFMkJFMTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2NyZWVuUmVhZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2OEQxMUZFMkJFMTAwNDUy
M0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTU2NyZWVuUmVhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QTgxMjA4
MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUE4MTIwOTBGQkI5QzFEMDA1MTAy
OTMgLyogQWNjZXNzaWJpbGl0eVRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlUYWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTI5QTgxMjBBMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eUFS
SUFHcmlkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNTQwLDYgKzExNTU4
LDkgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMjlBODEyMDUw
RkJCOUI1MjAwNTEwMjkzIC8qIG1hYyAqLywKKwkJCQkyOTc0NDYzNzExRkUyNTdBMDA0NTIzRjgg
LyogQWNjZXNzaWJpbGl0eS5jcHAgKi8sCisJCQkJMjk3NDQ2MzgxMUZFMjU3QTAwNDUyM0Y4IC8q
IEFjY2Vzc2liaWxpdHkuaCAqLywKKwkJCQkyOTc0NDYzOTExRkUyNTdBMDA0NTIzRjggLyogQWNj
ZXNzaWJpbGl0eS5pZGwgKi8sCiAJCQkJMjlBODEyMEEwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vz
c2liaWxpdHlBUklBR3JpZC5jcHAgKi8sCiAJCQkJMjlBODEyMTYwRkJCOUMxRDAwNTEwMjkzIC8q
IEFjY2Vzc2liaWxpdHlBUklBR3JpZC5oICovLAogCQkJCTI5QTgxMjEyMEZCQjlDMUQwMDUxMDI5
MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcCAqLywKQEAgLTExNTg0LDYgKzExNjA1
LDkgQEAKIAkJCQkyOUE4MTIxMzBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVRhYmxl
Um93LmggKi8sCiAJCQkJMjlBODEyMTkwRkJCOUMxRDAwNTEwMjkzIC8qIEFYT2JqZWN0Q2FjaGUu
Y3BwICovLAogCQkJCTI5QTgxMjFBMEZCQjlDMUQwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hlLmgg
Ki8sCisJCQkJMjk3NDQ2M0ExMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5jcHAgKi8s
CisJCQkJMjk3NDQ2M0IxMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5oICovLAorCQkJ
CTI5NzQ0NjNDMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuaWRsICovLAogCQkJKTsK
IAkJCXBhdGggPSBhY2Nlc3NpYmlsaXR5OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTE0NjUzLDYgKzE0Njc3LDggQEAKIAkJQTgzQjc5MTAwQ0NCMDAxQjAwMEIwODI1IC8qIENvcmUg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTI5NzQ0NjZE
MTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuY3BwICovLAorCQkJCTI5NzQ0NjZF
MTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuaCAqLywKIAkJCQk2NURGMzFEODA5
RDFDMTIyMDAwQkUzMjUgLyogSlNBdHRyLmNwcCAqLywKIAkJCQk2NURGMzFEOTA5RDFDMTIzMDAw
QkUzMjUgLyogSlNBdHRyLmggKi8sCiAJCQkJOTNGOUI3OUUwQkE2MDMyNjAwODU0MDY0IC8qIEpT
Q0RBVEFTZWN0aW9uLmNwcCAqLywKQEAgLTE0NzA1LDYgKzE0NzMxLDggQEAKIAkJCQk2NURGMzFF
QzA5RDFDQzYwMDAwQkUzMjUgLyogSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCAqLywKIAkJCQlF
NEI0MjM4NTBDQkZCNzNDMDBBRjJFQ0UgLyogSlNQcm9ncmVzc0V2ZW50LmNwcCAqLywKIAkJCQlF
NEI0MjM4NjBDQkZCNzNDMDBBRjJFQ0UgLyogSlNQcm9ncmVzc0V2ZW50LmggKi8sCisJCQkJMjk3
NDQ2OEMxMUZFMkJFMTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmNwcCAqLywKKwkJCQkyOTc0
NDY4RDExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIuaCAqLywKIAkJCQk2NURGMzFF
RjA5RDFDQzYwMDAwQkUzMjUgLyogSlNUZXh0LmNwcCAqLywKIAkJCQk2NURGMzFGMDA5RDFDQzYw
MDAwQkUzMjUgLyogSlNUZXh0LmggKi8sCiAJCQkpOwpAQCAtMTk4ODUsNiArMTk5MTMsMTAgQEAK
IAkJCQlDNTcyRUUwRTEyMDFDNzM2MDA3RDhGODIgLyogSURCSW5kZXhCYWNrZW5kSW1wbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQzU3MkVFMEYxMjAxQzczNjAwN0Q4RjgyIC8qIElEQkluZGV4QmFj
a2VuZEludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU3MkVFMUYxMjAxQzlCQzAwN0Q4
RjgyIC8qIEpTSURCSW5kZXguaCBpbiBIZWFkZXJzICovLAorCQkJCTI5NzQ0NjNFMTFGRTI1N0Ew
MDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmggaW4gSGVhZGVycyAqLywKKwkJCQkyOTc0NDY0MTEx
RkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkyOTc0
NDY3MDExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmggaW4gSGVhZGVycyAqLywK
KwkJCQkyOTc0NDY4RjExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtMjIyODYsNiArMjIzMTgsMTAgQEAKIAkJCQlDNTcyRUUwQTEyMDFDNzM2MDA3
RDhGODIgLyogSURCSW5kZXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU3MkVFMEQxMjAxQzcz
NjAwN0Q4RjgyIC8qIElEQkluZGV4QmFja2VuZEltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QzU3MkVFMUUxMjAxQzlCQzAwN0Q4RjgyIC8qIEpTSURCSW5kZXguY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMjk3NDQ2M0QxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMjk3NDQ2NDAxMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkyOTc0NDY2RjExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nl
c3NpYmlsaXR5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI5NzQ0NjhFMTFGRTJCRTEwMDQ1MjNG
OCAvKiBKU1NjcmVlblJlYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAkocmV2aXNpb24gNjQzNTgpCisrKyBXZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksNiArMTE5LDgg
QEAgcHVibGljOgogICAgICAgICBBWFJvd0NvdW50Q2hhbmdlZCwKICAgICAgICAgQVhSb3dDb2xs
YXBzZWQsCiAgICAgICAgIEFYUm93RXhwYW5kZWQsCisgICAgICAgIEFYU2NyZWVuQ2hhbmdlZCwK
KyAgICAgICAgQVhFbGVtZW50c0NoYW5nZWQKICAgICB9OwogCiAgICAgdm9pZCBwb3N0Tm90aWZp
Y2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBib29sIHBvc3RUb0VsZW1lbnQs
IFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5LmgiCisKKyNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdC5oIgorI2luY2x1
ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiU2NyZWVuUmVhZGVyLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworQWNjZXNzaWJpbGl0eTo6QWNjZXNzaWJpbGl0eShGcmFtZSogZnJhbWUpCisgICAg
OiBtX2ZyYW1lKGZyYW1lKSAKK3sKK30KKworQWNjZXNzaWJpbGl0eTo6fkFjY2Vzc2liaWxpdHko
KQoreworICAgIGRpc2Nvbm5lY3RGcmFtZSgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHk6OmRp
c2Nvbm5lY3RGcmFtZSgpCit7CisgICAgaWYgKG1fc2NyZWVuUmVhZGVyKSB7CisgICAgICAgIG1f
c2NyZWVuUmVhZGVyLT5kaXNjb25uZWN0RnJhbWUoKTsKKyAgICAgICAgbV9zY3JlZW5SZWFkZXIg
PSAwOworICAgIH0KKyAgICBtX2ZyYW1lID0gMDsKK30KKyAgICAKK3ZvaWQgQWNjZXNzaWJpbGl0
eTo6c2NyZWVuQ2hhbmdlZCgpCit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm47
CisgICAgCisgICAgRG9jdW1lbnQqIGRvYyA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CisgICAgaWYg
KCFkb2MpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBy
b290ID0gZG9jLT5heE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKGRvYy0+cmVuZGVyZXIoKSk7
CisgICAgZG9jLT5heE9iamVjdENhY2hlKCktPnBvc3ROb3RpZmljYXRpb24ocm9vdCwgZG9jLCBB
WE9iamVjdENhY2hlOjpBWFNjcmVlbkNoYW5nZWQsIGZhbHNlKTsKK30KKwordm9pZCBBY2Nlc3Np
YmlsaXR5OjplbGVtZW50c0NoYW5nZWQoKQoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAg
cmV0dXJuOworICAgIAorICAgIERvY3VtZW50KiBkb2MgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOwor
ICAgIGlmICghZG9jKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogcm9vdCA9IGRvYy0+YXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShkb2MtPnJlbmRl
cmVyKCkpOworICAgIGRvYy0+YXhPYmplY3RDYWNoZSgpLT5wb3N0Tm90aWZpY2F0aW9uKHJvb3Qs
IGRvYywgQVhPYmplY3RDYWNoZTo6QVhFbGVtZW50c0NoYW5nZWQsIGZhbHNlKTsKK30KKyAgICAK
K1NjcmVlblJlYWRlciogQWNjZXNzaWJpbGl0eTo6c2NyZWVuUmVhZGVyKCkgY29uc3QKK3sKKyAg
ICBpZiAoIW1fc2NyZWVuUmVhZGVyKQorICAgICAgICBtX3NjcmVlblJlYWRlciA9IFNjcmVlblJl
YWRlcjo6Y3JlYXRlKG1fZnJhbWUpOworICAgIAorICAgIHJldHVybiBtX3NjcmVlblJlYWRlci5n
ZXQoKTsKK30KKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpJbmRleDogV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHkuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRl
ciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAq
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBBY2Nlc3NpYmlsaXR5X2gKKyNkZWZpbmUgQWNjZXNzaWJpbGl0eV9oCisKKyNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitjbGFzcyBGcmFt
ZTsKK2NsYXNzIFNjcmVlblJlYWRlcjsKKyAgICAKK2NsYXNzIEFjY2Vzc2liaWxpdHkgOiBwdWJs
aWMgUmVmQ291bnRlZDxBY2Nlc3NpYmlsaXR5PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eT4gY3JlYXRlKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IEFjY2Vzc2liaWxpdHkoZnJhbWUpKTsgfQorICAgIH5BY2Nlc3NpYmlsaXR5KCk7Cisg
ICAgCisgICAgU2NyZWVuUmVhZGVyKiBzY3JlZW5SZWFkZXIoKSBjb25zdDsKKyAgICB2b2lkIHNj
cmVlbkNoYW5nZWQoKTsKKyAgICB2b2lkIGVsZW1lbnRzQ2hhbmdlZCgpOworICAgIAorICAgIHZv
aWQgZGlzY29ubmVjdEZyYW1lKCk7CisgICAgCitwcml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHko
RnJhbWUqKTsKKyAgICBGcmFtZSogbV9mcmFtZTsKKyAgICBtdXRhYmxlIFJlZlB0cjxTY3JlZW5S
ZWFkZXI+IG1fc2NyZWVuUmVhZGVyOworfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEFjY2Vzc2liaWxpdHlfaApJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHkuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5LmlkbAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5j
LiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBm
cm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHdp
bmRvdyB7CisKKyAgICBpbnRlcmZhY2UgW09taXRDb25zdHJ1Y3Rvcl0gQWNjZXNzaWJpbGl0eSB7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTY3JlZW5SZWFkZXIgc2NyZWVuUmVhZGVyOwor
CisgICAgICAgIHZvaWQgc2NyZWVuQ2hhbmdlZCgpOworICAgICAgICB2b2lkIGVsZW1lbnRzQ2hh
bmdlZCgpOworCisgICAgfTsKK30KSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5QWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5QWxsSW5PbmUuY3BwCShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QWxsSW5PbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw3IEBACiAvLyBUaGlzIGFsbC1pbi1vbmUgY3BwIGZpbGUgY3V0cyBkb3duIG9uIHRl
bXBsYXRlIGJsb2F0IHRvIGFsbG93IHVzIHRvIGJ1aWxkIG91ciBXaW5kb3dzIHJlbGVhc2UgYnVp
bGQuDQogDQogI2luY2x1ZGUgPEFYT2JqZWN0Q2FjaGUuY3BwPg0KKyNpbmNsdWRlIDxBY2Nlc3Np
YmlsaXR5LmNwcD4NCiAjaW5jbHVkZSA8QWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcD4NCiAjaW5j
bHVkZSA8QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHA+DQogI2luY2x1ZGUgPEFjY2Vzc2li
aWxpdHlBUklBR3JpZFJvdy5jcHA+DQpAQCAtNDMsMyArNDQsNCBAQAogI2luY2x1ZGUgPEFjY2Vz
c2liaWxpdHlUYWJsZUNvbHVtbi5jcHA+DQogI2luY2x1ZGUgPEFjY2Vzc2liaWxpdHlUYWJsZUhl
YWRlckNvbnRhaW5lci5jcHA+DQogI2luY2x1ZGUgPEFjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHA+
DQorI2luY2x1ZGUgPFNjcmVlblJlYWRlci5jcHA+DQpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2
LDYgKzQ2LDEyIEBACiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIuaCIKICNl
bmRpZgogCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBTVVBQT1JUU19KU0FDQ0VTU0lCSUxJ
VFkgMQorI2Vsc2UKKyNkZWZpbmUgU1VQUE9SVFNfSlNBQ0NFU1NJQklMSVRZIDAKKyNlbmRpZgor
CiB0eXBlZGVmIHN0cnVjdCBfTlNSYW5nZSBOU1JhbmdlOwogCiAjaWZkZWYgX19PQkpDX18KQEAg
LTU0OCw2ICs1NTQsMTIgQEAgcHVibGljOgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIFNVUFBPUlRT
X0pTQUNDRVNTSUJJTElUWQorICAgIGJvb2wgaXNTY3JlZW5SZWFkZXJSdW5uaW5nKCkgY29uc3Q7
CisgICAgRWxlbWVudCogc2NyZWVuUmVhZGVyRm9jdXNlZEVsZW1lbnQoKSBjb25zdDsKKyAgICBT
dHJpbmcgc2NyZWVuUmVhZGVyVmVyc2lvbigpIGNvbnN0OworI2VuZGlmCisgICAgCiAjaWYgSEFW
RShBQ0NFU1NJQklMSVRZKQogICAgIC8vIGEgcGxhdGZvcm0tc3BlY2lmaWMgbWV0aG9kIGZvciBk
ZXRlcm1pbmluZyBpZiBhbiBhdHRhY2htZW50IGlzIGlnbm9yZWQKICAgICBib29sIGFjY2Vzc2li
aWxpdHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3Q7CkBAIC01ODIsNiArNTk0LDEyIEBAIHByb3Rl
Y3RlZDoKICNlbmRpZgogfTsKIAorI2lmICFTVVBQT1JUU19KU0FDQ0VTU0lCSUxJVFkKK2lubGlu
ZSBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzU2NyZWVuUmVhZGVyUnVubmluZygpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CitpbmxpbmUgRWxlbWVudCogQWNjZXNzaWJpbGl0eU9iamVjdDo6
c2NyZWVuUmVhZGVyRm9jdXNlZEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBuaWw7IH0KK2lubGlu
ZSBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c2NyZWVuUmVhZGVyVmVyc2lvbigpIGNvbnN0
IHsgcmV0dXJuIG51bGxBdG9tOyB9CisjZW5kaWYKKyAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEFjY2Vzc2liaWxpdHlPYmplY3RfaApJbmRleDogV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L1NjcmVlblJlYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L1NjcmVlblJlYWRlci5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2FjY2Vzc2li
aWxpdHkvU2NyZWVuUmVhZGVyLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRl
ciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAq
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcmVlblJlYWRlci5oIgorCisjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIlN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NjcmVlblJl
YWRlcjo6U2NyZWVuUmVhZGVyKEZyYW1lKiBmcmFtZSkKKyAgICA6IG1fZnJhbWUoZnJhbWUpCit7
Cit9CisKK1NjcmVlblJlYWRlcjo6flNjcmVlblJlYWRlcigpCit7CisgICAgZGlzY29ubmVjdEZy
YW1lKCk7Cit9CisgICAgCit2b2lkIFNjcmVlblJlYWRlcjo6ZGlzY29ubmVjdEZyYW1lKCkKK3sK
KyAgICBtX2ZyYW1lID0gMDsKK30KKworYm9vbCBTY3JlZW5SZWFkZXI6OmFjdGl2ZSgpIGNvbnN0
Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAg
RG9jdW1lbnQqIGRvYyA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2MpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBk
b2MtPmF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoZG9jLT5yZW5kZXJlcigpKTsKKyAgICBy
ZXR1cm4gb2JqLT5pc1NjcmVlblJlYWRlclJ1bm5pbmcoKTsKK30KKyAgICAKK0VsZW1lbnQqIFNj
cmVlblJlYWRlcjo6YWN0aXZlRWxlbWVudCgpIGNvbnN0Cit7CisgICAgRG9jdW1lbnQqIGRvYyA9
IG1fZnJhbWUtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBkb2MtPmF4T2JqZWN0Q2Fj
aGUoKS0+Z2V0T3JDcmVhdGUoZG9jLT5yZW5kZXJlcigpKTsKKyAgICByZXR1cm4gb2JqLT5zY3Jl
ZW5SZWFkZXJGb2N1c2VkRWxlbWVudCgpOyAgICAKK30KKyAgICAKK1N0cmluZyBTY3JlZW5SZWFk
ZXI6OnZlcnNpb24oKSBjb25zdAoreworICAgIERvY3VtZW50KiBkb2MgPSBtX2ZyYW1lLT5kb2N1
bWVudCgpOworICAgIGlmICghZG9jKQorICAgICAgICByZXR1cm4gbnVsbEF0b207CisgICAgCisg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZG9jLT5heE9iamVjdENhY2hlKCktPmdldE9y
Q3JlYXRlKGRvYy0+cmVuZGVyZXIoKSk7CisgICAgcmV0dXJuIG9iai0+c2NyZWVuUmVhZGVyVmVy
c2lvbigpOworfQorICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZTsKSW5kZXg6IFdlYkNvcmUv
YWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vz
c2liaWxpdHkvU2NyZWVuUmVhZGVyLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2FjY2Vzc2li
aWxpdHkvU2NyZWVuUmVhZGVyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgU2NyZWVuUmVhZGVyX2gKKyNkZWZpbmUgU2NyZWVuUmVhZGVyX2gKKworI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworICAgIAorY2xhc3MgRWxlbWVudDsKK2NsYXNzIEZyYW1lOworY2xhc3MgU3Ry
aW5nOworICAgIAorY2xhc3MgU2NyZWVuUmVhZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8U2NyZWVu
UmVhZGVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2NyZWVuUmVhZGVyPiBj
cmVhdGUoRnJhbWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2NyZWVuUmVhZGVyKGZy
YW1lKSk7IH0KKyAgICB+U2NyZWVuUmVhZGVyKCk7CisgICAgCisgICAgU3RyaW5nIHZlcnNpb24o
KSBjb25zdDsKKyAgICBib29sIGFjdGl2ZSgpIGNvbnN0OworICAgIEVsZW1lbnQqIGFjdGl2ZUVs
ZW1lbnQoKSBjb25zdDsKKyAgICAKKyAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpOworcHJpdmF0
ZToKKyAgICBTY3JlZW5SZWFkZXIoRnJhbWUqKTsKKyAgICBGcmFtZSogbV9mcmFtZTsKK307Cisg
ICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTY3JlZW5SZWFkZXJfaApJ
bmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5pZGwJKHJldmlzaW9uIDApCisr
KyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmlkbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICog
ICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworbW9kdWxlIHdpbmRvdyB7CisKKyAgICBpbnRlcmZhY2UgIFtPbWl0Q29u
c3RydWN0b3JdIFNjcmVlblJlYWRlciB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgdmVyc2lvbjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gYWN0aXZl
OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBhY3RpdmVFbGVtZW50OworICAg
IH07CisKK30KKwpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hl
TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RD
YWNoZU1hYy5tbQkocmV2aXNpb24gNjQzNTgpCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L0FYT2JqZWN0Q2FjaGVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTc2LDYgKzc2LDEyIEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2EKICAgICAgICAgY2FzZSBBWExh
eW91dENvbXBsZXRlOgogICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gIkFYTGF5b3V0Q29t
cGxldGUiOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhTY3JlZW5DaGFuZ2Vk
OgorICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gIkFYU2NyZWVuQ2hhbmdlZCI7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWEVsZW1lbnRzQ2hhbmdlZDoKKyAgICAgICAg
ICAgIG1hY05vdGlmaWNhdGlvbiA9ICJBWEVsZW1lbnRzQ2hhbmdlZCI7CisgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBBWExvYWRDb21wbGV0ZToKICAgICAgICAgICAgIG1hY05vdGlm
aWNhdGlvbiA9ICJBWExvYWRDb21wbGV0ZSI7CiAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFdl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMu
bW0JKHJldmlzaW9uIDY0MzU4KQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3Np
YmlsaXR5T2JqZWN0TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5ICsyOSwyNiBAQAogI2lm
IEhBVkUoQUNDRVNTSUJJTElUWSkKIAogI2ltcG9ydCAiQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXIuaCIKKyNpbXBvcnQgIkFYT2JqZWN0Q2FjaGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Citib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzU2NyZWVuUmVhZGVyUnVubmluZygpIGNvbnN0
Cit7CisgICAgLy8gSWYgdGhlIGVuaGFuY2VkIHVzZXIgaW50ZXJmYWNlIGlzIGVuYWJsZWQsIGl0
IG1lYW5zIFZvaWNlT3ZlciBpcyBydW5uaW5nLgorICAgIHJldHVybiBBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCgpOworfQorICAgIAorRWxl
bWVudCogQWNjZXNzaWJpbGl0eU9iamVjdDo6c2NyZWVuUmVhZGVyRm9jdXNlZEVsZW1lbnQoKSBj
b25zdAoreworICAgIHJldHVybiAwOworfQorICAgIAorU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OnNjcmVlblJlYWRlclZlcnNpb24oKSBjb25zdAoreyAKKyAgICByZXR1cm4gbnVsbEF0b207
Cit9CisgICAgCiBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJZ25vcmVB
dHRhY2htZW50KCkgY29uc3QKIHsKICAgICBOU1ZpZXcqIGF0dGFjaG1lbnQgPSBbd3JhcHBlcigp
IGF0dGFjaG1lbnRWaWV3XTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCShyZXZpc2lvbiA2NDM1OCkKKysr
IFdlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAKKyNpbmNs
dWRlICJBY2Nlc3NpYmlsaXR5LmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ29v
a2llSmFyLmgiCiAjaW5jbHVkZSAiRE9NTWltZVR5cGVBcnJheS5oIgpAQCAtNjYsNiArNjcsMTAg
QEAgdm9pZCBOYXZpZ2F0b3I6OmRpc2Nvbm5lY3RGcmFtZSgpCiAgICAgICAgIG1fZ2VvbG9jYXRp
b24tPmRpc2Nvbm5lY3RGcmFtZSgpOwogICAgICAgICBtX2dlb2xvY2F0aW9uID0gMDsKICAgICB9
CisgICAgaWYgKG1fYWNjZXNzaWJpbGl0eSkgeworICAgICAgICBtX2FjY2Vzc2liaWxpdHktPmRp
c2Nvbm5lY3RGcmFtZSgpOworICAgICAgICBtX2FjY2Vzc2liaWxpdHkgPSAwOworICAgIH0KICAg
ICBtX2ZyYW1lID0gMDsKIH0KIApAQCAtMTI3LDYgKzEzMiwxMyBAQCBET01NaW1lVHlwZUFycmF5
KiBOYXZpZ2F0b3I6Om1pbWVUeXBlcygpCiAgICAgICAgIG1fbWltZVR5cGVzID0gRE9NTWltZVR5
cGVBcnJheTo6Y3JlYXRlKG1fZnJhbWUpOwogICAgIHJldHVybiBtX21pbWVUeXBlcy5nZXQoKTsK
IH0KKyAgICAKK0FjY2Vzc2liaWxpdHkqIE5hdmlnYXRvcjo6YWNjZXNzaWJpbGl0eSgpIGNvbnN0
Cit7CisgICAgaWYgKCFtX2FjY2Vzc2liaWxpdHkpCisgICAgICAgIG1fYWNjZXNzaWJpbGl0eSA9
IEFjY2Vzc2liaWxpdHk6OmNyZWF0ZShtX2ZyYW1lKTsKKyAgICByZXR1cm4gbV9hY2Nlc3NpYmls
aXR5LmdldCgpOworfQogCiBib29sIE5hdmlnYXRvcjo6Y29va2llRW5hYmxlZCgpIGNvbnN0CiB7
CkluZGV4OiBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
YWdlL05hdmlnYXRvci5oCShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUvcGFnZS9OYXZpZ2F0
b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKKyAgICBjbGFzcyBBY2Nlc3NpYmlsaXR5OwogICAgIGNsYXNzIERPTU1pbWVUeXBlQXJy
YXk7CiAgICAgY2xhc3MgRE9NUGx1Z2luQXJyYXk7CiAgICAgY2xhc3MgRnJhbWU7CkBAIC00Niw2
ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgU3RyaW5nIGxhbmd1YWdlKCkg
Y29uc3Q7CiAgICAgICAgIERPTVBsdWdpbkFycmF5KiBwbHVnaW5zKCkgY29uc3Q7CiAgICAgICAg
IERPTU1pbWVUeXBlQXJyYXkqIG1pbWVUeXBlcygpIGNvbnN0OworICAgICAgICBBY2Nlc3NpYmls
aXR5KiBhY2Nlc3NpYmlsaXR5KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgY29va2llRW5hYmxlZCgp
IGNvbnN0OwogICAgICAgICBib29sIGphdmFFbmFibGVkKCkgY29uc3Q7CiAKQEAgLTY2LDYgKzY4
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBtdXRhYmxlIFJlZlB0cjxET01QbHVn
aW5BcnJheT4gbV9wbHVnaW5zOwogICAgICAgICBtdXRhYmxlIFJlZlB0cjxET01NaW1lVHlwZUFy
cmF5PiBtX21pbWVUeXBlczsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8R2VvbG9jYXRpb24+IG1f
Z2VvbG9jYXRpb247CisgICAgICAgIG11dGFibGUgUmVmUHRyPEFjY2Vzc2liaWxpdHk+IG1fYWNj
ZXNzaWJpbGl0eTsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbAkocmV2aXNpb24gNjQz
NTgpCisrKyBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NiArMzEsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBwbGF0Zm9ybTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVBsdWdpbkFy
cmF5IHBsdWdpbnM7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01NaW1lVHlwZUFycmF5
IG1pbWVUeXBlczsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEFjY2Vzc2liaWxpdHkgYWNj
ZXNzaWJpbGl0eTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBwcm9kdWN0
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHByb2R1Y3RTdWI7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmVuZG9yOwpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gNjQzNTgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxMyBAQAorMjAxMC0wNy0yNiAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFY
OiBTdXBwb3J0IG1ldGhvZHMgZm9yIHdlYiBhcHBzIHRvIGludGVyYWN0IHdpdGggdGhlIG5hdGl2
ZSBhY2Nlc3NpYmlsaXR5IEFQSXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQzMDA1CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9qcy1hY2Nlc3NpYmlsaXR5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0eS5odG1sOiBBZGRlZC4KKwogMjAx
MC0wNy0zMCAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgU3RldmUgQmxvY2suCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
YWNjZXNzaWJpbGl0eS9qcy1hY2Nlc3NpYmlsaXR5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9qcy1hY2Nlc3NpYmlsaXR5
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9h
Y2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDEzIEBACitUaGlzIHRlc3RzIHRoZSBqYXZhc2NyaXB0IGludGVyZmFjZSB0byBh
Y2Nlc3NpYmlsaXR5CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGF4LnNj
cmVlblJlYWRlci5hY3RpdmUgaXMgZmFsc2UKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNT
IG5hbWUgaXMgJ0FYU2NyZWVuQ2hhbmdlZCcKK1BBU1MgbmFtZSBpcyAnQVhFbGVtZW50c0NoYW5n
ZWQnCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFj
Y2Vzc2liaWxpdHkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
YWNjZXNzaWJpbGl0eS9qcy1hY2Nlc3NpYmlsaXR5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9qcy1hY2Nlc3NpYmlsaXR5Lmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQ+Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisKKyAgICBkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0cyB0aGUgamF2YXNjcmlwdCBpbnRlcmZhY2UgdG8gYWNjZXNzaWJpbGl0
eSIpOworCisgICAgdmFyIGJvZHkgPSAwOworICAgIHZhciBuYW1lID0gMDsKKyAgICBmdW5jdGlv
biBub3RpZnlDYWxsYmFjayhub3RpZmljYXRpb24pIHsgIAorICAgICAgICBuYW1lID0gbm90aWZp
Y2F0aW9uOworICAgICAgICBpZiAobmFtZSA9PSAiQVhTY3JlZW5DaGFuZ2VkIikgeworICAgICAg
ICAgICAgc2hvdWxkQmUoIm5hbWUiLCAiJ0FYU2NyZWVuQ2hhbmdlZCciKTsKKyAgICAgICAgfQor
ICAgICAgICBlbHNlIGlmIChuYW1lID09ICJBWEVsZW1lbnRzQ2hhbmdlZCIpIHsKKyAgICAgICAg
ICAgIHNob3VsZEJlKCJuYW1lIiwgIidBWEVsZW1lbnRzQ2hhbmdlZCciKTsKKyAgICAgICAgICAg
IGJvZHkucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsKKyAgICAgICAgICAgIHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3Nj
cmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgYXggPSB3aW5kb3cubmF2aWdhdG9yLmFjY2Vzc2li
aWxpdHk7CisKKyAgICAvLyBzY3JlZW4gcmVhZGVyIHNob3VsZCBub3QgYmUgcnVubmluZyB3aXRo
aW4gbGF5b3V0IHRlc3RzLgorICAgIHNob3VsZEJlKCJheC5zY3JlZW5SZWFkZXIuYWN0aXZlIiwg
ImZhbHNlIik7CisKKyAgICAvLyBzaG91bGQgbm90IGNhdXNlIGFuIGVycm9yLgorICAgIHZhciB2
ZXJzaW9uID0gYXguc2NyZWVuUmVhZGVyLnZlcnNpb247CisKKyAgICAvLyBzaG91bGQgbm90IGNh
dXNlIGFuIGVycm9yCisgICAgdmFyIGFjdGl2ZUVsZW1lbnQgPSBheC5zY3JlZW5SZWFkZXIuYWN0
aXZlRWxlbWVudDsKKworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsK
KyAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKwor
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm9keSIpLmZvY3VzKCk7CisKKyAgICAg
ICAgYm9keSA9IHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsK
KworICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSBib2R5LmFkZE5vdGlmaWNhdGlvbkxp
c3RlbmVyKG5vdGlmeUNhbGxiYWNrKTsKKyAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0
aW9uIiwgInRydWUiKTsKKworICAgICAgICAvLyBzaG91bGQgY2F1c2UgYSBBWFNjcmVlbkNoYW5n
ZWQgdG8gYmUgc2VudCBvdXQuCisgICAgICAgIGF4LnNjcmVlbkNoYW5nZWQoKTsKKworICAgICAg
ICAvLyBzaG91bGQgY2F1c2UgYSBBWEVsZW1lbnRzQ2hhbmdlZCB0byBiZSBzZW50IG91dC4KKyAg
ICAgICAgYXguZWxlbWVudHNDaGFuZ2VkKCk7CisgICAgfQorCisgICAgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63082</attachid>
            <date>2010-07-30 10:41:35 -0700</date>
            <delta_ts>2010-07-30 11:04:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43005-20100730104134.patch</filename>
            <type>text/plain</type>
            <size>45845</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTYgQEAKKzIwMTAtMDctMzAgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBWDogU3VwcG9ydCBtZXRob2RzIGZvciB3ZWIgYXBwcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBu
YXRpdmUgYWNjZXNzaWJpbGl0eSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MzAwNQorCisgICAgICAgIEFkZHMgYSBuZXcgImFjY2Vzc2liaWxp
dHkiIG9iamVjdCB0aGF0IGhhbmdzIG9mZiBvZiAid2luZG93Lm5hdmlnYXRvciIuCisgICAgICAg
IFRoaXMgYWNjZXNzaWJpbGl0eSBvYmplY3Qgd2lsbCBhbGxvdyB3ZWIgYXBwcyB0byBpbnRlcmFj
dCB3aXRoIG5hdGl2ZSBhY2Nlc3NpYmlsaXR5IEFQSXMKKyAgICAgICAgdG8gcHJvdmlkZSBhIHJp
Y2hlciBleHBlcmllbmNlIChmb3Igc2NyZWVuIHJlYWRlciB1c2VycyBwcmltYXJpbHkpLgorCisg
ICAgICAgIFRlc3Q6IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHku
aHRtbAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjopOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eTo6QWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5Ojp+QWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5OjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eTo6c2NyZWVuQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjplbGVt
ZW50c0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6c2NyZWVuUmVh
ZGVyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjpjcmVhdGUpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eS5pZGw6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNTY3JlZW5SZWFkZXJSdW5uaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlckZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlclZlcnNpb24pOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTY3JlZW5SZWFkZXI6OlNjcmVlblJlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jl
ZW5SZWFkZXI6On5TY3JlZW5SZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVy
OjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVyOjphY3Rp
dmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVyOjphY3RpdmVFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmVlblJlYWRlcjo6dmVyc2lvbik6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9TY3JlZW5SZWFkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5S
ZWFkZXI6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNTY3JlZW5SZWFk
ZXJSdW5uaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVl
blJlYWRlckZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OnNjcmVlblJlYWRlclZlcnNpb24pOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvcjo6ZGlzY29ubmVjdEZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5hdmlnYXRvcjo6YWNjZXNzaWJpbGl0eSk6CisgICAgICAgICogcGFnZS9O
YXZpZ2F0b3IuaDoKKyAgICAgICAgKiBwYWdlL05hdmlnYXRvci5pZGw6CisKIDIwMTAtMDctMjkg
IEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgU3RldmUgQmxvY2suCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkocmV2aXNpb24gNjQzNTgpCisrKyBX
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogI2luY2x1ZGUgIkhUTUxFbGVtZW50RmFjdG9yeS5jcHAiCiAjaW5jbHVkZSAiSlNBYnN0cmFj
dFdvcmtlci5jcHAiCiAjaW5jbHVkZSAiSlNBdHRyLmNwcCIKKyNpbmNsdWRlICJKU0FjY2Vzc2li
aWxpdHkuY3BwIgogI2luY2x1ZGUgIkpTQmFySW5mby5jcHAiCiAjaW5jbHVkZSAiSlNCZWZvcmVM
b2FkRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTQmxvYi5jcHAiCkBAIC0yMjQsNiArMjI1LDcgQEAK
ICNpbmNsdWRlICJKU1JlY3QuY3BwIgogI2luY2x1ZGUgIkpTUkdCQ29sb3IuY3BwIgogI2luY2x1
ZGUgIkpTU2NyZWVuLmNwcCIKKyNpbmNsdWRlICJKU1NjcmVlblJlYWRlci5jcHAiCiAjaW5jbHVk
ZSAiSlNTY3JpcHRQcm9maWxlLmNwcCIKICNpbmNsdWRlICJKU1NjcmlwdFByb2ZpbGVOb2RlLmNw
cCIKICNpbmNsdWRlICJKU1NoYXJlZFdvcmtlci5jcHAiCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShy
ZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBj
b3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiBWUEFUSCA9IFwKICAgICAkKFdlYkNvcmUpIFwKKyAg
ICAkKFdlYkNvcmUpL2FjY2Vzc2liaWxpdHkgXAogICAgICQoV2ViQ29yZSkvYmluZGluZ3MvanMg
XAogICAgICQoV2ViQ29yZSkvYmluZGluZ3Mvb2JqYyBcCiAgICAgJChXZWJDb3JlKS9jc3MgXApA
QCAtNTAsNiArNTEsNyBAQCBWUEFUSCA9IFwKIERPTV9DTEFTU0VTID0gXAogICAgIEFic3RyYWN0
VmlldyBcCiAgICAgQWJzdHJhY3RXb3JrZXIgXAorICAgIEFjY2Vzc2liaWxpdHkgXAogICAgIEF0
dHIgXAogICAgIEJhckluZm8gXAogICAgIEJlZm9yZUxvYWRFdmVudCBcCkBAIC00MzAsNiArNDMy
LDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgU1ZHWm9vbUFuZFBhbiBcCiAgICAgU1ZHWm9vbUV2
ZW50IFwKICAgICBTY3JlZW4gXAorICAgIFNjcmVlblJlYWRlciBcCiAgICAgU3R5bGVNZWRpYSBc
CiAgICAgU3R5bGVTaGVldCBcCiAgICAgU3R5bGVTaGVldExpc3QgXApJbmRleDogV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiA2NDM1OCkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAg
LTk5LDYgKzk5LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmggXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNBYnN0cmFjdFdvcmtlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNBYnN0cmFjdFdvcmtlci5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQWNjZXNzaWJp
bGl0eS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBY2Nlc3NpYmlsaXR5LmggXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcnJheUJ1ZmZlci5jcHAgXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNBcnJheUJ1ZmZlci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
QXJyYXlCdWZmZXJWaWV3LmNwcCBcCkBAIC00NjYsNiArNDY4LDggQEAgd2ViY29yZV9idWlsdF9z
b3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUkdCQ29sb3IuaCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NjcmVlbi5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNTY3JlZW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NjcmVlblJlYWRlci5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTY3JlZW5SZWFkZXIuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1NjcmlwdFByb2ZpbGUuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTU2NyaXB0UHJvZmlsZS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2Ny
aXB0UHJvZmlsZU5vZGUuY3BwIFwKQEAgLTU3NSw2ICs1NzksOCBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVdlYkNvcmUvV2ViQ29yZVByZWZpeC5oIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHAgXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmggXAorCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmNwcCBcCisJV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5QVJJQUdyaWQuaCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlBUklBR3JpZENlbGwuY3BwIFwKQEAgLTYxNyw2ICs2MjMsOCBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250
YWluZXIuaCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5j
cHAgXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCBcCisJ
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5jcHAgXAorCVdlYkNvcmUvYWNjZXNz
aWJpbGl0eS9TY3JlZW5SZWFkZXIuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNv
dXJjZVByb3ZpZGVyLmggXApAQCAtNDQxNiw2ICs0NDI0LDcgQEAgRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9SZW1vdGVJbnNwZWN0b3JGcgogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkv
YmluZGluZ3Mvc2NyaXB0cyAtSSQoV2ViQ29yZSkvaW5zcGVjdG9yICQoV2ViQ29yZSkvYmluZGlu
Z3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAkKElETF9QQVRIOiU9LS1pbmNsdWRlICIl
IikgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIgLS1kZWZpbmVzICJMQU5HVUFH
RV9KQVZBU0NSSVBUPTEgJChGRUFUVVJFX0RFRklORVMpIiAtLWdlbmVyYXRvciBJbnNwZWN0b3Ig
JDwKIAogSURMX1BBVEggOj0gXAorICAgICQoV2ViQ29yZSkvYWNjZXNzaWJpbGl0eSBcCiAgICAg
JChXZWJDb3JlKS9iaW5kaW5ncy9qcyBcCiAgICAgJChXZWJDb3JlKS9jc3MgXAogICAgICQoV2Vi
Q29yZSkvZG9tIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUvV2ViQ29yZS5n
eXBpCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsOCBAQAogewogICAgICd2YXJpYWJsZXMnOiB7
CiAgICAgICAgICd3ZWJjb3JlX2JpbmRpbmdzX2lkbF9maWxlcyc6IFsKKyAgICAgICAgICAgICdh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaWRsJywKKyAgICAgICAgICAgICdhY2Nlc3NpYmls
aXR5L1NjcmVlblJlYWRlci5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9DU1NDaGFyc2V0UnVsZS5p
ZGwnLAogICAgICAgICAgICAgJ2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsJywKICAgICAgICAgICAg
ICdjc3MvQ1NTSW1wb3J0UnVsZS5pZGwnLApAQCAtNDMyLDYgKzQzNCw4IEBACiAgICAgICAgICAg
ICAjIFNvdXJjZS9IZWFkZXIgRmlsZXMKICAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuY3BwJywKICAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aCcsCisgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmNwcCcsCisgICAg
ICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmgnLAogICAgICAgICAgICAgJ2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCcsCiAgICAgICAgICAgICAnYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuaCcsCiAgICAgICAgICAgICAnYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcCcsCkBAIC00NzQsNiArNDc4LDgg
QEAKICAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNv
bnRhaW5lci5oJywKICAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJs
ZVJvdy5jcHAnLAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
Um93LmgnLAorICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmNwcCcsCisg
ICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaCcsCiAgICAgICAgICAgICAn
YWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwJywKICAgICAg
ICAgICAgICdhY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FjY2Vzc2liaWxpdHlPYmplY3RDaHJvbWl1
bS5jcHAnLAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXIuaCcsCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJpCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlzaW9uIDY0MzU4KQorKysgV2ViQ29yZS9XZWJD
b3JlLnByaQkod29ya2luZyBjb3B5KQpAQCAtMjU2LDYgKzI1Niw4IEBAIFNUWUxFU0hFRVRTX0VN
QkVEID0gXAogICAgICQkUFdEL2Nzcy90aGVtZVF0TWFlbW81LmNzcwogCiBJRExfQklORElOR1Mg
Kz0gXAorICAgIGNzcy9BY2Nlc3NpYmlsaXR5LmlkbCBcCisgICAgY3NzL1NjcmVlblJlYWRlci5p
ZGwgXAogICAgIGNzcy9Db3VudGVyLmlkbCBcCiAgICAgY3NzL0NTU0NoYXJzZXRSdWxlLmlkbCBc
CiAgICAgY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBy
bwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA2NDM1OCkKKysr
IFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTI1NCw2ICsyNTQsNyBAQCBj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfV0NTUz0xKSB7CiB9CiAKIFNPVVJDRVMgKz0gXAorICAg
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5jcHAgXAogICAgIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUltYWdlTWFwTGluay5jcHAgXAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lZGlhQ29udHJvbHMuY3BwIFwgICAgCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TWVudUxpc3QuY3BwIFwKQEAgLTI3Niw2ICsyNzcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5jcHAgXCAgICAK
ICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAgXCAgICAKICAgICBh
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIFwKKyAgICBhY2Nlc3NpYmlsaXR5L1NjcmVl
blJlYWRlci5jcHAgXAogICAgIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAgXAogICAgIGJpbmRpbmdz
L2pzL0RPTU9iamVjdEhhc2hUYWJsZU1hcC5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTYwMSw2ICs2MDEsNjIgQEAKIAkJ
CQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRP
dXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0FjY2Vzc2liaWxp
dHkuY3BwIg0KKwkJCQk+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVi
dWd8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJ
CTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0i
UmVsZWFzZXxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0K
KwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlO
YW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0K
KwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0
aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktp
dE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQWNjZXNzaWJp
bGl0eS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0
aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xK
U0F0dHIuY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTEwNjg1LDYg
KzEwNzQxLDYyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2
ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNTY3JlZW5SZWFkZXIuY3BwIg0KKwkJCQk+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1
cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdp
bjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9v
bA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVn
X0FsbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJ
CQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRp
dmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTU2NyZWVuUmVhZGVyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJ
CQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXFdlYkNvcmVcRGVyaXZlZFNv
dXJjZXNcSlNTaGFyZWRXb3JrZXIuY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KQEAgLTIwOTI5LDYgKzIxMDQxLDEzIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8Rmls
ZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGFjY2Vzc2liaWxpdHlcQWNjZXNzaWJpbGl0eS5jcHAi
DQorCQkJCT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGFjY2Vzc2liaWxpdHlc
QWNjZXNzaWJpbGl0eS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwIg0K
IAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTIyMDE2LDYgKzIyMTM1LDEzIEBA
CiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5XEFYT2JqZWN0Q2FjaGUuaCINCiAJ
CQkJPg0KIAkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGFjY2Vz
c2liaWxpdHlcU2NyZWVuUmVhZGVyLmNwcCINCisJCQkJPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYWNjZXNzaWJpbGl0eVxTY3JlZW5SZWFkZXIuaCINCisJCQkJPg0KKwkJCTwv
RmlsZT4NCiAJCQk8RmlsdGVyDQogCQkJCU5hbWU9IndpbiINCiAJCQkJPg0KSW5kZXg6IFdlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA2NDM1OCkKKysr
IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC02MjQsNiArNjI0LDE0IEBACiAJCTI0RjU0RUFEMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBs
aWNhdGlvbkNhY2hlSG9zdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjRGNTRFQUIxMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJMjU0MkY0REExMTY2
QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI1NDJGNEQ4MTE2NkMyNUEwMEU4OUE4NiAv
KiBVc2VyR2VzdHVyZUluZGljYXRvci5jcHAgKi87IH07CiAJCTI1NDJGNERCMTE2NkMyNUEwMEU4
OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjU0MkY0RDkxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0
dXJlSW5kaWNhdG9yLmggKi87IH07CisJCTI5NzQ0NjNEMTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nl
c3NpYmlsaXR5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI5NzQ0NjM3MTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmNwcCAqLzsgfTsK
KwkJMjk3NDQ2M0UxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjM4MTFGRTI1N0EwMDQ1
MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmggKi87IH07CisJCTI5NzQ0NjQwMTFGRTI1N0EwMDQ1MjNG
OCAvKiBTY3JlZW5SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMjk3NDQ2M0ExMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5jcHAg
Ki87IH07CisJCTI5NzQ0NjQxMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjNCMTFGRTI1
N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuaCAqLzsgfTsKKwkJMjk3NDQ2NkYxMUZFMkIzMjAw
NDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyOTc0NDY2RDExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3Np
YmlsaXR5LmNwcCAqLzsgfTsKKwkJMjk3NDQ2NzAxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNz
aWJpbGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Mjk3NDQ2NkUxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5oICovOyB9OworCQky
OTc0NDY4RTExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2OEMxMUZFMkJFMTAwNDUy
M0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmNwcCAqLzsgfTsKKwkJMjk3NDQ2OEYxMUZFMkJFMTAwNDUy
M0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyOTc0NDY4RDExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIu
aCAqLzsgfTsKIAkJMjlBODEyMjYwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjlBODEyMDgwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwICovOyB9OwogCQkyOUE4MTIyNzBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVRh
YmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5
QTgxMjA5MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGUuY3BwICovOyB9Owog
CQkyOUE4MTIyODBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTgxMjBBMEZC
QjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwICovOyB9OwpAQCAtNjMx
OSw2ICs2MzI3LDE2IEBACiAJCTI0RjU0RUFCMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlv
bkNhY2hlSG9zdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsaWNhdGlv
bkNhY2hlSG9zdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNTQyRjREODExNjZD
MjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyNTQyRjREOTExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1
cmVJbmRpY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlckdlc3R1
cmVJbmRpY2F0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2MzcxMUZF
MjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTI5NzQ0NjM4MTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2MzkxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxp
dHkuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEFjY2Vzc2liaWxpdHkuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0NDYzQTExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVu
UmVhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmVlblJl
YWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjNCMTFGRTI1N0Ew
MDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2NyZWVuUmVhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjND
MTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFNjcmVlblJlYWRlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0
NjZEMTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBY2Nlc3NpYmlsaXR5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2NkUxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJp
bGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FjY2Vzc2liaWxpdHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2OEMxMUZFMkJFMTAwNDUyM0Y4
IC8qIEpTU2NyZWVuUmVhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTU2NyZWVuUmVhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3
NDQ2OEQxMUZFMkJFMTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2NyZWVuUmVhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTI5QTgxMjA4MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUE4
MTIwOTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVRhYmxlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlUYWJsZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QTgxMjBBMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nl
c3NpYmlsaXR5QVJJQUdyaWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTExNTQwLDYgKzExNTU4LDkgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCiAJCQkJMjlBODEyMDUwRkJCOUI1MjAwNTEwMjkzIC8qIG1hYyAqLywKKwkJCQkyOTc0NDYz
NzExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5jcHAgKi8sCisJCQkJMjk3NDQ2Mzgx
MUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuaCAqLywKKwkJCQkyOTc0NDYzOTExRkUy
NTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5pZGwgKi8sCiAJCQkJMjlBODEyMEEwRkJCOUMx
RDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgKi8sCiAJCQkJMjlBODEyMTYw
RkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZC5oICovLAogCQkJCTI5QTgx
MjEyMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcCAqLywK
QEAgLTExNTg0LDYgKzExNjA1LDkgQEAKIAkJCQkyOUE4MTIxMzBGQkI5QzFEMDA1MTAyOTMgLyog
QWNjZXNzaWJpbGl0eVRhYmxlUm93LmggKi8sCiAJCQkJMjlBODEyMTkwRkJCOUMxRDAwNTEwMjkz
IC8qIEFYT2JqZWN0Q2FjaGUuY3BwICovLAogCQkJCTI5QTgxMjFBMEZCQjlDMUQwMDUxMDI5MyAv
KiBBWE9iamVjdENhY2hlLmggKi8sCisJCQkJMjk3NDQ2M0ExMUZFMjU3QTAwNDUyM0Y4IC8qIFNj
cmVlblJlYWRlci5jcHAgKi8sCisJCQkJMjk3NDQ2M0IxMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVl
blJlYWRlci5oICovLAorCQkJCTI5NzQ0NjNDMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFk
ZXIuaWRsICovLAogCQkJKTsKIAkJCXBhdGggPSBhY2Nlc3NpYmlsaXR5OwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTE0NjUzLDYgKzE0Njc3LDggQEAKIAkJQTgzQjc5MTAwQ0NCMDAx
QjAwMEIwODI1IC8qIENvcmUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCTI5NzQ0NjZEMTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuY3Bw
ICovLAorCQkJCTI5NzQ0NjZFMTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuaCAq
LywKIAkJCQk2NURGMzFEODA5RDFDMTIyMDAwQkUzMjUgLyogSlNBdHRyLmNwcCAqLywKIAkJCQk2
NURGMzFEOTA5RDFDMTIzMDAwQkUzMjUgLyogSlNBdHRyLmggKi8sCiAJCQkJOTNGOUI3OUUwQkE2
MDMyNjAwODU0MDY0IC8qIEpTQ0RBVEFTZWN0aW9uLmNwcCAqLywKQEAgLTE0NzA1LDYgKzE0NzMx
LDggQEAKIAkJCQk2NURGMzFFQzA5RDFDQzYwMDAwQkUzMjUgLyogSlNQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24uaCAqLywKIAkJCQlFNEI0MjM4NTBDQkZCNzNDMDBBRjJFQ0UgLyogSlNQcm9ncmVzc0V2
ZW50LmNwcCAqLywKIAkJCQlFNEI0MjM4NjBDQkZCNzNDMDBBRjJFQ0UgLyogSlNQcm9ncmVzc0V2
ZW50LmggKi8sCisJCQkJMjk3NDQ2OEMxMUZFMkJFMTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVy
LmNwcCAqLywKKwkJCQkyOTc0NDY4RDExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIu
aCAqLywKIAkJCQk2NURGMzFFRjA5RDFDQzYwMDAwQkUzMjUgLyogSlNUZXh0LmNwcCAqLywKIAkJ
CQk2NURGMzFGMDA5RDFDQzYwMDAwQkUzMjUgLyogSlNUZXh0LmggKi8sCiAJCQkpOwpAQCAtMTk4
ODUsNiArMTk5MTMsMTAgQEAKIAkJCQlDNTcyRUUwRTEyMDFDNzM2MDA3RDhGODIgLyogSURCSW5k
ZXhCYWNrZW5kSW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU3MkVFMEYxMjAxQzczNjAwN0Q4
RjgyIC8qIElEQkluZGV4QmFja2VuZEludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU3
MkVFMUYxMjAxQzlCQzAwN0Q4RjgyIC8qIEpTSURCSW5kZXguaCBpbiBIZWFkZXJzICovLAorCQkJ
CTI5NzQ0NjNFMTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmggaW4gSGVhZGVycyAq
LywKKwkJCQkyOTc0NDY0MTExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkyOTc0NDY3MDExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5
LmggaW4gSGVhZGVycyAqLywKKwkJCQkyOTc0NDY4RjExRkUyQkUxMDA0NTIzRjggLyogSlNTY3Jl
ZW5SZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjIyODYsNiArMjIzMTgsMTAgQEAKIAkJCQlD
NTcyRUUwQTEyMDFDNzM2MDA3RDhGODIgLyogSURCSW5kZXguY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQzU3MkVFMEQxMjAxQzczNjAwN0Q4RjgyIC8qIElEQkluZGV4QmFja2VuZEltcGwuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQzU3MkVFMUUxMjAxQzlCQzAwN0Q4RjgyIC8qIEpTSURCSW5kZXgu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjk3NDQ2M0QxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vz
c2liaWxpdHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjk3NDQ2NDAxMUZFMjU3QTAwNDUyM0Y4
IC8qIFNjcmVlblJlYWRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyOTc0NDY2RjExRkUyQjMy
MDA0NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI5NzQ0
NjhFMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
SW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAkocmV2aXNpb24gNjQzNTgp
CisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTksNiArMTE5LDggQEAgcHVibGljOgogICAgICAgICBBWFJvd0NvdW50Q2hhbmdlZCwK
ICAgICAgICAgQVhSb3dDb2xsYXBzZWQsCiAgICAgICAgIEFYUm93RXhwYW5kZWQsCisgICAgICAg
IEFYU2NyZWVuQ2hhbmdlZCwKKyAgICAgICAgQVhFbGVtZW50c0NoYW5nZWQKICAgICB9OwogCiAg
ICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBi
b29sIHBvc3RUb0VsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKSW5kZXg6
IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5jcHAJKHJldmlzaW9uIDApCisrKyBX
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5jcHAJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUg
b2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAg
ICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5
LmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0
eU9iamVjdC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiU2NyZWVuUmVhZGVyLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQWNjZXNzaWJpbGl0eTo6QWNjZXNzaWJpbGl0eShG
cmFtZSogZnJhbWUpCisgICAgOiBtX2ZyYW1lKGZyYW1lKSAKK3sKK30KKworQWNjZXNzaWJpbGl0
eTo6fkFjY2Vzc2liaWxpdHkoKQoreworICAgIGRpc2Nvbm5lY3RGcmFtZSgpOworfQorCit2b2lk
IEFjY2Vzc2liaWxpdHk6OmRpc2Nvbm5lY3RGcmFtZSgpCit7CisgICAgaWYgKG1fc2NyZWVuUmVh
ZGVyKSB7CisgICAgICAgIG1fc2NyZWVuUmVhZGVyLT5kaXNjb25uZWN0RnJhbWUoKTsKKyAgICAg
ICAgbV9zY3JlZW5SZWFkZXIgPSAwOworICAgIH0KKyAgICBtX2ZyYW1lID0gMDsKK30KKyAgICAK
K3ZvaWQgQWNjZXNzaWJpbGl0eTo6c2NyZWVuQ2hhbmdlZCgpCit7CisgICAgaWYgKCFtX2ZyYW1l
KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgRG9jdW1lbnQqIGRvYyA9IG1fZnJhbWUtPmRv
Y3VtZW50KCk7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiByb290ID0gZG9jLT5heE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRl
KGRvYy0+cmVuZGVyZXIoKSk7CisgICAgZG9jLT5heE9iamVjdENhY2hlKCktPnBvc3ROb3RpZmlj
YXRpb24ocm9vdCwgZG9jLCBBWE9iamVjdENhY2hlOjpBWFNjcmVlbkNoYW5nZWQsIGZhbHNlKTsK
K30KKwordm9pZCBBY2Nlc3NpYmlsaXR5OjplbGVtZW50c0NoYW5nZWQoKQoreworICAgIGlmICgh
bV9mcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIERvY3VtZW50KiBkb2MgPSBtX2Zy
YW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jKQorICAgICAgICByZXR1cm47CisgICAgCisg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdCA9IGRvYy0+YXhPYmplY3RDYWNoZSgpLT5nZXRP
ckNyZWF0ZShkb2MtPnJlbmRlcmVyKCkpOworICAgIGRvYy0+YXhPYmplY3RDYWNoZSgpLT5wb3N0
Tm90aWZpY2F0aW9uKHJvb3QsIGRvYywgQVhPYmplY3RDYWNoZTo6QVhFbGVtZW50c0NoYW5nZWQs
IGZhbHNlKTsKK30KKyAgICAKK1NjcmVlblJlYWRlciogQWNjZXNzaWJpbGl0eTo6c2NyZWVuUmVh
ZGVyKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fc2NyZWVuUmVhZGVyKQorICAgICAgICBtX3NjcmVl
blJlYWRlciA9IFNjcmVlblJlYWRlcjo6Y3JlYXRlKG1fZnJhbWUpOworICAgIAorICAgIHJldHVy
biBtX3NjcmVlblJlYWRlci5nZXQoKTsKK30KKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KwpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5oCShyZXZpc2lvbiAwKQor
KysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICog
ICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBBY2Nlc3NpYmlsaXR5X2gKKyNkZWZpbmUgQWNjZXNzaWJp
bGl0eV9oCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisgICAgCitjbGFzcyBGcmFtZTsKK2NsYXNzIFNjcmVlblJlYWRlcjsKKyAgICAKK2NsYXNzIEFj
Y2Vzc2liaWxpdHkgOiBwdWJsaWMgUmVmQ291bnRlZDxBY2Nlc3NpYmlsaXR5PiB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eT4gY3JlYXRlKEZyYW1lKiBmcmFt
ZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHkoZnJhbWUpKTsgfQorICAgIH5B
Y2Nlc3NpYmlsaXR5KCk7CisgICAgCisgICAgU2NyZWVuUmVhZGVyKiBzY3JlZW5SZWFkZXIoKSBj
b25zdDsKKyAgICB2b2lkIHNjcmVlbkNoYW5nZWQoKTsKKyAgICB2b2lkIGVsZW1lbnRzQ2hhbmdl
ZCgpOworICAgIAorICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lKCk7CisgICAgCitwcml2YXRlOgor
ICAgIEFjY2Vzc2liaWxpdHkoRnJhbWUqKTsKKyAgICBGcmFtZSogbV9mcmFtZTsKKyAgICBtdXRh
YmxlIFJlZlB0cjxTY3JlZW5SZWFkZXI+IG1fc2NyZWVuUmVhZGVyOworfTsKKyAgICAKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEFjY2Vzc2liaWxpdHlfaApJbmRleDogV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmlkbAkocmV2aXNpb24gMCkKKysrIFdlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBB
cHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0
cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworbW9kdWxlIHdpbmRvdyB7CisKKyAgICBpbnRlcmZhY2UgW09taXRDb25zdHJ1Y3Rv
cl0gQWNjZXNzaWJpbGl0eSB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTY3JlZW5SZWFk
ZXIgc2NyZWVuUmVhZGVyOworCisgICAgICAgIHZvaWQgc2NyZWVuQ2hhbmdlZCgpOworICAgICAg
ICB2b2lkIGVsZW1lbnRzQ2hhbmdlZCgpOworCisgICAgfTsKK30KSW5kZXg6IFdlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAkocmV2aXNpb24gNjQzNTgpCisrKyBX
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC00Niw2ICs0NiwxMiBAQAogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
LmgiCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgU1VQUE9SVFNfSlNBQ0NF
U1NJQklMSVRZIDEKKyNlbHNlCisjZGVmaW5lIFNVUFBPUlRTX0pTQUNDRVNTSUJJTElUWSAwCisj
ZW5kaWYKKwogdHlwZWRlZiBzdHJ1Y3QgX05TUmFuZ2UgTlNSYW5nZTsKIAogI2lmZGVmIF9fT0JK
Q19fCkBAIC01NDgsNiArNTU0LDE2IEBAIHB1YmxpYzoKICNlbmRpZgogI2VuZGlmCiAKKyNpZiBT
VVBQT1JUU19KU0FDQ0VTU0lCSUxJVFkKKyAgICBib29sIGlzU2NyZWVuUmVhZGVyUnVubmluZygp
IGNvbnN0OworICAgIEVsZW1lbnQqIHNjcmVlblJlYWRlckZvY3VzZWRFbGVtZW50KCkgY29uc3Q7
CisgICAgU3RyaW5nIHNjcmVlblJlYWRlclZlcnNpb24oKSBjb25zdDsKKyNlbHNlCisgICAgYm9v
bCBpc1NjcmVlblJlYWRlclJ1bm5pbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIEVs
ZW1lbnQqIHNjcmVlblJlYWRlckZvY3VzZWRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbmlsOyB9
CisgICAgU3RyaW5nIHNjcmVlblJlYWRlclZlcnNpb24oKSBjb25zdCB7IHJldHVybiBudWxsQXRv
bTsgfQorI2VuZGlmCisgICAgCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQogICAgIC8vIGEgcGxh
dGZvcm0tc3BlY2lmaWMgbWV0aG9kIGZvciBkZXRlcm1pbmluZyBpZiBhbiBhdHRhY2htZW50IGlz
IGlnbm9yZWQKICAgICBib29sIGFjY2Vzc2liaWxpdHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3Q7
CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmNwcAkocmV2aXNpb24gMCkK
KysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuY3BwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisg
KiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2NyZWVuUmVh
ZGVyLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJp
bGl0eU9iamVjdC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudC5o
IgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiU3RyaW5nLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworU2NyZWVuUmVhZGVyOjpTY3JlZW5SZWFkZXIoRnJhbWUqIGZyYW1lKQorICAg
IDogbV9mcmFtZShmcmFtZSkKK3sKK30KKworU2NyZWVuUmVhZGVyOjp+U2NyZWVuUmVhZGVyKCkK
K3sKKyAgICBkaXNjb25uZWN0RnJhbWUoKTsKK30KKyAgICAKK3ZvaWQgU2NyZWVuUmVhZGVyOjpk
aXNjb25uZWN0RnJhbWUoKQoreworICAgIG1fZnJhbWUgPSAwOworfQorCitib29sIFNjcmVlblJl
YWRlcjo6YWN0aXZlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAKKyAgICBEb2N1bWVudCogZG9jID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsK
KyAgICBpZiAoIWRvYykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iaiA9IGRvYy0+YXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShkb2Mt
PnJlbmRlcmVyKCkpOworICAgIHJldHVybiBvYmotPmlzU2NyZWVuUmVhZGVyUnVubmluZygpOwor
fQorICAgIAorRWxlbWVudCogU2NyZWVuUmVhZGVyOjphY3RpdmVFbGVtZW50KCkgY29uc3QKK3sK
KyAgICBEb2N1bWVudCogZG9jID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvYykK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
aiA9IGRvYy0+YXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShkb2MtPnJlbmRlcmVyKCkpOwor
ICAgIHJldHVybiBvYmotPnNjcmVlblJlYWRlckZvY3VzZWRFbGVtZW50KCk7ICAgIAorfQorICAg
IAorU3RyaW5nIFNjcmVlblJlYWRlcjo6dmVyc2lvbigpIGNvbnN0Cit7CisgICAgRG9jdW1lbnQq
IGRvYyA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVy
biBudWxsQXRvbTsKKyAgICAKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBkb2MtPmF4
T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoZG9jLT5yZW5kZXJlcigpKTsKKyAgICByZXR1cm4g
b2JqLT5zY3JlZW5SZWFkZXJWZXJzaW9uKCk7Cit9CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlOwpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaAkocmV2aXNpb24gMCkK
KysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICog
ICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBTY3JlZW5SZWFkZXJfaAorI2RlZmluZSBTY3JlZW5SZWFk
ZXJfaAorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitjbGFzcyBFbGVtZW50OworY2xh
c3MgRnJhbWU7CitjbGFzcyBTdHJpbmc7CisgICAgCitjbGFzcyBTY3JlZW5SZWFkZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxTY3JlZW5SZWFkZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTY3JlZW5SZWFkZXI+IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTY3JlZW5SZWFkZXIoZnJhbWUpKTsgfQorICAgIH5TY3JlZW5SZWFkZXIoKTsKKyAgICAK
KyAgICBTdHJpbmcgdmVyc2lvbigpIGNvbnN0OworICAgIGJvb2wgYWN0aXZlKCkgY29uc3Q7Cisg
ICAgRWxlbWVudCogYWN0aXZlRWxlbWVudCgpIGNvbnN0OworICAgIAorICAgIHZvaWQgZGlzY29u
bmVjdEZyYW1lKCk7Citwcml2YXRlOgorICAgIFNjcmVlblJlYWRlcihGcmFtZSopOworICAgIEZy
YW1lKiBtX2ZyYW1lOworfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIFNjcmVlblJlYWRlcl9oCkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvU2NyZWVuUmVh
ZGVyLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVy
LmlkbAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIu
aWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
IDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBu
b3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgd2luZG93IHsKKworICAg
IGludGVyZmFjZSAgW09taXRDb25zdHJ1Y3Rvcl0gU2NyZWVuUmVhZGVyIHsKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZXJzaW9uOworICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiBhY3RpdmU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50
IGFjdGl2ZUVsZW1lbnQ7CisgICAgfTsKKworfQorCkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQkod29ya2luZyBjb3B5KQpA
QCAtNzYsNiArNzYsMTIgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmlj
YQogICAgICAgICBjYXNlIEFYTGF5b3V0Q29tcGxldGU6CiAgICAgICAgICAgICBtYWNOb3RpZmlj
YXRpb24gPSAiQVhMYXlvdXRDb21wbGV0ZSI7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBBWFNjcmVlbkNoYW5nZWQ6CisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAiQVhT
Y3JlZW5DaGFuZ2VkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYRWxlbWVu
dHNDaGFuZ2VkOgorICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gIkFYRWxlbWVudHNDaGFu
Z2VkIjsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYTG9hZENvbXBsZXRlOgog
ICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gIkFYTG9hZENvbXBsZXRlIjsKICAgICAgICAg
ICAgIGJyZWFrOwpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5
T2JqZWN0TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNj
ZXNzaWJpbGl0eU9iamVjdE1hYy5tbQkocmV2aXNpb24gNjQzNTgpCisrKyBXZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0JKHdvcmtpbmcgY29weSkKQEAg
LTI5LDkgKzI5LDI2IEBACiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQogCiAjaW1wb3J0ICJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlci5oIgorI2ltcG9ydCAiQVhPYmplY3RDYWNoZS5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNTY3JlZW5S
ZWFkZXJSdW5uaW5nKCkgY29uc3QKK3sKKyAgICAvLyBJZiB0aGUgZW5oYW5jZWQgdXNlciBpbnRl
cmZhY2UgaXMgZW5hYmxlZCwgaXQgbWVhbnMgVm9pY2VPdmVyIGlzIHJ1bm5pbmcuCisgICAgcmV0
dXJuIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFi
bGVkKCk7Cit9CisgICAgCitFbGVtZW50KiBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzY3JlZW5SZWFk
ZXJGb2N1c2VkRWxlbWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisgICAgCitTdHJp
bmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c2NyZWVuUmVhZGVyVmVyc2lvbigpIGNvbnN0Cit7IAor
ICAgIHJldHVybiBudWxsQXRvbTsKK30KKyAgICAKIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6
YWNjZXNzaWJpbGl0eUlnbm9yZUF0dGFjaG1lbnQoKSBjb25zdAogewogICAgIE5TVmlldyogYXR0
YWNobWVudCA9IFt3cmFwcGVyKCkgYXR0YWNobWVudFZpZXddOwpJbmRleDogV2ViQ29yZS9wYWdl
L05hdmlnYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAJ
KHJldmlzaW9uIDY0MzU4KQorKysgV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJO
YXZpZ2F0b3IuaCIKIAorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHkuaCIKICNpbmNsdWRlICJDaHJv
bWUuaCIKICNpbmNsdWRlICJDb29raWVKYXIuaCIKICNpbmNsdWRlICJET01NaW1lVHlwZUFycmF5
LmgiCkBAIC02Niw2ICs2NywxMCBAQCB2b2lkIE5hdmlnYXRvcjo6ZGlzY29ubmVjdEZyYW1lKCkK
ICAgICAgICAgbV9nZW9sb2NhdGlvbi0+ZGlzY29ubmVjdEZyYW1lKCk7CiAgICAgICAgIG1fZ2Vv
bG9jYXRpb24gPSAwOwogICAgIH0KKyAgICBpZiAobV9hY2Nlc3NpYmlsaXR5KSB7CisgICAgICAg
IG1fYWNjZXNzaWJpbGl0eS0+ZGlzY29ubmVjdEZyYW1lKCk7CisgICAgICAgIG1fYWNjZXNzaWJp
bGl0eSA9IDA7CisgICAgfQogICAgIG1fZnJhbWUgPSAwOwogfQogCkBAIC0xMjcsNiArMTMyLDEz
IEBAIERPTU1pbWVUeXBlQXJyYXkqIE5hdmlnYXRvcjo6bWltZVR5cGVzKCkKICAgICAgICAgbV9t
aW1lVHlwZXMgPSBET01NaW1lVHlwZUFycmF5OjpjcmVhdGUobV9mcmFtZSk7CiAgICAgcmV0dXJu
IG1fbWltZVR5cGVzLmdldCgpOwogfQorICAgIAorQWNjZXNzaWJpbGl0eSogTmF2aWdhdG9yOjph
Y2Nlc3NpYmlsaXR5KCkgY29uc3QKK3sKKyAgICBpZiAoIW1fYWNjZXNzaWJpbGl0eSkKKyAgICAg
ICAgbV9hY2Nlc3NpYmlsaXR5ID0gQWNjZXNzaWJpbGl0eTo6Y3JlYXRlKG1fZnJhbWUpOworICAg
IHJldHVybiBtX2FjY2Vzc2liaWxpdHkuZ2V0KCk7Cit9CiAKIGJvb2wgTmF2aWdhdG9yOjpjb29r
aWVFbmFibGVkKCkgY29uc3QKIHsKSW5kZXg6IFdlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgJKHJldmlzaW9uIDY0MzU4KQorKysg
V2ViQ29yZS9wYWdlL05hdmlnYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorICAgIGNsYXNzIEFjY2Vzc2liaWxpdHk7CiAgICAg
Y2xhc3MgRE9NTWltZVR5cGVBcnJheTsKICAgICBjbGFzcyBET01QbHVnaW5BcnJheTsKICAgICBj
bGFzcyBGcmFtZTsKQEAgLTQ2LDYgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBTdHJpbmcgbGFuZ3VhZ2UoKSBjb25zdDsKICAgICAgICAgRE9NUGx1Z2luQXJyYXkqIHBsdWdp
bnMoKSBjb25zdDsKICAgICAgICAgRE9NTWltZVR5cGVBcnJheSogbWltZVR5cGVzKCkgY29uc3Q7
CisgICAgICAgIEFjY2Vzc2liaWxpdHkqIGFjY2Vzc2liaWxpdHkoKSBjb25zdDsKICAgICAgICAg
Ym9vbCBjb29raWVFbmFibGVkKCkgY29uc3Q7CiAgICAgICAgIGJvb2wgamF2YUVuYWJsZWQoKSBj
b25zdDsKIApAQCAtNjYsNiArNjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIG11
dGFibGUgUmVmUHRyPERPTVBsdWdpbkFycmF5PiBtX3BsdWdpbnM7CiAgICAgICAgIG11dGFibGUg
UmVmUHRyPERPTU1pbWVUeXBlQXJyYXk+IG1fbWltZVR5cGVzOwogICAgICAgICBtdXRhYmxlIFJl
ZlB0cjxHZW9sb2NhdGlvbj4gbV9nZW9sb2NhdGlvbjsKKyAgICAgICAgbXV0YWJsZSBSZWZQdHI8
QWNjZXNzaWJpbGl0eT4gbV9hY2Nlc3NpYmlsaXR5OwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNv
cmUvcGFnZS9OYXZpZ2F0b3IuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9OYXZpZ2F0
b3IuaWRsCShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBsYXRmb3JtOwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NUGx1Z2luQXJyYXkgcGx1Z2luczsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTU1pbWVUeXBlQXJyYXkgbWltZVR5cGVzOworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgQWNjZXNzaWJpbGl0eSBhY2Nlc3NpYmlsaXR5OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHByb2R1Y3Q7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgcHJvZHVjdFN1YjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZW5k
b3I7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NDM1OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA3LTI2ICBDaHJpcyBGbGVpemFj
aCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQVg6IFN1cHBvcnQgbWV0aG9kcyBmb3Igd2ViIGFwcHMgdG8gaW50
ZXJhY3Qgd2l0aCB0aGUgbmF0aXZlIGFjY2Vzc2liaWxpdHkgQVBJcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDMwMDUKKworICAgICAgICAqIHBsYXRm
b3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHktZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9qcy1hY2Nlc3NpYmlsaXR5
Lmh0bWw6IEFkZGVkLgorCiAyMDEwLTA3LTMwICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHktZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2pzLWFjY2Vzc2liaWxpdHktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0eS1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKK1RoaXMgdGVzdHMgdGhlIGphdmFz
Y3JpcHQgaW50ZXJmYWNlIHRvIGFjY2Vzc2liaWxpdHkKKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgYXguc2NyZWVuUmVhZGVyLmFjdGl2ZSBpcyBmYWxzZQorUEFTUyBhZGRl
ZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKK1BBU1MgbmFtZSBpcyAnQVhTY3JlZW5DaGFuZ2VkJworUEFTUyBuYW1l
IGlzICdBWEVsZW1lbnRzQ2hhbmdlZCcKKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0eS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHkuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pz
LWFjY2Vzc2liaWxpdHkuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2OCBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdD4KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBm
YWxzZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKwor
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNj
cmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoZSBqYXZhc2NyaXB0IGludGVy
ZmFjZSB0byBhY2Nlc3NpYmlsaXR5Iik7CisKKyAgICB2YXIgYm9keSA9IDA7CisgICAgdmFyIG5h
bWUgPSAwOworICAgIGZ1bmN0aW9uIG5vdGlmeUNhbGxiYWNrKG5vdGlmaWNhdGlvbikgeyAgCisg
ICAgICAgIG5hbWUgPSBub3RpZmljYXRpb247CisgICAgICAgIGlmIChuYW1lID09ICJBWFNjcmVl
bkNoYW5nZWQiKSB7CisgICAgICAgICAgICBzaG91bGRCZSgibmFtZSIsICInQVhTY3JlZW5DaGFu
Z2VkJyIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKG5hbWUgPT0gIkFYRWxlbWVudHND
aGFuZ2VkIikgeworICAgICAgICAgICAgc2hvdWxkQmUoIm5hbWUiLCAiJ0FYRWxlbWVudHNDaGFu
Z2VkJyIpOworICAgICAgICAgICAgYm9keS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOwor
ICAgICAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBheCA9IHdpbmRv
dy5uYXZpZ2F0b3IuYWNjZXNzaWJpbGl0eTsKKworICAgIC8vIHNjcmVlbiByZWFkZXIgc2hvdWxk
IG5vdCBiZSBydW5uaW5nIHdpdGhpbiBsYXlvdXQgdGVzdHMuCisgICAgc2hvdWxkQmUoImF4LnNj
cmVlblJlYWRlci5hY3RpdmUiLCAiZmFsc2UiKTsKKworICAgIC8vIHNob3VsZCBub3QgY2F1c2Ug
YW4gZXJyb3IuCisgICAgdmFyIHZlcnNpb24gPSBheC5zY3JlZW5SZWFkZXIudmVyc2lvbjsKKwor
ICAgIC8vIHNob3VsZCBub3QgY2F1c2UgYW4gZXJyb3IKKyAgICB2YXIgYWN0aXZlRWxlbWVudCA9
IGF4LnNjcmVlblJlYWRlci5hY3RpdmVFbGVtZW50OworCisgICAgaWYgKHdpbmRvdy5hY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib2R5
IikuZm9jdXMoKTsKKworICAgICAgICBib2R5ID0gd2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9s
bGVyLmZvY3VzZWRFbGVtZW50OworCisgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IGJv
ZHkuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZ5Q2FsbGJhY2spOworICAgICAgICBzaG91
bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgIC8vIHNob3VsZCBj
YXVzZSBhIEFYU2NyZWVuQ2hhbmdlZCB0byBiZSBzZW50IG91dC4KKyAgICAgICAgYXguc2NyZWVu
Q2hhbmdlZCgpOworCisgICAgICAgIC8vIHNob3VsZCBjYXVzZSBhIEFYRWxlbWVudHNDaGFuZ2Vk
IHRvIGJlIHNlbnQgb3V0LgorICAgICAgICBheC5lbGVtZW50c0NoYW5nZWQoKTsKKyAgICB9CisK
KyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63086</attachid>
            <date>2010-07-30 11:04:13 -0700</date>
            <delta_ts>2010-07-30 14:25:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43005-20100730110412.patch</filename>
            <type>text/plain</type>
            <size>47716</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTYgQEAKKzIwMTAtMDctMzAgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBWDogU3VwcG9ydCBtZXRob2RzIGZvciB3ZWIgYXBwcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBu
YXRpdmUgYWNjZXNzaWJpbGl0eSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MzAwNQorCisgICAgICAgIEFkZHMgYSBuZXcgImFjY2Vzc2liaWxp
dHkiIG9iamVjdCB0aGF0IGhhbmdzIG9mZiBvZiAid2luZG93Lm5hdmlnYXRvciIuCisgICAgICAg
IFRoaXMgYWNjZXNzaWJpbGl0eSBvYmplY3Qgd2lsbCBhbGxvdyB3ZWIgYXBwcyB0byBpbnRlcmFj
dCB3aXRoIG5hdGl2ZSBhY2Nlc3NpYmlsaXR5IEFQSXMKKyAgICAgICAgdG8gcHJvdmlkZSBhIHJp
Y2hlciBleHBlcmllbmNlIChmb3Igc2NyZWVuIHJlYWRlciB1c2VycyBwcmltYXJpbHkpLgorCisg
ICAgICAgIFRlc3Q6IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHku
aHRtbAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjopOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eTo6QWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5Ojp+QWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5OjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eTo6c2NyZWVuQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjplbGVt
ZW50c0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6c2NyZWVuUmVh
ZGVyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjpjcmVhdGUpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eS5pZGw6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNTY3JlZW5SZWFkZXJSdW5uaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlckZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlclZlcnNpb24pOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTY3JlZW5SZWFkZXI6OlNjcmVlblJlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jl
ZW5SZWFkZXI6On5TY3JlZW5SZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVy
OjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVyOjphY3Rp
dmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVyOjphY3RpdmVFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmVlblJlYWRlcjo6dmVyc2lvbik6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9TY3JlZW5SZWFkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5S
ZWFkZXI6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNTY3JlZW5SZWFk
ZXJSdW5uaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVl
blJlYWRlckZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OnNjcmVlblJlYWRlclZlcnNpb24pOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvcjo6ZGlzY29ubmVjdEZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5hdmlnYXRvcjo6YWNjZXNzaWJpbGl0eSk6CisgICAgICAgICogcGFnZS9O
YXZpZ2F0b3IuaDoKKyAgICAgICAgKiBwYWdlL05hdmlnYXRvci5pZGw6CisKIDIwMTAtMDctMjkg
IEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgU3RldmUgQmxvY2suCkluZGV4OiBXZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdz
Lm1rCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsJ
KHJldmlzaW9uIDY0MzU4KQorKysgV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5t
awkod29ya2luZyBjb3B5KQpAQCAtMjYzLDYgKzI2MywyMSBAQCBMT0NBTF9HRU5FUkFURURfU09V
UkNFUyArPSAkKEdFTikKICMgYWJvdmUgcnVsZXMuICBTcGVjaWZ5aW5nIHRoaXMgZXhwbGljaXRs
eSBtYWtlcyAtajIgd29yay4KICQocGF0c3Vic3QgJS5oLCUuY3BwLCQoR0VOKSk6ICQoaW50ZXJt
ZWRpYXRlcykvYmluZGluZ3MvJS5jcHAgOiAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzLyUuaAog
CisjIEFjY2Vzc2liaWxpdHkKK0dFTiA6PSBcCisgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5n
cy9WOEFjY2Vzc2liaWxpdHkuaAorICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhTY3Jl
ZW5SZWFkZXIuaAorCiskKEdFTik6IFBSSVZBVEVfUEFUSCA6PSAkKExPQ0FMX1BBVEgpCiskKEdF
Tik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBTT1VSQ0VfUk9PVD0kKFBSSVZBVEVfUEFUSCkgcGVy
bCAtSSQoUFJJVkFURV9QQVRIKS9iaW5kaW5ncy9zY3JpcHRzICQoUFJJVkFURV9QQVRIKS9iaW5k
aW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RF
RklORVMpIExBTkdVQUdFX0pBVkFTQ1JJUFQiIC0tZ2VuZXJhdG9yIFY4IC0taW5jbHVkZSBkb20g
LS1pbmNsdWRlIGh0bWwgLS1vdXRwdXRkaXIgJChkaXIgJEApICQ8CiskKEdFTik6ICQoaW50ZXJt
ZWRpYXRlcykvYmluZGluZ3MvVjglLmggOiAkKExPQ0FMX1BBVEgpL2FjY2Vzc2liaWxpdHkvJS5p
ZGwgJChqc19iaW5kaW5nX3NjcmlwdHMpCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkK
K0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjIFdlIGFsc28gbmVlZCB0aGUg
LmNwcCBmaWxlcywgd2hpY2ggYXJlIGdlbmVyYXRlZCBhcyBzaWRlIGVmZmVjdHMgb2YgdGhlCisj
IGFib3ZlIHJ1bGVzLiAgU3BlY2lmeWluZyB0aGlzIGV4cGxpY2l0bHkgbWFrZXMgLWoyIHdvcmsu
CiskKHBhdHN1YnN0ICUuaCwlLmNwcCwkKEdFTikpOiAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdz
LyUuY3BwIDogJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy8lLmgKKwogIyBQYWdlCiBHRU4gOj0g
XAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhCYXJJbmZvLmggXApJbmRleDogV2Vi
Q29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQW5kcm9p
ZC5qc2NiaW5kaW5ncy5tawkocmV2aXNpb24gNjQzNTgpCisrKyBXZWJDb3JlL0FuZHJvaWQuanNj
YmluZGluZ3MubWsJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDcgQEAgQklORElOR19DX0lO
Q0xVREVTIDo9IFwKIAkkKEpBVkFTQ1JJUFRDT1JFX1BBVEgpL3dyZWMgXAogCSQoSkFWQVNDUklQ
VENPUkVfUEFUSCkvRm9yd2FyZGluZ0hlYWRlcnMgXAogCVwKKwkkKGJhc2VfaW50ZXJtZWRpYXRl
cykvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5IFwKIAkkKGJhc2VfaW50ZXJtZWRpYXRlcykvV2ViQ29y
ZS9iaW5kaW5ncy9qcyBcCiAJJChiYXNlX2ludGVybWVkaWF0ZXMpL1dlYkNvcmUvZG9tIFwKIAkk
KGJhc2VfaW50ZXJtZWRpYXRlcykvV2ViQ29yZS9odG1sL2NhbnZhcyBcCkluZGV4OiBXZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LmNwcAkocmV2aXNpb24gNjQzNTgpCisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkhUTUxFbGVtZW50RmFjdG9y
eS5jcHAiCiAjaW5jbHVkZSAiSlNBYnN0cmFjdFdvcmtlci5jcHAiCiAjaW5jbHVkZSAiSlNBdHRy
LmNwcCIKKyNpbmNsdWRlICJKU0FjY2Vzc2liaWxpdHkuY3BwIgogI2luY2x1ZGUgIkpTQmFySW5m
by5jcHAiCiAjaW5jbHVkZSAiSlNCZWZvcmVMb2FkRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTQmxv
Yi5jcHAiCkBAIC0yMjQsNiArMjI1LDcgQEAKICNpbmNsdWRlICJKU1JlY3QuY3BwIgogI2luY2x1
ZGUgIkpTUkdCQ29sb3IuY3BwIgogI2luY2x1ZGUgIkpTU2NyZWVuLmNwcCIKKyNpbmNsdWRlICJK
U1NjcmVlblJlYWRlci5jcHAiCiAjaW5jbHVkZSAiSlNTY3JpcHRQcm9maWxlLmNwcCIKICNpbmNs
dWRlICJKU1NjcmlwdFByb2ZpbGVOb2RlLmNwcCIKICNpbmNsdWRlICJKU1NoYXJlZFdvcmtlci5j
cHAiCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiBWUEFU
SCA9IFwKICAgICAkKFdlYkNvcmUpIFwKKyAgICAkKFdlYkNvcmUpL2FjY2Vzc2liaWxpdHkgXAog
ICAgICQoV2ViQ29yZSkvYmluZGluZ3MvanMgXAogICAgICQoV2ViQ29yZSkvYmluZGluZ3Mvb2Jq
YyBcCiAgICAgJChXZWJDb3JlKS9jc3MgXApAQCAtNTAsNiArNTEsNyBAQCBWUEFUSCA9IFwKIERP
TV9DTEFTU0VTID0gXAogICAgIEFic3RyYWN0VmlldyBcCiAgICAgQWJzdHJhY3RXb3JrZXIgXAor
ICAgIEFjY2Vzc2liaWxpdHkgXAogICAgIEF0dHIgXAogICAgIEJhckluZm8gXAogICAgIEJlZm9y
ZUxvYWRFdmVudCBcCkBAIC00MzAsNiArNDMyLDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgU1ZH
Wm9vbUFuZFBhbiBcCiAgICAgU1ZHWm9vbUV2ZW50IFwKICAgICBTY3JlZW4gXAorICAgIFNjcmVl
blJlYWRlciBcCiAgICAgU3R5bGVNZWRpYSBcCiAgICAgU3R5bGVTaGVldCBcCiAgICAgU3R5bGVT
aGVldExpc3QgXApJbmRleDogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUvR05VbWFr
ZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTk5LDYgKzk5LDggQEAgd2ViY29yZV9idWlsdF9z
b3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0luc3BlY3RvckJhY2tlbmREaXNw
YXRjaGVyLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBYnN0cmFjdFdvcmtlci5jcHAg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBYnN0cmFjdFdvcmtlci5oIFwKKwlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTQWNjZXNzaWJpbGl0eS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNBY2Nlc3NpYmlsaXR5LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcnJh
eUJ1ZmZlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcnJheUJ1ZmZlci5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXJyYXlCdWZmZXJWaWV3LmNwcCBcCkBAIC00NjYs
NiArNDY4LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTUkdCQ29sb3IuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NjcmVlbi5j
cHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTY3JlZW4uaCBcCisJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1NjcmVlblJlYWRlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNTY3JlZW5SZWFkZXIuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NjcmlwdFByb2Zp
bGUuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyaXB0UHJvZmlsZS5oIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyaXB0UHJvZmlsZU5vZGUuY3BwIFwKQEAgLTU3NSw2
ICs1NzksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvV2ViQ29yZVByZWZpeC5o
IFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgXAogCVdlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggXAorCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5LmNwcCBcCisJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHku
aCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgXAog
CVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuaCBcCiAJV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwIFwKQEAgLTYxNyw2
ICs2MjMsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuaCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAgXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGVSb3cuaCBcCisJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJl
YWRlci5jcHAgXAorCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaCBcCiAJV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwIFwKIAlXZWJD
b3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIFwKIAlXZWJDb3Jl
L2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggXApAQCAtNDQxNiw2ICs0
NDI0LDcgQEAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9SZW1vdGVJbnNwZWN0b3JGcgogCSQoQU1f
Vl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAtSSQoV2ViQ29yZSkv
aW5zcGVjdG9yICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5w
bCAkKElETF9QQVRIOiU9LS1pbmNsdWRlICIlIikgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFU19X
RUJDT1JFKSIgLS1kZWZpbmVzICJMQU5HVUFHRV9KQVZBU0NSSVBUPTEgJChGRUFUVVJFX0RFRklO
RVMpIiAtLWdlbmVyYXRvciBJbnNwZWN0b3IgJDwKIAogSURMX1BBVEggOj0gXAorICAgICQoV2Vi
Q29yZSkvYWNjZXNzaWJpbGl0eSBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9qcyBcCiAgICAg
JChXZWJDb3JlKS9jc3MgXAogICAgICQoV2ViQ29yZSkvZG9tIFwKSW5kZXg6IFdlYkNvcmUvV2Vi
Q29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA2
NDM1OCkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEs
OCBAQAogewogICAgICd2YXJpYWJsZXMnOiB7CiAgICAgICAgICd3ZWJjb3JlX2JpbmRpbmdzX2lk
bF9maWxlcyc6IFsKKyAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaWRs
JywKKyAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5pZGwnLAogICAgICAg
ICAgICAgJ2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9DU1NGb250
RmFjZVJ1bGUuaWRsJywKICAgICAgICAgICAgICdjc3MvQ1NTSW1wb3J0UnVsZS5pZGwnLApAQCAt
NDMyLDYgKzQzNCw4IEBACiAgICAgICAgICAgICAjIFNvdXJjZS9IZWFkZXIgRmlsZXMKICAgICAg
ICAgICAgICdhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwJywKICAgICAgICAgICAgICdh
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCcsCisgICAgICAgICAgICAnYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5LmNwcCcsCisgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5LmgnLAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFH
cmlkLmNwcCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdy
aWQuaCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRD
ZWxsLmNwcCcsCkBAIC00NzQsNiArNDc4LDggQEAKICAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5oJywKICAgICAgICAgICAgICdhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAnLAogICAgICAgICAgICAgJ2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgnLAorICAgICAgICAgICAgJ2FjY2Vzc2li
aWxpdHkvU2NyZWVuUmVhZGVyLmNwcCcsCisgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9TY3Jl
ZW5SZWFkZXIuaCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BWE9iamVj
dENhY2hlQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L2Nocm9taXVt
L0FjY2Vzc2liaWxpdHlPYmplY3RDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ2FjY2Vzc2li
aWxpdHkvY2hyb21pdW0vQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIuaCcsCkluZGV4OiBXZWJD
b3JlL1dlYkNvcmUucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlz
aW9uIDY0MzU4KQorKysgV2ViQ29yZS9XZWJDb3JlLnByaQkod29ya2luZyBjb3B5KQpAQCAtMjU2
LDYgKzI1Niw4IEBAIFNUWUxFU0hFRVRTX0VNQkVEID0gXAogICAgICQkUFdEL2Nzcy90aGVtZVF0
TWFlbW81LmNzcwogCiBJRExfQklORElOR1MgKz0gXAorICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eS5pZGwgXAorICAgIGFjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmlkbCBcCiAgICAg
Y3NzL0NvdW50ZXIuaWRsIFwKICAgICBjc3MvQ1NTQ2hhcnNldFJ1bGUuaWRsIFwKICAgICBjc3Mv
Q1NTRm9udEZhY2VSdWxlLmlkbCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDY0MzU4KQorKysgV2ViQ29yZS9X
ZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMjU0LDYgKzI1NCw3IEBAIGNvbnRhaW5zKERF
RklORVMsIEVOQUJMRV9XQ1NTPTEpIHsKIH0KIAogU09VUkNFUyArPSBcCisgICAgYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5LmNwcCBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
SW1hZ2VNYXBMaW5rLmNwcCBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFD
b250cm9scy5jcHAgXCAgICAKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlz
dC5jcHAgXApAQCAtMjc2LDYgKzI3Nyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmNwcCBcICAgIAogICAgIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcCBcICAgIAogICAgIGFjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHAgXAorICAgIGFjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmNw
cCBcCiAgICAgYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCBcCiAg
ICAgYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcCBcCiAgICAgYmluZGluZ3MvanMvRE9NT2Jq
ZWN0SGFzaFRhYmxlTWFwLmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oJKHJldmlzaW9uIDY0MzU4KQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNjAxLDYgKzYwMSw2MiBAQAogCQkJCT4NCiAJCQk8
L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQWNjZXNzaWJpbGl0eS5jcHAiDQor
CQkJCT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIN
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlfFdp
bjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9v
bA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVn
X0ludGVybmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+
DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJ
CU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNBY2Nlc3NpYmlsaXR5LmgiDQor
CQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktp
dE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQXR0ci5jcHAi
DQogCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAtMTA2ODUsNiArMTA3NDEsNjIg
QEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChX
ZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1NjcmVl
blJlYWRlci5jcHAiDQorCQkJCT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1l
PSJEZWJ1Z3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0K
KwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlO
YW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJ
CQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkv
Pg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJ
CQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMy
Ig0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0K
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQo
V2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNTY3Jl
ZW5SZWFkZXIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2
ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlc1xKU1No
YXJlZFdvcmtlci5jcHAiDQogCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAtMjA5
MjksNiArMjEwNDEsMTMgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5LmNwcCINCisJCQkJPg0K
KwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmls
aXR5LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlxhY2Nlc3NpYmlsaXR5XEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAiDQogCQkJCT4NCiAJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAtMjIwMTYsNiArMjIxMzUsMTMgQEAKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGFjY2Vzc2liaWxpdHlcQVhPYmplY3RDYWNoZS5oIg0KIAkJCQk+DQogCQkJ
PC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cYWNjZXNzaWJpbGl0eVxT
Y3JlZW5SZWFkZXIuY3BwIg0KKwkJCQk+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxhY2Nlc3NpYmlsaXR5XFNjcmVlblJlYWRlci5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KIAkJ
CTxGaWx0ZXINCiAJCQkJTmFtZT0id2luIg0KIAkJCQk+DQpJbmRleDogV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDY0MzU4KQorKysgV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTYyNCw2
ICs2MjQsMTQgQEAKIAkJMjRGNTRFQUQxMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
NEY1NEVBQjEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQkyNTQyRjREQTExNjZDMjVBMDBFODlB
ODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjU0MkY0RDgxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0
dXJlSW5kaWNhdG9yLmNwcCAqLzsgfTsKIAkJMjU0MkY0REIxMTY2QzI1QTAwRTg5QTg2IC8qIFVz
ZXJHZXN0dXJlSW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyNTQyRjREOTExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0
b3IuaCAqLzsgfTsKKwkJMjk3NDQ2M0QxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHku
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2
MzcxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuY3BwICovOyB9OworCQkyOTc0NDYz
RTExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2MzgxMUZFMjU3QTAwNDUyM0Y4IC8qIEFj
Y2Vzc2liaWxpdHkuaCAqLzsgfTsKKwkJMjk3NDQ2NDAxMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVl
blJlYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyOTc0NDYzQTExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmNwcCAqLzsgfTsKKwkJ
Mjk3NDQ2NDExMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2M0IxMUZFMjU3QTAwNDUyM0Y4
IC8qIFNjcmVlblJlYWRlci5oICovOyB9OworCQkyOTc0NDY2RjExRkUyQjMyMDA0NTIzRjggLyog
SlNBY2Nlc3NpYmlsaXR5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDI5NzQ0NjZEMTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuY3Bw
ICovOyB9OworCQkyOTc0NDY3MDExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTc0NDY2RTEx
RkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmggKi87IH07CisJCTI5NzQ0NjhFMTFG
RTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTc0NDY4QzExRkUyQkUxMDA0NTIzRjggLyogSlNT
Y3JlZW5SZWFkZXIuY3BwICovOyB9OworCQkyOTc0NDY4RjExRkUyQkUxMDA0NTIzRjggLyogSlNT
Y3JlZW5SZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI5NzQ0NjhEMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5oICovOyB9Owog
CQkyOUE4MTIyNjBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4MTIw
ODBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgKi87IH07
CiAJCTI5QTgxMjI3MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBODEyMDkwRkJC
OUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZS5jcHAgKi87IH07CiAJCTI5QTgxMjI4
MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBODEyMEEwRkJCOUMxRDAwNTEw
MjkzIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgKi87IH07CkBAIC02MzE5LDYgKzYzMjcs
MTYgQEAKIAkJMjRGNTRFQUIxMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxpY2F0aW9uQ2FjaGVIb3N0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI1NDJGNEQ4MTE2NkMyNUEwMEU4OUE4
NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBVc2VyR2VzdHVyZUluZGljYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTI1NDJGNEQ5MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRv
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyR2VzdHVyZUluZGljYXRv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0NDYzNzExRkUyNTdBMDA0NTIz
RjggLyogQWNjZXNzaWJpbGl0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBBY2Nlc3NpYmlsaXR5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3
NDQ2MzgxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkyOTc0NDYzOTExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gQWNjZXNzaWJpbGl0eS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTI5NzQ0NjNBMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyZWVuUmVhZGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2M0IxMUZFMjU3QTAwNDUyM0Y4IC8q
IFNjcmVlblJlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JlZW5S
ZWFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2M0MxMUZFMjU3QTAw
NDUyM0Y4IC8qIFNjcmVlblJlYWRlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2NyZWVu
UmVhZGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2NkQxMUZFMkIz
MjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0FjY2Vzc2liaWxpdHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkyOTc0NDY2RTExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQWNjZXNzaWJpbGl0eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0NDY4QzExRkUyQkUxMDA0NTIzRjggLyogSlNTY3Jl
ZW5SZWFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3Jl
ZW5SZWFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0NDY4RDExRkUy
QkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNTY3JlZW5SZWFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MjlBODEyMDgwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QTgxMjA5MEZCQjlD
MUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVRhYmxlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMjlBODEyMEEwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlB
UklBR3JpZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3Np
YmlsaXR5QVJJQUdyaWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE1NDAs
NiArMTE1NTgsOSBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQky
OUE4MTIwNTBGQkI5QjUyMDA1MTAyOTMgLyogbWFjICovLAorCQkJCTI5NzQ0NjM3MTFGRTI1N0Ew
MDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmNwcCAqLywKKwkJCQkyOTc0NDYzODExRkUyNTdBMDA0
NTIzRjggLyogQWNjZXNzaWJpbGl0eS5oICovLAorCQkJCTI5NzQ0NjM5MTFGRTI1N0EwMDQ1MjNG
OCAvKiBBY2Nlc3NpYmlsaXR5LmlkbCAqLywKIAkJCQkyOUE4MTIwQTBGQkI5QzFEMDA1MTAyOTMg
LyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCAqLywKIAkJCQkyOUE4MTIxNjBGQkI5QzFEMDA1
MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmggKi8sCiAJCQkJMjlBODEyMTIwRkJCOUMx
RDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwICovLApAQCAtMTE1ODQs
NiArMTE2MDUsOSBAQAogCQkJCTI5QTgxMjEzMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmls
aXR5VGFibGVSb3cuaCAqLywKIAkJCQkyOUE4MTIxOTBGQkI5QzFEMDA1MTAyOTMgLyogQVhPYmpl
Y3RDYWNoZS5jcHAgKi8sCiAJCQkJMjlBODEyMUEwRkJCOUMxRDAwNTEwMjkzIC8qIEFYT2JqZWN0
Q2FjaGUuaCAqLywKKwkJCQkyOTc0NDYzQTExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVy
LmNwcCAqLywKKwkJCQkyOTc0NDYzQjExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmgg
Ki8sCisJCQkJMjk3NDQ2M0MxMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5pZGwgKi8s
CiAJCQkpOwogCQkJcGF0aCA9IGFjY2Vzc2liaWxpdHk7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtMTQ2NTMsNiArMTQ2NzcsOCBAQAogCQlBODNCNzkxMDBDQ0IwMDFCMDAwQjA4MjUg
LyogQ29yZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
Mjk3NDQ2NkQxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5jcHAgKi8sCisJCQkJ
Mjk3NDQ2NkUxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5oICovLAogCQkJCTY1
REYzMUQ4MDlEMUMxMjIwMDBCRTMyNSAvKiBKU0F0dHIuY3BwICovLAogCQkJCTY1REYzMUQ5MDlE
MUMxMjMwMDBCRTMyNSAvKiBKU0F0dHIuaCAqLywKIAkJCQk5M0Y5Qjc5RTBCQTYwMzI2MDA4NTQw
NjQgLyogSlNDREFUQVNlY3Rpb24uY3BwICovLApAQCAtMTQ3MDUsNiArMTQ3MzEsOCBAQAogCQkJ
CTY1REYzMUVDMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oICov
LAogCQkJCUU0QjQyMzg1MENCRkI3M0MwMEFGMkVDRSAvKiBKU1Byb2dyZXNzRXZlbnQuY3BwICov
LAogCQkJCUU0QjQyMzg2MENCRkI3M0MwMEFGMkVDRSAvKiBKU1Byb2dyZXNzRXZlbnQuaCAqLywK
KwkJCQkyOTc0NDY4QzExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIuY3BwICovLAor
CQkJCTI5NzQ0NjhEMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5oICovLAogCQkJ
CTY1REYzMUVGMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1RleHQuY3BwICovLAogCQkJCTY1REYzMUYw
MDlEMUNDNjAwMDBCRTMyNSAvKiBKU1RleHQuaCAqLywKIAkJCSk7CkBAIC0xOTg4NSw2ICsxOTkx
MywxMCBAQAogCQkJCUM1NzJFRTBFMTIwMUM3MzYwMDdEOEY4MiAvKiBJREJJbmRleEJhY2tlbmRJ
bXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTcyRUUwRjEyMDFDNzM2MDA3RDhGODIgLyogSURC
SW5kZXhCYWNrZW5kSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTcyRUUxRjEyMDFD
OUJDMDA3RDhGODIgLyogSlNJREJJbmRleC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjk3NDQ2M0Ux
MUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTI5
NzQ0NjQxMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTI5NzQ0NjcwMTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTI5NzQ0NjhGMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC0yMjI4Niw2ICsyMjMxOCwxMCBAQAogCQkJCUM1NzJFRTBBMTIw
MUM3MzYwMDdEOEY4MiAvKiBJREJJbmRleC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTcyRUUw
RDEyMDFDNzM2MDA3RDhGODIgLyogSURCSW5kZXhCYWNrZW5kSW1wbC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDNTcyRUUxRTEyMDFDOUJDMDA3RDhGODIgLyogSlNJREJJbmRleC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkyOTc0NDYzRDExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkyOTc0NDY0MDExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVu
UmVhZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI5NzQ0NjZGMTFGRTJCMzIwMDQ1MjNGOCAv
KiBKU0FjY2Vzc2liaWxpdHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjk3NDQ2OEUxMUZFMkJF
MTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOSw2
ICsxMTksOCBAQCBwdWJsaWM6CiAgICAgICAgIEFYUm93Q291bnRDaGFuZ2VkLAogICAgICAgICBB
WFJvd0NvbGxhcHNlZCwKICAgICAgICAgQVhSb3dFeHBhbmRlZCwKKyAgICAgICAgQVhTY3JlZW5D
aGFuZ2VkLAorICAgICAgICBBWEVsZW1lbnRzQ2hhbmdlZAogICAgIH07CiAKICAgICB2b2lkIHBv
c3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIGJvb2wgcG9zdFRv
RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwpJbmRleDogV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBD
b21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHkuaCIKKworI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0Lmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJTY3JlZW5SZWFkZXIuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitBY2Nlc3NpYmlsaXR5OjpBY2Nlc3NpYmlsaXR5KEZyYW1lKiBmcmFt
ZSkKKyAgICA6IG1fZnJhbWUoZnJhbWUpIAoreworfQorCitBY2Nlc3NpYmlsaXR5Ojp+QWNjZXNz
aWJpbGl0eSgpCit7CisgICAgZGlzY29ubmVjdEZyYW1lKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eTo6ZGlzY29ubmVjdEZyYW1lKCkKK3sKKyAgICBpZiAobV9zY3JlZW5SZWFkZXIpIHsKKyAg
ICAgICAgbV9zY3JlZW5SZWFkZXItPmRpc2Nvbm5lY3RGcmFtZSgpOworICAgICAgICBtX3NjcmVl
blJlYWRlciA9IDA7CisgICAgfQorICAgIG1fZnJhbWUgPSAwOworfQorICAgIAordm9pZCBBY2Nl
c3NpYmlsaXR5OjpzY3JlZW5DaGFuZ2VkKCkKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAg
IHJldHVybjsKKyAgICAKKyAgICBEb2N1bWVudCogZG9jID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsK
KyAgICBpZiAoIWRvYykKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIHJvb3QgPSBkb2MtPmF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoZG9jLT5yZW5k
ZXJlcigpKTsKKyAgICBkb2MtPmF4T2JqZWN0Q2FjaGUoKS0+cG9zdE5vdGlmaWNhdGlvbihyb290
LCBkb2MsIEFYT2JqZWN0Q2FjaGU6OkFYU2NyZWVuQ2hhbmdlZCwgZmFsc2UpOworfQorCit2b2lk
IEFjY2Vzc2liaWxpdHk6OmVsZW1lbnRzQ2hhbmdlZCgpCit7CisgICAgaWYgKCFtX2ZyYW1lKQor
ICAgICAgICByZXR1cm47CisgICAgCisgICAgRG9jdW1lbnQqIGRvYyA9IG1fZnJhbWUtPmRvY3Vt
ZW50KCk7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiByb290ID0gZG9jLT5heE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKGRv
Yy0+cmVuZGVyZXIoKSk7CisgICAgZG9jLT5heE9iamVjdENhY2hlKCktPnBvc3ROb3RpZmljYXRp
b24ocm9vdCwgZG9jLCBBWE9iamVjdENhY2hlOjpBWEVsZW1lbnRzQ2hhbmdlZCwgZmFsc2UpOwor
fQorICAgIAorU2NyZWVuUmVhZGVyKiBBY2Nlc3NpYmlsaXR5OjpzY3JlZW5SZWFkZXIoKSBjb25z
dAoreworICAgIGlmICghbV9zY3JlZW5SZWFkZXIpCisgICAgICAgIG1fc2NyZWVuUmVhZGVyID0g
U2NyZWVuUmVhZGVyOjpjcmVhdGUobV9mcmFtZSk7CisgICAgCisgICAgcmV0dXJuIG1fc2NyZWVu
UmVhZGVyLmdldCgpOworfQorICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCkluZGV4OiBX
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxl
IENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIEFjY2Vzc2liaWxpdHlfaAorI2RlZmluZSBBY2Nlc3NpYmlsaXR5X2gKKwor
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2Ns
YXNzIEZyYW1lOworY2xhc3MgU2NyZWVuUmVhZGVyOworICAgIAorY2xhc3MgQWNjZXNzaWJpbGl0
eSA6IHB1YmxpYyBSZWZDb3VudGVkPEFjY2Vzc2liaWxpdHk+IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5PiBjcmVhdGUoRnJhbWUqIGZyYW1lKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eShmcmFtZSkpOyB9CisgICAgfkFjY2Vzc2liaWxp
dHkoKTsKKyAgICAKKyAgICBTY3JlZW5SZWFkZXIqIHNjcmVlblJlYWRlcigpIGNvbnN0OworICAg
IHZvaWQgc2NyZWVuQ2hhbmdlZCgpOworICAgIHZvaWQgZWxlbWVudHNDaGFuZ2VkKCk7CisgICAg
CisgICAgdm9pZCBkaXNjb25uZWN0RnJhbWUoKTsKKyAgICAKK3ByaXZhdGU6CisgICAgQWNjZXNz
aWJpbGl0eShGcmFtZSopOworICAgIEZyYW1lKiBtX2ZyYW1lOworICAgIG11dGFibGUgUmVmUHRy
PFNjcmVlblJlYWRlcj4gbV9zY3JlZW5SZWFkZXI7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gQWNjZXNzaWJpbGl0eV9oCkluZGV4OiBXZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHkuaWRsCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHkuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1
dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAor
ICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitt
b2R1bGUgd2luZG93IHsKKworICAgIGludGVyZmFjZSBbT21pdENvbnN0cnVjdG9yXSBBY2Nlc3Np
YmlsaXR5IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNjcmVlblJlYWRlciBzY3JlZW5S
ZWFkZXI7CisKKyAgICAgICAgdm9pZCBzY3JlZW5DaGFuZ2VkKCk7CisgICAgICAgIHZvaWQgZWxl
bWVudHNDaGFuZ2VkKCk7CisKKyAgICB9OworfQpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYg
KzQ2LDEyIEBACiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIuaCIKICNlbmRp
ZgogCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBTVVBQT1JUU19KU0FDQ0VTU0lCSUxJVFkg
MQorI2Vsc2UKKyNkZWZpbmUgU1VQUE9SVFNfSlNBQ0NFU1NJQklMSVRZIDAKKyNlbmRpZgorCiB0
eXBlZGVmIHN0cnVjdCBfTlNSYW5nZSBOU1JhbmdlOwogCiAjaWZkZWYgX19PQkpDX18KQEAgLTU0
OCw2ICs1NTQsMTYgQEAgcHVibGljOgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIFNVUFBPUlRTX0pT
QUNDRVNTSUJJTElUWQorICAgIGJvb2wgaXNTY3JlZW5SZWFkZXJSdW5uaW5nKCkgY29uc3Q7Cisg
ICAgRWxlbWVudCogc2NyZWVuUmVhZGVyRm9jdXNlZEVsZW1lbnQoKSBjb25zdDsKKyAgICBTdHJp
bmcgc2NyZWVuUmVhZGVyVmVyc2lvbigpIGNvbnN0OworI2Vsc2UKKyAgICBib29sIGlzU2NyZWVu
UmVhZGVyUnVubmluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgRWxlbWVudCogc2Ny
ZWVuUmVhZGVyRm9jdXNlZEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBuaWw7IH0KKyAgICBTdHJp
bmcgc2NyZWVuUmVhZGVyVmVyc2lvbigpIGNvbnN0IHsgcmV0dXJuIG51bGxBdG9tOyB9CisjZW5k
aWYKKyAgICAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAgICAgLy8gYSBwbGF0Zm9ybS1zcGVj
aWZpYyBtZXRob2QgZm9yIGRldGVybWluaW5nIGlmIGFuIGF0dGFjaG1lbnQgaXMgaWdub3JlZAog
ICAgIGJvb2wgYWNjZXNzaWJpbGl0eUlnbm9yZUF0dGFjaG1lbnQoKSBjb25zdDsKSW5kZXg6IFdl
YkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
ODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBw
bGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JlZW5SZWFkZXIuaCIKKwor
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVk
ZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitTY3JlZW5SZWFkZXI6OlNjcmVlblJlYWRlcihGcmFtZSogZnJhbWUpCisgICAgOiBtX2ZyYW1l
KGZyYW1lKQoreworfQorCitTY3JlZW5SZWFkZXI6On5TY3JlZW5SZWFkZXIoKQoreworICAgIGRp
c2Nvbm5lY3RGcmFtZSgpOworfQorICAgIAordm9pZCBTY3JlZW5SZWFkZXI6OmRpc2Nvbm5lY3RG
cmFtZSgpCit7CisgICAgbV9mcmFtZSA9IDA7Cit9CisKK2Jvb2wgU2NyZWVuUmVhZGVyOjphY3Rp
dmUoKSBjb25zdAoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIAorICAgIERvY3VtZW50KiBkb2MgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICgh
ZG9jKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqID0gZG9jLT5heE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKGRvYy0+cmVuZGVyZXIo
KSk7CisgICAgcmV0dXJuIG9iai0+aXNTY3JlZW5SZWFkZXJSdW5uaW5nKCk7Cit9CisgICAgCitF
bGVtZW50KiBTY3JlZW5SZWFkZXI6OmFjdGl2ZUVsZW1lbnQoKSBjb25zdAoreworICAgIERvY3Vt
ZW50KiBkb2MgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZG9jLT5h
eE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKGRvYy0+cmVuZGVyZXIoKSk7CisgICAgcmV0dXJu
IG9iai0+c2NyZWVuUmVhZGVyRm9jdXNlZEVsZW1lbnQoKTsgICAgCit9CisgICAgCitTdHJpbmcg
U2NyZWVuUmVhZGVyOjp2ZXJzaW9uKCkgY29uc3QKK3sKKyAgICBEb2N1bWVudCogZG9jID0gbV9m
cmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvYykKKyAgICAgICAgcmV0dXJuIG51bGxBdG9t
OworICAgIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGRvYy0+YXhPYmplY3RDYWNo
ZSgpLT5nZXRPckNyZWF0ZShkb2MtPnJlbmRlcmVyKCkpOworICAgIHJldHVybiBvYmotPnNjcmVl
blJlYWRlclZlcnNpb24oKTsKK30KKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmU7CkluZGV4
OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxl
IENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFNjcmVlblJlYWRlcl9oCisjZGVmaW5lIFNjcmVlblJlYWRlcl9oCisKKyNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBGcmFtZTsK
K2NsYXNzIFN0cmluZzsKKyAgICAKK2NsYXNzIFNjcmVlblJlYWRlciA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFNjcmVlblJlYWRlcj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNjcmVl
blJlYWRlcj4gY3JlYXRlKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNjcmVl
blJlYWRlcihmcmFtZSkpOyB9CisgICAgflNjcmVlblJlYWRlcigpOworICAgIAorICAgIFN0cmlu
ZyB2ZXJzaW9uKCkgY29uc3Q7CisgICAgYm9vbCBhY3RpdmUoKSBjb25zdDsKKyAgICBFbGVtZW50
KiBhY3RpdmVFbGVtZW50KCkgY29uc3Q7CisgICAgCisgICAgdm9pZCBkaXNjb25uZWN0RnJhbWUo
KTsKK3ByaXZhdGU6CisgICAgU2NyZWVuUmVhZGVyKEZyYW1lKik7CisgICAgRnJhbWUqIG1fZnJh
bWU7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU2NyZWVu
UmVhZGVyX2gKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsCShyZXZp
c2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5pZGwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB3aW5kb3cgeworCisgICAgaW50ZXJmYWNl
ICBbT21pdENvbnN0cnVjdG9yXSBTY3JlZW5SZWFkZXIgeworICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHZlcnNpb247CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIGFjdGl2ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgYWN0aXZlRWxl
bWVudDsKKyAgICB9OworCit9CisKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhP
YmplY3RDYWNoZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L0FYT2JqZWN0Q2FjaGVNYWMubW0JKHJldmlzaW9uIDY0MzU4KQorKysgV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Niw2ICs3
NiwxMiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhCiAgICAgICAg
IGNhc2UgQVhMYXlvdXRDb21wbGV0ZToKICAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9ICJB
WExheW91dENvbXBsZXRlIjsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYU2Ny
ZWVuQ2hhbmdlZDoKKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9ICJBWFNjcmVlbkNoYW5n
ZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhFbGVtZW50c0NoYW5nZWQ6
CisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAiQVhFbGVtZW50c0NoYW5nZWQiOworICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhMb2FkQ29tcGxldGU6CiAgICAgICAgICAg
ICBtYWNOb3RpZmljYXRpb24gPSAiQVhMb2FkQ29tcGxldGUiOwogICAgICAgICAgICAgYnJlYWs7
CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5
T2JqZWN0TWFjLm1tCShyZXZpc2lvbiA2NDM1OCkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjksOSArMjks
MjYgQEAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyLmgiCisjaW1wb3J0ICJBWE9iamVjdENhY2hlLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1NjcmVlblJlYWRlclJ1bm5p
bmcoKSBjb25zdAoreworICAgIC8vIElmIHRoZSBlbmhhbmNlZCB1c2VyIGludGVyZmFjZSBpcyBl
bmFibGVkLCBpdCBtZWFucyBWb2ljZU92ZXIgaXMgcnVubmluZy4KKyAgICByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQoKTsKK30K
KyAgICAKK0VsZW1lbnQqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlckZvY3VzZWRF
bGVtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKyAgICAKK1N0cmluZyBBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpzY3JlZW5SZWFkZXJWZXJzaW9uKCkgY29uc3QKK3sgCisgICAgcmV0dXJu
IG51bGxBdG9tOworfQorICAgIAogYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmls
aXR5SWdub3JlQXR0YWNobWVudCgpIGNvbnN0CiB7CiAgICAgTlNWaWV3KiBhdHRhY2htZW50ID0g
W3dyYXBwZXIoKSBhdHRhY2htZW50Vmlld107CkluZGV4OiBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9y
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAkocmV2aXNpb24g
NjQzNTgpCisrKyBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjMsNiArMjMsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5o
IgogCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2lu
Y2x1ZGUgIkNvb2tpZUphci5oIgogI2luY2x1ZGUgIkRPTU1pbWVUeXBlQXJyYXkuaCIKQEAgLTY2
LDYgKzY3LDEwIEBAIHZvaWQgTmF2aWdhdG9yOjpkaXNjb25uZWN0RnJhbWUoKQogICAgICAgICBt
X2dlb2xvY2F0aW9uLT5kaXNjb25uZWN0RnJhbWUoKTsKICAgICAgICAgbV9nZW9sb2NhdGlvbiA9
IDA7CiAgICAgfQorICAgIGlmIChtX2FjY2Vzc2liaWxpdHkpIHsKKyAgICAgICAgbV9hY2Nlc3Np
YmlsaXR5LT5kaXNjb25uZWN0RnJhbWUoKTsKKyAgICAgICAgbV9hY2Nlc3NpYmlsaXR5ID0gMDsK
KyAgICB9CiAgICAgbV9mcmFtZSA9IDA7CiB9CiAKQEAgLTEyNyw2ICsxMzIsMTMgQEAgRE9NTWlt
ZVR5cGVBcnJheSogTmF2aWdhdG9yOjptaW1lVHlwZXMoKQogICAgICAgICBtX21pbWVUeXBlcyA9
IERPTU1pbWVUeXBlQXJyYXk6OmNyZWF0ZShtX2ZyYW1lKTsKICAgICByZXR1cm4gbV9taW1lVHlw
ZXMuZ2V0KCk7CiB9CisgICAgCitBY2Nlc3NpYmlsaXR5KiBOYXZpZ2F0b3I6OmFjY2Vzc2liaWxp
dHkoKSBjb25zdAoreworICAgIGlmICghbV9hY2Nlc3NpYmlsaXR5KQorICAgICAgICBtX2FjY2Vz
c2liaWxpdHkgPSBBY2Nlc3NpYmlsaXR5OjpjcmVhdGUobV9mcmFtZSk7CisgICAgcmV0dXJuIG1f
YWNjZXNzaWJpbGl0eS5nZXQoKTsKK30KIAogYm9vbCBOYXZpZ2F0b3I6OmNvb2tpZUVuYWJsZWQo
KSBjb25zdAogewpJbmRleDogV2ViQ29yZS9wYWdlL05hdmlnYXRvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAkocmV2aXNpb24gNjQzNTgpCisrKyBXZWJDb3JlL3Bh
Z2UvTmF2aWdhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCisgICAgY2xhc3MgQWNjZXNzaWJpbGl0eTsKICAgICBjbGFzcyBET01N
aW1lVHlwZUFycmF5OwogICAgIGNsYXNzIERPTVBsdWdpbkFycmF5OwogICAgIGNsYXNzIEZyYW1l
OwpAQCAtNDYsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFN0cmluZyBs
YW5ndWFnZSgpIGNvbnN0OwogICAgICAgICBET01QbHVnaW5BcnJheSogcGx1Z2lucygpIGNvbnN0
OwogICAgICAgICBET01NaW1lVHlwZUFycmF5KiBtaW1lVHlwZXMoKSBjb25zdDsKKyAgICAgICAg
QWNjZXNzaWJpbGl0eSogYWNjZXNzaWJpbGl0eSgpIGNvbnN0OwogICAgICAgICBib29sIGNvb2tp
ZUVuYWJsZWQoKSBjb25zdDsKICAgICAgICAgYm9vbCBqYXZhRW5hYmxlZCgpIGNvbnN0OwogCkBA
IC02Niw2ICs2OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0YWJsZSBSZWZQ
dHI8RE9NUGx1Z2luQXJyYXk+IG1fcGx1Z2luczsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8RE9N
TWltZVR5cGVBcnJheT4gbV9taW1lVHlwZXM7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPEdlb2xv
Y2F0aW9uPiBtX2dlb2xvY2F0aW9uOworICAgICAgICBtdXRhYmxlIFJlZlB0cjxBY2Nlc3NpYmls
aXR5PiBtX2FjY2Vzc2liaWxpdHk7CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9wYWdlL05h
dmlnYXRvci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwJKHJl
dmlzaW9uIDY0MzU4KQorKysgV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDYgKzMxLDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgcGxhdGZvcm07CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01QbHVnaW5BcnJheSBwbHVnaW5zOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NTWlt
ZVR5cGVBcnJheSBtaW1lVHlwZXM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBY2Nlc3Np
YmlsaXR5IGFjY2Vzc2liaWxpdHk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgcHJvZHVjdDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBwcm9kdWN0
U3ViOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlbmRvcjsKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDY0MzU4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDctMjYgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6
YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBWDogU3VwcG9ydCBtZXRob2RzIGZvciB3ZWIgYXBwcyB0byBpbnRlcmFjdCB3aXRo
IHRoZSBuYXRpdmUgYWNjZXNzaWJpbGl0eSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzAwNQorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0eS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHkuaHRtbDogQWRk
ZWQuCisKIDIwMTAtMDctMzAgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0eS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNj
ZXNzaWJpbGl0eS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9qcy1hY2Nlc3NpYmlsaXR5LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorVGhpcyB0ZXN0cyB0aGUgamF2YXNjcmlwdCBpbnRl
cmZhY2UgdG8gYWNjZXNzaWJpbGl0eQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBheC5zY3JlZW5SZWFkZXIuYWN0aXZlIGlzIGZhbHNlCitQQVNTIGFkZGVkTm90aWZpY2F0
aW9uIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorUEFTUyBuYW1lIGlzICdBWFNjcmVlbkNoYW5nZWQnCitQQVNTIG5hbWUgaXMgJ0FYRWxl
bWVudHNDaGFuZ2VkJworCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9qcy1hY2Nlc3NpYmlsaXR5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0eS5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJp
bGl0eS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Cis8c2NyaXB0PgordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisg
ICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhlIGphdmFzY3JpcHQgaW50ZXJmYWNlIHRvIGFj
Y2Vzc2liaWxpdHkiKTsKKworICAgIHZhciBib2R5ID0gMDsKKyAgICB2YXIgbmFtZSA9IDA7Cisg
ICAgZnVuY3Rpb24gbm90aWZ5Q2FsbGJhY2sobm90aWZpY2F0aW9uKSB7ICAKKyAgICAgICAgbmFt
ZSA9IG5vdGlmaWNhdGlvbjsKKyAgICAgICAgaWYgKG5hbWUgPT0gIkFYU2NyZWVuQ2hhbmdlZCIp
IHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJuYW1lIiwgIidBWFNjcmVlbkNoYW5nZWQnIik7Cisg
ICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobmFtZSA9PSAiQVhFbGVtZW50c0NoYW5nZWQiKSB7
CisgICAgICAgICAgICBzaG91bGRCZSgibmFtZSIsICInQVhFbGVtZW50c0NoYW5nZWQnIik7Cisg
ICAgICAgICAgICBib2R5LnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAg
ICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9Cisg
ICAgfQorPC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGF4ID0gd2luZG93Lm5hdmlnYXRv
ci5hY2Nlc3NpYmlsaXR5OworCisgICAgLy8gc2NyZWVuIHJlYWRlciBzaG91bGQgbm90IGJlIHJ1
bm5pbmcgd2l0aGluIGxheW91dCB0ZXN0cy4KKyAgICBzaG91bGRCZSgiYXguc2NyZWVuUmVhZGVy
LmFjdGl2ZSIsICJmYWxzZSIpOworCisgICAgLy8gc2hvdWxkIG5vdCBjYXVzZSBhbiBlcnJvci4K
KyAgICB2YXIgdmVyc2lvbiA9IGF4LnNjcmVlblJlYWRlci52ZXJzaW9uOworCisgICAgLy8gc2hv
dWxkIG5vdCBjYXVzZSBhbiBlcnJvcgorICAgIHZhciBhY3RpdmVFbGVtZW50ID0gYXguc2NyZWVu
UmVhZGVyLmFjdGl2ZUVsZW1lbnQ7CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvZHkiKS5mb2N1cygp
OworCisgICAgICAgIGJvZHkgPSB3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNl
ZEVsZW1lbnQ7CisKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gYm9keS5hZGROb3Rp
ZmljYXRpb25MaXN0ZW5lcihub3RpZnlDYWxsYmFjayk7CisgICAgICAgIHNob3VsZEJlKCJhZGRl
ZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAgLy8gc2hvdWxkIGNhdXNlIGEgQVhT
Y3JlZW5DaGFuZ2VkIHRvIGJlIHNlbnQgb3V0LgorICAgICAgICBheC5zY3JlZW5DaGFuZ2VkKCk7
CisKKyAgICAgICAgLy8gc2hvdWxkIGNhdXNlIGEgQVhFbGVtZW50c0NoYW5nZWQgdG8gYmUgc2Vu
dCBvdXQuCisgICAgICAgIGF4LmVsZW1lbnRzQ2hhbmdlZCgpOworICAgIH0KKworICAgIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63101</attachid>
            <date>2010-07-30 14:25:59 -0700</date>
            <delta_ts>2010-07-30 14:36:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43005-20100730142558.patch</filename>
            <type>text/plain</type>
            <size>47494</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDM3MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTYgQEAKKzIwMTAtMDctMzAgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBWDogU3VwcG9ydCBtZXRob2RzIGZvciB3ZWIgYXBwcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBu
YXRpdmUgYWNjZXNzaWJpbGl0eSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MzAwNQorCisgICAgICAgIEFkZHMgYSBuZXcgImFjY2Vzc2liaWxp
dHkiIG9iamVjdCB0aGF0IGhhbmdzIG9mZiBvZiAid2luZG93Lm5hdmlnYXRvciIuCisgICAgICAg
IFRoaXMgYWNjZXNzaWJpbGl0eSBvYmplY3Qgd2lsbCBhbGxvdyB3ZWIgYXBwcyB0byBpbnRlcmFj
dCB3aXRoIG5hdGl2ZSBhY2Nlc3NpYmlsaXR5IEFQSXMKKyAgICAgICAgdG8gcHJvdmlkZSBhIHJp
Y2hlciBleHBlcmllbmNlIChmb3Igc2NyZWVuIHJlYWRlciB1c2VycyBwcmltYXJpbHkpLgorCisg
ICAgICAgIFRlc3Q6IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHku
aHRtbAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjopOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eTo6QWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5Ojp+QWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5OjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eTo6c2NyZWVuQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjplbGVt
ZW50c0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6c2NyZWVuUmVh
ZGVyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjpjcmVhdGUpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eS5pZGw6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNTY3JlZW5SZWFkZXJSdW5uaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlckZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlclZlcnNpb24pOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTY3JlZW5SZWFkZXI6OlNjcmVlblJlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jl
ZW5SZWFkZXI6On5TY3JlZW5SZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVy
OjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVyOjphY3Rp
dmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVyOjphY3RpdmVFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmVlblJlYWRlcjo6dmVyc2lvbik6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9TY3JlZW5SZWFkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5S
ZWFkZXI6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNTY3JlZW5SZWFk
ZXJSdW5uaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVl
blJlYWRlckZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OnNjcmVlblJlYWRlclZlcnNpb24pOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvcjo6ZGlzY29ubmVjdEZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5hdmlnYXRvcjo6YWNjZXNzaWJpbGl0eSk6CisgICAgICAgICogcGFnZS9O
YXZpZ2F0b3IuaDoKKyAgICAgICAgKiBwYWdlL05hdmlnYXRvci5pZGw6CisKIDIwMTAtMDctMzAg
IENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGlu
Z3MubWsKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5t
awkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdz
Lm1rCSh3b3JraW5nIGNvcHkpCkBAIC0yNjMsNiArMjYzLDIxIEBAIExPQ0FMX0dFTkVSQVRFRF9T
T1VSQ0VTICs9ICQoR0VOKQogIyBhYm92ZSBydWxlcy4gIFNwZWNpZnlpbmcgdGhpcyBleHBsaWNp
dGx5IG1ha2VzIC1qMiB3b3JrLgogJChwYXRzdWJzdCAlLmgsJS5jcHAsJChHRU4pKTogJChpbnRl
cm1lZGlhdGVzKS9iaW5kaW5ncy8lLmNwcCA6ICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvJS5o
CiAKKyMgQWNjZXNzaWJpbGl0eQorR0VOIDo9IFwKKyAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRp
bmdzL1Y4QWNjZXNzaWJpbGl0eS5oCisgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOFNj
cmVlblJlYWRlci5oCisKKyQoR0VOKTogUFJJVkFURV9QQVRIIDo9ICQoTE9DQUxfUEFUSCkKKyQo
R0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFNPVVJDRV9ST09UPSQoUFJJVkFURV9QQVRIKSBw
ZXJsIC1JJChQUklWQVRFX1BBVEgpL2JpbmRpbmdzL3NjcmlwdHMgJChQUklWQVRFX1BBVEgpL2Jp
bmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgLS1kZWZpbmVzICIkKEZFQVRVUkVf
REVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1nZW5lcmF0b3IgVjggLS1pbmNsdWRlIGRv
bSAtLWluY2x1ZGUgaHRtbCAtLW91dHB1dGRpciAkKGRpciAkQCkgJDwKKyQoR0VOKTogJChpbnRl
cm1lZGlhdGVzKS9iaW5kaW5ncy9WOCUuaCA6ICQoTE9DQUxfUEFUSCkvYWNjZXNzaWJpbGl0eS8l
LmlkbCAkKGpzX2JpbmRpbmdfc2NyaXB0cykKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNl
KQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMgV2UgYWxzbyBuZWVkIHRo
ZSAuY3BwIGZpbGVzLCB3aGljaCBhcmUgZ2VuZXJhdGVkIGFzIHNpZGUgZWZmZWN0cyBvZiB0aGUK
KyMgYWJvdmUgcnVsZXMuICBTcGVjaWZ5aW5nIHRoaXMgZXhwbGljaXRseSBtYWtlcyAtajIgd29y
ay4KKyQocGF0c3Vic3QgJS5oLCUuY3BwLCQoR0VOKSk6ICQoaW50ZXJtZWRpYXRlcykvYmluZGlu
Z3MvJS5jcHAgOiAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzLyUuaAorCiAjIFBhZ2UKIEdFTiA6
PSBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOEJhckluZm8uaCBcCkluZGV4OiBX
ZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9BbmRy
b2lkLmpzY2JpbmRpbmdzLm1rCShyZXZpc2lvbiA2NDM3MSkKKysrIFdlYkNvcmUvQW5kcm9pZC5q
c2NiaW5kaW5ncy5tawkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQCBCSU5ESU5HX0Nf
SU5DTFVERVMgOj0gXAogCSQoSkFWQVNDUklQVENPUkVfUEFUSCkvd3JlYyBcCiAJJChKQVZBU0NS
SVBUQ09SRV9QQVRIKS9Gb3J3YXJkaW5nSGVhZGVycyBcCiAJXAorCSQoYmFzZV9pbnRlcm1lZGlh
dGVzKS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkgXAogCSQoYmFzZV9pbnRlcm1lZGlhdGVzKS9XZWJD
b3JlL2JpbmRpbmdzL2pzIFwKIAkkKGJhc2VfaW50ZXJtZWRpYXRlcykvV2ViQ29yZS9kb20gXAog
CSQoYmFzZV9pbnRlcm1lZGlhdGVzKS9XZWJDb3JlL2h0bWwvY2FudmFzIFwKSW5kZXg6IFdlYkNv
cmUvRGVyaXZlZFNvdXJjZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMuY3BwCShyZXZpc2lvbiA2NDM3MSkKKysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJIVE1MRWxlbWVudEZh
Y3RvcnkuY3BwIgogI2luY2x1ZGUgIkpTQWJzdHJhY3RXb3JrZXIuY3BwIgorI2luY2x1ZGUgIkpT
QWNjZXNzaWJpbGl0eS5jcHAiCiAjaW5jbHVkZSAiSlNBdHRyLmNwcCIKICNpbmNsdWRlICJKU0Jh
ckluZm8uY3BwIgogI2luY2x1ZGUgIkpTQmVmb3JlTG9hZEV2ZW50LmNwcCIKQEAgLTIyNCw2ICsy
MjUsNyBAQAogI2luY2x1ZGUgIkpTUmVjdC5jcHAiCiAjaW5jbHVkZSAiSlNSR0JDb2xvci5jcHAi
CiAjaW5jbHVkZSAiSlNTY3JlZW4uY3BwIgorI2luY2x1ZGUgIkpTU2NyZWVuUmVhZGVyLmNwcCIK
ICNpbmNsdWRlICJKU1NjcmlwdFByb2ZpbGUuY3BwIgogI2luY2x1ZGUgIkpTU2NyaXB0UHJvZmls
ZU5vZGUuY3BwIgogI2luY2x1ZGUgIkpTU2hhcmVkV29ya2VyLmNwcCIKSW5kZXg6IFdlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UJKHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKIFZQQVRIID0gXAogICAgICQoV2ViQ29y
ZSkgXAorICAgICQoV2ViQ29yZSkvYWNjZXNzaWJpbGl0eSBcCiAgICAgJChXZWJDb3JlKS9iaW5k
aW5ncy9qcyBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9vYmpjIFwKICAgICAkKFdlYkNvcmUp
L2NzcyBcCkBAIC01MCw2ICs1MSw3IEBAIFZQQVRIID0gXAogRE9NX0NMQVNTRVMgPSBcCiAgICAg
QWJzdHJhY3RWaWV3IFwKICAgICBBYnN0cmFjdFdvcmtlciBcCisgICAgQWNjZXNzaWJpbGl0eSBc
CiAgICAgQXR0ciBcCiAgICAgQmFySW5mbyBcCiAgICAgQmVmb3JlTG9hZEV2ZW50IFwKQEAgLTQz
MCw2ICs0MzIsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBTVkdab29tQW5kUGFuIFwKICAgICBT
Vkdab29tRXZlbnQgXAogICAgIFNjcmVlbiBcCisgICAgU2NyZWVuUmVhZGVyIFwKICAgICBTdHls
ZU1lZGlhIFwKICAgICBTdHlsZVNoZWV0IFwKICAgICBTdHlsZVNoZWV0TGlzdCBcCkluZGV4OiBX
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUu
YW0JKHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBj
b3B5KQpAQCAtOTksNiArOTksOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0Fic3RyYWN0V29ya2VyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0Fic3RyYWN0V29ya2VyLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNB
Y2Nlc3NpYmlsaXR5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FjY2Vzc2liaWxp
dHkuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FycmF5QnVmZmVyLmNwcCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FycmF5QnVmZmVyLmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwIFwKQEAgLTQ2Niw2ICs0NjgsOCBAQCB3ZWJjb3Jl
X2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSR0JDb2xvci5o
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyZWVuLmNwcCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1NjcmVlbi5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyZWVu
UmVhZGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NjcmVlblJlYWRlci5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyaXB0UHJvZmlsZS5jcHAgXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNTY3JpcHRQcm9maWxlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNTY3JpcHRQcm9maWxlTm9kZS5jcHAgXApAQCAtNTc1LDYgKzU3OSw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJV2ViQ29yZS9XZWJDb3JlUHJlZml4LmggXAogCVdlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaCBcCisJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuY3BwIFwK
KwlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5oIFwKIAlXZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5oIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgXApAQCAtNjE3LDYgKzYyMyw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhl
YWRlckNvbnRhaW5lci5oIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRh
YmxlUm93LmNwcCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJv
dy5oIFwKKwlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmNwcCBcCisJV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJp
Yy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVk
U2NyaXB0U291cmNlUHJvdmlkZXIuaCBcCkBAIC00NDE2LDYgKzQ0MjQsNyBAQCBEZXJpdmVkU291
cmNlcy9XZWJDb3JlL1JlbW90ZUluc3BlY3RvckZyCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzIC1JJChXZWJDb3JlKS9pbnNwZWN0b3IgJChXZWJDb3Jl
KS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsICQoSURMX1BBVEg6JT0tLWlu
Y2x1ZGUgIiUiKSAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTX1dFQkNPUkUpIiAtLWRlZmluZXMg
IkxBTkdVQUdFX0pBVkFTQ1JJUFQ9MSAkKEZFQVRVUkVfREVGSU5FUykiIC0tZ2VuZXJhdG9yIElu
c3BlY3RvciAkPAogCiBJRExfUEFUSCA6PSBcCisgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5
IFwKICAgICAkKFdlYkNvcmUpL2JpbmRpbmdzL2pzIFwKICAgICAkKFdlYkNvcmUpL2NzcyBcCiAg
ICAgJChXZWJDb3JlKS9kb20gXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9X
ZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw4IEBACiB7CiAgICAgJ3Zhcmlh
Ymxlcyc6IHsKICAgICAgICAgJ3dlYmNvcmVfYmluZGluZ3NfaWRsX2ZpbGVzJzogWworICAgICAg
ICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5pZGwnLAorICAgICAgICAgICAgJ2Fj
Y2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmlkbCcsCiAgICAgICAgICAgICAnY3NzL0NTU0NoYXJz
ZXRSdWxlLmlkbCcsCiAgICAgICAgICAgICAnY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwnLAogICAg
ICAgICAgICAgJ2Nzcy9DU1NJbXBvcnRSdWxlLmlkbCcsCkBAIC00MzIsNiArNDM0LDggQEAKICAg
ICAgICAgICAgICMgU291cmNlL0hlYWRlciBGaWxlcwogICAgICAgICAgICAgJ2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHAnLAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oJywKKyAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuY3Bw
JywKKyAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaCcsCiAgICAgICAg
ICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwJywKICAgICAgICAg
ICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5oJywKICAgICAgICAgICAg
ICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwJywKQEAgLTQ3NCw2
ICs0NzgsOCBAQAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
SGVhZGVyQ29udGFpbmVyLmgnLAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlUm93LmNwcCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGVSb3cuaCcsCisgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIu
Y3BwJywKKyAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5oJywKICAgICAg
ICAgICAgICdhY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAn
LAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQWNjZXNzaWJpbGl0eU9iamVj
dENocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlci5oJywKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcmkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnByaQkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJD
b3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0yNTYsNiArMjU2LDggQEAgU1RZTEVT
SEVFVFNfRU1CRUQgPSBcCiAgICAgJCRQV0QvY3NzL3RoZW1lUXRNYWVtbzUuY3NzCiAKIElETF9C
SU5ESU5HUyArPSBcCisgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmlkbCBcCisgICAg
YWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsIFwKICAgICBjc3MvQ291bnRlci5pZGwgXAog
ICAgIGNzcy9DU1NDaGFyc2V0UnVsZS5pZGwgXAogICAgIGNzcy9DU1NGb250RmFjZVJ1bGUuaWRs
IFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnBybwkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5n
IGNvcHkpCkBAIC0yNTQsNiArMjU0LDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dDU1M9
MSkgewogfQogCiBTT1VSQ0VTICs9IFwKKyAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHku
Y3BwIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuY3BwIFwK
ICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcCBcICAgIAog
ICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcCBcCkBAIC0yNzYsNiAr
Mjc3LDcgQEAgU09VUkNFUyArPSBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFi
bGVIZWFkZXJDb250YWluZXIuY3BwIFwgICAgCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGVSb3cuY3BwIFwgICAgCiAgICAgYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cCBcCisgICAgYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuY3BwIFwKICAgICBiaW5kaW5ncy9n
ZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9HQ0Nv
bnRyb2xsZXIuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9ET01PYmplY3RIYXNoVGFibGVNYXAuY3Bw
IFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gNjQz
NzEpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC02MDEsNiArNjAxLDYyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNBY2Nlc3NpYmlsaXR5LmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98
V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxU
b29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVs
ZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJ
Pg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4N
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxl
DQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU0FjY2Vzc2liaWxpdHkuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNBdHRyLmNwcCINCiAJCQkJPg0KIAkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCkBAIC0xMDY4NSw2ICsxMDc0MSw2MiBAQAogCQkJCT4NCiAJCQk8L0Zp
bGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTU2NyZWVuUmVhZGVyLmNwcCINCisJCQkJ
Pg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIi
DQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50
ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJ
CQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFt
ZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJ
CQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJ
CS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1NjcmVlblJlYWRlci5oIg0KKwkJCQk+
DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRw
dXREaXIpXG9ialxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTU2hhcmVkV29ya2VyLmNwcCINCiAJ
CQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC0yMDkyOSw2ICsyMTA0MSwxMyBAQAog
CQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nl
c3NpYmlsaXR5XEFjY2Vzc2liaWxpdHkuY3BwIg0KKwkJCQk+DQorCQkJPEZpbGUNCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5XEFjY2Vzc2liaWxpdHkuaCINCisJCQkJPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGFjY2Vzc2liaWxpdHlc
QWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCkBAIC0yMjAxNiw2ICsyMjEzNSwxMyBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cYWNjZXNz
aWJpbGl0eVxBWE9iamVjdENhY2hlLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5XFNjcmVlblJlYWRlci5jcHAiDQor
CQkJCT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGFjY2Vzc2liaWxpdHlcU2Ny
ZWVuUmVhZGVyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQogCQkJPEZpbHRlcg0KIAkJCQlOYW1l
PSJ3aW4iDQogCQkJCT4NCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjI0LDYgKzYyNCwxNCBAQAogCQkyNEY1
NEVBRDEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI0RjU0RUFCMTAxRkU5MTQwMDBB
RTc0MSAvKiBBcHBsaWNhdGlvbkNhY2hlSG9zdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKCk7IH07IH07CiAJCTI1NDJGNERBMTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUlu
ZGljYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyNTQyRjREODExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwICov
OyB9OwogCQkyNTQyRjREQjExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI1NDJGNEQ5
MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5oICovOyB9OworCQkyOTc0
NDYzRDExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTc0NDYzNzExRkUyNTdBMDA0NTIzRjgg
LyogQWNjZXNzaWJpbGl0eS5jcHAgKi87IH07CisJCTI5NzQ0NjNFMTFGRTI1N0EwMDQ1MjNGOCAv
KiBBY2Nlc3NpYmlsaXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyOTc0NDYzODExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5oICovOyB9
OworCQkyOTc0NDY0MDExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjNBMTFGRTI1N0Ew
MDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuY3BwICovOyB9OworCQkyOTc0NDY0MTExRkUyNTdBMDA0
NTIzRjggLyogU2NyZWVuUmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyOTc0NDYzQjExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmgg
Ki87IH07CisJCTI5NzQ0NjZGMTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2NkQx
MUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5jcHAgKi87IH07CisJCTI5NzQ0Njcw
MTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjZFMTFGRTJCMzIwMDQ1MjNGOCAvKiBK
U0FjY2Vzc2liaWxpdHkuaCAqLzsgfTsKKwkJMjk3NDQ2OEUxMUZFMkJFMTAwNDUyM0Y4IC8qIEpT
U2NyZWVuUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI5NzQ0NjhDMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5jcHAgKi87
IH07CisJCTI5NzQ0NjhGMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2OEQxMUZFMkJF
MTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmggKi87IH07CiAJCTI5QTgxMjI2MEZCQjlDMUQw
MDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTgxMjA4MEZCQjlDMUQwMDUxMDI5MyAv
KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCAqLzsgfTsKIAkJMjlBODEyMjcwRkJCOUMx
RDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4MTIwOTBGQkI5QzFEMDA1MTAyOTMgLyogQWNj
ZXNzaWJpbGl0eVRhYmxlLmNwcCAqLzsgfTsKIAkJMjlBODEyMjgwRkJCOUMxRDAwNTEwMjkzIC8q
IEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyOUE4MTIwQTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0
eUFSSUFHcmlkLmNwcCAqLzsgfTsKQEAgLTYzMTksNiArNjMyNywxNiBAQAogCQkyNEY1NEVBQjEw
MUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXBwbGljYXRpb25DYWNoZUhvc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMjU0MkY0RDgxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5k
aWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJHZXN0
dXJlSW5kaWNhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjU0MkY0RDkx
MTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5kaWNhdG9yLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJHZXN0dXJlSW5kaWNhdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTI5NzQ0NjM3MTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0NDYzODExRkUyNTdBMDA0NTIz
RjggLyogQWNjZXNzaWJpbGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
Y2Nlc3NpYmlsaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjM5MTFG
RTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBBY2Nlc3NpYmlsaXR5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2
M0ExMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTY3JlZW5SZWFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyOTc0NDYzQjExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmVlblJlYWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyOTc0NDYzQzExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVh
ZGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTY3JlZW5SZWFkZXIuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0NDY2RDExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nl
c3NpYmlsaXR5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWNj
ZXNzaWJpbGl0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjZFMTFG
RTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNBY2Nlc3NpYmlsaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTI5NzQ0NjhDMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NjcmVlblJlYWRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjhEMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1Nj
cmVlblJlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NjcmVlblJl
YWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUE4MTIwODBGQkI5QzFEMDA1
MTAyOTMgLyogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBODEyMDkwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vz
c2liaWxpdHlUYWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
Y2Nlc3NpYmlsaXR5VGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUE4
MTIwQTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTU0MCw2ICsxMTU1OCw5IEBACiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTI5QTgxMjA1MEZCQjlCNTIwMDUx
MDI5MyAvKiBtYWMgKi8sCisJCQkJMjk3NDQ2MzcxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2li
aWxpdHkuY3BwICovLAorCQkJCTI5NzQ0NjM4MTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmls
aXR5LmggKi8sCisJCQkJMjk3NDQ2MzkxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHku
aWRsICovLAogCQkJCTI5QTgxMjBBMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJ
QUdyaWQuY3BwICovLAogCQkJCTI5QTgxMjE2MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmls
aXR5QVJJQUdyaWQuaCAqLywKIAkJCQkyOUE4MTIxMjBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNz
aWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgKi8sCkBAIC0xMTU4NCw2ICsxMTYwNSw5IEBACiAJCQkJ
MjlBODEyMTMwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZVJvdy5oICovLAog
CQkJCTI5QTgxMjE5MEZCQjlDMUQwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hlLmNwcCAqLywKIAkJ
CQkyOUE4MTIxQTBGQkI5QzFEMDA1MTAyOTMgLyogQVhPYmplY3RDYWNoZS5oICovLAorCQkJCTI5
NzQ0NjNBMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuY3BwICovLAorCQkJCTI5NzQ0
NjNCMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuaCAqLywKKwkJCQkyOTc0NDYzQzEx
RkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0g
YWNjZXNzaWJpbGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNDY1Myw2ICsx
NDY3Nyw4IEBACiAJCUE4M0I3OTEwMENDQjAwMUIwMDBCMDgyNSAvKiBDb3JlICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyOTc0NDY2RDExRkUyQjMyMDA0
NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmNwcCAqLywKKwkJCQkyOTc0NDY2RTExRkUyQjMyMDA0
NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmggKi8sCiAJCQkJNjVERjMxRDgwOUQxQzEyMjAwMEJF
MzI1IC8qIEpTQXR0ci5jcHAgKi8sCiAJCQkJNjVERjMxRDkwOUQxQzEyMzAwMEJFMzI1IC8qIEpT
QXR0ci5oICovLAogCQkJCTkzRjlCNzlFMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlv
bi5jcHAgKi8sCkBAIC0xNDcwNSw2ICsxNDczMSw4IEBACiAJCQkJNjVERjMxRUMwOUQxQ0M2MDAw
MEJFMzI1IC8qIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggKi8sCiAJCQkJRTRCNDIzODUwQ0JG
QjczQzAwQUYyRUNFIC8qIEpTUHJvZ3Jlc3NFdmVudC5jcHAgKi8sCiAJCQkJRTRCNDIzODYwQ0JG
QjczQzAwQUYyRUNFIC8qIEpTUHJvZ3Jlc3NFdmVudC5oICovLAorCQkJCTI5NzQ0NjhDMTFGRTJC
RTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5jcHAgKi8sCisJCQkJMjk3NDQ2OEQxMUZFMkJF
MTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmggKi8sCiAJCQkJNjVERjMxRUYwOUQxQ0M2MDAw
MEJFMzI1IC8qIEpTVGV4dC5jcHAgKi8sCiAJCQkJNjVERjMxRjAwOUQxQ0M2MDAwMEJFMzI1IC8q
IEpTVGV4dC5oICovLAogCQkJKTsKQEAgLTE5ODg1LDYgKzE5OTEzLDEwIEBACiAJCQkJQzU3MkVF
MEUxMjAxQzczNjAwN0Q4RjgyIC8qIElEQkluZGV4QmFja2VuZEltcGwuaCBpbiBIZWFkZXJzICov
LAogCQkJCUM1NzJFRTBGMTIwMUM3MzYwMDdEOEY4MiAvKiBJREJJbmRleEJhY2tlbmRJbnRlcmZh
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NzJFRTFGMTIwMUM5QkMwMDdEOEY4MiAvKiBKU0lE
QkluZGV4LmggaW4gSGVhZGVycyAqLywKKwkJCQkyOTc0NDYzRTExRkUyNTdBMDA0NTIzRjggLyog
QWNjZXNzaWJpbGl0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjk3NDQ2NDExMUZFMjU3QTAwNDUy
M0Y4IC8qIFNjcmVlblJlYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjk3NDQ2NzAxMUZFMkIz
MjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjk3NDQ2
OEYxMUZFMkJFMTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTIyMjg2LDYgKzIyMzE4LDEwIEBACiAJCQkJQzU3MkVFMEExMjAxQzczNjAwN0Q4RjgyIC8qIElE
QkluZGV4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1NzJFRTBEMTIwMUM3MzYwMDdEOEY4MiAv
KiBJREJJbmRleEJhY2tlbmRJbXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1NzJFRTFFMTIw
MUM5QkMwMDdEOEY4MiAvKiBKU0lEQkluZGV4LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI5NzQ0
NjNEMTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTI5NzQ0NjQwMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMjk3NDQ2NkYxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkyOTc0NDY4RTExRkUyQkUxMDA0NTIzRjggLyogSlNTY3Jl
ZW5SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgJKHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTE5LDYgKzExOSw4IEBAIHB1YmxpYzoK
ICAgICAgICAgQVhSb3dDb3VudENoYW5nZWQsCiAgICAgICAgIEFYUm93Q29sbGFwc2VkLAogICAg
ICAgICBBWFJvd0V4cGFuZGVkLAorICAgICAgICBBWFNjcmVlbkNoYW5nZWQsCisgICAgICAgIEFY
RWxlbWVudHNDaGFuZ2VkCiAgICAgfTsKIAogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihSZW5k
ZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgYm9vbCBwb3N0VG9FbGVtZW50LCBQb3N0VHlwZSA9
IFBvc3RBc3luY2hyb25vdXNseSk7CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHkuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHkuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBw
bGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eS5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIlNjcmVlblJlYWRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0Fj
Y2Vzc2liaWxpdHk6OkFjY2Vzc2liaWxpdHkoRnJhbWUqIGZyYW1lKQorICAgIDogbV9mcmFtZShm
cmFtZSkgCit7Cit9CisKK0FjY2Vzc2liaWxpdHk6On5BY2Nlc3NpYmlsaXR5KCkKK3sKKyAgICBk
aXNjb25uZWN0RnJhbWUoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5OjpkaXNjb25uZWN0RnJh
bWUoKQoreworICAgIGlmIChtX3NjcmVlblJlYWRlcikgeworICAgICAgICBtX3NjcmVlblJlYWRl
ci0+ZGlzY29ubmVjdEZyYW1lKCk7CisgICAgICAgIG1fc2NyZWVuUmVhZGVyID0gMDsKKyAgICB9
CisgICAgbV9mcmFtZSA9IDA7Cit9CisgICAgCit2b2lkIEFjY2Vzc2liaWxpdHk6OnNjcmVlbkNo
YW5nZWQoKQoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAg
IERvY3VtZW50KiBkb2MgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jKQorICAg
ICAgICByZXR1cm47CisgICAgCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdCA9IGRvYy0+
YXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShkb2MtPnJlbmRlcmVyKCkpOworICAgIGRvYy0+
YXhPYmplY3RDYWNoZSgpLT5wb3N0Tm90aWZpY2F0aW9uKHJvb3QsIGRvYywgQVhPYmplY3RDYWNo
ZTo6QVhTY3JlZW5DaGFuZ2VkLCBmYWxzZSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eTo6ZWxl
bWVudHNDaGFuZ2VkKCkKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBEb2N1bWVudCogZG9jID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRv
YykKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3Qg
PSBkb2MtPmF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoZG9jLT5yZW5kZXJlcigpKTsKKyAg
ICBkb2MtPmF4T2JqZWN0Q2FjaGUoKS0+cG9zdE5vdGlmaWNhdGlvbihyb290LCBkb2MsIEFYT2Jq
ZWN0Q2FjaGU6OkFYRWxlbWVudHNDaGFuZ2VkLCBmYWxzZSk7Cit9CisgICAgCitTY3JlZW5SZWFk
ZXIqIEFjY2Vzc2liaWxpdHk6OnNjcmVlblJlYWRlcigpIGNvbnN0Cit7CisgICAgaWYgKCFtX3Nj
cmVlblJlYWRlcikKKyAgICAgICAgbV9zY3JlZW5SZWFkZXIgPSBTY3JlZW5SZWFkZXI6OmNyZWF0
ZShtX2ZyYW1lKTsKKyAgICAKKyAgICByZXR1cm4gbV9zY3JlZW5SZWFkZXIuZ2V0KCk7Cit9Cisg
ICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHkuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQWNjZXNz
aWJpbGl0eV9oCisjZGVmaW5lIEFjY2Vzc2liaWxpdHlfaAorCisjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorY2xhc3MgRnJhbWU7CitjbGFzcyBT
Y3JlZW5SZWFkZXI7CisgICAgCitjbGFzcyBBY2Nlc3NpYmlsaXR5IDogcHVibGljIFJlZkNvdW50
ZWQ8QWNjZXNzaWJpbGl0eT4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vz
c2liaWxpdHk+IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nl
c3NpYmlsaXR5KGZyYW1lKSk7IH0KKyAgICB+QWNjZXNzaWJpbGl0eSgpOworICAgIAorICAgIFNj
cmVlblJlYWRlciogc2NyZWVuUmVhZGVyKCkgY29uc3Q7CisgICAgdm9pZCBzY3JlZW5DaGFuZ2Vk
KCk7CisgICAgdm9pZCBlbGVtZW50c0NoYW5nZWQoKTsKKyAgICAKKyAgICB2b2lkIGRpc2Nvbm5l
Y3RGcmFtZSgpOworICAgIAorcHJpdmF0ZToKKyAgICBBY2Nlc3NpYmlsaXR5KEZyYW1lKik7Cisg
ICAgRnJhbWUqIG1fZnJhbWU7CisgICAgbXV0YWJsZSBSZWZQdHI8U2NyZWVuUmVhZGVyPiBtX3Nj
cmVlblJlYWRlcjsKK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBBY2Nlc3NpYmlsaXR5X2gKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eS5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eS5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB3aW5kb3cgeworCisg
ICAgaW50ZXJmYWNlIFtPbWl0Q29uc3RydWN0b3JdIEFjY2Vzc2liaWxpdHkgeworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgU2NyZWVuUmVhZGVyIHNjcmVlblJlYWRlcjsKKworICAgICAgICB2
b2lkIHNjcmVlbkNoYW5nZWQoKTsKKyAgICAgICAgdm9pZCBlbGVtZW50c0NoYW5nZWQoKTsKKwor
ICAgIH07Cit9CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmgJKHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsMTIgQEAKICNpbmNsdWRl
ICJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShN
QUMpCisjZGVmaW5lIFNVUFBPUlRTX0pTQUNDRVNTSUJJTElUWSAxCisjZWxzZQorI2RlZmluZSBT
VVBQT1JUU19KU0FDQ0VTU0lCSUxJVFkgMAorI2VuZGlmCisKIHR5cGVkZWYgc3RydWN0IF9OU1Jh
bmdlIE5TUmFuZ2U7CiAKICNpZmRlZiBfX09CSkNfXwpAQCAtNTQ4LDYgKzU1NCwxNiBAQCBwdWJs
aWM6CiAjZW5kaWYKICNlbmRpZgogCisjaWYgU1VQUE9SVFNfSlNBQ0NFU1NJQklMSVRZCisgICAg
Ym9vbCBpc1NjcmVlblJlYWRlclJ1bm5pbmcoKSBjb25zdDsKKyAgICBFbGVtZW50KiBzY3JlZW5S
ZWFkZXJGb2N1c2VkRWxlbWVudCgpIGNvbnN0OworICAgIFN0cmluZyBzY3JlZW5SZWFkZXJWZXJz
aW9uKCkgY29uc3Q7CisjZWxzZQorICAgIGJvb2wgaXNTY3JlZW5SZWFkZXJSdW5uaW5nKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBFbGVtZW50KiBzY3JlZW5SZWFkZXJGb2N1c2VkRWxl
bWVudCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICBTdHJpbmcgc2NyZWVuUmVhZGVyVmVyc2lv
bigpIGNvbnN0IHsgcmV0dXJuIG51bGxBdG9tOyB9CisjZW5kaWYKKyAgICAKICNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpCiAgICAgLy8gYSBwbGF0Zm9ybS1zcGVjaWZpYyBtZXRob2QgZm9yIGRldGVy
bWluaW5nIGlmIGFuIGF0dGFjaG1lbnQgaXMgaWdub3JlZAogICAgIGJvb2wgYWNjZXNzaWJpbGl0
eUlnbm9yZUF0dGFjaG1lbnQoKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9T
Y3JlZW5SZWFkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3Jl
ZW5SZWFkZXIuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVl
blJlYWRlci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJTY3JlZW5SZWFkZXIuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTY3JlZW5SZWFkZXI6OlNjcmVl
blJlYWRlcihGcmFtZSogZnJhbWUpCisgICAgOiBtX2ZyYW1lKGZyYW1lKQoreworfQorCitTY3Jl
ZW5SZWFkZXI6On5TY3JlZW5SZWFkZXIoKQoreworICAgIGRpc2Nvbm5lY3RGcmFtZSgpOworfQor
ICAgIAordm9pZCBTY3JlZW5SZWFkZXI6OmRpc2Nvbm5lY3RGcmFtZSgpCit7CisgICAgbV9mcmFt
ZSA9IDA7Cit9CisKK2Jvb2wgU2NyZWVuUmVhZGVyOjphY3RpdmUoKSBjb25zdAoreworICAgIGlm
ICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIERvY3VtZW50KiBk
b2MgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZG9jLT5heE9iamVj
dENhY2hlKCktPmdldE9yQ3JlYXRlKGRvYy0+cmVuZGVyZXIoKSk7CisgICAgcmV0dXJuIG9iai0+
aXNTY3JlZW5SZWFkZXJSdW5uaW5nKCk7Cit9CisgICAgCitFbGVtZW50KiBTY3JlZW5SZWFkZXI6
OmFjdGl2ZUVsZW1lbnQoKSBjb25zdAoreworICAgIERvY3VtZW50KiBkb2MgPSBtX2ZyYW1lLT5k
b2N1bWVudCgpOworICAgIGlmICghZG9jKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZG9jLT5heE9iamVjdENhY2hlKCktPmdldE9y
Q3JlYXRlKGRvYy0+cmVuZGVyZXIoKSk7CisgICAgcmV0dXJuIG9iai0+c2NyZWVuUmVhZGVyRm9j
dXNlZEVsZW1lbnQoKTsgICAgCit9CisgICAgCitTdHJpbmcgU2NyZWVuUmVhZGVyOjp2ZXJzaW9u
KCkgY29uc3QKK3sKKyAgICBEb2N1bWVudCogZG9jID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKKyAg
ICBpZiAoIWRvYykKKyAgICAgICAgcmV0dXJuIG51bGxBdG9tOworICAgIAorICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iaiA9IGRvYy0+YXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShkb2Mt
PnJlbmRlcmVyKCkpOworICAgIHJldHVybiBvYmotPnNjcmVlblJlYWRlclZlcnNpb24oKTsKK30K
KyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmU7CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxp
dHkvU2NyZWVuUmVhZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1Nj
cmVlblJlYWRlci5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVl
blJlYWRlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBw
bGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNjcmVlblJl
YWRlcl9oCisjZGVmaW5lIFNjcmVlblJlYWRlcl9oCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KyAgICAKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBGcmFtZTsKK2NsYXNzIFN0cmluZzsKKyAgICAK
K2NsYXNzIFNjcmVlblJlYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFNjcmVlblJlYWRlcj4gewor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNjcmVlblJlYWRlcj4gY3JlYXRlKEZyYW1l
KiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNjcmVlblJlYWRlcihmcmFtZSkpOyB9Cisg
ICAgflNjcmVlblJlYWRlcigpOworICAgIAorICAgIFN0cmluZyB2ZXJzaW9uKCkgY29uc3Q7Cisg
ICAgYm9vbCBhY3RpdmUoKSBjb25zdDsKKyAgICBFbGVtZW50KiBhY3RpdmVFbGVtZW50KCkgY29u
c3Q7CisgICAgCisgICAgdm9pZCBkaXNjb25uZWN0RnJhbWUoKTsKK3ByaXZhdGU6CisgICAgU2Ny
ZWVuUmVhZGVyKEZyYW1lKik7CisgICAgRnJhbWUqIG1fZnJhbWU7Cit9OworICAgIAorfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU2NyZWVuUmVhZGVyX2gKSW5kZXg6IFdlYkNv
cmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
Q29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK21vZHVsZSB3aW5kb3cgeworCisgICAgaW50ZXJmYWNlICBbT21pdENvbnN0cnVjdG9yXSBT
Y3JlZW5SZWFkZXIgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlcnNp
b247CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGFjdGl2ZTsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgYWN0aXZlRWxlbWVudDsKKyAgICB9OworCit9CisK
SW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0J
KHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENh
Y2hlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Niw2ICs3NiwxMiBAQCB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhCiAgICAgICAgIGNhc2UgQVhMYXlvdXRDb21wbGV0
ZToKICAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9ICJBWExheW91dENvbXBsZXRlIjsKICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYU2NyZWVuQ2hhbmdlZDoKKyAgICAgICAg
ICAgIG1hY05vdGlmaWNhdGlvbiA9ICJBWFNjcmVlbkNoYW5nZWQiOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhFbGVtZW50c0NoYW5nZWQ6CisgICAgICAgICAgICBtYWNOb3Rp
ZmljYXRpb24gPSAiQVhFbGVtZW50c0NoYW5nZWQiOworICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgQVhMb2FkQ29tcGxldGU6CiAgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAi
QVhMb2FkQ29tcGxldGUiOwogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBXZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCShyZXZpc2lv
biA2NDM3MSkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVj
dE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjksOSArMjksMjYgQEAKICNpZiBIQVZFKEFDQ0VT
U0lCSUxJVFkpCiAKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLmgiCisjaW1w
b3J0ICJBWE9iamVjdENhY2hlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorYm9vbCBBY2Nl
c3NpYmlsaXR5T2JqZWN0Ojppc1NjcmVlblJlYWRlclJ1bm5pbmcoKSBjb25zdAoreworICAgIC8v
IElmIHRoZSBlbmhhbmNlZCB1c2VyIGludGVyZmFjZSBpcyBlbmFibGVkLCBpdCBtZWFucyBWb2lj
ZU92ZXIgaXMgcnVubmluZy4KKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQoKTsKK30KKyAgICAKK0VsZW1lbnQqIEFjY2Vz
c2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlckZvY3VzZWRFbGVtZW50KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gMDsKK30KKyAgICAKK1N0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzY3JlZW5S
ZWFkZXJWZXJzaW9uKCkgY29uc3QKK3sgCisgICAgcmV0dXJuIG51bGxBdG9tOworfQorICAgIAog
Ym9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5SWdub3JlQXR0YWNobWVudCgp
IGNvbnN0CiB7CiAgICAgTlNWaWV3KiBhdHRhY2htZW50ID0gW3dyYXBwZXIoKSBhdHRhY2htZW50
Vmlld107CkluZGV4OiBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJDb3JlL3Bh
Z2UvTmF2aWdhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogCisjaW5jbHVkZSAiQWNjZXNz
aWJpbGl0eS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNvb2tpZUphci5oIgog
I2luY2x1ZGUgIkRPTU1pbWVUeXBlQXJyYXkuaCIKQEAgLTY2LDYgKzY3LDEwIEBAIHZvaWQgTmF2
aWdhdG9yOjpkaXNjb25uZWN0RnJhbWUoKQogICAgICAgICBtX2dlb2xvY2F0aW9uLT5kaXNjb25u
ZWN0RnJhbWUoKTsKICAgICAgICAgbV9nZW9sb2NhdGlvbiA9IDA7CiAgICAgfQorICAgIGlmICht
X2FjY2Vzc2liaWxpdHkpIHsKKyAgICAgICAgbV9hY2Nlc3NpYmlsaXR5LT5kaXNjb25uZWN0RnJh
bWUoKTsKKyAgICAgICAgbV9hY2Nlc3NpYmlsaXR5ID0gMDsKKyAgICB9CiAgICAgbV9mcmFtZSA9
IDA7CiB9CiAKQEAgLTEyNyw2ICsxMzIsMTMgQEAgRE9NTWltZVR5cGVBcnJheSogTmF2aWdhdG9y
OjptaW1lVHlwZXMoKQogICAgICAgICBtX21pbWVUeXBlcyA9IERPTU1pbWVUeXBlQXJyYXk6OmNy
ZWF0ZShtX2ZyYW1lKTsKICAgICByZXR1cm4gbV9taW1lVHlwZXMuZ2V0KCk7CiB9CisgICAgCitB
Y2Nlc3NpYmlsaXR5KiBOYXZpZ2F0b3I6OmFjY2Vzc2liaWxpdHkoKSBjb25zdAoreworICAgIGlm
ICghbV9hY2Nlc3NpYmlsaXR5KQorICAgICAgICBtX2FjY2Vzc2liaWxpdHkgPSBBY2Nlc3NpYmls
aXR5OjpjcmVhdGUobV9mcmFtZSk7CisgICAgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eS5nZXQoKTsK
K30KIAogYm9vbCBOYXZpZ2F0b3I6OmNvb2tpZUVuYWJsZWQoKSBjb25zdAogewpJbmRleDogV2Vi
Q29yZS9wYWdlL05hdmlnYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9OYXZpZ2F0
b3IuaAkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBsYW5ndWFnZSgp
IGNvbnN0OwogICAgIERPTVBsdWdpbkFycmF5KiBwbHVnaW5zKCkgY29uc3Q7CiAgICAgRE9NTWlt
ZVR5cGVBcnJheSogbWltZVR5cGVzKCkgY29uc3Q7CisgICAgQWNjZXNzaWJpbGl0eSogYWNjZXNz
aWJpbGl0eSgpIGNvbnN0OwogICAgIGJvb2wgY29va2llRW5hYmxlZCgpIGNvbnN0OwogICAgIGJv
b2wgamF2YUVuYWJsZWQoKSBjb25zdDsKIApAQCAtNjYsNiArNjcsNyBAQCBwcml2YXRlOgogICAg
IG11dGFibGUgUmVmUHRyPERPTVBsdWdpbkFycmF5PiBtX3BsdWdpbnM7CiAgICAgbXV0YWJsZSBS
ZWZQdHI8RE9NTWltZVR5cGVBcnJheT4gbV9taW1lVHlwZXM7CiAgICAgbXV0YWJsZSBSZWZQdHI8
R2VvbG9jYXRpb24+IG1fZ2VvbG9jYXRpb247CisgICAgbXV0YWJsZSBSZWZQdHI8QWNjZXNzaWJp
bGl0eT4gbV9hY2Nlc3NpYmlsaXR5OwogfTsKIAogfQpJbmRleDogV2ViQ29yZS9wYWdlL05hdmln
YXRvci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwJKHJldmlz
aW9uIDY0MzcxKQorKysgV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDYgKzMxLDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgcGxhdGZvcm07CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01Q
bHVnaW5BcnJheSBwbHVnaW5zOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NTWltZVR5
cGVBcnJheSBtaW1lVHlwZXM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBY2Nlc3NpYmls
aXR5IGFjY2Vzc2liaWxpdHk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
cHJvZHVjdDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBwcm9kdWN0U3Vi
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlbmRvcjsKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDY0MzcxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDctMjYgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNo
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBWDogU3VwcG9ydCBtZXRob2RzIGZvciB3ZWIgYXBwcyB0byBpbnRlcmFjdCB3aXRoIHRo
ZSBuYXRpdmUgYWNjZXNzaWJpbGl0eSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MzAwNQorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vz
c2liaWxpdHkvanMtYWNjZXNzaWJpbGl0eS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHkuaHRtbDogQWRkZWQu
CisKIDIwMTAtMDctMzAgIERyZXcgV2lsc29uICA8YXR3aWxzb25AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgdGVzdCBleHBlY3RhdGlvbnMgZml4LgpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0eS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
anMtYWNjZXNzaWJpbGl0eS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9qcy1hY2Nlc3NpYmlsaXR5LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorVGhpcyB0ZXN0cyB0aGUgamF2YXNjcmlw
dCBpbnRlcmZhY2UgdG8gYWNjZXNzaWJpbGl0eQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBheC5zY3JlZW5SZWFkZXIuYWN0aXZlIGlzIGZhbHNlCitQQVNTIGFkZGVkTm90
aWZpY2F0aW9uIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorUEFTUyBuYW1lIGlzICdBWFNjcmVlbkNoYW5nZWQnCitQQVNTIG5hbWUgaXMg
J0FYRWxlbWVudHNDaGFuZ2VkJworCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS9qcy1hY2Nlc3NpYmlsaXR5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0eS5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNj
ZXNzaWJpbGl0eS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0PgordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNl
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0
PgorCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhlIGphdmFzY3JpcHQgaW50ZXJmYWNl
IHRvIGFjY2Vzc2liaWxpdHkiKTsKKworICAgIHZhciBib2R5ID0gMDsKKyAgICB2YXIgbmFtZSA9
IDA7CisgICAgZnVuY3Rpb24gbm90aWZ5Q2FsbGJhY2sobm90aWZpY2F0aW9uKSB7ICAKKyAgICAg
ICAgbmFtZSA9IG5vdGlmaWNhdGlvbjsKKyAgICAgICAgaWYgKG5hbWUgPT0gIkFYU2NyZWVuQ2hh
bmdlZCIpIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJuYW1lIiwgIidBWFNjcmVlbkNoYW5nZWQn
Iik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobmFtZSA9PSAiQVhFbGVtZW50c0NoYW5n
ZWQiKSB7CisgICAgICAgICAgICBzaG91bGRCZSgibmFtZSIsICInQVhFbGVtZW50c0NoYW5nZWQn
Iik7CisgICAgICAgICAgICBib2R5LnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAg
ICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICB9CisgICAgfQorPC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGF4ID0gd2luZG93Lm5h
dmlnYXRvci5hY2Nlc3NpYmlsaXR5OworCisgICAgLy8gc2NyZWVuIHJlYWRlciBzaG91bGQgbm90
IGJlIHJ1bm5pbmcgd2l0aGluIGxheW91dCB0ZXN0cy4KKyAgICBzaG91bGRCZSgiYXguc2NyZWVu
UmVhZGVyLmFjdGl2ZSIsICJmYWxzZSIpOworCisgICAgLy8gc2hvdWxkIG5vdCBjYXVzZSBhbiBl
cnJvci4KKyAgICB2YXIgdmVyc2lvbiA9IGF4LnNjcmVlblJlYWRlci52ZXJzaW9uOworCisgICAg
Ly8gc2hvdWxkIG5vdCBjYXVzZSBhbiBlcnJvcgorICAgIHZhciBhY3RpdmVFbGVtZW50ID0gYXgu
c2NyZWVuUmVhZGVyLmFjdGl2ZUVsZW1lbnQ7CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CisKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvZHkiKS5m
b2N1cygpOworCisgICAgICAgIGJvZHkgPSB3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
Zm9jdXNlZEVsZW1lbnQ7CisKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gYm9keS5h
ZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZnlDYWxsYmFjayk7CisgICAgICAgIHNob3VsZEJl
KCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAgLy8gc2hvdWxkIGNhdXNl
IGEgQVhTY3JlZW5DaGFuZ2VkIHRvIGJlIHNlbnQgb3V0LgorICAgICAgICBheC5zY3JlZW5DaGFu
Z2VkKCk7CisKKyAgICAgICAgLy8gc2hvdWxkIGNhdXNlIGEgQVhFbGVtZW50c0NoYW5nZWQgdG8g
YmUgc2VudCBvdXQuCisgICAgICAgIGF4LmVsZW1lbnRzQ2hhbmdlZCgpOworICAgIH0KKworICAg
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63102</attachid>
            <date>2010-07-30 14:36:43 -0700</date>
            <delta_ts>2010-07-30 15:03:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43005-20100730143641.patch</filename>
            <type>text/plain</type>
            <size>47621</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDM3MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTYgQEAKKzIwMTAtMDctMzAgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBWDogU3VwcG9ydCBtZXRob2RzIGZvciB3ZWIgYXBwcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBu
YXRpdmUgYWNjZXNzaWJpbGl0eSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MzAwNQorCisgICAgICAgIEFkZHMgYSBuZXcgImFjY2Vzc2liaWxp
dHkiIG9iamVjdCB0aGF0IGhhbmdzIG9mZiBvZiAid2luZG93Lm5hdmlnYXRvciIuCisgICAgICAg
IFRoaXMgYWNjZXNzaWJpbGl0eSBvYmplY3Qgd2lsbCBhbGxvdyB3ZWIgYXBwcyB0byBpbnRlcmFj
dCB3aXRoIG5hdGl2ZSBhY2Nlc3NpYmlsaXR5IEFQSXMKKyAgICAgICAgdG8gcHJvdmlkZSBhIHJp
Y2hlciBleHBlcmllbmNlIChmb3Igc2NyZWVuIHJlYWRlciB1c2VycyBwcmltYXJpbHkpLgorCisg
ICAgICAgIFRlc3Q6IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHku
aHRtbAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjopOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eTo6QWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5Ojp+QWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5OjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eTo6c2NyZWVuQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjplbGVt
ZW50c0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6c2NyZWVuUmVh
ZGVyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjpjcmVhdGUpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eS5pZGw6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNTY3JlZW5SZWFkZXJSdW5uaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlckZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlclZlcnNpb24pOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTY3JlZW5SZWFkZXI6OlNjcmVlblJlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jl
ZW5SZWFkZXI6On5TY3JlZW5SZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVy
OjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVyOjphY3Rp
dmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVyOjphY3RpdmVFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmVlblJlYWRlcjo6dmVyc2lvbik6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9TY3JlZW5SZWFkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5S
ZWFkZXI6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNTY3JlZW5SZWFk
ZXJSdW5uaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVl
blJlYWRlckZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OnNjcmVlblJlYWRlclZlcnNpb24pOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvcjo6ZGlzY29ubmVjdEZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5hdmlnYXRvcjo6YWNjZXNzaWJpbGl0eSk6CisgICAgICAgICogcGFnZS9O
YXZpZ2F0b3IuaDoKKyAgICAgICAgKiBwYWdlL05hdmlnYXRvci5pZGw6CisKIDIwMTAtMDctMzAg
IENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGlu
Z3MubWsKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5t
awkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdz
Lm1rCSh3b3JraW5nIGNvcHkpCkBAIC0yNjMsNiArMjYzLDIxIEBAIExPQ0FMX0dFTkVSQVRFRF9T
T1VSQ0VTICs9ICQoR0VOKQogIyBhYm92ZSBydWxlcy4gIFNwZWNpZnlpbmcgdGhpcyBleHBsaWNp
dGx5IG1ha2VzIC1qMiB3b3JrLgogJChwYXRzdWJzdCAlLmgsJS5jcHAsJChHRU4pKTogJChpbnRl
cm1lZGlhdGVzKS9iaW5kaW5ncy8lLmNwcCA6ICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvJS5o
CiAKKyMgQWNjZXNzaWJpbGl0eQorR0VOIDo9IFwKKyAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRp
bmdzL1Y4QWNjZXNzaWJpbGl0eS5oCisgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOFNj
cmVlblJlYWRlci5oCisKKyQoR0VOKTogUFJJVkFURV9QQVRIIDo9ICQoTE9DQUxfUEFUSCkKKyQo
R0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFNPVVJDRV9ST09UPSQoUFJJVkFURV9QQVRIKSBw
ZXJsIC1JJChQUklWQVRFX1BBVEgpL2JpbmRpbmdzL3NjcmlwdHMgJChQUklWQVRFX1BBVEgpL2Jp
bmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgLS1kZWZpbmVzICIkKEZFQVRVUkVf
REVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1nZW5lcmF0b3IgVjggLS1pbmNsdWRlIGRv
bSAtLWluY2x1ZGUgaHRtbCAtLW91dHB1dGRpciAkKGRpciAkQCkgJDwKKyQoR0VOKTogJChpbnRl
cm1lZGlhdGVzKS9iaW5kaW5ncy9WOCUuaCA6ICQoTE9DQUxfUEFUSCkvYWNjZXNzaWJpbGl0eS8l
LmlkbCAkKGpzX2JpbmRpbmdfc2NyaXB0cykKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNl
KQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMgV2UgYWxzbyBuZWVkIHRo
ZSAuY3BwIGZpbGVzLCB3aGljaCBhcmUgZ2VuZXJhdGVkIGFzIHNpZGUgZWZmZWN0cyBvZiB0aGUK
KyMgYWJvdmUgcnVsZXMuICBTcGVjaWZ5aW5nIHRoaXMgZXhwbGljaXRseSBtYWtlcyAtajIgd29y
ay4KKyQocGF0c3Vic3QgJS5oLCUuY3BwLCQoR0VOKSk6ICQoaW50ZXJtZWRpYXRlcykvYmluZGlu
Z3MvJS5jcHAgOiAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzLyUuaAorCiAjIFBhZ2UKIEdFTiA6
PSBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOEJhckluZm8uaCBcCkluZGV4OiBX
ZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9BbmRy
b2lkLmpzY2JpbmRpbmdzLm1rCShyZXZpc2lvbiA2NDM3MSkKKysrIFdlYkNvcmUvQW5kcm9pZC5q
c2NiaW5kaW5ncy5tawkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQCBCSU5ESU5HX0Nf
SU5DTFVERVMgOj0gXAogCSQoSkFWQVNDUklQVENPUkVfUEFUSCkvd3JlYyBcCiAJJChKQVZBU0NS
SVBUQ09SRV9QQVRIKS9Gb3J3YXJkaW5nSGVhZGVycyBcCiAJXAorCSQoYmFzZV9pbnRlcm1lZGlh
dGVzKS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkgXAogCSQoYmFzZV9pbnRlcm1lZGlhdGVzKS9XZWJD
b3JlL2JpbmRpbmdzL2pzIFwKIAkkKGJhc2VfaW50ZXJtZWRpYXRlcykvV2ViQ29yZS9kb20gXAog
CSQoYmFzZV9pbnRlcm1lZGlhdGVzKS9XZWJDb3JlL2h0bWwvY2FudmFzIFwKSW5kZXg6IFdlYkNv
cmUvRGVyaXZlZFNvdXJjZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMuY3BwCShyZXZpc2lvbiA2NDM3MSkKKysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJIVE1MRWxlbWVudEZh
Y3RvcnkuY3BwIgogI2luY2x1ZGUgIkpTQWJzdHJhY3RXb3JrZXIuY3BwIgorI2luY2x1ZGUgIkpT
QWNjZXNzaWJpbGl0eS5jcHAiCiAjaW5jbHVkZSAiSlNBdHRyLmNwcCIKICNpbmNsdWRlICJKU0Jh
ckluZm8uY3BwIgogI2luY2x1ZGUgIkpTQmVmb3JlTG9hZEV2ZW50LmNwcCIKQEAgLTIyNCw2ICsy
MjUsNyBAQAogI2luY2x1ZGUgIkpTUmVjdC5jcHAiCiAjaW5jbHVkZSAiSlNSR0JDb2xvci5jcHAi
CiAjaW5jbHVkZSAiSlNTY3JlZW4uY3BwIgorI2luY2x1ZGUgIkpTU2NyZWVuUmVhZGVyLmNwcCIK
ICNpbmNsdWRlICJKU1NjcmlwdFByb2ZpbGUuY3BwIgogI2luY2x1ZGUgIkpTU2NyaXB0UHJvZmls
ZU5vZGUuY3BwIgogI2luY2x1ZGUgIkpTU2hhcmVkV29ya2VyLmNwcCIKSW5kZXg6IFdlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UJKHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKIFZQQVRIID0gXAogICAgICQoV2ViQ29y
ZSkgXAorICAgICQoV2ViQ29yZSkvYWNjZXNzaWJpbGl0eSBcCiAgICAgJChXZWJDb3JlKS9iaW5k
aW5ncy9qcyBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9vYmpjIFwKICAgICAkKFdlYkNvcmUp
L2NzcyBcCkBAIC01MCw2ICs1MSw3IEBAIFZQQVRIID0gXAogRE9NX0NMQVNTRVMgPSBcCiAgICAg
QWJzdHJhY3RWaWV3IFwKICAgICBBYnN0cmFjdFdvcmtlciBcCisgICAgQWNjZXNzaWJpbGl0eSBc
CiAgICAgQXR0ciBcCiAgICAgQmFySW5mbyBcCiAgICAgQmVmb3JlTG9hZEV2ZW50IFwKQEAgLTQz
MCw2ICs0MzIsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBTVkdab29tQW5kUGFuIFwKICAgICBT
Vkdab29tRXZlbnQgXAogICAgIFNjcmVlbiBcCisgICAgU2NyZWVuUmVhZGVyIFwKICAgICBTdHls
ZU1lZGlhIFwKICAgICBTdHlsZVNoZWV0IFwKICAgICBTdHlsZVNoZWV0TGlzdCBcCkluZGV4OiBX
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUu
YW0JKHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBj
b3B5KQpAQCAtOTksNiArOTksOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0Fic3RyYWN0V29ya2VyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0Fic3RyYWN0V29ya2VyLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNB
Y2Nlc3NpYmlsaXR5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FjY2Vzc2liaWxp
dHkuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FycmF5QnVmZmVyLmNwcCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FycmF5QnVmZmVyLmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwIFwKQEAgLTQ2Niw2ICs0NjgsOCBAQCB3ZWJjb3Jl
X2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSR0JDb2xvci5o
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyZWVuLmNwcCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1NjcmVlbi5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyZWVu
UmVhZGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NjcmVlblJlYWRlci5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyaXB0UHJvZmlsZS5jcHAgXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNTY3JpcHRQcm9maWxlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNTY3JpcHRQcm9maWxlTm9kZS5jcHAgXApAQCAtNTc1LDYgKzU3OSw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJV2ViQ29yZS9XZWJDb3JlUHJlZml4LmggXAogCVdlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaCBcCisJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuY3BwIFwK
KwlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5oIFwKIAlXZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5oIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgXApAQCAtNjE3LDYgKzYyMyw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhl
YWRlckNvbnRhaW5lci5oIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRh
YmxlUm93LmNwcCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJv
dy5oIFwKKwlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmNwcCBcCisJV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJp
Yy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVk
U2NyaXB0U291cmNlUHJvdmlkZXIuaCBcCkBAIC00NDE2LDYgKzQ0MjQsNyBAQCBEZXJpdmVkU291
cmNlcy9XZWJDb3JlL1JlbW90ZUluc3BlY3RvckZyCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzIC1JJChXZWJDb3JlKS9pbnNwZWN0b3IgJChXZWJDb3Jl
KS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsICQoSURMX1BBVEg6JT0tLWlu
Y2x1ZGUgIiUiKSAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTX1dFQkNPUkUpIiAtLWRlZmluZXMg
IkxBTkdVQUdFX0pBVkFTQ1JJUFQ9MSAkKEZFQVRVUkVfREVGSU5FUykiIC0tZ2VuZXJhdG9yIElu
c3BlY3RvciAkPAogCiBJRExfUEFUSCA6PSBcCisgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5
IFwKICAgICAkKFdlYkNvcmUpL2JpbmRpbmdzL2pzIFwKICAgICAkKFdlYkNvcmUpL2NzcyBcCiAg
ICAgJChXZWJDb3JlKS9kb20gXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9X
ZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw4IEBACiB7CiAgICAgJ3Zhcmlh
Ymxlcyc6IHsKICAgICAgICAgJ3dlYmNvcmVfYmluZGluZ3NfaWRsX2ZpbGVzJzogWworICAgICAg
ICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5pZGwnLAorICAgICAgICAgICAgJ2Fj
Y2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmlkbCcsCiAgICAgICAgICAgICAnY3NzL0NTU0NoYXJz
ZXRSdWxlLmlkbCcsCiAgICAgICAgICAgICAnY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwnLAogICAg
ICAgICAgICAgJ2Nzcy9DU1NJbXBvcnRSdWxlLmlkbCcsCkBAIC00MzIsNiArNDM0LDggQEAKICAg
ICAgICAgICAgICMgU291cmNlL0hlYWRlciBGaWxlcwogICAgICAgICAgICAgJ2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHAnLAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oJywKKyAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuY3Bw
JywKKyAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaCcsCiAgICAgICAg
ICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwJywKICAgICAgICAg
ICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5oJywKICAgICAgICAgICAg
ICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwJywKQEAgLTQ3NCw2
ICs0NzgsOCBAQAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
SGVhZGVyQ29udGFpbmVyLmgnLAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlUm93LmNwcCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGVSb3cuaCcsCisgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIu
Y3BwJywKKyAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5oJywKICAgICAg
ICAgICAgICdhY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAn
LAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQWNjZXNzaWJpbGl0eU9iamVj
dENocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlci5oJywKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcmkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnByaQkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJD
b3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0yNTYsNiArMjU2LDggQEAgU1RZTEVT
SEVFVFNfRU1CRUQgPSBcCiAgICAgJCRQV0QvY3NzL3RoZW1lUXRNYWVtbzUuY3NzCiAKIElETF9C
SU5ESU5HUyArPSBcCisgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmlkbCBcCisgICAg
YWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsIFwKICAgICBjc3MvQ291bnRlci5pZGwgXAog
ICAgIGNzcy9DU1NDaGFyc2V0UnVsZS5pZGwgXAogICAgIGNzcy9DU1NGb250RmFjZVJ1bGUuaWRs
IFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnBybwkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5n
IGNvcHkpCkBAIC0yNTQsNiArMjU0LDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dDU1M9
MSkgewogfQogCiBTT1VSQ0VTICs9IFwKKyAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHku
Y3BwIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuY3BwIFwK
ICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcCBcICAgIAog
ICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcCBcCkBAIC0yNzYsNiAr
Mjc3LDcgQEAgU09VUkNFUyArPSBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFi
bGVIZWFkZXJDb250YWluZXIuY3BwIFwgICAgCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGVSb3cuY3BwIFwgICAgCiAgICAgYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cCBcCisgICAgYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuY3BwIFwKICAgICBiaW5kaW5ncy9n
ZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9HQ0Nv
bnRyb2xsZXIuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9ET01PYmplY3RIYXNoVGFibGVNYXAuY3Bw
IFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gNjQz
NzEpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC02MDEsNiArNjAxLDYyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNBY2Nlc3NpYmlsaXR5LmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98
V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxU
b29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVs
ZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJ
Pg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4N
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxl
DQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU0FjY2Vzc2liaWxpdHkuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNBdHRyLmNwcCINCiAJCQkJPg0KIAkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCkBAIC0xMDY4NSw2ICsxMDc0MSw2MiBAQAogCQkJCT4NCiAJCQk8L0Zp
bGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTU2NyZWVuUmVhZGVyLmNwcCINCisJCQkJ
Pg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIi
DQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50
ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJ
CQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFt
ZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJ
CQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJ
CS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1NjcmVlblJlYWRlci5oIg0KKwkJCQk+
DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRw
dXREaXIpXG9ialxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTU2hhcmVkV29ya2VyLmNwcCINCiAJ
CQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC0yMDkyOSw2ICsyMTA0MSwxMyBAQAog
CQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nl
c3NpYmlsaXR5XEFjY2Vzc2liaWxpdHkuY3BwIg0KKwkJCQk+DQorCQkJPEZpbGUNCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5XEFjY2Vzc2liaWxpdHkuaCINCisJCQkJPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGFjY2Vzc2liaWxpdHlc
QWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCkBAIC0yMjAxNiw2ICsyMjEzNSwxMyBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cYWNjZXNz
aWJpbGl0eVxBWE9iamVjdENhY2hlLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5XFNjcmVlblJlYWRlci5jcHAiDQor
CQkJCT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGFjY2Vzc2liaWxpdHlcU2Ny
ZWVuUmVhZGVyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQogCQkJPEZpbHRlcg0KIAkJCQlOYW1l
PSJ3aW4iDQogCQkJCT4NCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjI0LDYgKzYyNCwxNCBAQAogCQkyNEY1
NEVBRDEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI0RjU0RUFCMTAxRkU5MTQwMDBB
RTc0MSAvKiBBcHBsaWNhdGlvbkNhY2hlSG9zdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKCk7IH07IH07CiAJCTI1NDJGNERBMTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUlu
ZGljYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyNTQyRjREODExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwICov
OyB9OwogCQkyNTQyRjREQjExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI1NDJGNEQ5
MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5oICovOyB9OworCQkyOTc0
NDYzRDExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTc0NDYzNzExRkUyNTdBMDA0NTIzRjgg
LyogQWNjZXNzaWJpbGl0eS5jcHAgKi87IH07CisJCTI5NzQ0NjNFMTFGRTI1N0EwMDQ1MjNGOCAv
KiBBY2Nlc3NpYmlsaXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyOTc0NDYzODExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5oICovOyB9
OworCQkyOTc0NDY0MDExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjNBMTFGRTI1N0Ew
MDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuY3BwICovOyB9OworCQkyOTc0NDY0MTExRkUyNTdBMDA0
NTIzRjggLyogU2NyZWVuUmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyOTc0NDYzQjExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmgg
Ki87IH07CisJCTI5NzQ0NjZGMTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2NkQx
MUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5jcHAgKi87IH07CisJCTI5NzQ0Njcw
MTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjZFMTFGRTJCMzIwMDQ1MjNGOCAvKiBK
U0FjY2Vzc2liaWxpdHkuaCAqLzsgfTsKKwkJMjk3NDQ2OEUxMUZFMkJFMTAwNDUyM0Y4IC8qIEpT
U2NyZWVuUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI5NzQ0NjhDMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5jcHAgKi87
IH07CisJCTI5NzQ0NjhGMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2OEQxMUZFMkJF
MTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmggKi87IH07CiAJCTI5QTgxMjI2MEZCQjlDMUQw
MDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTgxMjA4MEZCQjlDMUQwMDUxMDI5MyAv
KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCAqLzsgfTsKIAkJMjlBODEyMjcwRkJCOUMx
RDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4MTIwOTBGQkI5QzFEMDA1MTAyOTMgLyogQWNj
ZXNzaWJpbGl0eVRhYmxlLmNwcCAqLzsgfTsKIAkJMjlBODEyMjgwRkJCOUMxRDAwNTEwMjkzIC8q
IEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyOUE4MTIwQTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0
eUFSSUFHcmlkLmNwcCAqLzsgfTsKQEAgLTYzMTksNiArNjMyNywxNiBAQAogCQkyNEY1NEVBQjEw
MUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXBwbGljYXRpb25DYWNoZUhvc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMjU0MkY0RDgxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5k
aWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJHZXN0
dXJlSW5kaWNhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjU0MkY0RDkx
MTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5kaWNhdG9yLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJHZXN0dXJlSW5kaWNhdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTI5NzQ0NjM3MTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0NDYzODExRkUyNTdBMDA0NTIz
RjggLyogQWNjZXNzaWJpbGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
Y2Nlc3NpYmlsaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjM5MTFG
RTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBBY2Nlc3NpYmlsaXR5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2
M0ExMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTY3JlZW5SZWFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyOTc0NDYzQjExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmVlblJlYWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyOTc0NDYzQzExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVh
ZGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTY3JlZW5SZWFkZXIuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0NDY2RDExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nl
c3NpYmlsaXR5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWNj
ZXNzaWJpbGl0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjZFMTFG
RTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNBY2Nlc3NpYmlsaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTI5NzQ0NjhDMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NjcmVlblJlYWRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjhEMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1Nj
cmVlblJlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NjcmVlblJl
YWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUE4MTIwODBGQkI5QzFEMDA1
MTAyOTMgLyogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBODEyMDkwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vz
c2liaWxpdHlUYWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
Y2Nlc3NpYmlsaXR5VGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUE4
MTIwQTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTU0MCw2ICsxMTU1OCw5IEBACiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTI5QTgxMjA1MEZCQjlCNTIwMDUx
MDI5MyAvKiBtYWMgKi8sCisJCQkJMjk3NDQ2MzcxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2li
aWxpdHkuY3BwICovLAorCQkJCTI5NzQ0NjM4MTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmls
aXR5LmggKi8sCisJCQkJMjk3NDQ2MzkxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHku
aWRsICovLAogCQkJCTI5QTgxMjBBMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJ
QUdyaWQuY3BwICovLAogCQkJCTI5QTgxMjE2MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmls
aXR5QVJJQUdyaWQuaCAqLywKIAkJCQkyOUE4MTIxMjBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNz
aWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgKi8sCkBAIC0xMTU4NCw2ICsxMTYwNSw5IEBACiAJCQkJ
MjlBODEyMTMwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZVJvdy5oICovLAog
CQkJCTI5QTgxMjE5MEZCQjlDMUQwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hlLmNwcCAqLywKIAkJ
CQkyOUE4MTIxQTBGQkI5QzFEMDA1MTAyOTMgLyogQVhPYmplY3RDYWNoZS5oICovLAorCQkJCTI5
NzQ0NjNBMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuY3BwICovLAorCQkJCTI5NzQ0
NjNCMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuaCAqLywKKwkJCQkyOTc0NDYzQzEx
RkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0g
YWNjZXNzaWJpbGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNDY1Myw2ICsx
NDY3Nyw4IEBACiAJCUE4M0I3OTEwMENDQjAwMUIwMDBCMDgyNSAvKiBDb3JlICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyOTc0NDY2RDExRkUyQjMyMDA0
NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmNwcCAqLywKKwkJCQkyOTc0NDY2RTExRkUyQjMyMDA0
NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmggKi8sCiAJCQkJNjVERjMxRDgwOUQxQzEyMjAwMEJF
MzI1IC8qIEpTQXR0ci5jcHAgKi8sCiAJCQkJNjVERjMxRDkwOUQxQzEyMzAwMEJFMzI1IC8qIEpT
QXR0ci5oICovLAogCQkJCTkzRjlCNzlFMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlv
bi5jcHAgKi8sCkBAIC0xNDcwNSw2ICsxNDczMSw4IEBACiAJCQkJNjVERjMxRUMwOUQxQ0M2MDAw
MEJFMzI1IC8qIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggKi8sCiAJCQkJRTRCNDIzODUwQ0JG
QjczQzAwQUYyRUNFIC8qIEpTUHJvZ3Jlc3NFdmVudC5jcHAgKi8sCiAJCQkJRTRCNDIzODYwQ0JG
QjczQzAwQUYyRUNFIC8qIEpTUHJvZ3Jlc3NFdmVudC5oICovLAorCQkJCTI5NzQ0NjhDMTFGRTJC
RTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5jcHAgKi8sCisJCQkJMjk3NDQ2OEQxMUZFMkJF
MTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmggKi8sCiAJCQkJNjVERjMxRUYwOUQxQ0M2MDAw
MEJFMzI1IC8qIEpTVGV4dC5jcHAgKi8sCiAJCQkJNjVERjMxRjAwOUQxQ0M2MDAwMEJFMzI1IC8q
IEpTVGV4dC5oICovLAogCQkJKTsKQEAgLTE5ODg1LDYgKzE5OTEzLDEwIEBACiAJCQkJQzU3MkVF
MEUxMjAxQzczNjAwN0Q4RjgyIC8qIElEQkluZGV4QmFja2VuZEltcGwuaCBpbiBIZWFkZXJzICov
LAogCQkJCUM1NzJFRTBGMTIwMUM3MzYwMDdEOEY4MiAvKiBJREJJbmRleEJhY2tlbmRJbnRlcmZh
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NzJFRTFGMTIwMUM5QkMwMDdEOEY4MiAvKiBKU0lE
QkluZGV4LmggaW4gSGVhZGVycyAqLywKKwkJCQkyOTc0NDYzRTExRkUyNTdBMDA0NTIzRjggLyog
QWNjZXNzaWJpbGl0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjk3NDQ2NDExMUZFMjU3QTAwNDUy
M0Y4IC8qIFNjcmVlblJlYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjk3NDQ2NzAxMUZFMkIz
MjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjk3NDQ2
OEYxMUZFMkJFMTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTIyMjg2LDYgKzIyMzE4LDEwIEBACiAJCQkJQzU3MkVFMEExMjAxQzczNjAwN0Q4RjgyIC8qIElE
QkluZGV4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1NzJFRTBEMTIwMUM3MzYwMDdEOEY4MiAv
KiBJREJJbmRleEJhY2tlbmRJbXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1NzJFRTFFMTIw
MUM5QkMwMDdEOEY4MiAvKiBKU0lEQkluZGV4LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI5NzQ0
NjNEMTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTI5NzQ0NjQwMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMjk3NDQ2NkYxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkyOTc0NDY4RTExRkUyQkUxMDA0NTIzRjggLyogSlNTY3Jl
ZW5SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgJKHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTE5LDYgKzExOSw4IEBAIHB1YmxpYzoK
ICAgICAgICAgQVhSb3dDb3VudENoYW5nZWQsCiAgICAgICAgIEFYUm93Q29sbGFwc2VkLAogICAg
ICAgICBBWFJvd0V4cGFuZGVkLAorICAgICAgICBBWFNjcmVlbkNoYW5nZWQsCisgICAgICAgIEFY
RWxlbWVudHNDaGFuZ2VkCiAgICAgfTsKIAogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihSZW5k
ZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgYm9vbCBwb3N0VG9FbGVtZW50LCBQb3N0VHlwZSA9
IFBvc3RBc3luY2hyb25vdXNseSk7CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHkuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHkuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBw
bGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eS5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIlNjcmVlblJlYWRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0Fj
Y2Vzc2liaWxpdHk6OkFjY2Vzc2liaWxpdHkoRnJhbWUqIGZyYW1lKQorICAgIDogbV9mcmFtZShm
cmFtZSkgCit7Cit9CisKK0FjY2Vzc2liaWxpdHk6On5BY2Nlc3NpYmlsaXR5KCkKK3sKKyAgICBk
aXNjb25uZWN0RnJhbWUoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5OjpkaXNjb25uZWN0RnJh
bWUoKQoreworICAgIGlmIChtX3NjcmVlblJlYWRlcikgeworICAgICAgICBtX3NjcmVlblJlYWRl
ci0+ZGlzY29ubmVjdEZyYW1lKCk7CisgICAgICAgIG1fc2NyZWVuUmVhZGVyID0gMDsKKyAgICB9
CisgICAgbV9mcmFtZSA9IDA7Cit9CisgICAgCit2b2lkIEFjY2Vzc2liaWxpdHk6OnNjcmVlbkNo
YW5nZWQoKQoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAg
IERvY3VtZW50KiBkb2MgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jKQorICAg
ICAgICByZXR1cm47CisgICAgCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdCA9IGRvYy0+
YXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShkb2MtPnJlbmRlcmVyKCkpOworICAgIGRvYy0+
YXhPYmplY3RDYWNoZSgpLT5wb3N0Tm90aWZpY2F0aW9uKHJvb3QsIGRvYywgQVhPYmplY3RDYWNo
ZTo6QVhTY3JlZW5DaGFuZ2VkLCBmYWxzZSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eTo6ZWxl
bWVudHNDaGFuZ2VkKCkKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBEb2N1bWVudCogZG9jID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRv
YykKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3Qg
PSBkb2MtPmF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoZG9jLT5yZW5kZXJlcigpKTsKKyAg
ICBkb2MtPmF4T2JqZWN0Q2FjaGUoKS0+cG9zdE5vdGlmaWNhdGlvbihyb290LCBkb2MsIEFYT2Jq
ZWN0Q2FjaGU6OkFYRWxlbWVudHNDaGFuZ2VkLCBmYWxzZSk7Cit9CisgICAgCitTY3JlZW5SZWFk
ZXIqIEFjY2Vzc2liaWxpdHk6OnNjcmVlblJlYWRlcigpIGNvbnN0Cit7CisgICAgaWYgKCFtX3Nj
cmVlblJlYWRlcikKKyAgICAgICAgbV9zY3JlZW5SZWFkZXIgPSBTY3JlZW5SZWFkZXI6OmNyZWF0
ZShtX2ZyYW1lKTsKKyAgICAKKyAgICByZXR1cm4gbV9zY3JlZW5SZWFkZXIuZ2V0KCk7Cit9Cisg
ICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHkuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQWNjZXNz
aWJpbGl0eV9oCisjZGVmaW5lIEFjY2Vzc2liaWxpdHlfaAorCisjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorY2xhc3MgRnJhbWU7CitjbGFzcyBT
Y3JlZW5SZWFkZXI7CisgICAgCitjbGFzcyBBY2Nlc3NpYmlsaXR5IDogcHVibGljIFJlZkNvdW50
ZWQ8QWNjZXNzaWJpbGl0eT4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vz
c2liaWxpdHk+IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nl
c3NpYmlsaXR5KGZyYW1lKSk7IH0KKyAgICB+QWNjZXNzaWJpbGl0eSgpOworICAgIAorICAgIFNj
cmVlblJlYWRlciogc2NyZWVuUmVhZGVyKCkgY29uc3Q7CisgICAgdm9pZCBzY3JlZW5DaGFuZ2Vk
KCk7CisgICAgdm9pZCBlbGVtZW50c0NoYW5nZWQoKTsKKyAgICAKKyAgICB2b2lkIGRpc2Nvbm5l
Y3RGcmFtZSgpOworICAgIAorcHJpdmF0ZToKKyAgICBBY2Nlc3NpYmlsaXR5KEZyYW1lKik7Cisg
ICAgRnJhbWUqIG1fZnJhbWU7CisgICAgbXV0YWJsZSBSZWZQdHI8U2NyZWVuUmVhZGVyPiBtX3Nj
cmVlblJlYWRlcjsKK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBBY2Nlc3NpYmlsaXR5X2gKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eS5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eS5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB3aW5kb3cgeworCisg
ICAgaW50ZXJmYWNlIFtPbWl0Q29uc3RydWN0b3JdIEFjY2Vzc2liaWxpdHkgeworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgU2NyZWVuUmVhZGVyIHNjcmVlblJlYWRlcjsKKworICAgICAgICB2
b2lkIHNjcmVlbkNoYW5nZWQoKTsKKyAgICAgICAgdm9pZCBlbGVtZW50c0NoYW5nZWQoKTsKKwor
ICAgIH07Cit9CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmgJKHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsMTIgQEAKICNpbmNsdWRl
ICJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShN
QUMpCisjZGVmaW5lIFNVUFBPUlRTX0pTQUNDRVNTSUJJTElUWSAxCisjZWxzZQorI2RlZmluZSBT
VVBQT1JUU19KU0FDQ0VTU0lCSUxJVFkgMAorI2VuZGlmCisKIHR5cGVkZWYgc3RydWN0IF9OU1Jh
bmdlIE5TUmFuZ2U7CiAKICNpZmRlZiBfX09CSkNfXwpAQCAtNTQ4LDYgKzU1NCwxNiBAQCBwdWJs
aWM6CiAjZW5kaWYKICNlbmRpZgogCisjaWYgU1VQUE9SVFNfSlNBQ0NFU1NJQklMSVRZCisgICAg
Ym9vbCBpc1NjcmVlblJlYWRlclJ1bm5pbmcoKSBjb25zdDsKKyAgICBFbGVtZW50KiBzY3JlZW5S
ZWFkZXJGb2N1c2VkRWxlbWVudCgpIGNvbnN0OworICAgIFN0cmluZyBzY3JlZW5SZWFkZXJWZXJz
aW9uKCkgY29uc3Q7CisjZWxzZQorICAgIGJvb2wgaXNTY3JlZW5SZWFkZXJSdW5uaW5nKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBFbGVtZW50KiBzY3JlZW5SZWFkZXJGb2N1c2VkRWxl
bWVudCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICBTdHJpbmcgc2NyZWVuUmVhZGVyVmVyc2lv
bigpIGNvbnN0IHsgcmV0dXJuIG51bGxBdG9tOyB9CisjZW5kaWYKKyAgICAKICNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpCiAgICAgLy8gYSBwbGF0Zm9ybS1zcGVjaWZpYyBtZXRob2QgZm9yIGRldGVy
bWluaW5nIGlmIGFuIGF0dGFjaG1lbnQgaXMgaWdub3JlZAogICAgIGJvb2wgYWNjZXNzaWJpbGl0
eUlnbm9yZUF0dGFjaG1lbnQoKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9T
Y3JlZW5SZWFkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3Jl
ZW5SZWFkZXIuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVl
blJlYWRlci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJTY3JlZW5SZWFkZXIuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTY3JlZW5SZWFkZXI6OlNjcmVl
blJlYWRlcihGcmFtZSogZnJhbWUpCisgICAgOiBtX2ZyYW1lKGZyYW1lKQoreworfQorCitTY3Jl
ZW5SZWFkZXI6On5TY3JlZW5SZWFkZXIoKQoreworICAgIGRpc2Nvbm5lY3RGcmFtZSgpOworfQor
ICAgIAordm9pZCBTY3JlZW5SZWFkZXI6OmRpc2Nvbm5lY3RGcmFtZSgpCit7CisgICAgbV9mcmFt
ZSA9IDA7Cit9CisKK2Jvb2wgU2NyZWVuUmVhZGVyOjphY3RpdmUoKSBjb25zdAoreworICAgIGlm
ICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIERvY3VtZW50KiBk
b2MgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZG9jLT5heE9iamVj
dENhY2hlKCktPmdldE9yQ3JlYXRlKGRvYy0+cmVuZGVyZXIoKSk7CisgICAgcmV0dXJuIG9iai0+
aXNTY3JlZW5SZWFkZXJSdW5uaW5nKCk7Cit9CisgICAgCitFbGVtZW50KiBTY3JlZW5SZWFkZXI6
OmFjdGl2ZUVsZW1lbnQoKSBjb25zdAoreworICAgIERvY3VtZW50KiBkb2MgPSBtX2ZyYW1lLT5k
b2N1bWVudCgpOworICAgIGlmICghZG9jKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZG9jLT5heE9iamVjdENhY2hlKCktPmdldE9y
Q3JlYXRlKGRvYy0+cmVuZGVyZXIoKSk7CisgICAgcmV0dXJuIG9iai0+c2NyZWVuUmVhZGVyRm9j
dXNlZEVsZW1lbnQoKTsgICAgCit9CisgICAgCitTdHJpbmcgU2NyZWVuUmVhZGVyOjp2ZXJzaW9u
KCkgY29uc3QKK3sKKyAgICBEb2N1bWVudCogZG9jID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKKyAg
ICBpZiAoIWRvYykKKyAgICAgICAgcmV0dXJuIG51bGxBdG9tOworICAgIAorICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iaiA9IGRvYy0+YXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShkb2Mt
PnJlbmRlcmVyKCkpOworICAgIHJldHVybiBvYmotPnNjcmVlblJlYWRlclZlcnNpb24oKTsKK30K
KyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmU7CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxp
dHkvU2NyZWVuUmVhZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1Nj
cmVlblJlYWRlci5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVl
blJlYWRlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBw
bGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNjcmVlblJl
YWRlcl9oCisjZGVmaW5lIFNjcmVlblJlYWRlcl9oCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KyAgICAKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBGcmFtZTsKK2NsYXNzIFN0cmluZzsKKyAgICAK
K2NsYXNzIFNjcmVlblJlYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFNjcmVlblJlYWRlcj4gewor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNjcmVlblJlYWRlcj4gY3JlYXRlKEZyYW1l
KiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNjcmVlblJlYWRlcihmcmFtZSkpOyB9Cisg
ICAgflNjcmVlblJlYWRlcigpOworICAgIAorICAgIFN0cmluZyB2ZXJzaW9uKCkgY29uc3Q7Cisg
ICAgYm9vbCBhY3RpdmUoKSBjb25zdDsKKyAgICBFbGVtZW50KiBhY3RpdmVFbGVtZW50KCkgY29u
c3Q7CisgICAgCisgICAgdm9pZCBkaXNjb25uZWN0RnJhbWUoKTsKK3ByaXZhdGU6CisgICAgU2Ny
ZWVuUmVhZGVyKEZyYW1lKik7CisgICAgRnJhbWUqIG1fZnJhbWU7Cit9OworICAgIAorfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU2NyZWVuUmVhZGVyX2gKSW5kZXg6IFdlYkNv
cmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
Q29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK21vZHVsZSB3aW5kb3cgeworCisgICAgaW50ZXJmYWNlICBbT21pdENvbnN0cnVjdG9yXSBT
Y3JlZW5SZWFkZXIgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlcnNp
b247CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGFjdGl2ZTsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgYWN0aXZlRWxlbWVudDsKKyAgICB9OworCit9CisK
SW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0J
KHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENh
Y2hlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Niw2ICs3NiwxMiBAQCB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhCiAgICAgICAgIGNhc2UgQVhMYXlvdXRDb21wbGV0
ZToKICAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9ICJBWExheW91dENvbXBsZXRlIjsKICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYU2NyZWVuQ2hhbmdlZDoKKyAgICAgICAg
ICAgIG1hY05vdGlmaWNhdGlvbiA9ICJBWFNjcmVlbkNoYW5nZWQiOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhFbGVtZW50c0NoYW5nZWQ6CisgICAgICAgICAgICBtYWNOb3Rp
ZmljYXRpb24gPSAiQVhFbGVtZW50c0NoYW5nZWQiOworICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgQVhMb2FkQ29tcGxldGU6CiAgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAi
QVhMb2FkQ29tcGxldGUiOwogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBXZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCShyZXZpc2lv
biA2NDM3MSkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVj
dE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjksOSArMjksMjYgQEAKICNpZiBIQVZFKEFDQ0VT
U0lCSUxJVFkpCiAKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLmgiCisjaW1w
b3J0ICJBWE9iamVjdENhY2hlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorYm9vbCBBY2Nl
c3NpYmlsaXR5T2JqZWN0Ojppc1NjcmVlblJlYWRlclJ1bm5pbmcoKSBjb25zdAoreworICAgIC8v
IElmIHRoZSBlbmhhbmNlZCB1c2VyIGludGVyZmFjZSBpcyBlbmFibGVkLCBpdCBtZWFucyBWb2lj
ZU92ZXIgaXMgcnVubmluZy4KKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQoKTsKK30KKyAgICAKK0VsZW1lbnQqIEFjY2Vz
c2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlckZvY3VzZWRFbGVtZW50KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gMDsKK30KKyAgICAKK1N0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzY3JlZW5S
ZWFkZXJWZXJzaW9uKCkgY29uc3QKK3sgCisgICAgcmV0dXJuIG51bGxBdG9tOworfQorICAgIAog
Ym9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5SWdub3JlQXR0YWNobWVudCgp
IGNvbnN0CiB7CiAgICAgTlNWaWV3KiBhdHRhY2htZW50ID0gW3dyYXBwZXIoKSBhdHRhY2htZW50
Vmlld107CkluZGV4OiBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJDb3JlL3Bh
Z2UvTmF2aWdhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogCisjaW5jbHVkZSAiQWNjZXNz
aWJpbGl0eS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNvb2tpZUphci5oIgog
I2luY2x1ZGUgIkRPTU1pbWVUeXBlQXJyYXkuaCIKQEAgLTY2LDYgKzY3LDEwIEBAIHZvaWQgTmF2
aWdhdG9yOjpkaXNjb25uZWN0RnJhbWUoKQogICAgICAgICBtX2dlb2xvY2F0aW9uLT5kaXNjb25u
ZWN0RnJhbWUoKTsKICAgICAgICAgbV9nZW9sb2NhdGlvbiA9IDA7CiAgICAgfQorICAgIGlmICht
X2FjY2Vzc2liaWxpdHkpIHsKKyAgICAgICAgbV9hY2Nlc3NpYmlsaXR5LT5kaXNjb25uZWN0RnJh
bWUoKTsKKyAgICAgICAgbV9hY2Nlc3NpYmlsaXR5ID0gMDsKKyAgICB9CiAgICAgbV9mcmFtZSA9
IDA7CiB9CiAKQEAgLTEyNyw2ICsxMzIsMTMgQEAgRE9NTWltZVR5cGVBcnJheSogTmF2aWdhdG9y
OjptaW1lVHlwZXMoKQogICAgICAgICBtX21pbWVUeXBlcyA9IERPTU1pbWVUeXBlQXJyYXk6OmNy
ZWF0ZShtX2ZyYW1lKTsKICAgICByZXR1cm4gbV9taW1lVHlwZXMuZ2V0KCk7CiB9CisgICAgCitB
Y2Nlc3NpYmlsaXR5KiBOYXZpZ2F0b3I6OmFjY2Vzc2liaWxpdHkoKSBjb25zdAoreworICAgIGlm
ICghbV9hY2Nlc3NpYmlsaXR5KQorICAgICAgICBtX2FjY2Vzc2liaWxpdHkgPSBBY2Nlc3NpYmls
aXR5OjpjcmVhdGUobV9mcmFtZSk7CisgICAgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eS5nZXQoKTsK
K30KIAogYm9vbCBOYXZpZ2F0b3I6OmNvb2tpZUVuYWJsZWQoKSBjb25zdAogewpJbmRleDogV2Vi
Q29yZS9wYWdlL05hdmlnYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9OYXZpZ2F0
b3IuaAkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFz
cyBBY2Nlc3NpYmlsaXR5OwogY2xhc3MgRE9NTWltZVR5cGVBcnJheTsKIGNsYXNzIERPTVBsdWdp
bkFycmF5OwogY2xhc3MgRnJhbWU7CkBAIC00Niw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBTdHJp
bmcgbGFuZ3VhZ2UoKSBjb25zdDsKICAgICBET01QbHVnaW5BcnJheSogcGx1Z2lucygpIGNvbnN0
OwogICAgIERPTU1pbWVUeXBlQXJyYXkqIG1pbWVUeXBlcygpIGNvbnN0OworICAgIEFjY2Vzc2li
aWxpdHkqIGFjY2Vzc2liaWxpdHkoKSBjb25zdDsKICAgICBib29sIGNvb2tpZUVuYWJsZWQoKSBj
b25zdDsKICAgICBib29sIGphdmFFbmFibGVkKCkgY29uc3Q7CiAKQEAgLTY2LDYgKzY4LDcgQEAg
cHJpdmF0ZToKICAgICBtdXRhYmxlIFJlZlB0cjxET01QbHVnaW5BcnJheT4gbV9wbHVnaW5zOwog
ICAgIG11dGFibGUgUmVmUHRyPERPTU1pbWVUeXBlQXJyYXk+IG1fbWltZVR5cGVzOwogICAgIG11
dGFibGUgUmVmUHRyPEdlb2xvY2F0aW9uPiBtX2dlb2xvY2F0aW9uOworICAgIG11dGFibGUgUmVm
UHRyPEFjY2Vzc2liaWxpdHk+IG1fYWNjZXNzaWJpbGl0eTsKIH07CiAKIH0KSW5kZXg6IFdlYkNv
cmUvcGFnZS9OYXZpZ2F0b3IuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9OYXZpZ2F0
b3IuaWRsCShyZXZpc2lvbiA2NDM3MSkKKysrIFdlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBsYXRmb3JtOwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NUGx1Z2luQXJyYXkgcGx1Z2luczsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTU1pbWVUeXBlQXJyYXkgbWltZVR5cGVzOworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgQWNjZXNzaWJpbGl0eSBhY2Nlc3NpYmlsaXR5OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHByb2R1Y3Q7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgcHJvZHVjdFN1YjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZW5k
b3I7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NDM3MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA3LTI2ICBDaHJpcyBGbGVpemFj
aCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQVg6IFN1cHBvcnQgbWV0aG9kcyBmb3Igd2ViIGFwcHMgdG8gaW50
ZXJhY3Qgd2l0aCB0aGUgbmF0aXZlIGFjY2Vzc2liaWxpdHkgQVBJcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDMwMDUKKworICAgICAgICAqIHBsYXRm
b3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHktZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9qcy1hY2Nlc3NpYmlsaXR5
Lmh0bWw6IEFkZGVkLgorCiAyMDEwLTA3LTMwICBEcmV3IFdpbHNvbiAgPGF0d2lsc29uQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZXhwZWN0YXRpb25zIGZpeC4KSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxp
dHktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9h
Y2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0
eS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKK1RoaXMgdGVzdHMg
dGhlIGphdmFzY3JpcHQgaW50ZXJmYWNlIHRvIGFjY2Vzc2liaWxpdHkKKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgYXguc2NyZWVuUmVhZGVyLmFjdGl2ZSBpcyBmYWxzZQor
UEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgbmFtZSBpcyAnQVhTY3JlZW5DaGFuZ2VkJwor
UEFTUyBuYW1lIGlzICdBWEVsZW1lbnRzQ2hhbmdlZCcKKwpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0eS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxp
dHkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L2pzLWFjY2Vzc2liaWxpdHkuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2OCBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdD4KK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSBmYWxzZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJi
b2R5Ij4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoZSBqYXZhc2Ny
aXB0IGludGVyZmFjZSB0byBhY2Nlc3NpYmlsaXR5Iik7CisKKyAgICB2YXIgYm9keSA9IDA7Cisg
ICAgdmFyIG5hbWUgPSAwOworICAgIGZ1bmN0aW9uIG5vdGlmeUNhbGxiYWNrKG5vdGlmaWNhdGlv
bikgeyAgCisgICAgICAgIG5hbWUgPSBub3RpZmljYXRpb247CisgICAgICAgIGlmIChuYW1lID09
ICJBWFNjcmVlbkNoYW5nZWQiKSB7CisgICAgICAgICAgICBzaG91bGRCZSgibmFtZSIsICInQVhT
Y3JlZW5DaGFuZ2VkJyIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKG5hbWUgPT0gIkFY
RWxlbWVudHNDaGFuZ2VkIikgeworICAgICAgICAgICAgc2hvdWxkQmUoIm5hbWUiLCAiJ0FYRWxl
bWVudHNDaGFuZ2VkJyIpOworICAgICAgICAgICAgYm9keS5yZW1vdmVOb3RpZmljYXRpb25MaXN0
ZW5lcigpOworICAgICAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBh
eCA9IHdpbmRvdy5uYXZpZ2F0b3IuYWNjZXNzaWJpbGl0eTsKKworICAgIC8vIHNjcmVlbiByZWFk
ZXIgc2hvdWxkIG5vdCBiZSBydW5uaW5nIHdpdGhpbiBsYXlvdXQgdGVzdHMuCisgICAgc2hvdWxk
QmUoImF4LnNjcmVlblJlYWRlci5hY3RpdmUiLCAiZmFsc2UiKTsKKworICAgIC8vIHNob3VsZCBu
b3QgY2F1c2UgYW4gZXJyb3IuCisgICAgdmFyIHZlcnNpb24gPSBheC5zY3JlZW5SZWFkZXIudmVy
c2lvbjsKKworICAgIC8vIHNob3VsZCBub3QgY2F1c2UgYW4gZXJyb3IKKyAgICB2YXIgYWN0aXZl
RWxlbWVudCA9IGF4LnNjcmVlblJlYWRlci5hY3RpdmVFbGVtZW50OworCisgICAgaWYgKHdpbmRv
dy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJib2R5IikuZm9jdXMoKTsKKworICAgICAgICBib2R5ID0gd2luZG93LmFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OworCisgICAgICAgIHZhciBhZGRlZE5vdGlmaWNh
dGlvbiA9IGJvZHkuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZ5Q2FsbGJhY2spOworICAg
ICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgIC8v
IHNob3VsZCBjYXVzZSBhIEFYU2NyZWVuQ2hhbmdlZCB0byBiZSBzZW50IG91dC4KKyAgICAgICAg
YXguc2NyZWVuQ2hhbmdlZCgpOworCisgICAgICAgIC8vIHNob3VsZCBjYXVzZSBhIEFYRWxlbWVu
dHNDaGFuZ2VkIHRvIGJlIHNlbnQgb3V0LgorICAgICAgICBheC5lbGVtZW50c0NoYW5nZWQoKTsK
KyAgICB9CisKKyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63107</attachid>
            <date>2010-07-30 15:03:10 -0700</date>
            <delta_ts>2010-07-30 17:12:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43005-20100730150308.patch</filename>
            <type>text/plain</type>
            <size>47600</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDM3MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTYgQEAKKzIwMTAtMDctMzAgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBWDogU3VwcG9ydCBtZXRob2RzIGZvciB3ZWIgYXBwcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBu
YXRpdmUgYWNjZXNzaWJpbGl0eSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MzAwNQorCisgICAgICAgIEFkZHMgYSBuZXcgImFjY2Vzc2liaWxp
dHkiIG9iamVjdCB0aGF0IGhhbmdzIG9mZiBvZiAid2luZG93Lm5hdmlnYXRvciIuCisgICAgICAg
IFRoaXMgYWNjZXNzaWJpbGl0eSBvYmplY3Qgd2lsbCBhbGxvdyB3ZWIgYXBwcyB0byBpbnRlcmFj
dCB3aXRoIG5hdGl2ZSBhY2Nlc3NpYmlsaXR5IEFQSXMKKyAgICAgICAgdG8gcHJvdmlkZSBhIHJp
Y2hlciBleHBlcmllbmNlIChmb3Igc2NyZWVuIHJlYWRlciB1c2VycyBwcmltYXJpbHkpLgorCisg
ICAgICAgIFRlc3Q6IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHku
aHRtbAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjopOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eTo6QWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5Ojp+QWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5OjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eTo6c2NyZWVuQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjplbGVt
ZW50c0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6c2NyZWVuUmVh
ZGVyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjpjcmVhdGUpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eS5pZGw6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNTY3JlZW5SZWFkZXJSdW5uaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlckZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlclZlcnNpb24pOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTY3JlZW5SZWFkZXI6OlNjcmVlblJlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jl
ZW5SZWFkZXI6On5TY3JlZW5SZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVy
OjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVyOjphY3Rp
dmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVyOjphY3RpdmVFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmVlblJlYWRlcjo6dmVyc2lvbik6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9TY3JlZW5SZWFkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5S
ZWFkZXI6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNTY3JlZW5SZWFk
ZXJSdW5uaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVl
blJlYWRlckZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OnNjcmVlblJlYWRlclZlcnNpb24pOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvcjo6ZGlzY29ubmVjdEZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5hdmlnYXRvcjo6YWNjZXNzaWJpbGl0eSk6CisgICAgICAgICogcGFnZS9O
YXZpZ2F0b3IuaDoKKyAgICAgICAgKiBwYWdlL05hdmlnYXRvci5pZGw6CisKIDIwMTAtMDctMzAg
IENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGlu
Z3MubWsKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5t
awkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdz
Lm1rCSh3b3JraW5nIGNvcHkpCkBAIC0yNjMsNiArMjYzLDIxIEBAIExPQ0FMX0dFTkVSQVRFRF9T
T1VSQ0VTICs9ICQoR0VOKQogIyBhYm92ZSBydWxlcy4gIFNwZWNpZnlpbmcgdGhpcyBleHBsaWNp
dGx5IG1ha2VzIC1qMiB3b3JrLgogJChwYXRzdWJzdCAlLmgsJS5jcHAsJChHRU4pKTogJChpbnRl
cm1lZGlhdGVzKS9iaW5kaW5ncy8lLmNwcCA6ICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvJS5o
CiAKKyMgQWNjZXNzaWJpbGl0eQorR0VOIDo9IFwKKyAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRp
bmdzL1Y4QWNjZXNzaWJpbGl0eS5oCisgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOFNj
cmVlblJlYWRlci5oCisKKyQoR0VOKTogUFJJVkFURV9QQVRIIDo9ICQoTE9DQUxfUEFUSCkKKyQo
R0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFNPVVJDRV9ST09UPSQoUFJJVkFURV9QQVRIKSBw
ZXJsIC1JJChQUklWQVRFX1BBVEgpL2JpbmRpbmdzL3NjcmlwdHMgJChQUklWQVRFX1BBVEgpL2Jp
bmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgLS1kZWZpbmVzICIkKEZFQVRVUkVf
REVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1nZW5lcmF0b3IgVjggLS1pbmNsdWRlIGRv
bSAtLWluY2x1ZGUgaHRtbCAtLW91dHB1dGRpciAkKGRpciAkQCkgJDwKKyQoR0VOKTogJChpbnRl
cm1lZGlhdGVzKS9iaW5kaW5ncy9WOCUuaCA6ICQoTE9DQUxfUEFUSCkvYWNjZXNzaWJpbGl0eS8l
LmlkbCAkKGpzX2JpbmRpbmdfc2NyaXB0cykKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNl
KQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMgV2UgYWxzbyBuZWVkIHRo
ZSAuY3BwIGZpbGVzLCB3aGljaCBhcmUgZ2VuZXJhdGVkIGFzIHNpZGUgZWZmZWN0cyBvZiB0aGUK
KyMgYWJvdmUgcnVsZXMuICBTcGVjaWZ5aW5nIHRoaXMgZXhwbGljaXRseSBtYWtlcyAtajIgd29y
ay4KKyQocGF0c3Vic3QgJS5oLCUuY3BwLCQoR0VOKSk6ICQoaW50ZXJtZWRpYXRlcykvYmluZGlu
Z3MvJS5jcHAgOiAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzLyUuaAorCiAjIFBhZ2UKIEdFTiA6
PSBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOEJhckluZm8uaCBcCkluZGV4OiBX
ZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9BbmRy
b2lkLmpzY2JpbmRpbmdzLm1rCShyZXZpc2lvbiA2NDM3MSkKKysrIFdlYkNvcmUvQW5kcm9pZC5q
c2NiaW5kaW5ncy5tawkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQCBCSU5ESU5HX0Nf
SU5DTFVERVMgOj0gXAogCSQoSkFWQVNDUklQVENPUkVfUEFUSCkvd3JlYyBcCiAJJChKQVZBU0NS
SVBUQ09SRV9QQVRIKS9Gb3J3YXJkaW5nSGVhZGVycyBcCiAJXAorCSQoYmFzZV9pbnRlcm1lZGlh
dGVzKS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkgXAogCSQoYmFzZV9pbnRlcm1lZGlhdGVzKS9XZWJD
b3JlL2JpbmRpbmdzL2pzIFwKIAkkKGJhc2VfaW50ZXJtZWRpYXRlcykvV2ViQ29yZS9kb20gXAog
CSQoYmFzZV9pbnRlcm1lZGlhdGVzKS9XZWJDb3JlL2h0bWwvY2FudmFzIFwKSW5kZXg6IFdlYkNv
cmUvRGVyaXZlZFNvdXJjZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMuY3BwCShyZXZpc2lvbiA2NDM3MSkKKysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJIVE1MRWxlbWVudEZh
Y3RvcnkuY3BwIgogI2luY2x1ZGUgIkpTQWJzdHJhY3RXb3JrZXIuY3BwIgorI2luY2x1ZGUgIkpT
QWNjZXNzaWJpbGl0eS5jcHAiCiAjaW5jbHVkZSAiSlNBdHRyLmNwcCIKICNpbmNsdWRlICJKU0Jh
ckluZm8uY3BwIgogI2luY2x1ZGUgIkpTQmVmb3JlTG9hZEV2ZW50LmNwcCIKQEAgLTIyNCw2ICsy
MjUsNyBAQAogI2luY2x1ZGUgIkpTUmVjdC5jcHAiCiAjaW5jbHVkZSAiSlNSR0JDb2xvci5jcHAi
CiAjaW5jbHVkZSAiSlNTY3JlZW4uY3BwIgorI2luY2x1ZGUgIkpTU2NyZWVuUmVhZGVyLmNwcCIK
ICNpbmNsdWRlICJKU1NjcmlwdFByb2ZpbGUuY3BwIgogI2luY2x1ZGUgIkpTU2NyaXB0UHJvZmls
ZU5vZGUuY3BwIgogI2luY2x1ZGUgIkpTU2hhcmVkV29ya2VyLmNwcCIKSW5kZXg6IFdlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UJKHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKIFZQQVRIID0gXAogICAgICQoV2ViQ29y
ZSkgXAorICAgICQoV2ViQ29yZSkvYWNjZXNzaWJpbGl0eSBcCiAgICAgJChXZWJDb3JlKS9iaW5k
aW5ncy9qcyBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9vYmpjIFwKICAgICAkKFdlYkNvcmUp
L2NzcyBcCkBAIC01MCw2ICs1MSw3IEBAIFZQQVRIID0gXAogRE9NX0NMQVNTRVMgPSBcCiAgICAg
QWJzdHJhY3RWaWV3IFwKICAgICBBYnN0cmFjdFdvcmtlciBcCisgICAgQWNjZXNzaWJpbGl0eSBc
CiAgICAgQXR0ciBcCiAgICAgQmFySW5mbyBcCiAgICAgQmVmb3JlTG9hZEV2ZW50IFwKQEAgLTQz
MCw2ICs0MzIsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBTVkdab29tQW5kUGFuIFwKICAgICBT
Vkdab29tRXZlbnQgXAogICAgIFNjcmVlbiBcCisgICAgU2NyZWVuUmVhZGVyIFwKICAgICBTdHls
ZU1lZGlhIFwKICAgICBTdHlsZVNoZWV0IFwKICAgICBTdHlsZVNoZWV0TGlzdCBcCkluZGV4OiBX
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUu
YW0JKHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBj
b3B5KQpAQCAtOTksNiArOTksOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0Fic3RyYWN0V29ya2VyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0Fic3RyYWN0V29ya2VyLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNB
Y2Nlc3NpYmlsaXR5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FjY2Vzc2liaWxp
dHkuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FycmF5QnVmZmVyLmNwcCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FycmF5QnVmZmVyLmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwIFwKQEAgLTQ2Niw2ICs0NjgsOCBAQCB3ZWJjb3Jl
X2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSR0JDb2xvci5o
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyZWVuLmNwcCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1NjcmVlbi5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyZWVu
UmVhZGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NjcmVlblJlYWRlci5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyaXB0UHJvZmlsZS5jcHAgXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNTY3JpcHRQcm9maWxlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNTY3JpcHRQcm9maWxlTm9kZS5jcHAgXApAQCAtNTc1LDYgKzU3OSw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJV2ViQ29yZS9XZWJDb3JlUHJlZml4LmggXAogCVdlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaCBcCisJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuY3BwIFwK
KwlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5oIFwKIAlXZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5oIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgXApAQCAtNjE3LDYgKzYyMyw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhl
YWRlckNvbnRhaW5lci5oIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRh
YmxlUm93LmNwcCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJv
dy5oIFwKKwlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmNwcCBcCisJV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJp
Yy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVk
U2NyaXB0U291cmNlUHJvdmlkZXIuaCBcCkBAIC00NDE2LDYgKzQ0MjQsNyBAQCBEZXJpdmVkU291
cmNlcy9XZWJDb3JlL1JlbW90ZUluc3BlY3RvckZyCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzIC1JJChXZWJDb3JlKS9pbnNwZWN0b3IgJChXZWJDb3Jl
KS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsICQoSURMX1BBVEg6JT0tLWlu
Y2x1ZGUgIiUiKSAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTX1dFQkNPUkUpIiAtLWRlZmluZXMg
IkxBTkdVQUdFX0pBVkFTQ1JJUFQ9MSAkKEZFQVRVUkVfREVGSU5FUykiIC0tZ2VuZXJhdG9yIElu
c3BlY3RvciAkPAogCiBJRExfUEFUSCA6PSBcCisgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5
IFwKICAgICAkKFdlYkNvcmUpL2JpbmRpbmdzL2pzIFwKICAgICAkKFdlYkNvcmUpL2NzcyBcCiAg
ICAgJChXZWJDb3JlKS9kb20gXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9X
ZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw4IEBACiB7CiAgICAgJ3Zhcmlh
Ymxlcyc6IHsKICAgICAgICAgJ3dlYmNvcmVfYmluZGluZ3NfaWRsX2ZpbGVzJzogWworICAgICAg
ICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5pZGwnLAorICAgICAgICAgICAgJ2Fj
Y2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmlkbCcsCiAgICAgICAgICAgICAnY3NzL0NTU0NoYXJz
ZXRSdWxlLmlkbCcsCiAgICAgICAgICAgICAnY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwnLAogICAg
ICAgICAgICAgJ2Nzcy9DU1NJbXBvcnRSdWxlLmlkbCcsCkBAIC00MzIsNiArNDM0LDggQEAKICAg
ICAgICAgICAgICMgU291cmNlL0hlYWRlciBGaWxlcwogICAgICAgICAgICAgJ2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHAnLAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oJywKKyAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuY3Bw
JywKKyAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaCcsCiAgICAgICAg
ICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwJywKICAgICAgICAg
ICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5oJywKICAgICAgICAgICAg
ICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwJywKQEAgLTQ3NCw2
ICs0NzgsOCBAQAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
SGVhZGVyQ29udGFpbmVyLmgnLAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlUm93LmNwcCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGVSb3cuaCcsCisgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIu
Y3BwJywKKyAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5oJywKICAgICAg
ICAgICAgICdhY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAn
LAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQWNjZXNzaWJpbGl0eU9iamVj
dENocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlci5oJywKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcmkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnByaQkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJD
b3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0yNTYsNiArMjU2LDggQEAgU1RZTEVT
SEVFVFNfRU1CRUQgPSBcCiAgICAgJCRQV0QvY3NzL3RoZW1lUXRNYWVtbzUuY3NzCiAKIElETF9C
SU5ESU5HUyArPSBcCisgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmlkbCBcCisgICAg
YWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsIFwKICAgICBjc3MvQ291bnRlci5pZGwgXAog
ICAgIGNzcy9DU1NDaGFyc2V0UnVsZS5pZGwgXAogICAgIGNzcy9DU1NGb250RmFjZVJ1bGUuaWRs
IFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnBybwkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5n
IGNvcHkpCkBAIC0yNTQsNiArMjU0LDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dDU1M9
MSkgewogfQogCiBTT1VSQ0VTICs9IFwKKyAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHku
Y3BwIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuY3BwIFwK
ICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcCBcICAgIAog
ICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcCBcCkBAIC0yNzYsNiAr
Mjc3LDcgQEAgU09VUkNFUyArPSBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFi
bGVIZWFkZXJDb250YWluZXIuY3BwIFwgICAgCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGVSb3cuY3BwIFwgICAgCiAgICAgYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cCBcCisgICAgYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuY3BwIFwKICAgICBiaW5kaW5ncy9n
ZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9HQ0Nv
bnRyb2xsZXIuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9ET01PYmplY3RIYXNoVGFibGVNYXAuY3Bw
IFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gNjQz
NzEpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC02MDEsNiArNjAxLDYyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNBY2Nlc3NpYmlsaXR5LmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98
V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxU
b29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVs
ZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJ
Pg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4N
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxl
DQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU0FjY2Vzc2liaWxpdHkuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNBdHRyLmNwcCINCiAJCQkJPg0KIAkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCkBAIC0xMDY4NSw2ICsxMDc0MSw2MiBAQAogCQkJCT4NCiAJCQk8L0Zp
bGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTU2NyZWVuUmVhZGVyLmNwcCINCisJCQkJ
Pg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIi
DQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50
ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJ
CQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFt
ZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJ
CQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJ
CS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1NjcmVlblJlYWRlci5oIg0KKwkJCQk+
DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRw
dXREaXIpXG9ialxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTU2hhcmVkV29ya2VyLmNwcCINCiAJ
CQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC0yMDkyOSw2ICsyMTA0MSwxMyBAQAog
CQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nl
c3NpYmlsaXR5XEFjY2Vzc2liaWxpdHkuY3BwIg0KKwkJCQk+DQorCQkJPEZpbGUNCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5XEFjY2Vzc2liaWxpdHkuaCINCisJCQkJPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGFjY2Vzc2liaWxpdHlc
QWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCkBAIC0yMjAxNiw2ICsyMjEzNSwxMyBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cYWNjZXNz
aWJpbGl0eVxBWE9iamVjdENhY2hlLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5XFNjcmVlblJlYWRlci5jcHAiDQor
CQkJCT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGFjY2Vzc2liaWxpdHlcU2Ny
ZWVuUmVhZGVyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQogCQkJPEZpbHRlcg0KIAkJCQlOYW1l
PSJ3aW4iDQogCQkJCT4NCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjI0LDYgKzYyNCwxNCBAQAogCQkyNEY1
NEVBRDEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI0RjU0RUFCMTAxRkU5MTQwMDBB
RTc0MSAvKiBBcHBsaWNhdGlvbkNhY2hlSG9zdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKCk7IH07IH07CiAJCTI1NDJGNERBMTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUlu
ZGljYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyNTQyRjREODExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwICov
OyB9OwogCQkyNTQyRjREQjExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI1NDJGNEQ5
MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5oICovOyB9OworCQkyOTc0
NDYzRDExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTc0NDYzNzExRkUyNTdBMDA0NTIzRjgg
LyogQWNjZXNzaWJpbGl0eS5jcHAgKi87IH07CisJCTI5NzQ0NjNFMTFGRTI1N0EwMDQ1MjNGOCAv
KiBBY2Nlc3NpYmlsaXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyOTc0NDYzODExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5oICovOyB9
OworCQkyOTc0NDY0MDExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjNBMTFGRTI1N0Ew
MDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuY3BwICovOyB9OworCQkyOTc0NDY0MTExRkUyNTdBMDA0
NTIzRjggLyogU2NyZWVuUmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyOTc0NDYzQjExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmgg
Ki87IH07CisJCTI5NzQ0NjZGMTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2NkQx
MUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5jcHAgKi87IH07CisJCTI5NzQ0Njcw
MTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjZFMTFGRTJCMzIwMDQ1MjNGOCAvKiBK
U0FjY2Vzc2liaWxpdHkuaCAqLzsgfTsKKwkJMjk3NDQ2OEUxMUZFMkJFMTAwNDUyM0Y4IC8qIEpT
U2NyZWVuUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI5NzQ0NjhDMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5jcHAgKi87
IH07CisJCTI5NzQ0NjhGMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2OEQxMUZFMkJF
MTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmggKi87IH07CiAJCTI5QTgxMjI2MEZCQjlDMUQw
MDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTgxMjA4MEZCQjlDMUQwMDUxMDI5MyAv
KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCAqLzsgfTsKIAkJMjlBODEyMjcwRkJCOUMx
RDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4MTIwOTBGQkI5QzFEMDA1MTAyOTMgLyogQWNj
ZXNzaWJpbGl0eVRhYmxlLmNwcCAqLzsgfTsKIAkJMjlBODEyMjgwRkJCOUMxRDAwNTEwMjkzIC8q
IEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyOUE4MTIwQTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0
eUFSSUFHcmlkLmNwcCAqLzsgfTsKQEAgLTYzMTksNiArNjMyNywxNiBAQAogCQkyNEY1NEVBQjEw
MUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXBwbGljYXRpb25DYWNoZUhvc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMjU0MkY0RDgxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5k
aWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJHZXN0
dXJlSW5kaWNhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjU0MkY0RDkx
MTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5kaWNhdG9yLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJHZXN0dXJlSW5kaWNhdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTI5NzQ0NjM3MTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0NDYzODExRkUyNTdBMDA0NTIz
RjggLyogQWNjZXNzaWJpbGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
Y2Nlc3NpYmlsaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjM5MTFG
RTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBBY2Nlc3NpYmlsaXR5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2
M0ExMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTY3JlZW5SZWFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyOTc0NDYzQjExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmVlblJlYWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyOTc0NDYzQzExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVh
ZGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTY3JlZW5SZWFkZXIuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0NDY2RDExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nl
c3NpYmlsaXR5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWNj
ZXNzaWJpbGl0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjZFMTFG
RTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNBY2Nlc3NpYmlsaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTI5NzQ0NjhDMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NjcmVlblJlYWRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjhEMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1Nj
cmVlblJlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NjcmVlblJl
YWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUE4MTIwODBGQkI5QzFEMDA1
MTAyOTMgLyogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBODEyMDkwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vz
c2liaWxpdHlUYWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
Y2Nlc3NpYmlsaXR5VGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUE4
MTIwQTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTU0MCw2ICsxMTU1OCw5IEBACiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTI5QTgxMjA1MEZCQjlCNTIwMDUx
MDI5MyAvKiBtYWMgKi8sCisJCQkJMjk3NDQ2MzcxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2li
aWxpdHkuY3BwICovLAorCQkJCTI5NzQ0NjM4MTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmls
aXR5LmggKi8sCisJCQkJMjk3NDQ2MzkxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHku
aWRsICovLAogCQkJCTI5QTgxMjBBMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJ
QUdyaWQuY3BwICovLAogCQkJCTI5QTgxMjE2MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmls
aXR5QVJJQUdyaWQuaCAqLywKIAkJCQkyOUE4MTIxMjBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNz
aWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgKi8sCkBAIC0xMTU4NCw2ICsxMTYwNSw5IEBACiAJCQkJ
MjlBODEyMTMwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZVJvdy5oICovLAog
CQkJCTI5QTgxMjE5MEZCQjlDMUQwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hlLmNwcCAqLywKIAkJ
CQkyOUE4MTIxQTBGQkI5QzFEMDA1MTAyOTMgLyogQVhPYmplY3RDYWNoZS5oICovLAorCQkJCTI5
NzQ0NjNBMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuY3BwICovLAorCQkJCTI5NzQ0
NjNCMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuaCAqLywKKwkJCQkyOTc0NDYzQzEx
RkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0g
YWNjZXNzaWJpbGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNDY1Myw2ICsx
NDY3Nyw4IEBACiAJCUE4M0I3OTEwMENDQjAwMUIwMDBCMDgyNSAvKiBDb3JlICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyOTc0NDY2RDExRkUyQjMyMDA0
NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmNwcCAqLywKKwkJCQkyOTc0NDY2RTExRkUyQjMyMDA0
NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmggKi8sCiAJCQkJNjVERjMxRDgwOUQxQzEyMjAwMEJF
MzI1IC8qIEpTQXR0ci5jcHAgKi8sCiAJCQkJNjVERjMxRDkwOUQxQzEyMzAwMEJFMzI1IC8qIEpT
QXR0ci5oICovLAogCQkJCTkzRjlCNzlFMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlv
bi5jcHAgKi8sCkBAIC0xNDcwNSw2ICsxNDczMSw4IEBACiAJCQkJNjVERjMxRUMwOUQxQ0M2MDAw
MEJFMzI1IC8qIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggKi8sCiAJCQkJRTRCNDIzODUwQ0JG
QjczQzAwQUYyRUNFIC8qIEpTUHJvZ3Jlc3NFdmVudC5jcHAgKi8sCiAJCQkJRTRCNDIzODYwQ0JG
QjczQzAwQUYyRUNFIC8qIEpTUHJvZ3Jlc3NFdmVudC5oICovLAorCQkJCTI5NzQ0NjhDMTFGRTJC
RTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5jcHAgKi8sCisJCQkJMjk3NDQ2OEQxMUZFMkJF
MTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmggKi8sCiAJCQkJNjVERjMxRUYwOUQxQ0M2MDAw
MEJFMzI1IC8qIEpTVGV4dC5jcHAgKi8sCiAJCQkJNjVERjMxRjAwOUQxQ0M2MDAwMEJFMzI1IC8q
IEpTVGV4dC5oICovLAogCQkJKTsKQEAgLTE5ODg1LDYgKzE5OTEzLDEwIEBACiAJCQkJQzU3MkVF
MEUxMjAxQzczNjAwN0Q4RjgyIC8qIElEQkluZGV4QmFja2VuZEltcGwuaCBpbiBIZWFkZXJzICov
LAogCQkJCUM1NzJFRTBGMTIwMUM3MzYwMDdEOEY4MiAvKiBJREJJbmRleEJhY2tlbmRJbnRlcmZh
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NzJFRTFGMTIwMUM5QkMwMDdEOEY4MiAvKiBKU0lE
QkluZGV4LmggaW4gSGVhZGVycyAqLywKKwkJCQkyOTc0NDYzRTExRkUyNTdBMDA0NTIzRjggLyog
QWNjZXNzaWJpbGl0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjk3NDQ2NDExMUZFMjU3QTAwNDUy
M0Y4IC8qIFNjcmVlblJlYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjk3NDQ2NzAxMUZFMkIz
MjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjk3NDQ2
OEYxMUZFMkJFMTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTIyMjg2LDYgKzIyMzE4LDEwIEBACiAJCQkJQzU3MkVFMEExMjAxQzczNjAwN0Q4RjgyIC8qIElE
QkluZGV4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1NzJFRTBEMTIwMUM3MzYwMDdEOEY4MiAv
KiBJREJJbmRleEJhY2tlbmRJbXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1NzJFRTFFMTIw
MUM5QkMwMDdEOEY4MiAvKiBKU0lEQkluZGV4LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI5NzQ0
NjNEMTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTI5NzQ0NjQwMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMjk3NDQ2NkYxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkyOTc0NDY4RTExRkUyQkUxMDA0NTIzRjggLyogSlNTY3Jl
ZW5SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgJKHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTE5LDYgKzExOSw4IEBAIHB1YmxpYzoK
ICAgICAgICAgQVhSb3dDb3VudENoYW5nZWQsCiAgICAgICAgIEFYUm93Q29sbGFwc2VkLAogICAg
ICAgICBBWFJvd0V4cGFuZGVkLAorICAgICAgICBBWFNjcmVlbkNoYW5nZWQsCisgICAgICAgIEFY
RWxlbWVudHNDaGFuZ2VkCiAgICAgfTsKIAogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihSZW5k
ZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgYm9vbCBwb3N0VG9FbGVtZW50LCBQb3N0VHlwZSA9
IFBvc3RBc3luY2hyb25vdXNseSk7CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHkuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHkuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBw
bGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eS5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIlNjcmVlblJlYWRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0Fj
Y2Vzc2liaWxpdHk6OkFjY2Vzc2liaWxpdHkoRnJhbWUqIGZyYW1lKQorICAgIDogbV9mcmFtZShm
cmFtZSkgCit7Cit9CisKK0FjY2Vzc2liaWxpdHk6On5BY2Nlc3NpYmlsaXR5KCkKK3sKKyAgICBk
aXNjb25uZWN0RnJhbWUoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5OjpkaXNjb25uZWN0RnJh
bWUoKQoreworICAgIGlmIChtX3NjcmVlblJlYWRlcikgeworICAgICAgICBtX3NjcmVlblJlYWRl
ci0+ZGlzY29ubmVjdEZyYW1lKCk7CisgICAgICAgIG1fc2NyZWVuUmVhZGVyID0gMDsKKyAgICB9
CisgICAgbV9mcmFtZSA9IDA7Cit9CisgICAgCit2b2lkIEFjY2Vzc2liaWxpdHk6OnNjcmVlbkNo
YW5nZWQoKQoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAg
IERvY3VtZW50KiBkb2MgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jKQorICAg
ICAgICByZXR1cm47CisgICAgCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdCA9IGRvYy0+
YXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShkb2MtPnJlbmRlcmVyKCkpOworICAgIGRvYy0+
YXhPYmplY3RDYWNoZSgpLT5wb3N0Tm90aWZpY2F0aW9uKHJvb3QsIGRvYywgQVhPYmplY3RDYWNo
ZTo6QVhTY3JlZW5DaGFuZ2VkLCBmYWxzZSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eTo6ZWxl
bWVudHNDaGFuZ2VkKCkKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBEb2N1bWVudCogZG9jID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRv
YykKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3Qg
PSBkb2MtPmF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoZG9jLT5yZW5kZXJlcigpKTsKKyAg
ICBkb2MtPmF4T2JqZWN0Q2FjaGUoKS0+cG9zdE5vdGlmaWNhdGlvbihyb290LCBkb2MsIEFYT2Jq
ZWN0Q2FjaGU6OkFYRWxlbWVudHNDaGFuZ2VkLCBmYWxzZSk7Cit9CisgICAgCitTY3JlZW5SZWFk
ZXIqIEFjY2Vzc2liaWxpdHk6OnNjcmVlblJlYWRlcigpIGNvbnN0Cit7CisgICAgaWYgKCFtX3Nj
cmVlblJlYWRlcikKKyAgICAgICAgbV9zY3JlZW5SZWFkZXIgPSBTY3JlZW5SZWFkZXI6OmNyZWF0
ZShtX2ZyYW1lKTsKKyAgICAKKyAgICByZXR1cm4gbV9zY3JlZW5SZWFkZXIuZ2V0KCk7Cit9Cisg
ICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHkuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQWNjZXNz
aWJpbGl0eV9oCisjZGVmaW5lIEFjY2Vzc2liaWxpdHlfaAorCisjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorY2xhc3MgRnJhbWU7CitjbGFzcyBT
Y3JlZW5SZWFkZXI7CisgICAgCitjbGFzcyBBY2Nlc3NpYmlsaXR5IDogcHVibGljIFJlZkNvdW50
ZWQ8QWNjZXNzaWJpbGl0eT4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vz
c2liaWxpdHk+IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nl
c3NpYmlsaXR5KGZyYW1lKSk7IH0KKyAgICB+QWNjZXNzaWJpbGl0eSgpOworICAgIAorICAgIFNj
cmVlblJlYWRlciogc2NyZWVuUmVhZGVyKCkgY29uc3Q7CisgICAgdm9pZCBzY3JlZW5DaGFuZ2Vk
KCk7CisgICAgdm9pZCBlbGVtZW50c0NoYW5nZWQoKTsKKyAgICAKKyAgICB2b2lkIGRpc2Nvbm5l
Y3RGcmFtZSgpOworICAgIAorcHJpdmF0ZToKKyAgICBBY2Nlc3NpYmlsaXR5KEZyYW1lKik7Cisg
ICAgRnJhbWUqIG1fZnJhbWU7CisgICAgbXV0YWJsZSBSZWZQdHI8U2NyZWVuUmVhZGVyPiBtX3Nj
cmVlblJlYWRlcjsKK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBBY2Nlc3NpYmlsaXR5X2gKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eS5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eS5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB3aW5kb3cgeworCisg
ICAgaW50ZXJmYWNlIFtPbWl0Q29uc3RydWN0b3JdIEFjY2Vzc2liaWxpdHkgeworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgU2NyZWVuUmVhZGVyIHNjcmVlblJlYWRlcjsKKworICAgICAgICB2
b2lkIHNjcmVlbkNoYW5nZWQoKTsKKyAgICAgICAgdm9pZCBlbGVtZW50c0NoYW5nZWQoKTsKKwor
ICAgIH07Cit9CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmgJKHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsMTIgQEAKICNpbmNsdWRl
ICJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShN
QUMpCisjZGVmaW5lIFNVUFBPUlRTX0pTQUNDRVNTSUJJTElUWSAxCisjZWxzZQorI2RlZmluZSBT
VVBQT1JUU19KU0FDQ0VTU0lCSUxJVFkgMAorI2VuZGlmCisKIHR5cGVkZWYgc3RydWN0IF9OU1Jh
bmdlIE5TUmFuZ2U7CiAKICNpZmRlZiBfX09CSkNfXwpAQCAtNTQ4LDYgKzU1NCwxNiBAQCBwdWJs
aWM6CiAjZW5kaWYKICNlbmRpZgogCisjaWYgU1VQUE9SVFNfSlNBQ0NFU1NJQklMSVRZCisgICAg
Ym9vbCBpc1NjcmVlblJlYWRlclJ1bm5pbmcoKSBjb25zdDsKKyAgICBFbGVtZW50KiBzY3JlZW5S
ZWFkZXJGb2N1c2VkRWxlbWVudCgpIGNvbnN0OworICAgIFN0cmluZyBzY3JlZW5SZWFkZXJWZXJz
aW9uKCkgY29uc3Q7CisjZWxzZQorICAgIGJvb2wgaXNTY3JlZW5SZWFkZXJSdW5uaW5nKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBFbGVtZW50KiBzY3JlZW5SZWFkZXJGb2N1c2VkRWxl
bWVudCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICBTdHJpbmcgc2NyZWVuUmVhZGVyVmVyc2lv
bigpIGNvbnN0IHsgcmV0dXJuIG51bGxBdG9tOyB9CisjZW5kaWYKKyAgICAKICNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpCiAgICAgLy8gYSBwbGF0Zm9ybS1zcGVjaWZpYyBtZXRob2QgZm9yIGRldGVy
bWluaW5nIGlmIGFuIGF0dGFjaG1lbnQgaXMgaWdub3JlZAogICAgIGJvb2wgYWNjZXNzaWJpbGl0
eUlnbm9yZUF0dGFjaG1lbnQoKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9T
Y3JlZW5SZWFkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3Jl
ZW5SZWFkZXIuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVl
blJlYWRlci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJTY3JlZW5SZWFkZXIuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitTY3JlZW5SZWFkZXI6OlNjcmVlblJlYWRlcihGcmFtZSogZnJhbWUp
CisgICAgOiBtX2ZyYW1lKGZyYW1lKQoreworfQorCitTY3JlZW5SZWFkZXI6On5TY3JlZW5SZWFk
ZXIoKQoreworICAgIGRpc2Nvbm5lY3RGcmFtZSgpOworfQorICAgIAordm9pZCBTY3JlZW5SZWFk
ZXI6OmRpc2Nvbm5lY3RGcmFtZSgpCit7CisgICAgbV9mcmFtZSA9IDA7Cit9CisKK2Jvb2wgU2Ny
ZWVuUmVhZGVyOjphY3RpdmUoKSBjb25zdAoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIAorICAgIERvY3VtZW50KiBkb2MgPSBtX2ZyYW1lLT5kb2N1bWVu
dCgpOworICAgIGlmICghZG9jKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZG9jLT5heE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRl
KGRvYy0+cmVuZGVyZXIoKSk7CisgICAgcmV0dXJuIG9iai0+aXNTY3JlZW5SZWFkZXJSdW5uaW5n
KCk7Cit9CisgICAgCitFbGVtZW50KiBTY3JlZW5SZWFkZXI6OmFjdGl2ZUVsZW1lbnQoKSBjb25z
dAoreworICAgIERvY3VtZW50KiBkb2MgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICgh
ZG9jKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqID0gZG9jLT5heE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKGRvYy0+cmVuZGVyZXIo
KSk7CisgICAgcmV0dXJuIG9iai0+c2NyZWVuUmVhZGVyRm9jdXNlZEVsZW1lbnQoKTsgICAgCit9
CisgICAgCitTdHJpbmcgU2NyZWVuUmVhZGVyOjp2ZXJzaW9uKCkgY29uc3QKK3sKKyAgICBEb2N1
bWVudCogZG9jID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvYykKKyAgICAgICAg
cmV0dXJuIG51bGxBdG9tOworICAgIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGRv
Yy0+YXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShkb2MtPnJlbmRlcmVyKCkpOworICAgIHJl
dHVybiBvYmotPnNjcmVlblJlYWRlclZlcnNpb24oKTsKK30KKyAgICAKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmU7CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5oCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNjcmVlblJlYWRlcl9oCisjZGVmaW5lIFNjcmVl
blJlYWRlcl9oCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIEVsZW1lbnQ7
CitjbGFzcyBGcmFtZTsKK2NsYXNzIFN0cmluZzsKKyAgICAKK2NsYXNzIFNjcmVlblJlYWRlciA6
IHB1YmxpYyBSZWZDb3VudGVkPFNjcmVlblJlYWRlcj4geworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFNjcmVlblJlYWRlcj4gY3JlYXRlKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRv
cHRSZWYobmV3IFNjcmVlblJlYWRlcihmcmFtZSkpOyB9CisgICAgflNjcmVlblJlYWRlcigpOwor
ICAgIAorICAgIFN0cmluZyB2ZXJzaW9uKCkgY29uc3Q7CisgICAgYm9vbCBhY3RpdmUoKSBjb25z
dDsKKyAgICBFbGVtZW50KiBhY3RpdmVFbGVtZW50KCkgY29uc3Q7CisgICAgCisgICAgdm9pZCBk
aXNjb25uZWN0RnJhbWUoKTsKK3ByaXZhdGU6CisgICAgU2NyZWVuUmVhZGVyKEZyYW1lKik7Cisg
ICAgRnJhbWUqIG1fZnJhbWU7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gU2NyZWVuUmVhZGVyX2gKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3Jl
ZW5SZWFkZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5S
ZWFkZXIuaWRsCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJl
YWRlci5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBs
ZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB3aW5kb3cgewor
CisgICAgaW50ZXJmYWNlICBbT21pdENvbnN0cnVjdG9yXSBTY3JlZW5SZWFkZXIgeworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlcnNpb247CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuIGFjdGl2ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVs
ZW1lbnQgYWN0aXZlRWxlbWVudDsKKyAgICB9OworCit9CisKSW5kZXg6IFdlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0JKHJldmlzaW9uIDY0MzcxKQorKysg
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC03Niw2ICs3NiwxMiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5v
dGlmaWNhCiAgICAgICAgIGNhc2UgQVhMYXlvdXRDb21wbGV0ZToKICAgICAgICAgICAgIG1hY05v
dGlmaWNhdGlvbiA9ICJBWExheW91dENvbXBsZXRlIjsKICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEFYU2NyZWVuQ2hhbmdlZDoKKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9
ICJBWFNjcmVlbkNoYW5nZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhF
bGVtZW50c0NoYW5nZWQ6CisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAiQVhFbGVtZW50
c0NoYW5nZWQiOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhMb2FkQ29tcGxl
dGU6CiAgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAiQVhMb2FkQ29tcGxldGUiOwogICAg
ICAgICAgICAgYnJlYWs7CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2li
aWxpdHlPYmplY3RNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCShyZXZpc2lvbiA2NDM3MSkKKysrIFdlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQkod29ya2luZyBjb3B5
KQpAQCAtMjksOSArMjksMjYgQEAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAKICNpbXBvcnQg
IkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLmgiCisjaW1wb3J0ICJBWE9iamVjdENhY2hlLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Nj
cmVlblJlYWRlclJ1bm5pbmcoKSBjb25zdAoreworICAgIC8vIElmIHRoZSBlbmhhbmNlZCB1c2Vy
IGludGVyZmFjZSBpcyBlbmFibGVkLCBpdCBtZWFucyBWb2ljZU92ZXIgaXMgcnVubmluZy4KKyAg
ICByZXR1cm4gQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFj
ZUVuYWJsZWQoKTsKK30KKyAgICAKK0VsZW1lbnQqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVl
blJlYWRlckZvY3VzZWRFbGVtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKyAgICAK
K1N0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzY3JlZW5SZWFkZXJWZXJzaW9uKCkgY29uc3QK
K3sgCisgICAgcmV0dXJuIG51bGxBdG9tOworfQorICAgIAogYm9vbCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjphY2Nlc3NpYmlsaXR5SWdub3JlQXR0YWNobWVudCgpIGNvbnN0CiB7CiAgICAgTlNWaWV3
KiBhdHRhY2htZW50ID0gW3dyYXBwZXIoKSBhdHRhY2htZW50Vmlld107CkluZGV4OiBXZWJDb3Jl
L3BhZ2UvTmF2aWdhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9y
LmNwcAkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIk5hdmlnYXRvci5oIgogCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eS5oIgogI2luY2x1ZGUg
IkNocm9tZS5oIgogI2luY2x1ZGUgIkNvb2tpZUphci5oIgogI2luY2x1ZGUgIkRPTU1pbWVUeXBl
QXJyYXkuaCIKQEAgLTY2LDYgKzY3LDEwIEBAIHZvaWQgTmF2aWdhdG9yOjpkaXNjb25uZWN0RnJh
bWUoKQogICAgICAgICBtX2dlb2xvY2F0aW9uLT5kaXNjb25uZWN0RnJhbWUoKTsKICAgICAgICAg
bV9nZW9sb2NhdGlvbiA9IDA7CiAgICAgfQorICAgIGlmIChtX2FjY2Vzc2liaWxpdHkpIHsKKyAg
ICAgICAgbV9hY2Nlc3NpYmlsaXR5LT5kaXNjb25uZWN0RnJhbWUoKTsKKyAgICAgICAgbV9hY2Nl
c3NpYmlsaXR5ID0gMDsKKyAgICB9CiAgICAgbV9mcmFtZSA9IDA7CiB9CiAKQEAgLTEyNyw2ICsx
MzIsMTMgQEAgRE9NTWltZVR5cGVBcnJheSogTmF2aWdhdG9yOjptaW1lVHlwZXMoKQogICAgICAg
ICBtX21pbWVUeXBlcyA9IERPTU1pbWVUeXBlQXJyYXk6OmNyZWF0ZShtX2ZyYW1lKTsKICAgICBy
ZXR1cm4gbV9taW1lVHlwZXMuZ2V0KCk7CiB9CisgICAgCitBY2Nlc3NpYmlsaXR5KiBOYXZpZ2F0
b3I6OmFjY2Vzc2liaWxpdHkoKSBjb25zdAoreworICAgIGlmICghbV9hY2Nlc3NpYmlsaXR5KQor
ICAgICAgICBtX2FjY2Vzc2liaWxpdHkgPSBBY2Nlc3NpYmlsaXR5OjpjcmVhdGUobV9mcmFtZSk7
CisgICAgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eS5nZXQoKTsKK30KIAogYm9vbCBOYXZpZ2F0b3I6
OmNvb2tpZUVuYWJsZWQoKSBjb25zdAogewpJbmRleDogV2ViQ29yZS9wYWdlL05hdmlnYXRvci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAkocmV2aXNpb24gNjQzNzEp
CisrKyBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBBY2Nlc3NpYmlsaXR5OwogY2xh
c3MgRE9NTWltZVR5cGVBcnJheTsKIGNsYXNzIERPTVBsdWdpbkFycmF5OwogY2xhc3MgRnJhbWU7
CkBAIC00Niw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgbGFuZ3VhZ2UoKSBjb25zdDsK
ICAgICBET01QbHVnaW5BcnJheSogcGx1Z2lucygpIGNvbnN0OwogICAgIERPTU1pbWVUeXBlQXJy
YXkqIG1pbWVUeXBlcygpIGNvbnN0OworICAgIEFjY2Vzc2liaWxpdHkqIGFjY2Vzc2liaWxpdHko
KSBjb25zdDsKICAgICBib29sIGNvb2tpZUVuYWJsZWQoKSBjb25zdDsKICAgICBib29sIGphdmFF
bmFibGVkKCkgY29uc3Q7CiAKQEAgLTY2LDYgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxl
IFJlZlB0cjxET01QbHVnaW5BcnJheT4gbV9wbHVnaW5zOwogICAgIG11dGFibGUgUmVmUHRyPERP
TU1pbWVUeXBlQXJyYXk+IG1fbWltZVR5cGVzOwogICAgIG11dGFibGUgUmVmUHRyPEdlb2xvY2F0
aW9uPiBtX2dlb2xvY2F0aW9uOworICAgIG11dGFibGUgUmVmUHRyPEFjY2Vzc2liaWxpdHk+IG1f
YWNjZXNzaWJpbGl0eTsKIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCShyZXZpc2lvbiA2NDM3
MSkKKysrIFdlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2
ICszMSw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHBsYXRmb3JtOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NUGx1Z2luQXJy
YXkgcGx1Z2luczsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTU1pbWVUeXBlQXJyYXkg
bWltZVR5cGVzOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQWNjZXNzaWJpbGl0eSBhY2Nl
c3NpYmlsaXR5OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHByb2R1Y3Q7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcHJvZHVjdFN1YjsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZW5kb3I7CkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biA2NDM3MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEzIEBACisyMDEwLTA3LTI2ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQVg6
IFN1cHBvcnQgbWV0aG9kcyBmb3Igd2ViIGFwcHMgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgbmF0aXZl
IGFjY2Vzc2liaWxpdHkgQVBJcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDMwMDUKKworICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L2pzLWFjY2Vzc2liaWxpdHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS9qcy1hY2Nlc3NpYmlsaXR5Lmh0bWw6IEFkZGVkLgorCiAyMDEw
LTA3LTMwICBEcmV3IFdpbHNvbiAgPGF0d2lsc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkIHRlc3QgZXhwZWN0YXRpb25zIGZpeC4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHktZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vz
c2liaWxpdHktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0eS1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKK1RoaXMgdGVzdHMgdGhlIGphdmFzY3JpcHQgaW50ZXJm
YWNlIHRvIGFjY2Vzc2liaWxpdHkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgYXguc2NyZWVuUmVhZGVyLmFjdGl2ZSBpcyBmYWxzZQorUEFTUyBhZGRlZE5vdGlmaWNhdGlv
biBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKK1BBU1MgbmFtZSBpcyAnQVhTY3JlZW5DaGFuZ2VkJworUEFTUyBuYW1lIGlzICdBWEVsZW1l
bnRzQ2hhbmdlZCcKKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvanMtYWNjZXNzaWJpbGl0eS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHkuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxp
dHkuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2OCBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdD4KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAg
IGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoZSBqYXZhc2NyaXB0IGludGVyZmFjZSB0byBhY2Nl
c3NpYmlsaXR5Iik7CisKKyAgICB2YXIgYm9keSA9IDA7CisgICAgdmFyIG5hbWUgPSAwOworICAg
IGZ1bmN0aW9uIG5vdGlmeUNhbGxiYWNrKG5vdGlmaWNhdGlvbikgeyAgCisgICAgICAgIG5hbWUg
PSBub3RpZmljYXRpb247CisgICAgICAgIGlmIChuYW1lID09ICJBWFNjcmVlbkNoYW5nZWQiKSB7
CisgICAgICAgICAgICBzaG91bGRCZSgibmFtZSIsICInQVhTY3JlZW5DaGFuZ2VkJyIpOworICAg
ICAgICB9CisgICAgICAgIGVsc2UgaWYgKG5hbWUgPT0gIkFYRWxlbWVudHNDaGFuZ2VkIikgewor
ICAgICAgICAgICAgc2hvdWxkQmUoIm5hbWUiLCAiJ0FYRWxlbWVudHNDaGFuZ2VkJyIpOworICAg
ICAgICAgICAgYm9keS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOworICAgICAgICAgICAg
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorICAg
IH0KKzwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBheCA9IHdpbmRvdy5uYXZpZ2F0b3Iu
YWNjZXNzaWJpbGl0eTsKKworICAgIC8vIHNjcmVlbiByZWFkZXIgc2hvdWxkIG5vdCBiZSBydW5u
aW5nIHdpdGhpbiBsYXlvdXQgdGVzdHMuCisgICAgc2hvdWxkQmUoImF4LnNjcmVlblJlYWRlci5h
Y3RpdmUiLCAiZmFsc2UiKTsKKworICAgIC8vIHNob3VsZCBub3QgY2F1c2UgYW4gZXJyb3IuCisg
ICAgdmFyIHZlcnNpb24gPSBheC5zY3JlZW5SZWFkZXIudmVyc2lvbjsKKworICAgIC8vIHNob3Vs
ZCBub3QgY2F1c2UgYW4gZXJyb3IKKyAgICB2YXIgYWN0aXZlRWxlbWVudCA9IGF4LnNjcmVlblJl
YWRlci5hY3RpdmVFbGVtZW50OworCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcikgeworICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib2R5IikuZm9jdXMoKTsK
KworICAgICAgICBib2R5ID0gd2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRF
bGVtZW50OworCisgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IGJvZHkuYWRkTm90aWZp
Y2F0aW9uTGlzdGVuZXIobm90aWZ5Q2FsbGJhY2spOworICAgICAgICBzaG91bGRCZSgiYWRkZWRO
b3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgIC8vIHNob3VsZCBjYXVzZSBhIEFYU2Ny
ZWVuQ2hhbmdlZCB0byBiZSBzZW50IG91dC4KKyAgICAgICAgYXguc2NyZWVuQ2hhbmdlZCgpOwor
CisgICAgICAgIC8vIHNob3VsZCBjYXVzZSBhIEFYRWxlbWVudHNDaGFuZ2VkIHRvIGJlIHNlbnQg
b3V0LgorICAgICAgICBheC5lbGVtZW50c0NoYW5nZWQoKTsKKyAgICB9CisKKyAgICBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63129</attachid>
            <date>2010-07-30 17:12:35 -0700</date>
            <delta_ts>2010-09-15 15:35:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43005-20100730171234.patch</filename>
            <type>text/plain</type>
            <size>49178</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiA2NDM3MSkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMzYsNiAr
MzM2LDcgQEAgd2Via2l0Z3RrX3N0YXRpY19oX2FwaSArPSBcCiAJJChzcmNkaXIpL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2luLmgKIAogd2Via2l0Z3RrX2J1aWx0X2hfYXBp
ICs9IFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NQWNjZXNzaWJpbGl0eS5oIFwK
IAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NQ1NTUnVsZS5oIFwKIAlEZXJpdmVkU291
cmNlcy93ZWJraXQvV2ViS2l0RE9NQ1NTUnVsZUxpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Vi
a2l0L1dlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaCBcCkBAIC00NDQsNiArNDQ1LDcgQEAg
d2Via2l0Z3RrX2J1aWx0X2hfYXBpICs9IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0
RE9NT2JqZWN0LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01OYXZpZ2F0b3Iu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTVNjcmVlbi5oIFwKKwlEZXJpdmVk
U291cmNlcy93ZWJraXQvV2ViS2l0RE9NU2NyZWVuUmVhZGVyLmggXAogCURlcml2ZWRTb3VyY2Vz
L3dlYmtpdC9XZWJLaXRET01XZWJLaXRQb2ludC5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQv
V2ViS2l0RE9NRE9NTWltZVR5cGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERP
TURPTU1pbWVUeXBlQXJyYXkuaCBcCkBAIC00NjMsNiArNDY1LDcgQEAgd2Via2l0Z3RrX2hfYXBp
ICs9IFwKIAkkKHdlYmtpdGd0a19zdGF0aWNfaF9hcGkpCiAKIHdlYmtpdGd0a19nZG9tX2J1aWx0
X3NvdXJjZXMgKz0gXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01BY2Nlc3NpYmls
aXR5LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUF0dHIuY3BwIFwKIAlE
ZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NQXR0clByaXZhdGUuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvd2Via2l0L1dlYktpdERPTUJhckluZm8uY3BwIFwKQEAgLTY3Myw2ICs2NzYsNyBAQCB3
ZWJraXRndGtfZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQv
V2ViS2l0RE9NUmFuZ2VQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRE
T01TY3JlZW4uY3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NU2NyZWVuUHJp
dmF0ZS5oIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NU2NyZWVuUmVhZGVyLmNw
cCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTVN0b3JhZ2UuY3BwIFwKIAlEZXJp
dmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NU3RvcmFnZVByaXZhdGUuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvd2Via2l0L1dlYktpdERPTVN0eWxlTWVkaWEuY3BwIFwKSW5kZXg6IFdlYkNvcmUvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NDM3MSkK
KysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTYgQEAKKzIw
MTAtMDctMzAgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBWDogU3VwcG9ydCBtZXRo
b2RzIGZvciB3ZWIgYXBwcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBuYXRpdmUgYWNjZXNzaWJpbGl0
eSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MzAwNQorCisgICAgICAgIEFkZHMgYSBuZXcgImFjY2Vzc2liaWxpdHkiIG9iamVjdCB0aGF0IGhh
bmdzIG9mZiBvZiAid2luZG93Lm5hdmlnYXRvciIuCisgICAgICAgIFRoaXMgYWNjZXNzaWJpbGl0
eSBvYmplY3Qgd2lsbCBhbGxvdyB3ZWIgYXBwcyB0byBpbnRlcmFjdCB3aXRoIG5hdGl2ZSBhY2Nl
c3NpYmlsaXR5IEFQSXMKKyAgICAgICAgdG8gcHJvdmlkZSBhIHJpY2hlciBleHBlcmllbmNlIChm
b3Igc2NyZWVuIHJlYWRlciB1c2VycyBwcmltYXJpbHkpLgorCisgICAgICAgIFRlc3Q6IHBsYXRm
b3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHkuaHRtbAorCisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjopOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eTo6QWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Ojp+QWNj
ZXNzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjpkaXNjb25uZWN0
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6c2NyZWVuQ2hhbmdlZCk6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjplbGVtZW50c0NoYW5nZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6c2NyZWVuUmVhZGVyKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5OjpjcmVhdGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eS5pZGw6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNTY3JlZW5S
ZWFkZXJSdW5uaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNj
cmVlblJlYWRlckZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlPYmplY3Q6OnNjcmVlblJlYWRlclZlcnNpb24pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
U2NyZWVuUmVhZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5SZWFkZXI6
OlNjcmVlblJlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5SZWFkZXI6On5TY3JlZW5S
ZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVyOjpkaXNjb25uZWN0RnJhbWUp
OgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUmVhZGVyOjphY3RpdmUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyZWVuUmVhZGVyOjphY3RpdmVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmVlblJlYWRlcjo6dmVyc2lvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFk
ZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5SZWFkZXI6OmNyZWF0ZSk6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNTY3JlZW5SZWFkZXJSdW5uaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlckZvY3VzZWRFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRl
clZlcnNpb24pOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5hdmlnYXRvcjo6ZGlzY29ubmVjdEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmln
YXRvcjo6YWNjZXNzaWJpbGl0eSk6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3IuaDoKKyAgICAg
ICAgKiBwYWdlL05hdmlnYXRvci5pZGw6CisKIDIwMTAtMDctMzAgIENocmlzIEZsZWl6YWNoICA8
Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
SW5kZXg6IFdlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawkocmV2aXNpb24gNjQzNzEp
CisrKyBXZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCSh3b3JraW5nIGNvcHkp
CkBAIC0yNjMsNiArMjYzLDIxIEBAIExPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQog
IyBhYm92ZSBydWxlcy4gIFNwZWNpZnlpbmcgdGhpcyBleHBsaWNpdGx5IG1ha2VzIC1qMiB3b3Jr
LgogJChwYXRzdWJzdCAlLmgsJS5jcHAsJChHRU4pKTogJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5n
cy8lLmNwcCA6ICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvJS5oCiAKKyMgQWNjZXNzaWJpbGl0
eQorR0VOIDo9IFwKKyAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4QWNjZXNzaWJpbGl0
eS5oCisgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOFNjcmVlblJlYWRlci5oCisKKyQo
R0VOKTogUFJJVkFURV9QQVRIIDo9ICQoTE9DQUxfUEFUSCkKKyQoR0VOKTogUFJJVkFURV9DVVNU
T01fVE9PTCA9IFNPVVJDRV9ST09UPSQoUFJJVkFURV9QQVRIKSBwZXJsIC1JJChQUklWQVRFX1BB
VEgpL2JpbmRpbmdzL3NjcmlwdHMgJChQUklWQVRFX1BBVEgpL2JpbmRpbmdzL3NjcmlwdHMvZ2Vu
ZXJhdGUtYmluZGluZ3MucGwgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FUykgTEFOR1VBR0Vf
SkFWQVNDUklQVCIgLS1nZW5lcmF0b3IgVjggLS1pbmNsdWRlIGRvbSAtLWluY2x1ZGUgaHRtbCAt
LW91dHB1dGRpciAkKGRpciAkQCkgJDwKKyQoR0VOKTogJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5n
cy9WOCUuaCA6ICQoTE9DQUxfUEFUSCkvYWNjZXNzaWJpbGl0eS8lLmlkbCAkKGpzX2JpbmRpbmdf
c2NyaXB0cykKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVE
X1NPVVJDRVMgKz0gJChHRU4pCisKKyMgV2UgYWxzbyBuZWVkIHRoZSAuY3BwIGZpbGVzLCB3aGlj
aCBhcmUgZ2VuZXJhdGVkIGFzIHNpZGUgZWZmZWN0cyBvZiB0aGUKKyMgYWJvdmUgcnVsZXMuICBT
cGVjaWZ5aW5nIHRoaXMgZXhwbGljaXRseSBtYWtlcyAtajIgd29yay4KKyQocGF0c3Vic3QgJS5o
LCUuY3BwLCQoR0VOKSk6ICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvJS5jcHAgOiAkKGludGVy
bWVkaWF0ZXMpL2JpbmRpbmdzLyUuaAorCiAjIFBhZ2UKIEdFTiA6PSBcCiAgICAgJChpbnRlcm1l
ZGlhdGVzKS9iaW5kaW5ncy9WOEJhckluZm8uaCBcCkluZGV4OiBXZWJDb3JlL0FuZHJvaWQuanNj
YmluZGluZ3MubWsKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1r
CShyZXZpc2lvbiA2NDM3MSkKKysrIFdlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tawkod29y
a2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQCBCSU5ESU5HX0NfSU5DTFVERVMgOj0gXAogCSQo
SkFWQVNDUklQVENPUkVfUEFUSCkvd3JlYyBcCiAJJChKQVZBU0NSSVBUQ09SRV9QQVRIKS9Gb3J3
YXJkaW5nSGVhZGVycyBcCiAJXAorCSQoYmFzZV9pbnRlcm1lZGlhdGVzKS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkgXAogCSQoYmFzZV9pbnRlcm1lZGlhdGVzKS9XZWJDb3JlL2JpbmRpbmdzL2pzIFwK
IAkkKGJhc2VfaW50ZXJtZWRpYXRlcykvV2ViQ29yZS9kb20gXAogCSQoYmFzZV9pbnRlcm1lZGlh
dGVzKS9XZWJDb3JlL2h0bWwvY2FudmFzIFwKSW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCShyZXZpc2lvbiA2
NDM3MSkKKysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Nyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJIVE1MRWxlbWVudEZhY3RvcnkuY3BwIgogI2luY2x1
ZGUgIkpTQWJzdHJhY3RXb3JrZXIuY3BwIgorI2luY2x1ZGUgIkpTQWNjZXNzaWJpbGl0eS5jcHAi
CiAjaW5jbHVkZSAiSlNBdHRyLmNwcCIKICNpbmNsdWRlICJKU0JhckluZm8uY3BwIgogI2luY2x1
ZGUgIkpTQmVmb3JlTG9hZEV2ZW50LmNwcCIKQEAgLTIyNCw2ICsyMjUsNyBAQAogI2luY2x1ZGUg
IkpTUmVjdC5jcHAiCiAjaW5jbHVkZSAiSlNSR0JDb2xvci5jcHAiCiAjaW5jbHVkZSAiSlNTY3Jl
ZW4uY3BwIgorI2luY2x1ZGUgIkpTU2NyZWVuUmVhZGVyLmNwcCIKICNpbmNsdWRlICJKU1Njcmlw
dFByb2ZpbGUuY3BwIgogI2luY2x1ZGUgIkpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwIgogI2luY2x1
ZGUgIkpTU2hhcmVkV29ya2VyLmNwcCIKSW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDY0
MzcxKQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0y
OCw2ICsyOCw3IEBACiAKIFZQQVRIID0gXAogICAgICQoV2ViQ29yZSkgXAorICAgICQoV2ViQ29y
ZSkvYWNjZXNzaWJpbGl0eSBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9qcyBcCiAgICAgJChX
ZWJDb3JlKS9iaW5kaW5ncy9vYmpjIFwKICAgICAkKFdlYkNvcmUpL2NzcyBcCkBAIC01MCw2ICs1
MSw3IEBAIFZQQVRIID0gXAogRE9NX0NMQVNTRVMgPSBcCiAgICAgQWJzdHJhY3RWaWV3IFwKICAg
ICBBYnN0cmFjdFdvcmtlciBcCisgICAgQWNjZXNzaWJpbGl0eSBcCiAgICAgQXR0ciBcCiAgICAg
QmFySW5mbyBcCiAgICAgQmVmb3JlTG9hZEV2ZW50IFwKQEAgLTQzMCw2ICs0MzIsNyBAQCBET01f
Q0xBU1NFUyA9IFwKICAgICBTVkdab29tQW5kUGFuIFwKICAgICBTVkdab29tRXZlbnQgXAogICAg
IFNjcmVlbiBcCisgICAgU2NyZWVuUmVhZGVyIFwKICAgICBTdHlsZU1lZGlhIFwKICAgICBTdHls
ZVNoZWV0IFwKICAgICBTdHlsZVNoZWV0TGlzdCBcCkluZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDY0Mzcx
KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtOTksNiArOTks
OCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0Fic3RyYWN0V29ya2VyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Fic3RyYWN0
V29ya2VyLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBY2Nlc3NpYmlsaXR5LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FjY2Vzc2liaWxpdHkuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0FycmF5QnVmZmVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0FycmF5QnVmZmVyLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcnJheUJ1ZmZl
clZpZXcuY3BwIFwKQEAgLTQ2Niw2ICs0NjgsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0g
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSR0JDb2xvci5oIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTU2NyZWVuLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NjcmVl
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyZWVuUmVhZGVyLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NjcmVlblJlYWRlci5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTU2NyaXB0UHJvZmlsZS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNT
Y3JpcHRQcm9maWxlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTY3JpcHRQcm9maWxl
Tm9kZS5jcHAgXApAQCAtNTc1LDYgKzU3OSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2Vi
Q29yZS9XZWJDb3JlUHJlZml4LmggXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBcCisJV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuY3BwIFwKKwlXZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eS5oIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUFSSUFHcmlkLmNwcCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlB
UklBR3JpZC5oIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlk
Q2VsbC5jcHAgXApAQCAtNjE3LDYgKzYyMyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5oIFwK
IAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcCBcCiAJV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oIFwKKwlXZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmNwcCBcCisJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1Nj
cmVlblJlYWRlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlk
ZXIuaCBcCkBAIC00NDE2LDYgKzQ0MjQsNyBAQCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL1JlbW90
ZUluc3BlY3RvckZyCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9z
Y3JpcHRzIC1JJChXZWJDb3JlKS9pbnNwZWN0b3IgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRz
L2dlbmVyYXRlLWJpbmRpbmdzLnBsICQoSURMX1BBVEg6JT0tLWluY2x1ZGUgIiUiKSAtLW91dHB1
dERpciAiJChHRU5TT1VSQ0VTX1dFQkNPUkUpIiAtLWRlZmluZXMgIkxBTkdVQUdFX0pBVkFTQ1JJ
UFQ9MSAkKEZFQVRVUkVfREVGSU5FUykiIC0tZ2VuZXJhdG9yIEluc3BlY3RvciAkPAogCiBJRExf
UEFUSCA6PSBcCisgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5IFwKICAgICAkKFdlYkNvcmUp
L2JpbmRpbmdzL2pzIFwKICAgICAkKFdlYkNvcmUpL2NzcyBcCiAgICAgJChXZWJDb3JlKS9kb20g
XApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLmd5cGkJKHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtp
bmcgY29weSkKQEAgLTEsNiArMSw4IEBACiB7CiAgICAgJ3ZhcmlhYmxlcyc6IHsKICAgICAgICAg
J3dlYmNvcmVfYmluZGluZ3NfaWRsX2ZpbGVzJzogWworICAgICAgICAgICAgJ2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eS5pZGwnLAorICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvU2NyZWVu
UmVhZGVyLmlkbCcsCiAgICAgICAgICAgICAnY3NzL0NTU0NoYXJzZXRSdWxlLmlkbCcsCiAgICAg
ICAgICAgICAnY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9DU1NJ
bXBvcnRSdWxlLmlkbCcsCkBAIC00MzIsNiArNDM0LDggQEAKICAgICAgICAgICAgICMgU291cmNl
L0hlYWRlciBGaWxlcwogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAnLAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oJywKKyAgICAg
ICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuY3BwJywKKyAgICAgICAgICAgICdh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwJywKICAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5oJywKICAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwJywKQEAgLTQ3NCw2ICs0NzgsOCBAQAogICAgICAg
ICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmgn
LAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcCcs
CiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCcsCisg
ICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuY3BwJywKKyAgICAgICAgICAg
ICdhY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5oJywKICAgICAgICAgICAgICdhY2Nlc3NpYmls
aXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ2Fj
Y2Vzc2liaWxpdHkvY2hyb21pdW0vQWNjZXNzaWJpbGl0eU9iamVjdENocm9taXVtLmNwcCcsCiAg
ICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlci5oJywKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9XZWJDb3JlLnByaQkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJpCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTYsNiArMjU2LDggQEAgU1RZTEVTSEVFVFNfRU1CRUQgPSBcCiAg
ICAgJCRQV0QvY3NzL3RoZW1lUXRNYWVtbzUuY3NzCiAKIElETF9CSU5ESU5HUyArPSBcCisgICAg
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmlkbCBcCisgICAgYWNjZXNzaWJpbGl0eS9TY3Jl
ZW5SZWFkZXIuaWRsIFwKICAgICBjc3MvQ291bnRlci5pZGwgXAogICAgIGNzcy9DU1NDaGFyc2V0
UnVsZS5pZGwgXAogICAgIGNzcy9DU1NGb250RmFjZVJ1bGUuaWRsIFwKSW5kZXg6IFdlYkNvcmUv
V2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24g
NjQzNzEpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0yNTQsNiAr
MjU0LDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dDU1M9MSkgewogfQogCiBTT1VSQ0VT
ICs9IFwKKyAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuY3BwIFwKICAgICBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuY3BwIFwKICAgICBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcCBcICAgIAogICAgIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcCBcCkBAIC0yNzYsNiArMjc3LDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIu
Y3BwIFwgICAgCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwIFwg
ICAgCiAgICAgYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBcCisgICAgYWNjZXNzaWJp
bGl0eS9TY3JlZW5SZWFkZXIuY3BwIFwKICAgICBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwIFwKICAg
ICBiaW5kaW5ncy9qcy9ET01PYmplY3RIYXNoVGFibGVNYXAuY3BwIFwKSW5kZXg6IFdlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02MDEsNiArNjAx
LDYyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9
IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNB
Y2Nlc3NpYmlsaXR5LmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJ
CU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJ
CQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkv
Pg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJ
CQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiIN
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8
V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxU
b29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0
aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xK
U0FjY2Vzc2liaWxpdHkuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlS
ZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNBdHRyLmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBA
IC0xMDY4NSw2ICsxMDc0MSw2MiBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJ
CQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTU2NyZWVuUmVhZGVyLmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2lu
MzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29s
DQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFz
ZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0K
KwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlO
YW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJ
CQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJ
CS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU1NjcmVlblJlYWRlci5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJ
CTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialxXZWJDb3Jl
XERlcml2ZWRTb3VyY2VzXEpTU2hhcmVkV29ya2VyLmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCkBAIC0yMDkyOSw2ICsyMTA0MSwxMyBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+
DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5XEFjY2Vzc2li
aWxpdHkuY3BwIg0KKwkJCQk+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nl
c3NpYmlsaXR5XEFjY2Vzc2liaWxpdHkuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8Rmls
ZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGFjY2Vzc2liaWxpdHlcQWNjZXNzaWJpbGl0eUFSSUFH
cmlkLmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC0yMjAxNiw2ICsy
MjEzNSwxMyBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cYWNjZXNzaWJpbGl0eVxBWE9iamVjdENh
Y2hlLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxhY2Nlc3NpYmlsaXR5XFNjcmVlblJlYWRlci5jcHAiDQorCQkJCT4NCisJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGFjY2Vzc2liaWxpdHlcU2NyZWVuUmVhZGVyLmgiDQorCQkJ
CT4NCisJCQk8L0ZpbGU+DQogCQkJPEZpbHRlcg0KIAkJCQlOYW1lPSJ3aW4iDQogCQkJCT4NCklu
ZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
NjQzNzEpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtNjI0LDYgKzYyNCwxNCBAQAogCQkyNEY1NEVBRDEwMUZFOTE0MDAwQUU3
NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDI0RjU0RUFCMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlv
bkNhY2hlSG9zdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCTI1
NDJGNERBMTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNTQyRjREODExNjZDMjVB
MDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwICovOyB9OwogCQkyNTQyRjREQjEx
NjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI1NDJGNEQ5MTE2NkMyNUEwMEU4OUE4NiAv
KiBVc2VyR2VzdHVyZUluZGljYXRvci5oICovOyB9OworCQkyOTc0NDYzRDExRkUyNTdBMDA0NTIz
RjggLyogQWNjZXNzaWJpbGl0eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyOTc0NDYzNzExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5j
cHAgKi87IH07CisJCTI5NzQ0NjNFMTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTc0NDYzODEx
RkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5oICovOyB9OworCQkyOTc0NDY0MDExRkUy
NTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjNBMTFGRTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5S
ZWFkZXIuY3BwICovOyB9OworCQkyOTc0NDY0MTExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVh
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTc0
NDYzQjExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmggKi87IH07CisJCTI5NzQ0NjZG
MTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2NkQxMUZFMkIzMjAwNDUyM0Y4IC8q
IEpTQWNjZXNzaWJpbGl0eS5jcHAgKi87IH07CisJCTI5NzQ0NjcwMTFGRTJCMzIwMDQ1MjNGOCAv
KiBKU0FjY2Vzc2liaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDI5NzQ0NjZFMTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuaCAq
LzsgfTsKKwkJMjk3NDQ2OEUxMUZFMkJFMTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjhDMTFG
RTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5jcHAgKi87IH07CisJCTI5NzQ0NjhGMTFG
RTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2OEQxMUZFMkJFMTAwNDUyM0Y4IC8qIEpTU2Ny
ZWVuUmVhZGVyLmggKi87IH07CiAJCTI5QTgxMjI2MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDI5QTgxMjA4MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcCAqLzsgfTsKIAkJMjlBODEyMjcwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vz
c2liaWxpdHlUYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyOUE4MTIwOTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVRhYmxlLmNw
cCAqLzsgfTsKIAkJMjlBODEyMjgwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlBUklB
R3JpZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
OUE4MTIwQTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCAqLzsg
fTsKQEAgLTYzMTksNiArNjMyNywxNiBAQAogCQkyNEY1NEVBQjEwMUZFOTE0MDAwQUU3NDEgLyog
QXBwbGljYXRpb25DYWNoZUhvc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXBwbGljYXRpb25DYWNoZUhvc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjU0
MkY0RDgxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjU0MkY0RDkxMTY2QzI1QTAwRTg5QTg2IC8q
IFVzZXJHZXN0dXJlSW5kaWNhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVzZXJHZXN0dXJlSW5kaWNhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5
NzQ0NjM3MTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyOTc0NDYzODExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjM5MTFGRTI1N0EwMDQ1MjNGOCAvKiBB
Y2Nlc3NpYmlsaXR5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBY2Nlc3NpYmlsaXR5Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2M0ExMUZFMjU3QTAwNDUyM0Y4
IC8qIFNjcmVlblJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTY3JlZW5SZWFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0NDYz
QjExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNjcmVlblJlYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkyOTc0NDYzQzExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBTY3JlZW5SZWFkZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyOTc0NDY2RDExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWNjZXNzaWJpbGl0eS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjZFMTFGRTJCMzIwMDQ1MjNGOCAvKiBK
U0FjY2Vzc2liaWxpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBY2Nl
c3NpYmlsaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjhDMTFGRTJC
RTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1NjcmVlblJlYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTI5NzQ0NjhEMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NjcmVlblJlYWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyOUE4MTIwODBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjlBODEyMDkwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5VGFibGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUE4MTIwQTBGQkI5QzFEMDA1MTAy
OTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMTU0MCw2ICsxMTU1OCw5IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAogCQkJCTI5QTgxMjA1MEZCQjlCNTIwMDUxMDI5MyAvKiBtYWMgKi8sCisJ
CQkJMjk3NDQ2MzcxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuY3BwICovLAorCQkJ
CTI5NzQ0NjM4MTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmggKi8sCisJCQkJMjk3
NDQ2MzkxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuaWRsICovLAogCQkJCTI5QTgx
MjBBMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwICovLAogCQkJ
CTI5QTgxMjE2MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQuaCAqLywK
IAkJCQkyOUE4MTIxMjBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2Vs
bC5jcHAgKi8sCkBAIC0xMTU4NCw2ICsxMTYwNSw5IEBACiAJCQkJMjlBODEyMTMwRkJCOUMxRDAw
NTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZVJvdy5oICovLAogCQkJCTI5QTgxMjE5MEZCQjlD
MUQwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hlLmNwcCAqLywKIAkJCQkyOUE4MTIxQTBGQkI5QzFE
MDA1MTAyOTMgLyogQVhPYmplY3RDYWNoZS5oICovLAorCQkJCTI5NzQ0NjNBMTFGRTI1N0EwMDQ1
MjNGOCAvKiBTY3JlZW5SZWFkZXIuY3BwICovLAorCQkJCTI5NzQ0NjNCMTFGRTI1N0EwMDQ1MjNG
OCAvKiBTY3JlZW5SZWFkZXIuaCAqLywKKwkJCQkyOTc0NDYzQzExRkUyNTdBMDA0NTIzRjggLyog
U2NyZWVuUmVhZGVyLmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gYWNjZXNzaWJpbGl0eTsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNDY1Myw2ICsxNDY3Nyw4IEBACiAJCUE4M0I3
OTEwMENDQjAwMUIwMDBCMDgyNSAvKiBDb3JlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQkyOTc0NDY2RDExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3Np
YmlsaXR5LmNwcCAqLywKKwkJCQkyOTc0NDY2RTExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3Np
YmlsaXR5LmggKi8sCiAJCQkJNjVERjMxRDgwOUQxQzEyMjAwMEJFMzI1IC8qIEpTQXR0ci5jcHAg
Ki8sCiAJCQkJNjVERjMxRDkwOUQxQzEyMzAwMEJFMzI1IC8qIEpTQXR0ci5oICovLAogCQkJCTkz
RjlCNzlFMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5jcHAgKi8sCkBAIC0xNDcw
NSw2ICsxNDczMSw4IEBACiAJCQkJNjVERjMxRUMwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUHJvY2Vz
c2luZ0luc3RydWN0aW9uLmggKi8sCiAJCQkJRTRCNDIzODUwQ0JGQjczQzAwQUYyRUNFIC8qIEpT
UHJvZ3Jlc3NFdmVudC5jcHAgKi8sCiAJCQkJRTRCNDIzODYwQ0JGQjczQzAwQUYyRUNFIC8qIEpT
UHJvZ3Jlc3NFdmVudC5oICovLAorCQkJCTI5NzQ0NjhDMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1Nj
cmVlblJlYWRlci5jcHAgKi8sCisJCQkJMjk3NDQ2OEQxMUZFMkJFMTAwNDUyM0Y4IC8qIEpTU2Ny
ZWVuUmVhZGVyLmggKi8sCiAJCQkJNjVERjMxRUYwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTVGV4dC5j
cHAgKi8sCiAJCQkJNjVERjMxRjAwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTVGV4dC5oICovLAogCQkJ
KTsKQEAgLTE5ODg1LDYgKzE5OTEzLDEwIEBACiAJCQkJQzU3MkVFMEUxMjAxQzczNjAwN0Q4Rjgy
IC8qIElEQkluZGV4QmFja2VuZEltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NzJFRTBGMTIw
MUM3MzYwMDdEOEY4MiAvKiBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCUM1NzJFRTFGMTIwMUM5QkMwMDdEOEY4MiAvKiBKU0lEQkluZGV4LmggaW4gSGVhZGVy
cyAqLywKKwkJCQkyOTc0NDYzRTExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMjk3NDQ2NDExMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjk3NDQ2NzAxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNj
ZXNzaWJpbGl0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjk3NDQ2OEYxMUZFMkJFMTAwNDUyM0Y4
IC8qIEpTU2NyZWVuUmVhZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIyMjg2LDYgKzIyMzE4LDEw
IEBACiAJCQkJQzU3MkVFMEExMjAxQzczNjAwN0Q4RjgyIC8qIElEQkluZGV4LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUM1NzJFRTBEMTIwMUM3MzYwMDdEOEY4MiAvKiBJREJJbmRleEJhY2tlbmRJ
bXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1NzJFRTFFMTIwMUM5QkMwMDdEOEY4MiAvKiBK
U0lEQkluZGV4LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI5NzQ0NjNEMTFGRTI1N0EwMDQ1MjNG
OCAvKiBBY2Nlc3NpYmlsaXR5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI5NzQ0NjQwMTFGRTI1
N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjk3NDQ2
NkYxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkyOTc0NDY4RTExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgJKHJldmlz
aW9uIDY0MzcxKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMTE5LDYgKzExOSw4IEBAIHB1YmxpYzoKICAgICAgICAgQVhSb3dDb3Vu
dENoYW5nZWQsCiAgICAgICAgIEFYUm93Q29sbGFwc2VkLAogICAgICAgICBBWFJvd0V4cGFuZGVk
LAorICAgICAgICBBWFNjcmVlbkNoYW5nZWQsCisgICAgICAgIEFYRWxlbWVudHNDaGFuZ2VkCiAg
ICAgfTsKIAogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlm
aWNhdGlvbiwgYm9vbCBwb3N0VG9FbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNs
eSk7CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuY3BwCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVy
IHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVz
IG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWNj
ZXNzaWJpbGl0eS5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkFj
Y2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlNjcmVl
blJlYWRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0FjY2Vzc2liaWxpdHk6OkFjY2Vz
c2liaWxpdHkoRnJhbWUqIGZyYW1lKQorICAgIDogbV9mcmFtZShmcmFtZSkgCit7Cit9CisKK0Fj
Y2Vzc2liaWxpdHk6On5BY2Nlc3NpYmlsaXR5KCkKK3sKKyAgICBkaXNjb25uZWN0RnJhbWUoKTsK
K30KKwordm9pZCBBY2Nlc3NpYmlsaXR5OjpkaXNjb25uZWN0RnJhbWUoKQoreworICAgIGlmICht
X3NjcmVlblJlYWRlcikgeworICAgICAgICBtX3NjcmVlblJlYWRlci0+ZGlzY29ubmVjdEZyYW1l
KCk7CisgICAgICAgIG1fc2NyZWVuUmVhZGVyID0gMDsKKyAgICB9CisgICAgbV9mcmFtZSA9IDA7
Cit9CisgICAgCit2b2lkIEFjY2Vzc2liaWxpdHk6OnNjcmVlbkNoYW5nZWQoKQoreworICAgIGlm
ICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIERvY3VtZW50KiBkb2MgPSBt
X2ZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jKQorICAgICAgICByZXR1cm47CisgICAg
CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdCA9IGRvYy0+YXhPYmplY3RDYWNoZSgpLT5n
ZXRPckNyZWF0ZShkb2MtPnJlbmRlcmVyKCkpOworICAgIGRvYy0+YXhPYmplY3RDYWNoZSgpLT5w
b3N0Tm90aWZpY2F0aW9uKHJvb3QsIGRvYywgQVhPYmplY3RDYWNoZTo6QVhTY3JlZW5DaGFuZ2Vk
LCBmYWxzZSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eTo6ZWxlbWVudHNDaGFuZ2VkKCkKK3sK
KyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBEb2N1bWVudCog
ZG9jID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvYykKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3QgPSBkb2MtPmF4T2JqZWN0Q2Fj
aGUoKS0+Z2V0T3JDcmVhdGUoZG9jLT5yZW5kZXJlcigpKTsKKyAgICBkb2MtPmF4T2JqZWN0Q2Fj
aGUoKS0+cG9zdE5vdGlmaWNhdGlvbihyb290LCBkb2MsIEFYT2JqZWN0Q2FjaGU6OkFYRWxlbWVu
dHNDaGFuZ2VkLCBmYWxzZSk7Cit9CisgICAgCitTY3JlZW5SZWFkZXIqIEFjY2Vzc2liaWxpdHk6
OnNjcmVlblJlYWRlcigpIGNvbnN0Cit7CisgICAgaWYgKCFtX3NjcmVlblJlYWRlcikKKyAgICAg
ICAgbV9zY3JlZW5SZWFkZXIgPSBTY3JlZW5SZWFkZXI6OmNyZWF0ZShtX2ZyYW1lKTsKKyAgICAK
KyAgICByZXR1cm4gbV9zY3JlZW5SZWFkZXIuZ2V0KCk7Cit9CisgICAgCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuaAkocmV2
aXNpb24gMCkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmgJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQWNjZXNzaWJpbGl0eV9oCisjZGVmaW5l
IEFjY2Vzc2liaWxpdHlfaAorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworICAgIAorY2xhc3MgRnJhbWU7CitjbGFzcyBTY3JlZW5SZWFkZXI7CisgICAg
CitjbGFzcyBBY2Nlc3NpYmlsaXR5IDogcHVibGljIFJlZkNvdW50ZWQ8QWNjZXNzaWJpbGl0eT4g
eworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHk+IGNyZWF0ZShG
cmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5KGZyYW1lKSk7
IH0KKyAgICB+QWNjZXNzaWJpbGl0eSgpOworICAgIAorICAgIFNjcmVlblJlYWRlciogc2NyZWVu
UmVhZGVyKCkgY29uc3Q7CisgICAgdm9pZCBzY3JlZW5DaGFuZ2VkKCk7CisgICAgdm9pZCBlbGVt
ZW50c0NoYW5nZWQoKTsKKyAgICAKKyAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpOworICAgIAor
cHJpdmF0ZToKKyAgICBBY2Nlc3NpYmlsaXR5KEZyYW1lKik7CisgICAgRnJhbWUqIG1fZnJhbWU7
CisgICAgbXV0YWJsZSBSZWZQdHI8U2NyZWVuUmVhZGVyPiBtX3NjcmVlblJlYWRlcjsKK307Cisg
ICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBBY2Nlc3NpYmlsaXR5X2gK
SW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5pZGwJKHJldmlzaW9uIDAp
CisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5pZGwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhl
IG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YK
KyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisg
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK21vZHVsZSB3aW5kb3cgeworCisgICAgaW50ZXJmYWNlIFtPbWl0
Q29uc3RydWN0b3JdIEFjY2Vzc2liaWxpdHkgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
U2NyZWVuUmVhZGVyIHNjcmVlblJlYWRlcjsKKworICAgICAgICB2b2lkIHNjcmVlbkNoYW5nZWQo
KTsKKyAgICAgICAgdm9pZCBlbGVtZW50c0NoYW5nZWQoKTsKKworICAgIH07Cit9CkluZGV4OiBX
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgJKHJldmlzaW9uIDY0
MzcxKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAkod29y
a2luZyBjb3B5KQpAQCAtNDYsNiArNDYsMTIgQEAKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlci5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUMpCisjZGVmaW5lIFNVUFBP
UlRTX0pTQUNDRVNTSUJJTElUWSAxCisjZWxzZQorI2RlZmluZSBTVVBQT1JUU19KU0FDQ0VTU0lC
SUxJVFkgMAorI2VuZGlmCisKIHR5cGVkZWYgc3RydWN0IF9OU1JhbmdlIE5TUmFuZ2U7CiAKICNp
ZmRlZiBfX09CSkNfXwpAQCAtNTQ4LDYgKzU1NCwxNiBAQCBwdWJsaWM6CiAjZW5kaWYKICNlbmRp
ZgogCisjaWYgU1VQUE9SVFNfSlNBQ0NFU1NJQklMSVRZCisgICAgYm9vbCBpc1NjcmVlblJlYWRl
clJ1bm5pbmcoKSBjb25zdDsKKyAgICBFbGVtZW50KiBzY3JlZW5SZWFkZXJGb2N1c2VkRWxlbWVu
dCgpIGNvbnN0OworICAgIFN0cmluZyBzY3JlZW5SZWFkZXJWZXJzaW9uKCkgY29uc3Q7CisjZWxz
ZQorICAgIGJvb2wgaXNTY3JlZW5SZWFkZXJSdW5uaW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICBFbGVtZW50KiBzY3JlZW5SZWFkZXJGb2N1c2VkRWxlbWVudCgpIGNvbnN0IHsgcmV0
dXJuIDA7IH0KKyAgICBTdHJpbmcgc2NyZWVuUmVhZGVyVmVyc2lvbigpIGNvbnN0IHsgcmV0dXJu
IG51bGxBdG9tOyB9CisjZW5kaWYKKyAgICAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAgICAg
Ly8gYSBwbGF0Zm9ybS1zcGVjaWZpYyBtZXRob2QgZm9yIGRldGVybWluaW5nIGlmIGFuIGF0dGFj
aG1lbnQgaXMgaWdub3JlZAogICAgIGJvb2wgYWNjZXNzaWJpbGl0eUlnbm9yZUF0dGFjaG1lbnQo
KSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuY3BwCShyZXZp
c2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5jcHAJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJT
Y3JlZW5SZWFkZXIuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJF
bGVtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitT
Y3JlZW5SZWFkZXI6OlNjcmVlblJlYWRlcihGcmFtZSogZnJhbWUpCisgICAgOiBtX2ZyYW1lKGZy
YW1lKQoreworfQorCitTY3JlZW5SZWFkZXI6On5TY3JlZW5SZWFkZXIoKQoreworICAgIGRpc2Nv
bm5lY3RGcmFtZSgpOworfQorICAgIAordm9pZCBTY3JlZW5SZWFkZXI6OmRpc2Nvbm5lY3RGcmFt
ZSgpCit7CisgICAgbV9mcmFtZSA9IDA7Cit9CisKK2Jvb2wgU2NyZWVuUmVhZGVyOjphY3RpdmUo
KSBjb25zdAoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IAorICAgIERvY3VtZW50KiBkb2MgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9j
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCog
b2JqID0gZG9jLT5heE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKGRvYy0+cmVuZGVyZXIoKSk7
CisgICAgcmV0dXJuIG9iai0+aXNTY3JlZW5SZWFkZXJSdW5uaW5nKCk7Cit9CisgICAgCitFbGVt
ZW50KiBTY3JlZW5SZWFkZXI6OmFjdGl2ZUVsZW1lbnQoKSBjb25zdAoreworICAgIERvY3VtZW50
KiBkb2MgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZG9jLT5heE9i
amVjdENhY2hlKCktPmdldE9yQ3JlYXRlKGRvYy0+cmVuZGVyZXIoKSk7CisgICAgcmV0dXJuIG9i
ai0+c2NyZWVuUmVhZGVyRm9jdXNlZEVsZW1lbnQoKTsgICAgCit9CisgICAgCitTdHJpbmcgU2Ny
ZWVuUmVhZGVyOjp2ZXJzaW9uKCkgY29uc3QKK3sKKyAgICBEb2N1bWVudCogZG9jID0gbV9mcmFt
ZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvYykKKyAgICAgICAgcmV0dXJuIG51bGxBdG9tOwor
ICAgIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGRvYy0+YXhPYmplY3RDYWNoZSgp
LT5nZXRPckNyZWF0ZShkb2MtPnJlbmRlcmVyKCkpOworICAgIHJldHVybiBvYmotPnNjcmVlblJl
YWRlclZlcnNpb24oKTsKK30KKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmU7CkluZGV4OiBX
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENv
bXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFNjcmVlblJlYWRlcl9oCisjZGVmaW5lIFNjcmVlblJlYWRlcl9oCisKKyNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBGcmFtZTsKK2Ns
YXNzIFN0cmluZzsKKyAgICAKK2NsYXNzIFNjcmVlblJlYWRlciA6IHB1YmxpYyBSZWZDb3VudGVk
PFNjcmVlblJlYWRlcj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNjcmVlblJl
YWRlcj4gY3JlYXRlKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNjcmVlblJl
YWRlcihmcmFtZSkpOyB9CisgICAgflNjcmVlblJlYWRlcigpOworICAgIAorICAgIFN0cmluZyB2
ZXJzaW9uKCkgY29uc3Q7CisgICAgYm9vbCBhY3RpdmUoKSBjb25zdDsKKyAgICBFbGVtZW50KiBh
Y3RpdmVFbGVtZW50KCkgY29uc3Q7CisgICAgCisgICAgdm9pZCBkaXNjb25uZWN0RnJhbWUoKTsK
K3ByaXZhdGU6CisgICAgU2NyZWVuUmVhZGVyKEZyYW1lKik7CisgICAgRnJhbWUqIG1fZnJhbWU7
Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU2NyZWVuUmVh
ZGVyX2gKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5pZGwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIg
dGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMg
b2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB3aW5kb3cgeworCisgICAgaW50ZXJmYWNlICBb
T21pdENvbnN0cnVjdG9yXSBTY3JlZW5SZWFkZXIgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHZlcnNpb247CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFu
IGFjdGl2ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgYWN0aXZlRWxlbWVu
dDsKKyAgICB9OworCit9CisKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmpl
Y3RDYWNoZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW0JKHJldmlzaW9uIDY0MzcxKQorKysgV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Niw2ICs3Niwx
MiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhCiAgICAgICAgIGNh
c2UgQVhMYXlvdXRDb21wbGV0ZToKICAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9ICJBWExh
eW91dENvbXBsZXRlIjsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYU2NyZWVu
Q2hhbmdlZDoKKyAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9ICJBWFNjcmVlbkNoYW5nZWQi
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhFbGVtZW50c0NoYW5nZWQ6Cisg
ICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAiQVhFbGVtZW50c0NoYW5nZWQiOworICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhMb2FkQ29tcGxldGU6CiAgICAgICAgICAgICBt
YWNOb3RpZmljYXRpb24gPSAiQVhMb2FkQ29tcGxldGUiOwogICAgICAgICAgICAgYnJlYWs7Cklu
ZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0TWFjLm1tCShyZXZpc2lvbiA2NDM3MSkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
QWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjksOSArMjksMjYg
QEAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyLmgiCisjaW1wb3J0ICJBWE9iamVjdENhY2hlLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1NjcmVlblJlYWRlclJ1bm5pbmco
KSBjb25zdAoreworICAgIC8vIElmIHRoZSBlbmhhbmNlZCB1c2VyIGludGVyZmFjZSBpcyBlbmFi
bGVkLCBpdCBtZWFucyBWb2ljZU92ZXIgaXMgcnVubmluZy4KKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQoKTsKK30KKyAg
ICAKK0VsZW1lbnQqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcmVlblJlYWRlckZvY3VzZWRFbGVt
ZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKyAgICAKK1N0cmluZyBBY2Nlc3NpYmls
aXR5T2JqZWN0OjpzY3JlZW5SZWFkZXJWZXJzaW9uKCkgY29uc3QKK3sgCisgICAgcmV0dXJuIG51
bGxBdG9tOworfQorICAgIAogYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5
SWdub3JlQXR0YWNobWVudCgpIGNvbnN0CiB7CiAgICAgTlNWaWV3KiBhdHRhY2htZW50ID0gW3dy
YXBwZXIoKSBhdHRhY2htZW50Vmlld107CkluZGV4OiBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAkocmV2aXNpb24gNjQz
NzEpCisrKyBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMs
NiArMjMsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgog
CisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1
ZGUgIkNvb2tpZUphci5oIgogI2luY2x1ZGUgIkRPTU1pbWVUeXBlQXJyYXkuaCIKQEAgLTY2LDYg
KzY3LDEwIEBAIHZvaWQgTmF2aWdhdG9yOjpkaXNjb25uZWN0RnJhbWUoKQogICAgICAgICBtX2dl
b2xvY2F0aW9uLT5kaXNjb25uZWN0RnJhbWUoKTsKICAgICAgICAgbV9nZW9sb2NhdGlvbiA9IDA7
CiAgICAgfQorICAgIGlmIChtX2FjY2Vzc2liaWxpdHkpIHsKKyAgICAgICAgbV9hY2Nlc3NpYmls
aXR5LT5kaXNjb25uZWN0RnJhbWUoKTsKKyAgICAgICAgbV9hY2Nlc3NpYmlsaXR5ID0gMDsKKyAg
ICB9CiAgICAgbV9mcmFtZSA9IDA7CiB9CiAKQEAgLTEyNyw2ICsxMzIsMTMgQEAgRE9NTWltZVR5
cGVBcnJheSogTmF2aWdhdG9yOjptaW1lVHlwZXMoKQogICAgICAgICBtX21pbWVUeXBlcyA9IERP
TU1pbWVUeXBlQXJyYXk6OmNyZWF0ZShtX2ZyYW1lKTsKICAgICByZXR1cm4gbV9taW1lVHlwZXMu
Z2V0KCk7CiB9CisgICAgCitBY2Nlc3NpYmlsaXR5KiBOYXZpZ2F0b3I6OmFjY2Vzc2liaWxpdHko
KSBjb25zdAoreworICAgIGlmICghbV9hY2Nlc3NpYmlsaXR5KQorICAgICAgICBtX2FjY2Vzc2li
aWxpdHkgPSBBY2Nlc3NpYmlsaXR5OjpjcmVhdGUobV9mcmFtZSk7CisgICAgcmV0dXJuIG1fYWNj
ZXNzaWJpbGl0eS5nZXQoKTsKK30KIAogYm9vbCBOYXZpZ2F0b3I6OmNvb2tpZUVuYWJsZWQoKSBj
b25zdAogewpJbmRleDogV2ViQ29yZS9wYWdlL05hdmlnYXRvci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAkocmV2aXNpb24gNjQzNzEpCisrKyBXZWJDb3JlL3BhZ2Uv
TmF2aWdhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBBY2Nlc3NpYmlsaXR5OwogY2xhc3MgRE9NTWltZVR5cGVBcnJh
eTsKIGNsYXNzIERPTVBsdWdpbkFycmF5OwogY2xhc3MgRnJhbWU7CkBAIC00Niw2ICs0Nyw3IEBA
IHB1YmxpYzoKICAgICBTdHJpbmcgbGFuZ3VhZ2UoKSBjb25zdDsKICAgICBET01QbHVnaW5BcnJh
eSogcGx1Z2lucygpIGNvbnN0OwogICAgIERPTU1pbWVUeXBlQXJyYXkqIG1pbWVUeXBlcygpIGNv
bnN0OworICAgIEFjY2Vzc2liaWxpdHkqIGFjY2Vzc2liaWxpdHkoKSBjb25zdDsKICAgICBib29s
IGNvb2tpZUVuYWJsZWQoKSBjb25zdDsKICAgICBib29sIGphdmFFbmFibGVkKCkgY29uc3Q7CiAK
QEAgLTY2LDYgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFJlZlB0cjxET01QbHVnaW5B
cnJheT4gbV9wbHVnaW5zOwogICAgIG11dGFibGUgUmVmUHRyPERPTU1pbWVUeXBlQXJyYXk+IG1f
bWltZVR5cGVzOwogICAgIG11dGFibGUgUmVmUHRyPEdlb2xvY2F0aW9uPiBtX2dlb2xvY2F0aW9u
OworICAgIG11dGFibGUgUmVmUHRyPEFjY2Vzc2liaWxpdHk+IG1fYWNjZXNzaWJpbGl0eTsKIH07
CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCShyZXZpc2lvbiA2NDM3MSkKKysrIFdlYkNvcmUvcGFn
ZS9OYXZpZ2F0b3IuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBAIG1vZHVsZSB3
aW5kb3cgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBsYXRmb3JtOwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NUGx1Z2luQXJyYXkgcGx1Z2luczsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTU1pbWVUeXBlQXJyYXkgbWltZVR5cGVzOworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgQWNjZXNzaWJpbGl0eSBhY2Nlc3NpYmlsaXR5OwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHByb2R1Y3Q7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgcHJvZHVjdFN1YjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyB2ZW5kb3I7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NDM3MSkKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA3
LTI2ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQVg6IFN1cHBvcnQgbWV0aG9kcyBm
b3Igd2ViIGFwcHMgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgbmF0aXZlIGFjY2Vzc2liaWxpdHkgQVBJ
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDMwMDUK
KworICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHkt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9qcy1hY2Nlc3NpYmlsaXR5Lmh0bWw6IEFkZGVkLgorCiAyMDEwLTA3LTMwICBEcmV3IFdpbHNv
biAgPGF0d2lsc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZXhw
ZWN0YXRpb25zIGZpeC4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2pzLWFjY2Vzc2liaWxpdHktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHktZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvanMtYWNjZXNzaWJpbGl0eS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTMgQEAKK1RoaXMgdGVzdHMgdGhlIGphdmFzY3JpcHQgaW50ZXJmYWNlIHRvIGFjY2Vzc2liaWxp
dHkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYXguc2NyZWVuUmVhZGVy
LmFjdGl2ZSBpcyBmYWxzZQorUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgbmFtZSBpcyAn
QVhTY3JlZW5DaGFuZ2VkJworUEFTUyBuYW1lIGlzICdBWEVsZW1lbnRzQ2hhbmdlZCcKKwpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0
eS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2pzLWFjY2Vzc2liaWxpdHkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHkuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw2OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdD4K
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJUaGlz
IHRlc3RzIHRoZSBqYXZhc2NyaXB0IGludGVyZmFjZSB0byBhY2Nlc3NpYmlsaXR5Iik7CisKKyAg
ICB2YXIgYm9keSA9IDA7CisgICAgdmFyIG5hbWUgPSAwOworICAgIGZ1bmN0aW9uIG5vdGlmeUNh
bGxiYWNrKG5vdGlmaWNhdGlvbikgeyAgCisgICAgICAgIG5hbWUgPSBub3RpZmljYXRpb247Cisg
ICAgICAgIGlmIChuYW1lID09ICJBWFNjcmVlbkNoYW5nZWQiKSB7CisgICAgICAgICAgICBzaG91
bGRCZSgibmFtZSIsICInQVhTY3JlZW5DaGFuZ2VkJyIpOworICAgICAgICB9CisgICAgICAgIGVs
c2UgaWYgKG5hbWUgPT0gIkFYRWxlbWVudHNDaGFuZ2VkIikgeworICAgICAgICAgICAgc2hvdWxk
QmUoIm5hbWUiLCAiJ0FYRWxlbWVudHNDaGFuZ2VkJyIpOworICAgICAgICAgICAgYm9keS5yZW1v
dmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOworICAgICAgICAgICAgd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorCis8
c2NyaXB0PgorICAgIHZhciBheCA9IHdpbmRvdy5uYXZpZ2F0b3IuYWNjZXNzaWJpbGl0eTsKKwor
ICAgIC8vIHNjcmVlbiByZWFkZXIgc2hvdWxkIG5vdCBiZSBydW5uaW5nIHdpdGhpbiBsYXlvdXQg
dGVzdHMuCisgICAgc2hvdWxkQmUoImF4LnNjcmVlblJlYWRlci5hY3RpdmUiLCAiZmFsc2UiKTsK
KworICAgIC8vIHNob3VsZCBub3QgY2F1c2UgYW4gZXJyb3IuCisgICAgdmFyIHZlcnNpb24gPSBh
eC5zY3JlZW5SZWFkZXIudmVyc2lvbjsKKworICAgIC8vIHNob3VsZCBub3QgY2F1c2UgYW4gZXJy
b3IKKyAgICB2YXIgYWN0aXZlRWxlbWVudCA9IGF4LnNjcmVlblJlYWRlci5hY3RpdmVFbGVtZW50
OworCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICB3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJib2R5IikuZm9jdXMoKTsKKworICAgICAgICBib2R5ID0g
d2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OworCisgICAgICAg
IHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IGJvZHkuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90
aWZ5Q2FsbGJhY2spOworICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1
ZSIpOworCisgICAgICAgIC8vIHNob3VsZCBjYXVzZSBhIEFYU2NyZWVuQ2hhbmdlZCB0byBiZSBz
ZW50IG91dC4KKyAgICAgICAgYXguc2NyZWVuQ2hhbmdlZCgpOworCisgICAgICAgIC8vIHNob3Vs
ZCBjYXVzZSBhIEFYRWxlbWVudHNDaGFuZ2VkIHRvIGJlIHNlbnQgb3V0LgorICAgICAgICBheC5l
bGVtZW50c0NoYW5nZWQoKTsKKyAgICB9CisKKyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="52623"
          type_id="1"
          status="-"
          setter="cfleizach"
    />
    <flag name="commit-queue"
          id="52624"
          type_id="3"
          status="-"
          setter="cfleizach"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67731</attachid>
            <date>2010-09-15 15:35:11 -0700</date>
            <delta_ts>2010-09-15 16:06:00 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>43228</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
RGVyaXZlZFNvdXJjZXMuY3BwCShyZXZpc2lvbiA2NzU2OCkKKysrIFdlYkNvcmUvRGVyaXZlZFNv
dXJjZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSFRN
TEVsZW1lbnRGYWN0b3J5LmNwcCIKICNpbmNsdWRlICJIVE1MRW50aXR5VGFibGUuY3BwIgogI2lu
Y2x1ZGUgIkpTQWJzdHJhY3RXb3JrZXIuY3BwIgorI2luY2x1ZGUgIkpTQWNjZXNzaWJpbGl0eS5j
cHAiCiAjaW5jbHVkZSAiSlNBdHRyLmNwcCIKICNpbmNsdWRlICJKU0JhckluZm8uY3BwIgogI2lu
Y2x1ZGUgIkpTQmVmb3JlTG9hZEV2ZW50LmNwcCIKQEAgLTI0NSw2ICsyNDYsNyBAQAogI2luY2x1
ZGUgIkpTUmVjdC5jcHAiCiAjaW5jbHVkZSAiSlNSR0JDb2xvci5jcHAiCiAjaW5jbHVkZSAiSlNT
Y3JlZW4uY3BwIgorI2luY2x1ZGUgIkpTU2NyZWVuUmVhZGVyLmNwcCIKICNpbmNsdWRlICJKU1Nj
cmlwdFByb2ZpbGUuY3BwIgogI2luY2x1ZGUgIkpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwIgogI2lu
Y2x1ZGUgIkpTU2hhcmVkV29ya2VyLmNwcCIKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcmkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnByaQkocmV2aXNpb24gNjc1NjgpCisrKyBXZWJD
b3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNvcHkpCkBAIC02OSw2ICs2OSw4IEBACiB9CiAKIElE
TF9CSU5ESU5HUyArPSBcCisgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmlkbCBcCisg
ICAgYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsIFwKICAgICBjc3MvQ291bnRlci5pZGwg
XAogICAgIGNzcy9DU1NDaGFyc2V0UnVsZS5pZGwgXAogICAgIGNzcy9DU1NGb250RmFjZVJ1bGUu
aWRsIFwKSW5kZXg6IFdlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawkocmV2aXNpb24g
Njc1NjgpCisrKyBXZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCSh3b3JraW5n
IGNvcHkpCkBAIC0yNjMsNiArMjYzLDIxIEBACiAjIGFib3ZlIHJ1bGVzLiAgU3BlY2lmeWluZyB0
aGlzIGV4cGxpY2l0bHkgbWFrZXMgLWoyIHdvcmsuCiAkKHBhdHN1YnN0ICUuaCwlLmNwcCwkKEdF
TikpOiAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzLyUuY3BwIDogJChpbnRlcm1lZGlhdGVzKS9i
aW5kaW5ncy8lLmgKIAorIyBBY2Nlc3NpYmlsaXR5CitHRU4gOj0gXAorICAgICQoaW50ZXJtZWRp
YXRlcykvYmluZGluZ3MvVjhBY2Nlc3NpYmlsaXR5LmgKKyAgICAkKGludGVybWVkaWF0ZXMpL2Jp
bmRpbmdzL1Y4U2NyZWVuUmVhZGVyLmgKKworJChHRU4pOiBQUklWQVRFX1BBVEggOj0gJChMT0NB
TF9QQVRIKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gU09VUkNFX1JPT1Q9JChQUklW
QVRFX1BBVEgpIHBlcmwgLUkkKFBSSVZBVEVfUEFUSCkvYmluZGluZ3Mvc2NyaXB0cyAkKFBSSVZB
VEVfUEFUSCkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWRlZmluZXMg
IiQoRkVBVFVSRV9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWdlbmVyYXRvciBWOCAt
LWluY2x1ZGUgZG9tIC0taW5jbHVkZSBodG1sIC0tb3V0cHV0ZGlyICQoZGlyICRAKSAkPAorJChH
RU4pOiAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4JS5oIDogJChMT0NBTF9QQVRIKS9hY2Nl
c3NpYmlsaXR5LyUuaWRsICQoanNfYmluZGluZ19zY3JpcHRzKQorCSQodHJhbnNmb3JtLWdlbmVy
YXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIyBXZSBh
bHNvIG5lZWQgdGhlIC5jcHAgZmlsZXMsIHdoaWNoIGFyZSBnZW5lcmF0ZWQgYXMgc2lkZSBlZmZl
Y3RzIG9mIHRoZQorIyBhYm92ZSBydWxlcy4gIFNwZWNpZnlpbmcgdGhpcyBleHBsaWNpdGx5IG1h
a2VzIC1qMiB3b3JrLgorJChwYXRzdWJzdCAlLmgsJS5jcHAsJChHRU4pKTogJChpbnRlcm1lZGlh
dGVzKS9iaW5kaW5ncy8lLmNwcCA6ICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvJS5oCisKICMg
UGFnZQogR0VOIDo9IFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4QmFySW5mby5o
IFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnBybwkocmV2aXNpb24gNjc1NjgpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTYsNiArMjk2LDcgQEAKIH0KIAogU09VUkNFUyArPSBcCisgICAgYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmNwcCBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5SW1hZ2VNYXBMaW5rLmNwcCBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVk
aWFDb250cm9scy5jcHAgXCAgICAKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51
TGlzdC5jcHAgXApAQCAtMzE4LDYgKzMxOSw3IEBACiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuY3BwIFwgICAgCiAgICAgYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwIFwgICAgCiAgICAgYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcCBcCisgICAgYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuY3BwIFwKICAgICBi
aW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmNwcAogCiB2OCB7CkluZGV4OiBXZWJD
b3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24g
Njc1NzApCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0
IEBACisyMDEwLTA5LTE1ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQVg6IFN1cHBv
cnQgbWV0aG9kcyBmb3Igd2ViIGFwcHMgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgbmF0aXZlIGFjY2Vz
c2liaWxpdHkgQVBJcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDMwMDUKKworICAgICAgICBUaGlzIGltcGxlbWVudHMgcGFydCBvZiB0aGUgVzNDIFBy
b3Bvc2FsOgorICAgICAgICAgICAgVXNlciBJbnRlcmZhY2UgSW5kZXBlbmRlbmNlIGZvciBBY2Nl
c3NpYmxlIFJpY2ggSW50ZXJuZXQgQXBwbGljYXRpb25zCisgICAgICAgIFNwZWNpZmljYWxseSB0
aGUgIkFzc2lzdGl2ZSBUZWNobm9sb2d5IElkZW50aWZpY2F0aW9uIGFuZCBOb3RpZmljYXRpb24i
IHJlbGF0aW5nIHRvIAorICAgICAgICBBY2Nlc3NpYmlsaXR5IGFuZCBTY3JlZW5SZWFkZXIuCisK
KyAgICAgICAgVGVzdDogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0
eS5odG1sCisKKyAgICAgICAgKiBBbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tazoKKyAgICAg
ICAgKiBBbmRyb2lkLmpzY2JpbmRpbmdzLm1rOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNw
cDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxl
LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAg
ICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjppc1NjcmVlblJlYWRlclJ1bm5pbmcpOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6c2NyZWVuUmVhZGVyVmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjpzY3JlZW5SZWFkZXJOYW1lKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OmlzU2NyZWVuUmVhZGVyUnVubmluZyk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpzY3JlZW5SZWFkZXJOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnNjcmVlblJlYWRlclZlcnNpb24pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0Fj
Y2Vzc2liaWxpdHlPYmplY3RNYWMubW06CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9HTlVt
YWtlZmlsZS5hbToKKyAgICAgICAgKiBwYWdlL05hdmlnYXRvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpOYXZpZ2F0b3I6OmRpc2Nvbm5lY3RGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpOYXZp
Z2F0b3I6OmFjY2Vzc2liaWxpdHkpOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmg6CisgICAg
ICAgICogcGFnZS9OYXZpZ2F0b3IuaWRsOgorCiAyMDEwLTA5LTE1ICBKdWxpZW4gQ2hhZmZyYWl4
ICA8amNoYWZmcmFpeEBjb2RlYXVyb3JhLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRy
ZWFzIEtsaW5nLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZp
c2lvbiA2NzU2OCkKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdv
cmtpbmcgY29weSkKQEAgLTYxNyw2ICs2MTcsNjIgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJ
CTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0FjY2Vzc2liaWxpdHkuY3BwIg0KKwkJCQk+DQorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxX
aW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRv
b2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1
Z19DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0K
KwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlO
YW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0ZpbGU+DQor
CQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQWNjZXNzaWJpbGl0eS5oIg0KKwkJCQk+DQorCQkJ
PC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0F0dHIuY3BwIg0KIAkJCQk+DQog
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTExNTE3LDYgKzExNTczLDYyIEBACiAJCQkJPg0K
IAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNTY3JlZW5SZWFkZXIuY3Bw
Ig0KKwkJCQk+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWd8V2lu
MzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29s
DQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFz
ZXxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJ
PFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJE
ZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJ
CQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJ
Lz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQor
CQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1
cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1
dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTU2NyZWVuUmVhZGVyLmgi
DQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdl
YktpdE91dHB1dERpcilcb2JqXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXNcSlNTaGFyZWRXb3JrZXIu
Y3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTIxNzQ1LDYgKzIxODU3
LDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGFjY2Vzc2liaWxpdHlcQWNjZXNzaWJpbGl0eS5jcHAiDQorCQkJCT4NCisgICAgICAgICAg
ICA8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5
XEFjY2Vzc2liaWxpdHkuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGFjY2Vzc2liaWxpdHlcQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCIN
CiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC0yMjgzMiw2ICsyMjk1MiwxNCBA
QAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cYWNjZXNzaWJpbGl0eVxBWE9iamVjdENhY2hlLmgiDQog
CQkJCT4NCiAJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nl
c3NpYmlsaXR5XFNjcmVlblJlYWRlci5jcHAiDQorCQkJCT4NCisgICAgICAgICAgICA8L0ZpbGU+
DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5XFNjcmVlblJl
YWRlci5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KIAkJCTxGaWx0ZXINCiAJCQkJTmFtZT0id2lu
Ig0KIAkJCQk+DQpJbmRleDogV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwJKHJldmlzaW9uIDY3NTY4KQorKysgV2ViQ29y
ZS9wYWdlL05hdmlnYXRvci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBwbGF0Zm9ybTsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVBsdWdpbkFycmF5IHBsdWdpbnM7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01NaW1lVHlwZUFycmF5IG1pbWVUeXBlczsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIEFjY2Vzc2liaWxpdHkgYWNjZXNzaWJpbGl0eTsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBwcm9kdWN0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHByb2R1Y3RTdWI7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgdmVuZG9yOwpJbmRleDogV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAJKHJldmlzaW9uIDY3NTY4KQorKysgV2ViQ29y
ZS9wYWdlL05hdmlnYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKIAorI2luY2x1ZGUgIkFj
Y2Vzc2liaWxpdHkuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDb29raWVKYXIu
aCIKICNpbmNsdWRlICJET01NaW1lVHlwZUFycmF5LmgiCkBAIC02Niw2ICs2NywxMCBAQAogICAg
ICAgICBtX2dlb2xvY2F0aW9uLT5kaXNjb25uZWN0RnJhbWUoKTsKICAgICAgICAgbV9nZW9sb2Nh
dGlvbiA9IDA7CiAgICAgfQorICAgIGlmIChtX2FjY2Vzc2liaWxpdHkpIHsKKyAgICAgICAgbV9h
Y2Nlc3NpYmlsaXR5LT5kaXNjb25uZWN0RnJhbWUoKTsKKyAgICAgICAgbV9hY2Nlc3NpYmlsaXR5
ID0gMDsKKyAgICB9CiAgICAgbV9mcmFtZSA9IDA7CiB9CiAKQEAgLTEyNyw2ICsxMzIsMTMgQEAK
ICAgICAgICAgbV9taW1lVHlwZXMgPSBET01NaW1lVHlwZUFycmF5OjpjcmVhdGUobV9mcmFtZSk7
CiAgICAgcmV0dXJuIG1fbWltZVR5cGVzLmdldCgpOwogfQorICAgIAorQWNjZXNzaWJpbGl0eSog
TmF2aWdhdG9yOjphY2Nlc3NpYmlsaXR5KCkgY29uc3QKK3sKKyAgICBpZiAoIW1fYWNjZXNzaWJp
bGl0eSkKKyAgICAgICAgbV9hY2Nlc3NpYmlsaXR5ID0gQWNjZXNzaWJpbGl0eTo6Y3JlYXRlKG1f
ZnJhbWUpOworICAgIHJldHVybiBtX2FjY2Vzc2liaWxpdHkuZ2V0KCk7Cit9CiAKIGJvb2wgTmF2
aWdhdG9yOjpjb29raWVFbmFibGVkKCkgY29uc3QKIHsKSW5kZXg6IFdlYkNvcmUvcGFnZS9OYXZp
Z2F0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgJKHJldmlzaW9u
IDY3NTY4KQorKysgV2ViQ29yZS9wYWdlL05hdmlnYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OCw2ICsyOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQWNjZXNzaWJpbGl0
eTsKIGNsYXNzIERPTU1pbWVUeXBlQXJyYXk7CiBjbGFzcyBET01QbHVnaW5BcnJheTsKIGNsYXNz
IEZyYW1lOwpAQCAtNDYsNiArNDcsNyBAQAogICAgIFN0cmluZyBsYW5ndWFnZSgpIGNvbnN0Owog
ICAgIERPTVBsdWdpbkFycmF5KiBwbHVnaW5zKCkgY29uc3Q7CiAgICAgRE9NTWltZVR5cGVBcnJh
eSogbWltZVR5cGVzKCkgY29uc3Q7CisgICAgQWNjZXNzaWJpbGl0eSogYWNjZXNzaWJpbGl0eSgp
IGNvbnN0OwogICAgIGJvb2wgY29va2llRW5hYmxlZCgpIGNvbnN0OwogICAgIGJvb2wgamF2YUVu
YWJsZWQoKSBjb25zdDsKIApAQCAtNjYsNiArNjgsNyBAQAogICAgIG11dGFibGUgUmVmUHRyPERP
TVBsdWdpbkFycmF5PiBtX3BsdWdpbnM7CiAgICAgbXV0YWJsZSBSZWZQdHI8RE9NTWltZVR5cGVB
cnJheT4gbV9taW1lVHlwZXM7CiAgICAgbXV0YWJsZSBSZWZQdHI8R2VvbG9jYXRpb24+IG1fZ2Vv
bG9jYXRpb247CisgICAgbXV0YWJsZSBSZWZQdHI8QWNjZXNzaWJpbGl0eT4gbV9hY2Nlc3NpYmls
aXR5OwogfTsKIAogfQpJbmRleDogV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tawkocmV2aXNpb24gNjc1Njgp
CisrKyBXZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsJKHdvcmtpbmcgY29weSkKQEAgLTQ1
LDYgKzQ1LDcgQEAKIAkkKEpBVkFTQ1JJUFRDT1JFX1BBVEgpL3dyZWMgXAogCSQoSkFWQVNDUklQ
VENPUkVfUEFUSCkvRm9yd2FyZGluZ0hlYWRlcnMgXAogCVwKKwkkKGJhc2VfaW50ZXJtZWRpYXRl
cykvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5IFwKIAkkKGJhc2VfaW50ZXJtZWRpYXRlcykvV2ViQ29y
ZS9iaW5kaW5ncy9qcyBcCiAJJChiYXNlX2ludGVybWVkaWF0ZXMpL1dlYkNvcmUvZG9tIFwKIAkk
KGJhc2VfaW50ZXJtZWRpYXRlcykvV2ViQ29yZS9odG1sL2NhbnZhcyBcCkluZGV4OiBXZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJl
dmlzaW9uIDY3NTY4KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpA
QCAtMTAyLDYgKzEwMiw4IEBACiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9JbnNwZWN0b3JGcm9u
dGVuZC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQWJzdHJhY3RXb3JrZXIuY3BwIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQWJzdHJhY3RXb3JrZXIuaCBcCisJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0FjY2Vzc2liaWxpdHkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTQWNjZXNzaWJpbGl0eS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXJyYXlC
dWZmZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXJyYXlCdWZmZXIuaCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FycmF5QnVmZmVyVmlldy5jcHAgXApAQCAtNDcxLDYg
KzQ3Myw4IEBACiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JHQkNvbG9yLmggXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTY3JlZW4uY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTU2NyZWVuLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTY3JlZW5SZWFkZXIuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyZWVuUmVhZGVyLmggXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNTY3JpcHRQcm9maWxlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1NjcmlwdFByb2ZpbGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Njcmlw
dFByb2ZpbGVOb2RlLmNwcCBcCkBAIC01NjksNiArNTczLDggQEAKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL1hNTE5TTmFtZXMuaAogCiB3ZWJjb3JlX3NvdXJjZXMgKz0gXAorCVdlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmNwcCBcCisJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHkuaCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklB
R3JpZENlbGwuY3BwIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFH
cmlkQ2VsbC5oIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlk
LmNwcCBcCkBAIC02MTMsNiArNjE5LDggQEAKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRhYmxlUm93LmggXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBcCisJV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5jcHAgXAorCVdlYkNvcmUvYWNjZXNzaWJpbGl0
eS9TY3JlZW5SZWFkZXIuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNh
bGxiYWNrLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNr
LmggXAogCVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUuaCBcCkBAIC00NDE1
LDYgKzQ0MjMsNyBAQAogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mv
c2NyaXB0cyAtSSQoV2ViQ29yZSkvaW5zcGVjdG9yICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAkKElETF9QQVRIOiU9LS1pbmNsdWRlICIlIikgLS1vdXRw
dXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIgLS1kZWZpbmVzICJMQU5HVUFHRV9KQVZBU0NS
SVBUPTEgJChGRUFUVVJFX0RFRklORVMpIiAtLWdlbmVyYXRvciBJbnNwZWN0b3IgJDwKIAogSURM
X1BBVEggOj0gXAorICAgICQoV2ViQ29yZSkvYWNjZXNzaWJpbGl0eSBcCiAgICAgJChXZWJDb3Jl
KS9iaW5kaW5ncy9qcyBcCiAgICAgJChXZWJDb3JlKS9jc3MgXAogICAgICQoV2ViQ29yZSkvZG9t
IFwKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1h
Yy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxp
dHlPYmplY3RNYWMubW0JKHJldmlzaW9uIDY3NTY4KQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsy
OSw3IEBACiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQogCiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlci5oIgorI2ltcG9ydCAiQVhPYmplY3RDYWNoZS5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0
Q2FjaGVNYWMubW0JKHJldmlzaW9uIDY3NTY4KQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BWE9iamVjdENhY2hlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Niw2ICs3NiwxMiBAQAog
ICAgICAgICBjYXNlIEFYTGF5b3V0Q29tcGxldGU6CiAgICAgICAgICAgICBtYWNOb3RpZmljYXRp
b24gPSAiQVhMYXlvdXRDb21wbGV0ZSI7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBBWFNjcmVlbkNoYW5nZWQ6CisgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSAiQVhTY3Jl
ZW5DaGFuZ2VkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYRWxlbWVudHND
aGFuZ2VkOgorICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gIkFYRWxlbWVudHNDaGFuZ2Vk
IjsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYTG9hZENvbXBsZXRlOgogICAg
ICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gIkFYTG9hZENvbXBsZXRlIjsKICAgICAgICAgICAg
IGJyZWFrOwpAQCAtMTIzLDYgKzEyOSwyMiBAQAogewogfQogCitib29sIEFYT2JqZWN0Q2FjaGU6
OmlzU2NyZWVuUmVhZGVyUnVubmluZygpIGNvbnN0Cit7CisgICAgLy8gSWYgdGhlIGVuaGFuY2Vk
IHVzZXIgaW50ZXJmYWNlIGlzIGVuYWJsZWQsIGl0IG1lYW5zIFZvaWNlT3ZlciBpcyBydW5uaW5n
LgorICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCgp
OwogfQogCitTdHJpbmcgQVhPYmplY3RDYWNoZTo6c2NyZWVuUmVhZGVyTmFtZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG51bGxBdG9tOworfQorCitTdHJpbmcgQVhPYmplY3RDYWNoZTo6c2NyZWVu
UmVhZGVyVmVyc2lvbigpIGNvbnN0Cit7IAorICAgIHJldHVybiBudWxsQXRvbTsKK30gICAgCisK
K30KKwogI2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKSW5kZXg6IFdlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuaAkocmV2aXNpb24gNjc1NjgpCisrKyBXZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCwxMiBAQAog
Y2xhc3MgV2ViQ29yZVRleHRNYXJrZXI7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQykKKyNk
ZWZpbmUgU1VQUE9SVFNfSlNBQ0NFU1NJQklMSVRZIDEKKyNlbHNlCisjZGVmaW5lIFNVUFBPUlRT
X0pTQUNDRVNTSUJJTElUWSAwCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBIVE1MQXJlYUVsZW1lbnQ7CkBAIC0xMjAsMTEgKzEyNiwyMyBAQAogICAgICAgICBBWFJvd0Nv
dW50Q2hhbmdlZCwKICAgICAgICAgQVhSb3dDb2xsYXBzZWQsCiAgICAgICAgIEFYUm93RXhwYW5k
ZWQsCisgICAgICAgIEFYU2NyZWVuQ2hhbmdlZCwKKyAgICAgICAgQVhFbGVtZW50c0NoYW5nZWQK
ICAgICB9OwogCiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90
aWZpY2F0aW9uLCBib29sIHBvc3RUb0VsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91
c2x5KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERv
Y3VtZW50KiwgQVhOb3RpZmljYXRpb24sIGJvb2wgcG9zdFRvRWxlbWVudCwgUG9zdFR5cGUgPSBQ
b3N0QXN5bmNocm9ub3VzbHkpOwogCisjaWYgU1VQUE9SVFNfSlNBQ0NFU1NJQklMSVRZCisgICAg
Ym9vbCBpc1NjcmVlblJlYWRlclJ1bm5pbmcoKSBjb25zdDsKKyAgICBTdHJpbmcgc2NyZWVuUmVh
ZGVyVmVyc2lvbigpIGNvbnN0OworICAgIFN0cmluZyBzY3JlZW5SZWFkZXJOYW1lKCkgY29uc3Q7
CisjZWxzZQorICAgIGJvb2wgaXNTY3JlZW5SZWFkZXJSdW5uaW5nKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICBTdHJpbmcgc2NyZWVuUmVhZGVyVmVyc2lvbigpIGNvbnN0IHsgcmV0dXJu
IG51bGxBdG9tOyB9CisgICAgU3RyaW5nIHNjcmVlblJlYWRlck5hbWUoKSBjb25zdCB7IHJldHVy
biBudWxsQXRvbTsgfQorI2VuZGlmCisgICAgCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwb3N0UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKTsK
IApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24g
Njc1NjgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0JKHdvcmtp
bmcgY29weSkKQEAgLTEsNCArMSw1IEBACiB3ZWJraXRndGtfZ2RvbV9idWlsdF9zb3VyY2VzICs9
IFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NQWNjZXNzaWJpbGl0eS5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01BdHRyLmNwcCBcCiAJRGVyaXZlZFNvdXJj
ZXMvd2Via2l0L1dlYktpdERPTUF0dHJQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtp
dC9XZWJLaXRET01CYXJJbmZvLmNwcCBcCkBAIC0yMTYsNiArMjE3LDcgQEAKIAlEZXJpdmVkU291
cmNlcy93ZWJraXQvV2ViS2l0RE9NUmFuZ2VQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dl
YmtpdC9XZWJLaXRET01TY3JlZW4uY3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0
RE9NU2NyZWVuUHJpdmF0ZS5oIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NU2Ny
ZWVuUmVhZGVyLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01TdG9yYWdlLmNw
cCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTVN0b3JhZ2VQcml2YXRlLmggXAog
CURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01TdHlsZU1lZGlhLmNwcCBcCkBAIC0yNDQs
NiArMjQ2LDcgQEAKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NWFBhdGhSZXN1bHRQ
cml2YXRlLmgKIAogd2Via2l0Z3RrX2J1aWx0X2hfYXBpICs9IFwKKwlEZXJpdmVkU291cmNlcy93
ZWJraXQvV2ViS2l0RE9NQWNjZXNzaWJpbGl0eS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQv
V2ViS2l0RE9NQ1NTUnVsZS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NQ1NT
UnVsZUxpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUNTU1N0eWxlRGVj
bGFyYXRpb24uaCBcCkBAIC0zNTcsNiArMzYwLDcgQEAKIAlEZXJpdmVkU291cmNlcy93ZWJraXQv
V2ViS2l0RE9NT2JqZWN0LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01OYXZp
Z2F0b3IuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTVNjcmVlbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NU2NyZWVuUmVhZGVyLmggXAogCURlcml2ZWRT
b3VyY2VzL3dlYmtpdC9XZWJLaXRET01XZWJLaXRQb2ludC5oIFwKIAlEZXJpdmVkU291cmNlcy93
ZWJraXQvV2ViS2l0RE9NRE9NTWltZVR5cGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dl
YktpdERPTURPTU1pbWVUeXBlQXJyYXkuaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNjc1NjgpCisrKyBX
ZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDggQEAKIHsKICAg
ICAndmFyaWFibGVzJzogewogICAgICAgICAnd2ViY29yZV9iaW5kaW5nc19pZGxfZmlsZXMnOiBb
CisgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmlkbCcsCisgICAgICAg
ICAgICAnYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsJywKICAgICAgICAgICAgICdjc3Mv
Q1NTQ2hhcnNldFJ1bGUuaWRsJywKICAgICAgICAgICAgICdjc3MvQ1NTRm9udEZhY2VSdWxlLmlk
bCcsCiAgICAgICAgICAgICAnY3NzL0NTU0ltcG9ydFJ1bGUuaWRsJywKQEAgLTQ1Myw2ICs0NTUs
OCBAQAogICAgICAgICAgICAgIyBTb3VyY2UvSGVhZGVyIEZpbGVzCiAgICAgICAgICAgICAnYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgnLAorICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eS5jcHAnLAorICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5oJywK
ICAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAnLAog
ICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmgnLAogICAg
ICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAnLApA
QCAtNDk1LDYgKzQ5OSw4IEBACiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGVIZWFkZXJDb250YWluZXIuaCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwJywKICAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlUYWJsZVJvdy5oJywKKyAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L1NjcmVl
blJlYWRlci5jcHAnLAorICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmgn
LAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9t
aXVtLmNwcCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BY2Nlc3NpYmls
aXR5T2JqZWN0Q2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L2Nocm9t
aXVtL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLmgnLApJbmRleDogV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQko
cmV2aXNpb24gNjc1NjgpCisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogVlBBVEggPSBcCiAgICAgJChXZWJDb3JlKSBcCisg
ICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5IFwKICAgICAkKFdlYkNvcmUpL2JpbmRpbmdzL2dl
bmVyaWMgXAogICAgICQoV2ViQ29yZSkvYmluZGluZ3MvanMgXAogICAgICQoV2ViQ29yZSkvYmlu
ZGluZ3Mvb2JqYyBcCkBAIC01Miw2ICs1Myw3IEBACiBET01fQ0xBU1NFUyA9IFwKICAgICBBYnN0
cmFjdFZpZXcgXAogICAgIEFic3RyYWN0V29ya2VyIFwKKyAgICBBY2Nlc3NpYmlsaXR5IFwKICAg
ICBBdHRyIFwKICAgICBCYXJJbmZvIFwKICAgICBCZWZvcmVMb2FkRXZlbnQgXApAQCAtNDUzLDYg
KzQ1NSw3IEBACiAgICAgU1ZHWm9vbUFuZFBhbiBcCiAgICAgU1ZHWm9vbUV2ZW50IFwKICAgICBT
Y3JlZW4gXAorICAgIFNjcmVlblJlYWRlciBcCiAgICAgU3R5bGVNZWRpYSBcCiAgICAgU3R5bGVT
aGVldCBcCiAgICAgU3R5bGVTaGVldExpc3QgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDY3NTY4KQorKysgV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTYzMSw2ICs2MzEs
MTQgQEAKIAkJMjRGNTRFQUQxMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNEY1NEVB
QjEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQkyNTQyRjREQTExNjZDMjVBMDBFODlBODYgLyog
VXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjU0MkY0RDgxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5k
aWNhdG9yLmNwcCAqLzsgfTsKIAkJMjU0MkY0REIxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0
dXJlSW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyNTQyRjREOTExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuaCAq
LzsgfTsKKwkJMjk3NDQ2M0QxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2MzcxMUZF
MjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuY3BwICovOyB9OworCQkyOTc0NDYzRTExRkUy
NTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2MzgxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2li
aWxpdHkuaCAqLzsgfTsKKwkJMjk3NDQ2NDAxMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTc0
NDYzQTExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmNwcCAqLzsgfTsKKwkJMjk3NDQ2
NDExMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2M0IxMUZFMjU3QTAwNDUyM0Y4IC8qIFNj
cmVlblJlYWRlci5oICovOyB9OworCQkyOTc0NDY2RjExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nl
c3NpYmlsaXR5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI5NzQ0NjZEMTFGRTJCMzIwMDQ1MjNGOCAvKiBKU0FjY2Vzc2liaWxpdHkuY3BwICovOyB9
OworCQkyOTc0NDY3MDExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTc0NDY2RTExRkUyQjMy
MDA0NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmggKi87IH07CisJCTI5NzQ0NjhFMTFGRTJCRTEw
MDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyOTc0NDY4QzExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5S
ZWFkZXIuY3BwICovOyB9OworCQkyOTc0NDY4RjExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5S
ZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5
NzQ0NjhEMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5oICovOyB9OwogCQkyOUE4
MTIyNjBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4MTIwODBGQkI5
QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgKi87IH07CiAJCTI5
QTgxMjI3MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBODEyMDkwRkJCOUMxRDAw
NTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZS5jcHAgKi87IH07CiAJCTI5QTgxMjI4MEZCQjlD
MUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBODEyMEEwRkJCOUMxRDAwNTEwMjkzIC8q
IEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgKi87IH07CkBAIC0yMzg0LDggKzIzOTIsOCBAQAog
CQk4OTNDNDdCODEyMzhBMDk5MDAyQjNEODYgLyogSlNGaWxlQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5M0M0N0I2MTIzOEEwOTkwMDJC
M0Q4NiAvKiBKU0ZpbGVDYWxsYmFjay5oICovOyB9OwogCQk4OTNDNDdCQjEyMzhBMEE5MDAyQjNE
ODYgLyogSlNGaWxlV3JpdGVyQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODkzQzQ3QjkxMjM4QTBBOTAwMkIzRDg2IC8qIEpTRmlsZVdy
aXRlckNhbGxiYWNrLmNwcCAqLzsgfTsKIAkJODkzQzQ3QkMxMjM4QTBBOTAwMkIzRDg2IC8qIEpT
RmlsZVdyaXRlckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4OTNDNDdCQTEyMzhBMEE5MDAyQjNEODYgLyogSlNGaWxlV3JpdGVyQ2FsbGJh
Y2suaCAqLzsgfTsKKwkJODkzQzQ3Q0MxMjNFRUJBMjAwMkIzRDg2IC8qIEpTRW50cnlDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODkzQzQ3
Q0ExMjNFRUJBMjAwMkIzRDg2IC8qIEpTRW50cnlDdXN0b20uY3BwICovOyB9OwogCQk4OTNDNDdE
RjEyM0VGNEE5MDAyQjNEODYgLyogSlNEaXJlY3RvcnlFbnRyeUN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTNDNDdERTEyM0VGNEE5MDAy
QjNEODYgLyogSlNEaXJlY3RvcnlFbnRyeUN1c3RvbS5jcHAgKi87IH07Ci0JCTg5M0M0N0NDMTIz
RUVCQTIwMDJCM0Q4NiAvKiBKU0VudHJ5Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5M0M0N0NBMTIzRUVCQTIwMDJCM0Q4NiAvKiBKU0Vu
dHJ5Q3VzdG9tLmNwcCAqLzsgfTsKIAkJODk4Nzg1NTIxMjJDQTA2NDAwM0FBQkRBIC8qIERpcmVj
dG9yeUVudHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg5ODc4NTM5MTIyQ0EwNjQwMDNBQUJEQSAvKiBEaXJlY3RvcnlFbnRyeS5jcHAgKi87IH07
CiAJCTg5ODc4NTUzMTIyQ0EwNjQwMDNBQUJEQSAvKiBEaXJlY3RvcnlFbnRyeS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk4Nzg1M0ExMjJDQTA2NDAw
M0FBQkRBIC8qIERpcmVjdG9yeUVudHJ5LmggKi87IH07CiAJCTg5ODc4NTU0MTIyQ0EwNjQwMDNB
QUJEQSAvKiBEaXJlY3RvcnlSZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODk4Nzg1M0IxMjJDQTA2NDAwM0FBQkRBIC8qIERpcmVjdG9yeVJl
YWRlci5jcHAgKi87IH07CkBAIC02NDk4LDYgKzY1MDYsMTYgQEAKIAkJMjRGNTRFQUIxMDFGRTkx
NDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFwcGxpY2F0aW9uQ2FjaGVIb3N0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTI1NDJGNEQ4MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRv
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyR2VzdHVyZUlu
ZGljYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI1NDJGNEQ5MTE2NkMy
NUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBVc2VyR2VzdHVyZUluZGljYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyOTc0NDYzNzExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2MzgxMUZFMjU3QTAwNDUyM0Y4IC8q
IEFjY2Vzc2liaWxpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNz
aWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0NDYzOTExRkUyNTdB
MDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQWNj
ZXNzaWJpbGl0eS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjNBMTFG
RTI1N0EwMDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2NyZWVuUmVhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMjk3NDQ2M0IxMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JlZW5SZWFkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2M0MxMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2NyZWVuUmVhZGVyLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2NkQxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJp
bGl0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FjY2Vzc2li
aWxpdHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0NDY2RTExRkUyQjMy
MDA0NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTQWNjZXNzaWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
OTc0NDY4QzExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JlZW5SZWFkZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyOTc0NDY4RDExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5S
ZWFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY3JlZW5SZWFkZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBODEyMDgwRkJCOUMxRDAwNTEwMjkz
IC8qIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTI5QTgxMjA5MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmls
aXR5VGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNz
aWJpbGl0eVRhYmxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBODEyMEEw
RkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODI5MCw4ICs4MzA4LDggQEAKIAkJODkzQzQ3QjYx
MjM4QTA5OTAwMkIzRDg2IC8qIEpTRmlsZUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTRmlsZUNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTg5M0M0N0I5MTIzOEEwQTkwMDJCM0Q4NiAvKiBKU0ZpbGVXcml0ZXJDYWxsYmFjay5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVXcml0ZXJDYWxsYmFj
ay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5M0M0N0JBMTIzOEEwQTkwMDJC
M0Q4NiAvKiBKU0ZpbGVXcml0ZXJDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0ZpbGVXcml0ZXJDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4OTNDNDdDQTEyM0VFQkEyMDAyQjNEODYgLyogSlNFbnRyeUN1c3RvbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0VudHJ5Q3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODkzQzQ3REUxMjNFRjRBOTAwMkIzRDg2IC8qIEpTRGly
ZWN0b3J5RW50cnlDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNEaXJlY3RvcnlFbnRyeUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTg5M0M0N0NBMTIzRUVCQTIwMDJCM0Q4NiAvKiBKU0VudHJ5Q3VzdG9tLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRW50cnlDdXN0b20uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4OTg3ODUzOTEyMkNBMDY0MDAzQUFCREEgLyogRGlyZWN0
b3J5RW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRGlyZWN0
b3J5RW50cnkuY3BwOyBwYXRoID0gZmlsZWFwaS9EaXJlY3RvcnlFbnRyeS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5ODc4NTNBMTIyQ0EwNjQwMDNBQUJEQSAvKiBEaXJlY3Rv
cnlFbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBEaXJlY3RvcnlFbnRy
eS5oOyBwYXRoID0gZmlsZWFwaS9EaXJlY3RvcnlFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4OTg3ODUzQjEyMkNBMDY0MDAzQUFCREEgLyogRGlyZWN0b3J5UmVhZGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERpcmVjdG9yeVJlYWRlci5j
cHA7IHBhdGggPSBmaWxlYXBpL0RpcmVjdG9yeVJlYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMTkxMyw2ICsxMTkzMSw5IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAogCQkJCTI5QTgxMjA1MEZCQjlCNTIwMDUxMDI5MyAvKiBtYWMgKi8sCisJ
CQkJMjk3NDQ2MzcxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuY3BwICovLAorCQkJ
CTI5NzQ0NjM4MTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmggKi8sCisJCQkJMjk3
NDQ2MzkxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuaWRsICovLAogCQkJCTI5QTgx
MjBBMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwICovLAogCQkJ
CTI5QTgxMjE2MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQuaCAqLywK
IAkJCQkyOUE4MTIxMjBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2Vs
bC5jcHAgKi8sCkBAIC0xMTk1Nyw2ICsxMTk3OCw5IEBACiAJCQkJMjlBODEyMTMwRkJCOUMxRDAw
NTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZVJvdy5oICovLAogCQkJCTI5QTgxMjE5MEZCQjlD
MUQwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hlLmNwcCAqLywKIAkJCQkyOUE4MTIxQTBGQkI5QzFE
MDA1MTAyOTMgLyogQVhPYmplY3RDYWNoZS5oICovLAorCQkJCTI5NzQ0NjNBMTFGRTI1N0EwMDQ1
MjNGOCAvKiBTY3JlZW5SZWFkZXIuY3BwICovLAorCQkJCTI5NzQ0NjNCMTFGRTI1N0EwMDQ1MjNG
OCAvKiBTY3JlZW5SZWFkZXIuaCAqLywKKwkJCQkyOTc0NDYzQzExRkUyNTdBMDA0NTIzRjggLyog
U2NyZWVuUmVhZGVyLmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gYWNjZXNzaWJpbGl0eTsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNTE0OCw2ICsxNTE3Miw4IEBACiAJCUE4M0I3
OTEwMENDQjAwMUIwMDBCMDgyNSAvKiBDb3JlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQkyOTc0NDY2RDExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3Np
YmlsaXR5LmNwcCAqLywKKwkJCQkyOTc0NDY2RTExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3Np
YmlsaXR5LmggKi8sCiAJCQkJNjVERjMxRDgwOUQxQzEyMjAwMEJFMzI1IC8qIEpTQXR0ci5jcHAg
Ki8sCiAJCQkJNjVERjMxRDkwOUQxQzEyMzAwMEJFMzI1IC8qIEpTQXR0ci5oICovLAogCQkJCTkz
RjlCNzlFMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5jcHAgKi8sCkBAIC0xNTIw
Miw2ICsxNTIyOCw4IEBACiAJCQkJNjVERjMxRUMwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUHJvY2Vz
c2luZ0luc3RydWN0aW9uLmggKi8sCiAJCQkJRTRCNDIzODUwQ0JGQjczQzAwQUYyRUNFIC8qIEpT
UHJvZ3Jlc3NFdmVudC5jcHAgKi8sCiAJCQkJRTRCNDIzODYwQ0JGQjczQzAwQUYyRUNFIC8qIEpT
UHJvZ3Jlc3NFdmVudC5oICovLAorCQkJCTI5NzQ0NjhDMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1Nj
cmVlblJlYWRlci5jcHAgKi8sCisJCQkJMjk3NDQ2OEQxMUZFMkJFMTAwNDUyM0Y4IC8qIEpTU2Ny
ZWVuUmVhZGVyLmggKi8sCiAJCQkJNjVERjMxRUYwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTVGV4dC5j
cHAgKi8sCiAJCQkJNjVERjMxRjAwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTVGV4dC5oICovLAogCQkJ
KTsKQEAgLTE3ODEyLDYgKzE3ODQwLDcgQEAKIAkJCQlCNTMyMEQ2QjEyMkEyNEU5MDAyRDE0NDAg
LyogRm9udFBsYXRmb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjVCNURDNkExMTlCQjNE
NTAwMkE4NzkwIC8qIEFic3RyYWN0RGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRTFC
MUQxMEZGNTk4NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMjk3NDQ2M0UxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTI5QTgxMjJFMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdy
aWRDZWxsLmggaW4gSGVhZGVycyAqLywKIAkJCQkyOUE4MTIzMzBGQkI5QzFEMDA1MTAyOTMgLyog
QWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmggaW4gSGVhZGVycyAqLywKIAkJCQkyOUE4MTIzQjBG
QkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0xOTE0MSw2ICsxOTE3MCw3IEBACiAJCQkJNTlFRTEyMkUxMTA2MDgwRjAwODg1MTE2
IC8qIEpOSVV0aWxpdHlQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURGNDA5OUU2
NDkyMDA1NkU1ODEgLyogSm9pblRleHROb2Rlc0NvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxOEY4ODA1MEZGOTU3QUYwMDgwRjA0NSAvKiBKU0Fic3RyYWN0V29ya2VyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkyOTc0NDY3MDExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0OUVFQ0YwMTEwNTA3MEM0MDAwOTlGQUIgLyogSlNBcnJheUJ1
ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlFRUNGMUMxMDUwNzJGMzAwMDk5RkFCIC8qIEpT
QXJyYXlCdWZmZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjI0M0QwMTExQkMzMUY3MDBD
QzAwNkEgLyogSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTkz
NjksNiArMTkzOTksNyBAQAogCQkJCUJDRkUyRjEyMEMxQjU4MzgwMDIwMjM1RiAvKiBKU1JlY3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDNzREQTQ5MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNv
bG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VDMDFDMzBDMjc0REREMDA5RjRFQzkgLyogSlNT
Y3JlZW4uaCBpbiBIZWFkZXJzICovLAorCQkJCTI5NzQ0NjhGMTFGRTJCRTEwMDQ1MjNGOCAvKiBK
U1NjcmVlblJlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUZBMzdFRkIxMTcyRkRBNjAwQzRD
RDU1IC8qIEpTU2NyaXB0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUZBMzdFRkQxMTcy
RkRBNjAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxRDA3QTdGMEZGOTM1Q0EwMDk1RURDRSAvKiBKU1NoYXJlZFdvcmtlci5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0xOTg5NCw2ICsxOTkyNSw3IEBACiAJCQkJMUNFRkM5QjkwRDc4REM4QzAwN0QyNTc5
IC8qIFNjaGVkdWxlUGFpci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE2MkM3RjUxMUY3N0VGQjAw
NjEyRUZFIC8qIFNjaGVtZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VDMDFCRTBD
Mjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmggaW4gSGVhZGVycyAqLywKKwkJCQkyOTc0NDY0MTEx
RkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODRE
ODJDMTExRDM0NzQ4MDA5NzI5OTAgLyogU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3QUZENEE4QjExMzFDMjc2MDAzNUI4ODMgLyogU2NyaXB0QnJlYWtwb2lu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGMUQyMUYwRUYzNUMyQTAwREE4NzUzIC8qIFNjcmlw
dENhY2hlZEZyYW1lRGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMDYyMSw2ICsyMDY1Myw3IEBA
CiAJCQlpc2EgPSBQQlhQcm9qZWN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDE0OUMy
ODQzMDg5MDJCMTEwMDhBOUVGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFBy
b2plY3QgIldlYkNvcmUiICovOwogCQkJY29tcGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMi40
IjsKKwkJCWRldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsKIAkJCWhhc1NjYW5uZWRGb3JFbmNv
ZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25zID0gKAogCQkJCUVuZ2xpc2gsCkBAIC0yMDg2MSw2
ICsyMDg5NCw3IEBACiAJCQlmaWxlcyA9ICgKIAkJCQlCNUI1REM2OTExOUJCM0Q1MDAyQTg3OTAg
LyogQWJzdHJhY3REYXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MUUxQjFEMDBGRjU5
ODY5MDA1NzZCM0IgLyogQWJzdHJhY3RXb3JrZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjk3
NDQ2M0QxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMjlBODEyMjgwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyOUE4MTIzMDBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNz
aWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyOUE4MTIyRDBGQkI5
QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMjE2NjEsNiArMjE2OTUsNyBAQAogCQkJCTU5RUUxMjJDMTEwNjA4MDUwMDg4NTExNiAv
KiBKTklVdGlsaXR5UHJpdmF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOURGMzA5OUU2
NDkyMDA1NkU1ODEgLyogSm9pblRleHROb2Rlc0NvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDE4Rjg4MDQwRkY5NTdBRTAwODBGMDQ1IC8qIEpTQWJzdHJhY3RXb3JrZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMjk3NDQ2NkYxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0
eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUVFQ0YwMDEwNTA3MEM0MDAwOTlGQUIgLyogSlNB
cnJheUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzI3NUNCMzExQzVFODVDMDBDOTIw
NkMgLyogSlNBcnJheUJ1ZmZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUVFQ0Yx
QjEwNTA3MkYzMDAwOTlGQUIgLyogSlNBcnJheUJ1ZmZlclZpZXcuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yMTk1NSw2ICsyMTk5MCw3IEBACiAJCQkJQkNGRTJGMTEwQzFCNTgzNzAwMjAyMzVGIC8q
IEpTUmVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzc0REE0ODEwMTNGNDY4MDA3OTg3QUQg
LyogSlNSR0JDb2xvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VDMDFDMjBDMjc0REREMDA5
RjRFQzkgLyogSlNTY3JlZW4uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjk3NDQ2OEUxMUZFMkJF
MTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTlGQTM3
RUZBMTE3MkZEQTYwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOUZBMzdFRkMxMTcyRkRBNjAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOUZBMzdFRTcxMTcyRkNGMDAwQzRDRDU1IC8qIEpTU2NyaXB0
UHJvZmlsZU5vZGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMjQ2NSw2ICsyMjUwMSw3
IEBACiAJCQkJMUNFMjRGOTcwRDdDQUYwRTAwN0UwNEMyIC8qIFNjaGVkdWxlUGFpck1hYy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTUxNjJDN0Y0MTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdp
c3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VDMDFCRDBDMjc0REFDMDA5RjRFQzkgLyog
U2NyZWVuLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI5NzQ0NjQwMTFGRTI1N0EwMDQ1MjNGOCAv
KiBTY3JlZW5SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg0RDgyQzIxMUQzNDc0ODAw
OTcyOTkwIC8qIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyMDBCMTkwOTExQzI3N0Q5MDBEQ0NEM0EgLyogU2NyaXB0QnJlYWtwb2ludC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0MUYxRDIyMDBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJh
bWVEYXRhLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2NzU2OCkKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL3F0L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTIxMDQsNiArMjEwNCwxMyBAQAogd2luZG93LmNsZWFySW50ZXJ2YWwg
W2Z1bmN0aW9uXQogd2luZG93LmNsZWFyVGltZW91dCBbZnVuY3Rpb25dCiB3aW5kb3cuY2xpZW50
SW5mb3JtYXRpb24gW29iamVjdCBOYXZpZ2F0b3JdCit3aW5kb3cuY2xpZW50SW5mb3JtYXRpb24u
YWNjZXNzaWJpbGl0eSBbb2JqZWN0IEFjY2Vzc2liaWxpdHldCit3aW5kb3cuY2xpZW50SW5mb3Jt
YXRpb24uYWNjZXNzaWJpbGl0eS5lbGVtZW50c0NoYW5nZWQgW2Z1bmN0aW9uXQord2luZG93LmNs
aWVudEluZm9ybWF0aW9uLmFjY2Vzc2liaWxpdHkuc2NyZWVuQ2hhbmdlZCBbZnVuY3Rpb25dCit3
aW5kb3cuY2xpZW50SW5mb3JtYXRpb24uYWNjZXNzaWJpbGl0eS5zY3JlZW5SZWFkZXIgW29iamVj
dCBTY3JlZW5SZWFkZXJdCit3aW5kb3cuY2xpZW50SW5mb3JtYXRpb24uYWNjZXNzaWJpbGl0eS5z
Y3JlZW5SZWFkZXIuYWN0aXZlIFtib29sZWFuXQord2luZG93LmNsaWVudEluZm9ybWF0aW9uLmFj
Y2Vzc2liaWxpdHkuc2NyZWVuUmVhZGVyLmFjdGl2ZUVsZW1lbnQgW251bGxdCit3aW5kb3cuY2xp
ZW50SW5mb3JtYXRpb24uYWNjZXNzaWJpbGl0eS5zY3JlZW5SZWFkZXIudmVyc2lvbiBbc3RyaW5n
XQogd2luZG93LmNsaWVudEluZm9ybWF0aW9uLmFwcENvZGVOYW1lIFtzdHJpbmddCiB3aW5kb3cu
Y2xpZW50SW5mb3JtYXRpb24uYXBwTmFtZSBbc3RyaW5nXQogd2luZG93LmNsaWVudEluZm9ybWF0
aW9uLmFwcFZlcnNpb24gW3N0cmluZ10KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9h
Y2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHkt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvanMtYWNjZXNzaWJpbGl0eS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTMgQEAKK1RoaXMgdGVzdHMgdGhlIGphdmFzY3JpcHQgaW50ZXJmYWNlIHRvIGFj
Y2Vzc2liaWxpdHkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYXguc2Ny
ZWVuUmVhZGVyLmFjdGl2ZSBpcyBmYWxzZQorUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1Mg
bmFtZSBpcyAnQVhTY3JlZW5DaGFuZ2VkJworUEFTUyBuYW1lIGlzICdBWEVsZW1lbnRzQ2hhbmdl
ZCcKKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNj
ZXNzaWJpbGl0eS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9h
Y2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHkuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw2OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdD4KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0
aW9uKCJUaGlzIHRlc3RzIHRoZSBqYXZhc2NyaXB0IGludGVyZmFjZSB0byBhY2Nlc3NpYmlsaXR5
Iik7CisKKyAgICB2YXIgYm9keSA9IDA7CisgICAgdmFyIG5hbWUgPSAwOworICAgIGZ1bmN0aW9u
IG5vdGlmeUNhbGxiYWNrKG5vdGlmaWNhdGlvbikgeyAgCisgICAgICAgIG5hbWUgPSBub3RpZmlj
YXRpb247CisgICAgICAgIGlmIChuYW1lID09ICJBWFNjcmVlbkNoYW5nZWQiKSB7CisgICAgICAg
ICAgICBzaG91bGRCZSgibmFtZSIsICInQVhTY3JlZW5DaGFuZ2VkJyIpOworICAgICAgICB9Cisg
ICAgICAgIGVsc2UgaWYgKG5hbWUgPT0gIkFYRWxlbWVudHNDaGFuZ2VkIikgeworICAgICAgICAg
ICAgc2hvdWxkQmUoIm5hbWUiLCAiJ0FYRWxlbWVudHNDaGFuZ2VkJyIpOworICAgICAgICAgICAg
Ym9keS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOworICAgICAgICAgICAgd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2Ny
aXB0PgorCis8c2NyaXB0PgorICAgIHZhciBheCA9IHdpbmRvdy5uYXZpZ2F0b3IuYWNjZXNzaWJp
bGl0eTsKKworICAgIC8vIHNjcmVlbiByZWFkZXIgc2hvdWxkIG5vdCBiZSBydW5uaW5nIHdpdGhp
biBsYXlvdXQgdGVzdHMuCisgICAgc2hvdWxkQmUoImF4LnNjcmVlblJlYWRlci5hY3RpdmUiLCAi
ZmFsc2UiKTsKKworICAgIC8vIHNob3VsZCBub3QgY2F1c2UgYW4gZXJyb3IuCisgICAgdmFyIHZl
cnNpb24gPSBheC5zY3JlZW5SZWFkZXIudmVyc2lvbjsKKworICAgIC8vIHNob3VsZCBub3QgY2F1
c2UgYW4gZXJyb3IuCisgICAgdmFyIHZlcnNpb24gPSBheC5zY3JlZW5SZWFkZXIubmFtZTsKKwor
ICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgd2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiYm9keSIpLmZvY3VzKCk7CisKKyAgICAgICAgYm9keSA9IHdpbmRv
dy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsKKworICAgICAgICB2YXIg
YWRkZWROb3RpZmljYXRpb24gPSBib2R5LmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmeUNh
bGxiYWNrKTsKKyAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsK
KworICAgICAgICAvLyBzaG91bGQgY2F1c2UgYSBBWFNjcmVlbkNoYW5nZWQgdG8gYmUgc2VudCBv
dXQuCisgICAgICAgIGF4LnNjcmVlbkNoYW5nZWQoKTsKKworICAgICAgICAvLyBzaG91bGQgY2F1
c2UgYSBBWEVsZW1lbnRzQ2hhbmdlZCB0byBiZSBzZW50IG91dC4KKyAgICAgICAgYXguZWxlbWVu
dHNDaGFuZ2VkKCk7CisgICAgfQorCisgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDY3NTY4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBl
LWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDYgKzMsOCBA
QAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK1BBU1MgQWNjZXNzaWJpbGl0eSBmcm9t
IGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZhdWx0Vmll
dy5jbGllbnRJbmZvcm1hdGlvbi5hY2Nlc3NpYmlsaXR5CitQQVNTIEFjY2Vzc2liaWxpdHlQcm90
b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQu
ZGVmYXVsdFZpZXcuY2xpZW50SW5mb3JtYXRpb24uYWNjZXNzaWJpbGl0eS5fX3Byb3RvX18KIEZB
SUwgQXJyYXkgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1l
bnQuZGVmYXVsdFZpZXcuY29uc29sZS5wcm9maWxlcwogUEFTUyBBdHRyIGZyb20gaW5uZXIuZG9j
dW1lbnQuZm9ybXMudGVzdEZvcm0uMC5hdHRyaWJ1dGVzLjAKIFBBU1MgQXR0ckNvbnN0cnVjdG9y
IGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5hdHRyaWJ1dGVzLjAuY29uc3Ry
dWN0b3IKQEAgLTE4Niw2ICsxODgsOCBAQAogUEFTUyBTVkdQYWludFByb3RvdHlwZSBmcm9tIGlu
bmVyLmdldENvbXB1dGVkU3R5bGUoaW5uZXIuZG9jdW1lbnQuYm9keSkuZ2V0UHJvcGVydHlDU1NW
YWx1ZShmaWxsKS5fX3Byb3RvX18KIFBBU1MgU2NyZWVuIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9y
bXMudGVzdEZvcm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LnNjcmVlbgogUEFTUyBTY3Jl
ZW5Qcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9j
dW1lbnQuZGVmYXVsdFZpZXcuc2NyZWVuLl9fcHJvdG9fXworUEFTUyBTY3JlZW5SZWFkZXIgZnJv
bSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZp
ZXcuY2xpZW50SW5mb3JtYXRpb24uYWNjZXNzaWJpbGl0eS5zY3JlZW5SZWFkZXIKK1BBU1MgU2Ny
ZWVuUmVhZGVyUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5v
d25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmNsaWVudEluZm9ybWF0aW9uLmFjY2Vzc2liaWxpdHku
c2NyZWVuUmVhZGVyLl9fcHJvdG9fXwogUEFTUyBTdG9yYWdlIGZyb20gaW5uZXIuZG9jdW1lbnQu
Zm9ybXMudGVzdEZvcm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmxvY2FsU3RvcmFnZQog
UEFTUyBTdG9yYWdlQ29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9y
bS4wLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcubG9jYWxTdG9yYWdlLmNvbnN0cnVjdG9yCiBQ
QVNTIFN0b3JhZ2VQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4w
Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcubG9jYWxTdG9yYWdlLl9fcHJvdG9fXwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2NzU2OCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTIxNDAsNiArMjE0MCwxMyBAQAogd2luZG93LmNsZWFySW50ZXJ2YWwgW2Z1bmN0aW9uXQog
d2luZG93LmNsZWFyVGltZW91dCBbZnVuY3Rpb25dCiB3aW5kb3cuY2xpZW50SW5mb3JtYXRpb24g
W29iamVjdCBOYXZpZ2F0b3JdCit3aW5kb3cuY2xpZW50SW5mb3JtYXRpb24uYWNjZXNzaWJpbGl0
eSBbb2JqZWN0IEFjY2Vzc2liaWxpdHldCit3aW5kb3cuY2xpZW50SW5mb3JtYXRpb24uYWNjZXNz
aWJpbGl0eS5lbGVtZW50c0NoYW5nZWQgW2Z1bmN0aW9uXQord2luZG93LmNsaWVudEluZm9ybWF0
aW9uLmFjY2Vzc2liaWxpdHkuc2NyZWVuQ2hhbmdlZCBbZnVuY3Rpb25dCit3aW5kb3cuY2xpZW50
SW5mb3JtYXRpb24uYWNjZXNzaWJpbGl0eS5zY3JlZW5SZWFkZXIgW29iamVjdCBTY3JlZW5SZWFk
ZXJdCit3aW5kb3cuY2xpZW50SW5mb3JtYXRpb24uYWNjZXNzaWJpbGl0eS5zY3JlZW5SZWFkZXIu
YWN0aXZlIFtib29sZWFuXQord2luZG93LmNsaWVudEluZm9ybWF0aW9uLmFjY2Vzc2liaWxpdHku
c2NyZWVuUmVhZGVyLm5hbWUgW3N0cmluZ10KK3dpbmRvdy5jbGllbnRJbmZvcm1hdGlvbi5hY2Nl
c3NpYmlsaXR5LnNjcmVlblJlYWRlci52ZXJzaW9uIFtzdHJpbmddCiB3aW5kb3cuY2xpZW50SW5m
b3JtYXRpb24uYXBwQ29kZU5hbWUgW3N0cmluZ10KIHdpbmRvdy5jbGllbnRJbmZvcm1hdGlvbi5h
cHBOYW1lIFtzdHJpbmddCiB3aW5kb3cuY2xpZW50SW5mb3JtYXRpb24uYXBwVmVyc2lvbiBbc3Ry
aW5nXQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vbmF2aWdhdG9yLWRldGFjaGVkLW5vLWNy
YXNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9uYXZp
Z2F0b3ItZGV0YWNoZWQtbm8tY3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2NzU2OCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL25hdmlnYXRvci1kZXRhY2hlZC1uby1jcmFzaC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiBUaGlzIHRlc3RzIHRoYXQgdGhl
IG5hdmlnYXRvciBvYmplY3Qgb2YgYSBkZWxldGVkIGZyYW1lIGlzIGRpc2Nvbm5lY3RlZCBwcm9w
ZXJseS4gQWNjZXNzaW5nIGZpZWxkcyBvciBtZXRob2RzIHNob3VsZG4ndCBjcmFzaCB0aGUgYnJv
d3Nlci4gCiAgQ2hlY2sgTmF2aWdhdG9yCituYXZpZ2F0b3IuYWNjZXNzaWJpbGl0eSBpcyBPSwog
bmF2aWdhdG9yLmFwcENvZGVOYW1lIGlzIE9LCiBuYXZpZ2F0b3IuYXBwTmFtZSBpcyBPSwogbmF2
aWdhdG9yLmFwcFZlcnNpb24gaXMgT0sKQEAgLTE2LDYgKzE3LDcgQEAKIG5hdmlnYXRvci51c2Vy
QWdlbnQgaXMgT0sKIG5hdmlnYXRvci52ZW5kb3IgaXMgT0sKIG5hdmlnYXRvci52ZW5kb3JTdWIg
aXMgT0sKK25hdmlnYXRvci5hY2Nlc3NpYmlsaXR5IGlzIE9LCiBuYXZpZ2F0b3IuYXBwQ29kZU5h
bWUgaXMgT0sKIG5hdmlnYXRvci5hcHBOYW1lIGlzIE9LCiBuYXZpZ2F0b3IuYXBwVmVyc2lvbiBp
cyBPSwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjc1NzApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wOS0xNSAgQ2hyaXMgRmxlaXph
Y2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFYOiBTdXBwb3J0IG1ldGhvZHMgZm9yIHdlYiBhcHBzIHRvIGlu
dGVyYWN0IHdpdGggdGhlIG5hdGl2ZSBhY2Nlc3NpYmlsaXR5IEFQSXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMDA1CisKKyAgICAgICAgKiBmYXN0
L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZh
c3QvZG9tL25hdmlnYXRvci1kZXRhY2hlZC1uby1jcmFzaC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHktZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9qcy1hY2Nl
c3NpYmlsaXR5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0L2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisKIDIwMTAtMDktMTUgIEp1bGll
biBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNvZGVhdXJvcmEub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFuZHJlYXMgS2xpbmcuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67736</attachid>
            <date>2010-09-15 16:06:00 -0700</date>
            <delta_ts>2011-01-12 15:50:24 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>57918</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzU3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDQgQEAKKzIwMTAtMDktMTUgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBWDogU3VwcG9ydCBtZXRob2RzIGZvciB3ZWIgYXBwcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBu
YXRpdmUgYWNjZXNzaWJpbGl0eSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MzAwNQorCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyBwYXJ0IG9m
IHRoZSBXM0MgUHJvcG9zYWw6CisgICAgICAgICAgICBVc2VyIEludGVyZmFjZSBJbmRlcGVuZGVu
Y2UgZm9yIEFjY2Vzc2libGUgUmljaCBJbnRlcm5ldCBBcHBsaWNhdGlvbnMKKyAgICAgICAgU3Bl
Y2lmaWNhbGx5IHRoZSAiQXNzaXN0aXZlIFRlY2hub2xvZ3kgSWRlbnRpZmljYXRpb24gYW5kIE5v
dGlmaWNhdGlvbiIgcmVsYXRpbmcgdG8gCisgICAgICAgIEFjY2Vzc2liaWxpdHkgYW5kIFNjcmVl
blJlYWRlci4KKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9qcy1h
Y2Nlc3NpYmlsaXR5Lmh0bWwKKworICAgICAgICAqIEFuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdz
Lm1rOgorICAgICAgICAqIEFuZHJvaWQuanNjYmluZGluZ3MubWs6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
R05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNv
cmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmlzU2NyZWVuUmVhZGVyUnVubmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzY3JlZW5SZWFkZXJWZXJzaW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNjcmVlblJlYWRlck5hbWUpOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6aXNTY3JlZW5SZWFkZXJSdW5uaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OnNjcmVlblJlYWRlck5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6c2NyZWVuUmVhZGVyVmVyc2lvbik6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbToKKyAgICAgICAgKiBiaW5kaW5ncy9n
b2JqZWN0L0dOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvcjo6ZGlzY29ubmVjdEZyYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6Ok5hdmlnYXRvcjo6YWNjZXNzaWJpbGl0eSk6CisgICAgICAgICogcGFnZS9OYXZpZ2F0
b3IuaDoKKyAgICAgICAgKiBwYWdlL05hdmlnYXRvci5pZGw6CisKIDIwMTAtMDktMTUgIEp1bGll
biBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNvZGVhdXJvcmEub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFuZHJlYXMgS2xpbmcuCkluZGV4OiBXZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJp
bmRpbmdzLm1rCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGlu
Z3MubWsJKHJldmlzaW9uIDY3NTcwKQorKysgV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5k
aW5ncy5tawkod29ya2luZyBjb3B5KQpAQCAtMjYzLDYgKzI2MywyMSBAQCBMT0NBTF9HRU5FUkFU
RURfU09VUkNFUyArPSAkKEdFTikKICMgYWJvdmUgcnVsZXMuICBTcGVjaWZ5aW5nIHRoaXMgZXhw
bGljaXRseSBtYWtlcyAtajIgd29yay4KICQocGF0c3Vic3QgJS5oLCUuY3BwLCQoR0VOKSk6ICQo
aW50ZXJtZWRpYXRlcykvYmluZGluZ3MvJS5jcHAgOiAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdz
LyUuaAogCisjIEFjY2Vzc2liaWxpdHkKK0dFTiA6PSBcCisgICAgJChpbnRlcm1lZGlhdGVzKS9i
aW5kaW5ncy9WOEFjY2Vzc2liaWxpdHkuaAorICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3Mv
VjhTY3JlZW5SZWFkZXIuaAorCiskKEdFTik6IFBSSVZBVEVfUEFUSCA6PSAkKExPQ0FMX1BBVEgp
CiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBTT1VSQ0VfUk9PVD0kKFBSSVZBVEVfUEFU
SCkgcGVybCAtSSQoUFJJVkFURV9QQVRIKS9iaW5kaW5ncy9zY3JpcHRzICQoUFJJVkFURV9QQVRI
KS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIC0tZGVmaW5lcyAiJChGRUFU
VVJFX0RFRklORVMpIExBTkdVQUdFX0pBVkFTQ1JJUFQiIC0tZ2VuZXJhdG9yIFY4IC0taW5jbHVk
ZSBkb20gLS1pbmNsdWRlIGh0bWwgLS1vdXRwdXRkaXIgJChkaXIgJEApICQ8CiskKEdFTik6ICQo
aW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjglLmggOiAkKExPQ0FMX1BBVEgpL2FjY2Vzc2liaWxp
dHkvJS5pZGwgJChqc19iaW5kaW5nX3NjcmlwdHMpCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNv
dXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjIFdlIGFsc28gbmVl
ZCB0aGUgLmNwcCBmaWxlcywgd2hpY2ggYXJlIGdlbmVyYXRlZCBhcyBzaWRlIGVmZmVjdHMgb2Yg
dGhlCisjIGFib3ZlIHJ1bGVzLiAgU3BlY2lmeWluZyB0aGlzIGV4cGxpY2l0bHkgbWFrZXMgLWoy
IHdvcmsuCiskKHBhdHN1YnN0ICUuaCwlLmNwcCwkKEdFTikpOiAkKGludGVybWVkaWF0ZXMpL2Jp
bmRpbmdzLyUuY3BwIDogJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy8lLmgKKwogIyBQYWdlCiBH
RU4gOj0gXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhCYXJJbmZvLmggXApJbmRl
eDogV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
QW5kcm9pZC5qc2NiaW5kaW5ncy5tawkocmV2aXNpb24gNjc1NzApCisrKyBXZWJDb3JlL0FuZHJv
aWQuanNjYmluZGluZ3MubWsJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDcgQEAgQklORElO
R19DX0lOQ0xVREVTIDo9IFwKIAkkKEpBVkFTQ1JJUFRDT1JFX1BBVEgpL3dyZWMgXAogCSQoSkFW
QVNDUklQVENPUkVfUEFUSCkvRm9yd2FyZGluZ0hlYWRlcnMgXAogCVwKKwkkKGJhc2VfaW50ZXJt
ZWRpYXRlcykvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5IFwKIAkkKGJhc2VfaW50ZXJtZWRpYXRlcykv
V2ViQ29yZS9iaW5kaW5ncy9qcyBcCiAJJChiYXNlX2ludGVybWVkaWF0ZXMpL1dlYkNvcmUvZG9t
IFwKIAkkKGJhc2VfaW50ZXJtZWRpYXRlcykvV2ViQ29yZS9odG1sL2NhbnZhcyBcCkluZGV4OiBX
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLmNwcAkocmV2aXNpb24gNjc1NzApCisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkhUTUxFbGVtZW50
RmFjdG9yeS5jcHAiCiAjaW5jbHVkZSAiSFRNTEVudGl0eVRhYmxlLmNwcCIKICNpbmNsdWRlICJK
U0Fic3RyYWN0V29ya2VyLmNwcCIKKyNpbmNsdWRlICJKU0FjY2Vzc2liaWxpdHkuY3BwIgogI2lu
Y2x1ZGUgIkpTQXR0ci5jcHAiCiAjaW5jbHVkZSAiSlNCYXJJbmZvLmNwcCIKICNpbmNsdWRlICJK
U0JlZm9yZUxvYWRFdmVudC5jcHAiCkBAIC0yNDUsNiArMjQ2LDcgQEAKICNpbmNsdWRlICJKU1Jl
Y3QuY3BwIgogI2luY2x1ZGUgIkpTUkdCQ29sb3IuY3BwIgogI2luY2x1ZGUgIkpTU2NyZWVuLmNw
cCIKKyNpbmNsdWRlICJKU1NjcmVlblJlYWRlci5jcHAiCiAjaW5jbHVkZSAiSlNTY3JpcHRQcm9m
aWxlLmNwcCIKICNpbmNsdWRlICJKU1NjcmlwdFByb2ZpbGVOb2RlLmNwcCIKICNpbmNsdWRlICJK
U1NoYXJlZFdvcmtlci5jcHAiCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiA2NzU3MCkK
KysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjgsNiAr
MjgsNyBAQAogCiBWUEFUSCA9IFwKICAgICAkKFdlYkNvcmUpIFwKKyAgICAkKFdlYkNvcmUpL2Fj
Y2Vzc2liaWxpdHkgXAogICAgICQoV2ViQ29yZSkvYmluZGluZ3MvZ2VuZXJpYyBcCiAgICAgJChX
ZWJDb3JlKS9iaW5kaW5ncy9qcyBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9vYmpjIFwKQEAg
LTUyLDYgKzUzLDcgQEAgVlBBVEggPSBcCiBET01fQ0xBU1NFUyA9IFwKICAgICBBYnN0cmFjdFZp
ZXcgXAogICAgIEFic3RyYWN0V29ya2VyIFwKKyAgICBBY2Nlc3NpYmlsaXR5IFwKICAgICBBdHRy
IFwKICAgICBCYXJJbmZvIFwKICAgICBCZWZvcmVMb2FkRXZlbnQgXApAQCAtNDUzLDYgKzQ1NSw3
IEBAIERPTV9DTEFTU0VTID0gXAogICAgIFNWR1pvb21BbmRQYW4gXAogICAgIFNWR1pvb21FdmVu
dCBcCiAgICAgU2NyZWVuIFwKKyAgICBTY3JlZW5SZWFkZXIgXAogICAgIFN0eWxlTWVkaWEgXAog
ICAgIFN0eWxlU2hlZXQgXAogICAgIFN0eWxlU2hlZXRMaXN0IFwKSW5kZXg6IFdlYkNvcmUvR05V
bWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNp
b24gNjc1NzApCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDIsNiArMTAyLDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0luc3BlY3RvckZyb250ZW5kLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNBYnN0cmFjdFdvcmtlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBYnN0cmFj
dFdvcmtlci5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQWNjZXNzaWJpbGl0eS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBY2Nlc3NpYmlsaXR5LmggXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNBcnJheUJ1ZmZlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNBcnJheUJ1ZmZlci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXJyYXlCdWZm
ZXJWaWV3LmNwcCBcCkBAIC00NzEsNiArNDczLDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUkdCQ29sb3IuaCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1NjcmVlbi5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTY3Jl
ZW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NjcmVlblJlYWRlci5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTY3JlZW5SZWFkZXIuaCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1NjcmlwdFByb2ZpbGUuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
U2NyaXB0UHJvZmlsZS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyaXB0UHJvZmls
ZU5vZGUuY3BwIFwKQEAgLTU2OSw2ICs1NzMsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0g
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MTlNOYW1lcy5oCiAKIHdlYmNvcmVfc291cmNl
cyArPSBcCisJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHkuY3BwIFwKKwlXZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5oIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmggXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwIFwKQEAgLTYxMyw2ICs2MTksOCBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cu
aCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIFwKIAlXZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIFwKKwlXZWJDb3JlL2FjY2Vzc2liaWxpdHkv
U2NyZWVuUmVhZGVyLmNwcCBcCisJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJlYWRlci5o
IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2suY3BwIFwKIAlX
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2suaCBcCiAJV2ViQ29yZS9i
aW5kaW5ncy9nZW5lcmljL0JpbmRpbmdGcmFtZS5oIFwKQEAgLTQ0MTUsNiArNDQyMyw3IEBAIERl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmQKIAkkKEFNX1ZfR0VOKSQoUEVS
TCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgLUkkKFdlYkNvcmUpL2luc3BlY3RvciAk
KFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgJChJRExfUEFU
SDolPS0taW5jbHVkZSAiJSIpIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVNfV0VCQ09SRSkiIC0t
ZGVmaW5lcyAiTEFOR1VBR0VfSkFWQVNDUklQVD0xICQoRkVBVFVSRV9ERUZJTkVTKSIgLS1nZW5l
cmF0b3IgSW5zcGVjdG9yICQ8CiAKIElETF9QQVRIIDo9IFwKKyAgICAkKFdlYkNvcmUpL2FjY2Vz
c2liaWxpdHkgXAogICAgICQoV2ViQ29yZSkvYmluZGluZ3MvanMgXAogICAgICQoV2ViQ29yZSkv
Y3NzIFwKICAgICAkKFdlYkNvcmUpL2RvbSBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNjc1NzApCisrKyBX
ZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDggQEAKIHsKICAg
ICAndmFyaWFibGVzJzogewogICAgICAgICAnd2ViY29yZV9iaW5kaW5nc19pZGxfZmlsZXMnOiBb
CisgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmlkbCcsCisgICAgICAg
ICAgICAnYWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsJywKICAgICAgICAgICAgICdjc3Mv
Q1NTQ2hhcnNldFJ1bGUuaWRsJywKICAgICAgICAgICAgICdjc3MvQ1NTRm9udEZhY2VSdWxlLmlk
bCcsCiAgICAgICAgICAgICAnY3NzL0NTU0ltcG9ydFJ1bGUuaWRsJywKQEAgLTQ1Myw2ICs0NTUs
OCBAQAogICAgICAgICAgICAgIyBTb3VyY2UvSGVhZGVyIEZpbGVzCiAgICAgICAgICAgICAnYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgnLAorICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eS5jcHAnLAorICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5oJywK
ICAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAnLAog
ICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmgnLAogICAg
ICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAnLApA
QCAtNDk1LDYgKzQ5OSw4IEBACiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGVIZWFkZXJDb250YWluZXIuaCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwJywKICAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlUYWJsZVJvdy5oJywKKyAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L1NjcmVl
blJlYWRlci5jcHAnLAorICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmgn
LAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9t
aXVtLmNwcCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BY2Nlc3NpYmls
aXR5T2JqZWN0Q2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L2Nocm9t
aXVtL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLmgnLApJbmRleDogV2ViQ29yZS9XZWJDb3Jl
LnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJpCShyZXZpc2lvbiA2NzU3MCkK
KysrIFdlYkNvcmUvV2ViQ29yZS5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTY5LDYgKzY5LDggQEAg
djggewogfQogCiBJRExfQklORElOR1MgKz0gXAorICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eS5pZGwgXAorICAgIGFjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmlkbCBcCiAgICAgY3Nz
L0NvdW50ZXIuaWRsIFwKICAgICBjc3MvQ1NTQ2hhcnNldFJ1bGUuaWRsIFwKICAgICBjc3MvQ1NT
Rm9udEZhY2VSdWxlLmlkbCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDY3NTcwKQorKysgV2ViQ29yZS9XZWJD
b3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMjk2LDYgKzI5Niw3IEBAIGNvbnRhaW5zKERFRklO
RVMsIEVOQUJMRV9XQ1NTPTEpIHsKIH0KIAogU09VUkNFUyArPSBcCisgICAgYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5LmNwcCBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1h
Z2VNYXBMaW5rLmNwcCBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFDb250
cm9scy5jcHAgXCAgICAKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5j
cHAgXApAQCAtMzE4LDYgKzMxOSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmNwcCBcICAgIAogICAgIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcCBcICAgIAogICAgIGFjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHAgXAorICAgIGFjY2Vzc2liaWxpdHkvU2NyZWVuUmVhZGVyLmNwcCBc
CiAgICAgYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5jcHAKIAogdjggewpJbmRl
eDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA2NzU3MCkKKysr
IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAg
LTYxNyw2ICs2MTcsNjIgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJl
bGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0FjY2Vzc2liaWxpdHkuY3BwIg0KKwkJCQk+DQorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbg0KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiIN
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlX0Nh
aXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJ
CQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9
IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJ
Pg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4N
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJ
UmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEpTQWNjZXNzaWJpbGl0eS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxG
aWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU0F0dHIuY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KQEAgLTExNTE3LDYgKzExNTczLDYyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJ
CQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNTY3JlZW5SZWFkZXIuY3BwIg0KKwkJCQk+DQorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxX
aW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRv
b2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1
Z19DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0K
KwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlO
YW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0ZpbGU+DQor
CQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTU2NyZWVuUmVhZGVyLmgiDQorCQkJCT4NCisJCQk8
L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilc
b2JqXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXNcSlNTaGFyZWRXb3JrZXIuY3BwIg0KIAkJCQk+DQog
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTIxNzQ1LDYgKzIxODU3LDE0IEBACiAJCQkJPg0K
IAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGFjY2Vzc2liaWxp
dHlcQWNjZXNzaWJpbGl0eS5jcHAiDQorCQkJCT4NCisgICAgICAgICAgICA8L0ZpbGU+DQorCQkJ
PEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5XEFjY2Vzc2liaWxpdHku
aCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGFjY2Vzc2liaWxpdHlcQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCINCiAJCQkJPg0KIAkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC0yMjgzMiw2ICsyMjk1MiwxNCBAQAogCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYWNjZXNzaWJpbGl0eVxBWE9iamVjdENhY2hlLmgiDQogCQkJCT4NCiAJCQk8L0Zp
bGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5XFNjcmVl
blJlYWRlci5jcHAiDQorCQkJCT4NCisgICAgICAgICAgICA8L0ZpbGU+DQorCQkJPEZpbGUNCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5XFNjcmVlblJlYWRlci5oIg0KKwkJCQk+
DQorCQkJPC9GaWxlPg0KIAkJCTxGaWx0ZXINCiAJCQkJTmFtZT0id2luIg0KIAkJCQk+DQpJbmRl
eDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDY3
NTcwKQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTYzMSw2ICs2MzEsMTQgQEAKIAkJMjRGNTRFQUQxMDFGRTkxNDAwMEFFNzQx
IC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyNEY1NEVBQjEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25D
YWNoZUhvc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQkyNTQy
RjREQTExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjU0MkY0RDgxMTY2QzI1QTAw
RTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCAqLzsgfTsKIAkJMjU0MkY0REIxMTY2
QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNTQyRjREOTExNjZDMjVBMDBFODlBODYgLyog
VXNlckdlc3R1cmVJbmRpY2F0b3IuaCAqLzsgfTsKKwkJMjk3NDQ2M0QxMUZFMjU3QTAwNDUyM0Y4
IC8qIEFjY2Vzc2liaWxpdHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMjk3NDQ2MzcxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuY3Bw
ICovOyB9OworCQkyOTc0NDYzRTExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2MzgxMUZF
MjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuaCAqLzsgfTsKKwkJMjk3NDQ2NDAxMUZFMjU3
QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyOTc0NDYzQTExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVh
ZGVyLmNwcCAqLzsgfTsKKwkJMjk3NDQ2NDExMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjk3NDQ2
M0IxMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5oICovOyB9OworCQkyOTc0NDY2RjEx
RkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjZEMTFGRTJCMzIwMDQ1MjNGOCAvKiBK
U0FjY2Vzc2liaWxpdHkuY3BwICovOyB9OworCQkyOTc0NDY3MDExRkUyQjMyMDA0NTIzRjggLyog
SlNBY2Nlc3NpYmlsaXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyOTc0NDY2RTExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5LmggKi87
IH07CisJCTI5NzQ0NjhFMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVlblJlYWRlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTc0NDY4QzExRkUy
QkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIuY3BwICovOyB9OworCQkyOTc0NDY4RjExRkUy
QkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5NzQ0NjhEMTFGRTJCRTEwMDQ1MjNGOCAvKiBKU1NjcmVl
blJlYWRlci5oICovOyB9OwogCQkyOUE4MTIyNjBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyOUE4MTIwODBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHAgKi87IH07CiAJCTI5QTgxMjI3MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3Np
YmlsaXR5VGFibGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjlBODEyMDkwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZS5jcHAg
Ki87IH07CiAJCTI5QTgxMjI4MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdy
aWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlB
ODEyMEEwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgKi87IH07
CkBAIC0yMzg0LDggKzIzOTIsOCBAQAogCQk4OTNDNDdCODEyMzhBMDk5MDAyQjNEODYgLyogSlNG
aWxlQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg5M0M0N0I2MTIzOEEwOTkwMDJCM0Q4NiAvKiBKU0ZpbGVDYWxsYmFjay5oICovOyB9Owog
CQk4OTNDNDdCQjEyMzhBMEE5MDAyQjNEODYgLyogSlNGaWxlV3JpdGVyQ2FsbGJhY2suY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODkzQzQ3QjkxMjM4
QTBBOTAwMkIzRDg2IC8qIEpTRmlsZVdyaXRlckNhbGxiYWNrLmNwcCAqLzsgfTsKIAkJODkzQzQ3
QkMxMjM4QTBBOTAwMkIzRDg2IC8qIEpTRmlsZVdyaXRlckNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTNDNDdCQTEyMzhBMEE5MDAyQjNE
ODYgLyogSlNGaWxlV3JpdGVyQ2FsbGJhY2suaCAqLzsgfTsKLQkJODkzQzQ3REYxMjNFRjRBOTAw
MkIzRDg2IC8qIEpTRGlyZWN0b3J5RW50cnlDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODkzQzQ3REUxMjNFRjRBOTAwMkIzRDg2IC8qIEpT
RGlyZWN0b3J5RW50cnlDdXN0b20uY3BwICovOyB9OwogCQk4OTNDNDdDQzEyM0VFQkEyMDAyQjNE
ODYgLyogSlNFbnRyeUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4OTNDNDdDQTEyM0VFQkEyMDAyQjNEODYgLyogSlNFbnRyeUN1c3RvbS5j
cHAgKi87IH07CisJCTg5M0M0N0RGMTIzRUY0QTkwMDJCM0Q4NiAvKiBKU0RpcmVjdG9yeUVudHJ5
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg5M0M0N0RFMTIzRUY0QTkwMDJCM0Q4NiAvKiBKU0RpcmVjdG9yeUVudHJ5Q3VzdG9tLmNwcCAq
LzsgfTsKIAkJODk4Nzg1NTIxMjJDQTA2NDAwM0FBQkRBIC8qIERpcmVjdG9yeUVudHJ5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5ODc4NTM5MTIy
Q0EwNjQwMDNBQUJEQSAvKiBEaXJlY3RvcnlFbnRyeS5jcHAgKi87IH07CiAJCTg5ODc4NTUzMTIy
Q0EwNjQwMDNBQUJEQSAvKiBEaXJlY3RvcnlFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk4Nzg1M0ExMjJDQTA2NDAwM0FBQkRBIC8qIERpcmVj
dG9yeUVudHJ5LmggKi87IH07CiAJCTg5ODc4NTU0MTIyQ0EwNjQwMDNBQUJEQSAvKiBEaXJlY3Rv
cnlSZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODk4Nzg1M0IxMjJDQTA2NDAwM0FBQkRBIC8qIERpcmVjdG9yeVJlYWRlci5jcHAgKi87IH07
CkBAIC02NDk4LDYgKzY1MDYsMTYgQEAKIAkJMjRGNTRFQUIxMDFGRTkxNDAwMEFFNzQxIC8qIEFw
cGxpY2F0aW9uQ2FjaGVIb3N0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFw
cGxpY2F0aW9uQ2FjaGVIb3N0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI1NDJG
NEQ4MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyR2VzdHVyZUluZGljYXRvci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI1NDJGNEQ5MTE2NkMyNUEwMEU4OUE4NiAvKiBV
c2VyR2VzdHVyZUluZGljYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBV
c2VyR2VzdHVyZUluZGljYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0
NDYzNzExRkUyNTdBMDA0NTIzRjggLyogQWNjZXNzaWJpbGl0eS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2MzgxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0NDYzOTExRkUyNTdBMDA0NTIzRjggLyogQWNj
ZXNzaWJpbGl0eS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQWNjZXNzaWJpbGl0eS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5NzQ0NjNBMTFGRTI1N0EwMDQ1MjNGOCAv
KiBTY3JlZW5SZWFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2NyZWVuUmVhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjk3NDQ2M0Ix
MUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTY3JlZW5SZWFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Mjk3NDQ2M0MxMUZFMjU3QTAwNDUyM0Y4IC8qIFNjcmVlblJlYWRlci5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gU2NyZWVuUmVhZGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMjk3NDQ2NkQxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJpbGl0eS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FjY2Vzc2liaWxpdHkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0NDY2RTExRkUyQjMyMDA0NTIzRjggLyogSlNB
Y2Nlc3NpYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQWNjZXNz
aWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTc0NDY4QzExRkUyQkUx
MDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNTY3JlZW5SZWFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyOTc0NDY4RDExRkUyQkUxMDA0NTIzRjggLyogSlNTY3JlZW5SZWFkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY3JlZW5SZWFkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMjlBODEyMDgwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTI5QTgxMjA5MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVRhYmxlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBODEyMEEwRkJCOUMxRDAwNTEwMjkz
IC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtODI5MCw4ICs4MzA4LDggQEAKIAkJODkzQzQ3QjYxMjM4QTA5OTAwMkIzRDg2
IC8qIEpTRmlsZUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
RmlsZUNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5M0M0N0I5MTIz
OEEwQTkwMDJCM0Q4NiAvKiBKU0ZpbGVXcml0ZXJDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVXcml0ZXJDYWxsYmFjay5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5M0M0N0JBMTIzOEEwQTkwMDJCM0Q4NiAvKiBKU0ZpbGVX
cml0ZXJDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZpbGVX
cml0ZXJDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4OTNDNDdERTEy
M0VGNEE5MDAyQjNEODYgLyogSlNEaXJlY3RvcnlFbnRyeUN1c3RvbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RpcmVjdG9yeUVudHJ5Q3VzdG9tLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODkzQzQ3Q0ExMjNFRUJBMjAwMkIzRDg2IC8qIEpT
RW50cnlDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNF
bnRyeUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5M0M0N0RFMTIz
RUY0QTkwMDJCM0Q4NiAvKiBKU0RpcmVjdG9yeUVudHJ5Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGlyZWN0b3J5RW50cnlDdXN0b20uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OTg3ODUzOTEyMkNBMDY0MDAzQUFCREEgLyogRGly
ZWN0b3J5RW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRGly
ZWN0b3J5RW50cnkuY3BwOyBwYXRoID0gZmlsZWFwaS9EaXJlY3RvcnlFbnRyeS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5ODc4NTNBMTIyQ0EwNjQwMDNBQUJEQSAvKiBEaXJl
Y3RvcnlFbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBEaXJlY3RvcnlF
bnRyeS5oOyBwYXRoID0gZmlsZWFwaS9EaXJlY3RvcnlFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4OTg3ODUzQjEyMkNBMDY0MDAzQUFCREEgLyogRGlyZWN0b3J5UmVhZGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERpcmVjdG9yeVJlYWRl
ci5jcHA7IHBhdGggPSBmaWxlYXBpL0RpcmVjdG9yeVJlYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMTkxMyw2ICsxMTkzMSw5IEBACiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAogCQkJCTI5QTgxMjA1MEZCQjlCNTIwMDUxMDI5MyAvKiBtYWMgKi8s
CisJCQkJMjk3NDQ2MzcxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuY3BwICovLAor
CQkJCTI5NzQ0NjM4MTFGRTI1N0EwMDQ1MjNGOCAvKiBBY2Nlc3NpYmlsaXR5LmggKi8sCisJCQkJ
Mjk3NDQ2MzkxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuaWRsICovLAogCQkJCTI5
QTgxMjBBMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwICovLAog
CQkJCTI5QTgxMjE2MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQuaCAq
LywKIAkJCQkyOUE4MTIxMjBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlk
Q2VsbC5jcHAgKi8sCkBAIC0xMTk1Nyw2ICsxMTk3OCw5IEBACiAJCQkJMjlBODEyMTMwRkJCOUMx
RDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZVJvdy5oICovLAogCQkJCTI5QTgxMjE5MEZC
QjlDMUQwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hlLmNwcCAqLywKIAkJCQkyOUE4MTIxQTBGQkI5
QzFEMDA1MTAyOTMgLyogQVhPYmplY3RDYWNoZS5oICovLAorCQkJCTI5NzQ0NjNBMTFGRTI1N0Ew
MDQ1MjNGOCAvKiBTY3JlZW5SZWFkZXIuY3BwICovLAorCQkJCTI5NzQ0NjNCMTFGRTI1N0EwMDQ1
MjNGOCAvKiBTY3JlZW5SZWFkZXIuaCAqLywKKwkJCQkyOTc0NDYzQzExRkUyNTdBMDA0NTIzRjgg
LyogU2NyZWVuUmVhZGVyLmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gYWNjZXNzaWJpbGl0eTsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNTE0OCw2ICsxNTE3Miw4IEBACiAJCUE4
M0I3OTEwMENDQjAwMUIwMDBCMDgyNSAvKiBDb3JlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyOTc0NDY2RDExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nl
c3NpYmlsaXR5LmNwcCAqLywKKwkJCQkyOTc0NDY2RTExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nl
c3NpYmlsaXR5LmggKi8sCiAJCQkJNjVERjMxRDgwOUQxQzEyMjAwMEJFMzI1IC8qIEpTQXR0ci5j
cHAgKi8sCiAJCQkJNjVERjMxRDkwOUQxQzEyMzAwMEJFMzI1IC8qIEpTQXR0ci5oICovLAogCQkJ
CTkzRjlCNzlFMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5jcHAgKi8sCkBAIC0x
NTIwMiw2ICsxNTIyOCw4IEBACiAJCQkJNjVERjMxRUMwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmggKi8sCiAJCQkJRTRCNDIzODUwQ0JGQjczQzAwQUYyRUNFIC8q
IEpTUHJvZ3Jlc3NFdmVudC5jcHAgKi8sCiAJCQkJRTRCNDIzODYwQ0JGQjczQzAwQUYyRUNFIC8q
IEpTUHJvZ3Jlc3NFdmVudC5oICovLAorCQkJCTI5NzQ0NjhDMTFGRTJCRTEwMDQ1MjNGOCAvKiBK
U1NjcmVlblJlYWRlci5jcHAgKi8sCisJCQkJMjk3NDQ2OEQxMUZFMkJFMTAwNDUyM0Y4IC8qIEpT
U2NyZWVuUmVhZGVyLmggKi8sCiAJCQkJNjVERjMxRUYwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTVGV4
dC5jcHAgKi8sCiAJCQkJNjVERjMxRjAwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTVGV4dC5oICovLAog
CQkJKTsKQEAgLTE3ODEyLDYgKzE3ODQwLDcgQEAKIAkJCQlCNTMyMEQ2QjEyMkEyNEU5MDAyRDE0
NDAgLyogRm9udFBsYXRmb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjVCNURDNkExMTlC
QjNENTAwMkE4NzkwIC8qIEFic3RyYWN0RGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
RTFCMUQxMEZGNTk4NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMjk3NDQ2M0UxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTI5QTgxMjJFMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJ
QUdyaWRDZWxsLmggaW4gSGVhZGVycyAqLywKIAkJCQkyOUE4MTIzMzBGQkI5QzFEMDA1MTAyOTMg
LyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmggaW4gSGVhZGVycyAqLywKIAkJCQkyOUE4MTIz
QjBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xOTE0MSw2ICsxOTE3MCw3IEBACiAJCQkJNTlFRTEyMkUxMTA2MDgwRjAwODg1
MTE2IC8qIEpOSVV0aWxpdHlQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURGNDA5
OUU2NDkyMDA1NkU1ODEgLyogSm9pblRleHROb2Rlc0NvbW1hbmQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxOEY4ODA1MEZGOTU3QUYwMDgwRjA0NSAvKiBKU0Fic3RyYWN0V29ya2VyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkyOTc0NDY3MDExRkUyQjMyMDA0NTIzRjggLyogSlNBY2Nlc3NpYmlsaXR5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUVFQ0YwMTEwNTA3MEM0MDAwOTlGQUIgLyogSlNBcnJh
eUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlFRUNGMUMxMDUwNzJGMzAwMDk5RkFCIC8q
IEpTQXJyYXlCdWZmZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjI0M0QwMTExQkMzMUY3
MDBDQzAwNkEgLyogSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCBpbiBIZWFkZXJzICovLApAQCAt
MTkzNjksNiArMTkzOTksNyBAQAogCQkJCUJDRkUyRjEyMEMxQjU4MzgwMDIwMjM1RiAvKiBKU1Jl
Y3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNzREQTQ5MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JH
QkNvbG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VDMDFDMzBDMjc0REREMDA5RjRFQzkgLyog
SlNTY3JlZW4uaCBpbiBIZWFkZXJzICovLAorCQkJCTI5NzQ0NjhGMTFGRTJCRTEwMDQ1MjNGOCAv
KiBKU1NjcmVlblJlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUZBMzdFRkIxMTcyRkRBNjAw
QzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUZBMzdFRkQx
MTcyRkRBNjAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxRDA3QTdGMEZGOTM1Q0EwMDk1RURDRSAvKiBKU1NoYXJlZFdvcmtlci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xOTg5NCw2ICsxOTkyNSw3IEBACiAJCQkJMUNFRkM5QjkwRDc4REM4QzAwN0Qy
NTc5IC8qIFNjaGVkdWxlUGFpci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE2MkM3RjUxMUY3N0VG
QjAwNjEyRUZFIC8qIFNjaGVtZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VDMDFC
RTBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmggaW4gSGVhZGVycyAqLywKKwkJCQkyOTc0NDY0
MTExRkUyNTdBMDA0NTIzRjggLyogU2NyZWVuUmVhZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
ODREODJDMTExRDM0NzQ4MDA5NzI5OTAgLyogU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3QUZENEE4QjExMzFDMjc2MDAzNUI4ODMgLyogU2NyaXB0QnJlYWtw
b2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGMUQyMUYwRUYzNUMyQTAwREE4NzUzIC8qIFNj
cmlwdENhY2hlZEZyYW1lRGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMDYyMSw2ICsyMDY1Myw3
IEBACiAJCQlpc2EgPSBQQlhQcm9qZWN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDE0
OUMyODQzMDg5MDJCMTEwMDhBOUVGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBC
WFByb2plY3QgIldlYkNvcmUiICovOwogCQkJY29tcGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUg
Mi40IjsKKwkJCWRldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsKIAkJCWhhc1NjYW5uZWRGb3JF
bmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25zID0gKAogCQkJCUVuZ2xpc2gsCkBAIC0yMDg2
MSw2ICsyMDg5NCw3IEBACiAJCQlmaWxlcyA9ICgKIAkJCQlCNUI1REM2OTExOUJCM0Q1MDAyQTg3
OTAgLyogQWJzdHJhY3REYXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MUUxQjFEMDBG
RjU5ODY5MDA1NzZCM0IgLyogQWJzdHJhY3RXb3JrZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
Mjk3NDQ2M0QxMUZFMjU3QTAwNDUyM0Y4IC8qIEFjY2Vzc2liaWxpdHkuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMjlBODEyMjgwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlBUklBR3Jp
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyOUE4MTIzMDBGQkI5QzFEMDA1MTAyOTMgLyogQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyOUE4MTIyRDBG
QkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMjE2NjEsNiArMjE2OTUsNyBAQAogCQkJCTU5RUUxMjJDMTEwNjA4MDUwMDg4NTEx
NiAvKiBKTklVdGlsaXR5UHJpdmF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOURGMzA5
OUU2NDkyMDA1NkU1ODEgLyogSm9pblRleHROb2Rlc0NvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDE4Rjg4MDQwRkY5NTdBRTAwODBGMDQ1IC8qIEpTQWJzdHJhY3RXb3JrZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMjk3NDQ2NkYxMUZFMkIzMjAwNDUyM0Y4IC8qIEpTQWNjZXNzaWJp
bGl0eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUVFQ0YwMDEwNTA3MEM0MDAwOTlGQUIgLyog
SlNBcnJheUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzI3NUNCMzExQzVFODVDMDBD
OTIwNkMgLyogSlNBcnJheUJ1ZmZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUVF
Q0YxQjEwNTA3MkYzMDAwOTlGQUIgLyogSlNBcnJheUJ1ZmZlclZpZXcuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yMTk1NSw2ICsyMTk5MCw3IEBACiAJCQkJQkNGRTJGMTEwQzFCNTgzNzAwMjAyMzVG
IC8qIEpTUmVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzc0REE0ODEwMTNGNDY4MDA3OTg3
QUQgLyogSlNSR0JDb2xvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VDMDFDMjBDMjc0RERE
MDA5RjRFQzkgLyogSlNTY3JlZW4uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjk3NDQ2OEUxMUZF
MkJFMTAwNDUyM0Y4IC8qIEpTU2NyZWVuUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTlG
QTM3RUZBMTE3MkZEQTYwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOUZBMzdFRkMxMTcyRkRBNjAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUZBMzdFRTcxMTcyRkNGMDAwQzRDRDU1IC8qIEpTU2Ny
aXB0UHJvZmlsZU5vZGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMjQ2NSw2ICsyMjUw
MSw3IEBACiAJCQkJMUNFMjRGOTcwRDdDQUYwRTAwN0UwNEMyIC8qIFNjaGVkdWxlUGFpck1hYy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTUxNjJDN0Y0MTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVS
ZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VDMDFCRDBDMjc0REFDMDA5RjRFQzkg
LyogU2NyZWVuLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI5NzQ0NjQwMTFGRTI1N0EwMDQ1MjNG
OCAvKiBTY3JlZW5SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg0RDgyQzIxMUQzNDc0
ODAwOTcyOTkwIC8qIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyMDBCMTkwOTExQzI3N0Q5MDBEQ0NEM0EgLyogU2NyaXB0QnJlYWtwb2ludC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0MUYxRDIyMDBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVk
RnJhbWVEYXRhLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5oCShyZXZpc2lvbiA2NzU3MCkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDEyIEBACiBjbGFzcyBX
ZWJDb3JlVGV4dE1hcmtlcjsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBT
VVBQT1JUU19KU0FDQ0VTU0lCSUxJVFkgMQorI2Vsc2UKKyNkZWZpbmUgU1VQUE9SVFNfSlNBQ0NF
U1NJQklMSVRZIDAKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxB
cmVhRWxlbWVudDsKQEAgLTEyMCwxMSArMTI2LDIzIEBAIHB1YmxpYzoKICAgICAgICAgQVhSb3dD
b3VudENoYW5nZWQsCiAgICAgICAgIEFYUm93Q29sbGFwc2VkLAogICAgICAgICBBWFJvd0V4cGFu
ZGVkLAorICAgICAgICBBWFNjcmVlbkNoYW5nZWQsCisgICAgICAgIEFYRWxlbWVudHNDaGFuZ2Vk
CiAgICAgfTsKIAogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBBWE5v
dGlmaWNhdGlvbiwgYm9vbCBwb3N0VG9FbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25v
dXNseSk7CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBE
b2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBib29sIHBvc3RUb0VsZW1lbnQsIFBvc3RUeXBlID0g
UG9zdEFzeW5jaHJvbm91c2x5KTsKIAorI2lmIFNVUFBPUlRTX0pTQUNDRVNTSUJJTElUWQorICAg
IGJvb2wgaXNTY3JlZW5SZWFkZXJSdW5uaW5nKCkgY29uc3Q7CisgICAgU3RyaW5nIHNjcmVlblJl
YWRlclZlcnNpb24oKSBjb25zdDsKKyAgICBTdHJpbmcgc2NyZWVuUmVhZGVyTmFtZSgpIGNvbnN0
OworI2Vsc2UKKyAgICBib29sIGlzU2NyZWVuUmVhZGVyUnVubmluZygpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgU3RyaW5nIHNjcmVlblJlYWRlclZlcnNpb24oKSBjb25zdCB7IHJldHVy
biBudWxsQXRvbTsgfQorICAgIFN0cmluZyBzY3JlZW5SZWFkZXJOYW1lKCkgY29uc3QgeyByZXR1
cm4gbnVsbEF0b207IH0KKyNlbmRpZgorICAgIAogcHJvdGVjdGVkOgogICAgIHZvaWQgcG9zdFBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNhdGlvbik7
CiAKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5jcHAJKHJldmlzaW9u
IDApCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eS5jcHAJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiQWNjZXNzaWJpbGl0eS5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgor
I2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2lu
Y2x1ZGUgIlNjcmVlblJlYWRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0FjY2Vzc2li
aWxpdHk6OkFjY2Vzc2liaWxpdHkoRnJhbWUqIGZyYW1lKQorICAgIDogbV9mcmFtZShmcmFtZSkg
Cit7Cit9CisKK0FjY2Vzc2liaWxpdHk6On5BY2Nlc3NpYmlsaXR5KCkKK3sKKyAgICBkaXNjb25u
ZWN0RnJhbWUoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5OjpkaXNjb25uZWN0RnJhbWUoKQor
eworICAgIGlmIChtX3NjcmVlblJlYWRlcikgeworICAgICAgICBtX3NjcmVlblJlYWRlci0+ZGlz
Y29ubmVjdEZyYW1lKCk7CisgICAgICAgIG1fc2NyZWVuUmVhZGVyID0gMDsKKyAgICB9CisgICAg
bV9mcmFtZSA9IDA7Cit9CisgICAgCit2b2lkIEFjY2Vzc2liaWxpdHk6OnNjcmVlbkNoYW5nZWQo
KQoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIERvY3Vt
ZW50KiBkb2MgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jKQorICAgICAgICBy
ZXR1cm47CisgICAgCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdCA9IGRvYy0+YXhPYmpl
Y3RDYWNoZSgpLT5nZXRPckNyZWF0ZShkb2MtPnJlbmRlcmVyKCkpOworICAgIGRvYy0+YXhPYmpl
Y3RDYWNoZSgpLT5wb3N0Tm90aWZpY2F0aW9uKHJvb3QsIGRvYywgQVhPYmplY3RDYWNoZTo6QVhT
Y3JlZW5DaGFuZ2VkLCBmYWxzZSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eTo6ZWxlbWVudHND
aGFuZ2VkKCkKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAg
ICBEb2N1bWVudCogZG9jID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvYykKKyAg
ICAgICAgcmV0dXJuOworICAgIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3QgPSBkb2Mt
PmF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoZG9jLT5yZW5kZXJlcigpKTsKKyAgICBkb2Mt
PmF4T2JqZWN0Q2FjaGUoKS0+cG9zdE5vdGlmaWNhdGlvbihyb290LCBkb2MsIEFYT2JqZWN0Q2Fj
aGU6OkFYRWxlbWVudHNDaGFuZ2VkLCBmYWxzZSk7Cit9CisgICAgCitTY3JlZW5SZWFkZXIqIEFj
Y2Vzc2liaWxpdHk6OnNjcmVlblJlYWRlcigpIGNvbnN0Cit7CisgICAgaWYgKCFtX3NjcmVlblJl
YWRlcikKKyAgICAgICAgbV9zY3JlZW5SZWFkZXIgPSBTY3JlZW5SZWFkZXI6OmNyZWF0ZShtX2Zy
YW1lKTsKKyAgICAKKyAgICByZXR1cm4gbV9zY3JlZW5SZWFkZXIuZ2V0KCk7Cit9CisgICAgCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHkuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IEFjY2Vzc2liaWxpdHlfaAorI2RlZmluZSBBY2Nlc3NpYmlsaXR5X2gKKworI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIEZyYW1lOwor
Y2xhc3MgU2NyZWVuUmVhZGVyOworICAgIAorY2xhc3MgQWNjZXNzaWJpbGl0eSA6IHB1YmxpYyBS
ZWZDb3VudGVkPEFjY2Vzc2liaWxpdHk+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5PiBjcmVhdGUoRnJhbWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgQWNjZXNzaWJpbGl0eShmcmFtZSkpOyB9CisgICAgfkFjY2Vzc2liaWxpdHkoKTsKKyAgICAK
KyAgICBTY3JlZW5SZWFkZXIqIHNjcmVlblJlYWRlcigpIGNvbnN0OworICAgIHZvaWQgc2NyZWVu
Q2hhbmdlZCgpOworICAgIHZvaWQgZWxlbWVudHNDaGFuZ2VkKCk7CisgICAgCisgICAgdm9pZCBk
aXNjb25uZWN0RnJhbWUoKTsKKyAgICAKK3ByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eShGcmFt
ZSopOworICAgIEZyYW1lKiBtX2ZyYW1lOworICAgIG11dGFibGUgUmVmUHRyPFNjcmVlblJlYWRl
cj4gbV9zY3JlZW5SZWFkZXI7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gQWNjZXNzaWJpbGl0eV9oCkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHkuaWRsCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHkuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
bW9kdWxlIHdpbmRvdyB7CisKKyAgICBpbnRlcmZhY2UgW09taXRDb25zdHJ1Y3Rvcl0gQWNjZXNz
aWJpbGl0eSB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTY3JlZW5SZWFkZXIgc2NyZWVu
UmVhZGVyOworCisgICAgICAgIHZvaWQgZWxlbWVudHNDaGFuZ2VkKCk7CisgICAgICAgIHZvaWQg
c2NyZWVuQ2hhbmdlZCgpOworCisgICAgfTsKK30KSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0
eS9TY3JlZW5SZWFkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9T
Y3JlZW5SZWFkZXIuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1Nj
cmVlblJlYWRlci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2NyZWVuUmVhZGVyLmgiCisKKyNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJG
cmFtZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NjcmVlblJlYWRlcjo6U2NyZWVuUmVh
ZGVyKEZyYW1lKiBmcmFtZSkKKyAgICA6IG1fZnJhbWUoZnJhbWUpCit7Cit9CisKK1NjcmVlblJl
YWRlcjo6flNjcmVlblJlYWRlcigpCit7CisgICAgZGlzY29ubmVjdEZyYW1lKCk7Cit9CisgICAg
Cit2b2lkIFNjcmVlblJlYWRlcjo6ZGlzY29ubmVjdEZyYW1lKCkKK3sKKyAgICBtX2ZyYW1lID0g
MDsKK30KKworYm9vbCBTY3JlZW5SZWFkZXI6OmFjdGl2ZSgpIGNvbnN0Cit7CisgICAgaWYgKCFt
X2ZyYW1lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgRG9jdW1lbnQqIGRvYyA9
IG1fZnJhbWUtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAKKyAgICByZXR1cm4gZG9jLT5heE9iamVjdENhY2hlKCktPmlzU2NyZWVuUmVhZGVy
UnVubmluZygpOworfQorICAgIAorU3RyaW5nIFNjcmVlblJlYWRlcjo6dmVyc2lvbigpIGNvbnN0
Cit7CisgICAgRG9jdW1lbnQqIGRvYyA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CisgICAgaWYgKCFk
b2MpCisgICAgICAgIHJldHVybiBudWxsQXRvbTsKKyAgICAKKyAgICByZXR1cm4gZG9jLT5heE9i
amVjdENhY2hlKCktPnNjcmVlblJlYWRlclZlcnNpb24oKTsKK30KKworU3RyaW5nIFNjcmVlblJl
YWRlcjo6bmFtZSgpIGNvbnN0Cit7CisgICAgRG9jdW1lbnQqIGRvYyA9IG1fZnJhbWUtPmRvY3Vt
ZW50KCk7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVybiBudWxsQXRvbTsKKyAgICAKKyAg
ICByZXR1cm4gZG9jLT5heE9iamVjdENhY2hlKCktPnNjcmVlblJlYWRlck5hbWUoKTsKK30KKyAg
ICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmU7CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkv
U2NyZWVuUmVhZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVl
blJlYWRlci5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L1NjcmVlblJl
YWRlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBTY3JlZW5SZWFkZXJfaAorI2RlZmluZSBTY3JlZW5SZWFkZXJfaAorCisjaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIEZyYW1l
OworICAgIAorY2xhc3MgU2NyZWVuUmVhZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8U2NyZWVuUmVh
ZGVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2NyZWVuUmVhZGVyPiBjcmVh
dGUoRnJhbWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2NyZWVuUmVhZGVyKGZyYW1l
KSk7IH0KKyAgICB+U2NyZWVuUmVhZGVyKCk7CisgICAgCisgICAgU3RyaW5nIHZlcnNpb24oKSBj
b25zdDsKKyAgICBTdHJpbmcgbmFtZSgpIGNvbnN0OworICAgIGJvb2wgYWN0aXZlKCkgY29uc3Q7
CisgICAgCisgICAgdm9pZCBkaXNjb25uZWN0RnJhbWUoKTsKK3ByaXZhdGU6CisgICAgU2NyZWVu
UmVhZGVyKEZyYW1lKik7CisgICAgRnJhbWUqIG1fZnJhbWU7Cit9OworICAgIAorfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU2NyZWVuUmVhZGVyX2gKSW5kZXg6IFdlYkNvcmUv
YWNjZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9TY3JlZW5SZWFkZXIuaWRsCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L1NjcmVlblJlYWRlci5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCittb2R1bGUgd2luZG93IHsKKworICAgIGludGVyZmFjZSAgW09taXRDb25z
dHJ1Y3Rvcl0gU2NyZWVuUmVhZGVyIHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyB2ZXJzaW9uOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGFjdGl2ZTsKKyAgICB9OworCit9
CisKSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMu
bW0JKHJldmlzaW9uIDY3NTcwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVj
dENhY2hlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Niw2ICs3NiwxMiBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhCiAgICAgICAgIGNhc2UgQVhMYXlvdXRDb21w
bGV0ZToKICAgICAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9ICJBWExheW91dENvbXBsZXRlIjsK
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYU2NyZWVuQ2hhbmdlZDoKKyAgICAg
ICAgICAgIG1hY05vdGlmaWNhdGlvbiA9ICJBWFNjcmVlbkNoYW5nZWQiOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgQVhFbGVtZW50c0NoYW5nZWQ6CisgICAgICAgICAgICBtYWNO
b3RpZmljYXRpb24gPSAiQVhFbGVtZW50c0NoYW5nZWQiOworICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgQVhMb2FkQ29tcGxldGU6CiAgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24g
PSAiQVhMb2FkQ29tcGxldGUiOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMjMsNiArMTI5LDIy
IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2gKIHsKIH0KIAorYm9v
bCBBWE9iamVjdENhY2hlOjppc1NjcmVlblJlYWRlclJ1bm5pbmcoKSBjb25zdAoreworICAgIC8v
IElmIHRoZSBlbmhhbmNlZCB1c2VyIGludGVyZmFjZSBpcyBlbmFibGVkLCBpdCBtZWFucyBWb2lj
ZU92ZXIgaXMgcnVubmluZy4KKyAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlcklu
dGVyZmFjZUVuYWJsZWQoKTsKK30KKworU3RyaW5nIEFYT2JqZWN0Q2FjaGU6OnNjcmVlblJlYWRl
ck5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBudWxsQXRvbTsKK30KKworU3RyaW5nIEFYT2Jq
ZWN0Q2FjaGU6OnNjcmVlblJlYWRlclZlcnNpb24oKSBjb25zdAoreyAKKyAgICByZXR1cm4gbnVs
bEF0b207Cit9ICAgIAorCiB9CiAKICNlbmRpZiAvLyBIQVZFKEFDQ0VTU0lCSUxJVFkpCkluZGV4
OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0
TWFjLm1tCShyZXZpc2lvbiA2NzU3MCkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNj
ZXNzaWJpbGl0eU9iamVjdE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAog
I2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKIAogI2ltcG9ydCAiQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXIuaCIKKyNpbXBvcnQgIkFYT2JqZWN0Q2FjaGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCShyZXZpc2lv
biA2NzU3MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQkod29y
a2luZyBjb3B5KQpAQCAtMSw0ICsxLDUgQEAKIHdlYmtpdGd0a19nZG9tX2J1aWx0X3NvdXJjZXMg
Kz0gXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01BY2Nlc3NpYmlsaXR5LmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUF0dHIuY3BwIFwKIAlEZXJpdmVkU291
cmNlcy93ZWJraXQvV2ViS2l0RE9NQXR0clByaXZhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Vi
a2l0L1dlYktpdERPTUJhckluZm8uY3BwIFwKQEAgLTIxNiw2ICsyMTcsNyBAQCB3ZWJraXRndGtf
Z2RvbV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9N
UmFuZ2VQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01TY3JlZW4u
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NU2NyZWVuUHJpdmF0ZS5oIFwK
KwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NU2NyZWVuUmVhZGVyLmggXAogCURlcml2
ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01TdG9yYWdlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
d2Via2l0L1dlYktpdERPTVN0b3JhZ2VQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtp
dC9XZWJLaXRET01TdHlsZU1lZGlhLmNwcCBcCkBAIC0yNDQsNiArMjQ2LDcgQEAgd2Via2l0Z3Rr
X2dkb21fYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERP
TVhQYXRoUmVzdWx0UHJpdmF0ZS5oCiAKIHdlYmtpdGd0a19idWlsdF9oX2FwaSArPSBcCisJRGVy
aXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUFjY2Vzc2liaWxpdHkuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvd2Via2l0L1dlYktpdERPTUNTU1J1bGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0
L1dlYktpdERPTUNTU1J1bGVMaXN0LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRE
T01DU1NTdHlsZURlY2xhcmF0aW9uLmggXApAQCAtMzU3LDYgKzM2MCw3IEBAIHdlYmtpdGd0a19i
dWlsdF9oX2FwaSArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU9iamVjdC5o
IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NTmF2aWdhdG9yLmggXAogCURlcml2
ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01TY3JlZW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvd2Vi
a2l0L1dlYktpdERPTVNjcmVlblJlYWRlci5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2Vi
S2l0RE9NV2ViS2l0UG9pbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTURP
TU1pbWVUeXBlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01NaW1lVHlw
ZUFycmF5LmggXApJbmRleDogV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAJKHJldmlzaW9uIDY3NTcwKQorKysgV2ViQ29y
ZS9wYWdlL05hdmlnYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKIAorI2luY2x1ZGUgIkFj
Y2Vzc2liaWxpdHkuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDb29raWVKYXIu
aCIKICNpbmNsdWRlICJET01NaW1lVHlwZUFycmF5LmgiCkBAIC02Niw2ICs2NywxMCBAQCB2b2lk
IE5hdmlnYXRvcjo6ZGlzY29ubmVjdEZyYW1lKCkKICAgICAgICAgbV9nZW9sb2NhdGlvbi0+ZGlz
Y29ubmVjdEZyYW1lKCk7CiAgICAgICAgIG1fZ2VvbG9jYXRpb24gPSAwOwogICAgIH0KKyAgICBp
ZiAobV9hY2Nlc3NpYmlsaXR5KSB7CisgICAgICAgIG1fYWNjZXNzaWJpbGl0eS0+ZGlzY29ubmVj
dEZyYW1lKCk7CisgICAgICAgIG1fYWNjZXNzaWJpbGl0eSA9IDA7CisgICAgfQogICAgIG1fZnJh
bWUgPSAwOwogfQogCkBAIC0xMjcsNiArMTMyLDEzIEBAIERPTU1pbWVUeXBlQXJyYXkqIE5hdmln
YXRvcjo6bWltZVR5cGVzKCkKICAgICAgICAgbV9taW1lVHlwZXMgPSBET01NaW1lVHlwZUFycmF5
OjpjcmVhdGUobV9mcmFtZSk7CiAgICAgcmV0dXJuIG1fbWltZVR5cGVzLmdldCgpOwogfQorICAg
IAorQWNjZXNzaWJpbGl0eSogTmF2aWdhdG9yOjphY2Nlc3NpYmlsaXR5KCkgY29uc3QKK3sKKyAg
ICBpZiAoIW1fYWNjZXNzaWJpbGl0eSkKKyAgICAgICAgbV9hY2Nlc3NpYmlsaXR5ID0gQWNjZXNz
aWJpbGl0eTo6Y3JlYXRlKG1fZnJhbWUpOworICAgIHJldHVybiBtX2FjY2Vzc2liaWxpdHkuZ2V0
KCk7Cit9CiAKIGJvb2wgTmF2aWdhdG9yOjpjb29raWVFbmFibGVkKCkgY29uc3QKIHsKSW5kZXg6
IFdlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvTmF2
aWdhdG9yLmgJKHJldmlzaW9uIDY3NTcwKQorKysgV2ViQ29yZS9wYWdlL05hdmlnYXRvci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Y2xhc3MgQWNjZXNzaWJpbGl0eTsKIGNsYXNzIERPTU1pbWVUeXBlQXJyYXk7CiBjbGFzcyBET01Q
bHVnaW5BcnJheTsKIGNsYXNzIEZyYW1lOwpAQCAtNDYsNiArNDcsNyBAQCBwdWJsaWM6CiAgICAg
U3RyaW5nIGxhbmd1YWdlKCkgY29uc3Q7CiAgICAgRE9NUGx1Z2luQXJyYXkqIHBsdWdpbnMoKSBj
b25zdDsKICAgICBET01NaW1lVHlwZUFycmF5KiBtaW1lVHlwZXMoKSBjb25zdDsKKyAgICBBY2Nl
c3NpYmlsaXR5KiBhY2Nlc3NpYmlsaXR5KCkgY29uc3Q7CiAgICAgYm9vbCBjb29raWVFbmFibGVk
KCkgY29uc3Q7CiAgICAgYm9vbCBqYXZhRW5hYmxlZCgpIGNvbnN0OwogCkBAIC02Niw2ICs2OCw3
IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBSZWZQdHI8RE9NUGx1Z2luQXJyYXk+IG1fcGx1Z2lu
czsKICAgICBtdXRhYmxlIFJlZlB0cjxET01NaW1lVHlwZUFycmF5PiBtX21pbWVUeXBlczsKICAg
ICBtdXRhYmxlIFJlZlB0cjxHZW9sb2NhdGlvbj4gbV9nZW9sb2NhdGlvbjsKKyAgICBtdXRhYmxl
IFJlZlB0cjxBY2Nlc3NpYmlsaXR5PiBtX2FjY2Vzc2liaWxpdHk7CiB9OwogCiB9CkluZGV4OiBX
ZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvTmF2
aWdhdG9yLmlkbAkocmV2aXNpb24gNjc1NzApCisrKyBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBwbGF0Zm9ybTsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVBsdWdpbkFycmF5IHBsdWdpbnM7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01NaW1lVHlwZUFycmF5IG1pbWVUeXBlczsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIEFjY2Vzc2liaWxpdHkgYWNjZXNzaWJpbGl0eTsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyBwcm9kdWN0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHByb2R1Y3RTdWI7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
dmVuZG9yOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjc1NzApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wOS0xNSAgQ2hyaXMgRmxl
aXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFYOiBTdXBwb3J0IG1ldGhvZHMgZm9yIHdlYiBhcHBzIHRv
IGludGVyYWN0IHdpdGggdGhlIG5hdGl2ZSBhY2Nlc3NpYmlsaXR5IEFQSXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMDA1CisKKyAgICAgICAgKiBm
YXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvZG9tL25hdmlnYXRvci1kZXRhY2hlZC1uby1jcmFzaC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHktZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9qcy1h
Y2Nlc3NpYmlsaXR5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0L2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisKIDIwMTAtMDktMTUgIEp1
bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNvZGVhdXJvcmEub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9uYXZp
Z2F0b3ItZGV0YWNoZWQtbm8tY3Jhc2gtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL25hdmlnYXRvci1kZXRhY2hlZC1uby1jcmFzaC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDY3NTcwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vbmF2aWdhdG9yLWRldGFj
aGVkLW5vLWNyYXNoLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAK
IFRoaXMgdGVzdHMgdGhhdCB0aGUgbmF2aWdhdG9yIG9iamVjdCBvZiBhIGRlbGV0ZWQgZnJhbWUg
aXMgZGlzY29ubmVjdGVkIHByb3Blcmx5LiBBY2Nlc3NpbmcgZmllbGRzIG9yIG1ldGhvZHMgc2hv
dWxkbid0IGNyYXNoIHRoZSBicm93c2VyLiAKICBDaGVjayBOYXZpZ2F0b3IKK25hdmlnYXRvci5h
Y2Nlc3NpYmlsaXR5IGlzIE9LCiBuYXZpZ2F0b3IuYXBwQ29kZU5hbWUgaXMgT0sKIG5hdmlnYXRv
ci5hcHBOYW1lIGlzIE9LCiBuYXZpZ2F0b3IuYXBwVmVyc2lvbiBpcyBPSwpAQCAtMTYsNiArMTcs
NyBAQCBuYXZpZ2F0b3IucHJvZHVjdFN1YiBpcyBPSwogbmF2aWdhdG9yLnVzZXJBZ2VudCBpcyBP
SwogbmF2aWdhdG9yLnZlbmRvciBpcyBPSwogbmF2aWdhdG9yLnZlbmRvclN1YiBpcyBPSworbmF2
aWdhdG9yLmFjY2Vzc2liaWxpdHkgaXMgT0sKIG5hdmlnYXRvci5hcHBDb2RlTmFtZSBpcyBPSwog
bmF2aWdhdG9yLmFwcE5hbWUgaXMgT0sKIG5hdmlnYXRvci5hcHBWZXJzaW9uIGlzIE9LCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRh
bmNlLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2NzU3MCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMyw2ICszLDggQEAgTWFrZSBzdXJlIHByb3RvdHlwZXMgYXJlIHNldCB1cCB1c2luZyB0aAog
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK1BBU1MgQWNjZXNzaWJpbGl0eSBmcm9tIGlu
bmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5j
bGllbnRJbmZvcm1hdGlvbi5hY2Nlc3NpYmlsaXR5CitQQVNTIEFjY2Vzc2liaWxpdHlQcm90b3R5
cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuZGVm
YXVsdFZpZXcuY2xpZW50SW5mb3JtYXRpb24uYWNjZXNzaWJpbGl0eS5fX3Byb3RvX18KIEZBSUwg
QXJyYXkgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQu
ZGVmYXVsdFZpZXcuY29uc29sZS5wcm9maWxlcwogUEFTUyBBdHRyIGZyb20gaW5uZXIuZG9jdW1l
bnQuZm9ybXMudGVzdEZvcm0uMC5hdHRyaWJ1dGVzLjAKIFBBU1MgQXR0ckNvbnN0cnVjdG9yIGZy
b20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5hdHRyaWJ1dGVzLjAuY29uc3RydWN0
b3IKQEAgLTE4Niw2ICsxODgsOCBAQCBQQVNTIFNWR1BhaW50Q29uc3RydWN0b3IgZnJvbSBpbm5l
ci5nZXRDCiBQQVNTIFNWR1BhaW50UHJvdG90eXBlIGZyb20gaW5uZXIuZ2V0Q29tcHV0ZWRTdHls
ZShpbm5lci5kb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGZpbGwpLl9fcHJvdG9f
XwogUEFTUyBTY3JlZW4gZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVy
RG9jdW1lbnQuZGVmYXVsdFZpZXcuc2NyZWVuCiBQQVNTIFNjcmVlblByb3RvdHlwZSBmcm9tIGlu
bmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5z
Y3JlZW4uX19wcm90b19fCitQQVNTIFNjcmVlblJlYWRlciBmcm9tIGlubmVyLmRvY3VtZW50LmZv
cm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5jbGllbnRJbmZvcm1hdGlv
bi5hY2Nlc3NpYmlsaXR5LnNjcmVlblJlYWRlcgorUEFTUyBTY3JlZW5SZWFkZXJQcm90b3R5cGUg
ZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuZGVmYXVs
dFZpZXcuY2xpZW50SW5mb3JtYXRpb24uYWNjZXNzaWJpbGl0eS5zY3JlZW5SZWFkZXIuX19wcm90
b19fCiBQQVNTIFN0b3JhZ2UgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93
bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcubG9jYWxTdG9yYWdlCiBQQVNTIFN0b3JhZ2VDb25zdHJ1
Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5k
ZWZhdWx0Vmlldy5sb2NhbFN0b3JhZ2UuY29uc3RydWN0b3IKIFBBU1MgU3RvcmFnZVByb3RvdHlw
ZSBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZh
dWx0Vmlldy5sb2NhbFN0b3JhZ2UuX19wcm90b19fCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDY3NTcwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
cm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjE0MCw2ICsyMTQwLDEz
IEBAIHdpbmRvdy5jYXB0dXJlRXZlbnRzIFtmdW5jdGlvbl0KIHdpbmRvdy5jbGVhckludGVydmFs
IFtmdW5jdGlvbl0KIHdpbmRvdy5jbGVhclRpbWVvdXQgW2Z1bmN0aW9uXQogd2luZG93LmNsaWVu
dEluZm9ybWF0aW9uIFtvYmplY3QgTmF2aWdhdG9yXQord2luZG93LmNsaWVudEluZm9ybWF0aW9u
LmFjY2Vzc2liaWxpdHkgW29iamVjdCBBY2Nlc3NpYmlsaXR5XQord2luZG93LmNsaWVudEluZm9y
bWF0aW9uLmFjY2Vzc2liaWxpdHkuZWxlbWVudHNDaGFuZ2VkIFtmdW5jdGlvbl0KK3dpbmRvdy5j
bGllbnRJbmZvcm1hdGlvbi5hY2Nlc3NpYmlsaXR5LnNjcmVlbkNoYW5nZWQgW2Z1bmN0aW9uXQor
d2luZG93LmNsaWVudEluZm9ybWF0aW9uLmFjY2Vzc2liaWxpdHkuc2NyZWVuUmVhZGVyIFtvYmpl
Y3QgU2NyZWVuUmVhZGVyXQord2luZG93LmNsaWVudEluZm9ybWF0aW9uLmFjY2Vzc2liaWxpdHku
c2NyZWVuUmVhZGVyLmFjdGl2ZSBbYm9vbGVhbl0KK3dpbmRvdy5jbGllbnRJbmZvcm1hdGlvbi5h
Y2Nlc3NpYmlsaXR5LnNjcmVlblJlYWRlci5uYW1lIFtzdHJpbmddCit3aW5kb3cuY2xpZW50SW5m
b3JtYXRpb24uYWNjZXNzaWJpbGl0eS5zY3JlZW5SZWFkZXIudmVyc2lvbiBbc3RyaW5nXQogd2lu
ZG93LmNsaWVudEluZm9ybWF0aW9uLmFwcENvZGVOYW1lIFtzdHJpbmddCiB3aW5kb3cuY2xpZW50
SW5mb3JtYXRpb24uYXBwTmFtZSBbc3RyaW5nXQogd2luZG93LmNsaWVudEluZm9ybWF0aW9uLmFw
cFZlcnNpb24gW3N0cmluZ10KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L2pzLWFjY2Vzc2liaWxpdHktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHktZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvanMtYWNjZXNzaWJpbGl0eS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTMgQEAKK1RoaXMgdGVzdHMgdGhlIGphdmFzY3JpcHQgaW50ZXJmYWNlIHRvIGFjY2Vzc2li
aWxpdHkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYXguc2NyZWVuUmVh
ZGVyLmFjdGl2ZSBpcyBmYWxzZQorUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgbmFtZSBp
cyAnQVhTY3JlZW5DaGFuZ2VkJworUEFTUyBuYW1lIGlzICdBWEVsZW1lbnRzQ2hhbmdlZCcKKwpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvanMtYWNjZXNzaWJp
bGl0eS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L2pzLWFjY2Vzc2liaWxpdHkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2pzLWFjY2Vzc2liaWxpdHkuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw2OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dD4KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJU
aGlzIHRlc3RzIHRoZSBqYXZhc2NyaXB0IGludGVyZmFjZSB0byBhY2Nlc3NpYmlsaXR5Iik7CisK
KyAgICB2YXIgYm9keSA9IDA7CisgICAgdmFyIG5hbWUgPSAwOworICAgIGZ1bmN0aW9uIG5vdGlm
eUNhbGxiYWNrKG5vdGlmaWNhdGlvbikgeyAgCisgICAgICAgIG5hbWUgPSBub3RpZmljYXRpb247
CisgICAgICAgIGlmIChuYW1lID09ICJBWFNjcmVlbkNoYW5nZWQiKSB7CisgICAgICAgICAgICBz
aG91bGRCZSgibmFtZSIsICInQVhTY3JlZW5DaGFuZ2VkJyIpOworICAgICAgICB9CisgICAgICAg
IGVsc2UgaWYgKG5hbWUgPT0gIkFYRWxlbWVudHNDaGFuZ2VkIikgeworICAgICAgICAgICAgc2hv
dWxkQmUoIm5hbWUiLCAiJ0FYRWxlbWVudHNDaGFuZ2VkJyIpOworICAgICAgICAgICAgYm9keS5y
ZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOworICAgICAgICAgICAgd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0Pgor
Cis8c2NyaXB0PgorICAgIHZhciBheCA9IHdpbmRvdy5uYXZpZ2F0b3IuYWNjZXNzaWJpbGl0eTsK
KworICAgIC8vIHNjcmVlbiByZWFkZXIgc2hvdWxkIG5vdCBiZSBydW5uaW5nIHdpdGhpbiBsYXlv
dXQgdGVzdHMuCisgICAgc2hvdWxkQmUoImF4LnNjcmVlblJlYWRlci5hY3RpdmUiLCAiZmFsc2Ui
KTsKKworICAgIC8vIHNob3VsZCBub3QgY2F1c2UgYW4gZXJyb3IuCisgICAgdmFyIHZlcnNpb24g
PSBheC5zY3JlZW5SZWFkZXIudmVyc2lvbjsKKworICAgIC8vIHNob3VsZCBub3QgY2F1c2UgYW4g
ZXJyb3IuCisgICAgdmFyIHZlcnNpb24gPSBheC5zY3JlZW5SZWFkZXIubmFtZTsKKworICAgIGlm
ICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgd2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiYm9keSIpLmZvY3VzKCk7CisKKyAgICAgICAgYm9keSA9IHdpbmRvdy5hY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsKKworICAgICAgICB2YXIgYWRkZWRO
b3RpZmljYXRpb24gPSBib2R5LmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmeUNhbGxiYWNr
KTsKKyAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKKworICAg
ICAgICAvLyBzaG91bGQgY2F1c2UgYSBBWFNjcmVlbkNoYW5nZWQgdG8gYmUgc2VudCBvdXQuCisg
ICAgICAgIGF4LnNjcmVlbkNoYW5nZWQoKTsKKworICAgICAgICAvLyBzaG91bGQgY2F1c2UgYSBB
WEVsZW1lbnRzQ2hhbmdlZCB0byBiZSBzZW50IG91dC4KKyAgICAgICAgYXguZWxlbWVudHNDaGFu
Z2VkKCk7CisgICAgfQorCisgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0
PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL3F0L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjc1NzApCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMTA0LDYgKzIxMDQsMTMgQEAgd2luZG93LmNhcHR1cmVF
dmVudHMgW2Z1bmN0aW9uXQogd2luZG93LmNsZWFySW50ZXJ2YWwgW2Z1bmN0aW9uXQogd2luZG93
LmNsZWFyVGltZW91dCBbZnVuY3Rpb25dCiB3aW5kb3cuY2xpZW50SW5mb3JtYXRpb24gW29iamVj
dCBOYXZpZ2F0b3JdCit3aW5kb3cuY2xpZW50SW5mb3JtYXRpb24uYWNjZXNzaWJpbGl0eSBbb2Jq
ZWN0IEFjY2Vzc2liaWxpdHldCit3aW5kb3cuY2xpZW50SW5mb3JtYXRpb24uYWNjZXNzaWJpbGl0
eS5lbGVtZW50c0NoYW5nZWQgW2Z1bmN0aW9uXQord2luZG93LmNsaWVudEluZm9ybWF0aW9uLmFj
Y2Vzc2liaWxpdHkuc2NyZWVuQ2hhbmdlZCBbZnVuY3Rpb25dCit3aW5kb3cuY2xpZW50SW5mb3Jt
YXRpb24uYWNjZXNzaWJpbGl0eS5zY3JlZW5SZWFkZXIgW29iamVjdCBTY3JlZW5SZWFkZXJdCit3
aW5kb3cuY2xpZW50SW5mb3JtYXRpb24uYWNjZXNzaWJpbGl0eS5zY3JlZW5SZWFkZXIuYWN0aXZl
IFtib29sZWFuXQord2luZG93LmNsaWVudEluZm9ybWF0aW9uLmFjY2Vzc2liaWxpdHkuc2NyZWVu
UmVhZGVyLmFjdGl2ZUVsZW1lbnQgW251bGxdCit3aW5kb3cuY2xpZW50SW5mb3JtYXRpb24uYWNj
ZXNzaWJpbGl0eS5zY3JlZW5SZWFkZXIudmVyc2lvbiBbc3RyaW5nXQogd2luZG93LmNsaWVudElu
Zm9ybWF0aW9uLmFwcENvZGVOYW1lIFtzdHJpbmddCiB3aW5kb3cuY2xpZW50SW5mb3JtYXRpb24u
YXBwTmFtZSBbc3RyaW5nXQogd2luZG93LmNsaWVudEluZm9ybWF0aW9uLmFwcFZlcnNpb24gW3N0
cmluZ10K
</data>
<flag name="review"
          id="57121"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>