<?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>140900</bug_id>
          
          <creation_ts>2015-01-26 13:44:41 -0800</creation_ts>
          <short_desc>Use FastMalloc (bmalloc) instead of BlockAllocator for GC pages</short_desc>
          <delta_ts>2015-03-07 16:23:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>140951</dependson>
    
    <dependson>140953</dependson>
    
    <dependson>141119</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kling</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>ossy</cc>
    
    <cc>roger_fong</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1064248</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-01-26 13:44:41 -0800</bug_when>
    <thetext>Use FastMalloc (bmalloc) instead of BlockAllocator for GC pages</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064252</commentid>
    <comment_count>1</comment_count>
      <attachid>245372</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-01-26 14:00:27 -0800</bug_when>
    <thetext>Created attachment 245372
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064255</commentid>
    <comment_count>2</comment_count>
      <attachid>245374</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-01-26 14:01:41 -0800</bug_when>
    <thetext>Created attachment 245374
run-jsc-benchmarks results

Uploading performance results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064259</commentid>
    <comment_count>3</comment_count>
      <attachid>245372</attachid>
    <who name="Mark Hahnenberg">mhahnenb</who>
    <bug_when>2015-01-26 14:11:59 -0800</bug_when>
    <thetext>Comment on attachment 245372
Patch

Lots of red, me gusta :-) Looks like builds are angry. r=me w/ fixes.

What&apos;s bmalloc&apos;s story for returning memory to the OS? I&apos;m assuming it&apos;s something similar to what BlockAllocator did, just curious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064265</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-01-26 14:37:51 -0800</bug_when>
    <thetext>&gt; What&apos;s bmalloc&apos;s story for returning memory to the OS? I&apos;m assuming it&apos;s
&gt; something similar to what BlockAllocator did, just curious.

bmalloc uses a timer on a background thread with back-off if other threads start asking the heap to grow -- very similar to what BlockAllocator did.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064284</commentid>
    <comment_count>5</comment_count>
      <attachid>245382</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-01-26 15:40:56 -0800</bug_when>
    <thetext>Created attachment 245382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064285</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-01-26 15:41:39 -0800</bug_when>
    <thetext>Trying to fix the build...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064556</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-01-27 10:29:27 -0800</bug_when>
    <thetext>Committed r179192: &lt;http://trac.webkit.org/changeset/179192&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064598</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-27 12:07:45 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Committed r179192: &lt;http://trac.webkit.org/changeset/179192&gt;

It made almost all tests assert on the 32 bit bot:
https://build.webkit.org/builders/Apple%20Mavericks%2032-bit%20JSC%20%28BuildAndTest%29/builds/7055</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064599</commentid>
    <comment_count>9</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-27 12:09:54 -0800</bug_when>
    <thetext>and many failures on the ARM bot:
http://build.webkit.sed.hu/builders/EFL%20ARMv7-ARM%20Linux%20Release%20%28Build%29%201404/builds/106</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064600</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-27 12:11:55 -0800</bug_when>
    <thetext>and all tests fail on the Yosemite performance bot:
https://build.webkit.org/builders/Apple%20Yosemite%20Release%20%28Perf%29/builds/847</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064609</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-27 12:30:51 -0800</bug_when>
    <thetext>Strangely, it seems flaky. I forced clean builds on Yosemite, although there probably is a real problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064620</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-27 12:49:56 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 140951</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064626</commentid>
    <comment_count>13</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-27 12:59:41 -0800</bug_when>
    <thetext>and Windows too:
https://build.webkit.org/builders/Apple%20Win%207%20Release%20%28Tests%29/builds/49296</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064628</commentid>
    <comment_count>14</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-27 13:04:58 -0800</bug_when>
    <thetext>more info:

There are 2 Yosemite bots:
- https://build.webkit.org/buildslaves/bot191 (pass)
- https://build.webkit.org/buildslaves/bot190 (fail)

- https://build.webkit.org/buildslaves/bot192 (fail)
- https://build.webkit.org/buildslaves/bot193 (pass)

... but failures occure only one of them. Maybe there are some 
black magic intalled on them which is necessary to make tests pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064630</commentid>
    <comment_count>15</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-27 13:18:15 -0800</bug_when>
    <thetext>any plan to fix this serious regression?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064650</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-27 14:16:22 -0800</bug_when>
    <thetext>Matt rolled this out in r179211, however Mac Yosemite bots went green even before that. We did a clean build, and also there was a seemingly unrelated patch landed in the meanwhile (http://trac.webkit.org/changeset/179202).

Not sure about ARM and 32-bit tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065294</commentid>
    <comment_count>17</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-01-29 11:20:03 -0800</bug_when>
    <thetext>Committed r179348: &lt;http://trac.webkit.org/changeset/179348&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065331</commentid>
    <comment_count>18</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-01-29 13:41:28 -0800</bug_when>
    <thetext>Committed r179361: &lt;http://trac.webkit.org/changeset/179361&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065610</commentid>
    <comment_count>19</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-01-30 11:57:30 -0800</bug_when>
    <thetext>Committed r179407: &lt;http://trac.webkit.org/changeset/179407&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065723</commentid>
    <comment_count>20</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-01-30 16:51:00 -0800</bug_when>
    <thetext>Committed r179426: &lt;http://trac.webkit.org/changeset/179426&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065792</commentid>
    <comment_count>21</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-01-31 00:28:38 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; Committed r179426: &lt;http://trac.webkit.org/changeset/179426&gt;

Looks like ~7% memory use regression on the ol&apos; buster.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065829</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-31 10:24:01 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 141119</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065892</commentid>
    <comment_count>23</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-01-31 16:54:18 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; Committed r179361: &lt;http://trac.webkit.org/changeset/179361&gt;

Looks like ~40% regression on Bindings/create-element from this change:

https://perf.webkit.org/#mode=charts&amp;chartList=%5B%5B%22mac-mavericks%22%2C%22Bindings%2Fcreate-element%3ARuns%22%5D%5D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066222</commentid>
    <comment_count>24</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-02-02 14:27:11 -0800</bug_when>
    <thetext>Committed r179500: &lt;http://trac.webkit.org/changeset/179500&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074804</commentid>
    <comment_count>25</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-05 19:41:57 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074805</commentid>
    <comment_count>26</comment_count>
      <attachid>248031</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-05 19:42:02 -0800</bug_when>
    <thetext>Created attachment 248031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074806</commentid>
    <comment_count>27</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-05 19:44:42 -0800</bug_when>
    <thetext>&gt; &gt; Committed r179361: &lt;http://trac.webkit.org/changeset/179361&gt;
&gt; 
&gt; Looks like ~40% regression on Bindings/create-element from this change:
&gt; 
&gt; https://perf.webkit.org/#mode=charts&amp;chartList=%5B%5B%22mac-
&gt; mavericks%22%2C%22Bindings%2Fcreate-element%3ARuns%22%5D%5D

This regression mysteriously disappeared after a bmalloc refactoring patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074947</commentid>
    <comment_count>28</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-06 08:59:15 -0800</bug_when>
    <thetext>Committed r181157: &lt;http://trac.webkit.org/changeset/181157&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074972</commentid>
    <comment_count>29</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-03-06 09:34:28 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; Committed r181157: &lt;http://trac.webkit.org/changeset/181157&gt;

It broke zillion tests on the 32 bit bot:
https://build.webkit.org/builders/Apple%20Mavericks%2032-bit%20JSC%20%28BuildAndTest%29/builds/8148</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074974</commentid>
    <comment_count>30</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-03-06 09:35:42 -0800</bug_when>
    <thetext>and on the Windows bot too:
https://build.webkit.org/builders/Apple%20Win%207%20Release%20%28Tests%29/builds/50194</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074999</commentid>
    <comment_count>31</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-03-06 10:17:17 -0800</bug_when>
    <thetext>Geoffrey, are you working on fixing the regression on 32 bit bots?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075039</commentid>
    <comment_count>32</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-06 11:48:51 -0800</bug_when>
    <thetext>sunspider-1.0/access-nsieve.js.default: ASSERTION FAILED: is8ByteAligned(reinterpret_cast&lt;void*&gt;(m_remaining))
sunspider-1.0/access-nsieve.js.default: /Volumes/Data/slave/mavericks-32bitJSC-debug/build/Source/JavaScriptCore/heap/CopiedBlock.h(156) : JSC::CopiedBlock::CopiedBlock(size_t)
sunspider-1.0/access-nsieve.js.default: 1   0xaf561d WTFCrash
sunspider-1.0/access-nsieve.js.default: 2   0x2752f2 JSC::CopiedBlock::CopiedBlock(unsigned long)
sunspider-1.0/access-nsieve.js.default: 3   0x2751d4 JSC::CopiedBlock::CopiedBlock(unsigned long)
sunspider-1.0/access-nsieve.js.default: 4   0x2751a1 JSC::CopiedBlock::createNoZeroFill(unsigned long)
sunspider-1.0/access-nsieve.js.default: 5   0x2723e7 JSC::CopiedBlock::create(unsigned long)
sunspider-1.0/access-nsieve.js.default: 6   0x270bc1 JSC::CopiedSpace::tryAllocateOversize(unsigned long, void**)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075046</commentid>
    <comment_count>33</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-06 12:00:52 -0800</bug_when>
    <thetext>I think sizeof(CopiedBlock) must not be 8-byte-aligned on 32-bit platforms. I&apos;m regression-testing a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075054</commentid>
    <comment_count>34</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-06 12:21:11 -0800</bug_when>
    <thetext>Committed r181177: &lt;http://trac.webkit.org/changeset/181177&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075067</commentid>
    <comment_count>35</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-03-06 13:04:54 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; Committed r181177: &lt;http://trac.webkit.org/changeset/181177&gt;

The Windows bot is still broken: https://build.webkit.org/builders/Apple%20Win%207%20Release%20%28Tests%29/builds/50202</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075083</commentid>
    <comment_count>36</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-06 14:03:24 -0800</bug_when>
    <thetext>Committed revision 181180: &lt;http://trac.webkit.org/changeset/181180&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075139</commentid>
    <comment_count>37</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-06 16:07:00 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075140</commentid>
    <comment_count>38</comment_count>
      <attachid>248108</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-06 16:07:05 -0800</bug_when>
    <thetext>Created attachment 248108
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075286</commentid>
    <comment_count>39</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-07 11:04:33 -0800</bug_when>
    <thetext>Committed r181210: &lt;http://trac.webkit.org/changeset/181210&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075293</commentid>
    <comment_count>40</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-07 13:19:12 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075294</commentid>
    <comment_count>41</comment_count>
      <attachid>248166</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-07 13:19:37 -0800</bug_when>
    <thetext>Created attachment 248166
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075295</commentid>
    <comment_count>42</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-07 13:21:38 -0800</bug_when>
    <thetext>&gt; Looks like ~7% memory use regression on the ol&apos; buster.

This regression did not reappear in re-landing this patch broken out into pieces, probably because of these improvements to bmalloc:

https://bugs.webkit.org/show_bug.cgi?id=142055
https://bugs.webkit.org/show_bug.cgi?id=142058
https://bugs.webkit.org/show_bug.cgi?id=142194</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075296</commentid>
    <comment_count>43</comment_count>
      <attachid>248166</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-03-07 13:33:11 -0800</bug_when>
    <thetext>Comment on attachment 248166
Patch

rs=me to remove, but one thing needs fixing:

/Volumes/Data/EWS/WebKit/Source/WebCore/platform/cocoa/MemoryPressureHandlerCocoa.mm:156:42: error: no member named &apos;blockAllocator&apos; in &apos;JSC::Heap&apos;
        JSDOMWindowBase::commonVM().heap.blockAllocator().releaseFreeRegions();
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
1 error generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075308</commentid>
    <comment_count>44</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-07 16:23:27 -0800</bug_when>
    <thetext>Committed r181215: &lt;http://trac.webkit.org/changeset/181215&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245372</attachid>
            <date>2015-01-26 14:00:27 -0800</date>
            <delta_ts>2015-01-26 15:40:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140900-20150126140029.patch</filename>
            <type>text/plain</type>
            <size>91542</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc5MTQxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyOSBA
QAorMjAxNS0wMS0yNiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFVzZSBGYXN0TWFsbG9jIChibWFsbG9jKSBpbnN0ZWFkIG9mIEJsb2NrQWxsb2NhdG9yIGZv
ciBHQyBwYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQwOTAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVtb3ZlcyBzb21lIG1vcmUgY3VzdG9tIGFsbG9jYXRpb24gY29kZS4KKworICAgICAgICBM
b29rcyBsaWtlIGEgc3BlZWR1cC4gV2lsbCBob3BlZnVsbHkgcmVkdWNlIG1lbW9yeSB1c2UgYnkg
aW1wcm92aW5nCisgICAgICAgIHNoYXJpbmcgYmV0d2VlbiB0aGUgR0MgYW5kIG1hbGxvYyBoZWFw
cy4KKworICAgICAgICAqIEFQSS9KU0Jhc2UuY3BwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBGZWVkIHRoZSBjb21waWxlci4K
KworICAgICAgICAqIGhlYXAvQmxvY2tBbGxvY2F0b3IuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IGhlYXAvQmxvY2tBbGxvY2F0b3IuaDogUmVtb3ZlZC4gTm8gbmVlZCBmb3IgYSBjdXN0b20gYWxs
b2NhdG9yIGFueW1vcmUuCisKKyAgICAgICAgKiBoZWFwL0NvZGVCbG9ja1NldC5jcHA6CisgICAg
ICAgIChKU0M6OkNvZGVCbG9ja1NldDo6Q29kZUJsb2NrU2V0KToKKyAgICAgICAgKiBoZWFwL0Nv
ZGVCbG9ja1NldC5oOiBGZWVkIHRoZSBjb21waWxlci4KKworICAgICAgICAqIGhlYXAvQ29waWVk
QmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29waWVkQmxvY2s6OmNyZWF0ZU5vWmVyb0ZpbGwpOgor
ICAgICAgICAoSlNDOjpDb3BpZWRCbG9jazo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6Q29waWVk
QmxvY2s6OkNvcGllZEJsb2NrKToKKyAgICAgICAgKEpTQzo6Q29waWVkQmxvY2s6OmlzT3ZlcnNp
emUpOgorICAgICAgICAoSlNDOjpDb3BpZWRCbG9jazo6cGF5bG9hZEVuZCk6CisgICAgICAgIChK
U0M6OkNvcGllZEJsb2NrOjpjYXBhY2l0eSk6CisgICAgICAgICogaGVhcC9Db3BpZWRCbG9ja0lu
bGluZXMuaDoKKyAgICAgICAgKEpTQzo6Q29waWVkQmxvY2s6OnJlcG9ydExpdmVCeXRlcyk6IEVh
Y2ggY29waWVkIGJsb2NrIG5vdyB0cmFja3MgaXRzCisgICAgICAgIG93biBzaXplLCBzaW5jZSB3
ZSBjYW4ndCByZWx5IG9uIFJlZ2lvbiB0byB0ZWxsIHVzIG91ciBzaXplIGFueW1vcmUuCisKKyAg
ICAgICAgKiBoZWFwL0NvcGllZFNwYWNlLmNwcDoKKyAgICAgICAgKEpTQzo6Q29waWVkU3BhY2U6
On5Db3BpZWRTcGFjZSk6CisgICAgICAgIChKU0M6OkNvcGllZFNwYWNlOjp0cnlBbGxvY2F0ZU92
ZXJzaXplKToKKyAgICAgICAgKEpTQzo6Q29waWVkU3BhY2U6OnRyeVJlYWxsb2NhdGVPdmVyc2l6
ZSk6CisgICAgICAgICogaGVhcC9Db3BpZWRTcGFjZUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6
Q29waWVkU3BhY2U6OnJlY3ljbGVFdmFjdWF0ZWRCbG9jayk6CisgICAgICAgIChKU0M6OkNvcGll
ZFNwYWNlOjpyZWN5Y2xlQm9ycm93ZWRCbG9jayk6CisgICAgICAgIChKU0M6OkNvcGllZFNwYWNl
OjphbGxvY2F0ZUJsb2NrRm9yQ29weWluZ1BoYXNlKToKKyAgICAgICAgKEpTQzo6Q29waWVkU3Bh
Y2U6OmFsbG9jYXRlQmxvY2spOgorICAgICAgICAoSlNDOjpDb3BpZWRTcGFjZTo6c3RhcnRlZENv
cHlpbmcpOiBEZWFsbG9jYXRlIGJsb2NrcyBkaXJlY3RseSwgcmF0aGVyCisgICAgICAgIHRoYW4g
cHVzaGluZyB0aGVtIG9udG8gdGhlIGJsb2NrIGFsbG9jYXRvcidzIGZyZWUgbGlzdDsgdGhlIGJs
b2NrCisgICAgICAgIGFsbG9jYXRvciBkb2Vzbid0IGV4aXN0IGFueW1vcmUuCisKKyAgICAgICAg
KiBoZWFwL0NvcHlXb3JrTGlzdC5oOgorICAgICAgICAoSlNDOjpDb3B5V29ya0xpc3RTZWdtZW50
OjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpDb3B5V29ya0xpc3RTZWdtZW50OjpDb3B5V29ya0xp
c3RTZWdtZW50KToKKyAgICAgICAgKEpTQzo6Q29weVdvcmtMaXN0Ojp+Q29weVdvcmtMaXN0KToK
KyAgICAgICAgKEpTQzo6Q29weVdvcmtMaXN0OjphcHBlbmQpOgorICAgICAgICAoSlNDOjpDb3B5
V29ya0xpc3Q6OkNvcHlXb3JrTGlzdCk6IERlbGV0ZWQuCisgICAgICAgICogaGVhcC9HQ1NlZ21l
bnRlZEFycmF5Lmg6CisgICAgICAgIChKU0M6OkdDQXJyYXlTZWdtZW50OjpHQ0FycmF5U2VnbWVu
dCk6CisgICAgICAgICogaGVhcC9HQ1NlZ21lbnRlZEFycmF5SW5saW5lcy5oOgorICAgICAgICAo
SlNDOjpHQ1NlZ21lbnRlZEFycmF5PFQ+OjpHQ1NlZ21lbnRlZEFycmF5KToKKyAgICAgICAgKEpT
Qzo6R0NTZWdtZW50ZWRBcnJheTxUPjo6fkdDU2VnbWVudGVkQXJyYXkpOgorICAgICAgICAoSlND
OjpHQ1NlZ21lbnRlZEFycmF5PFQ+OjpjbGVhcik6CisgICAgICAgIChKU0M6OkdDU2VnbWVudGVk
QXJyYXk8VD46OmV4cGFuZCk6CisgICAgICAgIChKU0M6OkdDU2VnbWVudGVkQXJyYXk8VD46OnJl
ZmlsbCk6CisgICAgICAgIChKU0M6OkdDQXJyYXlTZWdtZW50PFQ+OjpjcmVhdGUpOgorICAgICAg
ICAqIGhlYXAvR0NUaHJlYWRTaGFyZWREYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6R0NUaHJlYWRT
aGFyZWREYXRhOjpHQ1RocmVhZFNoYXJlZERhdGEpOgorICAgICAgICAqIGhlYXAvR0NUaHJlYWRT
aGFyZWREYXRhLmg6IEZlZWQgdGhlIGNvbXBpbGVyLgorCisgICAgICAgICogaGVhcC9IYW5kbGVC
bG9jay5oOgorICAgICAgICAqIGhlYXAvSGFuZGxlQmxvY2tJbmxpbmVzLmg6CisgICAgICAgIChK
U0M6OkhhbmRsZUJsb2NrOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpIYW5kbGVCbG9jazo6SGFu
ZGxlQmxvY2spOgorICAgICAgICAoSlNDOjpIYW5kbGVCbG9jazo6cGF5bG9hZEVuZCk6CisgICAg
ICAgICogaGVhcC9IYW5kbGVTZXQuY3BwOgorICAgICAgICAoSlNDOjpIYW5kbGVTZXQ6On5IYW5k
bGVTZXQpOgorICAgICAgICAoSlNDOjpIYW5kbGVTZXQ6Omdyb3cpOiBTYW1lIGFzIGFib3ZlLgor
CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6SGVhcCk6Cisg
ICAgICAgICogaGVhcC9IZWFwLmg6IFJlbW92ZWQgdGhlIGJsb2NrIGFsbG9jYXRvciBzaW5jZSBp
dCBpcyB1bnVzZWQgbm93LgorCisgICAgICAgICogaGVhcC9IZWFwQmxvY2suaDoKKyAgICAgICAg
KEpTQzo6SGVhcEJsb2NrOjpkZXN0cm95KToKKyAgICAgICAgKEpTQzo6SGVhcEJsb2NrOjpIZWFw
QmxvY2spOgorICAgICAgICAoSlNDOjpIZWFwQmxvY2s6OnJlZ2lvbik6IERlbGV0ZWQuIFJlbW92
ZWQgdGhlIFJlZ2lvbiBwb2ludGVyIGZyb20gZWFjaAorICAgICAgICBIZWFwQmxvY2sgc2luY2Ug
YSBIZWFwQmxvY2sgaXMganVzdCBhIG5vcm1hbCBhbGxvY2F0aW9uIG5vdy4KKworICAgICAgICAq
IGhlYXAvSGVhcElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SGVhcDo6YmxvY2tBbGxvY2F0b3Ip
OiBEZWxldGVkLgorCisgICAgICAgICogaGVhcC9IZWFwVGltZXIuY3BwOgorICAgICAgICAqIGhl
YXAvTWFya1N0YWNrLmNwcDoKKyAgICAgICAgKEpTQzo6TWFya1N0YWNrQXJyYXk6Ok1hcmtTdGFj
a0FycmF5KToKKyAgICAgICAgKiBoZWFwL01hcmtTdGFjay5oOiBGZWVkIHRoZSBjb21waWxlci4K
KworICAgICAgICAqIGhlYXAvTWFya2VkQWxsb2NhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6TWFy
a2VkQWxsb2NhdG9yOjphbGxvY2F0ZUJsb2NrKTogTm8gbmVlZCB0byB1c2UgYSBjdXN0b20gY29k
ZSBwYXRoCisgICAgICAgIGJhc2VkIG9uIHNpemUsIHNpbmNlIHdlIHVzZSBhIGdlbmVyYWwgcHVy
cG9zZSBhbGxvY2F0b3Igbm93LgorCisgICAgICAgICogaGVhcC9NYXJrZWRCbG9jay5jcHA6Cisg
ICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpNYXJrZWRC
bG9jazo6ZGVzdHJveSk6CisgICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjpNYXJrZWRCbG9jayk6
CisgICAgICAgICogaGVhcC9NYXJrZWRCbG9jay5oOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9j
azo6Y2FwYWNpdHkpOiBUcmFjayBibG9jayBzaXplIGV4cGxpY2l0bHksIGxpa2UgQ29waWVkQmxv
Y2suCisKKyAgICAgICAgKiBoZWFwL01hcmtlZFNwYWNlLmNwcDoKKyAgICAgICAgKEpTQzo6TWFy
a2VkU3BhY2U6OmZyZWVCbG9jayk6CisgICAgICAgICogaGVhcC9NYXJrZWRTcGFjZS5oOgorCisg
ICAgICAgICogaGVhcC9SZWdpb24uaDogUmVtb3ZlZC4KKworICAgICAgICAqIGhlYXAvU2xvdFZp
c2l0b3IuY3BwOgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6U2xvdFZpc2l0b3IpOiBSZW1v
dmVkIHJlZmVyZW5jZSB0byBibG9jayBhbGxvY2F0b3IuCisKKyAgICAgICAgKiBoZWFwL1N1cGVy
UmVnaW9uLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBoZWFwL1N1cGVyUmVnaW9uLmg6IFJlbW92
ZWQuCisKKyAgICAgICAgKiBoZWFwL1dlYWtCbG9jay5jcHA6CisgICAgICAgIChKU0M6OldlYWtC
bG9jazo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6V2Vha0Jsb2NrOjpXZWFrQmxvY2spOgorICAg
ICAgICAqIGhlYXAvV2Vha0Jsb2NrLmg6CisgICAgICAgICogaGVhcC9XZWFrU2V0LmNwcDoKKyAg
ICAgICAgKEpTQzo6V2Vha1NldDo6fldlYWtTZXQpOgorICAgICAgICAoSlNDOjpXZWFrU2V0Ojph
ZGRBbGxvY2F0b3IpOgorICAgICAgICAoSlNDOjpXZWFrU2V0OjpyZW1vdmVBbGxvY2F0b3IpOiBS
ZW1vdmVkIHJlZmVyZW5jZSB0byBibG9jayBhbGxvY2F0b3IuCisKIDIwMTUtMDEtMjYgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBbU1ZH
IC0+IE9URiBDb252ZXJ0ZXJdIEZsaXAgdGhlIHN3aXRjaCBvZmYgb24gaU9TCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3BwCShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlICJBUElDYXN0LmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5j
bHVkZSAiQ29tcGxldGlvbi5oIgorI2luY2x1ZGUgIkdDQWN0aXZpdHlDYWxsYmFjay5oIgogI2lu
Y2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5o
IgogI2luY2x1ZGUgIkpTTG9jay5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qCShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC01MzAsNyArNTMwLDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGZ0bFxGVExV
bndpbmRJbmZvLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGZ0bFxGVExWYWx1
ZUZvcm1hdC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxmdGxcRlRMVmFsdWVS
YW5nZS5jcHAiIC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXEJsb2NrQWxsb2Nh
dG9yLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcQ29kZUJsb2NrU2V0
LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcQ29uc2VydmF0aXZlUm9v
dHMuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxDb3BpZWRTcGFjZS5j
cHAiIC8+CkBAIC01NTYsNyArNTU1LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhl
YXBcTWFya2VkU3BhY2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxN
YXJrU3RhY2suY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxTbG90Vmlz
aXRvci5jcHAiIC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXFN1cGVyUmVnaW9u
LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcV2Vhay5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXFdlYWtCbG9jay5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXFdlYWtIYW5kbGVPd25lci5jcHAiIC8+CkBAIC0xMjE4
LDcgKzEyMTYsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZnRsXEZUTFZhbHVlUmFu
Z2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZ0bFxGVExXZWlnaHQuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZ0bFxGVExXZWlnaHRlZFRhcmdldC5oIiAvPgot
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxCbG9ja0FsbG9jYXRvci5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxDb2RlQmxvY2tTZXQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcQ29uc2VydmF0aXZlUm9vdHMuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcQ29waWVkQWxsb2NhdG9yLmgiIC8+CkBAIC0xMjY4LDEy
ICsxMjY1LDEwIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXE1hcmtlZFNwYWNl
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXE1hcmtTdGFjay5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxSZWN1cnNpdmVBbGxvY2F0aW9uU2NvcGUu
aCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcUmVnaW9uLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXFNsb3RWaXNpdG9yLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxoZWFwXFNsb3RWaXNpdG9ySW5saW5lcy5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxTdHJvbmcuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGhlYXBcU3Ryb25nSW5saW5lcy5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5caGVhcFxTdXBlclJlZ2lvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVh
cFxUaW55Qmxvb21GaWx0ZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBc
VW5jb25kaXRpb25hbEZpbmFsaXplci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
aGVhcFxXZWFrLmgiIC8+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENv
cmUudmN4cHJvai5maWx0ZXJzCShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRl
cnMJKHdvcmtpbmcgY29weSkKQEAgLTIzNyw5ICsyMzcsNiBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZGlzYXNzZW1ibGVyXERpc2Fzc2VtYmxlci5jcHAiPgogICAgICAgPEZpbHRlcj5k
aXNhc3NlbWJsZXI8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGhlYXBcQmxvY2tBbGxvY2F0b3IuY3BwIj4KLSAgICAgIDxGaWx0ZXI+aGVhcDwv
RmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVh
cFxDb25zZXJ2YXRpdmVSb290cy5jcHAiPgogICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+CiAg
ICAgPC9DbENvbXBpbGU+CkBAIC0zMDksOSArMzA2LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGhlYXBcU2xvdFZpc2l0b3IuY3BwIj4KICAgICAgIDxGaWx0ZXI+aGVhcDwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxTdXBl
clJlZ2lvbi5jcHAiPgotICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXFdlYWsuY3BwIj4KICAgICAgIDxG
aWx0ZXI+aGVhcDwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMjA0OCw5ICsyMDQyLDYg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRpc2Fzc2VtYmxlclxEaXNhc3NlbWJsZXIu
aCI+CiAgICAgICA8RmlsdGVyPmRpc2Fzc2VtYmxlcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxCbG9ja0FsbG9jYXRvci5oIj4KLSAg
ICAgIDxGaWx0ZXI+aGVhcDwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5caGVhcFxDb25zZXJ2YXRpdmVSb290cy5oIj4KICAgICAgIDxGaWx0ZXI+
aGVhcDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMjE4OSw5ICsyMTgwLDYgQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcUmVjdXJzaXZlQWxsb2NhdGlvblNjb3BlLmgi
PgogICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXFJlZ2lvbi5oIj4KLSAgICAgIDxGaWx0ZXI+aGVhcDwv
RmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVh
cFxTbG90VmlzaXRvci5oIj4KICAgICAgIDxGaWx0ZXI+aGVhcDwvRmlsdGVyPgogICAgIDwvQ2xJ
bmNsdWRlPgpAQCAtMjIwNCw5ICsyMTkyLDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGhlYXBcU3Ryb25nSW5saW5lcy5oIj4KICAgICAgIDxGaWx0ZXI+aGVhcDwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxTdXBlclJlZ2lv
bi5oIj4KLSAgICAgIDxGaWx0ZXI+aGVhcDwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxUaW55Qmxvb21GaWx0ZXIuaCI+CiAgICAgICA8
RmlsdGVyPmhlYXA8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtODEzLDggKzgxMyw2IEBACiAJCTE0N0YzOUQ1MTA3RUMzNzYwMDQyN0E0OCAvKiBKU1N0
cmluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzAyRTlCNjBFMTg0MkZBMDAwRjkyOTcgLyogSlNTdHJpbmcuY3BwICovOyB9OwogCQkxNDdGMzlE
NjEwN0VDMzc2MDA0MjdBNDggLyogSlNDSlNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjkyQTg4NzAyNTU1OTdEMDFGRjYwRjcgLyogSlND
SlNWYWx1ZS5jcHAgKi87IH07CiAJCTE0N0YzOUQ3MTA3RUMzNzYwMDQyN0E0OCAvKiBKU0Vudmly
b25tZW50UmVjb3JkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMjJBMzlBMEUxNkUxNDgwMEFGMjFDOCAvKiBKU0Vudmlyb25tZW50UmVjb3JkLmNw
cCAqLzsgfTsKLQkJMTQ4MTZFMUIxNTRDQzU2QzAwQjgwNTRDIC8qIEJsb2NrQWxsb2NhdG9yLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0ODE2RTE5
MTU0Q0M1NkMwMEI4MDU0QyAvKiBCbG9ja0FsbG9jYXRvci5jcHAgKi87IH07Ci0JCTE0ODE2RTFD
MTU0Q0M1NkMwMEI4MDU0QyAvKiBCbG9ja0FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ4MTZFMUExNTRDQzU2QzAwQjgwNTRDIC8qIEJs
b2NrQWxsb2NhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMTQ4MkI3NEUwQTQzMDMyODAwNTE3Q0ZDIC8qIEpTU3RyaW5nUmVmLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0ODJCNzRDMEE0MzAz
MjgwMDUxN0NGQyAvKiBKU1N0cmluZ1JlZi5jcHAgKi87IH07CiAJCTE0ODJCN0U0MEE0MzA3NjAw
MDUxN0NGQyAvKiBKU09iamVjdFJlZi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNDgyQjdFMjBBNDMwNzYwMDA1MTdDRkMgLyogSlNPYmplY3RSZWYu
Y3BwICovOyB9OwogCQkxNDg3NEFFMzE1RUJERTRBMDAyRTM1ODcgLyogSlNOYW1lU2NvcGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ4NzRBREYx
NUVCREU0QTAwMkUzNTg3IC8qIEpTTmFtZVNjb3BlLmNwcCAqLzsgfTsKQEAgLTE1MjEsNyArMTUx
OSw2IEBACiAJCUJDRkQ4QzkyMEVFQjJFRTcwMDI4Mzg0OCAvKiBKdW1wVGFibGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGRDhDOTAwRUVCMkVF
NzAwMjgzODQ4IC8qIEp1bXBUYWJsZS5jcHAgKi87IH07CiAJCUJDRkQ4QzkzMEVFQjJFRTcwMDI4
Mzg0OCAvKiBKdW1wVGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDRkQ4QzkxMEVFQjJFRTcwMDI4Mzg0OCAvKiBKdW1wVGFibGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjAzMjgyMDE5ODE5
NzlEMDA4OEI0OTkgLyogQ3VzdG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmMgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjAzMjgxRTE5ODE5NzlEMDA4OEI0
OTkgLyogQ3VzdG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmMgKi87IH07Ci0JCUMyMEIyNTk5MTcw
NjUzNjIwMEMyMUY0RSAvKiBSZWdpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyMEIyNTk4MTcwNjUzNjIwMEMyMUY0RSAvKiBSZWdpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjBCQTkyRDE2
QkIxQzE1MDBCM0FFQTIgLyogU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjBCQTkyQzE2QkIxQzE1MDBCM0FF
QTIgLyogU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzIxMTIyRTExNUREOUFCMzAwNzkwRTNBIC8qIEdD
VGhyZWFkU2hhcmVkRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMjExMjJERTE1REQ5QUIzMDA3OTBFM0EgLyogR0NUaHJlYWRTaGFyZWREYXRh
LmNwcCAqLzsgfTsKIAkJQzIxMTIyRTIxNUREOUFCMzAwNzkwRTNBIC8qIEdDVGhyZWFkU2hhcmVk
RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIx
MTIyREYxNUREOUFCMzAwNzkwRTNBIC8qIEdDVGhyZWFkU2hhcmVkRGF0YS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNTYyLDggKzE1NTksNiBA
QAogCQlDMkNGMzlDMTE2RTE1QTgxMDBERDY5QkUgLyogSlNBUElXcmFwcGVyT2JqZWN0Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDRjM5QkYxNkUx
NUE4MTAwREQ2OUJFIC8qIEpTQVBJV3JhcHBlck9iamVjdC5tbSAqLzsgfTsKIAkJQzJDRjM5QzIx
NkUxNUE4MTAwREQ2OUJFIC8qIEpTQVBJV3JhcHBlck9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDRjM5QzAxNkUxNUE4MTAwREQ2OUJFIC8q
IEpTQVBJV3JhcHBlck9iamVjdC5oICovOyB9OwogCQlDMkRBNzc4MzE4RTI1OTk5MDA2NkZDQjYg
LyogSGVhcElubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEMyREE3NzgyMThFMjU5OTkwMDY2RkNCNiAvKiBIZWFwSW5saW5lcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUMyREY0NDJGMTcwN0FD
MDEwMEE1Q0E5NiAvKiBTdXBlclJlZ2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMkRGNDQyRDE3MDdBQzAxMDBBNUNBOTYgLyogU3VwZXJSZWdp
b24uY3BwICovOyB9OwotCQlDMkRGNDQzMDE3MDdBQzAxMDBBNUNBOTYgLyogU3VwZXJSZWdpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyREY0NDJF
MTcwN0FDMDEwMEE1Q0E5NiAvKiBTdXBlclJlZ2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyRTUyNkJEMTU5MEVGMDAwMDU0RTQ4RCAvKiBI
ZWFwVGltZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzJFNTI2QkIxNTkwRUYwMDAwNTRFNDhEIC8qIEhlYXBUaW1lci5jcHAgKi87IH07CiAJCUMy
RTUyNkJFMTU5MEVGMDAwMDU0RTQ4RCAvKiBIZWFwVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyRTUyNkJDMTU5MEVGMDAwMDU0RTQ4RCAvKiBI
ZWFwVGltZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlDMkVBQTNGQTE0OUE4MzVFMDBGQ0UxMTIgLyogQ29waWVkU3BhY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyRUFBM0Y4MTQ5QTgzMDgwMEZD
RTExMiAvKiBDb3BpZWRTcGFjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0yNDI4LDggKzI0MjMsNiBAQAogCQkxNDdCODNBQTBFNkRCOEM5MDA0
Nzc1QTQgLyogQmF0Y2hlZFRyYW5zaXRpb25PcHRpbWl6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQmF0Y2hlZFRyYW5zaXRpb25PcHRpbWl6ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMTQ3Qjg0NjIwRTZERTZCMTAwNDc3NUE0IC8qIFB1dFByb3BlcnR5
U2xvdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQdXRQcm9wZXJ0eVNsb3Qu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ4MERCOUIwRERDMjI3RjAwM0NGREYy
IC8qIERlYnVnZ2VyQ2FsbEZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERlYnVnZ2VyQ2FsbEZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTE0ODE2
RTE5MTU0Q0M1NkMwMEI4MDU0QyAvKiBCbG9ja0FsbG9jYXRvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCbG9ja0FsbG9jYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTE0ODE2RTFBMTU0Q0M1NkMwMEI4MDU0QyAvKiBCbG9ja0FsbG9jYXRv
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9ja0FsbG9jYXRvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDgyQjZFQTBBNDMwMEIzMDA1MTdDRkMgLyog
SlNWYWx1ZVJlZi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1ZhbHVlUmVm
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0ODJCNzRCMEE0MzAzMjgwMDUxN0NG
QyAvKiBKU1N0cmluZ1JlZi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0
cmluZ1JlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDgyQjc0QzBBNDMwMzI4
MDA1MTdDRkMgLyogSlNTdHJpbmdSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNTdHJpbmdSZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MzIwMyw3ICszMTk2LDYgQEAKIAkJQkNGRDhDOTEwRUVCMkVFNzAwMjgzODQ4IC8qIEp1bXBUYWJs
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKdW1wVGFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzIwMzI4MUUxOTgxOTc5RDAwODhCNDk5IC8qIEN1c3Rv
bUdsb2JhbE9iamVjdENsYXNzVGVzdC5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUg
PSBDdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuYzsgcGF0aCA9IEFQSS90ZXN0cy9DdXN0b21H
bG9iYWxPYmplY3RDbGFzc1Rlc3QuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzIw
MzI4MUYxOTgxOTc5RDAwODhCNDk5IC8qIEN1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rl
c3QuaDsgcGF0aCA9IEFQSS90ZXN0cy9DdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzIwQjI1OTgxNzA2NTM2MjAwQzIxRjRFIC8qIFJl
Z2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWdpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzIwQkE5MkMxNkJCMUMxNTAwQjNBRUEyIC8qIFN0cnVj
dHVyZVJhcmVEYXRhSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
dHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzIxMTIyREUxNUREOUFCMzAwNzkwRTNBIC8qIEdDVGhyZWFkU2hhcmVkRGF0YS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHQ1RocmVhZFNoYXJlZERhdGEuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjExMjJERjE1REQ5QUIzMDA3OTBFM0EgLyog
R0NUaHJlYWRTaGFyZWREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdD
VGhyZWFkU2hhcmVkRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzI0Niw4
ICszMjM4LDYgQEAKIAkJQzJDRjM5QkYxNkUxNUE4MTAwREQ2OUJFIC8qIEpTQVBJV3JhcHBlck9i
amVjdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEpTQVBJV3Jh
cHBlck9iamVjdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzJDRjM5QzAxNkUx
NUE4MTAwREQ2OUJFIC8qIEpTQVBJV3JhcHBlck9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0FQSVdyYXBwZXJPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzJEQTc3ODIxOEUyNTk5OTAwNjZGQ0I2IC8qIEhlYXBJbmxpbmVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhlYXBJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUMyREY0NDJEMTcwN0FDMDEwMEE1Q0E5NiAvKiBTdXBlclJlZ2lvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdXBlclJlZ2lvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUMyREY0NDJFMTcwN0FDMDEwMEE1Q0E5NiAv
KiBTdXBlclJlZ2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdXBlclJl
Z2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkU1MjZCQjE1OTBFRjAwMDA1
NEU0OEQgLyogSGVhcFRpbWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEhlYXBUaW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyRTUyNkJD
MTU5MEVGMDAwMDU0RTQ4RCAvKiBIZWFwVGltZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSGVhcFRpbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyRUFB
M0Y4MTQ5QTgzMDgwMEZDRTExMiAvKiBDb3BpZWRTcGFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDb3BpZWRTcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMzgyNiw4ICszODE2LDYgQEAKIAkJCQlBRERCMUY2MjE4RDc3REI3MDA5QjU4QTggLyogT3Bh
cXVlUm9vdFNldC5oICovLAogCQkJCTJBQUNFNjNBMThDQTVBMDMwMEVEMDE5MSAvKiBHQ0FjdGl2
aXR5Q2FsbGJhY2suY3BwICovLAogCQkJCTJBQUNFNjNCMThDQTVBMDMwMEVEMDE5MSAvKiBHQ0Fj
dGl2aXR5Q2FsbGJhY2suaCAqLywKLQkJCQkxNDgxNkUxOTE1NENDNTZDMDBCODA1NEMgLyogQmxv
Y2tBbGxvY2F0b3IuY3BwICovLAotCQkJCTE0ODE2RTFBMTU0Q0M1NkMwMEI4MDU0QyAvKiBCbG9j
a0FsbG9jYXRvci5oICovLAogCQkJCTBGRDhBMzExMTdENDMyNkMwMENBMkM0MCAvKiBDb2RlQmxv
Y2tTZXQuY3BwICovLAogCQkJCTBGRDhBMzEyMTdENDMyNkMwMENBMkM0MCAvKiBDb2RlQmxvY2tT
ZXQuaCAqLywKIAkJCQkxNDZCMTREQjEyRUI1QjEyMDAxQkVDMUIgLyogQ29uc2VydmF0aXZlUm9v
dHMuY3BwICovLApAQCAtMzg5NSwxNCArMzg4MywxMSBAQAogCQkJCTE0MkQ2RjBFMTM1MzlBNDEw
MEIwMkU4NiAvKiBNYXJrU3RhY2suY3BwICovLAogCQkJCTE0MkQ2RjBGMTM1MzlBNDEwMEIwMkU4
NiAvKiBNYXJrU3RhY2suaCAqLywKIAkJCQkyQUFEOTY0OTE4NTY5NDE3MDAxRjkzQkUgLyogUmVj
dXJzaXZlQWxsb2NhdGlvblNjb3BlLmggKi8sCi0JCQkJQzIwQjI1OTgxNzA2NTM2MjAwQzIxRjRF
IC8qIFJlZ2lvbi5oICovLAogCQkJCUMyMjU0OTQyMTVGN0RCQUEwMDY1RTg5OCAvKiBTbG90Vmlz
aXRvci5jcHAgKi8sCiAJCQkJMTRCQTc4RjAxM0FBQjg4RjAwNUI3QzJDIC8qIFNsb3RWaXNpdG9y
LmggKi8sCiAJCQkJMEZDQjQwODUxNUMwQTNDMzAwNDg5MzJCIC8qIFNsb3RWaXNpdG9ySW5saW5l
cy5oICovLAogCQkJCTE0MkUzMTMyMTM0RkYwQTYwMEFGQURCNSAvKiBTdHJvbmcuaCAqLywKIAkJ
CQkxNDU3MjI4NTE0MzdFMTQwMDA1RkRFMjYgLyogU3Ryb25nSW5saW5lcy5oICovLAotCQkJCUMy
REY0NDJEMTcwN0FDMDEwMEE1Q0E5NiAvKiBTdXBlclJlZ2lvbi5jcHAgKi8sCi0JCQkJQzJERjQ0
MkUxNzA3QUMwMTAwQTVDQTk2IC8qIFN1cGVyUmVnaW9uLmggKi8sCiAJCQkJMTQxNDQ4Q0MxM0Ex
NzgzNzAwRjVCQTFBIC8qIFRpbnlCbG9vbUZpbHRlci5oICovLAogCQkJCTBGNUYwOENFMTQ2Qzc2
MkYwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmggKi8sCiAJCQkJMUFDRjczNzYx
NzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsuY3BwICovLApAQCAtNTQ1Nyw3ICs1NDQyLDYgQEAKIAkJ
CQkwRjI0RTU0MTE3RUE5RjU5MDBBQkIyMTcgLyogQXNzZW1ibHlIZWxwZXJzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNzg0QTI2MTExRDE2NjIyMDA1Nzc2QUMgLyogQVNUQnVpbGRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODY2NzM5RDIxM0JGREU3MTAwMjNEODdDIC8qIEJpZ0ludGVnZXIuaCBp
biBIZWFkZXJzICovLAotCQkJCTE0ODE2RTFDMTU0Q0M1NkMwMEI4MDU0QyAvKiBCbG9ja0FsbG9j
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEMzRUMwRTE2RjVDRDAwQjM0NDYwIC8qIEJv
b2xlYW5PYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFQTA4NjIwMTgyQjdBMDQwMEY2RDg1
MSAvKiBCcmVha3BvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUQyRTY2NTE5NUUxNzQwMDBB
NTE4RTcgLyogSlNDb250ZXh0UmVmSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtNjE0MCw3
ICs2MTI0LDYgQEAKIAkJCQlCQzE4QzQ1QjBFMTZGNUNEMDBCMzQ0NjAgLyogUmVnRXhwT2JqZWN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzUyQzBFMTZGQ0QyMDBCMzQ0NjAgLyogUmVnRXhw
T2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEMjAyQzQwRTE3MDZBNzAwMkM3RTgy
IC8qIFJlZ0V4cFByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQzIwQjI1OTkxNzA2NTM2
MjAwQzIxRjRFIC8qIFJlZ2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NUQwRTE2RjVD
RDAwQjM0NDYwIC8qIFJlZ2lzdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NjlBMDcyQjBFRDFD
RTY5MDBGMUY2ODEgLyogUmVnaXN0ZXJJRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2QjFDQkEx
ODYxMjQ0QzAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC02MjEzLDcgKzYxOTYsNiBAQAogCQkJCTBGNzY2RDM5MTVBRTRBMUYwMDhGMzYzRSAv
KiBTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0NGMEQwODBFRjBBQUI5MDA0MTNDOEYgLyogU3RydWN0dXJlU3R1YkluZm8uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDOTA0MTQ4MEVCOTI1MDkwMEZFMjZGQSAvKiBTdHJ1Y3R1cmVUcmFuc2l0aW9u
VGFibGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUMyREY0NDMwMTcwN0FDMDEwMEE1Q0E5NiAvKiBT
dXBlclJlZ2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NkIwRTE2RjVDRDAwQjM0NDYw
IC8qIFN5bWJvbFRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzg0QTI2NDExRDE2NjIyMDA1
Nzc2QUMgLyogU3ludGF4Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyNEU1NEYxN0VF
Mjc0OTAwQUJCMjE3IC8qIFRlbXBSZWdpc3RlclNldC5oIGluIEhlYWRlcnMgKi8sCkBAIC02NzYw
LDcgKzY3NDIsNiBAQAogCQkJCTBGNjM5NDU0MTVEMDcwNTUwMDZBNTk3QyAvKiBBcnJheVByb2Zp
bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzAxMDdFQzM3NjAwNDI3QTQ4IC8qIEFy
cmF5UHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjRFNTQwMTdFQTlGNTkwMEFC
QjIxNyAvKiBBc3NlbWJseUhlbHBlcnMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMTQ4MTZFMUIx
NTRDQzU2QzAwQjgwNTRDIC8qIEJsb2NrQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGNjlDQzg4MTkzQUM2MEEwMDQ1NzU5RSAvKiBERkdGcm96ZW5WYWx1ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxNDI4MDg2MzEwN0VDMTFBMDAxM0U3QjIgLyogQm9vbGVhbkNvbnN0cnVjdG9y
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MjgwODY0MTA3RUMxMUEwMDEzRTdCMiAvKiBCb29s
ZWFuT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNzI4Miw3ICs3MjYzLDYgQEAKIAkJCQlD
MkYwRjJEMTE2QkFFRUU5MDAxODdDMTkgLyogU3RydWN0dXJlUmFyZURhdGEuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEY3NjZEMzgxNUFFNEExQzAwOEYzNjNFIC8qIFN0cnVjdHVyZVN0dWJDbGVh
cmluZ1dhdGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNDRjBEMEMwRUYwQjhBNTAw
NDEzQzhGIC8qIFN0cnVjdHVyZVN0dWJJbmZvLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUMyREY0
NDJGMTcwN0FDMDEwMEE1Q0E5NiAvKiBTdXBlclJlZ2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRjkxOUQyODE1ODU2NzczMDA0QTRFN0QgLyogU3ltYm9sVGFibGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZDMzE0MTMxODE0NTU5MTAwMDMzMjMyIC8qIFRlbXBSZWdpc3RlclNldC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRkEyQzE3QjE3RDdDRjg0MDA5RDAxNUYgLyogVGVzdFJ1bm5l
clV0aWxzLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvQmxvY2tBbGxvY2F0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0Jsb2NrQWxsb2NhdG9yLmNwcAkocmV2aXNpb24gMTc5MDI1KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDE3MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IkJsb2NrQWxsb2NhdG9yLmgiCi0KLSNpbmNsdWRlICJDb3BpZWRCbG9jay5oIgotI2luY2x1ZGUg
IkNvcHlXb3JrTGlzdC5oIgotI2luY2x1ZGUgIk1hcmtlZEJsb2NrLmgiCi0jaW5jbHVkZSAiSlND
SW5saW5lcy5oIgotI2luY2x1ZGUgIldlYWtCbG9jay5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50
VGltZS5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQotaW5saW5lIFRocmVhZElkZW50aWZpZXIgY3Jl
YXRlQmxvY2tGcmVlaW5nVGhyZWFkKEJsb2NrQWxsb2NhdG9yKiBhbGxvY2F0b3IpCi17Ci0gICAg
aWYgKCFHQ0FjdGl2aXR5Q2FsbGJhY2s6OnNfc2hvdWxkQ3JlYXRlR0NUaW1lcikKLSAgICAgICAg
cmV0dXJuIDA7IC8vIE5vIGJsb2NrIGZyZWVpbmcgdGhyZWFkLgotICAgIFRocmVhZElkZW50aWZp
ZXIgaWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZChhbGxvY2F0b3ItPmJsb2NrRnJlZWluZ1RocmVh
ZFN0YXJ0RnVuYywgYWxsb2NhdG9yLCAiSmF2YVNjcmlwdENvcmU6OkJsb2NrRnJlZSIpOwotICAg
IFJFTEVBU0VfQVNTRVJUKGlkZW50aWZpZXIpOwotICAgIHJldHVybiBpZGVudGlmaWVyOwotfQot
Ci1CbG9ja0FsbG9jYXRvcjo6QmxvY2tBbGxvY2F0b3IoKQotICAgIDogbV9zdXBlclJlZ2lvbigp
Ci0gICAgLCBtX2NvcGllZFJlZ2lvblNldChDb3BpZWRCbG9jazo6YmxvY2tTaXplKQotICAgICwg
bV9tYXJrZWRSZWdpb25TZXQoTWFya2VkQmxvY2s6OmJsb2NrU2l6ZSkKLSAgICAsIG1fZm91cktC
QmxvY2tSZWdpb25TZXQoV2Vha0Jsb2NrOjpibG9ja1NpemUpCi0gICAgLCBtX3dvcmtMaXN0UmVn
aW9uU2V0KENvcHlXb3JrTGlzdFNlZ21lbnQ6OmJsb2NrU2l6ZSkKLSAgICAsIG1fbnVtYmVyT2ZF
bXB0eVJlZ2lvbnMoMCkKLSAgICAsIG1faXNDdXJyZW50bHlBbGxvY2F0aW5nKGZhbHNlKQotICAg
ICwgbV9ibG9ja0ZyZWVpbmdUaHJlYWRTaG91bGRRdWl0KGZhbHNlKQotICAgICwgbV9ibG9ja0Zy
ZWVpbmdUaHJlYWQoY3JlYXRlQmxvY2tGcmVlaW5nVGhyZWFkKHRoaXMpKQotewotICAgIG1fcmVn
aW9uTG9jay5Jbml0KCk7Ci19Ci0KLUJsb2NrQWxsb2NhdG9yOjp+QmxvY2tBbGxvY2F0b3IoKQot
ewotICAgIHJlbGVhc2VGcmVlUmVnaW9ucygpOwotICAgIHsKLSAgICAgICAgc3RkOjpsb2NrX2d1
YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobV9lbXB0eVJlZ2lvbkNvbmRpdGlvbk11dGV4KTsKLSAgICAg
ICAgbV9ibG9ja0ZyZWVpbmdUaHJlYWRTaG91bGRRdWl0ID0gdHJ1ZTsKLSAgICAgICAgbV9lbXB0
eVJlZ2lvbkNvbmRpdGlvbi5ub3RpZnlfYWxsKCk7Ci0gICAgfQotICAgIGlmIChtX2Jsb2NrRnJl
ZWluZ1RocmVhZCkKLSAgICAgICAgd2FpdEZvclRocmVhZENvbXBsZXRpb24obV9ibG9ja0ZyZWVp
bmdUaHJlYWQpOwotICAgIEFTU0VSVChhbGxSZWdpb25TZXRzQXJlRW1wdHkoKSk7Ci0gICAgQVNT
RVJUKG1fZW1wdHlSZWdpb25zLmlzRW1wdHkoKSk7Ci19Ci0KLWJvb2wgQmxvY2tBbGxvY2F0b3I6
OmFsbFJlZ2lvblNldHNBcmVFbXB0eSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY29waWVkUmVn
aW9uU2V0LmlzRW1wdHkoKQotICAgICAgICAmJiBtX21hcmtlZFJlZ2lvblNldC5pc0VtcHR5KCkK
LSAgICAgICAgJiYgbV9mb3VyS0JCbG9ja1JlZ2lvblNldC5pc0VtcHR5KCkKLSAgICAgICAgJiYg
bV93b3JrTGlzdFJlZ2lvblNldC5pc0VtcHR5KCk7Ci19Ci0KLXZvaWQgQmxvY2tBbGxvY2F0b3I6
OnJlbGVhc2VGcmVlUmVnaW9ucygpCi17Ci0gICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgUmVn
aW9uKiByZWdpb247Ci0gICAgICAgIHsKLSAgICAgICAgICAgIFNwaW5Mb2NrSG9sZGVyIGxvY2tl
cigmbV9yZWdpb25Mb2NrKTsKLSAgICAgICAgICAgIGlmICghbV9udW1iZXJPZkVtcHR5UmVnaW9u
cykKLSAgICAgICAgICAgICAgICByZWdpb24gPSAwOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgcmVnaW9uID0gbV9lbXB0eVJlZ2lvbnMucmVtb3ZlSGVhZCgpOwotICAgICAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHJlZ2lvbik7Ci0gICAgICAgICAgICAgICAgbV9udW1i
ZXJPZkVtcHR5UmVnaW9ucy0tOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIAot
ICAgICAgICBpZiAoIXJlZ2lvbikKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIHJlZ2lv
bi0+ZGVzdHJveSgpOwotICAgIH0KLX0KLQotdm9pZCBCbG9ja0FsbG9jYXRvcjo6d2FpdEZvckR1
cmF0aW9uKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZHVyYXRpb24pCi17Ci0gICAgc3RkOjp1
bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG1fZW1wdHlSZWdpb25Db25kaXRpb25NdXRleCk7
Ci0KLSAgICAvLyBJZiB0aGlzIHJldHVybnMgZWFybHksIHRoYXQncyBmaW5lLCBzbyBsb25nIGFz
IGl0IGRvZXNuJ3QgZG8gaXQgdG9vCi0gICAgLy8gZnJlcXVlbnRseS4gSXQgd291bGQgb25seSBi
ZSBhIGJ1ZyBpZiB0aGlzIGZ1bmN0aW9uIGZhaWxlZCB0byByZXR1cm4KLSAgICAvLyB3aGVuIGl0
IHdhcyBhc2tlZCB0byBkbyBzby4KLSAgICBpZiAobV9ibG9ja0ZyZWVpbmdUaHJlYWRTaG91bGRR
dWl0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2VtcHR5UmVnaW9uQ29uZGl0aW9uLndhaXRf
Zm9yKGxvY2ssIGR1cmF0aW9uKTsKLX0KLQotdm9pZCBCbG9ja0FsbG9jYXRvcjo6YmxvY2tGcmVl
aW5nVGhyZWFkU3RhcnRGdW5jKHZvaWQqIGJsb2NrQWxsb2NhdG9yKQotewotICAgIHN0YXRpY19j
YXN0PEJsb2NrQWxsb2NhdG9yKj4oYmxvY2tBbGxvY2F0b3IpLT5ibG9ja0ZyZWVpbmdUaHJlYWRN
YWluKCk7Ci19Ci0KLXZvaWQgQmxvY2tBbGxvY2F0b3I6OmJsb2NrRnJlZWluZ1RocmVhZE1haW4o
KQotewotICAgIHNpemVfdCBjdXJyZW50TnVtYmVyT2ZFbXB0eVJlZ2lvbnM7Ci0gICAgd2hpbGUg
KCFtX2Jsb2NrRnJlZWluZ1RocmVhZFNob3VsZFF1aXQpIHsKLSAgICAgICAgLy8gR2VuZXJhbGx5
IHdhaXQgZm9yIG9uZSBzZWNvbmQgYmVmb3JlIHNjYXZlbmdpbmcgZnJlZSBibG9ja3MuIFRoaXMK
LSAgICAgICAgLy8gbWF5IHJldHVybiBlYXJseSwgcGFydGljdWxhcmx5IHdoZW4gd2UncmUgYmVp
bmcgYXNrZWQgdG8gcXVpdC4KLSAgICAgICAgd2FpdEZvckR1cmF0aW9uKHN0ZDo6Y2hyb25vOjpz
ZWNvbmRzKDEpKTsKLSAgICAgICAgaWYgKG1fYmxvY2tGcmVlaW5nVGhyZWFkU2hvdWxkUXVpdCkK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAKLSAgICAgICAgaWYgKG1faXNDdXJyZW50bHlB
bGxvY2F0aW5nKSB7Ci0gICAgICAgICAgICBtX2lzQ3VycmVudGx5QWxsb2NhdGluZyA9IGZhbHNl
OwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBTbGVlcCB1
bnRpbCB0aGVyZSBpcyBhY3R1YWxseSB3b3JrIHRvIGRvIHJhdGhlciB0aGFuIHdha2luZyB1cCBl
dmVyeSBzZWNvbmQgdG8gY2hlY2suCi0gICAgICAgIHsKLSAgICAgICAgICAgIHN0ZDo6dW5pcXVl
X2xvY2s8c3RkOjptdXRleD4gbG9jayhtX2VtcHR5UmVnaW9uQ29uZGl0aW9uTXV0ZXgpOwotICAg
ICAgICAgICAgU3BpbkxvY2tIb2xkZXIgcmVnaW9uTG9ja2VyKCZtX3JlZ2lvbkxvY2spOwotICAg
ICAgICAgICAgd2hpbGUgKCFtX251bWJlck9mRW1wdHlSZWdpb25zICYmICFtX2Jsb2NrRnJlZWlu
Z1RocmVhZFNob3VsZFF1aXQpIHsKLSAgICAgICAgICAgICAgICBtX3JlZ2lvbkxvY2suVW5sb2Nr
KCk7Ci0gICAgICAgICAgICAgICAgbV9lbXB0eVJlZ2lvbkNvbmRpdGlvbi53YWl0KGxvY2spOwot
ICAgICAgICAgICAgICAgIG1fcmVnaW9uTG9jay5Mb2NrKCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBjdXJyZW50TnVtYmVyT2ZFbXB0eVJlZ2lvbnMgPSBtX251bWJlck9mRW1wdHlSZWdp
b25zOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBzaXplX3QgZGVzaXJlZE51bWJlck9m
RW1wdHlSZWdpb25zID0gY3VycmVudE51bWJlck9mRW1wdHlSZWdpb25zIC8gMjsKLSAgICAgICAg
Ci0gICAgICAgIHdoaWxlICghbV9ibG9ja0ZyZWVpbmdUaHJlYWRTaG91bGRRdWl0KSB7Ci0gICAg
ICAgICAgICBSZWdpb24qIHJlZ2lvbjsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBT
cGluTG9ja0hvbGRlciBsb2NrZXIoJm1fcmVnaW9uTG9jayk7Ci0gICAgICAgICAgICAgICAgaWYg
KG1fbnVtYmVyT2ZFbXB0eVJlZ2lvbnMgPD0gZGVzaXJlZE51bWJlck9mRW1wdHlSZWdpb25zKQot
ICAgICAgICAgICAgICAgICAgICByZWdpb24gPSAwOwotICAgICAgICAgICAgICAgIGVsc2Ugewot
ICAgICAgICAgICAgICAgICAgICByZWdpb24gPSBtX2VtcHR5UmVnaW9ucy5yZW1vdmVIZWFkKCk7
Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHJlZ2lvbik7Ci0gICAgICAgICAg
ICAgICAgICAgIG1fbnVtYmVyT2ZFbXB0eVJlZ2lvbnMtLTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICghcmVnaW9uKQotICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCi0gICAgICAgICAgICByZWdpb24tPmRl
c3Ryb3koKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0FsbG9jYXRvci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrQWxsb2NhdG9yLmgJKHJldmlzaW9u
IDE3OTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrQWxsb2NhdG9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMjUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEJs
b2NrQWxsb2NhdG9yX2gKLSNkZWZpbmUgQmxvY2tBbGxvY2F0b3JfaAotCi0jaW5jbHVkZSAiR0NB
Y3Rpdml0eUNhbGxiYWNrLmgiCi0jaW5jbHVkZSAiSGVhcEJsb2NrLmgiCi0jaW5jbHVkZSAiUmVn
aW9uLmgiCi0jaW5jbHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxlPgotI2luY2x1ZGUgPHd0Zi9Eb3Vi
bHlMaW5rZWRMaXN0Lmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYv
UGFnZUFsbG9jYXRpb25BbGlnbmVkLmg+Ci0jaW5jbHVkZSA8d3RmL1RDU3BpbkxvY2suaD4KLSNp
bmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+Ci0KLW5hbWVzcGFjZSBKU0MgewotCi1jbGFzcyBCbG9j
a0FsbG9jYXRvcjsKLWNsYXNzIENvZGVCbG9jazsKLWNsYXNzIENvcGllZEJsb2NrOwotY2xhc3Mg
Q29weVdvcmtMaXN0U2VnbWVudDsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBHQ0FycmF5
U2VnbWVudDsKLWNsYXNzIEhhbmRsZUJsb2NrOwotY2xhc3MgSlNDZWxsOwotY2xhc3MgVk07Ci1j
bGFzcyBNYXJrZWRCbG9jazsKLWNsYXNzIFdlYWtCbG9jazsKLQotLy8gU2ltcGxlIGFsbG9jYXRv
ciB0byByZWR1Y2UgVk0gY29zdCBieSBob2xkaW5nIG9udG8gYmxvY2tzIG9mIG1lbW9yeSBmb3IK
LS8vIHNob3J0IHBlcmlvZHMgb2YgdGltZSBhbmQgdGhlbiBmcmVlaW5nIHRoZW0gb24gYSBzZWNv
bmRhcnkgdGhyZWFkLgotCi1jbGFzcyBCbG9ja0FsbG9jYXRvciB7Ci1wdWJsaWM6Ci0gICAgQmxv
Y2tBbGxvY2F0b3IoKTsKLSAgICB+QmxvY2tBbGxvY2F0b3IoKTsKLQotICAgIHRlbXBsYXRlIDx0
eXBlbmFtZSBUPiBEZWFkQmxvY2sqIGFsbG9jYXRlKCk7Ci0gICAgRGVhZEJsb2NrKiBhbGxvY2F0
ZUN1c3RvbVNpemUoc2l6ZV90IGJsb2NrU2l6ZSwgc2l6ZV90IGJsb2NrQWxpZ25tZW50KTsKLSAg
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBkZWFsbG9jYXRlKFQqKTsKLSAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4gdm9pZCBkZWFsbG9jYXRlQ3VzdG9tU2l6ZShUKik7Ci0KLSAgICBKU19F
WFBPUlRfUFJJVkFURSB2b2lkIHJlbGVhc2VGcmVlUmVnaW9ucygpOwotCi1wcml2YXRlOgotICAg
IHZvaWQgd2FpdEZvckR1cmF0aW9uKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMpOwotCi0gICAg
ZnJpZW5kIFRocmVhZElkZW50aWZpZXIgY3JlYXRlQmxvY2tGcmVlaW5nVGhyZWFkKEJsb2NrQWxs
b2NhdG9yKik7Ci0gICAgdm9pZCBibG9ja0ZyZWVpbmdUaHJlYWRNYWluKCk7Ci0gICAgc3RhdGlj
IHZvaWQgYmxvY2tGcmVlaW5nVGhyZWFkU3RhcnRGdW5jKHZvaWQqIGhlYXApOwotCi0gICAgc3Ry
dWN0IFJlZ2lvblNldCB7Ci0gICAgICAgIFJlZ2lvblNldChzaXplX3QgYmxvY2tTaXplKQotICAg
ICAgICAgICAgOiBtX251bWJlck9mUGFydGlhbFJlZ2lvbnMoMCkKLSAgICAgICAgICAgICwgbV9i
bG9ja1NpemUoYmxvY2tTaXplKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBib29s
IGlzRW1wdHkoKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbV9mdWxsUmVn
aW9ucy5pc0VtcHR5KCkgJiYgbV9wYXJ0aWFsUmVnaW9ucy5pc0VtcHR5KCk7Ci0gICAgICAgIH0K
LQotICAgICAgICBEb3VibHlMaW5rZWRMaXN0PFJlZ2lvbj4gbV9mdWxsUmVnaW9uczsKLSAgICAg
ICAgRG91Ymx5TGlua2VkTGlzdDxSZWdpb24+IG1fcGFydGlhbFJlZ2lvbnM7Ci0gICAgICAgIHNp
emVfdCBtX251bWJlck9mUGFydGlhbFJlZ2lvbnM7Ci0gICAgICAgIHNpemVfdCBtX2Jsb2NrU2l6
ZTsKLSAgICB9OwotCi0gICAgRGVhZEJsb2NrKiB0cnlBbGxvY2F0ZUZyb21SZWdpb24oUmVnaW9u
U2V0JiwgRG91Ymx5TGlua2VkTGlzdDxSZWdpb24+Jiwgc2l6ZV90Jik7Ci0KLSAgICBib29sIGFs
bFJlZ2lvblNldHNBcmVFbXB0eSgpIGNvbnN0OwotCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IFJlZ2lvblNldCYgcmVnaW9uU2V0Rm9yKCk7Ci0KLSAgICBTdXBlclJlZ2lvbiBtX3N1cGVyUmVn
aW9uOwotICAgIFJlZ2lvblNldCBtX2NvcGllZFJlZ2lvblNldDsKLSAgICBSZWdpb25TZXQgbV9t
YXJrZWRSZWdpb25TZXQ7Ci0gICAgLy8gV2Vha0Jsb2NrcyBhbmQgR0NBcnJheVNlZ21lbnRzIHVz
ZSB0aGUgc2FtZSBSZWdpb25TZXQgc2luY2UgdGhleSdyZSB0aGUgc2FtZSBzaXplLgotICAgIFJl
Z2lvblNldCBtX2ZvdXJLQkJsb2NrUmVnaW9uU2V0OwotICAgIFJlZ2lvblNldCBtX3dvcmtMaXN0
UmVnaW9uU2V0OwotCi0gICAgRG91Ymx5TGlua2VkTGlzdDxSZWdpb24+IG1fZW1wdHlSZWdpb25z
OwotICAgIHNpemVfdCBtX251bWJlck9mRW1wdHlSZWdpb25zOwotCi0gICAgYm9vbCBtX2lzQ3Vy
cmVudGx5QWxsb2NhdGluZzsKLSAgICBib29sIG1fYmxvY2tGcmVlaW5nVGhyZWFkU2hvdWxkUXVp
dDsKLSAgICBTcGluTG9jayBtX3JlZ2lvbkxvY2s7Ci0gICAgc3RkOjptdXRleCBtX2VtcHR5UmVn
aW9uQ29uZGl0aW9uTXV0ZXg7Ci0gICAgc3RkOjpjb25kaXRpb25fdmFyaWFibGUgbV9lbXB0eVJl
Z2lvbkNvbmRpdGlvbjsKLSAgICBUaHJlYWRJZGVudGlmaWVyIG1fYmxvY2tGcmVlaW5nVGhyZWFk
OwotfTsKLQotaW5saW5lIERlYWRCbG9jayogQmxvY2tBbGxvY2F0b3I6OnRyeUFsbG9jYXRlRnJv
bVJlZ2lvbihSZWdpb25TZXQmIHNldCwgRG91Ymx5TGlua2VkTGlzdDxSZWdpb24+JiByZWdpb25z
LCBzaXplX3QmIG51bWJlck9mUmVnaW9ucykKLXsKLSAgICBpZiAobnVtYmVyT2ZSZWdpb25zKSB7
Ci0gICAgICAgIEFTU0VSVCghcmVnaW9ucy5pc0VtcHR5KCkpOwotICAgICAgICBSZWdpb24qIHJl
Z2lvbiA9IHJlZ2lvbnMuaGVhZCgpOwotICAgICAgICBBU1NFUlQoIXJlZ2lvbi0+aXNGdWxsKCkp
OwotCi0gICAgICAgIGlmIChyZWdpb24tPmlzRW1wdHkoKSkgewotICAgICAgICAgICAgQVNTRVJU
KHJlZ2lvbiA9PSBtX2VtcHR5UmVnaW9ucy5oZWFkKCkpOwotICAgICAgICAgICAgbV9udW1iZXJP
ZkVtcHR5UmVnaW9ucy0tOwotICAgICAgICAgICAgc2V0Lm1fbnVtYmVyT2ZQYXJ0aWFsUmVnaW9u
cysrOwotICAgICAgICAgICAgcmVnaW9uID0gbV9lbXB0eVJlZ2lvbnMucmVtb3ZlSGVhZCgpLT5y
ZXNldChzZXQubV9ibG9ja1NpemUpOwotICAgICAgICAgICAgc2V0Lm1fcGFydGlhbFJlZ2lvbnMu
cHVzaChyZWdpb24pOwotICAgICAgICB9Ci0KLSAgICAgICAgRGVhZEJsb2NrKiBibG9jayA9IHJl
Z2lvbi0+YWxsb2NhdGUoKTsKLQotICAgICAgICBpZiAocmVnaW9uLT5pc0Z1bGwoKSkgewotICAg
ICAgICAgICAgc2V0Lm1fbnVtYmVyT2ZQYXJ0aWFsUmVnaW9ucy0tOwotICAgICAgICAgICAgc2V0
Lm1fZnVsbFJlZ2lvbnMucHVzaChzZXQubV9wYXJ0aWFsUmVnaW9ucy5yZW1vdmVIZWFkKCkpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGJsb2NrOwotICAgIH0KLSAgICByZXR1cm4gMDsK
LX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4KLWlubGluZSBEZWFkQmxvY2sqIEJsb2NrQWxsb2Nh
dG9yOjphbGxvY2F0ZSgpCi17Ci0gICAgUmVnaW9uU2V0JiBzZXQgPSByZWdpb25TZXRGb3I8VD4o
KTsKLSAgICBEZWFkQmxvY2sqIGJsb2NrOwotICAgIG1faXNDdXJyZW50bHlBbGxvY2F0aW5nID0g
dHJ1ZTsKLSAgICB7Ci0gICAgICAgIFNwaW5Mb2NrSG9sZGVyIGxvY2tlcigmbV9yZWdpb25Mb2Nr
KTsKLSAgICAgICAgaWYgKChibG9jayA9IHRyeUFsbG9jYXRlRnJvbVJlZ2lvbihzZXQsIHNldC5t
X3BhcnRpYWxSZWdpb25zLCBzZXQubV9udW1iZXJPZlBhcnRpYWxSZWdpb25zKSkpCi0gICAgICAg
ICAgICByZXR1cm4gYmxvY2s7Ci0gICAgICAgIGlmICgoYmxvY2sgPSB0cnlBbGxvY2F0ZUZyb21S
ZWdpb24oc2V0LCBtX2VtcHR5UmVnaW9ucywgbV9udW1iZXJPZkVtcHR5UmVnaW9ucykpKQotICAg
ICAgICAgICAgcmV0dXJuIGJsb2NrOwotICAgIH0KLQotICAgIFJlZ2lvbiogbmV3UmVnaW9uID0g
UmVnaW9uOjpjcmVhdGUoJm1fc3VwZXJSZWdpb24sIFQ6OmJsb2NrU2l6ZSk7Ci0KLSAgICBTcGlu
TG9ja0hvbGRlciBsb2NrZXIoJm1fcmVnaW9uTG9jayk7Ci0gICAgbV9lbXB0eVJlZ2lvbnMucHVz
aChuZXdSZWdpb24pOwotICAgIG1fbnVtYmVyT2ZFbXB0eVJlZ2lvbnMrKzsKLSAgICBibG9jayA9
IHRyeUFsbG9jYXRlRnJvbVJlZ2lvbihzZXQsIG1fZW1wdHlSZWdpb25zLCBtX251bWJlck9mRW1w
dHlSZWdpb25zKTsKLSAgICBBU1NFUlQoYmxvY2spOwotICAgIHJldHVybiBibG9jazsKLX0KLQot
aW5saW5lIERlYWRCbG9jayogQmxvY2tBbGxvY2F0b3I6OmFsbG9jYXRlQ3VzdG9tU2l6ZShzaXpl
X3QgYmxvY2tTaXplLCBzaXplX3QgYmxvY2tBbGlnbm1lbnQpCi17Ci0gICAgc2l6ZV90IHJlYWxT
aXplID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKGJsb2NrQWxpZ25tZW50LCBibG9ja1NpemUp
OwotICAgIFJlZ2lvbiogbmV3UmVnaW9uID0gUmVnaW9uOjpjcmVhdGVDdXN0b21TaXplKCZtX3N1
cGVyUmVnaW9uLCByZWFsU2l6ZSwgYmxvY2tBbGlnbm1lbnQpOwotICAgIERlYWRCbG9jayogYmxv
Y2sgPSBuZXdSZWdpb24tPmFsbG9jYXRlKCk7Ci0gICAgQVNTRVJUKGJsb2NrKTsKLSAgICByZXR1
cm4gYmxvY2s7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1pbmxpbmUgdm9pZCBCbG9ja0Fs
bG9jYXRvcjo6ZGVhbGxvY2F0ZShUKiBibG9jaykKLXsKLSAgICBSZWdpb25TZXQmIHNldCA9IHJl
Z2lvblNldEZvcjxUPigpOwotICAgIGJvb2wgc2hvdWxkV2FrZUJsb2NrRnJlZWluZ1RocmVhZCA9
IGZhbHNlOwotICAgIHsKLSAgICAgICAgU3BpbkxvY2tIb2xkZXIgbG9ja2VyKCZtX3JlZ2lvbkxv
Y2spOwotICAgICAgICBSZWdpb24qIHJlZ2lvbiA9IGJsb2NrLT5yZWdpb24oKTsKLSAgICAgICAg
QVNTRVJUKCFyZWdpb24tPmlzRW1wdHkoKSk7Ci0gICAgICAgIGlmIChyZWdpb24tPmlzRnVsbCgp
KQotICAgICAgICAgICAgc2V0Lm1fZnVsbFJlZ2lvbnMucmVtb3ZlKHJlZ2lvbik7Ci0gICAgICAg
IGVsc2UgewotICAgICAgICAgICAgc2V0Lm1fcGFydGlhbFJlZ2lvbnMucmVtb3ZlKHJlZ2lvbik7
Ci0gICAgICAgICAgICBzZXQubV9udW1iZXJPZlBhcnRpYWxSZWdpb25zLS07Ci0gICAgICAgIH0K
LQotICAgICAgICByZWdpb24tPmRlYWxsb2NhdGUoYmxvY2spOwotCi0gICAgICAgIGlmIChyZWdp
b24tPmlzRW1wdHkoKSkgewotICAgICAgICAgICAgbV9lbXB0eVJlZ2lvbnMucHVzaChyZWdpb24p
OwotICAgICAgICAgICAgc2hvdWxkV2FrZUJsb2NrRnJlZWluZ1RocmVhZCA9ICFtX251bWJlck9m
RW1wdHlSZWdpb25zOwotICAgICAgICAgICAgbV9udW1iZXJPZkVtcHR5UmVnaW9ucysrOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0Lm1fcGFydGlhbFJlZ2lvbnMucHVzaChyZWdp
b24pOwotICAgICAgICAgICAgc2V0Lm1fbnVtYmVyT2ZQYXJ0aWFsUmVnaW9ucysrOwotICAgICAg
ICB9Ci0gICAgfQotCi0gICAgaWYgKHNob3VsZFdha2VCbG9ja0ZyZWVpbmdUaHJlYWQpIHsKLSAg
ICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobV9lbXB0eVJlZ2lvbkNvbmRp
dGlvbk11dGV4KTsKLSAgICAgICAgbV9lbXB0eVJlZ2lvbkNvbmRpdGlvbi5ub3RpZnlfb25lKCk7
Ci0gICAgfQotCi0gICAgaWYgKCFtX2Jsb2NrRnJlZWluZ1RocmVhZCkKLSAgICAgICAgcmVsZWFz
ZUZyZWVSZWdpb25zKCk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1pbmxpbmUgdm9pZCBC
bG9ja0FsbG9jYXRvcjo6ZGVhbGxvY2F0ZUN1c3RvbVNpemUoVCogYmxvY2spCi17Ci0gICAgUmVn
aW9uKiByZWdpb24gPSBibG9jay0+cmVnaW9uKCk7Ci0gICAgQVNTRVJUKHJlZ2lvbi0+aXNDdXN0
b21TaXplKCkpOwotICAgIHJlZ2lvbi0+ZGVhbGxvY2F0ZShibG9jayk7Ci0gICAgcmVnaW9uLT5k
ZXN0cm95KCk7Ci19Ci0KLSNkZWZpbmUgUkVHSU9OX1NFVF9GT1IoYmxvY2tUeXBlLCBzZXQpIFwK
LSAgICB0ZW1wbGF0ZSA8PiBcCi0gICAgaW5saW5lIEJsb2NrQWxsb2NhdG9yOjpSZWdpb25TZXQm
IEJsb2NrQWxsb2NhdG9yOjpyZWdpb25TZXRGb3I8YmxvY2tUeXBlPigpIFwKLSAgICB7IFwKLSAg
ICAgICAgcmV0dXJuIHNldDsgXAotICAgIH0gXAotICAgIHRlbXBsYXRlIDw+IFwKLSAgICBpbmxp
bmUgQmxvY2tBbGxvY2F0b3I6OlJlZ2lvblNldCYgQmxvY2tBbGxvY2F0b3I6OnJlZ2lvblNldEZv
cjxIZWFwQmxvY2s8YmxvY2tUeXBlPj4oKSBcCi0gICAgeyBcCi0gICAgICAgIHJldHVybiBzZXQ7
IFwKLSAgICB9IFwKLQotUkVHSU9OX1NFVF9GT1IoTWFya2VkQmxvY2ssIG1fbWFya2VkUmVnaW9u
U2V0KTsKLVJFR0lPTl9TRVRfRk9SKENvcGllZEJsb2NrLCBtX2NvcGllZFJlZ2lvblNldCk7Ci1S
RUdJT05fU0VUX0ZPUihXZWFrQmxvY2ssIG1fZm91cktCQmxvY2tSZWdpb25TZXQpOwotUkVHSU9O
X1NFVF9GT1IoR0NBcnJheVNlZ21lbnQ8Y29uc3QgSlNDZWxsKj4sIG1fZm91cktCQmxvY2tSZWdp
b25TZXQpOwotUkVHSU9OX1NFVF9GT1IoR0NBcnJheVNlZ21lbnQ8Q29kZUJsb2NrKj4sIG1fZm91
cktCQmxvY2tSZWdpb25TZXQpOwotUkVHSU9OX1NFVF9GT1IoQ29weVdvcmtMaXN0U2VnbWVudCwg
bV93b3JrTGlzdFJlZ2lvblNldCk7Ci1SRUdJT05fU0VUX0ZPUihIYW5kbGVCbG9jaywgbV9mb3Vy
S0JCbG9ja1JlZ2lvblNldCk7Ci0KLSN1bmRlZiBSRUdJT05fU0VUX0ZPUgotCi10ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KLWlubGluZSBCbG9ja0FsbG9jYXRvcjo6UmVnaW9uU2V0JiBCbG9ja0FsbG9j
YXRvcjo6cmVnaW9uU2V0Rm9yKCkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgIHJldHVybiAqKFJlZ2lvblNldCopMDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0K
LSNlbmRpZiAvLyBCbG9ja0FsbG9jYXRvcl9oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9Db2RlQmxvY2tTZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0NvZGVCbG9ja1NldC5jcHAJKHJldmlzaW9uIDE3OTAyNSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDgg
KzM1LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBm
YWxzZTsKIAotQ29kZUJsb2NrU2V0OjpDb2RlQmxvY2tTZXQoQmxvY2tBbGxvY2F0b3ImIGJsb2Nr
QWxsb2NhdG9yKQotICAgIDogbV9jdXJyZW50bHlFeGVjdXRpbmcoYmxvY2tBbGxvY2F0b3IpCitD
b2RlQmxvY2tTZXQ6OkNvZGVCbG9ja1NldCgpCisgICAgOiBtX2N1cnJlbnRseUV4ZWN1dGluZygp
CiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvZGVCbG9ja1NldC5o
CShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db2RlQmxv
Y2tTZXQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNiBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotY2xhc3MgQmxvY2tBbGxvY2F0b3I7CiBjbGFzcyBDb2RlQmxvY2s7CiBjbGFzcyBIZWFw
OwogY2xhc3MgSlNDZWxsOwpAQCAtNTAsNyArNDksNyBAQCBjbGFzcyBDb2RlQmxvY2tTZXQgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvZGVCbG9ja1NldCk7CiAKIHB1YmxpYzoKLSAgICBD
b2RlQmxvY2tTZXQoQmxvY2tBbGxvY2F0b3ImKTsKKyAgICBDb2RlQmxvY2tTZXQoKTsKICAgICB+
Q29kZUJsb2NrU2V0KCk7CiAgICAgCiAgICAgLy8gQWRkIGEgQ29kZUJsb2NrLiBUaGlzIGlzIG9u
bHkgY2FsbGVkIGJ5IENvZGVCbG9jayBjb25zdHJ1Y3RvcnMuCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9Db3BpZWRCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0NvcGllZEJsb2NrLmgJKHJldmlzaW9uIDE3OTAyNSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZEJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDEy
ICsyNiwxMiBAQAogI2lmbmRlZiBDb3BpZWRCbG9ja19oCiAjZGVmaW5lIENvcGllZEJsb2NrX2gK
IAotI2luY2x1ZGUgIkJsb2NrQWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAiQ29weVdvcmtMaXN0Lmgi
CiAjaW5jbHVkZSAiSGVhcEJsb2NrLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1
ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgorI2luY2x1ZGUgPHd0Zi9U
Q1NwaW5Mb2NrLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC00MSw4ICs0MSw4IEBAIGNsYXNz
IENvcGllZEJsb2NrIDogcHVibGljIEhlYXBCbG9jazxDb3AKICAgICBmcmllbmQgY2xhc3MgQ29w
aWVkU3BhY2U7CiAgICAgZnJpZW5kIGNsYXNzIENvcGllZEFsbG9jYXRvcjsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgQ29waWVkQmxvY2sqIGNyZWF0ZShEZWFkQmxvY2sqKTsKLSAgICBzdGF0aWMgQ29w
aWVkQmxvY2sqIGNyZWF0ZU5vWmVyb0ZpbGwoRGVhZEJsb2NrKik7CisgICAgc3RhdGljIENvcGll
ZEJsb2NrKiBjcmVhdGUoc2l6ZV90KTsKKyAgICBzdGF0aWMgQ29waWVkQmxvY2sqIGNyZWF0ZU5v
WmVyb0ZpbGwoc2l6ZV90KTsKIAogICAgIHZvaWQgcGluKCk7CiAgICAgYm9vbCBpc1Bpbm5lZCgp
OwpAQCAtODYsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgU3BpbkxvY2smIHdvcmtMaXN0TG9jaygp
IHsgcmV0dXJuIG1fd29ya0xpc3RMb2NrOyB9CiAKIHByaXZhdGU6Ci0gICAgQ29waWVkQmxvY2so
UmVnaW9uKik7CisgICAgQ29waWVkQmxvY2soc2l6ZV90KTsKICAgICB2b2lkIHplcm9GaWxsV2ls
ZGVybmVzcygpOyAvLyBDYW4gYmUgY2FsbGVkIGF0IGFueSB0aW1lIHRvIHplcm8tZmlsbCB0byB0
aGUgZW5kIG9mIHRoZSBibG9jay4KIAogICAgIHZvaWQgY2hlY2tDb25zaXN0ZW5jeSgpOwpAQCAt
OTQsNiArOTQsNyBAQCBwcml2YXRlOgogICAgIFNwaW5Mb2NrIG1fd29ya0xpc3RMb2NrOwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxDb3B5V29ya0xpc3Q+IG1fd29ya0xpc3Q7CiAKKyAgICBzaXplX3Qg
bV9ibG9ja1NpemU7CiAgICAgc2l6ZV90IG1fcmVtYWluaW5nOwogICAgIGJvb2wgbV9pc1Bpbm5l
ZCA6IDE7CiAgICAgYm9vbCBtX2lzT2xkIDogMTsKQEAgLTEwMywxNSArMTA0LDE0IEBAIHByaXZh
dGU6CiAjZW5kaWYKIH07CiAKLWlubGluZSBDb3BpZWRCbG9jayogQ29waWVkQmxvY2s6OmNyZWF0
ZU5vWmVyb0ZpbGwoRGVhZEJsb2NrKiBibG9jaykKK2lubGluZSBDb3BpZWRCbG9jayogQ29waWVk
QmxvY2s6OmNyZWF0ZU5vWmVyb0ZpbGwoc2l6ZV90IGJsb2NrU2l6ZSkKIHsKLSAgICBSZWdpb24q
IHJlZ2lvbiA9IGJsb2NrLT5yZWdpb24oKTsKLSAgICByZXR1cm4gbmV3KE5vdE51bGwsIGJsb2Nr
KSBDb3BpZWRCbG9jayhyZWdpb24pOworICAgIHJldHVybiBuZXcoTm90TnVsbCwgZmFzdEFsaWdu
ZWRNYWxsb2MoQ29waWVkQmxvY2s6OmJsb2NrU2l6ZSwgYmxvY2tTaXplKSkgQ29waWVkQmxvY2so
YmxvY2tTaXplKTsKIH0KIAotaW5saW5lIENvcGllZEJsb2NrKiBDb3BpZWRCbG9jazo6Y3JlYXRl
KERlYWRCbG9jayogYmxvY2spCitpbmxpbmUgQ29waWVkQmxvY2sqIENvcGllZEJsb2NrOjpjcmVh
dGUoc2l6ZV90IGJsb2NrU2l6ZSkKIHsKLSAgICBDb3BpZWRCbG9jayogbmV3QmxvY2sgPSBjcmVh
dGVOb1plcm9GaWxsKGJsb2NrKTsKKyAgICBDb3BpZWRCbG9jayogbmV3QmxvY2sgPSBjcmVhdGVO
b1plcm9GaWxsKGJsb2NrU2l6ZSk7CiAgICAgbmV3QmxvY2stPnplcm9GaWxsV2lsZGVybmVzcygp
OwogICAgIHJldHVybiBuZXdCbG9jazsKIH0KQEAgLTEyOCw4ICsxMjgsOSBAQCBpbmxpbmUgdm9p
ZCBDb3BpZWRCbG9jazo6emVyb0ZpbGxXaWxkZXJuCiAjZW5kaWYKIH0KIAotaW5saW5lIENvcGll
ZEJsb2NrOjpDb3BpZWRCbG9jayhSZWdpb24qIHJlZ2lvbikKLSAgICA6IEhlYXBCbG9jazxDb3Bp
ZWRCbG9jaz4ocmVnaW9uKQoraW5saW5lIENvcGllZEJsb2NrOjpDb3BpZWRCbG9jayhzaXplX3Qg
YmxvY2tTaXplKQorICAgIDogSGVhcEJsb2NrPENvcGllZEJsb2NrPigpCisgICAgLCBtX2Jsb2Nr
U2l6ZShibG9ja1NpemUpCiAgICAgLCBtX3JlbWFpbmluZyhwYXlsb2FkQ2FwYWNpdHkoKSkKICAg
ICAsIG1faXNQaW5uZWQoZmFsc2UpCiAgICAgLCBtX2lzT2xkKGZhbHNlKQpAQCAtMjAzLDcgKzIw
NCw3IEBAIGlubGluZSB2b2lkIENvcGllZEJsb2NrOjpkaWRQcm9tb3RlKCkKIAogaW5saW5lIGJv
b2wgQ29waWVkQmxvY2s6OmlzT3ZlcnNpemUoKQogewotICAgIHJldHVybiByZWdpb24oKS0+aXND
dXN0b21TaXplKCk7CisgICAgcmV0dXJuIG1fYmxvY2tTaXplICE9IGJsb2NrU2l6ZTsKIH0KIAog
aW5saW5lIHVuc2lnbmVkIENvcGllZEJsb2NrOjpsaXZlQnl0ZXMoKQpAQCAtMjE5LDcgKzIyMCw3
IEBAIGlubGluZSBjaGFyKiBDb3BpZWRCbG9jazo6cGF5bG9hZCgpCiAKIGlubGluZSBjaGFyKiBD
b3BpZWRCbG9jazo6cGF5bG9hZEVuZCgpCiB7Ci0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
Y2hhcio+KHRoaXMpICsgcmVnaW9uKCktPmJsb2NrU2l6ZSgpOworICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PGNoYXIqPih0aGlzKSArIG1fYmxvY2tTaXplOwogfQogCiBpbmxpbmUgc2l6ZV90
IENvcGllZEJsb2NrOjpwYXlsb2FkQ2FwYWNpdHkoKQpAQCAtMjY0LDcgKzI2NSw3IEBAIGlubGlu
ZSBzaXplX3QgQ29waWVkQmxvY2s6OnNpemUoKQogCiBpbmxpbmUgc2l6ZV90IENvcGllZEJsb2Nr
OjpjYXBhY2l0eSgpCiB7Ci0gICAgcmV0dXJuIHJlZ2lvbigpLT5ibG9ja1NpemUoKTsKKyAgICBy
ZXR1cm4gbV9ibG9ja1NpemU7CiB9CiAKIGlubGluZSBib29sIENvcGllZEJsb2NrOjpoYXNXb3Jr
TGlzdCgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRCbG9ja0lubGlu
ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRCbG9j
a0lubGluZXMuaAkocmV2aXNpb24gMTc5MDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvQ29waWVkQmxvY2tJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAg
aW5saW5lIHZvaWQgQ29waWVkQmxvY2s6OnJlcG9ydExpdmVCeXRlcwogICAgIH0KIAogICAgIGlm
ICghbV93b3JrTGlzdCkKLSAgICAgICAgbV93b3JrTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8Q29w
eVdvcmtMaXN0PihIZWFwOjpoZWFwKG93bmVyKS0+YmxvY2tBbGxvY2F0b3IoKSk7CisgICAgICAg
IG1fd29ya0xpc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPENvcHlXb3JrTGlzdD4oKTsKIAogICAgIG1f
d29ya0xpc3QtPmFwcGVuZChDb3B5V29ya2xpc3RJdGVtKG93bmVyLCB0b2tlbikpOwogfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAkocmV2aXNpb24g
MTc5MDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NSwyMiArNDUsMjIgQEAgQ29waWVkU3BhY2U6OkNvcGllZFNwYWNl
KEhlYXAqIGhlYXApCiBDb3BpZWRTcGFjZTo6fkNvcGllZFNwYWNlKCkKIHsKICAgICB3aGlsZSAo
IW1fb2xkR2VuLnRvU3BhY2UtPmlzRW1wdHkoKSkKLSAgICAgICAgbV9oZWFwLT5ibG9ja0FsbG9j
YXRvcigpLmRlYWxsb2NhdGUoQ29waWVkQmxvY2s6OmRlc3Ryb3kobV9vbGRHZW4udG9TcGFjZS0+
cmVtb3ZlSGVhZCgpKSk7CisgICAgICAgIENvcGllZEJsb2NrOjpkZXN0cm95KG1fb2xkR2VuLnRv
U3BhY2UtPnJlbW92ZUhlYWQoKSk7CiAKICAgICB3aGlsZSAoIW1fb2xkR2VuLmZyb21TcGFjZS0+
aXNFbXB0eSgpKQotICAgICAgICBtX2hlYXAtPmJsb2NrQWxsb2NhdG9yKCkuZGVhbGxvY2F0ZShD
b3BpZWRCbG9jazo6ZGVzdHJveShtX29sZEdlbi5mcm9tU3BhY2UtPnJlbW92ZUhlYWQoKSkpOwor
ICAgICAgICBDb3BpZWRCbG9jazo6ZGVzdHJveShtX29sZEdlbi5mcm9tU3BhY2UtPnJlbW92ZUhl
YWQoKSk7CiAKICAgICB3aGlsZSAoIW1fb2xkR2VuLm92ZXJzaXplQmxvY2tzLmlzRW1wdHkoKSkK
LSAgICAgICAgbV9oZWFwLT5ibG9ja0FsbG9jYXRvcigpLmRlYWxsb2NhdGVDdXN0b21TaXplKENv
cGllZEJsb2NrOjpkZXN0cm95KG1fb2xkR2VuLm92ZXJzaXplQmxvY2tzLnJlbW92ZUhlYWQoKSkp
OworICAgICAgICBDb3BpZWRCbG9jazo6ZGVzdHJveShtX29sZEdlbi5vdmVyc2l6ZUJsb2Nrcy5y
ZW1vdmVIZWFkKCkpOwogCiAgICAgd2hpbGUgKCFtX25ld0dlbi50b1NwYWNlLT5pc0VtcHR5KCkp
Ci0gICAgICAgIG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5kZWFsbG9jYXRlKENvcGllZEJsb2Nr
OjpkZXN0cm95KG1fbmV3R2VuLnRvU3BhY2UtPnJlbW92ZUhlYWQoKSkpOworICAgICAgICBDb3Bp
ZWRCbG9jazo6ZGVzdHJveShtX25ld0dlbi50b1NwYWNlLT5yZW1vdmVIZWFkKCkpOwogCiAgICAg
d2hpbGUgKCFtX25ld0dlbi5mcm9tU3BhY2UtPmlzRW1wdHkoKSkKLSAgICAgICAgbV9oZWFwLT5i
bG9ja0FsbG9jYXRvcigpLmRlYWxsb2NhdGUoQ29waWVkQmxvY2s6OmRlc3Ryb3kobV9uZXdHZW4u
ZnJvbVNwYWNlLT5yZW1vdmVIZWFkKCkpKTsKKyAgICAgICAgQ29waWVkQmxvY2s6OmRlc3Ryb3ko
bV9uZXdHZW4uZnJvbVNwYWNlLT5yZW1vdmVIZWFkKCkpOwogCiAgICAgd2hpbGUgKCFtX25ld0dl
bi5vdmVyc2l6ZUJsb2Nrcy5pc0VtcHR5KCkpCi0gICAgICAgIG1faGVhcC0+YmxvY2tBbGxvY2F0
b3IoKS5kZWFsbG9jYXRlQ3VzdG9tU2l6ZShDb3BpZWRCbG9jazo6ZGVzdHJveShtX25ld0dlbi5v
dmVyc2l6ZUJsb2Nrcy5yZW1vdmVIZWFkKCkpKTsKKyAgICAgICAgQ29waWVkQmxvY2s6OmRlc3Ry
b3kobV9uZXdHZW4ub3ZlcnNpemVCbG9ja3MucmVtb3ZlSGVhZCgpKTsKIAogICAgIEFTU0VSVCht
X29sZEdlbi50b1NwYWNlLT5pc0VtcHR5KCkpOwogICAgIEFTU0VSVChtX29sZEdlbi5mcm9tU3Bh
Y2UtPmlzRW1wdHkoKSk7CkBAIC05OSw3ICs5OSw3IEBAIENoZWNrZWRCb29sZWFuIENvcGllZFNw
YWNlOjp0cnlBbGxvY2F0ZU8KIHsKICAgICBBU1NFUlQoaXNPdmVyc2l6ZShieXRlcykpOwogICAg
IAotICAgIENvcGllZEJsb2NrKiBibG9jayA9IENvcGllZEJsb2NrOjpjcmVhdGUobV9oZWFwLT5i
bG9ja0FsbG9jYXRvcigpLmFsbG9jYXRlQ3VzdG9tU2l6ZShzaXplb2YoQ29waWVkQmxvY2spICsg
Ynl0ZXMsIENvcGllZEJsb2NrOjpibG9ja1NpemUpKTsKKyAgICBDb3BpZWRCbG9jayogYmxvY2sg
PSBDb3BpZWRCbG9jazo6Y3JlYXRlKHNpemVvZihDb3BpZWRCbG9jaykgKyBieXRlcyk7CiAgICAg
bV9uZXdHZW4ub3ZlcnNpemVCbG9ja3MucHVzaChibG9jayk7CiAgICAgbV9uZXdHZW4uYmxvY2tG
aWx0ZXIuYWRkKHJlaW50ZXJwcmV0X2Nhc3Q8Qml0cz4oYmxvY2spKTsKICAgICBtX2Jsb2NrU2V0
LmFkZChibG9jayk7CkBAIC0xMTAsNyArMTEwLDcgQEAgQ2hlY2tlZEJvb2xlYW4gQ29waWVkU3Bh
Y2U6OnRyeUFsbG9jYXRlTwogICAgICpvdXRQdHIgPSBhbGxvY2F0b3IuZm9yY2VBbGxvY2F0ZShi
eXRlcyk7CiAgICAgYWxsb2NhdG9yLnJlc2V0Q3VycmVudEJsb2NrKCk7CiAKLSAgICBtX2hlYXAt
PmRpZEFsbG9jYXRlKGJsb2NrLT5yZWdpb24oKS0+YmxvY2tTaXplKCkpOworICAgIG1faGVhcC0+
ZGlkQWxsb2NhdGUoYmxvY2stPmNhcGFjaXR5KCkpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBA
IC0xNjEsNyArMTYxLDcgQEAgQ2hlY2tlZEJvb2xlYW4gQ29waWVkU3BhY2U6OnRyeVJlYWxsb2Nh
dAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX25ld0dlbi5vdmVyc2l6ZUJsb2Nrcy5yZW1v
dmUob2xkQmxvY2spOwogICAgICAgICBtX2Jsb2NrU2V0LnJlbW92ZShvbGRCbG9jayk7Ci0gICAg
ICAgIG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5kZWFsbG9jYXRlQ3VzdG9tU2l6ZShDb3BpZWRC
bG9jazo6ZGVzdHJveShvbGRCbG9jaykpOworICAgICAgICBDb3BpZWRCbG9jazo6ZGVzdHJveShv
bGRCbG9jayk7CiAgICAgfQogICAgIAogICAgICpwdHIgPSBuZXdQdHI7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZUlubGluZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZUlubGluZXMuaAkocmV2aXNpb24g
MTc5MDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2VJbmxpbmVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNiwxMiArMTA2LDEyIEBAIGlubGluZSB2b2lkIENvcGll
ZFNwYWNlOjpyZWN5Y2xlRXZhY3VhdGUKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9vbGRH
ZW4uZnJvbVNwYWNlLT5yZW1vdmUoYmxvY2spOwogICAgIH0KLSAgICBtX2hlYXAtPmJsb2NrQWxs
b2NhdG9yKCkuZGVhbGxvY2F0ZShDb3BpZWRCbG9jazo6ZGVzdHJveShibG9jaykpOworICAgIENv
cGllZEJsb2NrOjpkZXN0cm95KGJsb2NrKTsKIH0KIAogaW5saW5lIHZvaWQgQ29waWVkU3BhY2U6
OnJlY3ljbGVCb3Jyb3dlZEJsb2NrKENvcGllZEJsb2NrKiBibG9jaykKIHsKLSAgICBtX2hlYXAt
PmJsb2NrQWxsb2NhdG9yKCkuZGVhbGxvY2F0ZShDb3BpZWRCbG9jazo6ZGVzdHJveShibG9jaykp
OworICAgIENvcGllZEJsb2NrOjpkZXN0cm95KGJsb2NrKTsKIAogICAgIHsKICAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fbG9hbmVkQmxvY2tzTG9jayk7CkBAIC0xMjYsNyArMTI2LDcgQEAg
aW5saW5lIHZvaWQgQ29waWVkU3BhY2U6OnJlY3ljbGVCb3Jyb3dlZAogaW5saW5lIENvcGllZEJs
b2NrKiBDb3BpZWRTcGFjZTo6YWxsb2NhdGVCbG9ja0ZvckNvcHlpbmdQaGFzZSgpCiB7CiAgICAg
QVNTRVJUKG1faW5Db3B5aW5nUGhhc2UpOwotICAgIENvcGllZEJsb2NrKiBibG9jayA9IENvcGll
ZEJsb2NrOjpjcmVhdGVOb1plcm9GaWxsKG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5hbGxvY2F0
ZTxDb3BpZWRCbG9jaz4oKSk7CisgICAgQ29waWVkQmxvY2sqIGJsb2NrID0gQ29waWVkQmxvY2s6
OmNyZWF0ZU5vWmVyb0ZpbGwoQ29waWVkQmxvY2s6OmJsb2NrU2l6ZSk7CiAKICAgICB7CiAgICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvYW5lZEJsb2Nrc0xvY2spOwpAQCAtMTQzLDcgKzE0
Myw3IEBAIGlubGluZSB2b2lkIENvcGllZFNwYWNlOjphbGxvY2F0ZUJsb2NrKCkKIAogICAgIG1f
YWxsb2NhdG9yLnJlc2V0Q3VycmVudEJsb2NrKCk7CiAgICAgCi0gICAgQ29waWVkQmxvY2sqIGJs
b2NrID0gQ29waWVkQmxvY2s6OmNyZWF0ZShtX2hlYXAtPmJsb2NrQWxsb2NhdG9yKCkuYWxsb2Nh
dGU8Q29waWVkQmxvY2s+KCkpOworICAgIENvcGllZEJsb2NrKiBibG9jayA9IENvcGllZEJsb2Nr
OjpjcmVhdGUoQ29waWVkQmxvY2s6OmJsb2NrU2l6ZSk7CiAgICAgICAgIAogICAgIG1fbmV3R2Vu
LnRvU3BhY2UtPnB1c2goYmxvY2spOwogICAgIG1fbmV3R2VuLmJsb2NrRmlsdGVyLmFkZChyZWlu
dGVycHJldF9jYXN0PEJpdHM+KGJsb2NrKSk7CkBAIC0yMzUsNyArMjM1LDcgQEAgaW5saW5lIHZv
aWQgQ29waWVkU3BhY2U6OnN0YXJ0ZWRDb3B5aW5nKAogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgb3ZlcnNpemVCbG9ja3MtPnJlbW92ZShibG9jayk7CiAgICAgICAgICAgICBtX2Jsb2Nr
U2V0LnJlbW92ZShibG9jayk7Ci0gICAgICAgICAgICBtX2hlYXAtPmJsb2NrQWxsb2NhdG9yKCku
ZGVhbGxvY2F0ZUN1c3RvbVNpemUoQ29waWVkQmxvY2s6OmRlc3Ryb3koYmxvY2spKTsKKyAgICAg
ICAgICAgIENvcGllZEJsb2NrOjpkZXN0cm95KGJsb2NrKTsKICAgICAgICAgfSAKICAgICAgICAg
YmxvY2sgPSBuZXh0OwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
cHlXb3JrTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
cHlXb3JrTGlzdC5oCShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9Db3B5V29ya0xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2Rl
ZmluZSBDb3B5V29ya0xpc3RfaAogCiAjaW5jbHVkZSAiQ29weVRva2VuLmgiCisjaW5jbHVkZSAi
SGVhcEJsb2NrLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgSlNDIHsK
QEAgLTU5LDkgKzYwLDkgQEAgcHJpdmF0ZToKIAogY2xhc3MgQ29weVdvcmtMaXN0U2VnbWVudCA6
IHB1YmxpYyBIZWFwQmxvY2s8Q29weVdvcmtMaXN0U2VnbWVudD4gewogcHVibGljOgotICAgIHN0
YXRpYyBDb3B5V29ya0xpc3RTZWdtZW50KiBjcmVhdGUoRGVhZEJsb2NrKiBibG9jaykKKyAgICBz
dGF0aWMgQ29weVdvcmtMaXN0U2VnbWVudCogY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBuZXcgKE5vdE51bGwsIGJsb2NrKSBDb3B5V29ya0xpc3RTZWdtZW50KGJsb2NrLT5yZWdpb24o
KSk7CisgICAgICAgIHJldHVybiBuZXcgKE5vdE51bGwsIGZhc3RBbGlnbmVkTWFsbG9jKGJsb2Nr
U2l6ZSwgYmxvY2tTaXplKSkgQ29weVdvcmtMaXN0U2VnbWVudCgpOwogICAgIH0KIAogICAgIHNp
emVfdCBzaXplKCkgeyByZXR1cm4gbV9zaXplOyB9CkBAIC03OCw4ICs3OSw4IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGJsb2NrU2l6ZSA9IDUxMjsKIAogcHJpdmF0ZToKLSAg
ICBDb3B5V29ya0xpc3RTZWdtZW50KFJlZ2lvbiogcmVnaW9uKQotICAgICAgICA6IEhlYXBCbG9j
azxDb3B5V29ya0xpc3RTZWdtZW50PihyZWdpb24pCisgICAgQ29weVdvcmtMaXN0U2VnbWVudCgp
CisgICAgICAgIDogSGVhcEJsb2NrPENvcHlXb3JrTGlzdFNlZ21lbnQ+KCkKICAgICAgICAgLCBt
X3NpemUoMCkKICAgICB7CiAgICAgfQpAQCAtMTQzLDcgKzE0NCw2IEBAIGNsYXNzIENvcHlXb3Jr
TGlzdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBDb3B5V29ya0xpc3RJdGVyYXRvciBpdGVyYXRv
cjsKIAotICAgIENvcHlXb3JrTGlzdChCbG9ja0FsbG9jYXRvciYpOwogICAgIH5Db3B5V29ya0xp
c3QoKTsKIAogICAgIHZvaWQgYXBwZW5kKENvcHlXb3JrbGlzdEl0ZW0pOwpAQCAtMTUyLDI0ICsx
NTIsMTggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIERvdWJseUxpbmtlZExpc3Q8Q29weVdv
cmtMaXN0U2VnbWVudD4gbV9zZWdtZW50czsKLSAgICBCbG9ja0FsbG9jYXRvciYgbV9ibG9ja0Fs
bG9jYXRvcjsKIH07CiAKLWlubGluZSBDb3B5V29ya0xpc3Q6OkNvcHlXb3JrTGlzdChCbG9ja0Fs
bG9jYXRvciYgYmxvY2tBbGxvY2F0b3IpCi0gICAgOiBtX2Jsb2NrQWxsb2NhdG9yKGJsb2NrQWxs
b2NhdG9yKQotewotfQotCiBpbmxpbmUgQ29weVdvcmtMaXN0Ojp+Q29weVdvcmtMaXN0KCkKIHsK
ICAgICB3aGlsZSAoIW1fc2VnbWVudHMuaXNFbXB0eSgpKQotICAgICAgICBtX2Jsb2NrQWxsb2Nh
dG9yLmRlYWxsb2NhdGUoQ29weVdvcmtMaXN0U2VnbWVudDo6ZGVzdHJveShtX3NlZ21lbnRzLnJl
bW92ZUhlYWQoKSkpOworICAgICAgICBDb3B5V29ya0xpc3RTZWdtZW50OjpkZXN0cm95KG1fc2Vn
bWVudHMucmVtb3ZlSGVhZCgpKTsKIH0KIAogaW5saW5lIHZvaWQgQ29weVdvcmtMaXN0OjphcHBl
bmQoQ29weVdvcmtsaXN0SXRlbSBpdGVtKQogewogICAgIGlmIChtX3NlZ21lbnRzLmlzRW1wdHko
KSB8fCBtX3NlZ21lbnRzLnRhaWwoKS0+aXNGdWxsKCkpCi0gICAgICAgIG1fc2VnbWVudHMuYXBw
ZW5kKENvcHlXb3JrTGlzdFNlZ21lbnQ6OmNyZWF0ZShtX2Jsb2NrQWxsb2NhdG9yLmFsbG9jYXRl
PENvcHlXb3JrTGlzdFNlZ21lbnQ+KCkpKTsKKyAgICAgICAgbV9zZWdtZW50cy5hcHBlbmQoQ29w
eVdvcmtMaXN0U2VnbWVudDo6Y3JlYXRlKCkpOwogCiAgICAgQVNTRVJUKCFtX3NlZ21lbnRzLnRh
aWwoKS0+aXNGdWxsKCkpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1Nl
Z21lbnRlZEFycmF5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
R0NTZWdtZW50ZWRBcnJheS5oCShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9HQ1NlZ21lbnRlZEFycmF5LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDIxICsz
MSwxOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgQmxvY2tBbGxvY2F0b3I7Ci1jbGFz
cyBEZWFkQmxvY2s7Ci0KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogY2xhc3MgR0NBcnJheVNlZ21l
bnQgOiBwdWJsaWMgSGVhcEJsb2NrPEdDQXJyYXlTZWdtZW50PFQ+PiB7CiBwdWJsaWM6Ci0gICAg
R0NBcnJheVNlZ21lbnQoUmVnaW9uKiByZWdpb24pCi0gICAgICAgIDogSGVhcEJsb2NrPEdDQXJy
YXlTZWdtZW50PihyZWdpb24pCisgICAgR0NBcnJheVNlZ21lbnQoKQorICAgICAgICA6IEhlYXBC
bG9jazxHQ0FycmF5U2VnbWVudD4oKQogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICAgICAgLCBt
X3RvcCgwKQogI2VuZGlmCiAgICAgewogICAgIH0KIAotICAgIHN0YXRpYyBHQ0FycmF5U2VnbWVu
dCogY3JlYXRlKERlYWRCbG9jayopOworICAgIHN0YXRpYyBHQ0FycmF5U2VnbWVudCogY3JlYXRl
KCk7CiAKICAgICBUKiBkYXRhKCkKICAgICB7CkBAIC02Niw3ICs2Myw3IEBAIGNsYXNzIEdDU2Vn
bWVudGVkQXJyYXkgewogICAgIGZyaWVuZCBjbGFzcyBHQ1NlZ21lbnRlZEFycmF5SXRlcmF0b3I8
VD47CiAgICAgZnJpZW5kIGNsYXNzIEdDU2VnbWVudGVkQXJyYXlJdGVyYXRvcjxjb25zdCBUPjsK
IHB1YmxpYzoKLSAgICBHQ1NlZ21lbnRlZEFycmF5KEJsb2NrQWxsb2NhdG9yJik7CisgICAgR0NT
ZWdtZW50ZWRBcnJheSgpOwogICAgIH5HQ1NlZ21lbnRlZEFycmF5KCk7CiAKICAgICB2b2lkIGFw
cGVuZChUKTsKQEAgLTEwMSw3ICs5OCw2IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHZhbGlkYXRl
UHJldmlvdXMoKTsKIAogICAgIERvdWJseUxpbmtlZExpc3Q8R0NBcnJheVNlZ21lbnQ8VD4+IG1f
c2VnbWVudHM7Ci0gICAgQmxvY2tBbGxvY2F0b3ImIG1fYmxvY2tBbGxvY2F0b3I7CiAKICAgICBK
U19FWFBPUlRfUFJJVkFURSBzdGF0aWMgY29uc3Qgc2l6ZV90IHNfc2VnbWVudENhcGFjaXR5ID0g
Q2FwYWNpdHlGcm9tU2l6ZTxHQ0FycmF5U2VnbWVudDxUPjo6YmxvY2tTaXplPjo6dmFsdWU7CiAg
ICAgc2l6ZV90IG1fdG9wOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NTZWdt
ZW50ZWRBcnJheUlubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9HQ1NlZ21lbnRlZEFycmF5SW5saW5lcy5oCShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1NlZ21lbnRlZEFycmF5SW5saW5lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNiwxOCArMjYsMTYgQEAKICNpZm5kZWYgR0NTZWdtZW50ZWRBcnJheUlubGlu
ZXNfaAogI2RlZmluZSBHQ1NlZ21lbnRlZEFycmF5SW5saW5lc19oCiAKLSNpbmNsdWRlICJCbG9j
a0FsbG9jYXRvci5oIgogI2luY2x1ZGUgIkdDU2VnbWVudGVkQXJyYXkuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotR0NTZWdtZW50ZWRBcnJheTxUPjo6R0NT
ZWdtZW50ZWRBcnJheShCbG9ja0FsbG9jYXRvciYgYmxvY2tBbGxvY2F0b3IpCi0gICAgOiBtX2Js
b2NrQWxsb2NhdG9yKGJsb2NrQWxsb2NhdG9yKQotICAgICwgbV90b3AoMCkKK0dDU2VnbWVudGVk
QXJyYXk8VD46OkdDU2VnbWVudGVkQXJyYXkoKQorICAgIDogbV90b3AoMCkKICAgICAsIG1fbnVt
YmVyT2ZTZWdtZW50cygwKQogewotICAgIG1fc2VnbWVudHMucHVzaChHQ0FycmF5U2VnbWVudDxU
Pjo6Y3JlYXRlKG1fYmxvY2tBbGxvY2F0b3IuYWxsb2NhdGU8R0NBcnJheVNlZ21lbnQ8VD4+KCkp
KTsKKyAgICBtX3NlZ21lbnRzLnB1c2goR0NBcnJheVNlZ21lbnQ8VD46OmNyZWF0ZSgpKTsKICAg
ICBtX251bWJlck9mU2VnbWVudHMrKzsKIH0KIApAQCAtNDYsNyArNDQsNyBAQCBHQ1NlZ21lbnRl
ZEFycmF5PFQ+Ojp+R0NTZWdtZW50ZWRBcnJheSgpCiB7CiAgICAgQVNTRVJUKG1fbnVtYmVyT2ZT
ZWdtZW50cyA9PSAxKTsKICAgICBBU1NFUlQobV9zZWdtZW50cy5zaXplKCkgPT0gMSk7Ci0gICAg
bV9ibG9ja0FsbG9jYXRvci5kZWFsbG9jYXRlKEdDQXJyYXlTZWdtZW50PFQ+OjpkZXN0cm95KG1f
c2VnbWVudHMucmVtb3ZlSGVhZCgpKSk7CisgICAgR0NBcnJheVNlZ21lbnQ8VD46OmRlc3Ryb3ko
bV9zZWdtZW50cy5yZW1vdmVIZWFkKCkpOwogICAgIG1fbnVtYmVyT2ZTZWdtZW50cy0tOwogICAg
IEFTU0VSVCghbV9udW1iZXJPZlNlZ21lbnRzKTsKICAgICBBU1NFUlQoIW1fc2VnbWVudHMuc2l6
ZSgpKTsKQEAgLTYxLDcgKzU5LDcgQEAgdm9pZCBHQ1NlZ21lbnRlZEFycmF5PFQ+OjpjbGVhcigp
CiAgICAgZm9yIChHQ0FycmF5U2VnbWVudDxUPiogY3VycmVudCA9IG1fc2VnbWVudHMuaGVhZCgp
OyBjdXJyZW50LT5uZXh0KCk7IGN1cnJlbnQgPSBuZXh0KSB7CiAgICAgICAgIG5leHQgPSBjdXJy
ZW50LT5uZXh0KCk7CiAgICAgICAgIG1fc2VnbWVudHMucmVtb3ZlKGN1cnJlbnQpOwotICAgICAg
ICBtX2Jsb2NrQWxsb2NhdG9yLmRlYWxsb2NhdGUoR0NBcnJheVNlZ21lbnQ8VD46OmRlc3Ryb3ko
Y3VycmVudCkpOworICAgICAgICBHQ0FycmF5U2VnbWVudDxUPjo6ZGVzdHJveShjdXJyZW50KTsK
ICAgICB9CiAgICAgbV90b3AgPSAwOwogICAgIG1fbnVtYmVyT2ZTZWdtZW50cyA9IDE7CkBAIC03
NSw3ICs3Myw3IEBAIHZvaWQgR0NTZWdtZW50ZWRBcnJheTxUPjo6ZXhwYW5kKCkKIHsKICAgICBB
U1NFUlQobV9zZWdtZW50cy5oZWFkKCktPm1fdG9wID09IHNfc2VnbWVudENhcGFjaXR5KTsKICAg
ICAKLSAgICBHQ0FycmF5U2VnbWVudDxUPiogbmV4dFNlZ21lbnQgPSBHQ0FycmF5U2VnbWVudDxU
Pjo6Y3JlYXRlKG1fYmxvY2tBbGxvY2F0b3IuYWxsb2NhdGU8R0NBcnJheVNlZ21lbnQ8VD4+KCkp
OworICAgIEdDQXJyYXlTZWdtZW50PFQ+KiBuZXh0U2VnbWVudCA9IEdDQXJyYXlTZWdtZW50PFQ+
OjpjcmVhdGUoKTsKICAgICBtX251bWJlck9mU2VnbWVudHMrKzsKICAgICAKICNpZiAhQVNTRVJU
X0RJU0FCTEVECkBAIC05Myw3ICs5MSw3IEBAIGJvb2wgR0NTZWdtZW50ZWRBcnJheTxUPjo6cmVm
aWxsKCkKICAgICB2YWxpZGF0ZVByZXZpb3VzKCk7CiAgICAgaWYgKHRvcCgpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICBtX2Jsb2NrQWxsb2NhdG9yLmRlYWxsb2NhdGUoR0NBcnJheVNlZ21l
bnQ8VD46OmRlc3Ryb3kobV9zZWdtZW50cy5yZW1vdmVIZWFkKCkpKTsKKyAgICBHQ0FycmF5U2Vn
bWVudDxUPjo6ZGVzdHJveShtX3NlZ21lbnRzLnJlbW92ZUhlYWQoKSk7CiAgICAgQVNTRVJUKG1f
bnVtYmVyT2ZTZWdtZW50cyA+IDEpOwogICAgIG1fbnVtYmVyT2ZTZWdtZW50cy0tOwogICAgIHNl
dFRvcEZvckZ1bGxTZWdtZW50KCk7CkBAIC0xMjcsOSArMTI1LDkgQEAgdm9pZCBHQ1NlZ21lbnRl
ZEFycmF5PFQ+OjpmaWxsVmVjdG9yKFZlYwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWlu
bGluZSBHQ0FycmF5U2VnbWVudDxUPiogR0NBcnJheVNlZ21lbnQ8VD46OmNyZWF0ZShEZWFkQmxv
Y2sqIGJsb2NrKQoraW5saW5lIEdDQXJyYXlTZWdtZW50PFQ+KiBHQ0FycmF5U2VnbWVudDxUPjo6
Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gbmV3IChOb3ROdWxsLCBibG9jaykgR0NBcnJheVNlZ21l
bnQ8VD4oYmxvY2stPnJlZ2lvbigpKTsKKyAgICByZXR1cm4gbmV3IChOb3ROdWxsLCBmYXN0QWxp
Z25lZE1hbGxvYyhibG9ja1NpemUsIGJsb2NrU2l6ZSkpIEdDQXJyYXlTZWdtZW50PFQ+KCk7CiB9
CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvR0NUaHJlYWRTaGFyZWREYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9HQ1RocmVhZFNoYXJlZERhdGEuY3BwCShyZXZpc2lvbiAxNzkwMjUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVhZFNoYXJlZERhdGEuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIEdDVGhyZWFkU2hhcmVkRGF0YTo6R0NUaHJlYWRTaGFy
ZWREYXRhKFYKICAgICA6IG1fdm0odm0pCiAgICAgLCBtX2NvcGllZFNwYWNlKCZ2bS0+aGVhcC5t
X3N0b3JhZ2VTcGFjZSkKICAgICAsIG1fc2hvdWxkSGFzaENvbnMoZmFsc2UpCi0gICAgLCBtX3No
YXJlZE1hcmtTdGFjayh2bS0+aGVhcC5ibG9ja0FsbG9jYXRvcigpKQorICAgICwgbV9zaGFyZWRN
YXJrU3RhY2soKQogICAgICwgbV9udW1iZXJPZkFjdGl2ZVBhcmFsbGVsTWFya2VycygwKQogICAg
ICwgbV9wYXJhbGxlbE1hcmtlcnNTaG91bGRFeGl0KGZhbHNlKQogICAgICwgbV9jb3B5SW5kZXgo
MCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDVGhyZWFkU2hhcmVkRGF0YS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDVGhyZWFkU2hhcmVk
RGF0YS5oCShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9H
Q1RocmVhZFNoYXJlZERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogY2xhc3MgR0NUaHJlYWQ7CiBjbGFzcyBWTTsKK2NsYXNzIENvcGllZEJs
b2NrOwogY2xhc3MgQ29waWVkU3BhY2U7CiBjbGFzcyBDb3B5VmlzaXRvcjsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGFuZGxlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVCbG9jay5oCShyZXZpc2lvbiAxNzkwMjUpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVCbG9jay5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCwxMyArMzAsMTIgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIERlYWRCbG9j
azsKIGNsYXNzIEhhbmRsZVNldDsKIGNsYXNzIEhhbmRsZU5vZGU7CiAKIGNsYXNzIEhhbmRsZUJs
b2NrIDogcHVibGljIEhlYXBCbG9jazxIYW5kbGVCbG9jaz4gewogcHVibGljOgotICAgIHN0YXRp
YyBIYW5kbGVCbG9jayogY3JlYXRlKERlYWRCbG9jayosIEhhbmRsZVNldCopOworICAgIHN0YXRp
YyBIYW5kbGVCbG9jayogY3JlYXRlKEhhbmRsZVNldCopOwogICAgIHN0YXRpYyBIYW5kbGVCbG9j
ayogYmxvY2tGb3IoSGFuZGxlTm9kZSopOwogCiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBibG9j
a1NpemUgPSA0ICogS0I7CkBAIC00OCw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBu
b2RlQ2FwYWNpdHkoKTsKIAogcHJpdmF0ZToKLSAgICBIYW5kbGVCbG9jayhSZWdpb24qLCBIYW5k
bGVTZXQqKTsKKyAgICBIYW5kbGVCbG9jayhIYW5kbGVTZXQqKTsKIAogICAgIGNoYXIqIHBheWxv
YWQoKTsKICAgICBjaGFyKiBwYXlsb2FkRW5kKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IYW5kbGVCbG9ja0lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IYW5kbGVCbG9ja0lubGluZXMuaAkocmV2aXNpb24gMTc5MDI1KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGFuZGxlQmxvY2tJbmxpbmVzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI2LDI2ICsyNiwyNCBAQAogI2lmbmRlZiBIYW5kbGVCbG9ja0lubGluZXNfaAog
I2RlZmluZSBIYW5kbGVCbG9ja0lubGluZXNfaAogCi0jaW5jbHVkZSAiQmxvY2tBbGxvY2F0b3Iu
aCIKICNpbmNsdWRlICJIYW5kbGVCbG9jay5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAotaW5saW5l
IEhhbmRsZUJsb2NrKiBIYW5kbGVCbG9jazo6Y3JlYXRlKERlYWRCbG9jayogYmxvY2ssIEhhbmRs
ZVNldCogaGFuZGxlU2V0KQoraW5saW5lIEhhbmRsZUJsb2NrKiBIYW5kbGVCbG9jazo6Y3JlYXRl
KEhhbmRsZVNldCogaGFuZGxlU2V0KQogewotICAgIFJlZ2lvbiogcmVnaW9uID0gYmxvY2stPnJl
Z2lvbigpOwotICAgIHJldHVybiBuZXcgKE5vdE51bGwsIGJsb2NrKSBIYW5kbGVCbG9jayhyZWdp
b24sIGhhbmRsZVNldCk7CisgICAgcmV0dXJuIG5ldyAoTm90TnVsbCwgZmFzdEFsaWduZWRNYWxs
b2MoYmxvY2tTaXplLCBibG9ja1NpemUpKSBIYW5kbGVCbG9jayhoYW5kbGVTZXQpOwogfQogCi1p
bmxpbmUgSGFuZGxlQmxvY2s6OkhhbmRsZUJsb2NrKFJlZ2lvbiogcmVnaW9uLCBIYW5kbGVTZXQq
IGhhbmRsZVNldCkKLSAgICA6IEhlYXBCbG9jazxIYW5kbGVCbG9jaz4ocmVnaW9uKQoraW5saW5l
IEhhbmRsZUJsb2NrOjpIYW5kbGVCbG9jayhIYW5kbGVTZXQqIGhhbmRsZVNldCkKKyAgICA6IEhl
YXBCbG9jazxIYW5kbGVCbG9jaz4oKQogICAgICwgbV9oYW5kbGVTZXQoaGFuZGxlU2V0KQogewog
fQogCiBpbmxpbmUgY2hhciogSGFuZGxlQmxvY2s6OnBheWxvYWRFbmQoKQogewotICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PGNoYXIqPih0aGlzKSArIHJlZ2lvbigpLT5ibG9ja1NpemUoKTsK
KyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odGhpcykgKyBibG9ja1NpemU7CiB9
CiAKIGlubGluZSBjaGFyKiBIYW5kbGVCbG9jazo6cGF5bG9hZCgpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAJKHJldmlzaW9uIDE3OTAyNSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0
LDEyICs0NCwxMiBAQCBIYW5kbGVTZXQ6OkhhbmRsZVNldChWTSogdm0pCiBIYW5kbGVTZXQ6On5I
YW5kbGVTZXQoKQogewogICAgIHdoaWxlICghbV9ibG9ja0xpc3QuaXNFbXB0eSgpKQotICAgICAg
ICBtX3ZtLT5oZWFwLmJsb2NrQWxsb2NhdG9yKCkuZGVhbGxvY2F0ZShIYW5kbGVCbG9jazo6ZGVz
dHJveShtX2Jsb2NrTGlzdC5yZW1vdmVIZWFkKCkpKTsKKyAgICAgICAgSGFuZGxlQmxvY2s6OmRl
c3Ryb3kobV9ibG9ja0xpc3QucmVtb3ZlSGVhZCgpKTsKIH0KIAogdm9pZCBIYW5kbGVTZXQ6Omdy
b3coKQogewotICAgIEhhbmRsZUJsb2NrKiBuZXdCbG9jayA9IEhhbmRsZUJsb2NrOjpjcmVhdGUo
bV92bS0+aGVhcC5ibG9ja0FsbG9jYXRvcigpLmFsbG9jYXRlPEhhbmRsZUJsb2NrPigpLCB0aGlz
KTsKKyAgICBIYW5kbGVCbG9jayogbmV3QmxvY2sgPSBIYW5kbGVCbG9jazo6Y3JlYXRlKHRoaXMp
OwogICAgIG1fYmxvY2tMaXN0LmFwcGVuZChuZXdCbG9jayk7CiAKICAgICBmb3IgKGludCBpID0g
bmV3QmxvY2stPm5vZGVDYXBhY2l0eSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzA4LDcgKzMwOCw2
IEBAIEhlYXA6OkhlYXAoVk0qIHZtLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIG1fdG90YWxC
eXRlc1Zpc2l0ZWQoMCkKICAgICAsIG1fdG90YWxCeXRlc0NvcGllZCgwKQogICAgICwgbV9vcGVy
YXRpb25JblByb2dyZXNzKE5vT3BlcmF0aW9uKQotICAgICwgbV9ibG9ja0FsbG9jYXRvcigpCiAg
ICAgLCBtX29iamVjdFNwYWNlKHRoaXMpCiAgICAgLCBtX3N0b3JhZ2VTcGFjZSh0aGlzKQogICAg
ICwgbV9leHRyYU1lbW9yeVVzYWdlKDApCkBAIC0zMTcsNyArMzE2LDcgQEAgSGVhcDo6SGVhcChW
TSogdm0sIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgICwgbV9zbG90VmlzaXRvcihtX3NoYXJlZERh
dGEpCiAgICAgLCBtX2NvcHlWaXNpdG9yKG1fc2hhcmVkRGF0YSkKICAgICAsIG1faGFuZGxlU2V0
KHZtKQotICAgICwgbV9jb2RlQmxvY2tzKG1fYmxvY2tBbGxvY2F0b3IpCisgICAgLCBtX2NvZGVC
bG9ja3MoKQogICAgICwgbV9pc1NhZmVUb0NvbGxlY3QoZmFsc2UpCiAgICAgLCBtX3dyaXRlQmFy
cmllckJ1ZmZlcigyNTYpCiAgICAgLCBtX3ZtKHZtKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0hlYXAuaAkocmV2aXNpb24gMTc5MDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw2IEBACiAjZGVmaW5lIEhlYXBfaAog
CiAjaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKLSNpbmNsdWRlICJCbG9ja0FsbG9jYXRvci5oIgog
I2luY2x1ZGUgIkNvZGVCbG9ja1NldC5oIgogI2luY2x1ZGUgIkNvcHlWaXNpdG9yLmgiCiAjaW5j
bHVkZSAiR0NJbmNvbWluZ1JlZkNvdW50ZWRTZXQuaCIKQEAgLTIxNSw3ICsyMTQsNiBAQCBwdWJs
aWM6CiAgICAgCiAgICAgYm9vbCBpc0RlZmVycmVkKCkgY29uc3QgeyByZXR1cm4gISFtX2RlZmVy
cmFsRGVwdGggfHwgT3B0aW9uczo6ZGlzYWJsZUdDKCk7IH0KIAotICAgIEJsb2NrQWxsb2NhdG9y
JiBibG9ja0FsbG9jYXRvcigpOwogICAgIFN0cnVjdHVyZUlEVGFibGUmIHN0cnVjdHVyZUlEVGFi
bGUoKSB7IHJldHVybiBtX3N0cnVjdHVyZUlEVGFibGU7IH0KIAogI2lmIFVTRShDRikKQEAgLTI0
NSw3ICsyNDMsNiBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBDb3B5VmlzaXRvcjsKICAg
ICBmcmllbmQgY2xhc3MgUmVjdXJzaXZlQWxsb2NhdGlvblNjb3BlOwogICAgIGZyaWVuZCBjbGFz
cyBTbG90VmlzaXRvcjsKLSAgICBmcmllbmQgY2xhc3MgU3VwZXJSZWdpb247CiAgICAgZnJpZW5k
IGNsYXNzIEluY3JlbWVudGFsU3dlZXBlcjsKICAgICBmcmllbmQgY2xhc3MgSGVhcFN0YXRpc3Rp
Y3M7CiAgICAgZnJpZW5kIGNsYXNzIFZNOwpAQCAtMzQyLDcgKzMzOSw2IEBAIHByaXZhdGU6CiAg
ICAgc2l6ZV90IG1fdG90YWxCeXRlc0NvcGllZDsKICAgICAKICAgICBIZWFwT3BlcmF0aW9uIG1f
b3BlcmF0aW9uSW5Qcm9ncmVzczsKLSAgICBCbG9ja0FsbG9jYXRvciBtX2Jsb2NrQWxsb2NhdG9y
OwogICAgIFN0cnVjdHVyZUlEVGFibGUgbV9zdHJ1Y3R1cmVJRFRhYmxlOwogICAgIE1hcmtlZFNw
YWNlIG1fb2JqZWN0U3BhY2U7CiAgICAgQ29waWVkU3BhY2UgbV9zdG9yYWdlU3BhY2U7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwQmxvY2suaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwQmxvY2suaAkocmV2aXNpb24gMTc5MDI1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcEJsb2NrLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDM3ICsyNywzMSBAQAogI2RlZmluZSBIZWFwQmxvY2tfaAogCiAjaW5jbHVkZSA8d3Rm
L0RvdWJseUxpbmtlZExpc3QuaD4KKyNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKIGVudW0gQWxsb2Nh
dGlvbkVmZm9ydCB7IEFsbG9jYXRpb25DYW5GYWlsLCBBbGxvY2F0aW9uTXVzdFN1Y2NlZWQgfTsK
IAotY2xhc3MgUmVnaW9uOwotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogY2xhc3MgSGVhcEJsb2Nr
IDogcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFQ+IHsKICAgICBmcmllbmQgY2xhc3MgV1RG
OjpEb3VibHlMaW5rZWRMaXN0Tm9kZTxUPjsKIHB1YmxpYzoKLSAgICBzdGF0aWMgSGVhcEJsb2Nr
KiBkZXN0cm95KEhlYXBCbG9jayogYmxvY2spIFdBUk5fVU5VU0VEX1JFVFVSTgorICAgIHN0YXRp
YyB2b2lkIGRlc3Ryb3koSGVhcEJsb2NrKiBibG9jaykKICAgICB7CiAgICAgICAgIHN0YXRpY19j
YXN0PFQqPihibG9jayktPn5UKCk7Ci0gICAgICAgIHJldHVybiBibG9jazsKKyAgICAgICAgZmFz
dEFsaWduZWRGcmVlKGJsb2NrKTsKICAgICB9CiAKLSAgICBIZWFwQmxvY2soUmVnaW9uKiByZWdp
b24pCisgICAgSGVhcEJsb2NrKCkKICAgICAgICAgOiBEb3VibHlMaW5rZWRMaXN0Tm9kZTxUPigp
Ci0gICAgICAgICwgbV9yZWdpb24ocmVnaW9uKQogICAgICAgICAsIG1fcHJldigwKQogICAgICAg
ICAsIG1fbmV4dCgwKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fcmVnaW9uKTsKICAgICB9CiAK
LSAgICBSZWdpb24qIHJlZ2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaW9uOyB9Ci0KIHByaXZh
dGU6Ci0gICAgUmVnaW9uKiBtX3JlZ2lvbjsKICAgICBUKiBtX3ByZXY7CiAgICAgVCogbV9uZXh0
OwogfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBJbmxpbmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcElubGluZXMuaAkocmV2
aXNpb24gMTc5MDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcElubGluZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtMjQwLDExICsyNDAsNiBAQCBpbmxpbmUgdm9pZCBIZWFwOjph
c2NyaWJlT3duZXIoSlNDZWxsKiBpCiAjZW5kaWYKIH0KIAotaW5saW5lIEJsb2NrQWxsb2NhdG9y
JiBIZWFwOjpibG9ja0FsbG9jYXRvcigpCi17Ci0gICAgcmV0dXJuIG1fYmxvY2tBbGxvY2F0b3I7
Ci19Ci0KICNpZiBVU0UoQ0YpCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGlubGluZSB2b2lkIEhl
YXA6OnJlbGVhc2VTb29uKFJldGFpblB0cjxUPiYmIG9iamVjdCkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyLmNwcAkocmV2aXNpb24gMTc5MDI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYs
NiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkhlYXBUaW1lci5oIgog
CisjaW5jbHVkZSAiR0NBY3Rpdml0eUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiSW5jcmVtZW50YWxT
d2VlcGVyLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suY3BwCShyZXZpc2lvbiAx
NzkwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw4ICszMCw4IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1NYXJrU3Rh
Y2tBcnJheTo6TWFya1N0YWNrQXJyYXkoQmxvY2tBbGxvY2F0b3ImIGJsb2NrQWxsb2NhdG9yKQot
ICAgIDogR0NTZWdtZW50ZWRBcnJheTxjb25zdCBKU0NlbGwqPihibG9ja0FsbG9jYXRvcikKK01h
cmtTdGFja0FycmF5OjpNYXJrU3RhY2tBcnJheSgpCisgICAgOiBHQ1NlZ21lbnRlZEFycmF5PGNv
bnN0IEpTQ2VsbCo+KCkKIHsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
TWFya1N0YWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFy
a1N0YWNrLmgJKHJldmlzaW9uIDE3OTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L01hcmtTdGFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIEpTQ2Vs
bDsKIAogY2xhc3MgTWFya1N0YWNrQXJyYXkgOiBwdWJsaWMgR0NTZWdtZW50ZWRBcnJheTxjb25z
dCBKU0NlbGwqPiB7CiBwdWJsaWM6Ci0gICAgTWFya1N0YWNrQXJyYXkoQmxvY2tBbGxvY2F0b3Im
KTsKKyAgICBNYXJrU3RhY2tBcnJheSgpOwogCiAgICAgdm9pZCBkb25hdGVTb21lQ2VsbHNUbyhN
YXJrU3RhY2tBcnJheSYgb3RoZXIpOwogICAgIHZvaWQgc3RlYWxTb21lQ2VsbHNGcm9tKE1hcmtT
dGFja0FycmF5JiBvdGhlciwgc2l6ZV90IGlkbGVUaHJlYWRDb3VudCk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRBbGxvY2F0b3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEFsbG9jYXRvci5jcHAJKHJldmlzaW9uIDE3
OTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEFsbG9jYXRvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE5OCw5ICsxOTgsNyBAQCBNYXJrZWRCbG9jayogTWFya2VkQWxs
b2NhdG9yOjphbGxvY2F0ZUJsCiAKICAgICBzaXplX3QgY2VsbFNpemUgPSBtX2NlbGxTaXplID8g
bV9jZWxsU2l6ZSA6IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZjxNYXJrZWRCbG9jazo6YXRvbVNp
emU+KGJ5dGVzKTsKIAotICAgIGlmIChibG9ja1NpemUgPT0gTWFya2VkQmxvY2s6OmJsb2NrU2l6
ZSkKLSAgICAgICAgcmV0dXJuIE1hcmtlZEJsb2NrOjpjcmVhdGUobV9oZWFwLT5ibG9ja0FsbG9j
YXRvcigpLmFsbG9jYXRlPE1hcmtlZEJsb2NrPigpLCB0aGlzLCBjZWxsU2l6ZSwgbV9kZXN0cnVj
dG9yVHlwZSk7Ci0gICAgcmV0dXJuIE1hcmtlZEJsb2NrOjpjcmVhdGUobV9oZWFwLT5ibG9ja0Fs
bG9jYXRvcigpLmFsbG9jYXRlQ3VzdG9tU2l6ZShibG9ja1NpemUsIE1hcmtlZEJsb2NrOjpibG9j
a1NpemUpLCB0aGlzLCBjZWxsU2l6ZSwgbV9kZXN0cnVjdG9yVHlwZSk7CisgICAgcmV0dXJuIE1h
cmtlZEJsb2NrOjpjcmVhdGUodGhpcywgYmxvY2tTaXplLCBjZWxsU2l6ZSwgbV9kZXN0cnVjdG9y
VHlwZSk7CiB9CiAKIHZvaWQgTWFya2VkQWxsb2NhdG9yOjphZGRCbG9jayhNYXJrZWRCbG9jayog
YmxvY2spCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3Bw
CShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRC
bG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDIxICszNCwyMCBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsKIAotTWFya2VkQmxvY2sqIE1hcmtlZEJsb2NrOjpjcmVhdGUoRGVhZEJsb2NrKiBibG9j
aywgTWFya2VkQWxsb2NhdG9yKiBhbGxvY2F0b3IsIHNpemVfdCBjZWxsU2l6ZSwgRGVzdHJ1Y3Rv
clR5cGUgZGVzdHJ1Y3RvclR5cGUpCitNYXJrZWRCbG9jayogTWFya2VkQmxvY2s6OmNyZWF0ZShN
YXJrZWRBbGxvY2F0b3IqIGFsbG9jYXRvciwgc2l6ZV90IGJsb2NrU2l6ZSwgc2l6ZV90IGNlbGxT
aXplLCBEZXN0cnVjdG9yVHlwZSBkZXN0cnVjdG9yVHlwZSkKIHsKLSAgICBBU1NFUlQocmVpbnRl
cnByZXRfY2FzdDxzaXplX3Q+KGJsb2NrKSA9PSAocmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KGJs
b2NrKSAmIGJsb2NrTWFzaykpOwotICAgIFJlZ2lvbiogcmVnaW9uID0gYmxvY2stPnJlZ2lvbigp
OwotICAgIHJldHVybiBuZXcgKE5vdE51bGwsIGJsb2NrKSBNYXJrZWRCbG9jayhyZWdpb24sIGFs
bG9jYXRvciwgY2VsbFNpemUsIGRlc3RydWN0b3JUeXBlKTsKKyAgICByZXR1cm4gbmV3IChOb3RO
dWxsLCBmYXN0QWxpZ25lZE1hbGxvYyhNYXJrZWRCbG9jazo6YmxvY2tTaXplLCBibG9ja1NpemUp
KSBNYXJrZWRCbG9jayhhbGxvY2F0b3IsIGJsb2NrU2l6ZSwgY2VsbFNpemUsIGRlc3RydWN0b3JU
eXBlKTsKIH0KIAotTWFya2VkQmxvY2s6Ok1hcmtlZEJsb2NrKFJlZ2lvbiogcmVnaW9uLCBNYXJr
ZWRBbGxvY2F0b3IqIGFsbG9jYXRvciwgc2l6ZV90IGNlbGxTaXplLCBEZXN0cnVjdG9yVHlwZSBk
ZXN0cnVjdG9yVHlwZSkKLSAgICA6IEhlYXBCbG9jazxNYXJrZWRCbG9jaz4ocmVnaW9uKQorTWFy
a2VkQmxvY2s6Ok1hcmtlZEJsb2NrKE1hcmtlZEFsbG9jYXRvciogYWxsb2NhdG9yLCBzaXplX3Qg
YmxvY2tTaXplLCBzaXplX3QgY2VsbFNpemUsIERlc3RydWN0b3JUeXBlIGRlc3RydWN0b3JUeXBl
KQorICAgIDogSGVhcEJsb2NrPE1hcmtlZEJsb2NrPigpCiAgICAgLCBtX2F0b21zUGVyQ2VsbCgo
Y2VsbFNpemUgKyBhdG9tU2l6ZSAtIDEpIC8gYXRvbVNpemUpCi0gICAgLCBtX2VuZEF0b20oKGFs
bG9jYXRvci0+Y2VsbFNpemUoKSA/IGF0b21zUGVyQmxvY2sgOiByZWdpb24tPmJsb2NrU2l6ZSgp
IC8gYXRvbVNpemUpIC0gbV9hdG9tc1BlckNlbGwgKyAxKQorICAgICwgbV9lbmRBdG9tKChhbGxv
Y2F0b3ItPmNlbGxTaXplKCkgPyBhdG9tc1BlckJsb2NrIDogYmxvY2tTaXplIC8gYXRvbVNpemUp
IC0gbV9hdG9tc1BlckNlbGwgKyAxKQogICAgICwgbV9kZXN0cnVjdG9yVHlwZShkZXN0cnVjdG9y
VHlwZSkKICAgICAsIG1fYWxsb2NhdG9yKGFsbG9jYXRvcikKICAgICAsIG1fc3RhdGUoTmV3KSAv
LyBBbGwgY2VsbHMgc3RhcnQgb3V0IHVubWFya2VkLgogICAgICwgbV93ZWFrU2V0KGFsbG9jYXRv
ci0+aGVhcCgpLT52bSgpKQorICAgICwgbV9ibG9ja1NpemUoYmxvY2tTaXplKQogewogICAgIEFT
U0VSVChhbGxvY2F0b3IpOwogICAgIEhFQVBfTE9HX0JMT0NLX1NUQVRFX1RSQU5TSVRJT04odGhp
cyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgJKHJldmlz
aW9uIDE3OTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIyLDkgKzIyLDcgQEAKICNpZm5kZWYgTWFya2VkQmxvY2tfaAog
I2RlZmluZSBNYXJrZWRCbG9ja19oCiAKLSNpbmNsdWRlICJCbG9ja0FsbG9jYXRvci5oIgogI2lu
Y2x1ZGUgIkhlYXBCbG9jay5oIgotCiAjaW5jbHVkZSAiSGVhcE9wZXJhdGlvbi5oIgogI2luY2x1
ZGUgIldlYWtTZXQuaCIKICNpbmNsdWRlIDx3dGYvQml0bWFwLmg+CkBAIC0xMTMsNyArMTExLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH07CiAKICAgICAgICAgZW51bSBEZXN0cnVjdG9y
VHlwZSB7IE5vbmUsIEltbW9ydGFsU3RydWN0dXJlLCBOb3JtYWwgfTsKLSAgICAgICAgc3RhdGlj
IE1hcmtlZEJsb2NrKiBjcmVhdGUoRGVhZEJsb2NrKiwgTWFya2VkQWxsb2NhdG9yKiwgc2l6ZV90
IGNlbGxTaXplLCBEZXN0cnVjdG9yVHlwZSk7CisgICAgICAgIHN0YXRpYyBNYXJrZWRCbG9jayog
Y3JlYXRlKE1hcmtlZEFsbG9jYXRvciosIHNpemVfdCBibG9ja1NpemUsIHNpemVfdCBjZWxsU2l6
ZSwgRGVzdHJ1Y3RvclR5cGUpOwogCiAgICAgICAgIHN0YXRpYyBib29sIGlzQXRvbUFsaWduZWQo
Y29uc3Qgdm9pZCopOwogICAgICAgICBzdGF0aWMgTWFya2VkQmxvY2sqIGJsb2NrRm9yKGNvbnN0
IHZvaWQqKTsKQEAgLTE5NCw3ICsxOTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB0
eXBlZGVmIGNoYXIgQXRvbVthdG9tU2l6ZV07CiAKLSAgICAgICAgTWFya2VkQmxvY2soUmVnaW9u
KiwgTWFya2VkQWxsb2NhdG9yKiwgc2l6ZV90IGNlbGxTaXplLCBEZXN0cnVjdG9yVHlwZSk7Cisg
ICAgICAgIE1hcmtlZEJsb2NrKE1hcmtlZEFsbG9jYXRvciosIHNpemVfdCBibG9ja1NpemUsIHNp
emVfdCBjZWxsU2l6ZSwgRGVzdHJ1Y3RvclR5cGUpOwogICAgICAgICBBdG9tKiBhdG9tcygpOwog
ICAgICAgICBzaXplX3QgYXRvbU51bWJlcihjb25zdCB2b2lkKik7CiAgICAgICAgIHRlbXBsYXRl
PERlc3RydWN0b3JUeXBlPiB2b2lkIGNhbGxEZXN0cnVjdG9yKEpTQ2VsbCopOwpAQCAtMjE1LDYg
KzIxMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYXJrZWRBbGxvY2F0b3IqIG1fYWxs
b2NhdG9yOwogICAgICAgICBCbG9ja1N0YXRlIG1fc3RhdGU7CiAgICAgICAgIFdlYWtTZXQgbV93
ZWFrU2V0OworICAgICAgICBzaXplX3QgbV9ibG9ja1NpemU7CiAgICAgfTsKIAogICAgIGlubGlu
ZSBNYXJrZWRCbG9jazo6RnJlZUxpc3Q6OkZyZWVMaXN0KCkKQEAgLTMzMyw3ICszMzIsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogICAgIGlubGluZSBzaXplX3QgTWFya2VkQmxvY2s6OmNhcGFjaXR5
KCkKICAgICB7Ci0gICAgICAgIHJldHVybiByZWdpb24oKS0+YmxvY2tTaXplKCk7CisgICAgICAg
IHJldHVybiBtX2Jsb2NrU2l6ZTsKICAgICB9CiAKICAgICBpbmxpbmUgc2l6ZV90IE1hcmtlZEJs
b2NrOjphdG9tTnVtYmVyKGNvbnN0IHZvaWQqIHApCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvTWFya2VkU3BhY2UuY3BwCShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1MSwx
MSArMjUxLDcgQEAgdm9pZCBNYXJrZWRTcGFjZTo6ZnJlZUJsb2NrKE1hcmtlZEJsb2NrKgogICAg
IGJsb2NrLT5hbGxvY2F0b3IoKS0+cmVtb3ZlQmxvY2soYmxvY2spOwogICAgIG1fY2FwYWNpdHkg
LT0gYmxvY2stPmNhcGFjaXR5KCk7CiAgICAgbV9ibG9ja3MucmVtb3ZlKGJsb2NrKTsKLSAgICBp
ZiAoYmxvY2stPmNhcGFjaXR5KCkgPT0gTWFya2VkQmxvY2s6OmJsb2NrU2l6ZSkgewotICAgICAg
ICBtX2hlYXAtPmJsb2NrQWxsb2NhdG9yKCkuZGVhbGxvY2F0ZShNYXJrZWRCbG9jazo6ZGVzdHJv
eShibG9jaykpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG1faGVhcC0+YmxvY2tBbGxv
Y2F0b3IoKS5kZWFsbG9jYXRlQ3VzdG9tU2l6ZShNYXJrZWRCbG9jazo6ZGVzdHJveShibG9jaykp
OworICAgIE1hcmtlZEJsb2NrOjpkZXN0cm95KGJsb2NrKTsKIH0KIAogdm9pZCBNYXJrZWRTcGFj
ZTo6ZnJlZU9yU2hyaW5rQmxvY2soTWFya2VkQmxvY2sqIGJsb2NrKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSA8d3RmL0RvdWJseUxpbmtlZExpc3QuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBK
U0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUmVnaW9uLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUmVnaW9uLmgJKHJldmlzaW9uIDE3OTAy
NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1JlZ2lvbi5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMyMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBKU0NfUmVnaW9uX2gKLSNk
ZWZpbmUgSlNDX1JlZ2lvbl9oCi0KLSNpbmNsdWRlICJIZWFwQmxvY2suaCIKLSNpbmNsdWRlICJT
dXBlclJlZ2lvbi5oIgotI2luY2x1ZGUgPHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg+Ci0jaW5jbHVk
ZSA8d3RmL01ldGFBbGxvY2F0b3JIYW5kbGUuaD4KLSNpbmNsdWRlIDx3dGYvUGFnZUFsbG9jYXRp
b25BbGlnbmVkLmg+Ci0KLSNkZWZpbmUgSEVBUF9NRU1PUllfSUQgcmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4oc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KC0zKSkKLQotI2RlZmluZSBFTkFCTEVfU1VQRVJf
UkVHSU9OIDAKLQotI2lmbmRlZiBFTkFCTEVfU1VQRVJfUkVHSU9OCi0jaWYgVVNFKEpTVkFMVUU2
NCkgJiYgIUNQVShBUk02NCkKLSNkZWZpbmUgRU5BQkxFX1NVUEVSX1JFR0lPTiAxCi0jZWxzZQot
I2RlZmluZSBFTkFCTEVfU1VQRVJfUkVHSU9OIDAKLSNlbmRpZgotI2VuZGlmCi0KLW5hbWVzcGFj
ZSBKU0MgewotCi1jbGFzcyBEZWFkQmxvY2sgOiBwdWJsaWMgSGVhcEJsb2NrPERlYWRCbG9jaz4g
ewotcHVibGljOgotICAgIERlYWRCbG9jayhSZWdpb24qKTsKLX07Ci0KLWlubGluZSBEZWFkQmxv
Y2s6OkRlYWRCbG9jayhSZWdpb24qIHJlZ2lvbikKLSAgICA6IEhlYXBCbG9jazxEZWFkQmxvY2s+
KHJlZ2lvbikKLXsKLX0KLQotY2xhc3MgUmVnaW9uIDogcHVibGljIERvdWJseUxpbmtlZExpc3RO
b2RlPFJlZ2lvbj4gewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotCi0gICAgZnJpZW5k
IGNsYXNzIFdURjo6RG91Ymx5TGlua2VkTGlzdE5vZGU8UmVnaW9uPjsKLSAgICBmcmllbmQgY2xh
c3MgQmxvY2tBbGxvY2F0b3I7Ci1wdWJsaWM6Ci0gICAgflJlZ2lvbigpOwotICAgIHN0YXRpYyBS
ZWdpb24qIGNyZWF0ZShTdXBlclJlZ2lvbiosIHNpemVfdCBibG9ja1NpemUpOwotICAgIHN0YXRp
YyBSZWdpb24qIGNyZWF0ZUN1c3RvbVNpemUoU3VwZXJSZWdpb24qLCBzaXplX3QgYmxvY2tTaXpl
LCBzaXplX3QgYmxvY2tBbGlnbm1lbnQpOwotICAgIFJlZ2lvbiogcmVzZXQoc2l6ZV90IGJsb2Nr
U2l6ZSk7Ci0gICAgdm9pZCBkZXN0cm95KCk7Ci0KLSAgICBzaXplX3QgYmxvY2tTaXplKCkgY29u
c3QgeyByZXR1cm4gbV9ibG9ja1NpemU7IH0KLSAgICBib29sIGlzRnVsbCgpIGNvbnN0IHsgcmV0
dXJuIG1fYmxvY2tzSW5Vc2UgPT0gbV90b3RhbEJsb2NrczsgfQotICAgIGJvb2wgaXNFbXB0eSgp
IGNvbnN0IHsgcmV0dXJuICFtX2Jsb2Nrc0luVXNlOyB9Ci0gICAgYm9vbCBpc0N1c3RvbVNpemUo
KSBjb25zdCB7IHJldHVybiBtX2lzQ3VzdG9tU2l6ZTsgfQotCi0gICAgRGVhZEJsb2NrKiBhbGxv
Y2F0ZSgpOwotICAgIHZvaWQgZGVhbGxvY2F0ZSh2b2lkKik7Ci0KLSAgICBzdGF0aWMgY29uc3Qg
c2l6ZV90IHNfcmVnaW9uU2l6ZSA9IDY0ICogS0I7Ci0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBz
X3JlZ2lvbk1hc2sgPSB+KHNfcmVnaW9uU2l6ZSAtIDEpOwotCi1wcm90ZWN0ZWQ6Ci0gICAgUmVn
aW9uKHNpemVfdCBibG9ja1NpemUsIHNpemVfdCB0b3RhbEJsb2NrcywgYm9vbCBpc0V4Y2Vzcyk7
Ci0gICAgdm9pZCBpbml0aWFsaXplQmxvY2tMaXN0KCk7Ci0KLSAgICBib29sIG1faXNFeGNlc3M7
Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCogYmFzZSgpOwotICAgIHNpemVfdCBzaXplKCk7Ci0KLSAg
ICBzaXplX3QgbV90b3RhbEJsb2NrczsKLSAgICBzaXplX3QgbV9ibG9ja3NJblVzZTsKLSAgICBz
aXplX3QgbV9ibG9ja1NpemU7Ci0gICAgYm9vbCBtX2lzQ3VzdG9tU2l6ZTsKLSAgICBSZWdpb24q
IG1fcHJldjsKLSAgICBSZWdpb24qIG1fbmV4dDsKLSAgICBEb3VibHlMaW5rZWRMaXN0PERlYWRC
bG9jaz4gbV9kZWFkQmxvY2tzOwotfTsKLQotCi1jbGFzcyBOb3JtYWxSZWdpb24gOiBwdWJsaWMg
UmVnaW9uIHsKLSAgICBmcmllbmQgY2xhc3MgUmVnaW9uOwotcHJpdmF0ZToKLSAgICBOb3JtYWxS
ZWdpb24oUGFzc1JlZlB0cjxXVEY6Ok1ldGFBbGxvY2F0b3JIYW5kbGU+LCBzaXplX3QgYmxvY2tT
aXplLCBzaXplX3QgdG90YWxCbG9ja3MpOwotCi0gICAgc3RhdGljIE5vcm1hbFJlZ2lvbiogdHJ5
Q3JlYXRlKFN1cGVyUmVnaW9uKiwgc2l6ZV90IGJsb2NrU2l6ZSk7Ci0gICAgc3RhdGljIE5vcm1h
bFJlZ2lvbiogdHJ5Q3JlYXRlQ3VzdG9tU2l6ZShTdXBlclJlZ2lvbiosIHNpemVfdCBibG9ja1Np
emUsIHNpemVfdCBibG9ja0FsaWdubWVudCk7Ci0KLSAgICB2b2lkKiBiYXNlKCkgeyByZXR1cm4g
bV9hbGxvY2F0aW9uLT5zdGFydCgpOyB9Ci0gICAgc2l6ZV90IHNpemUoKSB7IHJldHVybiBtX2Fs
bG9jYXRpb24tPnNpemVJbkJ5dGVzKCk7IH0KLQotICAgIE5vcm1hbFJlZ2lvbiogcmVzZXQoc2l6
ZV90IGJsb2NrU2l6ZSk7Ci0KLSAgICBSZWZQdHI8V1RGOjpNZXRhQWxsb2NhdG9ySGFuZGxlPiBt
X2FsbG9jYXRpb247Ci19OwotCi1jbGFzcyBFeGNlc3NSZWdpb24gOiBwdWJsaWMgUmVnaW9uIHsK
LSAgICBmcmllbmQgY2xhc3MgUmVnaW9uOwotcHJpdmF0ZToKLSAgICBFeGNlc3NSZWdpb24oUGFn
ZUFsbG9jYXRpb25BbGlnbmVkJiwgc2l6ZV90IGJsb2NrU2l6ZSwgc2l6ZV90IHRvdGFsQmxvY2tz
KTsKLQotICAgIH5FeGNlc3NSZWdpb24oKTsKLQotICAgIHN0YXRpYyBFeGNlc3NSZWdpb24qIGNy
ZWF0ZShzaXplX3QgYmxvY2tTaXplKTsKLSAgICBzdGF0aWMgRXhjZXNzUmVnaW9uKiBjcmVhdGVD
dXN0b21TaXplKHNpemVfdCBibG9ja1NpemUsIHNpemVfdCBibG9ja0FsaWdubWVudCk7Ci0KLSAg
ICB2b2lkKiBiYXNlKCkgeyByZXR1cm4gbV9hbGxvY2F0aW9uLmJhc2UoKTsgfQotICAgIHNpemVf
dCBzaXplKCkgeyByZXR1cm4gbV9hbGxvY2F0aW9uLnNpemUoKTsgfQotCi0gICAgRXhjZXNzUmVn
aW9uKiByZXNldChzaXplX3QgYmxvY2tTaXplKTsKLQotICAgIFBhZ2VBbGxvY2F0aW9uQWxpZ25l
ZCBtX2FsbG9jYXRpb247Ci19OwotCi1pbmxpbmUgTm9ybWFsUmVnaW9uOjpOb3JtYWxSZWdpb24o
UGFzc1JlZlB0cjxXVEY6Ok1ldGFBbGxvY2F0b3JIYW5kbGU+IGFsbG9jYXRpb24sIHNpemVfdCBi
bG9ja1NpemUsIHNpemVfdCB0b3RhbEJsb2NrcykKLSAgICA6IFJlZ2lvbihibG9ja1NpemUsIHRv
dGFsQmxvY2tzLCBmYWxzZSkKLSAgICAsIG1fYWxsb2NhdGlvbihhbGxvY2F0aW9uKQotewotICAg
IGluaXRpYWxpemVCbG9ja0xpc3QoKTsKLX0KLQotaW5saW5lIE5vcm1hbFJlZ2lvbiogTm9ybWFs
UmVnaW9uOjp0cnlDcmVhdGUoU3VwZXJSZWdpb24qIHN1cGVyUmVnaW9uLCBzaXplX3QgYmxvY2tT
aXplKQotewotICAgIFJlZlB0cjxXVEY6Ok1ldGFBbGxvY2F0b3JIYW5kbGU+IGFsbG9jYXRpb24g
PSBzdXBlclJlZ2lvbi0+YWxsb2NhdGUoc19yZWdpb25TaXplLCBIRUFQX01FTU9SWV9JRCk7Ci0g
ICAgaWYgKCFhbGxvY2F0aW9uKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gbmV3IE5v
cm1hbFJlZ2lvbihhbGxvY2F0aW9uLCBibG9ja1NpemUsIHNfcmVnaW9uU2l6ZSAvIGJsb2NrU2l6
ZSk7Ci19Ci0KLWlubGluZSBOb3JtYWxSZWdpb24qIE5vcm1hbFJlZ2lvbjo6dHJ5Q3JlYXRlQ3Vz
dG9tU2l6ZShTdXBlclJlZ2lvbiogc3VwZXJSZWdpb24sIHNpemVfdCBibG9ja1NpemUsIHNpemVf
dCBibG9ja0FsaWdubWVudCkKLXsKLSAgICBBU1NFUlRfVU5VU0VEKGJsb2NrQWxpZ25tZW50LCBi
bG9ja0FsaWdubWVudCA8PSBzX3JlZ2lvblNpemUpOwotICAgIFJlZlB0cjxXVEY6Ok1ldGFBbGxv
Y2F0b3JIYW5kbGU+IGFsbG9jYXRpb24gPSBzdXBlclJlZ2lvbi0+YWxsb2NhdGUoYmxvY2tTaXpl
LCBIRUFQX01FTU9SWV9JRCk7Ci0gICAgaWYgKCFhbGxvY2F0aW9uKQotICAgICAgICByZXR1cm4g
MDsKLSAgICByZXR1cm4gbmV3IE5vcm1hbFJlZ2lvbihhbGxvY2F0aW9uLCBibG9ja1NpemUsIDEp
OwotfQotCi1pbmxpbmUgTm9ybWFsUmVnaW9uKiBOb3JtYWxSZWdpb246OnJlc2V0KHNpemVfdCBi
bG9ja1NpemUpCi17Ci0gICAgQVNTRVJUKCFtX2lzRXhjZXNzKTsKLSAgICBSZWZQdHI8V1RGOjpN
ZXRhQWxsb2NhdG9ySGFuZGxlPiBhbGxvY2F0aW9uID0gbV9hbGxvY2F0aW9uLnJlbGVhc2UoKTsK
LSAgICByZXR1cm4gbmV3IChOb3ROdWxsLCB0aGlzKSBOb3JtYWxSZWdpb24oYWxsb2NhdGlvbi5y
ZWxlYXNlKCksIGJsb2NrU2l6ZSwgc19yZWdpb25TaXplIC8gYmxvY2tTaXplKTsKLX0KLQotaW5s
aW5lIEV4Y2Vzc1JlZ2lvbjo6RXhjZXNzUmVnaW9uKFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCYgYWxs
b2NhdGlvbiwgc2l6ZV90IGJsb2NrU2l6ZSwgc2l6ZV90IHRvdGFsQmxvY2tzKQotICAgIDogUmVn
aW9uKGJsb2NrU2l6ZSwgdG90YWxCbG9ja3MsIHRydWUpCi0gICAgLCBtX2FsbG9jYXRpb24oYWxs
b2NhdGlvbikKLXsKLSAgICBpbml0aWFsaXplQmxvY2tMaXN0KCk7Ci19Ci0KLWlubGluZSBFeGNl
c3NSZWdpb246On5FeGNlc3NSZWdpb24oKQotewotICAgIG1fYWxsb2NhdGlvbi5kZWFsbG9jYXRl
KCk7Ci19Ci0KLWlubGluZSBFeGNlc3NSZWdpb24qIEV4Y2Vzc1JlZ2lvbjo6Y3JlYXRlKHNpemVf
dCBibG9ja1NpemUpCi17Ci0gICAgUGFnZUFsbG9jYXRpb25BbGlnbmVkIGFsbG9jYXRpb24gPSBQ
YWdlQWxsb2NhdGlvbkFsaWduZWQ6OmFsbG9jYXRlKHNfcmVnaW9uU2l6ZSwgc19yZWdpb25TaXpl
LCBPU0FsbG9jYXRvcjo6SlNHQ0hlYXBQYWdlcyk7Ci0gICAgQVNTRVJUKHN0YXRpY19jYXN0PGJv
b2w+KGFsbG9jYXRpb24pKTsKLSAgICByZXR1cm4gbmV3IEV4Y2Vzc1JlZ2lvbihhbGxvY2F0aW9u
LCBibG9ja1NpemUsIHNfcmVnaW9uU2l6ZSAvIGJsb2NrU2l6ZSk7IAotfQotCi1pbmxpbmUgRXhj
ZXNzUmVnaW9uKiBFeGNlc3NSZWdpb246OmNyZWF0ZUN1c3RvbVNpemUoc2l6ZV90IGJsb2NrU2l6
ZSwgc2l6ZV90IGJsb2NrQWxpZ25tZW50KQotewotICAgIFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCBh
bGxvY2F0aW9uID0gUGFnZUFsbG9jYXRpb25BbGlnbmVkOjphbGxvY2F0ZShibG9ja1NpemUsIGJs
b2NrQWxpZ25tZW50LCBPU0FsbG9jYXRvcjo6SlNHQ0hlYXBQYWdlcyk7Ci0gICAgQVNTRVJUKHN0
YXRpY19jYXN0PGJvb2w+KGFsbG9jYXRpb24pKTsKLSAgICByZXR1cm4gbmV3IEV4Y2Vzc1JlZ2lv
bihhbGxvY2F0aW9uLCBibG9ja1NpemUsIDEpOwotfQotCi1pbmxpbmUgRXhjZXNzUmVnaW9uKiBF
eGNlc3NSZWdpb246OnJlc2V0KHNpemVfdCBibG9ja1NpemUpCi17Ci0gICAgQVNTRVJUKG1faXNF
eGNlc3MpOwotICAgIFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCBhbGxvY2F0aW9uID0gbV9hbGxvY2F0
aW9uOwotICAgIHJldHVybiBuZXcgKE5vdE51bGwsIHRoaXMpIEV4Y2Vzc1JlZ2lvbihhbGxvY2F0
aW9uLCBibG9ja1NpemUsIHNfcmVnaW9uU2l6ZSAvIGJsb2NrU2l6ZSk7Ci19Ci0KLWlubGluZSBS
ZWdpb246OlJlZ2lvbihzaXplX3QgYmxvY2tTaXplLCBzaXplX3QgdG90YWxCbG9ja3MsIGJvb2wg
aXNFeGNlc3MpCi0gICAgOiBEb3VibHlMaW5rZWRMaXN0Tm9kZTxSZWdpb24+KCkKLSAgICAsIG1f
aXNFeGNlc3MoaXNFeGNlc3MpCi0gICAgLCBtX3RvdGFsQmxvY2tzKHRvdGFsQmxvY2tzKQotICAg
ICwgbV9ibG9ja3NJblVzZSgwKQotICAgICwgbV9ibG9ja1NpemUoYmxvY2tTaXplKQotICAgICwg
bV9pc0N1c3RvbVNpemUoZmFsc2UpCi0gICAgLCBtX3ByZXYoMCkKLSAgICAsIG1fbmV4dCgwKQot
ewotfQotCi1pbmxpbmUgdm9pZCBSZWdpb246OmluaXRpYWxpemVCbG9ja0xpc3QoKQotewotICAg
IGNoYXIqIHN0YXJ0ID0gc3RhdGljX2Nhc3Q8Y2hhcio+KGJhc2UoKSk7Ci0gICAgY2hhciogY3Vy
cmVudCA9IHN0YXJ0OwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV90b3RhbEJsb2Nrczsg
aSsrKSB7Ci0gICAgICAgIEFTU0VSVChjdXJyZW50IDwgc3RhcnQgKyBzaXplKCkpOwotICAgICAg
ICBtX2RlYWRCbG9ja3MuYXBwZW5kKG5ldyAoTm90TnVsbCwgY3VycmVudCkgRGVhZEJsb2NrKHRo
aXMpKTsKLSAgICAgICAgY3VycmVudCArPSBtX2Jsb2NrU2l6ZTsKLSAgICB9Ci19Ci0KLWlubGlu
ZSBSZWdpb24qIFJlZ2lvbjo6Y3JlYXRlKFN1cGVyUmVnaW9uKiBzdXBlclJlZ2lvbiwgc2l6ZV90
IGJsb2NrU2l6ZSkKLXsKLSNpZiBFTkFCTEUoU1VQRVJfUkVHSU9OKQotICAgIEFTU0VSVChibG9j
a1NpemUgPD0gc19yZWdpb25TaXplKTsKLSAgICBBU1NFUlQoIShzX3JlZ2lvblNpemUgJSBibG9j
a1NpemUpKTsKLSAgICBSZWdpb24qIHJlZ2lvbiA9IE5vcm1hbFJlZ2lvbjo6dHJ5Q3JlYXRlKHN1
cGVyUmVnaW9uLCBibG9ja1NpemUpOwotICAgIGlmIChMSUtFTFkoISFyZWdpb24pKQotICAgICAg
ICByZXR1cm4gcmVnaW9uOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc3VwZXJSZWdpb24pOwot
I2VuZGlmCi0gICAgcmV0dXJuIEV4Y2Vzc1JlZ2lvbjo6Y3JlYXRlKGJsb2NrU2l6ZSk7Ci19Ci0K
LWlubGluZSBSZWdpb24qIFJlZ2lvbjo6Y3JlYXRlQ3VzdG9tU2l6ZShTdXBlclJlZ2lvbiogc3Vw
ZXJSZWdpb24sIHNpemVfdCBibG9ja1NpemUsIHNpemVfdCBibG9ja0FsaWdubWVudCkKLXsKLSNp
ZiBFTkFCTEUoU1VQRVJfUkVHSU9OKQotICAgIFJlZ2lvbiogcmVnaW9uID0gTm9ybWFsUmVnaW9u
Ojp0cnlDcmVhdGVDdXN0b21TaXplKHN1cGVyUmVnaW9uLCBibG9ja1NpemUsIGJsb2NrQWxpZ25t
ZW50KTsKLSAgICBpZiAoVU5MSUtFTFkoIXJlZ2lvbikpCi0gICAgICAgIHJlZ2lvbiA9IEV4Y2Vz
c1JlZ2lvbjo6Y3JlYXRlQ3VzdG9tU2l6ZShibG9ja1NpemUsIGJsb2NrQWxpZ25tZW50KTsKLSNl
bHNlCi0gICAgVU5VU0VEX1BBUkFNKHN1cGVyUmVnaW9uKTsKLSAgICBSZWdpb24qIHJlZ2lvbiA9
IEV4Y2Vzc1JlZ2lvbjo6Y3JlYXRlQ3VzdG9tU2l6ZShibG9ja1NpemUsIGJsb2NrQWxpZ25tZW50
KTsKLSNlbmRpZgotICAgIHJlZ2lvbi0+bV9pc0N1c3RvbVNpemUgPSB0cnVlOwotICAgIHJldHVy
biByZWdpb247Ci19Ci0KLWlubGluZSBSZWdpb246On5SZWdpb24oKQotewotICAgIEFTU0VSVChp
c0VtcHR5KCkpOwotfQotCi1pbmxpbmUgdm9pZCBSZWdpb246OmRlc3Ryb3koKQotewotI2lmIEVO
QUJMRShTVVBFUl9SRUdJT04pCi0gICAgaWYgKFVOTElLRUxZKG1faXNFeGNlc3MpKQotICAgICAg
ICBkZWxldGUgc3RhdGljX2Nhc3Q8RXhjZXNzUmVnaW9uKj4odGhpcyk7Ci0gICAgZWxzZQotICAg
ICAgICBkZWxldGUgc3RhdGljX2Nhc3Q8Tm9ybWFsUmVnaW9uKj4odGhpcyk7Ci0jZWxzZQotICAg
IGRlbGV0ZSBzdGF0aWNfY2FzdDxFeGNlc3NSZWdpb24qPih0aGlzKTsKLSNlbmRpZgotfQotCi1p
bmxpbmUgUmVnaW9uKiBSZWdpb246OnJlc2V0KHNpemVfdCBibG9ja1NpemUpCi17Ci0jaWYgRU5B
QkxFKFNVUEVSX1JFR0lPTikKLSAgICBBU1NFUlQoaXNFbXB0eSgpKTsKLSAgICBpZiAoVU5MSUtF
TFkobV9pc0V4Y2VzcykpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFeGNlc3NSZWdpb24q
Pih0aGlzKS0+cmVzZXQoYmxvY2tTaXplKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Tm9ybWFs
UmVnaW9uKj4odGhpcyktPnJlc2V0KGJsb2NrU2l6ZSk7Ci0jZWxzZQotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxFeGNlc3NSZWdpb24qPih0aGlzKS0+cmVzZXQoYmxvY2tTaXplKTsKLSNlbmRpZgot
fQotCi1pbmxpbmUgRGVhZEJsb2NrKiBSZWdpb246OmFsbG9jYXRlKCkKLXsKLSAgICBBU1NFUlQo
IWlzRnVsbCgpKTsKLSAgICBtX2Jsb2Nrc0luVXNlKys7Ci0gICAgcmV0dXJuIG1fZGVhZEJsb2Nr
cy5yZW1vdmVIZWFkKCk7Ci19Ci0KLWlubGluZSB2b2lkIFJlZ2lvbjo6ZGVhbGxvY2F0ZSh2b2lk
KiBiYXNlKQotewotICAgIEFTU0VSVChiYXNlKTsKLSAgICBBU1NFUlQobV9ibG9ja3NJblVzZSk7
Ci0gICAgQVNTRVJUKGJhc2UgPj0gdGhpcy0+YmFzZSgpICYmIGJhc2UgPCBzdGF0aWNfY2FzdDxj
aGFyKj4odGhpcy0+YmFzZSgpKSArIHNpemUoKSk7Ci0gICAgRGVhZEJsb2NrKiBibG9jayA9IG5l
dyAoTm90TnVsbCwgYmFzZSkgRGVhZEJsb2NrKHRoaXMpOwotICAgIG1fZGVhZEJsb2Nrcy5wdXNo
KGJsb2NrKTsKLSAgICBtX2Jsb2Nrc0luVXNlLS07Ci19Ci0KLWlubGluZSB2b2lkKiBSZWdpb246
OmJhc2UoKQotewotI2lmIEVOQUJMRShTVVBFUl9SRUdJT04pCi0gICAgaWYgKFVOTElLRUxZKG1f
aXNFeGNlc3MpKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXhjZXNzUmVnaW9uKj4odGhp
cyktPkV4Y2Vzc1JlZ2lvbjo6YmFzZSgpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxOb3JtYWxS
ZWdpb24qPih0aGlzKS0+Tm9ybWFsUmVnaW9uOjpiYXNlKCk7Ci0jZWxzZQotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxFeGNlc3NSZWdpb24qPih0aGlzKS0+RXhjZXNzUmVnaW9uOjpiYXNlKCk7Ci0j
ZW5kaWYKLX0KLQotaW5saW5lIHNpemVfdCBSZWdpb246OnNpemUoKQotewotI2lmIEVOQUJMRShT
VVBFUl9SRUdJT04pCi0gICAgaWYgKFVOTElLRUxZKG1faXNFeGNlc3MpKQotICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8RXhjZXNzUmVnaW9uKj4odGhpcyktPkV4Y2Vzc1JlZ2lvbjo6c2l6ZSgp
OwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxOb3JtYWxSZWdpb24qPih0aGlzKS0+Tm9ybWFsUmVn
aW9uOjpzaXplKCk7Ci0jZWxzZQotICAgIHJldHVybiBzdGF0aWNfY2FzdDxFeGNlc3NSZWdpb24q
Pih0aGlzKS0+RXhjZXNzUmVnaW9uOjpzaXplKCk7Ci0jZW5kaWYKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgSlNDCi0KLSNlbmRpZiAvLyBKU0NfUmVnaW9uX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAJKHJldmlzaW9uIDE3OTAyNSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTcs
NyArMTcsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIFNsb3RWaXNpdG9yOjpTbG90VmlzaXRvcihH
Q1RocmVhZFNoYXJlZERhdGEmIHNoYXJlZCkKLSAgICA6IG1fc3RhY2soc2hhcmVkLm1fdm0tPmhl
YXAuYmxvY2tBbGxvY2F0b3IoKSkKKyAgICA6IG1fc3RhY2soKQogICAgICwgbV9ieXRlc1Zpc2l0
ZWQoMCkKICAgICAsIG1fYnl0ZXNDb3BpZWQoMCkKICAgICAsIG1fdmlzaXRDb3VudCgwKQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3VwZXJSZWdpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N1cGVyUmVnaW9uLmNwcAkocmV2aXNpb24g
MTc5MDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3VwZXJSZWdpb24uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDgzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiU3VwZXJSZWdpb24uaCIKLQotI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKLSNpbmNsdWRlICJSZWdpb24uaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWNvbnN0IHVpbnQ2
NF90IFN1cGVyUmVnaW9uOjpzX2ZpeGVkSGVhcE1lbW9yeVBvb2xTaXplID0gNCAqIDEwMjQgKiBz
dGF0aWNfY2FzdDx1aW50NjRfdD4oTUIpOwotCi1TdXBlclJlZ2lvbjo6U3VwZXJSZWdpb24oKQot
ICAgIDogTWV0YUFsbG9jYXRvcihSZWdpb246OnNfcmVnaW9uU2l6ZSwgUmVnaW9uOjpzX3JlZ2lv
blNpemUpCi0gICAgLCBtX3Jlc2VydmF0aW9uQmFzZSgwKQotewotI2lmIEVOQUJMRShTVVBFUl9S
RUdJT04pCi0gICAgLy8gT3Zlci1hbGxvY2F0ZSBzbyB0aGF0IHdlIGNhbiBtYWtlIHN1cmUgdGhh
dCB3ZSdyZSBhbGlnbmVkIHRvIHRoZSBzaXplIG9mIFJlZ2lvbnMuCi0gICAgbV9yZXNlcnZhdGlv
biA9IFBhZ2VSZXNlcnZhdGlvbjo6cmVzZXJ2ZShzX2ZpeGVkSGVhcE1lbW9yeVBvb2xTaXplICsg
UmVnaW9uOjpzX3JlZ2lvblNpemUsIE9TQWxsb2NhdG9yOjpKU0dDSGVhcFBhZ2VzKTsKLSAgICBt
X3Jlc2VydmF0aW9uQmFzZSA9IGdldEFsaWduZWRCYXNlKG1fcmVzZXJ2YXRpb24pOwotICAgIGFk
ZEZyZXNoRnJlZVNwYWNlKG1fcmVzZXJ2YXRpb25CYXNlLCBzX2ZpeGVkSGVhcE1lbW9yeVBvb2xT
aXplKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKG1fcmVzZXJ2YXRpb24pOwotICAgIFVOVVNF
RF9QQVJBTShtX3Jlc2VydmF0aW9uQmFzZSk7Ci0jZW5kaWYKLX0KLQotU3VwZXJSZWdpb246On5T
dXBlclJlZ2lvbigpCi17Ci0jaWYgRU5BQkxFKFNVUEVSX1JFR0lPTikKLSAgICBtX3Jlc2VydmF0
aW9uLmRlYWxsb2NhdGUoKTsKLSNlbmRpZgotfQotCi12b2lkKiBTdXBlclJlZ2lvbjo6Z2V0QWxp
Z25lZEJhc2UoUGFnZVJlc2VydmF0aW9uJiByZXNlcnZhdGlvbikKLXsKLSAgICBmb3IgKGNoYXIq
IGN1cnJlbnQgPSBzdGF0aWNfY2FzdDxjaGFyKj4ocmVzZXJ2YXRpb24uYmFzZSgpKTsgY3VycmVu
dCA8IHN0YXRpY19jYXN0PGNoYXIqPihyZXNlcnZhdGlvbi5iYXNlKCkpICsgUmVnaW9uOjpzX3Jl
Z2lvblNpemU7IGN1cnJlbnQgKz0gcGFnZVNpemUoKSkgewotICAgICAgICBpZiAoIShyZWludGVy
cHJldF9jYXN0PHNpemVfdD4oY3VycmVudCkgJiB+UmVnaW9uOjpzX3JlZ2lvbk1hc2spKQotICAg
ICAgICAgICAgcmV0dXJuIGN1cnJlbnQ7Ci0gICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgIHJldHVybiAwOwotfQotCi12b2lkKiBTdXBlclJlZ2lvbjo6YWxsb2NhdGVOZXdTcGFj
ZShzaXplX3QmKQotewotICAgIHJldHVybiAwOwotfQotCi12b2lkIFN1cGVyUmVnaW9uOjpub3Rp
ZnlOZWVkUGFnZSh2b2lkKiBwYWdlKQotewotICAgIG1fcmVzZXJ2YXRpb24uY29tbWl0KHBhZ2Us
IFJlZ2lvbjo6c19yZWdpb25TaXplKTsKLX0KLQotdm9pZCBTdXBlclJlZ2lvbjo6bm90aWZ5UGFn
ZUlzRnJlZSh2b2lkKiBwYWdlKQotewotICAgIG1fcmVzZXJ2YXRpb24uZGVjb21taXQocGFnZSwg
UmVnaW9uOjpzX3JlZ2lvblNpemUpOwotfQotCi19IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N1cGVyUmVnaW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3VwZXJSZWdpb24uaAkocmV2aXNpb24gMTc5MDI1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3VwZXJSZWdpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBTdXBlclJlZ2lvbl9oCi0j
ZGVmaW5lIFN1cGVyUmVnaW9uX2gKLQotI2luY2x1ZGUgPHd0Zi9NZXRhQWxsb2NhdG9yLmg+Ci0j
aW5jbHVkZSA8d3RmL1BhZ2VCbG9jay5oPgotI2luY2x1ZGUgPHd0Zi9QYWdlUmVzZXJ2YXRpb24u
aD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWNsYXNzIFZNOwotCi1jbGFzcyBTdXBlclJlZ2lvbiA6
IHB1YmxpYyBXVEY6Ok1ldGFBbGxvY2F0b3IgewotcHVibGljOgotICAgIFN1cGVyUmVnaW9uKCk7
Ci0gICAgdmlydHVhbCB+U3VwZXJSZWdpb24oKTsKLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwg
dm9pZCogYWxsb2NhdGVOZXdTcGFjZShzaXplX3QmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5TmVlZFBhZ2Uodm9pZCopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBub3Rp
ZnlQYWdlSXNGcmVlKHZvaWQqKSBvdmVycmlkZTsKLQotcHJpdmF0ZToKLSAgICBzdGF0aWMgY29u
c3QgdWludDY0X3Qgc19maXhlZEhlYXBNZW1vcnlQb29sU2l6ZTsKLQotICAgIHN0YXRpYyB2b2lk
KiBnZXRBbGlnbmVkQmFzZShQYWdlUmVzZXJ2YXRpb24mKTsKLQotICAgIFBhZ2VSZXNlcnZhdGlv
biBtX3Jlc2VydmF0aW9uOwotICAgIHZvaWQqIG1fcmVzZXJ2YXRpb25CYXNlOwotfTsKLQotfSAv
LyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBTdXBlclJlZ2lvbl9oCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHJldmlzaW9uIDE3OTAyNSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDE0ICszNCwxMyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotV2Vha0Jsb2NrKiBXZWFrQmxv
Y2s6OmNyZWF0ZShEZWFkQmxvY2sqIGJsb2NrKQorV2Vha0Jsb2NrKiBXZWFrQmxvY2s6OmNyZWF0
ZSgpCiB7Ci0gICAgUmVnaW9uKiByZWdpb24gPSBibG9jay0+cmVnaW9uKCk7Ci0gICAgcmV0dXJu
IG5ldyAoTm90TnVsbCwgYmxvY2spIFdlYWtCbG9jayhyZWdpb24pOworICAgIHJldHVybiBuZXcg
KE5vdE51bGwsIGZhc3RBbGlnbmVkTWFsbG9jKGJsb2NrU2l6ZSwgYmxvY2tTaXplKSkgV2Vha0Js
b2NrKCk7CiB9CiAKLVdlYWtCbG9jazo6V2Vha0Jsb2NrKFJlZ2lvbiogcmVnaW9uKQotICAgIDog
SGVhcEJsb2NrPFdlYWtCbG9jaz4ocmVnaW9uKQorV2Vha0Jsb2NrOjpXZWFrQmxvY2soKQorICAg
IDogSGVhcEJsb2NrPFdlYWtCbG9jaz4oKQogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
d2Vha0ltcGxDb3VudCgpOyArK2kpIHsKICAgICAgICAgV2Vha0ltcGwqIHdlYWtJbXBsID0gJndl
YWtJbXBscygpW2ldOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0Jsb2Nr
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0Jsb2NrLmgJ
KHJldmlzaW9uIDE3OTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9j
ay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw2IEBACiAKIG5hbWVzcGFjZSBKU0Mgewog
Ci1jbGFzcyBEZWFkQmxvY2s7CiBjbGFzcyBIZWFwUm9vdFZpc2l0b3I7CiBjbGFzcyBKU1ZhbHVl
OwogY2xhc3MgV2Vha0hhbmRsZU93bmVyOwpAQCAtNTYsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIEZyZWVDZWxsKiBmcmVlTGlzdDsKICAgICB9OwogCi0gICAgc3RhdGljIFdlYWtCbG9jayog
Y3JlYXRlKERlYWRCbG9jayopOworICAgIHN0YXRpYyBXZWFrQmxvY2sqIGNyZWF0ZSgpOwogCiAg
ICAgc3RhdGljIFdlYWtJbXBsKiBhc1dlYWtJbXBsKEZyZWVDZWxsKik7CiAKQEAgLTczLDcgKzcy
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdGF0aWMgRnJlZUNlbGwqIGFzRnJlZUNlbGwo
V2Vha0ltcGwqKTsKIAotICAgIFdlYWtCbG9jayhSZWdpb24qKTsKKyAgICBXZWFrQmxvY2soKTsK
ICAgICBXZWFrSW1wbCogZmlyc3RXZWFrSW1wbCgpOwogICAgIHZvaWQgZmluYWxpemUoV2Vha0lt
cGwqKTsKICAgICBXZWFrSW1wbCogd2Vha0ltcGxzKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9XZWFrU2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9XZWFrU2V0LmNwcAkocmV2aXNpb24gMTc5MDI1KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvV2Vha1NldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAg
V2Vha1NldDo6fldlYWtTZXQoKQogICAgIFdlYWtCbG9jayogbmV4dCA9IDA7CiAgICAgZm9yIChX
ZWFrQmxvY2sqIGJsb2NrID0gbV9ibG9ja3MuaGVhZCgpOyBibG9jazsgYmxvY2sgPSBuZXh0KSB7
CiAgICAgICAgIG5leHQgPSBibG9jay0+bmV4dCgpOwotICAgICAgICBoZWFwKCktPmJsb2NrQWxs
b2NhdG9yKCkuZGVhbGxvY2F0ZShXZWFrQmxvY2s6OmRlc3Ryb3koYmxvY2spKTsKKyAgICAgICAg
V2Vha0Jsb2NrOjpkZXN0cm95KGJsb2NrKTsKICAgICB9CiAgICAgbV9ibG9ja3MuY2xlYXIoKTsK
IH0KQEAgLTc0LDcgKzc0LDcgQEAgV2Vha0Jsb2NrOjpGcmVlQ2VsbCogV2Vha1NldDo6dHJ5Rmlu
ZEFsbAogCiBXZWFrQmxvY2s6OkZyZWVDZWxsKiBXZWFrU2V0OjphZGRBbGxvY2F0b3IoKQogewot
ICAgIFdlYWtCbG9jayogYmxvY2sgPSBXZWFrQmxvY2s6OmNyZWF0ZShoZWFwKCktPmJsb2NrQWxs
b2NhdG9yKCkuYWxsb2NhdGU8V2Vha0Jsb2NrPigpKTsKKyAgICBXZWFrQmxvY2sqIGJsb2NrID0g
V2Vha0Jsb2NrOjpjcmVhdGUoKTsKICAgICBoZWFwKCktPmRpZEFsbG9jYXRlKFdlYWtCbG9jazo6
YmxvY2tTaXplKTsKICAgICBtX2Jsb2Nrcy5hcHBlbmQoYmxvY2spOwogICAgIFdlYWtCbG9jazo6
U3dlZXBSZXN1bHQgc3dlZXBSZXN1bHQgPSBibG9jay0+dGFrZVN3ZWVwUmVzdWx0KCk7CkBAIC04
NSw3ICs4NSw3IEBAIFdlYWtCbG9jazo6RnJlZUNlbGwqIFdlYWtTZXQ6OmFkZEFsbG9jYXQKIHZv
aWQgV2Vha1NldDo6cmVtb3ZlQWxsb2NhdG9yKFdlYWtCbG9jayogYmxvY2spCiB7CiAgICAgbV9i
bG9ja3MucmVtb3ZlKGJsb2NrKTsKLSAgICBoZWFwKCktPmJsb2NrQWxsb2NhdG9yKCkuZGVhbGxv
Y2F0ZShXZWFrQmxvY2s6OmRlc3Ryb3koYmxvY2spKTsKKyAgICBXZWFrQmxvY2s6OmRlc3Ryb3ko
YmxvY2spOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzkxNDEp
CisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDE1LTAxLTI2ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIEZhc3RNYWxsb2MgKGJtYWxsb2MpIGluc3RlYWQgb2YgQmxvY2tBbGxvY2F0b3IgZm9y
IEdDIHBhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDA5MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBOZXcgaW50ZXJmYWNlIGZvciBhbGlnbmVkIGFsbG9jYXRpb246IGZhc3RBbGlnbmVkTWFsbG9j
IC8gZmFzdEFsaWduZWRGcmVlLgorICAgICAgICBXZSByZXF1aXJlIGEgc3BlY2lhbCBmdW5jdGlv
biBjYWxsIG9uIGZyZWUgYmVjYXVzZSBXaW5kb3dzLgorCisgICAgICAgICogd3RmL0Zhc3RNYWxs
b2MuY3BwOgorICAgICAgICAoV1RGOjpmYXN0QWxpZ25lZE1hbGxvYyk6CisgICAgICAgIChXVEY6
OmZhc3RBbGlnbmVkRnJlZSk6IERvIGl0LgorCisgICAgICAgIChXVEY6OmRvX21lbWFsaWduKTog
VW4taWZkZWYgdGhpcywgc2luY2Ugd2UgdXNlIGl0IG5vdy4KKworICAgICAgICAqIHd0Zi9GYXN0
TWFsbG9jLmg6IE1ha2Ugb3VyIG5ldyBmdW5jdGlvbiBuYW1lcyB2aXNpYmxlIGxpa2UgdGhlIHJl
c3QKKyAgICAgICAgb2YgZmFzdE1hbGxvYy4KKwogMjAxNS0wMS0yNCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFByb3ZpZGUgaW1wbGVtZW50YXRpb24gZm9yIFdU
Rjo6RGVmYXVsdEhhc2g8Ym9vbD4KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCShyZXZpc2lvbiAx
NzkwMjUpCisrKyBTb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjQ0LDYgKzI0NCwzNCBAQCBzaXplX3QgZmFzdE1hbGxvY0dvb2RTaXplKHNpemVfdCBieXRl
cykKICNlbmRpZgogfQogCisjaWYgT1MoV0lORE9XUykKKwordm9pZCogZmFzdEFsaWduZWRNYWxs
b2Moc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpIAoreworICAgIHJldHVybiBfYWxpZ25l
ZF9tYWxsb2MoYWxpZ25tZW50LCBzaXplKTsKK30KKwordm9pZCBmYXN0QWxpZ25lZEZyZWUodm9p
ZCogcCkgCit7CisgICAgX2FsaWduZWRfZnJlZShwKTsKK30KKworI2Vsc2UKKwordm9pZCogZmFz
dEFsaWduZWRNYWxsb2Moc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpIAoreworICAgIHZv
aWQqIHAgPSBudWxscHRyOworICAgIHBvc2l4X21lbWFsaWduKCZwLCBhbGlnbm1lbnQsIHNpemUp
OworICAgIHJldHVybiBwOworfQorCit2b2lkIGZhc3RBbGlnbmVkRnJlZSh2b2lkKiBwKSAKK3sK
KyAgICBmcmVlKHApOworfQorCisjZW5kaWYgLy8gT1MoV0lORE9XUykKKwogVHJ5TWFsbG9jUmV0
dXJuVmFsdWUgdHJ5RmFzdE1hbGxvYyhzaXplX3QgbikgCiB7CiAgICAgQVNTRVJUKCFpc0ZvcmJp
ZGRlbigpKTsKQEAgLTQ1NCw2ICs0ODIsMTYgQEAgc2l6ZV90IGZhc3RNYWxsb2NHb29kU2l6ZShz
aXplX3Qgc2l6ZSkKICAgICByZXR1cm4gc2l6ZTsKIH0KICAgICAKK3ZvaWQqIGZhc3RBbGlnbmVk
TWFsbG9jKHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKSAKK3sKKyAgICByZXR1cm4gYm1h
bGxvYzo6YXBpOjptZW1hbGlnbihhbGlnbm1lbnQsIHNpemUpOworfQorCit2b2lkIGZhc3RBbGln
bmVkRnJlZSh2b2lkKiBwKSAKK3sKKyAgICBibWFsbG9jOjphcGk6OmZyZWUocCk7Cit9CisKIFRy
eU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RNYWxsb2Moc2l6ZV90IHNpemUpCiB7CiAgICAgcmV0
dXJuIGZhc3RNYWxsb2Moc2l6ZSk7CkBAIC00MjA0LDcgKzQyNDIsNiBAQCBzdGF0aWMgQUxXQVlT
X0lOTElORSB2b2lkIGRvX2ZyZWUodm9pZCogCiAgIH0KIH0KIAotI2lmbmRlZiBXVEZfQ0hBTkdF
UwogLy8gRm9yIHVzZSBieSBleHBvcnRlZCByb3V0aW5lcyBiZWxvdyB0aGF0IHdhbnQgc3BlY2lm
aWMgYWxpZ25tZW50cwogLy8KIC8vIE5vdGU6IHRoaXMgY29kZSBjYW4gYmUgc2xvdywgYW5kIGNh
biBzaWduaWZpY2FudGx5IGZyYWdtZW50IG1lbW9yeS4KQEAgLTQyNzUsNyArNDMxMiw2IEBAIHN0
YXRpYyB2b2lkKiBkb19tZW1hbGlnbihzaXplX3QgYWxpZ24sIHMKICAgfQogICByZXR1cm4gU3Bh
blRvTWFsbG9jUmVzdWx0KHNwYW4pOwogfQotI2VuZGlmCiAKIC8vIEhlbHBlcnMgZm9yIHVzZSBi
eSBleHBvcnRlZCByb3V0aW5lcyBiZWxvdzoKIApAQCAtNDMzMiw2ICs0MzY4LDE2IEBAIGV4dGVy
biAiQyIgCiB0ZW1wbGF0ZSA8Ym9vbCBjcmFzaE9uRmFpbHVyZT4KIEFMV0FZU19JTkxJTkUgdm9p
ZCogbWFsbG9jKHNpemVfdCk7CiAKK3ZvaWQqIGZhc3RBbGlnbmVkTWFsbG9jKHNpemVfdCBhbGln
bm1lbnQsIHNpemVfdCBzaXplKSAKK3sKKyAgICByZXR1cm4gZG9fbWVtYWxpZ24oYWxpZ25tZW50
LCBzaXplKTsKK30KKwordm9pZCBmYXN0QWxpZ25lZEZyZWUodm9pZCogcCkgCit7CisgICAgZG9f
ZnJlZShwKTsKK30KKwogdm9pZCogZmFzdE1hbGxvYyhzaXplX3Qgc2l6ZSkKIHsKICAgICB2b2lk
KiByZXN1bHQgPSBtYWxsb2M8dHJ1ZT4oc2l6ZSk7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9GYXN0
TWFsbG9jLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oCShyZXZp
c2lvbiAxNzkwMjUpCisrKyBTb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM3LDYgKzM3LDEwIEBAIG5hbWVzcGFjZSBXVEYgewogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBzaXplX3QgZmFzdE1hbGxvY1NpemUoY29uc3Qgdm9pZCopOwogICAgIFdURl9FWFBPUlRf
UFJJVkFURSBzaXplX3QgZmFzdE1hbGxvY0dvb2RTaXplKHNpemVfdCk7CiAKKyAgICAvLyBBbGxv
Y2F0aW9ucyBmcm9tIGZhc3RBbGlnbmVkTWFsbG9jKCkgbXVzdCBiZSBmcmVlZCB1c2luZyBmYXN0
QWxpZ25lZEZyZWUoKS4KKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCogZmFzdEFsaWduZWRN
YWxsb2Moc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBmYXN0QWxpZ25lZEZyZWUodm9pZCopOworCiAgICAgc3RydWN0IFRyeU1hbGxvY1JldHVy
blZhbHVlIHsKICAgICAgICAgVHJ5TWFsbG9jUmV0dXJuVmFsdWUodm9pZCogZGF0YSkKICAgICAg
ICAgICAgIDogbV9kYXRhKGRhdGEpCkBAIC0yMzEsNiArMjM1LDggQEAgdXNpbmcgV1RGOjp0cnlG
YXN0Q2FsbG9jOwogdXNpbmcgV1RGOjp0cnlGYXN0TWFsbG9jOwogdXNpbmcgV1RGOjp0cnlGYXN0
UmVhbGxvYzsKIHVzaW5nIFdURjo6dHJ5RmFzdFplcm9lZE1hbGxvYzsKK3VzaW5nIFdURjo6ZmFz
dEFsaWduZWRNYWxsb2M7Cit1c2luZyBXVEY6OmZhc3RBbGlnbmVkRnJlZTsKIAogI2lmbmRlZiBO
REVCVUcgICAgCiB1c2luZyBXVEY6OmZhc3RNYWxsb2NGb3JiaWQ7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAxNzkxNDEpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNS0wMS0yNiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5A
YXBwbGUuY29tPgorCisgICAgICAgIFVzZSBGYXN0TWFsbG9jIChibWFsbG9jKSBpbnN0ZWFkIG9m
IEJsb2NrQWxsb2NhdG9yIGZvciBHQyBwYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwOTAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRs
ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aW5z
dGFsbCk6IEJlIHN1cmUgdG8gcmVsZWFzZSBvdGhlcgorICAgICAgICBtZW1vcnkgYWZ0ZXIgR0Mg
YW5kIG5vdCBiZWZvcmUsIHNpbmNlIEdDIG1pZ2h0IGNvbnRyaWJ1dGUgdG8gZnJlZQorICAgICAg
ICBtYWxsb2MgcGFnZXMgbm93LgorCiAyMDE1LTAxLTI2ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5n
QGFwcGxlLmNvbT4KIAogICAgICAgICBEb24ndCBsZXQgdGhlIENTU1ZhbHVlUG9vbCdzIGZvbnQg
ZmFtaWx5IGNhY2hlIGdyb3cgdW5ib3VuZGVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0J
KHJldmlzaW9uIDE3OTAyNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lbW9y
eVByZXNzdXJlSGFuZGxlckNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsMTQgKzExNSwx
MSBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCgpCiAKICAgICAvLyBBbGxv
dyBzaW11bGF0aW9uIG9mIG1lbW9yeSBwcmVzc3VyZSB3aXRoICJub3RpZnl1dGlsIC1wIG9yZy5X
ZWJLaXQubG93TWVtb3J5IgogICAgIG5vdGlmeV9yZWdpc3Rlcl9kaXNwYXRjaCgib3JnLldlYktp
dC5sb3dNZW1vcnkiLCAmX25vdGlmeVRva2VuLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBe
KGludCkgewotICAgICAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIoKS5yZXNwb25kVG9NZW1vcnlQ
cmVzc3VyZSh0cnVlKTsKLQogICAgICAgICAvLyBXZSBvbmx5IGRvIGEgc3luY2hyb25vdXMgR0Mg
d2hlbiAqc2ltdWxhdGluZyogbWVtb3J5IHByZXNzdXJlLgogICAgICAgICAvLyBUaGlzIGdpdmVz
IHVzIGEgbW9yZSBjb25zaXN0ZW50IHBpY3R1cmUgb2YgbGl2ZSBvYmplY3RzIGF0IHRoZSBlbmQg
b2YgdGVzdGluZy4KICAgICAgICAgZ2NDb250cm9sbGVyKCkuZ2FyYmFnZUNvbGxlY3ROb3coKTsK
IAotICAgICAgICAvLyBSZWxlYXNlIGFueSBmcmVlZCB1cCBibG9ja3MgZnJvbSB0aGUgSlMgaGVh
cCBiYWNrIHRvIHRoZSBzeXN0ZW0uCi0gICAgICAgIEpTRE9NV2luZG93QmFzZTo6Y29tbW9uVk0o
KS5oZWFwLmJsb2NrQWxsb2NhdG9yKCkucmVsZWFzZUZyZWVSZWdpb25zKCk7CisgICAgICAgIG1l
bW9yeVByZXNzdXJlSGFuZGxlcigpLnJlc3BvbmRUb01lbW9yeVByZXNzdXJlKHRydWUpOwogCiAg
ICAgICAgIG1hbGxvY196b25lX3ByZXNzdXJlX3JlbGllZihudWxscHRyLCAwKTsKICAgICB9KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>245374</attachid>
            <date>2015-01-26 14:01:41 -0800</date>
            <delta_ts>2015-01-26 14:01:41 -0800</delta_ts>
            <desc>run-jsc-benchmarks results</desc>
            <filename>results.txt</filename>
            <type>text/plain</type>
            <size>53397</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">fi9PcGVuU291cmNlPiBydW4tanNjLWJlbmNobWFya3MgQmFzZWxpbmU6L1ZvbHVtZXMvQmlnL2dn
YXJlbi9PcGVuU291cmNlL1dlYktpdEJ1aWxkQmFzZWxpbmUvUmVsZWFzZS9qc2MgUGF0Y2g6L1Zv
bHVtZXMvQmlnL2dnYXJlbi9PcGVuU291cmNlL1dlYktpdEJ1aWxkL1JlbGVhc2UvanNjIApXYXJu
aW5nOiBjb3VsZCBub3QgaWRlbnRpZnkgY2hlY2tvdXQgbG9jYXRpb24gZm9yIEJhc2VsaW5lCldh
cm5pbmc6IHJlZnVzaW5nIHRvIHJ1biBKU0JlbmNoIGJlY2F1c2Ugbm90IGFsbCBWTXMgYXJlIER1
bXBSZW5kZXJUcmVlIG9yIFdlYktpdFRlc3RSdW5uZXIuCldhcm5pbmc6IHJlZnVzaW5nIHRvIHJ1
biBEU1BKUyBiZWNhdXNlIG5vdCBhbGwgVk1zIGFyZSBEdW1wUmVuZGVyVHJlZSBvciBXZWJLaXRU
ZXN0UnVubmVyLgozMTI0LzMxMjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKR2VuZXJhdGlu
ZyBiZW5jaG1hcmsgcmVwb3J0IGF0IC9Wb2x1bWVzL0JpZy9nZ2FyZW4vT3BlblNvdXJjZS9CYXNl
bGluZV9QYXRjaF9TdW5TcGlkZXJMb25nU3BpZGVyVjhTcGlkZXJPY3RhbmVLcmFrZW5KU1JlZ3Jl
c3NBc21CZW5jaENvbXByZXNzaW9uQmVuY2hfR2VvZmZyZXktR2FyZW5zLU1hYy1Qcm9fMjAxNTAx
MjZfMTMzNl9yZXBvcnQudHh0CkFuZCByYXcgZGF0YSBhdCAvVm9sdW1lcy9CaWcvZ2dhcmVuL09w
ZW5Tb3VyY2UvQmFzZWxpbmVfUGF0Y2hfU3VuU3BpZGVyTG9uZ1NwaWRlclY4U3BpZGVyT2N0YW5l
S3Jha2VuSlNSZWdyZXNzQXNtQmVuY2hDb21wcmVzc2lvbkJlbmNoX0dlb2ZmcmV5LUdhcmVucy1N
YWMtUHJvXzIwMTUwMTI2XzEzMzYuanNvbgoKQmVuY2htYXJrIHJlcG9ydCBmb3IgU3VuU3BpZGVy
LCBMb25nU3BpZGVyLCBWOFNwaWRlciwgT2N0YW5lLCBLcmFrZW4sIEpTUmVncmVzcywgQXNtQmVu
Y2gsIGFuZCBDb21wcmVzc2lvbkJlbmNoIG9uIEdlb2ZmcmV5LUdhcmVucy1NYWMtUHJvIChNYWNQ
cm82LDEpLgoKVk1zIHRlc3RlZDoKIkJhc2VsaW5lIiBhdCAvVm9sdW1lcy9CaWcvZ2dhcmVuL09w
ZW5Tb3VyY2UvV2ViS2l0QnVpbGRCYXNlbGluZS9SZWxlYXNlL2pzYwoiUGF0Y2giIGF0IC9Wb2x1
bWVzL0JpZy9nZ2FyZW4vT3BlblNvdXJjZS9XZWJLaXRCdWlsZC9SZWxlYXNlL2pzYyAocjE3OTAy
NSkKCkNvbGxlY3RlZCA0IHNhbXBsZXMgcGVyIGJlbmNobWFyay9WTSwgd2l0aCA0IFZNIGludm9j
YXRpb25zIHBlciBiZW5jaG1hcmsuIEVtaXR0ZWQgYSBjYWxsIHRvIGdjKCkgYmV0d2VlbiBzYW1w
bGUgbWVhc3VyZW1lbnRzLgpVc2VkIDEgYmVuY2htYXJrIGl0ZXJhdGlvbiBwZXIgVk0gaW52b2Nh
dGlvbiBmb3Igd2FybS11cC4gVXNlZCB0aGUganNjLXNwZWNpZmljIHByZWNpc2VUaW1lKCkgZnVu
Y3Rpb24gdG8gZ2V0IG1pY3Jvc2Vjb25kLWxldmVsCnRpbWluZy4gUmVwb3J0aW5nIGJlbmNobWFy
ayBleGVjdXRpb24gdGltZXMgd2l0aCA5NSUgY29uZmlkZW5jZSBpbnRlcnZhbHMgaW4gbWlsbGlz
ZWNvbmRzLgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQmFzZWxpbmUgICAgICAgICAgICAgICAgICAgUGF0Y2ggICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKU3VuU3BpZGVyOgogICAzZC1jdWJlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjMxMDUrLTAuMTg5MCAgICAgPyAgICAg
IDUuMzI5MistMC40NTg1ICAgICAgICA/CiAgIDNkLW1vcnBoICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDYuNTA1NistMC4yODAwICAgICBeICAgICAgNS44OTM3Ky0w
LjExOTIgICAgICAgIF4gZGVmaW5pdGVseSAxLjEwMzh4IGZhc3RlcgogICAzZC1yYXl0cmFjZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjgxNDMrLTAuMjQ2MCAgICAg
PyAgICAgIDYuODcwOCstMC4zNzcyICAgICAgICA/CiAgIGFjY2Vzcy1iaW5hcnktdHJlZXMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMjI0MystMC4xMDMzICAgICA/ICAgICAgMi4y
MjkzKy0wLjAzMjYgICAgICAgID8KICAgYWNjZXNzLWZhbm5rdWNoICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNi4zNTEyKy0wLjIzMDEgICAgICAgICAgICA2LjI0MzIrLTAuMDk4
OSAgICAgICAgICBtaWdodCBiZSAxLjAxNzN4IGZhc3RlcgogICBhY2Nlc3MtbmJvZHkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjE0MjArLTAuMTc5OCAgICAgICAgICAg
IDMuMTEyNCstMC4wOTAyICAgICAgICAKICAgYWNjZXNzLW5zaWV2ZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNC4xNDc0Ky0wLjA4OTUgICAgIF4gICAgICAzLjYyNDgrLTAu
MDk2OSAgICAgICAgXiBkZWZpbml0ZWx5IDEuMTQ0MnggZmFzdGVyCiAgIGJpdG9wcy0zYml0LWJp
dHMtaW4tYnl0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNzgxMistMC4wMjczICAgICA/
ICAgICAgMS44MTA1Ky0wLjAyMTAgICAgICAgID8gbWlnaHQgYmUgMS4wMTY1eCBzbG93ZXIKICAg
Yml0b3BzLWJpdHMtaW4tYnl0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy45MTg5
Ky0wLjI5NjkgICAgICAgICAgICAzLjg4NzArLTAuMTI4MCAgICAgICAgCiAgIGJpdG9wcy1iaXR3
aXNlLWFuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMjAzNistMC4wNzQxICAg
ICA/ICAgICAgMi4yODczKy0wLjA1MjIgICAgICAgID8gbWlnaHQgYmUgMS4wMzgweCBzbG93ZXIK
ICAgYml0b3BzLW5zaWV2ZS1iaXRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4w
MzIzKy0wLjEzMTkgICAgIF4gICAgICAzLjgxMTUrLTAuMDYwNCAgICAgICAgXiBkZWZpbml0ZWx5
IDEuMDU4MHggZmFzdGVyCiAgIGNvbnRyb2xmbG93LXJlY3Vyc2l2ZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIuNDU2OSstMC4xODg4ICAgICA/ICAgICAgMi41NDUzKy0wLjIwNjcgICAg
ICAgID8gbWlnaHQgYmUgMS4wMzYweCBzbG93ZXIKICAgY3J5cHRvLWFlcyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4zOTAwKy0wLjA5NzEgICAgID8gICAgICA0LjU0
MTArLTAuMTUwMSAgICAgICAgPyBtaWdodCBiZSAxLjAzNDR4IHNsb3dlcgogICBjcnlwdG8tbWQ1
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjYwNTYrLTAuMDg4MSAg
ICAgPyAgICAgIDIuNjYxOCstMC4xMTg1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIxNnggc2xvd2Vy
CiAgIGNyeXB0by1zaGExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
ODM5NystMC4wODIxICAgICAgICAgICAgMi44MjEzKy0wLjA5OTkgICAgICAgIAogICBkYXRlLWZv
cm1hdC10b2Z0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjAyOTErLTAuMzIw
OSAgICAgPyAgICAgMTAuNDY4NystMC42MTU3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQzOHggc2xv
d2VyCiAgIGRhdGUtZm9ybWF0LXhwYXJiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDUuNDAxNCstMC4wNzkzICAgICA/ICAgICAgNS41MTMwKy0wLjYwNjEgICAgICAgID8gbWlnaHQg
YmUgMS4wMjA3eCBzbG93ZXIKICAgbWF0aC1jb3JkaWMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMy40NTg0Ky0wLjE4MzMgICAgID8gICAgICAzLjQ4MTArLTAuMjEyMCAg
ICAgICAgPwogICBtYXRoLXBhcnRpYWwtc3VtcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA1LjUxODcrLTAuMjE5MyAgICAgICAgICAgIDUuMzc0MCstMC4xMjY5ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDI2OXggZmFzdGVyCiAgIG1hdGgtc3BlY3RyYWwtbm9ybSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIuMTM3MCstMC4wMzU3ICAgICA/ICAgICAgMi4xODk4Ky0wLjEx
MzMgICAgICAgID8gbWlnaHQgYmUgMS4wMjQ3eCBzbG93ZXIKICAgcmVnZXhwLWRuYSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy41NDgzKy0wLjM1MTQgICAgICAgICAg
ICA3LjUxNDgrLTAuMzM3MSAgICAgICAgCiAgIHN0cmluZy1iYXNlNjQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDQuMzY3OCstMC4xMDQwICAgICA/ICAgICAgNC41Mjg4Ky0w
LjIzMDUgICAgICAgID8gbWlnaHQgYmUgMS4wMzY5eCBzbG93ZXIKICAgc3RyaW5nLWZhc3RhICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi42ODAyKy0wLjEwMDEgICAgID8g
ICAgICA2LjkwNTMrLTAuNTA5OSAgICAgICAgPyBtaWdodCBiZSAxLjAzMzd4IHNsb3dlcgogICBz
dHJpbmctdGFnY2xvdWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjI1MTIr
LTAuMjM5NSAgICAgPyAgICAgMTAuMjcwMSstMC4yNTQzICAgICAgICA/CiAgIHN0cmluZy11bnBh
Y2stY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjIuMDQ0MystMS4yMTE1ICAg
ICAgICAgICAyMS40NTg2Ky0wLjcwNzYgICAgICAgICAgbWlnaHQgYmUgMS4wMjczeCBmYXN0ZXIK
ICAgc3RyaW5nLXZhbGlkYXRlLWlucHV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC44
MjUwKy0wLjMwMTYgICAgICAgICAgICA0Ljc2MDIrLTAuMTE5NiAgICAgICAgICBtaWdodCBiZSAx
LjAxMzZ4IGZhc3RlcgoKICAgPGFyaXRobWV0aWM+ICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNS40MjI1Ky0wLjA2MzcgICAgICAgICAgICA1LjM4OTgrLTAuMDkxNCAgICAg
ICAgICBtaWdodCBiZSAxLjAwNjF4IGZhc3RlcgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA0LjUyNzkrLTAuMDIxMSAgICAgICAgICAgIDQuNTE0
MCstMC4wNzcwICAgICAgICAgIG1pZ2h0IGJlIDEuMDAzMXggZmFzdGVyCiAgIDxoYXJtb25pYz4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuOTIwNCstMC4wMjg4ICAg
ICA/ICAgICAgMy45MjQ5Ky0wLjA2MzQgICAgICAgID8gbWlnaHQgYmUgMS4wMDEyeCBzbG93ZXIK
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEJhc2VsaW5lICAgICAgICAgICAgICAgICAgIFBhdGNoICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCkxvbmdTcGlkZXI6CiAgIDNkLWN1YmUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA4OTQuMzExOCstMTAuMjI2OCAgICAgICAgIDg4My4wNjA1
Ky00LjYxNDQgICAgICAgICAgbWlnaHQgYmUgMS4wMTI3eCBmYXN0ZXIKICAgM2QtbW9ycGggICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYyOC4yMDMzKy0xMi4xMDM4ICAg
ID8gICAxNjU3LjU2MDkrLTEwMy42OTk3ICAgICAgPyBtaWdodCBiZSAxLjAxODB4IHNsb3dlcgog
ICAzZC1yYXl0cmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzgwLjQ1
MjQrLTEuNjQyNyAgICAgPyAgICA3OTguNzc0MystMjcuMTQyMSAgICAgICA/IG1pZ2h0IGJlIDEu
MDIzNXggc2xvd2VyCiAgIGFjY2Vzcy1iaW5hcnktdHJlZXMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEwMTEuMjc5MistMTAuMzI1OSAgICAgICAgMTAwNy41OTE3Ky0xMS42NjUwICAgICAg
IAogICBhY2Nlc3MtZmFubmt1Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzQ5
Ljg1NTgrLTExLjY4MzMgICAgICAgICAzNDguNDUxNSstMTEuNjI3MyAgICAgICAKICAgYWNjZXNz
LW5ib2R5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY1Ny4zNzI4Ky0xNC42
MjMxICAgICAgICAgNjUzLjE2NzArLTkuNzQ3MyAgICAgICAgCiAgIGFjY2Vzcy1uc2lldmUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5MDUuNjI4NystMTguOTc4MiAgICAgICAg
IDg1MS4zOTU3Ky01Mi4wOTk0ICAgICAgICAgbWlnaHQgYmUgMS4wNjM3eCBmYXN0ZXIKICAgYml0
b3BzLTNiaXQtYml0cy1pbi1ieXRlICAgICAgICAgICAgICAgICAgICAgICAgICA0OS42MjYyKy0x
LjM5ODggICAgID8gICAgIDUwLjA4MTQrLTAuNzc0MiAgICAgICAgPwogICBiaXRvcHMtYml0cy1p
bi1ieXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTA3Ljk3MzUrLTIuMTIzMyAgICAg
PyAgICAxMDkuMDU3NCstNS43MjkwICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwMHggc2xvd2VyCiAg
IGJpdG9wcy1uc2lldmUtYml0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3NjYuODgx
MystNy44MzYxICAgICAgICAgIDc2MC4zNDQyKy0yNS4wODc0ICAgICAgIAogICBjb250cm9sZmxv
dy1yZWN1cnNpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTI5LjYzNDMrLTIuMjkzOCAg
ICAgICAgICA1MjYuNDAwMCstNC44MTg3ICAgICAgICAKICAgY3J5cHRvLWFlcyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcxOC42MTU1Ky0xMy42MjAzICAgICAgICAgNzE3
LjI2MzErLTMuMDc5MCAgICAgICAgCiAgIGNyeXB0by1tZDUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA2NjcuNjMwNCstNjIuOTUwOSAgICBeICAgIDU5MC4yMjIyKy03Ljgw
MzMgICAgICAgIF4gZGVmaW5pdGVseSAxLjEzMTJ4IGZhc3RlcgogICBjcnlwdG8tc2hhMSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzEzLjIyODIrLTIyLjE0ODggICAgXiAg
ICA2NDguMTA0NistMjMuNDMyMCAgICAgICBeIGRlZmluaXRlbHkgMS4xMDA1eCBmYXN0ZXIKICAg
ZGF0ZS1mb3JtYXQtdG9mdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDg0OC43OTEw
Ky02NS41MDE3ICAgICAgICAgODMzLjY4NDgrLTQyLjIyNjEgICAgICAgICBtaWdodCBiZSAxLjAx
ODF4IGZhc3RlcgogICBkYXRlLWZvcm1hdC14cGFyYiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNzg5LjQzNzMrLTMyLjEzMzMgICAgICAgICA3NjQuOTk2MSstNDAuNjMzNCAgICAgICAg
IG1pZ2h0IGJlIDEuMDMxOXggZmFzdGVyCiAgIG1hdGgtY29yZGljICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA2MjQuMTM3OCstMi4zNDkyICAgICA/ICAgIDY0NC4yOTQ1Ky00
Mi4xMjg1ICAgICAgID8gbWlnaHQgYmUgMS4wMzIzeCBzbG93ZXIKICAgbWF0aC1wYXJ0aWFsLXN1
bXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU4Ni4xMzM1Ky0xOC4zMDQ2ICAgICAg
ICAgNTgyLjM4MjQrLTMuMjczMyAgICAgICAgCiAgIG1hdGgtc3BlY3RyYWwtbm9ybSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA2MDIuNzAyMistMS41OTA4ICAgICAgICAgIDYwMC40Nzc1
Ky0yLjQxNDcgICAgICAgIAogICBzdHJpbmctYmFzZTY0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMzU1LjcyNzgrLTAuNDcyNSAgICAgISAgICAzNTguNDgzMistMi4yMTUxICAg
ICAgICAhIGRlZmluaXRlbHkgMS4wMDc3eCBzbG93ZXIKICAgc3RyaW5nLWZhc3RhICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NS4zMDE5Ky0xOS4wMzEwICAgICAgICAgNDM3
Ljg5MjgrLTUuODQxNiAgICAgICAgICBtaWdodCBiZSAxLjAxNjl4IGZhc3RlcgogICBzdHJpbmct
dGFnY2xvdWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjI5Ljk4MjErLTUuMzg1
OCAgICAgICAgICAyMjcuNDg5MCstNC4zMzI3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDExMHggZmFz
dGVyCgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NjQ4LjMxMzkrLTMuMDk4NCAgICAgXiAgICA2MzguNjg5OCstNi40MDY0ICAgICAgICBeIGRlZmlu
aXRlbHkgMS4wMTUxeCBmYXN0ZXIKICAgPGdlb21ldHJpYz4gKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDUzMi41ODA4Ky0yLjQ1OTggICAgIF4gICAgNTI1LjA4NTQrLTIuMjI1
MCAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDE0M3ggZmFzdGVyCiAgIDxoYXJtb25pYz4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNDguMDE5NCstMi42ODcwICAgICAgICAg
IDM0Ni42MzY4Ky0wLjcxMjMgICAgICAgICAgbWlnaHQgYmUgMS4wMDQweCBmYXN0ZXIKCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhc2Vs
aW5lICAgICAgICAgICAgICAgICAgIFBhdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgClY4U3BpZGVyOgogICBjcnlwdG8gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDU5LjcwNTMrLTAuNjcyOCAgICAgICAgICAgNTkuNTM4MCstMC41MDk2
ICAgICAgICAKICAgZGVsdGFibHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA5NS43MTQ1Ky0xLjE2NTEgICAgID8gICAgIDk2LjE1NzMrLTAuOTUxNSAgICAgICAgPwog
ICBlYXJsZXktYm95ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ5LjUz
MTcrLTEuMTIyNyAgICAgICAgICAgNDkuMjgyOSstMS42NzY2ICAgICAgICAKICAgcmF5dHJhY2Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MC4zNzI1Ky0wLjgyODgg
ICAgID8gICAgIDQwLjkyMDkrLTAuOTc5NyAgICAgICAgPyBtaWdodCBiZSAxLjAxMzZ4IHNsb3dl
cgogICByZWdleHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcy
LjM2MzIrLTIuMzA5NiAgICAgPyAgICAgNzIuODIxMCstMS4xOTg5ICAgICAgICA/CiAgIHJpY2hh
cmRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTcuNjQ2MSstMi4y
MDQwICAgICAgICAgICA5Ny4yMjQzKy0xLjEzODAgICAgICAgIAogICBzcGxheSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM2LjkwNDErLTEuMjM4OSAgICAgPyAg
ICAgMzcuOTczNSstMi41MTgyICAgICAgICA/IG1pZ2h0IGJlIDEuMDI5MHggc2xvd2VyCgogICA8
YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY0LjYwNTMr
LTAuODUxNCAgICAgPyAgICAgNjQuODQ1NCstMC42MDg3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDAz
N3ggc2xvd2VyCiAgIDxnZW9tZXRyaWM+ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNjAuNTM0OCstMC43OTM3ICAgICA/ICAgICA2MC44ODU1Ky0wLjg4ODUgICAgICAgID8g
bWlnaHQgYmUgMS4wMDU4eCBzbG93ZXIKICAgPGhhcm1vbmljPiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA1Ni43NTkwKy0wLjc0MzcgICAgID8gICAgIDU3LjIzMjUrLTEu
MTgwMyAgICAgICAgPyBtaWdodCBiZSAxLjAwODN4IHNsb3dlcgoKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFzZWxpbmUgICAgICAgICAg
ICAgICAgICAgUGF0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKT2N0
YW5lOgogICBlbmNyeXB0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDAuMjM5NTUrLTAuMDA0OTUgICAgPyAgICAgMC4yNDExMystMC4wMDUxNCAgICAgICA/CiAgIGRl
Y3J5cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4yMDYyOCst
MC4wNDc0MiAgICAgICAgICA0LjE3MzM3Ky0wLjAxNTkwICAgICAgIAogICBkZWx0YWJsdWUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgIDAuMjEyNDYrLTAuMDA2NDQgICAg
ICAgICAgMC4yMDkwMistMC4wMDE0MSAgICAgICAgIG1pZ2h0IGJlIDEuMDE2NXggZmFzdGVyCiAg
IGVhcmxleSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC43MTg1
NistMC4wMTM3MyAgICAgICAgICAwLjcwOTY3Ky0wLjAwODUzICAgICAgICAgbWlnaHQgYmUgMS4w
MTI1eCBmYXN0ZXIKICAgYm95ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA1LjYzMzM1Ky0wLjA2NDczICAgIF4gICAgIDUuNDkzOTArLTAuMDU3MDEgICAgICAg
XiBkZWZpbml0ZWx5IDEuMDI1NHggZmFzdGVyCiAgIG5hdmllci1zdG9rZXMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeDIgICAgICAgNS41MzQ0NistMC4wMDk5MiAgICAgICAgICA1LjUzMjIx
Ky0wLjAyMTk4ICAgICAgIAogICByYXl0cmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHgyICAgICAgIDEuMzI2MTcrLTAuMTA0MDEgICAgPyAgICAgMS4zMjkxNystMC4wNzU0OSAg
ICAgICA/CiAgIHJpY2hhcmRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAg
ICAgMC4xMjc5OCstMC4wMDQ1MyAgICAgICAgICAwLjEyNTQ2Ky0wLjAwNDgzICAgICAgICAgbWln
aHQgYmUgMS4wMjAxeCBmYXN0ZXIKICAgc3BsYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB4MiAgICAgICAwLjM5ODE2Ky0wLjAwMzI5ICAgICAgICAgIDAuMzk3ODQrLTAuMDA1
MTggICAgICAgCiAgIHJlZ2V4cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIg
ICAgICAzMy4wNDczMSstMC4zNTkzNiAgICAgICAgIDMyLjk1NTc5Ky0wLjUwOTc5ICAgICAgIAog
ICBwZGZqcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgNTIuODEw
NzQrLTAuNTY5MzggICAgXiAgICA0Ny42ODAxNystMC43NzA3NiAgICAgICBeIGRlZmluaXRlbHkg
MS4xMDc2eCBmYXN0ZXIKICAgbWFuZHJlZWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB4MiAgICAgIDU3LjQ0MDA4Ky0wLjI4MTcyICAgICAgICAgNTcuMjg2MDMrLTAuMTc1ODUgICAg
ICAgCiAgIGdiZW11ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICA0
Ny4xODk3MCstMS4wNjY2MSAgICBeICAgIDQyLjg2MDE0Ky0wLjE4NDg3ICAgICAgIF4gZGVmaW5p
dGVseSAxLjEwMTB4IGZhc3RlcgogICBjbG9zdXJlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDAuNjEyMTYrLTAuMDA2MjUgICAgPyAgICAgMC42MTI4NCstMC4wMDg5
NiAgICAgICA/CiAgIGpxdWVyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNy45MDQ4NCstMC4xNjMwMyAgICAgICAgICA3Ljg2ODYwKy0wLjAzMzk2ICAgICAgIAog
ICBib3gyZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgMTguMTk2
MDYrLTAuMjEwMDEgICAgICAgICAxNy44Njc4NSstMC4xMjkxNyAgICAgICAgIG1pZ2h0IGJlIDEu
MDE4NHggZmFzdGVyCiAgIHpsaWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eDIgICAgIDQ5NS45MzY0NCstMjkuNzA4OTkgICA/ICAgNTAxLjY3NzMzKy0yLjQ2Mjc2ICAgICAg
ID8gbWlnaHQgYmUgMS4wMTE2eCBzbG93ZXIKICAgdHlwZXNjcmlwdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB4MiAgICAgOTI4Ljk0MTY1Ky00MC41MjY2MiAgICAgICA4ODUuMDA3NzUr
LTI2LjIyMDE0ICAgICAgICBtaWdodCBiZSAxLjA0OTZ4IGZhc3RlcgoKICAgPGFyaXRobWV0aWM+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEwLjA1NDU3Ky0zLjUyNjYxICAg
ICAgICAxMDYuODMxOTArLTEuODYzMTEgICAgICAgICBtaWdodCBiZSAxLjAzMDJ4IGZhc3Rlcgog
ICA8Z2VvbWV0cmljPiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuNTIy
MTQrLTAuMDQxMzIgICAgXiAgICAgNy4zNjYzMCstMC4wNDg4MyAgICAgICBeIGRlZmluaXRlbHkg
MS4wMjEyeCBmYXN0ZXIKICAgPGhhcm1vbmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAwLjc1MDQ4Ky0wLjAxNDM3ICAgICAgICAgIDAuNzQxNjgrLTAuMDEyNDEgICAg
ICAgICBtaWdodCBiZSAxLjAxMTl4IGZhc3RlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFzZWxpbmUgICAgICAgICAgICAgICAgICAg
UGF0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKS3Jha2VuOgogICBh
aS1hc3RhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM2MS42ODYr
LTEyLjQyMCAgICAgICAgICAgMzU1LjI4NSstMTcuOTc0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE4
MHggZmFzdGVyCiAgIGF1ZGlvLWJlYXQtZGV0ZWN0aW9uICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTE5LjkyMystMi40NjcgICAgICAgICAgICAxMTcuODMzKy0wLjkyNiAgICAgICAgICAg
bWlnaHQgYmUgMS4wMTc3eCBmYXN0ZXIKICAgYXVkaW8tZGZ0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxNTQuNzc4Ky00LjI1MyAgICAgID8gICAgIDE1OS4zNjErLTIu
NzI3ICAgICAgICAgPyBtaWdodCBiZSAxLjAyOTZ4IHNsb3dlcgogICBhdWRpby1mZnQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4Mi43OTIrLTEuMDc5ICAgICAgPyAg
ICAgIDg1LjA2NSstNS43NzEgICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3NHggc2xvd2VyCiAgIGF1
ZGlvLW9zY2lsbGF0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQ3LjUwOSst
MS45MzQgICAgICBeICAgICAyMTcuOTc0Ky0yLjE0MSAgICAgICAgIF4gZGVmaW5pdGVseSAxLjEz
NTV4IGZhc3RlcgogICBpbWFnaW5nLWRhcmtyb29tICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDE5MC4yMTkrLTExLjc1MCAgICAgICAgICAgMTg4Ljc2NystNS4yOTQgICAgICAgICAK
ICAgaW1hZ2luZy1kZXNhdHVyYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjku
MTU4Ky0wLjg4OSAgICAgICAgICAgICA2OC44NzMrLTAuNzE3ICAgICAgICAgCiAgIGltYWdpbmct
Z2F1c3NpYW4tYmx1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTE4LjY1MystMS4xNDEg
ICAgICAgICAgICAxMTcuMzk1Ky0wLjU2OCAgICAgICAgICAgbWlnaHQgYmUgMS4wMTA3eCBmYXN0
ZXIKICAganNvbi1wYXJzZS1maW5hbmNpYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NDYuODgyKy0xLjY0NyAgICAgID8gICAgICA1MC44MTcrLTcuMjEwICAgICAgICAgPyBtaWdodCBi
ZSAxLjA4Mzl4IHNsb3dlcgogICBqc29uLXN0cmluZ2lmeS10aW5kZXJib3ggICAgICAgICAgICAg
ICAgICAgICAgICAgICA2Mi4xNDgrLTAuNDY2ICAgICAgICAgICAgIDYxLjgzOSstMi4yMTMgICAg
ICAgICAKICAgc3RhbmZvcmQtY3J5cHRvLWFlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNjEuNzMzKy0xLjI1MSAgICAgICAgICAgICA2MS40MTQrLTAuNDg1ICAgICAgICAgCiAgIHN0
YW5mb3JkLWNyeXB0by1jY20gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYxLjMzNCst
OC42MDUgICAgICAgICAgICAgNTkuMzE2Ky04LjcxNyAgICAgICAgICAgbWlnaHQgYmUgMS4wMzQw
eCBmYXN0ZXIKICAgc3RhbmZvcmQtY3J5cHRvLXBia2RmMiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxODIuMjI0Ky0yLjU2NiAgICAgICAgICAgIDE4MC43MjMrLTEuNDg0ICAgICAgICAgCiAg
IHN0YW5mb3JkLWNyeXB0by1zaGEyNTYtaXRlcmF0aXZlICAgICAgICAgICAgICAgICAgIDU3LjI3
NSstMi4wODcgICAgICA/ICAgICAgNTcuNjk4Ky0yLjQ1NiAgICAgICAgID8KCiAgIDxhcml0aG1l
dGljPiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTI5LjczNystMi40NTgg
ICAgICAgICAgICAxMjcuMzExKy0xLjY1MiAgICAgICAgICAgbWlnaHQgYmUgMS4wMTkxeCBmYXN0
ZXIKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
MDYuNjUzKy0yLjM1NCAgICAgICAgICAgIDEwNS45MjIrLTIuMDUzICAgICAgICAgICBtaWdodCBi
ZSAxLjAwNjl4IGZhc3RlcgogICA8aGFybW9uaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA5MC40NDIrLTIuNDMxICAgICAgPyAgICAgIDkwLjcxNSstMi44MTIgICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDAzMHggc2xvd2VyCgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXNlbGluZSAgICAgICAgICAgICAgICAg
ICBQYXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApKU1JlZ3Jlc3M6
CiAgIGFicy1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
OTU2MistMC4zMDExICAgICAgICAgICAgMi44OTA3Ky0wLjE0NTUgICAgICAgICAgbWlnaHQgYmUg
MS4wMjI3eCBmYXN0ZXIKICAgYWRhcHQtdG8tZG91YmxlLWRpdmlkZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxOC4wMTYwKy0xLjQxMzUgICAgICAgICAgIDE3Ljc1MTMrLTAuNTYxOSAgICAg
ICAgICBtaWdodCBiZSAxLjAxNDl4IGZhc3RlcgogICBhbGlhc2VkLWFyZ3VtZW50cy1nZXRieXZh
bCAgICAgICAgICAgICAgICAgICAgICAgICAxLjM2MjIrLTAuMTIwMyAgICAgICAgICAgIDEuMzMw
MCstMC4xMDExICAgICAgICAgIG1pZ2h0IGJlIDEuMDI0MnggZmFzdGVyCiAgIGFsbG9jYXRlLWJp
Zy1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMzI0NistMC4xMjk0ICAg
ICA/ICAgICAgMi4zMzUzKy0wLjE5MzcgICAgICAgID8KICAgYXJpdHktbWlzbWF0Y2gtaW5saW5p
bmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4wMjk0Ky0wLjExNDMgICAgICAgICAgICAx
LjAwMDUrLTAuMDI5MiAgICAgICAgICBtaWdodCBiZSAxLjAyODl4IGZhc3RlcgogICBhcnJheS1h
Y2Nlc3MtcG9seW1vcnBoaWMtc3RydWN0dXJlICAgICAgICAgICAgICAgICA2LjU4ODQrLTAuMTky
MCAgICAgICAgICAgIDYuMjQ3MistMC40NzIzICAgICAgICAgIG1pZ2h0IGJlIDEuMDU0NnggZmFz
dGVyCiAgIGFycmF5LW5vbmFycmF5LXBvbHltb3JocGljLWFjY2VzcyAgICAgICAgICAgICAgICAg
MzcuMDEzOCstMC43Nzc4ICAgICAgICAgICAzNi45ODUyKy0wLjcyODcgICAgICAgIAogICBhcnJh
eS1wcm90b3R5cGUtZXZlcnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgwLjMxMjYrLTUu
MDIxOSAgICAgICAgICAgNzkuODc5MystMC45MTAzICAgICAgICAKICAgYXJyYXktcHJvdG90eXBl
LWZvckVhY2ggICAgICAgICAgICAgICAgICAgICAgICAgICA3Ny43MTcwKy0xLjAzMTQgICAgID8g
ICAgIDc3Ljk0ODkrLTAuMDg3MyAgICAgICAgPwogICBhcnJheS1wcm90b3R5cGUtbWFwICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDk4LjU1NDArLTIuNzU5NSAgICAgXiAgICAgODcuMTk1
MSstMS41NjU2ICAgICAgICBeIGRlZmluaXRlbHkgMS4xMzAzeCBmYXN0ZXIKICAgYXJyYXktcHJv
dG90eXBlLXNvbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3OS4wNDEzKy0yLjE1MTMg
ICAgID8gICAgIDc5LjgzMzUrLTEuNzQwNCAgICAgICAgPyBtaWdodCBiZSAxLjAxMDB4IHNsb3dl
cgogICBhcnJheS1zcGxpY2UtY29udGlndW91cyAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0
LjY1NjQrLTIuNzY2MSAgICAgPyAgICAgNDQuNzY5MCstMy4yNzY5ICAgICAgICA/CiAgIGFycmF5
LXdpdGgtZG91YmxlLWFkZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNDA1OCstMC4x
NTUyICAgICA/ICAgICAgNC41MTkwKy0wLjEyOTQgICAgICAgID8gbWlnaHQgYmUgMS4wMjU3eCBz
bG93ZXIKICAgYXJyYXktd2l0aC1kb3VibGUtaW5jcmVtZW50ICAgICAgICAgICAgICAgICAgICAg
ICAgMy40MjM2Ky0wLjA0OTEgICAgICAgICAgICAzLjQwMTYrLTAuMDk5NCAgICAgICAgCiAgIGFy
cmF5LXdpdGgtZG91YmxlLW11bC1hZGQgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMzM4Myst
MC4xOTc1ICAgICAgICAgICAgNS4yMzEzKy0wLjA5NDUgICAgICAgICAgbWlnaHQgYmUgMS4wMjA1
eCBmYXN0ZXIKICAgYXJyYXktd2l0aC1kb3VibGUtc3VtICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMy40MjY5Ky0wLjA4NTAgICAgICAgICAgICAzLjQyNjErLTAuMDQ1NiAgICAgICAgCiAg
IGFycmF5LXdpdGgtaW50MzItYWRkLXN1YiAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMjQx
OSstMC4yMDg3ICAgICAgICAgICAgNy4xNDUxKy0wLjI1ODcgICAgICAgICAgbWlnaHQgYmUgMS4w
MTM2eCBmYXN0ZXIKICAgYXJyYXktd2l0aC1pbnQzMi1vci1kb3VibGUtc3VtICAgICAgICAgICAg
ICAgICAgICAgMy41MjkwKy0wLjEzMzUgICAgID8gICAgICAzLjYwNDUrLTAuMTQ3MyAgICAgICAg
PyBtaWdodCBiZSAxLjAyMTR4IHNsb3dlcgogICBBcnJheUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1s
YXJnZS1sb25nLWxpdmVkICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMzMuMzQwNistMS4xNTU1ICAgICAgICAgICAzMi44Mjk2Ky0wLjc2MjEg
ICAgICAgICAgbWlnaHQgYmUgMS4wMTU2eCBmYXN0ZXIKICAgQXJyYXlCdWZmZXItRGF0YVZpZXct
YWxsb2MtbG9uZy1saXZlZCAgICAgICAgICAgICAxMy40MzEzKy0xLjQxMjEgICAgICAgICAgIDEy
Ljg5MTErLTAuMTY2MiAgICAgICAgICBtaWdodCBiZSAxLjA0MTl4IGZhc3RlcgogICBBcnJheUJ1
ZmZlci1JbnQzMkFycmF5LWJ5dGVPZmZzZXQgICAgICAgICAgICAgICAgICAzLjY3OTMrLTAuMDQ2
OCAgICAgPyAgICAgIDMuODY1MystMC4yMzI0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDUwNnggc2xv
d2VyCiAgIEFycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzQuMDg5
MSstMC42NTMwICAgICAgICAgICAzMy43ODUyKy0wLjU3NjIgICAgICAgIAogICBBcnJheUJ1ZmZl
ci1JbnQ4QXJyYXktYWxsb2MtbG9uZy1saXZlZC1idWZmZXIgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMS44NTQ3Ky0wLjQzOTYgICAgID8g
ICAgIDIyLjQzNzgrLTAuNzY4MCAgICAgICAgPyBtaWdodCBiZSAxLjAyNjd4IHNsb3dlcgogICBB
cnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbG9uZy1saXZlZCAgICAgICAgICAgIDEyLjYzMTgr
LTAuMjUzNSAgICAgICAgICAgMTIuNTQ5NistMC4zOTkwICAgICAgICAKICAgQXJyYXlCdWZmZXIt
SW50OEFycmF5LWFsbG9jICAgICAgICAgICAgICAgICAgICAgICAxMC41NTIxKy0wLjcwODggICAg
ICAgICAgIDEwLjQ0NjIrLTAuNjczNCAgICAgICAgICBtaWdodCBiZSAxLjAxMDF4IGZhc3Rlcgog
ICBhc21qc19ib29sX2J1ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3Ljc0
ODIrLTAuMTc0MyAgICAgICAgICAgIDcuNzQxOSstMC4xMzUwICAgICAgICAKICAgYXNzaWduLWN1
c3RvbS1zZXR0ZXItcG9seW1vcnBoaWMgICAgICAgICAgICAgICAgICAgMy40MTM2Ky0wLjA3MzYg
ICAgID8gICAgICAzLjQ3ODArLTAuMjQwNCAgICAgICAgPyBtaWdodCBiZSAxLjAxODl4IHNsb3dl
cgogICBhc3NpZ24tY3VzdG9tLXNldHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
Ljc1NjgrLTAuMzY4NyAgICAgICAgICAgIDQuNjY3NSstMC4xMjEwICAgICAgICAgIG1pZ2h0IGJl
IDEuMDE5MXggZmFzdGVyCiAgIGJhc2ljLXNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTEuMTMxNistMC4yOTU3ICAgICBeICAgICAgOS42NzkzKy0wLjMzNzggICAg
ICAgIF4gZGVmaW5pdGVseSAxLjE1MDB4IGZhc3RlcgogICBiaWctaW50LW11bCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjMxOTErLTAuMDk4NSAgICAgICAgICAgIDQu
MjQ4MSstMC4xNDQ0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE2N3ggZmFzdGVyCiAgIGJvb2xlYW4t
dGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMjI2NystMC4wODU4
ICAgICA/ICAgICAgMy4yNjIzKy0wLjE3ODcgICAgICAgID8gbWlnaHQgYmUgMS4wMTEweCBzbG93
ZXIKICAgYnJhbmNoLWZvbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
My45NDUyKy0wLjAzNTYgICAgID8gICAgICA0LjAxOTYrLTAuMTY5NCAgICAgICAgPyBtaWdodCBi
ZSAxLjAxODl4IHNsb3dlcgogICBieS12YWwtZ2VuZXJpYyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA4LjgyNjArLTAuOTU5NiAgICAgICAgICAgIDcuODg0OCstMC4zMDI2ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMTE5NHggZmFzdGVyCiAgIGNhbGwtc3ByZWFkLWFwcGx5ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTguNTQ0NystMC40MjkzICAgICAhICAgICAxOS4z
MTYzKy0wLjI5NTYgICAgICAgICEgZGVmaW5pdGVseSAxLjA0MTZ4IHNsb3dlcgogICBjYWxsLXNw
cmVhZC1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1LjkwNDQrLTAuNTQ4
OCAgICAgPyAgICAgMTYuODk5MystMC41ODYzICAgICAgICA/IG1pZ2h0IGJlIDEuMDYyNnggc2xv
d2VyCiAgIGNhcHR1cmVkLWFzc2lnbm1lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDAuNTY4MystMC4wNDYzICAgICA/ICAgICAgMC41ODgwKy0wLjA0NTMgICAgICAgID8gbWlnaHQg
YmUgMS4wMzQ3eCBzbG93ZXIKICAgY2FzdC1pbnQtdG8tZG91YmxlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNS42ODY0Ky0wLjEwNDIgICAgID8gICAgICA1LjczODYrLTAuMTgzMSAg
ICAgICAgPwogICBjZWxsLWFyZ3VtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA4LjY4MjkrLTAuNDQ3OSAgICAgPyAgICAgIDguNzEzNCstMC42NzQ1ICAgICAgICA/CiAg
IGNmZy1zaW1wbGlmeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMTc1
MCstMC4zNjYwICAgICAgICAgICAgMy4xMDk5Ky0wLjE5NTYgICAgICAgICAgbWlnaHQgYmUgMS4w
MjA5eCBmYXN0ZXIKICAgY2hhaW4tZ2V0dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxMC42MTg1Ky0wLjM1ODAgICAgID8gICAgIDEwLjY5NzgrLTAuNTUyMiAgICAgICAg
PwogICBjbXBlcS1vYmotdG8tb2JqLW90aGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEw
LjMwODYrLTAuMTYyNCAgICAgPyAgICAgMTAuMzcyNSstMC4xNzkwICAgICAgICA/CiAgIGNvbnN0
YW50LXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMzM3MistMC4y
MDU2ICAgICA/ICAgICAgNS4zOTQ5Ky0wLjI4NDAgICAgICAgID8gbWlnaHQgYmUgMS4wMTA4eCBz
bG93ZXIKICAgRGF0YVZpZXctY3VzdG9tLXByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAg
ICAzOC41MjQyKy0xLjU2NzcgICAgICAgICAgIDM2Ljk5MDIrLTEuMzA4NCAgICAgICAgICBtaWdo
dCBiZSAxLjA0MTV4IGZhc3RlcgogICBkZWxheS10ZWFyLW9mZi1hcmd1bWVudHMtc3RyaWN0bW9k
ZSAgICAgICAgICAgICAgICA3LjkzNDkrLTAuMDgxOCAgICAgISAgICAgMTAuMTc0MCstMC4zMDY5
ICAgICAgICAhIGRlZmluaXRlbHkgMS4yODIyeCBzbG93ZXIKICAgZGVzdHJ1Y3R1cmluZy1hcmd1
bWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4wMDkwKy0wLjEzNjUgICAgICAgICAg
ICA1LjkzNTIrLTAuMTE2NyAgICAgICAgICBtaWdodCBiZSAxLjAxMjR4IGZhc3RlcgogICBkZXN0
cnVjdHVyaW5nLXN3YXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjU0MjUrLTAu
MjEwOSAgICAgICAgICAgIDUuNDY1MSstMC4wOTcwICAgICAgICAgIG1pZ2h0IGJlIDEuMDE0MXgg
ZmFzdGVyCiAgIGRpcmVjdC1hcmd1bWVudHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEuMjc1NSstMC4wMjE1ICAgICA/ICAgICAgMS4zNTQ3Ky0wLjEwMjQgICAgICAgID8gbWln
aHQgYmUgMS4wNjIxeCBzbG93ZXIKICAgZGl2LWJvb2xlYW4tZG91YmxlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNS41NjQ5Ky0wLjAzMzUgICAgICAgICAgICA1LjU1NDArLTAuMDYy
MCAgICAgICAgCiAgIGRpdi1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDguMzk2OSstMC4xNDczICAgICA/ICAgICAgOC40NTA1Ky0wLjM1OTggICAgICAgID8K
ICAgZG91YmxlLWdldC1ieS12YWwtb3V0LW9mLWJvdW5kcyAgICAgICAgICAgICAgICAgICAgNC4z
NTkzKy0wLjEzOTYgICAgID8gICAgICA0LjQwNTkrLTAuMDQ2MiAgICAgICAgPyBtaWdodCBiZSAx
LjAxMDd4IHNsb3dlcgogICBkb3VibGUtcG9sbHV0aW9uLWdldGJ5dmFsICAgICAgICAgICAgICAg
ICAgICAgICAgICA5LjQ0NTMrLTAuNDIxNSAgICAgICAgICAgIDkuNDQxMCstMC4zMTk5ICAgICAg
ICAKICAgZG91YmxlLXBvbGx1dGlvbi1wdXRieW9mZnNldCAgICAgICAgICAgICAgICAgICAgICAg
NC40MTI4Ky0wLjE1NjIgICAgICAgICAgICA0LjI5OTUrLTAuMDgzOSAgICAgICAgICBtaWdodCBi
ZSAxLjAyNjN4IGZhc3RlcgogICBkb3VibGUtdG8taW50MzItdHlwZWQtYXJyYXktbm8taW5saW5l
ICAgICAgICAgICAgICAyLjU1MzYrLTAuMTQ5MSAgICAgICAgICAgIDIuNTQyNCstMC4wODc0ICAg
ICAgICAKICAgZG91YmxlLXRvLWludDMyLXR5cGVkLWFycmF5ICAgICAgICAgICAgICAgICAgICAg
ICAgMi4yMDg5Ky0wLjA3OTUgICAgICAgICAgICAyLjE3OTMrLTAuMTAyNCAgICAgICAgICBtaWdo
dCBiZSAxLjAxMzZ4IGZhc3RlcgogICBkb3VibGUtdG8tdWludDMyLXR5cGVkLWFycmF5LW5vLWlu
bGluZSAgICAgICAgICAgICAyLjU2OTUrLTAuMDM3NiAgICAgPyAgICAgIDIuNjE1NistMC4xMjMy
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE4MHggc2xvd2VyCiAgIGRvdWJsZS10by11aW50MzItdHlw
ZWQtYXJyYXkgICAgICAgICAgICAgICAgICAgICAgIDIuMjkyNSstMC4xMDA0ICAgICAgICAgICAg
Mi4yOTIyKy0wLjEyNjIgICAgICAgIAogICBlbGlkYWJsZS1uZXctb2JqZWN0LWRhZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQxLjIzNzIrLTEuOTE2NSAgICAgPyAgICAgNDIuNjA4NCstMS40
NjA4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMzM3ggc2xvd2VyCiAgIGVsaWRhYmxlLW5ldy1vYmpl
Y3Qtcm9mbGNvcHRlciAgICAgICAgICAgICAgICAgICAxNTYuMDAzMystMS41OTgzICAgICA/ICAg
IDE1Ni42MjI2Ky0yLjE4NzggICAgICAgID8KICAgZWxpZGFibGUtbmV3LW9iamVjdC10aGVuLWNh
bGwgICAgICAgICAgICAgICAgICAgICAzOC40NTExKy0xLjQ4OTUgICAgICAgICAgIDM3LjI2ODIr
LTUuMTgyMCAgICAgICAgICBtaWdodCBiZSAxLjAzMTd4IGZhc3RlcgogICBlbGlkYWJsZS1uZXct
b2JqZWN0LXRyZWUgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0LjQ5NzYrLTIuNTcyMiAgICAg
ICAgICAgNDMuMzQ2MCstMC43MDYxICAgICAgICAgIG1pZ2h0IGJlIDEuMDI2NnggZmFzdGVyCiAg
IGVtcHR5LXN0cmluZy1wbHVzLWludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuNDk5
OCstMC4zMTM0ICAgICAgICAgICAgNS40MTkyKy0wLjE1MDEgICAgICAgICAgbWlnaHQgYmUgMS4w
MTQ5eCBmYXN0ZXIKICAgZW1zY3JpcHRlbi1jdWJlMmhhc2ggICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzOS4wODcwKy0xLjM4ODkgICAgICAgICAgIDM4LjY5ODQrLTAuNjA4MCAgICAgICAg
ICBtaWdodCBiZSAxLjAxMDB4IGZhc3RlcgogICBleHRlcm5hbC1hcmd1bWVudHMtZ2V0Ynl2YWwg
ICAgICAgICAgICAgICAgICAgICAgICAxLjUzMjErLTAuMDU0MCAgICAgPyAgICAgIDEuNTU3Nist
MC4wODU1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE2Nnggc2xvd2VyCiAgIGV4dGVybmFsLWFyZ3Vt
ZW50cy1wdXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAgIDIuMjE4MCstMC4wNjQ1ICAgICA/
ICAgICAgMi4yMjMwKy0wLjA0NzggICAgICAgID8KICAgZml4ZWQtdHlwZWQtYXJyYXktc3RvcmFn
ZS12YXItaW5kZXggICAgICAgICAgICAgICAgMS40NTM0Ky0wLjA4MjEgICAgID8gICAgICAxLjQ2
MzcrLTAuMDYwNSAgICAgICAgPwogICBmaXhlZC10eXBlZC1hcnJheS1zdG9yYWdlICAgICAgICAg
ICAgICAgICAgICAgICAgICAxLjA3NDgrLTAuMDQ3NyAgICAgICAgICAgIDEuMDM5MistMC4wNzAy
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM0MnggZmFzdGVyCiAgIEZsb2F0MzJBcnJheS1tYXRyaXgt
bXVsdCAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNjgyOSstMC4xMDYxICAgICA/ICAgICAg
NC45MzcwKy0wLjM4NjIgICAgICAgID8gbWlnaHQgYmUgMS4wNTQzeCBzbG93ZXIKICAgRmxvYXQz
MkFycmF5LXRvLUZsb2F0NjRBcnJheS1zZXQgICAgICAgICAgICAgICAgICA1NS45NzM4Ky0xLjMz
NzIgICAgICEgICAgIDU5LjM1OTkrLTEuNTkxOSAgICAgICAgISBkZWZpbml0ZWx5IDEuMDYwNXgg
c2xvd2VyCiAgIEZsb2F0NjRBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAg
ICAgNjcuNTEzNSstMi4yNDYzICAgICAgICAgICA2Ny4wMDIyKy0wLjY3MzggICAgICAgIAogICBG
bG9hdDY0QXJyYXktdG8tSW50MTZBcnJheS1zZXQgICAgICAgICAgICAgICAgICAgIDcyLjg1MTAr
LTIuNzc2OCAgICAgPyAgICAgNzUuMTM4NSstMS4yMjg0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMx
NHggc2xvd2VyCiAgIGZvbGQtZG91YmxlLXRvLWludCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTQuMDAwMistMC4zMDQ3ICAgICA/ICAgICAxNC40MTgyKy0wLjQ4MjEgICAgICAgID8g
bWlnaHQgYmUgMS4wMjk5eCBzbG93ZXIKICAgZm9sZC1nZXQtYnktaWQtdG8tbXVsdGktZ2V0LWJ5
LW9mZnNldC1yYXJlLWludCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDE5LjYyMDQrLTAuMzg5OSAgICAgICAgICAgMTkuNDM4NCstMS41MjEz
ICAgICAgICAKICAgZm9sZC1nZXQtYnktaWQtdG8tbXVsdGktZ2V0LWJ5LW9mZnNldCAgICAgICAg
ICAgICAxOS4zOTE4Ky0wLjg2MDEgICAgID8gICAgIDIwLjAwMjIrLTAuOTg2OCAgICAgICAgPyBt
aWdodCBiZSAxLjAzMTV4IHNsb3dlcgogICBmb2xkLW11bHRpLWdldC1ieS1vZmZzZXQtdG8tZ2V0
LWJ5LW9mZnNldCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDE0LjI5OTMrLTAuMzM2NyAgICAgICAgICAgMTQuMDU1MystMC4xNjg0ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDE3NHggZmFzdGVyCiAgIGZvbGQtbXVsdGktZ2V0LWJ5LW9mZnNldC10
by1wb2x5LWdldC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxNC43OTQzKy0wLjU0NjkgICAgICAgICAgIDE0LjY5NDMrLTAu
MzgyOSAgICAgICAgCiAgIGZvbGQtbXVsdGktcHV0LWJ5LW9mZnNldC10by1wb2x5LXB1dC1ieS1v
ZmZzZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxMy45ODMwKy0wLjU2MDEgICAgICAgICAgIDEzLjU5OTcrLTAuMjYzOSAgICAgICAgICBt
aWdodCBiZSAxLjAyODJ4IGZhc3RlcgogICBmb2xkLW11bHRpLXB1dC1ieS1vZmZzZXQtdG8tcHV0
LWJ5LW9mZnNldCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEyLjU2OTArLTAuNDYyNiAgICAgICAgICAgMTIuNDE2NystMC41ODI0ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDEyM3ggZmFzdGVyCiAgIGZvbGQtbXVsdGktcHV0LWJ5LW9mZnNldC10
by1yZXBsYWNlLW9yLXRyYW5zaXRpb24tcHV0LWJ5LW9mZnNldCAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2LjkyNzYrLTAuOTgxNSAgICAg
ICAgICAgMTYuNzczOSstMS4wMzkzICAgICAgICAKICAgZm9sZC1wdXQtYnktaWQtdG8tbXVsdGkt
cHV0LWJ5LW9mZnNldCAgICAgICAgICAgICAxOS44OTAwKy0wLjQyMDcgICAgID8gICAgIDIwLjM4
NTUrLTEuMzA3MyAgICAgICAgPyBtaWdodCBiZSAxLjAyNDl4IHNsb3dlcgogICBmb2xkLXB1dC1z
dHJ1Y3R1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjc0NjUrLTAuMjg0MCAg
ICAgICAgICAgMTMuNzI0MystMC4yNTU3ICAgICAgICAKICAgZm9yLW9mLWl0ZXJhdGUtYXJyYXkt
ZW50cmllcyAgICAgICAgICAgICAgICAgICAgICAgNS44MjE0Ky0wLjMwNTQgICAgIF4gICAgICA1
LjAzMTYrLTAuMjc3MCAgICAgICAgXiBkZWZpbml0ZWx5IDEuMTU3MHggZmFzdGVyCiAgIGZvci1v
Zi1pdGVyYXRlLWFycmF5LWtleXMgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDgzNSstMC4y
MzQ0ICAgICBeICAgICAgMi40Mjg1Ky0wLjA5NTggICAgICAgIF4gZGVmaW5pdGVseSAxLjI2OTd4
IGZhc3RlcgogICBmb3Itb2YtaXRlcmF0ZS1hcnJheS12YWx1ZXMgICAgICAgICAgICAgICAgICAg
ICAgICAyLjg0OTgrLTAuMzc5MSAgICAgXiAgICAgIDIuMDk5NCstMC4xOTAwICAgICAgICBeIGRl
ZmluaXRlbHkgMS4zNTc0eCBmYXN0ZXIKICAgZnJvdW5kICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAyMC4yMzI5Ky0wLjYwOTggICAgID8gICAgIDIwLjI0MDIrLTEu
MDI2NSAgICAgICAgPwogICBmdGwtbGlicmFyeS1pbmxpbmluZy1kYXRhdmlldyAgICAgICAgICAg
ICAgICAgICAgIDcwLjMwNjMrLTEuMzEyNyAgICAgPyAgICAgNzIuMzAxMSstMS45NDg1ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDI4NHggc2xvd2VyCiAgIGZ0bC1saWJyYXJ5LWlubGluaW5nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMTUuMTE0MystMC44NTE1ICAgICAgICAgIDEwMC42NjA1
Ky0yNi4wMDIwICAgICAgICAgbWlnaHQgYmUgMS4xNDM2eCBmYXN0ZXIKICAgZnVuY3Rpb24tZG90
LWFwcGx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS43NzE3Ky0wLjAzMjEgICAg
ID8gICAgICAxLjc4OTUrLTAuMDMxNSAgICAgICAgPyBtaWdodCBiZSAxLjAxMDB4IHNsb3dlcgog
ICBmdW5jdGlvbi10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjYw
ODUrLTAuMjExMyAgICAgPyAgICAgIDMuNjE0NSstMC4xMTk1ICAgICAgICA/CiAgIGZ1bmN0aW9u
LXdpdGgtZXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMTIuMzEwNCstMi40NjEx
ICAgICAgICAgIDExMS4wNjAzKy0yLjM0NDUgICAgICAgICAgbWlnaHQgYmUgMS4wMTEzeCBmYXN0
ZXIKICAgZ2NzZS1wb2x5LWdldC1sZXNzLW9idmlvdXMgICAgICAgICAgICAgICAgICAgICAgICAy
MS4zMzEzKy03LjMyODkgICAgICAgICAgIDE5Ljc5NjMrLTEuODA2MSAgICAgICAgICBtaWdodCBi
ZSAxLjA3NzV4IGZhc3RlcgogICBnY3NlLXBvbHktZ2V0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDI0LjI1NDgrLTcuNzU2NiAgICAgPyAgICAgMjQuNTM1MystMS4xOTQxICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDExNnggc2xvd2VyCiAgIGdjc2UgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNDQyNistMC4wMzg1ICAgICA/ICAgICAgNC40
ODk0Ky0wLjA2MjIgICAgICAgID8gbWlnaHQgYmUgMS4wMTA2eCBzbG93ZXIKICAgZ2V0LWJ5LWlk
LWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMTA3NSstMC4x
MTI0ICAgICAgICAgICAgMy4wNjY0Ky0wLjA2MjAgICAgICAgICAgbWlnaHQgYmUgMS4wMTM0eCBm
YXN0ZXIKICAgZ2V0LWJ5LWlkLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24g
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ni41NTQ1Ky0wLjE5NjkgICAgID8gICAgICA2Ljg3NTMrLTAuNzIzNCAgICAgICAgPyBtaWdodCBi
ZSAxLjA0ODl4IHNsb3dlcgogICBnZXQtYnktaWQtY2hhaW4tZnJvbS10cnktYmxvY2sgICAgICAg
ICAgICAgICAgICAgICA5LjI2NDIrLTAuMTc0NyAgICAgPyAgICAgIDkuNTQ2NCstMC4zMjk0ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDMwNXggc2xvd2VyCiAgIGdldC1ieS1pZC1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24gICAgICAgICAgICAgIDUuMzM3MistMC4wODA0ICAgICA/ICAgICAgNS40
NTA0Ky0wLjEyNTAgICAgICAgID8gbWlnaHQgYmUgMS4wMjEyeCBzbG93ZXIKICAgZ2V0LWJ5LWlk
LXByb3RvLW9yLXNlbGYgICAgICAgICAgICAgICAgICAgICAgICAgICAxOC4yMDY3Ky0xLjQwNTgg
ICAgID8gICAgIDE4LjU3NjcrLTIuMDExOCAgICAgICAgPyBtaWdodCBiZSAxLjAyMDN4IHNsb3dl
cgogICBnZXQtYnktaWQtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAzLjM4NjcrLTAuMTQ0NCAgICAgICAgICAgIDMuMzM0MistMC4wNzU0ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDE1N3ggZmFzdGVyCiAgIGdldC1ieS1pZC1zZWxmLW9yLXByb3RvICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTguOTg2MSstMC41NDYwICAgICAgICAgICAxOC45Njk2Ky0wLjUw
NzEgICAgICAgIAogICBnZXQtYnktdmFsLW91dC1vZi1ib3VuZHMgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0LjM2MjcrLTAuNjAxNiAgICAgICAgICAgIDQuMjk3OSstMC4wNzg3ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDE1MXggZmFzdGVyCiAgIGdldF9jYWxsZWVfbW9ub21vcnBoaWMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMuNTcyNCstMC4yMDMyICAgICAhICAgICAgNS4wMDA3Ky0w
LjE5NjkgICAgICAgICEgZGVmaW5pdGVseSAxLjM5OTh4IHNsb3dlcgogICBnZXRfY2FsbGVlX3Bv
bHltb3JwaGljICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjU0MjArLTAuMzY4MiAgICAg
ICAgICAgIDQuMTU0MistMC4xMTgwICAgICAgICAgIG1pZ2h0IGJlIDEuMDkzM3ggZmFzdGVyCiAg
IGdldHRlci1uby1hY3RpdmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuOTc1
MSstMC4yOTA5ICAgICAgICAgICAgNC44NTU3Ky0wLjA3OTMgICAgICAgICAgbWlnaHQgYmUgMS4w
MjQ2eCBmYXN0ZXIKICAgZ2V0dGVyLXJpY2hhcmRzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEzMy40ODIyKy0xMS43OTU1ICAgID8gICAgMTM3LjQ5ODgrLTMuMDM5NCAgICAgICAg
PyBtaWdodCBiZSAxLjAzMDF4IHNsb3dlcgogICBnZXR0ZXIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA1Ljc2NDYrLTAuMTY3OCAgICAgICAgICAgIDUuNTkyMist
MC4yMzI2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMwOHggZmFzdGVyCiAgIGdsb2JhbC12YXItY29u
c3QtaW5mZXItZmlyZS1mcm9tLW9wdCAgICAgICAgICAgICAgIDEuMDQxMystMC4wMzIzICAgICAg
ICAgICAgMS4wMzM2Ky0wLjE0MTcgICAgICAgIAogICBnbG9iYWwtdmFyLWNvbnN0LWluZmVyICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxLjE1NzMrLTAuMDU5MSAgICAgICAgICAgIDAuOTk1
MCstMC4xNzk2ICAgICAgICAgIG1pZ2h0IGJlIDEuMTYzMXggZmFzdGVyCiAgIEhhc2hNYXAtcHV0
LWdldC1pdGVyYXRlLWtleXMgICAgICAgICAgICAgICAgICAgICAgMjguMDA5NSstMC4xMjY2ICAg
ICBeICAgICAyNy4wMzkyKy0wLjQ4NjggICAgICAgIF4gZGVmaW5pdGVseSAxLjAzNTl4IGZhc3Rl
cgogICBIYXNoTWFwLXB1dC1nZXQtaXRlcmF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4
LjE1MjArLTEuMTAxNSAgICAgICAgICAgMjguMDA2MCstMC42MTc4ICAgICAgICAKICAgSGFzaE1h
cC1zdHJpbmctcHV0LWdldC1pdGVyYXRlICAgICAgICAgICAgICAgICAgICAyNy41NDM2Ky0xLjAw
NzIgICAgICAgICAgIDI3LjM1NzcrLTAuOTk3NCAgICAgICAgCiAgIGhvaXN0LW1ha2Utcm9wZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEuMDc3NCstMS4wODE5ICAgICA/ICAg
ICAxMi44MzA0Ky0xLjgxNDkgICAgICAgID8gbWlnaHQgYmUgMS4xNTgyeCBzbG93ZXIKICAgaG9p
c3QtcG9seS1jaGVjay1zdHJ1Y3R1cmUtZWZmZWN0ZnVsLWxvb3AgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS40MDY2Ky0wLjI3ODEgICAg
ID8gICAgICA1LjQ0OTgrLTAuMjA0OSAgICAgICAgPwogICBob2lzdC1wb2x5LWNoZWNrLXN0cnVj
dHVyZSAgICAgICAgICAgICAgICAgICAgICAgICA0LjE0NTcrLTAuMzk2MSAgICAgICAgICAgIDMu
ODgyNistMC4xMTcyICAgICAgICAgIG1pZ2h0IGJlIDEuMDY3OHggZmFzdGVyCiAgIGltdWwtZG91
YmxlLW9ubHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuOTE2NystMC4yNjU4
ICAgICAgICAgICAgNy41NjkzKy0wLjE0NTIgICAgICAgICAgbWlnaHQgYmUgMS4wNDU5eCBmYXN0
ZXIKICAgaW11bC1pbnQtb25seSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
MC4zNjQwKy0wLjkyMjcgICAgICAgICAgIDEwLjE1NDArLTAuOTI3OCAgICAgICAgICBtaWdodCBi
ZSAxLjAyMDd4IGZhc3RlcgogICBpbXVsLW1peGVkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA3LjkxMjIrLTAuNzI0NiAgICAgICAgICAgIDcuODMzOSstMC42NzAxICAg
ICAgICAKICAgaW4tZm91ci1jYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyMS4xNDYyKy0wLjgyMTkgICAgICAgICAgIDIwLjIwNTcrLTAuODkzMCAgICAgICAgICBtaWdo
dCBiZSAxLjA0NjV4IGZhc3RlcgogICBpbi1vbmUtY2FzZS1mYWxzZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDEwLjk0MDQrLTAuNDU5MSAgICAgICAgICAgMTAuODY2OCstMC4yMjg5
ICAgICAgICAKICAgaW4tb25lLWNhc2UtdHJ1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxMC43NjU3Ky0wLjIzOTQgICAgID8gICAgIDEwLjgwNjgrLTAuMTI3MiAgICAgICAgPwog
ICBpbi10d28tY2FzZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjE1
MjIrLTAuMDM0MCAgICAgPyAgICAgMTEuMjA5MistMC4xNzA4ICAgICAgICA/CiAgIGluZGV4ZWQt
cHJvcGVydGllcy1pbi1vYmplY3RzICAgICAgICAgICAgICAgICAgICAgIDMuMDg1NSstMC4wNzMz
ICAgICAhICAgICAgMy4yNTMwKy0wLjAzNTMgICAgICAgICEgZGVmaW5pdGVseSAxLjA1NDN4IHNs
b3dlcgogICBpbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tbW92LW5vLWlubGluZSAgICAgICAgICAg
ICA0LjI3OTQrLTAuMzUwNyAgICAgICAgICAgIDQuMTQzNCstMC4wODk2ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDMyOHggZmFzdGVyCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1tb3YgICAgICAg
ICAgICAgICAgICAgICAgMTguOTU2NystMC40OTAyICAgICAgICAgICAxOC43NzU1Ky0wLjQwMzYg
ICAgICAgIAogICBpbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tcHV0LXRvLXNjb3BlLW5vLWlubGlu
ZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEyLjUxMDIrLTAuMjkxMiAgICAgPyAgICAgMTIuNjY3MSstMC4wNjQ1ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDEyNXggc2xvd2VyCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1wdXQtdG8tc2Nv
cGUgICAgICAgICAgICAgMjEuNDA5MistMC43MTk0ICAgICAgICAgICAyMS4xNTI3Ky0xLjI3MjUg
ICAgICAgICAgbWlnaHQgYmUgMS4wMTIxeCBmYXN0ZXIKICAgaW5mZXItY2xvc3VyZS1jb25zdC10
aGVuLXJlZW50ZXItbm8taW5saW5lICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNTEuNTgzNystMS4xNDExICAgICAgICAgICA1MS4xMzc1Ky0w
LjkzNzkgICAgICAgIAogICBpbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tcmVlbnRlciAgICAgICAg
ICAgICAgICAgIDE5LjcyNDErLTEuMjg0MCAgICAgICAgICAgMTkuNjQ1MistMC4yNDgzICAgICAg
ICAKICAgaW5mZXItY29uc3RhbnQtZ2xvYmFsLXByb3BlcnR5ICAgICAgICAgICAgICAgICAgICAg
My43ODUwKy0wLjE5MDQgICAgICAgICAgICAzLjY5NTIrLTAuMDQ0NyAgICAgICAgICBtaWdodCBi
ZSAxLjAyNDN4IGZhc3RlcgogICBpbmZlci1jb25zdGFudC1wcm9wZXJ0eSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjk3ODkrLTAuMTAyOSAgICAgICAgICAgIDIuOTA3MistMC4xMjk3ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDI0N3ggZmFzdGVyCiAgIGluZmVyLW9uZS10aW1lLWNsb3N1cmUt
dGVuLXZhcnMgICAgICAgICAgICAgICAgICAgMTIuNjcwOCstMC40NDMwICAgICAgICAgICAxMi40
ODQzKy0wLjI3NTEgICAgICAgICAgbWlnaHQgYmUgMS4wMTQ5eCBmYXN0ZXIKICAgaW5mZXItb25l
LXRpbWUtY2xvc3VyZS10d28tdmFycyAgICAgICAgICAgICAgICAgICAxMi4zNTY2Ky0wLjQyMTcg
ICAgICAgICAgIDEyLjE2ODArLTAuMjg4NiAgICAgICAgICBtaWdodCBiZSAxLjAxNTV4IGZhc3Rl
cgogICBpbmZlci1vbmUtdGltZS1jbG9zdXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEy
LjAzMjUrLTAuNTM4NiAgICAgICAgICAgMTEuODU0NistMC4yMDcxICAgICAgICAgIG1pZ2h0IGJl
IDEuMDE1MHggZmFzdGVyCiAgIGluZmVyLW9uZS10aW1lLWRlZXAtY2xvc3VyZSAgICAgICAgICAg
ICAgICAgICAgICAgMjEuMDUwNistMC4xNjUxICAgICA/ICAgICAyMS43MDkwKy0wLjYxOTggICAg
ICAgID8gbWlnaHQgYmUgMS4wMzEzeCBzbG93ZXIKICAgaW5saW5lLWFyZ3VtZW50cy1hY2Nlc3Mg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4xMjcwKy0wLjAzMjAgICAgICAgICAgICAyLjEx
MTcrLTAuMDY2MSAgICAgICAgCiAgIGlubGluZS1hcmd1bWVudHMtYWxpYXNlZC1hY2Nlc3MgICAg
ICAgICAgICAgICAgICAgIDEuODY1MSstMC4wMTE0ICAgICA/ICAgICAgMS45MTUwKy0wLjE1MjYg
ICAgICAgID8gbWlnaHQgYmUgMS4wMjY4eCBzbG93ZXIKICAgaW5saW5lLWFyZ3VtZW50cy1sb2Nh
bC1lc2NhcGUgICAgICAgICAgICAgICAgICAgICAxMi4wNDgwKy0wLjI5ODkgICAgID8gICAgIDEy
LjE0ODUrLTAuNDk3NiAgICAgICAgPwogICBpbmxpbmUtZ2V0LXNjb3BlZC12YXIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0LjUxMjUrLTAuMDUyNyAgICAgPyAgICAgIDQuNTczNSstMC4x
MTU0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEzNXggc2xvd2VyCiAgIGlubGluZWQtcHV0LWJ5LWlk
LXRyYW5zaXRpb24gICAgICAgICAgICAgICAgICAgICAgMTAuNzk5MSstMC44MDQ5ICAgICA/ICAg
ICAxMS4wNzc4Ky0wLjI2NTMgICAgICAgID8gbWlnaHQgYmUgMS4wMjU4eCBzbG93ZXIKICAgaW50
LW9yLW90aGVyLWFicy10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgNS4yOTg1Ky0w
LjAzODQgICAgID8gICAgICA1LjM1MjErLTAuMDQ5NiAgICAgICAgPyBtaWdodCBiZSAxLjAxMDF4
IHNsb3dlcgogICBpbnQtb3Itb3RoZXItYWJzLXplcm8tdGhlbi1nZXQtYnktdmFsICAgICAgICAg
ICAgIDE3Ljk5OTMrLTAuNjU4OSAgICAgICAgICAgMTcuOTY3MystMC4zOTQ2ICAgICAgICAKICAg
aW50LW9yLW90aGVyLWFkZC10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgNC42NTE2
Ky0wLjEzMDcgICAgID8gICAgICA0LjcxNDkrLTAuMjEzNCAgICAgICAgPyBtaWdodCBiZSAxLjAx
MzZ4IHNsb3dlcgogICBpbnQtb3Itb3RoZXItYWRkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA1LjczNDArLTAuMTM1OSAgICAgPyAgICAgIDUuODEyMCstMC4xNjM1ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDEzNnggc2xvd2VyCiAgIGludC1vci1vdGhlci1kaXYtdGhlbi1nZXQtYnkt
dmFsICAgICAgICAgICAgICAgICAgIDQuNjg1MystMC4wNTg4ICAgICA/ICAgICAgNC42ODY0Ky0w
LjI1MjQgICAgICAgID8KICAgaW50LW9yLW90aGVyLW1heC10aGVuLWdldC1ieS12YWwgICAgICAg
ICAgICAgICAgICAgNC44Mjc4Ky0wLjUzNjggICAgICAgICAgICA0Ljc1NzMrLTAuMzA5OCAgICAg
ICAgICBtaWdodCBiZSAxLjAxNDh4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItbWluLXRoZW4tZ2V0
LWJ5LXZhbCAgICAgICAgICAgICAgICAgICA0Ljg3NTMrLTAuMTI4NSAgICAgICAgICAgIDQuODQz
MistMC4wNDM2ICAgICAgICAKICAgaW50LW9yLW90aGVyLW1vZC10aGVuLWdldC1ieS12YWwgICAg
ICAgICAgICAgICAgICAgNC4zNjU4Ky0wLjE1MTYgICAgICAgICAgICA0LjM0MjUrLTAuMTYyNyAg
ICAgICAgCiAgIGludC1vci1vdGhlci1tdWwtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAg
ICAgIDQuMjIxNystMC4xMTUwICAgICA/ICAgICAgNC4yMzI0Ky0wLjA4MDcgICAgICAgID8KICAg
aW50LW9yLW90aGVyLW5lZy10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgNS4yNjcy
Ky0wLjI4ODEgICAgICAgICAgICA1LjE1ODgrLTAuMTIwNyAgICAgICAgICBtaWdodCBiZSAxLjAy
MTB4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItbmVnLXplcm8tdGhlbi1nZXQtYnktdmFsICAgICAg
ICAgICAgIDE4LjEzMjErLTAuNTc0OCAgICAgICAgICAgMTcuNzU4MystMC4xMjE0ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDIxMHggZmFzdGVyCiAgIGludC1vci1vdGhlci1zdWItdGhlbi1nZXQtYnkt
dmFsICAgICAgICAgICAgICAgICAgIDQuNjU3MistMC4xMDk0ICAgICA/ICAgICAgNC42NjY2Ky0w
LjEzOTYgICAgICAgID8KICAgaW50LW9yLW90aGVyLXN1YiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMy45MDA5Ky0wLjE4OTggICAgICAgICAgICAzLjg2ODcrLTAuMTE4MiAgICAg
ICAgCiAgIGludC1vdmVyZmxvdy1sb2NhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDQuODYxMCstMC42MzM1ICAgICAgICAgICAgNC42MTE1Ky0wLjEyMDYgICAgICAgICAgbWlnaHQg
YmUgMS4wNTQxeCBmYXN0ZXIKICAgSW50MTZBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAg
ICAgICAgICAgICAgICA0OC44NzE4Ky0xLjUxODYgICAgID8gICAgIDQ4Ljk5ODArLTEuNDk3MSAg
ICAgICAgPwogICBJbnQxNkFycmF5LWJ1YmJsZS1zb3J0LXdpdGgtYnl0ZUxlbmd0aCAgICAgICAg
ICAgIDIxLjMwNDgrLTAuNTg0OSAgICAgICAgICAgMjEuMTY0OCstMC40MjA3ICAgICAgICAKICAg
SW50MTZBcnJheS1idWJibGUtc29ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMi44NzE2
Ky0wLjY3MTEgICAgICAgICAgIDIyLjc1OTIrLTEuMDY1MiAgICAgICAgCiAgIEludDE2QXJyYXkt
bG9hZC1pbnQtbXVsICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNjc0OSstMC4wNTk0ICAg
ICAgICAgICAgMS42Mzk4Ky0wLjA0NjggICAgICAgICAgbWlnaHQgYmUgMS4wMjE0eCBmYXN0ZXIK
ICAgSW50MTZBcnJheS10by1JbnQzMkFycmF5LXNldCAgICAgICAgICAgICAgICAgICAgICA1NC4x
MjA1Ky0wLjM3MzQgICAgICEgICAgIDU5LjMwNjIrLTEuNzE4MiAgICAgICAgISBkZWZpbml0ZWx5
IDEuMDk1OHggc2xvd2VyCiAgIEludDMyQXJyYXktYWxsb2MtbGFyZ2UgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMjIuNDgzOCstMS4wNDc5ICAgICA/ICAgICAyMi45MzQ2Ky0xLjU4MzEgICAg
ICAgID8gbWlnaHQgYmUgMS4wMjAxeCBzbG93ZXIKICAgSW50MzJBcnJheS1hbGxvYy1sb25nLWxp
dmVkICAgICAgICAgICAgICAgICAgICAgICA1NC4yMjc3Ky0yLjM5NjMgICAgID8gICAgIDU1LjI2
MTkrLTUuODIwNyAgICAgICAgPyBtaWdodCBiZSAxLjAxOTF4IHNsb3dlcgogICBJbnQzMkFycmF5
LWFsbG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjQ2OTgrLTAuMDQwMCAg
ICAgISAgICAgIDIuNzE1NSstMC4xOTIwICAgICAgICAhIGRlZmluaXRlbHkgMS4wOTk1eCBzbG93
ZXIKICAgSW50MzJBcnJheS1JbnQ4QXJyYXktdmlldy1hbGxvYyAgICAgICAgICAgICAgICAgICAg
Ni44MDA1Ky0wLjU0ODEgICAgICAgICAgICA2LjYzOTYrLTAuMjcwOCAgICAgICAgICBtaWdodCBi
ZSAxLjAyNDJ4IGZhc3RlcgogICBpbnQ1Mi1zcGlsbCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA2Ljg1MDArLTAuMzAwMyAgICAgPyAgICAgIDYuOTcyOSstMC40Njg3ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDE3OXggc2xvd2VyCiAgIEludDhBcnJheS1hbGxvYy1sb25nLWxp
dmVkICAgICAgICAgICAgICAgICAgICAgICAgNDQuODExNSstMS40NTUwICAgICA/ICAgICA0Ni43
Mjc5Ky0yLjE5ODUgICAgICAgID8gbWlnaHQgYmUgMS4wNDI4eCBzbG93ZXIKICAgSW50OEFycmF5
LWxvYWQtd2l0aC1ieXRlTGVuZ3RoICAgICAgICAgICAgICAgICAgICAgMy42MDk2Ky0wLjEwNzYg
ICAgID8gICAgICAzLjYxMDUrLTAuMDQ3OCAgICAgICAgPwogICBJbnQ4QXJyYXktbG9hZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjU1NDQrLTAuMDQzOSAgICAgPyAgICAg
IDMuNjIxOCstMC4wMjg4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE5MHggc2xvd2VyCiAgIGludGVn
ZXItZGl2aWRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuNTE3MCstMC40
NjM0ICAgICAgICAgICAxMi4yMjkzKy0wLjE1NzUgICAgICAgICAgbWlnaHQgYmUgMS4wMjM1eCBm
YXN0ZXIKICAgaW50ZWdlci1tb2R1bG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMi4zNDIyKy0wLjE4NzEgICAgID8gICAgICAyLjQyMjIrLTAuMTM5NCAgICAgICAgPyBtaWdo
dCBiZSAxLjAzNDJ4IHNsb3dlcgogICBsYXJnZS1pbnQtY2FwdHVyZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA2LjEzMzMrLTAuMTMzOCAgICAgISAgICAgIDcuODE2NSstMC41MzA5
ICAgICAgICAhIGRlZmluaXRlbHkgMS4yNzQ0eCBzbG93ZXIKICAgbGFyZ2UtaW50LW5lZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi44NTEzKy0wLjMyNDEgICAgID8gICAg
IDE2LjkyMjMrLTAuMTAxOCAgICAgICAgPwogICBsYXJnZS1pbnQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDE2LjQzNDMrLTAuMjAyNCAgICAgICAgICAgMTYuMDI0OCst
MC41NzEwICAgICAgICAgIG1pZ2h0IGJlIDEuMDI1NXggZmFzdGVyCiAgIGxvZ2ljYWwtbm90ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuOTk2MistMC4wODA0ICAgICA/
ICAgICAgNS4wMDQzKy0wLjExNzQgICAgICAgID8KICAgbG90cy1vZi1maWVsZHMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxMC43NTI0Ky0wLjc4MTIgICAgICAgICAgIDEwLjE4
NzcrLTAuMjY2NiAgICAgICAgICBtaWdodCBiZSAxLjA1NTR4IGZhc3RlcgogICBtYWtlLWluZGV4
ZWQtc3RvcmFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjE0MTUrLTAuMjI2MiAg
ICAgPyAgICAgIDMuMTY2NistMC4xODkxICAgICAgICA/CiAgIG1ha2Utcm9wZS1jc2UgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMzQ4NSstMC4xOTM0ICAgICA/ICAgICAg
My42NDczKy0wLjIzNzMgICAgICAgID8gbWlnaHQgYmUgMS4wODkyeCBzbG93ZXIKICAgbWFyc2Fn
bGlhLWxhcmdlci1pbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MS4wMTc4Ky0xLjAx
MTYgICAgICAgICAgIDQxLjAwODIrLTEuMDY5MCAgICAgICAgCiAgIG1hcnNhZ2xpYS1vc3ItZW50
cnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMuNzY5OCstMC45MDk3ICAgICA/ICAg
ICAyNC41NDE3Ky0xLjU0OTAgICAgICAgID8gbWlnaHQgYmUgMS4wMzI1eCBzbG93ZXIKICAgbWF4
LWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi42NjUxKy0w
LjE4OTAgICAgID8gICAgICAyLjcyMDYrLTAuMjEyOCAgICAgICAgPyBtaWdodCBiZSAxLjAyMDh4
IHNsb3dlcgogICBtZXRob2Qtb24tbnVtYmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDE3LjU0OTQrLTAuNDk4NSAgICAgISAgICAgMTguODc2MistMC4zMTc1ICAgICAgICAhIGRl
ZmluaXRlbHkgMS4wNzU2eCBzbG93ZXIKICAgbWluLWJvb2xlYW4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMi42MDg4Ky0wLjA1MDEgICAgID8gICAgICAyLjc3MDkrLTAu
MTU1MiAgICAgICAgPyBtaWdodCBiZSAxLjA2MjF4IHNsb3dlcgogICBtaW51cy1ib29sZWFuLWRv
dWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjMxMjQrLTAuMDMzOCAgICAgPyAg
ICAgIDMuMzYyNSstMC4xNDkxICAgICAgICA/IG1pZ2h0IGJlIDEuMDE1MXggc2xvd2VyCiAgIG1p
bnVzLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNDg5NCst
MC4wNjk5ICAgICAgICAgICAgMi40NjkyKy0wLjAzNDEgICAgICAgIAogICBtaXNjLXN0cmljdC1l
cSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM5LjU3MzQrLTEuNzY0MCAgICAg
PyAgICAgNDAuOTY2MystNS45MDI2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM1Mnggc2xvd2VyCiAg
IG1vZC1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEuODk3
MCstMC44MTQyICAgICAgICAgICAxMS42OTcwKy0wLjM1ODMgICAgICAgICAgbWlnaHQgYmUgMS4w
MTcxeCBmYXN0ZXIKICAgbW9kLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOC4zNzY1Ky0wLjQwMDcgICAgICAgICAgICA4LjMxNDgrLTAuMjA1MSAgICAgICAg
CiAgIG11bC1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMu
OTYyNSstMC4wNDg0ICAgICAgICAgICAgMy45NDAzKy0wLjE0NzAgICAgICAgIAogICBtdWwtYm9v
bGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjA1MTYrLTAuMTcw
MCAgICAgICAgICAgIDMuMDI4MystMC4wNjY2ICAgICAgICAKICAgbmVnLWJvb2xlYW4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy40MDA4Ky0wLjE2ODMgICAgICAgICAg
ICAzLjM2NTIrLTAuMDg5MCAgICAgICAgICBtaWdodCBiZSAxLjAxMDZ4IGZhc3RlcgogICBuZWdh
dGl2ZS16ZXJvLWRpdmlkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjQyODIrLTAu
MDIxMiAgICAgPyAgICAgIDAuNDMyNistMC4wMTU3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwMXgg
c2xvd2VyCiAgIG5lZ2F0aXZlLXplcm8tbW9kdWxvICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDAuNDI0NSstMC4wMjEwICAgICAgICAgICAgMC40MTE0Ky0wLjA0MzEgICAgICAgICAgbWln
aHQgYmUgMS4wMzE5eCBmYXN0ZXIKICAgbmVnYXRpdmUtemVyby1uZWdhdGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMC4zODcwKy0wLjAzNTkgICAgICAgICAgICAwLjM4NTArLTAuMDMw
MCAgICAgICAgCiAgIG5lc3RlZC1mdW5jdGlvbi1wYXJzaW5nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMjQuMzYyMSstMC4zOTczICAgICBeICAgICAyMi4zNzU3Ky0wLjM5NDEgICAgICAgIF4g
ZGVmaW5pdGVseSAxLjA4ODh4IGZhc3RlcgogICBuZXctYXJyYXktYnVmZmVyLWRlYWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzLjAwNjQrLTAuMTA4NyAgICAgPyAgICAgIDMuMDE2NSst
MC4wODE1ICAgICAgICA/CiAgIG5ldy1hcnJheS1idWZmZXItcHVzaCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDYuODkyMCstMC40MjQ2ICAgICBeICAgICAgNi4wNTExKy0wLjIyMjAgICAg
ICAgIF4gZGVmaW5pdGVseSAxLjEzOTB4IGZhc3RlcgogICBuZXctYXJyYXktZGVhZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjMwMzgrLTEuMDcxMCAgICAgPyAgICAgMTMu
Mzk2MystMC43NDAzICAgICAgICA/CiAgIG5ldy1hcnJheS1wdXNoICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDUuMDI2MCstMC4xNTk3ICAgICBeICAgICAgMy44NjM4Ky0wLjQx
MjUgICAgICAgIF4gZGVmaW5pdGVseSAxLjMwMDh4IGZhc3RlcgogICBudW1iZXItdGVzdCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjIyMTMrLTAuMTMyNiAgICAgICAg
ICAgIDMuMjA5NistMC4yNzUzICAgICAgICAKICAgb2JqZWN0LWNsb3N1cmUtY2FsbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNS44ODUxKy0wLjIwNjcgICAgID8gICAgICA2LjAwNzQr
LTAuMzgwOSAgICAgICAgPyBtaWdodCBiZSAxLjAyMDh4IHNsb3dlcgogICBvYmplY3QtdGVzdCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjI3NjgrLTAuMTA5MSAgICAg
PyAgICAgIDMuMzI5MystMC4wOTQ0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE2MHggc2xvd2VyCiAg
IG9idmlvdXMtc2luay1wYXRob2xvZ3ktdGFrZW4gICAgICAgICAgICAgICAgICAgICAxMzEuMzgx
NystMS41MjM5ICAgICA/ICAgIDEzMi4wNDIzKy0wLjYwNDggICAgICAgID8KICAgb2J2aW91cy1z
aW5rLXBhdGhvbG9neSAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyNS41NjQ4Ky0xLjc1MDAg
ICAgID8gICAgMTI2LjI3NDkrLTEuMjg5NyAgICAgICAgPwogICBvYnZpb3VzbHktZWxpZGFibGUt
bmV3LW9iamVjdCAgICAgICAgICAgICAgICAgICAgIDM0LjUxNzUrLTAuODYzOSAgICAgPyAgICAg
MzUuMzY0NSstMi4wNTc1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI0NXggc2xvd2VyCiAgIHBsdXMt
Ym9vbGVhbi1hcml0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNjU3MistMC4w
MjQ4ICAgICA/ICAgICAgMi42ODY2Ky0wLjA5NDAgICAgICAgID8gbWlnaHQgYmUgMS4wMTEweCBz
bG93ZXIKICAgcGx1cy1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMy40MzI2Ky0wLjIzOTEgICAgICAgICAgICAzLjM3NzErLTAuMTYwOSAgICAgICAgICBtaWdo
dCBiZSAxLjAxNjR4IGZhc3RlcgogICBwbHVzLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyLjUyODcrLTAuMDI5NSAgICAgPyAgICAgIDIuNTU1MistMC4xNDM2
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwNXggc2xvd2VyCiAgIHBvbHktY2hhaW4tYWNjZXNzLWRp
ZmZlcmVudC1wcm90b3R5cGVzLXNpbXBsZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzLjU3MDErLTAuMTY3MSAgICAgICAgICAgIDMuNDQz
OCstMC4wNDUwICAgICAgICAgIG1pZ2h0IGJlIDEuMDM2N3ggZmFzdGVyCiAgIHBvbHktY2hhaW4t
YWNjZXNzLWRpZmZlcmVudC1wcm90b3R5cGVzICAgICAgICAgICAgIDIuODMxNystMC4xNjI4ICAg
ICAgICAgICAgMi43MTYyKy0wLjI4MDQgICAgICAgICAgbWlnaHQgYmUgMS4wNDI1eCBmYXN0ZXIK
ICAgcG9seS1jaGFpbi1hY2Nlc3Mtc2ltcGxlciAgICAgICAgICAgICAgICAgICAgICAgICAgMy40
OTczKy0wLjA3MjQgICAgID8gICAgICAzLjU5MTIrLTAuMDk3MSAgICAgICAgPyBtaWdodCBiZSAx
LjAyNjl4IHNsb3dlcgogICBwb2x5LWNoYWluLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyLjgwNDkrLTAuMjM1MSAgICAgICAgICAgIDIuNjAzMystMC4xNzQ0ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDc3NHggZmFzdGVyCiAgIHBvbHktc3RyaWN0ZXEgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNjAuMjkyOCstMi43NTg5ICAgICAgICAgICA2MC4wNzQ3
Ky0xLjg4MTYgICAgICAgIAogICBwb2x5bW9ycGhpYy1hcnJheS1jYWxsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxLjk4MjkrLTAuMjEwOSAgICAgXiAgICAgIDEuNzAxMCstMC4wMjcwICAg
ICAgICBeIGRlZmluaXRlbHkgMS4xNjU3eCBmYXN0ZXIKICAgcG9seW1vcnBoaWMtZ2V0LWJ5LWlk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy41ODA3Ky0wLjQyOTIgICAgICAgICAgICAz
LjQ0MjQrLTAuMTI5NSAgICAgICAgICBtaWdodCBiZSAxLjA0MDJ4IGZhc3RlcgogICBwb2x5bW9y
cGhpYy1wdXQtYnktaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwLjkxNjcrLTMuMzYw
OCAgICAgICAgICAgMjkuODI2NCstMS45NzI1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM2NnggZmFz
dGVyCiAgIHBvbHltb3JwaGljLXN0cnVjdHVyZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTUuNDQ1MSstMC4wOTcwICAgICA/ICAgICAxNS43MDQ3Ky0wLjYyNTAgICAgICAgID8gbWlnaHQg
YmUgMS4wMTY4eCBzbG93ZXIKICAgcG9seXZhcmlhbnQtbW9ub21vcnBoaWMtZ2V0LWJ5LWlkICAg
ICAgICAgICAgICAgICAgOS4yMTc2Ky0wLjE0MzMgICAgID8gICAgICA5LjI2MjErLTAuMDQzMCAg
ICAgICAgPwogICBwcm90by1nZXR0ZXItYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEwLjY4NDgrLTAuNDEzMiAgICAgPyAgICAgMTAuOTU2NSstMC41NDIzICAgICAgICA/IG1p
Z2h0IGJlIDEuMDI1NHggc2xvd2VyCiAgIHB1dC1ieS1pZC1yZXBsYWNlLWFuZC10cmFuc2l0aW9u
ICAgICAgICAgICAgICAgICAgIDguMzU1NystMC4xMDE4ICAgICAhICAgICAgOS4wMzIyKy0wLjE3
NjQgICAgICAgICEgZGVmaW5pdGVseSAxLjA4MTB4IHNsb3dlcgogICBwdXQtYnktaWQtc2xpZ2h0
bHktcG9seW1vcnBoaWMgICAgICAgICAgICAgICAgICAgICAzLjExOTYrLTAuMTkzMiAgICAgPyAg
ICAgIDMuMjExNystMC4xMTAwICAgICAgICA/IG1pZ2h0IGJlIDEuMDI5NXggc2xvd2VyCiAgIHB1
dC1ieS1pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuNTUwMist
MC4zNjg4ICAgICAhICAgICAxMy41OTk0Ky0wLjM4MTEgICAgICAgICEgZGVmaW5pdGVseSAxLjA4
MzZ4IHNsb3dlcgogICBwdXQtYnktdmFsLWRpcmVjdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAwLjY3ODgrLTAuMDM2NyAgICAgPyAgICAgIDAuNjc5OCstMC4wMjcxICAgICAgICA/
CiAgIHB1dC1ieS12YWwtbGFyZ2UtaW5kZXgtYmxhbmstaW5kZXhpbmctdHlwZSAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjQyODcrLTAu
MzU0MCAgICAgISAgICAgIDYuNDQxMCstMC40NjQwICAgICAgICAhIGRlZmluaXRlbHkgMS4xODY1
eCBzbG93ZXIKICAgcHV0LWJ5LXZhbC1tYWNoaW5lLWludCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi41MDA4Ky0wLjA1NjEgICAgID8gICAgICAyLjUzMDQrLTAuMTYzMiAgICAgICAgPyBt
aWdodCBiZSAxLjAxMTh4IHNsb3dlcgogICByYXJlLW9zci1leGl0LW9uLWxvY2FsICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDE2LjA2NDkrLTAuNzc0NyAgICAgICAgICAgMTUuNzc0OCstMC42
MDk5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE4NHggZmFzdGVyCiAgIHJlZ2lzdGVyLXByZXNzdXJl
LWZyb20tb3NyICAgICAgICAgICAgICAgICAgICAgICAgMjIuOTA1OSstMC40MDc0ICAgICA/ICAg
ICAyMy4zMjU1Ky0xLjAxNzAgICAgICAgID8gbWlnaHQgYmUgMS4wMTgzeCBzbG93ZXIKICAgc2V0
dGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS44NTMwKy0w
LjE5NzIgICAgID8gICAgICA3LjY5NDgrLTYuMDE0MiAgICAgICAgPyBtaWdodCBiZSAxLjMxNDd4
IHNsb3dlcgogICBzaW1wbGUtYWN0aXZhdGlvbi1kZW1vICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDI2LjM5MDArLTAuNDA4MyAgICAgPyAgICAgMjYuODk0NystMC45ODgwICAgICAgICA/IG1p
Z2h0IGJlIDEuMDE5MXggc2xvd2VyCiAgIHNpbXBsZS1nZXR0ZXItYWNjZXNzICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTMuODA5OCstMC40NzM0ICAgICA/ICAgICAxMy45OTg0Ky0wLjY4
OTIgICAgICAgID8gbWlnaHQgYmUgMS4wMTM3eCBzbG93ZXIKICAgc2ltcGxlLXBvbHktY2FsbC1u
ZXN0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAxNy4yMzU4Ky0wLjQ3NzggICAgID8gICAg
IDE3LjM1ODUrLTAuMjQ3MSAgICAgICAgPwogICBzaW1wbGUtcG9seS1jYWxsICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxLjU1NTMrLTAuMTEwMiAgICAgICAgICAgIDEuNTQzNist
MC4wODczICAgICAgICAKICAgc2luLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxOS42OTE3Ky0wLjQ4NjcgICAgID8gICAgIDIxLjc1NDUrLTMuOTcwNCAgICAg
ICAgPyBtaWdodCBiZSAxLjEwNDh4IHNsb3dlcgogICBzaW5rYWJsZS1uZXctb2JqZWN0LWRhZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDY5LjUxMDMrLTAuODA0NSAgICAgPyAgICAgNjkuOTcx
OCstMS4yMDQxICAgICAgICA/CiAgIHNpbmthYmxlLW5ldy1vYmplY3QtdGFrZW4gICAgICAgICAg
ICAgICAgICAgICAgICAgNTQuMjI2MystMy44NTAyICAgICAgICAgICA1Mi45NjQ1Ky00LjExMDUg
ICAgICAgICAgbWlnaHQgYmUgMS4wMjM4eCBmYXN0ZXIKICAgc2lua2FibGUtbmV3LW9iamVjdCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzOC4zNDIwKy0xLjE0OTMgICAgID8gICAgIDM4
LjUxMjErLTEuMDAwMSAgICAgICAgPwogICBzbG93LWFycmF5LXByb2ZpbGUtY29udmVyZ2VuY2Ug
ICAgICAgICAgICAgICAgICAgICAzLjEzMTArLTAuNDgwMiAgICAgICAgICAgIDMuMTE4MystMC4x
OTAxICAgICAgICAKICAgc2xvdy1jb252ZXJnZW5jZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMy41MzI4Ky0wLjMwNjkgICAgICAgICAgICAzLjQ1MjErLTAuMTU5OCAgICAgICAg
ICBtaWdodCBiZSAxLjAyMzR4IGZhc3RlcgogICBzcGFyc2UtY29uZGl0aW9uYWwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxLjMzNDQrLTAuMDY1MSAgICAgICAgICAgIDEuMzE2MSst
MC4wMTU5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEzOXggZmFzdGVyCiAgIHNwbGljZS10by1yZW1v
dmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYuOTc3NystMC40MjE3ICAgICAg
ICAgICAxNi42NzMxKy0wLjQxMTEgICAgICAgICAgbWlnaHQgYmUgMS4wMTgzeCBmYXN0ZXIKICAg
c3RyaW5nLWNoYXItY29kZS1hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNy4zMTA5
Ky0wLjQ1ODEgICAgICAgICAgIDE3LjE1MTcrLTAuNjQxNSAgICAgICAgCiAgIHN0cmluZy1jb25j
YXQtb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuOTgxNSstMC4yMjMxICAg
ICAgICAgICAgMS44NTAwKy0wLjA5NDcgICAgICAgICAgbWlnaHQgYmUgMS4wNzExeCBmYXN0ZXIK
ICAgc3RyaW5nLWNvbmNhdC1wYWlyLW9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgMS44
NTM1Ky0wLjAzNTMgICAgICAgICAgICAxLjgzMDQrLTAuMDU2NCAgICAgICAgICBtaWdodCBiZSAx
LjAxMjZ4IGZhc3RlcgogICBzdHJpbmctY29uY2F0LXBhaXItc2ltcGxlICAgICAgICAgICAgICAg
ICAgICAgICAgIDEwLjg4OTYrLTAuNTE4MiAgICAgPyAgICAgMTEuNTQ5MCstMS4wNzg5ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDYwNnggc2xvd2VyCiAgIHN0cmluZy1jb25jYXQtc2ltcGxlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTAuNzU2OCstMC4zMzEyICAgICA/ICAgICAxMS43MjE1
Ky0wLjc1ODUgICAgICAgID8gbWlnaHQgYmUgMS4wODk3eCBzbG93ZXIKICAgc3RyaW5nLWNvbnMt
cmVwZWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi42MzI4Ky0wLjIyNTMgICAg
ICEgICAgICA3LjU0ODUrLTAuNTY2MiAgICAgICAgISBkZWZpbml0ZWx5IDEuMTM4MHggc2xvd2Vy
CiAgIHN0cmluZy1jb25zLXRvd2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYu
NjMwMCstMC4zMDk0ICAgICAhICAgICAgNy43NjIzKy0wLjcwOTkgICAgICAgICEgZGVmaW5pdGVs
eSAxLjE3MDh4IHNsb3dlcgogICBzdHJpbmctZXF1YWxpdHkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDE5LjMwODUrLTAuNjQxMCAgICAgICAgICAgMTguOTY1MystMC40MjU1ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDE4MXggZmFzdGVyCiAgIHN0cmluZy1nZXQtYnktdmFsLWJpZy1j
aGFyICAgICAgICAgICAgICAgICAgICAgICAgIDcuMzc0MSstMC4xNDA4ICAgICAgICAgICAgNy4x
OTUzKy0wLjExMTIgICAgICAgICAgbWlnaHQgYmUgMS4wMjQ4eCBmYXN0ZXIKICAgc3RyaW5nLWdl
dC1ieS12YWwtb3V0LW9mLWJvdW5kcy1pbnNhbmUgICAgICAgICAgICAgNC4wMzE5Ky0wLjExMjkg
ICAgID8gICAgICA0LjExMjIrLTAuMTk3OSAgICAgICAgPyBtaWdodCBiZSAxLjAxOTl4IHNsb3dl
cgogICBzdHJpbmctZ2V0LWJ5LXZhbC1vdXQtb2YtYm91bmRzICAgICAgICAgICAgICAgICAgICA1
LjcxODcrLTAuMjAwMSAgICAgPyAgICAgIDUuODI3MSstMC42NDIwICAgICAgICA/IG1pZ2h0IGJl
IDEuMDE5MHggc2xvd2VyCiAgIHN0cmluZy1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDMuNTI4MSstMC4xNDY0ICAgICAgICAgICAgMy40NDE3Ky0wLjEyMjggICAg
ICAgICAgbWlnaHQgYmUgMS4wMjUxeCBmYXN0ZXIKICAgc3RyaW5nLWhhc2ggICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4zMDI3Ky0wLjEzODIgICAgID8gICAgICAyLjM5
MDUrLTAuMTM3OSAgICAgICAgPyBtaWdodCBiZSAxLjAzODF4IHNsb3dlcgogICBzdHJpbmctbG9u
Zy1pZGVudC1lcXVhbGl0eSAgICAgICAgICAgICAgICAgICAgICAgIDE3LjA1MzQrLTAuNDEwOCAg
ICAgICAgICAgMTYuNzg1NSstMS4wNDIyICAgICAgICAgIG1pZ2h0IGJlIDEuMDE2MHggZmFzdGVy
CiAgIHN0cmluZy1yZXBlYXQtYXJpdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzQu
OTQ5NSstMC4zOTgyICAgICBeICAgICAzMi45ODc2Ky0wLjkzNDkgICAgICAgIF4gZGVmaW5pdGVs
eSAxLjA1OTV4IGZhc3RlcgogICBzdHJpbmctc3ViICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDY3LjEwMTgrLTUuMDk5MCAgICAgPyAgICAgNjcuNjU4MCstMi4xNTIxICAg
ICAgICA/CiAgIHN0cmluZy10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMuMTM3NystMC4wMzIyICAgICAgICAgICAgMy4xMTc5Ky0wLjExMTUgICAgICAgIAogICBz
dHJpbmctdmFyLWVxdWFsaXR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyLjQ0MjMr
LTAuNjg0MyAgICAgICAgICAgMzIuMTYxMCstMC41NzE1ICAgICAgICAKICAgc3RydWN0dXJlLWhv
aXN0LW92ZXItdHJhbnNpdGlvbnMgICAgICAgICAgICAgICAgICAgMi41OTUwKy0wLjE5MTIgICAg
ICAgICAgICAyLjQ1MzMrLTAuMDM0NCAgICAgICAgICBtaWdodCBiZSAxLjA1Nzd4IGZhc3Rlcgog
ICBzdWJzdHJpbmctY29uY2F0LXdlaXJkICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM4LjQ1
NDMrLTAuMzQ0MCAgICAgISAgICAgMzkuMTg0OCstMC4zMjc0ICAgICAgICAhIGRlZmluaXRlbHkg
MS4wMTkweCBzbG93ZXIKICAgc3Vic3RyaW5nLWNvbmNhdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA0MC4zMjkwKy0wLjM1MjcgICAgID8gICAgIDQxLjI0MzErLTEuNTY5MSAgICAg
ICAgPyBtaWdodCBiZSAxLjAyMjd4IHNsb3dlcgogICBzdWJzdHJpbmcgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDQ2LjI4MDkrLTEuMjE4NSAgICAgPyAgICAgNDcuMTM5
MCstMS4wNzIzICAgICAgICA/IG1pZ2h0IGJlIDEuMDE4NXggc2xvd2VyCiAgIHN3aXRjaC1jaGFy
LWNvbnN0YW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTYyMCstMC4wNTIxICAg
ICAgICAgICAgMi45MzUxKy0wLjAzMTggICAgICAgIAogICBzd2l0Y2gtY2hhciAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjA4NDArLTAuMDU3NyAgICAgPyAgICAgIDcu
MTE2OCstMC4wMzU1ICAgICAgICA/CiAgIHN3aXRjaC1jb25zdGFudCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTAuNTk1OSstMC40NDQ5ICAgICBeICAgICAgNy45OTYwKy0wLjE1
ODMgICAgICAgIF4gZGVmaW5pdGVseSAxLjMyNTJ4IGZhc3RlcgogICBzd2l0Y2gtc3RyaW5nLWJh
c2ljLWJpZy12YXIgICAgICAgICAgICAgICAgICAgICAgIDE1LjczNjUrLTEuMzI0MCAgICAgICAg
ICAgMTUuMjkxNystMC4xOTE0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI5MXggZmFzdGVyCiAgIHN3
aXRjaC1zdHJpbmctYmFzaWMtYmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQuNjQ5MCst
MC4xOTUwICAgICA/ICAgICAxNC43NzI3Ky0wLjQxMTggICAgICAgID8KICAgc3dpdGNoLXN0cmlu
Zy1iYXNpYy12YXIgICAgICAgICAgICAgICAgICAgICAgICAgICAxNS4zMjg0Ky0wLjMyMTMgICAg
ID8gICAgIDE1LjQ0MDcrLTAuNDgxMCAgICAgICAgPwogICBzd2l0Y2gtc3RyaW5nLWJhc2ljICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0LjE0MTgrLTAuMzA4MyAgICAgPyAgICAgMTQu
MTU1NSstMC41NTY4ICAgICAgICA/CiAgIHN3aXRjaC1zdHJpbmctYmlnLWxlbmd0aC10b3dlci12
YXIgICAgICAgICAgICAgICAgMjAuODk3MSstMC42MzUzICAgICAgICAgICAyMC42NDE1Ky0wLjEz
MzIgICAgICAgICAgbWlnaHQgYmUgMS4wMTI0eCBmYXN0ZXIKICAgc3dpdGNoLXN0cmluZy1sZW5n
dGgtdG93ZXItdmFyICAgICAgICAgICAgICAgICAgICAxNS42Nzc2Ky0wLjg2ODYgICAgICAgICAg
IDE1LjY1MzMrLTAuNTI5OCAgICAgICAgCiAgIHN3aXRjaC1zdHJpbmctbGVuZ3RoLXRvd2VyICAg
ICAgICAgICAgICAgICAgICAgICAgMTMuMjU2NystMC4yNzMxICAgICA/ICAgICAxMy4yOTE4Ky0w
LjUwMDcgICAgICAgID8KICAgc3dpdGNoLXN0cmluZy1zaG9ydCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMy4xODcwKy0wLjkxMzkgICAgID8gICAgIDEzLjIzOTkrLTAuNDg2MyAgICAg
ICAgPwogICBzd2l0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEzLjQ2OTErLTMuNTEyNCAgICAgICAgICAgMTIuNTMyMistMS4xNjcwICAgICAgICAgIG1pZ2h0
IGJlIDEuMDc0OHggZmFzdGVyCiAgIHRlYXItb2ZmLWFyZ3VtZW50cy1zaW1wbGUgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuNTY3NystMC4wMjc1ICAgICA/ICAgICAgMi42NDkzKy0wLjEyOTAg
ICAgICAgID8gbWlnaHQgYmUgMS4wMzE4eCBzbG93ZXIKICAgdGVhci1vZmYtYXJndW1lbnRzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43NjIwKy0wLjEwNjIgICAgID8gICAgICAz
LjgzNTUrLTAuMDMyNyAgICAgICAgPyBtaWdodCBiZSAxLjAxOTV4IHNsb3dlcgogICB0ZW1wb3Jh
bC1zdHJ1Y3R1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjIzMDIrLTAuOTQx
NCAgICAgICAgICAgMTMuMDg5NSstMC40NDgyICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwN3ggZmFz
dGVyCiAgIHRvLWludDMyLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTQuNTI2OSstMC4zNjgxICAgICAgICAgICAxNC4xOTM1Ky0wLjIzMTUgICAgICAgICAgbWlnaHQg
YmUgMS4wMjM1eCBmYXN0ZXIKICAgdW5kZWZpbmVkLXByb3BlcnR5LWFjY2VzcyAgICAgICAgICAg
ICAgICAgICAgICAgIDQwMy41MjQ0Ky0xLjYxODYgICAgICAgICAgNDAxLjg5MjcrLTAuNzc3MyAg
ICAgICAgCiAgIHVuZGVmaW5lZC10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMuMjQ0MCstMC4xMTgzICAgICAgICAgICAgMy4xODI1Ky0wLjA3MzkgICAgICAgICAgbWln
aHQgYmUgMS4wMTkzeCBmYXN0ZXIKICAgdW5wcm9maWxlZC1saWNtICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyMy4yNzg1Ky0wLjgxMjcgICAgID8gICAgIDIzLjQzMzArLTEuMDE1
MyAgICAgICAgPwogICB3ZWlyZC1pbmxpbmluZy1jb25zdC1wcm9wICAgICAgICAgICAgICAgICAg
ICAgICAgICAyLjE3OTQrLTAuMDI0NSAgICAgPyAgICAgIDIuMTg0NSstMC4wNjY4ICAgICAgICA/
CgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4
LjEwMDIrLTAuMDczMyAgICAgICAgICAgMTguMDc1OSstMC4xMTU2ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDAxM3ggZmFzdGVyCiAgIDxnZW9tZXRyaWM+ICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDguNjA4MSstMC4wMTk1ICAgICAgICAgICAgOC41OTY0Ky0wLjAyNjMgICAg
ICAgICAgbWlnaHQgYmUgMS4wMDE0eCBmYXN0ZXIKICAgPGhhcm1vbmljPiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNC41NjI2Ky0wLjAzODAgICAgICAgICAgICA0LjUz
MTErLTAuMDI3MiAgICAgICAgICBtaWdodCBiZSAxLjAwNzB4IGZhc3RlcgoKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFzZWxpbmUgICAg
ICAgICAgICAgICAgICAgUGF0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKQXNtQmVuY2g6CiAgIGJpZ2ZpYi5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA1MzMuNTk3MistMC4yOTU0ICAgICA/ICAgIDUzNC41Nzc0Ky0zLjI1ODkgICAgICAg
ID8KICAgY3JheS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUw
OC4yMDQzKy0yNS4yMjQwICAgID8gICAgNTExLjkxMDUrLTM1Ljk3MzMgICAgICAgPwogICBkcnku
YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTI3LjE3OTYrLTEu
ODk1MyAgICAgPyAgICA1MzIuNDY4NistMTYuNjM5NiAgICAgICA/IG1pZ2h0IGJlIDEuMDEwMHgg
c2xvd2VyCiAgIEZsb2F0TU0uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA4MzkuMzEyNistMjkuMjk0OCAgICA/ICAgIDg0NC4wMzAxKy02MC4zOTUzICAgICAgID8KICAg
Z2NjLWxvb3BzLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDM4Ny4xMTQz
Ky04LjcxMzcgICAgID8gICA0Mzk5LjUwMjkrLTM2LjAzNDQgICAgICAgPwogICBuLWJvZHkuYyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDUzLjI4MDcrLTcuMjI2OSAg
ICAgPyAgIDEwNTYuNjM0NistMy4zNDE4ICAgICAgICA/CiAgIFF1aWNrc29ydC5jICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NzUuMjk1MCstMTUuMDkyMiAgICAgICAgIDQ3
Mi4yNjIwKy0xOC4yODgxICAgICAgIAogICBzdGVwYW5vdl9jb250YWluZXIuY3BwICAgICAgICAg
ICAgICAgICAgICAgICAgICAzOTU5LjUyMDgrLTM0LjM1MjIgICAgICAgIDM5NTcuMDczNCstMTQu
NzE5NCAgICAgICAKICAgVG93ZXJzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDI3OS40OTgwKy0xLjc5MDIgICAgID8gICAgMjgwLjMzNTMrLTAuOTE1NSAgICAgICAg
PwoKICAgPGFyaXRobWV0aWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTM5
NS44ODkyKy05LjYxMTggICAgID8gICAxMzk4Ljc1NTArLTguMTcwNyAgICAgICAgPyBtaWdodCBi
ZSAxLjAwMjF4IHNsb3dlcgogICA8Z2VvbWV0cmljPiAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgODcxLjk5NjgrLTExLjU4MTEgICAgPyAgICA4NzQuNDY3MistOS41MTQ0ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDAyOHggc2xvd2VyCiAgIDxoYXJtb25pYz4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA2NDAuODcyMSstOS45MTc4ICAgICA/ICAgIDY0Mi43
MDI3Ky03LjY4ODkgICAgICAgID8gbWlnaHQgYmUgMS4wMDI5eCBzbG93ZXIKCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhc2VsaW5lICAg
ICAgICAgICAgICAgICAgIFBhdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCkNvbXByZXNzaW9uQmVuY2g6CiAgIGh1ZmZtYW4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA1MjAuNDI4OCstMi40NjE3ICAgICBeICAgIDM5My4wNDE5Ky0xLjEz
NDIgICAgICAgIF4gZGVmaW5pdGVseSAxLjMyNDF4IGZhc3RlcgogICBhcml0aG1ldGljLXNpbXBs
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDU2LjQzMzArLTEuODcyNCAgICAgXiAg
ICA0NDcuMTM5MSstMS4xMjYxICAgICAgICBeIGRlZmluaXRlbHkgMS4wMjA4eCBmYXN0ZXIKICAg
YXJpdGhtZXRpYy1wcmVjaXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMzOC40NzIw
Ky0yLjIwOTIgICAgIF4gICAgMzI4Ljc2MDMrLTEuNDQzMCAgICAgICAgXiBkZWZpbml0ZWx5IDEu
MDI5NXggZmFzdGVyCiAgIGFyaXRobWV0aWMtY29tcGxleC1wcmVjaXNlICAgICAgICAgICAgICAg
ICAgICAgICAzMzUuMDg4MCstMi4zMjYzICAgICBeICAgIDMyNy4wNTM2Ky0zLjU1ODUgICAgICAg
IF4gZGVmaW5pdGVseSAxLjAyNDZ4IGZhc3RlcgogICBhcml0aG1ldGljLXByZWNpc2Utb3JkZXIt
MCAgICAgICAgICAgICAgICAgICAgICAgNTAwLjQ1MjIrLTE3LjI3NDAgICAgICAgICA0ODMuMDY5
MystNi40NDIwICAgICAgICAgIG1pZ2h0IGJlIDEuMDM2MHggZmFzdGVyCiAgIGFyaXRobWV0aWMt
cHJlY2lzZS1vcmRlci0xICAgICAgICAgICAgICAgICAgICAgICAzODQuNzg3MystNi4zMzQ3ICAg
ICBeICAgIDM2Ni45MTQ5Ky00LjAzMDAgICAgICAgIF4gZGVmaW5pdGVseSAxLjA0ODd4IGZhc3Rl
cgogICBhcml0aG1ldGljLXByZWNpc2Utb3JkZXItMiAgICAgICAgICAgICAgICAgICAgICAgNDM4
Ljc0OTgrLTQuMTM3MCAgICAgXiAgICA0MjYuMDE4NystNC44NTM0ICAgICAgICBeIGRlZmluaXRl
bHkgMS4wMjk5eCBmYXN0ZXIKICAgYXJpdGhtZXRpYy1zaW1wbGUtb3JkZXItMSAgICAgICAgICAg
ICAgICAgICAgICAgIDQ5OS4wMTgzKy0xLjk5MzggICAgIF4gICAgNDg3LjA3MzcrLTMuNTk4MyAg
ICAgICAgXiBkZWZpbml0ZWx5IDEuMDI0NXggZmFzdGVyCiAgIGFyaXRobWV0aWMtc2ltcGxlLW9y
ZGVyLTIgICAgICAgICAgICAgICAgICAgICAgICA1NjUuMTkxMCstOS4zNzA3ICAgICBeICAgIDU1
Mi4zOTUxKy0yLjU3MzggICAgICAgIF4gZGVmaW5pdGVseSAxLjAyMzJ4IGZhc3RlcgogICBsei1z
dHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzE1LjcyMDErLTIu
OTQzNCAgICAgICAgICAzMTEuNDQ5NistMTMuOTY2MSAgICAgICAgIG1pZ2h0IGJlIDEuMDEzN3gg
ZmFzdGVyCgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNDM1LjQzNDArLTEuNDE3OCAgICAgXiAgICA0MTIuMjkxNistMS4yMzgzICAgICAgICBeIGRl
ZmluaXRlbHkgMS4wNTYxeCBmYXN0ZXIKICAgPGdlb21ldHJpYz4gKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQyNy4yMzg5Ky0xLjI2MzIgICAgIF4gICAgNDA1LjI3MTErLTEu
NzczOSAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDU0MnggZmFzdGVyCiAgIDxoYXJtb25pYz4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MTguOTQ5MystMS4xMDQyICAgICBe
ICAgIDM5OC40MTk2Ky0yLjM3OTkgICAgICAgIF4gZGVmaW5pdGVseSAxLjA1MTV4IGZhc3RlcgoK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QmFzZWxpbmUgICAgICAgICAgICAgICAgICAgUGF0Y2ggICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKQWxsIGJlbmNobWFya3M6CiAgIDxhcml0aG1ldGljPiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxMDUuODY2OSstMC40NDgyICAgICBeICAgIDEwNC40
NjgwKy0wLjQ3ODUgICAgICAgIF4gZGVmaW5pdGVseSAxLjAxMzR4IGZhc3RlcgogICA8Z2VvbWV0
cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0LjI0NjIrLTAuMDA5
NCAgICAgXiAgICAgMTQuMTc2MCstMC4wMTMyICAgICAgICBeIGRlZmluaXRlbHkgMS4wMDUweCBm
YXN0ZXIKICAgPGhhcm1vbmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMy42Njk0Ky0wLjAyODAgICAgICAgICAgICAzLjYzOTQrLTAuMDE3NSAgICAgICAgICBtaWdo
dCBiZSAxLjAwODJ4IGZhc3RlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQmFzZWxpbmUgICAgICAgICAgICAgICAgICAgUGF0Y2ggICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKR2VvbWVhbiBvZiBwcmVmZXJyZWQg
bWVhbnM6CiAgIDxzY2FsZWQtcmVzdWx0PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNjkuNTQzMistMC4yNjgxICAgICBeICAgICA2OC42MzE0Ky0wLjE4NjMgICAgICAgIF4gZGVm
aW5pdGVseSAxLjAxMzN4IGZhc3RlcgoKPT09PT0Kfi9PcGVuU291cmNlPiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245382</attachid>
            <date>2015-01-26 15:40:56 -0800</date>
            <delta_ts>2015-03-05 19:41:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140900-20150126154059.patch</filename>
            <type>text/plain</type>
            <size>92233</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc5MTQxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyOSBA
QAorMjAxNS0wMS0yNiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFVzZSBGYXN0TWFsbG9jIChibWFsbG9jKSBpbnN0ZWFkIG9mIEJsb2NrQWxsb2NhdG9yIGZv
ciBHQyBwYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQwOTAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVtb3ZlcyBzb21lIG1vcmUgY3VzdG9tIGFsbG9jYXRpb24gY29kZS4KKworICAgICAgICBM
b29rcyBsaWtlIGEgc3BlZWR1cC4gV2lsbCBob3BlZnVsbHkgcmVkdWNlIG1lbW9yeSB1c2UgYnkg
aW1wcm92aW5nCisgICAgICAgIHNoYXJpbmcgYmV0d2VlbiB0aGUgR0MgYW5kIG1hbGxvYyBoZWFw
cy4KKworICAgICAgICAqIEFQSS9KU0Jhc2UuY3BwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBGZWVkIHRoZSBjb21waWxlci4K
KworICAgICAgICAqIGhlYXAvQmxvY2tBbGxvY2F0b3IuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IGhlYXAvQmxvY2tBbGxvY2F0b3IuaDogUmVtb3ZlZC4gTm8gbmVlZCBmb3IgYSBjdXN0b20gYWxs
b2NhdG9yIGFueW1vcmUuCisKKyAgICAgICAgKiBoZWFwL0NvZGVCbG9ja1NldC5jcHA6CisgICAg
ICAgIChKU0M6OkNvZGVCbG9ja1NldDo6Q29kZUJsb2NrU2V0KToKKyAgICAgICAgKiBoZWFwL0Nv
ZGVCbG9ja1NldC5oOiBGZWVkIHRoZSBjb21waWxlci4KKworICAgICAgICAqIGhlYXAvQ29waWVk
QmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29waWVkQmxvY2s6OmNyZWF0ZU5vWmVyb0ZpbGwpOgor
ICAgICAgICAoSlNDOjpDb3BpZWRCbG9jazo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6Q29waWVk
QmxvY2s6OkNvcGllZEJsb2NrKToKKyAgICAgICAgKEpTQzo6Q29waWVkQmxvY2s6OmlzT3ZlcnNp
emUpOgorICAgICAgICAoSlNDOjpDb3BpZWRCbG9jazo6cGF5bG9hZEVuZCk6CisgICAgICAgIChK
U0M6OkNvcGllZEJsb2NrOjpjYXBhY2l0eSk6CisgICAgICAgICogaGVhcC9Db3BpZWRCbG9ja0lu
bGluZXMuaDoKKyAgICAgICAgKEpTQzo6Q29waWVkQmxvY2s6OnJlcG9ydExpdmVCeXRlcyk6IEVh
Y2ggY29waWVkIGJsb2NrIG5vdyB0cmFja3MgaXRzCisgICAgICAgIG93biBzaXplLCBzaW5jZSB3
ZSBjYW4ndCByZWx5IG9uIFJlZ2lvbiB0byB0ZWxsIHVzIG91ciBzaXplIGFueW1vcmUuCisKKyAg
ICAgICAgKiBoZWFwL0NvcGllZFNwYWNlLmNwcDoKKyAgICAgICAgKEpTQzo6Q29waWVkU3BhY2U6
On5Db3BpZWRTcGFjZSk6CisgICAgICAgIChKU0M6OkNvcGllZFNwYWNlOjp0cnlBbGxvY2F0ZU92
ZXJzaXplKToKKyAgICAgICAgKEpTQzo6Q29waWVkU3BhY2U6OnRyeVJlYWxsb2NhdGVPdmVyc2l6
ZSk6CisgICAgICAgICogaGVhcC9Db3BpZWRTcGFjZUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6
Q29waWVkU3BhY2U6OnJlY3ljbGVFdmFjdWF0ZWRCbG9jayk6CisgICAgICAgIChKU0M6OkNvcGll
ZFNwYWNlOjpyZWN5Y2xlQm9ycm93ZWRCbG9jayk6CisgICAgICAgIChKU0M6OkNvcGllZFNwYWNl
OjphbGxvY2F0ZUJsb2NrRm9yQ29weWluZ1BoYXNlKToKKyAgICAgICAgKEpTQzo6Q29waWVkU3Bh
Y2U6OmFsbG9jYXRlQmxvY2spOgorICAgICAgICAoSlNDOjpDb3BpZWRTcGFjZTo6c3RhcnRlZENv
cHlpbmcpOiBEZWFsbG9jYXRlIGJsb2NrcyBkaXJlY3RseSwgcmF0aGVyCisgICAgICAgIHRoYW4g
cHVzaGluZyB0aGVtIG9udG8gdGhlIGJsb2NrIGFsbG9jYXRvcidzIGZyZWUgbGlzdDsgdGhlIGJs
b2NrCisgICAgICAgIGFsbG9jYXRvciBkb2Vzbid0IGV4aXN0IGFueW1vcmUuCisKKyAgICAgICAg
KiBoZWFwL0NvcHlXb3JrTGlzdC5oOgorICAgICAgICAoSlNDOjpDb3B5V29ya0xpc3RTZWdtZW50
OjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpDb3B5V29ya0xpc3RTZWdtZW50OjpDb3B5V29ya0xp
c3RTZWdtZW50KToKKyAgICAgICAgKEpTQzo6Q29weVdvcmtMaXN0Ojp+Q29weVdvcmtMaXN0KToK
KyAgICAgICAgKEpTQzo6Q29weVdvcmtMaXN0OjphcHBlbmQpOgorICAgICAgICAoSlNDOjpDb3B5
V29ya0xpc3Q6OkNvcHlXb3JrTGlzdCk6IERlbGV0ZWQuCisgICAgICAgICogaGVhcC9HQ1NlZ21l
bnRlZEFycmF5Lmg6CisgICAgICAgIChKU0M6OkdDQXJyYXlTZWdtZW50OjpHQ0FycmF5U2VnbWVu
dCk6CisgICAgICAgICogaGVhcC9HQ1NlZ21lbnRlZEFycmF5SW5saW5lcy5oOgorICAgICAgICAo
SlNDOjpHQ1NlZ21lbnRlZEFycmF5PFQ+OjpHQ1NlZ21lbnRlZEFycmF5KToKKyAgICAgICAgKEpT
Qzo6R0NTZWdtZW50ZWRBcnJheTxUPjo6fkdDU2VnbWVudGVkQXJyYXkpOgorICAgICAgICAoSlND
OjpHQ1NlZ21lbnRlZEFycmF5PFQ+OjpjbGVhcik6CisgICAgICAgIChKU0M6OkdDU2VnbWVudGVk
QXJyYXk8VD46OmV4cGFuZCk6CisgICAgICAgIChKU0M6OkdDU2VnbWVudGVkQXJyYXk8VD46OnJl
ZmlsbCk6CisgICAgICAgIChKU0M6OkdDQXJyYXlTZWdtZW50PFQ+OjpjcmVhdGUpOgorICAgICAg
ICAqIGhlYXAvR0NUaHJlYWRTaGFyZWREYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6R0NUaHJlYWRT
aGFyZWREYXRhOjpHQ1RocmVhZFNoYXJlZERhdGEpOgorICAgICAgICAqIGhlYXAvR0NUaHJlYWRT
aGFyZWREYXRhLmg6IEZlZWQgdGhlIGNvbXBpbGVyLgorCisgICAgICAgICogaGVhcC9IYW5kbGVC
bG9jay5oOgorICAgICAgICAqIGhlYXAvSGFuZGxlQmxvY2tJbmxpbmVzLmg6CisgICAgICAgIChK
U0M6OkhhbmRsZUJsb2NrOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpIYW5kbGVCbG9jazo6SGFu
ZGxlQmxvY2spOgorICAgICAgICAoSlNDOjpIYW5kbGVCbG9jazo6cGF5bG9hZEVuZCk6CisgICAg
ICAgICogaGVhcC9IYW5kbGVTZXQuY3BwOgorICAgICAgICAoSlNDOjpIYW5kbGVTZXQ6On5IYW5k
bGVTZXQpOgorICAgICAgICAoSlNDOjpIYW5kbGVTZXQ6Omdyb3cpOiBTYW1lIGFzIGFib3ZlLgor
CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6SGVhcCk6Cisg
ICAgICAgICogaGVhcC9IZWFwLmg6IFJlbW92ZWQgdGhlIGJsb2NrIGFsbG9jYXRvciBzaW5jZSBp
dCBpcyB1bnVzZWQgbm93LgorCisgICAgICAgICogaGVhcC9IZWFwQmxvY2suaDoKKyAgICAgICAg
KEpTQzo6SGVhcEJsb2NrOjpkZXN0cm95KToKKyAgICAgICAgKEpTQzo6SGVhcEJsb2NrOjpIZWFw
QmxvY2spOgorICAgICAgICAoSlNDOjpIZWFwQmxvY2s6OnJlZ2lvbik6IERlbGV0ZWQuIFJlbW92
ZWQgdGhlIFJlZ2lvbiBwb2ludGVyIGZyb20gZWFjaAorICAgICAgICBIZWFwQmxvY2sgc2luY2Ug
YSBIZWFwQmxvY2sgaXMganVzdCBhIG5vcm1hbCBhbGxvY2F0aW9uIG5vdy4KKworICAgICAgICAq
IGhlYXAvSGVhcElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SGVhcDo6YmxvY2tBbGxvY2F0b3Ip
OiBEZWxldGVkLgorCisgICAgICAgICogaGVhcC9IZWFwVGltZXIuY3BwOgorICAgICAgICAqIGhl
YXAvTWFya1N0YWNrLmNwcDoKKyAgICAgICAgKEpTQzo6TWFya1N0YWNrQXJyYXk6Ok1hcmtTdGFj
a0FycmF5KToKKyAgICAgICAgKiBoZWFwL01hcmtTdGFjay5oOiBGZWVkIHRoZSBjb21waWxlci4K
KworICAgICAgICAqIGhlYXAvTWFya2VkQWxsb2NhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6TWFy
a2VkQWxsb2NhdG9yOjphbGxvY2F0ZUJsb2NrKTogTm8gbmVlZCB0byB1c2UgYSBjdXN0b20gY29k
ZSBwYXRoCisgICAgICAgIGJhc2VkIG9uIHNpemUsIHNpbmNlIHdlIHVzZSBhIGdlbmVyYWwgcHVy
cG9zZSBhbGxvY2F0b3Igbm93LgorCisgICAgICAgICogaGVhcC9NYXJrZWRCbG9jay5jcHA6Cisg
ICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpNYXJrZWRC
bG9jazo6ZGVzdHJveSk6CisgICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjpNYXJrZWRCbG9jayk6
CisgICAgICAgICogaGVhcC9NYXJrZWRCbG9jay5oOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9j
azo6Y2FwYWNpdHkpOiBUcmFjayBibG9jayBzaXplIGV4cGxpY2l0bHksIGxpa2UgQ29waWVkQmxv
Y2suCisKKyAgICAgICAgKiBoZWFwL01hcmtlZFNwYWNlLmNwcDoKKyAgICAgICAgKEpTQzo6TWFy
a2VkU3BhY2U6OmZyZWVCbG9jayk6CisgICAgICAgICogaGVhcC9NYXJrZWRTcGFjZS5oOgorCisg
ICAgICAgICogaGVhcC9SZWdpb24uaDogUmVtb3ZlZC4KKworICAgICAgICAqIGhlYXAvU2xvdFZp
c2l0b3IuY3BwOgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6U2xvdFZpc2l0b3IpOiBSZW1v
dmVkIHJlZmVyZW5jZSB0byBibG9jayBhbGxvY2F0b3IuCisKKyAgICAgICAgKiBoZWFwL1N1cGVy
UmVnaW9uLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBoZWFwL1N1cGVyUmVnaW9uLmg6IFJlbW92
ZWQuCisKKyAgICAgICAgKiBoZWFwL1dlYWtCbG9jay5jcHA6CisgICAgICAgIChKU0M6OldlYWtC
bG9jazo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6V2Vha0Jsb2NrOjpXZWFrQmxvY2spOgorICAg
ICAgICAqIGhlYXAvV2Vha0Jsb2NrLmg6CisgICAgICAgICogaGVhcC9XZWFrU2V0LmNwcDoKKyAg
ICAgICAgKEpTQzo6V2Vha1NldDo6fldlYWtTZXQpOgorICAgICAgICAoSlNDOjpXZWFrU2V0Ojph
ZGRBbGxvY2F0b3IpOgorICAgICAgICAoSlNDOjpXZWFrU2V0OjpyZW1vdmVBbGxvY2F0b3IpOiBS
ZW1vdmVkIHJlZmVyZW5jZSB0byBibG9jayBhbGxvY2F0b3IuCisKIDIwMTUtMDEtMjYgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBbU1ZH
IC0+IE9URiBDb252ZXJ0ZXJdIEZsaXAgdGhlIHN3aXRjaCBvZmYgb24gaU9TCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI0OCw3ICsy
NDgsNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGRpc2Fzc2VtYmxlci9MTFZN
RGlzYXNzZW1ibGVyLmNwcAogICAgIGRpc2Fzc2VtYmxlci9YODZEaXNhc3NlbWJsZXIuY3BwCiAK
LSAgICBoZWFwL0Jsb2NrQWxsb2NhdG9yLmNwcAogICAgIGhlYXAvQ29kZUJsb2NrU2V0LmNwcAog
ICAgIGhlYXAvQ29uc2VydmF0aXZlUm9vdHMuY3BwCiAgICAgaGVhcC9Db3BpZWRTcGFjZS5jcHAK
QEAgLTI3NCw3ICsyNzMsNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGhlYXAv
TWFya2VkQmxvY2suY3BwCiAgICAgaGVhcC9NYXJrZWRTcGFjZS5jcHAKICAgICBoZWFwL1Nsb3RW
aXNpdG9yLmNwcAotICAgIGhlYXAvU3VwZXJSZWdpb24uY3BwCiAgICAgaGVhcC9XZWFrLmNwcAog
ICAgIGhlYXAvV2Vha0Jsb2NrLmNwcAogICAgIGhlYXAvV2Vha0hhbmRsZU93bmVyLmNwcApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcAkocmV2aXNpb24gMTc5MDI1KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQVBJQ2FzdC5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5o
IgogI2luY2x1ZGUgIkNvbXBsZXRpb24uaCIKKyNpbmNsdWRlICJHQ0FjdGl2aXR5Q2FsbGJhY2su
aCIKICNpbmNsdWRlICJJbml0aWFsaXplVGhyZWFkaW5nLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxP
YmplY3QuaCIKICNpbmNsdWRlICJKU0xvY2suaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNj
cmlwdENvcmUudmN4cHJvagkocmV2aXNpb24gMTc5MDI1KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtNTMwLDcgKzUzMCw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxm
dGxcRlRMVW53aW5kSW5mby5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxmdGxc
RlRMVmFsdWVGb3JtYXQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZnRsXEZU
TFZhbHVlUmFuZ2UuY3BwIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxCbG9j
a0FsbG9jYXRvci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXENvZGVC
bG9ja1NldC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXENvbnNlcnZh
dGl2ZVJvb3RzLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcQ29waWVk
U3BhY2UuY3BwIiAvPgpAQCAtNTU2LDcgKzU1NSw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxoZWFwXE1hcmtlZFNwYWNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGhlYXBcTWFya1N0YWNrLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhlYXBc
U2xvdFZpc2l0b3IuY3BwIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxTdXBl
clJlZ2lvbi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXFdlYWsuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxXZWFrQmxvY2suY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxXZWFrSGFuZGxlT3duZXIuY3BwIiAvPgpA
QCAtMTIxOCw3ICsxMjE2LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZ0bFxGVExW
YWx1ZVJhbmdlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRMV2VpZ2h0
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRMV2VpZ2h0ZWRUYXJnZXQu
aCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcQmxvY2tBbGxvY2F0b3IuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcQ29kZUJsb2NrU2V0LmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXENvbnNlcnZhdGl2ZVJvb3RzLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXENvcGllZEFsbG9jYXRvci5oIiAvPgpAQCAt
MTI2OCwxMiArMTI2NSwxMCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxNYXJr
ZWRTcGFjZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxNYXJrU3RhY2su
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcUmVjdXJzaXZlQWxsb2NhdGlv
blNjb3BlLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXFJlZ2lvbi5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxTbG90VmlzaXRvci5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxTbG90VmlzaXRvcklubGluZXMuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcU3Ryb25nLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxoZWFwXFN0cm9uZ0lubGluZXMuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGhlYXBcU3VwZXJSZWdpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGhlYXBcVGlueUJsb29tRmlsdGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxoZWFwXFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGhlYXBcV2Vhay5oIiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24gMTc5MDI1KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJv
ai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC0yMzcsOSArMjM3LDYgQEAKICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGRpc2Fzc2VtYmxlclxEaXNhc3NlbWJsZXIuY3BwIj4KICAgICAgIDxG
aWx0ZXI+ZGlzYXNzZW1ibGVyPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxoZWFwXEJsb2NrQWxsb2NhdG9yLmNwcCI+Ci0gICAgICA8RmlsdGVy
PmhlYXA8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGhlYXBcQ29uc2VydmF0aXZlUm9vdHMuY3BwIj4KICAgICAgIDxGaWx0ZXI+aGVhcDwvRmls
dGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzA5LDkgKzMwNiw2IEBACiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxoZWFwXFNsb3RWaXNpdG9yLmNwcCI+CiAgICAgICA8RmlsdGVyPmhlYXA8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhl
YXBcU3VwZXJSZWdpb24uY3BwIj4KLSAgICAgIDxGaWx0ZXI+aGVhcDwvRmlsdGVyPgotICAgIDwv
Q2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxXZWFrLmNwcCI+CiAg
ICAgICA8RmlsdGVyPmhlYXA8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTIwNDgsOSAr
MjA0Miw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkaXNhc3NlbWJsZXJcRGlzYXNz
ZW1ibGVyLmgiPgogICAgICAgPEZpbHRlcj5kaXNhc3NlbWJsZXI8L0ZpbHRlcj4KICAgICA8L0Ns
SW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcQmxvY2tBbGxvY2F0b3Iu
aCI+Ci0gICAgICA8RmlsdGVyPmhlYXA8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcQ29uc2VydmF0aXZlUm9vdHMuaCI+CiAgICAgICA8
RmlsdGVyPmhlYXA8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTIxODksOSArMjE4MCw2
IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXFJlY3Vyc2l2ZUFsbG9jYXRpb25T
Y29wZS5oIj4KICAgICAgIDxGaWx0ZXI+aGVhcDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgot
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxSZWdpb24uaCI+Ci0gICAgICA8RmlsdGVy
PmhlYXA8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGhlYXBcU2xvdFZpc2l0b3IuaCI+CiAgICAgICA8RmlsdGVyPmhlYXA8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KQEAgLTIyMDQsOSArMjE5Miw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxoZWFwXFN0cm9uZ0lubGluZXMuaCI+CiAgICAgICA8RmlsdGVyPmhlYXA8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcU3Vw
ZXJSZWdpb24uaCI+Ci0gICAgICA8RmlsdGVyPmhlYXA8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVk
ZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcVGlueUJsb29tRmlsdGVyLmgiPgog
ICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTc5MDI1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTgxMyw4ICs4MTMsNiBAQAogCQkxNDdGMzlENTEwN0VDMzc2MDA0MjdBNDgg
LyogSlNTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMwMkU5QjYwRTE4NDJGQTAwMEY5Mjk3IC8qIEpTU3RyaW5nLmNwcCAqLzsgfTsKIAkJ
MTQ3RjM5RDYxMDdFQzM3NjAwNDI3QTQ4IC8qIEpTQ0pTVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjY5MkE4ODcwMjU1NTk3RDAxRkY2MEY3
IC8qIEpTQ0pTVmFsdWUuY3BwICovOyB9OwogCQkxNDdGMzlENzEwN0VDMzc2MDA0MjdBNDggLyog
SlNFbnZpcm9ubWVudFJlY29yZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzIyQTM5QTBFMTZFMTQ4MDBBRjIxQzggLyogSlNFbnZpcm9ubWVudFJl
Y29yZC5jcHAgKi87IH07Ci0JCTE0ODE2RTFCMTU0Q0M1NkMwMEI4MDU0QyAvKiBCbG9ja0FsbG9j
YXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
NDgxNkUxOTE1NENDNTZDMDBCODA1NEMgLyogQmxvY2tBbGxvY2F0b3IuY3BwICovOyB9OwotCQkx
NDgxNkUxQzE1NENDNTZDMDBCODA1NEMgLyogQmxvY2tBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0ODE2RTFBMTU0Q0M1NkMwMEI4MDU0
QyAvKiBCbG9ja0FsbG9jYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTE0ODJCNzRFMEE0MzAzMjgwMDUxN0NGQyAvKiBKU1N0cmluZ1JlZi5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDgyQjc0
QzBBNDMwMzI4MDA1MTdDRkMgLyogSlNTdHJpbmdSZWYuY3BwICovOyB9OwogCQkxNDgyQjdFNDBB
NDMwNzYwMDA1MTdDRkMgLyogSlNPYmplY3RSZWYuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ4MkI3RTIwQTQzMDc2MDAwNTE3Q0ZDIC8qIEpTT2Jq
ZWN0UmVmLmNwcCAqLzsgfTsKIAkJMTQ4NzRBRTMxNUVCREU0QTAwMkUzNTg3IC8qIEpTTmFtZVNj
b3BlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0
ODc0QURGMTVFQkRFNEEwMDJFMzU4NyAvKiBKU05hbWVTY29wZS5jcHAgKi87IH07CkBAIC0xNTIx
LDcgKzE1MTksNiBAQAogCQlCQ0ZEOEM5MjBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkQ4Qzkw
MEVFQjJFRTcwMDI4Mzg0OCAvKiBKdW1wVGFibGUuY3BwICovOyB9OwogCQlCQ0ZEOEM5MzBFRUIy
RUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0ZEOEM5MTBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzIwMzI4
MjAxOTgxOTc5RDAwODhCNDk5IC8qIEN1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5jIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIwMzI4MUUxOTgxOTc5
RDAwODhCNDk5IC8qIEN1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5jICovOyB9OwotCQlDMjBC
MjU5OTE3MDY1MzYyMDBDMjFGNEUgLyogUmVnaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjBCMjU5ODE3MDY1MzYyMDBDMjFGNEUgLyogUmVnaW9u
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzIw
QkE5MkQxNkJCMUMxNTAwQjNBRUEyIC8qIFN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIwQkE5MkMxNkJCMUMx
NTAwQjNBRUEyIC8qIFN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyMTEyMkUxMTVERDlBQjMwMDc5MEUz
QSAvKiBHQ1RocmVhZFNoYXJlZERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzIxMTIyREUxNUREOUFCMzAwNzkwRTNBIC8qIEdDVGhyZWFkU2hh
cmVkRGF0YS5jcHAgKi87IH07CiAJCUMyMTEyMkUyMTVERDlBQjMwMDc5MEUzQSAvKiBHQ1RocmVh
ZFNoYXJlZERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMyMTEyMkRGMTVERDlBQjMwMDc5MEUzQSAvKiBHQ1RocmVhZFNoYXJlZERhdGEuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTU2Miw4ICsx
NTU5LDYgQEAKIAkJQzJDRjM5QzExNkUxNUE4MTAwREQ2OUJFIC8qIEpTQVBJV3JhcHBlck9iamVj
dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0Yz
OUJGMTZFMTVBODEwMERENjlCRSAvKiBKU0FQSVdyYXBwZXJPYmplY3QubW0gKi87IH07CiAJCUMy
Q0YzOUMyMTZFMTVBODEwMERENjlCRSAvKiBKU0FQSVdyYXBwZXJPYmplY3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0YzOUMwMTZFMTVBODEwMERE
NjlCRSAvKiBKU0FQSVdyYXBwZXJPYmplY3QuaCAqLzsgfTsKIAkJQzJEQTc3ODMxOEUyNTk5OTAw
NjZGQ0I2IC8qIEhlYXBJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDMkRBNzc4MjE4RTI1OTk5MDA2NkZDQjYgLyogSGVhcElubGluZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlDMkRGNDQy
RjE3MDdBQzAxMDBBNUNBOTYgLyogU3VwZXJSZWdpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJERjQ0MkQxNzA3QUMwMTAwQTVDQTk2IC8qIFN1
cGVyUmVnaW9uLmNwcCAqLzsgfTsKLQkJQzJERjQ0MzAxNzA3QUMwMTAwQTVDQTk2IC8qIFN1cGVy
UmVnaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
MkRGNDQyRTE3MDdBQzAxMDBBNUNBOTYgLyogU3VwZXJSZWdpb24uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMkU1MjZCRDE1OTBFRjAwMDA1NEU0
OEQgLyogSGVhcFRpbWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEMyRTUyNkJCMTU5MEVGMDAwMDU0RTQ4RCAvKiBIZWFwVGltZXIuY3BwICovOyB9
OwogCQlDMkU1MjZCRTE1OTBFRjAwMDA1NEU0OEQgLyogSGVhcFRpbWVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkU1MjZCQzE1OTBFRjAwMDA1NEU0
OEQgLyogSGVhcFRpbWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQzJFQUEzRkExNDlBODM1RTAwRkNFMTEyIC8qIENvcGllZFNwYWNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkVBQTNGODE0OUE4
MzA4MDBGQ0UxMTIgLyogQ29waWVkU3BhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjQyOCw4ICsyNDIzLDYgQEAKIAkJMTQ3QjgzQUEwRTZE
QjhDOTAwNDc3NUE0IC8qIEJhdGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhdGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0N0I4NDYyMEU2REU2QjEwMDQ3NzVBNCAvKiBQdXRQ
cm9wZXJ0eVNsb3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHV0UHJvcGVy
dHlTbG90Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0ODBEQjlCMEREQzIyN0Yw
MDNDRkRGMiAvKiBEZWJ1Z2dlckNhbGxGcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEZWJ1Z2dlckNhbGxGcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkxNDgxNkUxOTE1NENDNTZDMDBCODA1NEMgLyogQmxvY2tBbGxvY2F0b3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmxvY2tBbGxvY2F0b3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkxNDgxNkUxQTE1NENDNTZDMDBCODA1NEMgLyogQmxvY2tB
bGxvY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvY2tBbGxvY2F0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ4MkI2RUEwQTQzMDBCMzAwNTE3
Q0ZDIC8qIEpTVmFsdWVSZWYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNW
YWx1ZVJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDgyQjc0QjBBNDMwMzI4
MDA1MTdDRkMgLyogSlNTdHJpbmdSZWYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNTdHJpbmdSZWYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ4MkI3NEMw
QTQzMDMyODAwNTE3Q0ZDIC8qIEpTU3RyaW5nUmVmLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTU3RyaW5nUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTMyMDMsNyArMzE5Niw2IEBACiAJCUJDRkQ4QzkxMEVFQjJFRTcwMDI4Mzg0OCAvKiBK
dW1wVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSnVtcFRhYmxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyMDMyODFFMTk4MTk3OUQwMDg4QjQ5OSAv
KiBDdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5j
OyBuYW1lID0gQ3VzdG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmM7IHBhdGggPSBBUEkvdGVzdHMv
Q3VzdG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUMyMDMyODFGMTk4MTk3OUQwMDg4QjQ5OSAvKiBDdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rl
c3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ3VzdG9tR2xvYmFsT2JqZWN0
Q2xhc3NUZXN0Lmg7IHBhdGggPSBBUEkvdGVzdHMvQ3VzdG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUMyMEIyNTk4MTcwNjUzNjIwMEMyMUY0
RSAvKiBSZWdpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVnaW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyMEJBOTJDMTZCQjFDMTUwMEIzQUVBMiAv
KiBTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyMTEyMkRFMTVERDlBQjMwMDc5MEUzQSAvKiBHQ1RocmVhZFNoYXJlZERhdGEuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR0NUaHJlYWRTaGFyZWREYXRh
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzIxMTIyREYxNUREOUFCMzAwNzkw
RTNBIC8qIEdDVGhyZWFkU2hhcmVkRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBHQ1RocmVhZFNoYXJlZERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTMyNDYsOCArMzIzOCw2IEBACiAJCUMyQ0YzOUJGMTZFMTVBODEwMERENjlCRSAvKiBKU0FQSVdy
YXBwZXJPYmplY3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBK
U0FQSVdyYXBwZXJPYmplY3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyQ0Yz
OUMwMTZFMTVBODEwMERENjlCRSAvKiBKU0FQSVdyYXBwZXJPYmplY3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBUElXcmFwcGVyT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUMyREE3NzgyMThFMjU5OTkwMDY2RkNCNiAvKiBIZWFwSW5saW5lcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIZWFwSW5saW5lcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlDMkRGNDQyRDE3MDdBQzAxMDBBNUNBOTYgLyogU3VwZXJS
ZWdpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3VwZXJSZWdp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDMkRGNDQyRTE3MDdBQzAxMDBB
NUNBOTYgLyogU3VwZXJSZWdpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3VwZXJSZWdpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzJFNTI2QkIxNTkw
RUYwMDAwNTRFNDhEIC8qIEhlYXBUaW1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBIZWFwVGltZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MkU1MjZCQzE1OTBFRjAwMDA1NEU0OEQgLyogSGVhcFRpbWVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEhlYXBUaW1lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDMkVBQTNGODE0OUE4MzA4MDBGQ0UxMTIgLyogQ29waWVkU3BhY2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29waWVkU3BhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTM4MjYsOCArMzgxNiw2IEBACiAJCQkJQUREQjFGNjIxOEQ3N0RCNzAwOUI1OEE4
IC8qIE9wYXF1ZVJvb3RTZXQuaCAqLywKIAkJCQkyQUFDRTYzQTE4Q0E1QTAzMDBFRDAxOTEgLyog
R0NBY3Rpdml0eUNhbGxiYWNrLmNwcCAqLywKIAkJCQkyQUFDRTYzQjE4Q0E1QTAzMDBFRDAxOTEg
LyogR0NBY3Rpdml0eUNhbGxiYWNrLmggKi8sCi0JCQkJMTQ4MTZFMTkxNTRDQzU2QzAwQjgwNTRD
IC8qIEJsb2NrQWxsb2NhdG9yLmNwcCAqLywKLQkJCQkxNDgxNkUxQTE1NENDNTZDMDBCODA1NEMg
LyogQmxvY2tBbGxvY2F0b3IuaCAqLywKIAkJCQkwRkQ4QTMxMTE3RDQzMjZDMDBDQTJDNDAgLyog
Q29kZUJsb2NrU2V0LmNwcCAqLywKIAkJCQkwRkQ4QTMxMjE3RDQzMjZDMDBDQTJDNDAgLyogQ29k
ZUJsb2NrU2V0LmggKi8sCiAJCQkJMTQ2QjE0REIxMkVCNUIxMjAwMUJFQzFCIC8qIENvbnNlcnZh
dGl2ZVJvb3RzLmNwcCAqLywKQEAgLTM4OTUsMTQgKzM4ODMsMTEgQEAKIAkJCQkxNDJENkYwRTEz
NTM5QTQxMDBCMDJFODYgLyogTWFya1N0YWNrLmNwcCAqLywKIAkJCQkxNDJENkYwRjEzNTM5QTQx
MDBCMDJFODYgLyogTWFya1N0YWNrLmggKi8sCiAJCQkJMkFBRDk2NDkxODU2OTQxNzAwMUY5M0JF
IC8qIFJlY3Vyc2l2ZUFsbG9jYXRpb25TY29wZS5oICovLAotCQkJCUMyMEIyNTk4MTcwNjUzNjIw
MEMyMUY0RSAvKiBSZWdpb24uaCAqLywKIAkJCQlDMjI1NDk0MjE1RjdEQkFBMDA2NUU4OTggLyog
U2xvdFZpc2l0b3IuY3BwICovLAogCQkJCTE0QkE3OEYwMTNBQUI4OEYwMDVCN0MyQyAvKiBTbG90
VmlzaXRvci5oICovLAogCQkJCTBGQ0I0MDg1MTVDMEEzQzMwMDQ4OTMyQiAvKiBTbG90VmlzaXRv
cklubGluZXMuaCAqLywKIAkJCQkxNDJFMzEzMjEzNEZGMEE2MDBBRkFEQjUgLyogU3Ryb25nLmgg
Ki8sCiAJCQkJMTQ1NzIyODUxNDM3RTE0MDAwNUZERTI2IC8qIFN0cm9uZ0lubGluZXMuaCAqLywK
LQkJCQlDMkRGNDQyRDE3MDdBQzAxMDBBNUNBOTYgLyogU3VwZXJSZWdpb24uY3BwICovLAotCQkJ
CUMyREY0NDJFMTcwN0FDMDEwMEE1Q0E5NiAvKiBTdXBlclJlZ2lvbi5oICovLAogCQkJCTE0MTQ0
OENDMTNBMTc4MzcwMEY1QkExQSAvKiBUaW55Qmxvb21GaWx0ZXIuaCAqLywKIAkJCQkwRjVGMDhD
RTE0NkM3NjJGMDAwNDcyQTkgLyogVW5jb25kaXRpb25hbEZpbmFsaXplci5oICovLAogCQkJCTFB
Q0Y3Mzc2MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCAqLywKQEAgLTU0NTcsNyArNTQ0Miw2
IEBACiAJCQkJMEYyNEU1NDExN0VBOUY1OTAwQUJCMjE3IC8qIEFzc2VtYmx5SGVscGVycy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTc4NEEyNjExMUQxNjYyMjAwNTc3NkFDIC8qIEFTVEJ1aWxkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg2NjczOUQyMTNCRkRFNzEwMDIzRDg3QyAvKiBCaWdJbnRl
Z2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQkxNDgxNkUxQzE1NENDNTZDMDBCODA1NEMgLyogQmxv
Y2tBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDM0VDMEUxNkY1Q0QwMEIzNDQ2
MCAvKiBCb29sZWFuT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRUEwODYyMDE4MkI3QTA0
MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVEMkU2NjUxOTVF
MTc0MDAwQTUxOEU3IC8qIEpTQ29udGV4dFJlZkludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAg
LTYxNDAsNyArNjEyNCw2IEBACiAJCQkJQkMxOEM0NUIwRTE2RjVDRDAwQjM0NDYwIC8qIFJlZ0V4
cE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM1MkMwRTE2RkNEMjAwQjM0NDYwIC8q
IFJlZ0V4cE9iamVjdC5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDIwMkM0MEUxNzA2QTcw
MDJDN0U4MiAvKiBSZWdFeHBQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUMyMEIyNTk5
MTcwNjUzNjIwMEMyMUY0RSAvKiBSZWdpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDVE
MEUxNkY1Q0QwMEIzNDQ2MCAvKiBSZWdpc3Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTY5QTA3
MkIwRUQxQ0U2OTAwRjFGNjgxIC8qIFJlZ2lzdGVySUQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
NkIxQ0JBMTg2MTI0NEMwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaCBpbiBI
ZWFkZXJzICovLApAQCAtNjIxMyw3ICs2MTk2LDYgQEAKIAkJCQkwRjc2NkQzOTE1QUU0QTFGMDA4
RjM2M0UgLyogU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNDRjBEMDgwRUYwQUFCOTAwNDEzQzhGIC8qIFN0cnVjdHVyZVN0dWJJbmZvLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzkwNDE0ODBFQjkyNTA5MDBGRTI2RkEgLyogU3RydWN0dXJlVHJh
bnNpdGlvblRhYmxlLmggaW4gSGVhZGVycyAqLywKLQkJCQlDMkRGNDQzMDE3MDdBQzAxMDBBNUNB
OTYgLyogU3VwZXJSZWdpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDZCMEUxNkY1Q0Qw
MEIzNDQ2MCAvKiBTeW1ib2xUYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc4NEEyNjQxMUQx
NjYyMjAwNTc3NkFDIC8qIFN5bnRheENoZWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRF
NTRGMTdFRTI3NDkwMEFCQjIxNyAvKiBUZW1wUmVnaXN0ZXJTZXQuaCBpbiBIZWFkZXJzICovLApA
QCAtNjc2MCw3ICs2NzQyLDYgQEAKIAkJCQkwRjYzOTQ1NDE1RDA3MDU1MDA2QTU5N0MgLyogQXJy
YXlQcm9maWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUMwMTA3RUMzNzYwMDQyN0E0
OCAvKiBBcnJheVByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjI0RTU0MDE3RUE5
RjU5MDBBQkIyMTcgLyogQXNzZW1ibHlIZWxwZXJzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTE0
ODE2RTFCMTU0Q0M1NkMwMEI4MDU0QyAvKiBCbG9ja0FsbG9jYXRvci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjY5Q0M4ODE5M0FDNjBBMDA0NTc1OUUgLyogREZHRnJvemVuVmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMTQyODA4NjMxMDdFQzExQTAwMTNFN0IyIC8qIEJvb2xlYW5Db25z
dHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg2NDEwN0VDMTFBMDAxM0U3QjIg
LyogQm9vbGVhbk9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTcyODIsNyArNzI2Myw2IEBA
CiAJCQkJQzJGMEYyRDExNkJBRUVFOTAwMTg3QzE5IC8qIFN0cnVjdHVyZVJhcmVEYXRhLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGNzY2RDM4MTVBRTRBMUMwMDhGMzYzRSAvKiBTdHJ1Y3R1cmVT
dHViQ2xlYXJpbmdXYXRjaHBvaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQ0YwRDBDMEVG
MEI4QTUwMDQxM0M4RiAvKiBTdHJ1Y3R1cmVTdHViSW5mby5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlDMkRGNDQyRjE3MDdBQzAxMDBBNUNBOTYgLyogU3VwZXJSZWdpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEY5MTlEMjgxNTg1Njc3MzAwNEE0RTdEIC8qIFN5bWJvbFRhYmxlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGQzMxNDEzMTgxNDU1OTEwMDAzMzIzMiAvKiBUZW1wUmVnaXN0ZXJT
ZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZBMkMxN0IxN0Q3Q0Y4NDAwOUQwMTVGIC8qIFRl
c3RSdW5uZXJVdGlscy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0Jsb2NrQWxsb2NhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9CbG9ja0FsbG9jYXRvci5jcHAJKHJldmlzaW9uIDE3OTAyNSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrQWxsb2NhdG9yLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSwxNzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJCbG9ja0FsbG9jYXRvci5oIgotCi0jaW5jbHVkZSAiQ29waWVkQmxvY2suaCIKLSNp
bmNsdWRlICJDb3B5V29ya0xpc3QuaCIKLSNpbmNsdWRlICJNYXJrZWRCbG9jay5oIgotI2luY2x1
ZGUgIkpTQ0lubGluZXMuaCIKLSNpbmNsdWRlICJXZWFrQmxvY2suaCIKLSNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWlubGluZSBUaHJlYWRJZGVudGlm
aWVyIGNyZWF0ZUJsb2NrRnJlZWluZ1RocmVhZChCbG9ja0FsbG9jYXRvciogYWxsb2NhdG9yKQot
ewotICAgIGlmICghR0NBY3Rpdml0eUNhbGxiYWNrOjpzX3Nob3VsZENyZWF0ZUdDVGltZXIpCi0g
ICAgICAgIHJldHVybiAwOyAvLyBObyBibG9jayBmcmVlaW5nIHRocmVhZC4KLSAgICBUaHJlYWRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoYWxsb2NhdG9yLT5ibG9ja0ZyZWVp
bmdUaHJlYWRTdGFydEZ1bmMsIGFsbG9jYXRvciwgIkphdmFTY3JpcHRDb3JlOjpCbG9ja0ZyZWUi
KTsKLSAgICBSRUxFQVNFX0FTU0VSVChpZGVudGlmaWVyKTsKLSAgICByZXR1cm4gaWRlbnRpZmll
cjsKLX0KLQotQmxvY2tBbGxvY2F0b3I6OkJsb2NrQWxsb2NhdG9yKCkKLSAgICA6IG1fc3VwZXJS
ZWdpb24oKQotICAgICwgbV9jb3BpZWRSZWdpb25TZXQoQ29waWVkQmxvY2s6OmJsb2NrU2l6ZSkK
LSAgICAsIG1fbWFya2VkUmVnaW9uU2V0KE1hcmtlZEJsb2NrOjpibG9ja1NpemUpCi0gICAgLCBt
X2ZvdXJLQkJsb2NrUmVnaW9uU2V0KFdlYWtCbG9jazo6YmxvY2tTaXplKQotICAgICwgbV93b3Jr
TGlzdFJlZ2lvblNldChDb3B5V29ya0xpc3RTZWdtZW50OjpibG9ja1NpemUpCi0gICAgLCBtX251
bWJlck9mRW1wdHlSZWdpb25zKDApCi0gICAgLCBtX2lzQ3VycmVudGx5QWxsb2NhdGluZyhmYWxz
ZSkKLSAgICAsIG1fYmxvY2tGcmVlaW5nVGhyZWFkU2hvdWxkUXVpdChmYWxzZSkKLSAgICAsIG1f
YmxvY2tGcmVlaW5nVGhyZWFkKGNyZWF0ZUJsb2NrRnJlZWluZ1RocmVhZCh0aGlzKSkKLXsKLSAg
ICBtX3JlZ2lvbkxvY2suSW5pdCgpOwotfQotCi1CbG9ja0FsbG9jYXRvcjo6fkJsb2NrQWxsb2Nh
dG9yKCkKLXsKLSAgICByZWxlYXNlRnJlZVJlZ2lvbnMoKTsKLSAgICB7Ci0gICAgICAgIHN0ZDo6
bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1fZW1wdHlSZWdpb25Db25kaXRpb25NdXRleCk7
Ci0gICAgICAgIG1fYmxvY2tGcmVlaW5nVGhyZWFkU2hvdWxkUXVpdCA9IHRydWU7Ci0gICAgICAg
IG1fZW1wdHlSZWdpb25Db25kaXRpb24ubm90aWZ5X2FsbCgpOwotICAgIH0KLSAgICBpZiAobV9i
bG9ja0ZyZWVpbmdUaHJlYWQpCi0gICAgICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKG1fYmxv
Y2tGcmVlaW5nVGhyZWFkKTsKLSAgICBBU1NFUlQoYWxsUmVnaW9uU2V0c0FyZUVtcHR5KCkpOwot
ICAgIEFTU0VSVChtX2VtcHR5UmVnaW9ucy5pc0VtcHR5KCkpOwotfQotCi1ib29sIEJsb2NrQWxs
b2NhdG9yOjphbGxSZWdpb25TZXRzQXJlRW1wdHkoKSBjb25zdAotewotICAgIHJldHVybiBtX2Nv
cGllZFJlZ2lvblNldC5pc0VtcHR5KCkKLSAgICAgICAgJiYgbV9tYXJrZWRSZWdpb25TZXQuaXNF
bXB0eSgpCi0gICAgICAgICYmIG1fZm91cktCQmxvY2tSZWdpb25TZXQuaXNFbXB0eSgpCi0gICAg
ICAgICYmIG1fd29ya0xpc3RSZWdpb25TZXQuaXNFbXB0eSgpOwotfQotCi12b2lkIEJsb2NrQWxs
b2NhdG9yOjpyZWxlYXNlRnJlZVJlZ2lvbnMoKQotewotICAgIHdoaWxlICh0cnVlKSB7Ci0gICAg
ICAgIFJlZ2lvbiogcmVnaW9uOwotICAgICAgICB7Ci0gICAgICAgICAgICBTcGluTG9ja0hvbGRl
ciBsb2NrZXIoJm1fcmVnaW9uTG9jayk7Ci0gICAgICAgICAgICBpZiAoIW1fbnVtYmVyT2ZFbXB0
eVJlZ2lvbnMpCi0gICAgICAgICAgICAgICAgcmVnaW9uID0gMDsKLSAgICAgICAgICAgIGVsc2Ug
ewotICAgICAgICAgICAgICAgIHJlZ2lvbiA9IG1fZW1wdHlSZWdpb25zLnJlbW92ZUhlYWQoKTsK
LSAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChyZWdpb24pOwotICAgICAgICAgICAgICAg
IG1fbnVtYmVyT2ZFbXB0eVJlZ2lvbnMtLTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAg
ICAgICAKLSAgICAgICAgaWYgKCFyZWdpb24pCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAg
ICByZWdpb24tPmRlc3Ryb3koKTsKLSAgICB9Ci19Ci0KLXZvaWQgQmxvY2tBbGxvY2F0b3I6Ondh
aXRGb3JEdXJhdGlvbihzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGR1cmF0aW9uKQotewotICAg
IHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtX2VtcHR5UmVnaW9uQ29uZGl0aW9u
TXV0ZXgpOwotCi0gICAgLy8gSWYgdGhpcyByZXR1cm5zIGVhcmx5LCB0aGF0J3MgZmluZSwgc28g
bG9uZyBhcyBpdCBkb2Vzbid0IGRvIGl0IHRvbwotICAgIC8vIGZyZXF1ZW50bHkuIEl0IHdvdWxk
IG9ubHkgYmUgYSBidWcgaWYgdGhpcyBmdW5jdGlvbiBmYWlsZWQgdG8gcmV0dXJuCi0gICAgLy8g
d2hlbiBpdCB3YXMgYXNrZWQgdG8gZG8gc28uCi0gICAgaWYgKG1fYmxvY2tGcmVlaW5nVGhyZWFk
U2hvdWxkUXVpdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9lbXB0eVJlZ2lvbkNvbmRpdGlv
bi53YWl0X2Zvcihsb2NrLCBkdXJhdGlvbik7Ci19Ci0KLXZvaWQgQmxvY2tBbGxvY2F0b3I6OmJs
b2NrRnJlZWluZ1RocmVhZFN0YXJ0RnVuYyh2b2lkKiBibG9ja0FsbG9jYXRvcikKLXsKLSAgICBz
dGF0aWNfY2FzdDxCbG9ja0FsbG9jYXRvcio+KGJsb2NrQWxsb2NhdG9yKS0+YmxvY2tGcmVlaW5n
VGhyZWFkTWFpbigpOwotfQotCi12b2lkIEJsb2NrQWxsb2NhdG9yOjpibG9ja0ZyZWVpbmdUaHJl
YWRNYWluKCkKLXsKLSAgICBzaXplX3QgY3VycmVudE51bWJlck9mRW1wdHlSZWdpb25zOwotICAg
IHdoaWxlICghbV9ibG9ja0ZyZWVpbmdUaHJlYWRTaG91bGRRdWl0KSB7Ci0gICAgICAgIC8vIEdl
bmVyYWxseSB3YWl0IGZvciBvbmUgc2Vjb25kIGJlZm9yZSBzY2F2ZW5naW5nIGZyZWUgYmxvY2tz
LiBUaGlzCi0gICAgICAgIC8vIG1heSByZXR1cm4gZWFybHksIHBhcnRpY3VsYXJseSB3aGVuIHdl
J3JlIGJlaW5nIGFza2VkIHRvIHF1aXQuCi0gICAgICAgIHdhaXRGb3JEdXJhdGlvbihzdGQ6OmNo
cm9ubzo6c2Vjb25kcygxKSk7Ci0gICAgICAgIGlmIChtX2Jsb2NrRnJlZWluZ1RocmVhZFNob3Vs
ZFF1aXQpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgCi0gICAgICAgIGlmIChtX2lzQ3Vy
cmVudGx5QWxsb2NhdGluZykgewotICAgICAgICAgICAgbV9pc0N1cnJlbnRseUFsbG9jYXRpbmcg
PSBmYWxzZTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8g
U2xlZXAgdW50aWwgdGhlcmUgaXMgYWN0dWFsbHkgd29yayB0byBkbyByYXRoZXIgdGhhbiB3YWtp
bmcgdXAgZXZlcnkgc2Vjb25kIHRvIGNoZWNrLgotICAgICAgICB7Ci0gICAgICAgICAgICBzdGQ6
OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobV9lbXB0eVJlZ2lvbkNvbmRpdGlvbk11dGV4
KTsKLSAgICAgICAgICAgIFNwaW5Mb2NrSG9sZGVyIHJlZ2lvbkxvY2tlcigmbV9yZWdpb25Mb2Nr
KTsKLSAgICAgICAgICAgIHdoaWxlICghbV9udW1iZXJPZkVtcHR5UmVnaW9ucyAmJiAhbV9ibG9j
a0ZyZWVpbmdUaHJlYWRTaG91bGRRdWl0KSB7Ci0gICAgICAgICAgICAgICAgbV9yZWdpb25Mb2Nr
LlVubG9jaygpOwotICAgICAgICAgICAgICAgIG1fZW1wdHlSZWdpb25Db25kaXRpb24ud2FpdChs
b2NrKTsKLSAgICAgICAgICAgICAgICBtX3JlZ2lvbkxvY2suTG9jaygpOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgY3VycmVudE51bWJlck9mRW1wdHlSZWdpb25zID0gbV9udW1iZXJPZkVt
cHR5UmVnaW9uczsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgc2l6ZV90IGRlc2lyZWRO
dW1iZXJPZkVtcHR5UmVnaW9ucyA9IGN1cnJlbnROdW1iZXJPZkVtcHR5UmVnaW9ucyAvIDI7Ci0g
ICAgICAgIAotICAgICAgICB3aGlsZSAoIW1fYmxvY2tGcmVlaW5nVGhyZWFkU2hvdWxkUXVpdCkg
ewotICAgICAgICAgICAgUmVnaW9uKiByZWdpb247Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgU3BpbkxvY2tIb2xkZXIgbG9ja2VyKCZtX3JlZ2lvbkxvY2spOwotICAgICAgICAgICAg
ICAgIGlmIChtX251bWJlck9mRW1wdHlSZWdpb25zIDw9IGRlc2lyZWROdW1iZXJPZkVtcHR5UmVn
aW9ucykKLSAgICAgICAgICAgICAgICAgICAgcmVnaW9uID0gMDsKLSAgICAgICAgICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcmVnaW9uID0gbV9lbXB0eVJlZ2lvbnMucmVtb3Zl
SGVhZCgpOwotICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChyZWdpb24pOwotICAg
ICAgICAgICAgICAgICAgICBtX251bWJlck9mRW1wdHlSZWdpb25zLS07Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIXJlZ2lv
bikKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgcmVn
aW9uLT5kZXN0cm95KCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpT
QwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0FsbG9jYXRvci5oCShy
ZXZpc2lvbiAxNzkwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0FsbG9j
YXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDI1MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBCbG9ja0FsbG9jYXRvcl9oCi0jZGVmaW5lIEJsb2NrQWxsb2NhdG9yX2gKLQotI2luY2x1
ZGUgIkdDQWN0aXZpdHlDYWxsYmFjay5oIgotI2luY2x1ZGUgIkhlYXBCbG9jay5oIgotI2luY2x1
ZGUgIlJlZ2lvbi5oIgotI2luY2x1ZGUgPGNvbmRpdGlvbl92YXJpYWJsZT4KLSNpbmNsdWRlIDx3
dGYvRG91Ymx5TGlua2VkTGlzdC5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVk
ZSA8d3RmL1BhZ2VBbGxvY2F0aW9uQWxpZ25lZC5oPgotI2luY2x1ZGUgPHd0Zi9UQ1NwaW5Mb2Nr
Lmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQotY2xh
c3MgQmxvY2tBbGxvY2F0b3I7Ci1jbGFzcyBDb2RlQmxvY2s7Ci1jbGFzcyBDb3BpZWRCbG9jazsK
LWNsYXNzIENvcHlXb3JrTGlzdFNlZ21lbnQ7Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3Mg
R0NBcnJheVNlZ21lbnQ7Ci1jbGFzcyBIYW5kbGVCbG9jazsKLWNsYXNzIEpTQ2VsbDsKLWNsYXNz
IFZNOwotY2xhc3MgTWFya2VkQmxvY2s7Ci1jbGFzcyBXZWFrQmxvY2s7Ci0KLS8vIFNpbXBsZSBh
bGxvY2F0b3IgdG8gcmVkdWNlIFZNIGNvc3QgYnkgaG9sZGluZyBvbnRvIGJsb2NrcyBvZiBtZW1v
cnkgZm9yCi0vLyBzaG9ydCBwZXJpb2RzIG9mIHRpbWUgYW5kIHRoZW4gZnJlZWluZyB0aGVtIG9u
IGEgc2Vjb25kYXJ5IHRocmVhZC4KLQotY2xhc3MgQmxvY2tBbGxvY2F0b3IgewotcHVibGljOgot
ICAgIEJsb2NrQWxsb2NhdG9yKCk7Ci0gICAgfkJsb2NrQWxsb2NhdG9yKCk7Ci0KLSAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4gRGVhZEJsb2NrKiBhbGxvY2F0ZSgpOwotICAgIERlYWRCbG9jayog
YWxsb2NhdGVDdXN0b21TaXplKHNpemVfdCBibG9ja1NpemUsIHNpemVfdCBibG9ja0FsaWdubWVu
dCk7Ci0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQgZGVhbGxvY2F0ZShUKik7Ci0gICAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQgZGVhbGxvY2F0ZUN1c3RvbVNpemUoVCopOwotCi0g
ICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCByZWxlYXNlRnJlZVJlZ2lvbnMoKTsKLQotcHJpdmF0
ZToKLSAgICB2b2lkIHdhaXRGb3JEdXJhdGlvbihzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKTsK
LQotICAgIGZyaWVuZCBUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZUJsb2NrRnJlZWluZ1RocmVhZChC
bG9ja0FsbG9jYXRvciopOwotICAgIHZvaWQgYmxvY2tGcmVlaW5nVGhyZWFkTWFpbigpOwotICAg
IHN0YXRpYyB2b2lkIGJsb2NrRnJlZWluZ1RocmVhZFN0YXJ0RnVuYyh2b2lkKiBoZWFwKTsKLQot
ICAgIHN0cnVjdCBSZWdpb25TZXQgewotICAgICAgICBSZWdpb25TZXQoc2l6ZV90IGJsb2NrU2l6
ZSkKLSAgICAgICAgICAgIDogbV9udW1iZXJPZlBhcnRpYWxSZWdpb25zKDApCi0gICAgICAgICAg
ICAsIG1fYmxvY2tTaXplKGJsb2NrU2l6ZSkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAg
ICAgYm9vbCBpc0VtcHR5KCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG1f
ZnVsbFJlZ2lvbnMuaXNFbXB0eSgpICYmIG1fcGFydGlhbFJlZ2lvbnMuaXNFbXB0eSgpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgRG91Ymx5TGlua2VkTGlzdDxSZWdpb24+IG1fZnVsbFJlZ2lvbnM7
Ci0gICAgICAgIERvdWJseUxpbmtlZExpc3Q8UmVnaW9uPiBtX3BhcnRpYWxSZWdpb25zOwotICAg
ICAgICBzaXplX3QgbV9udW1iZXJPZlBhcnRpYWxSZWdpb25zOwotICAgICAgICBzaXplX3QgbV9i
bG9ja1NpemU7Ci0gICAgfTsKLQotICAgIERlYWRCbG9jayogdHJ5QWxsb2NhdGVGcm9tUmVnaW9u
KFJlZ2lvblNldCYsIERvdWJseUxpbmtlZExpc3Q8UmVnaW9uPiYsIHNpemVfdCYpOwotCi0gICAg
Ym9vbCBhbGxSZWdpb25TZXRzQXJlRW1wdHkoKSBjb25zdDsKLQotICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPiBSZWdpb25TZXQmIHJlZ2lvblNldEZvcigpOwotCi0gICAgU3VwZXJSZWdpb24gbV9z
dXBlclJlZ2lvbjsKLSAgICBSZWdpb25TZXQgbV9jb3BpZWRSZWdpb25TZXQ7Ci0gICAgUmVnaW9u
U2V0IG1fbWFya2VkUmVnaW9uU2V0OwotICAgIC8vIFdlYWtCbG9ja3MgYW5kIEdDQXJyYXlTZWdt
ZW50cyB1c2UgdGhlIHNhbWUgUmVnaW9uU2V0IHNpbmNlIHRoZXkncmUgdGhlIHNhbWUgc2l6ZS4K
LSAgICBSZWdpb25TZXQgbV9mb3VyS0JCbG9ja1JlZ2lvblNldDsKLSAgICBSZWdpb25TZXQgbV93
b3JrTGlzdFJlZ2lvblNldDsKLQotICAgIERvdWJseUxpbmtlZExpc3Q8UmVnaW9uPiBtX2VtcHR5
UmVnaW9uczsKLSAgICBzaXplX3QgbV9udW1iZXJPZkVtcHR5UmVnaW9uczsKLQotICAgIGJvb2wg
bV9pc0N1cnJlbnRseUFsbG9jYXRpbmc7Ci0gICAgYm9vbCBtX2Jsb2NrRnJlZWluZ1RocmVhZFNo
b3VsZFF1aXQ7Ci0gICAgU3BpbkxvY2sgbV9yZWdpb25Mb2NrOwotICAgIHN0ZDo6bXV0ZXggbV9l
bXB0eVJlZ2lvbkNvbmRpdGlvbk11dGV4OwotICAgIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlIG1f
ZW1wdHlSZWdpb25Db25kaXRpb247Ci0gICAgVGhyZWFkSWRlbnRpZmllciBtX2Jsb2NrRnJlZWlu
Z1RocmVhZDsKLX07Ci0KLWlubGluZSBEZWFkQmxvY2sqIEJsb2NrQWxsb2NhdG9yOjp0cnlBbGxv
Y2F0ZUZyb21SZWdpb24oUmVnaW9uU2V0JiBzZXQsIERvdWJseUxpbmtlZExpc3Q8UmVnaW9uPiYg
cmVnaW9ucywgc2l6ZV90JiBudW1iZXJPZlJlZ2lvbnMpCi17Ci0gICAgaWYgKG51bWJlck9mUmVn
aW9ucykgewotICAgICAgICBBU1NFUlQoIXJlZ2lvbnMuaXNFbXB0eSgpKTsKLSAgICAgICAgUmVn
aW9uKiByZWdpb24gPSByZWdpb25zLmhlYWQoKTsKLSAgICAgICAgQVNTRVJUKCFyZWdpb24tPmlz
RnVsbCgpKTsKLQotICAgICAgICBpZiAocmVnaW9uLT5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAg
IEFTU0VSVChyZWdpb24gPT0gbV9lbXB0eVJlZ2lvbnMuaGVhZCgpKTsKLSAgICAgICAgICAgIG1f
bnVtYmVyT2ZFbXB0eVJlZ2lvbnMtLTsKLSAgICAgICAgICAgIHNldC5tX251bWJlck9mUGFydGlh
bFJlZ2lvbnMrKzsKLSAgICAgICAgICAgIHJlZ2lvbiA9IG1fZW1wdHlSZWdpb25zLnJlbW92ZUhl
YWQoKS0+cmVzZXQoc2V0Lm1fYmxvY2tTaXplKTsKLSAgICAgICAgICAgIHNldC5tX3BhcnRpYWxS
ZWdpb25zLnB1c2gocmVnaW9uKTsKLSAgICAgICAgfQotCi0gICAgICAgIERlYWRCbG9jayogYmxv
Y2sgPSByZWdpb24tPmFsbG9jYXRlKCk7Ci0KLSAgICAgICAgaWYgKHJlZ2lvbi0+aXNGdWxsKCkp
IHsKLSAgICAgICAgICAgIHNldC5tX251bWJlck9mUGFydGlhbFJlZ2lvbnMtLTsKLSAgICAgICAg
ICAgIHNldC5tX2Z1bGxSZWdpb25zLnB1c2goc2V0Lm1fcGFydGlhbFJlZ2lvbnMucmVtb3ZlSGVh
ZCgpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBibG9jazsKLSAgICB9Ci0gICAgcmV0
dXJuIDA7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1pbmxpbmUgRGVhZEJsb2NrKiBCbG9j
a0FsbG9jYXRvcjo6YWxsb2NhdGUoKQotewotICAgIFJlZ2lvblNldCYgc2V0ID0gcmVnaW9uU2V0
Rm9yPFQ+KCk7Ci0gICAgRGVhZEJsb2NrKiBibG9jazsKLSAgICBtX2lzQ3VycmVudGx5QWxsb2Nh
dGluZyA9IHRydWU7Ci0gICAgewotICAgICAgICBTcGluTG9ja0hvbGRlciBsb2NrZXIoJm1fcmVn
aW9uTG9jayk7Ci0gICAgICAgIGlmICgoYmxvY2sgPSB0cnlBbGxvY2F0ZUZyb21SZWdpb24oc2V0
LCBzZXQubV9wYXJ0aWFsUmVnaW9ucywgc2V0Lm1fbnVtYmVyT2ZQYXJ0aWFsUmVnaW9ucykpKQot
ICAgICAgICAgICAgcmV0dXJuIGJsb2NrOwotICAgICAgICBpZiAoKGJsb2NrID0gdHJ5QWxsb2Nh
dGVGcm9tUmVnaW9uKHNldCwgbV9lbXB0eVJlZ2lvbnMsIG1fbnVtYmVyT2ZFbXB0eVJlZ2lvbnMp
KSkKLSAgICAgICAgICAgIHJldHVybiBibG9jazsKLSAgICB9Ci0KLSAgICBSZWdpb24qIG5ld1Jl
Z2lvbiA9IFJlZ2lvbjo6Y3JlYXRlKCZtX3N1cGVyUmVnaW9uLCBUOjpibG9ja1NpemUpOwotCi0g
ICAgU3BpbkxvY2tIb2xkZXIgbG9ja2VyKCZtX3JlZ2lvbkxvY2spOwotICAgIG1fZW1wdHlSZWdp
b25zLnB1c2gobmV3UmVnaW9uKTsKLSAgICBtX251bWJlck9mRW1wdHlSZWdpb25zKys7Ci0gICAg
YmxvY2sgPSB0cnlBbGxvY2F0ZUZyb21SZWdpb24oc2V0LCBtX2VtcHR5UmVnaW9ucywgbV9udW1i
ZXJPZkVtcHR5UmVnaW9ucyk7Ci0gICAgQVNTRVJUKGJsb2NrKTsKLSAgICByZXR1cm4gYmxvY2s7
Ci19Ci0KLWlubGluZSBEZWFkQmxvY2sqIEJsb2NrQWxsb2NhdG9yOjphbGxvY2F0ZUN1c3RvbVNp
emUoc2l6ZV90IGJsb2NrU2l6ZSwgc2l6ZV90IGJsb2NrQWxpZ25tZW50KQotewotICAgIHNpemVf
dCByZWFsU2l6ZSA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihibG9ja0FsaWdubWVudCwgYmxv
Y2tTaXplKTsKLSAgICBSZWdpb24qIG5ld1JlZ2lvbiA9IFJlZ2lvbjo6Y3JlYXRlQ3VzdG9tU2l6
ZSgmbV9zdXBlclJlZ2lvbiwgcmVhbFNpemUsIGJsb2NrQWxpZ25tZW50KTsKLSAgICBEZWFkQmxv
Y2sqIGJsb2NrID0gbmV3UmVnaW9uLT5hbGxvY2F0ZSgpOwotICAgIEFTU0VSVChibG9jayk7Ci0g
ICAgcmV0dXJuIGJsb2NrOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotaW5saW5lIHZvaWQg
QmxvY2tBbGxvY2F0b3I6OmRlYWxsb2NhdGUoVCogYmxvY2spCi17Ci0gICAgUmVnaW9uU2V0JiBz
ZXQgPSByZWdpb25TZXRGb3I8VD4oKTsKLSAgICBib29sIHNob3VsZFdha2VCbG9ja0ZyZWVpbmdU
aHJlYWQgPSBmYWxzZTsKLSAgICB7Ci0gICAgICAgIFNwaW5Mb2NrSG9sZGVyIGxvY2tlcigmbV9y
ZWdpb25Mb2NrKTsKLSAgICAgICAgUmVnaW9uKiByZWdpb24gPSBibG9jay0+cmVnaW9uKCk7Ci0g
ICAgICAgIEFTU0VSVCghcmVnaW9uLT5pc0VtcHR5KCkpOwotICAgICAgICBpZiAocmVnaW9uLT5p
c0Z1bGwoKSkKLSAgICAgICAgICAgIHNldC5tX2Z1bGxSZWdpb25zLnJlbW92ZShyZWdpb24pOwot
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHNldC5tX3BhcnRpYWxSZWdpb25zLnJlbW92ZShy
ZWdpb24pOwotICAgICAgICAgICAgc2V0Lm1fbnVtYmVyT2ZQYXJ0aWFsUmVnaW9ucy0tOwotICAg
ICAgICB9Ci0KLSAgICAgICAgcmVnaW9uLT5kZWFsbG9jYXRlKGJsb2NrKTsKLQotICAgICAgICBp
ZiAocmVnaW9uLT5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIG1fZW1wdHlSZWdpb25zLnB1c2go
cmVnaW9uKTsKLSAgICAgICAgICAgIHNob3VsZFdha2VCbG9ja0ZyZWVpbmdUaHJlYWQgPSAhbV9u
dW1iZXJPZkVtcHR5UmVnaW9uczsKLSAgICAgICAgICAgIG1fbnVtYmVyT2ZFbXB0eVJlZ2lvbnMr
KzsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldC5tX3BhcnRpYWxSZWdpb25zLnB1
c2gocmVnaW9uKTsKLSAgICAgICAgICAgIHNldC5tX251bWJlck9mUGFydGlhbFJlZ2lvbnMrKzsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChzaG91bGRXYWtlQmxvY2tGcmVlaW5nVGhyZWFk
KSB7Ci0gICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1fZW1wdHlSZWdp
b25Db25kaXRpb25NdXRleCk7Ci0gICAgICAgIG1fZW1wdHlSZWdpb25Db25kaXRpb24ubm90aWZ5
X29uZSgpOwotICAgIH0KLQotICAgIGlmICghbV9ibG9ja0ZyZWVpbmdUaHJlYWQpCi0gICAgICAg
IHJlbGVhc2VGcmVlUmVnaW9ucygpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotaW5saW5l
IHZvaWQgQmxvY2tBbGxvY2F0b3I6OmRlYWxsb2NhdGVDdXN0b21TaXplKFQqIGJsb2NrKQotewot
ICAgIFJlZ2lvbiogcmVnaW9uID0gYmxvY2stPnJlZ2lvbigpOwotICAgIEFTU0VSVChyZWdpb24t
PmlzQ3VzdG9tU2l6ZSgpKTsKLSAgICByZWdpb24tPmRlYWxsb2NhdGUoYmxvY2spOwotICAgIHJl
Z2lvbi0+ZGVzdHJveSgpOwotfQotCi0jZGVmaW5lIFJFR0lPTl9TRVRfRk9SKGJsb2NrVHlwZSwg
c2V0KSBcCi0gICAgdGVtcGxhdGUgPD4gXAotICAgIGlubGluZSBCbG9ja0FsbG9jYXRvcjo6UmVn
aW9uU2V0JiBCbG9ja0FsbG9jYXRvcjo6cmVnaW9uU2V0Rm9yPGJsb2NrVHlwZT4oKSBcCi0gICAg
eyBcCi0gICAgICAgIHJldHVybiBzZXQ7IFwKLSAgICB9IFwKLSAgICB0ZW1wbGF0ZSA8PiBcCi0g
ICAgaW5saW5lIEJsb2NrQWxsb2NhdG9yOjpSZWdpb25TZXQmIEJsb2NrQWxsb2NhdG9yOjpyZWdp
b25TZXRGb3I8SGVhcEJsb2NrPGJsb2NrVHlwZT4+KCkgXAotICAgIHsgXAotICAgICAgICByZXR1
cm4gc2V0OyBcCi0gICAgfSBcCi0KLVJFR0lPTl9TRVRfRk9SKE1hcmtlZEJsb2NrLCBtX21hcmtl
ZFJlZ2lvblNldCk7Ci1SRUdJT05fU0VUX0ZPUihDb3BpZWRCbG9jaywgbV9jb3BpZWRSZWdpb25T
ZXQpOwotUkVHSU9OX1NFVF9GT1IoV2Vha0Jsb2NrLCBtX2ZvdXJLQkJsb2NrUmVnaW9uU2V0KTsK
LVJFR0lPTl9TRVRfRk9SKEdDQXJyYXlTZWdtZW50PGNvbnN0IEpTQ2VsbCo+LCBtX2ZvdXJLQkJs
b2NrUmVnaW9uU2V0KTsKLVJFR0lPTl9TRVRfRk9SKEdDQXJyYXlTZWdtZW50PENvZGVCbG9jayo+
LCBtX2ZvdXJLQkJsb2NrUmVnaW9uU2V0KTsKLVJFR0lPTl9TRVRfRk9SKENvcHlXb3JrTGlzdFNl
Z21lbnQsIG1fd29ya0xpc3RSZWdpb25TZXQpOwotUkVHSU9OX1NFVF9GT1IoSGFuZGxlQmxvY2ss
IG1fZm91cktCQmxvY2tSZWdpb25TZXQpOwotCi0jdW5kZWYgUkVHSU9OX1NFVF9GT1IKLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+Ci1pbmxpbmUgQmxvY2tBbGxvY2F0b3I6OlJlZ2lvblNldCYgQmxv
Y2tBbGxvY2F0b3I6OnJlZ2lvblNldEZvcigpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICByZXR1cm4gKihSZWdpb25TZXQqKTA7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IEpTQwotCi0jZW5kaWYgLy8gQmxvY2tBbGxvY2F0b3JfaApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvQ29kZUJsb2NrU2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9Db2RlQmxvY2tTZXQuY3BwCShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db2RlQmxvY2tTZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNSw4ICszNSw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiBzdGF0aWMgY29uc3QgYm9vbCB2ZXJi
b3NlID0gZmFsc2U7CiAKLUNvZGVCbG9ja1NldDo6Q29kZUJsb2NrU2V0KEJsb2NrQWxsb2NhdG9y
JiBibG9ja0FsbG9jYXRvcikKLSAgICA6IG1fY3VycmVudGx5RXhlY3V0aW5nKGJsb2NrQWxsb2Nh
dG9yKQorQ29kZUJsb2NrU2V0OjpDb2RlQmxvY2tTZXQoKQorICAgIDogbV9jdXJyZW50bHlFeGVj
dXRpbmcoKQogewogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db2RlQmxv
Y2tTZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db2RlQmxv
Y2tTZXQuaAkocmV2aXNpb24gMTc5MDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
Q29kZUJsb2NrU2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDYgQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKLWNsYXNzIEJsb2NrQWxsb2NhdG9yOwogY2xhc3MgQ29kZUJsb2NrOwogY2xh
c3MgSGVhcDsKIGNsYXNzIEpTQ2VsbDsKQEAgLTUwLDcgKzQ5LDcgQEAgY2xhc3MgQ29kZUJsb2Nr
U2V0IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb2RlQmxvY2tTZXQpOwogCiBwdWJsaWM6
Ci0gICAgQ29kZUJsb2NrU2V0KEJsb2NrQWxsb2NhdG9yJik7CisgICAgQ29kZUJsb2NrU2V0KCk7
CiAgICAgfkNvZGVCbG9ja1NldCgpOwogICAgIAogICAgIC8vIEFkZCBhIENvZGVCbG9jay4gVGhp
cyBpcyBvbmx5IGNhbGxlZCBieSBDb2RlQmxvY2sgY29uc3RydWN0b3JzLgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRCbG9jay5oCShyZXZpc2lvbiAxNzkwMjUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiwxMiArMjYsMTIgQEAKICNpZm5kZWYgQ29waWVkQmxvY2tfaAogI2RlZmluZSBDb3BpZWRC
bG9ja19oCiAKLSNpbmNsdWRlICJCbG9ja0FsbG9jYXRvci5oIgogI2luY2x1ZGUgIkNvcHlXb3Jr
TGlzdC5oIgogI2luY2x1ZGUgIkhlYXBCbG9jay5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIK
ICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KKyNpbmNsdWRl
IDx3dGYvVENTcGluTG9jay5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNDEsOCArNDEsOCBA
QCBjbGFzcyBDb3BpZWRCbG9jayA6IHB1YmxpYyBIZWFwQmxvY2s8Q29wCiAgICAgZnJpZW5kIGNs
YXNzIENvcGllZFNwYWNlOwogICAgIGZyaWVuZCBjbGFzcyBDb3BpZWRBbGxvY2F0b3I7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIENvcGllZEJsb2NrKiBjcmVhdGUoRGVhZEJsb2NrKik7Ci0gICAgc3Rh
dGljIENvcGllZEJsb2NrKiBjcmVhdGVOb1plcm9GaWxsKERlYWRCbG9jayopOworICAgIHN0YXRp
YyBDb3BpZWRCbG9jayogY3JlYXRlKHNpemVfdCk7CisgICAgc3RhdGljIENvcGllZEJsb2NrKiBj
cmVhdGVOb1plcm9GaWxsKHNpemVfdCk7CiAKICAgICB2b2lkIHBpbigpOwogICAgIGJvb2wgaXNQ
aW5uZWQoKTsKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogICAgIFNwaW5Mb2NrJiB3b3JrTGlz
dExvY2soKSB7IHJldHVybiBtX3dvcmtMaXN0TG9jazsgfQogCiBwcml2YXRlOgotICAgIENvcGll
ZEJsb2NrKFJlZ2lvbiopOworICAgIENvcGllZEJsb2NrKHNpemVfdCk7CiAgICAgdm9pZCB6ZXJv
RmlsbFdpbGRlcm5lc3MoKTsgLy8gQ2FuIGJlIGNhbGxlZCBhdCBhbnkgdGltZSB0byB6ZXJvLWZp
bGwgdG8gdGhlIGVuZCBvZiB0aGUgYmxvY2suCiAKICAgICB2b2lkIGNoZWNrQ29uc2lzdGVuY3ko
KTsKQEAgLTk0LDYgKzk0LDcgQEAgcHJpdmF0ZToKICAgICBTcGluTG9jayBtX3dvcmtMaXN0TG9j
azsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29weVdvcmtMaXN0PiBtX3dvcmtMaXN0OwogCisgICAg
c2l6ZV90IG1fYmxvY2tTaXplOwogICAgIHNpemVfdCBtX3JlbWFpbmluZzsKICAgICBib29sIG1f
aXNQaW5uZWQgOiAxOwogICAgIGJvb2wgbV9pc09sZCA6IDE7CkBAIC0xMDMsMTUgKzEwNCwxNCBA
QCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi1pbmxpbmUgQ29waWVkQmxvY2sqIENvcGllZEJsb2Nr
OjpjcmVhdGVOb1plcm9GaWxsKERlYWRCbG9jayogYmxvY2spCitpbmxpbmUgQ29waWVkQmxvY2sq
IENvcGllZEJsb2NrOjpjcmVhdGVOb1plcm9GaWxsKHNpemVfdCBibG9ja1NpemUpCiB7Ci0gICAg
UmVnaW9uKiByZWdpb24gPSBibG9jay0+cmVnaW9uKCk7Ci0gICAgcmV0dXJuIG5ldyhOb3ROdWxs
LCBibG9jaykgQ29waWVkQmxvY2socmVnaW9uKTsKKyAgICByZXR1cm4gbmV3KE5vdE51bGwsIGZh
c3RBbGlnbmVkTWFsbG9jKENvcGllZEJsb2NrOjpibG9ja1NpemUsIGJsb2NrU2l6ZSkpIENvcGll
ZEJsb2NrKGJsb2NrU2l6ZSk7CiB9CiAKLWlubGluZSBDb3BpZWRCbG9jayogQ29waWVkQmxvY2s6
OmNyZWF0ZShEZWFkQmxvY2sqIGJsb2NrKQoraW5saW5lIENvcGllZEJsb2NrKiBDb3BpZWRCbG9j
azo6Y3JlYXRlKHNpemVfdCBibG9ja1NpemUpCiB7Ci0gICAgQ29waWVkQmxvY2sqIG5ld0Jsb2Nr
ID0gY3JlYXRlTm9aZXJvRmlsbChibG9jayk7CisgICAgQ29waWVkQmxvY2sqIG5ld0Jsb2NrID0g
Y3JlYXRlTm9aZXJvRmlsbChibG9ja1NpemUpOwogICAgIG5ld0Jsb2NrLT56ZXJvRmlsbFdpbGRl
cm5lc3MoKTsKICAgICByZXR1cm4gbmV3QmxvY2s7CiB9CkBAIC0xMjgsOCArMTI4LDkgQEAgaW5s
aW5lIHZvaWQgQ29waWVkQmxvY2s6Onplcm9GaWxsV2lsZGVybgogI2VuZGlmCiB9CiAKLWlubGlu
ZSBDb3BpZWRCbG9jazo6Q29waWVkQmxvY2soUmVnaW9uKiByZWdpb24pCi0gICAgOiBIZWFwQmxv
Y2s8Q29waWVkQmxvY2s+KHJlZ2lvbikKK2lubGluZSBDb3BpZWRCbG9jazo6Q29waWVkQmxvY2so
c2l6ZV90IGJsb2NrU2l6ZSkKKyAgICA6IEhlYXBCbG9jazxDb3BpZWRCbG9jaz4oKQorICAgICwg
bV9ibG9ja1NpemUoYmxvY2tTaXplKQogICAgICwgbV9yZW1haW5pbmcocGF5bG9hZENhcGFjaXR5
KCkpCiAgICAgLCBtX2lzUGlubmVkKGZhbHNlKQogICAgICwgbV9pc09sZChmYWxzZSkKQEAgLTIw
Myw3ICsyMDQsNyBAQCBpbmxpbmUgdm9pZCBDb3BpZWRCbG9jazo6ZGlkUHJvbW90ZSgpCiAKIGlu
bGluZSBib29sIENvcGllZEJsb2NrOjppc092ZXJzaXplKCkKIHsKLSAgICByZXR1cm4gcmVnaW9u
KCktPmlzQ3VzdG9tU2l6ZSgpOworICAgIHJldHVybiBtX2Jsb2NrU2l6ZSAhPSBibG9ja1NpemU7
CiB9CiAKIGlubGluZSB1bnNpZ25lZCBDb3BpZWRCbG9jazo6bGl2ZUJ5dGVzKCkKQEAgLTIxOSw3
ICsyMjAsNyBAQCBpbmxpbmUgY2hhciogQ29waWVkQmxvY2s6OnBheWxvYWQoKQogCiBpbmxpbmUg
Y2hhciogQ29waWVkQmxvY2s6OnBheWxvYWRFbmQoKQogewotICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PGNoYXIqPih0aGlzKSArIHJlZ2lvbigpLT5ibG9ja1NpemUoKTsKKyAgICByZXR1cm4g
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odGhpcykgKyBtX2Jsb2NrU2l6ZTsKIH0KIAogaW5saW5l
IHNpemVfdCBDb3BpZWRCbG9jazo6cGF5bG9hZENhcGFjaXR5KCkKQEAgLTI2NCw3ICsyNjUsNyBA
QCBpbmxpbmUgc2l6ZV90IENvcGllZEJsb2NrOjpzaXplKCkKIAogaW5saW5lIHNpemVfdCBDb3Bp
ZWRCbG9jazo6Y2FwYWNpdHkoKQogewotICAgIHJldHVybiByZWdpb24oKS0+YmxvY2tTaXplKCk7
CisgICAgcmV0dXJuIG1fYmxvY2tTaXplOwogfQogCiBpbmxpbmUgYm9vbCBDb3BpZWRCbG9jazo6
aGFzV29ya0xpc3QoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkQmxv
Y2tJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29w
aWVkQmxvY2tJbmxpbmVzLmgJKHJldmlzaW9uIDE3OTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0NvcGllZEJsb2NrSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2
Miw3IEBAIGlubGluZSB2b2lkIENvcGllZEJsb2NrOjpyZXBvcnRMaXZlQnl0ZXMKICAgICB9CiAK
ICAgICBpZiAoIW1fd29ya0xpc3QpCi0gICAgICAgIG1fd29ya0xpc3QgPSBzdGQ6Om1ha2VfdW5p
cXVlPENvcHlXb3JrTGlzdD4oSGVhcDo6aGVhcChvd25lciktPmJsb2NrQWxsb2NhdG9yKCkpOwor
ICAgICAgICBtX3dvcmtMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxDb3B5V29ya0xpc3Q+KCk7CiAK
ICAgICBtX3dvcmtMaXN0LT5hcHBlbmQoQ29weVdvcmtsaXN0SXRlbShvd25lciwgdG9rZW4pKTsK
IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZS5jcHAJKHJl
dmlzaW9uIDE3OTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsMjIgKzQ1LDIyIEBAIENvcGllZFNwYWNlOjpDb3Bp
ZWRTcGFjZShIZWFwKiBoZWFwKQogQ29waWVkU3BhY2U6On5Db3BpZWRTcGFjZSgpCiB7CiAgICAg
d2hpbGUgKCFtX29sZEdlbi50b1NwYWNlLT5pc0VtcHR5KCkpCi0gICAgICAgIG1faGVhcC0+Ymxv
Y2tBbGxvY2F0b3IoKS5kZWFsbG9jYXRlKENvcGllZEJsb2NrOjpkZXN0cm95KG1fb2xkR2VuLnRv
U3BhY2UtPnJlbW92ZUhlYWQoKSkpOworICAgICAgICBDb3BpZWRCbG9jazo6ZGVzdHJveShtX29s
ZEdlbi50b1NwYWNlLT5yZW1vdmVIZWFkKCkpOwogCiAgICAgd2hpbGUgKCFtX29sZEdlbi5mcm9t
U3BhY2UtPmlzRW1wdHkoKSkKLSAgICAgICAgbV9oZWFwLT5ibG9ja0FsbG9jYXRvcigpLmRlYWxs
b2NhdGUoQ29waWVkQmxvY2s6OmRlc3Ryb3kobV9vbGRHZW4uZnJvbVNwYWNlLT5yZW1vdmVIZWFk
KCkpKTsKKyAgICAgICAgQ29waWVkQmxvY2s6OmRlc3Ryb3kobV9vbGRHZW4uZnJvbVNwYWNlLT5y
ZW1vdmVIZWFkKCkpOwogCiAgICAgd2hpbGUgKCFtX29sZEdlbi5vdmVyc2l6ZUJsb2Nrcy5pc0Vt
cHR5KCkpCi0gICAgICAgIG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5kZWFsbG9jYXRlQ3VzdG9t
U2l6ZShDb3BpZWRCbG9jazo6ZGVzdHJveShtX29sZEdlbi5vdmVyc2l6ZUJsb2Nrcy5yZW1vdmVI
ZWFkKCkpKTsKKyAgICAgICAgQ29waWVkQmxvY2s6OmRlc3Ryb3kobV9vbGRHZW4ub3ZlcnNpemVC
bG9ja3MucmVtb3ZlSGVhZCgpKTsKIAogICAgIHdoaWxlICghbV9uZXdHZW4udG9TcGFjZS0+aXNF
bXB0eSgpKQotICAgICAgICBtX2hlYXAtPmJsb2NrQWxsb2NhdG9yKCkuZGVhbGxvY2F0ZShDb3Bp
ZWRCbG9jazo6ZGVzdHJveShtX25ld0dlbi50b1NwYWNlLT5yZW1vdmVIZWFkKCkpKTsKKyAgICAg
ICAgQ29waWVkQmxvY2s6OmRlc3Ryb3kobV9uZXdHZW4udG9TcGFjZS0+cmVtb3ZlSGVhZCgpKTsK
IAogICAgIHdoaWxlICghbV9uZXdHZW4uZnJvbVNwYWNlLT5pc0VtcHR5KCkpCi0gICAgICAgIG1f
aGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5kZWFsbG9jYXRlKENvcGllZEJsb2NrOjpkZXN0cm95KG1f
bmV3R2VuLmZyb21TcGFjZS0+cmVtb3ZlSGVhZCgpKSk7CisgICAgICAgIENvcGllZEJsb2NrOjpk
ZXN0cm95KG1fbmV3R2VuLmZyb21TcGFjZS0+cmVtb3ZlSGVhZCgpKTsKIAogICAgIHdoaWxlICgh
bV9uZXdHZW4ub3ZlcnNpemVCbG9ja3MuaXNFbXB0eSgpKQotICAgICAgICBtX2hlYXAtPmJsb2Nr
QWxsb2NhdG9yKCkuZGVhbGxvY2F0ZUN1c3RvbVNpemUoQ29waWVkQmxvY2s6OmRlc3Ryb3kobV9u
ZXdHZW4ub3ZlcnNpemVCbG9ja3MucmVtb3ZlSGVhZCgpKSk7CisgICAgICAgIENvcGllZEJsb2Nr
OjpkZXN0cm95KG1fbmV3R2VuLm92ZXJzaXplQmxvY2tzLnJlbW92ZUhlYWQoKSk7CiAKICAgICBB
U1NFUlQobV9vbGRHZW4udG9TcGFjZS0+aXNFbXB0eSgpKTsKICAgICBBU1NFUlQobV9vbGRHZW4u
ZnJvbVNwYWNlLT5pc0VtcHR5KCkpOwpAQCAtOTksNyArOTksNyBAQCBDaGVja2VkQm9vbGVhbiBD
b3BpZWRTcGFjZTo6dHJ5QWxsb2NhdGVPCiB7CiAgICAgQVNTRVJUKGlzT3ZlcnNpemUoYnl0ZXMp
KTsKICAgICAKLSAgICBDb3BpZWRCbG9jayogYmxvY2sgPSBDb3BpZWRCbG9jazo6Y3JlYXRlKG1f
aGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5hbGxvY2F0ZUN1c3RvbVNpemUoc2l6ZW9mKENvcGllZEJs
b2NrKSArIGJ5dGVzLCBDb3BpZWRCbG9jazo6YmxvY2tTaXplKSk7CisgICAgQ29waWVkQmxvY2sq
IGJsb2NrID0gQ29waWVkQmxvY2s6OmNyZWF0ZShzaXplb2YoQ29waWVkQmxvY2spICsgYnl0ZXMp
OwogICAgIG1fbmV3R2VuLm92ZXJzaXplQmxvY2tzLnB1c2goYmxvY2spOwogICAgIG1fbmV3R2Vu
LmJsb2NrRmlsdGVyLmFkZChyZWludGVycHJldF9jYXN0PEJpdHM+KGJsb2NrKSk7CiAgICAgbV9i
bG9ja1NldC5hZGQoYmxvY2spOwpAQCAtMTEwLDcgKzExMCw3IEBAIENoZWNrZWRCb29sZWFuIENv
cGllZFNwYWNlOjp0cnlBbGxvY2F0ZU8KICAgICAqb3V0UHRyID0gYWxsb2NhdG9yLmZvcmNlQWxs
b2NhdGUoYnl0ZXMpOwogICAgIGFsbG9jYXRvci5yZXNldEN1cnJlbnRCbG9jaygpOwogCi0gICAg
bV9oZWFwLT5kaWRBbGxvY2F0ZShibG9jay0+cmVnaW9uKCktPmJsb2NrU2l6ZSgpKTsKKyAgICBt
X2hlYXAtPmRpZEFsbG9jYXRlKGJsb2NrLT5jYXBhY2l0eSgpKTsKIAogICAgIHJldHVybiB0cnVl
OwogfQpAQCAtMTYxLDcgKzE2MSw3IEBAIENoZWNrZWRCb29sZWFuIENvcGllZFNwYWNlOjp0cnlS
ZWFsbG9jYXQKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9uZXdHZW4ub3ZlcnNpemVCbG9j
a3MucmVtb3ZlKG9sZEJsb2NrKTsKICAgICAgICAgbV9ibG9ja1NldC5yZW1vdmUob2xkQmxvY2sp
OwotICAgICAgICBtX2hlYXAtPmJsb2NrQWxsb2NhdG9yKCkuZGVhbGxvY2F0ZUN1c3RvbVNpemUo
Q29waWVkQmxvY2s6OmRlc3Ryb3kob2xkQmxvY2spKTsKKyAgICAgICAgQ29waWVkQmxvY2s6OmRl
c3Ryb3kob2xkQmxvY2spOwogICAgIH0KICAgICAKICAgICAqcHRyID0gbmV3UHRyOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2VJbmxpbmVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2VJbmxpbmVzLmgJKHJl
dmlzaW9uIDE3OTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNl
SW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsMTIgKzEwNiwxMiBAQCBpbmxpbmUgdm9p
ZCBDb3BpZWRTcGFjZTo6cmVjeWNsZUV2YWN1YXRlCiAgICAgICAgIGVsc2UKICAgICAgICAgICAg
IG1fb2xkR2VuLmZyb21TcGFjZS0+cmVtb3ZlKGJsb2NrKTsKICAgICB9Ci0gICAgbV9oZWFwLT5i
bG9ja0FsbG9jYXRvcigpLmRlYWxsb2NhdGUoQ29waWVkQmxvY2s6OmRlc3Ryb3koYmxvY2spKTsK
KyAgICBDb3BpZWRCbG9jazo6ZGVzdHJveShibG9jayk7CiB9CiAKIGlubGluZSB2b2lkIENvcGll
ZFNwYWNlOjpyZWN5Y2xlQm9ycm93ZWRCbG9jayhDb3BpZWRCbG9jayogYmxvY2spCiB7Ci0gICAg
bV9oZWFwLT5ibG9ja0FsbG9jYXRvcigpLmRlYWxsb2NhdGUoQ29waWVkQmxvY2s6OmRlc3Ryb3ko
YmxvY2spKTsKKyAgICBDb3BpZWRCbG9jazo6ZGVzdHJveShibG9jayk7CiAKICAgICB7CiAgICAg
ICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvYW5lZEJsb2Nrc0xvY2spOwpAQCAtMTI2LDcgKzEy
Niw3IEBAIGlubGluZSB2b2lkIENvcGllZFNwYWNlOjpyZWN5Y2xlQm9ycm93ZWQKIGlubGluZSBD
b3BpZWRCbG9jayogQ29waWVkU3BhY2U6OmFsbG9jYXRlQmxvY2tGb3JDb3B5aW5nUGhhc2UoKQog
ewogICAgIEFTU0VSVChtX2luQ29weWluZ1BoYXNlKTsKLSAgICBDb3BpZWRCbG9jayogYmxvY2sg
PSBDb3BpZWRCbG9jazo6Y3JlYXRlTm9aZXJvRmlsbChtX2hlYXAtPmJsb2NrQWxsb2NhdG9yKCku
YWxsb2NhdGU8Q29waWVkQmxvY2s+KCkpOworICAgIENvcGllZEJsb2NrKiBibG9jayA9IENvcGll
ZEJsb2NrOjpjcmVhdGVOb1plcm9GaWxsKENvcGllZEJsb2NrOjpibG9ja1NpemUpOwogCiAgICAg
ewogICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2FuZWRCbG9ja3NMb2NrKTsKQEAgLTE0
Myw3ICsxNDMsNyBAQCBpbmxpbmUgdm9pZCBDb3BpZWRTcGFjZTo6YWxsb2NhdGVCbG9jaygpCiAK
ICAgICBtX2FsbG9jYXRvci5yZXNldEN1cnJlbnRCbG9jaygpOwogICAgIAotICAgIENvcGllZEJs
b2NrKiBibG9jayA9IENvcGllZEJsb2NrOjpjcmVhdGUobV9oZWFwLT5ibG9ja0FsbG9jYXRvcigp
LmFsbG9jYXRlPENvcGllZEJsb2NrPigpKTsKKyAgICBDb3BpZWRCbG9jayogYmxvY2sgPSBDb3Bp
ZWRCbG9jazo6Y3JlYXRlKENvcGllZEJsb2NrOjpibG9ja1NpemUpOwogICAgICAgICAKICAgICBt
X25ld0dlbi50b1NwYWNlLT5wdXNoKGJsb2NrKTsKICAgICBtX25ld0dlbi5ibG9ja0ZpbHRlci5h
ZGQocmVpbnRlcnByZXRfY2FzdDxCaXRzPihibG9jaykpOwpAQCAtMjM1LDcgKzIzNSw3IEBAIGlu
bGluZSB2b2lkIENvcGllZFNwYWNlOjpzdGFydGVkQ29weWluZygKICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgIG92ZXJzaXplQmxvY2tzLT5yZW1vdmUoYmxvY2spOwogICAgICAgICAgICAg
bV9ibG9ja1NldC5yZW1vdmUoYmxvY2spOwotICAgICAgICAgICAgbV9oZWFwLT5ibG9ja0FsbG9j
YXRvcigpLmRlYWxsb2NhdGVDdXN0b21TaXplKENvcGllZEJsb2NrOjpkZXN0cm95KGJsb2NrKSk7
CisgICAgICAgICAgICBDb3BpZWRCbG9jazo6ZGVzdHJveShibG9jayk7CiAgICAgICAgIH0gCiAg
ICAgICAgIGJsb2NrID0gbmV4dDsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9Db3B5V29ya0xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9Db3B5V29ya0xpc3QuaAkocmV2aXNpb24gMTc5MDI1KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvQ29weVdvcmtMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcg
QEAKICNkZWZpbmUgQ29weVdvcmtMaXN0X2gKIAogI2luY2x1ZGUgIkNvcHlUb2tlbi5oIgorI2lu
Y2x1ZGUgIkhlYXBCbG9jay5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNl
IEpTQyB7CkBAIC01OSw5ICs2MCw5IEBAIHByaXZhdGU6CiAKIGNsYXNzIENvcHlXb3JrTGlzdFNl
Z21lbnQgOiBwdWJsaWMgSGVhcEJsb2NrPENvcHlXb3JrTGlzdFNlZ21lbnQ+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgQ29weVdvcmtMaXN0U2VnbWVudCogY3JlYXRlKERlYWRCbG9jayogYmxvY2sp
CisgICAgc3RhdGljIENvcHlXb3JrTGlzdFNlZ21lbnQqIGNyZWF0ZSgpCiAgICAgewotICAgICAg
ICByZXR1cm4gbmV3IChOb3ROdWxsLCBibG9jaykgQ29weVdvcmtMaXN0U2VnbWVudChibG9jay0+
cmVnaW9uKCkpOworICAgICAgICByZXR1cm4gbmV3IChOb3ROdWxsLCBmYXN0QWxpZ25lZE1hbGxv
YyhibG9ja1NpemUsIGJsb2NrU2l6ZSkpIENvcHlXb3JrTGlzdFNlZ21lbnQoKTsKICAgICB9CiAK
ICAgICBzaXplX3Qgc2l6ZSgpIHsgcmV0dXJuIG1fc2l6ZTsgfQpAQCAtNzgsOCArNzksOCBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBibG9ja1NpemUgPSA1MTI7CiAKIHByaXZh
dGU6Ci0gICAgQ29weVdvcmtMaXN0U2VnbWVudChSZWdpb24qIHJlZ2lvbikKLSAgICAgICAgOiBI
ZWFwQmxvY2s8Q29weVdvcmtMaXN0U2VnbWVudD4ocmVnaW9uKQorICAgIENvcHlXb3JrTGlzdFNl
Z21lbnQoKQorICAgICAgICA6IEhlYXBCbG9jazxDb3B5V29ya0xpc3RTZWdtZW50PigpCiAgICAg
ICAgICwgbV9zaXplKDApCiAgICAgewogICAgIH0KQEAgLTE0Myw3ICsxNDQsNiBAQCBjbGFzcyBD
b3B5V29ya0xpc3QgewogcHVibGljOgogICAgIHR5cGVkZWYgQ29weVdvcmtMaXN0SXRlcmF0b3Ig
aXRlcmF0b3I7CiAKLSAgICBDb3B5V29ya0xpc3QoQmxvY2tBbGxvY2F0b3ImKTsKICAgICB+Q29w
eVdvcmtMaXN0KCk7CiAKICAgICB2b2lkIGFwcGVuZChDb3B5V29ya2xpc3RJdGVtKTsKQEAgLTE1
MiwyNCArMTUyLDE4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBEb3VibHlMaW5rZWRMaXN0
PENvcHlXb3JrTGlzdFNlZ21lbnQ+IG1fc2VnbWVudHM7Ci0gICAgQmxvY2tBbGxvY2F0b3ImIG1f
YmxvY2tBbGxvY2F0b3I7CiB9OwogCi1pbmxpbmUgQ29weVdvcmtMaXN0OjpDb3B5V29ya0xpc3Qo
QmxvY2tBbGxvY2F0b3ImIGJsb2NrQWxsb2NhdG9yKQotICAgIDogbV9ibG9ja0FsbG9jYXRvcihi
bG9ja0FsbG9jYXRvcikKLXsKLX0KLQogaW5saW5lIENvcHlXb3JrTGlzdDo6fkNvcHlXb3JrTGlz
dCgpCiB7CiAgICAgd2hpbGUgKCFtX3NlZ21lbnRzLmlzRW1wdHkoKSkKLSAgICAgICAgbV9ibG9j
a0FsbG9jYXRvci5kZWFsbG9jYXRlKENvcHlXb3JrTGlzdFNlZ21lbnQ6OmRlc3Ryb3kobV9zZWdt
ZW50cy5yZW1vdmVIZWFkKCkpKTsKKyAgICAgICAgQ29weVdvcmtMaXN0U2VnbWVudDo6ZGVzdHJv
eShtX3NlZ21lbnRzLnJlbW92ZUhlYWQoKSk7CiB9CiAKIGlubGluZSB2b2lkIENvcHlXb3JrTGlz
dDo6YXBwZW5kKENvcHlXb3JrbGlzdEl0ZW0gaXRlbSkKIHsKICAgICBpZiAobV9zZWdtZW50cy5p
c0VtcHR5KCkgfHwgbV9zZWdtZW50cy50YWlsKCktPmlzRnVsbCgpKQotICAgICAgICBtX3NlZ21l
bnRzLmFwcGVuZChDb3B5V29ya0xpc3RTZWdtZW50OjpjcmVhdGUobV9ibG9ja0FsbG9jYXRvci5h
bGxvY2F0ZTxDb3B5V29ya0xpc3RTZWdtZW50PigpKSk7CisgICAgICAgIG1fc2VnbWVudHMuYXBw
ZW5kKENvcHlXb3JrTGlzdFNlZ21lbnQ6OmNyZWF0ZSgpKTsKIAogICAgIEFTU0VSVCghbV9zZWdt
ZW50cy50YWlsKCktPmlzRnVsbCgpKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvR0NTZWdtZW50ZWRBcnJheS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0dDU2VnbWVudGVkQXJyYXkuaAkocmV2aXNpb24gMTc5MDI1KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvR0NTZWdtZW50ZWRBcnJheS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MSwyMSArMzEsMTggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEJsb2NrQWxsb2NhdG9y
OwotY2xhc3MgRGVhZEJsb2NrOwotCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIEdDQXJy
YXlTZWdtZW50IDogcHVibGljIEhlYXBCbG9jazxHQ0FycmF5U2VnbWVudDxUPj4gewogcHVibGlj
OgotICAgIEdDQXJyYXlTZWdtZW50KFJlZ2lvbiogcmVnaW9uKQotICAgICAgICA6IEhlYXBCbG9j
azxHQ0FycmF5U2VnbWVudD4ocmVnaW9uKQorICAgIEdDQXJyYXlTZWdtZW50KCkKKyAgICAgICAg
OiBIZWFwQmxvY2s8R0NBcnJheVNlZ21lbnQ+KCkKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAg
ICAgICwgbV90b3AoMCkKICNlbmRpZgogICAgIHsKICAgICB9CiAKLSAgICBzdGF0aWMgR0NBcnJh
eVNlZ21lbnQqIGNyZWF0ZShEZWFkQmxvY2sqKTsKKyAgICBzdGF0aWMgR0NBcnJheVNlZ21lbnQq
IGNyZWF0ZSgpOwogCiAgICAgVCogZGF0YSgpCiAgICAgewpAQCAtNjYsNyArNjMsNyBAQCBjbGFz
cyBHQ1NlZ21lbnRlZEFycmF5IHsKICAgICBmcmllbmQgY2xhc3MgR0NTZWdtZW50ZWRBcnJheUl0
ZXJhdG9yPFQ+OwogICAgIGZyaWVuZCBjbGFzcyBHQ1NlZ21lbnRlZEFycmF5SXRlcmF0b3I8Y29u
c3QgVD47CiBwdWJsaWM6Ci0gICAgR0NTZWdtZW50ZWRBcnJheShCbG9ja0FsbG9jYXRvciYpOwor
ICAgIEdDU2VnbWVudGVkQXJyYXkoKTsKICAgICB+R0NTZWdtZW50ZWRBcnJheSgpOwogCiAgICAg
dm9pZCBhcHBlbmQoVCk7CkBAIC0xMDEsNyArOTgsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCB2
YWxpZGF0ZVByZXZpb3VzKCk7CiAKICAgICBEb3VibHlMaW5rZWRMaXN0PEdDQXJyYXlTZWdtZW50
PFQ+PiBtX3NlZ21lbnRzOwotICAgIEJsb2NrQWxsb2NhdG9yJiBtX2Jsb2NrQWxsb2NhdG9yOwog
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGNvbnN0IHNpemVfdCBzX3NlZ21lbnRDYXBh
Y2l0eSA9IENhcGFjaXR5RnJvbVNpemU8R0NBcnJheVNlZ21lbnQ8VD46OmJsb2NrU2l6ZT46OnZh
bHVlOwogICAgIHNpemVfdCBtX3RvcDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0dDU2VnbWVudGVkQXJyYXlJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvR0NTZWdtZW50ZWRBcnJheUlubGluZXMuaAkocmV2aXNpb24gMTc5MDI1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NTZWdtZW50ZWRBcnJheUlubGluZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtMjYsMTggKzI2LDE2IEBACiAjaWZuZGVmIEdDU2VnbWVudGVkQXJy
YXlJbmxpbmVzX2gKICNkZWZpbmUgR0NTZWdtZW50ZWRBcnJheUlubGluZXNfaAogCi0jaW5jbHVk
ZSAiQmxvY2tBbGxvY2F0b3IuaCIKICNpbmNsdWRlICJHQ1NlZ21lbnRlZEFycmF5LmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLUdDU2VnbWVudGVkQXJyYXk8
VD46OkdDU2VnbWVudGVkQXJyYXkoQmxvY2tBbGxvY2F0b3ImIGJsb2NrQWxsb2NhdG9yKQotICAg
IDogbV9ibG9ja0FsbG9jYXRvcihibG9ja0FsbG9jYXRvcikKLSAgICAsIG1fdG9wKDApCitHQ1Nl
Z21lbnRlZEFycmF5PFQ+OjpHQ1NlZ21lbnRlZEFycmF5KCkKKyAgICA6IG1fdG9wKDApCiAgICAg
LCBtX251bWJlck9mU2VnbWVudHMoMCkKIHsKLSAgICBtX3NlZ21lbnRzLnB1c2goR0NBcnJheVNl
Z21lbnQ8VD46OmNyZWF0ZShtX2Jsb2NrQWxsb2NhdG9yLmFsbG9jYXRlPEdDQXJyYXlTZWdtZW50
PFQ+PigpKSk7CisgICAgbV9zZWdtZW50cy5wdXNoKEdDQXJyYXlTZWdtZW50PFQ+OjpjcmVhdGUo
KSk7CiAgICAgbV9udW1iZXJPZlNlZ21lbnRzKys7CiB9CiAKQEAgLTQ2LDcgKzQ0LDcgQEAgR0NT
ZWdtZW50ZWRBcnJheTxUPjo6fkdDU2VnbWVudGVkQXJyYXkoKQogewogICAgIEFTU0VSVChtX251
bWJlck9mU2VnbWVudHMgPT0gMSk7CiAgICAgQVNTRVJUKG1fc2VnbWVudHMuc2l6ZSgpID09IDEp
OwotICAgIG1fYmxvY2tBbGxvY2F0b3IuZGVhbGxvY2F0ZShHQ0FycmF5U2VnbWVudDxUPjo6ZGVz
dHJveShtX3NlZ21lbnRzLnJlbW92ZUhlYWQoKSkpOworICAgIEdDQXJyYXlTZWdtZW50PFQ+Ojpk
ZXN0cm95KG1fc2VnbWVudHMucmVtb3ZlSGVhZCgpKTsKICAgICBtX251bWJlck9mU2VnbWVudHMt
LTsKICAgICBBU1NFUlQoIW1fbnVtYmVyT2ZTZWdtZW50cyk7CiAgICAgQVNTRVJUKCFtX3NlZ21l
bnRzLnNpemUoKSk7CkBAIC02MSw3ICs1OSw3IEBAIHZvaWQgR0NTZWdtZW50ZWRBcnJheTxUPjo6
Y2xlYXIoKQogICAgIGZvciAoR0NBcnJheVNlZ21lbnQ8VD4qIGN1cnJlbnQgPSBtX3NlZ21lbnRz
LmhlYWQoKTsgY3VycmVudC0+bmV4dCgpOyBjdXJyZW50ID0gbmV4dCkgewogICAgICAgICBuZXh0
ID0gY3VycmVudC0+bmV4dCgpOwogICAgICAgICBtX3NlZ21lbnRzLnJlbW92ZShjdXJyZW50KTsK
LSAgICAgICAgbV9ibG9ja0FsbG9jYXRvci5kZWFsbG9jYXRlKEdDQXJyYXlTZWdtZW50PFQ+Ojpk
ZXN0cm95KGN1cnJlbnQpKTsKKyAgICAgICAgR0NBcnJheVNlZ21lbnQ8VD46OmRlc3Ryb3koY3Vy
cmVudCk7CiAgICAgfQogICAgIG1fdG9wID0gMDsKICAgICBtX251bWJlck9mU2VnbWVudHMgPSAx
OwpAQCAtNzUsNyArNzMsNyBAQCB2b2lkIEdDU2VnbWVudGVkQXJyYXk8VD46OmV4cGFuZCgpCiB7
CiAgICAgQVNTRVJUKG1fc2VnbWVudHMuaGVhZCgpLT5tX3RvcCA9PSBzX3NlZ21lbnRDYXBhY2l0
eSk7CiAgICAgCi0gICAgR0NBcnJheVNlZ21lbnQ8VD4qIG5leHRTZWdtZW50ID0gR0NBcnJheVNl
Z21lbnQ8VD46OmNyZWF0ZShtX2Jsb2NrQWxsb2NhdG9yLmFsbG9jYXRlPEdDQXJyYXlTZWdtZW50
PFQ+PigpKTsKKyAgICBHQ0FycmF5U2VnbWVudDxUPiogbmV4dFNlZ21lbnQgPSBHQ0FycmF5U2Vn
bWVudDxUPjo6Y3JlYXRlKCk7CiAgICAgbV9udW1iZXJPZlNlZ21lbnRzKys7CiAgICAgCiAjaWYg
IUFTU0VSVF9ESVNBQkxFRApAQCAtOTMsNyArOTEsNyBAQCBib29sIEdDU2VnbWVudGVkQXJyYXk8
VD46OnJlZmlsbCgpCiAgICAgdmFsaWRhdGVQcmV2aW91cygpOwogICAgIGlmICh0b3AoKSkKICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgbV9ibG9ja0FsbG9jYXRvci5kZWFsbG9jYXRlKEdDQXJy
YXlTZWdtZW50PFQ+OjpkZXN0cm95KG1fc2VnbWVudHMucmVtb3ZlSGVhZCgpKSk7CisgICAgR0NB
cnJheVNlZ21lbnQ8VD46OmRlc3Ryb3kobV9zZWdtZW50cy5yZW1vdmVIZWFkKCkpOwogICAgIEFT
U0VSVChtX251bWJlck9mU2VnbWVudHMgPiAxKTsKICAgICBtX251bWJlck9mU2VnbWVudHMtLTsK
ICAgICBzZXRUb3BGb3JGdWxsU2VnbWVudCgpOwpAQCAtMTI3LDkgKzEyNSw5IEBAIHZvaWQgR0NT
ZWdtZW50ZWRBcnJheTxUPjo6ZmlsbFZlY3RvcihWZWMKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+Ci1pbmxpbmUgR0NBcnJheVNlZ21lbnQ8VD4qIEdDQXJyYXlTZWdtZW50PFQ+OjpjcmVhdGUo
RGVhZEJsb2NrKiBibG9jaykKK2lubGluZSBHQ0FycmF5U2VnbWVudDxUPiogR0NBcnJheVNlZ21l
bnQ8VD46OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIG5ldyAoTm90TnVsbCwgYmxvY2spIEdDQXJy
YXlTZWdtZW50PFQ+KGJsb2NrLT5yZWdpb24oKSk7CisgICAgcmV0dXJuIG5ldyAoTm90TnVsbCwg
ZmFzdEFsaWduZWRNYWxsb2MoYmxvY2tTaXplLCBibG9ja1NpemUpKSBHQ0FycmF5U2VnbWVudDxU
PigpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0dDVGhyZWFkU2hhcmVkRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWRTaGFyZWREYXRhLmNwcAkocmV2aXNpb24gMTc5MDI1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWRTaGFyZWREYXRhLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQCBHQ1RocmVhZFNoYXJlZERhdGE6OkdDVGhy
ZWFkU2hhcmVkRGF0YShWCiAgICAgOiBtX3ZtKHZtKQogICAgICwgbV9jb3BpZWRTcGFjZSgmdm0t
PmhlYXAubV9zdG9yYWdlU3BhY2UpCiAgICAgLCBtX3Nob3VsZEhhc2hDb25zKGZhbHNlKQotICAg
ICwgbV9zaGFyZWRNYXJrU3RhY2sodm0tPmhlYXAuYmxvY2tBbGxvY2F0b3IoKSkKKyAgICAsIG1f
c2hhcmVkTWFya1N0YWNrKCkKICAgICAsIG1fbnVtYmVyT2ZBY3RpdmVQYXJhbGxlbE1hcmtlcnMo
MCkKICAgICAsIG1fcGFyYWxsZWxNYXJrZXJzU2hvdWxkRXhpdChmYWxzZSkKICAgICAsIG1fY29w
eUluZGV4KDApCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVhZFNoYXJl
ZERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVh
ZFNoYXJlZERhdGEuaAkocmV2aXNpb24gMTc5MDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvR0NUaHJlYWRTaGFyZWREYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEdDVGhyZWFkOwogY2xhc3MgVk07CitjbGFzcyBD
b3BpZWRCbG9jazsKIGNsYXNzIENvcGllZFNwYWNlOwogY2xhc3MgQ29weVZpc2l0b3I7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZUJsb2NrLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGFuZGxlQmxvY2suaAkocmV2aXNpb24gMTc5
MDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGFuZGxlQmxvY2suaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsMTMgKzMwLDEyIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBE
ZWFkQmxvY2s7CiBjbGFzcyBIYW5kbGVTZXQ7CiBjbGFzcyBIYW5kbGVOb2RlOwogCiBjbGFzcyBI
YW5kbGVCbG9jayA6IHB1YmxpYyBIZWFwQmxvY2s8SGFuZGxlQmxvY2s+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgSGFuZGxlQmxvY2sqIGNyZWF0ZShEZWFkQmxvY2sqLCBIYW5kbGVTZXQqKTsKKyAg
ICBzdGF0aWMgSGFuZGxlQmxvY2sqIGNyZWF0ZShIYW5kbGVTZXQqKTsKICAgICBzdGF0aWMgSGFu
ZGxlQmxvY2sqIGJsb2NrRm9yKEhhbmRsZU5vZGUqKTsKIAogICAgIHN0YXRpYyBjb25zdCBzaXpl
X3QgYmxvY2tTaXplID0gNCAqIEtCOwpAQCAtNDgsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgdW5z
aWduZWQgbm9kZUNhcGFjaXR5KCk7CiAKIHByaXZhdGU6Ci0gICAgSGFuZGxlQmxvY2soUmVnaW9u
KiwgSGFuZGxlU2V0Kik7CisgICAgSGFuZGxlQmxvY2soSGFuZGxlU2V0Kik7CiAKICAgICBjaGFy
KiBwYXlsb2FkKCk7CiAgICAgY2hhciogcGF5bG9hZEVuZCgpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGFuZGxlQmxvY2tJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGFuZGxlQmxvY2tJbmxpbmVzLmgJKHJldmlzaW9uIDE3OTAy
NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hhbmRsZUJsb2NrSW5saW5lcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiwyNiArMjYsMjQgQEAKICNpZm5kZWYgSGFuZGxlQmxvY2tJbmxp
bmVzX2gKICNkZWZpbmUgSGFuZGxlQmxvY2tJbmxpbmVzX2gKIAotI2luY2x1ZGUgIkJsb2NrQWxs
b2NhdG9yLmgiCiAjaW5jbHVkZSAiSGFuZGxlQmxvY2suaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
LWlubGluZSBIYW5kbGVCbG9jayogSGFuZGxlQmxvY2s6OmNyZWF0ZShEZWFkQmxvY2sqIGJsb2Nr
LCBIYW5kbGVTZXQqIGhhbmRsZVNldCkKK2lubGluZSBIYW5kbGVCbG9jayogSGFuZGxlQmxvY2s6
OmNyZWF0ZShIYW5kbGVTZXQqIGhhbmRsZVNldCkKIHsKLSAgICBSZWdpb24qIHJlZ2lvbiA9IGJs
b2NrLT5yZWdpb24oKTsKLSAgICByZXR1cm4gbmV3IChOb3ROdWxsLCBibG9jaykgSGFuZGxlQmxv
Y2socmVnaW9uLCBoYW5kbGVTZXQpOworICAgIHJldHVybiBuZXcgKE5vdE51bGwsIGZhc3RBbGln
bmVkTWFsbG9jKGJsb2NrU2l6ZSwgYmxvY2tTaXplKSkgSGFuZGxlQmxvY2soaGFuZGxlU2V0KTsK
IH0KIAotaW5saW5lIEhhbmRsZUJsb2NrOjpIYW5kbGVCbG9jayhSZWdpb24qIHJlZ2lvbiwgSGFu
ZGxlU2V0KiBoYW5kbGVTZXQpCi0gICAgOiBIZWFwQmxvY2s8SGFuZGxlQmxvY2s+KHJlZ2lvbikK
K2lubGluZSBIYW5kbGVCbG9jazo6SGFuZGxlQmxvY2soSGFuZGxlU2V0KiBoYW5kbGVTZXQpCisg
ICAgOiBIZWFwQmxvY2s8SGFuZGxlQmxvY2s+KCkKICAgICAsIG1faGFuZGxlU2V0KGhhbmRsZVNl
dCkKIHsKIH0KIAogaW5saW5lIGNoYXIqIEhhbmRsZUJsb2NrOjpwYXlsb2FkRW5kKCkKIHsKLSAg
ICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odGhpcykgKyByZWdpb24oKS0+YmxvY2tT
aXplKCk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHRoaXMpICsgYmxvY2tT
aXplOwogfQogCiBpbmxpbmUgY2hhciogSGFuZGxlQmxvY2s6OnBheWxvYWQoKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGFuZGxlU2V0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTZXQuY3BwCShyZXZpc2lvbiAxNzkwMjUpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTZXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00NCwxMiArNDQsMTIgQEAgSGFuZGxlU2V0OjpIYW5kbGVTZXQoVk0qIHZtKQogSGFuZGxl
U2V0Ojp+SGFuZGxlU2V0KCkKIHsKICAgICB3aGlsZSAoIW1fYmxvY2tMaXN0LmlzRW1wdHkoKSkK
LSAgICAgICAgbV92bS0+aGVhcC5ibG9ja0FsbG9jYXRvcigpLmRlYWxsb2NhdGUoSGFuZGxlQmxv
Y2s6OmRlc3Ryb3kobV9ibG9ja0xpc3QucmVtb3ZlSGVhZCgpKSk7CisgICAgICAgIEhhbmRsZUJs
b2NrOjpkZXN0cm95KG1fYmxvY2tMaXN0LnJlbW92ZUhlYWQoKSk7CiB9CiAKIHZvaWQgSGFuZGxl
U2V0Ojpncm93KCkKIHsKLSAgICBIYW5kbGVCbG9jayogbmV3QmxvY2sgPSBIYW5kbGVCbG9jazo6
Y3JlYXRlKG1fdm0tPmhlYXAuYmxvY2tBbGxvY2F0b3IoKS5hbGxvY2F0ZTxIYW5kbGVCbG9jaz4o
KSwgdGhpcyk7CisgICAgSGFuZGxlQmxvY2sqIG5ld0Jsb2NrID0gSGFuZGxlQmxvY2s6OmNyZWF0
ZSh0aGlzKTsKICAgICBtX2Jsb2NrTGlzdC5hcHBlbmQobmV3QmxvY2spOwogCiAgICAgZm9yIChp
bnQgaSA9IG5ld0Jsb2NrLT5ub2RlQ2FwYWNpdHkoKSAtIDE7IGkgPj0gMDsgLS1pKSB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMTc5MDI1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwOCw3
ICszMDgsNiBAQCBIZWFwOjpIZWFwKFZNKiB2bSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgLCBt
X3RvdGFsQnl0ZXNWaXNpdGVkKDApCiAgICAgLCBtX3RvdGFsQnl0ZXNDb3BpZWQoMCkKICAgICAs
IG1fb3BlcmF0aW9uSW5Qcm9ncmVzcyhOb09wZXJhdGlvbikKLSAgICAsIG1fYmxvY2tBbGxvY2F0
b3IoKQogICAgICwgbV9vYmplY3RTcGFjZSh0aGlzKQogICAgICwgbV9zdG9yYWdlU3BhY2UodGhp
cykKICAgICAsIG1fZXh0cmFNZW1vcnlVc2FnZSgwKQpAQCAtMzE3LDcgKzMxNiw3IEBAIEhlYXA6
OkhlYXAoVk0qIHZtLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIG1fc2xvdFZpc2l0b3IobV9z
aGFyZWREYXRhKQogICAgICwgbV9jb3B5VmlzaXRvcihtX3NoYXJlZERhdGEpCiAgICAgLCBtX2hh
bmRsZVNldCh2bSkKLSAgICAsIG1fY29kZUJsb2NrcyhtX2Jsb2NrQWxsb2NhdG9yKQorICAgICwg
bV9jb2RlQmxvY2tzKCkKICAgICAsIG1faXNTYWZlVG9Db2xsZWN0KGZhbHNlKQogICAgICwgbV93
cml0ZUJhcnJpZXJCdWZmZXIoMjU2KQogICAgICwgbV92bSh2bSkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmgJKHJldmlzaW9uIDE3OTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNiBAQAogI2RlZmluZSBI
ZWFwX2gKIAogI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCi0jaW5jbHVkZSAiQmxvY2tBbGxvY2F0
b3IuaCIKICNpbmNsdWRlICJDb2RlQmxvY2tTZXQuaCIKICNpbmNsdWRlICJDb3B5VmlzaXRvci5o
IgogI2luY2x1ZGUgIkdDSW5jb21pbmdSZWZDb3VudGVkU2V0LmgiCkBAIC0yMTUsNyArMjE0LDYg
QEAgcHVibGljOgogICAgIAogICAgIGJvb2wgaXNEZWZlcnJlZCgpIGNvbnN0IHsgcmV0dXJuICEh
bV9kZWZlcnJhbERlcHRoIHx8IE9wdGlvbnM6OmRpc2FibGVHQygpOyB9CiAKLSAgICBCbG9ja0Fs
bG9jYXRvciYgYmxvY2tBbGxvY2F0b3IoKTsKICAgICBTdHJ1Y3R1cmVJRFRhYmxlJiBzdHJ1Y3R1
cmVJRFRhYmxlKCkgeyByZXR1cm4gbV9zdHJ1Y3R1cmVJRFRhYmxlOyB9CiAKICNpZiBVU0UoQ0Yp
CkBAIC0yNDUsNyArMjQzLDYgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgQ29weVZpc2l0
b3I7CiAgICAgZnJpZW5kIGNsYXNzIFJlY3Vyc2l2ZUFsbG9jYXRpb25TY29wZTsKICAgICBmcmll
bmQgY2xhc3MgU2xvdFZpc2l0b3I7Ci0gICAgZnJpZW5kIGNsYXNzIFN1cGVyUmVnaW9uOwogICAg
IGZyaWVuZCBjbGFzcyBJbmNyZW1lbnRhbFN3ZWVwZXI7CiAgICAgZnJpZW5kIGNsYXNzIEhlYXBT
dGF0aXN0aWNzOwogICAgIGZyaWVuZCBjbGFzcyBWTTsKQEAgLTM0Miw3ICszMzksNiBAQCBwcml2
YXRlOgogICAgIHNpemVfdCBtX3RvdGFsQnl0ZXNDb3BpZWQ7CiAgICAgCiAgICAgSGVhcE9wZXJh
dGlvbiBtX29wZXJhdGlvbkluUHJvZ3Jlc3M7Ci0gICAgQmxvY2tBbGxvY2F0b3IgbV9ibG9ja0Fs
bG9jYXRvcjsKICAgICBTdHJ1Y3R1cmVJRFRhYmxlIG1fc3RydWN0dXJlSURUYWJsZTsKICAgICBN
YXJrZWRTcGFjZSBtX29iamVjdFNwYWNlOwogICAgIENvcGllZFNwYWNlIG1fc3RvcmFnZVNwYWNl
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcEJsb2NrLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcEJsb2NrLmgJKHJldmlzaW9uIDE3
OTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBCbG9jay5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNywzNyArMjcsMzEgQEAKICNkZWZpbmUgSGVhcEJsb2NrX2gKIAogI2luY2x1
ZGUgPHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg+CisjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4K
ICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCiBlbnVt
IEFsbG9jYXRpb25FZmZvcnQgeyBBbGxvY2F0aW9uQ2FuRmFpbCwgQWxsb2NhdGlvbk11c3RTdWNj
ZWVkIH07CiAKLWNsYXNzIFJlZ2lvbjsKLQogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGNsYXNzIEhl
YXBCbG9jayA6IHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxUPiB7CiAgICAgZnJpZW5kIGNs
YXNzIFdURjo6RG91Ymx5TGlua2VkTGlzdE5vZGU8VD47CiBwdWJsaWM6Ci0gICAgc3RhdGljIEhl
YXBCbG9jayogZGVzdHJveShIZWFwQmxvY2sqIGJsb2NrKSBXQVJOX1VOVVNFRF9SRVRVUk4KKyAg
ICBzdGF0aWMgdm9pZCBkZXN0cm95KEhlYXBCbG9jayogYmxvY2spCiAgICAgewogICAgICAgICBz
dGF0aWNfY2FzdDxUKj4oYmxvY2spLT5+VCgpOwotICAgICAgICByZXR1cm4gYmxvY2s7CisgICAg
ICAgIGZhc3RBbGlnbmVkRnJlZShibG9jayk7CiAgICAgfQogCi0gICAgSGVhcEJsb2NrKFJlZ2lv
biogcmVnaW9uKQorICAgIEhlYXBCbG9jaygpCiAgICAgICAgIDogRG91Ymx5TGlua2VkTGlzdE5v
ZGU8VD4oKQotICAgICAgICAsIG1fcmVnaW9uKHJlZ2lvbikKICAgICAgICAgLCBtX3ByZXYoMCkK
ICAgICAgICAgLCBtX25leHQoMCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3JlZ2lvbik7CiAg
ICAgfQogCi0gICAgUmVnaW9uKiByZWdpb24oKSBjb25zdCB7IHJldHVybiBtX3JlZ2lvbjsgfQot
CiBwcml2YXRlOgotICAgIFJlZ2lvbiogbV9yZWdpb247CiAgICAgVCogbV9wcmV2OwogICAgIFQq
IG1fbmV4dDsKIH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSW5saW5l
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBJbmxpbmVz
LmgJKHJldmlzaW9uIDE3OTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBJ
bmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0MCwxMSArMjQwLDYgQEAgaW5saW5lIHZvaWQg
SGVhcDo6YXNjcmliZU93bmVyKEpTQ2VsbCogaQogI2VuZGlmCiB9CiAKLWlubGluZSBCbG9ja0Fs
bG9jYXRvciYgSGVhcDo6YmxvY2tBbGxvY2F0b3IoKQotewotICAgIHJldHVybiBtX2Jsb2NrQWxs
b2NhdG9yOwotfQotCiAjaWYgVVNFKENGKQogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBpbmxpbmUg
dm9pZCBIZWFwOjpyZWxlYXNlU29vbihSZXRhaW5QdHI8VD4mJiBvYmplY3QpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lci5jcHAJKHJldmlzaW9uIDE3OTAyNSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJIZWFwVGlt
ZXIuaCIKIAorI2luY2x1ZGUgIkdDQWN0aXZpdHlDYWxsYmFjay5oIgogI2luY2x1ZGUgIkluY3Jl
bWVudGFsU3dlZXBlci5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJp
bmcuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcAkocmV2
aXNpb24gMTc5MDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzAsOCArMzAsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
TWFya1N0YWNrQXJyYXk6Ok1hcmtTdGFja0FycmF5KEJsb2NrQWxsb2NhdG9yJiBibG9ja0FsbG9j
YXRvcikKLSAgICA6IEdDU2VnbWVudGVkQXJyYXk8Y29uc3QgSlNDZWxsKj4oYmxvY2tBbGxvY2F0
b3IpCitNYXJrU3RhY2tBcnJheTo6TWFya1N0YWNrQXJyYXkoKQorICAgIDogR0NTZWdtZW50ZWRB
cnJheTxjb25zdCBKU0NlbGwqPigpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL01hcmtTdGFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL01hcmtTdGFjay5oCShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9NYXJrU3RhY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBjbGFz
cyBKU0NlbGw7CiAKIGNsYXNzIE1hcmtTdGFja0FycmF5IDogcHVibGljIEdDU2VnbWVudGVkQXJy
YXk8Y29uc3QgSlNDZWxsKj4gewogcHVibGljOgotICAgIE1hcmtTdGFja0FycmF5KEJsb2NrQWxs
b2NhdG9yJik7CisgICAgTWFya1N0YWNrQXJyYXkoKTsKIAogICAgIHZvaWQgZG9uYXRlU29tZUNl
bGxzVG8oTWFya1N0YWNrQXJyYXkmIG90aGVyKTsKICAgICB2b2lkIHN0ZWFsU29tZUNlbGxzRnJv
bShNYXJrU3RhY2tBcnJheSYgb3RoZXIsIHNpemVfdCBpZGxlVGhyZWFkQ291bnQpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQWxsb2NhdG9yLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRBbGxvY2F0b3IuY3BwCShyZXZp
c2lvbiAxNzkwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRBbGxvY2F0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTgsOSArMTk4LDcgQEAgTWFya2VkQmxvY2sqIE1h
cmtlZEFsbG9jYXRvcjo6YWxsb2NhdGVCbAogCiAgICAgc2l6ZV90IGNlbGxTaXplID0gbV9jZWxs
U2l6ZSA/IG1fY2VsbFNpemUgOiBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8TWFya2VkQmxvY2s6
OmF0b21TaXplPihieXRlcyk7CiAKLSAgICBpZiAoYmxvY2tTaXplID09IE1hcmtlZEJsb2NrOjpi
bG9ja1NpemUpCi0gICAgICAgIHJldHVybiBNYXJrZWRCbG9jazo6Y3JlYXRlKG1faGVhcC0+Ymxv
Y2tBbGxvY2F0b3IoKS5hbGxvY2F0ZTxNYXJrZWRCbG9jaz4oKSwgdGhpcywgY2VsbFNpemUsIG1f
ZGVzdHJ1Y3RvclR5cGUpOwotICAgIHJldHVybiBNYXJrZWRCbG9jazo6Y3JlYXRlKG1faGVhcC0+
YmxvY2tBbGxvY2F0b3IoKS5hbGxvY2F0ZUN1c3RvbVNpemUoYmxvY2tTaXplLCBNYXJrZWRCbG9j
azo6YmxvY2tTaXplKSwgdGhpcywgY2VsbFNpemUsIG1fZGVzdHJ1Y3RvclR5cGUpOworICAgIHJl
dHVybiBNYXJrZWRCbG9jazo6Y3JlYXRlKHRoaXMsIGJsb2NrU2l6ZSwgY2VsbFNpemUsIG1fZGVz
dHJ1Y3RvclR5cGUpOwogfQogCiB2b2lkIE1hcmtlZEFsbG9jYXRvcjo6YWRkQmxvY2soTWFya2Vk
QmxvY2sqIGJsb2NrKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxv
Y2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJs
b2NrLmNwcAkocmV2aXNpb24gMTc5MDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
TWFya2VkQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwyMSArMzQsMjAgQEAKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKLU1hcmtlZEJsb2NrKiBNYXJrZWRCbG9jazo6Y3JlYXRlKERlYWRCbG9j
ayogYmxvY2ssIE1hcmtlZEFsbG9jYXRvciogYWxsb2NhdG9yLCBzaXplX3QgY2VsbFNpemUsIERl
c3RydWN0b3JUeXBlIGRlc3RydWN0b3JUeXBlKQorTWFya2VkQmxvY2sqIE1hcmtlZEJsb2NrOjpj
cmVhdGUoTWFya2VkQWxsb2NhdG9yKiBhbGxvY2F0b3IsIHNpemVfdCBibG9ja1NpemUsIHNpemVf
dCBjZWxsU2l6ZSwgRGVzdHJ1Y3RvclR5cGUgZGVzdHJ1Y3RvclR5cGUpCiB7Ci0gICAgQVNTRVJU
KHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihibG9jaykgPT0gKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6
ZV90PihibG9jaykgJiBibG9ja01hc2spKTsKLSAgICBSZWdpb24qIHJlZ2lvbiA9IGJsb2NrLT5y
ZWdpb24oKTsKLSAgICByZXR1cm4gbmV3IChOb3ROdWxsLCBibG9jaykgTWFya2VkQmxvY2socmVn
aW9uLCBhbGxvY2F0b3IsIGNlbGxTaXplLCBkZXN0cnVjdG9yVHlwZSk7CisgICAgcmV0dXJuIG5l
dyAoTm90TnVsbCwgZmFzdEFsaWduZWRNYWxsb2MoTWFya2VkQmxvY2s6OmJsb2NrU2l6ZSwgYmxv
Y2tTaXplKSkgTWFya2VkQmxvY2soYWxsb2NhdG9yLCBibG9ja1NpemUsIGNlbGxTaXplLCBkZXN0
cnVjdG9yVHlwZSk7CiB9CiAKLU1hcmtlZEJsb2NrOjpNYXJrZWRCbG9jayhSZWdpb24qIHJlZ2lv
biwgTWFya2VkQWxsb2NhdG9yKiBhbGxvY2F0b3IsIHNpemVfdCBjZWxsU2l6ZSwgRGVzdHJ1Y3Rv
clR5cGUgZGVzdHJ1Y3RvclR5cGUpCi0gICAgOiBIZWFwQmxvY2s8TWFya2VkQmxvY2s+KHJlZ2lv
bikKK01hcmtlZEJsb2NrOjpNYXJrZWRCbG9jayhNYXJrZWRBbGxvY2F0b3IqIGFsbG9jYXRvciwg
c2l6ZV90IGJsb2NrU2l6ZSwgc2l6ZV90IGNlbGxTaXplLCBEZXN0cnVjdG9yVHlwZSBkZXN0cnVj
dG9yVHlwZSkKKyAgICA6IEhlYXBCbG9jazxNYXJrZWRCbG9jaz4oKQogICAgICwgbV9hdG9tc1Bl
ckNlbGwoKGNlbGxTaXplICsgYXRvbVNpemUgLSAxKSAvIGF0b21TaXplKQotICAgICwgbV9lbmRB
dG9tKChhbGxvY2F0b3ItPmNlbGxTaXplKCkgPyBhdG9tc1BlckJsb2NrIDogcmVnaW9uLT5ibG9j
a1NpemUoKSAvIGF0b21TaXplKSAtIG1fYXRvbXNQZXJDZWxsICsgMSkKKyAgICAsIG1fZW5kQXRv
bSgoYWxsb2NhdG9yLT5jZWxsU2l6ZSgpID8gYXRvbXNQZXJCbG9jayA6IGJsb2NrU2l6ZSAvIGF0
b21TaXplKSAtIG1fYXRvbXNQZXJDZWxsICsgMSkKICAgICAsIG1fZGVzdHJ1Y3RvclR5cGUoZGVz
dHJ1Y3RvclR5cGUpCiAgICAgLCBtX2FsbG9jYXRvcihhbGxvY2F0b3IpCiAgICAgLCBtX3N0YXRl
KE5ldykgLy8gQWxsIGNlbGxzIHN0YXJ0IG91dCB1bm1hcmtlZC4KICAgICAsIG1fd2Vha1NldChh
bGxvY2F0b3ItPmhlYXAoKS0+dm0oKSkKKyAgICAsIG1fYmxvY2tTaXplKGJsb2NrU2l6ZSkKIHsK
ICAgICBBU1NFUlQoYWxsb2NhdG9yKTsKICAgICBIRUFQX0xPR19CTE9DS19TVEFURV9UUkFOU0lU
SU9OKHRoaXMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2su
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5o
CShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRC
bG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw5ICsyMiw3IEBACiAjaWZuZGVmIE1hcmtlZEJs
b2NrX2gKICNkZWZpbmUgTWFya2VkQmxvY2tfaAogCi0jaW5jbHVkZSAiQmxvY2tBbGxvY2F0b3Iu
aCIKICNpbmNsdWRlICJIZWFwQmxvY2suaCIKLQogI2luY2x1ZGUgIkhlYXBPcGVyYXRpb24uaCIK
ICNpbmNsdWRlICJXZWFrU2V0LmgiCiAjaW5jbHVkZSA8d3RmL0JpdG1hcC5oPgpAQCAtMTEzLDcg
KzExMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9OwogCiAgICAgICAgIGVudW0gRGVz
dHJ1Y3RvclR5cGUgeyBOb25lLCBJbW1vcnRhbFN0cnVjdHVyZSwgTm9ybWFsIH07Ci0gICAgICAg
IHN0YXRpYyBNYXJrZWRCbG9jayogY3JlYXRlKERlYWRCbG9jayosIE1hcmtlZEFsbG9jYXRvcios
IHNpemVfdCBjZWxsU2l6ZSwgRGVzdHJ1Y3RvclR5cGUpOworICAgICAgICBzdGF0aWMgTWFya2Vk
QmxvY2sqIGNyZWF0ZShNYXJrZWRBbGxvY2F0b3IqLCBzaXplX3QgYmxvY2tTaXplLCBzaXplX3Qg
Y2VsbFNpemUsIERlc3RydWN0b3JUeXBlKTsKIAogICAgICAgICBzdGF0aWMgYm9vbCBpc0F0b21B
bGlnbmVkKGNvbnN0IHZvaWQqKTsKICAgICAgICAgc3RhdGljIE1hcmtlZEJsb2NrKiBibG9ja0Zv
cihjb25zdCB2b2lkKik7CkBAIC0xOTQsNyArMTkyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgdHlwZWRlZiBjaGFyIEF0b21bYXRvbVNpemVdOwogCi0gICAgICAgIE1hcmtlZEJsb2Nr
KFJlZ2lvbiosIE1hcmtlZEFsbG9jYXRvciosIHNpemVfdCBjZWxsU2l6ZSwgRGVzdHJ1Y3RvclR5
cGUpOworICAgICAgICBNYXJrZWRCbG9jayhNYXJrZWRBbGxvY2F0b3IqLCBzaXplX3QgYmxvY2tT
aXplLCBzaXplX3QgY2VsbFNpemUsIERlc3RydWN0b3JUeXBlKTsKICAgICAgICAgQXRvbSogYXRv
bXMoKTsKICAgICAgICAgc2l6ZV90IGF0b21OdW1iZXIoY29uc3Qgdm9pZCopOwogICAgICAgICB0
ZW1wbGF0ZTxEZXN0cnVjdG9yVHlwZT4gdm9pZCBjYWxsRGVzdHJ1Y3RvcihKU0NlbGwqKTsKQEAg
LTIxNSw2ICsyMTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFya2VkQWxsb2NhdG9y
KiBtX2FsbG9jYXRvcjsKICAgICAgICAgQmxvY2tTdGF0ZSBtX3N0YXRlOwogICAgICAgICBXZWFr
U2V0IG1fd2Vha1NldDsKKyAgICAgICAgc2l6ZV90IG1fYmxvY2tTaXplOwogICAgIH07CiAKICAg
ICBpbmxpbmUgTWFya2VkQmxvY2s6OkZyZWVMaXN0OjpGcmVlTGlzdCgpCkBAIC0zMzMsNyArMzMy
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBpbmxpbmUgc2l6ZV90IE1hcmtlZEJsb2NrOjpj
YXBhY2l0eSgpCiAgICAgewotICAgICAgICByZXR1cm4gcmVnaW9uKCktPmJsb2NrU2l6ZSgpOwor
ICAgICAgICByZXR1cm4gbV9ibG9ja1NpemU7CiAgICAgfQogCiAgICAgaW5saW5lIHNpemVfdCBN
YXJrZWRCbG9jazo6YXRvbU51bWJlcihjb25zdCB2b2lkKiBwKQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNwcAkocmV2aXNpb24gMTc5MDI1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNTEsMTEgKzI1MSw3IEBAIHZvaWQgTWFya2VkU3BhY2U6OmZyZWVCbG9jayhNYXJrZWRCbG9j
ayoKICAgICBibG9jay0+YWxsb2NhdG9yKCktPnJlbW92ZUJsb2NrKGJsb2NrKTsKICAgICBtX2Nh
cGFjaXR5IC09IGJsb2NrLT5jYXBhY2l0eSgpOwogICAgIG1fYmxvY2tzLnJlbW92ZShibG9jayk7
Ci0gICAgaWYgKGJsb2NrLT5jYXBhY2l0eSgpID09IE1hcmtlZEJsb2NrOjpibG9ja1NpemUpIHsK
LSAgICAgICAgbV9oZWFwLT5ibG9ja0FsbG9jYXRvcigpLmRlYWxsb2NhdGUoTWFya2VkQmxvY2s6
OmRlc3Ryb3koYmxvY2spKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBtX2hlYXAtPmJs
b2NrQWxsb2NhdG9yKCkuZGVhbGxvY2F0ZUN1c3RvbVNpemUoTWFya2VkQmxvY2s6OmRlc3Ryb3ko
YmxvY2spKTsKKyAgICBNYXJrZWRCbG9jazo6ZGVzdHJveShibG9jayk7CiB9CiAKIHZvaWQgTWFy
a2VkU3BhY2U6OmZyZWVPclNocmlua0Jsb2NrKE1hcmtlZEJsb2NrKiBibG9jaykKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaAkocmV2aXNpb24gMTc5MDI1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaAkod29ya2luZyBjb3B5
KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1l
c3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1JlZ2lvbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1JlZ2lvbi5oCShyZXZpc2lv
biAxNzkwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9SZWdpb24uaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzMjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSlNDX1JlZ2lv
bl9oCi0jZGVmaW5lIEpTQ19SZWdpb25faAotCi0jaW5jbHVkZSAiSGVhcEJsb2NrLmgiCi0jaW5j
bHVkZSAiU3VwZXJSZWdpb24uaCIKLSNpbmNsdWRlIDx3dGYvRG91Ymx5TGlua2VkTGlzdC5oPgot
I2luY2x1ZGUgPHd0Zi9NZXRhQWxsb2NhdG9ySGFuZGxlLmg+Ci0jaW5jbHVkZSA8d3RmL1BhZ2VB
bGxvY2F0aW9uQWxpZ25lZC5oPgotCi0jZGVmaW5lIEhFQVBfTUVNT1JZX0lEIHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PGludHB0cl90PigtMykpCi0KLSNkZWZpbmUgRU5BQkxF
X1NVUEVSX1JFR0lPTiAwCi0KLSNpZm5kZWYgRU5BQkxFX1NVUEVSX1JFR0lPTgotI2lmIFVTRShK
U1ZBTFVFNjQpICYmICFDUFUoQVJNNjQpCi0jZGVmaW5lIEVOQUJMRV9TVVBFUl9SRUdJT04gMQot
I2Vsc2UKLSNkZWZpbmUgRU5BQkxFX1NVUEVSX1JFR0lPTiAwCi0jZW5kaWYKLSNlbmRpZgotCi1u
YW1lc3BhY2UgSlNDIHsKLQotY2xhc3MgRGVhZEJsb2NrIDogcHVibGljIEhlYXBCbG9jazxEZWFk
QmxvY2s+IHsKLXB1YmxpYzoKLSAgICBEZWFkQmxvY2soUmVnaW9uKik7Ci19OwotCi1pbmxpbmUg
RGVhZEJsb2NrOjpEZWFkQmxvY2soUmVnaW9uKiByZWdpb24pCi0gICAgOiBIZWFwQmxvY2s8RGVh
ZEJsb2NrPihyZWdpb24pCi17Ci19Ci0KLWNsYXNzIFJlZ2lvbiA6IHB1YmxpYyBEb3VibHlMaW5r
ZWRMaXN0Tm9kZTxSZWdpb24+IHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLQotICAg
IGZyaWVuZCBjbGFzcyBXVEY6OkRvdWJseUxpbmtlZExpc3ROb2RlPFJlZ2lvbj47Ci0gICAgZnJp
ZW5kIGNsYXNzIEJsb2NrQWxsb2NhdG9yOwotcHVibGljOgotICAgIH5SZWdpb24oKTsKLSAgICBz
dGF0aWMgUmVnaW9uKiBjcmVhdGUoU3VwZXJSZWdpb24qLCBzaXplX3QgYmxvY2tTaXplKTsKLSAg
ICBzdGF0aWMgUmVnaW9uKiBjcmVhdGVDdXN0b21TaXplKFN1cGVyUmVnaW9uKiwgc2l6ZV90IGJs
b2NrU2l6ZSwgc2l6ZV90IGJsb2NrQWxpZ25tZW50KTsKLSAgICBSZWdpb24qIHJlc2V0KHNpemVf
dCBibG9ja1NpemUpOwotICAgIHZvaWQgZGVzdHJveSgpOwotCi0gICAgc2l6ZV90IGJsb2NrU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmxvY2tTaXplOyB9Ci0gICAgYm9vbCBpc0Z1bGwoKSBjb25z
dCB7IHJldHVybiBtX2Jsb2Nrc0luVXNlID09IG1fdG90YWxCbG9ja3M7IH0KLSAgICBib29sIGlz
RW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9ibG9ja3NJblVzZTsgfQotICAgIGJvb2wgaXNDdXN0
b21TaXplKCkgY29uc3QgeyByZXR1cm4gbV9pc0N1c3RvbVNpemU7IH0KLQotICAgIERlYWRCbG9j
ayogYWxsb2NhdGUoKTsKLSAgICB2b2lkIGRlYWxsb2NhdGUodm9pZCopOwotCi0gICAgc3RhdGlj
IGNvbnN0IHNpemVfdCBzX3JlZ2lvblNpemUgPSA2NCAqIEtCOwotICAgIHN0YXRpYyBjb25zdCBz
aXplX3Qgc19yZWdpb25NYXNrID0gfihzX3JlZ2lvblNpemUgLSAxKTsKLQotcHJvdGVjdGVkOgot
ICAgIFJlZ2lvbihzaXplX3QgYmxvY2tTaXplLCBzaXplX3QgdG90YWxCbG9ja3MsIGJvb2wgaXNF
eGNlc3MpOwotICAgIHZvaWQgaW5pdGlhbGl6ZUJsb2NrTGlzdCgpOwotCi0gICAgYm9vbCBtX2lz
RXhjZXNzOwotCi1wcml2YXRlOgotICAgIHZvaWQqIGJhc2UoKTsKLSAgICBzaXplX3Qgc2l6ZSgp
OwotCi0gICAgc2l6ZV90IG1fdG90YWxCbG9ja3M7Ci0gICAgc2l6ZV90IG1fYmxvY2tzSW5Vc2U7
Ci0gICAgc2l6ZV90IG1fYmxvY2tTaXplOwotICAgIGJvb2wgbV9pc0N1c3RvbVNpemU7Ci0gICAg
UmVnaW9uKiBtX3ByZXY7Ci0gICAgUmVnaW9uKiBtX25leHQ7Ci0gICAgRG91Ymx5TGlua2VkTGlz
dDxEZWFkQmxvY2s+IG1fZGVhZEJsb2NrczsKLX07Ci0KLQotY2xhc3MgTm9ybWFsUmVnaW9uIDog
cHVibGljIFJlZ2lvbiB7Ci0gICAgZnJpZW5kIGNsYXNzIFJlZ2lvbjsKLXByaXZhdGU6Ci0gICAg
Tm9ybWFsUmVnaW9uKFBhc3NSZWZQdHI8V1RGOjpNZXRhQWxsb2NhdG9ySGFuZGxlPiwgc2l6ZV90
IGJsb2NrU2l6ZSwgc2l6ZV90IHRvdGFsQmxvY2tzKTsKLQotICAgIHN0YXRpYyBOb3JtYWxSZWdp
b24qIHRyeUNyZWF0ZShTdXBlclJlZ2lvbiosIHNpemVfdCBibG9ja1NpemUpOwotICAgIHN0YXRp
YyBOb3JtYWxSZWdpb24qIHRyeUNyZWF0ZUN1c3RvbVNpemUoU3VwZXJSZWdpb24qLCBzaXplX3Qg
YmxvY2tTaXplLCBzaXplX3QgYmxvY2tBbGlnbm1lbnQpOwotCi0gICAgdm9pZCogYmFzZSgpIHsg
cmV0dXJuIG1fYWxsb2NhdGlvbi0+c3RhcnQoKTsgfQotICAgIHNpemVfdCBzaXplKCkgeyByZXR1
cm4gbV9hbGxvY2F0aW9uLT5zaXplSW5CeXRlcygpOyB9Ci0KLSAgICBOb3JtYWxSZWdpb24qIHJl
c2V0KHNpemVfdCBibG9ja1NpemUpOwotCi0gICAgUmVmUHRyPFdURjo6TWV0YUFsbG9jYXRvckhh
bmRsZT4gbV9hbGxvY2F0aW9uOwotfTsKLQotY2xhc3MgRXhjZXNzUmVnaW9uIDogcHVibGljIFJl
Z2lvbiB7Ci0gICAgZnJpZW5kIGNsYXNzIFJlZ2lvbjsKLXByaXZhdGU6Ci0gICAgRXhjZXNzUmVn
aW9uKFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCYsIHNpemVfdCBibG9ja1NpemUsIHNpemVfdCB0b3Rh
bEJsb2Nrcyk7Ci0KLSAgICB+RXhjZXNzUmVnaW9uKCk7Ci0KLSAgICBzdGF0aWMgRXhjZXNzUmVn
aW9uKiBjcmVhdGUoc2l6ZV90IGJsb2NrU2l6ZSk7Ci0gICAgc3RhdGljIEV4Y2Vzc1JlZ2lvbiog
Y3JlYXRlQ3VzdG9tU2l6ZShzaXplX3QgYmxvY2tTaXplLCBzaXplX3QgYmxvY2tBbGlnbm1lbnQp
OwotCi0gICAgdm9pZCogYmFzZSgpIHsgcmV0dXJuIG1fYWxsb2NhdGlvbi5iYXNlKCk7IH0KLSAg
ICBzaXplX3Qgc2l6ZSgpIHsgcmV0dXJuIG1fYWxsb2NhdGlvbi5zaXplKCk7IH0KLQotICAgIEV4
Y2Vzc1JlZ2lvbiogcmVzZXQoc2l6ZV90IGJsb2NrU2l6ZSk7Ci0KLSAgICBQYWdlQWxsb2NhdGlv
bkFsaWduZWQgbV9hbGxvY2F0aW9uOwotfTsKLQotaW5saW5lIE5vcm1hbFJlZ2lvbjo6Tm9ybWFs
UmVnaW9uKFBhc3NSZWZQdHI8V1RGOjpNZXRhQWxsb2NhdG9ySGFuZGxlPiBhbGxvY2F0aW9uLCBz
aXplX3QgYmxvY2tTaXplLCBzaXplX3QgdG90YWxCbG9ja3MpCi0gICAgOiBSZWdpb24oYmxvY2tT
aXplLCB0b3RhbEJsb2NrcywgZmFsc2UpCi0gICAgLCBtX2FsbG9jYXRpb24oYWxsb2NhdGlvbikK
LXsKLSAgICBpbml0aWFsaXplQmxvY2tMaXN0KCk7Ci19Ci0KLWlubGluZSBOb3JtYWxSZWdpb24q
IE5vcm1hbFJlZ2lvbjo6dHJ5Q3JlYXRlKFN1cGVyUmVnaW9uKiBzdXBlclJlZ2lvbiwgc2l6ZV90
IGJsb2NrU2l6ZSkKLXsKLSAgICBSZWZQdHI8V1RGOjpNZXRhQWxsb2NhdG9ySGFuZGxlPiBhbGxv
Y2F0aW9uID0gc3VwZXJSZWdpb24tPmFsbG9jYXRlKHNfcmVnaW9uU2l6ZSwgSEVBUF9NRU1PUllf
SUQpOwotICAgIGlmICghYWxsb2NhdGlvbikKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJu
IG5ldyBOb3JtYWxSZWdpb24oYWxsb2NhdGlvbiwgYmxvY2tTaXplLCBzX3JlZ2lvblNpemUgLyBi
bG9ja1NpemUpOwotfQotCi1pbmxpbmUgTm9ybWFsUmVnaW9uKiBOb3JtYWxSZWdpb246OnRyeUNy
ZWF0ZUN1c3RvbVNpemUoU3VwZXJSZWdpb24qIHN1cGVyUmVnaW9uLCBzaXplX3QgYmxvY2tTaXpl
LCBzaXplX3QgYmxvY2tBbGlnbm1lbnQpCi17Ci0gICAgQVNTRVJUX1VOVVNFRChibG9ja0FsaWdu
bWVudCwgYmxvY2tBbGlnbm1lbnQgPD0gc19yZWdpb25TaXplKTsKLSAgICBSZWZQdHI8V1RGOjpN
ZXRhQWxsb2NhdG9ySGFuZGxlPiBhbGxvY2F0aW9uID0gc3VwZXJSZWdpb24tPmFsbG9jYXRlKGJs
b2NrU2l6ZSwgSEVBUF9NRU1PUllfSUQpOwotICAgIGlmICghYWxsb2NhdGlvbikKLSAgICAgICAg
cmV0dXJuIDA7Ci0gICAgcmV0dXJuIG5ldyBOb3JtYWxSZWdpb24oYWxsb2NhdGlvbiwgYmxvY2tT
aXplLCAxKTsKLX0KLQotaW5saW5lIE5vcm1hbFJlZ2lvbiogTm9ybWFsUmVnaW9uOjpyZXNldChz
aXplX3QgYmxvY2tTaXplKQotewotICAgIEFTU0VSVCghbV9pc0V4Y2Vzcyk7Ci0gICAgUmVmUHRy
PFdURjo6TWV0YUFsbG9jYXRvckhhbmRsZT4gYWxsb2NhdGlvbiA9IG1fYWxsb2NhdGlvbi5yZWxl
YXNlKCk7Ci0gICAgcmV0dXJuIG5ldyAoTm90TnVsbCwgdGhpcykgTm9ybWFsUmVnaW9uKGFsbG9j
YXRpb24ucmVsZWFzZSgpLCBibG9ja1NpemUsIHNfcmVnaW9uU2l6ZSAvIGJsb2NrU2l6ZSk7Ci19
Ci0KLWlubGluZSBFeGNlc3NSZWdpb246OkV4Y2Vzc1JlZ2lvbihQYWdlQWxsb2NhdGlvbkFsaWdu
ZWQmIGFsbG9jYXRpb24sIHNpemVfdCBibG9ja1NpemUsIHNpemVfdCB0b3RhbEJsb2NrcykKLSAg
ICA6IFJlZ2lvbihibG9ja1NpemUsIHRvdGFsQmxvY2tzLCB0cnVlKQotICAgICwgbV9hbGxvY2F0
aW9uKGFsbG9jYXRpb24pCi17Ci0gICAgaW5pdGlhbGl6ZUJsb2NrTGlzdCgpOwotfQotCi1pbmxp
bmUgRXhjZXNzUmVnaW9uOjp+RXhjZXNzUmVnaW9uKCkKLXsKLSAgICBtX2FsbG9jYXRpb24uZGVh
bGxvY2F0ZSgpOwotfQotCi1pbmxpbmUgRXhjZXNzUmVnaW9uKiBFeGNlc3NSZWdpb246OmNyZWF0
ZShzaXplX3QgYmxvY2tTaXplKQotewotICAgIFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCBhbGxvY2F0
aW9uID0gUGFnZUFsbG9jYXRpb25BbGlnbmVkOjphbGxvY2F0ZShzX3JlZ2lvblNpemUsIHNfcmVn
aW9uU2l6ZSwgT1NBbGxvY2F0b3I6OkpTR0NIZWFwUGFnZXMpOwotICAgIEFTU0VSVChzdGF0aWNf
Y2FzdDxib29sPihhbGxvY2F0aW9uKSk7Ci0gICAgcmV0dXJuIG5ldyBFeGNlc3NSZWdpb24oYWxs
b2NhdGlvbiwgYmxvY2tTaXplLCBzX3JlZ2lvblNpemUgLyBibG9ja1NpemUpOyAKLX0KLQotaW5s
aW5lIEV4Y2Vzc1JlZ2lvbiogRXhjZXNzUmVnaW9uOjpjcmVhdGVDdXN0b21TaXplKHNpemVfdCBi
bG9ja1NpemUsIHNpemVfdCBibG9ja0FsaWdubWVudCkKLXsKLSAgICBQYWdlQWxsb2NhdGlvbkFs
aWduZWQgYWxsb2NhdGlvbiA9IFBhZ2VBbGxvY2F0aW9uQWxpZ25lZDo6YWxsb2NhdGUoYmxvY2tT
aXplLCBibG9ja0FsaWdubWVudCwgT1NBbGxvY2F0b3I6OkpTR0NIZWFwUGFnZXMpOwotICAgIEFT
U0VSVChzdGF0aWNfY2FzdDxib29sPihhbGxvY2F0aW9uKSk7Ci0gICAgcmV0dXJuIG5ldyBFeGNl
c3NSZWdpb24oYWxsb2NhdGlvbiwgYmxvY2tTaXplLCAxKTsKLX0KLQotaW5saW5lIEV4Y2Vzc1Jl
Z2lvbiogRXhjZXNzUmVnaW9uOjpyZXNldChzaXplX3QgYmxvY2tTaXplKQotewotICAgIEFTU0VS
VChtX2lzRXhjZXNzKTsKLSAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQgYWxsb2NhdGlvbiA9IG1f
YWxsb2NhdGlvbjsKLSAgICByZXR1cm4gbmV3IChOb3ROdWxsLCB0aGlzKSBFeGNlc3NSZWdpb24o
YWxsb2NhdGlvbiwgYmxvY2tTaXplLCBzX3JlZ2lvblNpemUgLyBibG9ja1NpemUpOwotfQotCi1p
bmxpbmUgUmVnaW9uOjpSZWdpb24oc2l6ZV90IGJsb2NrU2l6ZSwgc2l6ZV90IHRvdGFsQmxvY2tz
LCBib29sIGlzRXhjZXNzKQotICAgIDogRG91Ymx5TGlua2VkTGlzdE5vZGU8UmVnaW9uPigpCi0g
ICAgLCBtX2lzRXhjZXNzKGlzRXhjZXNzKQotICAgICwgbV90b3RhbEJsb2Nrcyh0b3RhbEJsb2Nr
cykKLSAgICAsIG1fYmxvY2tzSW5Vc2UoMCkKLSAgICAsIG1fYmxvY2tTaXplKGJsb2NrU2l6ZSkK
LSAgICAsIG1faXNDdXN0b21TaXplKGZhbHNlKQotICAgICwgbV9wcmV2KDApCi0gICAgLCBtX25l
eHQoMCkKLXsKLX0KLQotaW5saW5lIHZvaWQgUmVnaW9uOjppbml0aWFsaXplQmxvY2tMaXN0KCkK
LXsKLSAgICBjaGFyKiBzdGFydCA9IHN0YXRpY19jYXN0PGNoYXIqPihiYXNlKCkpOwotICAgIGNo
YXIqIGN1cnJlbnQgPSBzdGFydDsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdG90YWxC
bG9ja3M7IGkrKykgewotICAgICAgICBBU1NFUlQoY3VycmVudCA8IHN0YXJ0ICsgc2l6ZSgpKTsK
LSAgICAgICAgbV9kZWFkQmxvY2tzLmFwcGVuZChuZXcgKE5vdE51bGwsIGN1cnJlbnQpIERlYWRC
bG9jayh0aGlzKSk7Ci0gICAgICAgIGN1cnJlbnQgKz0gbV9ibG9ja1NpemU7Ci0gICAgfQotfQot
Ci1pbmxpbmUgUmVnaW9uKiBSZWdpb246OmNyZWF0ZShTdXBlclJlZ2lvbiogc3VwZXJSZWdpb24s
IHNpemVfdCBibG9ja1NpemUpCi17Ci0jaWYgRU5BQkxFKFNVUEVSX1JFR0lPTikKLSAgICBBU1NF
UlQoYmxvY2tTaXplIDw9IHNfcmVnaW9uU2l6ZSk7Ci0gICAgQVNTRVJUKCEoc19yZWdpb25TaXpl
ICUgYmxvY2tTaXplKSk7Ci0gICAgUmVnaW9uKiByZWdpb24gPSBOb3JtYWxSZWdpb246OnRyeUNy
ZWF0ZShzdXBlclJlZ2lvbiwgYmxvY2tTaXplKTsKLSAgICBpZiAoTElLRUxZKCEhcmVnaW9uKSkK
LSAgICAgICAgcmV0dXJuIHJlZ2lvbjsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHN1cGVyUmVn
aW9uKTsKLSNlbmRpZgotICAgIHJldHVybiBFeGNlc3NSZWdpb246OmNyZWF0ZShibG9ja1NpemUp
OwotfQotCi1pbmxpbmUgUmVnaW9uKiBSZWdpb246OmNyZWF0ZUN1c3RvbVNpemUoU3VwZXJSZWdp
b24qIHN1cGVyUmVnaW9uLCBzaXplX3QgYmxvY2tTaXplLCBzaXplX3QgYmxvY2tBbGlnbm1lbnQp
Ci17Ci0jaWYgRU5BQkxFKFNVUEVSX1JFR0lPTikKLSAgICBSZWdpb24qIHJlZ2lvbiA9IE5vcm1h
bFJlZ2lvbjo6dHJ5Q3JlYXRlQ3VzdG9tU2l6ZShzdXBlclJlZ2lvbiwgYmxvY2tTaXplLCBibG9j
a0FsaWdubWVudCk7Ci0gICAgaWYgKFVOTElLRUxZKCFyZWdpb24pKQotICAgICAgICByZWdpb24g
PSBFeGNlc3NSZWdpb246OmNyZWF0ZUN1c3RvbVNpemUoYmxvY2tTaXplLCBibG9ja0FsaWdubWVu
dCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzdXBlclJlZ2lvbik7Ci0gICAgUmVnaW9uKiBy
ZWdpb24gPSBFeGNlc3NSZWdpb246OmNyZWF0ZUN1c3RvbVNpemUoYmxvY2tTaXplLCBibG9ja0Fs
aWdubWVudCk7Ci0jZW5kaWYKLSAgICByZWdpb24tPm1faXNDdXN0b21TaXplID0gdHJ1ZTsKLSAg
ICByZXR1cm4gcmVnaW9uOwotfQotCi1pbmxpbmUgUmVnaW9uOjp+UmVnaW9uKCkKLXsKLSAgICBB
U1NFUlQoaXNFbXB0eSgpKTsKLX0KLQotaW5saW5lIHZvaWQgUmVnaW9uOjpkZXN0cm95KCkKLXsK
LSNpZiBFTkFCTEUoU1VQRVJfUkVHSU9OKQotICAgIGlmIChVTkxJS0VMWShtX2lzRXhjZXNzKSkK
LSAgICAgICAgZGVsZXRlIHN0YXRpY19jYXN0PEV4Y2Vzc1JlZ2lvbio+KHRoaXMpOwotICAgIGVs
c2UKLSAgICAgICAgZGVsZXRlIHN0YXRpY19jYXN0PE5vcm1hbFJlZ2lvbio+KHRoaXMpOwotI2Vs
c2UKLSAgICBkZWxldGUgc3RhdGljX2Nhc3Q8RXhjZXNzUmVnaW9uKj4odGhpcyk7Ci0jZW5kaWYK
LX0KLQotaW5saW5lIFJlZ2lvbiogUmVnaW9uOjpyZXNldChzaXplX3QgYmxvY2tTaXplKQotewot
I2lmIEVOQUJMRShTVVBFUl9SRUdJT04pCi0gICAgQVNTRVJUKGlzRW1wdHkoKSk7Ci0gICAgaWYg
KFVOTElLRUxZKG1faXNFeGNlc3MpKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXhjZXNz
UmVnaW9uKj4odGhpcyktPnJlc2V0KGJsb2NrU2l6ZSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PE5vcm1hbFJlZ2lvbio+KHRoaXMpLT5yZXNldChibG9ja1NpemUpOwotI2Vsc2UKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8RXhjZXNzUmVnaW9uKj4odGhpcyktPnJlc2V0KGJsb2NrU2l6ZSk7Ci0j
ZW5kaWYKLX0KLQotaW5saW5lIERlYWRCbG9jayogUmVnaW9uOjphbGxvY2F0ZSgpCi17Ci0gICAg
QVNTRVJUKCFpc0Z1bGwoKSk7Ci0gICAgbV9ibG9ja3NJblVzZSsrOwotICAgIHJldHVybiBtX2Rl
YWRCbG9ja3MucmVtb3ZlSGVhZCgpOwotfQotCi1pbmxpbmUgdm9pZCBSZWdpb246OmRlYWxsb2Nh
dGUodm9pZCogYmFzZSkKLXsKLSAgICBBU1NFUlQoYmFzZSk7Ci0gICAgQVNTRVJUKG1fYmxvY2tz
SW5Vc2UpOwotICAgIEFTU0VSVChiYXNlID49IHRoaXMtPmJhc2UoKSAmJiBiYXNlIDwgc3RhdGlj
X2Nhc3Q8Y2hhcio+KHRoaXMtPmJhc2UoKSkgKyBzaXplKCkpOwotICAgIERlYWRCbG9jayogYmxv
Y2sgPSBuZXcgKE5vdE51bGwsIGJhc2UpIERlYWRCbG9jayh0aGlzKTsKLSAgICBtX2RlYWRCbG9j
a3MucHVzaChibG9jayk7Ci0gICAgbV9ibG9ja3NJblVzZS0tOwotfQotCi1pbmxpbmUgdm9pZCog
UmVnaW9uOjpiYXNlKCkKLXsKLSNpZiBFTkFCTEUoU1VQRVJfUkVHSU9OKQotICAgIGlmIChVTkxJ
S0VMWShtX2lzRXhjZXNzKSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEV4Y2Vzc1JlZ2lv
bio+KHRoaXMpLT5FeGNlc3NSZWdpb246OmJhc2UoKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Tm9ybWFsUmVnaW9uKj4odGhpcyktPk5vcm1hbFJlZ2lvbjo6YmFzZSgpOwotI2Vsc2UKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8RXhjZXNzUmVnaW9uKj4odGhpcyktPkV4Y2Vzc1JlZ2lvbjo6YmFz
ZSgpOwotI2VuZGlmCi19Ci0KLWlubGluZSBzaXplX3QgUmVnaW9uOjpzaXplKCkKLXsKLSNpZiBF
TkFCTEUoU1VQRVJfUkVHSU9OKQotICAgIGlmIChVTkxJS0VMWShtX2lzRXhjZXNzKSkKLSAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEV4Y2Vzc1JlZ2lvbio+KHRoaXMpLT5FeGNlc3NSZWdpb246
OnNpemUoKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Tm9ybWFsUmVnaW9uKj4odGhpcyktPk5v
cm1hbFJlZ2lvbjo6c2l6ZSgpOwotI2Vsc2UKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXhjZXNz
UmVnaW9uKj4odGhpcyktPkV4Y2Vzc1JlZ2lvbjo6c2l6ZSgpOwotI2VuZGlmCi19Ci0KLX0gLy8g
bmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gSlNDX1JlZ2lvbl9oCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuY3BwCShyZXZpc2lvbiAxNzkwMjUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE3LDcgKzE3LDcgQEAKIG5hbWVzcGFjZSBKU0MgewogCiBTbG90VmlzaXRvcjo6U2xvdFZp
c2l0b3IoR0NUaHJlYWRTaGFyZWREYXRhJiBzaGFyZWQpCi0gICAgOiBtX3N0YWNrKHNoYXJlZC5t
X3ZtLT5oZWFwLmJsb2NrQWxsb2NhdG9yKCkpCisgICAgOiBtX3N0YWNrKCkKICAgICAsIG1fYnl0
ZXNWaXNpdGVkKDApCiAgICAgLCBtX2J5dGVzQ29waWVkKDApCiAgICAgLCBtX3Zpc2l0Q291bnQo
MCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N1cGVyUmVnaW9uLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdXBlclJlZ2lvbi5jcHAJKHJl
dmlzaW9uIDE3OTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N1cGVyUmVnaW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw4MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlN1cGVyUmVnaW9uLmgiCi0KLSNpbmNsdWRlICJKU0NJ
bmxpbmVzLmgiCi0jaW5jbHVkZSAiUmVnaW9uLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jb25z
dCB1aW50NjRfdCBTdXBlclJlZ2lvbjo6c19maXhlZEhlYXBNZW1vcnlQb29sU2l6ZSA9IDQgKiAx
MDI0ICogc3RhdGljX2Nhc3Q8dWludDY0X3Q+KE1CKTsKLQotU3VwZXJSZWdpb246OlN1cGVyUmVn
aW9uKCkKLSAgICA6IE1ldGFBbGxvY2F0b3IoUmVnaW9uOjpzX3JlZ2lvblNpemUsIFJlZ2lvbjo6
c19yZWdpb25TaXplKQotICAgICwgbV9yZXNlcnZhdGlvbkJhc2UoMCkKLXsKLSNpZiBFTkFCTEUo
U1VQRVJfUkVHSU9OKQotICAgIC8vIE92ZXItYWxsb2NhdGUgc28gdGhhdCB3ZSBjYW4gbWFrZSBz
dXJlIHRoYXQgd2UncmUgYWxpZ25lZCB0byB0aGUgc2l6ZSBvZiBSZWdpb25zLgotICAgIG1fcmVz
ZXJ2YXRpb24gPSBQYWdlUmVzZXJ2YXRpb246OnJlc2VydmUoc19maXhlZEhlYXBNZW1vcnlQb29s
U2l6ZSArIFJlZ2lvbjo6c19yZWdpb25TaXplLCBPU0FsbG9jYXRvcjo6SlNHQ0hlYXBQYWdlcyk7
Ci0gICAgbV9yZXNlcnZhdGlvbkJhc2UgPSBnZXRBbGlnbmVkQmFzZShtX3Jlc2VydmF0aW9uKTsK
LSAgICBhZGRGcmVzaEZyZWVTcGFjZShtX3Jlc2VydmF0aW9uQmFzZSwgc19maXhlZEhlYXBNZW1v
cnlQb29sU2l6ZSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShtX3Jlc2VydmF0aW9uKTsKLSAg
ICBVTlVTRURfUEFSQU0obV9yZXNlcnZhdGlvbkJhc2UpOwotI2VuZGlmCi19Ci0KLVN1cGVyUmVn
aW9uOjp+U3VwZXJSZWdpb24oKQotewotI2lmIEVOQUJMRShTVVBFUl9SRUdJT04pCi0gICAgbV9y
ZXNlcnZhdGlvbi5kZWFsbG9jYXRlKCk7Ci0jZW5kaWYKLX0KLQotdm9pZCogU3VwZXJSZWdpb246
OmdldEFsaWduZWRCYXNlKFBhZ2VSZXNlcnZhdGlvbiYgcmVzZXJ2YXRpb24pCi17Ci0gICAgZm9y
IChjaGFyKiBjdXJyZW50ID0gc3RhdGljX2Nhc3Q8Y2hhcio+KHJlc2VydmF0aW9uLmJhc2UoKSk7
IGN1cnJlbnQgPCBzdGF0aWNfY2FzdDxjaGFyKj4ocmVzZXJ2YXRpb24uYmFzZSgpKSArIFJlZ2lv
bjo6c19yZWdpb25TaXplOyBjdXJyZW50ICs9IHBhZ2VTaXplKCkpIHsKLSAgICAgICAgaWYgKCEo
cmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KGN1cnJlbnQpICYgflJlZ2lvbjo6c19yZWdpb25NYXNr
KSkKLSAgICAgICAgICAgIHJldHVybiBjdXJyZW50OwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCogU3VwZXJSZWdpb246OmFsbG9jYXRl
TmV3U3BhY2Uoc2l6ZV90JikKLXsKLSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCBTdXBlclJlZ2lv
bjo6bm90aWZ5TmVlZFBhZ2Uodm9pZCogcGFnZSkKLXsKLSAgICBtX3Jlc2VydmF0aW9uLmNvbW1p
dChwYWdlLCBSZWdpb246OnNfcmVnaW9uU2l6ZSk7Ci19Ci0KLXZvaWQgU3VwZXJSZWdpb246Om5v
dGlmeVBhZ2VJc0ZyZWUodm9pZCogcGFnZSkKLXsKLSAgICBtX3Jlc2VydmF0aW9uLmRlY29tbWl0
KHBhZ2UsIFJlZ2lvbjo6c19yZWdpb25TaXplKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdXBlclJlZ2lvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N1cGVyUmVnaW9uLmgJKHJldmlzaW9uIDE3
OTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N1cGVyUmVnaW9uLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU3VwZXJSZWdp
b25faAotI2RlZmluZSBTdXBlclJlZ2lvbl9oCi0KLSNpbmNsdWRlIDx3dGYvTWV0YUFsbG9jYXRv
ci5oPgotI2luY2x1ZGUgPHd0Zi9QYWdlQmxvY2suaD4KLSNpbmNsdWRlIDx3dGYvUGFnZVJlc2Vy
dmF0aW9uLmg+Ci0KLW5hbWVzcGFjZSBKU0MgewotCi1jbGFzcyBWTTsKLQotY2xhc3MgU3VwZXJS
ZWdpb24gOiBwdWJsaWMgV1RGOjpNZXRhQWxsb2NhdG9yIHsKLXB1YmxpYzoKLSAgICBTdXBlclJl
Z2lvbigpOwotICAgIHZpcnR1YWwgflN1cGVyUmVnaW9uKCk7Ci0KLXByb3RlY3RlZDoKLSAgICB2
aXJ0dWFsIHZvaWQqIGFsbG9jYXRlTmV3U3BhY2Uoc2l6ZV90Jikgb3ZlcnJpZGU7Ci0gICAgdmly
dHVhbCB2b2lkIG5vdGlmeU5lZWRQYWdlKHZvaWQqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5UGFnZUlzRnJlZSh2b2lkKikgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAgc3Rh
dGljIGNvbnN0IHVpbnQ2NF90IHNfZml4ZWRIZWFwTWVtb3J5UG9vbFNpemU7Ci0KLSAgICBzdGF0
aWMgdm9pZCogZ2V0QWxpZ25lZEJhc2UoUGFnZVJlc2VydmF0aW9uJik7Ci0KLSAgICBQYWdlUmVz
ZXJ2YXRpb24gbV9yZXNlcnZhdGlvbjsKLSAgICB2b2lkKiBtX3Jlc2VydmF0aW9uQmFzZTsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gU3VwZXJSZWdpb25faApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCShyZXZpc2lvbiAxNzkwMjUp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNCwxNCArMzQsMTMgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLVdlYWtCbG9jayog
V2Vha0Jsb2NrOjpjcmVhdGUoRGVhZEJsb2NrKiBibG9jaykKK1dlYWtCbG9jayogV2Vha0Jsb2Nr
OjpjcmVhdGUoKQogewotICAgIFJlZ2lvbiogcmVnaW9uID0gYmxvY2stPnJlZ2lvbigpOwotICAg
IHJldHVybiBuZXcgKE5vdE51bGwsIGJsb2NrKSBXZWFrQmxvY2socmVnaW9uKTsKKyAgICByZXR1
cm4gbmV3IChOb3ROdWxsLCBmYXN0QWxpZ25lZE1hbGxvYyhibG9ja1NpemUsIGJsb2NrU2l6ZSkp
IFdlYWtCbG9jaygpOwogfQogCi1XZWFrQmxvY2s6OldlYWtCbG9jayhSZWdpb24qIHJlZ2lvbikK
LSAgICA6IEhlYXBCbG9jazxXZWFrQmxvY2s+KHJlZ2lvbikKK1dlYWtCbG9jazo6V2Vha0Jsb2Nr
KCkKKyAgICA6IEhlYXBCbG9jazxXZWFrQmxvY2s+KCkKIHsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHdlYWtJbXBsQ291bnQoKTsgKytpKSB7CiAgICAgICAgIFdlYWtJbXBsKiB3ZWFrSW1w
bCA9ICZ3ZWFrSW1wbHMoKVtpXTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dl
YWtCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtC
bG9jay5oCShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9X
ZWFrQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNiBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsKIAotY2xhc3MgRGVhZEJsb2NrOwogY2xhc3MgSGVhcFJvb3RWaXNpdG9yOwogY2xhc3Mg
SlNWYWx1ZTsKIGNsYXNzIFdlYWtIYW5kbGVPd25lcjsKQEAgLTU2LDcgKzU1LDcgQEAgcHVibGlj
OgogICAgICAgICBGcmVlQ2VsbCogZnJlZUxpc3Q7CiAgICAgfTsKIAotICAgIHN0YXRpYyBXZWFr
QmxvY2sqIGNyZWF0ZShEZWFkQmxvY2sqKTsKKyAgICBzdGF0aWMgV2Vha0Jsb2NrKiBjcmVhdGUo
KTsKIAogICAgIHN0YXRpYyBXZWFrSW1wbCogYXNXZWFrSW1wbChGcmVlQ2VsbCopOwogCkBAIC03
Myw3ICs3Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgc3RhdGljIEZyZWVDZWxsKiBhc0Zy
ZWVDZWxsKFdlYWtJbXBsKik7CiAKLSAgICBXZWFrQmxvY2soUmVnaW9uKik7CisgICAgV2Vha0Js
b2NrKCk7CiAgICAgV2Vha0ltcGwqIGZpcnN0V2Vha0ltcGwoKTsKICAgICB2b2lkIGZpbmFsaXpl
KFdlYWtJbXBsKik7CiAgICAgV2Vha0ltcGwqIHdlYWtJbXBscygpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvV2Vha1NldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvV2Vha1NldC5jcHAJKHJldmlzaW9uIDE3OTAyNSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtTZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICsz
Nyw3IEBAIFdlYWtTZXQ6On5XZWFrU2V0KCkKICAgICBXZWFrQmxvY2sqIG5leHQgPSAwOwogICAg
IGZvciAoV2Vha0Jsb2NrKiBibG9jayA9IG1fYmxvY2tzLmhlYWQoKTsgYmxvY2s7IGJsb2NrID0g
bmV4dCkgewogICAgICAgICBuZXh0ID0gYmxvY2stPm5leHQoKTsKLSAgICAgICAgaGVhcCgpLT5i
bG9ja0FsbG9jYXRvcigpLmRlYWxsb2NhdGUoV2Vha0Jsb2NrOjpkZXN0cm95KGJsb2NrKSk7Cisg
ICAgICAgIFdlYWtCbG9jazo6ZGVzdHJveShibG9jayk7CiAgICAgfQogICAgIG1fYmxvY2tzLmNs
ZWFyKCk7CiB9CkBAIC03NCw3ICs3NCw3IEBAIFdlYWtCbG9jazo6RnJlZUNlbGwqIFdlYWtTZXQ6
OnRyeUZpbmRBbGwKIAogV2Vha0Jsb2NrOjpGcmVlQ2VsbCogV2Vha1NldDo6YWRkQWxsb2NhdG9y
KCkKIHsKLSAgICBXZWFrQmxvY2sqIGJsb2NrID0gV2Vha0Jsb2NrOjpjcmVhdGUoaGVhcCgpLT5i
bG9ja0FsbG9jYXRvcigpLmFsbG9jYXRlPFdlYWtCbG9jaz4oKSk7CisgICAgV2Vha0Jsb2NrKiBi
bG9jayA9IFdlYWtCbG9jazo6Y3JlYXRlKCk7CiAgICAgaGVhcCgpLT5kaWRBbGxvY2F0ZShXZWFr
QmxvY2s6OmJsb2NrU2l6ZSk7CiAgICAgbV9ibG9ja3MuYXBwZW5kKGJsb2NrKTsKICAgICBXZWFr
QmxvY2s6OlN3ZWVwUmVzdWx0IHN3ZWVwUmVzdWx0ID0gYmxvY2stPnRha2VTd2VlcFJlc3VsdCgp
OwpAQCAtODUsNyArODUsNyBAQCBXZWFrQmxvY2s6OkZyZWVDZWxsKiBXZWFrU2V0OjphZGRBbGxv
Y2F0CiB2b2lkIFdlYWtTZXQ6OnJlbW92ZUFsbG9jYXRvcihXZWFrQmxvY2sqIGJsb2NrKQogewog
ICAgIG1fYmxvY2tzLnJlbW92ZShibG9jayk7Ci0gICAgaGVhcCgpLT5ibG9ja0FsbG9jYXRvcigp
LmRlYWxsb2NhdGUoV2Vha0Jsb2NrOjpkZXN0cm95KGJsb2NrKSk7CisgICAgV2Vha0Jsb2NrOjpk
ZXN0cm95KGJsb2NrKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvV1RG
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24g
MTc5MTQxKQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyMiBAQAorMjAxNS0wMS0yNiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgor
CisgICAgICAgIFVzZSBGYXN0TWFsbG9jIChibWFsbG9jKSBpbnN0ZWFkIG9mIEJsb2NrQWxsb2Nh
dG9yIGZvciBHQyBwYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQwOTAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTmV3IGludGVyZmFjZSBmb3IgYWxpZ25lZCBhbGxvY2F0aW9uOiBmYXN0QWxpZ25l
ZE1hbGxvYyAvIGZhc3RBbGlnbmVkRnJlZS4KKyAgICAgICAgV2UgcmVxdWlyZSBhIHNwZWNpYWwg
ZnVuY3Rpb24gY2FsbCBvbiBmcmVlIGJlY2F1c2UgV2luZG93cy4KKworICAgICAgICAqIHd0Zi9G
YXN0TWFsbG9jLmNwcDoKKyAgICAgICAgKFdURjo6ZmFzdEFsaWduZWRNYWxsb2MpOgorICAgICAg
ICAoV1RGOjpmYXN0QWxpZ25lZEZyZWUpOiBEbyBpdC4KKworICAgICAgICAoV1RGOjpkb19tZW1h
bGlnbik6IFVuLWlmZGVmIHRoaXMsIHNpbmNlIHdlIHVzZSBpdCBub3cuCisKKyAgICAgICAgKiB3
dGYvRmFzdE1hbGxvYy5oOiBNYWtlIG91ciBuZXcgZnVuY3Rpb24gbmFtZXMgdmlzaWJsZSBsaWtl
IHRoZSByZXN0CisgICAgICAgIG9mIGZhc3RNYWxsb2MuCisKIDIwMTUtMDEtMjQgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBQcm92aWRlIGltcGxlbWVudGF0aW9u
IGZvciBXVEY6OkRlZmF1bHRIYXNoPGJvb2w+CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9GYXN0TWFs
bG9jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcAkocmV2
aXNpb24gMTc5MDI1KQorKysgU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI0NCw2ICsyNDQsMzQgQEAgc2l6ZV90IGZhc3RNYWxsb2NHb29kU2l6ZShzaXpl
X3QgYnl0ZXMpCiAjZW5kaWYKIH0KIAorI2lmIE9TKFdJTkRPV1MpCisKK3ZvaWQqIGZhc3RBbGln
bmVkTWFsbG9jKHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKSAKK3sKKyAgICByZXR1cm4g
X2FsaWduZWRfbWFsbG9jKGFsaWdubWVudCwgc2l6ZSk7Cit9CisKK3ZvaWQgZmFzdEFsaWduZWRG
cmVlKHZvaWQqIHApIAoreworICAgIF9hbGlnbmVkX2ZyZWUocCk7Cit9CisKKyNlbHNlCisKK3Zv
aWQqIGZhc3RBbGlnbmVkTWFsbG9jKHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKSAKK3sK
KyAgICB2b2lkKiBwID0gbnVsbHB0cjsKKyAgICBwb3NpeF9tZW1hbGlnbigmcCwgYWxpZ25tZW50
LCBzaXplKTsKKyAgICByZXR1cm4gcDsKK30KKwordm9pZCBmYXN0QWxpZ25lZEZyZWUodm9pZCog
cCkgCit7CisgICAgZnJlZShwKTsKK30KKworI2VuZGlmIC8vIE9TKFdJTkRPV1MpCisKIFRyeU1h
bGxvY1JldHVyblZhbHVlIHRyeUZhc3RNYWxsb2Moc2l6ZV90IG4pIAogewogICAgIEFTU0VSVCgh
aXNGb3JiaWRkZW4oKSk7CkBAIC00NTQsNiArNDgyLDE2IEBAIHNpemVfdCBmYXN0TWFsbG9jR29v
ZFNpemUoc2l6ZV90IHNpemUpCiAgICAgcmV0dXJuIHNpemU7CiB9CiAgICAgCit2b2lkKiBmYXN0
QWxpZ25lZE1hbGxvYyhzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkgCit7CisgICAgcmV0
dXJuIGJtYWxsb2M6OmFwaTo6bWVtYWxpZ24oYWxpZ25tZW50LCBzaXplKTsKK30KKwordm9pZCBm
YXN0QWxpZ25lZEZyZWUodm9pZCogcCkgCit7CisgICAgYm1hbGxvYzo6YXBpOjpmcmVlKHApOwor
fQorCiBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0TWFsbG9jKHNpemVfdCBzaXplKQogewog
ICAgIHJldHVybiBmYXN0TWFsbG9jKHNpemUpOwpAQCAtNDIwNCw3ICs0MjQyLDYgQEAgc3RhdGlj
IEFMV0FZU19JTkxJTkUgdm9pZCBkb19mcmVlKHZvaWQqIAogICB9CiB9CiAKLSNpZm5kZWYgV1RG
X0NIQU5HRVMKIC8vIEZvciB1c2UgYnkgZXhwb3J0ZWQgcm91dGluZXMgYmVsb3cgdGhhdCB3YW50
IHNwZWNpZmljIGFsaWdubWVudHMKIC8vCiAvLyBOb3RlOiB0aGlzIGNvZGUgY2FuIGJlIHNsb3cs
IGFuZCBjYW4gc2lnbmlmaWNhbnRseSBmcmFnbWVudCBtZW1vcnkuCkBAIC00Mjc1LDcgKzQzMTIs
NiBAQCBzdGF0aWMgdm9pZCogZG9fbWVtYWxpZ24oc2l6ZV90IGFsaWduLCBzCiAgIH0KICAgcmV0
dXJuIFNwYW5Ub01hbGxvY1Jlc3VsdChzcGFuKTsKIH0KLSNlbmRpZgogCiAvLyBIZWxwZXJzIGZv
ciB1c2UgYnkgZXhwb3J0ZWQgcm91dGluZXMgYmVsb3c6CiAKQEAgLTQzMzIsNiArNDM2OCwxNiBA
QCBleHRlcm4gIkMiIAogdGVtcGxhdGUgPGJvb2wgY3Jhc2hPbkZhaWx1cmU+CiBBTFdBWVNfSU5M
SU5FIHZvaWQqIG1hbGxvYyhzaXplX3QpOwogCit2b2lkKiBmYXN0QWxpZ25lZE1hbGxvYyhzaXpl
X3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkgCit7CisgICAgcmV0dXJuIGRvX21lbWFsaWduKGFs
aWdubWVudCwgc2l6ZSk7Cit9CisKK3ZvaWQgZmFzdEFsaWduZWRGcmVlKHZvaWQqIHApIAorewor
ICAgIGRvX2ZyZWUocCk7Cit9CisKIHZvaWQqIGZhc3RNYWxsb2Moc2l6ZV90IHNpemUpCiB7CiAg
ICAgdm9pZCogcmVzdWx0ID0gbWFsbG9jPHRydWU+KHNpemUpOwpJbmRleDogU291cmNlL1dURi93
dGYvRmFzdE1hbGxvYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2Mu
aAkocmV2aXNpb24gMTc5MDI1KQorKysgU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNyw2ICszNywxMCBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgc2l6ZV90IGZhc3RNYWxsb2NTaXplKGNvbnN0IHZvaWQqKTsKICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgc2l6ZV90IGZhc3RNYWxsb2NHb29kU2l6ZShzaXplX3QpOwogCisgICAg
Ly8gQWxsb2NhdGlvbnMgZnJvbSBmYXN0QWxpZ25lZE1hbGxvYygpIG11c3QgYmUgZnJlZWQgdXNp
bmcgZmFzdEFsaWduZWRGcmVlKCkuCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQqIGZhc3RB
bGlnbmVkTWFsbG9jKHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCk7CisgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQgZmFzdEFsaWduZWRGcmVlKHZvaWQqKTsKKwogICAgIHN0cnVjdCBUcnlNYWxs
b2NSZXR1cm5WYWx1ZSB7CiAgICAgICAgIFRyeU1hbGxvY1JldHVyblZhbHVlKHZvaWQqIGRhdGEp
CiAgICAgICAgICAgICA6IG1fZGF0YShkYXRhKQpAQCAtMjMxLDYgKzIzNSw4IEBAIHVzaW5nIFdU
Rjo6dHJ5RmFzdENhbGxvYzsKIHVzaW5nIFdURjo6dHJ5RmFzdE1hbGxvYzsKIHVzaW5nIFdURjo6
dHJ5RmFzdFJlYWxsb2M7CiB1c2luZyBXVEY6OnRyeUZhc3RaZXJvZWRNYWxsb2M7Cit1c2luZyBX
VEY6OmZhc3RBbGlnbmVkTWFsbG9jOwordXNpbmcgV1RGOjpmYXN0QWxpZ25lZEZyZWU7CiAKICNp
Zm5kZWYgTkRFQlVHICAgIAogdXNpbmcgV1RGOjpmYXN0TWFsbG9jRm9yYmlkOwpJbmRleDogU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTc5MTQxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMDEtMjYgIEdlb2ZmcmV5IEdhcmVuICA8
Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgRmFzdE1hbGxvYyAoYm1hbGxvYykgaW5z
dGVhZCBvZiBCbG9ja0FsbG9jYXRvciBmb3IgR0MgcGFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDkwMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTWVtb3J5UHJlc3N1
cmVIYW5kbGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRs
ZXI6Omluc3RhbGwpOiBCZSBzdXJlIHRvIHJlbGVhc2Ugb3RoZXIKKyAgICAgICAgbWVtb3J5IGFm
dGVyIEdDIGFuZCBub3QgYmVmb3JlLCBzaW5jZSBHQyBtaWdodCBjb250cmlidXRlIHRvIGZyZWUK
KyAgICAgICAgbWFsbG9jIHBhZ2VzIG5vdy4KKwogMjAxNS0wMS0yNiAgQW5kcmVhcyBLbGluZyAg
PGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgbGV0IHRoZSBDU1NWYWx1ZVBvb2wn
cyBmb250IGZhbWlseSBjYWNoZSBncm93IHVuYm91bmRlZC4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNv
Y29hLm1tCShyZXZpc2lvbiAxNzkwMjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTE1LDE0
ICsxMTUsMTEgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Omluc3RhbGwoKQogCiAgICAg
Ly8gQWxsb3cgc2ltdWxhdGlvbiBvZiBtZW1vcnkgcHJlc3N1cmUgd2l0aCAibm90aWZ5dXRpbCAt
cCBvcmcuV2ViS2l0Lmxvd01lbW9yeSIKICAgICBub3RpZnlfcmVnaXN0ZXJfZGlzcGF0Y2goIm9y
Zy5XZWJLaXQubG93TWVtb3J5IiwgJl9ub3RpZnlUb2tlbiwgZGlzcGF0Y2hfZ2V0X21haW5fcXVl
dWUoKSwgXihpbnQpIHsKLSAgICAgICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyKCkucmVzcG9uZFRv
TWVtb3J5UHJlc3N1cmUodHJ1ZSk7Ci0KICAgICAgICAgLy8gV2Ugb25seSBkbyBhIHN5bmNocm9u
b3VzIEdDIHdoZW4gKnNpbXVsYXRpbmcqIG1lbW9yeSBwcmVzc3VyZS4KICAgICAgICAgLy8gVGhp
cyBnaXZlcyB1cyBhIG1vcmUgY29uc2lzdGVudCBwaWN0dXJlIG9mIGxpdmUgb2JqZWN0cyBhdCB0
aGUgZW5kIG9mIHRlc3RpbmcuCiAgICAgICAgIGdjQ29udHJvbGxlcigpLmdhcmJhZ2VDb2xsZWN0
Tm93KCk7CiAKLSAgICAgICAgLy8gUmVsZWFzZSBhbnkgZnJlZWQgdXAgYmxvY2tzIGZyb20gdGhl
IEpTIGhlYXAgYmFjayB0byB0aGUgc3lzdGVtLgotICAgICAgICBKU0RPTVdpbmRvd0Jhc2U6OmNv
bW1vblZNKCkuaGVhcC5ibG9ja0FsbG9jYXRvcigpLnJlbGVhc2VGcmVlUmVnaW9ucygpOworICAg
ICAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIoKS5yZXNwb25kVG9NZW1vcnlQcmVzc3VyZSh0cnVl
KTsKIAogICAgICAgICBtYWxsb2Nfem9uZV9wcmVzc3VyZV9yZWxpZWYobnVsbHB0ciwgMCk7CiAg
ICAgfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248031</attachid>
            <date>2015-03-05 19:42:02 -0800</date>
            <delta_ts>2015-03-06 16:06:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140900-20150305194142.patch</filename>
            <type>text/plain</type>
            <size>9885</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgxMTI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBA
CisyMDE1LTAzLTA1ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIEZhc3RNYWxsb2MgKGJtYWxsb2MpIGluc3RlYWQgb2YgQmxvY2tBbGxvY2F0b3IgZm9y
IEdDIHBhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDA5MDAKKworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIEhhaG5lbmJlcmcuCisKKyAgICAg
ICAgUmUtbGFuZGluZyBqdXN0IHRoZSBDb3BpZWRCbG9jayBwaWVjZSBvZiB0aGlzIHBhdGNoLgor
CisgICAgICAgICogaGVhcC9Db3BpZWRCbG9jay5oOgorICAgICAgICAoSlNDOjpDb3BpZWRCbG9j
azo6Y3JlYXRlTm9aZXJvRmlsbCk6CisgICAgICAgIChKU0M6OkNvcGllZEJsb2NrOjpkZXN0cm95
KToKKyAgICAgICAgKEpTQzo6Q29waWVkQmxvY2s6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkNv
cGllZEJsb2NrOjpDb3BpZWRCbG9jayk6CisgICAgICAgIChKU0M6OkNvcGllZEJsb2NrOjppc092
ZXJzaXplKToKKyAgICAgICAgKEpTQzo6Q29waWVkQmxvY2s6OnBheWxvYWRFbmQpOgorICAgICAg
ICAoSlNDOjpDb3BpZWRCbG9jazo6Y2FwYWNpdHkpOgorICAgICAgICAqIGhlYXAvQ29waWVkU3Bh
Y2UuY3BwOgorICAgICAgICAoSlNDOjpDb3BpZWRTcGFjZTo6fkNvcGllZFNwYWNlKToKKyAgICAg
ICAgKEpTQzo6Q29waWVkU3BhY2U6OnRyeUFsbG9jYXRlT3ZlcnNpemUpOgorICAgICAgICAoSlND
OjpDb3BpZWRTcGFjZTo6dHJ5UmVhbGxvY2F0ZU92ZXJzaXplKToKKyAgICAgICAgKiBoZWFwL0Nv
cGllZFNwYWNlSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpDb3BpZWRTcGFjZTo6cmVjeWNsZUV2
YWN1YXRlZEJsb2NrKToKKyAgICAgICAgKEpTQzo6Q29waWVkU3BhY2U6OnJlY3ljbGVCb3Jyb3dl
ZEJsb2NrKToKKyAgICAgICAgKEpTQzo6Q29waWVkU3BhY2U6OmFsbG9jYXRlQmxvY2tGb3JDb3B5
aW5nUGhhc2UpOgorICAgICAgICAoSlNDOjpDb3BpZWRTcGFjZTo6YWxsb2NhdGVCbG9jayk6Cisg
ICAgICAgIChKU0M6OkNvcGllZFNwYWNlOjpzdGFydGVkQ29weWluZyk6CisgICAgICAgICogaGVh
cC9Db3B5V29ya0xpc3QuaDoKKwogMjAxNS0wMy0wNSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jh
cm9AYXBwbGUuY29tPgogCiAgICAgICAgIEVTNjogT2JqZWN0IExpdGVyYWwgRXh0ZW5zaW9ucyAt
IFNob3J0aGFuZCBQcm9wZXJ0aWVzIChJZGVudGlmaWVycykKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0NvcGllZEJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvQ29waWVkQmxvY2suaAkocmV2aXNpb24gMTgxMTI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMjYsMjMg
KzI2LDI2IEBACiAjaWZuZGVmIENvcGllZEJsb2NrX2gKICNkZWZpbmUgQ29waWVkQmxvY2tfaAog
Ci0jaW5jbHVkZSAiQmxvY2tBbGxvY2F0b3IuaCIKICNpbmNsdWRlICJDb3B5V29ya0xpc3QuaCIK
ICNpbmNsdWRlICJIZWFwQmxvY2suaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAjaW5jbHVk
ZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CisjaW5jbHVkZSA8d3RmL0Rv
dWJseUxpbmtlZExpc3QuaD4KKyNpbmNsdWRlIDx3dGYvVENTcGluTG9jay5oPgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAogY2xhc3MgQ29waWVkU3BhY2U7CiAKLWNsYXNzIENvcGllZEJsb2NrIDogcHVi
bGljIEhlYXBCbG9jazxDb3BpZWRCbG9jaz4geworY2xhc3MgQ29waWVkQmxvY2sgOiBwdWJsaWMg
RG91Ymx5TGlua2VkTGlzdE5vZGU8Q29waWVkQmxvY2s+IHsKKyAgICBmcmllbmQgY2xhc3MgV1RG
OjpEb3VibHlMaW5rZWRMaXN0Tm9kZTxDb3BpZWRCbG9jaz47CiAgICAgZnJpZW5kIGNsYXNzIENv
cGllZFNwYWNlOwogICAgIGZyaWVuZCBjbGFzcyBDb3BpZWRBbGxvY2F0b3I7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIENvcGllZEJsb2NrKiBjcmVhdGUoRGVhZEJsb2NrKik7Ci0gICAgc3RhdGljIENv
cGllZEJsb2NrKiBjcmVhdGVOb1plcm9GaWxsKERlYWRCbG9jayopOworICAgIHN0YXRpYyBDb3Bp
ZWRCbG9jayogY3JlYXRlKHNpemVfdCA9IGJsb2NrU2l6ZSk7CisgICAgc3RhdGljIENvcGllZEJs
b2NrKiBjcmVhdGVOb1plcm9GaWxsKHNpemVfdCA9IGJsb2NrU2l6ZSk7CisgICAgc3RhdGljIHZv
aWQgZGVzdHJveShDb3BpZWRCbG9jayopOwogCiAgICAgdm9pZCBwaW4oKTsKICAgICBib29sIGlz
UGlubmVkKCk7CkBAIC04NiwxMSArODksMTYgQEAgcHVibGljOgogICAgIFNwaW5Mb2NrJiB3b3Jr
TGlzdExvY2soKSB7IHJldHVybiBtX3dvcmtMaXN0TG9jazsgfQogCiBwcml2YXRlOgotICAgIENv
cGllZEJsb2NrKFJlZ2lvbiopOworICAgIENvcGllZEJsb2NrKHNpemVfdCk7CiAgICAgdm9pZCB6
ZXJvRmlsbFdpbGRlcm5lc3MoKTsgLy8gQ2FuIGJlIGNhbGxlZCBhdCBhbnkgdGltZSB0byB6ZXJv
LWZpbGwgdG8gdGhlIGVuZCBvZiB0aGUgYmxvY2suCiAKICAgICB2b2lkIGNoZWNrQ29uc2lzdGVu
Y3koKTsKIAorICAgIENvcGllZEJsb2NrKiBtX3ByZXY7CisgICAgQ29waWVkQmxvY2sqIG1fbmV4
dDsKKworICAgIHNpemVfdCBtX2NhcGFjaXR5OworCiAgICAgU3BpbkxvY2sgbV93b3JrTGlzdExv
Y2s7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvcHlXb3JrTGlzdD4gbV93b3JrTGlzdDsKIApAQCAt
MTAzLDE1ICsxMTEsMjAgQEAgcHJpdmF0ZToKICNlbmRpZgogfTsKIAotaW5saW5lIENvcGllZEJs
b2NrKiBDb3BpZWRCbG9jazo6Y3JlYXRlTm9aZXJvRmlsbChEZWFkQmxvY2sqIGJsb2NrKQoraW5s
aW5lIENvcGllZEJsb2NrKiBDb3BpZWRCbG9jazo6Y3JlYXRlTm9aZXJvRmlsbChzaXplX3QgY2Fw
YWNpdHkpCit7CisgICAgcmV0dXJuIG5ldyhOb3ROdWxsLCBmYXN0QWxpZ25lZE1hbGxvYyhDb3Bp
ZWRCbG9jazo6YmxvY2tTaXplLCBjYXBhY2l0eSkpIENvcGllZEJsb2NrKGNhcGFjaXR5KTsKK30K
KworaW5saW5lIHZvaWQgQ29waWVkQmxvY2s6OmRlc3Ryb3koQ29waWVkQmxvY2sqIGNvcGllZEJs
b2NrKQogewotICAgIFJlZ2lvbiogcmVnaW9uID0gYmxvY2stPnJlZ2lvbigpOwotICAgIHJldHVy
biBuZXcoTm90TnVsbCwgYmxvY2spIENvcGllZEJsb2NrKHJlZ2lvbik7CisgICAgY29waWVkQmxv
Y2stPn5Db3BpZWRCbG9jaygpOworICAgIGZhc3RBbGlnbmVkRnJlZShjb3BpZWRCbG9jayk7CiB9
CiAKLWlubGluZSBDb3BpZWRCbG9jayogQ29waWVkQmxvY2s6OmNyZWF0ZShEZWFkQmxvY2sqIGJs
b2NrKQoraW5saW5lIENvcGllZEJsb2NrKiBDb3BpZWRCbG9jazo6Y3JlYXRlKHNpemVfdCBjYXBh
Y2l0eSkKIHsKLSAgICBDb3BpZWRCbG9jayogbmV3QmxvY2sgPSBjcmVhdGVOb1plcm9GaWxsKGJs
b2NrKTsKKyAgICBDb3BpZWRCbG9jayogbmV3QmxvY2sgPSBjcmVhdGVOb1plcm9GaWxsKGNhcGFj
aXR5KTsKICAgICBuZXdCbG9jay0+emVyb0ZpbGxXaWxkZXJuZXNzKCk7CiAgICAgcmV0dXJuIG5l
d0Jsb2NrOwogfQpAQCAtMTI4LDggKzE0MSw5IEBAIGlubGluZSB2b2lkIENvcGllZEJsb2NrOjp6
ZXJvRmlsbFdpbGRlcm4KICNlbmRpZgogfQogCi1pbmxpbmUgQ29waWVkQmxvY2s6OkNvcGllZEJs
b2NrKFJlZ2lvbiogcmVnaW9uKQotICAgIDogSGVhcEJsb2NrPENvcGllZEJsb2NrPihyZWdpb24p
CitpbmxpbmUgQ29waWVkQmxvY2s6OkNvcGllZEJsb2NrKHNpemVfdCBjYXBhY2l0eSkKKyAgICA6
IERvdWJseUxpbmtlZExpc3ROb2RlPENvcGllZEJsb2NrPigpCisgICAgLCBtX2NhcGFjaXR5KGNh
cGFjaXR5KQogICAgICwgbV9yZW1haW5pbmcocGF5bG9hZENhcGFjaXR5KCkpCiAgICAgLCBtX2lz
UGlubmVkKGZhbHNlKQogICAgICwgbV9pc09sZChmYWxzZSkKQEAgLTIwMyw3ICsyMTcsNyBAQCBp
bmxpbmUgdm9pZCBDb3BpZWRCbG9jazo6ZGlkUHJvbW90ZSgpCiAKIGlubGluZSBib29sIENvcGll
ZEJsb2NrOjppc092ZXJzaXplKCkKIHsKLSAgICByZXR1cm4gcmVnaW9uKCktPmlzQ3VzdG9tU2l6
ZSgpOworICAgIHJldHVybiBtX2NhcGFjaXR5ICE9IGJsb2NrU2l6ZTsKIH0KIAogaW5saW5lIHVu
c2lnbmVkIENvcGllZEJsb2NrOjpsaXZlQnl0ZXMoKQpAQCAtMjE5LDcgKzIzMyw3IEBAIGlubGlu
ZSBjaGFyKiBDb3BpZWRCbG9jazo6cGF5bG9hZCgpCiAKIGlubGluZSBjaGFyKiBDb3BpZWRCbG9j
azo6cGF5bG9hZEVuZCgpCiB7Ci0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHRo
aXMpICsgcmVnaW9uKCktPmJsb2NrU2l6ZSgpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PGNoYXIqPih0aGlzKSArIG1fY2FwYWNpdHk7CiB9CiAKIGlubGluZSBzaXplX3QgQ29waWVkQmxv
Y2s6OnBheWxvYWRDYXBhY2l0eSgpCkBAIC0yNjQsNyArMjc4LDcgQEAgaW5saW5lIHNpemVfdCBD
b3BpZWRCbG9jazo6c2l6ZSgpCiAKIGlubGluZSBzaXplX3QgQ29waWVkQmxvY2s6OmNhcGFjaXR5
KCkKIHsKLSAgICByZXR1cm4gcmVnaW9uKCktPmJsb2NrU2l6ZSgpOworICAgIHJldHVybiBtX2Nh
cGFjaXR5OwogfQogCiBpbmxpbmUgYm9vbCBDb3BpZWRCbG9jazo6aGFzV29ya0xpc3QoKQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAkocmV2aXNpb24g
MTgxMTI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NSwyMiArNDUsMjIgQEAgQ29waWVkU3BhY2U6OkNvcGllZFNwYWNl
KEhlYXAqIGhlYXApCiBDb3BpZWRTcGFjZTo6fkNvcGllZFNwYWNlKCkKIHsKICAgICB3aGlsZSAo
IW1fb2xkR2VuLnRvU3BhY2UtPmlzRW1wdHkoKSkKLSAgICAgICAgbV9oZWFwLT5ibG9ja0FsbG9j
YXRvcigpLmRlYWxsb2NhdGUoQ29waWVkQmxvY2s6OmRlc3Ryb3kobV9vbGRHZW4udG9TcGFjZS0+
cmVtb3ZlSGVhZCgpKSk7CisgICAgICAgIENvcGllZEJsb2NrOjpkZXN0cm95KG1fb2xkR2VuLnRv
U3BhY2UtPnJlbW92ZUhlYWQoKSk7CiAKICAgICB3aGlsZSAoIW1fb2xkR2VuLmZyb21TcGFjZS0+
aXNFbXB0eSgpKQotICAgICAgICBtX2hlYXAtPmJsb2NrQWxsb2NhdG9yKCkuZGVhbGxvY2F0ZShD
b3BpZWRCbG9jazo6ZGVzdHJveShtX29sZEdlbi5mcm9tU3BhY2UtPnJlbW92ZUhlYWQoKSkpOwor
ICAgICAgICBDb3BpZWRCbG9jazo6ZGVzdHJveShtX29sZEdlbi5mcm9tU3BhY2UtPnJlbW92ZUhl
YWQoKSk7CiAKICAgICB3aGlsZSAoIW1fb2xkR2VuLm92ZXJzaXplQmxvY2tzLmlzRW1wdHkoKSkK
LSAgICAgICAgbV9oZWFwLT5ibG9ja0FsbG9jYXRvcigpLmRlYWxsb2NhdGVDdXN0b21TaXplKENv
cGllZEJsb2NrOjpkZXN0cm95KG1fb2xkR2VuLm92ZXJzaXplQmxvY2tzLnJlbW92ZUhlYWQoKSkp
OworICAgICAgICBDb3BpZWRCbG9jazo6ZGVzdHJveShtX29sZEdlbi5vdmVyc2l6ZUJsb2Nrcy5y
ZW1vdmVIZWFkKCkpOwogCiAgICAgd2hpbGUgKCFtX25ld0dlbi50b1NwYWNlLT5pc0VtcHR5KCkp
Ci0gICAgICAgIG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5kZWFsbG9jYXRlKENvcGllZEJsb2Nr
OjpkZXN0cm95KG1fbmV3R2VuLnRvU3BhY2UtPnJlbW92ZUhlYWQoKSkpOworICAgICAgICBDb3Bp
ZWRCbG9jazo6ZGVzdHJveShtX25ld0dlbi50b1NwYWNlLT5yZW1vdmVIZWFkKCkpOwogCiAgICAg
d2hpbGUgKCFtX25ld0dlbi5mcm9tU3BhY2UtPmlzRW1wdHkoKSkKLSAgICAgICAgbV9oZWFwLT5i
bG9ja0FsbG9jYXRvcigpLmRlYWxsb2NhdGUoQ29waWVkQmxvY2s6OmRlc3Ryb3kobV9uZXdHZW4u
ZnJvbVNwYWNlLT5yZW1vdmVIZWFkKCkpKTsKKyAgICAgICAgQ29waWVkQmxvY2s6OmRlc3Ryb3ko
bV9uZXdHZW4uZnJvbVNwYWNlLT5yZW1vdmVIZWFkKCkpOwogCiAgICAgd2hpbGUgKCFtX25ld0dl
bi5vdmVyc2l6ZUJsb2Nrcy5pc0VtcHR5KCkpCi0gICAgICAgIG1faGVhcC0+YmxvY2tBbGxvY2F0
b3IoKS5kZWFsbG9jYXRlQ3VzdG9tU2l6ZShDb3BpZWRCbG9jazo6ZGVzdHJveShtX25ld0dlbi5v
dmVyc2l6ZUJsb2Nrcy5yZW1vdmVIZWFkKCkpKTsKKyAgICAgICAgQ29waWVkQmxvY2s6OmRlc3Ry
b3kobV9uZXdHZW4ub3ZlcnNpemVCbG9ja3MucmVtb3ZlSGVhZCgpKTsKIAogICAgIEFTU0VSVCht
X29sZEdlbi50b1NwYWNlLT5pc0VtcHR5KCkpOwogICAgIEFTU0VSVChtX29sZEdlbi5mcm9tU3Bh
Y2UtPmlzRW1wdHkoKSk7CkBAIC05OSw3ICs5OSw3IEBAIENoZWNrZWRCb29sZWFuIENvcGllZFNw
YWNlOjp0cnlBbGxvY2F0ZU8KIHsKICAgICBBU1NFUlQoaXNPdmVyc2l6ZShieXRlcykpOwogICAg
IAotICAgIENvcGllZEJsb2NrKiBibG9jayA9IENvcGllZEJsb2NrOjpjcmVhdGUobV9oZWFwLT5i
bG9ja0FsbG9jYXRvcigpLmFsbG9jYXRlQ3VzdG9tU2l6ZShzaXplb2YoQ29waWVkQmxvY2spICsg
Ynl0ZXMsIENvcGllZEJsb2NrOjpibG9ja1NpemUpKTsKKyAgICBDb3BpZWRCbG9jayogYmxvY2sg
PSBDb3BpZWRCbG9jazo6Y3JlYXRlKHNpemVvZihDb3BpZWRCbG9jaykgKyBieXRlcyk7CiAgICAg
bV9uZXdHZW4ub3ZlcnNpemVCbG9ja3MucHVzaChibG9jayk7CiAgICAgbV9uZXdHZW4uYmxvY2tG
aWx0ZXIuYWRkKHJlaW50ZXJwcmV0X2Nhc3Q8Qml0cz4oYmxvY2spKTsKICAgICBtX2Jsb2NrU2V0
LmFkZChibG9jayk7CkBAIC0xMTAsNyArMTEwLDcgQEAgQ2hlY2tlZEJvb2xlYW4gQ29waWVkU3Bh
Y2U6OnRyeUFsbG9jYXRlTwogICAgICpvdXRQdHIgPSBhbGxvY2F0b3IuZm9yY2VBbGxvY2F0ZShi
eXRlcyk7CiAgICAgYWxsb2NhdG9yLnJlc2V0Q3VycmVudEJsb2NrKCk7CiAKLSAgICBtX2hlYXAt
PmRpZEFsbG9jYXRlKGJsb2NrLT5yZWdpb24oKS0+YmxvY2tTaXplKCkpOworICAgIG1faGVhcC0+
ZGlkQWxsb2NhdGUoYmxvY2stPmNhcGFjaXR5KCkpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBA
IC0xNjEsNyArMTYxLDcgQEAgQ2hlY2tlZEJvb2xlYW4gQ29waWVkU3BhY2U6OnRyeVJlYWxsb2Nh
dAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX25ld0dlbi5vdmVyc2l6ZUJsb2Nrcy5yZW1v
dmUob2xkQmxvY2spOwogICAgICAgICBtX2Jsb2NrU2V0LnJlbW92ZShvbGRCbG9jayk7Ci0gICAg
ICAgIG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5kZWFsbG9jYXRlQ3VzdG9tU2l6ZShDb3BpZWRC
bG9jazo6ZGVzdHJveShvbGRCbG9jaykpOworICAgICAgICBDb3BpZWRCbG9jazo6ZGVzdHJveShv
bGRCbG9jayk7CiAgICAgfQogICAgIAogICAgICpwdHIgPSBuZXdQdHI7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZUlubGluZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZUlubGluZXMuaAkocmV2aXNpb24g
MTgxMTI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2VJbmxpbmVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNiwxMiArMTA2LDEyIEBAIGlubGluZSB2b2lkIENvcGll
ZFNwYWNlOjpyZWN5Y2xlRXZhY3VhdGUKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9vbGRH
ZW4uZnJvbVNwYWNlLT5yZW1vdmUoYmxvY2spOwogICAgIH0KLSAgICBtX2hlYXAtPmJsb2NrQWxs
b2NhdG9yKCkuZGVhbGxvY2F0ZShDb3BpZWRCbG9jazo6ZGVzdHJveShibG9jaykpOworICAgIENv
cGllZEJsb2NrOjpkZXN0cm95KGJsb2NrKTsKIH0KIAogaW5saW5lIHZvaWQgQ29waWVkU3BhY2U6
OnJlY3ljbGVCb3Jyb3dlZEJsb2NrKENvcGllZEJsb2NrKiBibG9jaykKIHsKLSAgICBtX2hlYXAt
PmJsb2NrQWxsb2NhdG9yKCkuZGVhbGxvY2F0ZShDb3BpZWRCbG9jazo6ZGVzdHJveShibG9jaykp
OworICAgIENvcGllZEJsb2NrOjpkZXN0cm95KGJsb2NrKTsKIAogICAgIHsKICAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fbG9hbmVkQmxvY2tzTG9jayk7CkBAIC0xMjYsNyArMTI2LDcgQEAg
aW5saW5lIHZvaWQgQ29waWVkU3BhY2U6OnJlY3ljbGVCb3Jyb3dlZAogaW5saW5lIENvcGllZEJs
b2NrKiBDb3BpZWRTcGFjZTo6YWxsb2NhdGVCbG9ja0ZvckNvcHlpbmdQaGFzZSgpCiB7CiAgICAg
QVNTRVJUKG1faW5Db3B5aW5nUGhhc2UpOwotICAgIENvcGllZEJsb2NrKiBibG9jayA9IENvcGll
ZEJsb2NrOjpjcmVhdGVOb1plcm9GaWxsKG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5hbGxvY2F0
ZTxDb3BpZWRCbG9jaz4oKSk7CisgICAgQ29waWVkQmxvY2sqIGJsb2NrID0gQ29waWVkQmxvY2s6
OmNyZWF0ZU5vWmVyb0ZpbGwoKTsKIAogICAgIHsKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fbG9hbmVkQmxvY2tzTG9jayk7CkBAIC0xNDMsNyArMTQzLDcgQEAgaW5saW5lIHZvaWQgQ29w
aWVkU3BhY2U6OmFsbG9jYXRlQmxvY2soKQogCiAgICAgbV9hbGxvY2F0b3IucmVzZXRDdXJyZW50
QmxvY2soKTsKICAgICAKLSAgICBDb3BpZWRCbG9jayogYmxvY2sgPSBDb3BpZWRCbG9jazo6Y3Jl
YXRlKG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5hbGxvY2F0ZTxDb3BpZWRCbG9jaz4oKSk7Cisg
ICAgQ29waWVkQmxvY2sqIGJsb2NrID0gQ29waWVkQmxvY2s6OmNyZWF0ZSgpOwogICAgICAgICAK
ICAgICBtX25ld0dlbi50b1NwYWNlLT5wdXNoKGJsb2NrKTsKICAgICBtX25ld0dlbi5ibG9ja0Zp
bHRlci5hZGQocmVpbnRlcnByZXRfY2FzdDxCaXRzPihibG9jaykpOwpAQCAtMjM1LDcgKzIzNSw3
IEBAIGlubGluZSB2b2lkIENvcGllZFNwYWNlOjpzdGFydGVkQ29weWluZygKICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIG92ZXJzaXplQmxvY2tzLT5yZW1vdmUoYmxvY2spOwogICAgICAg
ICAgICAgbV9ibG9ja1NldC5yZW1vdmUoYmxvY2spOwotICAgICAgICAgICAgbV9oZWFwLT5ibG9j
a0FsbG9jYXRvcigpLmRlYWxsb2NhdGVDdXN0b21TaXplKENvcGllZEJsb2NrOjpkZXN0cm95KGJs
b2NrKSk7CisgICAgICAgICAgICBDb3BpZWRCbG9jazo6ZGVzdHJveShibG9jayk7CiAgICAgICAg
IH0gCiAgICAgICAgIGJsb2NrID0gbmV4dDsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9Db3B5V29ya0xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9Db3B5V29ya0xpc3QuaAkocmV2aXNpb24gMTgxMTI5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvQ29weVdvcmtMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYg
KzI3LDcgQEAKICNkZWZpbmUgQ29weVdvcmtMaXN0X2gKIAogI2luY2x1ZGUgIkNvcHlUb2tlbi5o
IgorI2luY2x1ZGUgPHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgSlNDIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248108</attachid>
            <date>2015-03-06 16:07:05 -0800</date>
            <delta_ts>2015-03-07 13:18:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140900-20150306160643.patch</filename>
            <type>text/plain</type>
            <size>6690</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgxMTkwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDE1LTAzLTA2ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIEZhc3RNYWxsb2MgKGJtYWxsb2MpIGluc3RlYWQgb2YgQmxvY2tBbGxvY2F0b3IgZm9y
IEdDIHBhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDA5MDAKKworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIEhhaG5lbmJlcmcuCisKKyAgICAg
ICAgUmUtbGFuZGluZyBqdXN0IHRoZSBNYXJrZWRCbG9jayBwaWVjZSBvZiB0aGlzIHBhdGNoLgor
CisgICAgICAgICogaGVhcC9NYXJrZWRBbGxvY2F0b3IuY3BwOgorICAgICAgICAoSlNDOjpNYXJr
ZWRBbGxvY2F0b3I6OmFsbG9jYXRlQmxvY2spOgorICAgICAgICAqIGhlYXAvTWFya2VkQmxvY2su
Y3BwOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6
TWFya2VkQmxvY2s6OmRlc3Ryb3kpOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6TWFya2Vk
QmxvY2spOgorICAgICAgICAqIGhlYXAvTWFya2VkQmxvY2suaDoKKyAgICAgICAgKEpTQzo6TWFy
a2VkQmxvY2s6OmNhcGFjaXR5KToKKyAgICAgICAgKiBoZWFwL01hcmtlZFNwYWNlLmNwcDoKKyAg
ICAgICAgKEpTQzo6TWFya2VkU3BhY2U6OmZyZWVCbG9jayk6CisKIDIwMTUtMDMtMDYgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBBZG9wdCBPYmplY3QgTGl0ZXJhbCBTaG9ydGhhbmQgUHJvcGVydHkgQ29uc3RydWN0aW9uIFN5
bnRheApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQWxsb2NhdG9yLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRBbGxvY2F0
b3IuY3BwCShyZXZpc2lvbiAxODExNzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9N
YXJrZWRBbGxvY2F0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsOSArMTgwLDcgQEAgTWFy
a2VkQmxvY2sqIE1hcmtlZEFsbG9jYXRvcjo6YWxsb2NhdGVCbAogCiAgICAgc2l6ZV90IGNlbGxT
aXplID0gbV9jZWxsU2l6ZSA/IG1fY2VsbFNpemUgOiBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8
TWFya2VkQmxvY2s6OmF0b21TaXplPihieXRlcyk7CiAKLSAgICBpZiAoYmxvY2tTaXplID09IE1h
cmtlZEJsb2NrOjpibG9ja1NpemUpCi0gICAgICAgIHJldHVybiBNYXJrZWRCbG9jazo6Y3JlYXRl
KG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5hbGxvY2F0ZTxNYXJrZWRCbG9jaz4oKSwgdGhpcywg
Y2VsbFNpemUsIG1fZGVzdHJ1Y3RvclR5cGUpOwotICAgIHJldHVybiBNYXJrZWRCbG9jazo6Y3Jl
YXRlKG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5hbGxvY2F0ZUN1c3RvbVNpemUoYmxvY2tTaXpl
LCBNYXJrZWRCbG9jazo6YmxvY2tTaXplKSwgdGhpcywgY2VsbFNpemUsIG1fZGVzdHJ1Y3RvclR5
cGUpOworICAgIHJldHVybiBNYXJrZWRCbG9jazo6Y3JlYXRlKHRoaXMsIGJsb2NrU2l6ZSwgY2Vs
bFNpemUsIG1fZGVzdHJ1Y3RvclR5cGUpOwogfQogCiB2b2lkIE1hcmtlZEFsbG9jYXRvcjo6YWRk
QmxvY2soTWFya2VkQmxvY2sqIGJsb2NrKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvTWFya2VkQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL01hcmtlZEJsb2NrLmNwcAkocmV2aXNpb24gMTgxMTc2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxNyArMzMs
MjIgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLU1hcmtlZEJsb2NrKiBNYXJrZWRCbG9jazo6Y3Jl
YXRlKERlYWRCbG9jayogYmxvY2ssIE1hcmtlZEFsbG9jYXRvciogYWxsb2NhdG9yLCBzaXplX3Qg
Y2VsbFNpemUsIERlc3RydWN0b3JUeXBlIGRlc3RydWN0b3JUeXBlKQorTWFya2VkQmxvY2sqIE1h
cmtlZEJsb2NrOjpjcmVhdGUoTWFya2VkQWxsb2NhdG9yKiBhbGxvY2F0b3IsIHNpemVfdCBjYXBh
Y2l0eSwgc2l6ZV90IGNlbGxTaXplLCBEZXN0cnVjdG9yVHlwZSBkZXN0cnVjdG9yVHlwZSkKIHsK
LSAgICBBU1NFUlQocmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KGJsb2NrKSA9PSAocmVpbnRlcnBy
ZXRfY2FzdDxzaXplX3Q+KGJsb2NrKSAmIGJsb2NrTWFzaykpOwotICAgIFJlZ2lvbiogcmVnaW9u
ID0gYmxvY2stPnJlZ2lvbigpOwotICAgIHJldHVybiBuZXcgKE5vdE51bGwsIGJsb2NrKSBNYXJr
ZWRCbG9jayhyZWdpb24sIGFsbG9jYXRvciwgY2VsbFNpemUsIGRlc3RydWN0b3JUeXBlKTsKKyAg
ICByZXR1cm4gbmV3IChOb3ROdWxsLCBmYXN0QWxpZ25lZE1hbGxvYyhibG9ja1NpemUsIGNhcGFj
aXR5KSkgTWFya2VkQmxvY2soYWxsb2NhdG9yLCBjYXBhY2l0eSwgY2VsbFNpemUsIGRlc3RydWN0
b3JUeXBlKTsKIH0KIAotTWFya2VkQmxvY2s6Ok1hcmtlZEJsb2NrKFJlZ2lvbiogcmVnaW9uLCBN
YXJrZWRBbGxvY2F0b3IqIGFsbG9jYXRvciwgc2l6ZV90IGNlbGxTaXplLCBEZXN0cnVjdG9yVHlw
ZSBkZXN0cnVjdG9yVHlwZSkKLSAgICA6IEhlYXBCbG9jazxNYXJrZWRCbG9jaz4ocmVnaW9uKQor
dm9pZCBNYXJrZWRCbG9jazo6ZGVzdHJveShNYXJrZWRCbG9jayogYmxvY2spCit7CisgICAgYmxv
Y2stPn5NYXJrZWRCbG9jaygpOworICAgIGZhc3RBbGlnbmVkRnJlZShibG9jayk7Cit9CisKK01h
cmtlZEJsb2NrOjpNYXJrZWRCbG9jayhNYXJrZWRBbGxvY2F0b3IqIGFsbG9jYXRvciwgc2l6ZV90
IGNhcGFjaXR5LCBzaXplX3QgY2VsbFNpemUsIERlc3RydWN0b3JUeXBlIGRlc3RydWN0b3JUeXBl
KQorICAgIDogRG91Ymx5TGlua2VkTGlzdE5vZGU8TWFya2VkQmxvY2s+KCkKICAgICAsIG1fYXRv
bXNQZXJDZWxsKChjZWxsU2l6ZSArIGF0b21TaXplIC0gMSkgLyBhdG9tU2l6ZSkKLSAgICAsIG1f
ZW5kQXRvbSgoYWxsb2NhdG9yLT5jZWxsU2l6ZSgpID8gYXRvbXNQZXJCbG9jayA6IHJlZ2lvbi0+
YmxvY2tTaXplKCkgLyBhdG9tU2l6ZSkgLSBtX2F0b21zUGVyQ2VsbCArIDEpCisgICAgLCBtX2Vu
ZEF0b20oKGFsbG9jYXRvci0+Y2VsbFNpemUoKSA/IGF0b21zUGVyQmxvY2sgOiBjYXBhY2l0eSAv
IGF0b21TaXplKSAtIG1fYXRvbXNQZXJDZWxsICsgMSkKKyAgICAsIG1fY2FwYWNpdHkoY2FwYWNp
dHkpCiAgICAgLCBtX2Rlc3RydWN0b3JUeXBlKGRlc3RydWN0b3JUeXBlKQogICAgICwgbV9hbGxv
Y2F0b3IoYWxsb2NhdG9yKQogICAgICwgbV9zdGF0ZShOZXcpIC8vIEFsbCBjZWxscyBzdGFydCBv
dXQgdW5tYXJrZWQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9j
ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2Nr
LmgJKHJldmlzaW9uIDE4MTE3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtl
ZEJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDcgKzY5LDggQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgLy8gc2l6ZSBpcyBlcXVhbCB0byB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBjZWxs
IHNpemUgYW5kIHRoZSBvYmplY3QKICAgICAvLyBzaXplLgogCi0gICAgY2xhc3MgTWFya2VkQmxv
Y2sgOiBwdWJsaWMgSGVhcEJsb2NrPE1hcmtlZEJsb2NrPiB7CisgICAgY2xhc3MgTWFya2VkQmxv
Y2sgOiBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8TWFya2VkQmxvY2s+IHsKKyAgICAgICAg
ZnJpZW5kIGNsYXNzIFdURjo6RG91Ymx5TGlua2VkTGlzdE5vZGU8TWFya2VkQmxvY2s+OwogICAg
ICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogICAgICAgICBmcmllbmQg
c3RydWN0IFZlcmlmeU1hcmtlZE9yUmV0aXJlZDsKICAgICBwdWJsaWM6CkBAIC0xMTMsNyArMTE0
LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH07CiAKICAgICAgICAgZW51bSBEZXN0cnVj
dG9yVHlwZSB7IE5vbmUsIEltbW9ydGFsU3RydWN0dXJlLCBOb3JtYWwgfTsKLSAgICAgICAgc3Rh
dGljIE1hcmtlZEJsb2NrKiBjcmVhdGUoRGVhZEJsb2NrKiwgTWFya2VkQWxsb2NhdG9yKiwgc2l6
ZV90IGNlbGxTaXplLCBEZXN0cnVjdG9yVHlwZSk7CisgICAgICAgIHN0YXRpYyBNYXJrZWRCbG9j
ayogY3JlYXRlKE1hcmtlZEFsbG9jYXRvciosIHNpemVfdCBjYXBhY2l0eSwgc2l6ZV90IGNlbGxT
aXplLCBEZXN0cnVjdG9yVHlwZSk7CisgICAgICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koTWFya2Vk
QmxvY2sqKTsKIAogICAgICAgICBzdGF0aWMgYm9vbCBpc0F0b21BbGlnbmVkKGNvbnN0IHZvaWQq
KTsKICAgICAgICAgc3RhdGljIE1hcmtlZEJsb2NrKiBibG9ja0Zvcihjb25zdCB2b2lkKik7CkBA
IC0xOTQsMTIgKzE5NiwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB0eXBlZGVmIGNo
YXIgQXRvbVthdG9tU2l6ZV07CiAKLSAgICAgICAgTWFya2VkQmxvY2soUmVnaW9uKiwgTWFya2Vk
QWxsb2NhdG9yKiwgc2l6ZV90IGNlbGxTaXplLCBEZXN0cnVjdG9yVHlwZSk7CisgICAgICAgIE1h
cmtlZEJsb2NrKE1hcmtlZEFsbG9jYXRvciosIHNpemVfdCBjYXBhY2l0eSwgc2l6ZV90IGNlbGxT
aXplLCBEZXN0cnVjdG9yVHlwZSk7CiAgICAgICAgIEF0b20qIGF0b21zKCk7CiAgICAgICAgIHNp
emVfdCBhdG9tTnVtYmVyKGNvbnN0IHZvaWQqKTsKICAgICAgICAgdGVtcGxhdGU8RGVzdHJ1Y3Rv
clR5cGU+IHZvaWQgY2FsbERlc3RydWN0b3IoSlNDZWxsKik7CiAgICAgICAgIHRlbXBsYXRlPEJs
b2NrU3RhdGUsIFN3ZWVwTW9kZSwgRGVzdHJ1Y3RvclR5cGU+IEZyZWVMaXN0IHNwZWNpYWxpemVk
U3dlZXAoKTsKICAgICAgICAgCisgICAgICAgIE1hcmtlZEJsb2NrKiBtX3ByZXY7CisgICAgICAg
IE1hcmtlZEJsb2NrKiBtX25leHQ7CisKICAgICAgICAgc2l6ZV90IG1fYXRvbXNQZXJDZWxsOwog
ICAgICAgICBzaXplX3QgbV9lbmRBdG9tOyAvLyBUaGlzIGlzIGEgZnV6enkgZW5kLiBBbHdheXMg
dGVzdCBmb3IgPCBtX2VuZEF0b20uCiAjaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQpAQCAtMjExLDYg
KzIxNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogI2VuZGlmCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxXVEY6OkJpdG1hcDxhdG9tc1BlckJsb2NrPj4gbV9uZXdseUFsbG9jYXRlZDsKIAorICAgICAg
ICBzaXplX3QgbV9jYXBhY2l0eTsKICAgICAgICAgRGVzdHJ1Y3RvclR5cGUgbV9kZXN0cnVjdG9y
VHlwZTsKICAgICAgICAgTWFya2VkQWxsb2NhdG9yKiBtX2FsbG9jYXRvcjsKICAgICAgICAgQmxv
Y2tTdGF0ZSBtX3N0YXRlOwpAQCAtMzMzLDcgKzMzOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAg
ICAgaW5saW5lIHNpemVfdCBNYXJrZWRCbG9jazo6Y2FwYWNpdHkoKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIHJlZ2lvbigpLT5ibG9ja1NpemUoKTsKKyAgICAgICAgcmV0dXJuIG1fY2FwYWNpdHk7
CiAgICAgfQogCiAgICAgaW5saW5lIHNpemVfdCBNYXJrZWRCbG9jazo6YXRvbU51bWJlcihjb25z
dCB2b2lkKiBwKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNl
LmNwcAkocmV2aXNpb24gMTgxMTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFy
a2VkU3BhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDgsMTEgKzI0OCw3IEBAIHZvaWQgTWFy
a2VkU3BhY2U6OmZyZWVCbG9jayhNYXJrZWRCbG9jayoKICAgICBibG9jay0+YWxsb2NhdG9yKCkt
PnJlbW92ZUJsb2NrKGJsb2NrKTsKICAgICBtX2NhcGFjaXR5IC09IGJsb2NrLT5jYXBhY2l0eSgp
OwogICAgIG1fYmxvY2tzLnJlbW92ZShibG9jayk7Ci0gICAgaWYgKGJsb2NrLT5jYXBhY2l0eSgp
ID09IE1hcmtlZEJsb2NrOjpibG9ja1NpemUpIHsKLSAgICAgICAgbV9oZWFwLT5ibG9ja0FsbG9j
YXRvcigpLmRlYWxsb2NhdGUoTWFya2VkQmxvY2s6OmRlc3Ryb3koYmxvY2spKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLSAgICBtX2hlYXAtPmJsb2NrQWxsb2NhdG9yKCkuZGVhbGxvY2F0ZUN1
c3RvbVNpemUoTWFya2VkQmxvY2s6OmRlc3Ryb3koYmxvY2spKTsKKyAgICBNYXJrZWRCbG9jazo6
ZGVzdHJveShibG9jayk7CiB9CiAKIHZvaWQgTWFya2VkU3BhY2U6OmZyZWVPclNocmlua0Jsb2Nr
KE1hcmtlZEJsb2NrKiBibG9jaykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248166</attachid>
            <date>2015-03-07 13:19:37 -0800</date>
            <delta_ts>2015-03-07 13:33:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140900-20150307131900.patch</filename>
            <type>text/plain</type>
            <size>60503</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgxMjExKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBA
CisyMDE1LTAzLTA3ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIEZhc3RNYWxsb2MgKGJtYWxsb2MpIGluc3RlYWQgb2YgQmxvY2tBbGxvY2F0b3IgZm9y
IEdDIHBhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDA5MDAKKworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIEhhaG5lbmJlcmcuCisKKyAgICAg
ICAgUmUtbGFuZGluZyBqdXN0IHRoZSByZW1vdmFsIG9mIEJsb2NrQWxsb2NhdG9yLCB3aGljaCBp
cyBub3cgdW51c2VkLgorCisgICAgICAgICogQVBJL0pTQmFzZS5jcHA6CisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUub3JkZXI6CisgICAgICAgICog
SmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qOgorICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzOgor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogaGVhcC9CbG9ja0FsbG9jYXRvci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaGVhcC9C
bG9ja0FsbG9jYXRvci5oOiBSZW1vdmVkLgorICAgICAgICAqIGhlYXAvR0NUaHJlYWRTaGFyZWRE
YXRhLmg6CisgICAgICAgICogaGVhcC9IYW5kbGVCbG9ja0lubGluZXMuaDoKKyAgICAgICAgKiBo
ZWFwL0hlYXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjpIZWFwKToKKyAgICAgICAgKiBoZWFw
L0hlYXAuaDoKKyAgICAgICAgKiBoZWFwL0hlYXBJbmxpbmVzLmg6CisgICAgICAgIChKU0M6Okhl
YXA6OmJsb2NrQWxsb2NhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBoZWFwL0hlYXBUaW1lci5j
cHA6CisgICAgICAgICogaGVhcC9NYXJrZWRCbG9jay5oOgorICAgICAgICAqIGhlYXAvTWFya2Vk
U3BhY2UuaDoKKyAgICAgICAgKiBoZWFwL1JlZ2lvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIGhl
YXAvU3VwZXJSZWdpb24uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGhlYXAvU3VwZXJSZWdpb24u
aDogUmVtb3ZlZC4KKwogMjAxNS0wMy0wNiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFVzZSBGYXN0TWFsbG9jIChibWFsbG9jKSBpbnN0ZWFkIG9mIEJsb2Nr
QWxsb2NhdG9yIGZvciBHQyBwYWdlcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtl
TGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAkocmV2aXNpb24gMTgxMjA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yNDcsNyArMjQ3LDYgQEAgc2V0KEphdmFTY3JpcHRD
b3JlX1NPVVJDRVMKICAgICBkaXNhc3NlbWJsZXIvTExWTURpc2Fzc2VtYmxlci5jcHAKICAgICBk
aXNhc3NlbWJsZXIvWDg2RGlzYXNzZW1ibGVyLmNwcAogCi0gICAgaGVhcC9CbG9ja0FsbG9jYXRv
ci5jcHAKICAgICBoZWFwL0NvZGVCbG9ja1NldC5jcHAKICAgICBoZWFwL0NvbnNlcnZhdGl2ZVJv
b3RzLmNwcAogICAgIGhlYXAvQ29waWVkU3BhY2UuY3BwCkBAIC0yNzMsNyArMjcyLDYgQEAgc2V0
KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBoZWFwL01hcmtlZEJsb2NrLmNwcAogICAgIGhl
YXAvTWFya2VkU3BhY2UuY3BwCiAgICAgaGVhcC9TbG90VmlzaXRvci5jcHAKLSAgICBoZWFwL1N1
cGVyUmVnaW9uLmNwcAogICAgIGhlYXAvV2Vhay5jcHAKICAgICBoZWFwL1dlYWtCbG9jay5jcHAK
ICAgICBoZWFwL1dlYWtIYW5kbGVPd25lci5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUub3JkZXIJKHJldmlzaW9uIDE4MTIwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgkod29ya2luZyBjb3B5KQpAQCAtMTczLDIw
ICsxNzMsMTQgQEAgX19aTjNKU0MxOUV4ZWN1dGFibGVBbGxvY2F0b3JDMUVSTlNfMlZNRQogX19a
TjNKU0M0SGVhcEMxRVBOU18yVk1FTlNfOEhlYXBUeXBlRQogX19aTjNKU0M0SGVhcEMyRVBOU18y
Vk1FTlNfOEhlYXBUeXBlRQogX19aTjNXVEY3cmFtU2l6ZUV2Ci1fX1pOM0pTQzE0QmxvY2tBbGxv
Y2F0b3JDMUV2CiBfX1pOM0pTQzExU3VwZXJSZWdpb25DMUV2CiBfX1pOM0pTQzExTWFya2VkU3Bh
Y2VDMUVQTlNfNEhlYXBFCiBfX1pOM0pTQzExTWFya2VkU3BhY2VDMkVQTlNfNEhlYXBFCiBfX1pO
M0pTQzExQ29waWVkU3BhY2VDMUVQTlNfNEhlYXBFCiBfX1pOM0pTQzE0TWFjaGluZVRocmVhZHND
MUVQTlNfNEhlYXBFCiBfX1pOM0pTQzE4R0NUaHJlYWRTaGFyZWREYXRhQzFFUE5TXzJWTUUKLV9f
Wk4zSlNDMTRCbG9ja0FsbG9jYXRvcjI3YmxvY2tGcmVlaW5nVGhyZWFkU3RhcnRGdW5jRVB2CiBf
X1pOM0pTQzE4R0NUaHJlYWRTaGFyZWREYXRhQzJFUE5TXzJWTUUKLV9fWk4zSlNDMTRNYXJrU3Rh
Y2tBcnJheUMxRVJOU18xNEJsb2NrQWxsb2NhdG9yRQotX19aTjNKU0MxNEJsb2NrQWxsb2NhdG9y
MjJibG9ja0ZyZWVpbmdUaHJlYWRNYWluRXYKLV9fWk4zSlNDMTRCbG9ja0FsbG9jYXRvcjhhbGxv
Y2F0ZUlOU18xNk1hcmtTdGFja1NlZ21lbnRFRUVQTlNfOURlYWRCbG9ja0V2CiBfX1pOM1dURjE1
VGhyZWFkQ29uZGl0aW9uOXRpbWVkV2FpdEVSTlNfNU11dGV4RWQKLV9fWk4zSlNDMTRCbG9ja0Fs
bG9jYXRvcjIxdHJ5QWxsb2NhdGVGcm9tUmVnaW9uRVJOUzBfOVJlZ2lvblNldEVSTjNXVEYxNkRv
dWJseUxpbmtlZExpc3RJTlNfNlJlZ2lvbkVFRVJtCiBfX1pOM1dURjIxUGFnZUFsbG9jYXRpb25B
bGlnbmVkOGFsbG9jYXRlRW1tTlNfMTFPU0FsbG9jYXRvcjVVc2FnZUViCiBfX1pOM0pTQzExU2xv
dFZpc2l0b3JDMUVSTlNfMThHQ1RocmVhZFNoYXJlZERhdGFFCiBfX1pOM0pTQzExQ29weVZpc2l0
b3JDMUVSTlNfMThHQ1RocmVhZFNoYXJlZERhdGFFCkBAIC0xOTgsNyArMTkyLDYgQEAgX19aTjNK
U0M4R0NUaHJlYWQxMmdjVGhyZWFkTWFpbkV2CiBfX1pOM1dURjE2cmVnaXN0ZXJHQ1RocmVhZEV2
CiBfX1pOM0pTQzhHQ1RocmVhZDE2d2FpdEZvck5leHRQaGFzZUV2CiBfX1pOM0pTQzlIYW5kbGVT
ZXRDMUVQTlNfMlZNRQotX19aTjNKU0MxNEJsb2NrQWxsb2NhdG9yOGFsbG9jYXRlSU5TXzExSGFu
ZGxlQmxvY2tFRUVQTlNfOURlYWRCbG9ja0V2CiBfX1pOM0pTQzExSGFuZGxlU3RhY2tDMUV2CiBf
X1pOM1dURjEwQmxvY2tTdGFja0lOM0pTQzdKU1ZhbHVlRUU0Z3Jvd0V2CiBfX1pOM1dURjZWZWN0
b3JJUE4zSlNDN0pTVmFsdWVFTG0wRU5TXzE1Q3Jhc2hPbk92ZXJmbG93RUUxNGV4cGFuZENhcGFj
aXR5RW0KQEAgLTIxMCw3ICsyMDMsNiBAQCBfX1pOM0pTQ0wxM3JldGFpbkFQSUxvY2tFUEt2CiBf
X1pOM0pTQzE4SW5jcmVtZW50YWxTd2VlcGVyNmNyZWF0ZUVQTlNfNEhlYXBFCiBfX1pOM0pTQzEx
Q29waWVkU3BhY2U0aW5pdEV2CiBfX1pOM0pTQzExQ29waWVkU3BhY2UxM2FsbG9jYXRlQmxvY2tF
dgotX19aTjNKU0MxNEJsb2NrQWxsb2NhdG9yOGFsbG9jYXRlSU5TXzExQ29waWVkQmxvY2tFRUVQ
TlNfOURlYWRCbG9ja0V2CiBfX1pOM1dURjlIYXNoVGFibGVJUE4zSlNDMTFDb3BpZWRCbG9ja0VT
M19OU18xN0lkZW50aXR5RXh0cmFjdG9yRU5TXzdQdHJIYXNoSVMzX0VFTlNfMTBIYXNoVHJhaXRz
SVMzX0VFUzhfRTNhZGRJTlNfMjJJZGVudGl0eUhhc2hUcmFuc2xhdG9ySVM2X0VFUzNfUzNfRUVO
U18xOEhhc2hUYWJsZUFkZFJlc3VsdElOU18xN0hhc2hUYWJsZUl0ZXJhdG9ySVMzX1MzX1M0X1M2
X1M4X1M4X0VFRUVSS1QwX1JLVDFfCiBfX1pOM0pTQzhXYXRjaGRvZ0MxRXYKIF9fWk4zSlNDOFdh
dGNoZG9nOWluaXRUaW1lckV2CkBAIC0yMzMsNyArMjI1LDYgQEAgX19aTjNKU0MxNU1hcmtlZEFs
bG9jYXRvcjE2YWxsb2NhdGVTbG93QwogX19aTjNKU0M0SGVhcDExZGlkQWxsb2NhdGVFbQogX19a
TjNKU0MyNURlZmF1bHRHQ0FjdGl2aXR5Q2FsbGJhY2sxMWRpZEFsbG9jYXRlRW0KIF9fWk4zSlND
MTVNYXJrZWRBbGxvY2F0b3IxM2FsbG9jYXRlQmxvY2tFbQotX19aTjNKU0MxNEJsb2NrQWxsb2Nh
dG9yOGFsbG9jYXRlSU5TXzExTWFya2VkQmxvY2tFRUVQTlNfOURlYWRCbG9ja0V2CiBfX1pOM0pT
QzExTWFya2VkQmxvY2s2Y3JlYXRlRVBOU185RGVhZEJsb2NrRVBOU18xNU1hcmtlZEFsbG9jYXRv
ckVtTlMwXzE0RGVzdHJ1Y3RvclR5cGVFCiBfX1pOM0pTQzExTWFya2VkQmxvY2s1c3dlZXBFTlMw
XzlTd2VlcE1vZGVFCiBfX1pOM0pTQzdXZWFrU2V0NXN3ZWVwRXYKQEAgLTI4NSw3ICsyNzYsNiBA
QCBfX1pOM0pTQzlTdHJ1Y3R1cmUxNnB1dFNwZWNpZmljVmFsdWVFUk5TCiBfX1pOM0pTQzEzUHJv
cGVydHlUYWJsZTNhZGRFUktOU18xNlByb3BlcnR5TWFwRW50cnlFUmlOUzBfMjJFZmZlY3RPblBy
b3BlcnR5T2Zmc2V0RQogX19aTjNKU0MyNFN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZTNhZGRFUk5T
XzJWTUVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlNDN1dlYWtTZXQxM2ZpbmRBbGxvY2F0b3JFdgot
X19aTjNKU0MxNEJsb2NrQWxsb2NhdG9yOGFsbG9jYXRlSU5TXzlXZWFrQmxvY2tFRUVQTlNfOURl
YWRCbG9ja0V2CiBfX1pOM0pTQzlXZWFrQmxvY2s2Y3JlYXRlRVBOU185RGVhZEJsb2NrRQogX19a
TjNKU0M4SlNPYmplY3Q0M3NldFN0cnVjdHVyZUFuZFJlYWxsb2NhdGVTdG9yYWdlSWZOZWNlc3Nh
cnlFUk5TXzJWTUVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlNDOEpTT2JqZWN0MjBncm93T3V0T2ZM
aW5lU3RvcmFnZUVSTlNfMlZNRW1tCkBAIC01NTMsNyArNTQzLDYgQEAgX19aTjNKU0MyNUpTU2Vn
bWVudGVkVmFyaWFibGVPYmplY3QxM3ZpcwogX19aTjNKU0MxOUpTU3ltYm9sVGFibGVPYmplY3Qx
M3Zpc2l0Q2hpbGRyZW5FUE5TXzZKU0NlbGxFUk5TXzExU2xvdFZpc2l0b3JFCiBfX1pOM0pTQzdK
U1Njb3BlMTN2aXNpdENoaWxkcmVuRVBOU182SlNDZWxsRVJOU18xMVNsb3RWaXNpdG9yRQogX19a
TjNKU0MxMUNvcGllZEJsb2NrMTVyZXBvcnRMaXZlQnl0ZXNFUE5TXzZKU0NlbGxFagotX19aTjNK
U0MxNEJsb2NrQWxsb2NhdG9yOGFsbG9jYXRlSU5TXzE5Q29weVdvcmtMaXN0U2VnbWVudEVFRVBO
U185RGVhZEJsb2NrRXYKIF9fWk4zSlNDMTNQcm9wZXJ0eVRhYmxlMTN2aXNpdENoaWxkcmVuRVBO
U182SlNDZWxsRVJOU18xMVNsb3RWaXNpdG9yRQogX19aTjNKU0MxMlJlZ0V4cE9iamVjdDEzdmlz
aXRDaGlsZHJlbkVQTlNfNkpTQ2VsbEVSTlNfMTFTbG90VmlzaXRvckUKIF9fWk4zSlNDNkpTQ2Vs
bDEzdmlzaXRDaGlsZHJlbkVQUzBfUk5TXzExU2xvdFZpc2l0b3JFCkBAIC01OTAsNyArNTc5LDYg
QEAgX19aTjNKU0M0SGVhcDE3Y29weUJhY2tpbmdTdG9yZXNFdgogX19aTjNKU0MxMUNvcGllZFNw
YWNlMTRzdGFydGVkQ29weWluZ0V2CiBfX1pOM0pTQzExTWFya2VkU3BhY2UxMmZvckVhY2hCbG9j
a0lOU184Q2FwYWNpdHlFRUVOVF8xMFJldHVyblR5cGVFUlMzXwogX19aTjNKU0MxMUNvcGllZFNw
YWNlMTFkb25lQ29weWluZ0V2Ci1fX1pOM0pTQzE0QmxvY2tBbGxvY2F0b3IxMGRlYWxsb2NhdGVJ
TlNfOUhlYXBCbG9ja0lOU18xOUNvcHlXb3JrTGlzdFNlZ21lbnRFRUVFRXZQVF8KIF9fWk4zSlND
MTFTbG90VmlzaXRvcjMxZmluYWxpemVVbmNvbmRpdGlvbmFsRmluYWxpemVyc0V2CiBfX1pOM0pT
QzEyU21hbGxTdHJpbmdzMjBmaW5hbGl6ZVNtYWxsU3RyaW5nc0V2CiBfX1pOM0pTQzRIZWFwMjZk
ZWxldGVVbm1hcmtlZENvbXBpbGVkQ29kZUV2CkBAIC0xMDQ4LDcgKzEwMzYsNiBAQCBfX1pOM1dU
RjI1VENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdDE4UmVsCiBfX1pOM0pTQzExQ29waWVkU3BhY2Uy
MXJlY3ljbGVFdmFjdWF0ZWRCbG9ja0VQTlNfMTFDb3BpZWRCbG9ja0UKIF9fWk4zV1RGN0hhc2hT
ZXRJUE4zSlNDMTFDb3BpZWRCbG9ja0VOU183UHRySGFzaElTM19FRU5TXzEwSGFzaFRyYWl0c0lT
M19FRUU2cmVtb3ZlRVJLUzNfCiBfX1pOM1dURjdIYXNoU2V0SVBOM0pTQzExQ29waWVkQmxvY2tF
TlNfN1B0ckhhc2hJUzNfRUVOU18xMEhhc2hUcmFpdHNJUzNfRUVFNnJlbW92ZUVOU18yOUhhc2hU
YWJsZUNvbnN0SXRlcmF0b3JBZGFwdGVySU5TXzlIYXNoVGFibGVJUzNfUzNfTlNfMTdJZGVudGl0
eUV4dHJhY3RvckVTNV9TN19TN19FRVMzX0VFCi1fX1pOM0pTQzE0QmxvY2tBbGxvY2F0b3IxMGRl
YWxsb2NhdGVJTlNfOUhlYXBCbG9ja0lOU18xMUNvcGllZEJsb2NrRUVFRUV2UFRfCiBfX1pOM1dU
RjEzU3RyaW5nQnVpbGRlcjZhcHBlbmRFUEt0agogX19aTjNKU0MyNFVubGlua2VkUHJvZ3JhbUNv
ZGVCbG9jazEzdmlzaXRDaGlsZHJlbkVQTlNfNkpTQ2VsbEVSTlNfMTFTbG90VmlzaXRvckUKIF9f
Wk4zSlNDMTdVbmxpbmtlZENvZGVCbG9jazEzdmlzaXRDaGlsZHJlbkVQTlNfNkpTQ2VsbEVSTlNf
MTFTbG90VmlzaXRvckUKQEAgLTI2MjMsNyArMjYxMCw2IEBAIF9fWk4zSlNDOUNvZGVCbG9jazMx
cGVyZm9ybVRyYWNpbmdGaXhwb2kKIF9fWk4zSlNDMTZKU0NhbGxiYWNrT2JqZWN0SU5TXzIwSlNE
ZXN0cnVjdGlibGVPYmplY3RFRTEzdmlzaXRDaGlsZHJlbkVQTlNfNkpTQ2VsbEVSTlNfMTFTbG90
VmlzaXRvckUKIF9fWk4zSlNDMThSZWdFeHBNYXRjaGVzQXJyYXkxM3Zpc2l0Q2hpbGRyZW5FUE5T
XzZKU0NlbGxFUk5TXzExU2xvdFZpc2l0b3JFCiBfX1pOM1dURjlIYXNoVGFibGVJUHZTMV9OU18x
N0lkZW50aXR5RXh0cmFjdG9yRU5TXzdQdHJIYXNoSVMxX0VFTlNfMTBIYXNoVHJhaXRzSVMxX0VF
UzZfRTE2bG9va3VwRm9yV3JpdGluZ0lOU18yMklkZW50aXR5SGFzaFRyYW5zbGF0b3JJUzRfRUVT
MV9FRU5TdDNfXzE0cGFpcklQUzFfYkVFUktUMF8KLV9fWk4zSlNDMTRCbG9ja0FsbG9jYXRvcjEw
ZGVhbGxvY2F0ZUlOU185SGVhcEJsb2NrSU5TXzE2TWFya1N0YWNrU2VnbWVudEVFRUVFdlBUXwog
X19aVGhuMTZfTjNKU0M5Q29kZUJsb2NrMTl2aXNpdFdlYWtSZWZlcmVuY2VzRVJOU18xMVNsb3RW
aXNpdG9yRQogX19aTjNKU0M5Q29kZUJsb2NrMjNmaW5hbGl6ZVVuY29uZGl0aW9uYWxseUV2CiBf
X1pOM0pTQzE3U3RydWN0dXJlU3R1YkluZm8xOXZpc2l0V2Vha1JlZmVyZW5jZXNFdgpAQCAtMjg4
MywxMyArMjg2OSwxMSBAQCBfX1pOM0pTQzExTWFya2VkU3BhY2U5ZnJlZUJsb2NrRVBOU18xMU1h
CiBfX1pOM0pTQzE1TWFya2VkQWxsb2NhdG9yMTFyZW1vdmVCbG9ja0VQTlNfMTFNYXJrZWRCbG9j
a0UKIF9fWk4zV1RGN0hhc2hTZXRJUE4zSlNDMTFNYXJrZWRCbG9ja0VOU18xNU1hcmtlZEJsb2Nr
SGFzaEVOU18xMEhhc2hUcmFpdHNJUzNfRUVFNnJlbW92ZUVSS1MzXwogX19aTjNKU0M3V2Vha1Nl
dEQxRXYKLV9fWk4zSlNDMTRCbG9ja0FsbG9jYXRvcjEwZGVhbGxvY2F0ZUlOU185SGVhcEJsb2Nr
SU5TXzExTWFya2VkQmxvY2tFRUVFRXZQVF8KIF9fWk4zSlNDMTZOYXRpdmVFeGVjdXRhYmxlN2Rl
c3Ryb3lFUE5TXzZKU0NlbGxFCiBfX1pOM0pTQzExUmVnRXhwQ2FjaGU4ZmluYWxpemVFTlNfNkhh
bmRsZUlOU183VW5rbm93bkVFRVB2CiBfX1pOM0pTQzZSZWdFeHAxNGludmFsaWRhdGVDb2RlRXYK
IF9fWk4zSlNDNlJlZ0V4cDdkZXN0cm95RVBOU182SlNDZWxsRQogX19aTjNKU0M0WWFycjEzWWFy
ckNvZGVCbG9ja0QyRXYKLV9fWk4zSlNDMTRCbG9ja0FsbG9jYXRvcjEwZGVhbGxvY2F0ZUlOU185
SGVhcEJsb2NrSU5TXzlXZWFrQmxvY2tFRUVFRXZQVF8KIF9fWk4zSlNDMTdSZWdFeHBDb25zdHJ1
Y3RvcjdkZXN0cm95RVBOU182SlNDZWxsRQogX19aTjNKU0M0SGVhcDE0RmluYWxpemVyT3duZXI4
ZmluYWxpemVFTlNfNkhhbmRsZUlOU183VW5rbm93bkVFRVB2CiBfX1pOM0pTQzE0SlNHbG9iYWxP
YmplY3Q3ZGVzdHJveUVQTlNfNkpTQ2VsbEUKQEAgLTQ1MzMsNyArNDUxNyw2IEBAIF9fWk4zSlND
MTdKSVRTdHViUm91dGluZVNldEQyRXYKIF9fWk4zSlNDMTNERkdDb2RlQmxvY2tzRDFFdgogX19a
TjNKU0MxM0RGR0NvZGVCbG9ja3NEMkV2CiBfX1pOM0pTQzlIYW5kbGVTZXREMUV2Ci1fX1pOM0pT
QzE0QmxvY2tBbGxvY2F0b3IxMGRlYWxsb2NhdGVJTlNfOUhlYXBCbG9ja0lOU18xMUhhbmRsZUJs
b2NrRUVFRUV2UFRfCiBfX1pOM0pTQzExU2xvdFZpc2l0b3JEMUV2CiBfX1pOM0pTQzE0TWFya1N0
YWNrQXJyYXlEMUV2CiBfX1pOM0pTQzE4R0NUaHJlYWRTaGFyZWREYXRhRDFFdgpAQCAtNDU0NSw4
ICs0NTI4LDYgQEAgX19aTjNKU0MxMUNvcGllZFNwYWNlRDFFdgogX19aTjNKU0MxMUNvcGllZFNw
YWNlRDJFdgogX19aTjNKU0MxMU1hcmtlZFNwYWNlRDFFdgogX19aTjNKU0MxMU1hcmtlZFNwYWNl
MTJmb3JFYWNoQmxvY2tJTlNfNEZyZWVFRUVOVF8xMFJldHVyblR5cGVFUlMzXwotX19aTjNKU0Mx
NEJsb2NrQWxsb2NhdG9yRDFFdgotX19aTjNKU0MxNEJsb2NrQWxsb2NhdG9yMThyZWxlYXNlRnJl
ZVJlZ2lvbnNFdgogX19aTjNKU0MxMVN1cGVyUmVnaW9uRDFFdgogX19aTjNXVEYxM01ldGFBbGxv
Y2F0b3JEMkV2CiBfX1pOM0pTQzE5RXhlY3V0YWJsZUFsbG9jYXRvckQxRXYKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQmFzZS5jcHAJKHJldmlzaW9uIDE4MTIwOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgIkFQSUNhc3QuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNs
dWRlICJDb21wbGV0aW9uLmgiCisjaW5jbHVkZSAiR0NBY3Rpdml0eUNhbGxiYWNrLmgiCiAjaW5j
bHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiSlNMb2NrLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2oJKHJldmlzaW9uIDE4MTIwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTUzMSw3ICs1MzEsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZnRsXEZUTFVu
d2luZEluZm8uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZnRsXEZUTFZhbHVl
Rm9ybWF0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGZ0bFxGVExWYWx1ZVJh
bmdlLmNwcCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcQmxvY2tBbGxvY2F0
b3IuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxDb2RlQmxvY2tTZXQu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxDb25zZXJ2YXRpdmVSb290
cy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXENvcGllZFNwYWNlLmNw
cCIgLz4KQEAgLTU1Nyw3ICs1NTYsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVh
cFxNYXJrZWRTcGFjZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXE1h
cmtTdGFjay5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXFNsb3RWaXNp
dG9yLmNwcCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcU3VwZXJSZWdpb24u
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxXZWFrLmNwcCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcV2Vha0Jsb2NrLmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcV2Vha0hhbmRsZU93bmVyLmNwcCIgLz4KQEAgLTEyMzAs
NyArMTIyOCw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRMVmFsdWVSYW5n
ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZnRsXEZUTFdlaWdodC5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZnRsXEZUTFdlaWdodGVkVGFyZ2V0LmgiIC8+Ci0g
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXEJsb2NrQWxsb2NhdG9yLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXENvZGVCbG9ja1NldC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxDb25zZXJ2YXRpdmVSb290cy5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxDb3BpZWRBbGxvY2F0b3IuaCIgLz4KQEAgLTEyNzksMTIg
KzEyNzYsMTAgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcTWFya2VkU3BhY2Uu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcTWFya1N0YWNrLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXFJlY3Vyc2l2ZUFsbG9jYXRpb25TY29wZS5o
IiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxSZWdpb24uaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcU2xvdFZpc2l0b3IuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGhlYXBcU2xvdFZpc2l0b3JJbmxpbmVzLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxoZWFwXFN0cm9uZy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caGVhcFxTdHJvbmdJbmxpbmVzLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxoZWFwXFN1cGVyUmVnaW9uLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFw
XFRpbnlCbG9vbUZpbHRlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxV
bmNvbmRpdGlvbmFsRmluYWxpemVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxo
ZWFwXFdlYWsuaCIgLz4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE4MTIwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVy
cwkod29ya2luZyBjb3B5KQpAQCAtMjM3LDkgKzIzNyw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxkaXNhc3NlbWJsZXJcRGlzYXNzZW1ibGVyLmNwcCI+CiAgICAgICA8RmlsdGVyPmRp
c2Fzc2VtYmxlcjwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5caGVhcFxCbG9ja0FsbG9jYXRvci5jcHAiPgotICAgICAgPEZpbHRlcj5oZWFwPC9G
aWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFw
XENvbnNlcnZhdGl2ZVJvb3RzLmNwcCI+CiAgICAgICA8RmlsdGVyPmhlYXA8L0ZpbHRlcj4KICAg
ICA8L0NsQ29tcGlsZT4KQEAgLTMwOSw5ICszMDYsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5caGVhcFxTbG90VmlzaXRvci5jcHAiPgogICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+
CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXFN1cGVy
UmVnaW9uLmNwcCI+Ci0gICAgICA8RmlsdGVyPmhlYXA8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcV2Vhay5jcHAiPgogICAgICAgPEZp
bHRlcj5oZWFwPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0yMDczLDkgKzIwNjcsNiBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGlzYXNzZW1ibGVyXERpc2Fzc2VtYmxlci5o
Ij4KICAgICAgIDxGaWx0ZXI+ZGlzYXNzZW1ibGVyPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXEJsb2NrQWxsb2NhdG9yLmgiPgotICAg
ICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxoZWFwXENvbnNlcnZhdGl2ZVJvb3RzLmgiPgogICAgICAgPEZpbHRlcj5o
ZWFwPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0yMjE0LDkgKzIyMDUsNiBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxSZWN1cnNpdmVBbGxvY2F0aW9uU2NvcGUuaCI+
CiAgICAgICA8RmlsdGVyPmhlYXA8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcUmVnaW9uLmgiPgotICAgICAgPEZpbHRlcj5oZWFwPC9G
aWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFw
XFNsb3RWaXNpdG9yLmgiPgogICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+CiAgICAgPC9DbElu
Y2x1ZGU+CkBAIC0yMjI5LDkgKzIyMTcsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
aGVhcFxTdHJvbmdJbmxpbmVzLmgiPgogICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+CiAgICAg
PC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXFN1cGVyUmVnaW9u
LmgiPgotICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXFRpbnlCbG9vbUZpbHRlci5oIj4KICAgICAgIDxG
aWx0ZXI+aGVhcDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE4MTIwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC04MjUsOCArODI1LDYgQEAKIAkJMTQ3RjM5RDUxMDdFQzM3NjAwNDI3QTQ4IC8qIEpTU3Ry
aW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
MDJFOUI2MEUxODQyRkEwMDBGOTI5NyAvKiBKU1N0cmluZy5jcHAgKi87IH07CiAJCTE0N0YzOUQ2
MTA3RUMzNzYwMDQyN0E0OCAvKiBKU0NKU1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2OTJBODg3MDI1NTU5N0QwMUZGNjBGNyAvKiBKU0NK
U1ZhbHVlLmNwcCAqLzsgfTsKIAkJMTQ3RjM5RDcxMDdFQzM3NjAwNDI3QTQ4IC8qIEpTRW52aXJv
bm1lbnRSZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMyMkEzOUEwRTE2RTE0ODAwQUYyMUM4IC8qIEpTRW52aXJvbm1lbnRSZWNvcmQuY3Bw
ICovOyB9OwotCQkxNDgxNkUxQjE1NENDNTZDMDBCODA1NEMgLyogQmxvY2tBbGxvY2F0b3IuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ4MTZFMTkx
NTRDQzU2QzAwQjgwNTRDIC8qIEJsb2NrQWxsb2NhdG9yLmNwcCAqLzsgfTsKLQkJMTQ4MTZFMUMx
NTRDQzU2QzAwQjgwNTRDIC8qIEJsb2NrQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDgxNkUxQTE1NENDNTZDMDBCODA1NEMgLyogQmxv
Y2tBbGxvY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkxNDgyQjc0RTBBNDMwMzI4MDA1MTdDRkMgLyogSlNTdHJpbmdSZWYuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ4MkI3NEMwQTQzMDMy
ODAwNTE3Q0ZDIC8qIEpTU3RyaW5nUmVmLmNwcCAqLzsgfTsKIAkJMTQ4MkI3RTQwQTQzMDc2MDAw
NTE3Q0ZDIC8qIEpTT2JqZWN0UmVmLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE0ODJCN0UyMEE0MzA3NjAwMDUxN0NGQyAvKiBKU09iamVjdFJlZi5j
cHAgKi87IH07CiAJCTE0ODc0QUUzMTVFQkRFNEEwMDJFMzU4NyAvKiBKU05hbWVTY29wZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDg3NEFERjE1
RUJERTRBMDAyRTM1ODcgLyogSlNOYW1lU2NvcGUuY3BwICovOyB9OwpAQCAtMTU0NSw3ICsxNTQz
LDYgQEAKIAkJQkNGRDhDOTIwRUVCMkVFNzAwMjgzODQ4IC8qIEp1bXBUYWJsZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0ZEOEM5MDBFRUIyRUU3
MDAyODM4NDggLyogSnVtcFRhYmxlLmNwcCAqLzsgfTsKIAkJQkNGRDhDOTMwRUVCMkVFNzAwMjgz
ODQ4IC8qIEp1bXBUYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkNGRDhDOTEwRUVCMkVFNzAwMjgzODQ4IC8qIEp1bXBUYWJsZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyMDMyODIwMTk4MTk3
OUQwMDg4QjQ5OSAvKiBDdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMDMyODFFMTk4MTk3OUQwMDg4QjQ5
OSAvKiBDdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuYyAqLzsgfTsKLQkJQzIwQjI1OTkxNzA2
NTM2MjAwQzIxRjRFIC8qIFJlZ2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzIwQjI1OTgxNzA2NTM2MjAwQzIxRjRFIC8qIFJlZ2lvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyMEJBOTJEMTZC
QjFDMTUwMEIzQUVBMiAvKiBTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMEJBOTJDMTZCQjFDMTUwMEIzQUVB
MiAvKiBTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjExMjJFMTE1REQ5QUIzMDA3OTBFM0EgLyogR0NU
aHJlYWRTaGFyZWREYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEMyMTEyMkRFMTVERDlBQjMwMDc5MEUzQSAvKiBHQ1RocmVhZFNoYXJlZERhdGEu
Y3BwICovOyB9OwogCQlDMjExMjJFMjE1REQ5QUIzMDA3OTBFM0EgLyogR0NUaHJlYWRTaGFyZWRE
YXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjEx
MjJERjE1REQ5QUIzMDA3OTBFM0EgLyogR0NUaHJlYWRTaGFyZWREYXRhLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1ODYsOCArMTU4Myw2IEBA
CiAJCUMyQ0YzOUMxMTZFMTVBODEwMERENjlCRSAvKiBKU0FQSVdyYXBwZXJPYmplY3QubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNGMzlCRjE2RTE1
QTgxMDBERDY5QkUgLyogSlNBUElXcmFwcGVyT2JqZWN0Lm1tICovOyB9OwogCQlDMkNGMzlDMjE2
RTE1QTgxMDBERDY5QkUgLyogSlNBUElXcmFwcGVyT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNGMzlDMDE2RTE1QTgxMDBERDY5QkUgLyog
SlNBUElXcmFwcGVyT2JqZWN0LmggKi87IH07CiAJCUMyREE3NzgzMThFMjU5OTkwMDY2RkNCNiAv
KiBIZWFwSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzJEQTc3ODIxOEUyNTk5OTAwNjZGQ0I2IC8qIEhlYXBJbmxpbmVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQzJERjQ0MkYxNzA3QUMw
MTAwQTVDQTk2IC8qIFN1cGVyUmVnaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMyREY0NDJEMTcwN0FDMDEwMEE1Q0E5NiAvKiBTdXBlclJlZ2lv
bi5jcHAgKi87IH07Ci0JCUMyREY0NDMwMTcwN0FDMDEwMEE1Q0E5NiAvKiBTdXBlclJlZ2lvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJERjQ0MkUx
NzA3QUMwMTAwQTVDQTk2IC8qIFN1cGVyUmVnaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzJFNTI2QkQxNTkwRUYwMDAwNTRFNDhEIC8qIEhl
YXBUaW1lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMkU1MjZCQjE1OTBFRjAwMDA1NEU0OEQgLyogSGVhcFRpbWVyLmNwcCAqLzsgfTsKIAkJQzJF
NTI2QkUxNTkwRUYwMDAwNTRFNDhEIC8qIEhlYXBUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJFNTI2QkMxNTkwRUYwMDAwNTRFNDhEIC8qIEhl
YXBUaW1lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUMyRUFBM0ZBMTQ5QTgzNUUwMEZDRTExMiAvKiBDb3BpZWRTcGFjZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJFQUEzRjgxNDlBODMwODAwRkNF
MTEyIC8qIENvcGllZFNwYWNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTI0NjMsOCArMjQ1OCw2IEBACiAJCTE0N0I4M0FBMEU2REI4QzkwMDQ3
NzVBNCAvKiBCYXRjaGVkVHJhbnNpdGlvbk9wdGltaXplci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBCYXRjaGVkVHJhbnNpdGlvbk9wdGltaXplci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxNDdCODQ2MjBFNkRFNkIxMDA0Nzc1QTQgLyogUHV0UHJvcGVydHlT
bG90LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1dFByb3BlcnR5U2xvdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDgwREI5QjBEREMyMjdGMDAzQ0ZERjIg
LyogRGVidWdnZXJDYWxsRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGVidWdnZXJDYWxsRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTQ4MTZF
MTkxNTRDQzU2QzAwQjgwNTRDIC8qIEJsb2NrQWxsb2NhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJsb2NrQWxsb2NhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMTQ4MTZFMUExNTRDQzU2QzAwQjgwNTRDIC8qIEJsb2NrQWxsb2NhdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NrQWxsb2NhdG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0ODJCNkVBMEE0MzAwQjMwMDUxN0NGQyAvKiBK
U1ZhbHVlUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVmFsdWVSZWYu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ4MkI3NEIwQTQzMDMyODAwNTE3Q0ZD
IC8qIEpTU3RyaW5nUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3Ry
aW5nUmVmLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0ODJCNzRDMEE0MzAzMjgw
MDUxN0NGQyAvKiBKU1N0cmluZ1JlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1N0cmluZ1JlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0z
MjUxLDcgKzMyNDQsNiBAQAogCQlCQ0ZEOEM5MTBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEp1bXBUYWJsZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDMjAzMjgxRTE5ODE5NzlEMDA4OEI0OTkgLyogQ3VzdG9t
R2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9
IEN1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5jOyBwYXRoID0gQVBJL3Rlc3RzL0N1c3RvbUds
b2JhbE9iamVjdENsYXNzVGVzdC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjAz
MjgxRjE5ODE5NzlEMDA4OEI0OTkgLyogQ3VzdG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEN1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVz
dC5oOyBwYXRoID0gQVBJL3Rlc3RzL0N1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDMjBCMjU5ODE3MDY1MzYyMDBDMjFGNEUgLyogUmVn
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZ2lvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDMjBCQTkyQzE2QkIxQzE1MDBCM0FFQTIgLyogU3RydWN0
dXJlUmFyZURhdGFJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MjExMjJERTE1REQ5QUIzMDA3OTBFM0EgLyogR0NUaHJlYWRTaGFyZWREYXRhLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdDVGhyZWFkU2hhcmVkRGF0YS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyMTEyMkRGMTVERDlBQjMwMDc5MEUzQSAvKiBH
Q1RocmVhZFNoYXJlZERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR0NU
aHJlYWRTaGFyZWREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjk0LDgg
KzMyODYsNiBAQAogCQlDMkNGMzlCRjE2RTE1QTgxMDBERDY5QkUgLyogSlNBUElXcmFwcGVyT2Jq
ZWN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSlNBUElXcmFw
cGVyT2JqZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkNGMzlDMDE2RTE1
QTgxMDBERDY5QkUgLyogSlNBUElXcmFwcGVyT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTQVBJV3JhcHBlck9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDMkRBNzc4MjE4RTI1OTk5MDA2NkZDQjYgLyogSGVhcElubGluZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGVhcElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQzJERjQ0MkQxNzA3QUMwMTAwQTVDQTk2IC8qIFN1cGVyUmVnaW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1cGVyUmVnaW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzJERjQ0MkUxNzA3QUMwMTAwQTVDQTk2IC8q
IFN1cGVyUmVnaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN1cGVyUmVn
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyRTUyNkJCMTU5MEVGMDAwMDU0
RTQ4RCAvKiBIZWFwVGltZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSGVhcFRpbWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzJFNTI2QkMx
NTkwRUYwMDAwNTRFNDhEIC8qIEhlYXBUaW1lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIZWFwVGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzJFQUEz
RjgxNDlBODMwODAwRkNFMTEyIC8qIENvcGllZFNwYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENvcGllZFNwYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zODg2LDggKzM4NzYsNiBAQAogCQkJCUFEREIxRjYyMThENzdEQjcwMDlCNThBOCAvKiBPcGFx
dWVSb290U2V0LmggKi8sCiAJCQkJMkFBQ0U2M0ExOENBNUEwMzAwRUQwMTkxIC8qIEdDQWN0aXZp
dHlDYWxsYmFjay5jcHAgKi8sCiAJCQkJMkFBQ0U2M0IxOENBNUEwMzAwRUQwMTkxIC8qIEdDQWN0
aXZpdHlDYWxsYmFjay5oICovLAotCQkJCTE0ODE2RTE5MTU0Q0M1NkMwMEI4MDU0QyAvKiBCbG9j
a0FsbG9jYXRvci5jcHAgKi8sCi0JCQkJMTQ4MTZFMUExNTRDQzU2QzAwQjgwNTRDIC8qIEJsb2Nr
QWxsb2NhdG9yLmggKi8sCiAJCQkJMEZEOEEzMTExN0Q0MzI2QzAwQ0EyQzQwIC8qIENvZGVCbG9j
a1NldC5jcHAgKi8sCiAJCQkJMEZEOEEzMTIxN0Q0MzI2QzAwQ0EyQzQwIC8qIENvZGVCbG9ja1Nl
dC5oICovLAogCQkJCTE0NkIxNERCMTJFQjVCMTIwMDFCRUMxQiAvKiBDb25zZXJ2YXRpdmVSb290
cy5jcHAgKi8sCkBAIC0zOTU0LDE0ICszOTQyLDExIEBACiAJCQkJMTQyRDZGMEUxMzUzOUE0MTAw
QjAyRTg2IC8qIE1hcmtTdGFjay5jcHAgKi8sCiAJCQkJMTQyRDZGMEYxMzUzOUE0MTAwQjAyRTg2
IC8qIE1hcmtTdGFjay5oICovLAogCQkJCTJBQUQ5NjQ5MTg1Njk0MTcwMDFGOTNCRSAvKiBSZWN1
cnNpdmVBbGxvY2F0aW9uU2NvcGUuaCAqLywKLQkJCQlDMjBCMjU5ODE3MDY1MzYyMDBDMjFGNEUg
LyogUmVnaW9uLmggKi8sCiAJCQkJQzIyNTQ5NDIxNUY3REJBQTAwNjVFODk4IC8qIFNsb3RWaXNp
dG9yLmNwcCAqLywKIAkJCQkxNEJBNzhGMDEzQUFCODhGMDA1QjdDMkMgLyogU2xvdFZpc2l0b3Iu
aCAqLywKIAkJCQkwRkNCNDA4NTE1QzBBM0MzMDA0ODkzMkIgLyogU2xvdFZpc2l0b3JJbmxpbmVz
LmggKi8sCiAJCQkJMTQyRTMxMzIxMzRGRjBBNjAwQUZBREI1IC8qIFN0cm9uZy5oICovLAogCQkJ
CTE0NTcyMjg1MTQzN0UxNDAwMDVGREUyNiAvKiBTdHJvbmdJbmxpbmVzLmggKi8sCi0JCQkJQzJE
RjQ0MkQxNzA3QUMwMTAwQTVDQTk2IC8qIFN1cGVyUmVnaW9uLmNwcCAqLywKLQkJCQlDMkRGNDQy
RTE3MDdBQzAxMDBBNUNBOTYgLyogU3VwZXJSZWdpb24uaCAqLywKIAkJCQkxNDE0NDhDQzEzQTE3
ODM3MDBGNUJBMUEgLyogVGlueUJsb29tRmlsdGVyLmggKi8sCiAJCQkJMEY1RjA4Q0UxNDZDNzYy
RjAwMDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCAqLywKIAkJCQkxQUNGNzM3NjE3
MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgKi8sCkBAIC01NTMxLDcgKzU1MTYsNiBAQAogCQkJ
CTBGMjRFNTQxMTdFQTlGNTkwMEFCQjIxNyAvKiBBc3NlbWJseUhlbHBlcnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE3ODRBMjYxMTFEMTY2MjIwMDU3NzZBQyAvKiBBU1RCdWlsZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NjY3MzlEMjEzQkZERTcxMDAyM0Q4N0MgLyogQmlnSW50ZWdlci5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMTQ4MTZFMUMxNTRDQzU2QzAwQjgwNTRDIC8qIEJsb2NrQWxsb2Nh
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzNFQzBFMTZGNUNEMDBCMzQ0NjAgLyogQm9v
bGVhbk9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVBMDg2MjAxODJCN0EwNDAwRjZEODUx
IC8qIEJyZWFrcG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1RDJFNjY1MTk1RTE3NDAwMEE1
MThFNyAvKiBKU0NvbnRleHRSZWZJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC02MjE1LDcg
KzYxOTksNiBAQAogCQkJCUJDMThDNDVCMEUxNkY1Q0QwMEIzNDQ2MCAvKiBSZWdFeHBPYmplY3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNTJDMEUxNkZDRDIwMEIzNDQ2MCAvKiBSZWdFeHBP
YmplY3QubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0QyMDJDNDBFMTcwNkE3MDAyQzdFODIg
LyogUmVnRXhwUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKLQkJCQlDMjBCMjU5OTE3MDY1MzYy
MDBDMjFGNEUgLyogUmVnaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ1RDBFMTZGNUNE
MDBCMzQ0NjAgLyogUmVnaXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2OUEwNzJCMEVEMUNF
NjkwMEYxRjY4MSAvKiBSZWdpc3RlcklELmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZCMUNCQTE4
NjEyNDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmggaW4gSGVhZGVycyAq
LywKQEAgLTYyODksNyArNjI3Miw2IEBACiAJCQkJMEY3NjZEMzkxNUFFNEExRjAwOEYzNjNFIC8q
IFN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
Q0YwRDA4MEVGMEFBQjkwMDQxM0M4RiAvKiBTdHJ1Y3R1cmVTdHViSW5mby5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM5MDQxNDgwRUI5MjUwOTAwRkUyNkZBIC8qIFN0cnVjdHVyZVRyYW5zaXRpb25U
YWJsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQzJERjQ0MzAxNzA3QUMwMTAwQTVDQTk2IC8qIFN1
cGVyUmVnaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MDVCNDFBQzFBNkU1MDFFMDA3MTY3NTcg
LyogU3ltYm9sLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MDVCNDFBRTFBNkU1MDFFMDA3MTY3NTcg
LyogU3ltYm9sQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwNUI0MUIwMUE2RTUw
MUUwMDcxNjc1NyAvKiBTeW1ib2xPYmplY3QuaCBpbiBIZWFkZXJzICovLApAQCAtNjg0NSw3ICs2
ODI3LDYgQEAKIAkJCQkwRjYzOTQ1NDE1RDA3MDU1MDA2QTU5N0MgLyogQXJyYXlQcm9maWxlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUMwMTA3RUMzNzYwMDQyN0E0OCAvKiBBcnJheVBy
b3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjI0RTU0MDE3RUE5RjU5MDBBQkIyMTcg
LyogQXNzZW1ibHlIZWxwZXJzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTE0ODE2RTFCMTU0Q0M1
NkMwMEI4MDU0QyAvKiBCbG9ja0FsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjY5
Q0M4ODE5M0FDNjBBMDA0NTc1OUUgLyogREZHRnJvemVuVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMTQyODA4NjMxMDdFQzExQTAwMTNFN0IyIC8qIEJvb2xlYW5Db25zdHJ1Y3Rvci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg2NDEwN0VDMTFBMDAxM0U3QjIgLyogQm9vbGVhbk9i
amVjdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTczNzMsNyArNzM1NCw2IEBACiAJCQkJQzJGMEYy
RDExNkJBRUVFOTAwMTg3QzE5IC8qIFN0cnVjdHVyZVJhcmVEYXRhLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGNzY2RDM4MTVBRTRBMUMwMDhGMzYzRSAvKiBTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdX
YXRjaHBvaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQ0YwRDBDMEVGMEI4QTUwMDQxM0M4
RiAvKiBTdHJ1Y3R1cmVTdHViSW5mby5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDMkRGNDQyRjE3
MDdBQzAxMDBBNUNBOTYgLyogU3VwZXJSZWdpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzA1
QjQxQUIxQTZFNTAxRTAwNzE2NzU3IC8qIFN5bWJvbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
MDVCNDFBRDFBNkU1MDFFMDA3MTY3NTcgLyogU3ltYm9sQ29uc3RydWN0b3IuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNzA1QjQxQUYxQTZFNTAxRTAwNzE2NzU3IC8qIFN5bWJvbE9iamVjdC5jcHAg
aW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrQWxs
b2NhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9j
a0FsbG9jYXRvci5jcHAJKHJldmlzaW9uIDE4MTIwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0Jsb2NrQWxsb2NhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwxNzMgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJCbG9ja0FsbG9j
YXRvci5oIgotCi0jaW5jbHVkZSAiQ29waWVkQmxvY2suaCIKLSNpbmNsdWRlICJDb3B5V29ya0xp
c3QuaCIKLSNpbmNsdWRlICJNYXJrZWRCbG9jay5oIgotI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIK
LSNpbmNsdWRlICJXZWFrQmxvY2suaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KLQot
bmFtZXNwYWNlIEpTQyB7Ci0KLWlubGluZSBUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZUJsb2NrRnJl
ZWluZ1RocmVhZChCbG9ja0FsbG9jYXRvciogYWxsb2NhdG9yKQotewotICAgIGlmICghR0NBY3Rp
dml0eUNhbGxiYWNrOjpzX3Nob3VsZENyZWF0ZUdDVGltZXIpCi0gICAgICAgIHJldHVybiAwOyAv
LyBObyBibG9jayBmcmVlaW5nIHRocmVhZC4KLSAgICBUaHJlYWRJZGVudGlmaWVyIGlkZW50aWZp
ZXIgPSBjcmVhdGVUaHJlYWQoYWxsb2NhdG9yLT5ibG9ja0ZyZWVpbmdUaHJlYWRTdGFydEZ1bmMs
IGFsbG9jYXRvciwgIkphdmFTY3JpcHRDb3JlOjpCbG9ja0ZyZWUiKTsKLSAgICBSRUxFQVNFX0FT
U0VSVChpZGVudGlmaWVyKTsKLSAgICByZXR1cm4gaWRlbnRpZmllcjsKLX0KLQotQmxvY2tBbGxv
Y2F0b3I6OkJsb2NrQWxsb2NhdG9yKCkKLSAgICA6IG1fc3VwZXJSZWdpb24oKQotICAgICwgbV9j
b3BpZWRSZWdpb25TZXQoQ29waWVkQmxvY2s6OmJsb2NrU2l6ZSkKLSAgICAsIG1fbWFya2VkUmVn
aW9uU2V0KE1hcmtlZEJsb2NrOjpibG9ja1NpemUpCi0gICAgLCBtX2ZvdXJLQkJsb2NrUmVnaW9u
U2V0KFdlYWtCbG9jazo6YmxvY2tTaXplKQotICAgICwgbV93b3JrTGlzdFJlZ2lvblNldChDb3B5
V29ya0xpc3RTZWdtZW50OjpibG9ja1NpemUpCi0gICAgLCBtX251bWJlck9mRW1wdHlSZWdpb25z
KDApCi0gICAgLCBtX2lzQ3VycmVudGx5QWxsb2NhdGluZyhmYWxzZSkKLSAgICAsIG1fYmxvY2tG
cmVlaW5nVGhyZWFkU2hvdWxkUXVpdChmYWxzZSkKLSAgICAsIG1fYmxvY2tGcmVlaW5nVGhyZWFk
KGNyZWF0ZUJsb2NrRnJlZWluZ1RocmVhZCh0aGlzKSkKLXsKLSAgICBtX3JlZ2lvbkxvY2suSW5p
dCgpOwotfQotCi1CbG9ja0FsbG9jYXRvcjo6fkJsb2NrQWxsb2NhdG9yKCkKLXsKLSAgICByZWxl
YXNlRnJlZVJlZ2lvbnMoKTsKLSAgICB7Ci0gICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11
dGV4PiBsb2NrKG1fZW1wdHlSZWdpb25Db25kaXRpb25NdXRleCk7Ci0gICAgICAgIG1fYmxvY2tG
cmVlaW5nVGhyZWFkU2hvdWxkUXVpdCA9IHRydWU7Ci0gICAgICAgIG1fZW1wdHlSZWdpb25Db25k
aXRpb24ubm90aWZ5X2FsbCgpOwotICAgIH0KLSAgICBpZiAobV9ibG9ja0ZyZWVpbmdUaHJlYWQp
Ci0gICAgICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKG1fYmxvY2tGcmVlaW5nVGhyZWFkKTsK
LSAgICBBU1NFUlQoYWxsUmVnaW9uU2V0c0FyZUVtcHR5KCkpOwotICAgIEFTU0VSVChtX2VtcHR5
UmVnaW9ucy5pc0VtcHR5KCkpOwotfQotCi1ib29sIEJsb2NrQWxsb2NhdG9yOjphbGxSZWdpb25T
ZXRzQXJlRW1wdHkoKSBjb25zdAotewotICAgIHJldHVybiBtX2NvcGllZFJlZ2lvblNldC5pc0Vt
cHR5KCkKLSAgICAgICAgJiYgbV9tYXJrZWRSZWdpb25TZXQuaXNFbXB0eSgpCi0gICAgICAgICYm
IG1fZm91cktCQmxvY2tSZWdpb25TZXQuaXNFbXB0eSgpCi0gICAgICAgICYmIG1fd29ya0xpc3RS
ZWdpb25TZXQuaXNFbXB0eSgpOwotfQotCi12b2lkIEJsb2NrQWxsb2NhdG9yOjpyZWxlYXNlRnJl
ZVJlZ2lvbnMoKQotewotICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIFJlZ2lvbiogcmVnaW9u
OwotICAgICAgICB7Ci0gICAgICAgICAgICBTcGluTG9ja0hvbGRlciBsb2NrZXIoJm1fcmVnaW9u
TG9jayk7Ci0gICAgICAgICAgICBpZiAoIW1fbnVtYmVyT2ZFbXB0eVJlZ2lvbnMpCi0gICAgICAg
ICAgICAgICAgcmVnaW9uID0gMDsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAg
IHJlZ2lvbiA9IG1fZW1wdHlSZWdpb25zLnJlbW92ZUhlYWQoKTsKLSAgICAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVChyZWdpb24pOwotICAgICAgICAgICAgICAgIG1fbnVtYmVyT2ZFbXB0eVJl
Z2lvbnMtLTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgaWYg
KCFyZWdpb24pCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICByZWdpb24tPmRlc3Ryb3ko
KTsKLSAgICB9Ci19Ci0KLXZvaWQgQmxvY2tBbGxvY2F0b3I6OndhaXRGb3JEdXJhdGlvbihzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzIGR1cmF0aW9uKQotewotICAgIHN0ZDo6dW5pcXVlX2xvY2s8
c3RkOjptdXRleD4gbG9jayhtX2VtcHR5UmVnaW9uQ29uZGl0aW9uTXV0ZXgpOwotCi0gICAgLy8g
SWYgdGhpcyByZXR1cm5zIGVhcmx5LCB0aGF0J3MgZmluZSwgc28gbG9uZyBhcyBpdCBkb2Vzbid0
IGRvIGl0IHRvbwotICAgIC8vIGZyZXF1ZW50bHkuIEl0IHdvdWxkIG9ubHkgYmUgYSBidWcgaWYg
dGhpcyBmdW5jdGlvbiBmYWlsZWQgdG8gcmV0dXJuCi0gICAgLy8gd2hlbiBpdCB3YXMgYXNrZWQg
dG8gZG8gc28uCi0gICAgaWYgKG1fYmxvY2tGcmVlaW5nVGhyZWFkU2hvdWxkUXVpdCkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgbV9lbXB0eVJlZ2lvbkNvbmRpdGlvbi53YWl0X2Zvcihsb2NrLCBk
dXJhdGlvbik7Ci19Ci0KLXZvaWQgQmxvY2tBbGxvY2F0b3I6OmJsb2NrRnJlZWluZ1RocmVhZFN0
YXJ0RnVuYyh2b2lkKiBibG9ja0FsbG9jYXRvcikKLXsKLSAgICBzdGF0aWNfY2FzdDxCbG9ja0Fs
bG9jYXRvcio+KGJsb2NrQWxsb2NhdG9yKS0+YmxvY2tGcmVlaW5nVGhyZWFkTWFpbigpOwotfQot
Ci12b2lkIEJsb2NrQWxsb2NhdG9yOjpibG9ja0ZyZWVpbmdUaHJlYWRNYWluKCkKLXsKLSAgICBz
aXplX3QgY3VycmVudE51bWJlck9mRW1wdHlSZWdpb25zOwotICAgIHdoaWxlICghbV9ibG9ja0Zy
ZWVpbmdUaHJlYWRTaG91bGRRdWl0KSB7Ci0gICAgICAgIC8vIEdlbmVyYWxseSB3YWl0IGZvciBv
bmUgc2Vjb25kIGJlZm9yZSBzY2F2ZW5naW5nIGZyZWUgYmxvY2tzLiBUaGlzCi0gICAgICAgIC8v
IG1heSByZXR1cm4gZWFybHksIHBhcnRpY3VsYXJseSB3aGVuIHdlJ3JlIGJlaW5nIGFza2VkIHRv
IHF1aXQuCi0gICAgICAgIHdhaXRGb3JEdXJhdGlvbihzdGQ6OmNocm9ubzo6c2Vjb25kcygxKSk7
Ci0gICAgICAgIGlmIChtX2Jsb2NrRnJlZWluZ1RocmVhZFNob3VsZFF1aXQpCi0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgCi0gICAgICAgIGlmIChtX2lzQ3VycmVudGx5QWxsb2NhdGluZykg
ewotICAgICAgICAgICAgbV9pc0N1cnJlbnRseUFsbG9jYXRpbmcgPSBmYWxzZTsKLSAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gU2xlZXAgdW50aWwgdGhlcmUg
aXMgYWN0dWFsbHkgd29yayB0byBkbyByYXRoZXIgdGhhbiB3YWtpbmcgdXAgZXZlcnkgc2Vjb25k
IHRvIGNoZWNrLgotICAgICAgICB7Ci0gICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6
bXV0ZXg+IGxvY2sobV9lbXB0eVJlZ2lvbkNvbmRpdGlvbk11dGV4KTsKLSAgICAgICAgICAgIFNw
aW5Mb2NrSG9sZGVyIHJlZ2lvbkxvY2tlcigmbV9yZWdpb25Mb2NrKTsKLSAgICAgICAgICAgIHdo
aWxlICghbV9udW1iZXJPZkVtcHR5UmVnaW9ucyAmJiAhbV9ibG9ja0ZyZWVpbmdUaHJlYWRTaG91
bGRRdWl0KSB7Ci0gICAgICAgICAgICAgICAgbV9yZWdpb25Mb2NrLlVubG9jaygpOwotICAgICAg
ICAgICAgICAgIG1fZW1wdHlSZWdpb25Db25kaXRpb24ud2FpdChsb2NrKTsKLSAgICAgICAgICAg
ICAgICBtX3JlZ2lvbkxvY2suTG9jaygpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY3Vy
cmVudE51bWJlck9mRW1wdHlSZWdpb25zID0gbV9udW1iZXJPZkVtcHR5UmVnaW9uczsKLSAgICAg
ICAgfQotICAgICAgICAKLSAgICAgICAgc2l6ZV90IGRlc2lyZWROdW1iZXJPZkVtcHR5UmVnaW9u
cyA9IGN1cnJlbnROdW1iZXJPZkVtcHR5UmVnaW9ucyAvIDI7Ci0gICAgICAgIAotICAgICAgICB3
aGlsZSAoIW1fYmxvY2tGcmVlaW5nVGhyZWFkU2hvdWxkUXVpdCkgewotICAgICAgICAgICAgUmVn
aW9uKiByZWdpb247Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgU3BpbkxvY2tIb2xk
ZXIgbG9ja2VyKCZtX3JlZ2lvbkxvY2spOwotICAgICAgICAgICAgICAgIGlmIChtX251bWJlck9m
RW1wdHlSZWdpb25zIDw9IGRlc2lyZWROdW1iZXJPZkVtcHR5UmVnaW9ucykKLSAgICAgICAgICAg
ICAgICAgICAgcmVnaW9uID0gMDsKLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgICAgcmVnaW9uID0gbV9lbXB0eVJlZ2lvbnMucmVtb3ZlSGVhZCgpOwotICAgICAgICAg
ICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChyZWdpb24pOwotICAgICAgICAgICAgICAgICAgICBt
X251bWJlck9mRW1wdHlSZWdpb25zLS07Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fQotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIXJlZ2lvbikKLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgcmVnaW9uLT5kZXN0cm95KCk7Ci0g
ICAgICAgIH0KLSAgICB9Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0FsbG9jYXRvci5oCShyZXZpc2lvbiAxODEyMDkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0FsbG9jYXRvci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDI1MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBCbG9ja0FsbG9jYXRv
cl9oCi0jZGVmaW5lIEJsb2NrQWxsb2NhdG9yX2gKLQotI2luY2x1ZGUgIkdDQWN0aXZpdHlDYWxs
YmFjay5oIgotI2luY2x1ZGUgIkhlYXBCbG9jay5oIgotI2luY2x1ZGUgIlJlZ2lvbi5oIgotI2lu
Y2x1ZGUgPGNvbmRpdGlvbl92YXJpYWJsZT4KLSNpbmNsdWRlIDx3dGYvRG91Ymx5TGlua2VkTGlz
dC5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1BhZ2VBbGxvY2F0
aW9uQWxpZ25lZC5oPgotI2luY2x1ZGUgPHd0Zi9UQ1NwaW5Mb2NrLmg+Ci0jaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQotY2xhc3MgQmxvY2tBbGxvY2F0b3I7
Ci1jbGFzcyBDb2RlQmxvY2s7Ci1jbGFzcyBDb3BpZWRCbG9jazsKLWNsYXNzIENvcHlXb3JrTGlz
dFNlZ21lbnQ7Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgR0NBcnJheVNlZ21lbnQ7Ci1j
bGFzcyBIYW5kbGVCbG9jazsKLWNsYXNzIEpTQ2VsbDsKLWNsYXNzIFZNOwotY2xhc3MgTWFya2Vk
QmxvY2s7Ci1jbGFzcyBXZWFrQmxvY2s7Ci0KLS8vIFNpbXBsZSBhbGxvY2F0b3IgdG8gcmVkdWNl
IFZNIGNvc3QgYnkgaG9sZGluZyBvbnRvIGJsb2NrcyBvZiBtZW1vcnkgZm9yCi0vLyBzaG9ydCBw
ZXJpb2RzIG9mIHRpbWUgYW5kIHRoZW4gZnJlZWluZyB0aGVtIG9uIGEgc2Vjb25kYXJ5IHRocmVh
ZC4KLQotY2xhc3MgQmxvY2tBbGxvY2F0b3IgewotcHVibGljOgotICAgIEJsb2NrQWxsb2NhdG9y
KCk7Ci0gICAgfkJsb2NrQWxsb2NhdG9yKCk7Ci0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4g
RGVhZEJsb2NrKiBhbGxvY2F0ZSgpOwotICAgIERlYWRCbG9jayogYWxsb2NhdGVDdXN0b21TaXpl
KHNpemVfdCBibG9ja1NpemUsIHNpemVfdCBibG9ja0FsaWdubWVudCk7Ci0gICAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+IHZvaWQgZGVhbGxvY2F0ZShUKik7Ci0gICAgdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+IHZvaWQgZGVhbGxvY2F0ZUN1c3RvbVNpemUoVCopOwotCi0gICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCByZWxlYXNlRnJlZVJlZ2lvbnMoKTsKLQotcHJpdmF0ZToKLSAgICB2b2lkIHdhaXRG
b3JEdXJhdGlvbihzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKTsKLQotICAgIGZyaWVuZCBUaHJl
YWRJZGVudGlmaWVyIGNyZWF0ZUJsb2NrRnJlZWluZ1RocmVhZChCbG9ja0FsbG9jYXRvciopOwot
ICAgIHZvaWQgYmxvY2tGcmVlaW5nVGhyZWFkTWFpbigpOwotICAgIHN0YXRpYyB2b2lkIGJsb2Nr
RnJlZWluZ1RocmVhZFN0YXJ0RnVuYyh2b2lkKiBoZWFwKTsKLQotICAgIHN0cnVjdCBSZWdpb25T
ZXQgewotICAgICAgICBSZWdpb25TZXQoc2l6ZV90IGJsb2NrU2l6ZSkKLSAgICAgICAgICAgIDog
bV9udW1iZXJPZlBhcnRpYWxSZWdpb25zKDApCi0gICAgICAgICAgICAsIG1fYmxvY2tTaXplKGJs
b2NrU2l6ZSkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBpc0VtcHR5KCkg
Y29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG1fZnVsbFJlZ2lvbnMuaXNFbXB0
eSgpICYmIG1fcGFydGlhbFJlZ2lvbnMuaXNFbXB0eSgpOwotICAgICAgICB9Ci0KLSAgICAgICAg
RG91Ymx5TGlua2VkTGlzdDxSZWdpb24+IG1fZnVsbFJlZ2lvbnM7Ci0gICAgICAgIERvdWJseUxp
bmtlZExpc3Q8UmVnaW9uPiBtX3BhcnRpYWxSZWdpb25zOwotICAgICAgICBzaXplX3QgbV9udW1i
ZXJPZlBhcnRpYWxSZWdpb25zOwotICAgICAgICBzaXplX3QgbV9ibG9ja1NpemU7Ci0gICAgfTsK
LQotICAgIERlYWRCbG9jayogdHJ5QWxsb2NhdGVGcm9tUmVnaW9uKFJlZ2lvblNldCYsIERvdWJs
eUxpbmtlZExpc3Q8UmVnaW9uPiYsIHNpemVfdCYpOwotCi0gICAgYm9vbCBhbGxSZWdpb25TZXRz
QXJlRW1wdHkoKSBjb25zdDsKLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBSZWdpb25TZXQm
IHJlZ2lvblNldEZvcigpOwotCi0gICAgU3VwZXJSZWdpb24gbV9zdXBlclJlZ2lvbjsKLSAgICBS
ZWdpb25TZXQgbV9jb3BpZWRSZWdpb25TZXQ7Ci0gICAgUmVnaW9uU2V0IG1fbWFya2VkUmVnaW9u
U2V0OwotICAgIC8vIFdlYWtCbG9ja3MgYW5kIEdDQXJyYXlTZWdtZW50cyB1c2UgdGhlIHNhbWUg
UmVnaW9uU2V0IHNpbmNlIHRoZXkncmUgdGhlIHNhbWUgc2l6ZS4KLSAgICBSZWdpb25TZXQgbV9m
b3VyS0JCbG9ja1JlZ2lvblNldDsKLSAgICBSZWdpb25TZXQgbV93b3JrTGlzdFJlZ2lvblNldDsK
LQotICAgIERvdWJseUxpbmtlZExpc3Q8UmVnaW9uPiBtX2VtcHR5UmVnaW9uczsKLSAgICBzaXpl
X3QgbV9udW1iZXJPZkVtcHR5UmVnaW9uczsKLQotICAgIGJvb2wgbV9pc0N1cnJlbnRseUFsbG9j
YXRpbmc7Ci0gICAgYm9vbCBtX2Jsb2NrRnJlZWluZ1RocmVhZFNob3VsZFF1aXQ7Ci0gICAgU3Bp
bkxvY2sgbV9yZWdpb25Mb2NrOwotICAgIHN0ZDo6bXV0ZXggbV9lbXB0eVJlZ2lvbkNvbmRpdGlv
bk11dGV4OwotICAgIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlIG1fZW1wdHlSZWdpb25Db25kaXRp
b247Ci0gICAgVGhyZWFkSWRlbnRpZmllciBtX2Jsb2NrRnJlZWluZ1RocmVhZDsKLX07Ci0KLWlu
bGluZSBEZWFkQmxvY2sqIEJsb2NrQWxsb2NhdG9yOjp0cnlBbGxvY2F0ZUZyb21SZWdpb24oUmVn
aW9uU2V0JiBzZXQsIERvdWJseUxpbmtlZExpc3Q8UmVnaW9uPiYgcmVnaW9ucywgc2l6ZV90JiBu
dW1iZXJPZlJlZ2lvbnMpCi17Ci0gICAgaWYgKG51bWJlck9mUmVnaW9ucykgewotICAgICAgICBB
U1NFUlQoIXJlZ2lvbnMuaXNFbXB0eSgpKTsKLSAgICAgICAgUmVnaW9uKiByZWdpb24gPSByZWdp
b25zLmhlYWQoKTsKLSAgICAgICAgQVNTRVJUKCFyZWdpb24tPmlzRnVsbCgpKTsKLQotICAgICAg
ICBpZiAocmVnaW9uLT5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChyZWdpb24gPT0g
bV9lbXB0eVJlZ2lvbnMuaGVhZCgpKTsKLSAgICAgICAgICAgIG1fbnVtYmVyT2ZFbXB0eVJlZ2lv
bnMtLTsKLSAgICAgICAgICAgIHNldC5tX251bWJlck9mUGFydGlhbFJlZ2lvbnMrKzsKLSAgICAg
ICAgICAgIHJlZ2lvbiA9IG1fZW1wdHlSZWdpb25zLnJlbW92ZUhlYWQoKS0+cmVzZXQoc2V0Lm1f
YmxvY2tTaXplKTsKLSAgICAgICAgICAgIHNldC5tX3BhcnRpYWxSZWdpb25zLnB1c2gocmVnaW9u
KTsKLSAgICAgICAgfQotCi0gICAgICAgIERlYWRCbG9jayogYmxvY2sgPSByZWdpb24tPmFsbG9j
YXRlKCk7Ci0KLSAgICAgICAgaWYgKHJlZ2lvbi0+aXNGdWxsKCkpIHsKLSAgICAgICAgICAgIHNl
dC5tX251bWJlck9mUGFydGlhbFJlZ2lvbnMtLTsKLSAgICAgICAgICAgIHNldC5tX2Z1bGxSZWdp
b25zLnB1c2goc2V0Lm1fcGFydGlhbFJlZ2lvbnMucmVtb3ZlSGVhZCgpKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIHJldHVybiBibG9jazsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXRlbXBs
YXRlPHR5cGVuYW1lIFQ+Ci1pbmxpbmUgRGVhZEJsb2NrKiBCbG9ja0FsbG9jYXRvcjo6YWxsb2Nh
dGUoKQotewotICAgIFJlZ2lvblNldCYgc2V0ID0gcmVnaW9uU2V0Rm9yPFQ+KCk7Ci0gICAgRGVh
ZEJsb2NrKiBibG9jazsKLSAgICBtX2lzQ3VycmVudGx5QWxsb2NhdGluZyA9IHRydWU7Ci0gICAg
ewotICAgICAgICBTcGluTG9ja0hvbGRlciBsb2NrZXIoJm1fcmVnaW9uTG9jayk7Ci0gICAgICAg
IGlmICgoYmxvY2sgPSB0cnlBbGxvY2F0ZUZyb21SZWdpb24oc2V0LCBzZXQubV9wYXJ0aWFsUmVn
aW9ucywgc2V0Lm1fbnVtYmVyT2ZQYXJ0aWFsUmVnaW9ucykpKQotICAgICAgICAgICAgcmV0dXJu
IGJsb2NrOwotICAgICAgICBpZiAoKGJsb2NrID0gdHJ5QWxsb2NhdGVGcm9tUmVnaW9uKHNldCwg
bV9lbXB0eVJlZ2lvbnMsIG1fbnVtYmVyT2ZFbXB0eVJlZ2lvbnMpKSkKLSAgICAgICAgICAgIHJl
dHVybiBibG9jazsKLSAgICB9Ci0KLSAgICBSZWdpb24qIG5ld1JlZ2lvbiA9IFJlZ2lvbjo6Y3Jl
YXRlKCZtX3N1cGVyUmVnaW9uLCBUOjpibG9ja1NpemUpOwotCi0gICAgU3BpbkxvY2tIb2xkZXIg
bG9ja2VyKCZtX3JlZ2lvbkxvY2spOwotICAgIG1fZW1wdHlSZWdpb25zLnB1c2gobmV3UmVnaW9u
KTsKLSAgICBtX251bWJlck9mRW1wdHlSZWdpb25zKys7Ci0gICAgYmxvY2sgPSB0cnlBbGxvY2F0
ZUZyb21SZWdpb24oc2V0LCBtX2VtcHR5UmVnaW9ucywgbV9udW1iZXJPZkVtcHR5UmVnaW9ucyk7
Ci0gICAgQVNTRVJUKGJsb2NrKTsKLSAgICByZXR1cm4gYmxvY2s7Ci19Ci0KLWlubGluZSBEZWFk
QmxvY2sqIEJsb2NrQWxsb2NhdG9yOjphbGxvY2F0ZUN1c3RvbVNpemUoc2l6ZV90IGJsb2NrU2l6
ZSwgc2l6ZV90IGJsb2NrQWxpZ25tZW50KQotewotICAgIHNpemVfdCByZWFsU2l6ZSA9IFdURjo6
cm91bmRVcFRvTXVsdGlwbGVPZihibG9ja0FsaWdubWVudCwgYmxvY2tTaXplKTsKLSAgICBSZWdp
b24qIG5ld1JlZ2lvbiA9IFJlZ2lvbjo6Y3JlYXRlQ3VzdG9tU2l6ZSgmbV9zdXBlclJlZ2lvbiwg
cmVhbFNpemUsIGJsb2NrQWxpZ25tZW50KTsKLSAgICBEZWFkQmxvY2sqIGJsb2NrID0gbmV3UmVn
aW9uLT5hbGxvY2F0ZSgpOwotICAgIEFTU0VSVChibG9jayk7Ci0gICAgcmV0dXJuIGJsb2NrOwot
fQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotaW5saW5lIHZvaWQgQmxvY2tBbGxvY2F0b3I6OmRl
YWxsb2NhdGUoVCogYmxvY2spCi17Ci0gICAgUmVnaW9uU2V0JiBzZXQgPSByZWdpb25TZXRGb3I8
VD4oKTsKLSAgICBib29sIHNob3VsZFdha2VCbG9ja0ZyZWVpbmdUaHJlYWQgPSBmYWxzZTsKLSAg
ICB7Ci0gICAgICAgIFNwaW5Mb2NrSG9sZGVyIGxvY2tlcigmbV9yZWdpb25Mb2NrKTsKLSAgICAg
ICAgUmVnaW9uKiByZWdpb24gPSBibG9jay0+cmVnaW9uKCk7Ci0gICAgICAgIEFTU0VSVCghcmVn
aW9uLT5pc0VtcHR5KCkpOwotICAgICAgICBpZiAocmVnaW9uLT5pc0Z1bGwoKSkKLSAgICAgICAg
ICAgIHNldC5tX2Z1bGxSZWdpb25zLnJlbW92ZShyZWdpb24pOwotICAgICAgICBlbHNlIHsKLSAg
ICAgICAgICAgIHNldC5tX3BhcnRpYWxSZWdpb25zLnJlbW92ZShyZWdpb24pOwotICAgICAgICAg
ICAgc2V0Lm1fbnVtYmVyT2ZQYXJ0aWFsUmVnaW9ucy0tOwotICAgICAgICB9Ci0KLSAgICAgICAg
cmVnaW9uLT5kZWFsbG9jYXRlKGJsb2NrKTsKLQotICAgICAgICBpZiAocmVnaW9uLT5pc0VtcHR5
KCkpIHsKLSAgICAgICAgICAgIG1fZW1wdHlSZWdpb25zLnB1c2gocmVnaW9uKTsKLSAgICAgICAg
ICAgIHNob3VsZFdha2VCbG9ja0ZyZWVpbmdUaHJlYWQgPSAhbV9udW1iZXJPZkVtcHR5UmVnaW9u
czsKLSAgICAgICAgICAgIG1fbnVtYmVyT2ZFbXB0eVJlZ2lvbnMrKzsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIHNldC5tX3BhcnRpYWxSZWdpb25zLnB1c2gocmVnaW9uKTsKLSAgICAg
ICAgICAgIHNldC5tX251bWJlck9mUGFydGlhbFJlZ2lvbnMrKzsKLSAgICAgICAgfQotICAgIH0K
LQotICAgIGlmIChzaG91bGRXYWtlQmxvY2tGcmVlaW5nVGhyZWFkKSB7Ci0gICAgICAgIHN0ZDo6
bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1fZW1wdHlSZWdpb25Db25kaXRpb25NdXRleCk7
Ci0gICAgICAgIG1fZW1wdHlSZWdpb25Db25kaXRpb24ubm90aWZ5X29uZSgpOwotICAgIH0KLQot
ICAgIGlmICghbV9ibG9ja0ZyZWVpbmdUaHJlYWQpCi0gICAgICAgIHJlbGVhc2VGcmVlUmVnaW9u
cygpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotaW5saW5lIHZvaWQgQmxvY2tBbGxvY2F0
b3I6OmRlYWxsb2NhdGVDdXN0b21TaXplKFQqIGJsb2NrKQotewotICAgIFJlZ2lvbiogcmVnaW9u
ID0gYmxvY2stPnJlZ2lvbigpOwotICAgIEFTU0VSVChyZWdpb24tPmlzQ3VzdG9tU2l6ZSgpKTsK
LSAgICByZWdpb24tPmRlYWxsb2NhdGUoYmxvY2spOwotICAgIHJlZ2lvbi0+ZGVzdHJveSgpOwot
fQotCi0jZGVmaW5lIFJFR0lPTl9TRVRfRk9SKGJsb2NrVHlwZSwgc2V0KSBcCi0gICAgdGVtcGxh
dGUgPD4gXAotICAgIGlubGluZSBCbG9ja0FsbG9jYXRvcjo6UmVnaW9uU2V0JiBCbG9ja0FsbG9j
YXRvcjo6cmVnaW9uU2V0Rm9yPGJsb2NrVHlwZT4oKSBcCi0gICAgeyBcCi0gICAgICAgIHJldHVy
biBzZXQ7IFwKLSAgICB9IFwKLSAgICB0ZW1wbGF0ZSA8PiBcCi0gICAgaW5saW5lIEJsb2NrQWxs
b2NhdG9yOjpSZWdpb25TZXQmIEJsb2NrQWxsb2NhdG9yOjpyZWdpb25TZXRGb3I8SGVhcEJsb2Nr
PGJsb2NrVHlwZT4+KCkgXAotICAgIHsgXAotICAgICAgICByZXR1cm4gc2V0OyBcCi0gICAgfSBc
Ci0KLVJFR0lPTl9TRVRfRk9SKE1hcmtlZEJsb2NrLCBtX21hcmtlZFJlZ2lvblNldCk7Ci1SRUdJ
T05fU0VUX0ZPUihDb3BpZWRCbG9jaywgbV9jb3BpZWRSZWdpb25TZXQpOwotUkVHSU9OX1NFVF9G
T1IoV2Vha0Jsb2NrLCBtX2ZvdXJLQkJsb2NrUmVnaW9uU2V0KTsKLVJFR0lPTl9TRVRfRk9SKEdD
QXJyYXlTZWdtZW50PGNvbnN0IEpTQ2VsbCo+LCBtX2ZvdXJLQkJsb2NrUmVnaW9uU2V0KTsKLVJF
R0lPTl9TRVRfRk9SKEdDQXJyYXlTZWdtZW50PENvZGVCbG9jayo+LCBtX2ZvdXJLQkJsb2NrUmVn
aW9uU2V0KTsKLVJFR0lPTl9TRVRfRk9SKENvcHlXb3JrTGlzdFNlZ21lbnQsIG1fd29ya0xpc3RS
ZWdpb25TZXQpOwotUkVHSU9OX1NFVF9GT1IoSGFuZGxlQmxvY2ssIG1fZm91cktCQmxvY2tSZWdp
b25TZXQpOwotCi0jdW5kZWYgUkVHSU9OX1NFVF9GT1IKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
Ci1pbmxpbmUgQmxvY2tBbGxvY2F0b3I6OlJlZ2lvblNldCYgQmxvY2tBbGxvY2F0b3I6OnJlZ2lv
blNldEZvcigpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1
cm4gKihSZWdpb25TZXQqKTA7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8g
QmxvY2tBbGxvY2F0b3JfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJl
YWRTaGFyZWREYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
R0NUaHJlYWRTaGFyZWREYXRhLmgJKHJldmlzaW9uIDE4MTIwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0dDVGhyZWFkU2hhcmVkRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwx
MCArMzgsMTEgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEdDVGhyZWFkOwotY2xhc3Mg
Vk07CitjbGFzcyBDb3BpZWRCbG9jazsKIGNsYXNzIENvcGllZFNwYWNlOwogY2xhc3MgQ29weVZp
c2l0b3I7CitjbGFzcyBHQ1RocmVhZDsKK2NsYXNzIFZNOwogCiBlbnVtIEdDUGhhc2UgewogICAg
IE5vUGhhc2UsCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVCbG9ja0lu
bGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVC
bG9ja0lubGluZXMuaAkocmV2aXNpb24gMTgxMjA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSGFuZGxlQmxvY2tJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDYg
QEAKICNpZm5kZWYgSGFuZGxlQmxvY2tJbmxpbmVzX2gKICNkZWZpbmUgSGFuZGxlQmxvY2tJbmxp
bmVzX2gKIAotI2luY2x1ZGUgIkJsb2NrQWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAiSGFuZGxlQmxv
Y2suaCIKICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMTgxMjA5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwNyw3ICszMDcsNiBAQCBIZWFw
OjpIZWFwKFZNKiB2bSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgLCBtX3RvdGFsQnl0ZXNWaXNp
dGVkKDApCiAgICAgLCBtX3RvdGFsQnl0ZXNDb3BpZWQoMCkKICAgICAsIG1fb3BlcmF0aW9uSW5Q
cm9ncmVzcyhOb09wZXJhdGlvbikKLSAgICAsIG1fYmxvY2tBbGxvY2F0b3IoKQogICAgICwgbV9v
YmplY3RTcGFjZSh0aGlzKQogICAgICwgbV9zdG9yYWdlU3BhY2UodGhpcykKICAgICAsIG1fZXh0
cmFNZW1vcnlVc2FnZSgwKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkocmV2aXNp
b24gMTgxMjA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMyw3ICsyMyw2IEBACiAjZGVmaW5lIEhlYXBfaAogCiAjaW5jbHVkZSAiQXJy
YXlCdWZmZXIuaCIKLSNpbmNsdWRlICJCbG9ja0FsbG9jYXRvci5oIgogI2luY2x1ZGUgIkNvZGVC
bG9ja1NldC5oIgogI2luY2x1ZGUgIkNvcHlWaXNpdG9yLmgiCiAjaW5jbHVkZSAiR0NJbmNvbWlu
Z1JlZkNvdW50ZWRTZXQuaCIKQEAgLTIxOCw3ICsyMTcsNiBAQCBwdWJsaWM6CiAgICAgCiAgICAg
Ym9vbCBpc0RlZmVycmVkKCkgY29uc3QgeyByZXR1cm4gISFtX2RlZmVycmFsRGVwdGggfHwgT3B0
aW9uczo6ZGlzYWJsZUdDKCk7IH0KIAotICAgIEJsb2NrQWxsb2NhdG9yJiBibG9ja0FsbG9jYXRv
cigpOwogICAgIFN0cnVjdHVyZUlEVGFibGUmIHN0cnVjdHVyZUlEVGFibGUoKSB7IHJldHVybiBt
X3N0cnVjdHVyZUlEVGFibGU7IH0KIAogI2lmIFVTRShDRikKQEAgLTM1MSw3ICszNDksNiBAQCBw
cml2YXRlOgogICAgIHNpemVfdCBtX3RvdGFsQnl0ZXNDb3BpZWQ7CiAgICAgCiAgICAgSGVhcE9w
ZXJhdGlvbiBtX29wZXJhdGlvbkluUHJvZ3Jlc3M7Ci0gICAgQmxvY2tBbGxvY2F0b3IgbV9ibG9j
a0FsbG9jYXRvcjsKICAgICBTdHJ1Y3R1cmVJRFRhYmxlIG1fc3RydWN0dXJlSURUYWJsZTsKICAg
ICBNYXJrZWRTcGFjZSBtX29iamVjdFNwYWNlOwogICAgIENvcGllZFNwYWNlIG1fc3RvcmFnZVNw
YWNlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcElubGluZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSW5saW5lcy5oCShyZXZp
c2lvbiAxODEyMDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSW5saW5lcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNzAsMTEgKzI3MCw2IEBAIGlubGluZSB2b2lkIEhlYXA6OmFz
Y3JpYmVPd25lcihKU0NlbGwqIGkKICNlbmRpZgogfQogCi1pbmxpbmUgQmxvY2tBbGxvY2F0b3Im
IEhlYXA6OmJsb2NrQWxsb2NhdG9yKCkKLXsKLSAgICByZXR1cm4gbV9ibG9ja0FsbG9jYXRvcjsK
LX0KLQogI2lmIFVTRShDRikKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogaW5saW5lIHZvaWQgSGVh
cDo6cmVsZWFzZVNvb24oUmV0YWluUHRyPFQ+JiYgb2JqZWN0KQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwVGltZXIuY3BwCShyZXZpc2lvbiAxODEyMDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVGltZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2
ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSGVhcFRpbWVyLmgiCiAK
KyNpbmNsdWRlICJHQ0FjdGl2aXR5Q2FsbGJhY2suaCIKICNpbmNsdWRlICJJbmNyZW1lbnRhbFN3
ZWVwZXIuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgJKHJldmlzaW9uIDE4
MTIxMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgJKHdvcmtp
bmcgY29weSkKQEAgLTIyLDcgKzIyLDYgQEAKICNpZm5kZWYgTWFya2VkQmxvY2tfaAogI2RlZmlu
ZSBNYXJrZWRCbG9ja19oCiAKLSNpbmNsdWRlICJCbG9ja0FsbG9jYXRvci5oIgogI2luY2x1ZGUg
IkhlYXBCbG9jay5oIgogCiAjaW5jbHVkZSAiSGVhcE9wZXJhdGlvbi5oIgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCShyZXZpc2lvbiAxODEyMDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8d3RmL0RvdWJseUxpbmtlZExpc3QuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFj
ZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUmVnaW9uLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUmVnaW9uLmgJKHJldmlzaW9uIDE4
MTIwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1JlZ2lvbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMyMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBKU0NfUmVnaW9uX2gK
LSNkZWZpbmUgSlNDX1JlZ2lvbl9oCi0KLSNpbmNsdWRlICJIZWFwQmxvY2suaCIKLSNpbmNsdWRl
ICJTdXBlclJlZ2lvbi5oIgotI2luY2x1ZGUgPHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg+Ci0jaW5j
bHVkZSA8d3RmL01ldGFBbGxvY2F0b3JIYW5kbGUuaD4KLSNpbmNsdWRlIDx3dGYvUGFnZUFsbG9j
YXRpb25BbGlnbmVkLmg+Ci0KLSNkZWZpbmUgSEVBUF9NRU1PUllfSUQgcmVpbnRlcnByZXRfY2Fz
dDx2b2lkKj4oc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KC0zKSkKLQotI2RlZmluZSBFTkFCTEVfU1VQ
RVJfUkVHSU9OIDAKLQotI2lmbmRlZiBFTkFCTEVfU1VQRVJfUkVHSU9OCi0jaWYgVVNFKEpTVkFM
VUU2NCkgJiYgIUNQVShBUk02NCkKLSNkZWZpbmUgRU5BQkxFX1NVUEVSX1JFR0lPTiAxCi0jZWxz
ZQotI2RlZmluZSBFTkFCTEVfU1VQRVJfUkVHSU9OIDAKLSNlbmRpZgotI2VuZGlmCi0KLW5hbWVz
cGFjZSBKU0MgewotCi1jbGFzcyBEZWFkQmxvY2sgOiBwdWJsaWMgSGVhcEJsb2NrPERlYWRCbG9j
az4gewotcHVibGljOgotICAgIERlYWRCbG9jayhSZWdpb24qKTsKLX07Ci0KLWlubGluZSBEZWFk
QmxvY2s6OkRlYWRCbG9jayhSZWdpb24qIHJlZ2lvbikKLSAgICA6IEhlYXBCbG9jazxEZWFkQmxv
Y2s+KHJlZ2lvbikKLXsKLX0KLQotY2xhc3MgUmVnaW9uIDogcHVibGljIERvdWJseUxpbmtlZExp
c3ROb2RlPFJlZ2lvbj4gewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotCi0gICAgZnJp
ZW5kIGNsYXNzIFdURjo6RG91Ymx5TGlua2VkTGlzdE5vZGU8UmVnaW9uPjsKLSAgICBmcmllbmQg
Y2xhc3MgQmxvY2tBbGxvY2F0b3I7Ci1wdWJsaWM6Ci0gICAgflJlZ2lvbigpOwotICAgIHN0YXRp
YyBSZWdpb24qIGNyZWF0ZShTdXBlclJlZ2lvbiosIHNpemVfdCBibG9ja1NpemUpOwotICAgIHN0
YXRpYyBSZWdpb24qIGNyZWF0ZUN1c3RvbVNpemUoU3VwZXJSZWdpb24qLCBzaXplX3QgYmxvY2tT
aXplLCBzaXplX3QgYmxvY2tBbGlnbm1lbnQpOwotICAgIFJlZ2lvbiogcmVzZXQoc2l6ZV90IGJs
b2NrU2l6ZSk7Ci0gICAgdm9pZCBkZXN0cm95KCk7Ci0KLSAgICBzaXplX3QgYmxvY2tTaXplKCkg
Y29uc3QgeyByZXR1cm4gbV9ibG9ja1NpemU7IH0KLSAgICBib29sIGlzRnVsbCgpIGNvbnN0IHsg
cmV0dXJuIG1fYmxvY2tzSW5Vc2UgPT0gbV90b3RhbEJsb2NrczsgfQotICAgIGJvb2wgaXNFbXB0
eSgpIGNvbnN0IHsgcmV0dXJuICFtX2Jsb2Nrc0luVXNlOyB9Ci0gICAgYm9vbCBpc0N1c3RvbVNp
emUoKSBjb25zdCB7IHJldHVybiBtX2lzQ3VzdG9tU2l6ZTsgfQotCi0gICAgRGVhZEJsb2NrKiBh
bGxvY2F0ZSgpOwotICAgIHZvaWQgZGVhbGxvY2F0ZSh2b2lkKik7Ci0KLSAgICBzdGF0aWMgY29u
c3Qgc2l6ZV90IHNfcmVnaW9uU2l6ZSA9IDY0ICogS0I7Ci0gICAgc3RhdGljIGNvbnN0IHNpemVf
dCBzX3JlZ2lvbk1hc2sgPSB+KHNfcmVnaW9uU2l6ZSAtIDEpOwotCi1wcm90ZWN0ZWQ6Ci0gICAg
UmVnaW9uKHNpemVfdCBibG9ja1NpemUsIHNpemVfdCB0b3RhbEJsb2NrcywgYm9vbCBpc0V4Y2Vz
cyk7Ci0gICAgdm9pZCBpbml0aWFsaXplQmxvY2tMaXN0KCk7Ci0KLSAgICBib29sIG1faXNFeGNl
c3M7Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCogYmFzZSgpOwotICAgIHNpemVfdCBzaXplKCk7Ci0K
LSAgICBzaXplX3QgbV90b3RhbEJsb2NrczsKLSAgICBzaXplX3QgbV9ibG9ja3NJblVzZTsKLSAg
ICBzaXplX3QgbV9ibG9ja1NpemU7Ci0gICAgYm9vbCBtX2lzQ3VzdG9tU2l6ZTsKLSAgICBSZWdp
b24qIG1fcHJldjsKLSAgICBSZWdpb24qIG1fbmV4dDsKLSAgICBEb3VibHlMaW5rZWRMaXN0PERl
YWRCbG9jaz4gbV9kZWFkQmxvY2tzOwotfTsKLQotCi1jbGFzcyBOb3JtYWxSZWdpb24gOiBwdWJs
aWMgUmVnaW9uIHsKLSAgICBmcmllbmQgY2xhc3MgUmVnaW9uOwotcHJpdmF0ZToKLSAgICBOb3Jt
YWxSZWdpb24oUGFzc1JlZlB0cjxXVEY6Ok1ldGFBbGxvY2F0b3JIYW5kbGU+LCBzaXplX3QgYmxv
Y2tTaXplLCBzaXplX3QgdG90YWxCbG9ja3MpOwotCi0gICAgc3RhdGljIE5vcm1hbFJlZ2lvbiog
dHJ5Q3JlYXRlKFN1cGVyUmVnaW9uKiwgc2l6ZV90IGJsb2NrU2l6ZSk7Ci0gICAgc3RhdGljIE5v
cm1hbFJlZ2lvbiogdHJ5Q3JlYXRlQ3VzdG9tU2l6ZShTdXBlclJlZ2lvbiosIHNpemVfdCBibG9j
a1NpemUsIHNpemVfdCBibG9ja0FsaWdubWVudCk7Ci0KLSAgICB2b2lkKiBiYXNlKCkgeyByZXR1
cm4gbV9hbGxvY2F0aW9uLT5zdGFydCgpOyB9Ci0gICAgc2l6ZV90IHNpemUoKSB7IHJldHVybiBt
X2FsbG9jYXRpb24tPnNpemVJbkJ5dGVzKCk7IH0KLQotICAgIE5vcm1hbFJlZ2lvbiogcmVzZXQo
c2l6ZV90IGJsb2NrU2l6ZSk7Ci0KLSAgICBSZWZQdHI8V1RGOjpNZXRhQWxsb2NhdG9ySGFuZGxl
PiBtX2FsbG9jYXRpb247Ci19OwotCi1jbGFzcyBFeGNlc3NSZWdpb24gOiBwdWJsaWMgUmVnaW9u
IHsKLSAgICBmcmllbmQgY2xhc3MgUmVnaW9uOwotcHJpdmF0ZToKLSAgICBFeGNlc3NSZWdpb24o
UGFnZUFsbG9jYXRpb25BbGlnbmVkJiwgc2l6ZV90IGJsb2NrU2l6ZSwgc2l6ZV90IHRvdGFsQmxv
Y2tzKTsKLQotICAgIH5FeGNlc3NSZWdpb24oKTsKLQotICAgIHN0YXRpYyBFeGNlc3NSZWdpb24q
IGNyZWF0ZShzaXplX3QgYmxvY2tTaXplKTsKLSAgICBzdGF0aWMgRXhjZXNzUmVnaW9uKiBjcmVh
dGVDdXN0b21TaXplKHNpemVfdCBibG9ja1NpemUsIHNpemVfdCBibG9ja0FsaWdubWVudCk7Ci0K
LSAgICB2b2lkKiBiYXNlKCkgeyByZXR1cm4gbV9hbGxvY2F0aW9uLmJhc2UoKTsgfQotICAgIHNp
emVfdCBzaXplKCkgeyByZXR1cm4gbV9hbGxvY2F0aW9uLnNpemUoKTsgfQotCi0gICAgRXhjZXNz
UmVnaW9uKiByZXNldChzaXplX3QgYmxvY2tTaXplKTsKLQotICAgIFBhZ2VBbGxvY2F0aW9uQWxp
Z25lZCBtX2FsbG9jYXRpb247Ci19OwotCi1pbmxpbmUgTm9ybWFsUmVnaW9uOjpOb3JtYWxSZWdp
b24oUGFzc1JlZlB0cjxXVEY6Ok1ldGFBbGxvY2F0b3JIYW5kbGU+IGFsbG9jYXRpb24sIHNpemVf
dCBibG9ja1NpemUsIHNpemVfdCB0b3RhbEJsb2NrcykKLSAgICA6IFJlZ2lvbihibG9ja1NpemUs
IHRvdGFsQmxvY2tzLCBmYWxzZSkKLSAgICAsIG1fYWxsb2NhdGlvbihhbGxvY2F0aW9uKQotewot
ICAgIGluaXRpYWxpemVCbG9ja0xpc3QoKTsKLX0KLQotaW5saW5lIE5vcm1hbFJlZ2lvbiogTm9y
bWFsUmVnaW9uOjp0cnlDcmVhdGUoU3VwZXJSZWdpb24qIHN1cGVyUmVnaW9uLCBzaXplX3QgYmxv
Y2tTaXplKQotewotICAgIFJlZlB0cjxXVEY6Ok1ldGFBbGxvY2F0b3JIYW5kbGU+IGFsbG9jYXRp
b24gPSBzdXBlclJlZ2lvbi0+YWxsb2NhdGUoc19yZWdpb25TaXplLCBIRUFQX01FTU9SWV9JRCk7
Ci0gICAgaWYgKCFhbGxvY2F0aW9uKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gbmV3
IE5vcm1hbFJlZ2lvbihhbGxvY2F0aW9uLCBibG9ja1NpemUsIHNfcmVnaW9uU2l6ZSAvIGJsb2Nr
U2l6ZSk7Ci19Ci0KLWlubGluZSBOb3JtYWxSZWdpb24qIE5vcm1hbFJlZ2lvbjo6dHJ5Q3JlYXRl
Q3VzdG9tU2l6ZShTdXBlclJlZ2lvbiogc3VwZXJSZWdpb24sIHNpemVfdCBibG9ja1NpemUsIHNp
emVfdCBibG9ja0FsaWdubWVudCkKLXsKLSAgICBBU1NFUlRfVU5VU0VEKGJsb2NrQWxpZ25tZW50
LCBibG9ja0FsaWdubWVudCA8PSBzX3JlZ2lvblNpemUpOwotICAgIFJlZlB0cjxXVEY6Ok1ldGFB
bGxvY2F0b3JIYW5kbGU+IGFsbG9jYXRpb24gPSBzdXBlclJlZ2lvbi0+YWxsb2NhdGUoYmxvY2tT
aXplLCBIRUFQX01FTU9SWV9JRCk7Ci0gICAgaWYgKCFhbGxvY2F0aW9uKQotICAgICAgICByZXR1
cm4gMDsKLSAgICByZXR1cm4gbmV3IE5vcm1hbFJlZ2lvbihhbGxvY2F0aW9uLCBibG9ja1NpemUs
IDEpOwotfQotCi1pbmxpbmUgTm9ybWFsUmVnaW9uKiBOb3JtYWxSZWdpb246OnJlc2V0KHNpemVf
dCBibG9ja1NpemUpCi17Ci0gICAgQVNTRVJUKCFtX2lzRXhjZXNzKTsKLSAgICBSZWZQdHI8V1RG
OjpNZXRhQWxsb2NhdG9ySGFuZGxlPiBhbGxvY2F0aW9uID0gbV9hbGxvY2F0aW9uLnJlbGVhc2Uo
KTsKLSAgICByZXR1cm4gbmV3IChOb3ROdWxsLCB0aGlzKSBOb3JtYWxSZWdpb24oYWxsb2NhdGlv
bi5yZWxlYXNlKCksIGJsb2NrU2l6ZSwgc19yZWdpb25TaXplIC8gYmxvY2tTaXplKTsKLX0KLQot
aW5saW5lIEV4Y2Vzc1JlZ2lvbjo6RXhjZXNzUmVnaW9uKFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCYg
YWxsb2NhdGlvbiwgc2l6ZV90IGJsb2NrU2l6ZSwgc2l6ZV90IHRvdGFsQmxvY2tzKQotICAgIDog
UmVnaW9uKGJsb2NrU2l6ZSwgdG90YWxCbG9ja3MsIHRydWUpCi0gICAgLCBtX2FsbG9jYXRpb24o
YWxsb2NhdGlvbikKLXsKLSAgICBpbml0aWFsaXplQmxvY2tMaXN0KCk7Ci19Ci0KLWlubGluZSBF
eGNlc3NSZWdpb246On5FeGNlc3NSZWdpb24oKQotewotICAgIG1fYWxsb2NhdGlvbi5kZWFsbG9j
YXRlKCk7Ci19Ci0KLWlubGluZSBFeGNlc3NSZWdpb24qIEV4Y2Vzc1JlZ2lvbjo6Y3JlYXRlKHNp
emVfdCBibG9ja1NpemUpCi17Ci0gICAgUGFnZUFsbG9jYXRpb25BbGlnbmVkIGFsbG9jYXRpb24g
PSBQYWdlQWxsb2NhdGlvbkFsaWduZWQ6OmFsbG9jYXRlKHNfcmVnaW9uU2l6ZSwgc19yZWdpb25T
aXplLCBPU0FsbG9jYXRvcjo6SlNHQ0hlYXBQYWdlcyk7Ci0gICAgQVNTRVJUKHN0YXRpY19jYXN0
PGJvb2w+KGFsbG9jYXRpb24pKTsKLSAgICByZXR1cm4gbmV3IEV4Y2Vzc1JlZ2lvbihhbGxvY2F0
aW9uLCBibG9ja1NpemUsIHNfcmVnaW9uU2l6ZSAvIGJsb2NrU2l6ZSk7IAotfQotCi1pbmxpbmUg
RXhjZXNzUmVnaW9uKiBFeGNlc3NSZWdpb246OmNyZWF0ZUN1c3RvbVNpemUoc2l6ZV90IGJsb2Nr
U2l6ZSwgc2l6ZV90IGJsb2NrQWxpZ25tZW50KQotewotICAgIFBhZ2VBbGxvY2F0aW9uQWxpZ25l
ZCBhbGxvY2F0aW9uID0gUGFnZUFsbG9jYXRpb25BbGlnbmVkOjphbGxvY2F0ZShibG9ja1NpemUs
IGJsb2NrQWxpZ25tZW50LCBPU0FsbG9jYXRvcjo6SlNHQ0hlYXBQYWdlcyk7Ci0gICAgQVNTRVJU
KHN0YXRpY19jYXN0PGJvb2w+KGFsbG9jYXRpb24pKTsKLSAgICByZXR1cm4gbmV3IEV4Y2Vzc1Jl
Z2lvbihhbGxvY2F0aW9uLCBibG9ja1NpemUsIDEpOwotfQotCi1pbmxpbmUgRXhjZXNzUmVnaW9u
KiBFeGNlc3NSZWdpb246OnJlc2V0KHNpemVfdCBibG9ja1NpemUpCi17Ci0gICAgQVNTRVJUKG1f
aXNFeGNlc3MpOwotICAgIFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCBhbGxvY2F0aW9uID0gbV9hbGxv
Y2F0aW9uOwotICAgIHJldHVybiBuZXcgKE5vdE51bGwsIHRoaXMpIEV4Y2Vzc1JlZ2lvbihhbGxv
Y2F0aW9uLCBibG9ja1NpemUsIHNfcmVnaW9uU2l6ZSAvIGJsb2NrU2l6ZSk7Ci19Ci0KLWlubGlu
ZSBSZWdpb246OlJlZ2lvbihzaXplX3QgYmxvY2tTaXplLCBzaXplX3QgdG90YWxCbG9ja3MsIGJv
b2wgaXNFeGNlc3MpCi0gICAgOiBEb3VibHlMaW5rZWRMaXN0Tm9kZTxSZWdpb24+KCkKLSAgICAs
IG1faXNFeGNlc3MoaXNFeGNlc3MpCi0gICAgLCBtX3RvdGFsQmxvY2tzKHRvdGFsQmxvY2tzKQot
ICAgICwgbV9ibG9ja3NJblVzZSgwKQotICAgICwgbV9ibG9ja1NpemUoYmxvY2tTaXplKQotICAg
ICwgbV9pc0N1c3RvbVNpemUoZmFsc2UpCi0gICAgLCBtX3ByZXYoMCkKLSAgICAsIG1fbmV4dCgw
KQotewotfQotCi1pbmxpbmUgdm9pZCBSZWdpb246OmluaXRpYWxpemVCbG9ja0xpc3QoKQotewot
ICAgIGNoYXIqIHN0YXJ0ID0gc3RhdGljX2Nhc3Q8Y2hhcio+KGJhc2UoKSk7Ci0gICAgY2hhciog
Y3VycmVudCA9IHN0YXJ0OwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV90b3RhbEJsb2Nr
czsgaSsrKSB7Ci0gICAgICAgIEFTU0VSVChjdXJyZW50IDwgc3RhcnQgKyBzaXplKCkpOwotICAg
ICAgICBtX2RlYWRCbG9ja3MuYXBwZW5kKG5ldyAoTm90TnVsbCwgY3VycmVudCkgRGVhZEJsb2Nr
KHRoaXMpKTsKLSAgICAgICAgY3VycmVudCArPSBtX2Jsb2NrU2l6ZTsKLSAgICB9Ci19Ci0KLWlu
bGluZSBSZWdpb24qIFJlZ2lvbjo6Y3JlYXRlKFN1cGVyUmVnaW9uKiBzdXBlclJlZ2lvbiwgc2l6
ZV90IGJsb2NrU2l6ZSkKLXsKLSNpZiBFTkFCTEUoU1VQRVJfUkVHSU9OKQotICAgIEFTU0VSVChi
bG9ja1NpemUgPD0gc19yZWdpb25TaXplKTsKLSAgICBBU1NFUlQoIShzX3JlZ2lvblNpemUgJSBi
bG9ja1NpemUpKTsKLSAgICBSZWdpb24qIHJlZ2lvbiA9IE5vcm1hbFJlZ2lvbjo6dHJ5Q3JlYXRl
KHN1cGVyUmVnaW9uLCBibG9ja1NpemUpOwotICAgIGlmIChMSUtFTFkoISFyZWdpb24pKQotICAg
ICAgICByZXR1cm4gcmVnaW9uOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc3VwZXJSZWdpb24p
OwotI2VuZGlmCi0gICAgcmV0dXJuIEV4Y2Vzc1JlZ2lvbjo6Y3JlYXRlKGJsb2NrU2l6ZSk7Ci19
Ci0KLWlubGluZSBSZWdpb24qIFJlZ2lvbjo6Y3JlYXRlQ3VzdG9tU2l6ZShTdXBlclJlZ2lvbiog
c3VwZXJSZWdpb24sIHNpemVfdCBibG9ja1NpemUsIHNpemVfdCBibG9ja0FsaWdubWVudCkKLXsK
LSNpZiBFTkFCTEUoU1VQRVJfUkVHSU9OKQotICAgIFJlZ2lvbiogcmVnaW9uID0gTm9ybWFsUmVn
aW9uOjp0cnlDcmVhdGVDdXN0b21TaXplKHN1cGVyUmVnaW9uLCBibG9ja1NpemUsIGJsb2NrQWxp
Z25tZW50KTsKLSAgICBpZiAoVU5MSUtFTFkoIXJlZ2lvbikpCi0gICAgICAgIHJlZ2lvbiA9IEV4
Y2Vzc1JlZ2lvbjo6Y3JlYXRlQ3VzdG9tU2l6ZShibG9ja1NpemUsIGJsb2NrQWxpZ25tZW50KTsK
LSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHN1cGVyUmVnaW9uKTsKLSAgICBSZWdpb24qIHJlZ2lv
biA9IEV4Y2Vzc1JlZ2lvbjo6Y3JlYXRlQ3VzdG9tU2l6ZShibG9ja1NpemUsIGJsb2NrQWxpZ25t
ZW50KTsKLSNlbmRpZgotICAgIHJlZ2lvbi0+bV9pc0N1c3RvbVNpemUgPSB0cnVlOwotICAgIHJl
dHVybiByZWdpb247Ci19Ci0KLWlubGluZSBSZWdpb246On5SZWdpb24oKQotewotICAgIEFTU0VS
VChpc0VtcHR5KCkpOwotfQotCi1pbmxpbmUgdm9pZCBSZWdpb246OmRlc3Ryb3koKQotewotI2lm
IEVOQUJMRShTVVBFUl9SRUdJT04pCi0gICAgaWYgKFVOTElLRUxZKG1faXNFeGNlc3MpKQotICAg
ICAgICBkZWxldGUgc3RhdGljX2Nhc3Q8RXhjZXNzUmVnaW9uKj4odGhpcyk7Ci0gICAgZWxzZQot
ICAgICAgICBkZWxldGUgc3RhdGljX2Nhc3Q8Tm9ybWFsUmVnaW9uKj4odGhpcyk7Ci0jZWxzZQot
ICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxFeGNlc3NSZWdpb24qPih0aGlzKTsKLSNlbmRpZgotfQot
Ci1pbmxpbmUgUmVnaW9uKiBSZWdpb246OnJlc2V0KHNpemVfdCBibG9ja1NpemUpCi17Ci0jaWYg
RU5BQkxFKFNVUEVSX1JFR0lPTikKLSAgICBBU1NFUlQoaXNFbXB0eSgpKTsKLSAgICBpZiAoVU5M
SUtFTFkobV9pc0V4Y2VzcykpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFeGNlc3NSZWdp
b24qPih0aGlzKS0+cmVzZXQoYmxvY2tTaXplKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Tm9y
bWFsUmVnaW9uKj4odGhpcyktPnJlc2V0KGJsb2NrU2l6ZSk7Ci0jZWxzZQotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxFeGNlc3NSZWdpb24qPih0aGlzKS0+cmVzZXQoYmxvY2tTaXplKTsKLSNlbmRp
ZgotfQotCi1pbmxpbmUgRGVhZEJsb2NrKiBSZWdpb246OmFsbG9jYXRlKCkKLXsKLSAgICBBU1NF
UlQoIWlzRnVsbCgpKTsKLSAgICBtX2Jsb2Nrc0luVXNlKys7Ci0gICAgcmV0dXJuIG1fZGVhZEJs
b2Nrcy5yZW1vdmVIZWFkKCk7Ci19Ci0KLWlubGluZSB2b2lkIFJlZ2lvbjo6ZGVhbGxvY2F0ZSh2
b2lkKiBiYXNlKQotewotICAgIEFTU0VSVChiYXNlKTsKLSAgICBBU1NFUlQobV9ibG9ja3NJblVz
ZSk7Ci0gICAgQVNTRVJUKGJhc2UgPj0gdGhpcy0+YmFzZSgpICYmIGJhc2UgPCBzdGF0aWNfY2Fz
dDxjaGFyKj4odGhpcy0+YmFzZSgpKSArIHNpemUoKSk7Ci0gICAgRGVhZEJsb2NrKiBibG9jayA9
IG5ldyAoTm90TnVsbCwgYmFzZSkgRGVhZEJsb2NrKHRoaXMpOwotICAgIG1fZGVhZEJsb2Nrcy5w
dXNoKGJsb2NrKTsKLSAgICBtX2Jsb2Nrc0luVXNlLS07Ci19Ci0KLWlubGluZSB2b2lkKiBSZWdp
b246OmJhc2UoKQotewotI2lmIEVOQUJMRShTVVBFUl9SRUdJT04pCi0gICAgaWYgKFVOTElLRUxZ
KG1faXNFeGNlc3MpKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXhjZXNzUmVnaW9uKj4o
dGhpcyktPkV4Y2Vzc1JlZ2lvbjo6YmFzZSgpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxOb3Jt
YWxSZWdpb24qPih0aGlzKS0+Tm9ybWFsUmVnaW9uOjpiYXNlKCk7Ci0jZWxzZQotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxFeGNlc3NSZWdpb24qPih0aGlzKS0+RXhjZXNzUmVnaW9uOjpiYXNlKCk7
Ci0jZW5kaWYKLX0KLQotaW5saW5lIHNpemVfdCBSZWdpb246OnNpemUoKQotewotI2lmIEVOQUJM
RShTVVBFUl9SRUdJT04pCi0gICAgaWYgKFVOTElLRUxZKG1faXNFeGNlc3MpKQotICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8RXhjZXNzUmVnaW9uKj4odGhpcyktPkV4Y2Vzc1JlZ2lvbjo6c2l6
ZSgpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxOb3JtYWxSZWdpb24qPih0aGlzKS0+Tm9ybWFs
UmVnaW9uOjpzaXplKCk7Ci0jZWxzZQotICAgIHJldHVybiBzdGF0aWNfY2FzdDxFeGNlc3NSZWdp
b24qPih0aGlzKS0+RXhjZXNzUmVnaW9uOjpzaXplKCk7Ci0jZW5kaWYKLX0KLQotfSAvLyBuYW1l
c3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBKU0NfUmVnaW9uX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1N1cGVyUmVnaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9TdXBlclJlZ2lvbi5jcHAJKHJldmlzaW9uIDE4MTIwOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N1cGVyUmVnaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw4MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IlN1cGVyUmVnaW9uLmgiCi0KLSNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0jaW5jbHVkZSAiUmVn
aW9uLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jb25zdCB1aW50NjRfdCBTdXBlclJlZ2lvbjo6
c19maXhlZEhlYXBNZW1vcnlQb29sU2l6ZSA9IDQgKiAxMDI0ICogc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KE1CKTsKLQotU3VwZXJSZWdpb246OlN1cGVyUmVnaW9uKCkKLSAgICA6IE1ldGFBbGxvY2F0
b3IoUmVnaW9uOjpzX3JlZ2lvblNpemUsIFJlZ2lvbjo6c19yZWdpb25TaXplKQotICAgICwgbV9y
ZXNlcnZhdGlvbkJhc2UoMCkKLXsKLSNpZiBFTkFCTEUoU1VQRVJfUkVHSU9OKQotICAgIC8vIE92
ZXItYWxsb2NhdGUgc28gdGhhdCB3ZSBjYW4gbWFrZSBzdXJlIHRoYXQgd2UncmUgYWxpZ25lZCB0
byB0aGUgc2l6ZSBvZiBSZWdpb25zLgotICAgIG1fcmVzZXJ2YXRpb24gPSBQYWdlUmVzZXJ2YXRp
b246OnJlc2VydmUoc19maXhlZEhlYXBNZW1vcnlQb29sU2l6ZSArIFJlZ2lvbjo6c19yZWdpb25T
aXplLCBPU0FsbG9jYXRvcjo6SlNHQ0hlYXBQYWdlcyk7Ci0gICAgbV9yZXNlcnZhdGlvbkJhc2Ug
PSBnZXRBbGlnbmVkQmFzZShtX3Jlc2VydmF0aW9uKTsKLSAgICBhZGRGcmVzaEZyZWVTcGFjZSht
X3Jlc2VydmF0aW9uQmFzZSwgc19maXhlZEhlYXBNZW1vcnlQb29sU2l6ZSk7Ci0jZWxzZQotICAg
IFVOVVNFRF9QQVJBTShtX3Jlc2VydmF0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0obV9yZXNlcnZh
dGlvbkJhc2UpOwotI2VuZGlmCi19Ci0KLVN1cGVyUmVnaW9uOjp+U3VwZXJSZWdpb24oKQotewot
I2lmIEVOQUJMRShTVVBFUl9SRUdJT04pCi0gICAgbV9yZXNlcnZhdGlvbi5kZWFsbG9jYXRlKCk7
Ci0jZW5kaWYKLX0KLQotdm9pZCogU3VwZXJSZWdpb246OmdldEFsaWduZWRCYXNlKFBhZ2VSZXNl
cnZhdGlvbiYgcmVzZXJ2YXRpb24pCi17Ci0gICAgZm9yIChjaGFyKiBjdXJyZW50ID0gc3RhdGlj
X2Nhc3Q8Y2hhcio+KHJlc2VydmF0aW9uLmJhc2UoKSk7IGN1cnJlbnQgPCBzdGF0aWNfY2FzdDxj
aGFyKj4ocmVzZXJ2YXRpb24uYmFzZSgpKSArIFJlZ2lvbjo6c19yZWdpb25TaXplOyBjdXJyZW50
ICs9IHBhZ2VTaXplKCkpIHsKLSAgICAgICAgaWYgKCEocmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+
KGN1cnJlbnQpICYgflJlZ2lvbjo6c19yZWdpb25NYXNrKSkKLSAgICAgICAgICAgIHJldHVybiBj
dXJyZW50OwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsK
LX0KLQotdm9pZCogU3VwZXJSZWdpb246OmFsbG9jYXRlTmV3U3BhY2Uoc2l6ZV90JikKLXsKLSAg
ICByZXR1cm4gMDsKLX0KLQotdm9pZCBTdXBlclJlZ2lvbjo6bm90aWZ5TmVlZFBhZ2Uodm9pZCog
cGFnZSkKLXsKLSAgICBtX3Jlc2VydmF0aW9uLmNvbW1pdChwYWdlLCBSZWdpb246OnNfcmVnaW9u
U2l6ZSk7Ci19Ci0KLXZvaWQgU3VwZXJSZWdpb246Om5vdGlmeVBhZ2VJc0ZyZWUodm9pZCogcGFn
ZSkKLXsKLSAgICBtX3Jlc2VydmF0aW9uLmRlY29tbWl0KHBhZ2UsIFJlZ2lvbjo6c19yZWdpb25T
aXplKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9TdXBlclJlZ2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL1N1cGVyUmVnaW9uLmgJKHJldmlzaW9uIDE4MTIwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1N1cGVyUmVnaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNTggKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgU3VwZXJSZWdpb25faAotI2RlZmluZSBTdXBlclJlZ2lv
bl9oCi0KLSNpbmNsdWRlIDx3dGYvTWV0YUFsbG9jYXRvci5oPgotI2luY2x1ZGUgPHd0Zi9QYWdl
QmxvY2suaD4KLSNpbmNsdWRlIDx3dGYvUGFnZVJlc2VydmF0aW9uLmg+Ci0KLW5hbWVzcGFjZSBK
U0MgewotCi1jbGFzcyBWTTsKLQotY2xhc3MgU3VwZXJSZWdpb24gOiBwdWJsaWMgV1RGOjpNZXRh
QWxsb2NhdG9yIHsKLXB1YmxpYzoKLSAgICBTdXBlclJlZ2lvbigpOwotICAgIHZpcnR1YWwgflN1
cGVyUmVnaW9uKCk7Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQqIGFsbG9jYXRlTmV3
U3BhY2Uoc2l6ZV90Jikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeU5lZWRQYWdl
KHZvaWQqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UGFnZUlzRnJlZSh2b2lk
Kikgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IHNfZml4
ZWRIZWFwTWVtb3J5UG9vbFNpemU7Ci0KLSAgICBzdGF0aWMgdm9pZCogZ2V0QWxpZ25lZEJhc2Uo
UGFnZVJlc2VydmF0aW9uJik7Ci0KLSAgICBQYWdlUmVzZXJ2YXRpb24gbV9yZXNlcnZhdGlvbjsK
LSAgICB2b2lkKiBtX3Jlc2VydmF0aW9uQmFzZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwot
Ci0jZW5kaWYgLy8gU3VwZXJSZWdpb25faAo=
</data>
<flag name="review"
          id="273081"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>