<?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>130767</bug_id>
          
          <creation_ts>2014-03-25 23:48:53 -0700</creation_ts>
          <short_desc>Don&apos;t handle IPC messages in event tracking run loop mode</short_desc>
          <delta_ts>2014-06-04 03:30:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>130869</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>bunhere</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>994503</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-03-25 23:48:53 -0700</bug_when>
    <thetext>In MiniBrowser, hit Command-Option-N quickly several times, and hit an assertion:

ASSERT(!_data-&gt;_keyDownEventBeingResent);

What happens here is that -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] calls _NSUnhighlightCarbonMenu(), which spins the run loop in NSEventTrackingRunLoopMode. And given that our IPC dispatches messages to main event loop in kCFRunLoopCommonModes, we get arbitrary reentrancy.

&lt;rdar://problem/16307487&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994510</commentid>
    <comment_count>1</comment_count>
      <attachid>227831</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-03-26 00:10:25 -0700</bug_when>
    <thetext>Created attachment 227831
proposed patch

Changed RunLoop to only wake up itself or fire timers in default and modal run loop modes, removing event tracking one and anything else other frameworks may have registered.

- This also addresses a problem with modal alerts appearing while menus are open (setTimeout(&quot;alert(0)&quot;, 3000), and open a Safari menu).

- I didn&apos;t change other instances of kCFRunLoopCommonModes that we have (notably WebCore timers, LayerFlushScheduler, iOS WebCoreThread code, page loader scheduling, callOnMainThread()).

- Tested that drag and drop of text and images within contenteditable still works.

- Tested that showModalDialog() successfully loads a page, and timers run in this page. Tested that timers are still paused in a page that opened the dialog.

- Confusingly, I couldn&apos;t see any difference in behavior of showModalDialog() whether I allowed NSModalPanelRunLoopMode or not.

- Timers in web pages behave strangely when menus are open. They keep firing - and the page keeps repainting - when I&apos;m slowly moving the mouse between menus or menu items, but the timers stop after I move it quickly!

The last two items concern me. Thoughts? Any other reasons why this may not be a good change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994587</commentid>
    <comment_count>2</comment_count>
      <attachid>227831</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-26 08:59:36 -0700</bug_when>
    <thetext>Comment on attachment 227831
proposed patch

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

Seems OK. Tricky to decide which run loop modes we want to omit. In the past, it was important to include NSEventTrackingRunLoopMode so that web page loading didn’t stop any time the mouse was down in another window, but it’s always been a tricky tradeoff.

&gt; Source/WTF/wtf/RunLoop.h:149
&gt; +    RetainPtr&lt;CFMutableSetRef&gt; m_additionalTimerModes;

Seems a little over-general to use a set for this given that it’s always either null or just a set with a single entry, NSModalPanelRunLoopMode. I suppose it’s nice to be general purpose, but maybe supporting just a single additional mode is OK. I can even imagine hard-coding this one mode and just using a boolean.

&gt; Source/WebKit2/Shared/WebKit2Initialize.cpp:44
&gt; +#if PLATFORM(MAC)
&gt; +extern &quot;C&quot; CFStringRef NSModalPanelRunLoopMode;
&gt; +#endif

I don’t think this declaration is a good idea. Giving the linker the wrong type and depending on toll-free bridging is unnecessarily ugly. We should do this in a .mm file where we can access the real constant in NSApplication.h.

Might be worth considering a helper function, maybe somewhere in WebCore/platform, that people can use to do this from cpp files.

&gt; Source/WebKit2/Shared/WebKit2Initialize.cpp:62
&gt;      RunLoop::initializeMainRunLoop();
&gt; +#if PLATFORM(MAC)
&gt; +    RunLoop::main().addModeForWakeUpAndTimers(NSModalPanelRunLoopMode);
&gt; +#endif

I suggest exporting a function that does these two things together.

&gt; Source/WebKit/mac/Carbon/CarbonWindowAdapter.mm:276
&gt;      JSC::initializeThreading();
&gt;      WTF::initializeMainThreadToProcessMainThread();
&gt;      RunLoop::initializeMainRunLoop();
&gt; +    RunLoop::main().addModeForWakeUpAndTimers((CFStringRef)NSModalPanelRunLoopMode);

I think this whole sequence should be a single helper function rather than putting up with having the code copied and pasted into 20 different classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994588</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-26 09:02:11 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; - Confusingly, I couldn&apos;t see any difference in behavior of showModalDialog() whether I allowed NSModalPanelRunLoopMode or not.
&gt; 
&gt; - Timers in web pages behave strangely when menus are open. They keep firing - and the page keeps repainting - when I&apos;m slowly moving the mouse between menus or menu items, but the timers stop after I move it quickly!
&gt; 
&gt; The last two items concern me.

I think that when we have time we should investigate anomalies like these. I don’t think we’ll be able to prove this is correct just by pure logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994834</commentid>
    <comment_count>4</comment_count>
      <attachid>227925</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-03-26 22:42:45 -0700</bug_when>
    <thetext>Created attachment 227925
patch for landing

Moved initialization to WebCore/platform/MainRunLoop.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994841</commentid>
    <comment_count>5</comment_count>
      <attachid>227925</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-26 23:32:19 -0700</bug_when>
    <thetext>Comment on attachment 227925
patch for landing

Rejecting attachment 227925 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 227925, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebKit2/ChangeLog contains OOPS!.

Full output: http://webkit-queues.appspot.com/results/5203920452321280</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994936</commentid>
    <comment_count>6</comment_count>
      <attachid>227950</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-03-27 09:28:53 -0700</bug_when>
    <thetext>Created attachment 227950
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994937</commentid>
    <comment_count>7</comment_count>
      <attachid>227950</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-27 09:29:39 -0700</bug_when>
    <thetext>Comment on attachment 227950
patch for landing

Rejecting attachment 227950 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 227950, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

/Volumes/Data/EWS/WebKit/Source/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://webkit-queues.appspot.com/results/5109491301351424</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994946</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-03-27 09:48:39 -0700</bug_when>
    <thetext>Landed in &lt;http://trac.webkit.org/r166360&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995111</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-03-27 15:45:46 -0700</bug_when>
    <thetext>Looks like this broke PLT - Safari fails to exit while spinning a nested run loop. Strange, because the run loop is spinning in NSModalPanelRunLoopMode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995113</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-27 15:45:57 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 130869</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995205</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-03-27 18:49:30 -0700</bug_when>
    <thetext>Mostly figured out how this broke PLT, and it&apos;s quite scary. Here is what happens:

1. When PLT is done, it closes its windows with (essentially) -[NSWindow performClose]. This results in sending an IPC message to WebProcess, but it also spins a nested run loop *in event tracking mode* to highlight the window close button.
2. WebProcess is very quick to close the page, so a response arrives while spinning the run loop.
3. The response results in calling -[NSWindow close].
4. Then PLT tries to terminate Safari, and calls -[NSApplication terminate].
5. -[NSApplication terminate] tries to close all documents (not all windows), and while waiting for that, it spins run loop *in modal dialog mode*.
6. While in this mode, an NSEvent internal to AppKit is delivered, which confirms that all documents agreed to termination, and termination continues.

Now, if we don&apos;t deliver IPC responses in event tracking mode - or if closing the page takes longer than the close button highlight is visible - then the response is delivered later while in modal dialog mode, and calling -close doesn&apos;t convince NSApplication that the document got closed. So, NSApplication keeps waiting.

While I&apos;m not sure how to fix this, It seems very likely that this cannot be fixed in WebKit alone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013291</commentid>
    <comment_count>12</comment_count>
      <attachid>227831</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-06-04 03:30:52 -0700</bug_when>
    <thetext>Comment on attachment 227831
proposed patch

Cleared Darin Adler&apos;s review+ from obsolete attachment 227831 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227831</attachid>
            <date>2014-03-26 00:10:25 -0700</date>
            <delta_ts>2014-06-04 03:30:51 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>RunLoopMode.txt</filename>
            <type>text/plain</type>
            <size>19248</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNjYyODQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE0LTAzLTI1ICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIENvbm5lY3Rpb246OmRpc3BhdGNoT25lTWVzc2Fn
ZSgpIGNhbiBiZSByZS1lbnRlcmVkIHdoaWxlIGhhbmRsaW5nIENtZC1rZXkgbWVudQorICAgICAg
ICBlcXVpdmFsZW50cywgQVNTRVJUKCFfZGF0YS0+X2tleURvd25FdmVudEJlaW5nUmVzZW50KQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwNzY3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjMwNzQ4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2VkIFJ1bkxvb3AgdG8gd2FrZSB1cCBhbmQg
ZmlyZSB0aW1lcnMgb25seSBpbiBkZWZhdWx0IHJ1biBsb29wIG1vZGUgYnkgZGVmYXVsdCwKKyAg
ICAgICAgYW5kIGFkZGVkIGFuIGFiaWxpdHkgdG8gYWRkIG1vcmUgbW9kZXMgKGNhbid0IHVzZSBB
cHBLaXQgc3ltYm9scyBpbiBXVEYpLgorCisgICAgICAgIEluIGFkZGl0aW9uIHRvIHRoaXMgYnVn
LCB0aGUgY2hhbmdlIGFsc28gYmxvY2tzIG1vZGFsIGFsZXJ0cyBmcm9tIGFwcGVhcmluZyB1bmRl
cgorICAgICAgICBtZW51cyBkdXJpbmcgbWVudSB0cmFja2luZy4KKworICAgICAgICAqIHd0Zi9S
dW5Mb29wLmg6CisgICAgICAgICogd3RmL2NmL1J1bkxvb3BDRi5jcHA6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjphZGRNb2RlRm9yV2Fr
ZVVwQW5kVGltZXJzKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6
CisKIDIwMTQtMDMtMjUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIFJlbW92ZSB0aGUgYXV0b3Rvb2xzIGJ1aWxkCkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi9SdW5Mb29wLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUnVuTG9vcC5o
CShyZXZpc2lvbiAxNjYxMTEpCisrKyBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTY3LDYgKzY3LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcnVuRm9yRHVyYXRpb24oZG91YmxlIGR1cmF0aW9u
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhZGRNb2RlRm9yV2FrZVVwQW5kVGltZXJz
KENGU3RyaW5nUmVmKTsKICNlbmRpZgogICAgIAogICAgIGNsYXNzIFRpbWVyQmFzZSB7CkBAIC0x
NDUsNiArMTQ2LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBwZXJmb3JtV29yayh2b2lk
Kik7CiAgICAgUmV0YWluUHRyPENGUnVuTG9vcFJlZj4gbV9ydW5Mb29wOwogICAgIFJldGFpblB0
cjxDRlJ1bkxvb3BTb3VyY2VSZWY+IG1fcnVuTG9vcFNvdXJjZTsKKyAgICBSZXRhaW5QdHI8Q0ZN
dXRhYmxlU2V0UmVmPiBtX2FkZGl0aW9uYWxUaW1lck1vZGVzOwogICAgIGludCBtX25lc3RpbmdM
ZXZlbDsKICNlbGlmIFBMQVRGT1JNKEVGTCkKICAgICBNdXRleCBtX3BpcGVMb2NrOwpJbmRleDog
U291cmNlL1dURi93dGYvY2YvUnVuTG9vcENGLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCShyZXZpc2lvbiAxNjYxMTEpCisrKyBTb3VyY2UvV1RGL3d0
Zi9jZi9SdW5Mb29wQ0YuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIFJ1bkxv
b3A6OlJ1bkxvb3AoKQogewogICAgIENGUnVuTG9vcFNvdXJjZUNvbnRleHQgY29udGV4dCA9IHsg
MCwgdGhpcywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgcGVyZm9ybVdvcmsgfTsKICAgICBtX3J1bkxv
b3BTb3VyY2UgPSBhZG9wdENGKENGUnVuTG9vcFNvdXJjZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCAwLCAmY29udGV4dCkpOwotICAgIENGUnVuTG9vcEFkZFNvdXJjZShtX3J1bkxvb3AuZ2V0
KCksIG1fcnVuTG9vcFNvdXJjZS5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKKyAgICBD
RlJ1bkxvb3BBZGRTb3VyY2UobV9ydW5Mb29wLmdldCgpLCBtX3J1bkxvb3BTb3VyY2UuZ2V0KCks
IGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSk7CiB9CiAKIFJ1bkxvb3A6On5SdW5Mb29wKCkKQEAgLTU3
LDYgKzU3LDE0IEBAIHZvaWQgUnVuTG9vcDo6cnVuRm9yRHVyYXRpb24oZG91YmxlIGR1cmEKICAg
ICBDRlJ1bkxvb3BSdW5Jbk1vZGUoa0NGUnVuTG9vcERlZmF1bHRNb2RlLCBkdXJhdGlvbiwgdHJ1
ZSk7CiB9CiAKK3ZvaWQgUnVuTG9vcDo6YWRkTW9kZUZvcldha2VVcEFuZFRpbWVycyhDRlN0cmlu
Z1JlZiBtb2RlKQoreworICAgIENGUnVuTG9vcEFkZFNvdXJjZShtX3J1bkxvb3AuZ2V0KCksIG1f
cnVuTG9vcFNvdXJjZS5nZXQoKSwgbW9kZSk7CisgICAgaWYgKCFtX2FkZGl0aW9uYWxUaW1lck1v
ZGVzKQorICAgICAgICBtX2FkZGl0aW9uYWxUaW1lck1vZGVzID0gYWRvcHRDRihDRlNldENyZWF0
ZU11dGFibGUoMCwgMCwgJmtDRkNvcHlTdHJpbmdTZXRDYWxsQmFja3MpKTsKKyAgICBDRlNldEFk
ZFZhbHVlKG1fYWRkaXRpb25hbFRpbWVyTW9kZXMuZ2V0KCksIG1vZGUpOworfQorCiB2b2lkIFJ1
bkxvb3A6Ondha2VVcCgpCiB7CiAgICAgQ0ZSdW5Mb29wU291cmNlU2lnbmFsKG1fcnVuTG9vcFNv
dXJjZS5nZXQoKSk7CkBAIC0xMDksNyArMTE3LDEwIEBAIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNl
OjpzdGFydChkb3VibGUgbmUKICAgICBDRlJ1bkxvb3BUaW1lckNvbnRleHQgY29udGV4dCA9IHsg
MCwgdGhpcywgMCwgMCwgMCB9OwogICAgIENGVGltZUludGVydmFsIHJlcGVhdEludGVydmFsID0g
cmVwZWF0ID8gbmV4dEZpcmVJbnRlcnZhbCA6IDA7CiAgICAgbV90aW1lciA9IGFkb3B0Q0YoQ0ZS
dW5Mb29wVGltZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgQ0ZBYnNvbHV0ZVRpbWVHZXRD
dXJyZW50KCkgKyBuZXh0RmlyZUludGVydmFsLCByZXBlYXRJbnRlcnZhbCwgMCwgMCwgdGltZXJG
aXJlZCwgJmNvbnRleHQpKTsKLSAgICBDRlJ1bkxvb3BBZGRUaW1lcihtX3J1bkxvb3AubV9ydW5M
b29wLmdldCgpLCBtX3RpbWVyLmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOworICAgIENG
UnVuTG9vcEFkZFRpbWVyKG1fcnVuTG9vcC5tX3J1bkxvb3AuZ2V0KCksIG1fdGltZXIuZ2V0KCks
IGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSk7CisgICAgQ0ZTZXRBcHBseUZ1bmN0aW9uKG1fcnVuTG9v
cC5tX2FkZGl0aW9uYWxUaW1lck1vZGVzLmdldCgpLCBbXShjb25zdCB2b2lkKiBtb2RlLCB2b2lk
KiBjb250ZXh0KSB7CisgICAgICAgIENGUnVuTG9vcEFkZFRpbWVyKHN0YXRpY19jYXN0PFJ1bkxv
b3A6OlRpbWVyQmFzZSo+KGNvbnRleHQpLT5tX3J1bkxvb3AubV9ydW5Mb29wLmdldCgpLCBzdGF0
aWNfY2FzdDxSdW5Mb29wOjpUaW1lckJhc2UqPihjb250ZXh0KS0+bV90aW1lci5nZXQoKSwgc3Rh
dGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KG1vZGUpKTsKKyAgICB9LCB0aGlzKTsKIH0KIAogdm9pZCBS
dW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTY2Mjg0
KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTQtMDMtMjUgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisK
KyAgICAgICAgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hPbmVNZXNzYWdlKCkgY2FuIGJlIHJlLWVudGVy
ZWQgd2hpbGUgaGFuZGxpbmcgQ21kLWtleSBtZW51CisgICAgICAgIGVxdWl2YWxlbnRzLCBBU1NF
UlQoIV9kYXRhLT5fa2V5RG93bkV2ZW50QmVpbmdSZXNlbnQpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA3NjcKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzE2MzA3NDg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcDogKFdlYktpdDo6SW5pdGlhbGl6
ZVdlYktpdDIpOiBBZGRlZCBOU01vZGFsUGFuZWxSdW5Mb29wTW9kZQorICAgICAgICB0byBSdW5M
b29wIGV2ZW50IHNvdXJjZSBhbmQgdGltZXIgbW9kZXMuCisKIDIwMTQtMDMtMjUgIFByYXRpayBT
b2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBQTEFURk9STShJ
T1MpIGZyb20gTmV0d29ya1Byb2Nlc3NNYWMubW0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYktpdDJJbml0aWFsaXplLmNwcAkocmV2aXNpb24gMTY2MTExKQorKysgU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzks
NiArMzksMTAgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVRocmVhZFN5c3RlbUludGVyZmFj
ZS5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUMpCitleHRlcm4gIkMiIENGU3RyaW5nUmVm
IE5TTW9kYWxQYW5lbFJ1bkxvb3BNb2RlOworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiB2b2lkIEluaXRpYWxpemVXZWJLaXQyKCkKQEAgLTUzLDYgKzU3LDkgQEAgdm9pZCBJbml0aWFs
aXplV2ViS2l0MigpCiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjpp
bml0aWFsaXplTWFpblRocmVhZCgpOwogICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9v
cCgpOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBSdW5Mb29wOjptYWluKCkuYWRkTW9kZUZvcldh
a2VVcEFuZFRpbWVycyhOU01vZGFsUGFuZWxSdW5Mb29wTW9kZSk7CisjZW5kaWYKIAogI2lmICFM
T0dfRElTQUJMRUQKICAgICBXZWJDb3JlOjppbml0aWFsaXplTG9nZ2luZ0NoYW5uZWxzSWZOZWNl
c3NhcnkoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NjI4NCkKKysrIFNvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisy
MDE0LTAzLTI1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAg
IENvbm5lY3Rpb246OmRpc3BhdGNoT25lTWVzc2FnZSgpIGNhbiBiZSByZS1lbnRlcmVkIHdoaWxl
IGhhbmRsaW5nIENtZC1rZXkgbWVudQorICAgICAgICBlcXVpdmFsZW50cywgQVNTRVJUKCFfZGF0
YS0+X2tleURvd25FdmVudEJlaW5nUmVzZW50KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwNzY3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjMw
NzQ4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCBOU01vZGFsUGFuZWxSdW5Mb29wTW9kZSB0byBSdW5Mb29wIGV2ZW50IHNvdXJjZSBhbmQg
dGltZXIgbW9kZXMgZXZlcnl3aGVyZQorICAgICAgICB3aGVyZSB3ZSBpbml0aWFsaXplIG1haW4g
cnVuIGxvb3AuCisKKyAgICAgICAgKiBDYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbTogKCtb
Q2FyYm9uV2luZG93QWRhcHRlciBpbml0aWFsaXplXSk6CisgICAgICAgICogSGlzdG9yeS9XZWJC
YWNrRm9yd2FyZExpc3QubW06ICgrW1dlYkJhY2tGb3J3YXJkTGlzdCBpbml0aWFsaXplXSk6Cisg
ICAgICAgICogSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbTogKCtbV2ViSGlzdG9yeUl0ZW0gaW5p
dGlhbGl6ZV0pOgorICAgICAgICAqIE1pc2MvV2ViQ2FjaGUubW06ICgrW1dlYkNhY2hlIGluaXRp
YWxpemVdKToKKyAgICAgICAgKiBNaXNjL1dlYkVsZW1lbnREaWN0aW9uYXJ5Lm1tOiAoK1tXZWJF
bGVtZW50RGljdGlvbmFyeSBpbml0aWFsaXplXSk6CisgICAgICAgICogTWlzYy9XZWJJY29uRGF0
YWJhc2UubW06ICgrW1dlYkljb25EYXRhYmFzZSBpbml0aWFsaXplXSk6CisgICAgICAgICogUGx1
Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOiAoK1tXZWJIb3N0ZWRO
ZXRzY2FwZVBsdWdpblZpZXcgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViQmFz
ZU5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VQbHVnaW5Q
YWNrYWdlLm1tOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOiAo
K1tXZWJOZXRzY2FwZVBsdWdpblZpZXcgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbTogKCtbV2ViVW5kb1N0ZXAgaW5pdGlhbGl6ZV0pOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViQXJjaGl2ZS5tbTogKCtbV2ViQXJjaGl2ZVByaXZhdGUgaW5pdGlhbGl6
ZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbTogKCtbV2ViRGF0YVNvdXJj
ZSBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAg
ICAgKCtbV2ViSFRNTFZpZXdQcml2YXRlIGluaXRpYWxpemVdKToKKyAgICAgICAgKCtbV2ViSFRN
TFZpZXcgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06
ICgrW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlJl
c291cmNlLm1tOiAoK1tXZWJSZXNvdXJjZVByaXZhdGUgaW5pdGlhbGl6ZV0pOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVGV4dEl0ZXJhdG9yLm1tOiAoK1tXZWJUZXh0SXRlcmF0b3JQcml2YXRlIGlu
aXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06ICgrW1dlYlZpZXcgaW5p
dGlhbGl6ZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEubW06ICgrW1dlYlZpZXdQ
cml2YXRlIGluaXRpYWxpemVdKToKKwogMjAxNC0wMy0yNSAgSm9zZXBoIFBlY29yYXJvICA8cGVj
b3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEluc3BlY3RvciBWaWV3IEluZGljYXRp
b24gU3VwcG9ydApJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0Fk
YXB0ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldp
bmRvd0FkYXB0ZXIubW0JKHJldmlzaW9uIDE2NjExMSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0Nh
cmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNzMsNiArMjcz
LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7
CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKICAg
ICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjptYWluKCku
YWRkTW9kZUZvcldha2VVcEFuZFRpbWVycygoQ0ZTdHJpbmdSZWYpTlNNb2RhbFBhbmVsUnVuTG9v
cE1vZGUpOwogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CiAK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0
Lm1tCShyZXZpc2lvbiAxNjYxMTEpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkJh
Y2tGb3J3YXJkTGlzdC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA3LDYgKzEwNyw3IEBAICsgKHZv
aWQpaW5pdGlhbGl6ZQogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6
aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7CiAgICAgUnVuTG9vcDo6
aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6bWFpbigpLmFkZE1vZGVGb3JX
YWtlVXBBbmRUaW1lcnMoKENGU3RyaW5nUmVmKU5TTW9kYWxQYW5lbFJ1bkxvb3BNb2RlKTsKICNl
bmRpZgogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9CkluZGV4
OiBTb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0JKHJldmlzaW9u
IDE2NjExMSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0J
KHdvcmtpbmcgY29weSkKQEAgLTEyOSw2ICsxMjksNyBAQCArICh2b2lkKWluaXRpYWxpemUKICAg
ICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhy
ZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwogICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVu
TG9vcCgpOworICAgIFJ1bkxvb3A6Om1haW4oKS5hZGRNb2RlRm9yV2FrZVVwQW5kVGltZXJzKChD
RlN0cmluZ1JlZilOU01vZGFsUGFuZWxSdW5Mb29wTW9kZSk7CiAjZW5kaWYKICAgICBXZWJDb3Jl
T2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQpJbmRleDogU291cmNlL1dlYktpdC9t
YWMvTWlzYy9XZWJDYWNoZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9NaXNj
L1dlYkNhY2hlLm1tCShyZXZpc2lvbiAxNjYxMTEpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9NaXNj
L1dlYkNhY2hlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01OSw2ICs1OSw3IEBAICsgKHZvaWQpaW5p
dGlhbGl6ZQogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlh
bGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7CiAgICAgUnVuTG9vcDo6aW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6bWFpbigpLmFkZE1vZGVGb3JXYWtlVXBB
bmRUaW1lcnMoKENGU3RyaW5nUmVmKU5TTW9kYWxQYW5lbFJ1bkxvb3BNb2RlKTsKICNlbmRpZgog
ICAgIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKCk7ICAgCiB9CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L21hYy9NaXNjL1dlYkVsZW1lbnREaWN0aW9uYXJ5Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL01pc2MvV2ViRWxlbWVudERpY3Rpb25hcnkubW0JKHJldmlzaW9uIDE2NjEx
MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViRWxlbWVudERpY3Rpb25hcnkubW0JKHdv
cmtpbmcgY29weSkKQEAgLTY5LDYgKzY5LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAgICAgSlND
Ojppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRv
UHJvY2Vzc01haW5UaHJlYWQoKTsKICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3Ao
KTsKKyAgICBSdW5Mb29wOjptYWluKCkuYWRkTW9kZUZvcldha2VVcEFuZFRpbWVycygoQ0ZTdHJp
bmdSZWYpTlNNb2RhbFBhbmVsUnVuTG9vcE1vZGUpOwogI2VuZGlmCiAgICAgV2ViQ29yZU9iakNG
aW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL01p
c2MvV2ViSWNvbkRhdGFiYXNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL01p
c2MvV2ViSWNvbkRhdGFiYXNlLm1tCShyZXZpc2lvbiAxNjYxMTEpCisrKyBTb3VyY2UvV2ViS2l0
L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbQkod29ya2luZyBjb3B5KQpAQCAtOTMsNiArOTMs
NyBAQCArICh2b2lkKWluaXRpYWxpemUKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsK
ICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwogICAg
IFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6Om1haW4oKS5h
ZGRNb2RlRm9yV2FrZVVwQW5kVGltZXJzKChDRlN0cmluZ1JlZilOU01vZGFsUGFuZWxSdW5Mb29w
TW9kZSk7CiB9CiAKICsgKFdlYkljb25EYXRhYmFzZSAqKXNoYXJlZEljb25EYXRhYmFzZQpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBl
UGx1Z2luVmlldy5tbQkocmV2aXNpb24gMTY2MTExKQorKysgU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Niw2
ICs3Niw3IEBAICsgKHZvaWQpaW5pdGlhbGl6ZQogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGlu
ZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7
CiAgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6bWFp
bigpLmFkZE1vZGVGb3JXYWtlVXBBbmRUaW1lcnMoKENGU3RyaW5nUmVmKU5TTW9kYWxQYW5lbFJ1
bkxvb3BNb2RlKTsKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwog
ICAgIFdLU2VuZFVzZXJDaGFuZ2VOb3RpZmljYXRpb25zKCk7CiB9CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNrYWdlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZVBsdWdpblBhY2thZ2UubW0JKHJldmlzaW9u
IDE2NjExMSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZVBsdWdpblBhY2th
Z2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTcwLDYgKzcwLDcgQEAgKyAodm9pZClpbml0aWFsaXpl
CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFp
blRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFp
blJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjptYWluKCkuYWRkTW9kZUZvcldha2VVcEFuZFRpbWVy
cygoQ0ZTdHJpbmdSZWYpTlNNb2RhbFBhbmVsUnVuTG9vcE1vZGUpOwogI2VuZGlmCiAgICAgV2Vi
Q29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCShyZXZpc2lv
biAxNjYxMTEpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2lu
Vmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTk1LDYgKzE5NSw3IEBAICsgKHZvaWQpaW5pdGlh
bGl6ZQogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6
ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7CiAgICAgUnVuTG9vcDo6aW5pdGlhbGl6
ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6bWFpbigpLmFkZE1vZGVGb3JXYWtlVXBBbmRU
aW1lcnMoKENGU3RyaW5nUmVmKU5TTW9kYWxQYW5lbFJ1bkxvb3BNb2RlKTsKICAgICBXZWJDb3Jl
T2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogICAgIFdLU2VuZFVzZXJDaGFuZ2VOb3Rp
ZmljYXRpb25zKCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9X
ZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCShyZXZp
c2lvbiAxNjYxMTEpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0
ZWROZXRzY2FwZVBsdWdpblZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTc1LDYgKzc1LDcgQEAg
KyAodm9pZClpbml0aWFsaXplCiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAg
V1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKICAgICBSdW5M
b29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjptYWluKCkuYWRkTW9k
ZUZvcldha2VVcEFuZFRpbWVycygoQ0ZTdHJpbmdSZWYpTlNNb2RhbFBhbmVsUnVuTG9vcE1vZGUp
OwogI2VuZGlmCiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAg
ICBXS1NlbmRVc2VyQ2hhbmdlTm90aWZpY2F0aW9ucygpOwpJbmRleDogU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQkocmV2aXNpb24g
MTY2MTExKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNiArMTE4LDcgQEAgKyAodm9pZClpbml0aWFs
aXplCiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXpl
TWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKICAgICBSdW5Mb29wOjppbml0aWFsaXpl
TWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjptYWluKCkuYWRkTW9kZUZvcldha2VVcEFuZFRp
bWVycygoQ0ZTdHJpbmdSZWYpTlNNb2RhbFBhbmVsUnVuTG9vcE1vZGUpOwogI2VuZGlmCiAgICAg
V2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tCShyZXZpc2lvbiAxNjYxMTEpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjQwNyw2ICsy
NDA3LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5n
KCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsK
ICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjptYWlu
KCkuYWRkTW9kZUZvcldha2VVcEFuZFRpbWVycygoQ0ZTdHJpbmdSZWYpTlNNb2RhbFBhbmVsUnVu
TG9vcE1vZGUpOwogI2VuZGlmCiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChz
ZWxmKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0JKHJl
dmlzaW9uIDE2NjExMSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5t
bQkod29ya2luZyBjb3B5KQpAQCAtNzEsNiArNzEsNyBAQCArICh2b2lkKWluaXRpYWxpemUKICAg
ICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhy
ZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwogICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVu
TG9vcCgpOworICAgIFJ1bkxvb3A6Om1haW4oKS5hZGRNb2RlRm9yV2FrZVVwQW5kVGltZXJzKChD
RlN0cmluZ1JlZilOU01vZGFsUGFuZWxSdW5Mb29wTW9kZSk7CiAjZW5kaWYKICAgICBXZWJDb3Jl
T2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQpJbmRleDogU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQkocmV2aXNpb24gMTY2MTExKQorKysgU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
NjIsNiArMTYyLDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAgICAgICAgIEpTQzo6aW5pdGlhbGl6
ZVRocmVhZGluZygpOwogICAgICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNz
TWFpblRocmVhZCgpOwogICAgICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsK
KyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmFkZE1vZGVGb3JXYWtlVXBBbmRUaW1lcnMoKENGU3Ry
aW5nUmVmKU5TTW9kYWxQYW5lbFJ1bkxvb3BNb2RlKTsKICNlbmRpZgogICAgICAgICBXZWJDb3Jl
T2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQkocmV2aXNpb24gMTY2MTExKQorKysgU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNjQ0
LDYgKzY0NCw3IEBAICsgKHZvaWQpaW5pdGlhbGl6ZQogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVh
ZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFk
KCk7CiAgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgUnVuTG9vcDo6
bWFpbigpLmFkZE1vZGVGb3JXYWtlVXBBbmRUaW1lcnMoKENGU3RyaW5nUmVmKU5TTW9kYWxQYW5l
bFJ1bkxvb3BNb2RlKTsKICNlbmRpZgogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJl
YWQoc2VsZik7CiAgICAgCkBAIC0yNDc1LDYgKzI0NzYsNyBAQCArICh2b2lkKWluaXRpYWxpemUK
ICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWlu
VGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwogICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWlu
UnVuTG9vcCgpOworICAgIFJ1bkxvb3A6Om1haW4oKS5hZGRNb2RlRm9yV2FrZVVwQW5kVGltZXJz
KChDRlN0cmluZ1JlZilOU01vZGFsUGFuZWxSdW5Mb29wTW9kZSk7CiAjZW5kaWYKICAgICBXZWJD
b3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQpJbmRleDogU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiAxNjYxMTEpCisrKyBT
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0zOTMsNiArMzkzLDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAgICAgSlNDOjppbml0aWFs
aXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01h
aW5UaHJlYWQoKTsKICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBS
dW5Mb29wOjptYWluKCkuYWRkTW9kZUZvcldha2VVcEFuZFRpbWVycygoQ0ZTdHJpbmdSZWYpTlNN
b2RhbFBhbmVsUnVuTG9vcE1vZGUpOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHN0
YXRpYyB1bnNpZ25lZCBkZWZhdWx0TWF4aW11bUltYWdlU2l6ZSA9IDIwICogMTAyNCAqIDEwMjQ7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2UubW0JKHJldmlzaW9u
IDE2NjExMSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2UubW0JKHdv
cmtpbmcgY29weSkKQEAgLTcwLDYgKzcwLDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAgICAgSlND
Ojppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRv
UHJvY2Vzc01haW5UaHJlYWQoKTsKICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3Ao
KTsKKyAgICBSdW5Mb29wOjptYWluKCkuYWRkTW9kZUZvcldha2VVcEFuZFRpbWVycygoQ0ZTdHJp
bmdSZWYpTlNNb2RhbFBhbmVsUnVuTG9vcE1vZGUpOwogI2VuZGlmCiAgICAgV2ViQ29yZU9iakNG
aW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVGV4dEl0ZXJhdG9yLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVGV4dEl0ZXJhdG9yLm1tCShyZXZpc2lvbiAxNjYxMTEpCisrKyBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRJdGVyYXRvci5tbQkod29ya2luZyBjb3B5KQpAQCAt
NTAsNiArNTAsNyBAQCArICh2b2lkKWluaXRpYWxpemUKICAgICBKU0M6OmluaXRpYWxpemVUaHJl
YWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVh
ZCgpOwogICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6
Om1haW4oKS5hZGRNb2RlRm9yV2FrZVVwQW5kVGltZXJzKChDRlN0cmluZ1JlZilOU01vZGFsUGFu
ZWxSdW5Mb29wTW9kZSk7CiAjZW5kaWYKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhy
ZWFkKHNlbGYpOwogfQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkocmV2
aXNpb24gMTY2MTExKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3
b3JraW5nIGNvcHkpCkBAIC00Njg5LDYgKzQ2ODksNyBAQCArICh2b2lkKWluaXRpYWxpemUKICAg
ICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhy
ZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwogICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVu
TG9vcCgpOworICAgIFJ1bkxvb3A6Om1haW4oKS5hZGRNb2RlRm9yV2FrZVVwQW5kVGltZXJzKChD
RlN0cmluZ1JlZilOU01vZGFsUGFuZWxSdW5Mb29wTW9kZSk7CiAjZW5kaWYKIAogI2lmICFQTEFU
Rk9STShJT1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0J
KHJldmlzaW9uIDE2NjExMSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0Rh
dGEubW0JKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDcgQEAgKyAodm9pZClpbml0aWFsaXpl
CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFp
blRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFp
blJ1bkxvb3AoKTsKKyAgICBSdW5Mb29wOjptYWluKCkuYWRkTW9kZUZvcldha2VVcEFuZFRpbWVy
cygoQ0ZTdHJpbmdSZWYpTlNNb2RhbFBhbmVsUnVuTG9vcE1vZGUpOwogI2VuZGlmCiAgICAgV2Vi
Q29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227925</attachid>
            <date>2014-03-26 22:42:45 -0700</date>
            <delta_ts>2014-03-27 09:28:53 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>RunLoopMode.txt</filename>
            <type>text/plain</type>
            <size>42903</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNjYzNDUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE0LTAzLTI1ICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIENvbm5lY3Rpb246OmRpc3BhdGNoT25lTWVzc2Fn
ZSgpIGNhbiBiZSByZS1lbnRlcmVkIHdoaWxlIGhhbmRsaW5nIENtZC1rZXkgbWVudQorICAgICAg
ICBlcXVpdmFsZW50cywgQVNTRVJUKCFfZGF0YS0+X2tleURvd25FdmVudEJlaW5nUmVzZW50KQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwNzY3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjMwNzQ4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KKworICAgICAgICBDaGFuZ2VkIFJ1bkxvb3AgdG8gd2FrZSB1cCBhbmQgZmly
ZSB0aW1lcnMgb25seSBpbiBkZWZhdWx0IHJ1biBsb29wIG1vZGUgYnkgZGVmYXVsdCwKKyAgICAg
ICAgYW5kIGFkZGVkIGFuIGFiaWxpdHkgdG8gYWRkIG1vcmUgbW9kZXMgKGNhbid0IHVzZSBBcHBL
aXQgc3ltYm9scyBpbiBXVEYpLgorCisgICAgICAgIEluIGFkZGl0aW9uIHRvIHRoaXMgYnVnLCB0
aGUgY2hhbmdlIGFsc28gYmxvY2tzIG1vZGFsIGFsZXJ0cyBmcm9tIGFwcGVhcmluZyB1bmRlcgor
ICAgICAgICBtZW51cyBkdXJpbmcgbWVudSB0cmFja2luZy4KKworICAgICAgICAqIHd0Zi9SdW5M
b29wLmg6CisgICAgICAgICogd3RmL2NmL1J1bkxvb3BDRi5jcHA6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjphZGRNb2RlRm9yV2FrZVVw
QW5kVGltZXJzKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisK
IDIwMTQtMDMtMjYgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQuIFJlbW92aW5nIHRoZSByZW1haW5pbmcgQXV0b21ha2UgY3J1ZnQuCklu
ZGV4OiBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvUnVuTG9vcC5oCShyZXZpc2lvbiAxNjYzNDUpCisrKyBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29w
LmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDYgKzY3LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcnVuRm9yRHVyYXRpb24oZG91
YmxlIGR1cmF0aW9uKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhZGRNb2RlRm9yV2Fr
ZVVwQW5kVGltZXJzKENGU3RyaW5nUmVmKTsKICNlbmRpZgogICAgIAogICAgIGNsYXNzIFRpbWVy
QmFzZSB7CkBAIC0xNDUsNiArMTQ2LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBwZXJm
b3JtV29yayh2b2lkKik7CiAgICAgUmV0YWluUHRyPENGUnVuTG9vcFJlZj4gbV9ydW5Mb29wOwog
ICAgIFJldGFpblB0cjxDRlJ1bkxvb3BTb3VyY2VSZWY+IG1fcnVuTG9vcFNvdXJjZTsKKyAgICBS
ZXRhaW5QdHI8Q0ZNdXRhYmxlU2V0UmVmPiBtX2FkZGl0aW9uYWxUaW1lck1vZGVzOwogICAgIGlu
dCBtX25lc3RpbmdMZXZlbDsKICNlbGlmIFBMQVRGT1JNKEVGTCkKICAgICBNdXRleCBtX3BpcGVM
b2NrOwpJbmRleDogU291cmNlL1dURi93dGYvY2YvUnVuTG9vcENGLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCShyZXZpc2lvbiAxNjYzNDUpCisrKyBT
b3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0
NCw3IEBAIFJ1bkxvb3A6OlJ1bkxvb3AoKQogewogICAgIENGUnVuTG9vcFNvdXJjZUNvbnRleHQg
Y29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgcGVyZm9ybVdvcmsgfTsK
ICAgICBtX3J1bkxvb3BTb3VyY2UgPSBhZG9wdENGKENGUnVuTG9vcFNvdXJjZUNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAwLCAmY29udGV4dCkpOwotICAgIENGUnVuTG9vcEFkZFNvdXJjZSht
X3J1bkxvb3AuZ2V0KCksIG1fcnVuTG9vcFNvdXJjZS5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1v
ZGVzKTsKKyAgICBDRlJ1bkxvb3BBZGRTb3VyY2UobV9ydW5Mb29wLmdldCgpLCBtX3J1bkxvb3BT
b3VyY2UuZ2V0KCksIGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSk7CiB9CiAKIFJ1bkxvb3A6On5SdW5M
b29wKCkKQEAgLTU3LDYgKzU3LDE0IEBAIHZvaWQgUnVuTG9vcDo6cnVuRm9yRHVyYXRpb24oZG91
YmxlIGR1cmEKICAgICBDRlJ1bkxvb3BSdW5Jbk1vZGUoa0NGUnVuTG9vcERlZmF1bHRNb2RlLCBk
dXJhdGlvbiwgdHJ1ZSk7CiB9CiAKK3ZvaWQgUnVuTG9vcDo6YWRkTW9kZUZvcldha2VVcEFuZFRp
bWVycyhDRlN0cmluZ1JlZiBtb2RlKQoreworICAgIENGUnVuTG9vcEFkZFNvdXJjZShtX3J1bkxv
b3AuZ2V0KCksIG1fcnVuTG9vcFNvdXJjZS5nZXQoKSwgbW9kZSk7CisgICAgaWYgKCFtX2FkZGl0
aW9uYWxUaW1lck1vZGVzKQorICAgICAgICBtX2FkZGl0aW9uYWxUaW1lck1vZGVzID0gYWRvcHRD
RihDRlNldENyZWF0ZU11dGFibGUoMCwgMCwgJmtDRkNvcHlTdHJpbmdTZXRDYWxsQmFja3MpKTsK
KyAgICBDRlNldEFkZFZhbHVlKG1fYWRkaXRpb25hbFRpbWVyTW9kZXMuZ2V0KCksIG1vZGUpOwor
fQorCiB2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCiB7CiAgICAgQ0ZSdW5Mb29wU291cmNlU2lnbmFs
KG1fcnVuTG9vcFNvdXJjZS5nZXQoKSk7CkBAIC0xMDksNyArMTE3LDEyIEBAIHZvaWQgUnVuTG9v
cDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmUKICAgICBDRlJ1bkxvb3BUaW1lckNvbnRleHQg
Y29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwgMCB9OwogICAgIENGVGltZUludGVydmFsIHJlcGVh
dEludGVydmFsID0gcmVwZWF0ID8gbmV4dEZpcmVJbnRlcnZhbCA6IDA7CiAgICAgbV90aW1lciA9
IGFkb3B0Q0YoQ0ZSdW5Mb29wVGltZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgQ0ZBYnNv
bHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBuZXh0RmlyZUludGVydmFsLCByZXBlYXRJbnRlcnZhbCwg
MCwgMCwgdGltZXJGaXJlZCwgJmNvbnRleHQpKTsKLSAgICBDRlJ1bkxvb3BBZGRUaW1lcihtX3J1
bkxvb3AubV9ydW5Mb29wLmdldCgpLCBtX3RpbWVyLmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9k
ZXMpOworICAgIENGUnVuTG9vcEFkZFRpbWVyKG1fcnVuTG9vcC5tX3J1bkxvb3AuZ2V0KCksIG1f
dGltZXIuZ2V0KCksIGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSk7CisgICAgaWYgKG1fcnVuTG9vcC5t
X2FkZGl0aW9uYWxUaW1lck1vZGVzKSB7CisgICAgICAgIENGU2V0QXBwbHlGdW5jdGlvbihtX3J1
bkxvb3AubV9hZGRpdGlvbmFsVGltZXJNb2Rlcy5nZXQoKSwgW10oY29uc3Qgdm9pZCogbW9kZSwg
dm9pZCogY29udGV4dCkgeworICAgICAgICAgICAgQ0ZSdW5Mb29wQWRkVGltZXIoc3RhdGljX2Nh
c3Q8UnVuTG9vcDo6VGltZXJCYXNlKj4oY29udGV4dCktPm1fcnVuTG9vcC5tX3J1bkxvb3AuZ2V0
KCksIHN0YXRpY19jYXN0PFJ1bkxvb3A6OlRpbWVyQmFzZSo+KGNvbnRleHQpLT5tX3RpbWVyLmdl
dCgpLCBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4obW9kZSkpOworICAgICAgICB9LCB0aGlzKTsK
KyAgICB9CiB9CiAKIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE2NjM0NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE0LTAzLTI2ICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIENvbm5lY3Rpb246OmRpc3BhdGNoT25lTWVzc2Fn
ZSgpIGNhbiBiZSByZS1lbnRlcmVkIHdoaWxlIGhhbmRsaW5nIENtZC1rZXkgbWVudQorICAgICAg
ICBlcXVpdmFsZW50cywgQVNTRVJUKCFfZGF0YS0+X2tleURvd25FdmVudEJlaW5nUmVzZW50KQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwNzY3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjMwNzQ4Nz4KKworICAgICAgICBBZGRlZCBhIHdyYXBw
ZXIgZm9yIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluVGhyZWFkIHRoYXQgYWxzbyBhZGRzIG1vZGFs
IHJ1biBsb29wCisgICAgICAgIG1vZGUgdG8gaXQgb24gTWFjLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL01haW5SdW5Mb29wLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjppbml0aWFsaXplTWFpblJ1bkxvb3ApOgorICAgICAgICAqIHBsYXRmb3Jt
L01haW5SdW5Mb29wLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9NYWluUnVuTG9v
cC5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplTWFpblJ1bkxvb3ApOgor
CiAyMDE0LTAzLTI2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4
IGlPUyBidWlsZC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNjYzNDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTgwMyw2
ICsxODAzLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0xpbmtIYXNoLmNw
cAogICAgIHBsYXRmb3JtL0xvZ2dpbmcuY3BwCiAgICAgcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3Ry
eS5jcHAKKyAgICBwbGF0Zm9ybS9NYWluUnVuTG9vcC5jcHAKICAgICBwbGF0Zm9ybS9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuY3BwCiAgICAgcGxhdGZvcm0vTm90SW1wbGVtZW50ZWQuY3BwCiAgICAg
cGxhdGZvcm0vUGxhdGZvcm1FdmVudC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZp
c2lvbiAxNjYzNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBj
b3B5KQpAQCAtODkyLDYgKzg5Miw3IEBAIF9fWk43V2ViQ29yZTIxV2luZG93c0xhdGluMUVuY29k
aW5nRXYKIF9fWk43V2ViQ29yZTIxY3JlYXRlQ0ZVUkxGcm9tQnVmZmVyRVBLY21QSzdfX0NGVVJM
CiBfX1pON1dlYkNvcmUyMWZpbmRFdmVudFdpdGhLZXlTdGF0ZUVQTlNfNUV2ZW50RQogX19aTjdX
ZWJDb3JlMjFnZXRDYWNoZWRET01TdHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUEtO
M0pTQzlDbGFzc0luZm9FCitfX1pON1dlYkNvcmUyMWluaXRpYWxpemVNYWluUnVuTG9vcEV2CiBf
X1pON1dlYkNvcmUyMWlzQmFja0ZvcndhcmRMb2FkVHlwZUVOU18xM0ZyYW1lTG9hZFR5cGVFCiBf
X1pON1dlYkNvcmUyMW1haW5UaHJlYWROb3JtYWxXb3JsZEV2CiBfX1pON1dlYkNvcmUyMW1hcmtl
clRleHRGb3JMaXN0SXRlbUVQTlNfN0VsZW1lbnRFCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE2NjM0NSkKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTE5MjE4LDYgKzE5MjE4LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXExvY2FsaXplZFN0cmluZ3MuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHBsYXRmb3JtXExvZ2dpbmcuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRm
b3JtXE1lbW9yeVByZXNzdXJlSGFuZGxlci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccGxhdGZvcm1cTWFpblJ1bkxvb3AuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHBsYXRmb3JtXE1haW5UaHJlYWRUYXNrLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVxNSU1FVHlwZVJlZ2lzdHJ5LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxwbGF0Zm9ybVxOb3RJbXBsZW1lbnRlZC5oIiAvPgpJbmRleDogU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2
aXNpb24gMTY2MzQ1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC04MDU5LDYgKzgwNTksOSBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgi
PgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cTWFpblJ1bkxvb3AuaCI+CisgICAgICA8
RmlsdGVyPnBsYXRmb3JtPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxNYWluVGhyZWFkVGFzay5oIj4KICAgICAgIDxGaWx0ZXI+
cGxhdGZvcm08L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2NjM0
NSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtNTg5MSw2ICs1ODkxLDkgQEAKIAkJRTFBREVERDUwRTc2QkQ2MDAw
NEExQTVFIC8qIERPTU1lc3NhZ2VQb3J0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQURFREQ0MEU3NkJENjAwMDRBMUE1RSAvKiBET01N
ZXNzYWdlUG9ydEludGVybmFsLmggKi87IH07CiAJCUUxQURFRERBMEU3NkJEOTMwMDRBMUE1RSAv
KiBKU01lc3NhZ2VQb3J0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUFERUREODBFNzZCRDkzMDA0QTFBNUUgLyogSlNNZXNzYWdlUG9ydC5oICovOyB9
OwogCQlFMUFERUREQjBFNzZCRDkzMDA0QTFBNUUgLyogSlNNZXNzYWdlUG9ydC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUFERUREOTBFNzZCRDkz
MDA0QTFBNUUgLyogSlNNZXNzYWdlUG9ydC5jcHAgKi87IH07CisJCUUxQjA1NTIzMThFM0VBNTkw
MEFFRDlEMyAvKiBNYWluUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFCMDU1MjIxOEUzRUE1OTAwQUVEOUQzIC8qIE1haW5SdW5Mb29wLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTFCMDU1
MjUxOEUzRUFCMTAwQUVEOUQzIC8qIE1haW5SdW5Mb29wLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQjA1NTI0MThFM0VBQjEwMEFFRDlEMyAvKiBN
YWluUnVuTG9vcC5jcHAgKi87IH07CisJCUUxQjA1NTI3MThFM0VCNjIwMEFFRDlEMyAvKiBNYWlu
UnVuTG9vcC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxQjA1NTI2MThFM0VCNjIwMEFFRDlEMyAvKiBNYWluUnVuTG9vcC5tbSAqLzsgfTsKIAkJRTFC
MjUxMDYxNTJBMEJBRjAwNjlCNzc5IC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCMjUxMDQxNTJBMEJB
RjAwNjlCNzc5IC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmQuY3BwICovOyB9OwogCQlFMUIyNTEw
NzE1MkEwQkIwMDA2OUI3NzkgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCMjUxMDUxNTJBMEJBRjAwNjlC
Nzc5IC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmQuaCAqLzsgfTsKIAkJRTFCNENEMjUxMEIzMjJF
MjAwQkZGRDdFIC8qIENyZWRlbnRpYWxTdG9yYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCNENEMjQxMEIzMjJFMjAwQkZGRDdFIC8qIENy
ZWRlbnRpYWxTdG9yYWdlTWFjLm1tICovOyB9OwpAQCAtMTMyNjcsNiArMTMyNzAsOSBAQAogCQlF
MUFERURENDBFNzZCRDYwMDA0QTFBNUUgLyogRE9NTWVzc2FnZVBvcnRJbnRlcm5hbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01NZXNzYWdlUG9ydEludGVybmFsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQURFREQ4MEU3NkJEOTMwMDRBMUE1RSAvKiBK
U01lc3NhZ2VQb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVzc2Fn
ZVBvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFBREVERDkwRTc2QkQ5MzAw
NEExQTVFIC8qIEpTTWVzc2FnZVBvcnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNNZXNzYWdlUG9ydC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxQjA1NTIyMThFM0VBNTkwMEFFRDlEMyAvKiBNYWluUnVuTG9vcC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNYWluUnVuTG9vcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMUIwNTUyNDE4RTNFQUIxMDBBRUQ5RDMgLyogTWFpblJ1bkxvb3AuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWFpblJ1bkxvb3AuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUIwNTUyNjE4RTNFQjYyMDBBRUQ5RDMgLyogTWFpblJ1
bkxvb3AubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNYWluUnVu
TG9vcC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFCMjUxMDQxNTJBMEJBRjAw
NjlCNzc5IC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUxQjI1MTA1MTUyQTBCQUYwMDY5Qjc3OSAvKiBTdHlsZVByb3Bl
cnR5U2hvcnRoYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlUHJv
cGVydHlTaG9ydGhhbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFCNENEMjQx
MEIzMjJFMjAwQkZGRDdFIC8qIENyZWRlbnRpYWxTdG9yYWdlTWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ3JlZGVudGlhbFN0b3JhZ2VNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjA5Miw2ICsxNjA5OCw3IEBACiAJCQkJQkMyNUI1
MjgxMzFDNkQzOTAwMTgwRTEwIC8qIExvY2FsaXplZFN0cmluZ3NNYWMuY3BwICovLAogCQkJCTE0
MDI2NDVEMEFGREMxOUIwMDU5MTlFMiAvKiBMb2dnaW5nTWFjLm1tICovLAogCQkJCUNENjQxRUJE
MTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVNYWMuY3BwICovLAorCQkJCUUxQjA1NTI2MThF
M0VCNjIwMEFFRDlEMyAvKiBNYWluUnVuTG9vcC5tbSAqLywKIAkJCQlDRDY0MUVCRTE4MTlCMzU5
MDBFRTRDNDEgLyogTWVkaWFUaW1lTWFjLmggKi8sCiAJCQkJNjU3RURBMEExMzg1Q0JEODAwNEUw
NjQ1IC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlck1hYy5tbSAqLywKIAkJCQlCQzc3MkM1RDBDNEVC
MzQ0MDA4MzI4NUYgLyogTUlNRVR5cGVSZWdpc3RyeU1hYy5tbSAqLywKQEAgLTIwOTU3LDYgKzIw
OTY0LDggQEAKIAkJCQk5MzUyMDdCRDA5QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxpemVkU3RyaW5n
cy5oICovLAogCQkJCUE4MjM5REZFMDlCM0NGOEEwMEI2MDY0MSAvKiBMb2dnaW5nLmNwcCAqLywK
IAkJCQlBODIzOURGRjA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5oICovLAorCQkJCUUxQjA1
NTI0MThFM0VBQjEwMEFFRDlEMyAvKiBNYWluUnVuTG9vcC5jcHAgKi8sCisJCQkJRTFCMDU1MjIx
OEUzRUE1OTAwQUVEOUQzIC8qIE1haW5SdW5Mb29wLmggKi8sCiAJCQkJRTE4NzA1NjIxNkU1NEEw
RDAwNTg1RTk3IC8qIE1haW5UaHJlYWRUYXNrLmggKi8sCiAJCQkJQ0RGMkIwMDMxODFGMDU5QzAw
RjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCAqLywKIAkJCQlDRDY0MUVDNzE4MUVENjAxMDBF
RTRDNDEgLyogTWVkaWFTYW1wbGUuaCAqLywKQEAgLTIyODU4LDYgKzIyODY3LDcgQEAKIAkJCQky
OUE4MTIyRTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMjlBODEyMzMwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxp
dHlBUklBR3JpZFJvdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjlBODEyM0IwRkJCOUMxRDAwNTEw
MjkzIC8qIEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuaCBpbiBIZWFkZXJzICovLAorCQkJCUUx
QjA1NTIzMThFM0VBNTkwMEFFRDlEMyAvKiBNYWluUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMjlBODEyMkMwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlMaXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyOUE4MTI0MzBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUxp
c3RCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCTI5QTgxMjQyMEZCQjlDMUQwMDUxMDI5MyAvKiBB
Y2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODc4OCw2ICsy
ODc5OCw3IEBACiAJCQkJOTNDMzhDMDQxNjQ0NzNERDAwMDkxRUIyIC8qIFNjcm9sbGluZ1RyZWVG
aXhlZE5vZGUubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRkM0RTQwRjE4N0Y4MkUxMDA0NTg4MkMg
LyogU2Nyb2xsaW5nVHJlZUlPUy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUFBRERFMzE0REM4
QzhGMDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJlZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
RTFCMDU1MjUxOEUzRUFCMTAwQUVEOUQzIC8qIE1haW5SdW5Mb29wLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTkzOTFBOTlDMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0RTQxMjE4N0Y4MkUxMDA0NTg4MkMgLyog
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk5M0M0
QTQxNjE2MjlERjVBMDBDM0VCNkUgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW0g
aW4gU291cmNlcyAqLywKQEAgLTI4OTMzLDYgKzI4OTQ0LDcgQEAKIAkJCQlFMTM5ODY2MzE1NDc4
NDc0MDAxRTNGNjUgLyogU3R5bGVSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNERF
QUExNzE3QTkzREMzMDAwRTA0MzAgLyogU3R5bGVSZXNvbHZlVHJlZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlFNEJCRUQ0QzE0RkNEQkExMDAzRjBCOTggLyogU3R5bGVSdWxlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUUxQjA1NTI3MThFM0VCNjIwMEFFRDlEMyAvKiBNYWluUnVuTG9vcC5tbSBp
biBTb3VyY2VzICovLAogCQkJCUU0OTQ2RUFFMTU2RTY0REQwMEQzMjk3RiAvKiBTdHlsZVJ1bGVJ
bXBvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThFQTgwMEQwQTE5NTE2RTAwQThFRjVGIC8q
IFN0eWxlU2hlZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRGOUVFRjIxNTZEOUZGQTAwRDIz
RTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01haW5SdW5Mb29wLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NYWluUnVuTG9vcC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NYWluUnVuTG9vcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNYWlu
UnVuTG9vcC5oIgorCisjaWYgIVBMQVRGT1JNKE1BQykKKworI2luY2x1ZGUgPHd0Zi9SdW5Mb29w
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3Ao
KQoreworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworfQorCit9CisKKyNl
bmRpZgoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblJ1
bkxvb3AuY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTAsMCArMSAjIwor
bmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01haW5SdW5Mb29wLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTWFpblJ1bkxvb3AuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL01haW5SdW5Mb29wLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgTWFpblJ1bkxvb3BfaAorI2RlZmluZSBNYWluUnVuTG9vcF9oCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTWFpblJ1bkxvb3BfaAoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblJ1bkxvb3AuaApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0wLDAgKzEgIyMKK25hdGl2ZQpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvTWFpblJ1bkxvb3AubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL01haW5SdW5Mb29wLm1tCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL01haW5SdW5Mb29wLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWFpblJ1bkxvb3AuaCIK
KworI2lmIFBMQVRGT1JNKE1BQykKKworI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3AoKQoreworICAgIFJ1
bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6Om1haW4oKS5hZGRN
b2RlRm9yV2FrZVVwQW5kVGltZXJzKChDRlN0cmluZ1JlZilOU01vZGFsUGFuZWxSdW5Mb29wTW9k
ZSk7Cit9CisKK30KKworI2VuZGlmCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvTWFpblJ1bkxvb3AubW0KX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1z
dHlsZQojIyAtMCwwICsxICMjCitMRgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjYzNDUpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wMy0yNSAgQWxleGV5IFBy
b3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBDb25uZWN0aW9uOjpkaXNwYXRj
aE9uZU1lc3NhZ2UoKSBjYW4gYmUgcmUtZW50ZXJlZCB3aGlsZSBoYW5kbGluZyBDbWQta2V5IG1l
bnUKKyAgICAgICAgZXF1aXZhbGVudHMsIEFTU0VSVCghX2RhdGEtPl9rZXlEb3duRXZlbnRCZWlu
Z1Jlc2VudCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMDc2NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTYzMDc0ODc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViS2l0MkluaXRp
YWxpemUuY3BwOiAoV2ViS2l0OjpJbml0aWFsaXplV2ViS2l0Mik6IEFkZGVkIE5TTW9kYWxQYW5l
bFJ1bkxvb3BNb2RlCisgICAgICAgIHRvIFJ1bkxvb3AgZXZlbnQgc291cmNlIGFuZCB0aW1lciBt
b2Rlcy4KKwogMjAxNC0wMy0yNiAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXVtXSzJdIDxyZGFyOi8vcHJvYmxlbS8xNjI2NTI3Mj4gUkVHUkVT
U0lPTiAoV2ViS2l0Mik6IFNvbWUgcGFnZXMgYXBwZWFyIGJsYW5rIHVudGlsIHlvdSBzY3JvbGwK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcAkocmV2
aXNpb24gMTY2MzQ1KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYktpdDJJbml0aWFsaXpl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsOSArMjgsOSBAQAogCiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWFp
blJ1bkxvb3AuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNp
ZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJXZWJTeXN0ZW1JbnRlcmZhY2UuaCIKQEAgLTUy
LDcgKzUyLDcgQEAgdm9pZCBJbml0aWFsaXplV2ViS2l0MigpCiAKICAgICBKU0M6OmluaXRpYWxp
emVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKCk7Ci0gICAgUnVu
TG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZU1h
aW5SdW5Mb29wKCk7CiAKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgV2ViQ29yZTo6aW5pdGlhbGl6
ZUxvZ2dpbmdDaGFubmVsc0lmTmVjZXNzYXJ5KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxNjYzNDUpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwzOCBAQAorMjAxNC0wMy0yNSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFw
QGFwcGxlLmNvbT4KKworICAgICAgICBDb25uZWN0aW9uOjpkaXNwYXRjaE9uZU1lc3NhZ2UoKSBj
YW4gYmUgcmUtZW50ZXJlZCB3aGlsZSBoYW5kbGluZyBDbWQta2V5IG1lbnUKKyAgICAgICAgZXF1
aXZhbGVudHMsIEFTU0VSVCghX2RhdGEtPl9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDc2NworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMTYzMDc0ODc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCisKKyAgICAgICAgU3dpdGNoZWQgdG8gYSBXZWJDb3JlIHdyYXBwZXIgZm9yIFJ1bkxv
b3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCB0aGF0IGFkZHMKKyAgICAgICAgTlNNb2RhbFBhbmVs
UnVuTG9vcE1vZGUgdG8gUnVuTG9vcCBldmVudCBzb3VyY2UgYW5kIHRpbWVyIG1vZGVzLgorCisg
ICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW06ICgrW0NhcmJvbldpbmRvd0Fk
YXB0ZXIgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIEhpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0
Lm1tOiAoK1tXZWJCYWNrRm9yd2FyZExpc3QgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIEhpc3Rv
cnkvV2ViSGlzdG9yeUl0ZW0ubW06ICgrW1dlYkhpc3RvcnlJdGVtIGluaXRpYWxpemVdKToKKyAg
ICAgICAgKiBNaXNjL1dlYkNhY2hlLm1tOiAoK1tXZWJDYWNoZSBpbml0aWFsaXplXSk6CisgICAg
ICAgICogTWlzYy9XZWJFbGVtZW50RGljdGlvbmFyeS5tbTogKCtbV2ViRWxlbWVudERpY3Rpb25h
cnkgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIE1pc2MvV2ViSWNvbkRhdGFiYXNlLm1tOiAoK1tX
ZWJJY29uRGF0YWJhc2UgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dl
Ykhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbTogKCtbV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5W
aWV3IGluaXRpYWxpemVdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdp
blZpZXcubW06CisgICAgICAgICogUGx1Z2lucy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbToKKyAg
ICAgICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbTogKCtbV2ViTmV0c2NhcGVQ
bHVnaW5WaWV3IGluaXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQubW06ICgrW1dlYlVuZG9TdGVwIGluaXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dl
YkFyY2hpdmUubW06ICgrW1dlYkFyY2hpdmVQcml2YXRlIGluaXRpYWxpemVdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkRhdGFTb3VyY2UubW06ICgrW1dlYkRhdGFTb3VyY2UgaW5pdGlhbGl6ZV0p
OgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgrW1dlYkhUTUxW
aWV3UHJpdmF0ZSBpbml0aWFsaXplXSk6CisgICAgICAgICgrW1dlYkhUTUxWaWV3IGluaXRpYWxp
emVdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOiAoK1tXZWJQcmVmZXJl
bmNlcyBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViVmlldy9XZWJSZXNvdXJjZS5tbTogKCtb
V2ViUmVzb3VyY2VQcml2YXRlIGluaXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRl
eHRJdGVyYXRvci5tbTogKCtbV2ViVGV4dEl0ZXJhdG9yUHJpdmF0ZSBpbml0aWFsaXplXSk6Cisg
ICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOiAoK1tXZWJWaWV3IGluaXRpYWxpemVdKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLm1tOiAoK1tXZWJWaWV3UHJpdmF0ZSBpbml0aWFs
aXplXSk6CisKIDIwMTQtMDMtMjYgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29t
PgogCiAgICAgICAgIFByb3BhZ2F0ZSB0aGUgaGlkZGVuRnJvbUluc3BlY3RvciBmbGFnIG9uIFJl
c291cmNlUmVxdWVzdCBpbgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldp
bmRvd0FkYXB0ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0Nh
cmJvbldpbmRvd0FkYXB0ZXIubW0JKHJldmlzaW9uIDE2NjM0NSkKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Miwx
MCArNzIsMTAgQEAKICNpbXBvcnQgPEhJVG9vbGJveC9ISVZpZXcuaD4KICNpbXBvcnQgPGFzc2Vy
dC5oPgogCisjaW1wb3J0IDxXZWJDb3JlL01haW5SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRp
bmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW1wb3J0IDx3dGYvUnVuTG9vcC5o
PgogCiAjaW1wb3J0ICJXZWJLaXRMb2dnaW5nLmgiCiAjaW1wb3J0ICJXZWJOU09iamVjdEV4dHJh
cy5oIgpAQCAtMjcyLDcgKzI3Miw3IEBAICsgKHZvaWQpaW5pdGlhbGl6ZQogewogICAgIEpTQzo6
aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1By
b2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7
CisgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNG
aW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9tYWMv
SGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0JKHJldmlzaW9uIDE2NjM0NSkKKysr
IFNvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tCSh3b3JraW5n
IGNvcHkpCkBAIC00MCw2ICs0MCw3IEBACiAjaW1wb3J0ICJXZWJWaWV3UHJpdmF0ZS5oIgogI2lt
cG9ydCA8V2ViQ29yZS9CYWNrRm9yd2FyZExpc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGlzdG9y
eUl0ZW0uaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWFpblJ1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbXBvcnQgPFdlYkNv
cmUvU2V0dGluZ3MuaD4KQEAgLTQ5LDcgKzUwLDYgQEAKICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25z
Lmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgotI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xMDYsNyArMTA2LDcgQEAgKyAodm9pZClp
bml0aWFsaXplCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRp
bmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgp
OwotICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFdlYkNvcmU6Omlu
aXRpYWxpemVNYWluUnVuTG9vcCgpOwogI2VuZGlmCiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9u
TWFpblRocmVhZChzZWxmKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2Vi
SGlzdG9yeUl0ZW0ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9X
ZWJIaXN0b3J5SXRlbS5tbQkocmV2aXNpb24gMTY2MzQ1KQorKysgU291cmNlL1dlYktpdC9tYWMv
SGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDUsMTQgKzQ1LDE0
IEBACiAjaW1wb3J0ICJXZWJUeXBlc0ludGVybmFsLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0hpc3Rv
cnlJdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ltYWdlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1VS
TC5oPgorI2ltcG9ydCA8V2ViQ29yZS9NYWluUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Q
YWdlQ2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KKyNpbXBvcnQgPFdl
YkNvcmUvVVJMLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1w
b3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRp
b25zLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgotI2ltcG9ydCA8d3RmL1J1bkxvb3Au
aD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCkBAIC0xMjgsNyArMTI4LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAjaWYgIVBM
QVRGT1JNKElPUykKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6Omlu
aXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFJ1bkxvb3A6Omlu
aXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFdlYkNvcmU6OmluaXRpYWxpemVNYWluUnVuTG9v
cCgpOwogI2VuZGlmCiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ2FjaGUubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbQkocmV2aXNpb24gMTY2MzQ1KQor
KysgU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbQkod29ya2luZyBjb3B5KQpAQCAt
MzIsMTAgKzMyLDEwIEBACiAjaW1wb3J0ICJXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgPFdl
YkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ3Jvc3NP
cmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9NYWluUnVuTG9v
cC5oPgogI2ltcG9ydCA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgogI2ltcG9ydCA8cnVudGltZS9J
bml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgotI2ltcG9y
dCA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKElPUykKICNpbXBvcnQgIk1lbW9yeU1l
YXN1cmUuaCIKQEAgLTU4LDcgKzU4LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAjaWYgIVBMQVRG
T1JNKElPUykKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRp
YWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFJ1bkxvb3A6OmluaXRp
YWxpemVNYWluUnVuTG9vcCgpOworICAgIFdlYkNvcmU6OmluaXRpYWxpemVNYWluUnVuTG9vcCgp
OwogI2VuZGlmCiAgICAgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UoKTsgICAKIH0KSW5kZXg6
IFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViRWxlbWVudERpY3Rpb25hcnkubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJFbGVtZW50RGljdGlvbmFyeS5tbQkocmV2
aXNpb24gMTY2MzQ1KQorKysgU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJFbGVtZW50RGljdGlv
bmFyeS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzksMTIgKzM5LDEyIEBACiAjaW1wb3J0IDxXZWJD
b3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpdFRlc3RSZXN1bHQuaD4KICNpbXBvcnQg
PFdlYkNvcmUvSW1hZ2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWFpblJ1bkxvb3AuaD4KICNpbXBv
cnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPFdlYktpdC9ET01Db3Jl
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvRE9NRXh0ZW5zaW9ucy5oPgogI2ltcG9ydCA8cnVudGltZS9J
bml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgotI2ltcG9y
dCA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTY4LDcg
KzY4LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBKU0M6
OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Q
cm9jZXNzTWFpblRocmVhZCgpOwotICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgp
OworICAgIFdlYkNvcmU6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogI2VuZGlmCiAgICAgV2Vi
Q29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tCShyZXZpc2lvbiAxNjYzNDUpCisrKyBTb3Vy
Y2UvV2ViS2l0L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbQkod29ya2luZyBjb3B5KQpAQCAt
NDEsMTEgKzQxLDExIEBACiAjaW1wb3J0IDxXZWJDb3JlL0ljb25EYXRhYmFzZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9JbWFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW1wb3J0
IDxXZWJDb3JlL01haW5SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9UaHJlYWRDaGVjay5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0
aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgotI2ltcG9ydCA8
d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTkyLDcgKzky
LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5n
KCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsK
LSAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBXZWJDb3JlOjppbml0
aWFsaXplTWFpblJ1bkxvb3AoKTsKIH0KIAogKyAoV2ViSWNvbkRhdGFiYXNlICopc2hhcmVkSWNv
bkRhdGFiYXNlCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2Fw
ZVBsdWdpblZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9X
ZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCShyZXZpc2lvbiAxNjYzNDUpCisrKyBTb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTUxLDYgKzUxLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTFBsdWdJbkVs
ZW1lbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWFpblJ1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUmVuZGVyVmlldy5oPgpAQCAtNjEsNyArNjIsNiBAQAogI2ltcG9ydCA8cnVudGlt
ZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2lt
cG9ydCA8d3RmL01haW5UaHJlYWQuaD4KLSNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNkZWZpbmUgTG9naW5XaW5kb3dEaWRTd2l0Y2hGcm9t
VXNlck5vdGlmaWNhdGlvbiAgICBAIldlYkxvZ2luV2luZG93RGlkU3dpdGNoRnJvbVVzZXJOb3Rp
ZmljYXRpb24iCkBAIC03NSw3ICs3NSw3IEBAICsgKHZvaWQpaW5pdGlhbGl6ZQogewogICAgIEpT
Qzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRU
b1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29w
KCk7CisgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9i
akNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICBXS1NlbmRVc2VyQ2hhbmdlTm90aWZp
Y2F0aW9ucygpOwogfQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlUGx1
Z2luUGFja2FnZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dl
YkJhc2VQbHVnaW5QYWNrYWdlLm1tCShyZXZpc2lvbiAxNjYzNDUpCisrKyBTb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNrYWdlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSw2ICsyOSw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV2ViQmFzZVBsdWdpblBhY2thZ2UuaD4KIAog
I2ltcG9ydCA8YWxnb3JpdGhtPgorI2ltcG9ydCA8V2ViQ29yZS9NYWluUnVuTG9vcC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktp
dE5TU3RyaW5nRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViTmV0c2NhcGVQbHVnaW5QYWNr
YWdlLmg+CkBAIC0zNyw3ICszOCw2IEBACiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2lt
cG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5o
PgotI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtNjksNyArNjksNyBAQCArICh2b2lkKWluaXRp
YWxpemUKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygp
OwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0g
ICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgV2ViQ29yZTo6aW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7CiAjZW5kaWYKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWlu
VGhyZWFkKHNlbGYpOwogfQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRz
Y2FwZVBsdWdpblZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0JKHJldmlzaW9uIDE2NjM0NSkKKysrIFNvdXJjZS9X
ZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCSh3b3JraW5nIGNvcHkp
CkBAIC02NCw2ICs2NCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVHJlZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTFBsdWdJbkVsZW1l
bnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWFpblJ1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UGFnZS5oPiAKICNpbXBvcnQgPFdlYkNvcmUvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9Qcm94eVNlcnZlci5oPgpAQCAtODEsNyArODIsNiBAQAogI2ltcG9y
dCA8cnVudGltZS9KU0xvY2suaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0
IDx3dGYvTWFpblRocmVhZC5oPgotI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2RlZmluZSBMb2dpbldpbmRvd0RpZFN3aXRjaEZyb21Vc2Vy
Tm90aWZpY2F0aW9uICAgIEAiV2ViTG9naW5XaW5kb3dEaWRTd2l0Y2hGcm9tVXNlck5vdGlmaWNh
dGlvbiIKQEAgLTE5NCw3ICsxOTQsNyBAQCArICh2b2lkKWluaXRpYWxpemUKIHsKICAgICBKU0M6
OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Q
cm9jZXNzTWFpblRocmVhZCgpOwotICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgp
OworICAgIFdlYkNvcmU6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpD
RmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiAgICAgV0tTZW5kVXNlckNoYW5nZU5vdGlmaWNh
dGlvbnMoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhv
c3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0JKHJldmlzaW9u
IDE2NjM0NSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5l
dHNjYXBlUGx1Z2luVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQAogI2lt
cG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1l
Vmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MUGx1Z0luRWxlbWVudC5oPgorI2ltcG9ydCA8
V2ViQ29yZS9NYWluUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJFbWJlZGRlZE9i
amVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CkBAIC01MSw3ICs1Miw2IEBACiAjaW1wb3J0IDx3dGYv
QXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9P
YmpjUnVudGltZUV4dHJhcy5oPgotI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNzQsNyArNzQsNyBA
QCArICh2b2lkKWluaXRpYWxpemUKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIEpTQzo6aW5pdGlh
bGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NN
YWluVGhyZWFkKCk7Ci0gICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAg
V2ViQ29yZTo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAjZW5kaWYKICAgICBXZWJDb3JlT2Jq
Q0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogICAgIFdLU2VuZFVzZXJDaGFuZ2VOb3RpZmlj
YXRpb25zKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tCShyZXZpc2lvbiAxNjYzNDUpCisrKyBTb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAg
LTU5LDYgKzU5LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRNTFRleHRBcmVhRWxlbWVudC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2Fj
eVdlYkFyY2hpdmUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWFpblJ1bkxvb3AuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTcwLDcgKzcxLDYgQEAKICNpbXBv
cnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJl
YWQuaD4KICNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW1wb3J0IDx3dGYvUnVuTG9vcC5o
PgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBQTEFURk9STShJT1MpCkBA
IC0xMTcsNyArMTE3LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAjaWYgIVBMQVRGT1JNKElPUykK
ICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWlu
VGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWlu
UnVuTG9vcCgpOworICAgIFdlYkNvcmU6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogI2VuZGlm
CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tCShyZXZpc2lvbiAxNjYzNDUpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA5
LDYgKzEwOSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xvYWRlck5TVVJMRXh0cmFzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWFpbkZy
YW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL01haW5SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L01vdXNlRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9QbHVnaW5WaWV3QmFzZS5oPgpAQCAtMTI4LDcgKzEyOSw2IEBACiAjaW1wb3J0IDxydW50aW1l
L0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1w
b3J0IDx3dGYvUGFzc1JlZlB0ci5oPgotI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklE
RU8pCkBAIC0yMzk5LDcgKzIzOTksNyBAQCArICh2b2lkKWluaXRpYWxpemUKICNpZiAhUExBVEZP
Uk0oSU9TKQogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlh
bGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgUnVuTG9vcDo6aW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7CisgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7
CiAjZW5kaWYKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQpJ
bmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbQkocmV2aXNpb24gMTY2
MzQ1KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiwxMCArMzYsMTAgQEAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0luaXRp
YWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvQXJjaGl2ZVJlc291cmNlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWFp
blJ1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdl
YkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+Ci0j
aW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAt
NzAsNyArNzAsNyBAQCArICh2b2lkKWluaXRpYWxpemUKICNpZiAhUExBVEZPUk0oSU9TKQogICAg
IEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJl
YWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5M
b29wKCk7CisgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAjZW5kaWYKICAg
ICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQpJbmRleDogU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQkocmV2aXNpb24gMTY2MzQ1KQor
KysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC01Myw2ICs1Myw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1VSTC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9MZWdhY3lXZWJBcmNoaXZlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVn
aXN0cnkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWFpblJ1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUmVzb3VyY2VCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgpAQCAtNjUsNyArNjYsNiBAQAogI2lt
cG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KLSNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBQTEFURk9S
TShJT1MpCiAjaW1wb3J0ICJXZWJQREZWaWV3SU9TLmgiCkBAIC0xNjEsNyArMTYxLDcgQEAgKyAo
dm9pZClpbml0aWFsaXplCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAgICAgSlNDOjppbml0aWFs
aXplVGhyZWFkaW5nKCk7CiAgICAgICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nl
c3NNYWluVGhyZWFkKCk7Ci0gICAgICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgp
OworICAgICAgICBXZWJDb3JlOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICNlbmRpZgogICAg
ICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogICAgIH0KSW5kZXg6
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQkocmV2aXNpb24gMTY2MzQ1
KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQkod29ya2luZyBj
b3B5KQpAQCAtMTAxLDYgKzEwMSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hp
dmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9NYWluRnJhbWUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWFpblJ1bkxvb3AuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SYW5nZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CkBAIC0xMjQsNyArMTI1LDYgQEAKICNpbXBvcnQgPHJ1bnRp
bWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNp
bXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgotI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4K
IAogI2lmICFQTEFURk9STShJT1MpCiAjaW1wb3J0IDxBcHBLaXQvTlNBY2Nlc3NpYmlsaXR5Lmg+
CkBAIC02NDMsNyArNjQzLDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAjaWYgIVBMQVRGT1JNKElP
UykKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVN
YWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFJ1bkxvb3A6OmluaXRpYWxpemVN
YWluUnVuTG9vcCgpOworICAgIFdlYkNvcmU6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogI2Vu
ZGlmCiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICAKQEAg
LTI0NzQsNyArMjQ3NCw3IEBAICsgKHZvaWQpaW5pdGlhbGl6ZQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm5UeXBlczpbW3NlbGYgY2xhc3NdIF9pbnNlcnRhYmxlUGFzdGVib2Fy
ZFR5cGVzXV07CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0
aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBSdW5Mb29wOjppbml0
aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBXZWJDb3JlOjppbml0aWFsaXplTWFpblJ1bkxvb3Ao
KTsKICNlbmRpZgogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9
CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0JKHJl
dmlzaW9uIDE2NjM0NSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQyLDEyICs0MiwxMiBAQAogI2ltcG9ydCAiV2ViU3lz
dGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdl
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9N
YWluUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5p
dGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KLSNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIGVudW0gewogICAg
IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFp
biA9IDMKQEAgLTM5Miw3ICszOTIsNyBAQCArICh2b2lkKWluaXRpYWxpemUKICNpZiAhUExBVEZP
Uk0oSU9TKQogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlh
bGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgUnVuTG9vcDo6aW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7CisgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7
CiAjZW5kaWYKICNpZiBQTEFURk9STShJT1MpCiAgICAgc3RhdGljIHVuc2lnbmVkIGRlZmF1bHRN
YXhpbXVtSW1hZ2VTaXplID0gMjAgKiAxMDI0ICogMTAyNDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUmVzb3VyY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbQkocmV2aXNpb24gMTY2MzQ1KQorKysgU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzgsMTMg
KzM4LDEzIEBACiAjaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9B
cmNoaXZlUmVzb3VyY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgor
I2ltcG9ydCA8V2ViQ29yZS9NYWluUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1l
QXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEVuY29kaW5nLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVP
YmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVVUkxSZXNwb25zZS5oPgogI2lt
cG9ydCA8d3RmL01haW5UaHJlYWQuaD4KLSNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC02OSw3ICs2OSw3IEBAICsgKHZvaWQpaW5pdGlhbGl6
ZQogI2lmICFQTEFURk9STShJT1MpCiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAg
ICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBS
dW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBXZWJDb3JlOjppbml0aWFsaXpl
TWFpblJ1bkxvb3AoKTsKICNlbmRpZgogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJl
YWQoc2VsZik7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRJdGVy
YXRvci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRJ
dGVyYXRvci5tbQkocmV2aXNpb24gMTY2MzQ1KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJUZXh0SXRlcmF0b3IubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDExICsyOCwxMSBAQAog
I2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJET01SYW5nZUludGVybmFsLmgi
CiAjaW1wb3J0ICJXZWJUeXBlc0ludGVybmFsLmgiCisjaW1wb3J0IDxXZWJDb3JlL01haW5SdW5M
b29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJdGVyYXRvci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFk
aW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgotI2ltcG9ydCA8d3RmL1J1bkxvb3Au
aD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KIAogQGludGVyZmFjZSBXZWJUZXh0SXRlcmF0b3JQ
cml2YXRlIDogTlNPYmplY3QgewpAQCAtNDksNyArNDksNyBAQCArICh2b2lkKWluaXRpYWxpemUK
ICNpZiAhUExBVEZPUk0oSU9TKQogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAg
IFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgUnVu
TG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZU1h
aW5SdW5Mb29wKCk7CiAjZW5kaWYKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFk
KHNlbGYpOwogfQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkocmV2aXNp
b24gMTY2MzQ1KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNDgsNiArMTQ4LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTG9nZ2luZy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L01haW5GcmFtZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9NYWluUnVuTG9vcC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvTm9kZUxp
c3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0aW9uLmg+CkBAIC0xOTUsNyArMTk2LDYg
QEAKICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1JlZkNv
dW50ZWRMZWFrQ291bnRlci5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgotI2ltcG9ydCA8d3Rm
L1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogI2lmICFQTEFURk9S
TShJT1MpCkBAIC00Njk3LDcgKzQ2OTcsNyBAQCArICh2b2lkKWluaXRpYWxpemUKICNpZiAhUExB
VEZPUk0oSU9TKQogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5p
dGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgUnVuTG9vcDo6aW5p
dGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZU1haW5SdW5Mb29w
KCk7CiAjZW5kaWYKIAogI2lmICFQTEFURk9STShJT1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlld0RhdGEubW0JKHJldmlzaW9uIDE2NjM0NSkKKysrIFNvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0JKHdvcmtpbmcgY29weSkKQEAgLTMzLDEyICsz
MywxMiBAQAogI2ltcG9ydCAiV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgiCiAjaW1wb3J0ICJX
ZWJWaWV3R3JvdXAuaCIKICNpbXBvcnQgPFdlYkNvcmUvQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9s
bGVyLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0hpc3RvcnlJdGVtLmg+CisjaW1wb3J0IDxXZWJDb3JlL01haW5SdW5Mb29wLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxvYmpjL29iamMt
YXV0by5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0
IDx3dGYvTWFpblRocmVhZC5oPgotI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRG
T1JNKElPUykKICNpbXBvcnQgIldlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MuaCIKQEAgLTc4LDcg
Kzc4LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBKU0M6
OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Q
cm9jZXNzTWFpblRocmVhZCgpOwotICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgp
OworICAgIFdlYkNvcmU6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogI2VuZGlmCiAgICAgV2Vi
Q29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0K
</data>
<flag name="commit-queue"
          id="252179"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227950</attachid>
            <date>2014-03-27 09:28:53 -0700</date>
            <delta_ts>2014-03-27 09:29:39 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>RunLoopMode.txt</filename>
            <type>text/plain</type>
            <size>42900</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNjYzNDUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE0LTAzLTI1ICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIENvbm5lY3Rpb246OmRpc3BhdGNoT25lTWVzc2Fn
ZSgpIGNhbiBiZSByZS1lbnRlcmVkIHdoaWxlIGhhbmRsaW5nIENtZC1rZXkgbWVudQorICAgICAg
ICBlcXVpdmFsZW50cywgQVNTRVJUKCFfZGF0YS0+X2tleURvd25FdmVudEJlaW5nUmVzZW50KQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwNzY3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjMwNzQ4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KKworICAgICAgICBDaGFuZ2VkIFJ1bkxvb3AgdG8gd2FrZSB1cCBhbmQgZmly
ZSB0aW1lcnMgb25seSBpbiBkZWZhdWx0IHJ1biBsb29wIG1vZGUgYnkgZGVmYXVsdCwKKyAgICAg
ICAgYW5kIGFkZGVkIGFuIGFiaWxpdHkgdG8gYWRkIG1vcmUgbW9kZXMgKGNhbid0IHVzZSBBcHBL
aXQgc3ltYm9scyBpbiBXVEYpLgorCisgICAgICAgIEluIGFkZGl0aW9uIHRvIHRoaXMgYnVnLCB0
aGUgY2hhbmdlIGFsc28gYmxvY2tzIG1vZGFsIGFsZXJ0cyBmcm9tIGFwcGVhcmluZyB1bmRlcgor
ICAgICAgICBtZW51cyBkdXJpbmcgbWVudSB0cmFja2luZy4KKworICAgICAgICAqIHd0Zi9SdW5M
b29wLmg6CisgICAgICAgICogd3RmL2NmL1J1bkxvb3BDRi5jcHA6CisgICAgICAgIChXVEY6OlJ1
bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjphZGRNb2RlRm9yV2FrZVVw
QW5kVGltZXJzKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisK
IDIwMTQtMDMtMjYgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQuIFJlbW92aW5nIHRoZSByZW1haW5pbmcgQXV0b21ha2UgY3J1ZnQuCklu
ZGV4OiBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvUnVuTG9vcC5oCShyZXZpc2lvbiAxNjYzNDUpCisrKyBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29w
LmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDYgKzY3LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcnVuRm9yRHVyYXRpb24oZG91
YmxlIGR1cmF0aW9uKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhZGRNb2RlRm9yV2Fr
ZVVwQW5kVGltZXJzKENGU3RyaW5nUmVmKTsKICNlbmRpZgogICAgIAogICAgIGNsYXNzIFRpbWVy
QmFzZSB7CkBAIC0xNDUsNiArMTQ2LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBwZXJm
b3JtV29yayh2b2lkKik7CiAgICAgUmV0YWluUHRyPENGUnVuTG9vcFJlZj4gbV9ydW5Mb29wOwog
ICAgIFJldGFpblB0cjxDRlJ1bkxvb3BTb3VyY2VSZWY+IG1fcnVuTG9vcFNvdXJjZTsKKyAgICBS
ZXRhaW5QdHI8Q0ZNdXRhYmxlU2V0UmVmPiBtX2FkZGl0aW9uYWxUaW1lck1vZGVzOwogICAgIGlu
dCBtX25lc3RpbmdMZXZlbDsKICNlbGlmIFBMQVRGT1JNKEVGTCkKICAgICBNdXRleCBtX3BpcGVM
b2NrOwpJbmRleDogU291cmNlL1dURi93dGYvY2YvUnVuTG9vcENGLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCShyZXZpc2lvbiAxNjYzNDUpCisrKyBT
b3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0
NCw3IEBAIFJ1bkxvb3A6OlJ1bkxvb3AoKQogewogICAgIENGUnVuTG9vcFNvdXJjZUNvbnRleHQg
Y29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgcGVyZm9ybVdvcmsgfTsK
ICAgICBtX3J1bkxvb3BTb3VyY2UgPSBhZG9wdENGKENGUnVuTG9vcFNvdXJjZUNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAwLCAmY29udGV4dCkpOwotICAgIENGUnVuTG9vcEFkZFNvdXJjZSht
X3J1bkxvb3AuZ2V0KCksIG1fcnVuTG9vcFNvdXJjZS5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1v
ZGVzKTsKKyAgICBDRlJ1bkxvb3BBZGRTb3VyY2UobV9ydW5Mb29wLmdldCgpLCBtX3J1bkxvb3BT
b3VyY2UuZ2V0KCksIGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSk7CiB9CiAKIFJ1bkxvb3A6On5SdW5M
b29wKCkKQEAgLTU3LDYgKzU3LDE0IEBAIHZvaWQgUnVuTG9vcDo6cnVuRm9yRHVyYXRpb24oZG91
YmxlIGR1cmEKICAgICBDRlJ1bkxvb3BSdW5Jbk1vZGUoa0NGUnVuTG9vcERlZmF1bHRNb2RlLCBk
dXJhdGlvbiwgdHJ1ZSk7CiB9CiAKK3ZvaWQgUnVuTG9vcDo6YWRkTW9kZUZvcldha2VVcEFuZFRp
bWVycyhDRlN0cmluZ1JlZiBtb2RlKQoreworICAgIENGUnVuTG9vcEFkZFNvdXJjZShtX3J1bkxv
b3AuZ2V0KCksIG1fcnVuTG9vcFNvdXJjZS5nZXQoKSwgbW9kZSk7CisgICAgaWYgKCFtX2FkZGl0
aW9uYWxUaW1lck1vZGVzKQorICAgICAgICBtX2FkZGl0aW9uYWxUaW1lck1vZGVzID0gYWRvcHRD
RihDRlNldENyZWF0ZU11dGFibGUoMCwgMCwgJmtDRkNvcHlTdHJpbmdTZXRDYWxsQmFja3MpKTsK
KyAgICBDRlNldEFkZFZhbHVlKG1fYWRkaXRpb25hbFRpbWVyTW9kZXMuZ2V0KCksIG1vZGUpOwor
fQorCiB2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCiB7CiAgICAgQ0ZSdW5Mb29wU291cmNlU2lnbmFs
KG1fcnVuTG9vcFNvdXJjZS5nZXQoKSk7CkBAIC0xMDksNyArMTE3LDEyIEBAIHZvaWQgUnVuTG9v
cDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmUKICAgICBDRlJ1bkxvb3BUaW1lckNvbnRleHQg
Y29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwgMCB9OwogICAgIENGVGltZUludGVydmFsIHJlcGVh
dEludGVydmFsID0gcmVwZWF0ID8gbmV4dEZpcmVJbnRlcnZhbCA6IDA7CiAgICAgbV90aW1lciA9
IGFkb3B0Q0YoQ0ZSdW5Mb29wVGltZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgQ0ZBYnNv
bHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBuZXh0RmlyZUludGVydmFsLCByZXBlYXRJbnRlcnZhbCwg
MCwgMCwgdGltZXJGaXJlZCwgJmNvbnRleHQpKTsKLSAgICBDRlJ1bkxvb3BBZGRUaW1lcihtX3J1
bkxvb3AubV9ydW5Mb29wLmdldCgpLCBtX3RpbWVyLmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9k
ZXMpOworICAgIENGUnVuTG9vcEFkZFRpbWVyKG1fcnVuTG9vcC5tX3J1bkxvb3AuZ2V0KCksIG1f
dGltZXIuZ2V0KCksIGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSk7CisgICAgaWYgKG1fcnVuTG9vcC5t
X2FkZGl0aW9uYWxUaW1lck1vZGVzKSB7CisgICAgICAgIENGU2V0QXBwbHlGdW5jdGlvbihtX3J1
bkxvb3AubV9hZGRpdGlvbmFsVGltZXJNb2Rlcy5nZXQoKSwgW10oY29uc3Qgdm9pZCogbW9kZSwg
dm9pZCogY29udGV4dCkgeworICAgICAgICAgICAgQ0ZSdW5Mb29wQWRkVGltZXIoc3RhdGljX2Nh
c3Q8UnVuTG9vcDo6VGltZXJCYXNlKj4oY29udGV4dCktPm1fcnVuTG9vcC5tX3J1bkxvb3AuZ2V0
KCksIHN0YXRpY19jYXN0PFJ1bkxvb3A6OlRpbWVyQmFzZSo+KGNvbnRleHQpLT5tX3RpbWVyLmdl
dCgpLCBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4obW9kZSkpOworICAgICAgICB9LCB0aGlzKTsK
KyAgICB9CiB9CiAKIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE2NjM0NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE0LTAzLTI2ICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIENvbm5lY3Rpb246OmRpc3BhdGNoT25lTWVzc2Fn
ZSgpIGNhbiBiZSByZS1lbnRlcmVkIHdoaWxlIGhhbmRsaW5nIENtZC1rZXkgbWVudQorICAgICAg
ICBlcXVpdmFsZW50cywgQVNTRVJUKCFfZGF0YS0+X2tleURvd25FdmVudEJlaW5nUmVzZW50KQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwNzY3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjMwNzQ4Nz4KKworICAgICAgICBBZGRlZCBhIHdyYXBw
ZXIgZm9yIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluVGhyZWFkIHRoYXQgYWxzbyBhZGRzIG1vZGFs
IHJ1biBsb29wCisgICAgICAgIG1vZGUgdG8gaXQgb24gTWFjLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL01haW5SdW5Mb29wLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjppbml0aWFsaXplTWFpblJ1bkxvb3ApOgorICAgICAgICAqIHBsYXRmb3Jt
L01haW5SdW5Mb29wLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9NYWluUnVuTG9v
cC5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplTWFpblJ1bkxvb3ApOgor
CiAyMDE0LTAzLTI2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4
IGlPUyBidWlsZC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNjYzNDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTgwMyw2
ICsxODAzLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0xpbmtIYXNoLmNw
cAogICAgIHBsYXRmb3JtL0xvZ2dpbmcuY3BwCiAgICAgcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3Ry
eS5jcHAKKyAgICBwbGF0Zm9ybS9NYWluUnVuTG9vcC5jcHAKICAgICBwbGF0Zm9ybS9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuY3BwCiAgICAgcGxhdGZvcm0vTm90SW1wbGVtZW50ZWQuY3BwCiAgICAg
cGxhdGZvcm0vUGxhdGZvcm1FdmVudC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZp
c2lvbiAxNjYzNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBj
b3B5KQpAQCAtODkyLDYgKzg5Miw3IEBAIF9fWk43V2ViQ29yZTIxV2luZG93c0xhdGluMUVuY29k
aW5nRXYKIF9fWk43V2ViQ29yZTIxY3JlYXRlQ0ZVUkxGcm9tQnVmZmVyRVBLY21QSzdfX0NGVVJM
CiBfX1pON1dlYkNvcmUyMWZpbmRFdmVudFdpdGhLZXlTdGF0ZUVQTlNfNUV2ZW50RQogX19aTjdX
ZWJDb3JlMjFnZXRDYWNoZWRET01TdHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUEtO
M0pTQzlDbGFzc0luZm9FCitfX1pON1dlYkNvcmUyMWluaXRpYWxpemVNYWluUnVuTG9vcEV2CiBf
X1pON1dlYkNvcmUyMWlzQmFja0ZvcndhcmRMb2FkVHlwZUVOU18xM0ZyYW1lTG9hZFR5cGVFCiBf
X1pON1dlYkNvcmUyMW1haW5UaHJlYWROb3JtYWxXb3JsZEV2CiBfX1pON1dlYkNvcmUyMW1hcmtl
clRleHRGb3JMaXN0SXRlbUVQTlNfN0VsZW1lbnRFCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE2NjM0NSkKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTE5MjE4LDYgKzE5MjE4LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXExvY2FsaXplZFN0cmluZ3MuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHBsYXRmb3JtXExvZ2dpbmcuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRm
b3JtXE1lbW9yeVByZXNzdXJlSGFuZGxlci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccGxhdGZvcm1cTWFpblJ1bkxvb3AuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHBsYXRmb3JtXE1haW5UaHJlYWRUYXNrLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVxNSU1FVHlwZVJlZ2lzdHJ5LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxwbGF0Zm9ybVxOb3RJbXBsZW1lbnRlZC5oIiAvPgpJbmRleDogU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2
aXNpb24gMTY2MzQ1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC04MDU5LDYgKzgwNTksOSBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgi
PgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cTWFpblJ1bkxvb3AuaCI+CisgICAgICA8
RmlsdGVyPnBsYXRmb3JtPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxNYWluVGhyZWFkVGFzay5oIj4KICAgICAgIDxGaWx0ZXI+
cGxhdGZvcm08L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2NjM0
NSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtNTg5MSw2ICs1ODkxLDkgQEAKIAkJRTFBREVERDUwRTc2QkQ2MDAw
NEExQTVFIC8qIERPTU1lc3NhZ2VQb3J0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQURFREQ0MEU3NkJENjAwMDRBMUE1RSAvKiBET01N
ZXNzYWdlUG9ydEludGVybmFsLmggKi87IH07CiAJCUUxQURFRERBMEU3NkJEOTMwMDRBMUE1RSAv
KiBKU01lc3NhZ2VQb3J0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUFERUREODBFNzZCRDkzMDA0QTFBNUUgLyogSlNNZXNzYWdlUG9ydC5oICovOyB9
OwogCQlFMUFERUREQjBFNzZCRDkzMDA0QTFBNUUgLyogSlNNZXNzYWdlUG9ydC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUFERUREOTBFNzZCRDkz
MDA0QTFBNUUgLyogSlNNZXNzYWdlUG9ydC5jcHAgKi87IH07CisJCUUxQjA1NTIzMThFM0VBNTkw
MEFFRDlEMyAvKiBNYWluUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFCMDU1MjIxOEUzRUE1OTAwQUVEOUQzIC8qIE1haW5SdW5Mb29wLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTFCMDU1
MjUxOEUzRUFCMTAwQUVEOUQzIC8qIE1haW5SdW5Mb29wLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQjA1NTI0MThFM0VBQjEwMEFFRDlEMyAvKiBN
YWluUnVuTG9vcC5jcHAgKi87IH07CisJCUUxQjA1NTI3MThFM0VCNjIwMEFFRDlEMyAvKiBNYWlu
UnVuTG9vcC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxQjA1NTI2MThFM0VCNjIwMEFFRDlEMyAvKiBNYWluUnVuTG9vcC5tbSAqLzsgfTsKIAkJRTFC
MjUxMDYxNTJBMEJBRjAwNjlCNzc5IC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCMjUxMDQxNTJBMEJB
RjAwNjlCNzc5IC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmQuY3BwICovOyB9OwogCQlFMUIyNTEw
NzE1MkEwQkIwMDA2OUI3NzkgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCMjUxMDUxNTJBMEJBRjAwNjlC
Nzc5IC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmQuaCAqLzsgfTsKIAkJRTFCNENEMjUxMEIzMjJF
MjAwQkZGRDdFIC8qIENyZWRlbnRpYWxTdG9yYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCNENEMjQxMEIzMjJFMjAwQkZGRDdFIC8qIENy
ZWRlbnRpYWxTdG9yYWdlTWFjLm1tICovOyB9OwpAQCAtMTMyNjcsNiArMTMyNzAsOSBAQAogCQlF
MUFERURENDBFNzZCRDYwMDA0QTFBNUUgLyogRE9NTWVzc2FnZVBvcnRJbnRlcm5hbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01NZXNzYWdlUG9ydEludGVybmFsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQURFREQ4MEU3NkJEOTMwMDRBMUE1RSAvKiBK
U01lc3NhZ2VQb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVzc2Fn
ZVBvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFBREVERDkwRTc2QkQ5MzAw
NEExQTVFIC8qIEpTTWVzc2FnZVBvcnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNNZXNzYWdlUG9ydC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxQjA1NTIyMThFM0VBNTkwMEFFRDlEMyAvKiBNYWluUnVuTG9vcC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNYWluUnVuTG9vcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMUIwNTUyNDE4RTNFQUIxMDBBRUQ5RDMgLyogTWFpblJ1bkxvb3AuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWFpblJ1bkxvb3AuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUIwNTUyNjE4RTNFQjYyMDBBRUQ5RDMgLyogTWFpblJ1
bkxvb3AubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNYWluUnVu
TG9vcC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFCMjUxMDQxNTJBMEJBRjAw
NjlCNzc5IC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUxQjI1MTA1MTUyQTBCQUYwMDY5Qjc3OSAvKiBTdHlsZVByb3Bl
cnR5U2hvcnRoYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlUHJv
cGVydHlTaG9ydGhhbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFCNENEMjQx
MEIzMjJFMjAwQkZGRDdFIC8qIENyZWRlbnRpYWxTdG9yYWdlTWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ3JlZGVudGlhbFN0b3JhZ2VNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjA5Miw2ICsxNjA5OCw3IEBACiAJCQkJQkMyNUI1
MjgxMzFDNkQzOTAwMTgwRTEwIC8qIExvY2FsaXplZFN0cmluZ3NNYWMuY3BwICovLAogCQkJCTE0
MDI2NDVEMEFGREMxOUIwMDU5MTlFMiAvKiBMb2dnaW5nTWFjLm1tICovLAogCQkJCUNENjQxRUJE
MTgxOUIzNTkwMEVFNEM0MSAvKiBNZWRpYVRpbWVNYWMuY3BwICovLAorCQkJCUUxQjA1NTI2MThF
M0VCNjIwMEFFRDlEMyAvKiBNYWluUnVuTG9vcC5tbSAqLywKIAkJCQlDRDY0MUVCRTE4MTlCMzU5
MDBFRTRDNDEgLyogTWVkaWFUaW1lTWFjLmggKi8sCiAJCQkJNjU3RURBMEExMzg1Q0JEODAwNEUw
NjQ1IC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlck1hYy5tbSAqLywKIAkJCQlCQzc3MkM1RDBDNEVC
MzQ0MDA4MzI4NUYgLyogTUlNRVR5cGVSZWdpc3RyeU1hYy5tbSAqLywKQEAgLTIwOTU3LDYgKzIw
OTY0LDggQEAKIAkJCQk5MzUyMDdCRDA5QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxpemVkU3RyaW5n
cy5oICovLAogCQkJCUE4MjM5REZFMDlCM0NGOEEwMEI2MDY0MSAvKiBMb2dnaW5nLmNwcCAqLywK
IAkJCQlBODIzOURGRjA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5oICovLAorCQkJCUUxQjA1
NTI0MThFM0VBQjEwMEFFRDlEMyAvKiBNYWluUnVuTG9vcC5jcHAgKi8sCisJCQkJRTFCMDU1MjIx
OEUzRUE1OTAwQUVEOUQzIC8qIE1haW5SdW5Mb29wLmggKi8sCiAJCQkJRTE4NzA1NjIxNkU1NEEw
RDAwNTg1RTk3IC8qIE1haW5UaHJlYWRUYXNrLmggKi8sCiAJCQkJQ0RGMkIwMDMxODFGMDU5QzAw
RjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCAqLywKIAkJCQlDRDY0MUVDNzE4MUVENjAxMDBF
RTRDNDEgLyogTWVkaWFTYW1wbGUuaCAqLywKQEAgLTIyODU4LDYgKzIyODY3LDcgQEAKIAkJCQky
OUE4MTIyRTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMjlBODEyMzMwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxp
dHlBUklBR3JpZFJvdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjlBODEyM0IwRkJCOUMxRDAwNTEw
MjkzIC8qIEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuaCBpbiBIZWFkZXJzICovLAorCQkJCUUx
QjA1NTIzMThFM0VBNTkwMEFFRDlEMyAvKiBNYWluUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMjlBODEyMkMwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlMaXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyOUE4MTI0MzBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUxp
c3RCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCTI5QTgxMjQyMEZCQjlDMUQwMDUxMDI5MyAvKiBB
Y2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODc4OCw2ICsy
ODc5OCw3IEBACiAJCQkJOTNDMzhDMDQxNjQ0NzNERDAwMDkxRUIyIC8qIFNjcm9sbGluZ1RyZWVG
aXhlZE5vZGUubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRkM0RTQwRjE4N0Y4MkUxMDA0NTg4MkMg
LyogU2Nyb2xsaW5nVHJlZUlPUy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUFBRERFMzE0REM4
QzhGMDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJlZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
RTFCMDU1MjUxOEUzRUFCMTAwQUVEOUQzIC8qIE1haW5SdW5Mb29wLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTkzOTFBOTlDMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0RTQxMjE4N0Y4MkUxMDA0NTg4MkMgLyog
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk5M0M0
QTQxNjE2MjlERjVBMDBDM0VCNkUgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW0g
aW4gU291cmNlcyAqLywKQEAgLTI4OTMzLDYgKzI4OTQ0LDcgQEAKIAkJCQlFMTM5ODY2MzE1NDc4
NDc0MDAxRTNGNjUgLyogU3R5bGVSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNERF
QUExNzE3QTkzREMzMDAwRTA0MzAgLyogU3R5bGVSZXNvbHZlVHJlZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlFNEJCRUQ0QzE0RkNEQkExMDAzRjBCOTggLyogU3R5bGVSdWxlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUUxQjA1NTI3MThFM0VCNjIwMEFFRDlEMyAvKiBNYWluUnVuTG9vcC5tbSBp
biBTb3VyY2VzICovLAogCQkJCUU0OTQ2RUFFMTU2RTY0REQwMEQzMjk3RiAvKiBTdHlsZVJ1bGVJ
bXBvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThFQTgwMEQwQTE5NTE2RTAwQThFRjVGIC8q
IFN0eWxlU2hlZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRGOUVFRjIxNTZEOUZGQTAwRDIz
RTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01haW5SdW5Mb29wLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NYWluUnVuTG9vcC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NYWluUnVuTG9vcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNYWlu
UnVuTG9vcC5oIgorCisjaWYgIVBMQVRGT1JNKE1BQykKKworI2luY2x1ZGUgPHd0Zi9SdW5Mb29w
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3Ao
KQoreworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworfQorCit9CisKKyNl
bmRpZgoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblJ1
bkxvb3AuY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTAsMCArMSAjIwor
bmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01haW5SdW5Mb29wLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTWFpblJ1bkxvb3AuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL01haW5SdW5Mb29wLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgTWFpblJ1bkxvb3BfaAorI2RlZmluZSBNYWluUnVuTG9vcF9oCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTWFpblJ1bkxvb3BfaAoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblJ1bkxvb3AuaApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0wLDAgKzEgIyMKK25hdGl2ZQpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvTWFpblJ1bkxvb3AubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL01haW5SdW5Mb29wLm1tCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL01haW5SdW5Mb29wLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWFpblJ1bkxvb3AuaCIK
KworI2lmIFBMQVRGT1JNKE1BQykKKworI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3AoKQoreworICAgIFJ1
bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFJ1bkxvb3A6Om1haW4oKS5hZGRN
b2RlRm9yV2FrZVVwQW5kVGltZXJzKChDRlN0cmluZ1JlZilOU01vZGFsUGFuZWxSdW5Mb29wTW9k
ZSk7Cit9CisKK30KKworI2VuZGlmCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvTWFpblJ1bkxvb3AubW0KX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1z
dHlsZQojIyAtMCwwICsxICMjCitMRgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjYzNDUpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wMy0yNSAgQWxleGV5IFBy
b3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBDb25uZWN0aW9uOjpkaXNwYXRj
aE9uZU1lc3NhZ2UoKSBjYW4gYmUgcmUtZW50ZXJlZCB3aGlsZSBoYW5kbGluZyBDbWQta2V5IG1l
bnUKKyAgICAgICAgZXF1aXZhbGVudHMsIEFTU0VSVCghX2RhdGEtPl9rZXlEb3duRXZlbnRCZWlu
Z1Jlc2VudCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMDc2NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTYzMDc0ODc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViS2l0MkluaXRpYWxp
emUuY3BwOiAoV2ViS2l0OjpJbml0aWFsaXplV2ViS2l0Mik6IEFkZGVkIE5TTW9kYWxQYW5lbFJ1
bkxvb3BNb2RlCisgICAgICAgIHRvIFJ1bkxvb3AgZXZlbnQgc291cmNlIGFuZCB0aW1lciBtb2Rl
cy4KKwogMjAxNC0wMy0yNiAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4K
IAogICAgICAgICBbaU9TXVtXSzJdIDxyZGFyOi8vcHJvYmxlbS8xNjI2NTI3Mj4gUkVHUkVTU0lP
TiAoV2ViS2l0Mik6IFNvbWUgcGFnZXMgYXBwZWFyIGJsYW5rIHVudGlsIHlvdSBzY3JvbGwKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcAkocmV2aXNp
b24gMTY2MzQ1KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjgsOSArMjgsOSBAQAogCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWFpblJ1
bkxvb3AuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbmNs
dWRlIDx3dGYvTWFpblRocmVhZC5oPgotI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKICNpbmNsdWRlICJXZWJTeXN0ZW1JbnRlcmZhY2UuaCIKQEAgLTUyLDcg
KzUyLDcgQEAgdm9pZCBJbml0aWFsaXplV2ViS2l0MigpCiAKICAgICBKU0M6OmluaXRpYWxpemVU
aHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKCk7Ci0gICAgUnVuTG9v
cDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZU1haW5S
dW5Mb29wKCk7CiAKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZUxv
Z2dpbmdDaGFubmVsc0lmTmVjZXNzYXJ5KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lv
biAxNjYzNDUpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwzOCBAQAorMjAxNC0wMy0yNSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFw
cGxlLmNvbT4KKworICAgICAgICBDb25uZWN0aW9uOjpkaXNwYXRjaE9uZU1lc3NhZ2UoKSBjYW4g
YmUgcmUtZW50ZXJlZCB3aGlsZSBoYW5kbGluZyBDbWQta2V5IG1lbnUKKyAgICAgICAgZXF1aXZh
bGVudHMsIEFTU0VSVCghX2RhdGEtPl9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDc2NworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTYzMDc0ODc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCisKKyAgICAgICAgU3dpdGNoZWQgdG8gYSBXZWJDb3JlIHdyYXBwZXIgZm9yIFJ1bkxvb3A6
OmluaXRpYWxpemVNYWluUnVuTG9vcCB0aGF0IGFkZHMKKyAgICAgICAgTlNNb2RhbFBhbmVsUnVu
TG9vcE1vZGUgdG8gUnVuTG9vcCBldmVudCBzb3VyY2UgYW5kIHRpbWVyIG1vZGVzLgorCisgICAg
ICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW06ICgrW0NhcmJvbldpbmRvd0FkYXB0
ZXIgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIEhpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1t
OiAoK1tXZWJCYWNrRm9yd2FyZExpc3QgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIEhpc3Rvcnkv
V2ViSGlzdG9yeUl0ZW0ubW06ICgrW1dlYkhpc3RvcnlJdGVtIGluaXRpYWxpemVdKToKKyAgICAg
ICAgKiBNaXNjL1dlYkNhY2hlLm1tOiAoK1tXZWJDYWNoZSBpbml0aWFsaXplXSk6CisgICAgICAg
ICogTWlzYy9XZWJFbGVtZW50RGljdGlvbmFyeS5tbTogKCtbV2ViRWxlbWVudERpY3Rpb25hcnkg
aW5pdGlhbGl6ZV0pOgorICAgICAgICAqIE1pc2MvV2ViSWNvbkRhdGFiYXNlLm1tOiAoK1tXZWJJ
Y29uRGF0YWJhc2UgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhv
c3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbTogKCtbV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3
IGluaXRpYWxpemVdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZp
ZXcubW06CisgICAgICAgICogUGx1Z2lucy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbToKKyAgICAg
ICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbTogKCtbV2ViTmV0c2NhcGVQbHVn
aW5WaWV3IGluaXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQubW06ICgrW1dlYlVuZG9TdGVwIGluaXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkFy
Y2hpdmUubW06ICgrW1dlYkFyY2hpdmVQcml2YXRlIGluaXRpYWxpemVdKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYkRhdGFTb3VyY2UubW06ICgrW1dlYkRhdGFTb3VyY2UgaW5pdGlhbGl6ZV0pOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgrW1dlYkhUTUxWaWV3
UHJpdmF0ZSBpbml0aWFsaXplXSk6CisgICAgICAgICgrW1dlYkhUTUxWaWV3IGluaXRpYWxpemVd
KToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOiAoK1tXZWJQcmVmZXJlbmNl
cyBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViVmlldy9XZWJSZXNvdXJjZS5tbTogKCtbV2Vi
UmVzb3VyY2VQcml2YXRlIGluaXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRJ
dGVyYXRvci5tbTogKCtbV2ViVGV4dEl0ZXJhdG9yUHJpdmF0ZSBpbml0aWFsaXplXSk6CisgICAg
ICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOiAoK1tXZWJWaWV3IGluaXRpYWxpemVdKToKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLm1tOiAoK1tXZWJWaWV3UHJpdmF0ZSBpbml0aWFsaXpl
XSk6CisKIDIwMTQtMDMtMjYgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgog
CiAgICAgICAgIFByb3BhZ2F0ZSB0aGUgaGlkZGVuRnJvbUluc3BlY3RvciBmbGFnIG9uIFJlc291
cmNlUmVxdWVzdCBpbgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRv
d0FkYXB0ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJv
bldpbmRvd0FkYXB0ZXIubW0JKHJldmlzaW9uIDE2NjM0NSkKKysrIFNvdXJjZS9XZWJLaXQvbWFj
L0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03MiwxMCAr
NzIsMTAgQEAKICNpbXBvcnQgPEhJVG9vbGJveC9ISVZpZXcuaD4KICNpbXBvcnQgPGFzc2VydC5o
PgogCisjaW1wb3J0IDxXZWJDb3JlL01haW5SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dl
YkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcu
aD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgog
CiAjaW1wb3J0ICJXZWJLaXRMb2dnaW5nLmgiCiAjaW1wb3J0ICJXZWJOU09iamVjdEV4dHJhcy5o
IgpAQCAtMjcyLDcgKzI3Miw3IEBAICsgKHZvaWQpaW5pdGlhbGl6ZQogewogICAgIEpTQzo6aW5p
dGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nl
c3NNYWluVGhyZWFkKCk7Ci0gICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7Cisg
ICAgV2ViQ29yZTo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNGaW5h
bGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9tYWMvSGlz
dG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9t
YWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0JKHJldmlzaW9uIDE2NjM0NSkKKysrIFNv
dXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tCSh3b3JraW5nIGNv
cHkpCkBAIC00MCw2ICs0MCw3IEBACiAjaW1wb3J0ICJXZWJWaWV3UHJpdmF0ZS5oIgogI2ltcG9y
dCA8V2ViQ29yZS9CYWNrRm9yd2FyZExpc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGlzdG9yeUl0
ZW0uaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWFpblJ1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUv
U2V0dGluZ3MuaD4KQEAgLTQ5LDcgKzUwLDYgQEAKICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+
CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgot
I2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xMDYsNyArMTA2LDcgQEAgKyAodm9pZClpbml0
aWFsaXplCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmco
KTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwot
ICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworICAgIFdlYkNvcmU6OmluaXRp
YWxpemVNYWluUnVuTG9vcCgpOwogI2VuZGlmCiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFp
blRocmVhZChzZWxmKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlz
dG9yeUl0ZW0ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJI
aXN0b3J5SXRlbS5tbQkocmV2aXNpb24gMTY2MzQ1KQorKysgU291cmNlL1dlYktpdC9tYWMvSGlz
dG9yeS9XZWJIaXN0b3J5SXRlbS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDUsMTQgKzQ1LDE0IEBA
CiAjaW1wb3J0ICJXZWJUeXBlc0ludGVybmFsLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0hpc3RvcnlJ
dGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ltYWdlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1VSTC5o
PgorI2ltcG9ydCA8V2ViQ29yZS9NYWluUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdl
Q2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KKyNpbXBvcnQgPFdlYkNv
cmUvVVJMLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0
IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25z
Lmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgotI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4K
ICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCkBAIC0xMjgsNyArMTI4LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAjaWYgIVBMQVRG
T1JNKElPUykKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRp
YWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFJ1bkxvb3A6OmluaXRp
YWxpemVNYWluUnVuTG9vcCgpOworICAgIFdlYkNvcmU6OmluaXRpYWxpemVNYWluUnVuTG9vcCgp
OwogI2VuZGlmCiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0K
SW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ2FjaGUubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbQkocmV2aXNpb24gMTY2MzQ1KQorKysg
U291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzIs
MTAgKzMyLDEwIEBACiAjaW1wb3J0ICJXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNv
cmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ3Jvc3NPcmln
aW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9NYWluUnVuTG9vcC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0
aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgotI2ltcG9ydCA8
d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKElPUykKICNpbXBvcnQgIk1lbW9yeU1lYXN1
cmUuaCIKQEAgLTU4LDcgKzU4LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAjaWYgIVBMQVRGT1JN
KElPUykKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxp
emVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFJ1bkxvb3A6OmluaXRpYWxp
emVNYWluUnVuTG9vcCgpOworICAgIFdlYkNvcmU6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwog
I2VuZGlmCiAgICAgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UoKTsgICAKIH0KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViRWxlbWVudERpY3Rpb25hcnkubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJFbGVtZW50RGljdGlvbmFyeS5tbQkocmV2aXNp
b24gMTY2MzQ1KQorKysgU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJFbGVtZW50RGljdGlvbmFy
eS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzksMTIgKzM5LDEyIEBACiAjaW1wb3J0IDxXZWJDb3Jl
L0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpdFRlc3RSZXN1bHQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSW1hZ2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWFpblJ1bkxvb3AuaD4KICNpbXBvcnQg
PFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPFdlYktpdC9ET01Db3JlLmg+
CiAjaW1wb3J0IDxXZWJLaXQvRE9NRXh0ZW5zaW9ucy5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0
aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgotI2ltcG9ydCA8
d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTY4LDcgKzY4
LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBKU0M6Omlu
aXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9j
ZXNzTWFpblRocmVhZCgpOwotICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwor
ICAgIFdlYkNvcmU6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogI2VuZGlmCiAgICAgV2ViQ29y
ZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tCShyZXZpc2lvbiAxNjYzNDUpCisrKyBTb3VyY2Uv
V2ViS2l0L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDEs
MTEgKzQxLDExIEBACiAjaW1wb3J0IDxXZWJDb3JlL0ljb25EYXRhYmFzZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9JbWFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL01haW5SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9UaHJlYWRDaGVjay5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFs
aXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgotI2ltcG9ydCA8d3Rm
L1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTkyLDcgKzkyLDcg
QEAgKyAodm9pZClpbml0aWFsaXplCiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7
CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAg
ICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBXZWJDb3JlOjppbml0aWFs
aXplTWFpblJ1bkxvb3AoKTsKIH0KIAogKyAoV2ViSWNvbkRhdGFiYXNlICopc2hhcmVkSWNvbkRh
dGFiYXNlCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBs
dWdpblZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJC
YXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCShyZXZpc2lvbiAxNjYzNDUpCisrKyBTb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTUxLDYgKzUxLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KICNpbXBvcnQg
PFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTFBsdWdJbkVsZW1l
bnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWFpblJ1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUmVuZGVyVmlldy5oPgpAQCAtNjEsNyArNjIsNiBAQAogI2ltcG9ydCA8cnVudGltZS9J
bml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9y
dCA8d3RmL01haW5UaHJlYWQuaD4KLSNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3
dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNkZWZpbmUgTG9naW5XaW5kb3dEaWRTd2l0Y2hGcm9tVXNl
ck5vdGlmaWNhdGlvbiAgICBAIldlYkxvZ2luV2luZG93RGlkU3dpdGNoRnJvbVVzZXJOb3RpZmlj
YXRpb24iCkBAIC03NSw3ICs3NSw3IEBAICsgKHZvaWQpaW5pdGlhbGl6ZQogewogICAgIEpTQzo6
aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1By
b2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7
CisgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAgICAgV2ViQ29yZU9iakNG
aW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICBXS1NlbmRVc2VyQ2hhbmdlTm90aWZpY2F0
aW9ucygpOwogfQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlUGx1Z2lu
UGFja2FnZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJh
c2VQbHVnaW5QYWNrYWdlLm1tCShyZXZpc2lvbiAxNjYzNDUpCisrKyBTb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNrYWdlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV2ViQmFzZVBsdWdpblBhY2thZ2UuaD4KIAogI2lt
cG9ydCA8YWxnb3JpdGhtPgorI2ltcG9ydCA8V2ViQ29yZS9NYWluUnVuTG9vcC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdE5T
U3RyaW5nRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdl
Lmg+CkBAIC0zNyw3ICszOCw2IEBACiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9y
dCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgot
I2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KICNpbXBvcnQg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtNjksNyArNjksNyBAQCArICh2b2lkKWluaXRpYWxp
emUKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwog
ICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAg
UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgV2ViQ29yZTo6aW5pdGlhbGl6
ZU1haW5SdW5Mb29wKCk7CiAjZW5kaWYKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhy
ZWFkKHNlbGYpOwogfQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2Fw
ZVBsdWdpblZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9X
ZWJOZXRzY2FwZVBsdWdpblZpZXcubW0JKHJldmlzaW9uIDE2NjM0NSkKKysrIFNvdXJjZS9XZWJL
aXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBA
IC02NCw2ICs2NCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVHJlZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9GcmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTFBsdWdJbkVsZW1lbnQu
aD4KKyNpbXBvcnQgPFdlYkNvcmUvTWFpblJ1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFn
ZS5oPiAKICNpbXBvcnQgPFdlYkNvcmUvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5oPgogI2lt
cG9ydCA8V2ViQ29yZS9Qcm94eVNlcnZlci5oPgpAQCAtODEsNyArODIsNiBAQAogI2ltcG9ydCA8
cnVudGltZS9KU0xvY2suaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3
dGYvTWFpblRocmVhZC5oPgotI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KIAogI2RlZmluZSBMb2dpbldpbmRvd0RpZFN3aXRjaEZyb21Vc2VyTm90
aWZpY2F0aW9uICAgIEAiV2ViTG9naW5XaW5kb3dEaWRTd2l0Y2hGcm9tVXNlck5vdGlmaWNhdGlv
biIKQEAgLTE5NCw3ICsxOTQsNyBAQCArICh2b2lkKWluaXRpYWxpemUKIHsKICAgICBKU0M6Omlu
aXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9j
ZXNzTWFpblRocmVhZCgpOwotICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwor
ICAgIFdlYkNvcmU6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIFdlYkNvcmVPYmpDRmlu
YWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiAgICAgV0tTZW5kVXNlckNoYW5nZU5vdGlmaWNhdGlv
bnMoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3Rl
ZE5ldHNjYXBlUGx1Z2luVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0JKHJldmlzaW9uIDE2
NjM0NSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNj
YXBlUGx1Z2luVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQAogI2ltcG9y
dCA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVmll
dy5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MUGx1Z0luRWxlbWVudC5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9NYWluUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJFbWJlZGRlZE9iamVj
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYkNvcmVPYmpDRXh0cmFzLmg+CkBAIC01MSw3ICs1Miw2IEBACiAjaW1wb3J0IDx3dGYvQXNz
ZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9PYmpj
UnVudGltZUV4dHJhcy5oPgotI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNzQsNyArNzQsNyBAQCAr
ICh2b2lkKWluaXRpYWxpemUKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIEpTQzo6aW5pdGlhbGl6
ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWlu
VGhyZWFkKCk7Ci0gICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgV2Vi
Q29yZTo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAjZW5kaWYKICAgICBXZWJDb3JlT2JqQ0Zp
bmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogICAgIFdLU2VuZFVzZXJDaGFuZ2VOb3RpZmljYXRp
b25zKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tCShyZXZpc2lvbiAxNjYzNDUpCisrKyBTb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTU5
LDYgKzU5LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRNTFRleHRBcmVhRWxlbWVudC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdl
YkFyY2hpdmUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWFpblJ1bkxvb3AuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTcwLDcgKzcxLDYgQEAKICNpbXBvcnQg
PHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQu
aD4KICNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgog
I2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0x
MTcsNyArMTE3LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAjaWYgIVBMQVRGT1JNKElPUykKICAg
ICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhy
ZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVu
TG9vcCgpOworICAgIFdlYkNvcmU6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogI2VuZGlmCiAg
ICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lm1tCShyZXZpc2lvbiAxNjYzNDUpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYg
KzEwOSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xvYWRlck5TVVJMRXh0cmFzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWFpbkZyYW1l
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL01haW5SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01v
dXNlRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Q
bHVnaW5WaWV3QmFzZS5oPgpAQCAtMTI4LDcgKzEyOSw2IEBACiAjaW1wb3J0IDxydW50aW1lL0lu
aXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0
IDx3dGYvUGFzc1JlZlB0ci5oPgotI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8p
CkBAIC0yMzk5LDcgKzIzOTksNyBAQCArICh2b2lkKWluaXRpYWxpemUKICNpZiAhUExBVEZPUk0o
SU9TKQogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6
ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgUnVuTG9vcDo6aW5pdGlhbGl6
ZU1haW5SdW5Mb29wKCk7CisgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAj
ZW5kaWYKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbQkocmV2aXNpb24gMTY2MzQ1
KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiwxMCArMzYsMTAgQEAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxp
emVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvQXJjaGl2ZVJlc291cmNlLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWFpblJ1
bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdlYkNv
cmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW1w
b3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNzAs
NyArNzAsNyBAQCArICh2b2lkKWluaXRpYWxpemUKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIEpT
Qzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRU
b1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29w
KCk7CisgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAjZW5kaWYKICAgICBX
ZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogfQpJbmRleDogU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQkocmV2aXNpb24gMTY2MzQ1KQorKysg
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC01Myw2ICs1Myw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1VSTC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9MZWdhY3lXZWJBcmNoaXZlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0
cnkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWFpblJ1bkxvb3AuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UmVzb3VyY2VCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgpAQCAtNjUsNyArNjYsNiBAQAogI2ltcG9y
dCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KLSNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBQTEFURk9STShJ
T1MpCiAjaW1wb3J0ICJXZWJQREZWaWV3SU9TLmgiCkBAIC0xNjEsNyArMTYxLDcgQEAgKyAodm9p
ZClpbml0aWFsaXplCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAgICAgSlNDOjppbml0aWFsaXpl
VGhyZWFkaW5nKCk7CiAgICAgICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NN
YWluVGhyZWFkKCk7Ci0gICAgICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwor
ICAgICAgICBXZWJDb3JlOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKICNlbmRpZgogICAgICAg
ICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYpOwogICAgIH0KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQkocmV2aXNpb24gMTY2MzQ1KQor
KysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQkod29ya2luZyBjb3B5
KQpAQCAtMTAxLDYgKzEwMSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUu
aD4KICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9NYWluRnJhbWUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWFpblJ1bkxvb3AuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SYW5nZS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9SZW5kZXJWaWV3Lmg+CkBAIC0xMjQsNyArMTI1LDYgQEAKICNpbXBvcnQgPHJ1bnRpbWUv
SW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBv
cnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgotI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAog
I2lmICFQTEFURk9STShJT1MpCiAjaW1wb3J0IDxBcHBLaXQvTlNBY2Nlc3NpYmlsaXR5Lmg+CkBA
IC02NDMsNyArNjQzLDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAjaWYgIVBMQVRGT1JNKElPUykK
ICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWlu
VGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWlu
UnVuTG9vcCgpOworICAgIFdlYkNvcmU6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogI2VuZGlm
CiAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKICAgICAKQEAgLTI0
NzQsNyArMjQ3NCw3IEBAICsgKHZvaWQpaW5pdGlhbGl6ZQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm5UeXBlczpbW3NlbGYgY2xhc3NdIF9pbnNlcnRhYmxlUGFzdGVib2FyZFR5
cGVzXV07CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFs
aXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBSdW5Mb29wOjppbml0aWFs
aXplTWFpblJ1bkxvb3AoKTsKKyAgICBXZWJDb3JlOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsK
ICNlbmRpZgogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7CiB9Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0JKHJldmlz
aW9uIDE2NjM0NSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTQyLDEyICs0MiwxMiBAQAogI2ltcG9ydCAiV2ViU3lzdGVt
SW50ZXJmYWNlLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9NYWlu
UnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNp
bXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlh
bGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KLSNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIGVudW0gewogICAgIE5T
SFRUUENvb2tpZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFpbiA9
IDMKQEAgLTM5Miw3ICszOTIsNyBAQCArICh2b2lkKWluaXRpYWxpemUKICNpZiAhUExBVEZPUk0o
SU9TKQogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlhbGl6
ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgUnVuTG9vcDo6aW5pdGlhbGl6
ZU1haW5SdW5Mb29wKCk7CisgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAj
ZW5kaWYKICNpZiBQTEFURk9STShJT1MpCiAgICAgc3RhdGljIHVuc2lnbmVkIGRlZmF1bHRNYXhp
bXVtSW1hZ2VTaXplID0gMjAgKiAxMDI0ICogMTAyNDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViUmVzb3VyY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJSZXNvdXJjZS5tbQkocmV2aXNpb24gMTY2MzQ1KQorKysgU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzgsMTMgKzM4
LDEzIEBACiAjaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9BcmNo
aXZlUmVzb3VyY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgorI2lt
cG9ydCA8V2ViQ29yZS9NYWluUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEVuY29kaW5nLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpD
RXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVVUkxSZXNwb25zZS5oPgogI2ltcG9y
dCA8d3RmL01haW5UaHJlYWQuaD4KLSNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCkBAIC02OSw3ICs2OSw3IEBAICsgKHZvaWQpaW5pdGlhbGl6ZQog
I2lmICFQTEFURk9STShJT1MpCiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAg
V1RGOjppbml0aWFsaXplTWFpblRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKLSAgICBSdW5M
b29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBXZWJDb3JlOjppbml0aWFsaXplTWFp
blJ1bkxvb3AoKTsKICNlbmRpZgogICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQo
c2VsZik7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRJdGVyYXRv
ci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRJdGVy
YXRvci5tbQkocmV2aXNpb24gMTY2MzQ1KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJUZXh0SXRlcmF0b3IubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDExICsyOCwxMSBAQAogI2lt
cG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJET01SYW5nZUludGVybmFsLmgiCiAj
aW1wb3J0ICJXZWJUeXBlc0ludGVybmFsLmgiCisjaW1wb3J0IDxXZWJDb3JlL01haW5SdW5Mb29w
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJdGVyYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9X
ZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5n
Lmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgotI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4K
ICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KIAogQGludGVyZmFjZSBXZWJUZXh0SXRlcmF0b3JQcml2
YXRlIDogTlNPYmplY3QgewpAQCAtNDksNyArNDksNyBAQCArICh2b2lkKWluaXRpYWxpemUKICNp
ZiAhUExBVEZPUk0oSU9TKQogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdU
Rjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgUnVuTG9v
cDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZU1haW5S
dW5Mb29wKCk7CiAjZW5kaWYKICAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNl
bGYpOwogfQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkocmV2aXNpb24g
MTY2MzQ1KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDgsNiArMTQ4LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTG9nZ2luZy5oPgog
I2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL01h
aW5GcmFtZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9NYWluUnVuTG9vcC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvTm9kZUxpc3Qu
aD4KICNpbXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0aW9uLmg+CkBAIC0xOTUsNyArMTk2LDYgQEAK
ICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1JlZkNvdW50
ZWRMZWFrQ291bnRlci5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgotI2ltcG9ydCA8d3RmL1J1
bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogI2lmICFQTEFURk9STShJ
T1MpCkBAIC00Njk3LDcgKzQ2OTcsNyBAQCArICh2b2lkKWluaXRpYWxpemUKICNpZiAhUExBVEZP
Uk0oSU9TKQogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdURjo6aW5pdGlh
bGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7Ci0gICAgUnVuTG9vcDo6aW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7CisgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7
CiAjZW5kaWYKIAogI2lmICFQTEFURk9STShJT1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXdEYXRhLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlld0RhdGEubW0JKHJldmlzaW9uIDE2NjM0NSkKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0JKHdvcmtpbmcgY29weSkKQEAgLTMzLDEyICszMywx
MiBAQAogI2ltcG9ydCAiV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgiCiAjaW1wb3J0ICJXZWJW
aWV3R3JvdXAuaCIKICNpbXBvcnQgPFdlYkNvcmUvQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVy
Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0hpc3RvcnlJdGVtLmg+CisjaW1wb3J0IDxXZWJDb3JlL01haW5SdW5Mb29wLmg+CisjaW1w
b3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxvYmpjL29iamMtYXV0
by5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3
dGYvTWFpblRocmVhZC5oPgotI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JN
KElPUykKICNpbXBvcnQgIldlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MuaCIKQEAgLTc4LDcgKzc4
LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBKU0M6Omlu
aXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9j
ZXNzTWFpblRocmVhZCgpOwotICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwor
ICAgIFdlYkNvcmU6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogI2VuZGlmCiAgICAgV2ViQ29y
ZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKIH0K
</data>
<flag name="commit-queue"
          id="252201"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>