<?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>104168</bug_id>
          
          <creation_ts>2012-12-05 13:53:20 -0800</creation_ts>
          <short_desc>Web Inspector: Add events for tracking when a page is about to start loading or is loading</short_desc>
          <delta_ts>2013-01-24 08:51:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>107049</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ken Kania">kkania</reporter>
          <assigned_to name="Ken Kania">kkania</assigned_to>
          <cc>aandrey</cc>
    
    <cc>apavlov</cc>
    
    <cc>dglazkov</cc>
    
    <cc>japhet</cc>
    
    <cc>keishi</cc>
    
    <cc>leviw</cc>
    
    <cc>loislo</cc>
    
    <cc>peter+ews</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>784084</commentid>
    <comment_count>0</comment_count>
    <who name="Ken Kania">kkania</who>
    <bug_when>2012-12-05 13:53:20 -0800</bug_when>
    <thetext>We&apos;d like to be able to be notified when a page is about to start loading or is loading. I propose adding 4 hidden navigation scheduling events to the remote debugging protocol:

1) Page.loadingStarted
This event will be sent in WebCore::ProgressTracker::progressStarted. No parameters. For now it will only be sent for the main frame.

2) Page.loadingStopped
This event will be sent in WebCore::ProgressTracker::finalProgressComplete. No parameters. For now it will only be sent for the main frame.

3) Page.navigationScheduled
This event will be sent in WebCore::NavigationScheduler when a navigation is scheduled. It will include a parameter of how long until the navigation is scheduled to occur. For now it will only be sent for the main frame.

4) Page.noNavigationScheduled
This event will be sent in WebCore::NavigationScheduler AFTER either a scheduled navigation is canceled (and there&apos;s no replacement navigation) or a scheduled navigation has been processed. By processed I mean after the WebCore::ScheduledNavigation::Fire method has returned. For many types of navigations, this will result in a Page.loadingStart before Page.noNavigationScheduled. Some navigations may not start synchronously with respect to the Fire method (for example, history.back() in the chromium port). In the future, perhaps we could improve the code to handle those cases too. However, I think this would be quite difficult and would require scattering the codebase (within WebCore and the port) with instrumentation calls every time we drop a navigation we were considering. Regardless of whether we improve this in the future, this event as proposed would still catch most navigation cases and I think would be useful. For now it will only be sent for the main frame.


Here&apos;s an example of how a inspector client could use these events to track page navigations:

1) Client sends imaginary dispatchMouseEvent command to click a button that will submit a form which will cause a navigation.
2) Processing of the click causes a new navigation to be scheduled in WebCore::NavigationScheduler.
3) The Page.navigationScheduled event is sent.
4) Processing of the click finishes and the command response for dispatchMouseEvent is sent.
5) Client sees the Page.navigationScheduled event before the command response and decides to wait for the scheduled navigation to occur.
6) The timer for the scheduled navigation fires in WebCore::NavigationScheduler, and the WebCore::ScheduledNavigation::Fire is called.

option A - WebCore decides not to navigate because the page&apos;s onsubmit script said no.
7) The WebCore::ScheduledNavigation::Fire method finishes and WebCore::NavigationScheduler sends Page.noNavigationScheduled.
8) The client sees the Page.noNavigationScheduled and stops waiting for the canceled navigation.

option B - WebCore decides to navigate
7) Page.loadingStarted is sent before WebCore::ScheduledNavigation::Fire returns.
8) The WebCore::ScheduledNavigation::Fire method finishes and WebCore::NavigationScheduler sends Page.noNavigationScheduled.
9) The client sees that loading has started, and decides to wait for that to finish, even though it sees there are no more scheduled navigations.


If you want to discuss names, here&apos;s some other ones I considered for Page.navigationScheduled:
Page.aboutToNavigate
Page.mayNavigate
Page.navigationPlanned
Page.consideringNavigation
Page.potentialNavigation
Page.newPotentialNavigation
Page.newPendingNavigation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784085</commentid>
    <comment_count>1</comment_count>
    <who name="Ken Kania">kkania</who>
    <bug_when>2012-12-05 13:54:02 -0800</bug_when>
    <thetext>Does this sound reasonable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786318</commentid>
    <comment_count>2</comment_count>
      <attachid>178310</attachid>
    <who name="Ken Kania">kkania</who>
    <bug_when>2012-12-07 17:10:27 -0800</bug_when>
    <thetext>Created attachment 178310
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786348</commentid>
    <comment_count>3</comment_count>
      <attachid>178310</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-07 18:34:27 -0800</bug_when>
    <thetext>Comment on attachment 178310
Patch

Attachment 178310 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15218030</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786349</commentid>
    <comment_count>4</comment_count>
      <attachid>178310</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-12-07 18:34:44 -0800</bug_when>
    <thetext>Comment on attachment 178310
Patch

Attachment 178310 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15212336</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787813</commentid>
    <comment_count>5</comment_count>
      <attachid>178660</attachid>
    <who name="Ken Kania">kkania</who>
    <bug_when>2012-12-10 16:04:25 -0800</bug_when>
    <thetext>Created attachment 178660
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787816</commentid>
    <comment_count>6</comment_count>
    <who name="Ken Kania">kkania</who>
    <bug_when>2012-12-10 16:07:01 -0800</bug_when>
    <thetext>I changed a few things from the original proposal. First, I send the events for all frames, along with the frame info. I was planning on adding this later, but it was simple enough and it simplified the tests. Second, I used different event names than proposed to try to match the frameNavigated and frameDetached events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788005</commentid>
    <comment_count>7</comment_count>
      <attachid>178660</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-10 21:21:13 -0800</bug_when>
    <thetext>Comment on attachment 178660
Patch

Attachment 178660 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15257463</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788885</commentid>
    <comment_count>8</comment_count>
      <attachid>178660</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-11 15:49:23 -0800</bug_when>
    <thetext>Comment on attachment 178660
Patch

Attachment 178660 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15276417

New failing tests:
http/tests/inspector/appcache/appcache-iframe-manifests.html
http/tests/inspector/resource-main-cookies.php
http/tests/inspector/extensions-network-redirect.html
http/tests/inspector/resource-tree/resource-request-content-while-loading.html
http/tests/inspector/change-iframe-src.html
http/tests/inspector/network/x-frame-options-deny.html
http/tests/inspector/appcache/appcache-manifest-with-non-existing-file.html
http/tests/inspector/console-resource-errors.html
http/tests/inspector/resource-tree/resource-tree-errors-reload.html
inspector/audits/audits-panel-functional.html
http/tests/inspector/resource-tree/resource-tree-non-unique-url.html
http/tests/inspector/network/network-initiator-from-console.html
http/tests/inspector/extensions-useragent.html
http/tests/inspector/appcache/appcache-swap.html
http/tests/inspector/network/network-iframe-load-and-delete.html
http/tests/inspector/network/download.html
inspector/console/alert-toString-exception.html
inspector/debugger/debugger-autocontinue-on-syntax-error.html
http/tests/inspector/network/network-initiator.html
http/tests/inspector/extensions-ignore-cache.html
fast/loader/javascript-url-in-object.html
http/tests/inspector/resource-har-pages.html
fast/history/history-subframe-with-name.html
inspector/audits/audits-panel-noimages-functional.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791817</commentid>
    <comment_count>9</comment_count>
      <attachid>179527</attachid>
    <who name="Ken Kania">kkania</who>
    <bug_when>2012-12-14 13:34:00 -0800</bug_when>
    <thetext>Created attachment 179527
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793573</commentid>
    <comment_count>10</comment_count>
      <attachid>179527</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-12-18 05:24:27 -0800</bug_when>
    <thetext>Comment on attachment 179527
Patch

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

&gt; Source/WebCore/inspector/Inspector.json:494
&gt; +                    { &quot;name&quot;: &quot;frame&quot;, &quot;$ref&quot;: &quot;Frame&quot;, &quot;description&quot;: &quot;Frame object.&quot; }

Originally, we were only sending the frame information once in frameNavigated and then operated frameId only. Is there a predefined order of appearance of frameNavigated / frameStartedLoading / frameScheduledNavigation? It would be great if we could send frame with the first one and operate frameId with the latter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793710</commentid>
    <comment_count>11</comment_count>
    <who name="Ken Kania">kkania</who>
    <bug_when>2012-12-18 09:11:28 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 179527 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=179527&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/Inspector.json:494
&gt; &gt; +                    { &quot;name&quot;: &quot;frame&quot;, &quot;$ref&quot;: &quot;Frame&quot;, &quot;description&quot;: &quot;Frame object.&quot; }
&gt; 
&gt; Originally, we were only sending the frame information once in frameNavigated and then operated frameId only. Is there a predefined order of appearance of frameNavigated / frameStartedLoading / frameScheduledNavigation? It would be great if we could send frame with the first one and operate frameId with the latter.

frameStartedLoading should come first, I think in all circumstances. However, when the frame starts loading, many of the Frame characteristics (e.g., url) are from the previous navigation. It would be fine to only pass the full Frame on frameNavigated and leave the others as just frameId. Sound good?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793722</commentid>
    <comment_count>12</comment_count>
      <attachid>179959</attachid>
    <who name="Ken Kania">kkania</who>
    <bug_when>2012-12-18 09:24:54 -0800</bug_when>
    <thetext>Created attachment 179959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793738</commentid>
    <comment_count>13</comment_count>
      <attachid>179959</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-12-18 09:41:03 -0800</bug_when>
    <thetext>Comment on attachment 179959
Patch

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

Please fix the naming prior to landing.

&gt; Source/WebCore/inspector/Inspector.json:494
&gt; +                    { &quot;name&quot;: &quot;frame&quot;, &quot;$ref&quot;: &quot;Network.FrameId&quot;, &quot;description&quot;: &quot;Id of the frame that has started loading.&quot; }

You should name it frameId</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793926</commentid>
    <comment_count>14</comment_count>
      <attachid>180001</attachid>
    <who name="Ken Kania">kkania</who>
    <bug_when>2012-12-18 12:19:13 -0800</bug_when>
    <thetext>Created attachment 180001
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794007</commentid>
    <comment_count>15</comment_count>
      <attachid>180001</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-12-18 13:48:23 -0800</bug_when>
    <thetext>Comment on attachment 180001
Patch

Attachment 180001 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15400311</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794206</commentid>
    <comment_count>16</comment_count>
      <attachid>180065</attachid>
    <who name="Ken Kania">kkania</who>
    <bug_when>2012-12-18 17:20:25 -0800</bug_when>
    <thetext>Created attachment 180065
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794222</commentid>
    <comment_count>17</comment_count>
      <attachid>180065</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-12-18 17:53:32 -0800</bug_when>
    <thetext>Comment on attachment 180065
Patch

Attachment 180065 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15408414</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794391</commentid>
    <comment_count>18</comment_count>
      <attachid>180065</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-18 23:39:50 -0800</bug_when>
    <thetext>Comment on attachment 180065
Patch

Attachment 180065 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15406500</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794680</commentid>
    <comment_count>19</comment_count>
      <attachid>180065</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-19 08:10:46 -0800</bug_when>
    <thetext>Comment on attachment 180065
Patch

Rejecting attachment 180065 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
t-queue/Source/WebKit/chromium/third_party/smhasher/src --revision 147 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
49&gt;At revision 147.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/15403740</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802611</commentid>
    <comment_count>20</comment_count>
      <attachid>181756</attachid>
    <who name="Ken Kania">kkania</who>
    <bug_when>2013-01-08 14:07:25 -0800</bug_when>
    <thetext>Created attachment 181756
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802689</commentid>
    <comment_count>21</comment_count>
      <attachid>181756</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-08 14:56:11 -0800</bug_when>
    <thetext>Comment on attachment 181756
Patch

Attachment 181756 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15758273</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802782</commentid>
    <comment_count>22</comment_count>
      <attachid>181799</attachid>
    <who name="Ken Kania">kkania</who>
    <bug_when>2013-01-08 16:24:34 -0800</bug_when>
    <thetext>Created attachment 181799
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802887</commentid>
    <comment_count>23</comment_count>
      <attachid>181799</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-08 18:53:53 -0800</bug_when>
    <thetext>Comment on attachment 181799
Patch

Attachment 181799 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15766242</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802917</commentid>
    <comment_count>24</comment_count>
      <attachid>181799</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-01-08 19:34:51 -0800</bug_when>
    <thetext>Comment on attachment 181799
Patch

Attachment 181799 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15757342</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807413</commentid>
    <comment_count>25</comment_count>
      <attachid>182801</attachid>
    <who name="Ken Kania">kkania</who>
    <bug_when>2013-01-15 10:11:42 -0800</bug_when>
    <thetext>Created attachment 182801
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808176</commentid>
    <comment_count>26</comment_count>
      <attachid>182801</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-16 01:51:44 -0800</bug_when>
    <thetext>Comment on attachment 182801
Patch

Clearing flags on attachment: 182801

Committed r139853: &lt;http://trac.webkit.org/changeset/139853&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808177</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-16 01:51:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808657</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-16 13:32:25 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 107049</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808670</commentid>
    <comment_count>29</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2013-01-16 13:38:16 -0800</bug_when>
    <thetext>Apologies for the rollout. This ppapi_unittests to fail to compile on ChromeOS builders.

Logs: http://build.chromium.org/p/tryserver.chromium/builders/linux_chromeos/builds/74823/steps/ppapi_unittests/logs/stdio

From the logs:
/mnt/scratch0/b_used/build/slave/linux_chromeos/build/src/build/../sconsbuild/Release/ppapi_unittests: symbol lookup error: /mnt/scratch0/b_used/build/slave/linux_chromeos/build/src/out/Release/lib.target/libwebkit.so: undefined symbol: _ZN7WebCore17InspectorFrontend4Page31frameClearedScheduledNavigationERKN3WTF6StringE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809400</commentid>
    <comment_count>30</comment_count>
    <who name="Ken Kania">kkania</who>
    <bug_when>2013-01-17 09:43:58 -0800</bug_when>
    <thetext>(In reply to comment #29)
&gt; Apologies for the rollout. This ppapi_unittests to fail to compile on ChromeOS builders.
&gt; 
&gt; Logs: http://build.chromium.org/p/tryserver.chromium/builders/linux_chromeos/builds/74823/steps/ppapi_unittests/logs/stdio
&gt; 
&gt; From the logs:
&gt; /mnt/scratch0/b_used/build/slave/linux_chromeos/build/src/build/../sconsbuild/Release/ppapi_unittests: symbol lookup error: /mnt/scratch0/b_used/build/slave/linux_chromeos/build/src/out/Release/lib.target/libwebkit.so: undefined symbol: _ZN7WebCore17InspectorFrontend4Page31frameClearedScheduledNavigationERKN3WTF6StringE

Sorry for making a mess!

I was able to reproduce these build failures (see my try job http://build.chromium.org/p/tryserver.chromium/builders/linux_chromeos/builds/74956). It seems for some reason it isn&apos;t regenerating InspectorFrontend.cpp. I&apos;ve noticed the webkit ews system also has sometimes not been able to build, I suppose for a similar reason. The build/tests work fine when I submitted the same job with clobber=True (http://build.chromium.org/p/tryserver.chromium/builders/linux_chromeos/builds/74982).

I&apos;ll take a look and see if I can find any problems with how the dependencies are configured.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810710</commentid>
    <comment_count>31</comment_count>
    <who name="Ken Kania">kkania</who>
    <bug_when>2013-01-18 09:30:18 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; (In reply to comment #29)
&gt; &gt; Apologies for the rollout. This ppapi_unittests to fail to compile on ChromeOS builders.
&gt; &gt; 
&gt; &gt; Logs: http://build.chromium.org/p/tryserver.chromium/builders/linux_chromeos/builds/74823/steps/ppapi_unittests/logs/stdio
&gt; &gt; 
&gt; &gt; From the logs:
&gt; &gt; /mnt/scratch0/b_used/build/slave/linux_chromeos/build/src/build/../sconsbuild/Release/ppapi_unittests: symbol lookup error: /mnt/scratch0/b_used/build/slave/linux_chromeos/build/src/out/Release/lib.target/libwebkit.so: undefined symbol: _ZN7WebCore17InspectorFrontend4Page31frameClearedScheduledNavigationERKN3WTF6StringE
&gt; 
&gt; Sorry for making a mess!
&gt; 
&gt; I was able to reproduce these build failures (see my try job http://build.chromium.org/p/tryserver.chromium/builders/linux_chromeos/builds/74956). It seems for some reason it isn&apos;t regenerating InspectorFrontend.cpp. I&apos;ve noticed the webkit ews system also has sometimes not been able to build, I suppose for a similar reason. The build/tests work fine when I submitted the same job with clobber=True (http://build.chromium.org/p/tryserver.chromium/builders/linux_chromeos/builds/74982).
&gt; 
&gt; I&apos;ll take a look and see if I can find any problems with how the dependencies are configured.

I was able to repro the build problem locally with make. I&apos;ve filed http://code.google.com/p/gyp/issues/detail?id=318</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813308</commentid>
    <comment_count>32</comment_count>
      <attachid>184034</attachid>
    <who name="Ken Kania">kkania</who>
    <bug_when>2013-01-22 12:22:51 -0800</bug_when>
    <thetext>Created attachment 184034
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814102</commentid>
    <comment_count>33</comment_count>
      <attachid>184034</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-01-23 04:49:13 -0800</bug_when>
    <thetext>Comment on attachment 184034
Patch

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

&gt; Source/WebCore/inspector/Inspector.json:3401
&gt; +                    { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;X coordinate of the event relative to the main frame&apos;s viewport.&quot;},

Why is this changing here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814233</commentid>
    <comment_count>34</comment_count>
    <who name="Ken Kania">kkania</who>
    <bug_when>2013-01-23 08:38:49 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; (From update of attachment 184034 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184034&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/Inspector.json:3401
&gt; &gt; +                    { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;X coordinate of the event relative to the main frame&apos;s viewport.&quot;},
&gt; 
&gt; Why is this changing here?

It&apos;s minor cleanup and it has the good side effect of bypassing the gyp problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814248</commentid>
    <comment_count>35</comment_count>
      <attachid>184034</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-23 08:58:52 -0800</bug_when>
    <thetext>Comment on attachment 184034
Patch

Rejecting attachment 184034 from commit-queue.

kkania@chromium.org does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815055</commentid>
    <comment_count>36</comment_count>
      <attachid>184034</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-23 21:44:03 -0800</bug_when>
    <thetext>Comment on attachment 184034
Patch

Clearing flags on attachment: 184034

Committed r140649: &lt;http://trac.webkit.org/changeset/140649&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815056</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-23 21:44:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815377</commentid>
    <comment_count>38</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2013-01-24 05:48:05 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; (In reply to comment #33)
&gt; &gt; (From update of attachment 184034 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184034&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/inspector/Inspector.json:3401
&gt; &gt; &gt; +                    { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;X coordinate of the event relative to the main frame&apos;s viewport.&quot;},
&gt; &gt; 
&gt; &gt; Why is this changing here?
&gt; 
&gt; It&apos;s minor cleanup and it has the good side effect of bypassing the gyp problem.

FYI. JSComiler argues with you:

Source/WebCore/inspector/front-end/protocol-externs.js:2523: WARNING - optional arguments must be at the end
InputAgent.dispatchMouseEvent = function(type, opt_modifiers, opt_timestamp, x, y, opt_button, opt_clickCount, opt_callback) {}
                                ^

0 error(s), 2 warning(s), 80.4% typed
Compiling InjectedScriptSource.js...
Source/WebCore/inspector/front-end/protocol-externs.js:2523: WARNING - optional arguments must be at the end
InputAgent.dispatchMouseEvent = function(type, opt_modifiers, opt_timestamp, x, y, opt_button, opt_clickCount, opt_callback) {}
                                ^

0 error(s), 1 warning(s), 90.0% typed
Compiling InjectedScriptCanvasModuleSource.js...
Source/WebCore/inspector/front-end/protocol-externs.js:2523: WARNING - optional arguments must be at the end
InputAgent.dispatchMouseEvent = function(type, opt_modifiers, opt_timestamp, x, y, opt_button, opt_clickCount, opt_callback) {}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815487</commentid>
    <comment_count>39</comment_count>
    <who name="Ken Kania">kkania</who>
    <bug_when>2013-01-24 08:14:16 -0800</bug_when>
    <thetext>(In reply to comment #38)
&gt; (In reply to comment #34)
&gt; &gt; (In reply to comment #33)
&gt; &gt; &gt; (From update of attachment 184034 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184034&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/inspector/Inspector.json:3401
&gt; &gt; &gt; &gt; +                    { &quot;name&quot;: &quot;x&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;X coordinate of the event relative to the main frame&apos;s viewport.&quot;},
&gt; &gt; &gt; 
&gt; &gt; &gt; Why is this changing here?
&gt; &gt; 
&gt; &gt; It&apos;s minor cleanup and it has the good side effect of bypassing the gyp problem.
&gt; 
&gt; FYI. JSComiler argues with you:
&gt; 
&gt; Source/WebCore/inspector/front-end/protocol-externs.js:2523: WARNING - optional arguments must be at the end
&gt; InputAgent.dispatchMouseEvent = function(type, opt_modifiers, opt_timestamp, x, y, opt_button, opt_clickCount, opt_callback) {}
&gt;                                 ^
&gt; 
&gt; 0 error(s), 2 warning(s), 80.4% typed
&gt; Compiling InjectedScriptSource.js...
&gt; Source/WebCore/inspector/front-end/protocol-externs.js:2523: WARNING - optional arguments must be at the end
&gt; InputAgent.dispatchMouseEvent = function(type, opt_modifiers, opt_timestamp, x, y, opt_button, opt_clickCount, opt_callback) {}
&gt;                                 ^
&gt; 
&gt; 0 error(s), 1 warning(s), 90.0% typed
&gt; Compiling InjectedScriptCanvasModuleSource.js...
&gt; Source/WebCore/inspector/front-end/protocol-externs.js:2523: WARNING - optional arguments must be at the end
&gt; InputAgent.dispatchMouseEvent = function(type, opt_modifiers, opt_timestamp, x, y, opt_button, opt_clickCount, opt_callback) {}

Ah, forgot about the frontend JS func. I&apos;ve moved the params back to their original place in https://bugs.webkit.org/show_bug.cgi?id=107828. Please take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815515</commentid>
    <comment_count>40</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-01-24 08:51:30 -0800</bug_when>
    <thetext>
&gt; Ah, forgot about the frontend JS func. I&apos;ve moved the params back to their original place in https://bugs.webkit.org/show_bug.cgi?id=107828. Please take a look.

You should file a new bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178310</attachid>
            <date>2012-12-07 17:10:27 -0800</date>
            <delta_ts>2012-12-10 16:04:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104168-20121207170753.patch</filename>
            <type>text/plain</type>
            <size>14949</size>
            <attacher name="Ken Kania">kkania</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY3ODE3ZDhkMjAzODUy
ZTI3ZDAwZGZiNzQwYjljN2YyM2M0NTQwZC4uZTdhZGQ1YjU1MDdlYmU3MjE4MWFiMzI3ZmU2MWFj
YjY4NjU2MmQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTEyLTA2ICBLZW4g
S2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJbnNwZWN0b3JdIEFkZCBl
dmVudHMgZm9yIHRyYWNraW5nIHBhZ2UgbG9hZHMgYW5kIHNjaGVkdWxlZCBuYXZpZ2F0aW9ucy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDE2OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGV2
ZW50cyBhcmUgbmVlZGVkIGZvciBjbGllbnRzIHdobyBuZWVkIHRvIGJlIGF3YXJlIG9mIHdoZW4g
YSBwYWdlIGlzCisgICAgICAgIG5hdmlnYXRpbmcgb3IgYWJvdXQgdG8gbmF2aWdhdGUuIFNvbWUg
Y2xpZW50cyBtYXkgd2lzaCB0byBwcmV2ZW50IGludGVyYWN0aW9uCisgICAgICAgIHdpdGggdGhl
IHBhZ2UgZHVyaW5nIHRoaXMgdGltZS4gVHdvIG9mIHRoZSBuZXcgZXZlbnRzIHRyYWNrIGxvYWRp
bmcgc3RhcnQgYW5kCisgICAgICAgIHN0b3AsIGFzIG1lYXN1cmVkIGJ5IHRoZSBQcm9ncmVzc1Ry
YWNrZXIuIFRoZSBvdGhlciB0d28gZXZlbnRzIHRyYWNrIHdoZW4gYQorICAgICAgICBwYWdlIGhh
cyBhIG5ldyBzY2hlZHVsZWQgbmF2aWdhdGlvbiBhbmQgd2hlbiBpdCBubyBsb25nZXIgaGFzIGEg
c2NoZWR1bGVkCisgICAgICAgIG5hdmlnYXRpb24uIFRoZXNlIGxhdHRlciB0d28gZXZlbnRzIHdv
bid0IGFsbG93IHRoZSBjbGllbnQgdG8gZGV0ZXJtaW5lIGlmCisgICAgICAgIGEgbG9hZCBpcyBn
b2luZyB0byBoYXBwZW4gaW4gYWxsIGNpcmN1bXN0YW5jZXMsIGJ1dCBpcyBzdWZmaWNpZW50IGZv
ciBtYW55IGNhc2VzLgorCisgICAgICAgIFdpbGwgYWRkIHRlc3RzLiBUaGlzIGlzIGFuIGV4cGVy
aW1lbnRhbCBwYXRjaCB0byBtYWtlIHN1cmUgdGhpcyBpcyBhcHByb3ByaWF0ZS4KKworICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkaW5nU3RhcnRlZEltcGwpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkaW5nU3RvcHBlZElt
cGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpuYXZpZ2F0
aW9uU2NoZWR1bGVkSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246Om5vTmF2aWdhdGlvblNjaGVkdWxlZEltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvYWRp
bmdTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkaW5nU3RvcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246Om5hdmlnYXRpb25TY2hlZHVsZWQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpub05hdmlnYXRpb25TY2hlZHVsZWQp
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpJbnNwZWN0b3JQYWdlQWdlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50Ojpsb2FkaW5nU3RhcnRlZCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6bG9hZGlu
Z1N0b3BwZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpuYXZpZ2F0
aW9uU2NoZWR1bGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6bm9O
YXZpZ2F0aW9uU2NoZWR1bGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50Lmg6CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TmF2aWdhdGlvblNjaGVkdWxlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TmF2aWdhdGlvblNjaGVkdWxlcjo6c2NoZWR1bGVIaXN0b3J5TmF2aWdhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uU2NoZWR1bGVyOjp0aW1lckZpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OnN0YXJ0VGltZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TmF2aWdhdGlvblNjaGVkdWxlcjo6Y2FuY2VsKToKKyAgICAgICAgKiBsb2FkZXIvUHJv
Z3Jlc3NUcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzVHJhY2tlcjo6cHJv
Z3Jlc3NTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzVHJhY2tlcjo6ZmluYWxQ
cm9ncmVzc0NvbXBsZXRlKToKKwogMjAxMi0xMi0wNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFtWOF0gUmVuYW1lIFY4RE9NV3JhcHBlciBtZW1iZXIgZnVuY3Rp
b25zIHRvIGJlIG1vcmUgZGVzY3JpcHRpdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgppbmRleCA4ZjIyYzdhZmUxODE2Y2FjZjUyNzNmODc2YTk1OTg4OTcyOWUyNzY5Li44
NDNjNTA2ZDU3ZjhhOWVmODg1MzNmZGI5ZjIyZWI3OTQyYTM1MDQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC00ODEsNiArNDgxLDI5IEBACiAgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJhbWVJZCIs
ICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgZnJhbWUgdGhhdCBoYXMgYmVlbiBkZXRhY2hlZC4i
IH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImxv
YWRpbmdTdGFydGVkIiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hl
biBsb2FkaW5nIGhhcyBzdGFydGVkIGZvciB0aGUgbWFpbiBmcmFtZS4iLAorICAgICAgICAgICAg
ICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICJuYW1lIjogImxvYWRpbmdTdG9wcGVkIiwKKyAgICAgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiRmlyZWQgd2hlbiBsb2FkaW5nIGhhcyBzdG9wcGVkIGZvciB0aGUgbWFpbiBm
cmFtZS4iLAorICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogIm5hdmlnYXRpb25TY2hlZHVs
ZWQiLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVuIGEgcG90ZW50
aWFsIG5hdmlnYXRpb24gaGFzIGJlZW4gc2NoZWR1bGVkLiIsCisgICAgICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGVsYXkiLCAidHlw
ZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRGVsYXkgKGluIHNlY29uZHMpIHVudGlsIHRo
ZSBuYXZpZ2F0aW9uIGlzIHNjaGVkdWxlZCB0byBiZWdpbi4gVGhlIG5hdmlnYXRpb24gaXMgbm90
IGd1YXJhbnRlZWQgdG8gc3RhcnQuIiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAg
ICAgICAiaGlkZGVuIjogdHJ1ZQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAibmFtZSI6ICJub05hdmlnYXRpb25TY2hlZHVsZWQiLAorICAgICAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVuIHRoZXJlIGFyZSBubyBsb25nZXIgYW55IG5h
dmlnYXRpb25zIHNjaGVkdWxlZC4iLAorICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCiAg
ICAgICAgICAgICB9CiAgICAgICAgIF0KICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA2ZjZhOWFiNmVm
MjFjNjFiMGE3YjA2MGIyNjhhZjkzODMyYzA2Njk2Li4zZDY3MmUxZTg3OGI4NGVmNTg5OTYxZGNk
NGE2MTk0OGU5N2RkZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtOTE5LDYgKzkxOSwzOCBAQCB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZGVyRGV0YWNoZWRGcm9tRnJhbWVJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqCiAgICAgICAgIGluc3BlY3RvclBhZ2VBZ2VudC0+bG9hZGVyRGV0YWNo
ZWRGcm9tRnJhbWUobG9hZGVyKTsKIH0KIAordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmxvYWRpbmdTdGFydGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBGcmFtZSogZnJhbWUpCit7CisgICAgaWYgKCFmcmFtZS0+cGFnZSgpIHx8IGZyYW1lLT5w
YWdlKCktPm1haW5GcmFtZSgpICE9IGZyYW1lKQorICAgICAgICByZXR1cm47CisgICAgaWYgKElu
c3BlY3RvclBhZ2VBZ2VudCogaW5zcGVjdG9yUGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIGluc3BlY3RvclBhZ2VBZ2VudC0+bG9h
ZGluZ1N0YXJ0ZWQoKTsKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvYWRp
bmdTdG9wcGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBG
cmFtZSogZnJhbWUpCit7CisgICAgaWYgKCFmcmFtZS0+cGFnZSgpIHx8IGZyYW1lLT5wYWdlKCkt
Pm1haW5GcmFtZSgpICE9IGZyYW1lKQorICAgICAgICByZXR1cm47CisgICAgaWYgKEluc3BlY3Rv
clBhZ2VBZ2VudCogaW5zcGVjdG9yUGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5z
cGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIGluc3BlY3RvclBhZ2VBZ2VudC0+bG9hZGluZ1N0
b3BwZWQoKTsKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Om5hdmlnYXRpb25T
Y2hlZHVsZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEZy
YW1lKiBmcmFtZSwgZG91YmxlIGRlbGF5KQoreworICAgIGlmICghZnJhbWUtPnBhZ2UoKSB8fCBm
cmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKSAhPSBmcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAg
IGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIGluc3BlY3RvclBhZ2VBZ2VudCA9IGluc3RydW1lbnRp
bmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQorICAgICAgICBpbnNwZWN0b3JQYWdlQWdl
bnQtPm5hdmlnYXRpb25TY2hlZHVsZWQoZGVsYXkpOworfQorCit2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6bm9OYXZpZ2F0aW9uU2NoZWR1bGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSogZnJhbWUpCit7CisgICAgaWYgKCFmcmFtZS0+
cGFnZSgpIHx8IGZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpICE9IGZyYW1lKQorICAgICAgICBy
ZXR1cm47CisgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogaW5zcGVjdG9yUGFnZUFnZW50ID0g
aW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIGluc3Bl
Y3RvclBhZ2VBZ2VudC0+bm9OYXZpZ2F0aW9uU2NoZWR1bGVkKCk7Cit9CisKIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveUNhY2hlZFJlc291cmNlSW1wbChDYWNoZWRS
ZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7CiAgICAgaWYgKCFpbnN0cnVtZW50aW5nQWdlbnRz
U2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oCmluZGV4IDJjNmQyYTkyOGZmZWM4YmVjY2VmNWQ5YzBmNzc0Njc0ZWJmYjUwZjIu
LjQ5NGFkM2Q1NGEwY2ZkODdjMTQ5ZWE5NjI0MjI3NTEzZDBlZGU2YzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTE5
MCw2ICsxOTAsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGZyYW1lRGV0YWNoZWRGcm9t
UGFyZW50KEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ29tbWl0TG9hZChGcmFtZSosIERv
Y3VtZW50TG9hZGVyKik7CiAgICAgc3RhdGljIHZvaWQgbG9hZGVyRGV0YWNoZWRGcm9tRnJhbWUo
RnJhbWUqLCBEb2N1bWVudExvYWRlciopOworICAgIHN0YXRpYyB2b2lkIGxvYWRpbmdTdGFydGVk
KEZyYW1lKik7CisgICAgc3RhdGljIHZvaWQgbG9hZGluZ1N0b3BwZWQoRnJhbWUqKTsKKyAgICBz
dGF0aWMgdm9pZCBuYXZpZ2F0aW9uU2NoZWR1bGVkKEZyYW1lKiwgZG91YmxlIGRlbGF5KTsKKyAg
ICBzdGF0aWMgdm9pZCBub05hdmlnYXRpb25TY2hlZHVsZWQoRnJhbWUqKTsKICAgICBzdGF0aWMg
dm9pZCB3aWxsRGVzdHJveUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKik7CiAKICAgICBz
dGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxXcml0ZUhUTUwoRG9jdW1l
bnQqLCB1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKTsKQEAgLTM4
NCw2ICszODgsMTAgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBmcmFtZURldGFjaGVkRnJv
bVBhcmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKik7CiAgICAgc3RhdGljIHZv
aWQgZGlkQ29tbWl0TG9hZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFBhZ2UqLCBEb2N1bWVu
dExvYWRlciopOwogICAgIHN0YXRpYyB2b2lkIGxvYWRlckRldGFjaGVkRnJvbUZyYW1lSW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzKiwgRG9jdW1lbnRMb2FkZXIqKTsKKyAgICBzdGF0aWMgdm9pZCBs
b2FkaW5nU3RhcnRlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKik7CisgICAgc3Rh
dGljIHZvaWQgbG9hZGluZ1N0b3BwZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSop
OworICAgIHN0YXRpYyB2b2lkIG5hdmlnYXRpb25TY2hlZHVsZWRJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqLCBGcmFtZSosIGRvdWJsZSBkZWxheSk7CisgICAgc3RhdGljIHZvaWQgbm9OYXZpZ2F0
aW9uU2NoZWR1bGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUqKTsKICAgICBzdGF0
aWMgdm9pZCB3aWxsRGVzdHJveUNhY2hlZFJlc291cmNlSW1wbChDYWNoZWRSZXNvdXJjZSopOwog
CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsV3JpdGVIVE1M
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQg
aW50IHN0YXJ0TGluZSwgRnJhbWUqKTsKQEAgLTEzMjgsNiArMTMzNiwzOCBAQCBpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvYWRlckRldGFjaGVkRnJvbUZyYW1lKEZyYW1l
KiBmcmFtZSwgRG9jdQogI2VuZGlmCiB9CiAKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6bG9hZGluZ1N0YXJ0ZWQoRnJhbWUqIGZyYW1lKQoreworI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCisgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMg
PSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQorICAgICAgICBsb2FkaW5nU3Rh
cnRlZEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZnJhbWUpOworI2VuZGlmCit9CisKK2lubGlu
ZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZGluZ1N0b3BwZWQoRnJhbWUqIGZy
YW1lKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJh
bWUpKQorICAgICAgICBsb2FkaW5nU3RvcHBlZEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZnJh
bWUpOworI2VuZGlmCit9CisKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
bmF2aWdhdGlvblNjaGVkdWxlZChGcmFtZSogZnJhbWUsIGRvdWJsZSBkZWxheSkKK3sKKyNpZiBF
TkFCTEUoSU5TUEVDVE9SKQorICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKKyAgICAgICAg
bmF2aWdhdGlvblNjaGVkdWxlZEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZnJhbWUsIGRlbGF5
KTsKKyNlbmRpZgorfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Om5v
TmF2aWdhdGlvblNjaGVkdWxlZChGcmFtZSogZnJhbWUpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RP
UikKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGlu
c3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCisgICAgICAgIG5vTmF2aWdhdGlvblNj
aGVkdWxlZEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZnJhbWUpOworI2VuZGlmCit9CisKIGlu
bGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lDYWNoZWRSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7CiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5j
cHAKaW5kZXggMDRhNTQ1ZTIwYTZiYmJjNDE5YzNlM2QxMDZhZWEyZGMzZTAyMzVlZC4uZGZmZjcx
MjM5ZDI0MjllMTljMmFlZjY5MDU5MzA4NWQyY2ExNjFlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTMzNSw2ICszMzUsNyBAQCBJ
bnNwZWN0b3JQYWdlQWdlbnQ6Okluc3BlY3RvclBhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLAogICAgICwgbV9lbmFibGVkKGZhbHNlKQogICAgICwgbV9p
c0ZpcnN0TGF5b3V0QWZ0ZXJPbkxvYWQoZmFsc2UpCiAgICAgLCBtX2dlb2xvY2F0aW9uT3ZlcnJp
ZGRlbihmYWxzZSkKKyAgICAsIG1fbmF2aWdhdGlvblNjaGVkdWxlZChmYWxzZSkKIHsKIH0KIApA
QCAtOTAyLDYgKzkwMywzMCBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6bG9hZGVyRGV0YWNo
ZWRGcm9tRnJhbWUoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICAgICAgICAgbV9sb2FkZXJUb0lk
ZW50aWZpZXIucmVtb3ZlKGl0ZXJhdG9yKTsKIH0KIAordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6
OmxvYWRpbmdTdGFydGVkKCkKK3sKKyAgICBtX2Zyb250ZW5kLT5sb2FkaW5nU3RhcnRlZCgpOwor
fQorCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6bG9hZGluZ1N0b3BwZWQoKQoreworICAgIG1f
ZnJvbnRlbmQtPmxvYWRpbmdTdG9wcGVkKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50
OjpuYXZpZ2F0aW9uU2NoZWR1bGVkKGRvdWJsZSBkZWxheSkKK3sKKyAgICBtX25hdmlnYXRpb25T
Y2hlZHVsZWQgPSB0cnVlOworICAgIG1fZnJvbnRlbmQtPm5hdmlnYXRpb25TY2hlZHVsZWQoZGVs
YXkpOworfQorCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6bm9OYXZpZ2F0aW9uU2NoZWR1bGVk
KCkKK3sKKyAgICBpZiAoIW1fbmF2aWdhdGlvblNjaGVkdWxlZCkKKyAgICAgICAgcmV0dXJuOwor
ICAgIG1fZnJvbnRlbmQtPm5vTmF2aWdhdGlvblNjaGVkdWxlZCgpOworICAgIG1fbmF2aWdhdGlv
blNjaGVkdWxlZCA9IGZhbHNlOworfQorCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6YXBwbHlT
Y3JlZW5XaWR0aE92ZXJyaWRlKGxvbmcqIHdpZHRoKQogewogICAgIGxvbmcgd2lkdGhPdmVycmlk
ZSA9IG1fc3RhdGUtPmdldExvbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmVlbldpZHRo
T3ZlcnJpZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5oCmluZGV4IDVkNDY4YTE1YmMzNzA0ZDBjNjZkMDkyYjNkMjEzODBmMDYwYTU0OGMuLjRlYjI2
NGM0NDIyNzMxZDVmMmVjZjJkMjYzNjcxODE1ZjM0M2MyODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKQEAgLTEzNyw2ICsxMzcsMTAgQEAgcHVi
bGljOgogICAgIHZvaWQgZnJhbWVOYXZpZ2F0ZWQoRG9jdW1lbnRMb2FkZXIqKTsKICAgICB2b2lk
IGZyYW1lRGV0YWNoZWQoRnJhbWUqKTsKICAgICB2b2lkIGxvYWRlckRldGFjaGVkRnJvbUZyYW1l
KERvY3VtZW50TG9hZGVyKik7CisgICAgdm9pZCBsb2FkaW5nU3RhcnRlZCgpOworICAgIHZvaWQg
bG9hZGluZ1N0b3BwZWQoKTsKKyAgICB2b2lkIG5hdmlnYXRpb25TY2hlZHVsZWQoZG91YmxlIGRl
bGF5KTsKKyAgICB2b2lkIG5vTmF2aWdhdGlvblNjaGVkdWxlZCgpOwogICAgIHZvaWQgYXBwbHlT
Y3JlZW5XaWR0aE92ZXJyaWRlKGxvbmcqKTsKICAgICB2b2lkIGFwcGx5U2NyZWVuSGVpZ2h0T3Zl
cnJpZGUobG9uZyopOwogICAgIHZvaWQgYXBwbHlFbXVsYXRlZE1lZGlhKFN0cmluZyopOwpAQCAt
MTkxLDYgKzE5NSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+
IG1fZ2VvbG9jYXRpb25Qb3NpdGlvbjsKICAgICBSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4g
bV9wbGF0Zm9ybUdlb2xvY2F0aW9uUG9zaXRpb247CiAgICAgUmVmUHRyPERldmljZU9yaWVudGF0
aW9uRGF0YT4gbV9kZXZpY2VPcmllbnRhdGlvbjsKKyAgICBib29sIG1fbmF2aWdhdGlvblNjaGVk
dWxlZDsKIH07CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25TY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVs
ZXIuY3BwCmluZGV4IGFjYmViNzg5NWUwN2ZmZGRmOTQ4NDNlNzQ5MWZmYzY4OGUxZDNkMmIuLjJi
NmZhZmFkMjllZjQzZjhlYzE2MWVmODkyNDI0ZjQ0ZWQ4NjAwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNp
bmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1l
bnQuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUlu
ZGljYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtMjg4LDYgKzI4OSw3
IEBAIHZvaWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6Y2xlYXIoKQogewogICAgIG1fdGltZXIuc3Rv
cCgpOwogICAgIG1fcmVkaXJlY3QuY2xlYXIoKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246Om5vTmF2aWdhdGlvblNjaGVkdWxlZChtX2ZyYW1lKTsKIH0KIAogaW5saW5lIGJvb2wgTmF2
aWdhdGlvblNjaGVkdWxlcjo6c2hvdWxkU2NoZWR1bGVOYXZpZ2F0aW9uKCkgY29uc3QKQEAgLTQx
MSwxMSArNDEzLDE0IEBAIHZvaWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6dGltZXJGaXJlZChUaW1l
cjxOYXZpZ2F0aW9uU2NoZWR1bGVyPiopCiB7CiAgICAgaWYgKCFtX2ZyYW1lLT5wYWdlKCkpCiAg
ICAgICAgIHJldHVybjsKLSAgICBpZiAobV9mcmFtZS0+cGFnZSgpLT5kZWZlcnNMb2FkaW5nKCkp
CisgICAgaWYgKG1fZnJhbWUtPnBhZ2UoKS0+ZGVmZXJzTG9hZGluZygpKSB7CisgICAgICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bm9OYXZpZ2F0aW9uU2NoZWR1bGVkKG1fZnJhbWUpOwog
ICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgT3duUHRyPFNjaGVkdWxlZE5hdmlnYXRpb24+
IHJlZGlyZWN0KG1fcmVkaXJlY3QucmVsZWFzZSgpKTsKICAgICByZWRpcmVjdC0+ZmlyZShtX2Zy
YW1lKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Om5vTmF2aWdhdGlvblNjaGVkdWxl
ZChtX2ZyYW1lKTsKIH0KIAogdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZShQYXNz
T3duUHRyPFNjaGVkdWxlZE5hdmlnYXRpb24+IHJlZGlyZWN0KQpAQCAtNDU4LDYgKzQ2Myw3IEBA
IHZvaWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6c3RhcnRUaW1lcigpCiAKICAgICBtX3RpbWVyLnN0
YXJ0T25lU2hvdChtX3JlZGlyZWN0LT5kZWxheSgpKTsKICAgICBtX3JlZGlyZWN0LT5kaWRTdGFy
dFRpbWVyKG1fZnJhbWUsICZtX3RpbWVyKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
Om5hdmlnYXRpb25TY2hlZHVsZWQobV9mcmFtZSwgbV9yZWRpcmVjdC0+ZGVsYXkoKSk7CiB9CiAK
IHZvaWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6Y2FuY2VsKGJvb2wgbmV3TG9hZEluUHJvZ3Jlc3Mp
CkBAIC00NjcsNiArNDczLDggQEAgdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpjYW5jZWwoYm9v
bCBuZXdMb2FkSW5Qcm9ncmVzcykKICAgICBPd25QdHI8U2NoZWR1bGVkTmF2aWdhdGlvbj4gcmVk
aXJlY3QobV9yZWRpcmVjdC5yZWxlYXNlKCkpOwogICAgIGlmIChyZWRpcmVjdCkKICAgICAgICAg
cmVkaXJlY3QtPmRpZFN0b3BUaW1lcihtX2ZyYW1lLCBuZXdMb2FkSW5Qcm9ncmVzcyk7CisKKyAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Om5vTmF2aWdhdGlvblNjaGVkdWxlZChtX2ZyYW1l
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJv
Z3Jlc3NUcmFja2VyLmNwcAppbmRleCA0ZjJiN2VjZDM3ZTI2ZGZhZGNiYjViNmI1ZmQ5NWYyNmUx
ZGY1YjJjLi4xODdjNTgyYmM1NGUyMjg0YjMwMmMwYzRkYWIxZTY1YjFhYTU1ZDNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcApAQCAtMzEsNiArMzEsNyBAQAog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJTdGF0ZU1hY2hp
bmUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIkluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZXNv
dXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMTIwLDYg
KzEyMSw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVzc1N0YXJ0ZWQoRnJhbWUqIGZy
YW1lKQogICAgIG1fbnVtUHJvZ3Jlc3NUcmFja2VkRnJhbWVzKys7CiAKICAgICBmcmFtZS0+bG9h
ZGVyKCktPmNsaWVudCgpLT5kaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpOworICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZGluZ1N0YXJ0ZWQoZnJhbWUpOwogfQogCiB2b2lkIFBy
b2dyZXNzVHJhY2tlcjo6cHJvZ3Jlc3NDb21wbGV0ZWQoRnJhbWUqIGZyYW1lKQpAQCAtMTU1LDYg
KzE1Nyw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpmaW5hbFByb2dyZXNzQ29tcGxldGUoKQog
CiAgICAgZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+c2V0TWFpbkZyYW1lRG9jdW1lbnRSZWFk
eSh0cnVlKTsKICAgICBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5wb3N0UHJvZ3Jlc3NGaW5p
c2hlZE5vdGlmaWNhdGlvbigpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZGlu
Z1N0b3BwZWQoZnJhbWUuZ2V0KCkpOwogfQogCiB2b2lkIFByb2dyZXNzVHJhY2tlcjo6aW5jcmVt
ZW50UHJvZ3Jlc3ModW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178660</attachid>
            <date>2012-12-10 16:04:25 -0800</date>
            <delta_ts>2012-12-14 13:33:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104168-20121210160147.patch</filename>
            <type>text/plain</type>
            <size>19995</size>
            <attacher name="Ken Kania">kkania</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ3ZGQ0NTE2MWY1YTZj
ZTJlZGMzNTlkZTE5MTMzMWU1YWZkYjU3Ni4uY2ZhYjI5ODI3YjJiMTI3YmYyMDQ1Njg3MDBhMGRj
MzhlOGRlYmM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTEyLTEwICBLZW4g
S2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJbnNwZWN0b3JdIEFkZCBl
dmVudHMgZm9yIHRyYWNraW5nIHBhZ2UgbG9hZHMgYW5kIHNjaGVkdWxlZCBuYXZpZ2F0aW9ucy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDE2OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGV2
ZW50cyBhcmUgbmVlZGVkIGZvciBjbGllbnRzIHdobyBuZWVkIHRvIGJlIGF3YXJlIG9mIHdoZW4g
YSBwYWdlIGlzCisgICAgICAgIG5hdmlnYXRpbmcgb3IgYWJvdXQgdG8gbmF2aWdhdGUuIFNvbWUg
Y2xpZW50cyBtYXkgd2lzaCB0byBwcmV2ZW50IGludGVyYWN0aW9uCisgICAgICAgIHdpdGggdGhl
IHBhZ2UgZHVyaW5nIHRoaXMgdGltZS4gVHdvIG9mIHRoZSBuZXcgZXZlbnRzIHRyYWNrIGxvYWRp
bmcgc3RhcnQgYW5kCisgICAgICAgIHN0b3AsIGFzIG1lYXN1cmVkIGJ5IHRoZSBQcm9ncmVzc1Ry
YWNrZXIuIFRoZSBvdGhlciB0d28gZXZlbnRzIHRyYWNrIHdoZW4gYQorICAgICAgICBwYWdlIGhh
cyBhIG5ldyBzY2hlZHVsZWQgbmF2aWdhdGlvbiBhbmQgd2hlbiBpdCBubyBsb25nZXIgaGFzIGEg
c2NoZWR1bGVkCisgICAgICAgIG5hdmlnYXRpb24uIFRoZXNlIGxhdHRlciB0d28gZXZlbnRzIHdv
bid0IGFsbG93IHRoZSBjbGllbnQgdG8gZGV0ZXJtaW5lIGlmCisgICAgICAgIGEgbG9hZCBpcyBn
b2luZyB0byBoYXBwZW4gaW4gYWxsIGNpcmN1bXN0YW5jZXMsIGJ1dCBpcyBzdWZmaWNpZW50IGZv
ciBtYW55IGNhc2VzLgorCisgICAgICAgIFRlc3RzOiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9m
cmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yLXBy
b3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZ0ltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVN0b3BwZWRMb2FkaW5nSW1w
bCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU2No
ZWR1bGVkTmF2aWdhdGlvbkltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uSW1wbCk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU2No
ZWR1bGVkTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UGFnZUFnZW50OjpmcmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZVN0b3BwZWRMb2FkaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVTY2hlZHVsZWROYXZp
Z2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVDbGVh
cmVkU2NoZWR1bGVkTmF2aWdhdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5oOgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OmNsZWFyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OnRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TmF2aWdhdGlvblNjaGVkdWxlcjo6c3RhcnRUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpO
YXZpZ2F0aW9uU2NoZWR1bGVyOjpjYW5jZWwpOgorICAgICAgICAqIGxvYWRlci9Qcm9ncmVzc1Ry
YWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVzc1N0
YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2VyOjpmaW5hbFByb2dyZXNz
Q29tcGxldGUpOgorCiAyMDEyLTEyLTA0ICBFbGxpb3R0IFNwcmVobiAgPGVzcHJlaG5AZ21haWwu
Y29tPgogCiAgICAgICAgIFNpbXBsaWZ5IFNoYWRvd1Jvb3Q6OmNsb25lTm9kZShib29sLEV4Y2Vw
dGlvbkNvZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggOGYy
MmM3YWZlMTgxNmNhY2Y1MjczZjg3NmE5NTk4ODk3MjllMjc2OS4uYjZkYmY2ZmI1NjlhNzE0YjQ4
NDFiOTk3MWRhYmQ3MzJmZTY2YTNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgpAQCAtNDgxLDYgKzQ4MSwzOSBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImZyYW1lSWQiLCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAi
SWQgb2YgdGhlIGZyYW1lIHRoYXQgaGFzIGJlZW4gZGV0YWNoZWQuIiB9CiAgICAgICAgICAgICAg
ICAgXSwKICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQorICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJmcmFtZVN0YXJ0ZWRMb2FkaW5n
IiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiBmcmFtZSBoYXMg
c3RhcnRlZCBsb2FkaW5nLiIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWUiLCAiJHJlZiI6ICJGcmFtZSIsICJkZXNj
cmlwdGlvbiI6ICJGcmFtZSBvYmplY3QuIiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAg
ICAgICAgICAiaGlkZGVuIjogdHJ1ZQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAibmFtZSI6ICJmcmFtZVN0b3BwZWRMb2FkaW5nIiwKKyAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiBmcmFtZSBoYXMgc3RvcHBlZCBsb2FkaW5n
LiIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiZnJhbWUiLCAiJHJlZiI6ICJGcmFtZSIsICJkZXNjcmlwdGlvbiI6ICJGcmFt
ZSBvYmplY3QuIiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAiaGlkZGVu
IjogdHJ1ZQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAi
bmFtZSI6ICJmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24iLAorICAgICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJGaXJlZCB3aGVuIGZyYW1lIHNjaGVkdWxlcyBhIHBvdGVudGlhbCBuYXZpZ2F0
aW9uLiIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiZnJhbWUiLCAiJHJlZiI6ICJGcmFtZSIsICJkZXNjcmlwdGlvbiI6ICJG
cmFtZSBvYmplY3QuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRlbGF5Iiwg
InR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkRlbGF5IChpbiBzZWNvbmRzKSB1bnRp
bCB0aGUgbmF2aWdhdGlvbiBpcyBzY2hlZHVsZWQgdG8gYmVnaW4uIFRoZSBuYXZpZ2F0aW9uIGlz
IG5vdCBndWFyYW50ZWVkIHRvIHN0YXJ0LiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAg
ICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgIm5hbWUiOiAiZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbiIs
CisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gZnJhbWUgbm8gbG9u
Z2VyIGhhcyBhIHNjaGVkdWxlZCBuYXZpZ2F0aW9uLiIsCisgICAgICAgICAgICAgICAgInBhcmFt
ZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWUiLCAiJHJlZiI6
ICJGcmFtZSIsICJkZXNjcmlwdGlvbiI6ICJGcmFtZSBvYmplY3QuIiB9CisgICAgICAgICAgICAg
ICAgXSwKKyAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQogICAgICAgICAgICAgfQogICAg
ICAgICBdCiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggNmY2YTlhYjZlZjIxYzYxYjBhN2IwNjBiMjY4
YWY5MzgzMmMwNjY5Ni4uNjE5MjY2YTQ2MTgyMjRjNjNiOTY0Y2JmMDI4MDdjNzYxNmU3NWFjNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAKQEAgLTkxOSw2ICs5MTksMzAgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmxvYWRlckRldGFjaGVkRnJvbUZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKgog
ICAgICAgICBpbnNwZWN0b3JQYWdlQWdlbnQtPmxvYWRlckRldGFjaGVkRnJvbUZyYW1lKGxvYWRl
cik7CiB9CiAKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVN0YXJ0ZWRMb2Fk
aW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSog
ZnJhbWUpCit7CisgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogaW5zcGVjdG9yUGFnZUFnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIGlu
c3BlY3RvclBhZ2VBZ2VudC0+ZnJhbWVTdGFydGVkTG9hZGluZyhmcmFtZSk7Cit9CisKK3ZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVN0b3BwZWRMb2FkaW5nSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSogZnJhbWUpCit7CisgICAg
aWYgKEluc3BlY3RvclBhZ2VBZ2VudCogaW5zcGVjdG9yUGFnZUFnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIGluc3BlY3RvclBhZ2VBZ2Vu
dC0+ZnJhbWVTdG9wcGVkTG9hZGluZyhmcmFtZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lKiBmcmFtZSwgZG91YmxlIGRlbGF5KQorewor
ICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIGluc3BlY3RvclBhZ2VBZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQorICAgICAgICBpbnNwZWN0b3JQYWdl
QWdlbnQtPmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbihmcmFtZSwgZGVsYXkpOworfQorCit2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlv
bkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUqIGZy
YW1lKQoreworICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIGluc3BlY3RvclBhZ2VBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQorICAgICAgICBpbnNw
ZWN0b3JQYWdlQWdlbnQtPmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24oZnJhbWUpOwor
fQorCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lDYWNoZWRSZXNv
dXJjZUltcGwoQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlKQogewogICAgIGlmICghaW5z
dHJ1bWVudGluZ0FnZW50c1NldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCAyYzZkMmE5MjhmZmVjOGJlY2NlZjVkOWMw
Zjc3NDY3NGViZmI1MGYyLi4wOWYwNGQyZGFlODhjMDc0NzhkMzRhNDdmZmM4YzI2NDM4NjE5Mjlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oCkBAIC0xOTAsNiArMTkwLDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBm
cmFtZURldGFjaGVkRnJvbVBhcmVudChGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIGRpZENvbW1p
dExvYWQoRnJhbWUqLCBEb2N1bWVudExvYWRlciopOwogICAgIHN0YXRpYyB2b2lkIGxvYWRlckRl
dGFjaGVkRnJvbUZyYW1lKEZyYW1lKiwgRG9jdW1lbnRMb2FkZXIqKTsKKyAgICBzdGF0aWMgdm9p
ZCBmcmFtZVN0YXJ0ZWRMb2FkaW5nKEZyYW1lKik7CisgICAgc3RhdGljIHZvaWQgZnJhbWVTdG9w
cGVkTG9hZGluZyhGcmFtZSopOworICAgIHN0YXRpYyB2b2lkIGZyYW1lU2NoZWR1bGVkTmF2aWdh
dGlvbihGcmFtZSosIGRvdWJsZSBkZWxheSk7CisgICAgc3RhdGljIHZvaWQgZnJhbWVDbGVhcmVk
U2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95
Q2FjaGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqKTsKIAogICAgIHN0YXRpYyBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUgd2lsbFdyaXRlSFRNTChEb2N1bWVudCosIHVuc2lnbmVkIGlu
dCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUpOwpAQCAtMzg0LDYgKzM4OCwxMCBAQCBw
cml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGZyYW1lRGV0YWNoZWRGcm9tUGFyZW50SW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDb21taXRMb2Fk
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgUGFnZSosIERvY3VtZW50TG9hZGVyKik7CiAgICAg
c3RhdGljIHZvaWQgbG9hZGVyRGV0YWNoZWRGcm9tRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMqLCBEb2N1bWVudExvYWRlciopOworICAgIHN0YXRpYyB2b2lkIGZyYW1lU3RhcnRlZExvYWRp
bmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSopOworICAgIHN0YXRpYyB2b2lkIGZy
YW1lU3RvcHBlZExvYWRpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSopOworICAg
IHN0YXRpYyB2b2lkIGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyosIEZyYW1lKiwgZG91YmxlIGRlbGF5KTsKKyAgICBzdGF0aWMgdm9pZCBmcmFtZUNsZWFy
ZWRTY2hlZHVsZWROYXZpZ2F0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUqKTsK
ICAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveUNhY2hlZFJlc291cmNlSW1wbChDYWNoZWRSZXNv
dXJjZSopOwogCiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxs
V3JpdGVIVE1MSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgaW50IGxlbmd0aCwg
dW5zaWduZWQgaW50IHN0YXJ0TGluZSwgRnJhbWUqKTsKQEAgLTEzMjgsNiArMTMzNiwzOCBAQCBp
bmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvYWRlckRldGFjaGVkRnJvbUZy
YW1lKEZyYW1lKiBmcmFtZSwgRG9jdQogI2VuZGlmCiB9CiAKK2lubGluZSB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZyhGcmFtZSogZnJhbWUpCit7Cisj
aWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCisgICAg
ICAgIGZyYW1lU3RhcnRlZExvYWRpbmdJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGZyYW1lKTsK
KyNlbmRpZgorfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1l
U3RvcHBlZExvYWRpbmcoRnJhbWUqIGZyYW1lKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisg
ICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQorICAgICAgICBmcmFtZVN0b3BwZWRMb2FkaW5n
SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBmcmFtZSk7CisjZW5kaWYKK30KKworaW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24oRnJh
bWUqIGZyYW1lLCBkb3VibGUgZGVsYXkpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBp
ZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRp
bmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCisgICAgICAgIGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlv
bkltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZnJhbWUsIGRlbGF5KTsKKyNlbmRpZgorfQorCitp
bmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxl
ZE5hdmlnYXRpb24oRnJhbWUqIGZyYW1lKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAg
aWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50
aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQorICAgICAgICBmcmFtZUNsZWFyZWRTY2hlZHVsZWRO
YXZpZ2F0aW9uSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBmcmFtZSk7CisjZW5kaWYKK30KKwog
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveUNhY2hlZFJl
c291cmNlKENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50
LmNwcAppbmRleCAwNGE1NDVlMjBhNmJiYmM0MTljM2UzZDEwNmFlYTJkYzNlMDIzNWVkLi43MzQw
NmM5YWE1OGJhZmQxY2FiNzJkZDBlYmIxY2NmZTYwODIxYzQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtOTAyLDYgKzkwMiwyNiBA
QCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6bG9hZGVyRGV0YWNoZWRGcm9tRnJhbWUoRG9jdW1l
bnRMb2FkZXIqIGxvYWRlcikKICAgICAgICAgbV9sb2FkZXJUb0lkZW50aWZpZXIucmVtb3ZlKGl0
ZXJhdG9yKTsKIH0KIAordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1lU3RhcnRlZExvYWRp
bmcoRnJhbWUqIGZyYW1lKQoreworICAgIG1fZnJvbnRlbmQtPmZyYW1lU3RhcnRlZExvYWRpbmco
YnVpbGRPYmplY3RGb3JGcmFtZShmcmFtZSkpOworfQorCit2b2lkIEluc3BlY3RvclBhZ2VBZ2Vu
dDo6ZnJhbWVTdG9wcGVkTG9hZGluZyhGcmFtZSogZnJhbWUpCit7CisgICAgbV9mcm9udGVuZC0+
ZnJhbWVTdG9wcGVkTG9hZGluZyhidWlsZE9iamVjdEZvckZyYW1lKGZyYW1lKSk7Cit9CisKK3Zv
aWQgSW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqIGZy
YW1lLCBkb3VibGUgZGVsYXkpCit7CisgICAgbV9mcm9udGVuZC0+ZnJhbWVTY2hlZHVsZWROYXZp
Z2F0aW9uKGJ1aWxkT2JqZWN0Rm9yRnJhbWUoZnJhbWUpLCBkZWxheSk7Cit9CisKK3ZvaWQgSW5z
cGVjdG9yUGFnZUFnZW50OjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKiBm
cmFtZSkKK3sKKyAgICBtX2Zyb250ZW5kLT5mcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9u
KGJ1aWxkT2JqZWN0Rm9yRnJhbWUoZnJhbWUpKTsKK30KKwogdm9pZCBJbnNwZWN0b3JQYWdlQWdl
bnQ6OmFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZShsb25nKiB3aWR0aCkKIHsKICAgICBsb25nIHdp
ZHRoT3ZlcnJpZGUgPSBtX3N0YXRlLT5nZXRMb25nKFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRT
Y3JlZW5XaWR0aE92ZXJyaWRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuaAppbmRleCA1ZDQ2OGExNWJjMzcwNGQwYzY2ZDA5MmIzZDIxMzgwZjA2MGE1
NDhjLi5jMzlmYTQxNDNmMjRmNmFmMDdkNjMyYzRlNTY3YWNiNDU5M2JmYjM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0xMzcsNiArMTM3
LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGZyYW1lTmF2aWdhdGVkKERvY3VtZW50TG9hZGVyKik7
CiAgICAgdm9pZCBmcmFtZURldGFjaGVkKEZyYW1lKik7CiAgICAgdm9pZCBsb2FkZXJEZXRhY2hl
ZEZyb21GcmFtZShEb2N1bWVudExvYWRlciopOworICAgIHZvaWQgZnJhbWVTdGFydGVkTG9hZGlu
ZyhGcmFtZSopOworICAgIHZvaWQgZnJhbWVTdG9wcGVkTG9hZGluZyhGcmFtZSopOworICAgIHZv
aWQgZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKiwgZG91YmxlIGRlbGF5KTsKKyAgICB2
b2lkIGZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqKTsKICAgICB2b2lkIGFw
cGx5U2NyZWVuV2lkdGhPdmVycmlkZShsb25nKik7CiAgICAgdm9pZCBhcHBseVNjcmVlbkhlaWdo
dE92ZXJyaWRlKGxvbmcqKTsKICAgICB2b2lkIGFwcGx5RW11bGF0ZWRNZWRpYShTdHJpbmcqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAppbmRleCBh
Y2JlYjc4OTVlMDdmZmRkZjk0ODQzZTc0OTFmZmM2ODhlMWQzZDJiLi4wNzZhYmJkMmFjMDA3NmU0
MzcyZTZmMWUwNzBhYzI1YzkwMDQyODU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05h
dmlnYXRpb25TY2hlZHVsZXIuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiSFRNTEZv
cm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSGlzdG9yeUl0ZW0uaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNp
bmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KQEAgLTI4Niw2ICsyODcsOCBAQCBib29sIE5hdmln
YXRpb25TY2hlZHVsZXI6OmxvY2F0aW9uQ2hhbmdlUGVuZGluZygpCiAKIHZvaWQgTmF2aWdhdGlv
blNjaGVkdWxlcjo6Y2xlYXIoKQogeworICAgIGlmIChtX3RpbWVyLmlzQWN0aXZlKCkpCisgICAg
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdh
dGlvbihtX2ZyYW1lKTsKICAgICBtX3RpbWVyLnN0b3AoKTsKICAgICBtX3JlZGlyZWN0LmNsZWFy
KCk7CiB9CkBAIC00MTEsMTEgKzQxNCwxNCBAQCB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnRp
bWVyRmlyZWQoVGltZXI8TmF2aWdhdGlvblNjaGVkdWxlcj4qKQogewogICAgIGlmICghbV9mcmFt
ZS0+cGFnZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1fZnJhbWUtPnBhZ2UoKS0+ZGVm
ZXJzTG9hZGluZygpKQorICAgIGlmIChtX2ZyYW1lLT5wYWdlKCktPmRlZmVyc0xvYWRpbmcoKSkg
eworICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxl
ZE5hdmlnYXRpb24obV9mcmFtZSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBPd25Q
dHI8U2NoZWR1bGVkTmF2aWdhdGlvbj4gcmVkaXJlY3QobV9yZWRpcmVjdC5yZWxlYXNlKCkpOwog
ICAgIHJlZGlyZWN0LT5maXJlKG1fZnJhbWUpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihtX2ZyYW1lKTsKIH0KIAogdm9pZCBO
YXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZShQYXNzT3duUHRyPFNjaGVkdWxlZE5hdmlnYXRp
b24+IHJlZGlyZWN0KQpAQCAtNDU4LDEwICs0NjQsMTMgQEAgdm9pZCBOYXZpZ2F0aW9uU2NoZWR1
bGVyOjpzdGFydFRpbWVyKCkKIAogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KG1fcmVkaXJlY3Qt
PmRlbGF5KCkpOwogICAgIG1fcmVkaXJlY3QtPmRpZFN0YXJ0VGltZXIobV9mcmFtZSwgJm1fdGlt
ZXIpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTY2hlZHVsZWROYXZpZ2F0
aW9uKG1fZnJhbWUsIG1fcmVkaXJlY3QtPmRlbGF5KCkpOwogfQogCiB2b2lkIE5hdmlnYXRpb25T
Y2hlZHVsZXI6OmNhbmNlbChib29sIG5ld0xvYWRJblByb2dyZXNzKQogeworICAgIGlmIChtX3Rp
bWVyLmlzQWN0aXZlKCkpCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVD
bGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihtX2ZyYW1lKTsKICAgICBtX3RpbWVyLnN0b3AoKTsK
IAogICAgIE93blB0cjxTY2hlZHVsZWROYXZpZ2F0aW9uPiByZWRpcmVjdChtX3JlZGlyZWN0LnJl
bGVhc2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFj
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwCmluZGV4
IDRmMmI3ZWNkMzdlMjZkZmFkY2JiNWI2YjVmZDk1ZjI2ZTFkZjViMmMuLjkyMzg4ZWMwNTI2YzQw
Yzg4MWM5NWRhNGViMTdlNTMzZDZiZDlkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9n
cmVzc1RyYWNrZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0xMjAsNiArMTIxLDcgQEAgdm9pZCBQcm9ncmVz
c1RyYWNrZXI6OnByb2dyZXNzU3RhcnRlZChGcmFtZSogZnJhbWUpCiAgICAgbV9udW1Qcm9ncmVz
c1RyYWNrZWRGcmFtZXMrKzsKIAogICAgIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmRpZENo
YW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpm
cmFtZVN0YXJ0ZWRMb2FkaW5nKGZyYW1lKTsKIH0KIAogdm9pZCBQcm9ncmVzc1RyYWNrZXI6OnBy
b2dyZXNzQ29tcGxldGVkKEZyYW1lKiBmcmFtZSkKQEAgLTE1NSw2ICsxNTcsNyBAQCB2b2lkIFBy
b2dyZXNzVHJhY2tlcjo6ZmluYWxQcm9ncmVzc0NvbXBsZXRlKCkKIAogICAgIGZyYW1lLT5sb2Fk
ZXIoKS0+Y2xpZW50KCktPnNldE1haW5GcmFtZURvY3VtZW50UmVhZHkodHJ1ZSk7CiAgICAgZnJh
bWUtPmxvYWRlcigpLT5jbGllbnQoKS0+cG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb24o
KTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RvcHBlZExvYWRpbmcoZnJh
bWUuZ2V0KCkpOwogfQogCiB2b2lkIFByb2dyZXNzVHJhY2tlcjo6aW5jcmVtZW50UHJvZ3Jlc3Mo
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAzYWFlZmYwZWUyNjBjYzBjZTk2OTU2NjYyZTlmM2M4YzI0NDkxYWEzLi5lNTNi
NWZiYmQ5MjNhYmQ5ZTYwZDA2YzNkMzMwNWE0Y2FiYmRiMjU1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTItMTItMTAgIEtlbiBLYW5pYSAgPGtrYW5pYUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgW0luc3BlY3Rvcl0gQWRkIGV2ZW50cyBmb3IgdHJhY2tpbmcgcGFnZSBsb2FkcyBhbmQgc2No
ZWR1bGVkIG5hdmlnYXRpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA0MTY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhlc2UgZXZlbnRzIGFyZSBuZWVkZWQgZm9yIGNsaWVudHMgd2hvIG5lZWQg
dG8gYmUgYXdhcmUgb2Ygd2hlbiBhIHBhZ2UgaXMKKyAgICAgICAgbmF2aWdhdGluZyBvciBhYm91
dCB0byBuYXZpZ2F0ZS4gU29tZSBjbGllbnRzIG1heSB3aXNoIHRvIHByZXZlbnQgaW50ZXJhY3Rp
b24KKyAgICAgICAgd2l0aCB0aGUgcGFnZSBkdXJpbmcgdGhpcyB0aW1lLiBUd28gb2YgdGhlIG5l
dyBldmVudHMgdHJhY2sgbG9hZGluZyBzdGFydCBhbmQKKyAgICAgICAgc3RvcCwgYXMgbWVhc3Vy
ZWQgYnkgdGhlIFByb2dyZXNzVHJhY2tlci4gVGhlIG90aGVyIHR3byBldmVudHMgdHJhY2sgd2hl
biBhCisgICAgICAgIHBhZ2UgaGFzIGEgbmV3IHNjaGVkdWxlZCBuYXZpZ2F0aW9uIGFuZCB3aGVu
IGl0IG5vIGxvbmdlciBoYXMgYSBzY2hlZHVsZWQKKyAgICAgICAgbmF2aWdhdGlvbi4gVGhlc2Ug
bGF0dGVyIHR3byBldmVudHMgd29uJ3QgYWxsb3cgdGhlIGNsaWVudCB0byBkZXRlcm1pbmUgaWYK
KyAgICAgICAgYSBsb2FkIGlzIGdvaW5nIHRvIGhhcHBlbiBpbiBhbGwgY2lyY3Vtc3RhbmNlcywg
YnV0IGlzIHN1ZmZpY2llbnQgZm9yIG1hbnkgY2FzZXMuCisKKyAgICAgICAgKiBpbnNwZWN0b3It
cHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmln
YXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJh
bWVTdGFydGVkTG9hZGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci1wcm90b2NvbC9wYWdlL2ZyYW1lU3RhcnRlZExvYWRpbmcuaHRtbDogQWRkZWQuCisKIDIwMTIt
MTItMDQgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIG1hcmsgY3NzMy9maWx0ZXJzL2VmZmVjdC1yZWZlcmVuY2UtaHcuaHRtbCBhcyBmYWls
aW5nIHJhdGhlciB0aGFuIGNyYXNoaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2aWdh
dGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZmMDFkOGEwYmU5MmU3ZmQ0M2JmZThiNDc3
ZGVjOTRhMzgzYTQyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACisKK1NjaGVkdWxlZCBuYXZpZ2F0aW9uIHdpdGggZGVsYXkgMAorU3RhcnRlZCBs
b2FkaW5nCitDbGVhcmVkIHNjaGVkdWxlZCBuYXZpZ2F0aW9uCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTY2hlZHVsZWRO
YXZpZ2F0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQyN2NiZTdkNTkzMDcyMjk5OWRhZTJiNWQzOTgz
ZGM0MWIyMDE1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbi5odG1sCkBAIC0wLDAgKzEsNDMgQEAK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBsb2FkKCkKK3sKKyAgICBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCJpZnJhbWUiKS5zcmMgPSAiLi4vcmVzb3VyY2VzL2JsYW5rLmh0bWwi
OworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxl
clsiUGFnZS5mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24iXSA9IG9uU2NoZWR1bGVkOworICAgIElu
c3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQYWdlLmZyYW1lU3RhcnRlZExvYWRpbmciXSA9IG9u
U3RhcnRlZDsKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5mcmFtZUNsZWFy
ZWRTY2hlZHVsZWROYXZpZ2F0aW9uIl0gPSBvbkNsZWFyZWQ7CisgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiUGFnZS5lbmFibGUiLCB7fSk7CisKKyAgICBmdW5jdGlvbiBvblNjaGVkdWxl
ZChtc2cpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU2NoZWR1bGVkIG5hdmln
YXRpb24gd2l0aCBkZWxheSAiICsgbXNnLnBhcmFtcy5kZWxheSk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gb25TdGFydGVkKG1zZykKKyAgICB7CisgICAgICAgIC8vIFRoaXMgZXZlbnQgc2hvdWxk
IGJlIHJlY2VpdmVkIGJlZm9yZSB0aGUgc2NoZWR1bGVkIG5hdmlnYXRpb24gaXMgY2xlYXJlZC4K
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlN0YXJ0ZWQgbG9hZGluZyIpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIG9uQ2xlYXJlZChtc2cpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiQ2xlYXJlZCBzY2hlZHVsZWQgbmF2aWdhdGlvbiIpOworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KKworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ICJleHByZXNzaW9uIjogImxvYWQoKSIgfSk7Cit9CisK
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGlmcmFtZT4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9wYWdlL2ZyYW1lU3RhcnRlZExvYWRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTYwZWY1N2MzODYwYzEyZmMzMjBiZGRhZDk5NGQzZmRhMmZhNGRhOQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1l
U3RhcnRlZExvYWRpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitTdGFydGVkIGxv
YWRpbmcKK1N0b3BwZWQgbG9hZGluZworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzU3MWJjNmU2Y2Y5NWJhN2QyNzdhMDI0ZmJiZWIwNjY2OWJkOTQ0ZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU3RhcnRlZExv
YWRpbmcuaHRtbApAQCAtMCwwICsxLDM2IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVu
Y3Rpb24gbG9hZCgpCit7CisgICAgdmFyIGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aWZyYW1lIik7CisgICAgZnJhbWUuc3JjID0gIi4uL3Jlc291cmNlcy9ibGFuay5odG1sIjsKKyAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1lKTsKK30KKworZnVuY3Rpb24gdGVzdCgp
Cit7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIlBhZ2UuZnJhbWVTdGFydGVkTG9h
ZGluZyJdID0gb25TdGFydDsKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5m
cmFtZVN0b3BwZWRMb2FkaW5nIl0gPSBvblN0b3A7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUGFnZS5lbmFibGUiLCB7fSk7CisKKyAgICBmdW5jdGlvbiBvblN0YXJ0KCkKKyAgICB7
CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJTdGFydGVkIGxvYWRpbmciKTsKKyAgICB9Cisg
ICAgZnVuY3Rpb24gb25TdG9wKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJT
dG9wcGVkIGxvYWRpbmciKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
KyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRl
IiwgeyAiZXhwcmVzc2lvbiI6ICJsb2FkKCkiIH0pOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179527</attachid>
            <date>2012-12-14 13:34:00 -0800</date>
            <delta_ts>2012-12-18 09:24:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104168-20121214133120.patch</filename>
            <type>text/plain</type>
            <size>21248</size>
            <attacher name="Ken Kania">kkania</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGU0ZjI1MjAxZGIxYjMy
YTVlNDIyY2JmMzdhMDc4NGRiYmQ4NDBlYS4uNzdiYzYzYWUxNTM0OTk2NDg5MzIzOTVlNTkyNDA3
MDdjNjE0ODQxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTEyLTE0ICBLZW4g
S2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJbnNwZWN0b3JdIEFkZCBl
dmVudHMgZm9yIHRyYWNraW5nIHBhZ2UgbG9hZHMgYW5kIHNjaGVkdWxlZCBuYXZpZ2F0aW9ucy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDE2OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGV2
ZW50cyBhcmUgbmVlZGVkIGZvciBjbGllbnRzIHdobyBuZWVkIHRvIGJlIGF3YXJlIG9mIHdoZW4g
YSBwYWdlIGlzCisgICAgICAgIG5hdmlnYXRpbmcgb3IgYWJvdXQgdG8gbmF2aWdhdGUuIFNvbWUg
Y2xpZW50cyBtYXkgd2lzaCB0byBwcmV2ZW50IGludGVyYWN0aW9uCisgICAgICAgIHdpdGggdGhl
IHBhZ2UgZHVyaW5nIHRoaXMgdGltZS4gVHdvIG9mIHRoZSBuZXcgZXZlbnRzIHRyYWNrIGxvYWRp
bmcgc3RhcnQgYW5kCisgICAgICAgIHN0b3AsIGFzIG1lYXN1cmVkIGJ5IHRoZSBQcm9ncmVzc1Ry
YWNrZXIuIFRoZSBvdGhlciB0d28gZXZlbnRzIHRyYWNrIHdoZW4gYQorICAgICAgICBwYWdlIGhh
cyBhIG5ldyBzY2hlZHVsZWQgbmF2aWdhdGlvbiBhbmQgd2hlbiBpdCBubyBsb25nZXIgaGFzIGEg
c2NoZWR1bGVkCisgICAgICAgIG5hdmlnYXRpb24uIFRoZXNlIGxhdHRlciB0d28gZXZlbnRzIHdv
bid0IGFsbG93IHRoZSBjbGllbnQgdG8gZGV0ZXJtaW5lIGlmCisgICAgICAgIGEgbG9hZCBpcyBn
b2luZyB0byBoYXBwZW4gaW4gYWxsIGNpcmN1bXN0YW5jZXMsIGJ1dCBpcyBzdWZmaWNpZW50IGZv
ciBtYW55IGNhc2VzLgorCisgICAgICAgIFRlc3RzOiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9m
cmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yLXBy
b3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZ0ltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVN0b3BwZWRMb2FkaW5nSW1w
bCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU2No
ZWR1bGVkTmF2aWdhdGlvbkltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uSW1wbCk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU2No
ZWR1bGVkTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UGFnZUFnZW50OjpmcmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZVN0b3BwZWRMb2FkaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVTY2hlZHVsZWROYXZp
Z2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVDbGVh
cmVkU2NoZWR1bGVkTmF2aWdhdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9k
ZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZy
YW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyLnByb3Rv
dHlwZS5mcmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYWdlRGlz
cGF0Y2hlci5wcm90b3R5cGUuZnJhbWVTdG9wcGVkTG9hZGluZyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lQ2xl
YXJlZFNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2No
ZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OmNsZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OnRpbWVyRmlyZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvblNjaGVkdWxlcjo6c3RhcnRUaW1lcik6CisgICAg
ICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uU2NoZWR1bGVyOjpjYW5jZWwpOgorICAgICAgICAqIGxv
YWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFj
a2VyOjpwcm9ncmVzc1N0YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2Vy
OjpmaW5hbFByb2dyZXNzQ29tcGxldGUpOgorCiAyMDEyLTEyLTE0ICBBbmRyZXkgS29zeWFrb3Yg
IDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjEyOTYzMyBhbmQgcjEyOTc1Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgppbmRleCBjYjUzNzc2NmFkZWU1ZjQyYjY5OWUxMjkzZjg5MTQyNTQwMTU0ZTRlLi43ODdmMGYw
MzI3Mzk0ZjhlNTZmMmNiYTU2N2QxYWM4ZjNlOTBiMDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCkBAIC00ODYsNiArNDg2LDM5IEBACiAgICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJhbWVJZCIsICJkZXNj
cmlwdGlvbiI6ICJJZCBvZiB0aGUgZnJhbWUgdGhhdCBoYXMgYmVlbiBkZXRhY2hlZC4iIH0KICAg
ICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImZyYW1lU3Rh
cnRlZExvYWRpbmciLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVu
IGZyYW1lIGhhcyBzdGFydGVkIGxvYWRpbmcuIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZSIsICIkcmVmIjogIkZy
YW1lIiwgImRlc2NyaXB0aW9uIjogIkZyYW1lIG9iamVjdC4iIH0KKyAgICAgICAgICAgICAgICBd
LAorICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImZyYW1lU3RvcHBlZExvYWRpbmciLAor
ICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVuIGZyYW1lIGhhcyBzdG9w
cGVkIGxvYWRpbmcuIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZSIsICIkcmVmIjogIkZyYW1lIiwgImRlc2NyaXB0
aW9uIjogIkZyYW1lIG9iamVjdC4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAg
ICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICJuYW1lIjogImZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbiIsCisgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gZnJhbWUgc2NoZWR1bGVzIGEgcG90ZW50
aWFsIG5hdmlnYXRpb24uIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZSIsICIkcmVmIjogIkZyYW1lIiwgImRlc2Ny
aXB0aW9uIjogIkZyYW1lIG9iamVjdC4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiZGVsYXkiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRGVsYXkgKGluIHNl
Y29uZHMpIHVudGlsIHRoZSBuYXZpZ2F0aW9uIGlzIHNjaGVkdWxlZCB0byBiZWdpbi4gVGhlIG5h
dmlnYXRpb24gaXMgbm90IGd1YXJhbnRlZWQgdG8gc3RhcnQuIiB9CisgICAgICAgICAgICAgICAg
XSwKKyAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQorICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJmcmFtZUNsZWFyZWRTY2hlZHVsZWRO
YXZpZ2F0aW9uIiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiBm
cmFtZSBubyBsb25nZXIgaGFzIGEgc2NoZWR1bGVkIG5hdmlnYXRpb24uIiwKKyAgICAgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFt
ZSIsICIkcmVmIjogIkZyYW1lIiwgImRlc2NyaXB0aW9uIjogIkZyYW1lIG9iamVjdC4iIH0KKyAg
ICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCiAgICAgICAg
ICAgICB9CiAgICAgICAgIF0KICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCAzMzkzNjZhMmEzYjg1OGRm
YjI5MDdjYjQzYmE2ZGNkNTkwNjdmMGE4Li4xZWM5ZWZjNDdlM2QwMjE2MzI4NjBkMGE4ZGM5N2Ez
Y2YzNTNlZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtOTI1LDYgKzkyNSwzMCBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6bG9hZGVyRGV0YWNoZWRGcm9tRnJhbWVJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMqCiAgICAgICAgIGluc3BlY3RvclBhZ2VBZ2VudC0+bG9hZGVyRGV0YWNoZWRGcm9t
RnJhbWUobG9hZGVyKTsKIH0KIAordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1l
U3RhcnRlZExvYWRpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIEZyYW1lKiBmcmFtZSkKK3sKKyAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBpbnNwZWN0
b3JQYWdlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkK
KyAgICAgICAgaW5zcGVjdG9yUGFnZUFnZW50LT5mcmFtZVN0YXJ0ZWRMb2FkaW5nKGZyYW1lKTsK
K30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RvcHBlZExvYWRpbmdJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lKiBmcmFt
ZSkKK3sKKyAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBpbnNwZWN0b3JQYWdlQWdlbnQgPSBp
bnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKKyAgICAgICAgaW5zcGVj
dG9yUGFnZUFnZW50LT5mcmFtZVN0b3BwZWRMb2FkaW5nKGZyYW1lKTsKK30KKwordm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUqIGZyYW1lLCBkb3VibGUg
ZGVsYXkpCit7CisgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogaW5zcGVjdG9yUGFnZUFnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIGlu
c3BlY3RvclBhZ2VBZ2VudC0+ZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uKGZyYW1lLCBkZWxheSk7
Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVs
ZWROYXZpZ2F0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBGcmFtZSogZnJhbWUpCit7CisgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogaW5zcGVjdG9y
UGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCisg
ICAgICAgIGluc3BlY3RvclBhZ2VBZ2VudC0+ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlv
bihmcmFtZSk7Cit9CisKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJv
eUNhY2hlZFJlc291cmNlSW1wbChDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7CiAg
ICAgaWYgKCFpbnN0cnVtZW50aW5nQWdlbnRzU2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDExNmNjNDJlMGRlMGQ0
ZWMxYzFiYTQzMDczOTBhMDVjNDUzNTZmOTEuLjUzYTY2NTlmZjZkMmU4MWVjMjIxYWQyODg0OTJh
N2MwN2RjMWJjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTE5NCw2ICsxOTQsMTAgQEAgcHVibGljOgogICAgIHN0
YXRpYyB2b2lkIGZyYW1lRGV0YWNoZWRGcm9tUGFyZW50KEZyYW1lKik7CiAgICAgc3RhdGljIHZv
aWQgZGlkQ29tbWl0TG9hZChGcmFtZSosIERvY3VtZW50TG9hZGVyKik7CiAgICAgc3RhdGljIHZv
aWQgbG9hZGVyRGV0YWNoZWRGcm9tRnJhbWUoRnJhbWUqLCBEb2N1bWVudExvYWRlciopOworICAg
IHN0YXRpYyB2b2lkIGZyYW1lU3RhcnRlZExvYWRpbmcoRnJhbWUqKTsKKyAgICBzdGF0aWMgdm9p
ZCBmcmFtZVN0b3BwZWRMb2FkaW5nKEZyYW1lKik7CisgICAgc3RhdGljIHZvaWQgZnJhbWVTY2hl
ZHVsZWROYXZpZ2F0aW9uKEZyYW1lKiwgZG91YmxlIGRlbGF5KTsKKyAgICBzdGF0aWMgdm9pZCBm
cmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQg
d2lsbERlc3Ryb3lDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSopOwogCiAgICAgc3RhdGlj
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsV3JpdGVIVE1MKERvY3VtZW50Kiwg
dW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSk7CkBAIC0zOTMsNiAr
Mzk3LDEwIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZnJhbWVEZXRhY2hlZEZyb21QYXJl
bnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIGRp
ZENvbW1pdExvYWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBQYWdlKiwgRG9jdW1lbnRMb2Fk
ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBsb2FkZXJEZXRhY2hlZEZyb21GcmFtZUltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyosIERvY3VtZW50TG9hZGVyKik7CisgICAgc3RhdGljIHZvaWQgZnJhbWVT
dGFydGVkTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKik7CisgICAgc3Rh
dGljIHZvaWQgZnJhbWVTdG9wcGVkTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZy
YW1lKik7CisgICAgc3RhdGljIHZvaWQgZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUqLCBkb3VibGUgZGVsYXkpOworICAgIHN0YXRpYyB2b2lk
IGZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
LCBGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95Q2FjaGVkUmVzb3VyY2VJbXBs
KENhY2hlZFJlc291cmNlKik7CiAKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llIHdpbGxXcml0ZUhUTUxJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCB1bnNpZ25lZCBp
bnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lLCBGcmFtZSopOwpAQCAtMTY1NCw2ICsx
NjYyLDM4IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZGVyRGV0
YWNoZWRGcm9tRnJhbWUoRnJhbWUqIGZyYW1lLCBEb2N1CiAjZW5kaWYKIH0KIAoraW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVN0YXJ0ZWRMb2FkaW5nKEZyYW1lKiBm
cmFtZSkKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGlmIChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZy
YW1lKSkKKyAgICAgICAgZnJhbWVTdGFydGVkTG9hZGluZ0ltcGwoaW5zdHJ1bWVudGluZ0FnZW50
cywgZnJhbWUpOworI2VuZGlmCit9CisKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGluZyhGcmFtZSogZnJhbWUpCit7CisjaWYgRU5BQkxFKElO
U1BFQ1RPUikKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCisgICAgICAgIGZyYW1lU3Rv
cHBlZExvYWRpbmdJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGZyYW1lKTsKKyNlbmRpZgorfQor
CitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU2NoZWR1bGVkTmF2
aWdhdGlvbihGcmFtZSogZnJhbWUsIGRvdWJsZSBkZWxheSkKK3sKKyNpZiBFTkFCTEUoSU5TUEVD
VE9SKQorICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0g
aW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKKyAgICAgICAgZnJhbWVTY2hlZHVs
ZWROYXZpZ2F0aW9uSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBmcmFtZSwgZGVsYXkpOworI2Vu
ZGlmCit9CisKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVDbGVh
cmVkU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSogZnJhbWUpCit7CisjaWYgRU5BQkxFKElOU1BF
Q1RPUikKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9
IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCisgICAgICAgIGZyYW1lQ2xlYXJl
ZFNjaGVkdWxlZE5hdmlnYXRpb25JbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGZyYW1lKTsKKyNl
bmRpZgorfQorCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0
cm95Q2FjaGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlKQogewogI2lm
IEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuY3BwCmluZGV4IDRiMzA2Zjc3YWZmZmQ0YjhhZjVjNzQ5NTEyNjYwYTY0MGFi
ZDJhZjYuLmQxNTI5NDI5ZTU0NGNmOGFjM2VmMzNmMmJjZjIyZjExYmIzMDFkYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC05MDUs
NiArOTA1LDI2IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50Ojpsb2FkZXJEZXRhY2hlZEZyb21G
cmFtZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgICAgICBtX2xvYWRlclRvSWRlbnRpZmll
ci5yZW1vdmUoaXRlcmF0b3IpOwogfQogCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVT
dGFydGVkTG9hZGluZyhGcmFtZSogZnJhbWUpCit7CisgICAgbV9mcm9udGVuZC0+ZnJhbWVTdGFy
dGVkTG9hZGluZyhidWlsZE9iamVjdEZvckZyYW1lKGZyYW1lKSk7Cit9CisKK3ZvaWQgSW5zcGVj
dG9yUGFnZUFnZW50OjpmcmFtZVN0b3BwZWRMb2FkaW5nKEZyYW1lKiBmcmFtZSkKK3sKKyAgICBt
X2Zyb250ZW5kLT5mcmFtZVN0b3BwZWRMb2FkaW5nKGJ1aWxkT2JqZWN0Rm9yRnJhbWUoZnJhbWUp
KTsKK30KKwordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlv
bihGcmFtZSogZnJhbWUsIGRvdWJsZSBkZWxheSkKK3sKKyAgICBtX2Zyb250ZW5kLT5mcmFtZVNj
aGVkdWxlZE5hdmlnYXRpb24oYnVpbGRPYmplY3RGb3JGcmFtZShmcmFtZSksIGRlbGF5KTsKK30K
Kwordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRp
b24oRnJhbWUqIGZyYW1lKQoreworICAgIG1fZnJvbnRlbmQtPmZyYW1lQ2xlYXJlZFNjaGVkdWxl
ZE5hdmlnYXRpb24oYnVpbGRPYmplY3RGb3JGcmFtZShmcmFtZSkpOworfQorCiB2b2lkIEluc3Bl
Y3RvclBhZ2VBZ2VudDo6YXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlKGxvbmcqIHdpZHRoKQogewog
ICAgIGxvbmcgd2lkdGhPdmVycmlkZSA9IG1fc3RhdGUtPmdldExvbmcoUGFnZUFnZW50U3RhdGU6
OnBhZ2VBZ2VudFNjcmVlbldpZHRoT3ZlcnJpZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IDkzZmVkMGUxZmVhZWUyYTllYzExYzAxYmFj
ZjgxYzU3OTc4YjUwNzcuLjFlY2Y3ODZmYjNiZDU3NjI5OWJjZWM4YjhiN2E4YmY1M2NiY2VjNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKQEAg
LTEzNyw2ICsxMzcsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZnJhbWVOYXZpZ2F0ZWQoRG9jdW1l
bnRMb2FkZXIqKTsKICAgICB2b2lkIGZyYW1lRGV0YWNoZWQoRnJhbWUqKTsKICAgICB2b2lkIGxv
YWRlckRldGFjaGVkRnJvbUZyYW1lKERvY3VtZW50TG9hZGVyKik7CisgICAgdm9pZCBmcmFtZVN0
YXJ0ZWRMb2FkaW5nKEZyYW1lKik7CisgICAgdm9pZCBmcmFtZVN0b3BwZWRMb2FkaW5nKEZyYW1l
Kik7CisgICAgdm9pZCBmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqLCBkb3VibGUgZGVs
YXkpOworICAgIHZvaWQgZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSopOwog
ICAgIHZvaWQgYXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlKGxvbmcqKTsKICAgICB2b2lkIGFwcGx5
U2NyZWVuSGVpZ2h0T3ZlcnJpZGUobG9uZyopOwogICAgIHZvaWQgYXBwbHlFbXVsYXRlZE1lZGlh
KFN0cmluZyopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXNvdXJjZVRyZWVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKaW5kZXggZTllMTJiOWRiNGNiOGYyYTNmODI0NWQ3MjQ5
ZTBkOTM3NDFmYmYyMC4uYzZkOGY3OWVjYzZiZjlhZjhhMWQ2OGNmYjIyYmY0MTBmNzEzN2QxMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRy
ZWVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlVHJlZU1vZGVsLmpzCkBAIC01OTYsNiArNTk2LDE4IEBAIFdlYkluc3BlY3Rvci5QYWdlRGlz
cGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgZnJhbWVEZXRhY2hlZDogZnVuY3Rpb24oZnJhbWVJ
ZCkKICAgICB7CiAgICAgICAgIHRoaXMuX3Jlc291cmNlVHJlZU1vZGVsLl9mcmFtZURldGFjaGVk
KGZyYW1lSWQpOworICAgIH0sCisKKyAgICBmcmFtZVN0YXJ0ZWRMb2FkaW5nOiBmdW5jdGlvbihm
cmFtZSkgeworICAgIH0sCisKKyAgICBmcmFtZVN0b3BwZWRMb2FkaW5nOiBmdW5jdGlvbihmcmFt
ZSkgeworICAgIH0sCisKKyAgICBmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb246IGZ1bmN0aW9uKGZy
YW1lLCBkZWxheSkgeworICAgIH0sCisKKyAgICBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0
aW9uOiBmdW5jdGlvbihmcmFtZSkgewogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwCmluZGV4IGFjYmViNzg5NWUwN2ZmZGRmOTQ4NDNl
NzQ5MWZmYzY4OGUxZDNkMmIuLjA3NmFiYmQyYWMwMDc2ZTQzNzJlNmYxZTA3MGFjMjVjOTAwNDI4
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAK
QEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgorI2lu
Y2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgpAQCAtMjg2LDYgKzI4Nyw4IEBAIGJvb2wgTmF2aWdhdGlvblNjaGVkdWxlcjo6bG9jYXRp
b25DaGFuZ2VQZW5kaW5nKCkKIAogdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpjbGVhcigpCiB7
CisgICAgaWYgKG1fdGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKG1fZnJhbWUpOwogICAgIG1f
dGltZXIuc3RvcCgpOwogICAgIG1fcmVkaXJlY3QuY2xlYXIoKTsKIH0KQEAgLTQxMSwxMSArNDE0
LDE0IEBAIHZvaWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6dGltZXJGaXJlZChUaW1lcjxOYXZpZ2F0
aW9uU2NoZWR1bGVyPiopCiB7CiAgICAgaWYgKCFtX2ZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBpZiAobV9mcmFtZS0+cGFnZSgpLT5kZWZlcnNMb2FkaW5nKCkpCisgICAgaWYg
KG1fZnJhbWUtPnBhZ2UoKS0+ZGVmZXJzTG9hZGluZygpKSB7CisgICAgICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihtX2ZyYW1lKTsK
ICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIE93blB0cjxTY2hlZHVsZWROYXZpZ2F0aW9u
PiByZWRpcmVjdChtX3JlZGlyZWN0LnJlbGVhc2UoKSk7CiAgICAgcmVkaXJlY3QtPmZpcmUobV9m
cmFtZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVs
ZWROYXZpZ2F0aW9uKG1fZnJhbWUpOwogfQogCiB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNj
aGVkdWxlKFBhc3NPd25QdHI8U2NoZWR1bGVkTmF2aWdhdGlvbj4gcmVkaXJlY3QpCkBAIC00NTgs
MTAgKzQ2NCwxMyBAQCB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnN0YXJ0VGltZXIoKQogCiAg
ICAgbV90aW1lci5zdGFydE9uZVNob3QobV9yZWRpcmVjdC0+ZGVsYXkoKSk7CiAgICAgbV9yZWRp
cmVjdC0+ZGlkU3RhcnRUaW1lcihtX2ZyYW1lLCAmbV90aW1lcik7CisgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24obV9mcmFtZSwgbV9yZWRpcmVj
dC0+ZGVsYXkoKSk7CiB9CiAKIHZvaWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6Y2FuY2VsKGJvb2wg
bmV3TG9hZEluUHJvZ3Jlc3MpCiB7CisgICAgaWYgKG1fdGltZXIuaXNBY3RpdmUoKSkKKyAgICAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0
aW9uKG1fZnJhbWUpOwogICAgIG1fdGltZXIuc3RvcCgpOwogCiAgICAgT3duUHRyPFNjaGVkdWxl
ZE5hdmlnYXRpb24+IHJlZGlyZWN0KG1fcmVkaXJlY3QucmVsZWFzZSgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAKaW5kZXggNGYyYjdlY2QzN2UyNmRmYWRjYmI1
YjZiNWZkOTVmMjZlMWRmNWIyYy4uOTIzODhlYzA1MjZjNDBjODgxYzk1ZGE0ZWIxN2U1MzNkNmJk
OWQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAKQEAgLTMx
LDYgKzMxLDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyU3RhdGVNYWNoaW5lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNs
dWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KQEAgLTEyMCw2ICsxMjEsNyBAQCB2b2lkIFByb2dyZXNzVHJhY2tlcjo6cHJvZ3Jlc3NTdGFy
dGVkKEZyYW1lKiBmcmFtZSkKICAgICBtX251bVByb2dyZXNzVHJhY2tlZEZyYW1lcysrOwogCiAg
ICAgZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3Mo
KTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RhcnRlZExvYWRpbmcoZnJh
bWUpOwogfQogCiB2b2lkIFByb2dyZXNzVHJhY2tlcjo6cHJvZ3Jlc3NDb21wbGV0ZWQoRnJhbWUq
IGZyYW1lKQpAQCAtMTU1LDYgKzE1Nyw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpmaW5hbFBy
b2dyZXNzQ29tcGxldGUoKQogCiAgICAgZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+c2V0TWFp
bkZyYW1lRG9jdW1lbnRSZWFkeSh0cnVlKTsKICAgICBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgp
LT5wb3N0UHJvZ3Jlc3NGaW5pc2hlZE5vdGlmaWNhdGlvbigpOworICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGluZyhmcmFtZS5nZXQoKSk7CiB9CiAKIHZvaWQg
UHJvZ3Jlc3NUcmFja2VyOjppbmNyZW1lbnRQcm9ncmVzcyh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ3YWMzZWQwMDQ1
NTI1ZDg4NTM1ZTUxMjZjMmU2YzE1OWI0NDgzNzQuLjg0NGE2N2E2ZmE5OWJkOGMwNjI1N2M3N2Zk
MGY3NjY4NTE3NTYzZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMi0xMi0xNCAgS2VuIEth
bmlhICA8a2thbmlhQGNocm9taXVtLm9yZz4KKworICAgICAgICBbSW5zcGVjdG9yXSBBZGQgZXZl
bnRzIGZvciB0cmFja2luZyBwYWdlIGxvYWRzIGFuZCBzY2hlZHVsZWQgbmF2aWdhdGlvbnMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQxNjgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVzZSBldmVu
dHMgYXJlIG5lZWRlZCBmb3IgY2xpZW50cyB3aG8gbmVlZCB0byBiZSBhd2FyZSBvZiB3aGVuIGEg
cGFnZSBpcworICAgICAgICBuYXZpZ2F0aW5nIG9yIGFib3V0IHRvIG5hdmlnYXRlLiBTb21lIGNs
aWVudHMgbWF5IHdpc2ggdG8gcHJldmVudCBpbnRlcmFjdGlvbgorICAgICAgICB3aXRoIHRoZSBw
YWdlIGR1cmluZyB0aGlzIHRpbWUuIFR3byBvZiB0aGUgbmV3IGV2ZW50cyB0cmFjayBsb2FkaW5n
IHN0YXJ0IGFuZAorICAgICAgICBzdG9wLCBhcyBtZWFzdXJlZCBieSB0aGUgUHJvZ3Jlc3NUcmFj
a2VyLiBUaGUgb3RoZXIgdHdvIGV2ZW50cyB0cmFjayB3aGVuIGEKKyAgICAgICAgcGFnZSBoYXMg
YSBuZXcgc2NoZWR1bGVkIG5hdmlnYXRpb24gYW5kIHdoZW4gaXQgbm8gbG9uZ2VyIGhhcyBhIHNj
aGVkdWxlZAorICAgICAgICBuYXZpZ2F0aW9uLiBUaGVzZSBsYXR0ZXIgdHdvIGV2ZW50cyB3b24n
dCBhbGxvdyB0aGUgY2xpZW50IHRvIGRldGVybWluZSBpZgorICAgICAgICBhIGxvYWQgaXMgZ29p
bmcgdG8gaGFwcGVuIGluIGFsbCBjaXJjdW1zdGFuY2VzLCBidXQgaXMgc3VmZmljaWVudCBmb3Ig
bWFueSBjYXNlcy4KKworICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU2No
ZWR1bGVkTmF2aWdhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci1wcm90b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbi5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVT
dGFydGVkTG9hZGluZy5odG1sOiBBZGRlZC4KKwogMjAxMi0xMi0xNCAgVy4gSmFtZXMgTWFjTGVh
biAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtIGdhcmRlbmlu
Z10gU2V0IGV4cGVjdGF0aW9ucyBmb3IgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvY29t
cG9zaXRlZHNjcm9sbGluZy9zY3JvbGxiYXJzL3Njcm9sbGJhci1kcmFnLXRodW1iLXdpdGgtbGFy
Z2UtY29udGVudC1leHBlY3RlZC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTY2hlZHVsZWROYXZpZ2F0
aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmYwMWQ4YTBiZTkyZTdmZDQzYmZlOGI0Nzdk
ZWM5NGEzODNhNDI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL3BhZ2UvZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDUgQEAKKworU2NoZWR1bGVkIG5hdmlnYXRpb24gd2l0aCBkZWxheSAwCitTdGFydGVkIGxv
YWRpbmcKK0NsZWFyZWQgc2NoZWR1bGVkIG5hdmlnYXRpb24KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5h
dmlnYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDI3Y2JlN2Q1OTMwNzIyOTk5ZGFlMmI1ZDM5ODNk
YzQxYjIwMTUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL3BhZ2UvZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uLmh0bWwKQEAgLTAsMCArMSw0MyBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGxvYWQoKQoreworICAgIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoImlmcmFtZSIpLnNyYyA9ICIuLi9yZXNvdXJjZXMvYmxhbmsuaHRtbCI7
Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVy
WyJQYWdlLmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbiJdID0gb25TY2hlZHVsZWQ7CisgICAgSW5z
cGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIlBhZ2UuZnJhbWVTdGFydGVkTG9hZGluZyJdID0gb25T
dGFydGVkOworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQYWdlLmZyYW1lQ2xlYXJl
ZFNjaGVkdWxlZE5hdmlnYXRpb24iXSA9IG9uQ2xlYXJlZDsKKyAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJQYWdlLmVuYWJsZSIsIHt9KTsKKworICAgIGZ1bmN0aW9uIG9uU2NoZWR1bGVk
KG1zZykKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJTY2hlZHVsZWQgbmF2aWdh
dGlvbiB3aXRoIGRlbGF5ICIgKyBtc2cucGFyYW1zLmRlbGF5KTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBvblN0YXJ0ZWQobXNnKQorICAgIHsKKyAgICAgICAgLy8gVGhpcyBldmVudCBzaG91bGQg
YmUgcmVjZWl2ZWQgYmVmb3JlIHRoZSBzY2hlZHVsZWQgbmF2aWdhdGlvbiBpcyBjbGVhcmVkLgor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU3RhcnRlZCBsb2FkaW5nIik7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gb25DbGVhcmVkKG1zZykKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJDbGVhcmVkIHNjaGVkdWxlZCBuYXZpZ2F0aW9uIik7CisgICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsgImV4cHJlc3Npb24iOiAibG9hZCgpIiB9KTsKK30KKwor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8aWZyYW1lPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41NjBlZjU3YzM4NjBjMTJmYzMyMGJkZGFkOTk0ZDNmZGEyZmE0ZGE5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVT
dGFydGVkTG9hZGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1N0YXJ0ZWQgbG9h
ZGluZworU3RvcHBlZCBsb2FkaW5nCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9wYWdlL2ZyYW1lU3RhcnRlZExvYWRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU3RhcnRlZExvYWRpbmcuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43NTcxYmM2ZTZjZjk1YmE3ZDI3N2EwMjRmYmJlYjA2NjY5YmQ5NDRlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9h
ZGluZy5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5j
dGlvbiBsb2FkKCkKK3sKKyAgICB2YXIgZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
ZnJhbWUiKTsKKyAgICBmcmFtZS5zcmMgPSAiLi4vcmVzb3VyY2VzL2JsYW5rLmh0bWwiOworICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOworfQorCitmdW5jdGlvbiB0ZXN0KCkK
K3sKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5mcmFtZVN0YXJ0ZWRMb2Fk
aW5nIl0gPSBvblN0YXJ0OworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQYWdlLmZy
YW1lU3RvcHBlZExvYWRpbmciXSA9IG9uU3RvcDsKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJQYWdlLmVuYWJsZSIsIHt9KTsKKworICAgIGZ1bmN0aW9uIG9uU3RhcnQoKQorICAgIHsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlN0YXJ0ZWQgbG9hZGluZyIpOworICAgIH0KKyAg
ICBmdW5jdGlvbiBvblN0b3AoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlN0
b3BwZWQgbG9hZGluZyIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwor
ICAgIH0KKworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUi
LCB7ICJleHByZXNzaW9uIjogImxvYWQoKSIgfSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179959</attachid>
            <date>2012-12-18 09:24:54 -0800</date>
            <delta_ts>2012-12-18 12:19:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104168-20121218092211.patch</filename>
            <type>text/plain</type>
            <size>21323</size>
            <attacher name="Ken Kania">kkania</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3OTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJiZDA0Njk2ZWE4ZDE3
YmRlNWUzMTgwYWJmODk2NTY3NDkyYzZjNC4uYjdkNGQyMWEzNzY4ZmFjNmU2YTJhYTZjZmJjNmQ1
NzNmYjc0YTIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTEyLTE3ICBLZW4g
S2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJbnNwZWN0b3JdIEFkZCBl
dmVudHMgZm9yIHRyYWNraW5nIHBhZ2UgbG9hZHMgYW5kIHNjaGVkdWxlZCBuYXZpZ2F0aW9ucy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDE2OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGV2
ZW50cyBhcmUgbmVlZGVkIGZvciBjbGllbnRzIHdobyBuZWVkIHRvIGJlIGF3YXJlIG9mIHdoZW4g
YSBwYWdlIGlzCisgICAgICAgIG5hdmlnYXRpbmcgb3IgYWJvdXQgdG8gbmF2aWdhdGUuIFNvbWUg
Y2xpZW50cyBtYXkgd2lzaCB0byBwcmV2ZW50IGludGVyYWN0aW9uCisgICAgICAgIHdpdGggdGhl
IHBhZ2UgZHVyaW5nIHRoaXMgdGltZS4gVHdvIG9mIHRoZSBuZXcgZXZlbnRzIHRyYWNrIGxvYWRp
bmcgc3RhcnQgYW5kCisgICAgICAgIHN0b3AsIGFzIG1lYXN1cmVkIGJ5IHRoZSBQcm9ncmVzc1Ry
YWNrZXIuIFRoZSBvdGhlciB0d28gZXZlbnRzIHRyYWNrIHdoZW4gYQorICAgICAgICBwYWdlIGhh
cyBhIG5ldyBzY2hlZHVsZWQgbmF2aWdhdGlvbiBhbmQgd2hlbiBpdCBubyBsb25nZXIgaGFzIGEg
c2NoZWR1bGVkCisgICAgICAgIG5hdmlnYXRpb24uIFRoZXNlIGxhdHRlciB0d28gZXZlbnRzIHdv
bid0IGFsbG93IHRoZSBjbGllbnQgdG8gZGV0ZXJtaW5lIGlmCisgICAgICAgIGEgbG9hZCBpcyBn
b2luZyB0byBoYXBwZW4gaW4gYWxsIGNpcmN1bXN0YW5jZXMsIGJ1dCBpcyBzdWZmaWNpZW50IGZv
ciBtYW55IGNhc2VzLgorCisgICAgICAgIFRlc3RzOiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9m
cmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yLXBy
b3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZ0ltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVN0b3BwZWRMb2FkaW5nSW1w
bCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU2No
ZWR1bGVkTmF2aWdhdGlvbkltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uSW1wbCk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU2No
ZWR1bGVkTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UGFnZUFnZW50OjpmcmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZVN0b3BwZWRMb2FkaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVTY2hlZHVsZWROYXZp
Z2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVDbGVh
cmVkU2NoZWR1bGVkTmF2aWdhdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9k
ZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZy
YW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyLnByb3Rv
dHlwZS5mcmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYWdlRGlz
cGF0Y2hlci5wcm90b3R5cGUuZnJhbWVTdG9wcGVkTG9hZGluZyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lQ2xl
YXJlZFNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2No
ZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OmNsZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OnRpbWVyRmlyZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvblNjaGVkdWxlcjo6c3RhcnRUaW1lcik6CisgICAg
ICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uU2NoZWR1bGVyOjpjYW5jZWwpOgorICAgICAgICAqIGxv
YWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFj
a2VyOjpwcm9ncmVzc1N0YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2Vy
OjpmaW5hbFByb2dyZXNzQ29tcGxldGUpOgorCiAyMDEyLTEyLTE3ICBCZW0gSm9uZXMtQmV5ICA8
YmpvbmVzYmVAYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgRXhjbHVzaW9uc10gc2hhcGUtb3V0
c2lkZSBvbiBmbG9hdHMgZm9yIHJlY3RhbmdsZSBzaGFwZXMgaGVpZ2h0L3dpZHRoCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggOWQzOTI3OTk0NmEwNTJkMDU4NzE5
ODJmYTRkMzI2NjZlMzgxNmNjZC4uYjRkNDEyYTQxODAzOGYyOTA1NzM5N2Q0ZjE1MDFjYTIzODEx
OWRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29u
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtNDg2LDYg
KzQ4NiwzOSBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAiJHJl
ZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAiSWQgb2YgdGhlIGZyYW1lIHRo
YXQgaGFzIGJlZW4gZGV0YWNoZWQuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAg
ICAgICAiaGlkZGVuIjogdHJ1ZQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAibmFtZSI6ICJmcmFtZVN0YXJ0ZWRMb2FkaW5nIiwKKyAgICAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiBmcmFtZSBoYXMgc3RhcnRlZCBsb2FkaW5nLiIs
CisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZnJhbWUiLCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3JpcHRpb24i
OiAiSWQgb2YgdGhlIGZyYW1lIHRoYXQgaGFzIHN0YXJ0ZWQgbG9hZGluZy4iIH0KKyAgICAgICAg
ICAgICAgICBdLAorICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImZyYW1lU3RvcHBlZExv
YWRpbmciLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVuIGZyYW1l
IGhhcyBzdG9wcGVkIGxvYWRpbmcuIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZSIsICIkcmVmIjogIk5ldHdvcmsu
RnJhbWVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgZnJhbWUgdGhhdCBoYXMgc3RvcHBl
ZCBsb2FkaW5nLiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImhpZGRl
biI6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
Im5hbWUiOiAiZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uIiwKKyAgICAgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiRmlyZWQgd2hlbiBmcmFtZSBzY2hlZHVsZXMgYSBwb3RlbnRpYWwgbmF2aWdh
dGlvbi4iLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImZyYW1lIiwgIiRyZWYiOiAiTmV0d29yay5GcmFtZUlkIiwgImRlc2Ny
aXB0aW9uIjogIklkIG9mIHRoZSBmcmFtZSB0aGF0IGhhcyBzY2hlZHVsZWQgYSBuYXZpZ2F0aW9u
LiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkZWxheSIsICJ0eXBlIjogIm51
bWJlciIsICJkZXNjcmlwdGlvbiI6ICJEZWxheSAoaW4gc2Vjb25kcykgdW50aWwgdGhlIG5hdmln
YXRpb24gaXMgc2NoZWR1bGVkIHRvIGJlZ2luLiBUaGUgbmF2aWdhdGlvbiBpcyBub3QgZ3VhcmFu
dGVlZCB0byBzdGFydC4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJo
aWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICJuYW1lIjogImZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24iLAorICAgICAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVuIGZyYW1lIG5vIGxvbmdlciBoYXMgYSBz
Y2hlZHVsZWQgbmF2aWdhdGlvbi4iLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwor
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lIiwgIiRyZWYiOiAiTmV0d29yay5G
cmFtZUlkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBmcmFtZSB0aGF0IGhhcyBjbGVhcmVk
IGl0cyBzY2hlZHVsZWQgbmF2aWdhdGlvbi4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAg
ICAgICAgICAgICJoaWRkZW4iOiB0cnVlCiAgICAgICAgICAgICB9CiAgICAgICAgIF0KICAgICB9
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcAppbmRleCAzMzkzNjZhMmEzYjg1OGRmYjI5MDdjYjQzYmE2ZGNkNTkwNjdmMGE4
Li4xZWM5ZWZjNDdlM2QwMjE2MzI4NjBkMGE4ZGM5N2EzY2YzNTNlZjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApA
QCAtOTI1LDYgKzkyNSwzMCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZGVy
RGV0YWNoZWRGcm9tRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqCiAgICAgICAgIGluc3Bl
Y3RvclBhZ2VBZ2VudC0+bG9hZGVyRGV0YWNoZWRGcm9tRnJhbWUobG9hZGVyKTsKIH0KIAordm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RhcnRlZExvYWRpbmdJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lKiBmcmFtZSkKK3sKKyAg
ICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBpbnNwZWN0b3JQYWdlQWdlbnQgPSBpbnN0cnVtZW50
aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKKyAgICAgICAgaW5zcGVjdG9yUGFnZUFn
ZW50LT5mcmFtZVN0YXJ0ZWRMb2FkaW5nKGZyYW1lKTsKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmZyYW1lU3RvcHBlZExvYWRpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lKiBmcmFtZSkKK3sKKyAgICBpZiAoSW5zcGVjdG9y
UGFnZUFnZW50KiBpbnNwZWN0b3JQYWdlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNw
ZWN0b3JQYWdlQWdlbnQoKSkKKyAgICAgICAgaW5zcGVjdG9yUGFnZUFnZW50LT5mcmFtZVN0b3Bw
ZWRMb2FkaW5nKGZyYW1lKTsKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZy
YW1lU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cywgRnJhbWUqIGZyYW1lLCBkb3VibGUgZGVsYXkpCit7CisgICAgaWYgKEluc3Bl
Y3RvclBhZ2VBZ2VudCogaW5zcGVjdG9yUGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+
aW5zcGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIGluc3BlY3RvclBhZ2VBZ2VudC0+ZnJhbWVT
Y2hlZHVsZWROYXZpZ2F0aW9uKGZyYW1lLCBkZWxheSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSogZnJhbWUpCit7CisgICAg
aWYgKEluc3BlY3RvclBhZ2VBZ2VudCogaW5zcGVjdG9yUGFnZUFnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIGluc3BlY3RvclBhZ2VBZ2Vu
dC0+ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihmcmFtZSk7Cit9CisKIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveUNhY2hlZFJlc291cmNlSW1wbChDYWNo
ZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7CiAgICAgaWYgKCFpbnN0cnVtZW50aW5nQWdl
bnRzU2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oCmluZGV4IDExNmNjNDJlMGRlMGQ0ZWMxYzFiYTQzMDczOTBhMDVjNDUzNTZm
OTEuLjUzYTY2NTlmZjZkMmU4MWVjMjIxYWQyODg0OTJhN2MwN2RjMWJjYjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAg
LTE5NCw2ICsxOTQsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGZyYW1lRGV0YWNoZWRG
cm9tUGFyZW50KEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ29tbWl0TG9hZChGcmFtZSos
IERvY3VtZW50TG9hZGVyKik7CiAgICAgc3RhdGljIHZvaWQgbG9hZGVyRGV0YWNoZWRGcm9tRnJh
bWUoRnJhbWUqLCBEb2N1bWVudExvYWRlciopOworICAgIHN0YXRpYyB2b2lkIGZyYW1lU3RhcnRl
ZExvYWRpbmcoRnJhbWUqKTsKKyAgICBzdGF0aWMgdm9pZCBmcmFtZVN0b3BwZWRMb2FkaW5nKEZy
YW1lKik7CisgICAgc3RhdGljIHZvaWQgZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKiwg
ZG91YmxlIGRlbGF5KTsKKyAgICBzdGF0aWMgdm9pZCBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZp
Z2F0aW9uKEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lDYWNoZWRSZXNvdXJj
ZShDYWNoZWRSZXNvdXJjZSopOwogCiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSB3aWxsV3JpdGVIVE1MKERvY3VtZW50KiwgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5z
aWduZWQgaW50IHN0YXJ0TGluZSk7CkBAIC0zOTMsNiArMzk3LDEwIEBAIHByaXZhdGU6CiAgICAg
c3RhdGljIHZvaWQgZnJhbWVEZXRhY2hlZEZyb21QYXJlbnRJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMqLCBGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIGRpZENvbW1pdExvYWRJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMqLCBQYWdlKiwgRG9jdW1lbnRMb2FkZXIqKTsKICAgICBzdGF0aWMgdm9pZCBs
b2FkZXJEZXRhY2hlZEZyb21GcmFtZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIERvY3VtZW50
TG9hZGVyKik7CisgICAgc3RhdGljIHZvaWQgZnJhbWVTdGFydGVkTG9hZGluZ0ltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyosIEZyYW1lKik7CisgICAgc3RhdGljIHZvaWQgZnJhbWVTdG9wcGVkTG9h
ZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKik7CisgICAgc3RhdGljIHZvaWQg
ZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUq
LCBkb3VibGUgZGVsYXkpOworICAgIHN0YXRpYyB2b2lkIGZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5h
dmlnYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSopOwogICAgIHN0YXRpYyB2
b2lkIHdpbGxEZXN0cm95Q2FjaGVkUmVzb3VyY2VJbXBsKENhY2hlZFJlc291cmNlKik7CiAKICAg
ICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxXcml0ZUhUTUxJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqLCB1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQg
c3RhcnRMaW5lLCBGcmFtZSopOwpAQCAtMTY1NCw2ICsxNjYyLDM4IEBAIGlubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZGVyRGV0YWNoZWRGcm9tRnJhbWUoRnJhbWUqIGZy
YW1lLCBEb2N1CiAjZW5kaWYKIH0KIAoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpmcmFtZVN0YXJ0ZWRMb2FkaW5nKEZyYW1lKiBmcmFtZSkKK3sKKyNpZiBFTkFCTEUoSU5T
UEVDVE9SKQorICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
ID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKKyAgICAgICAgZnJhbWVTdGFy
dGVkTG9hZGluZ0ltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZnJhbWUpOworI2VuZGlmCit9CisK
K2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGlu
ZyhGcmFtZSogZnJhbWUpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBpZiAoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNG
b3JGcmFtZShmcmFtZSkpCisgICAgICAgIGZyYW1lU3RvcHBlZExvYWRpbmdJbXBsKGluc3RydW1l
bnRpbmdBZ2VudHMsIGZyYW1lKTsKKyNlbmRpZgorfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSogZnJhbWUsIGRv
dWJsZSBkZWxheSkKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGlmIChJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZy
YW1lKGZyYW1lKSkKKyAgICAgICAgZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uSW1wbChpbnN0cnVt
ZW50aW5nQWdlbnRzLCBmcmFtZSwgZGVsYXkpOworI2VuZGlmCit9CisKK2lubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihG
cmFtZSogZnJhbWUpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBpZiAoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JG
cmFtZShmcmFtZSkpCisgICAgICAgIGZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb25JbXBs
KGluc3RydW1lbnRpbmdBZ2VudHMsIGZyYW1lKTsKKyNlbmRpZgorfQorCiBpbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95Q2FjaGVkUmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2UqIGNhY2hlZFJlc291cmNlKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDRi
MzA2Zjc3YWZmZmQ0YjhhZjVjNzQ5NTEyNjYwYTY0MGFiZDJhZjYuLjRhNTQ3Yzk3MzU3Y2I5OWEy
MTk5MWY4MGFkNTdjN2YxNWVkZmIzMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC05MDUsNiArOTA1LDI2IEBAIHZvaWQgSW5zcGVj
dG9yUGFnZUFnZW50Ojpsb2FkZXJEZXRhY2hlZEZyb21GcmFtZShEb2N1bWVudExvYWRlciogbG9h
ZGVyKQogICAgICAgICBtX2xvYWRlclRvSWRlbnRpZmllci5yZW1vdmUoaXRlcmF0b3IpOwogfQog
Cit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVTdGFydGVkTG9hZGluZyhGcmFtZSogZnJh
bWUpCit7CisgICAgbV9mcm9udGVuZC0+ZnJhbWVTdGFydGVkTG9hZGluZyhmcmFtZUlkKGZyYW1l
KSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZVN0b3BwZWRMb2FkaW5nKEZy
YW1lKiBmcmFtZSkKK3sKKyAgICBtX2Zyb250ZW5kLT5mcmFtZVN0b3BwZWRMb2FkaW5nKGZyYW1l
SWQoZnJhbWUpKTsKK30KKwordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1lU2NoZWR1bGVk
TmF2aWdhdGlvbihGcmFtZSogZnJhbWUsIGRvdWJsZSBkZWxheSkKK3sKKyAgICBtX2Zyb250ZW5k
LT5mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24oZnJhbWVJZChmcmFtZSksIGRlbGF5KTsKK30KKwor
dm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24o
RnJhbWUqIGZyYW1lKQoreworICAgIG1fZnJvbnRlbmQtPmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5h
dmlnYXRpb24oZnJhbWVJZChmcmFtZSkpOworfQorCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6
YXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlKGxvbmcqIHdpZHRoKQogewogICAgIGxvbmcgd2lkdGhP
dmVycmlkZSA9IG1fc3RhdGUtPmdldExvbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmVl
bldpZHRoT3ZlcnJpZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5oCmluZGV4IDkzZmVkMGUxZmVhZWUyYTllYzExYzAxYmFjZjgxYzU3OTc4YjUwNzcu
LjFlY2Y3ODZmYjNiZDU3NjI5OWJjZWM4YjhiN2E4YmY1M2NiY2VjNDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKQEAgLTEzNyw2ICsxMzcsMTAg
QEAgcHVibGljOgogICAgIHZvaWQgZnJhbWVOYXZpZ2F0ZWQoRG9jdW1lbnRMb2FkZXIqKTsKICAg
ICB2b2lkIGZyYW1lRGV0YWNoZWQoRnJhbWUqKTsKICAgICB2b2lkIGxvYWRlckRldGFjaGVkRnJv
bUZyYW1lKERvY3VtZW50TG9hZGVyKik7CisgICAgdm9pZCBmcmFtZVN0YXJ0ZWRMb2FkaW5nKEZy
YW1lKik7CisgICAgdm9pZCBmcmFtZVN0b3BwZWRMb2FkaW5nKEZyYW1lKik7CisgICAgdm9pZCBm
cmFtZVNjaGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqLCBkb3VibGUgZGVsYXkpOworICAgIHZvaWQg
ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSopOwogICAgIHZvaWQgYXBwbHlT
Y3JlZW5XaWR0aE92ZXJyaWRlKGxvbmcqKTsKICAgICB2b2lkIGFwcGx5U2NyZWVuSGVpZ2h0T3Zl
cnJpZGUobG9uZyopOwogICAgIHZvaWQgYXBwbHlFbXVsYXRlZE1lZGlhKFN0cmluZyopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVN
b2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVl
TW9kZWwuanMKaW5kZXggZTllMTJiOWRiNGNiOGYyYTNmODI0NWQ3MjQ5ZTBkOTM3NDFmYmYyMC4u
NGQ3YTFhMWUzNmZiNTE4ZmZmMTM5MDgxMGI2OGRmN2Y3YzMxNzliYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpz
CkBAIC01OTYsNiArNTk2LDE4IEBAIFdlYkluc3BlY3Rvci5QYWdlRGlzcGF0Y2hlci5wcm90b3R5
cGUgPSB7CiAgICAgZnJhbWVEZXRhY2hlZDogZnVuY3Rpb24oZnJhbWVJZCkKICAgICB7CiAgICAg
ICAgIHRoaXMuX3Jlc291cmNlVHJlZU1vZGVsLl9mcmFtZURldGFjaGVkKGZyYW1lSWQpOworICAg
IH0sCisKKyAgICBmcmFtZVN0YXJ0ZWRMb2FkaW5nOiBmdW5jdGlvbihmcmFtZUlkKSB7CisgICAg
fSwKKworICAgIGZyYW1lU3RvcHBlZExvYWRpbmc6IGZ1bmN0aW9uKGZyYW1lSWQpIHsKKyAgICB9
LAorCisgICAgZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uOiBmdW5jdGlvbihmcmFtZUlkLCBkZWxh
eSkgeworICAgIH0sCisKKyAgICBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uOiBmdW5j
dGlvbihmcmFtZUlkKSB7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2
aWdhdGlvblNjaGVkdWxlci5jcHAKaW5kZXggYWNiZWI3ODk1ZTA3ZmZkZGY5NDg0M2U3NDkxZmZj
Njg4ZTFkM2QyYi4uMDc2YWJiZDJhYzAwNzZlNDM3MmU2ZjFlMDcwYWMyNWM5MDA0Mjg1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcApAQCAtNDUs
NiArNDUsNyBAQAogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxG
cmFtZU93bmVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCisjaW5jbHVkZSAi
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CkBA
IC0yODYsNiArMjg3LDggQEAgYm9vbCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpsb2NhdGlvbkNoYW5n
ZVBlbmRpbmcoKQogCiB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OmNsZWFyKCkKIHsKKyAgICBp
ZiAobV90aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24obV9mcmFtZSk7CiAgICAgbV90aW1lci5z
dG9wKCk7CiAgICAgbV9yZWRpcmVjdC5jbGVhcigpOwogfQpAQCAtNDExLDExICs0MTQsMTQgQEAg
dm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjp0aW1lckZpcmVkKFRpbWVyPE5hdmlnYXRpb25TY2hl
ZHVsZXI+KikKIHsKICAgICBpZiAoIW1fZnJhbWUtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuOwot
ICAgIGlmIChtX2ZyYW1lLT5wYWdlKCktPmRlZmVyc0xvYWRpbmcoKSkKKyAgICBpZiAobV9mcmFt
ZS0+cGFnZSgpLT5kZWZlcnNMb2FkaW5nKCkpIHsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKG1fZnJhbWUpOwogICAgICAg
ICByZXR1cm47CisgICAgfQogCiAgICAgT3duUHRyPFNjaGVkdWxlZE5hdmlnYXRpb24+IHJlZGly
ZWN0KG1fcmVkaXJlY3QucmVsZWFzZSgpKTsKICAgICByZWRpcmVjdC0+ZmlyZShtX2ZyYW1lKTsK
KyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmln
YXRpb24obV9mcmFtZSk7CiB9CiAKIHZvaWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6c2NoZWR1bGUo
UGFzc093blB0cjxTY2hlZHVsZWROYXZpZ2F0aW9uPiByZWRpcmVjdCkKQEAgLTQ1OCwxMCArNDY0
LDEzIEBAIHZvaWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6c3RhcnRUaW1lcigpCiAKICAgICBtX3Rp
bWVyLnN0YXJ0T25lU2hvdChtX3JlZGlyZWN0LT5kZWxheSgpKTsKICAgICBtX3JlZGlyZWN0LT5k
aWRTdGFydFRpbWVyKG1fZnJhbWUsICZtX3RpbWVyKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbihtX2ZyYW1lLCBtX3JlZGlyZWN0LT5kZWxh
eSgpKTsKIH0KIAogdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpjYW5jZWwoYm9vbCBuZXdMb2Fk
SW5Qcm9ncmVzcykKIHsKKyAgICBpZiAobV90aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24obV9m
cmFtZSk7CiAgICAgbV90aW1lci5zdG9wKCk7CiAKICAgICBPd25QdHI8U2NoZWR1bGVkTmF2aWdh
dGlvbj4gcmVkaXJlY3QobV9yZWRpcmVjdC5yZWxlYXNlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAppbmRleCA0ZjJiN2VjZDM3ZTI2ZGZhZGNiYjViNmI1ZmQ5
NWYyNmUxZGY1YjJjLi45MjM4OGVjMDUyNmM0MGM4ODFjOTVkYTRlYjE3ZTUzM2Q2YmQ5ZDNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcApAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJTdGF0
ZU1hY2hpbmUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRl
ICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAt
MTIwLDYgKzEyMSw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVzc1N0YXJ0ZWQoRnJh
bWUqIGZyYW1lKQogICAgIG1fbnVtUHJvZ3Jlc3NUcmFja2VkRnJhbWVzKys7CiAKICAgICBmcmFt
ZS0+bG9hZGVyKCktPmNsaWVudCgpLT5kaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpOworICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZyhmcmFtZSk7CiB9
CiAKIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVzc0NvbXBsZXRlZChGcmFtZSogZnJhbWUp
CkBAIC0xNTUsNiArMTU3LDcgQEAgdm9pZCBQcm9ncmVzc1RyYWNrZXI6OmZpbmFsUHJvZ3Jlc3ND
b21wbGV0ZSgpCiAKICAgICBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5zZXRNYWluRnJhbWVE
b2N1bWVudFJlYWR5KHRydWUpOwogICAgIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPnBvc3RQ
cm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uKCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpmcmFtZVN0b3BwZWRMb2FkaW5nKGZyYW1lLmdldCgpKTsKIH0KIAogdm9pZCBQcm9ncmVz
c1RyYWNrZXI6OmluY3JlbWVudFByb2dyZXNzKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWI4ODE2NTUzNGYwMzVhMzcy
MmFkOTI5MWRhZmE0YmFkMDk1ZjhmOC4uYjM2NTNhNzdjM2Y0M2RiYTI4ZmQwMTY3NzQ1ZTU5MDJh
Njg3NWM2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTEyLTE3ICBLZW4gS2FuaWEgIDxr
a2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJbnNwZWN0b3JdIEFkZCBldmVudHMgZm9y
IHRyYWNraW5nIHBhZ2UgbG9hZHMgYW5kIHNjaGVkdWxlZCBuYXZpZ2F0aW9ucy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDE2OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGV2ZW50cyBhcmUg
bmVlZGVkIGZvciBjbGllbnRzIHdobyBuZWVkIHRvIGJlIGF3YXJlIG9mIHdoZW4gYSBwYWdlIGlz
CisgICAgICAgIG5hdmlnYXRpbmcgb3IgYWJvdXQgdG8gbmF2aWdhdGUuIFNvbWUgY2xpZW50cyBt
YXkgd2lzaCB0byBwcmV2ZW50IGludGVyYWN0aW9uCisgICAgICAgIHdpdGggdGhlIHBhZ2UgZHVy
aW5nIHRoaXMgdGltZS4gVHdvIG9mIHRoZSBuZXcgZXZlbnRzIHRyYWNrIGxvYWRpbmcgc3RhcnQg
YW5kCisgICAgICAgIHN0b3AsIGFzIG1lYXN1cmVkIGJ5IHRoZSBQcm9ncmVzc1RyYWNrZXIuIFRo
ZSBvdGhlciB0d28gZXZlbnRzIHRyYWNrIHdoZW4gYQorICAgICAgICBwYWdlIGhhcyBhIG5ldyBz
Y2hlZHVsZWQgbmF2aWdhdGlvbiBhbmQgd2hlbiBpdCBubyBsb25nZXIgaGFzIGEgc2NoZWR1bGVk
CisgICAgICAgIG5hdmlnYXRpb24uIFRoZXNlIGxhdHRlciB0d28gZXZlbnRzIHdvbid0IGFsbG93
IHRoZSBjbGllbnQgdG8gZGV0ZXJtaW5lIGlmCisgICAgICAgIGEgbG9hZCBpcyBnb2luZyB0byBo
YXBwZW4gaW4gYWxsIGNpcmN1bXN0YW5jZXMsIGJ1dCBpcyBzdWZmaWNpZW50IGZvciBtYW55IGNh
c2VzLgorCisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTY2hlZHVsZWRO
YXZpZ2F0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yLXByb3Rv
Y29sL3BhZ2UvZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU3RhcnRlZExvYWRpbmctZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVN0YXJ0ZWRM
b2FkaW5nLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEyLTE3ICBCZW0gSm9uZXMtQmV5ICA8YmpvbmVz
YmVAYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgRXhjbHVzaW9uc10gc2hhcGUtb3V0c2lkZSBv
biBmbG9hdHMgZm9yIHJlY3RhbmdsZSBzaGFwZXMgaGVpZ2h0L3dpZHRoCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRp
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJh
bWVTY2hlZHVsZWROYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmYwMWQ4YTBi
ZTkyZTdmZDQzYmZlOGI0NzdkZWM5NGEzODNhNDI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworU2NoZWR1bGVkIG5hdmlnYXRpb24gd2l0aCBk
ZWxheSAwCitTdGFydGVkIGxvYWRpbmcKK0NsZWFyZWQgc2NoZWR1bGVkIG5hdmlnYXRpb24KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTY2hl
ZHVsZWROYXZpZ2F0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFn
ZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDI3Y2JlN2Q1OTMw
NzIyOTk5ZGFlMmI1ZDM5ODNkYzQxYjIwMTUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uLmh0bWwK
QEAgLTAsMCArMSw0MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNl
cy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGxvYWQo
KQoreworICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlmcmFtZSIpLnNyYyA9ICIuLi9yZXNv
dXJjZXMvYmxhbmsuaHRtbCI7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3Rv
clRlc3QuZXZlbnRIYW5kbGVyWyJQYWdlLmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbiJdID0gb25T
Y2hlZHVsZWQ7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIlBhZ2UuZnJhbWVTdGFy
dGVkTG9hZGluZyJdID0gb25TdGFydGVkOworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVy
WyJQYWdlLmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24iXSA9IG9uQ2xlYXJlZDsKKyAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJQYWdlLmVuYWJsZSIsIHt9KTsKKworICAgIGZ1
bmN0aW9uIG9uU2NoZWR1bGVkKG1zZykKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJTY2hlZHVsZWQgbmF2aWdhdGlvbiB3aXRoIGRlbGF5ICIgKyBtc2cucGFyYW1zLmRlbGF5KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBvblN0YXJ0ZWQobXNnKQorICAgIHsKKyAgICAgICAgLy8g
VGhpcyBldmVudCBzaG91bGQgYmUgcmVjZWl2ZWQgYmVmb3JlIHRoZSBzY2hlZHVsZWQgbmF2aWdh
dGlvbiBpcyBjbGVhcmVkLgorICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU3RhcnRlZCBsb2Fk
aW5nIik7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25DbGVhcmVkKG1zZykKKyAgICB7CisgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJDbGVhcmVkIHNjaGVkdWxlZCBuYXZpZ2F0aW9uIik7Cisg
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorCisgICAgSW5zcGVj
dG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsgImV4cHJlc3Npb24iOiAi
bG9hZCgpIiB9KTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8aWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2Fk
aW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NjBlZjU3YzM4NjBjMTJmYzMyMGJkZGFkOTk0
ZDNmZGEyZmE0ZGE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACisKK1N0YXJ0ZWQgbG9hZGluZworU3RvcHBlZCBsb2FkaW5nCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU3RhcnRlZExvYWRpbmcuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU3RhcnRlZExvYWRp
bmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43NTcxYmM2ZTZjZjk1YmE3ZDI3N2EwMjRmYmJlYjA2NjY5YmQ5
NDRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Bh
Z2UvZnJhbWVTdGFydGVkTG9hZGluZy5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorCitmdW5jdGlvbiBsb2FkKCkKK3sKKyAgICB2YXIgZnJhbWUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICBmcmFtZS5zcmMgPSAiLi4vcmVzb3VyY2Vz
L2JsYW5rLmh0bWwiOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOworfQor
CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFn
ZS5mcmFtZVN0YXJ0ZWRMb2FkaW5nIl0gPSBvblN0YXJ0OworICAgIEluc3BlY3RvclRlc3QuZXZl
bnRIYW5kbGVyWyJQYWdlLmZyYW1lU3RvcHBlZExvYWRpbmciXSA9IG9uU3RvcDsKKyAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJQYWdlLmVuYWJsZSIsIHt9KTsKKworICAgIGZ1bmN0aW9u
IG9uU3RhcnQoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlN0YXJ0ZWQgbG9h
ZGluZyIpOworICAgIH0KKyAgICBmdW5jdGlvbiBvblN0b3AoKQorICAgIHsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlN0b3BwZWQgbG9hZGluZyIpOworICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOworICAgIH0KKworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IlJ1bnRpbWUuZXZhbHVhdGUiLCB7ICJleHByZXNzaW9uIjogImxvYWQoKSIgfSk7Cit9CisKKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180001</attachid>
            <date>2012-12-18 12:19:13 -0800</date>
            <delta_ts>2012-12-18 17:20:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104168-20121218121630.patch</filename>
            <type>text/plain</type>
            <size>21331</size>
            <attacher name="Ken Kania">kkania</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3OTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJiZDA0Njk2ZWE4ZDE3
YmRlNWUzMTgwYWJmODk2NTY3NDkyYzZjNC4uYjdkNGQyMWEzNzY4ZmFjNmU2YTJhYTZjZmJjNmQ1
NzNmYjc0YTIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTEyLTE3ICBLZW4g
S2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJbnNwZWN0b3JdIEFkZCBl
dmVudHMgZm9yIHRyYWNraW5nIHBhZ2UgbG9hZHMgYW5kIHNjaGVkdWxlZCBuYXZpZ2F0aW9ucy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDE2OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGV2
ZW50cyBhcmUgbmVlZGVkIGZvciBjbGllbnRzIHdobyBuZWVkIHRvIGJlIGF3YXJlIG9mIHdoZW4g
YSBwYWdlIGlzCisgICAgICAgIG5hdmlnYXRpbmcgb3IgYWJvdXQgdG8gbmF2aWdhdGUuIFNvbWUg
Y2xpZW50cyBtYXkgd2lzaCB0byBwcmV2ZW50IGludGVyYWN0aW9uCisgICAgICAgIHdpdGggdGhl
IHBhZ2UgZHVyaW5nIHRoaXMgdGltZS4gVHdvIG9mIHRoZSBuZXcgZXZlbnRzIHRyYWNrIGxvYWRp
bmcgc3RhcnQgYW5kCisgICAgICAgIHN0b3AsIGFzIG1lYXN1cmVkIGJ5IHRoZSBQcm9ncmVzc1Ry
YWNrZXIuIFRoZSBvdGhlciB0d28gZXZlbnRzIHRyYWNrIHdoZW4gYQorICAgICAgICBwYWdlIGhh
cyBhIG5ldyBzY2hlZHVsZWQgbmF2aWdhdGlvbiBhbmQgd2hlbiBpdCBubyBsb25nZXIgaGFzIGEg
c2NoZWR1bGVkCisgICAgICAgIG5hdmlnYXRpb24uIFRoZXNlIGxhdHRlciB0d28gZXZlbnRzIHdv
bid0IGFsbG93IHRoZSBjbGllbnQgdG8gZGV0ZXJtaW5lIGlmCisgICAgICAgIGEgbG9hZCBpcyBn
b2luZyB0byBoYXBwZW4gaW4gYWxsIGNpcmN1bXN0YW5jZXMsIGJ1dCBpcyBzdWZmaWNpZW50IGZv
ciBtYW55IGNhc2VzLgorCisgICAgICAgIFRlc3RzOiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9m
cmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yLXBy
b3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZ0ltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVN0b3BwZWRMb2FkaW5nSW1w
bCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU2No
ZWR1bGVkTmF2aWdhdGlvbkltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uSW1wbCk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU2No
ZWR1bGVkTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UGFnZUFnZW50OjpmcmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZVN0b3BwZWRMb2FkaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVTY2hlZHVsZWROYXZp
Z2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVDbGVh
cmVkU2NoZWR1bGVkTmF2aWdhdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9k
ZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZy
YW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyLnByb3Rv
dHlwZS5mcmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYWdlRGlz
cGF0Y2hlci5wcm90b3R5cGUuZnJhbWVTdG9wcGVkTG9hZGluZyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lQ2xl
YXJlZFNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2No
ZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OmNsZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OnRpbWVyRmlyZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvblNjaGVkdWxlcjo6c3RhcnRUaW1lcik6CisgICAg
ICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uU2NoZWR1bGVyOjpjYW5jZWwpOgorICAgICAgICAqIGxv
YWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFj
a2VyOjpwcm9ncmVzc1N0YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2Vy
OjpmaW5hbFByb2dyZXNzQ29tcGxldGUpOgorCiAyMDEyLTEyLTE3ICBCZW0gSm9uZXMtQmV5ICA8
YmpvbmVzYmVAYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgRXhjbHVzaW9uc10gc2hhcGUtb3V0
c2lkZSBvbiBmbG9hdHMgZm9yIHJlY3RhbmdsZSBzaGFwZXMgaGVpZ2h0L3dpZHRoCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggOWQzOTI3OTk0NmEwNTJkMDU4NzE5
ODJmYTRkMzI2NjZlMzgxNmNjZC4uZmM1MDkzZDM3ZDJhNjRmZjM2ODUyYzFjZGU0NTIzM2ZlYzky
ZThkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29u
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtNDg2LDYg
KzQ4NiwzOSBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAiJHJl
ZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAiSWQgb2YgdGhlIGZyYW1lIHRo
YXQgaGFzIGJlZW4gZGV0YWNoZWQuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAg
ICAgICAiaGlkZGVuIjogdHJ1ZQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAibmFtZSI6ICJmcmFtZVN0YXJ0ZWRMb2FkaW5nIiwKKyAgICAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiBmcmFtZSBoYXMgc3RhcnRlZCBsb2FkaW5nLiIs
CisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJhbWVJZCIsICJkZXNjcmlwdGlv
biI6ICJJZCBvZiB0aGUgZnJhbWUgdGhhdCBoYXMgc3RhcnRlZCBsb2FkaW5nLiIgfQorICAgICAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZnJhbWVTdG9wcGVk
TG9hZGluZyIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gZnJh
bWUgaGFzIHN0b3BwZWQgbG9hZGluZy4iLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAiJHJlZiI6ICJOZXR3
b3JrLkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAiSWQgb2YgdGhlIGZyYW1lIHRoYXQgaGFzIHN0
b3BwZWQgbG9hZGluZy4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJo
aWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICJuYW1lIjogImZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbiIsCisgICAgICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gZnJhbWUgc2NoZWR1bGVzIGEgcG90ZW50aWFsIG5h
dmlnYXRpb24uIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUlkIiwgIiRyZWYiOiAiTmV0d29yay5GcmFtZUlkIiwg
ImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBmcmFtZSB0aGF0IGhhcyBzY2hlZHVsZWQgYSBuYXZp
Z2F0aW9uLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkZWxheSIsICJ0eXBl
IjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJEZWxheSAoaW4gc2Vjb25kcykgdW50aWwgdGhl
IG5hdmlnYXRpb24gaXMgc2NoZWR1bGVkIHRvIGJlZ2luLiBUaGUgbmF2aWdhdGlvbiBpcyBub3Qg
Z3VhcmFudGVlZCB0byBzdGFydC4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAg
ICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICJuYW1lIjogImZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24iLAorICAg
ICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVuIGZyYW1lIG5vIGxvbmdlciBo
YXMgYSBzY2hlZHVsZWQgbmF2aWdhdGlvbi4iLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJz
IjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAiJHJlZiI6ICJO
ZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAiSWQgb2YgdGhlIGZyYW1lIHRoYXQgaGFz
IGNsZWFyZWQgaXRzIHNjaGVkdWxlZCBuYXZpZ2F0aW9uLiIgfQorICAgICAgICAgICAgICAgIF0s
CisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKICAgICAgICAgICAgIH0KICAgICAgICAg
XQogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDMzOTM2NmEyYTNiODU4ZGZiMjkwN2NiNDNiYTZkY2Q1
OTA2N2YwYTguLjFlYzllZmM0N2UzZDAyMTYzMjg2MGQwYThkYzk3YTNjZjM1M2VmNjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwCkBAIC05MjUsNiArOTI1LDMwIEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojpsb2FkZXJEZXRhY2hlZEZyb21GcmFtZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyoKICAgICAg
ICAgaW5zcGVjdG9yUGFnZUFnZW50LT5sb2FkZXJEZXRhY2hlZEZyb21GcmFtZShsb2FkZXIpOwog
fQogCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZ0lt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUqIGZyYW1l
KQoreworICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIGluc3BlY3RvclBhZ2VBZ2VudCA9IGlu
c3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQorICAgICAgICBpbnNwZWN0
b3JQYWdlQWdlbnQtPmZyYW1lU3RhcnRlZExvYWRpbmcoZnJhbWUpOworfQorCit2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUqIGZyYW1lKQoreworICAgIGlmIChJ
bnNwZWN0b3JQYWdlQWdlbnQqIGluc3BlY3RvclBhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQorICAgICAgICBpbnNwZWN0b3JQYWdlQWdlbnQtPmZy
YW1lU3RvcHBlZExvYWRpbmcoZnJhbWUpOworfQorCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSogZnJhbWUsIGRvdWJsZSBkZWxheSkKK3sKKyAgICBp
ZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBpbnNwZWN0b3JQYWdlQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKKyAgICAgICAgaW5zcGVjdG9yUGFnZUFnZW50
LT5mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24oZnJhbWUsIGRlbGF5KTsKK30KKwordm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb25JbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lKiBmcmFtZSkK
K3sKKyAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBpbnNwZWN0b3JQYWdlQWdlbnQgPSBpbnN0
cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKKyAgICAgICAgaW5zcGVjdG9y
UGFnZUFnZW50LT5mcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKGZyYW1lKTsKK30KKwog
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95Q2FjaGVkUmVzb3VyY2VJ
bXBsKENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsKICAgICBpZiAoIWluc3RydW1l
bnRpbmdBZ2VudHNTZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggMTE2Y2M0MmUwZGUwZDRlYzFjMWJhNDMwNzM5MGEw
NWM0NTM1NmY5MS4uNTNhNjY1OWZmNmQyZTgxZWMyMjFhZDI4ODQ5MmE3YzA3ZGMxYmNiNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaApAQCAtMTk0LDYgKzE5NCwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZnJhbWVE
ZXRhY2hlZEZyb21QYXJlbnQoRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDb21taXRMb2Fk
KEZyYW1lKiwgRG9jdW1lbnRMb2FkZXIqKTsKICAgICBzdGF0aWMgdm9pZCBsb2FkZXJEZXRhY2hl
ZEZyb21GcmFtZShGcmFtZSosIERvY3VtZW50TG9hZGVyKik7CisgICAgc3RhdGljIHZvaWQgZnJh
bWVTdGFydGVkTG9hZGluZyhGcmFtZSopOworICAgIHN0YXRpYyB2b2lkIGZyYW1lU3RvcHBlZExv
YWRpbmcoRnJhbWUqKTsKKyAgICBzdGF0aWMgdm9pZCBmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24o
RnJhbWUqLCBkb3VibGUgZGVsYXkpOworICAgIHN0YXRpYyB2b2lkIGZyYW1lQ2xlYXJlZFNjaGVk
dWxlZE5hdmlnYXRpb24oRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveUNhY2hl
ZFJlc291cmNlKENhY2hlZFJlc291cmNlKik7CiAKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uQ29va2llIHdpbGxXcml0ZUhUTUwoRG9jdW1lbnQqLCB1bnNpZ25lZCBpbnQgbGVu
Z3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKTsKQEAgLTM5Myw2ICszOTcsMTAgQEAgcHJpdmF0
ZToKICAgICBzdGF0aWMgdm9pZCBmcmFtZURldGFjaGVkRnJvbVBhcmVudEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ29tbWl0TG9hZEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyosIFBhZ2UqLCBEb2N1bWVudExvYWRlciopOwogICAgIHN0YXRp
YyB2b2lkIGxvYWRlckRldGFjaGVkRnJvbUZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwg
RG9jdW1lbnRMb2FkZXIqKTsKKyAgICBzdGF0aWMgdm9pZCBmcmFtZVN0YXJ0ZWRMb2FkaW5nSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUqKTsKKyAgICBzdGF0aWMgdm9pZCBmcmFtZVN0
b3BwZWRMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUqKTsKKyAgICBzdGF0
aWMgdm9pZCBmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
LCBGcmFtZSosIGRvdWJsZSBkZWxheSk7CisgICAgc3RhdGljIHZvaWQgZnJhbWVDbGVhcmVkU2No
ZWR1bGVkTmF2aWdhdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKik7CiAgICAg
c3RhdGljIHZvaWQgd2lsbERlc3Ryb3lDYWNoZWRSZXNvdXJjZUltcGwoQ2FjaGVkUmVzb3VyY2Uq
KTsKIAogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbFdyaXRl
SFRNTEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2lnbmVkIGludCBsZW5ndGgsIHVuc2ln
bmVkIGludCBzdGFydExpbmUsIEZyYW1lKik7CkBAIC0xNjU0LDYgKzE2NjIsMzggQEAgaW5saW5l
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkZXJEZXRhY2hlZEZyb21GcmFtZShG
cmFtZSogZnJhbWUsIERvY3UKICNlbmRpZgogfQogCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmZyYW1lU3RhcnRlZExvYWRpbmcoRnJhbWUqIGZyYW1lKQoreworI2lmIEVO
QUJMRShJTlNQRUNUT1IpCisgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQorICAgICAgICBm
cmFtZVN0YXJ0ZWRMb2FkaW5nSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBmcmFtZSk7CisjZW5k
aWYKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVN0b3Bw
ZWRMb2FkaW5nKEZyYW1lKiBmcmFtZSkKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGlm
IChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGlu
Z0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKKyAgICAgICAgZnJhbWVTdG9wcGVkTG9hZGluZ0ltcGwo
aW5zdHJ1bWVudGluZ0FnZW50cywgZnJhbWUpOworI2VuZGlmCit9CisKK2lubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKiBm
cmFtZSwgZG91YmxlIGRlbGF5KQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKElu
c3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdl
bnRzRm9yRnJhbWUoZnJhbWUpKQorICAgICAgICBmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb25JbXBs
KGluc3RydW1lbnRpbmdBZ2VudHMsIGZyYW1lLCBkZWxheSk7CisjZW5kaWYKK30KKworaW5saW5l
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZp
Z2F0aW9uKEZyYW1lKiBmcmFtZSkKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGlmIChJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0Fn
ZW50c0ZvckZyYW1lKGZyYW1lKSkKKyAgICAgICAgZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdh
dGlvbkltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZnJhbWUpOworI2VuZGlmCit9CisKIGlubGlu
ZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lDYWNoZWRSZXNvdXJj
ZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RP
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAK
aW5kZXggNGIzMDZmNzdhZmZmZDRiOGFmNWM3NDk1MTI2NjBhNjQwYWJkMmFmNi4uNGE1NDdjOTcz
NTdjYjk5YTIxOTkxZjgwYWQ1N2M3ZjE1ZWRmYjMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTkwNSw2ICs5MDUsMjYgQEAgdm9p
ZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmxvYWRlckRldGFjaGVkRnJvbUZyYW1lKERvY3VtZW50TG9h
ZGVyKiBsb2FkZXIpCiAgICAgICAgIG1fbG9hZGVyVG9JZGVudGlmaWVyLnJlbW92ZShpdGVyYXRv
cik7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZVN0YXJ0ZWRMb2FkaW5nKEZy
YW1lKiBmcmFtZSkKK3sKKyAgICBtX2Zyb250ZW5kLT5mcmFtZVN0YXJ0ZWRMb2FkaW5nKGZyYW1l
SWQoZnJhbWUpKTsKK30KKwordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1lU3RvcHBlZExv
YWRpbmcoRnJhbWUqIGZyYW1lKQoreworICAgIG1fZnJvbnRlbmQtPmZyYW1lU3RvcHBlZExvYWRp
bmcoZnJhbWVJZChmcmFtZSkpOworfQorCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVT
Y2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKiBmcmFtZSwgZG91YmxlIGRlbGF5KQoreworICAgIG1f
ZnJvbnRlbmQtPmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbihmcmFtZUlkKGZyYW1lKSwgZGVsYXkp
OworfQorCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2
aWdhdGlvbihGcmFtZSogZnJhbWUpCit7CisgICAgbV9mcm9udGVuZC0+ZnJhbWVDbGVhcmVkU2No
ZWR1bGVkTmF2aWdhdGlvbihmcmFtZUlkKGZyYW1lKSk7Cit9CisKIHZvaWQgSW5zcGVjdG9yUGFn
ZUFnZW50OjphcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobG9uZyogd2lkdGgpCiB7CiAgICAgbG9u
ZyB3aWR0aE92ZXJyaWRlID0gbV9zdGF0ZS0+Z2V0TG9uZyhQYWdlQWdlbnRTdGF0ZTo6cGFnZUFn
ZW50U2NyZWVuV2lkdGhPdmVycmlkZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUGFnZUFnZW50LmgKaW5kZXggOTNmZWQwZTFmZWFlZTJhOWVjMTFjMDFiYWNmODFjNTc5
NzhiNTA3Ny4uMWVjZjc4NmZiM2JkNTc2Mjk5YmNlYzhiOGI3YThiZjUzY2JjZWM0NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaApAQCAtMTM3LDYg
KzEzNywxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBmcmFtZU5hdmlnYXRlZChEb2N1bWVudExvYWRl
ciopOwogICAgIHZvaWQgZnJhbWVEZXRhY2hlZChGcmFtZSopOwogICAgIHZvaWQgbG9hZGVyRGV0
YWNoZWRGcm9tRnJhbWUoRG9jdW1lbnRMb2FkZXIqKTsKKyAgICB2b2lkIGZyYW1lU3RhcnRlZExv
YWRpbmcoRnJhbWUqKTsKKyAgICB2b2lkIGZyYW1lU3RvcHBlZExvYWRpbmcoRnJhbWUqKTsKKyAg
ICB2b2lkIGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSosIGRvdWJsZSBkZWxheSk7Cisg
ICAgdm9pZCBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKik7CiAgICAgdm9p
ZCBhcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobG9uZyopOwogICAgIHZvaWQgYXBwbHlTY3JlZW5I
ZWlnaHRPdmVycmlkZShsb25nKik7CiAgICAgdm9pZCBhcHBseUVtdWxhdGVkTWVkaWEoU3RyaW5n
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlVHJlZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZVRyZWVNb2RlbC5qcwppbmRleCBlOWUxMmI5ZGI0Y2I4ZjJhM2Y4MjQ1ZDcyNDllMGQ5Mzc0
MWZiZjIwLi40ZDdhMWExZTM2ZmI1MThmZmYxMzkwODEwYjY4ZGY3ZjdjMzE3OWJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVs
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVl
TW9kZWwuanMKQEAgLTU5Niw2ICs1OTYsMTggQEAgV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVy
LnByb3RvdHlwZSA9IHsKICAgICBmcmFtZURldGFjaGVkOiBmdW5jdGlvbihmcmFtZUlkKQogICAg
IHsKICAgICAgICAgdGhpcy5fcmVzb3VyY2VUcmVlTW9kZWwuX2ZyYW1lRGV0YWNoZWQoZnJhbWVJ
ZCk7CisgICAgfSwKKworICAgIGZyYW1lU3RhcnRlZExvYWRpbmc6IGZ1bmN0aW9uKGZyYW1lSWQp
IHsKKyAgICB9LAorCisgICAgZnJhbWVTdG9wcGVkTG9hZGluZzogZnVuY3Rpb24oZnJhbWVJZCkg
eworICAgIH0sCisKKyAgICBmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb246IGZ1bmN0aW9uKGZyYW1l
SWQsIGRlbGF5KSB7CisgICAgfSwKKworICAgIGZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRp
b246IGZ1bmN0aW9uKGZyYW1lSWQpIHsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAppbmRleCBhY2JlYjc4OTVlMDdmZmRkZjk0ODQz
ZTc0OTFmZmM2ODhlMWQzZDJiLi4wNzZhYmJkMmFjMDA3NmU0MzcyZTZmMWUwNzBhYzI1YzkwMDQy
ODU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3Bw
CkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKKyNp
bmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KQEAgLTI4Niw2ICsyODcsOCBAQCBib29sIE5hdmlnYXRpb25TY2hlZHVsZXI6OmxvY2F0
aW9uQ2hhbmdlUGVuZGluZygpCiAKIHZvaWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6Y2xlYXIoKQog
eworICAgIGlmIChtX3RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihtX2ZyYW1lKTsKICAgICBt
X3RpbWVyLnN0b3AoKTsKICAgICBtX3JlZGlyZWN0LmNsZWFyKCk7CiB9CkBAIC00MTEsMTEgKzQx
NCwxNCBAQCB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnRpbWVyRmlyZWQoVGltZXI8TmF2aWdh
dGlvblNjaGVkdWxlcj4qKQogewogICAgIGlmICghbV9mcmFtZS0+cGFnZSgpKQogICAgICAgICBy
ZXR1cm47Ci0gICAgaWYgKG1fZnJhbWUtPnBhZ2UoKS0+ZGVmZXJzTG9hZGluZygpKQorICAgIGlm
IChtX2ZyYW1lLT5wYWdlKCktPmRlZmVyc0xvYWRpbmcoKSkgeworICAgICAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24obV9mcmFtZSk7
CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBPd25QdHI8U2NoZWR1bGVkTmF2aWdhdGlv
bj4gcmVkaXJlY3QobV9yZWRpcmVjdC5yZWxlYXNlKCkpOwogICAgIHJlZGlyZWN0LT5maXJlKG1f
ZnJhbWUpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVDbGVhcmVkU2NoZWR1
bGVkTmF2aWdhdGlvbihtX2ZyYW1lKTsKIH0KIAogdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpz
Y2hlZHVsZShQYXNzT3duUHRyPFNjaGVkdWxlZE5hdmlnYXRpb24+IHJlZGlyZWN0KQpAQCAtNDU4
LDEwICs0NjQsMTMgQEAgdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzdGFydFRpbWVyKCkKIAog
ICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KG1fcmVkaXJlY3QtPmRlbGF5KCkpOwogICAgIG1fcmVk
aXJlY3QtPmRpZFN0YXJ0VGltZXIobV9mcmFtZSwgJm1fdGltZXIpOworICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uKG1fZnJhbWUsIG1fcmVkaXJl
Y3QtPmRlbGF5KCkpOwogfQogCiB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OmNhbmNlbChib29s
IG5ld0xvYWRJblByb2dyZXNzKQogeworICAgIGlmIChtX3RpbWVyLmlzQWN0aXZlKCkpCisgICAg
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdh
dGlvbihtX2ZyYW1lKTsKICAgICBtX3RpbWVyLnN0b3AoKTsKIAogICAgIE93blB0cjxTY2hlZHVs
ZWROYXZpZ2F0aW9uPiByZWRpcmVjdChtX3JlZGlyZWN0LnJlbGVhc2UoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwCmluZGV4IDRmMmI3ZWNkMzdlMjZkZmFkY2Ji
NWI2YjVmZDk1ZjI2ZTFkZjViMmMuLjkyMzg4ZWMwNTI2YzQwYzg4MWM5NWRhNGViMTdlNTMzZDZi
ZDlkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxv
YWRlclN0YXRlTWFjaGluZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5j
bHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgog
I2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CkBAIC0xMjAsNiArMTIxLDcgQEAgdm9pZCBQcm9ncmVzc1RyYWNrZXI6OnByb2dyZXNzU3Rh
cnRlZChGcmFtZSogZnJhbWUpCiAgICAgbV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMrKzsKIAog
ICAgIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNz
KCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVN0YXJ0ZWRMb2FkaW5nKGZy
YW1lKTsKIH0KIAogdm9pZCBQcm9ncmVzc1RyYWNrZXI6OnByb2dyZXNzQ29tcGxldGVkKEZyYW1l
KiBmcmFtZSkKQEAgLTE1NSw2ICsxNTcsNyBAQCB2b2lkIFByb2dyZXNzVHJhY2tlcjo6ZmluYWxQ
cm9ncmVzc0NvbXBsZXRlKCkKIAogICAgIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPnNldE1h
aW5GcmFtZURvY3VtZW50UmVhZHkodHJ1ZSk7CiAgICAgZnJhbWUtPmxvYWRlcigpLT5jbGllbnQo
KS0+cG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb24oKTsKKyAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmZyYW1lU3RvcHBlZExvYWRpbmcoZnJhbWUuZ2V0KCkpOwogfQogCiB2b2lk
IFByb2dyZXNzVHJhY2tlcjo6aW5jcmVtZW50UHJvZ3Jlc3ModW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlYjg4MTY1NTM0
ZjAzNWEzNzIyYWQ5MjkxZGFmYTRiYWQwOTVmOGY4Li5iMzY1M2E3N2MzZjQzZGJhMjhmZDAxNjc3
NDVlNTkwMmE2ODc1YzYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMTItMTcgIEtlbiBL
YW5pYSAgPGtrYW5pYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0luc3BlY3Rvcl0gQWRkIGV2
ZW50cyBmb3IgdHJhY2tpbmcgcGFnZSBsb2FkcyBhbmQgc2NoZWR1bGVkIG5hdmlnYXRpb25zLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0MTY4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2UgZXZl
bnRzIGFyZSBuZWVkZWQgZm9yIGNsaWVudHMgd2hvIG5lZWQgdG8gYmUgYXdhcmUgb2Ygd2hlbiBh
IHBhZ2UgaXMKKyAgICAgICAgbmF2aWdhdGluZyBvciBhYm91dCB0byBuYXZpZ2F0ZS4gU29tZSBj
bGllbnRzIG1heSB3aXNoIHRvIHByZXZlbnQgaW50ZXJhY3Rpb24KKyAgICAgICAgd2l0aCB0aGUg
cGFnZSBkdXJpbmcgdGhpcyB0aW1lLiBUd28gb2YgdGhlIG5ldyBldmVudHMgdHJhY2sgbG9hZGlu
ZyBzdGFydCBhbmQKKyAgICAgICAgc3RvcCwgYXMgbWVhc3VyZWQgYnkgdGhlIFByb2dyZXNzVHJh
Y2tlci4gVGhlIG90aGVyIHR3byBldmVudHMgdHJhY2sgd2hlbiBhCisgICAgICAgIHBhZ2UgaGFz
IGEgbmV3IHNjaGVkdWxlZCBuYXZpZ2F0aW9uIGFuZCB3aGVuIGl0IG5vIGxvbmdlciBoYXMgYSBz
Y2hlZHVsZWQKKyAgICAgICAgbmF2aWdhdGlvbi4gVGhlc2UgbGF0dGVyIHR3byBldmVudHMgd29u
J3QgYWxsb3cgdGhlIGNsaWVudCB0byBkZXRlcm1pbmUgaWYKKyAgICAgICAgYSBsb2FkIGlzIGdv
aW5nIHRvIGhhcHBlbiBpbiBhbGwgY2lyY3Vtc3RhbmNlcywgYnV0IGlzIHN1ZmZpY2llbnQgZm9y
IG1hbnkgY2FzZXMuCisKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNj
aGVkdWxlZE5hdmlnYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRtbDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1l
U3RhcnRlZExvYWRpbmcuaHRtbDogQWRkZWQuCisKIDIwMTItMTItMTcgIEJlbSBKb25lcy1CZXkg
IDxiam9uZXNiZUBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBFeGNsdXNpb25zXSBzaGFwZS1v
dXRzaWRlIG9uIGZsb2F0cyBmb3IgcmVjdGFuZ2xlIHNoYXBlcyBoZWlnaHQvd2lkdGgKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVk
TmF2aWdhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
cGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRm
ZjAxZDhhMGJlOTJlN2ZkNDNiZmU4YjQ3N2RlYzk0YTM4M2E0MjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmln
YXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitTY2hlZHVsZWQgbmF2aWdhdGlv
biB3aXRoIGRlbGF5IDAKK1N0YXJ0ZWQgbG9hZGluZworQ2xlYXJlZCBzY2hlZHVsZWQgbmF2aWdh
dGlvbgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9m
cmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0Mjdj
YmU3ZDU5MzA3MjI5OTlkYWUyYjVkMzk4M2RjNDFiMjAxNTIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRp
b24uaHRtbApAQCAtMCwwICsxLDQzIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
cmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rp
b24gbG9hZCgpCit7CisgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaWZyYW1lIikuc3JjID0g
Ii4uL3Jlc291cmNlcy9ibGFuay5odG1sIjsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAg
SW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIlBhZ2UuZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9u
Il0gPSBvblNjaGVkdWxlZDsKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5m
cmFtZVN0YXJ0ZWRMb2FkaW5nIl0gPSBvblN0YXJ0ZWQ7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVu
dEhhbmRsZXJbIlBhZ2UuZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbiJdID0gb25DbGVh
cmVkOworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlBhZ2UuZW5hYmxlIiwge30pOwor
CisgICAgZnVuY3Rpb24gb25TY2hlZHVsZWQobXNnKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIlNjaGVkdWxlZCBuYXZpZ2F0aW9uIHdpdGggZGVsYXkgIiArIG1zZy5wYXJhbXMu
ZGVsYXkpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uU3RhcnRlZChtc2cpCisgICAgeworICAg
ICAgICAvLyBUaGlzIGV2ZW50IHNob3VsZCBiZSByZWNlaXZlZCBiZWZvcmUgdGhlIHNjaGVkdWxl
ZCBuYXZpZ2F0aW9uIGlzIGNsZWFyZWQuCisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJTdGFy
dGVkIGxvYWRpbmciKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvbkNsZWFyZWQobXNnKQorICAg
IHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNsZWFyZWQgc2NoZWR1bGVkIG5hdmlnYXRp
b24iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9CisKKyAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgeyAiZXhwcmVz
c2lvbiI6ICJsb2FkKCkiIH0pOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKzxpZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU3Rh
cnRlZExvYWRpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2MGVmNTdjMzg2MGMxMmZjMzIw
YmRkYWQ5OTRkM2ZkYTJmYTRkYTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKKworU3RhcnRlZCBsb2FkaW5nCitTdG9wcGVkIGxvYWRpbmcKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9h
ZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTdGFy
dGVkTG9hZGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1NzFiYzZlNmNmOTViYTdkMjc3YTAyNGZiYmVi
MDY2NjliZDk0NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGxvYWQoKQoreworICAgIHZhciBmcmFtZSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgIGZyYW1lLnNyYyA9ICIuLi9y
ZXNvdXJjZXMvYmxhbmsuaHRtbCI7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFt
ZSk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5k
bGVyWyJQYWdlLmZyYW1lU3RhcnRlZExvYWRpbmciXSA9IG9uU3RhcnQ7CisgICAgSW5zcGVjdG9y
VGVzdC5ldmVudEhhbmRsZXJbIlBhZ2UuZnJhbWVTdG9wcGVkTG9hZGluZyJdID0gb25TdG9wOwor
ICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlBhZ2UuZW5hYmxlIiwge30pOworCisgICAg
ZnVuY3Rpb24gb25TdGFydCgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU3Rh
cnRlZCBsb2FkaW5nIik7CisgICAgfQorICAgIGZ1bmN0aW9uIG9uU3RvcCgpCisgICAgeworICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU3RvcHBlZCBsb2FkaW5nIik7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsgImV4cHJlc3Npb24iOiAibG9hZCgpIiB9KTsK
K30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180065</attachid>
            <date>2012-12-18 17:20:25 -0800</date>
            <delta_ts>2013-01-08 14:07:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104168-20121218171742.patch</filename>
            <type>text/plain</type>
            <size>21350</size>
            <attacher name="Ken Kania">kkania</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4MDUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBiOGIzMGRhNzk4YzM3
MGM2NDIyOWJlZDE4ZmFlMGM2MGNmNTA2Yy4uMzBhYzBlZmRkNzkwNzhkMDRiM2E0NDFmOTFlYTQx
YjJlNjZhNDMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTEyLTE4ICBLZW4g
S2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJbnNwZWN0b3JdIEFkZCBl
dmVudHMgZm9yIHRyYWNraW5nIHBhZ2UgbG9hZHMgYW5kIHNjaGVkdWxlZCBuYXZpZ2F0aW9ucy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDE2OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGV2
ZW50cyBhcmUgbmVlZGVkIGZvciBjbGllbnRzIHdobyBuZWVkIHRvIGJlIGF3YXJlIG9mIHdoZW4g
YSBwYWdlIGlzCisgICAgICAgIG5hdmlnYXRpbmcgb3IgYWJvdXQgdG8gbmF2aWdhdGUuIFNvbWUg
Y2xpZW50cyBtYXkgd2lzaCB0byBwcmV2ZW50IGludGVyYWN0aW9uCisgICAgICAgIHdpdGggdGhl
IHBhZ2UgZHVyaW5nIHRoaXMgdGltZS4gVHdvIG9mIHRoZSBuZXcgZXZlbnRzIHRyYWNrIGxvYWRp
bmcgc3RhcnQgYW5kCisgICAgICAgIHN0b3AsIGFzIG1lYXN1cmVkIGJ5IHRoZSBQcm9ncmVzc1Ry
YWNrZXIuIFRoZSBvdGhlciB0d28gZXZlbnRzIHRyYWNrIHdoZW4gYQorICAgICAgICBwYWdlIGhh
cyBhIG5ldyBzY2hlZHVsZWQgbmF2aWdhdGlvbiBhbmQgd2hlbiBpdCBubyBsb25nZXIgaGFzIGEg
c2NoZWR1bGVkCisgICAgICAgIG5hdmlnYXRpb24uIFRoZXNlIGxhdHRlciB0d28gZXZlbnRzIHdv
bid0IGFsbG93IHRoZSBjbGllbnQgdG8gZGV0ZXJtaW5lIGlmCisgICAgICAgIGEgbG9hZCBpcyBn
b2luZyB0byBoYXBwZW4gaW4gYWxsIGNpcmN1bXN0YW5jZXMsIGJ1dCBpcyBzdWZmaWNpZW50IGZv
ciBtYW55IGNhc2VzLgorCisgICAgICAgIFRlc3RzOiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9m
cmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yLXBy
b3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZ0ltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVN0b3BwZWRMb2FkaW5nSW1w
bCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU2No
ZWR1bGVkTmF2aWdhdGlvbkltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uSW1wbCk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU2No
ZWR1bGVkTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UGFnZUFnZW50OjpmcmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZVN0b3BwZWRMb2FkaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVTY2hlZHVsZWROYXZp
Z2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVDbGVh
cmVkU2NoZWR1bGVkTmF2aWdhdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9k
ZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZy
YW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyLnByb3Rv
dHlwZS5mcmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYWdlRGlz
cGF0Y2hlci5wcm90b3R5cGUuZnJhbWVTdG9wcGVkTG9hZGluZyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lQ2xl
YXJlZFNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2No
ZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OmNsZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OnRpbWVyRmlyZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvblNjaGVkdWxlcjo6c3RhcnRUaW1lcik6CisgICAg
ICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uU2NoZWR1bGVyOjpjYW5jZWwpOgorICAgICAgICAqIGxv
YWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFj
a2VyOjpwcm9ncmVzc1N0YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2Vy
OjpmaW5hbFByb2dyZXNzQ29tcGxldGUpOgorCiAyMDEyLTEyLTE4ICBKYW1lcyBTaW1vbnNlbiAg
PHNpbW9uamFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbUmVzb3VyY2UgVGltaW5nXSBQb3B1
bGF0ZSByZXNwb25zZUVuZCBvbiBjcm9zcy1vcmlnaW4gcmVxdWVzdHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCA2NTI1YWQ4OGNlODdkOGJiMzk3ZTg0ZGYwNzRl
MzgyNmRhYzY1YTI5Li4yYjYxYjc2ODdiMmIyZTA2NWUyNzZjYWUxYTA2ZDUyMGFkMTFmZDE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC00ODYsNiArNDg2LDM5
IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5l
dHdvcmsuRnJhbWVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgZnJhbWUgdGhhdCBoYXMg
YmVlbiBkZXRhY2hlZC4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJo
aWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICJuYW1lIjogImZyYW1lU3RhcnRlZExvYWRpbmciLAorICAgICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJGaXJlZCB3aGVuIGZyYW1lIGhhcyBzdGFydGVkIGxvYWRpbmcuIiwKKyAgICAg
ICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJmcmFtZUlkIiwgIiRyZWYiOiAiTmV0d29yay5GcmFtZUlkIiwgImRlc2NyaXB0aW9uIjogIklk
IG9mIHRoZSBmcmFtZSB0aGF0IGhhcyBzdGFydGVkIGxvYWRpbmcuIiB9CisgICAgICAgICAgICAg
ICAgXSwKKyAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQorICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJmcmFtZVN0b3BwZWRMb2FkaW5n
IiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiBmcmFtZSBoYXMg
c3RvcHBlZCBsb2FkaW5nLiIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJh
bWVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgZnJhbWUgdGhhdCBoYXMgc3RvcHBlZCBs
b2FkaW5nLiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImhpZGRlbiI6
IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5h
bWUiOiAiZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uIiwKKyAgICAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiRmlyZWQgd2hlbiBmcmFtZSBzY2hlZHVsZXMgYSBwb3RlbnRpYWwgbmF2aWdhdGlv
bi4iLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImZyYW1lSWQiLCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3Jp
cHRpb24iOiAiSWQgb2YgdGhlIGZyYW1lIHRoYXQgaGFzIHNjaGVkdWxlZCBhIG5hdmlnYXRpb24u
IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRlbGF5IiwgInR5cGUiOiAibnVt
YmVyIiwgImRlc2NyaXB0aW9uIjogIkRlbGF5IChpbiBzZWNvbmRzKSB1bnRpbCB0aGUgbmF2aWdh
dGlvbiBpcyBzY2hlZHVsZWQgdG8gYmVnaW4uIFRoZSBuYXZpZ2F0aW9uIGlzIG5vdCBndWFyYW50
ZWVkIHRvIHN0YXJ0LiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImhp
ZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgIm5hbWUiOiAiZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbiIsCisgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gZnJhbWUgbm8gbG9uZ2VyIGhhcyBhIHNj
aGVkdWxlZCBuYXZpZ2F0aW9uLiIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsu
RnJhbWVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgZnJhbWUgdGhhdCBoYXMgY2xlYXJl
ZCBpdHMgc2NoZWR1bGVkIG5hdmlnYXRpb24uIiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQogICAgICAgICAgICAgfQogICAgICAgICBdCiAgICAg
fSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAKaW5kZXggMzM5MzY2YTJhM2I4NThkZmIyOTA3Y2I0M2JhNmRjZDU5MDY3ZjBh
OC4uMWVjOWVmYzQ3ZTNkMDIxNjMyODYwZDBhOGRjOTdhM2NmMzUzZWY2NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAK
QEAgLTkyNSw2ICs5MjUsMzAgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvYWRl
ckRldGFjaGVkRnJvbUZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKgogICAgICAgICBpbnNw
ZWN0b3JQYWdlQWdlbnQtPmxvYWRlckRldGFjaGVkRnJvbUZyYW1lKGxvYWRlcik7CiB9CiAKK3Zv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVN0YXJ0ZWRMb2FkaW5nSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSogZnJhbWUpCit7Cisg
ICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogaW5zcGVjdG9yUGFnZUFnZW50ID0gaW5zdHJ1bWVu
dGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIGluc3BlY3RvclBhZ2VB
Z2VudC0+ZnJhbWVTdGFydGVkTG9hZGluZyhmcmFtZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpmcmFtZVN0b3BwZWRMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSogZnJhbWUpCit7CisgICAgaWYgKEluc3BlY3Rv
clBhZ2VBZ2VudCogaW5zcGVjdG9yUGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5z
cGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIGluc3BlY3RvclBhZ2VBZ2VudC0+ZnJhbWVTdG9w
cGVkTG9hZGluZyhmcmFtZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpm
cmFtZVNjaGVkdWxlZE5hdmlnYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIEZyYW1lKiBmcmFtZSwgZG91YmxlIGRlbGF5KQoreworICAgIGlmIChJbnNw
ZWN0b3JQYWdlQWdlbnQqIGluc3BlY3RvclBhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMt
Pmluc3BlY3RvclBhZ2VBZ2VudCgpKQorICAgICAgICBpbnNwZWN0b3JQYWdlQWdlbnQtPmZyYW1l
U2NoZWR1bGVkTmF2aWdhdGlvbihmcmFtZSwgZGVsYXkpOworfQorCit2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUqIGZyYW1lKQoreworICAg
IGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIGluc3BlY3RvclBhZ2VBZ2VudCA9IGluc3RydW1lbnRp
bmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQorICAgICAgICBpbnNwZWN0b3JQYWdlQWdl
bnQtPmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24oZnJhbWUpOworfQorCiB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lDYWNoZWRSZXNvdXJjZUltcGwoQ2Fj
aGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlKQogewogICAgIGlmICghaW5zdHJ1bWVudGluZ0Fn
ZW50c1NldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaAppbmRleCAxMTZjYzQyZTBkZTBkNGVjMWMxYmE0MzA3MzkwYTA1YzQ1MzU2
ZjkxLi41M2E2NjU5ZmY2ZDJlODFlYzIyMWFkMjg4NDkyYTdjMDdkYzFiY2I2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBA
IC0xOTQsNiArMTk0LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBmcmFtZURldGFjaGVk
RnJvbVBhcmVudChGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIGRpZENvbW1pdExvYWQoRnJhbWUq
LCBEb2N1bWVudExvYWRlciopOwogICAgIHN0YXRpYyB2b2lkIGxvYWRlckRldGFjaGVkRnJvbUZy
YW1lKEZyYW1lKiwgRG9jdW1lbnRMb2FkZXIqKTsKKyAgICBzdGF0aWMgdm9pZCBmcmFtZVN0YXJ0
ZWRMb2FkaW5nKEZyYW1lKik7CisgICAgc3RhdGljIHZvaWQgZnJhbWVTdG9wcGVkTG9hZGluZyhG
cmFtZSopOworICAgIHN0YXRpYyB2b2lkIGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSos
IGRvdWJsZSBkZWxheSk7CisgICAgc3RhdGljIHZvaWQgZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2
aWdhdGlvbihGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95Q2FjaGVkUmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2UqKTsKIAogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUgd2lsbFdyaXRlSFRNTChEb2N1bWVudCosIHVuc2lnbmVkIGludCBsZW5ndGgsIHVu
c2lnbmVkIGludCBzdGFydExpbmUpOwpAQCAtMzkzLDYgKzM5NywxMCBAQCBwcml2YXRlOgogICAg
IHN0YXRpYyB2b2lkIGZyYW1lRGV0YWNoZWRGcm9tUGFyZW50SW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzKiwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDb21taXRMb2FkSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgUGFnZSosIERvY3VtZW50TG9hZGVyKik7CiAgICAgc3RhdGljIHZvaWQg
bG9hZGVyRGV0YWNoZWRGcm9tRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBEb2N1bWVu
dExvYWRlciopOworICAgIHN0YXRpYyB2b2lkIGZyYW1lU3RhcnRlZExvYWRpbmdJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqLCBGcmFtZSopOworICAgIHN0YXRpYyB2b2lkIGZyYW1lU3RvcHBlZExv
YWRpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSopOworICAgIHN0YXRpYyB2b2lk
IGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1l
KiwgZG91YmxlIGRlbGF5KTsKKyAgICBzdGF0aWMgdm9pZCBmcmFtZUNsZWFyZWRTY2hlZHVsZWRO
YXZpZ2F0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUqKTsKICAgICBzdGF0aWMg
dm9pZCB3aWxsRGVzdHJveUNhY2hlZFJlc291cmNlSW1wbChDYWNoZWRSZXNvdXJjZSopOwogCiAg
ICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsV3JpdGVIVE1MSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50
IHN0YXJ0TGluZSwgRnJhbWUqKTsKQEAgLTE2NTQsNiArMTY2MiwzOCBAQCBpbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvYWRlckRldGFjaGVkRnJvbUZyYW1lKEZyYW1lKiBm
cmFtZSwgRG9jdQogI2VuZGlmCiB9CiAKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZyhGcmFtZSogZnJhbWUpCit7CisjaWYgRU5BQkxFKElO
U1BFQ1RPUikKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCisgICAgICAgIGZyYW1lU3Rh
cnRlZExvYWRpbmdJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGZyYW1lKTsKKyNlbmRpZgorfQor
CitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RvcHBlZExvYWRp
bmcoRnJhbWUqIGZyYW1lKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRz
Rm9yRnJhbWUoZnJhbWUpKQorICAgICAgICBmcmFtZVN0b3BwZWRMb2FkaW5nSW1wbChpbnN0cnVt
ZW50aW5nQWdlbnRzLCBmcmFtZSk7CisjZW5kaWYKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqIGZyYW1lLCBk
b3VibGUgZGVsYXkpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBpZiAoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JG
cmFtZShmcmFtZSkpCisgICAgICAgIGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoaW5zdHJ1
bWVudGluZ0FnZW50cywgZnJhbWUsIGRlbGF5KTsKKyNlbmRpZgorfQorCitpbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24o
RnJhbWUqIGZyYW1lKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9y
RnJhbWUoZnJhbWUpKQorICAgICAgICBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uSW1w
bChpbnN0cnVtZW50aW5nQWdlbnRzLCBmcmFtZSk7CisjZW5kaWYKK30KKwogaW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveUNhY2hlZFJlc291cmNlKENhY2hl
ZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCA0
YjMwNmY3N2FmZmZkNGI4YWY1Yzc0OTUxMjY2MGE2NDBhYmQyYWY2Li40YTU0N2M5NzM1N2NiOTlh
MjE5OTFmODBhZDU3YzdmMTVlZGZiMzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtOTA1LDYgKzkwNSwyNiBAQCB2b2lkIEluc3Bl
Y3RvclBhZ2VBZ2VudDo6bG9hZGVyRGV0YWNoZWRGcm9tRnJhbWUoRG9jdW1lbnRMb2FkZXIqIGxv
YWRlcikKICAgICAgICAgbV9sb2FkZXJUb0lkZW50aWZpZXIucmVtb3ZlKGl0ZXJhdG9yKTsKIH0K
IAordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1lU3RhcnRlZExvYWRpbmcoRnJhbWUqIGZy
YW1lKQoreworICAgIG1fZnJvbnRlbmQtPmZyYW1lU3RhcnRlZExvYWRpbmcoZnJhbWVJZChmcmFt
ZSkpOworfQorCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVTdG9wcGVkTG9hZGluZyhG
cmFtZSogZnJhbWUpCit7CisgICAgbV9mcm9udGVuZC0+ZnJhbWVTdG9wcGVkTG9hZGluZyhmcmFt
ZUlkKGZyYW1lKSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZVNjaGVkdWxl
ZE5hdmlnYXRpb24oRnJhbWUqIGZyYW1lLCBkb3VibGUgZGVsYXkpCit7CisgICAgbV9mcm9udGVu
ZC0+ZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uKGZyYW1lSWQoZnJhbWUpLCBkZWxheSk7Cit9CisK
K3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9u
KEZyYW1lKiBmcmFtZSkKK3sKKyAgICBtX2Zyb250ZW5kLT5mcmFtZUNsZWFyZWRTY2hlZHVsZWRO
YXZpZ2F0aW9uKGZyYW1lSWQoZnJhbWUpKTsKK30KKwogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6
OmFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZShsb25nKiB3aWR0aCkKIHsKICAgICBsb25nIHdpZHRo
T3ZlcnJpZGUgPSBtX3N0YXRlLT5nZXRMb25nKFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRTY3Jl
ZW5XaWR0aE92ZXJyaWRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuaAppbmRleCA5M2ZlZDBlMWZlYWVlMmE5ZWMxMWMwMWJhY2Y4MWM1Nzk3OGI1MDc3
Li4xZWNmNzg2ZmIzYmQ1NzYyOTliY2VjOGI4YjdhOGJmNTNjYmNlYzQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0xMzcsNiArMTM3LDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIGZyYW1lTmF2aWdhdGVkKERvY3VtZW50TG9hZGVyKik7CiAg
ICAgdm9pZCBmcmFtZURldGFjaGVkKEZyYW1lKik7CiAgICAgdm9pZCBsb2FkZXJEZXRhY2hlZEZy
b21GcmFtZShEb2N1bWVudExvYWRlciopOworICAgIHZvaWQgZnJhbWVTdGFydGVkTG9hZGluZyhG
cmFtZSopOworICAgIHZvaWQgZnJhbWVTdG9wcGVkTG9hZGluZyhGcmFtZSopOworICAgIHZvaWQg
ZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKiwgZG91YmxlIGRlbGF5KTsKKyAgICB2b2lk
IGZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqKTsKICAgICB2b2lkIGFwcGx5
U2NyZWVuV2lkdGhPdmVycmlkZShsb25nKik7CiAgICAgdm9pZCBhcHBseVNjcmVlbkhlaWdodE92
ZXJyaWRlKGxvbmcqKTsKICAgICB2b2lkIGFwcGx5RW11bGF0ZWRNZWRpYShTdHJpbmcqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVl
TW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJl
ZU1vZGVsLmpzCmluZGV4IGU5ZTEyYjlkYjRjYjhmMmEzZjgyNDVkNzI0OWUwZDkzNzQxZmJmMjAu
LjRkN2ExYTFlMzZmYjUxOGZmZjEzOTA4MTBiNjhkZjdmN2MzMTc5YmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5q
cwpAQCAtNTk2LDYgKzU5NiwxOCBAQCBXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90
eXBlID0gewogICAgIGZyYW1lRGV0YWNoZWQ6IGZ1bmN0aW9uKGZyYW1lSWQpCiAgICAgewogICAg
ICAgICB0aGlzLl9yZXNvdXJjZVRyZWVNb2RlbC5fZnJhbWVEZXRhY2hlZChmcmFtZUlkKTsKKyAg
ICB9LAorCisgICAgZnJhbWVTdGFydGVkTG9hZGluZzogZnVuY3Rpb24oZnJhbWVJZCkgeworICAg
IH0sCisKKyAgICBmcmFtZVN0b3BwZWRMb2FkaW5nOiBmdW5jdGlvbihmcmFtZUlkKSB7CisgICAg
fSwKKworICAgIGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbjogZnVuY3Rpb24oZnJhbWVJZCwgZGVs
YXkpIHsKKyAgICB9LAorCisgICAgZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbjogZnVu
Y3Rpb24oZnJhbWVJZCkgewogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05h
dmlnYXRpb25TY2hlZHVsZXIuY3BwCmluZGV4IGFjYmViNzg5NWUwN2ZmZGRmOTQ4NDNlNzQ5MWZm
YzY4OGUxZDNkMmIuLjA3NmFiYmQyYWMwMDc2ZTQzNzJlNmYxZTA3MGFjMjVjOTAwNDI4NTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKQEAgLTQ1
LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
RnJhbWVPd25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgorI2luY2x1ZGUg
Ikluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpA
QCAtMjg2LDYgKzI4Nyw4IEBAIGJvb2wgTmF2aWdhdGlvblNjaGVkdWxlcjo6bG9jYXRpb25DaGFu
Z2VQZW5kaW5nKCkKIAogdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpjbGVhcigpCiB7CisgICAg
aWYgKG1fdGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKG1fZnJhbWUpOwogICAgIG1fdGltZXIu
c3RvcCgpOwogICAgIG1fcmVkaXJlY3QuY2xlYXIoKTsKIH0KQEAgLTQxMSwxMSArNDE0LDE0IEBA
IHZvaWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6dGltZXJGaXJlZChUaW1lcjxOYXZpZ2F0aW9uU2No
ZWR1bGVyPiopCiB7CiAgICAgaWYgKCFtX2ZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJldHVybjsK
LSAgICBpZiAobV9mcmFtZS0+cGFnZSgpLT5kZWZlcnNMb2FkaW5nKCkpCisgICAgaWYgKG1fZnJh
bWUtPnBhZ2UoKS0+ZGVmZXJzTG9hZGluZygpKSB7CisgICAgICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihtX2ZyYW1lKTsKICAgICAg
ICAgcmV0dXJuOworICAgIH0KIAogICAgIE93blB0cjxTY2hlZHVsZWROYXZpZ2F0aW9uPiByZWRp
cmVjdChtX3JlZGlyZWN0LnJlbGVhc2UoKSk7CiAgICAgcmVkaXJlY3QtPmZpcmUobV9mcmFtZSk7
CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZp
Z2F0aW9uKG1fZnJhbWUpOwogfQogCiB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxl
KFBhc3NPd25QdHI8U2NoZWR1bGVkTmF2aWdhdGlvbj4gcmVkaXJlY3QpCkBAIC00NTgsMTAgKzQ2
NCwxMyBAQCB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnN0YXJ0VGltZXIoKQogCiAgICAgbV90
aW1lci5zdGFydE9uZVNob3QobV9yZWRpcmVjdC0+ZGVsYXkoKSk7CiAgICAgbV9yZWRpcmVjdC0+
ZGlkU3RhcnRUaW1lcihtX2ZyYW1lLCAmbV90aW1lcik7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24obV9mcmFtZSwgbV9yZWRpcmVjdC0+ZGVs
YXkoKSk7CiB9CiAKIHZvaWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6Y2FuY2VsKGJvb2wgbmV3TG9h
ZEluUHJvZ3Jlc3MpCiB7CisgICAgaWYgKG1fdGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKG1f
ZnJhbWUpOwogICAgIG1fdGltZXIuc3RvcCgpOwogCiAgICAgT3duUHRyPFNjaGVkdWxlZE5hdmln
YXRpb24+IHJlZGlyZWN0KG1fcmVkaXJlY3QucmVsZWFzZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAKaW5kZXggNGYyYjdlY2QzN2UyNmRmYWRjYmI1YjZiNWZk
OTVmMjZlMWRmNWIyYy4uOTIzODhlYzA1MjZjNDBjODgxYzk1ZGE0ZWIxN2U1MzNkNmJkOWQzYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyU3Rh
dGVNYWNoaW5lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAg
LTEyMCw2ICsxMjEsNyBAQCB2b2lkIFByb2dyZXNzVHJhY2tlcjo6cHJvZ3Jlc3NTdGFydGVkKEZy
YW1lKiBmcmFtZSkKICAgICBtX251bVByb2dyZXNzVHJhY2tlZEZyYW1lcysrOwogCiAgICAgZnJh
bWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKKyAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RhcnRlZExvYWRpbmcoZnJhbWUpOwog
fQogCiB2b2lkIFByb2dyZXNzVHJhY2tlcjo6cHJvZ3Jlc3NDb21wbGV0ZWQoRnJhbWUqIGZyYW1l
KQpAQCAtMTU1LDYgKzE1Nyw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpmaW5hbFByb2dyZXNz
Q29tcGxldGUoKQogCiAgICAgZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+c2V0TWFpbkZyYW1l
RG9jdW1lbnRSZWFkeSh0cnVlKTsKICAgICBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5wb3N0
UHJvZ3Jlc3NGaW5pc2hlZE5vdGlmaWNhdGlvbigpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGluZyhmcmFtZS5nZXQoKSk7CiB9CiAKIHZvaWQgUHJvZ3Jl
c3NUcmFja2VyOjppbmNyZW1lbnRQcm9ncmVzcyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGMzZWYxMmJmMjdmMmJkYzUw
MmEyOWYzZDVkODc4NDBkZTg1ZDJkMGEuLjZhMTg1ZjIxYjQxOTM2ZjA2NTIzYTg1NGU1YWQ3ODVh
NGNhNmY1ODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMi0xMi0xOCAgS2VuIEthbmlhICA8
a2thbmlhQGNocm9taXVtLm9yZz4KKworICAgICAgICBbSW5zcGVjdG9yXSBBZGQgZXZlbnRzIGZv
ciB0cmFja2luZyBwYWdlIGxvYWRzIGFuZCBzY2hlZHVsZWQgbmF2aWdhdGlvbnMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQxNjgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVzZSBldmVudHMgYXJl
IG5lZWRlZCBmb3IgY2xpZW50cyB3aG8gbmVlZCB0byBiZSBhd2FyZSBvZiB3aGVuIGEgcGFnZSBp
cworICAgICAgICBuYXZpZ2F0aW5nIG9yIGFib3V0IHRvIG5hdmlnYXRlLiBTb21lIGNsaWVudHMg
bWF5IHdpc2ggdG8gcHJldmVudCBpbnRlcmFjdGlvbgorICAgICAgICB3aXRoIHRoZSBwYWdlIGR1
cmluZyB0aGlzIHRpbWUuIFR3byBvZiB0aGUgbmV3IGV2ZW50cyB0cmFjayBsb2FkaW5nIHN0YXJ0
IGFuZAorICAgICAgICBzdG9wLCBhcyBtZWFzdXJlZCBieSB0aGUgUHJvZ3Jlc3NUcmFja2VyLiBU
aGUgb3RoZXIgdHdvIGV2ZW50cyB0cmFjayB3aGVuIGEKKyAgICAgICAgcGFnZSBoYXMgYSBuZXcg
c2NoZWR1bGVkIG5hdmlnYXRpb24gYW5kIHdoZW4gaXQgbm8gbG9uZ2VyIGhhcyBhIHNjaGVkdWxl
ZAorICAgICAgICBuYXZpZ2F0aW9uLiBUaGVzZSBsYXR0ZXIgdHdvIGV2ZW50cyB3b24ndCBhbGxv
dyB0aGUgY2xpZW50IHRvIGRldGVybWluZSBpZgorICAgICAgICBhIGxvYWQgaXMgZ29pbmcgdG8g
aGFwcGVuIGluIGFsbCBjaXJjdW1zdGFuY2VzLCBidXQgaXMgc3VmZmljaWVudCBmb3IgbWFueSBj
YXNlcy4KKworICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVk
TmF2aWdhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci1wcm90
b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTdGFydGVk
TG9hZGluZy5odG1sOiBBZGRlZC4KKwogMjAxMi0xMi0xOCAgSGFucyBNdWxsZXIgIDxobXVsbGVy
QGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIHNoYXBlLWluc2lkZSBsYXlv
dXQgZmFpbHMgdG8gYWRqdXN0IGZpcnN0IGxpbmUgY29ycmVjdGx5IGZvciB3cml0aW5nLW1vZGU6
IHZlcnRpY2FsLXJsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
cGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40ZmYwMWQ4YTBiZTkyZTdmZDQzYmZlOGI0NzdkZWM5NGEzODNhNDI0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2Uv
ZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKwor
U2NoZWR1bGVkIG5hdmlnYXRpb24gd2l0aCBkZWxheSAwCitTdGFydGVkIGxvYWRpbmcKK0NsZWFy
ZWQgc2NoZWR1bGVkIG5hdmlnYXRpb24KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mNDI3Y2JlN2Q1OTMwNzIyOTk5ZGFlMmI1ZDM5ODNkYzQxYjIwMTUyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJh
bWVTY2hlZHVsZWROYXZpZ2F0aW9uLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGxvYWQoKQoreworICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoImlmcmFtZSIpLnNyYyA9ICIuLi9yZXNvdXJjZXMvYmxhbmsuaHRtbCI7Cit9CisKK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQYWdlLmZyYW1l
U2NoZWR1bGVkTmF2aWdhdGlvbiJdID0gb25TY2hlZHVsZWQ7CisgICAgSW5zcGVjdG9yVGVzdC5l
dmVudEhhbmRsZXJbIlBhZ2UuZnJhbWVTdGFydGVkTG9hZGluZyJdID0gb25TdGFydGVkOworICAg
IEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQYWdlLmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5h
dmlnYXRpb24iXSA9IG9uQ2xlYXJlZDsKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJQ
YWdlLmVuYWJsZSIsIHt9KTsKKworICAgIGZ1bmN0aW9uIG9uU2NoZWR1bGVkKG1zZykKKyAgICB7
CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJTY2hlZHVsZWQgbmF2aWdhdGlvbiB3aXRoIGRl
bGF5ICIgKyBtc2cucGFyYW1zLmRlbGF5KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvblN0YXJ0
ZWQobXNnKQorICAgIHsKKyAgICAgICAgLy8gVGhpcyBldmVudCBzaG91bGQgYmUgcmVjZWl2ZWQg
YmVmb3JlIHRoZSBzY2hlZHVsZWQgbmF2aWdhdGlvbiBpcyBjbGVhcmVkLgorICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiU3RhcnRlZCBsb2FkaW5nIik7CisgICAgfQorCisgICAgZnVuY3Rpb24g
b25DbGVhcmVkKG1zZykKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDbGVhcmVk
IHNjaGVkdWxlZCBuYXZpZ2F0aW9uIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5l
dmFsdWF0ZSIsIHsgImV4cHJlc3Npb24iOiAibG9hZCgpIiB9KTsKK30KKworPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8aWZyYW1lPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJh
bWVTdGFydGVkTG9hZGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
NjBlZjU3YzM4NjBjMTJmYzMyMGJkZGFkOTk0ZDNmZGEyZmE0ZGE5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGlu
Zy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1N0YXJ0ZWQgbG9hZGluZworU3RvcHBl
ZCBsb2FkaW5nCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9w
YWdlL2ZyYW1lU3RhcnRlZExvYWRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9wYWdlL2ZyYW1lU3RhcnRlZExvYWRpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTcxYmM2ZTZj
Zjk1YmE3ZDI3N2EwMjRmYmJlYjA2NjY5YmQ5NDRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy5odG1sCkBA
IC0wLDAgKzEsMzYgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMv
cHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBsb2FkKCkK
K3sKKyAgICB2YXIgZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAg
ICBmcmFtZS5zcmMgPSAiLi4vcmVzb3VyY2VzL2JsYW5rLmh0bWwiOworICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNw
ZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5mcmFtZVN0YXJ0ZWRMb2FkaW5nIl0gPSBvblN0
YXJ0OworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQYWdlLmZyYW1lU3RvcHBlZExv
YWRpbmciXSA9IG9uU3RvcDsKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJQYWdlLmVu
YWJsZSIsIHt9KTsKKworICAgIGZ1bmN0aW9uIG9uU3RhcnQoKQorICAgIHsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlN0YXJ0ZWQgbG9hZGluZyIpOworICAgIH0KKyAgICBmdW5jdGlvbiBv
blN0b3AoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlN0b3BwZWQgbG9hZGlu
ZyIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KKworICAg
IEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ICJleHByZXNz
aW9uIjogImxvYWQoKSIgfSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181756</attachid>
            <date>2013-01-08 14:07:25 -0800</date>
            <delta_ts>2013-01-08 16:24:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104168-20130108140429.patch</filename>
            <type>text/plain</type>
            <size>21361</size>
            <attacher name="Ken Kania">kkania</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY4NDgwMWI0NjEyYWRk
NGYwMTg1NTFmNGRhNjEzNGQ2MDJjYjA4ZC4uMWE1ZDk3Y2JhNWVkNWRhYWY1ODA4M2YxNTJhZThh
NjAzMWMyZTQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEzLTAxLTA4ICBLZW4g
S2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJbnNwZWN0b3JdIEFkZCBl
dmVudHMgZm9yIHRyYWNraW5nIHBhZ2UgbG9hZHMgYW5kIHNjaGVkdWxlZCBuYXZpZ2F0aW9ucy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDE2OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGV2
ZW50cyBhcmUgbmVlZGVkIGZvciBjbGllbnRzIHdobyBuZWVkIHRvIGJlIGF3YXJlIG9mIHdoZW4g
YSBwYWdlIGlzCisgICAgICAgIG5hdmlnYXRpbmcgb3IgYWJvdXQgdG8gbmF2aWdhdGUuIFNvbWUg
Y2xpZW50cyBtYXkgd2lzaCB0byBwcmV2ZW50IGludGVyYWN0aW9uCisgICAgICAgIHdpdGggdGhl
IHBhZ2UgZHVyaW5nIHRoaXMgdGltZS4gVHdvIG9mIHRoZSBuZXcgZXZlbnRzIHRyYWNrIGxvYWRp
bmcgc3RhcnQgYW5kCisgICAgICAgIHN0b3AsIGFzIG1lYXN1cmVkIGJ5IHRoZSBQcm9ncmVzc1Ry
YWNrZXIuIFRoZSBvdGhlciB0d28gZXZlbnRzIHRyYWNrIHdoZW4gYQorICAgICAgICBwYWdlIGhh
cyBhIG5ldyBzY2hlZHVsZWQgbmF2aWdhdGlvbiBhbmQgd2hlbiBpdCBubyBsb25nZXIgaGFzIGEg
c2NoZWR1bGVkCisgICAgICAgIG5hdmlnYXRpb24uIFRoZXNlIGxhdHRlciB0d28gZXZlbnRzIHdv
bid0IGFsbG93IHRoZSBjbGllbnQgdG8gZGV0ZXJtaW5lIGlmCisgICAgICAgIGEgbG9hZCBpcyBn
b2luZyB0byBoYXBwZW4gaW4gYWxsIGNpcmN1bXN0YW5jZXMsIGJ1dCBpcyBzdWZmaWNpZW50IGZv
ciBtYW55IGNhc2VzLgorCisgICAgICAgIFRlc3RzOiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9m
cmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yLXBy
b3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZ0ltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVN0b3BwZWRMb2FkaW5nSW1w
bCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU2No
ZWR1bGVkTmF2aWdhdGlvbkltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uSW1wbCk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU2No
ZWR1bGVkTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UGFnZUFnZW50OjpmcmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZVN0b3BwZWRMb2FkaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVTY2hlZHVsZWROYXZp
Z2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVDbGVh
cmVkU2NoZWR1bGVkTmF2aWdhdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9k
ZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZy
YW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyLnByb3Rv
dHlwZS5mcmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYWdlRGlz
cGF0Y2hlci5wcm90b3R5cGUuZnJhbWVTdG9wcGVkTG9hZGluZyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lQ2xl
YXJlZFNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2No
ZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OmNsZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OnRpbWVyRmlyZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvblNjaGVkdWxlcjo6c3RhcnRUaW1lcik6CisgICAg
ICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uU2NoZWR1bGVyOjpjYW5jZWwpOgorICAgICAgICAqIGxv
YWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFj
a2VyOjpwcm9ncmVzc1N0YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2Vy
OjpmaW5hbFByb2dyZXNzQ29tcGxldGUpOgorCiAyMDEzLTAxLTA4ICBIYWppbWUgTW9ycml0YSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbU2hhZG93IERPTV0gUmVmYWN0b3Jpbmc6
IGludmFsaWRhdGVQYXJlbnREaXN0cmlidXRpb25JZk5lY2Vzc2FyeSgpIGNhbGxzIGFyZSB0b28g
aW50cnVzaXZlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggYmEw
MjgwODIxMTk5OGUwNTljZGIwYzZlMjk0MjM5MTFlOGRlMDI3MC4uYWM2MzlmM2RkMDljNTAwZGQy
MDVlNzJjMDcxMTcwNzc1OTU3ZGEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgpAQCAtNDk0LDYgKzQ5NCwzOSBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImZyYW1lSWQiLCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAi
SWQgb2YgdGhlIGZyYW1lIHRoYXQgaGFzIGJlZW4gZGV0YWNoZWQuIiB9CiAgICAgICAgICAgICAg
ICAgXSwKICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQorICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJmcmFtZVN0YXJ0ZWRMb2FkaW5n
IiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiBmcmFtZSBoYXMg
c3RhcnRlZCBsb2FkaW5nLiIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJh
bWVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgZnJhbWUgdGhhdCBoYXMgc3RhcnRlZCBs
b2FkaW5nLiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImhpZGRlbiI6
IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5h
bWUiOiAiZnJhbWVTdG9wcGVkTG9hZGluZyIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIkZpcmVkIHdoZW4gZnJhbWUgaGFzIHN0b3BwZWQgbG9hZGluZy4iLAorICAgICAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1l
SWQiLCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAiSWQgb2YgdGhl
IGZyYW1lIHRoYXQgaGFzIHN0b3BwZWQgbG9hZGluZy4iIH0KKyAgICAgICAgICAgICAgICBdLAor
ICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbiIs
CisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gZnJhbWUgc2NoZWR1
bGVzIGEgcG90ZW50aWFsIG5hdmlnYXRpb24uIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUlkIiwgIiRyZWYiOiAi
TmV0d29yay5GcmFtZUlkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBmcmFtZSB0aGF0IGhh
cyBzY2hlZHVsZWQgYSBuYXZpZ2F0aW9uLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJkZWxheSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJEZWxheSAoaW4g
c2Vjb25kcykgdW50aWwgdGhlIG5hdmlnYXRpb24gaXMgc2NoZWR1bGVkIHRvIGJlZ2luLiBUaGUg
bmF2aWdhdGlvbiBpcyBub3QgZ3VhcmFudGVlZCB0byBzdGFydC4iIH0KKyAgICAgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImZyYW1lQ2xlYXJlZFNjaGVkdWxl
ZE5hdmlnYXRpb24iLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVu
IGZyYW1lIG5vIGxvbmdlciBoYXMgYSBzY2hlZHVsZWQgbmF2aWdhdGlvbi4iLAorICAgICAgICAg
ICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZy
YW1lSWQiLCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAiSWQgb2Yg
dGhlIGZyYW1lIHRoYXQgaGFzIGNsZWFyZWQgaXRzIHNjaGVkdWxlZCBuYXZpZ2F0aW9uLiIgfQor
ICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKICAgICAg
ICAgICAgIH0KICAgICAgICAgXQogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDg4ZGI1NGMzNTZmNDFj
YWFmMjMyMDllOWMyNjAzZGI0NTBkZTlkMjAuLjkzYWE5MTNmNTBkN2EzZTBjZTc1M2Y2ZTYxNjIz
YzYzMDg5N2E0ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC05MjcsNiArOTI3LDMwIEBAIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkZXJEZXRhY2hlZEZyb21GcmFtZUltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyoKICAgICAgICAgaW5zcGVjdG9yUGFnZUFnZW50LT5sb2FkZXJEZXRhY2hlZEZy
b21GcmFtZShsb2FkZXIpOwogfQogCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJh
bWVTdGFydGVkTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgRnJhbWUqIGZyYW1lKQoreworICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIGluc3Bl
Y3RvclBhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgp
KQorICAgICAgICBpbnNwZWN0b3JQYWdlQWdlbnQtPmZyYW1lU3RhcnRlZExvYWRpbmcoZnJhbWUp
OworfQorCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGlu
Z0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUqIGZy
YW1lKQoreworICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIGluc3BlY3RvclBhZ2VBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQorICAgICAgICBpbnNw
ZWN0b3JQYWdlQWdlbnQtPmZyYW1lU3RvcHBlZExvYWRpbmcoZnJhbWUpOworfQorCit2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSogZnJhbWUsIGRvdWJs
ZSBkZWxheSkKK3sKKyAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBpbnNwZWN0b3JQYWdlQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKKyAgICAgICAg
aW5zcGVjdG9yUGFnZUFnZW50LT5mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24oZnJhbWUsIGRlbGF5
KTsKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVk
dWxlZE5hdmlnYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIEZyYW1lKiBmcmFtZSkKK3sKKyAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBpbnNwZWN0
b3JQYWdlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkK
KyAgICAgICAgaW5zcGVjdG9yUGFnZUFnZW50LT5mcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0
aW9uKGZyYW1lKTsKK30KKwogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0
cm95Q2FjaGVkUmVzb3VyY2VJbXBsKENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsK
ICAgICBpZiAoIWluc3RydW1lbnRpbmdBZ2VudHNTZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggNjE2MjQ5OTIzMWRk
YmYyZDU0NDZlMjg5MDZjOGUxYWYyNzBhNDk0ZC4uNWQzYzYwMGY3ZDgzNWMyNzRmMTdjYzEyMTZj
ZDlmMDYwNzc2NTE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMTkxLDYgKzE5MSwxMCBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHZvaWQgZnJhbWVEZXRhY2hlZEZyb21QYXJlbnQoRnJhbWUqKTsKICAgICBzdGF0aWMg
dm9pZCBkaWRDb21taXRMb2FkKEZyYW1lKiwgRG9jdW1lbnRMb2FkZXIqKTsKICAgICBzdGF0aWMg
dm9pZCBsb2FkZXJEZXRhY2hlZEZyb21GcmFtZShGcmFtZSosIERvY3VtZW50TG9hZGVyKik7Cisg
ICAgc3RhdGljIHZvaWQgZnJhbWVTdGFydGVkTG9hZGluZyhGcmFtZSopOworICAgIHN0YXRpYyB2
b2lkIGZyYW1lU3RvcHBlZExvYWRpbmcoRnJhbWUqKTsKKyAgICBzdGF0aWMgdm9pZCBmcmFtZVNj
aGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqLCBkb3VibGUgZGVsYXkpOworICAgIHN0YXRpYyB2b2lk
IGZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqKTsKICAgICBzdGF0aWMgdm9p
ZCB3aWxsRGVzdHJveUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKik7CiAKICAgICBzdGF0
aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxXcml0ZUhUTUwoRG9jdW1lbnQq
LCB1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKTsKQEAgLTM5MCw2
ICszOTQsMTAgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBmcmFtZURldGFjaGVkRnJvbVBh
cmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQg
ZGlkQ29tbWl0TG9hZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFBhZ2UqLCBEb2N1bWVudExv
YWRlciopOwogICAgIHN0YXRpYyB2b2lkIGxvYWRlckRldGFjaGVkRnJvbUZyYW1lSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgRG9jdW1lbnRMb2FkZXIqKTsKKyAgICBzdGF0aWMgdm9pZCBmcmFt
ZVN0YXJ0ZWRMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUqKTsKKyAgICBz
dGF0aWMgdm9pZCBmcmFtZVN0b3BwZWRMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwg
RnJhbWUqKTsKKyAgICBzdGF0aWMgdm9pZCBmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb25JbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSosIGRvdWJsZSBkZWxheSk7CisgICAgc3RhdGljIHZv
aWQgZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyosIEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lDYWNoZWRSZXNvdXJjZUlt
cGwoQ2FjaGVkUmVzb3VyY2UqKTsKIAogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUgd2lsbFdyaXRlSFRNTEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2lnbmVk
IGludCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUsIEZyYW1lKik7CkBAIC0xNjUxLDYg
KzE2NTksMzggQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkZXJE
ZXRhY2hlZEZyb21GcmFtZShGcmFtZSogZnJhbWUsIERvY3UKICNlbmRpZgogfQogCitpbmxpbmUg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RhcnRlZExvYWRpbmcoRnJhbWUq
IGZyYW1lKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUo
ZnJhbWUpKQorICAgICAgICBmcmFtZVN0YXJ0ZWRMb2FkaW5nSW1wbChpbnN0cnVtZW50aW5nQWdl
bnRzLCBmcmFtZSk7CisjZW5kaWYKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpmcmFtZVN0b3BwZWRMb2FkaW5nKEZyYW1lKiBmcmFtZSkKK3sKKyNpZiBFTkFCTEUo
SU5TUEVDVE9SKQorICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKKyAgICAgICAgZnJhbWVT
dG9wcGVkTG9hZGluZ0ltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZnJhbWUpOworI2VuZGlmCit9
CisKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTY2hlZHVsZWRO
YXZpZ2F0aW9uKEZyYW1lKiBmcmFtZSwgZG91YmxlIGRlbGF5KQoreworI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCisgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMg
PSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQorICAgICAgICBmcmFtZVNjaGVk
dWxlZE5hdmlnYXRpb25JbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGZyYW1lLCBkZWxheSk7Cisj
ZW5kaWYKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZUNs
ZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKiBmcmFtZSkKK3sKKyNpZiBFTkFCTEUoSU5T
UEVDVE9SKQorICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
ID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKKyAgICAgICAgZnJhbWVDbGVh
cmVkU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZnJhbWUpOwor
I2VuZGlmCit9CisKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERl
c3Ryb3lDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7CiAj
aWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggM2ZiYjAzN2ZjMTZhYjZiMmNhYWY0MTI0ZDhmYTBlZDE3
N2YyYzhlOS4uODk2ZTM5YzU0NzQ2OGZjZWI5N2EwYWQ0NTRiYzhiODZjMDhjYjkyNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTkw
Niw2ICs5MDYsMjYgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmxvYWRlckRldGFjaGVkRnJv
bUZyYW1lKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAgICAgICAgIG1fbG9hZGVyVG9JZGVudGlm
aWVyLnJlbW92ZShpdGVyYXRvcik7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpmcmFt
ZVN0YXJ0ZWRMb2FkaW5nKEZyYW1lKiBmcmFtZSkKK3sKKyAgICBtX2Zyb250ZW5kLT5mcmFtZVN0
YXJ0ZWRMb2FkaW5nKGZyYW1lSWQoZnJhbWUpKTsKK30KKwordm9pZCBJbnNwZWN0b3JQYWdlQWdl
bnQ6OmZyYW1lU3RvcHBlZExvYWRpbmcoRnJhbWUqIGZyYW1lKQoreworICAgIG1fZnJvbnRlbmQt
PmZyYW1lU3RvcHBlZExvYWRpbmcoZnJhbWVJZChmcmFtZSkpOworfQorCit2b2lkIEluc3BlY3Rv
clBhZ2VBZ2VudDo6ZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKiBmcmFtZSwgZG91Ymxl
IGRlbGF5KQoreworICAgIG1fZnJvbnRlbmQtPmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbihmcmFt
ZUlkKGZyYW1lKSwgZGVsYXkpOworfQorCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVD
bGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSogZnJhbWUpCit7CisgICAgbV9mcm9udGVu
ZC0+ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihmcmFtZUlkKGZyYW1lKSk7Cit9CisK
IHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjphcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobG9uZyog
d2lkdGgpCiB7CiAgICAgbG9uZyB3aWR0aE92ZXJyaWRlID0gbV9zdGF0ZS0+Z2V0TG9uZyhQYWdl
QWdlbnRTdGF0ZTo6cGFnZUFnZW50U2NyZWVuV2lkdGhPdmVycmlkZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKaW5kZXggYWM3NTk0NjU5NGY2ZmVh
MjNkMWJhNjc2OTM3MzMwOWJlOGQyZDYyMy4uMDM2MzBjMTQzNDM0NjAxZmRlYzAyZWI4MDc1YmVl
ZTA2ZjQyMWJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuaApAQCAtMTM4LDYgKzEzOCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBmcmFtZU5hdmln
YXRlZChEb2N1bWVudExvYWRlciopOwogICAgIHZvaWQgZnJhbWVEZXRhY2hlZChGcmFtZSopOwog
ICAgIHZvaWQgbG9hZGVyRGV0YWNoZWRGcm9tRnJhbWUoRG9jdW1lbnRMb2FkZXIqKTsKKyAgICB2
b2lkIGZyYW1lU3RhcnRlZExvYWRpbmcoRnJhbWUqKTsKKyAgICB2b2lkIGZyYW1lU3RvcHBlZExv
YWRpbmcoRnJhbWUqKTsKKyAgICB2b2lkIGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSos
IGRvdWJsZSBkZWxheSk7CisgICAgdm9pZCBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9u
KEZyYW1lKik7CiAgICAgdm9pZCBhcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobG9uZyopOwogICAg
IHZvaWQgYXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShsb25nKik7CiAgICAgdm9pZCBhcHBseUVt
dWxhdGVkTWVkaWEoU3RyaW5nKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qcwppbmRleCBlOWUxMmI5ZGI0Y2I4ZjJh
M2Y4MjQ1ZDcyNDllMGQ5Mzc0MWZiZjIwLi40ZDdhMWExZTM2ZmI1MThmZmYxMzkwODEwYjY4ZGY3
ZjdjMzE3OWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlVHJlZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKQEAgLTU5Niw2ICs1OTYsMTggQEAgV2ViSW5zcGVj
dG9yLlBhZ2VEaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICBmcmFtZURldGFjaGVkOiBmdW5j
dGlvbihmcmFtZUlkKQogICAgIHsKICAgICAgICAgdGhpcy5fcmVzb3VyY2VUcmVlTW9kZWwuX2Zy
YW1lRGV0YWNoZWQoZnJhbWVJZCk7CisgICAgfSwKKworICAgIGZyYW1lU3RhcnRlZExvYWRpbmc6
IGZ1bmN0aW9uKGZyYW1lSWQpIHsKKyAgICB9LAorCisgICAgZnJhbWVTdG9wcGVkTG9hZGluZzog
ZnVuY3Rpb24oZnJhbWVJZCkgeworICAgIH0sCisKKyAgICBmcmFtZVNjaGVkdWxlZE5hdmlnYXRp
b246IGZ1bmN0aW9uKGZyYW1lSWQsIGRlbGF5KSB7CisgICAgfSwKKworICAgIGZyYW1lQ2xlYXJl
ZFNjaGVkdWxlZE5hdmlnYXRpb246IGZ1bmN0aW9uKGZyYW1lSWQpIHsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAppbmRleCBhY2Jl
Yjc4OTVlMDdmZmRkZjk0ODQzZTc0OTFmZmM2ODhlMWQzZDJiLi4wNzZhYmJkMmFjMDA3NmU0Mzcy
ZTZmMWUwNzBhYzI1YzkwMDQyODU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TmF2aWdhdGlvblNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmln
YXRpb25TY2hlZHVsZXIuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1F
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SGlzdG9yeUl0ZW0uaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KQEAgLTI4Niw2ICsyODcsOCBAQCBib29sIE5hdmlnYXRp
b25TY2hlZHVsZXI6OmxvY2F0aW9uQ2hhbmdlUGVuZGluZygpCiAKIHZvaWQgTmF2aWdhdGlvblNj
aGVkdWxlcjo6Y2xlYXIoKQogeworICAgIGlmIChtX3RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlv
bihtX2ZyYW1lKTsKICAgICBtX3RpbWVyLnN0b3AoKTsKICAgICBtX3JlZGlyZWN0LmNsZWFyKCk7
CiB9CkBAIC00MTEsMTEgKzQxNCwxNCBAQCB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnRpbWVy
RmlyZWQoVGltZXI8TmF2aWdhdGlvblNjaGVkdWxlcj4qKQogewogICAgIGlmICghbV9mcmFtZS0+
cGFnZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1fZnJhbWUtPnBhZ2UoKS0+ZGVmZXJz
TG9hZGluZygpKQorICAgIGlmIChtX2ZyYW1lLT5wYWdlKCktPmRlZmVyc0xvYWRpbmcoKSkgewor
ICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5h
dmlnYXRpb24obV9mcmFtZSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBPd25QdHI8
U2NoZWR1bGVkTmF2aWdhdGlvbj4gcmVkaXJlY3QobV9yZWRpcmVjdC5yZWxlYXNlKCkpOwogICAg
IHJlZGlyZWN0LT5maXJlKG1fZnJhbWUpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihtX2ZyYW1lKTsKIH0KIAogdm9pZCBOYXZp
Z2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZShQYXNzT3duUHRyPFNjaGVkdWxlZE5hdmlnYXRpb24+
IHJlZGlyZWN0KQpAQCAtNDU4LDEwICs0NjQsMTMgQEAgdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVy
OjpzdGFydFRpbWVyKCkKIAogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KG1fcmVkaXJlY3QtPmRl
bGF5KCkpOwogICAgIG1fcmVkaXJlY3QtPmRpZFN0YXJ0VGltZXIobV9mcmFtZSwgJm1fdGltZXIp
OworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9u
KG1fZnJhbWUsIG1fcmVkaXJlY3QtPmRlbGF5KCkpOwogfQogCiB2b2lkIE5hdmlnYXRpb25TY2hl
ZHVsZXI6OmNhbmNlbChib29sIG5ld0xvYWRJblByb2dyZXNzKQogeworICAgIGlmIChtX3RpbWVy
LmlzQWN0aXZlKCkpCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVDbGVh
cmVkU2NoZWR1bGVkTmF2aWdhdGlvbihtX2ZyYW1lKTsKICAgICBtX3RpbWVyLnN0b3AoKTsKIAog
ICAgIE93blB0cjxTY2hlZHVsZWROYXZpZ2F0aW9uPiByZWRpcmVjdChtX3JlZGlyZWN0LnJlbGVh
c2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwCmluZGV4IDRm
MmI3ZWNkMzdlMjZkZmFkY2JiNWI2YjVmZDk1ZjI2ZTFkZjViMmMuLjkyMzg4ZWMwNTI2YzQwYzg4
MWM5NWRhNGViMTdlNTMzZDZiZDlkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qcm9ncmVzc1RyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVz
c1RyYWNrZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0xMjAsNiArMTIxLDcgQEAgdm9pZCBQcm9ncmVzc1Ry
YWNrZXI6OnByb2dyZXNzU3RhcnRlZChGcmFtZSogZnJhbWUpCiAgICAgbV9udW1Qcm9ncmVzc1Ry
YWNrZWRGcmFtZXMrKzsKIAogICAgIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmRpZENoYW5n
ZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFt
ZVN0YXJ0ZWRMb2FkaW5nKGZyYW1lKTsKIH0KIAogdm9pZCBQcm9ncmVzc1RyYWNrZXI6OnByb2dy
ZXNzQ29tcGxldGVkKEZyYW1lKiBmcmFtZSkKQEAgLTE1NSw2ICsxNTcsNyBAQCB2b2lkIFByb2dy
ZXNzVHJhY2tlcjo6ZmluYWxQcm9ncmVzc0NvbXBsZXRlKCkKIAogICAgIGZyYW1lLT5sb2FkZXIo
KS0+Y2xpZW50KCktPnNldE1haW5GcmFtZURvY3VtZW50UmVhZHkodHJ1ZSk7CiAgICAgZnJhbWUt
PmxvYWRlcigpLT5jbGllbnQoKS0+cG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb24oKTsK
KyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RvcHBlZExvYWRpbmcoZnJhbWUu
Z2V0KCkpOwogfQogCiB2b2lkIFByb2dyZXNzVHJhY2tlcjo6aW5jcmVtZW50UHJvZ3Jlc3ModW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5OTI3ODM3MzVmYTJjODBjNWM0OWYzZGI0Y2U0Mzk3MmNhNTFlM2FhLi45NjAyMGY2
NzkzNTRhNmRmYjQ5ZjViZjVkNThhODY1ZjBiNGI5YzgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTMtMDEtMDggIEtlbiBLYW5pYSAgPGtrYW5pYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
W0luc3BlY3Rvcl0gQWRkIGV2ZW50cyBmb3IgdHJhY2tpbmcgcGFnZSBsb2FkcyBhbmQgc2NoZWR1
bGVkIG5hdmlnYXRpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA0MTY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhlc2UgZXZlbnRzIGFyZSBuZWVkZWQgZm9yIGNsaWVudHMgd2hvIG5lZWQgdG8g
YmUgYXdhcmUgb2Ygd2hlbiBhIHBhZ2UgaXMKKyAgICAgICAgbmF2aWdhdGluZyBvciBhYm91dCB0
byBuYXZpZ2F0ZS4gU29tZSBjbGllbnRzIG1heSB3aXNoIHRvIHByZXZlbnQgaW50ZXJhY3Rpb24K
KyAgICAgICAgd2l0aCB0aGUgcGFnZSBkdXJpbmcgdGhpcyB0aW1lLiBUd28gb2YgdGhlIG5ldyBl
dmVudHMgdHJhY2sgbG9hZGluZyBzdGFydCBhbmQKKyAgICAgICAgc3RvcCwgYXMgbWVhc3VyZWQg
YnkgdGhlIFByb2dyZXNzVHJhY2tlci4gVGhlIG90aGVyIHR3byBldmVudHMgdHJhY2sgd2hlbiBh
CisgICAgICAgIHBhZ2UgaGFzIGEgbmV3IHNjaGVkdWxlZCBuYXZpZ2F0aW9uIGFuZCB3aGVuIGl0
IG5vIGxvbmdlciBoYXMgYSBzY2hlZHVsZWQKKyAgICAgICAgbmF2aWdhdGlvbi4gVGhlc2UgbGF0
dGVyIHR3byBldmVudHMgd29uJ3QgYWxsb3cgdGhlIGNsaWVudCB0byBkZXRlcm1pbmUgaWYKKyAg
ICAgICAgYSBsb2FkIGlzIGdvaW5nIHRvIGhhcHBlbiBpbiBhbGwgY2lyY3Vtc3RhbmNlcywgYnV0
IGlzIHN1ZmZpY2llbnQgZm9yIG1hbnkgY2FzZXMuCisKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJv
dG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRp
b24uaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVT
dGFydGVkTG9hZGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci1w
cm90b2NvbC9wYWdlL2ZyYW1lU3RhcnRlZExvYWRpbmcuaHRtbDogQWRkZWQuCisKIDIwMTMtMDEt
MDggIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBb
Q2hyb21pdW1dIFR3ZWFrIGV4cGVjdGF0aW9ucyBmb3IgcmFuZG9tLWFycmF5LWdjLXN0cmVzcy5o
dG1sIHRvIHJlZmxlY3QgcmVhbGl0eS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRp
b24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmZjAxZDhhMGJlOTJlN2ZkNDNiZmU4YjQ3N2Rl
Yzk0YTM4M2E0MjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorCitTY2hlZHVsZWQgbmF2aWdhdGlvbiB3aXRoIGRlbGF5IDAKK1N0YXJ0ZWQgbG9h
ZGluZworQ2xlYXJlZCBzY2hlZHVsZWQgbmF2aWdhdGlvbgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2
aWdhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0MjdjYmU3ZDU5MzA3MjI5OTlkYWUyYjVkMzk4M2Rj
NDFiMjAxNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRtbApAQCAtMCwwICsxLDQzIEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gbG9hZCgpCit7CisgICAgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigiaWZyYW1lIikuc3JjID0gIi4uL3Jlc291cmNlcy9ibGFuay5odG1sIjsK
K30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJb
IlBhZ2UuZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uIl0gPSBvblNjaGVkdWxlZDsKKyAgICBJbnNw
ZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5mcmFtZVN0YXJ0ZWRMb2FkaW5nIl0gPSBvblN0
YXJ0ZWQ7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIlBhZ2UuZnJhbWVDbGVhcmVk
U2NoZWR1bGVkTmF2aWdhdGlvbiJdID0gb25DbGVhcmVkOworICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIlBhZ2UuZW5hYmxlIiwge30pOworCisgICAgZnVuY3Rpb24gb25TY2hlZHVsZWQo
bXNnKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlNjaGVkdWxlZCBuYXZpZ2F0
aW9uIHdpdGggZGVsYXkgIiArIG1zZy5wYXJhbXMuZGVsYXkpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIG9uU3RhcnRlZChtc2cpCisgICAgeworICAgICAgICAvLyBUaGlzIGV2ZW50IHNob3VsZCBi
ZSByZWNlaXZlZCBiZWZvcmUgdGhlIHNjaGVkdWxlZCBuYXZpZ2F0aW9uIGlzIGNsZWFyZWQuCisg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJTdGFydGVkIGxvYWRpbmciKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBvbkNsZWFyZWQobXNnKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkNsZWFyZWQgc2NoZWR1bGVkIG5hdmlnYXRpb24iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJSdW50aW1lLmV2YWx1YXRlIiwgeyAiZXhwcmVzc2lvbiI6ICJsb2FkKCkiIH0pOworfQorCis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxpZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU3RhcnRlZExvYWRpbmctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU2MGVmNTdjMzg2MGMxMmZjMzIwYmRkYWQ5OTRkM2ZkYTJmYTRkYTkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVN0
YXJ0ZWRMb2FkaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworU3RhcnRlZCBsb2Fk
aW5nCitTdG9wcGVkIGxvYWRpbmcKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc1NzFiYzZlNmNmOTViYTdkMjc3YTAyNGZiYmViMDY2NjliZDk0NGUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2Fk
aW5nLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0
aW9uIGxvYWQoKQoreworICAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlm
cmFtZSIpOworICAgIGZyYW1lLnNyYyA9ICIuLi9yZXNvdXJjZXMvYmxhbmsuaHRtbCI7CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQor
eworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQYWdlLmZyYW1lU3RhcnRlZExvYWRp
bmciXSA9IG9uU3RhcnQ7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIlBhZ2UuZnJh
bWVTdG9wcGVkTG9hZGluZyJdID0gb25TdG9wOworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIlBhZ2UuZW5hYmxlIiwge30pOworCisgICAgZnVuY3Rpb24gb25TdGFydCgpCisgICAgewor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU3RhcnRlZCBsb2FkaW5nIik7CisgICAgfQorICAg
IGZ1bmN0aW9uIG9uU3RvcCgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU3Rv
cHBlZCBsb2FkaW5nIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Cisg
ICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIs
IHsgImV4cHJlc3Npb24iOiAibG9hZCgpIiB9KTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181799</attachid>
            <date>2013-01-08 16:24:34 -0800</date>
            <delta_ts>2013-01-15 10:11:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104168-20130108162138.patch</filename>
            <type>text/plain</type>
            <size>21361</size>
            <attacher name="Ken Kania">kkania</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY4NDgwMWI0NjEyYWRk
NGYwMTg1NTFmNGRhNjEzNGQ2MDJjYjA4ZC4uMWE1ZDk3Y2JhNWVkNWRhYWY1ODA4M2YxNTJhZThh
NjAzMWMyZTQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEzLTAxLTA4ICBLZW4g
S2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJbnNwZWN0b3JdIEFkZCBl
dmVudHMgZm9yIHRyYWNraW5nIHBhZ2UgbG9hZHMgYW5kIHNjaGVkdWxlZCBuYXZpZ2F0aW9ucy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDE2OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGV2
ZW50cyBhcmUgbmVlZGVkIGZvciBjbGllbnRzIHdobyBuZWVkIHRvIGJlIGF3YXJlIG9mIHdoZW4g
YSBwYWdlIGlzCisgICAgICAgIG5hdmlnYXRpbmcgb3IgYWJvdXQgdG8gbmF2aWdhdGUuIFNvbWUg
Y2xpZW50cyBtYXkgd2lzaCB0byBwcmV2ZW50IGludGVyYWN0aW9uCisgICAgICAgIHdpdGggdGhl
IHBhZ2UgZHVyaW5nIHRoaXMgdGltZS4gVHdvIG9mIHRoZSBuZXcgZXZlbnRzIHRyYWNrIGxvYWRp
bmcgc3RhcnQgYW5kCisgICAgICAgIHN0b3AsIGFzIG1lYXN1cmVkIGJ5IHRoZSBQcm9ncmVzc1Ry
YWNrZXIuIFRoZSBvdGhlciB0d28gZXZlbnRzIHRyYWNrIHdoZW4gYQorICAgICAgICBwYWdlIGhh
cyBhIG5ldyBzY2hlZHVsZWQgbmF2aWdhdGlvbiBhbmQgd2hlbiBpdCBubyBsb25nZXIgaGFzIGEg
c2NoZWR1bGVkCisgICAgICAgIG5hdmlnYXRpb24uIFRoZXNlIGxhdHRlciB0d28gZXZlbnRzIHdv
bid0IGFsbG93IHRoZSBjbGllbnQgdG8gZGV0ZXJtaW5lIGlmCisgICAgICAgIGEgbG9hZCBpcyBn
b2luZyB0byBoYXBwZW4gaW4gYWxsIGNpcmN1bXN0YW5jZXMsIGJ1dCBpcyBzdWZmaWNpZW50IGZv
ciBtYW55IGNhc2VzLgorCisgICAgICAgIFRlc3RzOiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9m
cmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yLXBy
b3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZ0ltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVN0b3BwZWRMb2FkaW5nSW1w
bCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU2No
ZWR1bGVkTmF2aWdhdGlvbkltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uSW1wbCk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU2No
ZWR1bGVkTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UGFnZUFnZW50OjpmcmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZVN0b3BwZWRMb2FkaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVTY2hlZHVsZWROYXZp
Z2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVDbGVh
cmVkU2NoZWR1bGVkTmF2aWdhdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9k
ZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZy
YW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyLnByb3Rv
dHlwZS5mcmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYWdlRGlz
cGF0Y2hlci5wcm90b3R5cGUuZnJhbWVTdG9wcGVkTG9hZGluZyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lQ2xl
YXJlZFNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2No
ZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OmNsZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OnRpbWVyRmlyZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvblNjaGVkdWxlcjo6c3RhcnRUaW1lcik6CisgICAg
ICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uU2NoZWR1bGVyOjpjYW5jZWwpOgorICAgICAgICAqIGxv
YWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFj
a2VyOjpwcm9ncmVzc1N0YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2Vy
OjpmaW5hbFByb2dyZXNzQ29tcGxldGUpOgorCiAyMDEzLTAxLTA4ICBIYWppbWUgTW9ycml0YSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbU2hhZG93IERPTV0gUmVmYWN0b3Jpbmc6
IGludmFsaWRhdGVQYXJlbnREaXN0cmlidXRpb25JZk5lY2Vzc2FyeSgpIGNhbGxzIGFyZSB0b28g
aW50cnVzaXZlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggYmEw
MjgwODIxMTk5OGUwNTljZGIwYzZlMjk0MjM5MTFlOGRlMDI3MC4uYWM2MzlmM2RkMDljNTAwZGQy
MDVlNzJjMDcxMTcwNzc1OTU3ZGEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgpAQCAtNDk0LDYgKzQ5NCwzOSBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImZyYW1lSWQiLCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAi
SWQgb2YgdGhlIGZyYW1lIHRoYXQgaGFzIGJlZW4gZGV0YWNoZWQuIiB9CiAgICAgICAgICAgICAg
ICAgXSwKICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQorICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJmcmFtZVN0YXJ0ZWRMb2FkaW5n
IiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiBmcmFtZSBoYXMg
c3RhcnRlZCBsb2FkaW5nLiIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJh
bWVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgZnJhbWUgdGhhdCBoYXMgc3RhcnRlZCBs
b2FkaW5nLiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImhpZGRlbiI6
IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5h
bWUiOiAiZnJhbWVTdG9wcGVkTG9hZGluZyIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIkZpcmVkIHdoZW4gZnJhbWUgaGFzIHN0b3BwZWQgbG9hZGluZy4iLAorICAgICAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1l
SWQiLCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAiSWQgb2YgdGhl
IGZyYW1lIHRoYXQgaGFzIHN0b3BwZWQgbG9hZGluZy4iIH0KKyAgICAgICAgICAgICAgICBdLAor
ICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbiIs
CisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gZnJhbWUgc2NoZWR1
bGVzIGEgcG90ZW50aWFsIG5hdmlnYXRpb24uIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUlkIiwgIiRyZWYiOiAi
TmV0d29yay5GcmFtZUlkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBmcmFtZSB0aGF0IGhh
cyBzY2hlZHVsZWQgYSBuYXZpZ2F0aW9uLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJkZWxheSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJEZWxheSAoaW4g
c2Vjb25kcykgdW50aWwgdGhlIG5hdmlnYXRpb24gaXMgc2NoZWR1bGVkIHRvIGJlZ2luLiBUaGUg
bmF2aWdhdGlvbiBpcyBub3QgZ3VhcmFudGVlZCB0byBzdGFydC4iIH0KKyAgICAgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImZyYW1lQ2xlYXJlZFNjaGVkdWxl
ZE5hdmlnYXRpb24iLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVu
IGZyYW1lIG5vIGxvbmdlciBoYXMgYSBzY2hlZHVsZWQgbmF2aWdhdGlvbi4iLAorICAgICAgICAg
ICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZy
YW1lSWQiLCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAiSWQgb2Yg
dGhlIGZyYW1lIHRoYXQgaGFzIGNsZWFyZWQgaXRzIHNjaGVkdWxlZCBuYXZpZ2F0aW9uLiIgfQor
ICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKICAgICAg
ICAgICAgIH0KICAgICAgICAgXQogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDg4ZGI1NGMzNTZmNDFj
YWFmMjMyMDllOWMyNjAzZGI0NTBkZTlkMjAuLjkzYWE5MTNmNTBkN2EzZTBjZTc1M2Y2ZTYxNjIz
YzYzMDg5N2E0ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC05MjcsNiArOTI3LDMwIEBAIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkZXJEZXRhY2hlZEZyb21GcmFtZUltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyoKICAgICAgICAgaW5zcGVjdG9yUGFnZUFnZW50LT5sb2FkZXJEZXRhY2hlZEZy
b21GcmFtZShsb2FkZXIpOwogfQogCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJh
bWVTdGFydGVkTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgRnJhbWUqIGZyYW1lKQoreworICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIGluc3Bl
Y3RvclBhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgp
KQorICAgICAgICBpbnNwZWN0b3JQYWdlQWdlbnQtPmZyYW1lU3RhcnRlZExvYWRpbmcoZnJhbWUp
OworfQorCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGlu
Z0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUqIGZy
YW1lKQoreworICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIGluc3BlY3RvclBhZ2VBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQorICAgICAgICBpbnNw
ZWN0b3JQYWdlQWdlbnQtPmZyYW1lU3RvcHBlZExvYWRpbmcoZnJhbWUpOworfQorCit2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSogZnJhbWUsIGRvdWJs
ZSBkZWxheSkKK3sKKyAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBpbnNwZWN0b3JQYWdlQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKKyAgICAgICAg
aW5zcGVjdG9yUGFnZUFnZW50LT5mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24oZnJhbWUsIGRlbGF5
KTsKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVk
dWxlZE5hdmlnYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIEZyYW1lKiBmcmFtZSkKK3sKKyAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBpbnNwZWN0
b3JQYWdlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkK
KyAgICAgICAgaW5zcGVjdG9yUGFnZUFnZW50LT5mcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0
aW9uKGZyYW1lKTsKK30KKwogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0
cm95Q2FjaGVkUmVzb3VyY2VJbXBsKENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsK
ICAgICBpZiAoIWluc3RydW1lbnRpbmdBZ2VudHNTZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggNjE2MjQ5OTIzMWRk
YmYyZDU0NDZlMjg5MDZjOGUxYWYyNzBhNDk0ZC4uNWQzYzYwMGY3ZDgzNWMyNzRmMTdjYzEyMTZj
ZDlmMDYwNzc2NTE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMTkxLDYgKzE5MSwxMCBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHZvaWQgZnJhbWVEZXRhY2hlZEZyb21QYXJlbnQoRnJhbWUqKTsKICAgICBzdGF0aWMg
dm9pZCBkaWRDb21taXRMb2FkKEZyYW1lKiwgRG9jdW1lbnRMb2FkZXIqKTsKICAgICBzdGF0aWMg
dm9pZCBsb2FkZXJEZXRhY2hlZEZyb21GcmFtZShGcmFtZSosIERvY3VtZW50TG9hZGVyKik7Cisg
ICAgc3RhdGljIHZvaWQgZnJhbWVTdGFydGVkTG9hZGluZyhGcmFtZSopOworICAgIHN0YXRpYyB2
b2lkIGZyYW1lU3RvcHBlZExvYWRpbmcoRnJhbWUqKTsKKyAgICBzdGF0aWMgdm9pZCBmcmFtZVNj
aGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqLCBkb3VibGUgZGVsYXkpOworICAgIHN0YXRpYyB2b2lk
IGZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqKTsKICAgICBzdGF0aWMgdm9p
ZCB3aWxsRGVzdHJveUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKik7CiAKICAgICBzdGF0
aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxXcml0ZUhUTUwoRG9jdW1lbnQq
LCB1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKTsKQEAgLTM5MCw2
ICszOTQsMTAgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBmcmFtZURldGFjaGVkRnJvbVBh
cmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQg
ZGlkQ29tbWl0TG9hZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFBhZ2UqLCBEb2N1bWVudExv
YWRlciopOwogICAgIHN0YXRpYyB2b2lkIGxvYWRlckRldGFjaGVkRnJvbUZyYW1lSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgRG9jdW1lbnRMb2FkZXIqKTsKKyAgICBzdGF0aWMgdm9pZCBmcmFt
ZVN0YXJ0ZWRMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUqKTsKKyAgICBz
dGF0aWMgdm9pZCBmcmFtZVN0b3BwZWRMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwg
RnJhbWUqKTsKKyAgICBzdGF0aWMgdm9pZCBmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb25JbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSosIGRvdWJsZSBkZWxheSk7CisgICAgc3RhdGljIHZv
aWQgZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyosIEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lDYWNoZWRSZXNvdXJjZUlt
cGwoQ2FjaGVkUmVzb3VyY2UqKTsKIAogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUgd2lsbFdyaXRlSFRNTEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2lnbmVk
IGludCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUsIEZyYW1lKik7CkBAIC0xNjUxLDYg
KzE2NTksMzggQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkZXJE
ZXRhY2hlZEZyb21GcmFtZShGcmFtZSogZnJhbWUsIERvY3UKICNlbmRpZgogfQogCitpbmxpbmUg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RhcnRlZExvYWRpbmcoRnJhbWUq
IGZyYW1lKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUo
ZnJhbWUpKQorICAgICAgICBmcmFtZVN0YXJ0ZWRMb2FkaW5nSW1wbChpbnN0cnVtZW50aW5nQWdl
bnRzLCBmcmFtZSk7CisjZW5kaWYKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpmcmFtZVN0b3BwZWRMb2FkaW5nKEZyYW1lKiBmcmFtZSkKK3sKKyNpZiBFTkFCTEUo
SU5TUEVDVE9SKQorICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKKyAgICAgICAgZnJhbWVT
dG9wcGVkTG9hZGluZ0ltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZnJhbWUpOworI2VuZGlmCit9
CisKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTY2hlZHVsZWRO
YXZpZ2F0aW9uKEZyYW1lKiBmcmFtZSwgZG91YmxlIGRlbGF5KQoreworI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCisgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMg
PSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQorICAgICAgICBmcmFtZVNjaGVk
dWxlZE5hdmlnYXRpb25JbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGZyYW1lLCBkZWxheSk7Cisj
ZW5kaWYKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZUNs
ZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKiBmcmFtZSkKK3sKKyNpZiBFTkFCTEUoSU5T
UEVDVE9SKQorICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
ID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKKyAgICAgICAgZnJhbWVDbGVh
cmVkU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZnJhbWUpOwor
I2VuZGlmCit9CisKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERl
c3Ryb3lDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7CiAj
aWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggM2ZiYjAzN2ZjMTZhYjZiMmNhYWY0MTI0ZDhmYTBlZDE3
N2YyYzhlOS4uODk2ZTM5YzU0NzQ2OGZjZWI5N2EwYWQ0NTRiYzhiODZjMDhjYjkyNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTkw
Niw2ICs5MDYsMjYgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmxvYWRlckRldGFjaGVkRnJv
bUZyYW1lKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAgICAgICAgIG1fbG9hZGVyVG9JZGVudGlm
aWVyLnJlbW92ZShpdGVyYXRvcik7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpmcmFt
ZVN0YXJ0ZWRMb2FkaW5nKEZyYW1lKiBmcmFtZSkKK3sKKyAgICBtX2Zyb250ZW5kLT5mcmFtZVN0
YXJ0ZWRMb2FkaW5nKGZyYW1lSWQoZnJhbWUpKTsKK30KKwordm9pZCBJbnNwZWN0b3JQYWdlQWdl
bnQ6OmZyYW1lU3RvcHBlZExvYWRpbmcoRnJhbWUqIGZyYW1lKQoreworICAgIG1fZnJvbnRlbmQt
PmZyYW1lU3RvcHBlZExvYWRpbmcoZnJhbWVJZChmcmFtZSkpOworfQorCit2b2lkIEluc3BlY3Rv
clBhZ2VBZ2VudDo6ZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKiBmcmFtZSwgZG91Ymxl
IGRlbGF5KQoreworICAgIG1fZnJvbnRlbmQtPmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbihmcmFt
ZUlkKGZyYW1lKSwgZGVsYXkpOworfQorCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVD
bGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSogZnJhbWUpCit7CisgICAgbV9mcm9udGVu
ZC0+ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihmcmFtZUlkKGZyYW1lKSk7Cit9CisK
IHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjphcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobG9uZyog
d2lkdGgpCiB7CiAgICAgbG9uZyB3aWR0aE92ZXJyaWRlID0gbV9zdGF0ZS0+Z2V0TG9uZyhQYWdl
QWdlbnRTdGF0ZTo6cGFnZUFnZW50U2NyZWVuV2lkdGhPdmVycmlkZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKaW5kZXggYWM3NTk0NjU5NGY2ZmVh
MjNkMWJhNjc2OTM3MzMwOWJlOGQyZDYyMy4uMDM2MzBjMTQzNDM0NjAxZmRlYzAyZWI4MDc1YmVl
ZTA2ZjQyMWJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuaApAQCAtMTM4LDYgKzEzOCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBmcmFtZU5hdmln
YXRlZChEb2N1bWVudExvYWRlciopOwogICAgIHZvaWQgZnJhbWVEZXRhY2hlZChGcmFtZSopOwog
ICAgIHZvaWQgbG9hZGVyRGV0YWNoZWRGcm9tRnJhbWUoRG9jdW1lbnRMb2FkZXIqKTsKKyAgICB2
b2lkIGZyYW1lU3RhcnRlZExvYWRpbmcoRnJhbWUqKTsKKyAgICB2b2lkIGZyYW1lU3RvcHBlZExv
YWRpbmcoRnJhbWUqKTsKKyAgICB2b2lkIGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSos
IGRvdWJsZSBkZWxheSk7CisgICAgdm9pZCBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9u
KEZyYW1lKik7CiAgICAgdm9pZCBhcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobG9uZyopOwogICAg
IHZvaWQgYXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShsb25nKik7CiAgICAgdm9pZCBhcHBseUVt
dWxhdGVkTWVkaWEoU3RyaW5nKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qcwppbmRleCBlOWUxMmI5ZGI0Y2I4ZjJh
M2Y4MjQ1ZDcyNDllMGQ5Mzc0MWZiZjIwLi40ZDdhMWExZTM2ZmI1MThmZmYxMzkwODEwYjY4ZGY3
ZjdjMzE3OWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlVHJlZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKQEAgLTU5Niw2ICs1OTYsMTggQEAgV2ViSW5zcGVj
dG9yLlBhZ2VEaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICBmcmFtZURldGFjaGVkOiBmdW5j
dGlvbihmcmFtZUlkKQogICAgIHsKICAgICAgICAgdGhpcy5fcmVzb3VyY2VUcmVlTW9kZWwuX2Zy
YW1lRGV0YWNoZWQoZnJhbWVJZCk7CisgICAgfSwKKworICAgIGZyYW1lU3RhcnRlZExvYWRpbmc6
IGZ1bmN0aW9uKGZyYW1lSWQpIHsKKyAgICB9LAorCisgICAgZnJhbWVTdG9wcGVkTG9hZGluZzog
ZnVuY3Rpb24oZnJhbWVJZCkgeworICAgIH0sCisKKyAgICBmcmFtZVNjaGVkdWxlZE5hdmlnYXRp
b246IGZ1bmN0aW9uKGZyYW1lSWQsIGRlbGF5KSB7CisgICAgfSwKKworICAgIGZyYW1lQ2xlYXJl
ZFNjaGVkdWxlZE5hdmlnYXRpb246IGZ1bmN0aW9uKGZyYW1lSWQpIHsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAppbmRleCBhY2Jl
Yjc4OTVlMDdmZmRkZjk0ODQzZTc0OTFmZmM2ODhlMWQzZDJiLi4wNzZhYmJkMmFjMDA3NmU0Mzcy
ZTZmMWUwNzBhYzI1YzkwMDQyODU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TmF2aWdhdGlvblNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmln
YXRpb25TY2hlZHVsZXIuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1F
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SGlzdG9yeUl0ZW0uaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KQEAgLTI4Niw2ICsyODcsOCBAQCBib29sIE5hdmlnYXRp
b25TY2hlZHVsZXI6OmxvY2F0aW9uQ2hhbmdlUGVuZGluZygpCiAKIHZvaWQgTmF2aWdhdGlvblNj
aGVkdWxlcjo6Y2xlYXIoKQogeworICAgIGlmIChtX3RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlv
bihtX2ZyYW1lKTsKICAgICBtX3RpbWVyLnN0b3AoKTsKICAgICBtX3JlZGlyZWN0LmNsZWFyKCk7
CiB9CkBAIC00MTEsMTEgKzQxNCwxNCBAQCB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnRpbWVy
RmlyZWQoVGltZXI8TmF2aWdhdGlvblNjaGVkdWxlcj4qKQogewogICAgIGlmICghbV9mcmFtZS0+
cGFnZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1fZnJhbWUtPnBhZ2UoKS0+ZGVmZXJz
TG9hZGluZygpKQorICAgIGlmIChtX2ZyYW1lLT5wYWdlKCktPmRlZmVyc0xvYWRpbmcoKSkgewor
ICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5h
dmlnYXRpb24obV9mcmFtZSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBPd25QdHI8
U2NoZWR1bGVkTmF2aWdhdGlvbj4gcmVkaXJlY3QobV9yZWRpcmVjdC5yZWxlYXNlKCkpOwogICAg
IHJlZGlyZWN0LT5maXJlKG1fZnJhbWUpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihtX2ZyYW1lKTsKIH0KIAogdm9pZCBOYXZp
Z2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZShQYXNzT3duUHRyPFNjaGVkdWxlZE5hdmlnYXRpb24+
IHJlZGlyZWN0KQpAQCAtNDU4LDEwICs0NjQsMTMgQEAgdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVy
OjpzdGFydFRpbWVyKCkKIAogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KG1fcmVkaXJlY3QtPmRl
bGF5KCkpOwogICAgIG1fcmVkaXJlY3QtPmRpZFN0YXJ0VGltZXIobV9mcmFtZSwgJm1fdGltZXIp
OworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9u
KG1fZnJhbWUsIG1fcmVkaXJlY3QtPmRlbGF5KCkpOwogfQogCiB2b2lkIE5hdmlnYXRpb25TY2hl
ZHVsZXI6OmNhbmNlbChib29sIG5ld0xvYWRJblByb2dyZXNzKQogeworICAgIGlmIChtX3RpbWVy
LmlzQWN0aXZlKCkpCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVDbGVh
cmVkU2NoZWR1bGVkTmF2aWdhdGlvbihtX2ZyYW1lKTsKICAgICBtX3RpbWVyLnN0b3AoKTsKIAog
ICAgIE93blB0cjxTY2hlZHVsZWROYXZpZ2F0aW9uPiByZWRpcmVjdChtX3JlZGlyZWN0LnJlbGVh
c2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwCmluZGV4IDRm
MmI3ZWNkMzdlMjZkZmFkY2JiNWI2YjVmZDk1ZjI2ZTFkZjViMmMuLjkyMzg4ZWMwNTI2YzQwYzg4
MWM5NWRhNGViMTdlNTMzZDZiZDlkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qcm9ncmVzc1RyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVz
c1RyYWNrZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0xMjAsNiArMTIxLDcgQEAgdm9pZCBQcm9ncmVzc1Ry
YWNrZXI6OnByb2dyZXNzU3RhcnRlZChGcmFtZSogZnJhbWUpCiAgICAgbV9udW1Qcm9ncmVzc1Ry
YWNrZWRGcmFtZXMrKzsKIAogICAgIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmRpZENoYW5n
ZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFt
ZVN0YXJ0ZWRMb2FkaW5nKGZyYW1lKTsKIH0KIAogdm9pZCBQcm9ncmVzc1RyYWNrZXI6OnByb2dy
ZXNzQ29tcGxldGVkKEZyYW1lKiBmcmFtZSkKQEAgLTE1NSw2ICsxNTcsNyBAQCB2b2lkIFByb2dy
ZXNzVHJhY2tlcjo6ZmluYWxQcm9ncmVzc0NvbXBsZXRlKCkKIAogICAgIGZyYW1lLT5sb2FkZXIo
KS0+Y2xpZW50KCktPnNldE1haW5GcmFtZURvY3VtZW50UmVhZHkodHJ1ZSk7CiAgICAgZnJhbWUt
PmxvYWRlcigpLT5jbGllbnQoKS0+cG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb24oKTsK
KyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RvcHBlZExvYWRpbmcoZnJhbWUu
Z2V0KCkpOwogfQogCiB2b2lkIFByb2dyZXNzVHJhY2tlcjo6aW5jcmVtZW50UHJvZ3Jlc3ModW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5OTI3ODM3MzVmYTJjODBjNWM0OWYzZGI0Y2U0Mzk3MmNhNTFlM2FhLi45NjAyMGY2
NzkzNTRhNmRmYjQ5ZjViZjVkNThhODY1ZjBiNGI5YzgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTMtMDEtMDggIEtlbiBLYW5pYSAgPGtrYW5pYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
W0luc3BlY3Rvcl0gQWRkIGV2ZW50cyBmb3IgdHJhY2tpbmcgcGFnZSBsb2FkcyBhbmQgc2NoZWR1
bGVkIG5hdmlnYXRpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA0MTY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhlc2UgZXZlbnRzIGFyZSBuZWVkZWQgZm9yIGNsaWVudHMgd2hvIG5lZWQgdG8g
YmUgYXdhcmUgb2Ygd2hlbiBhIHBhZ2UgaXMKKyAgICAgICAgbmF2aWdhdGluZyBvciBhYm91dCB0
byBuYXZpZ2F0ZS4gU29tZSBjbGllbnRzIG1heSB3aXNoIHRvIHByZXZlbnQgaW50ZXJhY3Rpb24K
KyAgICAgICAgd2l0aCB0aGUgcGFnZSBkdXJpbmcgdGhpcyB0aW1lLiBUd28gb2YgdGhlIG5ldyBl
dmVudHMgdHJhY2sgbG9hZGluZyBzdGFydCBhbmQKKyAgICAgICAgc3RvcCwgYXMgbWVhc3VyZWQg
YnkgdGhlIFByb2dyZXNzVHJhY2tlci4gVGhlIG90aGVyIHR3byBldmVudHMgdHJhY2sgd2hlbiBh
CisgICAgICAgIHBhZ2UgaGFzIGEgbmV3IHNjaGVkdWxlZCBuYXZpZ2F0aW9uIGFuZCB3aGVuIGl0
IG5vIGxvbmdlciBoYXMgYSBzY2hlZHVsZWQKKyAgICAgICAgbmF2aWdhdGlvbi4gVGhlc2UgbGF0
dGVyIHR3byBldmVudHMgd29uJ3QgYWxsb3cgdGhlIGNsaWVudCB0byBkZXRlcm1pbmUgaWYKKyAg
ICAgICAgYSBsb2FkIGlzIGdvaW5nIHRvIGhhcHBlbiBpbiBhbGwgY2lyY3Vtc3RhbmNlcywgYnV0
IGlzIHN1ZmZpY2llbnQgZm9yIG1hbnkgY2FzZXMuCisKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJv
dG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRp
b24uaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVT
dGFydGVkTG9hZGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci1w
cm90b2NvbC9wYWdlL2ZyYW1lU3RhcnRlZExvYWRpbmcuaHRtbDogQWRkZWQuCisKIDIwMTMtMDEt
MDggIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBb
Q2hyb21pdW1dIFR3ZWFrIGV4cGVjdGF0aW9ucyBmb3IgcmFuZG9tLWFycmF5LWdjLXN0cmVzcy5o
dG1sIHRvIHJlZmxlY3QgcmVhbGl0eS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRp
b24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmZjAxZDhhMGJlOTJlN2ZkNDNiZmU4YjQ3N2Rl
Yzk0YTM4M2E0MjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorCitTY2hlZHVsZWQgbmF2aWdhdGlvbiB3aXRoIGRlbGF5IDAKK1N0YXJ0ZWQgbG9h
ZGluZworQ2xlYXJlZCBzY2hlZHVsZWQgbmF2aWdhdGlvbgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2
aWdhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0MjdjYmU3ZDU5MzA3MjI5OTlkYWUyYjVkMzk4M2Rj
NDFiMjAxNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRtbApAQCAtMCwwICsxLDQzIEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gbG9hZCgpCit7CisgICAgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigiaWZyYW1lIikuc3JjID0gIi4uL3Jlc291cmNlcy9ibGFuay5odG1sIjsK
K30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJb
IlBhZ2UuZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uIl0gPSBvblNjaGVkdWxlZDsKKyAgICBJbnNw
ZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5mcmFtZVN0YXJ0ZWRMb2FkaW5nIl0gPSBvblN0
YXJ0ZWQ7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIlBhZ2UuZnJhbWVDbGVhcmVk
U2NoZWR1bGVkTmF2aWdhdGlvbiJdID0gb25DbGVhcmVkOworICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIlBhZ2UuZW5hYmxlIiwge30pOworCisgICAgZnVuY3Rpb24gb25TY2hlZHVsZWQo
bXNnKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlNjaGVkdWxlZCBuYXZpZ2F0
aW9uIHdpdGggZGVsYXkgIiArIG1zZy5wYXJhbXMuZGVsYXkpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIG9uU3RhcnRlZChtc2cpCisgICAgeworICAgICAgICAvLyBUaGlzIGV2ZW50IHNob3VsZCBi
ZSByZWNlaXZlZCBiZWZvcmUgdGhlIHNjaGVkdWxlZCBuYXZpZ2F0aW9uIGlzIGNsZWFyZWQuCisg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJTdGFydGVkIGxvYWRpbmciKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBvbkNsZWFyZWQobXNnKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkNsZWFyZWQgc2NoZWR1bGVkIG5hdmlnYXRpb24iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJSdW50aW1lLmV2YWx1YXRlIiwgeyAiZXhwcmVzc2lvbiI6ICJsb2FkKCkiIH0pOworfQorCis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxpZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU3RhcnRlZExvYWRpbmctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU2MGVmNTdjMzg2MGMxMmZjMzIwYmRkYWQ5OTRkM2ZkYTJmYTRkYTkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVN0
YXJ0ZWRMb2FkaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworU3RhcnRlZCBsb2Fk
aW5nCitTdG9wcGVkIGxvYWRpbmcKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc1NzFiYzZlNmNmOTViYTdkMjc3YTAyNGZiYmViMDY2NjliZDk0NGUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2Fk
aW5nLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0
aW9uIGxvYWQoKQoreworICAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlm
cmFtZSIpOworICAgIGZyYW1lLnNyYyA9ICIuLi9yZXNvdXJjZXMvYmxhbmsuaHRtbCI7CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQor
eworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQYWdlLmZyYW1lU3RhcnRlZExvYWRp
bmciXSA9IG9uU3RhcnQ7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIlBhZ2UuZnJh
bWVTdG9wcGVkTG9hZGluZyJdID0gb25TdG9wOworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIlBhZ2UuZW5hYmxlIiwge30pOworCisgICAgZnVuY3Rpb24gb25TdGFydCgpCisgICAgewor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU3RhcnRlZCBsb2FkaW5nIik7CisgICAgfQorICAg
IGZ1bmN0aW9uIG9uU3RvcCgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU3Rv
cHBlZCBsb2FkaW5nIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Cisg
ICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIs
IHsgImV4cHJlc3Npb24iOiAibG9hZCgpIiB9KTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182801</attachid>
            <date>2013-01-15 10:11:42 -0800</date>
            <delta_ts>2013-01-22 12:22:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104168-20130115100845.patch</filename>
            <type>text/plain</type>
            <size>21294</size>
            <attacher name="Ken Kania">kkania</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjM4N2UyNDg2ODRkNmJk
ZGU4N2JkMmY2NmJkMTVkODUyMDk2NWVlNS4uNWQzNTQwMTI4ZDY1NGY1ZGExMTA1ZGFhMGViNjk1
NWE3YWRlNjc3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEzLTAxLTE1ICBLZW4g
S2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJbnNwZWN0b3JdIEFkZCBl
dmVudHMgZm9yIHRyYWNraW5nIHBhZ2UgbG9hZHMgYW5kIHNjaGVkdWxlZCBuYXZpZ2F0aW9ucy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDE2OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGV2
ZW50cyBhcmUgbmVlZGVkIGZvciBjbGllbnRzIHdobyBuZWVkIHRvIGJlIGF3YXJlIG9mIHdoZW4g
YSBwYWdlIGlzCisgICAgICAgIG5hdmlnYXRpbmcgb3IgYWJvdXQgdG8gbmF2aWdhdGUuIFNvbWUg
Y2xpZW50cyBtYXkgd2lzaCB0byBwcmV2ZW50IGludGVyYWN0aW9uCisgICAgICAgIHdpdGggdGhl
IHBhZ2UgZHVyaW5nIHRoaXMgdGltZS4gVHdvIG9mIHRoZSBuZXcgZXZlbnRzIHRyYWNrIGxvYWRp
bmcgc3RhcnQgYW5kCisgICAgICAgIHN0b3AsIGFzIG1lYXN1cmVkIGJ5IHRoZSBQcm9ncmVzc1Ry
YWNrZXIuIFRoZSBvdGhlciB0d28gZXZlbnRzIHRyYWNrIHdoZW4gYQorICAgICAgICBwYWdlIGhh
cyBhIG5ldyBzY2hlZHVsZWQgbmF2aWdhdGlvbiBhbmQgd2hlbiBpdCBubyBsb25nZXIgaGFzIGEg
c2NoZWR1bGVkCisgICAgICAgIG5hdmlnYXRpb24uIFRoZXNlIGxhdHRlciB0d28gZXZlbnRzIHdv
bid0IGFsbG93IHRoZSBjbGllbnQgdG8gZGV0ZXJtaW5lIGlmCisgICAgICAgIGEgbG9hZCBpcyBn
b2luZyB0byBoYXBwZW4gaW4gYWxsIGNpcmN1bXN0YW5jZXMsIGJ1dCBpcyBzdWZmaWNpZW50IGZv
ciBtYW55IGNhc2VzLgorCisgICAgICAgIFRlc3RzOiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9m
cmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yLXBy
b3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZ0ltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVN0b3BwZWRMb2FkaW5nSW1w
bCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU2No
ZWR1bGVkTmF2aWdhdGlvbkltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uSW1wbCk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU2No
ZWR1bGVkTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UGFnZUFnZW50OjpmcmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZVN0b3BwZWRMb2FkaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVTY2hlZHVsZWROYXZp
Z2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVDbGVh
cmVkU2NoZWR1bGVkTmF2aWdhdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9k
ZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZy
YW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyLnByb3Rv
dHlwZS5mcmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYWdlRGlz
cGF0Y2hlci5wcm90b3R5cGUuZnJhbWVTdG9wcGVkTG9hZGluZyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lQ2xl
YXJlZFNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2No
ZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OmNsZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OnRpbWVyRmlyZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvblNjaGVkdWxlcjo6c3RhcnRUaW1lcik6CisgICAg
ICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uU2NoZWR1bGVyOjpjYW5jZWwpOgorICAgICAgICAqIGxv
YWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFj
a2VyOjpwcm9ncmVzc1N0YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2Vy
OjpmaW5hbFByb2dyZXNzQ29tcGxldGUpOgorCiAyMDEzLTAxLTExICBSb2JlcnQgSWFubnVjY2kg
IDxpYW5udWNjaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRXhwbGljaXRseSBzZXQgbXN2c19j
eWd3aW5fc2hlbGwgdG8gdHJ1ZSBmb3IgYWN0aW9ucyBpbiBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCA3MjNkYWE3YzA2NzVlNmRhODI4YWE2MTJmNzdm
MzdlZTBkYTBiZDYxLi5lNWVlODU3MTNhMWI2ODBmZGFlYzc5MGJkZjY5ZDVjNWI2NmEyOGE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC00OTQsNiArNDk0LDM5
IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5l
dHdvcmsuRnJhbWVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgZnJhbWUgdGhhdCBoYXMg
YmVlbiBkZXRhY2hlZC4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJo
aWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICJuYW1lIjogImZyYW1lU3RhcnRlZExvYWRpbmciLAorICAgICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJGaXJlZCB3aGVuIGZyYW1lIGhhcyBzdGFydGVkIGxvYWRpbmcuIiwKKyAgICAg
ICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJmcmFtZUlkIiwgIiRyZWYiOiAiTmV0d29yay5GcmFtZUlkIiwgImRlc2NyaXB0aW9uIjogIklk
IG9mIHRoZSBmcmFtZSB0aGF0IGhhcyBzdGFydGVkIGxvYWRpbmcuIiB9CisgICAgICAgICAgICAg
ICAgXSwKKyAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQorICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJmcmFtZVN0b3BwZWRMb2FkaW5n
IiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiBmcmFtZSBoYXMg
c3RvcHBlZCBsb2FkaW5nLiIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJh
bWVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgZnJhbWUgdGhhdCBoYXMgc3RvcHBlZCBs
b2FkaW5nLiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImhpZGRlbiI6
IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5h
bWUiOiAiZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uIiwKKyAgICAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiRmlyZWQgd2hlbiBmcmFtZSBzY2hlZHVsZXMgYSBwb3RlbnRpYWwgbmF2aWdhdGlv
bi4iLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImZyYW1lSWQiLCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3Jp
cHRpb24iOiAiSWQgb2YgdGhlIGZyYW1lIHRoYXQgaGFzIHNjaGVkdWxlZCBhIG5hdmlnYXRpb24u
IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRlbGF5IiwgInR5cGUiOiAibnVt
YmVyIiwgImRlc2NyaXB0aW9uIjogIkRlbGF5IChpbiBzZWNvbmRzKSB1bnRpbCB0aGUgbmF2aWdh
dGlvbiBpcyBzY2hlZHVsZWQgdG8gYmVnaW4uIFRoZSBuYXZpZ2F0aW9uIGlzIG5vdCBndWFyYW50
ZWVkIHRvIHN0YXJ0LiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImhp
ZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgIm5hbWUiOiAiZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbiIsCisgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gZnJhbWUgbm8gbG9uZ2VyIGhhcyBhIHNj
aGVkdWxlZCBuYXZpZ2F0aW9uLiIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsu
RnJhbWVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgZnJhbWUgdGhhdCBoYXMgY2xlYXJl
ZCBpdHMgc2NoZWR1bGVkIG5hdmlnYXRpb24uIiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQogICAgICAgICAgICAgfQogICAgICAgICBdCiAgICAg
fSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAKaW5kZXggODhkYjU0YzM1NmY0MWNhYWYyMzIwOWU5YzI2MDNkYjQ1MGRlOWQy
MC4uOTNhYTkxM2Y1MGQ3YTNlMGNlNzUzZjZlNjE2MjNjNjMwODk3YTQ4OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAK
QEAgLTkyNyw2ICs5MjcsMzAgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvYWRl
ckRldGFjaGVkRnJvbUZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKgogICAgICAgICBpbnNw
ZWN0b3JQYWdlQWdlbnQtPmxvYWRlckRldGFjaGVkRnJvbUZyYW1lKGxvYWRlcik7CiB9CiAKK3Zv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVN0YXJ0ZWRMb2FkaW5nSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSogZnJhbWUpCit7Cisg
ICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogaW5zcGVjdG9yUGFnZUFnZW50ID0gaW5zdHJ1bWVu
dGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIGluc3BlY3RvclBhZ2VB
Z2VudC0+ZnJhbWVTdGFydGVkTG9hZGluZyhmcmFtZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpmcmFtZVN0b3BwZWRMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSogZnJhbWUpCit7CisgICAgaWYgKEluc3BlY3Rv
clBhZ2VBZ2VudCogaW5zcGVjdG9yUGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5z
cGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIGluc3BlY3RvclBhZ2VBZ2VudC0+ZnJhbWVTdG9w
cGVkTG9hZGluZyhmcmFtZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpm
cmFtZVNjaGVkdWxlZE5hdmlnYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIEZyYW1lKiBmcmFtZSwgZG91YmxlIGRlbGF5KQoreworICAgIGlmIChJbnNw
ZWN0b3JQYWdlQWdlbnQqIGluc3BlY3RvclBhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMt
Pmluc3BlY3RvclBhZ2VBZ2VudCgpKQorICAgICAgICBpbnNwZWN0b3JQYWdlQWdlbnQtPmZyYW1l
U2NoZWR1bGVkTmF2aWdhdGlvbihmcmFtZSwgZGVsYXkpOworfQorCit2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUqIGZyYW1lKQoreworICAg
IGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIGluc3BlY3RvclBhZ2VBZ2VudCA9IGluc3RydW1lbnRp
bmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQorICAgICAgICBpbnNwZWN0b3JQYWdlQWdl
bnQtPmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24oZnJhbWUpOworfQorCiB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lDYWNoZWRSZXNvdXJjZUltcGwoQ2Fj
aGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlKQogewogICAgIGlmICghaW5zdHJ1bWVudGluZ0Fn
ZW50c1NldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaAppbmRleCAyZWU2OTBlMjQyOTkwNmI5YjI1ZTY0Yjg0ZjUzNjExMmFjYzlh
ZDAxLi5mYzkzODA0OTdiZTc2YTAzNDBmYjc4NGYyNjIxMjIxZDUxMTdlYjJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBA
IC0xOTEsNiArMTkxLDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBmcmFtZURldGFjaGVk
RnJvbVBhcmVudChGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIGRpZENvbW1pdExvYWQoRnJhbWUq
LCBEb2N1bWVudExvYWRlciopOwogICAgIHN0YXRpYyB2b2lkIGxvYWRlckRldGFjaGVkRnJvbUZy
YW1lKEZyYW1lKiwgRG9jdW1lbnRMb2FkZXIqKTsKKyAgICBzdGF0aWMgdm9pZCBmcmFtZVN0YXJ0
ZWRMb2FkaW5nKEZyYW1lKik7CisgICAgc3RhdGljIHZvaWQgZnJhbWVTdG9wcGVkTG9hZGluZyhG
cmFtZSopOworICAgIHN0YXRpYyB2b2lkIGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSos
IGRvdWJsZSBkZWxheSk7CisgICAgc3RhdGljIHZvaWQgZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2
aWdhdGlvbihGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95Q2FjaGVkUmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2UqKTsKIAogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUgd2lsbFdyaXRlSFRNTChEb2N1bWVudCosIHVuc2lnbmVkIGludCBsZW5ndGgsIHVu
c2lnbmVkIGludCBzdGFydExpbmUpOwpAQCAtMzkwLDYgKzM5NCwxMCBAQCBwcml2YXRlOgogICAg
IHN0YXRpYyB2b2lkIGZyYW1lRGV0YWNoZWRGcm9tUGFyZW50SW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzKiwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDb21taXRMb2FkSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgUGFnZSosIERvY3VtZW50TG9hZGVyKik7CiAgICAgc3RhdGljIHZvaWQg
bG9hZGVyRGV0YWNoZWRGcm9tRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBEb2N1bWVu
dExvYWRlciopOworICAgIHN0YXRpYyB2b2lkIGZyYW1lU3RhcnRlZExvYWRpbmdJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqLCBGcmFtZSopOworICAgIHN0YXRpYyB2b2lkIGZyYW1lU3RvcHBlZExv
YWRpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSopOworICAgIHN0YXRpYyB2b2lk
IGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1l
KiwgZG91YmxlIGRlbGF5KTsKKyAgICBzdGF0aWMgdm9pZCBmcmFtZUNsZWFyZWRTY2hlZHVsZWRO
YXZpZ2F0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUqKTsKICAgICBzdGF0aWMg
dm9pZCB3aWxsRGVzdHJveUNhY2hlZFJlc291cmNlSW1wbChDYWNoZWRSZXNvdXJjZSopOwogCiAg
ICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsV3JpdGVIVE1MSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50
IHN0YXJ0TGluZSwgRnJhbWUqKTsKQEAgLTE2NTEsNiArMTY1OSwzOCBAQCBpbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvYWRlckRldGFjaGVkRnJvbUZyYW1lKEZyYW1lKiBm
cmFtZSwgRG9jdQogI2VuZGlmCiB9CiAKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZnJhbWVTdGFydGVkTG9hZGluZyhGcmFtZSogZnJhbWUpCit7CisjaWYgRU5BQkxFKElO
U1BFQ1RPUikKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCisgICAgICAgIGZyYW1lU3Rh
cnRlZExvYWRpbmdJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGZyYW1lKTsKKyNlbmRpZgorfQor
CitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RvcHBlZExvYWRp
bmcoRnJhbWUqIGZyYW1lKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRz
Rm9yRnJhbWUoZnJhbWUpKQorICAgICAgICBmcmFtZVN0b3BwZWRMb2FkaW5nSW1wbChpbnN0cnVt
ZW50aW5nQWdlbnRzLCBmcmFtZSk7CisjZW5kaWYKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqIGZyYW1lLCBk
b3VibGUgZGVsYXkpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBpZiAoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JG
cmFtZShmcmFtZSkpCisgICAgICAgIGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoaW5zdHJ1
bWVudGluZ0FnZW50cywgZnJhbWUsIGRlbGF5KTsKKyNlbmRpZgorfQorCitpbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24o
RnJhbWUqIGZyYW1lKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9y
RnJhbWUoZnJhbWUpKQorICAgICAgICBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uSW1w
bChpbnN0cnVtZW50aW5nQWdlbnRzLCBmcmFtZSk7CisjZW5kaWYKK30KKwogaW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveUNhY2hlZFJlc291cmNlKENhY2hl
ZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCAx
MDQyMjJkOTA5NTliNWMwMzZmMDA3OWNmN2M0YjE2NTI5MzdjZDg1Li5jNDdiNWUyYzViNjQxZGM3
YTc5NDBmYmRiZDQwYzQ1MzZiNzdlNjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtOTAwLDYgKzkwMCwyNiBAQCB2b2lkIEluc3Bl
Y3RvclBhZ2VBZ2VudDo6bG9hZGVyRGV0YWNoZWRGcm9tRnJhbWUoRG9jdW1lbnRMb2FkZXIqIGxv
YWRlcikKICAgICAgICAgbV9sb2FkZXJUb0lkZW50aWZpZXIucmVtb3ZlKGl0ZXJhdG9yKTsKIH0K
IAordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1lU3RhcnRlZExvYWRpbmcoRnJhbWUqIGZy
YW1lKQoreworICAgIG1fZnJvbnRlbmQtPmZyYW1lU3RhcnRlZExvYWRpbmcoZnJhbWVJZChmcmFt
ZSkpOworfQorCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVTdG9wcGVkTG9hZGluZyhG
cmFtZSogZnJhbWUpCit7CisgICAgbV9mcm9udGVuZC0+ZnJhbWVTdG9wcGVkTG9hZGluZyhmcmFt
ZUlkKGZyYW1lKSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZVNjaGVkdWxl
ZE5hdmlnYXRpb24oRnJhbWUqIGZyYW1lLCBkb3VibGUgZGVsYXkpCit7CisgICAgbV9mcm9udGVu
ZC0+ZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uKGZyYW1lSWQoZnJhbWUpLCBkZWxheSk7Cit9CisK
K3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9u
KEZyYW1lKiBmcmFtZSkKK3sKKyAgICBtX2Zyb250ZW5kLT5mcmFtZUNsZWFyZWRTY2hlZHVsZWRO
YXZpZ2F0aW9uKGZyYW1lSWQoZnJhbWUpKTsKK30KKwogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6
OmFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZShsb25nKiB3aWR0aCkKIHsKICAgICBsb25nIHdpZHRo
T3ZlcnJpZGUgPSBtX3N0YXRlLT5nZXRMb25nKFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRTY3Jl
ZW5XaWR0aE92ZXJyaWRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuaAppbmRleCAyN2YxZTBhNTBkMTM4MWFkZWZhNWU4ZWI1Mzc4YWNmNWRiNjBlZmFm
Li45NzNlMTVjMmFmNmE3NjE2OGU3ZTUyOWM1M2U2Y2Q3ZDA0MTRmOGU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0xMzgsNiArMTM4LDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIGZyYW1lTmF2aWdhdGVkKERvY3VtZW50TG9hZGVyKik7CiAg
ICAgdm9pZCBmcmFtZURldGFjaGVkKEZyYW1lKik7CiAgICAgdm9pZCBsb2FkZXJEZXRhY2hlZEZy
b21GcmFtZShEb2N1bWVudExvYWRlciopOworICAgIHZvaWQgZnJhbWVTdGFydGVkTG9hZGluZyhG
cmFtZSopOworICAgIHZvaWQgZnJhbWVTdG9wcGVkTG9hZGluZyhGcmFtZSopOworICAgIHZvaWQg
ZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKiwgZG91YmxlIGRlbGF5KTsKKyAgICB2b2lk
IGZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqKTsKICAgICB2b2lkIGFwcGx5
U2NyZWVuV2lkdGhPdmVycmlkZShsb25nKik7CiAgICAgdm9pZCBhcHBseVNjcmVlbkhlaWdodE92
ZXJyaWRlKGxvbmcqKTsKICAgICB2b2lkIGFwcGx5RW11bGF0ZWRNZWRpYShTdHJpbmcqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVl
TW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJl
ZU1vZGVsLmpzCmluZGV4IGU5ZTEyYjlkYjRjYjhmMmEzZjgyNDVkNzI0OWUwZDkzNzQxZmJmMjAu
LjRkN2ExYTFlMzZmYjUxOGZmZjEzOTA4MTBiNjhkZjdmN2MzMTc5YmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5q
cwpAQCAtNTk2LDYgKzU5NiwxOCBAQCBXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90
eXBlID0gewogICAgIGZyYW1lRGV0YWNoZWQ6IGZ1bmN0aW9uKGZyYW1lSWQpCiAgICAgewogICAg
ICAgICB0aGlzLl9yZXNvdXJjZVRyZWVNb2RlbC5fZnJhbWVEZXRhY2hlZChmcmFtZUlkKTsKKyAg
ICB9LAorCisgICAgZnJhbWVTdGFydGVkTG9hZGluZzogZnVuY3Rpb24oZnJhbWVJZCkgeworICAg
IH0sCisKKyAgICBmcmFtZVN0b3BwZWRMb2FkaW5nOiBmdW5jdGlvbihmcmFtZUlkKSB7CisgICAg
fSwKKworICAgIGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbjogZnVuY3Rpb24oZnJhbWVJZCwgZGVs
YXkpIHsKKyAgICB9LAorCisgICAgZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbjogZnVu
Y3Rpb24oZnJhbWVJZCkgewogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05h
dmlnYXRpb25TY2hlZHVsZXIuY3BwCmluZGV4IGFjYmViNzg5NWUwN2ZmZGRmOTQ4NDNlNzQ5MWZm
YzY4OGUxZDNkMmIuLjA3NmFiYmQyYWMwMDc2ZTQzNzJlNmYxZTA3MGFjMjVjOTAwNDI4NTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKQEAgLTQ1
LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
RnJhbWVPd25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgorI2luY2x1ZGUg
Ikluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpA
QCAtMjg2LDYgKzI4Nyw4IEBAIGJvb2wgTmF2aWdhdGlvblNjaGVkdWxlcjo6bG9jYXRpb25DaGFu
Z2VQZW5kaW5nKCkKIAogdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpjbGVhcigpCiB7CisgICAg
aWYgKG1fdGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKG1fZnJhbWUpOwogICAgIG1fdGltZXIu
c3RvcCgpOwogICAgIG1fcmVkaXJlY3QuY2xlYXIoKTsKIH0KQEAgLTQxMSwxMSArNDE0LDE0IEBA
IHZvaWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6dGltZXJGaXJlZChUaW1lcjxOYXZpZ2F0aW9uU2No
ZWR1bGVyPiopCiB7CiAgICAgaWYgKCFtX2ZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJldHVybjsK
LSAgICBpZiAobV9mcmFtZS0+cGFnZSgpLT5kZWZlcnNMb2FkaW5nKCkpCisgICAgaWYgKG1fZnJh
bWUtPnBhZ2UoKS0+ZGVmZXJzTG9hZGluZygpKSB7CisgICAgICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihtX2ZyYW1lKTsKICAgICAg
ICAgcmV0dXJuOworICAgIH0KIAogICAgIE93blB0cjxTY2hlZHVsZWROYXZpZ2F0aW9uPiByZWRp
cmVjdChtX3JlZGlyZWN0LnJlbGVhc2UoKSk7CiAgICAgcmVkaXJlY3QtPmZpcmUobV9mcmFtZSk7
CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZp
Z2F0aW9uKG1fZnJhbWUpOwogfQogCiB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxl
KFBhc3NPd25QdHI8U2NoZWR1bGVkTmF2aWdhdGlvbj4gcmVkaXJlY3QpCkBAIC00NTgsMTAgKzQ2
NCwxMyBAQCB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnN0YXJ0VGltZXIoKQogCiAgICAgbV90
aW1lci5zdGFydE9uZVNob3QobV9yZWRpcmVjdC0+ZGVsYXkoKSk7CiAgICAgbV9yZWRpcmVjdC0+
ZGlkU3RhcnRUaW1lcihtX2ZyYW1lLCAmbV90aW1lcik7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24obV9mcmFtZSwgbV9yZWRpcmVjdC0+ZGVs
YXkoKSk7CiB9CiAKIHZvaWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6Y2FuY2VsKGJvb2wgbmV3TG9h
ZEluUHJvZ3Jlc3MpCiB7CisgICAgaWYgKG1fdGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKG1f
ZnJhbWUpOwogICAgIG1fdGltZXIuc3RvcCgpOwogCiAgICAgT3duUHRyPFNjaGVkdWxlZE5hdmln
YXRpb24+IHJlZGlyZWN0KG1fcmVkaXJlY3QucmVsZWFzZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAKaW5kZXggNGYyYjdlY2QzN2UyNmRmYWRjYmI1YjZiNWZk
OTVmMjZlMWRmNWIyYy4uOTIzODhlYzA1MjZjNDBjODgxYzk1ZGE0ZWIxN2U1MzNkNmJkOWQzYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyU3Rh
dGVNYWNoaW5lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAg
LTEyMCw2ICsxMjEsNyBAQCB2b2lkIFByb2dyZXNzVHJhY2tlcjo6cHJvZ3Jlc3NTdGFydGVkKEZy
YW1lKiBmcmFtZSkKICAgICBtX251bVByb2dyZXNzVHJhY2tlZEZyYW1lcysrOwogCiAgICAgZnJh
bWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKKyAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RhcnRlZExvYWRpbmcoZnJhbWUpOwog
fQogCiB2b2lkIFByb2dyZXNzVHJhY2tlcjo6cHJvZ3Jlc3NDb21wbGV0ZWQoRnJhbWUqIGZyYW1l
KQpAQCAtMTU1LDYgKzE1Nyw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpmaW5hbFByb2dyZXNz
Q29tcGxldGUoKQogCiAgICAgZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+c2V0TWFpbkZyYW1l
RG9jdW1lbnRSZWFkeSh0cnVlKTsKICAgICBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5wb3N0
UHJvZ3Jlc3NGaW5pc2hlZE5vdGlmaWNhdGlvbigpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGluZyhmcmFtZS5nZXQoKSk7CiB9CiAKIHZvaWQgUHJvZ3Jl
c3NUcmFja2VyOjppbmNyZW1lbnRQcm9ncmVzcyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYzMzI5ZDRiM2JlYzE1Y2Vj
YzlkNmFhZjMzMTg0NDBjNWZkOTU3MGQuLmE3NTFlMzAxYmIwYWYyNDNhNjM2ZWQ1Y2FkYjUyNjEy
NGQ4MTdhYWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMy0wMS0xNSAgS2VuIEthbmlhICA8
a2thbmlhQGNocm9taXVtLm9yZz4KKworICAgICAgICBbSW5zcGVjdG9yXSBBZGQgZXZlbnRzIGZv
ciB0cmFja2luZyBwYWdlIGxvYWRzIGFuZCBzY2hlZHVsZWQgbmF2aWdhdGlvbnMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQxNjgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVzZSBldmVudHMgYXJl
IG5lZWRlZCBmb3IgY2xpZW50cyB3aG8gbmVlZCB0byBiZSBhd2FyZSBvZiB3aGVuIGEgcGFnZSBp
cworICAgICAgICBuYXZpZ2F0aW5nIG9yIGFib3V0IHRvIG5hdmlnYXRlLiBTb21lIGNsaWVudHMg
bWF5IHdpc2ggdG8gcHJldmVudCBpbnRlcmFjdGlvbgorICAgICAgICB3aXRoIHRoZSBwYWdlIGR1
cmluZyB0aGlzIHRpbWUuIFR3byBvZiB0aGUgbmV3IGV2ZW50cyB0cmFjayBsb2FkaW5nIHN0YXJ0
IGFuZAorICAgICAgICBzdG9wLCBhcyBtZWFzdXJlZCBieSB0aGUgUHJvZ3Jlc3NUcmFja2VyLiBU
aGUgb3RoZXIgdHdvIGV2ZW50cyB0cmFjayB3aGVuIGEKKyAgICAgICAgcGFnZSBoYXMgYSBuZXcg
c2NoZWR1bGVkIG5hdmlnYXRpb24gYW5kIHdoZW4gaXQgbm8gbG9uZ2VyIGhhcyBhIHNjaGVkdWxl
ZAorICAgICAgICBuYXZpZ2F0aW9uLiBUaGVzZSBsYXR0ZXIgdHdvIGV2ZW50cyB3b24ndCBhbGxv
dyB0aGUgY2xpZW50IHRvIGRldGVybWluZSBpZgorICAgICAgICBhIGxvYWQgaXMgZ29pbmcgdG8g
aGFwcGVuIGluIGFsbCBjaXJjdW1zdGFuY2VzLCBidXQgaXMgc3VmZmljaWVudCBmb3IgbWFueSBj
YXNlcy4KKworICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVk
TmF2aWdhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci1wcm90
b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTdGFydGVk
TG9hZGluZy5odG1sOiBBZGRlZC4KKwogMjAxMy0wMS0xMSAgU3RlcGhlbiBDaGVubmV5ICA8c2No
ZW5uZXlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gRml4aW5nIHRoZSAxMC44
IGxheW91dCB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L3BhZ2UvZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbi1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGZmMDFkOGEwYmU5MmU3ZmQ0M2JmZThiNDc3ZGVjOTRhMzgzYTQy
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdl
L2ZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisK
K1NjaGVkdWxlZCBuYXZpZ2F0aW9uIHdpdGggZGVsYXkgMAorU3RhcnRlZCBsb2FkaW5nCitDbGVh
cmVkIHNjaGVkdWxlZCBuYXZpZ2F0aW9uCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbi5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjQyN2NiZTdkNTkzMDcyMjk5OWRhZTJiNWQzOTgzZGM0MWIyMDE1Mgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2Zy
YW1lU2NoZWR1bGVkTmF2aWdhdGlvbi5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorCitmdW5jdGlvbiBsb2FkKCkKK3sKKyAgICBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCJpZnJhbWUiKS5zcmMgPSAiLi4vcmVzb3VyY2VzL2JsYW5rLmh0bWwiOworfQorCitmdW5j
dGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5mcmFt
ZVNjaGVkdWxlZE5hdmlnYXRpb24iXSA9IG9uU2NoZWR1bGVkOworICAgIEluc3BlY3RvclRlc3Qu
ZXZlbnRIYW5kbGVyWyJQYWdlLmZyYW1lU3RhcnRlZExvYWRpbmciXSA9IG9uU3RhcnRlZDsKKyAg
ICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5mcmFtZUNsZWFyZWRTY2hlZHVsZWRO
YXZpZ2F0aW9uIl0gPSBvbkNsZWFyZWQ7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
UGFnZS5lbmFibGUiLCB7fSk7CisKKyAgICBmdW5jdGlvbiBvblNjaGVkdWxlZChtc2cpCisgICAg
eworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU2NoZWR1bGVkIG5hdmlnYXRpb24gd2l0aCBk
ZWxheSAiICsgbXNnLnBhcmFtcy5kZWxheSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25TdGFy
dGVkKG1zZykKKyAgICB7CisgICAgICAgIC8vIFRoaXMgZXZlbnQgc2hvdWxkIGJlIHJlY2VpdmVk
IGJlZm9yZSB0aGUgc2NoZWR1bGVkIG5hdmlnYXRpb24gaXMgY2xlYXJlZC4KKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlN0YXJ0ZWQgbG9hZGluZyIpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IG9uQ2xlYXJlZChtc2cpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ2xlYXJl
ZCBzY2hlZHVsZWQgbmF2aWdhdGlvbiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOworICAgIH0KKworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUu
ZXZhbHVhdGUiLCB7ICJleHByZXNzaW9uIjogImxvYWQoKSIgfSk7Cit9CisKKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGlmcmFtZT4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2Zy
YW1lU3RhcnRlZExvYWRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTYwZWY1N2MzODYwYzEyZmMzMjBiZGRhZDk5NGQzZmRhMmZhNGRhOQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU3RhcnRlZExvYWRp
bmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitTdGFydGVkIGxvYWRpbmcKK1N0b3Bw
ZWQgbG9hZGluZworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
cGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzU3MWJjNmU2
Y2Y5NWJhN2QyNzdhMDI0ZmJiZWIwNjY2OWJkOTQ0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU3RhcnRlZExvYWRpbmcuaHRtbApA
QCAtMCwwICsxLDM2IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2Vz
L3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gbG9hZCgp
Cit7CisgICAgdmFyIGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Cisg
ICAgZnJhbWUuc3JjID0gIi4uL3Jlc291cmNlcy9ibGFuay5odG1sIjsKKyAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGZyYW1lKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5z
cGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIlBhZ2UuZnJhbWVTdGFydGVkTG9hZGluZyJdID0gb25T
dGFydDsKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5mcmFtZVN0b3BwZWRM
b2FkaW5nIl0gPSBvblN0b3A7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUGFnZS5l
bmFibGUiLCB7fSk7CisKKyAgICBmdW5jdGlvbiBvblN0YXJ0KCkKKyAgICB7CisgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJTdGFydGVkIGxvYWRpbmciKTsKKyAgICB9CisgICAgZnVuY3Rpb24g
b25TdG9wKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJTdG9wcGVkIGxvYWRp
bmciKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9CisKKyAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgeyAiZXhwcmVz
c2lvbiI6ICJsb2FkKCkiIH0pOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184034</attachid>
            <date>2013-01-22 12:22:51 -0800</date>
            <delta_ts>2013-01-23 21:44:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104168-20130122121945.patch</filename>
            <type>text/plain</type>
            <size>28053</size>
            <attacher name="Ken Kania">kkania</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE2MmNlNmJkZTcwMjg3
ZjIyZGQ2Y2FkYTU2MjFmNThhMWYzNmNlMi4uMjU3ODM5NzJmYmZkNTc4ODk1MjQwMzU5ZTgxYWUw
ZjJlMmQzMTE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEzLTAxLTIyICBLZW4g
S2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJbnNwZWN0b3JdIEFkZCBl
dmVudHMgZm9yIHRyYWNraW5nIHBhZ2UgbG9hZHMgYW5kIHNjaGVkdWxlZCBuYXZpZ2F0aW9ucy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDE2OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGV2
ZW50cyBhcmUgbmVlZGVkIGZvciBjbGllbnRzIHdobyBuZWVkIHRvIGJlIGF3YXJlIG9mIHdoZW4g
YSBwYWdlIGlzCisgICAgICAgIG5hdmlnYXRpbmcgb3IgYWJvdXQgdG8gbmF2aWdhdGUuIFNvbWUg
Y2xpZW50cyBtYXkgd2lzaCB0byBwcmV2ZW50IGludGVyYWN0aW9uCisgICAgICAgIHdpdGggdGhl
IHBhZ2UgZHVyaW5nIHRoaXMgdGltZS4gVHdvIG9mIHRoZSBuZXcgZXZlbnRzIHRyYWNrIGxvYWRp
bmcgc3RhcnQgYW5kCisgICAgICAgIHN0b3AsIGFzIG1lYXN1cmVkIGJ5IHRoZSBQcm9ncmVzc1Ry
YWNrZXIuIFRoZSBvdGhlciB0d28gZXZlbnRzIHRyYWNrIHdoZW4gYQorICAgICAgICBwYWdlIGhh
cyBhIG5ldyBzY2hlZHVsZWQgbmF2aWdhdGlvbiBhbmQgd2hlbiBpdCBubyBsb25nZXIgaGFzIGEg
c2NoZWR1bGVkCisgICAgICAgIG5hdmlnYXRpb24uIFRoZXNlIGxhdHRlciB0d28gZXZlbnRzIHdv
bid0IGFsbG93IHRoZSBjbGllbnQgdG8gZGV0ZXJtaW5lIGlmCisgICAgICAgIGEgbG9hZCBpcyBn
b2luZyB0byBoYXBwZW4gaW4gYWxsIGNpcmN1bXN0YW5jZXMsIGJ1dCBpcyBzdWZmaWNpZW50IGZv
ciBtYW55IGNhc2VzLgorICAgICAgICBNYWtlIHN1cmUgd2UgaG9sZCBhIHJlZmVyZW5jZSB0byB0
aGUgZnJhbWUgaW4gTmF2aWdhdGlvblNjaGVkdWxlcjo6dGltZXJGaXJlZAorICAgICAgICBpbiBj
YXNlIHRoZSByZWRpcmVjdCBjYXVzZXMgdGhlIGZyYW1lIHRvIGJlIGRldGFjaGVkLgorCisgICAg
ICAgIEFsc28sIG1pbm9yIHVwZGF0ZSB0byBJbnNwZWN0b3JJbnB1dEFnZW50OjpkaXNwYXRjaE1v
dXNlRXZlbnQgdG8gcmVvcmRlciBwYXJhbXMKKyAgICAgICAgdG8gbWF0Y2ggZGlzcGF0Y2hLZXlF
dmVudC4KKworICAgICAgICBUZXN0czogaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTY2hl
ZHVsZWROYXZpZ2F0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci1wcm90b2NvbC9w
YWdlL2ZyYW1lU3RhcnRlZExvYWRpbmcuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcklucHV0QWdlbnQ6OmRpc3BhdGNoTW91c2VFdmVu
dCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuaDoKKyAgICAgICAg
KEluc3BlY3RvcklucHV0QWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RhcnRlZExvYWRpbmdJbXBsKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGlu
Z0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFt
ZVNjaGVkdWxlZE5hdmlnYXRpb25JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmZyYW1lU3RhcnRlZExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RvcHBlZExv
YWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFt
ZVNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclBhZ2VBZ2VudDo6ZnJhbWVTdGFydGVkTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVTdG9wcGVkTG9hZGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1lU2NoZWR1bGVk
TmF2aWdhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1l
Q2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJl
ZU1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyLnByb3RvdHlw
ZS5mcmFtZURldGFjaGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYWdlRGlzcGF0Y2hlci5w
cm90b3R5cGUuZnJhbWVTdGFydGVkTG9hZGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFn
ZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lU3RvcHBlZExvYWRpbmcpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyLnByb3RvdHlwZS5mcmFtZVNjaGVkdWxlZE5hdmlnYXRp
b24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyLnByb3RvdHlwZS5mcmFt
ZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKToKKyAgICAgICAgKiBsb2FkZXIvTmF2aWdhdGlv
blNjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uU2NoZWR1bGVyOjpj
bGVhcik6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uU2NoZWR1bGVyOjp0aW1lckZpcmVk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OnN0YXJ0VGltZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvblNjaGVkdWxlcjo6Y2FuY2VsKToKKyAgICAgICAg
KiBsb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNz
VHJhY2tlcjo6cHJvZ3Jlc3NTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzVHJh
Y2tlcjo6ZmluYWxQcm9ncmVzc0NvbXBsZXRlKToKKwogMjAxMy0wMS0yMiAgU2VyZ2lvIFZpbGxh
ciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU291cF0gUmFuZG9tIHRo
cmVhZCBjcmFzaGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXgg
ZDIyZmYwZTAyNTUxYWNlMjUzMTA3OTU3MGIwNTA2YTlmMzc4MzQxZS4uNDMxM2ViOGZhMzFiYTAx
MDg1ZWEzOWU3MDgwOTE0MWJhZjVhODZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbgpAQCAtNDk0LDYgKzQ5NCwzOSBAQAogICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImZyYW1lSWQiLCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3JpcHRpb24i
OiAiSWQgb2YgdGhlIGZyYW1lIHRoYXQgaGFzIGJlZW4gZGV0YWNoZWQuIiB9CiAgICAgICAgICAg
ICAgICAgXSwKICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQorICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJmcmFtZVN0YXJ0ZWRMb2Fk
aW5nIiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiBmcmFtZSBo
YXMgc3RhcnRlZCBsb2FkaW5nLiIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsu
RnJhbWVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgZnJhbWUgdGhhdCBoYXMgc3RhcnRl
ZCBsb2FkaW5nLiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImhpZGRl
biI6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
Im5hbWUiOiAiZnJhbWVTdG9wcGVkTG9hZGluZyIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIkZpcmVkIHdoZW4gZnJhbWUgaGFzIHN0b3BwZWQgbG9hZGluZy4iLAorICAgICAgICAg
ICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZy
YW1lSWQiLCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAiSWQgb2Yg
dGhlIGZyYW1lIHRoYXQgaGFzIHN0b3BwZWQgbG9hZGluZy4iIH0KKyAgICAgICAgICAgICAgICBd
LAorICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImZyYW1lU2NoZWR1bGVkTmF2aWdhdGlv
biIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gZnJhbWUgc2No
ZWR1bGVzIGEgcG90ZW50aWFsIG5hdmlnYXRpb24uIiwKKyAgICAgICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUlkIiwgIiRyZWYi
OiAiTmV0d29yay5GcmFtZUlkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBmcmFtZSB0aGF0
IGhhcyBzY2hlZHVsZWQgYSBuYXZpZ2F0aW9uLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJkZWxheSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJEZWxheSAo
aW4gc2Vjb25kcykgdW50aWwgdGhlIG5hdmlnYXRpb24gaXMgc2NoZWR1bGVkIHRvIGJlZ2luLiBU
aGUgbmF2aWdhdGlvbiBpcyBub3QgZ3VhcmFudGVlZCB0byBzdGFydC4iIH0KKyAgICAgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImZyYW1lQ2xlYXJlZFNjaGVk
dWxlZE5hdmlnYXRpb24iLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3
aGVuIGZyYW1lIG5vIGxvbmdlciBoYXMgYSBzY2hlZHVsZWQgbmF2aWdhdGlvbi4iLAorICAgICAg
ICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImZyYW1lSWQiLCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAiSWQg
b2YgdGhlIGZyYW1lIHRoYXQgaGFzIGNsZWFyZWQgaXRzIHNjaGVkdWxlZCBuYXZpZ2F0aW9uLiIg
fQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKICAg
ICAgICAgICAgIH0KICAgICAgICAgXQogICAgIH0sCkBAIC0zMzYzLDEwICszMzk2LDEwIEBACiAg
ICAgICAgICAgICAgICAgIm5hbWUiOiAiZGlzcGF0Y2hNb3VzZUV2ZW50IiwKICAgICAgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBl
IiwgInR5cGUiOiAic3RyaW5nIiwgImVudW0iOiBbIm1vdXNlUHJlc3NlZCIsICJtb3VzZVJlbGVh
c2VkIiwgIm1vdXNlTW92ZWQiXSwgImRlc2NyaXB0aW9uIjogIlR5cGUgb2YgdGhlIG1vdXNlIGV2
ZW50LiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ4IiwgInR5cGUiOiAiaW50
ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJYIGNvb3JkaW5hdGUgb2YgdGhlIGV2ZW50IHJlbGF0aXZl
IHRvIHRoZSBtYWluIGZyYW1lJ3Mgdmlld3BvcnQuIn0sCi0gICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAieSIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiWSBjb29yZGlu
YXRlIG9mIHRoZSBldmVudCByZWxhdGl2ZSB0byB0aGUgbWFpbiBmcmFtZSdzIHZpZXdwb3J0LiAw
IHJlZmVycyB0byB0aGUgdG9wIG9mIHRoZSB2aWV3cG9ydCBhbmQgWSBpbmNyZWFzZXMgYXMgaXQg
cHJvY2VlZHMgdG93YXJkcyB0aGUgYm90dG9tIG9mIHRoZSB2aWV3cG9ydC4ifSwKICAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJtb2RpZmllcnMiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkJpdCBmaWVsZCByZXByZXNlbnRpbmcgcHJl
c3NlZCBtb2RpZmllciBrZXlzLiBBbHQ9MSwgQ3RybD0yLCBNZXRhL0NvbW1hbmQ9NCwgU2hpZnQ9
OCAoZGVmYXVsdDogMCkuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRpbWVz
dGFtcCIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6
ICJUaW1lIGF0IHdoaWNoIHRoZSBldmVudCBvY2N1cnJlZC4gTWVhc3VyZWQgaW4gVVRDIHRpbWUg
aW4gc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAgKGRlZmF1bHQ6IGN1cnJlbnQgdGltZSku
IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIngiLCAidHlwZSI6ICJpbnRlZ2Vy
IiwgImRlc2NyaXB0aW9uIjogIlggY29vcmRpbmF0ZSBvZiB0aGUgZXZlbnQgcmVsYXRpdmUgdG8g
dGhlIG1haW4gZnJhbWUncyB2aWV3cG9ydC4ifSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJ5IiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJZIGNvb3JkaW5hdGUg
b2YgdGhlIGV2ZW50IHJlbGF0aXZlIHRvIHRoZSBtYWluIGZyYW1lJ3Mgdmlld3BvcnQuIDAgcmVm
ZXJzIHRvIHRoZSB0b3Agb2YgdGhlIHZpZXdwb3J0IGFuZCBZIGluY3JlYXNlcyBhcyBpdCBwcm9j
ZWVkcyB0b3dhcmRzIHRoZSBib3R0b20gb2YgdGhlIHZpZXdwb3J0LiJ9LAogICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImJ1dHRvbiIsICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJu
b25lIiwgImxlZnQiLCAibWlkZGxlIiwgInJpZ2h0Il0sICJvcHRpb25hbCI6IHRydWUsICJkZXNj
cmlwdGlvbiI6ICJNb3VzZSBidXR0b24gKGRlZmF1bHQ6IFwibm9uZVwiKS4iIH0sCiAgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2xpY2tDb3VudCIsICJ0eXBlIjogImludGVnZXIiLCAi
b3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHRpbWVzIHRoZSBtb3Vz
ZSBidXR0b24gd2FzIGNsaWNrZWQgKGRlZmF1bHQ6IDApLiIgfQogICAgICAgICAgICAgICAgIF0s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5jcHAK
aW5kZXggYzMwZTM2YjQ1OWEwMWUwZTcxYWE3MmNjNzg3ZjFhNzgzZDc3ZmUxNy4uYzhmMDFmNTdh
NGNjNjcyMjZjZjM5ZTFmZmNkMTk1ZjdmNmZlMjg4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmNwcApAQCAtOTMsNyArOTMsNyBAQCB2b2lk
IEluc3BlY3RvcklucHV0QWdlbnQ6OmRpc3BhdGNoS2V5RXZlbnQoRXJyb3JTdHJpbmcqIGVycm9y
LCBjb25zdCBTdHJpbmcmIHR5cAogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPmV2ZW50SGFuZGxl
cigpLT5rZXlFdmVudChldmVudCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5wdXRBZ2VudDo6ZGlz
cGF0Y2hNb3VzZUV2ZW50KEVycm9yU3RyaW5nKiBlcnJvciwgY29uc3QgU3RyaW5nJiB0eXBlLCBp
bnQgeCwgaW50IHksIGNvbnN0IGludCogbW9kaWZpZXJzLCBjb25zdCBkb3VibGUqIHRpbWVzdGFt
cCwgY29uc3QgU3RyaW5nKiBidXR0b24sIGNvbnN0IGludCogY2xpY2tDb3VudCkKK3ZvaWQgSW5z
cGVjdG9ySW5wdXRBZ2VudDo6ZGlzcGF0Y2hNb3VzZUV2ZW50KEVycm9yU3RyaW5nKiBlcnJvciwg
Y29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBpbnQqIG1vZGlmaWVycywgY29uc3QgZG91YmxlKiB0
aW1lc3RhbXAsIGludCB4LCBpbnQgeSwgY29uc3QgU3RyaW5nKiBidXR0b24sIGNvbnN0IGludCog
Y2xpY2tDb3VudCkKIHsKICAgICBQbGF0Zm9ybUV2ZW50OjpUeXBlIGNvbnZlcnRlZFR5cGU7CiAg
ICAgaWYgKHR5cGUgPT0gIm1vdXNlUHJlc3NlZCIpCkBAIC0xMDcsNiArMTA3LDggQEAgdm9pZCBJ
bnNwZWN0b3JJbnB1dEFnZW50OjpkaXNwYXRjaE1vdXNlRXZlbnQoRXJyb3JTdHJpbmcqIGVycm9y
LCBjb25zdCBTdHJpbmcmIHQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGludCBjb252
ZXJ0ZWRNb2RpZmllcnMgPSBtb2RpZmllcnMgPyAqbW9kaWZpZXJzIDogMDsKKwogICAgIE1vdXNl
QnV0dG9uIGNvbnZlcnRlZEJ1dHRvbiA9IE5vQnV0dG9uOwogICAgIGlmIChidXR0b24pIHsKICAg
ICAgICAgaWYgKCpidXR0b24gPT0gImxlZnQiKQpAQCAtMTI1LDcgKzEyNyw3IEBAIHZvaWQgSW5z
cGVjdG9ySW5wdXRBZ2VudDo6ZGlzcGF0Y2hNb3VzZUV2ZW50KEVycm9yU3RyaW5nKiBlcnJvciwg
Y29uc3QgU3RyaW5nJiB0CiAgICAgLy8gYXNzdW1lIHRoZSBvcmlnaW4gaXMgaW4gdGhlIHRvcC1s
ZWZ0IG9mIHRoZSB3aW5kb3cuIENvbnZlcnQuCiAgICAgSW50UG9pbnQgY29udmVydGVkUG9pbnQg
PSBtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCktPmNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3co
SW50UG9pbnQoeCwgeSkpOwogICAgIEludFBvaW50IGdsb2JhbFBvaW50ID0gbV9wYWdlLT5jaHJv
bWUoKS0+cm9vdFZpZXdUb1NjcmVlbihJbnRSZWN0KEludFBvaW50KHgsIHkpLCBJbnRTaXplKDAs
IDApKSkubG9jYXRpb24oKTsKLSAgICBpbnQgY29udmVydGVkTW9kaWZpZXJzID0gbW9kaWZpZXJz
ID8gKm1vZGlmaWVycyA6IDA7CisKICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoCiAgICAg
ICAgIGNvbnZlcnRlZFBvaW50LAogICAgICAgICBnbG9iYWxQb2ludCwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5oCmluZGV4IDMyNmJlNzYzMDQyMzY2
ZTBkNjE1OGNjODAyMDI1ODA3NzE4YmMzMTYuLjM3MWJlMDQ1MjIzMzM5YmU2ODgyYzY3NGU0MGM5
OTQwM2Y3MGUxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnB1dEFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
cHV0QWdlbnQuaApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBNZXRob2RzIGNh
bGxlZCBmcm9tIHRoZSBmcm9udGVuZCBmb3Igc2ltdWxhdGluZyBpbnB1dC4KICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hLZXlFdmVudChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdHlwZSwg
Y29uc3QgaW50KiBtb2RpZmllcnMsIGNvbnN0IGRvdWJsZSogdGltZXN0YW1wLCBjb25zdCBTdHJp
bmcqIHRleHQsIGNvbnN0IFN0cmluZyogdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyoga2V5
SWRlbnRpZmllciwgY29uc3QgaW50KiB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGNvbnN0IGludCog
bmF0aXZlVmlydHVhbEtleUNvZGUsIGNvbnN0IGludCogbWFjQ2hhckNvZGUsIGNvbnN0IGJvb2wq
IGF1dG9SZXBlYXQsIGNvbnN0IGJvb2wqIGlzS2V5cGFkLCBjb25zdCBib29sKiBpc1N5c3RlbUtl
eSk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTW91c2VFdmVudChFcnJvclN0cmluZyosIGNv
bnN0IFN0cmluZyYgdHlwZSwgaW50IHgsIGludCB5LCBjb25zdCBpbnQqIG1vZGlmaWVycywgY29u
c3QgZG91YmxlKiB0aW1lc3RhbXAsIGNvbnN0IFN0cmluZyogYnV0dG9uLCBjb25zdCBpbnQqIGNs
aWNrQ291bnQpOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaE1vdXNlRXZlbnQoRXJyb3JTdHJp
bmcqLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IGludCogbW9kaWZpZXJzLCBjb25zdCBkb3Vi
bGUqIHRpbWVzdGFtcCwgaW50IHgsIGludCB5LCBjb25zdCBTdHJpbmcqIGJ1dHRvbiwgY29uc3Qg
aW50KiBjbGlja0NvdW50KTsKIAogcHJpdmF0ZToKICAgICBJbnNwZWN0b3JJbnB1dEFnZW50KElu
c3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIFBhZ2UqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHAKaW5kZXggZThkYTRmYmJiYmE0ZDdmNjQ5NzI5MDBkMTIwZDZiYmMxYTc0NTE2MC4uM2Ex
ZTc5ZDllODM0ZTU0ZTFiNmJmODFkYTJlNjhjZWY3OGVkZDYzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTk1
MSw2ICs5NTEsMzAgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvYWRlckRldGFj
aGVkRnJvbUZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKgogICAgICAgICBpbnNwZWN0b3JQ
YWdlQWdlbnQtPmxvYWRlckRldGFjaGVkRnJvbUZyYW1lKGxvYWRlcik7CiB9CiAKK3ZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVN0YXJ0ZWRMb2FkaW5nSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSogZnJhbWUpCit7CisgICAgaWYg
KEluc3BlY3RvclBhZ2VBZ2VudCogaW5zcGVjdG9yUGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIGluc3BlY3RvclBhZ2VBZ2VudC0+
ZnJhbWVTdGFydGVkTG9hZGluZyhmcmFtZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpmcmFtZVN0b3BwZWRMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBGcmFtZSogZnJhbWUpCit7CisgICAgaWYgKEluc3BlY3RvclBhZ2VB
Z2VudCogaW5zcGVjdG9yUGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9y
UGFnZUFnZW50KCkpCisgICAgICAgIGluc3BlY3RvclBhZ2VBZ2VudC0+ZnJhbWVTdG9wcGVkTG9h
ZGluZyhmcmFtZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVNj
aGVkdWxlZE5hdmlnYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIEZyYW1lKiBmcmFtZSwgZG91YmxlIGRlbGF5KQoreworICAgIGlmIChJbnNwZWN0b3JQ
YWdlQWdlbnQqIGluc3BlY3RvclBhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3Bl
Y3RvclBhZ2VBZ2VudCgpKQorICAgICAgICBpbnNwZWN0b3JQYWdlQWdlbnQtPmZyYW1lU2NoZWR1
bGVkTmF2aWdhdGlvbihmcmFtZSwgZGVsYXkpOworfQorCit2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUqIGZyYW1lKQoreworICAgIGlmIChJ
bnNwZWN0b3JQYWdlQWdlbnQqIGluc3BlY3RvclBhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQorICAgICAgICBpbnNwZWN0b3JQYWdlQWdlbnQtPmZy
YW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24oZnJhbWUpOworfQorCiB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lDYWNoZWRSZXNvdXJjZUltcGwoQ2FjaGVkUmVz
b3VyY2UqIGNhY2hlZFJlc291cmNlKQogewogICAgIGlmICghaW5zdHJ1bWVudGluZ0FnZW50c1Nl
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaAppbmRleCA4ODY2MzU0MGRjNjdhY2I4M2EzZWZhMTYxMDIyZTEzNGZjMjdlZTAyLi4z
MWJmN2U5YWJiZjFjN2I4NTEzZjA5MGQ1YWJjZGY0YTI1MmMwYmI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0yMTEs
NiArMjExLDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBmcmFtZURldGFjaGVkRnJvbVBh
cmVudChGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIGRpZENvbW1pdExvYWQoRnJhbWUqLCBEb2N1
bWVudExvYWRlciopOwogICAgIHN0YXRpYyB2b2lkIGxvYWRlckRldGFjaGVkRnJvbUZyYW1lKEZy
YW1lKiwgRG9jdW1lbnRMb2FkZXIqKTsKKyAgICBzdGF0aWMgdm9pZCBmcmFtZVN0YXJ0ZWRMb2Fk
aW5nKEZyYW1lKik7CisgICAgc3RhdGljIHZvaWQgZnJhbWVTdG9wcGVkTG9hZGluZyhGcmFtZSop
OworICAgIHN0YXRpYyB2b2lkIGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSosIGRvdWJs
ZSBkZWxheSk7CisgICAgc3RhdGljIHZvaWQgZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlv
bihGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95Q2FjaGVkUmVzb3VyY2UoQ2Fj
aGVkUmVzb3VyY2UqKTsKIAogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUgd2lsbFdyaXRlSFRNTChEb2N1bWVudCosIHVuc2lnbmVkIGludCBsZW5ndGgsIHVuc2lnbmVk
IGludCBzdGFydExpbmUpOwpAQCAtNDEwLDYgKzQxNCwxMCBAQCBwcml2YXRlOgogICAgIHN0YXRp
YyB2b2lkIGZyYW1lRGV0YWNoZWRGcm9tUGFyZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwg
RnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDb21taXRMb2FkSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgUGFnZSosIERvY3VtZW50TG9hZGVyKik7CiAgICAgc3RhdGljIHZvaWQgbG9hZGVy
RGV0YWNoZWRGcm9tRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBEb2N1bWVudExvYWRl
ciopOworICAgIHN0YXRpYyB2b2lkIGZyYW1lU3RhcnRlZExvYWRpbmdJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMqLCBGcmFtZSopOworICAgIHN0YXRpYyB2b2lkIGZyYW1lU3RvcHBlZExvYWRpbmdJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSopOworICAgIHN0YXRpYyB2b2lkIGZyYW1l
U2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKiwgZG91
YmxlIGRlbGF5KTsKKyAgICBzdGF0aWMgdm9pZCBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0
aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCB3
aWxsRGVzdHJveUNhY2hlZFJlc291cmNlSW1wbChDYWNoZWRSZXNvdXJjZSopOwogCiAgICAgc3Rh
dGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsV3JpdGVIVE1MSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0
TGluZSwgRnJhbWUqKTsKQEAgLTE2NzIsNiArMTY4MCwzOCBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmxvYWRlckRldGFjaGVkRnJvbUZyYW1lKEZyYW1lKiBmcmFtZSwg
RG9jdQogI2VuZGlmCiB9CiAKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZnJhbWVTdGFydGVkTG9hZGluZyhGcmFtZSogZnJhbWUpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RP
UikKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGlu
c3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCisgICAgICAgIGZyYW1lU3RhcnRlZExv
YWRpbmdJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGZyYW1lKTsKKyNlbmRpZgorfQorCitpbmxp
bmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RvcHBlZExvYWRpbmcoRnJh
bWUqIGZyYW1lKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJh
bWUoZnJhbWUpKQorICAgICAgICBmcmFtZVN0b3BwZWRMb2FkaW5nSW1wbChpbnN0cnVtZW50aW5n
QWdlbnRzLCBmcmFtZSk7CisjZW5kaWYKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqIGZyYW1lLCBkb3VibGUg
ZGVsYXkpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShm
cmFtZSkpCisgICAgICAgIGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoaW5zdHJ1bWVudGlu
Z0FnZW50cywgZnJhbWUsIGRlbGF5KTsKKyNlbmRpZgorfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24oRnJhbWUq
IGZyYW1lKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUo
ZnJhbWUpKQorICAgICAgICBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uSW1wbChpbnN0
cnVtZW50aW5nQWdlbnRzLCBmcmFtZSk7CisjZW5kaWYKK30KKwogaW5saW5lIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291
cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCAxMDQyMjJk
OTA5NTliNWMwMzZmMDA3OWNmN2M0YjE2NTI5MzdjZDg1Li5jNDdiNWUyYzViNjQxZGM3YTc5NDBm
YmRiZDQwYzQ1MzZiNzdlNjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUGFnZUFnZW50LmNwcApAQCAtOTAwLDYgKzkwMCwyNiBAQCB2b2lkIEluc3BlY3RvclBh
Z2VBZ2VudDo6bG9hZGVyRGV0YWNoZWRGcm9tRnJhbWUoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikK
ICAgICAgICAgbV9sb2FkZXJUb0lkZW50aWZpZXIucmVtb3ZlKGl0ZXJhdG9yKTsKIH0KIAordm9p
ZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1lU3RhcnRlZExvYWRpbmcoRnJhbWUqIGZyYW1lKQor
eworICAgIG1fZnJvbnRlbmQtPmZyYW1lU3RhcnRlZExvYWRpbmcoZnJhbWVJZChmcmFtZSkpOwor
fQorCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVTdG9wcGVkTG9hZGluZyhGcmFtZSog
ZnJhbWUpCit7CisgICAgbV9mcm9udGVuZC0+ZnJhbWVTdG9wcGVkTG9hZGluZyhmcmFtZUlkKGZy
YW1lKSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZVNjaGVkdWxlZE5hdmln
YXRpb24oRnJhbWUqIGZyYW1lLCBkb3VibGUgZGVsYXkpCit7CisgICAgbV9mcm9udGVuZC0+ZnJh
bWVTY2hlZHVsZWROYXZpZ2F0aW9uKGZyYW1lSWQoZnJhbWUpLCBkZWxheSk7Cit9CisKK3ZvaWQg
SW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1l
KiBmcmFtZSkKK3sKKyAgICBtX2Zyb250ZW5kLT5mcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0
aW9uKGZyYW1lSWQoZnJhbWUpKTsKK30KKwogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmFwcGx5
U2NyZWVuV2lkdGhPdmVycmlkZShsb25nKiB3aWR0aCkKIHsKICAgICBsb25nIHdpZHRoT3ZlcnJp
ZGUgPSBtX3N0YXRlLT5nZXRMb25nKFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRTY3JlZW5XaWR0
aE92ZXJyaWRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuaAppbmRleCAyN2YxZTBhNTBkMTM4MWFkZWZhNWU4ZWI1Mzc4YWNmNWRiNjBlZmFmLi45NzNl
MTVjMmFmNmE3NjE2OGU3ZTUyOWM1M2U2Y2Q3ZDA0MTRmOGU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0xMzgsNiArMTM4LDEwIEBAIHB1
YmxpYzoKICAgICB2b2lkIGZyYW1lTmF2aWdhdGVkKERvY3VtZW50TG9hZGVyKik7CiAgICAgdm9p
ZCBmcmFtZURldGFjaGVkKEZyYW1lKik7CiAgICAgdm9pZCBsb2FkZXJEZXRhY2hlZEZyb21GcmFt
ZShEb2N1bWVudExvYWRlciopOworICAgIHZvaWQgZnJhbWVTdGFydGVkTG9hZGluZyhGcmFtZSop
OworICAgIHZvaWQgZnJhbWVTdG9wcGVkTG9hZGluZyhGcmFtZSopOworICAgIHZvaWQgZnJhbWVT
Y2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKiwgZG91YmxlIGRlbGF5KTsKKyAgICB2b2lkIGZyYW1l
Q2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqKTsKICAgICB2b2lkIGFwcGx5U2NyZWVu
V2lkdGhPdmVycmlkZShsb25nKik7CiAgICAgdm9pZCBhcHBseVNjcmVlbkhlaWdodE92ZXJyaWRl
KGxvbmcqKTsKICAgICB2b2lkIGFwcGx5RW11bGF0ZWRNZWRpYShTdHJpbmcqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVs
LmpzCmluZGV4IDg2ZWRmNGYzOTdiZmJlODVjMzQ1MTM0Nzc5NzA1M2Q1ZDc2MDljODUuLjBhODc2
ZWJmYzNiYmQzZmM5NGJmMTFhNDEwZThhM2M5NWJkMzU5N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qcwpAQCAt
NjAxLDYgKzYwMSwxOCBAQCBXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlID0g
ewogICAgIGZyYW1lRGV0YWNoZWQ6IGZ1bmN0aW9uKGZyYW1lSWQpCiAgICAgewogICAgICAgICB0
aGlzLl9yZXNvdXJjZVRyZWVNb2RlbC5fZnJhbWVEZXRhY2hlZChmcmFtZUlkKTsKKyAgICB9LAor
CisgICAgZnJhbWVTdGFydGVkTG9hZGluZzogZnVuY3Rpb24oZnJhbWVJZCkgeworICAgIH0sCisK
KyAgICBmcmFtZVN0b3BwZWRMb2FkaW5nOiBmdW5jdGlvbihmcmFtZUlkKSB7CisgICAgfSwKKwor
ICAgIGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbjogZnVuY3Rpb24oZnJhbWVJZCwgZGVsYXkpIHsK
KyAgICB9LAorCisgICAgZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbjogZnVuY3Rpb24o
ZnJhbWVJZCkgewogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L05hdmlnYXRpb25TY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25TY2hlZHVsZXIuY3BwCmluZGV4IGFjYmViNzg5NWUwN2ZmZGRmOTQ4NDNlNzQ5MWZmYzY4OGUx
ZDNkMmIuLmY4MDQ5ODhmYjJlOTBmNmEzY2VkOWFlZmVhOGVhN2JkMTMyYTgzNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKQEAgLTQ1LDYgKzQ1
LDcgQEAKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRnJhbWVP
d25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgorI2luY2x1ZGUgIkluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJVc2Vy
R2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtMjg2
LDYgKzI4Nyw4IEBAIGJvb2wgTmF2aWdhdGlvblNjaGVkdWxlcjo6bG9jYXRpb25DaGFuZ2VQZW5k
aW5nKCkKIAogdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpjbGVhcigpCiB7CisgICAgaWYgKG1f
dGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFt
ZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKG1fZnJhbWUpOwogICAgIG1fdGltZXIuc3RvcCgp
OwogICAgIG1fcmVkaXJlY3QuY2xlYXIoKTsKIH0KQEAgLTQxMSwxMSArNDE0LDE2IEBAIHZvaWQg
TmF2aWdhdGlvblNjaGVkdWxlcjo6dGltZXJGaXJlZChUaW1lcjxOYXZpZ2F0aW9uU2NoZWR1bGVy
PiopCiB7CiAgICAgaWYgKCFtX2ZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBp
ZiAobV9mcmFtZS0+cGFnZSgpLT5kZWZlcnNMb2FkaW5nKCkpCisgICAgaWYgKG1fZnJhbWUtPnBh
Z2UoKS0+ZGVmZXJzTG9hZGluZygpKSB7CisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihtX2ZyYW1lKTsKICAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIFJlZlB0cjxGcmFtZT4gcHJvdGVjdChtX2ZyYW1lKTsKIAogICAg
IE93blB0cjxTY2hlZHVsZWROYXZpZ2F0aW9uPiByZWRpcmVjdChtX3JlZGlyZWN0LnJlbGVhc2Uo
KSk7CiAgICAgcmVkaXJlY3QtPmZpcmUobV9mcmFtZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKG1fZnJhbWUpOwogfQogCiB2
b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlKFBhc3NPd25QdHI8U2NoZWR1bGVkTmF2
aWdhdGlvbj4gcmVkaXJlY3QpCkBAIC00NTgsMTAgKzQ2NiwxMyBAQCB2b2lkIE5hdmlnYXRpb25T
Y2hlZHVsZXI6OnN0YXJ0VGltZXIoKQogCiAgICAgbV90aW1lci5zdGFydE9uZVNob3QobV9yZWRp
cmVjdC0+ZGVsYXkoKSk7CiAgICAgbV9yZWRpcmVjdC0+ZGlkU3RhcnRUaW1lcihtX2ZyYW1lLCAm
bV90aW1lcik7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZVNjaGVkdWxlZE5h
dmlnYXRpb24obV9mcmFtZSwgbV9yZWRpcmVjdC0+ZGVsYXkoKSk7CiB9CiAKIHZvaWQgTmF2aWdh
dGlvblNjaGVkdWxlcjo6Y2FuY2VsKGJvb2wgbmV3TG9hZEluUHJvZ3Jlc3MpCiB7CisgICAgaWYg
KG1fdGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpm
cmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKG1fZnJhbWUpOwogICAgIG1fdGltZXIuc3Rv
cCgpOwogCiAgICAgT3duUHRyPFNjaGVkdWxlZE5hdmlnYXRpb24+IHJlZGlyZWN0KG1fcmVkaXJl
Y3QucmVsZWFzZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVz
c1RyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAK
aW5kZXggNGYyYjdlY2QzN2UyNmRmYWRjYmI1YjZiNWZkOTVmMjZlMWRmNWIyYy4uOTIzODhlYzA1
MjZjNDBjODgxYzk1ZGE0ZWIxN2U1MzNkNmJkOWQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Byb2dyZXNzVHJhY2tlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJGcmFtZUxv
YWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTEyMCw2ICsxMjEsNyBAQCB2b2lkIFBy
b2dyZXNzVHJhY2tlcjo6cHJvZ3Jlc3NTdGFydGVkKEZyYW1lKiBmcmFtZSkKICAgICBtX251bVBy
b2dyZXNzVHJhY2tlZEZyYW1lcysrOwogCiAgICAgZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+
ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmZyYW1lU3RhcnRlZExvYWRpbmcoZnJhbWUpOwogfQogCiB2b2lkIFByb2dyZXNzVHJhY2tl
cjo6cHJvZ3Jlc3NDb21wbGV0ZWQoRnJhbWUqIGZyYW1lKQpAQCAtMTU1LDYgKzE1Nyw3IEBAIHZv
aWQgUHJvZ3Jlc3NUcmFja2VyOjpmaW5hbFByb2dyZXNzQ29tcGxldGUoKQogCiAgICAgZnJhbWUt
PmxvYWRlcigpLT5jbGllbnQoKS0+c2V0TWFpbkZyYW1lRG9jdW1lbnRSZWFkeSh0cnVlKTsKICAg
ICBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5wb3N0UHJvZ3Jlc3NGaW5pc2hlZE5vdGlmaWNh
dGlvbigpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVTdG9wcGVkTG9hZGlu
ZyhmcmFtZS5nZXQoKSk7CiB9CiAKIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjppbmNyZW1lbnRQcm9n
cmVzcyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDg0ODA5NzA2NDNhZjE3OGRhMmYxYjkwYzZkOTEyYWE3MmU5YzhlNTMu
LjZjZTUwZTZiNDdmNDhlZjUyYmQwMWM1ZTAyYzZjYWQ0NzU4YjAzNTYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyOSBAQAorMjAxMy0wMS0yMiAgS2VuIEthbmlhICA8a2thbmlhQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBbSW5zcGVjdG9yXSBBZGQgZXZlbnRzIGZvciB0cmFja2luZyBwYWdlIGxvYWRzIGFu
ZCBzY2hlZHVsZWQgbmF2aWdhdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDQxNjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGVzZSBldmVudHMgYXJlIG5lZWRlZCBmb3IgY2xpZW50cyB3aG8g
bmVlZCB0byBiZSBhd2FyZSBvZiB3aGVuIGEgcGFnZSBpcworICAgICAgICBuYXZpZ2F0aW5nIG9y
IGFib3V0IHRvIG5hdmlnYXRlLiBTb21lIGNsaWVudHMgbWF5IHdpc2ggdG8gcHJldmVudCBpbnRl
cmFjdGlvbgorICAgICAgICB3aXRoIHRoZSBwYWdlIGR1cmluZyB0aGlzIHRpbWUuIFR3byBvZiB0
aGUgbmV3IGV2ZW50cyB0cmFjayBsb2FkaW5nIHN0YXJ0IGFuZAorICAgICAgICBzdG9wLCBhcyBt
ZWFzdXJlZCBieSB0aGUgUHJvZ3Jlc3NUcmFja2VyLiBUaGUgb3RoZXIgdHdvIGV2ZW50cyB0cmFj
ayB3aGVuIGEKKyAgICAgICAgcGFnZSBoYXMgYSBuZXcgc2NoZWR1bGVkIG5hdmlnYXRpb24gYW5k
IHdoZW4gaXQgbm8gbG9uZ2VyIGhhcyBhIHNjaGVkdWxlZAorICAgICAgICBuYXZpZ2F0aW9uLiBU
aGVzZSBsYXR0ZXIgdHdvIGV2ZW50cyB3b24ndCBhbGxvdyB0aGUgY2xpZW50IHRvIGRldGVybWlu
ZSBpZgorICAgICAgICBhIGxvYWQgaXMgZ29pbmcgdG8gaGFwcGVuIGluIGFsbCBjaXJjdW1zdGFu
Y2VzLCBidXQgaXMgc3VmZmljaWVudCBmb3IgbWFueSBjYXNlcy4KKyAgICAgICAgTWFrZSBzdXJl
IHdlIGhvbGQgYSByZWZlcmVuY2UgdG8gdGhlIGZyYW1lIGluIE5hdmlnYXRpb25TY2hlZHVsZXI6
OnRpbWVyRmlyZWQKKyAgICAgICAgaW4gY2FzZSB0aGUgcmVkaXJlY3QgY2F1c2VzIHRoZSBmcmFt
ZSB0byBiZSBkZXRhY2hlZC4KKworICAgICAgICBBbHNvLCBtaW5vciB1cGRhdGUgdG8gSW5zcGVj
dG9ySW5wdXRBZ2VudDo6ZGlzcGF0Y2hNb3VzZUV2ZW50IHRvIHJlb3JkZXIgcGFyYW1zCisgICAg
ICAgIHRvIG1hdGNoIGRpc3BhdGNoS2V5RXZlbnQuCisKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJv
dG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRp
b24uaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVT
dGFydGVkTG9hZGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci1w
cm90b2NvbC9wYWdlL2ZyYW1lU3RhcnRlZExvYWRpbmcuaHRtbDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMy0wMS0yMiAgU2hlcmlm
ZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjE0MDQzNS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRp
b24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmZjAxZDhhMGJlOTJlN2ZkNDNiZmU4YjQ3N2Rl
Yzk0YTM4M2E0MjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorCitTY2hlZHVsZWQgbmF2aWdhdGlvbiB3aXRoIGRlbGF5IDAKK1N0YXJ0ZWQgbG9h
ZGluZworQ2xlYXJlZCBzY2hlZHVsZWQgbmF2aWdhdGlvbgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2
aWdhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0MjdjYmU3ZDU5MzA3MjI5OTlkYWUyYjVkMzk4M2Rj
NDFiMjAxNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRtbApAQCAtMCwwICsxLDQzIEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gbG9hZCgpCit7CisgICAgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigiaWZyYW1lIikuc3JjID0gIi4uL3Jlc291cmNlcy9ibGFuay5odG1sIjsK
K30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJb
IlBhZ2UuZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uIl0gPSBvblNjaGVkdWxlZDsKKyAgICBJbnNw
ZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5mcmFtZVN0YXJ0ZWRMb2FkaW5nIl0gPSBvblN0
YXJ0ZWQ7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIlBhZ2UuZnJhbWVDbGVhcmVk
U2NoZWR1bGVkTmF2aWdhdGlvbiJdID0gb25DbGVhcmVkOworICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIlBhZ2UuZW5hYmxlIiwge30pOworCisgICAgZnVuY3Rpb24gb25TY2hlZHVsZWQo
bXNnKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlNjaGVkdWxlZCBuYXZpZ2F0
aW9uIHdpdGggZGVsYXkgIiArIG1zZy5wYXJhbXMuZGVsYXkpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIG9uU3RhcnRlZChtc2cpCisgICAgeworICAgICAgICAvLyBUaGlzIGV2ZW50IHNob3VsZCBi
ZSByZWNlaXZlZCBiZWZvcmUgdGhlIHNjaGVkdWxlZCBuYXZpZ2F0aW9uIGlzIGNsZWFyZWQuCisg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJTdGFydGVkIGxvYWRpbmciKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBvbkNsZWFyZWQobXNnKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkNsZWFyZWQgc2NoZWR1bGVkIG5hdmlnYXRpb24iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJSdW50aW1lLmV2YWx1YXRlIiwgeyAiZXhwcmVzc2lvbiI6ICJsb2FkKCkiIH0pOworfQorCis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxpZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU3RhcnRlZExvYWRpbmctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU2MGVmNTdjMzg2MGMxMmZjMzIwYmRkYWQ5OTRkM2ZkYTJmYTRkYTkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVN0
YXJ0ZWRMb2FkaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworU3RhcnRlZCBsb2Fk
aW5nCitTdG9wcGVkIGxvYWRpbmcKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc1NzFiYzZlNmNmOTViYTdkMjc3YTAyNGZiYmViMDY2NjliZDk0NGUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2Fk
aW5nLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0
aW9uIGxvYWQoKQoreworICAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlm
cmFtZSIpOworICAgIGZyYW1lLnNyYyA9ICIuLi9yZXNvdXJjZXMvYmxhbmsuaHRtbCI7CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQor
eworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQYWdlLmZyYW1lU3RhcnRlZExvYWRp
bmciXSA9IG9uU3RhcnQ7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIlBhZ2UuZnJh
bWVTdG9wcGVkTG9hZGluZyJdID0gb25TdG9wOworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIlBhZ2UuZW5hYmxlIiwge30pOworCisgICAgZnVuY3Rpb24gb25TdGFydCgpCisgICAgewor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU3RhcnRlZCBsb2FkaW5nIik7CisgICAgfQorICAg
IGZ1bmN0aW9uIG9uU3RvcCgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU3Rv
cHBlZCBsb2FkaW5nIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Cisg
ICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIs
IHsgImV4cHJlc3Npb24iOiAibG9hZCgpIiB9KTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjOWY4ZDFlNWQ3NDU4
YmNhN2E5ZDYxMTllZWRhNWEyZmViMGYwZjhlLi42YzAyNjA0ZGUyYzRmZDVhMGU4YTE0ZDAyMzRl
ZDc2MzNiZWYzNjY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTQzMDIsMTEgKzQzMDIsNiBAQCB3ZWJraXQub3JnL2IvMTA2ODU4IFsg
TGludXggV2luIERlYnVnIF0gc2Nyb2xsaW5nY29vcmRpbmF0b3Ivbm9uLWZhc3Qtc2Nyb2xsYWJs
ZQogd2Via2l0Lm9yZy9iLzEwNjg1OCBbIE1hYyBEZWJ1ZyBdIHNjcm9sbGluZ2Nvb3JkaW5hdG9y
L25vbi1mYXN0LXNjcm9sbGFibGUtcmVnaW9uLXNjYWxlZC1pZnJhbWUuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEwNjg1OCBbIExpbnV4IFdpbiBEZWJ1ZyBdIHNjcm9s
bGluZ2Nvb3JkaW5hdG9yL25vbi1mYXN0LXNjcm9sbGFibGUtcmVnaW9uLXNjYWxlZC1pZnJhbWUu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgUGFzcyBdCiAKLXdlYmtpdC5vcmcvYi8xMDcwMzMgWyBE
ZWJ1ZyBdIGZhc3QvZnJhbWVzL3ZhbGlkLmh0bWwgWyBDcmFzaCBdCi13ZWJraXQub3JnL2IvMTA3
MDMzIFsgRGVidWcgXSBmYXN0L2V2ZW50cy9mb3JtLWlmcmFtZS10YXJnZXQtYmVmb3JlLWxvYWQt
Y3Jhc2guaHRtbCBbIENyYXNoIF0KLXdlYmtpdC5vcmcvYi8xMDcwMzMgWyBEZWJ1ZyBdIGZhc3Qv
ZXZlbnRzL2JlZm9yZS11bmxvYWQtd2l0aC1zdWJmcmFtZXMuaHRtbCBbIENyYXNoIF0KLXdlYmtp
dC5vcmcvYi8xMDcwMzMgWyBEZWJ1ZyBdIGZhc3QvY3NzL3N0eWxlc2hlZXQtZW5hYmxlLWZpcnN0
LWFsdGVybmF0ZS1saW5rLmh0bWwgWyBDcmFzaCBdCi0KICMgTmVlZHMgcmViYXNlbGluZS4KIHdl
YmtpdC5vcmcvYi8xMDU1NzQgZWRpdGluZy9pbnB1dC9jYXJldC1hdC10aGUtZWRnZS1vZi1jb250
ZW50ZWRpdGFibGUuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEwNTU3NCBlZGl0aW5n
L2lucHV0L3JldmVhbC1jYXJldC1vZi1tdWx0aWxpbmUtY29udGVudGVkaXRhYmxlLmh0bWwgWyBG
YWlsdXJlIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>