<?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>17250</bug_id>
          
          <creation_ts>2008-02-08 22:46:41 -0800</creation_ts>
          <short_desc>instanceof Array test fails when using iframes</short_desc>
          <delta_ts>2011-03-29 10:47:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>57333</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sanjiv Jivan">sanjiv.jivan+wk</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>aroben</cc>
    
    <cc>buildbot</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>matthew.lieder</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
    
    <cc>sanjiv.jivan+wk</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zwarich</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>69894</commentid>
    <comment_count>0</comment_count>
    <who name="Sanjiv Jivan">sanjiv.jivan+wk</who>
    <bug_when>2008-02-08 22:46:41 -0800</bug_when>
    <thetext>I have an iframe where I&apos;m creating an Array with in the parent&apos;s context via new parent.Array(). I now call a function in the parent window passing this array. When the parent function receives this argument, it fails the instanceof test.

I understand that passing &quot;new Array()&quot; from the iframe to parent will cause the &quot;instanceof Array &quot; test to fail in the parent because the contexts of the two are different, but in this case I am creating a array from the parent context itself yet if fails the &quot;instanceof Array&quot; test. Below is a simple testcase illustrating the problem. This test runs fine on IE, Firefox and Opera but fails on Safari only.

parent.html
&lt;html&gt;
&lt;head&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
    function isArray(arr) {
        alert(arr instanceof Array);
    }
&lt;/script&gt;
&lt;/body&gt;
&lt;iframe src=&quot;child.html&quot;&gt;&lt;/iframe&gt;
&lt;/html&gt;


child.html
&lt;html&gt;
&lt;head&gt;
&lt;/head&gt;
&lt;body&gt;
 &lt;script type=&quot;text/javascript&quot;&gt;
     function test() {
         var arr = new parent.Array();
         parent.isArray(arr);
     }
 &lt;/script&gt;

&lt;button onclick=&quot;test()&quot;&gt;Array Test&lt;/button&gt;
&lt;/body&gt;
&lt;/html&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105598</commentid>
    <comment_count>1</comment_count>
      <attachid>26690</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-01-13 16:35:39 -0800</bug_when>
    <thetext>Created attachment 26690
child.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105599</commentid>
    <comment_count>2</comment_count>
      <attachid>26691</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-01-13 16:36:23 -0800</bug_when>
    <thetext>Created attachment 26691
parent.html (test case)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105600</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-01-13 16:38:12 -0800</bug_when>
    <thetext>Confirmed with WebKit nightly build r39872.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105601</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-01-13 16:39:24 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Confirmed with WebKit nightly build r39872.

Confirmed the test case alerts &quot;true&quot; in Firefox 3, but alerts &quot;false&quot; in WebKit/Safari.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373567</commentid>
    <comment_count>5</comment_count>
    <who name="Matthew Lieder">matthew.lieder</who>
    <bug_when>2011-03-25 09:51:38 -0700</bug_when>
    <thetext>FYI, this is a problem in Firefox 4 now too (test case alerts &quot;false&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373825</commentid>
    <comment_count>6</comment_count>
      <attachid>87001</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-25 18:33:25 -0700</bug_when>
    <thetext>Created attachment 87001
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373826</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-25 18:35:09 -0700</bug_when>
    <thetext>Attachment 87001 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSObjectRef.cpp&apos;...&quot; exit_code: 1

Source/JavaScriptCore/runtime/JSCell.h:38:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 34 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373830</commentid>
    <comment_count>8</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-03-25 18:48:49 -0700</bug_when>
    <thetext>Attachment 87001 did not build on qt:
Build output: http://queues.webkit.org/results/8256011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373834</commentid>
    <comment_count>9</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-25 18:56:59 -0700</bug_when>
    <thetext>Attachment 87001 did not build on win:
Build output: http://queues.webkit.org/results/8256017</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374711</commentid>
    <comment_count>10</comment_count>
      <attachid>87186</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-28 13:15:59 -0700</bug_when>
    <thetext>Created attachment 87186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374717</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-28 13:19:11 -0700</bug_when>
    <thetext>Attachment 87186 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1

Source/JavaScriptCore/runtime/JSCell.h:38:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 38 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374749</commentid>
    <comment_count>12</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-28 13:56:18 -0700</bug_when>
    <thetext>Attachment 87186 did not build on win:
Build output: http://queues.webkit.org/results/8273473</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374758</commentid>
    <comment_count>13</comment_count>
      <attachid>87200</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-28 14:06:51 -0700</bug_when>
    <thetext>Created attachment 87200
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374762</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-28 14:09:23 -0700</bug_when>
    <thetext>Attachment 87200 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1

Source/JavaScriptCore/runtime/JSCell.h:38:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 39 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374835</commentid>
    <comment_count>15</comment_count>
      <attachid>87200</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-28 15:30:25 -0700</bug_when>
    <thetext>Comment on attachment 87200
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374887</commentid>
    <comment_count>16</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-28 16:40:25 -0700</bug_when>
    <thetext>Committed r82173</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375267</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-03-29 06:51:56 -0700</bug_when>
    <thetext>This caused assertion and test failures in run-javascriptcore-tests on Windows. Here&apos;s the assertion:

ASSERTION FAILED: isCell()

&gt;	JavaScriptCore.dll!JSC::JSValue::asCell()  Line 559 + 0x30 bytes	C++
 	JavaScriptCore.dll!JSC::asObject(JSC::JSValue value={...})  Line 393 + 0x8 bytes	C++
 	JavaScriptCore.dll!JSC::asInternalFunction(JSC::JSValue value={...})  Line 65 + 0x12 bytes	C++
 	JavaScriptCore.dll!JSC::constructDate(JSC::ExecState * exec=0x012201a0, const JSC::ArgList &amp; args={...})  Line 124 + 0x3e bytes	C++
 	JavaScriptCore.dll!JSObjectMakeDate(const OpaqueJSContext * ctx=0x012201a0, unsigned int argumentCount=1, const OpaqueJSValue * const * arguments=0x0012fdd8, const OpaqueJSValue * * exception=0x00000000)  Line 171 + 0x22 bytes	C++
 	testapi.exe!main(int argc=1, char * * argv=0x013c99d8)  Line 1304 + 0x19 bytes	C++
 	testapi.exe!__tmainCRTStartup()  Line 597 + 0x17 bytes	C
 	kernel32.dll!_BaseProcessStart@4()  + 0x23 bytes	

I&apos;m rolling out this patch in bug 57333.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375516</commentid>
    <comment_count>18</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-03-29 10:47:17 -0700</bug_when>
    <thetext>I guess this can be resolved again since Oliver fixed the Windows issues.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>26690</attachid>
            <date>2009-01-13 16:35:39 -0800</date>
            <delta_ts>2009-01-13 16:35:39 -0800</delta_ts>
            <desc>child.html</desc>
            <filename>child.html</filename>
            <type>text/html</type>
            <size>234</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8L2hlYWQ+Cjxib2R5PgogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgogICAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIHZhciBhcnIgPSBuZXcgcGFyZW50
LkFycmF5KCk7CiAgICAgICAgIHBhcmVudC5pc0FycmF5KGFycik7CiAgICAgfQogPC9zY3JpcHQ+
Cgo8YnV0dG9uIG9uY2xpY2s9InRlc3QoKSI+QXJyYXkgVGVzdDwvYnV0dG9uPgo8L2JvZHk+Cjwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>26691</attachid>
            <date>2009-01-13 16:36:23 -0800</date>
            <delta_ts>2009-01-13 16:36:23 -0800</delta_ts>
            <desc>parent.html (test case)</desc>
            <filename>parent.html</filename>
            <type>text/html</type>
            <size>207</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8L2hlYWQ+Cjxib2R5Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+CiAgICBmdW5jdGlvbiBpc0FycmF5KGFycikgewogICAgICAgIGFsZXJ0KGFyciBpbnN0YW5j
ZW9mIEFycmF5KTsKICAgIH0KPC9zY3JpcHQ+CjwvYm9keT4KPGlmcmFtZSBzcmM9Ii9hdHRhY2ht
ZW50LmNnaT9pZD0yNjY5MCI+PC9pZnJhbWU+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87001</attachid>
            <date>2011-03-25 18:33:25 -0700</date>
            <delta_ts>2011-03-28 13:15:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-17250-20110325183324.patch</filename>
            <type>text/plain</type>
            <size>47398</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIwMDMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09i
amVjdFJlZi5jcHAKaW5kZXggMzZjYTMzOGI3MTljYjYzMTAwZTdhNDc0MmE2MWE0ZGIyMDQwMmQ3
Mi4uYWU0MDgzMGE1ZDc0NTA3MDNhY2Y5MzNkZjYwMjQwNjc4NThiNzRmNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKQEAgLTEyNCw3ICsxMjQsNyBAQCBKU09i
amVjdFJlZiBKU09iamVjdE1ha2VGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1Jl
ZiBuYW1lLCB1bnNpZ25lZCBwYQogICAgICAgICBhcmdzLmFwcGVuZChqc1N0cmluZyhleGVjLCBw
YXJhbWV0ZXJOYW1lc1tpXS0+dXN0cmluZygpKSk7CiAgICAgYXJncy5hcHBlbmQoanNTdHJpbmco
ZXhlYywgYm9keS0+dXN0cmluZygpKSk7CiAKLSAgICBKU09iamVjdCogcmVzdWx0ID0gY29uc3Ry
dWN0RnVuY3Rpb24oZXhlYywgYXJncywgbmFtZUlELCBzb3VyY2VVUkwtPnVzdHJpbmcoKSwgc3Rh
cnRpbmdMaW5lTnVtYmVyKTsKKyAgICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RnVuY3Rp
b24oZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBhcmdzLCBuYW1lSUQsIHNvdXJj
ZVVSTC0+dXN0cmluZygpLCBzdGFydGluZ0xpbmVOdW1iZXIpOwogICAgIGlmIChleGVjLT5oYWRF
eGNlcHRpb24oKSkgewogICAgICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICAgICAgKmV4Y2Vw
dGlvbiA9IHRvUmVmKGV4ZWMsIGV4ZWMtPmV4Y2VwdGlvbigpKTsKQEAgLTIwNyw3ICsyMDcsNyBA
QCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VSZWdFeHAoSlNDb250ZXh0UmVmIGN0eCwgc2l6ZV90
IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVgogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJn
dW1lbnRDb3VudDsgKytpKQogICAgICAgICBhcmdMaXN0LmFwcGVuZCh0b0pTKGV4ZWMsIGFyZ3Vt
ZW50c1tpXSkpOwogCi0gICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0cnVjdFJlZ0V4cChleGVj
LCBhcmdMaXN0KTsKKyAgICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0UmVnRXhwKGV4ZWMs
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgIGFyZ0xpc3QpOwogICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkgewogICAgICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICAgICAgKmV4
Y2VwdGlvbiA9IHRvUmVmKGV4ZWMsIGV4ZWMtPmV4Y2VwdGlvbigpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCmluZGV4IGNjMGU0MTU4NTY5NmQxZTM4NmM2MmEwNGE5OTgwODY0ZDljZTQ5ZTAuLjMz
OGY4Y2NlYWU5ZDFlOGQ1MzQ4MDk5MDg4MTkwODhhOWVjYWE2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDgyIEBACiAyMDExLTAzLTI1ICBPbGl2ZXIgSHVudCAgPG9saXZl
ckBhcHBsZS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgaW5zdGFuY2VvZiBBcnJheSB0ZXN0IGZhaWxzIHdoZW4gdXNpbmcgaWZyYW1lcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyNTAKKworICAg
ICAgICBUaGlzIGlzIGEgcHJvYmxlbSB3aXRoIGFsbCBidWlsdCBpbiBjb25zdHJ1Y3RvcnMsIHRo
ZSB1c2Ugb2YKKyAgICAgICAgbGV4aWNhbEdsb2JhbE9iamVjdCByYXRoZXIgdGhhbiB0aGUgY29u
c3RydWN0b3JzIG93biAKKyAgICAgICAgZ2xvYmFsIG9iamVjdCByZWZlcmVuY2UgbWVhbnMgdGhh
dCBhIGJ1aWx0aW4gd2lsbCBhbHdheXMgdXNlCisgICAgICAgIHRoZSBwcm90b3R5cGUgZnJvbSB0
aGUgbGV4aWNhbCBnbG9iYWwgb2JqZWN0IHJhdGhlciB0aGFuIHRoYXQKKyAgICAgICAgb2YgdGhl
IGNvbnN0cnVjdG9ycyBvcmlnaW4uCisKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuY3BwOgor
ICAgICAgICAoSlNPYmplY3RNYWtlRnVuY3Rpb24pOgorICAgICAgICAoSlNPYmplY3RNYWtlUmVn
RXhwKToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogcnVudGltZS9B
cnJheUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0QXJyYXlXaXRoU2l6
ZVF1aXJrKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OmNvbnN0cnVjdEJvb2xlYW4pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RCb29s
ZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4pOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbkNvbnN0
cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpjb25zdHJ1Y3REYXRlKToKKyAgICAgICAgKiBydW50aW1lL0RhdGVJbnN0YW5jZS5j
cHA6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2UuaDoKKyAgICAgICAgKiBydW50aW1l
L0Vycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoRXJyb3JD
b25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNhbGxFcnJvckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25z
dHJ1Y3RXaXRoRnVuY3Rpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNhbGxGdW5jdGlv
bkNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0RnVuY3Rpb24pOgorICAgICAg
ICAqIHJ1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlND
ZWxsLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAg
ICAgICAoSlNDOjpKU0NlbGw6OnB1dCk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6ZGVsZXRlUHJv
cGVydHkpOgorICAgICAgICAoSlNDOjpKU0NlbGw6OnRvVGhpc09iamVjdCk6CisgICAgICAgIChK
U0M6OkpTQ2VsbDo6dG9PYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAg
ICAgIChKU0M6OkpTQ2VsbDo6SlNWYWx1ZTo6dG9PYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTTm90QW5PYmplY3Q6OnRvT2JqZWN0
KToKKyAgICAgICAgKiBydW50aW1lL0pTTm90QW5PYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1l
L0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnRvT2JqZWN0KToKKyAgICAg
ICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5jcHA6
CisgICAgICAgIChKU0M6OlN0cmluZ09iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6SlNT
dHJpbmc6OnRvT2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OnRvVGhpc09iamVjdCk6
CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1
ZS5jcHA6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvT2JqZWN0U2xvd0Nhc2UpOgorICAgICAg
ICAoSlNDOjpKU1ZhbHVlOjp0b1RoaXNPYmplY3RTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpT
VmFsdWU6OnN5bnRoZXNpemVPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1ZS5oOgor
ICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpj
b25zdHJ1Y3RXaXRoTnVtYmVyQ29uc3RydWN0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVy
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0TnVtYmVyKToKKyAgICAgICAgKiBy
dW50aW1lL051bWJlck9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RPYmplY3QpOgorICAgICAgICAoSlNDOjpj
b25zdHJ1Y3RXaXRoT2JqZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpjYWxsT2JqZWN0
Q29uc3RydWN0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpjb25zdHJ1Y3RSZWdFeHApOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RX
aXRoUmVnRXhwQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpjYWxsUmVnRXhwQ29uc3RydWN0
b3IpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBy
dW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0V2l0
aFN0cmluZ0NvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5oOgor
CisyMDExLTAzLTI1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCiAKICAgICAgICAgQWxsb3cgZGVmaW5lT3duUHJvcGVy
dHkgdG8gd29yayBvbiBET01PYmplY3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmV4cAppbmRleCBmZDc3MTkzYTg4ZDNkNmYzOWRhNGExMjg4MzE1OTAzNGQ5ZTA1OWYzLi5l
MjY0N2QxYTMxZWJkNzgwYTQ0YzcxYzY2ZmUwNDRkYjRiYTc5MTg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTEyMiw3ICsxMjIsNiBAQCBfX1pOM0pTQzEx
Y3JlYXRlRXJyb3JFUE5TXzlFeGVjU3RhdGVFUktOU183VVN0cmluZ0UKIF9fWk4zSlNDMTFyZWdF
eHBGbGFnc0VSS05TXzdVU3RyaW5nRQogX19aTjNKU0MxMkRhdGVJbnN0YW5jZTZzX2luZm9FCiBf
X1pOM0pTQzEyRGF0ZUluc3RhbmNlQzFFUE5TXzlFeGVjU3RhdGVFTjNXVEYxN05vbk51bGxQYXNz
UmVmUHRySU5TXzlTdHJ1Y3R1cmVFRUVkCi1fX1pOM0pTQzEyRGF0ZUluc3RhbmNlQzFFUE5TXzlF
eGVjU3RhdGVFZAogX19aTjNKU0MxMkpTR2xvYmFsRGF0YTEwQ2xpZW50RGF0YUQyRXYKIF9fWk4z
SlNDMTJKU0dsb2JhbERhdGExMWpzQXJyYXlWUHRyRQogX19aTjNKU0MxMkpTR2xvYmFsRGF0YTEy
Y3JlYXRlTGVha2VkRU5TXzE1VGhyZWFkU3RhY2tUeXBlRQpAQCAtMTgyLDcgKzE4MSw3IEBAIF9f
Wk4zSlNDMTZjcmVhdGVSYW5nZUVycm9yRVBOU185RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCiBf
X1pOM0pTQzE2dGhyb3dTeW50YXhFcnJvckVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDMTdCeXRl
Y29kZUdlbmVyYXRvcjIxc2V0RHVtcHNHZW5lcmF0ZWRDb2RlRWIKIF9fWk4zSlNDMTdQcm9wZXJ0
eU5hbWVBcnJheTNhZGRFUE4zV1RGMTBTdHJpbmdJbXBsRQotX19aTjNKU0MxN2NvbnN0cnVjdEZ1
bmN0aW9uRVBOU185RXhlY1N0YXRlRVJLTlNfN0FyZ0xpc3RFUktOU18xMElkZW50aWZpZXJFUktO
U183VVN0cmluZ0VpCitfX1pOM0pTQzE3Y29uc3RydWN0RnVuY3Rpb25FUE5TXzlFeGVjU3RhdGVF
UE5TXzE0SlNHbG9iYWxPYmplY3RFUktOU183QXJnTGlzdEVSS05TXzEwSWRlbnRpZmllckVSS05T
XzdVU3RyaW5nRWkKIF9fWk4zSlNDMTdjcmVhdGVTeW50YXhFcnJvckVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzdVU3RyaW5nRQogX19aTjNKU0MxOERlYnVnZ2VyQWN0aXZhdGlvbkMxRVJOU18xMkpTR2xv
YmFsRGF0YUVQTlNfOEpTT2JqZWN0RQogX19aTjNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjExc2V0
V3JpdGFibGVFYgpAQCAtNTM1LDcgKzUzNCw3IEBAIF9fWk5LM0pTQzZKU0NlbGwxMXRvUHJpbWl0
aXZlRVBOU185RXhlY1N0YXRlRU5TXzIyUHJlZmVycmVkUHJpbWl0aXZlVHlwZUUKIF9fWk5LM0pT
QzZKU0NlbGwxMnRvVGhpc09iamVjdEVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk5LM0pTQzZKU0NlbGwx
NGlzR2V0dGVyU2V0dGVyRXYKIF9fWk5LM0pTQzZKU0NlbGw4dG9OdW1iZXJFUE5TXzlFeGVjU3Rh
dGVFCi1fX1pOSzNKU0M2SlNDZWxsOHRvT2JqZWN0RVBOU185RXhlY1N0YXRlRQorX19aTkszSlND
NkpTQ2VsbDh0b09iamVjdEVQTlNfOUV4ZWNTdGF0ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9f
Wk5LM0pTQzZKU0NlbGw4dG9TdHJpbmdFUE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M2SlNDZWxs
OWdldFN0cmluZ0VQTlNfOUV4ZWNTdGF0ZUUKIF9fWk5LM0pTQzZKU0NlbGw5Z2V0U3RyaW5nRVBO
U185RXhlY1N0YXRlRVJOU183VVN0cmluZ0UKQEAgLTU0Myw3ICs1NDIsNyBAQCBfX1pOSzNKU0M2
SlNDZWxsOWdldFVJbnQzMkVSagogX19aTkszSlNDNkpTQ2VsbDl0b0Jvb2xlYW5FUE5TXzlFeGVj
U3RhdGVFCiBfX1pOSzNKU0M3QXJnTGlzdDhnZXRTbGljZUVpUlMwXwogX19aTkszSlNDN0pTQXJy
YXkxMnN1YmNsYXNzRGF0YUV2Ci1fX1pOSzNKU0M3SlNWYWx1ZTE2dG9PYmplY3RTbG93Q2FzZUVQ
TlNfOUV4ZWNTdGF0ZUUKK19fWk5LM0pTQzdKU1ZhbHVlMTZ0b09iamVjdFNsb3dDYXNlRVBOU185
RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RQogX19aTkszSlNDN0pTVmFsdWUxOXN5bnRo
ZXNpemVQcm90b3R5cGVFUE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M3SlNWYWx1ZTIwdG9UaGlz
T2JqZWN0U2xvd0Nhc2VFUE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M3SlNWYWx1ZTl0b0ludGVn
ZXJFUE5TXzlFeGVjU3RhdGVFCkBAIC01NTYsNyArNTU1LDcgQEAgX19aTkszSlNDOEpTT2JqZWN0
MTJkZWZhdWx0VmFsdWVFUE5TXzlFeGVjU3RhdGVFTlNfMjJQcmVmZXJyZWRQcmltaXRpdmVUeXBl
RQogX19aTkszSlNDOEpTT2JqZWN0MTJ0b1RoaXNPYmplY3RFUE5TXzlFeGVjU3RhdGVFCiBfX1pO
SzNKU0M4SlNPYmplY3QxOHRvU3RyaWN0VGhpc09iamVjdEVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk5L
M0pTQzhKU09iamVjdDh0b051bWJlckVQTlNfOUV4ZWNTdGF0ZUUKLV9fWk5LM0pTQzhKU09iamVj
dDh0b09iamVjdEVQTlNfOUV4ZWNTdGF0ZUUKK19fWk5LM0pTQzhKU09iamVjdDh0b09iamVjdEVQ
TlNfOUV4ZWNTdGF0ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk5LM0pTQzhKU09iamVjdDh0
b1N0cmluZ0VQTlNfOUV4ZWNTdGF0ZUUKIF9fWk5LM0pTQzhKU09iamVjdDljbGFzc05hbWVFdgog
X19aTkszSlNDOEpTT2JqZWN0OXRvQm9vbGVhbkVQTlNfOUV4ZWNTdGF0ZUUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYWYy
YWZjNmQ0MDBlNGU3MmQ1OWYzMjI0ZTcyMTUwNWY0OGMzNDcxNi4uZTBmNGIyM2Y0NmI0NzgyZWIz
OGYxZWI1MTdhZGM0ZGE3NDc5MDU2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKQEAgLTUyLDE2ICs1MiwxOCBAQCBBcnJheUNv
bnN0cnVjdG9yOjpBcnJheUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdAogCiBzdGF0aWMgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RBcnJh
eVdpdGhTaXplUXVpcmsoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewor
ICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBhc0ludGVybmFsRnVuY3Rpb24oZXhl
Yy0+Y2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKTsKKwogICAgIC8vIGEgc2luZ2xlIG51bWVyaWMg
YXJndW1lbnQgZGVub3RlcyB0aGUgYXJyYXkgc2l6ZSAoISkKICAgICBpZiAoYXJncy5zaXplKCkg
PT0gMSAmJiBhcmdzLmF0KDApLmlzTnVtYmVyKCkpIHsKICAgICAgICAgdWludDMyX3QgbiA9IGFy
Z3MuYXQoMCkudG9VSW50MzIoZXhlYyk7CiAgICAgICAgIGlmIChuICE9IGFyZ3MuYXQoMCkudG9O
dW1iZXIoZXhlYykpCiAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVS
YW5nZUVycm9yKGV4ZWMsICJBcnJheSBzaXplIGlzIG5vdCBhIHNtYWxsIGVub3VnaCBwb3NpdGl2
ZSBpbnRlZ2VyLiIpKTsKLSAgICAgICAgcmV0dXJuIG5ldyAoZXhlYykgSlNBcnJheShleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPmFycmF5U3RydWN0dXJlKCksIG4sIENyZWF0ZUluaXRpYWxp
emVkKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoZXhlYykgSlNBcnJheShnbG9iYWxPYmplY3QtPmFy
cmF5U3RydWN0dXJlKCksIG4sIENyZWF0ZUluaXRpYWxpemVkKTsKICAgICB9CiAKICAgICAvLyBv
dGhlcndpc2UgdGhlIGFycmF5IGlzIGNvbnN0cnVjdGVkIHdpdGggdGhlIGFyZ3VtZW50cyBpbiBp
dAotICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTQXJyYXkoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmFycmF5U3RydWN0dXJlKCksIGFyZ3MpOworICAgIHJl
dHVybiBuZXcgKGV4ZWMpIEpTQXJyYXkoZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3Qt
PmFycmF5U3RydWN0dXJlKCksIGFyZ3MpOwogfQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoQXJyYXlDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVj
dG9yLmNwcAppbmRleCAyMWVmNWJiZGVkM2ExMDBhOThiNDNmNjNiOWUyMjkzZjU2ZTJlNzZhLi5l
NWIwZjNkODNmNmVjZjgyMWYwZGJhZDE3OWE4NmM1MDYxMjMzODRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAKQEAgLTQw
LDcgKzQwLDcgQEAgQm9vbGVhbkNvbnN0cnVjdG9yOjpCb29sZWFuQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKIC8vIEVDTUEgMTUuNi4yCiBKU09i
amVjdCogY29uc3RydWN0Qm9vbGVhbihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFy
Z3MpCiB7Ci0gICAgQm9vbGVhbk9iamVjdCogb2JqID0gbmV3IChleGVjKSBCb29sZWFuT2JqZWN0
KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5ib29sZWFu
T2JqZWN0U3RydWN0dXJlKCkpOworICAgIEJvb2xlYW5PYmplY3QqIG9iaiA9IG5ldyAoZXhlYykg
Qm9vbGVhbk9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIGFzSW50ZXJuYWxGdW5jdGlvbihleGVj
LT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLT5ib29sZWFuT2JqZWN0U3RydWN0dXJlKCkpOwog
ICAgIG9iai0+c2V0SW50ZXJuYWxWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGpzQm9vbGVhbihh
cmdzLmF0KDApLnRvQm9vbGVhbihleGVjKSkpOwogICAgIHJldHVybiBvYmo7CiB9CkBAIC02OSw5
ICs2OSw5IEBAIENhbGxUeXBlIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoQ2FsbERh
dGEmIGNhbGxEYXRhKQogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CiB9CiAKLUpTT2JqZWN0KiBj
b25zdHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4oRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIGltbWVkaWF0ZUJvb2xlYW5WYWx1ZSkKK0pTT2JqZWN0KiBjb25zdHJ1Y3RCb29sZWFuRnJv
bUltbWVkaWF0ZUJvb2xlYW4oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIGltbWVkaWF0ZUJvb2xlYW5WYWx1ZSkKIHsKLSAgICBCb29sZWFuT2Jq
ZWN0KiBvYmogPSBuZXcgKGV4ZWMpIEJvb2xlYW5PYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmJvb2xlYW5PYmplY3RTdHJ1Y3R1cmUoKSk7Cisg
ICAgQm9vbGVhbk9iamVjdCogb2JqID0gbmV3IChleGVjKSBCb29sZWFuT2JqZWN0KGV4ZWMtPmds
b2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5ib29sZWFuT2JqZWN0U3RydWN0dXJlKCkpOwogICAg
IG9iai0+c2V0SW50ZXJuYWxWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGltbWVkaWF0ZUJvb2xl
YW5WYWx1ZSk7CiAgICAgcmV0dXJuIG9iajsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmgKaW5kZXggMGYzZWZhN2E4MGMzMWEyOGUy
Y2JlODhkODJlOTg5MTUyZjY4OGQ4OS4uMjU1MGIzYjM1NDdkNmEwOWMzMmYwNTBlMjliZWU3NmZl
OTZjMjJmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVh
bkNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVh
bkNvbnN0cnVjdG9yLmgKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKTsKICAgICB9OwogCi0gICAg
SlNPYmplY3QqIGNvbnN0cnVjdEJvb2xlYW5Gcm9tSW1tZWRpYXRlQm9vbGVhbihFeGVjU3RhdGUq
LCBKU1ZhbHVlKTsKKyAgICBKU09iamVjdCogY29uc3RydWN0Qm9vbGVhbkZyb21JbW1lZGlhdGVC
b29sZWFuKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CiAgICAgSlNPYmpl
Y3QqIGNvbnN0cnVjdEJvb2xlYW4oRXhlY1N0YXRlKiwgY29uc3QgQXJnTGlzdCYpOwogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RhdGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
Q29uc3RydWN0b3IuY3BwCmluZGV4IGVmYWViMGYxMjFjNDE3N2IzYWY2ZjNkYzY5NzAzMmJmOTYz
YmM2N2IuLmUxOTI2N2E5MTkwODYzYWJkNmM4YTA1MzgwY2ZlZjU1Zjg5YjczYTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcApAQCAt
MTIxLDcgKzEyMSw3IEBAIEpTT2JqZWN0KiBjb25zdHJ1Y3REYXRlKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgQXJnTGlzdCYgYXJncykKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBuZXcg
KGV4ZWMpIERhdGVJbnN0YW5jZShleGVjLCB2YWx1ZSk7CisgICAgcmV0dXJuIG5ldyAoZXhlYykg
RGF0ZUluc3RhbmNlKGV4ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUoKSktPmds
b2JhbE9iamVjdCgpLT5kYXRlU3RydWN0dXJlKCksIHZhbHVlKTsKIH0KICAgICAKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhEYXRlQ29uc3RydWN0b3Io
RXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZUluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJ
bnN0YW5jZS5jcHAKaW5kZXggMjA0YjhhYzJjZWMwZTNlYWE3MGYxMTk1NmU3YjYxMDlmNTY0NGI1
Yy4uNzRhZGRhNDdmYWIzZmE2ZTExMmI4OGE1Zjc3NmM0NzY3NjE4MTNjZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwCkBAIC00OCwxMyArNDgs
NiBAQCBEYXRlSW5zdGFuY2U6OkRhdGVJbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIE5vbk51bGxQ
YXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dQogICAgIHNldEludGVybmFsVmFsdWUoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBqc051bWJlcih0aW1lQ2xpcCh0aW1lKSkpOwogfQogCi1EYXRlSW5zdGFu
Y2U6OkRhdGVJbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIGRvdWJsZSB0aW1lKQotICAgIDogSlNX
cmFwcGVyT2JqZWN0KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+ZGF0ZVN0cnVjdHVyZSgp
KQotewotICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgc2V0SW50ZXJuYWxWYWx1
ZShleGVjLT5nbG9iYWxEYXRhKCksIGpzTnVtYmVyKHRpbWVDbGlwKHRpbWUpKSk7Ci19Ci0KIGNv
bnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBEYXRlSW5zdGFuY2U6OmNhbGN1bGF0ZUdyZWdvcmlhbkRh
dGVUaW1lKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKICAgICBkb3VibGUgbWlsbGkgPSBpbnRl
cm5hbE51bWJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RGF0ZUluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFu
Y2UuaAppbmRleCA2Yzk3Nzg5N2Q5ZGFjYmU3ZmQxYWQwN2Q5YjM1YzJmZWVhY2E3MjI1Li5kMGRj
ZjBiYzM0NmRkNzcyOTVjMzEwMDkxMzE2NjNkMzQyMjJmMmFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaApAQCAtMzEsNyArMzEsNiBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgIGNsYXNzIERhdGVJbnN0YW5jZSA6IHB1YmxpYyBKU1dyYXBwZXJPYmpl
Y3QgewogICAgIHB1YmxpYzoKLSAgICAgICAgRGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSosIGRvdWJs
ZSk7CiAgICAgICAgIERhdGVJbnN0YW5jZShFeGVjU3RhdGUqLCBOb25OdWxsUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+LCBkb3VibGUpOwogICAgICAgICBleHBsaWNpdCBEYXRlSW5zdGFuY2UoRXhlY1N0
YXRlKiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMmU1M2I5NTQw
MGU3MmNhZWExMzgwZWNlODFiNWQ1NWZhZDgyOTVkOS4uN2Y0ZjgyY2VjNWViYzQ1OGFhZDk0N2Y0
YTM4ODdhMzY2MWE0NDBiNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgRXJyb3JDb25zdHJ1Y3Rv
cjo6RXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdp
dGhFcnJvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU1ZhbHVlIG1lc3Nh
Z2UgPSBleGVjLT5hcmd1bWVudENvdW50KCkgPyBleGVjLT5hcmd1bWVudCgwKSA6IGpzVW5kZWZp
bmVkKCk7Ci0gICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKS0+ZXJyb3JTdHJ1Y3R1cmUoKTsKKyAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0
dXJlID0gYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmNhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0KCkt
PmVycm9yU3RydWN0dXJlKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3Rh
bmNlOjpjcmVhdGUoZXhlYywgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UpKTsKIH0KIApAQCAtNTUs
NyArNTUsNyBAQCBDb25zdHJ1Y3RUeXBlIEVycm9yQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERh
dGEoQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxFcnJvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAg
ICBKU1ZhbHVlIG1lc3NhZ2UgPSBleGVjLT5hcmd1bWVudENvdW50KCkgPyBleGVjLT5hcmd1bWVu
dCgwKSA6IGpzVW5kZWZpbmVkKCk7Ci0gICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+ZXJyb3JTdHJ1Y3R1cmUoKTsKKyAgICBTdHJ1Y3R1
cmUqIGVycm9yU3RydWN0dXJlID0gYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmNhbGxlZSgpKS0+
Z2xvYmFsT2JqZWN0KCktPmVycm9yU3RydWN0dXJlKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZXhlYywgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2Up
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rp
b25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlv
bkNvbnN0cnVjdG9yLmNwcAppbmRleCA1NzNiZDViNGU4OWRjMjM0NDk2YzViNGYwMDc0MGQ5ODU0
Mjk2NTMyLi5hOWYwYTA2NjJkOWZlMDg3ODU1ZjhiNDFjMWRlN2QyOGQ0YzE5YWJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9y
LmNwcApAQCAtNDksNyArNDksNyBAQCBGdW5jdGlvbkNvbnN0cnVjdG9yOjpGdW5jdGlvbkNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aEZ1bmN0aW9uQ29uc3RydWN0
b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKLSAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGV4ZWMsIGFyZ3MpKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGV4ZWMsIGFzSW50ZXJuYWxG
dW5jdGlvbihleGVjLT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLCBhcmdzKSk7CiB9CiAKIENv
bnN0cnVjdFR5cGUgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShDb25zdHJ1
Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQpAQCAtNjEsNyArNjEsNyBAQCBDb25zdHJ1Y3RUeXBlIEZ1
bmN0aW9uQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYgY29uc3Ry
dWN0RGF0YQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEZ1bmN0aW9u
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGV4ZWMsIGFyZ3Mp
KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGV4ZWMsIGFz
SW50ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLCBhcmdzKSk7
CiB9CiAKIC8vIEVDTUEgMTUuMy4xIFRoZSBGdW5jdGlvbiBDb25zdHJ1Y3RvciBDYWxsZWQgYXMg
YSBGdW5jdGlvbgpAQCAtNzIsNyArNzIsNyBAQCBDYWxsVHlwZSBGdW5jdGlvbkNvbnN0cnVjdG9y
OjpnZXRDYWxsRGF0YShDYWxsRGF0YSYgY2FsbERhdGEpCiB9CiAKIC8vIEVDTUEgMTUuMy4yIFRo
ZSBGdW5jdGlvbiBDb25zdHJ1Y3RvcgotSlNPYmplY3QqIGNvbnN0cnVjdEZ1bmN0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncywgY29uc3QgSWRlbnRpZmllciYgZnVuY3Rp
b25OYW1lLCBjb25zdCBVU3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyKQorSlNPYmpl
Y3QqIGNvbnN0cnVjdEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgY29uc3QgQXJnTGlzdCYgYXJncywgY29uc3QgSWRlbnRpZmllciYgZnVuY3Rp
b25OYW1lLCBjb25zdCBVU3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyKQogewogICAg
IC8vIEZ1bmN0aW9ucyBuZWVkIHRvIGhhdmUgYSBzcGFjZSBmb2xsb3dpbmcgdGhlIG9wZW5pbmcg
eyBkdWUgdG8gZm9yIHdlYiBjb21wYXRpYmlsaXR5CiAgICAgLy8gc2VlIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDM1MApAQCAtOTYsNyArOTYsNiBAQCBKU09iamVj
dCogY29uc3RydWN0RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdz
LCBjb25zdCBJZGVudGlmaQogICAgICAgICBwcm9ncmFtID0gYnVpbGRlci50b1VTdHJpbmcoKTsK
ICAgICB9CiAKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpOwogICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSA9IGdsb2JhbE9i
amVjdC0+Z2xvYmFsRGF0YSgpOwogICAgIFNvdXJjZUNvZGUgc291cmNlID0gbWFrZVNvdXJjZShw
cm9ncmFtLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIpOwogICAgIEpTT2JqZWN0KiBleGNlcHRpb24g
PSAwOwpAQCAtMTExLDkgKzExMCw5IEBAIEpTT2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlvbihFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MsIGNvbnN0IElkZW50aWZpCiB9CiAKIC8v
IEVDTUEgMTUuMy4yIFRoZSBGdW5jdGlvbiBDb25zdHJ1Y3RvcgotSlNPYmplY3QqIGNvbnN0cnVj
dEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKK0pTT2JqZWN0
KiBjb25zdHJ1Y3RGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7Ci0gICAgcmV0dXJuIGNvbnN0cnVjdEZ1
bmN0aW9uKGV4ZWMsIGFyZ3MsIElkZW50aWZpZXIoZXhlYywgImFub255bW91cyIpLCBVU3RyaW5n
KCksIDEpOworICAgIHJldHVybiBjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3Qs
IGFyZ3MsIElkZW50aWZpZXIoZXhlYywgImFub255bW91cyIpLCBVU3RyaW5nKCksIDEpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaAppbmRleCA2YWY0ODYxMWQ3YjI4ZjI5NWE3ZTVjN2Q0
ZjUzZWZlZjI3ZTJiOGUwLi43ZjIxYjIwZmM1MWE2MTcxODUzZDNkZWJkZWZjYThhMDg0MDIyYmZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25z
dHJ1Y3Rvci5oCkBAIC0zNiw4ICszNiw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0
dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJik7CiAgICAgfTsKIAotICAgIEpTT2Jq
ZWN0KiBjb25zdHJ1Y3RGdW5jdGlvbihFeGVjU3RhdGUqLCBjb25zdCBBcmdMaXN0JiwgY29uc3Qg
SWRlbnRpZmllciYgZnVuY3Rpb25OYW1lLCBjb25zdCBVU3RyaW5nJiBzb3VyY2VVUkwsIGludCBs
aW5lTnVtYmVyKTsKLSAgICBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb24oRXhlY1N0YXRlKiwg
Y29uc3QgQXJnTGlzdCYpOworICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlvbihFeGVjU3Rh
dGUqLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0IEFyZ0xpc3QmLCBjb25zdCBJZGVudGlmaWVyJiBm
dW5jdGlvbk5hbWUsIGNvbnN0IFVTdHJpbmcmIHNvdXJjZVVSTCwgaW50IGxpbmVOdW1iZXIpOwor
ICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVj
dCosIGNvbnN0IEFyZ0xpc3QmKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCmluZGV4IDlhY2I3NzdiNjA2YTllNDMxYWM0MDky
ODQ1MGI4ZmNmNzY1N2JlYzYuLmNlN2ZlMjI3OGIzZTY1ODFhNGI0OTBlNzZjNDRjMGMxNmNhMzJj
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcApAQCAtMTE5LDcg
KzExOSw3IEBAIGJvb2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBQCiAgICAgLy8gVGhpcyBpcyBub3QgYSBn
ZW5lcmFsIHB1cnBvc2UgaW1wbGVtZW50YXRpb24gb2YgZ2V0T3duUHJvcGVydHlTbG90LgogICAg
IC8vIEl0IHNob3VsZCBvbmx5IGJlIGNhbGxlZCBieSBKU1ZhbHVlOjpnZXQuCiAgICAgLy8gSXQg
Y2FsbHMgZ2V0UHJvcGVydHlTbG90LCBub3QgZ2V0T3duUHJvcGVydHlTbG90LgotICAgIEpTT2Jq
ZWN0KiBvYmplY3QgPSB0b09iamVjdChleGVjKTsKKyAgICBKU09iamVjdCogb2JqZWN0ID0gdG9P
YmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKICAgICBzbG90LnNldEJh
c2Uob2JqZWN0KTsKICAgICBpZiAoIW9iamVjdC0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50
aWZpZXIsIHNsb3QpKQogICAgICAgICBzbG90LnNldFVuZGVmaW5lZCgpOwpAQCAtMTMxLDcgKzEz
MSw3IEBAIGJvb2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1
bnNpZ25lZCBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsCiAgICAgLy8gVGhpcyBpcyBub3QgYSBnZW5l
cmFsIHB1cnBvc2UgaW1wbGVtZW50YXRpb24gb2YgZ2V0T3duUHJvcGVydHlTbG90LgogICAgIC8v
IEl0IHNob3VsZCBvbmx5IGJlIGNhbGxlZCBieSBKU1ZhbHVlOjpnZXQuCiAgICAgLy8gSXQgY2Fs
bHMgZ2V0UHJvcGVydHlTbG90LCBub3QgZ2V0T3duUHJvcGVydHlTbG90LgotICAgIEpTT2JqZWN0
KiBvYmplY3QgPSB0b09iamVjdChleGVjKTsKKyAgICBKU09iamVjdCogb2JqZWN0ID0gdG9PYmpl
Y3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKICAgICBzbG90LnNldEJhc2Uo
b2JqZWN0KTsKICAgICBpZiAoIW9iamVjdC0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50aWZp
ZXIsIHNsb3QpKQogICAgICAgICBzbG90LnNldFVuZGVmaW5lZCgpOwpAQCAtMTQwLDI3ICsxNDAs
MjcgQEAgYm9vbCBKU0NlbGw6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIGlkZW50aWZpZXIsIFByb3BlcnR5U2wKIAogdm9pZCBKU0NlbGw6OnB1dChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICB0b09iamVjdChleGVjKS0+cHV0KGV4ZWMsIGlk
ZW50aWZpZXIsIHZhbHVlLCBzbG90KTsKKyAgICB0b09iamVjdChleGVjLCBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCkpLT5wdXQoZXhlYywgaWRlbnRpZmllciwgdmFsdWUsIHNsb3QpOwogfQog
CiB2b2lkIEpTQ2VsbDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaWRlbnRpZmllciwg
SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICB0b09iamVjdChleGVjKS0+cHV0KGV4ZWMsIGlkZW50aWZp
ZXIsIHZhbHVlKTsKKyAgICB0b09iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCkpLT5wdXQoZXhlYywgaWRlbnRpZmllciwgdmFsdWUpOwogfQogCiBib29sIEpTQ2VsbDo6ZGVs
ZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVy
KQogewotICAgIHJldHVybiB0b09iamVjdChleGVjKS0+ZGVsZXRlUHJvcGVydHkoZXhlYywgaWRl
bnRpZmllcik7CisgICAgcmV0dXJuIHRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSktPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIGlkZW50aWZpZXIpOwogfQogCiBib29sIEpT
Q2VsbDo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVy
KQogewotICAgIHJldHVybiB0b09iamVjdChleGVjKS0+ZGVsZXRlUHJvcGVydHkoZXhlYywgaWRl
bnRpZmllcik7CisgICAgcmV0dXJuIHRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSktPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIGlkZW50aWZpZXIpOwogfQogCiBKU09iamVj
dCogSlNDZWxsOjp0b1RoaXNPYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewotICAgIHJl
dHVybiB0b09iamVjdChleGVjKTsKKyAgICByZXR1cm4gdG9PYmplY3QoZXhlYywgZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpKTsKIH0KIAogSlNWYWx1ZSBKU0NlbGw6OmdldEpTTnVtYmVyKCkK
QEAgLTIwMyw3ICsyMDMsNyBAQCBVU3RyaW5nIEpTQ2VsbDo6dG9TdHJpbmcoRXhlY1N0YXRlKikg
Y29uc3QKICAgICByZXR1cm4gVVN0cmluZygpOwogfQogCi1KU09iamVjdCogSlNDZWxsOjp0b09i
amVjdChFeGVjU3RhdGUqKSBjb25zdAorSlNPYmplY3QqIEpTQ2VsbDo6dG9PYmplY3QoRXhlY1N0
YXRlKiwgSlNHbG9iYWxPYmplY3QqKSBjb25zdAogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRl
eCA0NDc0ODZjZTVjYzZlODVhNDM5NWYwMTI5YmE0OTlmNTI2OWFlMDQ5Li42MmNlZTM3OGQ5N2Vj
NzE4ZTVlNmI5OGRhNmFhNzQ3NjlmOWY0MTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGwuaApAQCAtMzUsNiArMzUsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorICAgIGNs
YXNzIEpTR2xvYmFsT2JqZWN0OworCiAjaWYgQ09NUElMRVIoTVNWQykKICAgICAvLyBJZiBXVEZf
TUFLRV9OT05DT1BZQUJMRSBpcyBhcHBsaWVkIHRvIEpTQ2VsbCB3ZSBlbmQgdXAgd2l0aCBhIGJ1
bmNoIG9mCiAgICAgLy8gdW5kZWZpbmVkIHJlZmVyZW5jZXMgdG8gdGhlIEpTQ2VsbCBjb3B5IGNv
bnN0cnVjdG9yIGFuZCBhc3NpZ25tZW50IG9wZXJhdG9yCkBAIC0xMDYsNyArMTA4LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCB0b0Jvb2xlYW4oRXhlY1N0YXRlKikg
Y29uc3Q7CiAgICAgICAgIHZpcnR1YWwgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0
OwogICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7Ci0g
ICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0OworICAg
ICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVj
dCopIGNvbnN0OwogCiAgICAgICAgIC8vIEdhcmJhZ2UgY29sbGVjdGlvbi4KICAgICAgICAgdm9p
ZCogb3BlcmF0b3IgbmV3KHNpemVfdCwgRXhlY1N0YXRlKik7CkBAIC0zMzYsNyArMzM4LDEyIEBA
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVj
dChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gaXNDZWxsKCkg
PyBhc0NlbGwoKS0+dG9PYmplY3QoZXhlYykgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMpOworICAg
ICAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpKSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywgZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpKTsKKyAgICB9CisKKyAgICBpbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6
OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b09iamVj
dChleGVjLCBnbG9iYWxPYmplY3QpIDogdG9PYmplY3RTbG93Q2FzZShleGVjLCBnbG9iYWxPYmpl
Y3QpOwogICAgIH0KIAogICAgIGlubGluZSBKU09iamVjdCogSlNWYWx1ZTo6dG9UaGlzT2JqZWN0
KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNOb3RBbk9iamVjdC5jcHAKaW5kZXggZTAxYjQwMTAzMWEyN2Q5M2U1NWFmOGVjYWM4Y2Nl
ZDFiMjY0Zjk3ZS4uMTExNWRjMDcwYjc0NDQ0ZTI2NWU0OGU0NGUzOGIzNzM2ZWUzZjAxNCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKQEAg
LTY3LDcgKzY3LDcgQEAgVVN0cmluZyBKU05vdEFuT2JqZWN0Ojp0b1N0cmluZyhFeGVjU3RhdGUq
IGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuICIiOwogfQogCi1KU09iamVjdCogSlNOb3RBbk9iamVj
dDo6dG9PYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAorSlNPYmplY3QqIEpTTm90QW5PYmpl
Y3Q6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqKSBjb25zdAogewog
ICAgIEFTU0VSVF9VTlVTRUQoZXhlYywgZXhlYy0+aGFkRXhjZXB0aW9uKCkpOwogICAgIHJldHVy
biBjb25zdF9jYXN0PEpTTm90QW5PYmplY3QqPih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAppbmRleCBiODgyMDM5MWVmNjE2NWFiMWZkZTA2
YzIwMDY4OTViNTY5YTJiNzk1Li43NWJjYTE4ZDgwNWRmNzdiMGM5NDM5ZTQyYjQ0OTAzN2IxYjQy
ZGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2Jq
ZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5o
CkBAIC01OCw3ICs1OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wg
dG9Cb29sZWFuKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGRvdWJsZSB0b051
bWJlcihFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBVU3RyaW5nIHRvU3RyaW5n
KEV4ZWNTdGF0ZSopIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0b09iamVjdChF
eGVjU3RhdGUqKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBKU09iamVjdCogdG9PYmplY3QoRXhl
Y1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKIAogICAgICAgICAvLyBKU09iamVjdCBt
ZXRob2RzCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCBkNzU3MGU5MTNiZmFj
NGJhMzc4ZTM4NWQzZDBhMzI4NjI4NGZmNGEyLi5iMzA3NTQwNzljYjk0NGIzYWE2MDYzZjk1OGI1
YjMwMGE0YjY1MWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
Y3BwCkBAIC00ODksNyArNDg5LDcgQEAgVVN0cmluZyBKU09iamVjdDo6dG9TdHJpbmcoRXhlY1N0
YXRlKiBleGVjKSBjb25zdAogICAgIHJldHVybiBwcmltaXRpdmUudG9TdHJpbmcoZXhlYyk7CiB9
CiAKLUpTT2JqZWN0KiBKU09iamVjdDo6dG9PYmplY3QoRXhlY1N0YXRlKikgY29uc3QKK0pTT2Jq
ZWN0KiBKU09iamVjdDo6dG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKSBjb25z
dAogewogICAgIHJldHVybiBjb25zdF9jYXN0PEpTT2JqZWN0Kj4odGhpcyk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCA2NmFjMmQ2YmExNjIxNzM2Mzdm
N2IzOTIxMGU2MzUwNTY4OTAwZjg2Li5mZTAxY2I5OTJkNjMwMmE0ZTg2MzkyNjAwODE4MTE2ODky
NGUwZWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTEz
OCw3ICsxMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIHRvQm9v
bGVhbihFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBkb3VibGUgdG9OdW1iZXIo
RXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgVVN0cmluZyB0b1N0cmluZyhFeGVj
U3RhdGUqKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0
YXRlKikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0
ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAKICAgICAgICAgdmlydHVhbCBKU09iamVjdCog
dG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIEpTVmFsdWUg
dG9TdHJpY3RUaGlzT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCmluZGV4IGM0YWU5NjljN2E2ZjViNzJkZmIzODFkMjVi
Y2RlMGFkNjc2M2ZkOTYuLmQ5YzRkNDY4Yjc1MjU1OWNkMzY3NTkxOWNmMzExM2RkNTkwMjU1ZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKQEAgLTI1Mywx
OSArMjUzLDE5IEBAIFVTdHJpbmcgSlNTdHJpbmc6OnRvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykg
Y29uc3QKICAgICByZXR1cm4gdmFsdWUoZXhlYyk7CiB9CiAKLWlubGluZSBTdHJpbmdPYmplY3Qq
IFN0cmluZ09iamVjdDo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNTdHJpbmcqIHN0cmluZykK
K2lubGluZSBTdHJpbmdPYmplY3QqIFN0cmluZ09iamVjdDo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIHN0cmluZykKIHsKLSAg
ICByZXR1cm4gbmV3IChleGVjKSBTdHJpbmdPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnN0cmluZ09iamVjdFN0cnVjdHVyZSgpLCBzdHJpbmcp
OworICAgIHJldHVybiBuZXcgKGV4ZWMpIFN0cmluZ09iamVjdChleGVjLT5nbG9iYWxEYXRhKCks
IGdsb2JhbE9iamVjdC0+c3RyaW5nT2JqZWN0U3RydWN0dXJlKCksIHN0cmluZyk7CiB9CiAKLUpT
T2JqZWN0KiBKU1N0cmluZzo6dG9PYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAorSlNPYmpl
Y3QqIEpTU3RyaW5nOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZ09iamVjdDo6Y3JlYXRlKGV4
ZWMsIGNvbnN0X2Nhc3Q8SlNTdHJpbmcqPih0aGlzKSk7CisgICAgcmV0dXJuIFN0cmluZ09iamVj
dDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCwgY29uc3RfY2FzdDxKU1N0cmluZyo+KHRoaXMp
KTsKIH0KIAogSlNPYmplY3QqIEpTU3RyaW5nOjp0b1RoaXNPYmplY3QoRXhlY1N0YXRlKiBleGVj
KSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmdPYmplY3Q6OmNyZWF0ZShleGVjLCBjb25zdF9j
YXN0PEpTU3RyaW5nKj4odGhpcykpOworICAgIHJldHVybiBTdHJpbmdPYmplY3Q6OmNyZWF0ZShl
eGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGNvbnN0X2Nhc3Q8SlNTdHJpbmcqPih0
aGlzKSk7CiB9CiAKIGJvb2wgSlNTdHJpbmc6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5kZXggMTEwMDJkYjI2
ZjEyZmQ5ZjM4MmZkODdjZDg3OGY5N2UzYjlkNTUxNy4uOTExM2Q0YTA0ZmIxM2Y3Mzg0NTIyNGVh
YTU5M2YzOTc2ZDI2MDU3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTdHJpbmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmlu
Zy5oCkBAIC00MDIsNyArNDAyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRQcmltaXRpdmVOdW1iZXIoRXhlY1N0YXRlKiwgZG91YmxlJiBudW1iZXIsIEpTVmFs
dWUmIHZhbHVlKTsKICAgICAgICAgdmlydHVhbCBib29sIHRvQm9vbGVhbihFeGVjU3RhdGUqKSBj
b25zdDsKICAgICAgICAgdmlydHVhbCBkb3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7
Ci0gICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0Owor
ICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9i
amVjdCopIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRl
KikgY29uc3Q7CiAKICAgICAgICAgdmlydHVhbCBKU09iamVjdCogdG9UaGlzT2JqZWN0KEV4ZWNT
dGF0ZSopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmNwcApp
bmRleCBmNDY2MmRiNzJkZWI2MzgwZWJlNmQ1YWY1M2NhOTMwMGEwMjUxNjNkLi5kM2VlODllYTg2
Yjc1ZDliYjc3MTQxMTBiNTA4NDQ4OGFhN2EwNjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1ZhbHVlLmNwcApAQCAtNTQsMTQgKzU0LDE0IEBAIGRvdWJsZSBKU1ZhbHVlOjp0
b0ludGVnZXJQcmVzZXJ2ZU5hTihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIHRy
dW5jKHRvTnVtYmVyKGV4ZWMpKTsKIH0KIAotSlNPYmplY3QqIEpTVmFsdWU6OnRvT2JqZWN0U2xv
d0Nhc2UoRXhlY1N0YXRlKiBleGVjKSBjb25zdAorSlNPYmplY3QqIEpTVmFsdWU6OnRvT2JqZWN0
U2xvd0Nhc2UoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBj
b25zdAogewogICAgIEFTU0VSVCghaXNDZWxsKCkpOwogCiAgICAgaWYgKGlzSW50MzIoKSB8fCBp
c0RvdWJsZSgpKQotICAgICAgICByZXR1cm4gY29uc3RydWN0TnVtYmVyKGV4ZWMsIGFzVmFsdWUo
KSk7CisgICAgICAgIHJldHVybiBjb25zdHJ1Y3ROdW1iZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBh
c1ZhbHVlKCkpOwogICAgIGlmIChpc1RydWUoKSB8fCBpc0ZhbHNlKCkpCi0gICAgICAgIHJldHVy
biBjb25zdHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4oZXhlYywgYXNWYWx1ZSgpKTsK
KyAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEJvb2xlYW5Gcm9tSW1tZWRpYXRlQm9vbGVhbihleGVj
LCBnbG9iYWxPYmplY3QsIGFzVmFsdWUoKSk7CiAKICAgICBBU1NFUlQoaXNVbmRlZmluZWRPck51
bGwoKSk7CiAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVOb3RBbk9iamVjdEVycm9yKGV4ZWMs
ICp0aGlzKSk7CkBAIC03Myw5ICs3Myw5IEBAIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b1RoaXNPYmpl
Y3RTbG93Q2FzZShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgQVNTRVJUKCFpc0NlbGwoKSk7
CiAKICAgICBpZiAoaXNJbnQzMigpIHx8IGlzRG91YmxlKCkpCi0gICAgICAgIHJldHVybiBjb25z
dHJ1Y3ROdW1iZXIoZXhlYywgYXNWYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIGNvbnN0cnVjdE51
bWJlcihleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGFzVmFsdWUoKSk7CiAgICAg
aWYgKGlzVHJ1ZSgpIHx8IGlzRmFsc2UoKSkKLSAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEJvb2xl
YW5Gcm9tSW1tZWRpYXRlQm9vbGVhbihleGVjLCBhc1ZhbHVlKCkpOworICAgICAgICByZXR1cm4g
Y29uc3RydWN0Qm9vbGVhbkZyb21JbW1lZGlhdGVCb29sZWFuKGV4ZWMsIGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSwgYXNWYWx1ZSgpKTsKICAgICBBU1NFUlQoaXNVbmRlZmluZWRPck51bGwo
KSk7CiAgICAgcmV0dXJuIGV4ZWMtPmdsb2JhbFRoaXNWYWx1ZSgpOwogfQpAQCAtODQsOSArODQs
OSBAQCBKU09iamVjdCogSlNWYWx1ZTo6c3ludGhlc2l6ZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKCFpc0NlbGwoKSk7CiAgICAgaWYgKGlzTnVtYmVyKCkpCi0g
ICAgICAgIHJldHVybiBjb25zdHJ1Y3ROdW1iZXIoZXhlYywgYXNWYWx1ZSgpKTsKKyAgICAgICAg
cmV0dXJuIGNvbnN0cnVjdE51bWJlcihleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCks
IGFzVmFsdWUoKSk7CiAgICAgaWYgKGlzQm9vbGVhbigpKQotICAgICAgICByZXR1cm4gY29uc3Ry
dWN0Qm9vbGVhbkZyb21JbW1lZGlhdGVCb29sZWFuKGV4ZWMsIGFzVmFsdWUoKSk7CisgICAgICAg
IHJldHVybiBjb25zdHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4oZXhlYywgZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBhc1ZhbHVlKCkpOwogCiAgICAgQVNTRVJUKGlzVW5kZWZp
bmVkT3JOdWxsKCkpOwogICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlTm90QW5PYmplY3RFcnJv
cihleGVjLCAqdGhpcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5oCmlu
ZGV4IDBmZDZjNGNiNDMxZjczNzAwMDM3YWZlZDBjNTQ5NDY1OGVhYmNiMzkuLjA5ODEyM2UwMjQ3
ODk2ODQ5ZDZlYWFiODg4NmFmZDNiYzJkOTIzYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1ZhbHVlLmgKQEAgLTM3LDYgKzM3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xh
c3MgSWRlbnRpZmllcjsKICAgICBjbGFzcyBKU0NlbGw7CiAgICAgY2xhc3MgSlNHbG9iYWxEYXRh
OworICAgIGNsYXNzIEpTR2xvYmFsT2JqZWN0OwogICAgIGNsYXNzIEpTSW1tZWRpYXRlOwogICAg
IGNsYXNzIEpTT2JqZWN0OwogICAgIGNsYXNzIEpTU3RyaW5nOwpAQCAtMTg5LDYgKzE5MCw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSopIGNv
bnN0OwogICAgICAgICBVU3RyaW5nIHRvUHJpbWl0aXZlU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0
OwogICAgICAgICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CisgICAgICAg
IEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0Owog
CiAgICAgICAgIC8vIEludGVnZXIgY29udmVyc2lvbnMuCiAgICAgICAgIGRvdWJsZSB0b0ludGVn
ZXIoRXhlY1N0YXRlKikgY29uc3Q7CkBAIC0yNDQsNyArMjQ2LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIEpTVmFsdWUoSGFzaFRhYmxlRGVsZXRlZFZhbHVlVGFnKTsKIAogICAgICAgICBp
bmxpbmUgY29uc3QgSlNWYWx1ZSBhc1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gKnRoaXM7IH0KLSAg
ICAgICAgSlNPYmplY3QqIHRvT2JqZWN0U2xvd0Nhc2UoRXhlY1N0YXRlKikgY29uc3Q7CisgICAg
ICAgIEpTT2JqZWN0KiB0b09iamVjdFNsb3dDYXNlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0
KikgY29uc3Q7CiAgICAgICAgIEpTT2JqZWN0KiB0b1RoaXNPYmplY3RTbG93Q2FzZShFeGVjU3Rh
dGUqKSBjb25zdDsKIAogICAgICAgICBKU09iamVjdCogc3ludGhlc2l6ZVByb3RvdHlwZShFeGVj
U3RhdGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051
bWJlckNvbnN0cnVjdG9yLmNwcAppbmRleCAzZTRkNmM3NmU2Yzk1ZGQwODcxZGVkZDg0YzlmMzZh
YzBjOTY3Y2U1Li5hZWUxNDNhM2YwN2Q1NjE2YTYwYjFkYmZhN2NjZWI5ODRkNmY3YmJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3Iu
Y3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgc3RhdGljIEpTVmFsdWUgbnVtYmVyQ29uc3RydWN0b3JN
aW5WYWx1ZShFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJikKIC8vIEVDTUEg
MTUuNy4xCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRo
TnVtYmVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewotICAgIE51bWJlck9iamVjdCog
b2JqZWN0ID0gbmV3IChleGVjKSBOdW1iZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm51bWJlck9iamVjdFN0cnVjdHVyZSgpKTsKKyAgICBO
dW1iZXJPYmplY3QqIG9iamVjdCA9IG5ldyAoZXhlYykgTnVtYmVyT2JqZWN0KGV4ZWMtPmdsb2Jh
bERhdGEoKSwgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmNhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0
KCktPm51bWJlck9iamVjdFN0cnVjdHVyZSgpKTsKICAgICBkb3VibGUgbiA9IGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSA/IGV4ZWMtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGV4ZWMpIDogMDsKICAgICBv
YmplY3QtPnNldEludGVybmFsVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc051bWJlcihuKSk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShvYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5jcHAKaW5kZXggMzk2MzI5NGNmYTdjYzYzYzEy
M2M5Y2I0MjA3Y2NhNzM4ZmExZjBkZi4uNzRiNWU5ODFlM2FkZjVhNTMzOWMyMTMyNzJjM2Q5NDdk
ZmI0YjE5MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmpl
Y3QuY3BwCkBAIC00Miw5ICs0Miw5IEBAIEpTVmFsdWUgTnVtYmVyT2JqZWN0OjpnZXRKU051bWJl
cigpCiAgICAgcmV0dXJuIGludGVybmFsVmFsdWUoKTsKIH0KIAotTnVtYmVyT2JqZWN0KiBjb25z
dHJ1Y3ROdW1iZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIG51bWJlcikKK051bWJlck9iamVj
dCogY29uc3RydWN0TnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBudW1iZXIpCiB7Ci0gICAgTnVtYmVyT2JqZWN0KiBvYmplY3QgPSBu
ZXcgKGV4ZWMpIE51bWJlck9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKS0+bnVtYmVyT2JqZWN0U3RydWN0dXJlKCkpOworICAgIE51bWJlck9iamVj
dCogb2JqZWN0ID0gbmV3IChleGVjKSBOdW1iZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBn
bG9iYWxPYmplY3QtPm51bWJlck9iamVjdFN0cnVjdHVyZSgpKTsKICAgICBvYmplY3QtPnNldElu
dGVybmFsVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBudW1iZXIpOwogICAgIHJldHVybiBvYmpl
Y3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJP
YmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oCmlu
ZGV4IDE1NzFmZDQyY2U2YjBjMzJlODJlODFhZDZiMDMxNjBhOTFlN2VmN2EuLjkwZDBiMjZlMzA4
Mjg0NjI4MGViMTRmYTAwZDhiMzg1YzRiMGM4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlck9iamVjdC5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICB2aXJ0dWFsIEpTVmFsdWUgZ2V0SlNOdW1iZXIoKTsKICAgICB9OwogCi0gICAg
TnVtYmVyT2JqZWN0KiBjb25zdHJ1Y3ROdW1iZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSk7CisgICAg
TnVtYmVyT2JqZWN0KiBjb25zdHJ1Y3ROdW1iZXIoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3Qq
LCBKU1ZhbHVlKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAppbmRleCA1MDgwZWY4NjFj
M2UyZGYwNWMzODBiZWE4MDc5OTMyYmRkOTk0YTBhLi5jNjQyYTViNTlmMmQ1OThiY2E0ZGVhNTU4
Y2YyNTJlNzYyM2U5YzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCkBAIC05NSwxOCArOTUsMTggQEAgYm9vbCBPYmplY3RD
b25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmkKIH0KIAogLy8gRUNNQSAxNS4yLjIKLXN0YXRpYyBBTFdBWVNfSU5MSU5FIEpT
T2JqZWN0KiBjb25zdHJ1Y3RPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBh
cmdzKQorc3RhdGljIEFMV0FZU19JTkxJTkUgSlNPYmplY3QqIGNvbnN0cnVjdE9iamVjdChFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEFyZ0xpc3Qm
IGFyZ3MpCiB7CiAgICAgSlNWYWx1ZSBhcmcgPSBhcmdzLmF0KDApOwogICAgIGlmIChhcmcuaXNV
bmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0KGV4
ZWMpOwotICAgIHJldHVybiBhcmcudG9PYmplY3QoZXhlYyk7CisgICAgICAgIHJldHVybiBjb25z
dHJ1Y3RFbXB0eU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QpOworICAgIHJldHVybiBhcmcudG9P
YmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0KTsKIH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY29uc3RydWN0V2l0aE9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShjb25zdHJ1Y3RPYmplY3QoZXhlYywgYXJncykpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoY29uc3RydWN0T2JqZWN0KGV4ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUo
KSktPmdsb2JhbE9iamVjdCgpLCBhcmdzKSk7CiB9CiAKIENvbnN0cnVjdFR5cGUgT2JqZWN0Q29u
c3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkK
QEAgLTExOCw3ICsxMTgsNyBAQCBDb25zdHJ1Y3RUeXBlIE9iamVjdENvbnN0cnVjdG9yOjpnZXRD
b25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCiBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBl
eGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGNvbnN0cnVjdE9iamVjdChleGVjLCBhcmdzKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShjb25zdHJ1Y3RPYmplY3QoZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmNhbGxl
ZSgpKS0+Z2xvYmFsT2JqZWN0KCksIGFyZ3MpKTsKIH0KIAogQ2FsbFR5cGUgT2JqZWN0Q29uc3Ry
dWN0b3I6OmdldENhbGxEYXRhKENhbGxEYXRhJiBjYWxsRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCAzNDhmMzhh
ZTQyNTUzYjRkYTQxY2M3MGJlNzM2MGY0NjJjMjdiM2Y0Li4xOWI0YjM2MWU2Yzg4NGQ5NDFmMGI3
M2RlZTU1ZmY5NTU2ZWQyMGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0yOTMsNyArMjkzLDcgQEAgdm9pZCBzZXRS
ZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNl
T2JqZWN0LCBKU1ZhbHUKIH0KIAogLy8gRUNNQSAxNS4xMC40Ci1KU09iamVjdCogY29uc3RydWN0
UmVnRXhwKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKK0pTT2JqZWN0KiBj
b25zdHJ1Y3RSZWdFeHAoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewogICAgIEpTVmFsdWUgYXJnMCA9IGFyZ3MuYXQo
MCk7CiAgICAgSlNWYWx1ZSBhcmcxID0gYXJncy5hdCgxKTsKQEAgLTMyMCwxMyArMzIwLDEzIEBA
IEpTT2JqZWN0KiBjb25zdHJ1Y3RSZWdFeHAoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0
JiBhcmdzKQogICAgIFJlZlB0cjxSZWdFeHA+IHJlZ0V4cCA9IGV4ZWMtPmdsb2JhbERhdGEoKS5y
ZWdFeHBDYWNoZSgpLT5sb29rdXBPckNyZWF0ZShwYXR0ZXJuLCBmbGFncyk7CiAgICAgaWYgKCFy
ZWdFeHAtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRl
U3ludGF4RXJyb3IoZXhlYywgcmVnRXhwLT5lcnJvck1lc3NhZ2UoKSkpOwotICAgIHJldHVybiBu
ZXcgKGV4ZWMpIFJlZ0V4cE9iamVjdChleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKS0+cmVnRXhwU3RydWN0dXJlKCksIHJlZ0V4cC5yZWxlYXNl
KCkpOworICAgIHJldHVybiBuZXcgKGV4ZWMpIFJlZ0V4cE9iamVjdChleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCksIGdsb2JhbE9iamVjdC0+cmVnRXhwU3RydWN0dXJlKCksIHJlZ0V4cC5yZWxl
YXNlKCkpOwogfQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3RXaXRoUmVnRXhwQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3Qg
YXJncyhleGVjKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdFJlZ0V4cChl
eGVjLCBhcmdzKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RSZWdFeHAo
ZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmNhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0KCks
IGFyZ3MpKTsKIH0KIAogQ29uc3RydWN0VHlwZSBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3Ry
dWN0RGF0YShDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQpAQCAtMzM5LDcgKzMzOSw3IEBA
IENvbnN0cnVjdFR5cGUgUmVnRXhwQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoQ29uc3Ry
dWN0RGF0YSYgY29uc3RydWN0RGF0YSkKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxSZWdFeHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgQXJnTGlz
dCBhcmdzKGV4ZWMpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0UmVnRXhw
KGV4ZWMsIGFyZ3MpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdFJlZ0V4
cChleGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+Y2FsbGVlKCkpLT5nbG9iYWxPYmplY3Qo
KSwgYXJncykpOwogfQogCiBDYWxsVHlwZSBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEo
Q2FsbERhdGEmIGNhbGxEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENvbnN0cnVjdG9yLmgKaW5kZXggMDNjNmJlYTJiYTM4NjQ2NTMyZGQ3ZTUxZmFhYTNm
NjFlMmY5ODUxNy4uNWUwYjJiODUwYjFiOGE2YzJjMDAwODg3NTYzNWMyZmZjOTkxNWMwNCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3Iu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5o
CkBAIC05Niw3ICs5Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgUmVnRXhwQ29uc3RydWN0
b3IqIGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZSk7CiAKLSAgICBKU09iamVjdCogY29uc3Ry
dWN0UmVnRXhwKEV4ZWNTdGF0ZSosIGNvbnN0IEFyZ0xpc3QmKTsKKyAgICBKU09iamVjdCogY29u
c3RydWN0UmVnRXhwKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgQXJnTGlzdCYp
OwogCiAgICAgaW5saW5lIFJlZ0V4cENvbnN0cnVjdG9yKiBhc1JlZ0V4cENvbnN0cnVjdG9yKEpT
VmFsdWUgdmFsdWUpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCmluZGV4IDUzOThmMzEyYjhjNDE5ZDVhNDFjNjZlMTlm
NWNhM2VjZWM3ODAyYjYuLmVkMDg4ZTRmNmQwNzM2ZDlhMGJkYjg0NzI1NDU1ZDBkOTNiMjcwODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1
Y3Rvci5jcHAKQEAgLTY3LDkgKzY3LDEwIEBAIFN0cmluZ0NvbnN0cnVjdG9yOjpTdHJpbmdDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAvLyBF
Q01BIDE1LjUuMgogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
V2l0aFN0cmluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKKyAgICBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0ID0gYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmNhbGxlZSgpKS0+
Z2xvYmFsT2JqZWN0KCk7CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudENvdW50KCkpCi0gICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUobmV3IChleGVjKSBTdHJpbmdPYmplY3QoZXhlYywgZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5zdHJpbmdPYmplY3RTdHJ1Y3R1cmUoKSkpOwotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUobmV3IChleGVjKSBTdHJpbmdPYmplY3QoZXhlYywgZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5zdHJpbmdPYmplY3RTdHJ1Y3R1cmUoKSwgZXhlYy0+
YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYykpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShuZXcgKGV4ZWMpIFN0cmluZ09iamVjdChleGVjLCBnbG9iYWxPYmplY3QtPnN0cmluZ09i
amVjdFN0cnVjdHVyZSgpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShuZXcgKGV4ZWMp
IFN0cmluZ09iamVjdChleGVjLCBnbG9iYWxPYmplY3QtPnN0cmluZ09iamVjdFN0cnVjdHVyZSgp
LCBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKSkpOwogfQogCiBDb25zdHJ1Y3RUeXBl
IFN0cmluZ0NvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0
cnVjdERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5o
CmluZGV4IDBlMmEyYjI0MTNjOThlMmNhNzEwYzJjZGQ5YThiMDQwZDg3NGI2MDIuLmFlMzM3NmQy
MmFjZTUzYTgxOWEzMDdkNDkzYzUxNWE5Mjg3OWQwNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBTdHJpbmdPYmplY3QoRXhlY1N0YXRlKiwgTm9uTnVsbFBhc3NSZWZQdHI8
U3RydWN0dXJlPik7CiAgICAgICAgIFN0cmluZ09iamVjdChFeGVjU3RhdGUqLCBOb25OdWxsUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+LCBjb25zdCBVU3RyaW5nJik7CiAKLSAgICAgICAgc3RhdGljIFN0
cmluZ09iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKik7CisgICAgICAgIHN0YXRp
YyBTdHJpbmdPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIEpTU3Ry
aW5nKik7CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdEdsdWUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwppbmRl
eCBmYWNhYTAxZDE4ODVkY2IxNWQwNjQyOTJmOWRlMGQ1YWE4YzZmYmFkLi5hNGM1YzVhZDMwMDAw
ZGZkZjNlZTNhYTA2MTU0NjgxYzY1ZDcwMTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dEdsdWUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOCBAQAorMjAxMS0wMy0yNSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGluc3Rh
bmNlb2YgQXJyYXkgdGVzdCBmYWlscyB3aGVuIHVzaW5nIGlmcmFtZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjUwCisKKyAgICAgICAgVXAgZGF0
ZSBmb3IgbmV3IHRvT2JqZWN0IGFwaQorCisgICAgICAgICogVXNlck9iamVjdEltcC5jcHA6Cisg
ICAgICAgIChVc2VyT2JqZWN0SW1wOjp0b1ByaW1pdGl2ZSk6CisgICAgICAgIChVc2VyT2JqZWN0
SW1wOjp0b0Jvb2xlYW4pOgorICAgICAgICAoVXNlck9iamVjdEltcDo6dG9OdW1iZXIpOgorICAg
ICAgICAoVXNlck9iamVjdEltcDo6dG9TdHJpbmcpOgorCiAyMDExLTAzLTIyICBFcmljIFNlaWRl
bCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCmluZGV4IGY0OGEyMzA0Y2NiMjQ4
YTI0YWQyOWFhYjAxNzI5YzBlMDBhOTEyMDkuLmEwNGY1OGU0NjQwZGExNDQxOGQ2ODU4ZjEyYmRi
NDkyNWU5MWI5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0
SW1wLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKQEAg
LTE2Nyw3ICsxNjcsNyBAQCBKU1VzZXJPYmplY3QqIFVzZXJPYmplY3RJbXA6OkdldEpTVXNlck9i
amVjdCgpIGNvbnN0CiBKU1ZhbHVlIFVzZXJPYmplY3RJbXA6OnRvUHJpbWl0aXZlKEV4ZWNTdGF0
ZSAqZXhlYywgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSkgY29uc3QKIHsKICAgICBKU1ZhbHVlIHJl
c3VsdCA9IGpzVW5kZWZpbmVkKCk7Ci0gICAgSlNVc2VyT2JqZWN0KiBqc09ialB0ciA9IEtKU1Zh
bHVlVG9KU09iamVjdCh0b09iamVjdChleGVjKSwgZXhlYyk7CisgICAgSlNVc2VyT2JqZWN0KiBq
c09ialB0ciA9IEtKU1ZhbHVlVG9KU09iamVjdCh0b09iamVjdChleGVjLCBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCkpLCBleGVjKTsKICAgICBDRlR5cGVSZWYgY2ZWYWx1ZSA9IGpzT2JqUHRy
ID8ganNPYmpQdHItPkNvcHlDRlZhbHVlKCkgOiAwOwogICAgIGlmIChjZlZhbHVlKSB7CiAgICAg
ICAgIENGVHlwZUlEIGNmVHlwZSA9IENGR2V0VHlwZUlEKGNmVmFsdWUpOyAgLy8gdG9QcmltaXRp
dmUKQEAgLTIwNCw3ICsyMDQsNyBAQCBKU1ZhbHVlIFVzZXJPYmplY3RJbXA6OnRvUHJpbWl0aXZl
KEV4ZWNTdGF0ZSAqZXhlYywgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSkgY29ucwogYm9vbCBVc2Vy
T2JqZWN0SW1wOjp0b0Jvb2xlYW4oRXhlY1N0YXRlICpleGVjKSBjb25zdAogewogICAgIGJvb2wg
cmVzdWx0ID0gZmFsc2U7Ci0gICAgSlNVc2VyT2JqZWN0KiBqc09ialB0ciA9IEtKU1ZhbHVlVG9K
U09iamVjdCh0b09iamVjdChleGVjKSwgZXhlYyk7CisgICAgSlNVc2VyT2JqZWN0KiBqc09ialB0
ciA9IEtKU1ZhbHVlVG9KU09iamVjdCh0b09iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCkpLCBleGVjKTsKICAgICBDRlR5cGVSZWYgY2ZWYWx1ZSA9IGpzT2JqUHRyID8ganNP
YmpQdHItPkNvcHlDRlZhbHVlKCkgOiAwOwogICAgIGlmIChjZlZhbHVlKQogICAgIHsKQEAgLTI4
NCw3ICsyODQsNyBAQCBib29sIFVzZXJPYmplY3RJbXA6OnRvQm9vbGVhbihFeGVjU3RhdGUgKmV4
ZWMpIGNvbnN0CiBkb3VibGUgVXNlck9iamVjdEltcDo6dG9OdW1iZXIoRXhlY1N0YXRlICpleGVj
KSBjb25zdAogewogICAgIGRvdWJsZSByZXN1bHQgPSAwOwotICAgIEpTVXNlck9iamVjdCoganNP
YmpQdHIgPSBLSlNWYWx1ZVRvSlNPYmplY3QodG9PYmplY3QoZXhlYyksIGV4ZWMpOworICAgIEpT
VXNlck9iamVjdCoganNPYmpQdHIgPSBLSlNWYWx1ZVRvSlNPYmplY3QodG9PYmplY3QoZXhlYywg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgZXhlYyk7CiAgICAgQ0ZUeXBlUmVmIGNmVmFs
dWUgPSBqc09ialB0ciA/IGpzT2JqUHRyLT5Db3B5Q0ZWYWx1ZSgpIDogMDsKICAgICBpZiAoY2ZW
YWx1ZSkKICAgICB7CkBAIC0zMTgsNyArMzE4LDcgQEAgZG91YmxlIFVzZXJPYmplY3RJbXA6OnRv
TnVtYmVyKEV4ZWNTdGF0ZSAqZXhlYykgY29uc3QKIFVTdHJpbmcgVXNlck9iamVjdEltcDo6dG9T
dHJpbmcoRXhlY1N0YXRlICpleGVjKSBjb25zdAogewogICAgIFVTdHJpbmcgcmVzdWx0OwotICAg
IEpTVXNlck9iamVjdCoganNPYmpQdHIgPSBLSlNWYWx1ZVRvSlNPYmplY3QodG9PYmplY3QoZXhl
YyksIGV4ZWMpOworICAgIEpTVXNlck9iamVjdCoganNPYmpQdHIgPSBLSlNWYWx1ZVRvSlNPYmpl
Y3QodG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgZXhlYyk7CiAg
ICAgQ0ZUeXBlUmVmIGNmVmFsdWUgPSBqc09ialB0ciA/IGpzT2JqUHRyLT5Db3B5Q0ZWYWx1ZSgp
IDogMDsKICAgICBpZiAoY2ZWYWx1ZSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJiYzg0ODgwZmRm
ZWI5NGYxOTgwZTg2ZmU4MDgzZmE5YWY1ZWZlZC4uMTFiODZmMjY0MTI5NzFhNzFjMzMzYTNkNmI4
MGYxMmYyZTc3M2NhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIyIEBACiAyMDExLTAzLTI1ICBP
bGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgaW5zdGFuY2VvZiBBcnJheSB0ZXN0IGZhaWxzIHdoZW4g
dXNpbmcgaWZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcyNTAKKworICAgICAgICBVcGRhdGUgZm9yIG5ldyBmdW5jdGlvbiBhbmQgZGF0ZSBh
cGlzCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpICh0ZXN0cyBjb21pbmcpCisKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzRGF0ZU9yTnVs
bCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0xhenlFdmVudExpc3RlbmVyOjppbml0aWFsaXplSlNGdW5jdGlvbik6
CisKKzIwMTEtMDMtMjUgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKwogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KIAogICAgICAgICBBbGxvdyBkZWZpbmVPd25Qcm9w
ZXJ0eSB0byB3b3JrIG9uIERPTU9iamVjdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjY2QwYmM1NzFlNjVmMWUwODdkMmJhMzVj
MTkyNTg2YWY4YzMyZWM4Li40MDRkYzIyNjBhZTc2YTQ0NzgyYzg4YTdjZGIzNTJjOWIxNWEzYTU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMTEyNSw3ICsxMTEyNSw3IEBACiAJCUI1MjNDRjA0MTE4MjY3NTQwMEVCQjI5QyAv
KiBEYXRhYmFzZVN5bmMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YWJh
c2VTeW5jLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1MjVBOTYzMTFDQTIzNDAw
MDNBMjNBOCAvKiBKU1NRTEV4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1NRTEV4Y2VwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTI1
QTk2NDExQ0EyMzQwMDAzQTIzQTggLyogSlNTUUxFeGNlcHRpb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTUUxFeGNlcHRpb24uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlCNTMyMEQ2OTEyMkEyNEU5MDAyRDE0NDAgLyogRm9udFBsYXRmb3Jt
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGb250UGxhdGZvcm1EYXRh
Lmg7IHBhdGggPSBGb250UGxhdGZvcm1EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUI1MzIwRDY5MTIyQTI0RTkwMDJEMTQ0MCAvKiBGb250UGxhdGZvcm1EYXRhLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRQbGF0Zm9ybURhdGEuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjUzMjBENkExMjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQbGF0
Zm9ybURhdGFDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IEZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QjU1MEI1MjExMURDNjhBODAwOTIzODg1IC8qIFNRTFN0YXRlbWVudFN5bmMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1FMU3RhdGVtZW50U3luYy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1NTBCNTIyMTFEQzY4QTgwMDkyMzg4NSAvKiBTUUxT
dGF0ZW1lbnRTeW5jLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNRTFN0YXRl
bWVudFN5bmMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1Mzc1LDcgKzI1Mzc1
LDcgQEAKIAkJCQlCQzc3MkUxNjEzMzE2MkMyMDAxRUM5Q0UgLyogQ1NTTGluZUJveENvbnRhaW5W
YWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3RTM3RUYyRTEzMzkyMDg4MDBCMjkyNTAgLyog
U3VicmVzb3VyY2VMb2FkZXJDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0RjE0NDIyODEzMzlG
RDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCBpbiBTb3VyY2VzICovLAotIAkJ
CQk4NEI2MjY4NTEzMzEzOEY5MDA5NUE0ODkgLyogRm9udFBsYXRmb3JtRGF0YS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk4NEI2MjY4NTEzMzEzOEY5MDA5NUE0ODkgLyogRm9udFBsYXRmb3JtRGF0
YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQmluZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJp
bmRpbmcuY3BwCmluZGV4IDRkMThhNGUzNTY1YTA5NDk5NDAzYWI2ZmE5NDZkYWMyZTcyMGEwM2Yu
Ljg1MDFlYjkyNTY0NDA5OTFkYTU4OWNhZGRiMjI2ZGUyZWRiY2Q3YTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcApAQCAtNDgzLDcgKzQ4Myw3IEBAIEpT
VmFsdWUganNEYXRlT3JOdWxsKEV4ZWNTdGF0ZSogZXhlYywgZG91YmxlIHZhbHVlKQogewogICAg
IGlmICghaXNmaW5pdGUodmFsdWUpKQogICAgICAgICByZXR1cm4ganNOdWxsKCk7Ci0gICAgcmV0
dXJuIG5ldyAoZXhlYykgRGF0ZUluc3RhbmNlKGV4ZWMsIHZhbHVlKTsKKyAgICByZXR1cm4gbmV3
IChleGVjKSBEYXRlSW5zdGFuY2UoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5k
YXRlU3RydWN0dXJlKCksIHZhbHVlKTsKIH0KIAogZG91YmxlIHZhbHVlVG9EYXRlKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggOThkYjk3YTZmNDU1MGUwMmRkYWJmZTNm
ZjhkNWRhOWU2OTM5OGYyYS4uZTBhZGZhNzk2NTY2MTg3MzUyNTg0ZTQwMDE3NmE3ZDk0MDA4NGMx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0
ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0
ZW5lci5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCBKU09iamVjdCogSlNMYXp5RXZlbnRMaXN0ZW5l
cjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogZXhlYwogICAg
IGFyZ3MuYXBwZW5kKGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBzdHJpbmdUb1VTdHJpbmcobV9l
dmVudFBhcmFtZXRlck5hbWUpKSk7CiAgICAgYXJncy5hcHBlbmQoanNTdHJpbmcoZXhlYywgbV9j
b2RlKSk7CiAKLSAgICBKU09iamVjdCoganNGdW5jdGlvbiA9IGNvbnN0cnVjdEZ1bmN0aW9uKGV4
ZWMsIGFyZ3MsIElkZW50aWZpZXIoZXhlYywgc3RyaW5nVG9VU3RyaW5nKG1fZnVuY3Rpb25OYW1l
KSksIHN0cmluZ1RvVVN0cmluZyhtX3NvdXJjZVVSTCksIG1fbGluZU51bWJlcik7IC8vIEZJWE1F
OiBpcyBnbG9iYWxFeGVjIG9rPworICAgIEpTT2JqZWN0KiBqc0Z1bmN0aW9uID0gY29uc3RydWN0
RnVuY3Rpb24oZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBhcmdzLCBJZGVudGlm
aWVyKGV4ZWMsIHN0cmluZ1RvVVN0cmluZyhtX2Z1bmN0aW9uTmFtZSkpLCBzdHJpbmdUb1VTdHJp
bmcobV9zb3VyY2VVUkwpLCBtX2xpbmVOdW1iZXIpOyAvLyBGSVhNRTogaXMgZ2xvYmFsRXhlYyBv
az8KICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpIHsKICAgICAgICAgZXhlYy0+Y2xlYXJF
eGNlcHRpb24oKTsKICAgICAgICAgcmV0dXJuIDA7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87186</attachid>
            <date>2011-03-28 13:15:59 -0700</date>
            <delta_ts>2011-03-28 14:06:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-17250-20110328131558.patch</filename>
            <type>text/plain</type>
            <size>52959</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIxMzkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzYjMyNDliYmQ0ZTQ2YmM4OWIxN2Iy
NTdkNzFkZjNiOWU1ZDMzMjYwLi5hMGJkNTE5ZGU4YjU4MmJmNGRiMTk3NWJhMjJkZWRhNGJlZjk1
OGZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDMtMjggIE9saXZlciBIdW50ICA8b2xp
dmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBpbnN0YW5jZW9mIEFycmF5IHRlc3QgZmFpbHMgd2hlbiB1c2luZyBpZnJhbWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI1MAorCisg
ICAgICAgIEFkZCB0ZXN0IGNhc2VzIGZvciBjb3JyZWN0IGJlaGF2aW91cgorCisgICAgICAgICog
ZmFzdC9qcy9qcy1jb25zdHJ1Y3RvcnMtdXNlLWNvcnJlY3QtZ2xvYmFsLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9qcy9qcy1jb25zdHJ1Y3RvcnMtdXNlLWNvcnJlY3QtZ2xv
YmFsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvcmVzb3VyY2VzL2pzLWNvbnN0cnVj
dG9ycy11c2UtY29ycmVjdC1nbG9iYWwuanM6IEFkZGVkLgorCiAyMDExLTAzLTI4ICBTZXJnaW8g
VmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IGFkZGVkIG5ldyBHVEsrIHRlc3QgZXhwZWN0YXRpb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9qcy9qcy1jb25zdHJ1Y3RvcnMtdXNlLWNvcnJlY3QtZ2xvYmFsLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvanMtY29uc3RydWN0b3JzLXVzZS1jb3JyZWN0LWdsb2Jh
bC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQyZTExYmVlMDY5YTJlMzFjMzI3NzBiMTU0YTE3
MDg3MThiYmI5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvanMtY29u
c3RydWN0b3JzLXVzZS1jb3JyZWN0LWdsb2JhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNCBA
QAorVGVzdCB0byBlbnN1cmUgdGhhdCBqcyBjb25zdHJ1Y3RvcnMgY3JlYXRlIG9iamVjdHMgd2l0
aCB0aGUgY29ycmVjdCBjb25zdHJ1Y3RvcgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBuZXcgb3RoZXJHbG9iYWwuT2JqZWN0KCkgaW5zdGFuY2VvZiBvdGhlckdsb2JhbC5P
YmplY3QgaXMgdHJ1ZQorUEFTUyBvdGhlckdsb2JhbC5PYmplY3QoKSBpbnN0YW5jZW9mIG90aGVy
R2xvYmFsLk9iamVjdCBpcyB0cnVlCitQQVNTIG5ldyBvdGhlckdsb2JhbC5GdW5jdGlvbigpIGlu
c3RhbmNlb2Ygb3RoZXJHbG9iYWwuRnVuY3Rpb24gaXMgdHJ1ZQorUEFTUyBvdGhlckdsb2JhbC5G
dW5jdGlvbigpIGluc3RhbmNlb2Ygb3RoZXJHbG9iYWwuRnVuY3Rpb24gaXMgdHJ1ZQorUEFTUyBu
ZXcgb3RoZXJHbG9iYWwuQXJyYXkoKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLkFycmF5IGlzIHRy
dWUKK1BBU1Mgb3RoZXJHbG9iYWwuQXJyYXkoKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLkFycmF5
IGlzIHRydWUKK1BBU1MgbmV3IG90aGVyR2xvYmFsLk51bWJlcigpIGluc3RhbmNlb2Ygb3RoZXJH
bG9iYWwuTnVtYmVyIGlzIHRydWUKK1BBU1MgbmV3IG90aGVyR2xvYmFsLlN0cmluZygpIGluc3Rh
bmNlb2Ygb3RoZXJHbG9iYWwuU3RyaW5nIGlzIHRydWUKK1BBU1MgbmV3IG90aGVyR2xvYmFsLkJv
b2xlYW4oKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLkJvb2xlYW4gaXMgdHJ1ZQorUEFTUyBuZXcg
b3RoZXJHbG9iYWwuUmVnRXhwKCkgaW5zdGFuY2VvZiBvdGhlckdsb2JhbC5SZWdFeHAgaXMgdHJ1
ZQorUEFTUyBvdGhlckdsb2JhbC5SZWdFeHAoKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLlJlZ0V4
cCBpcyB0cnVlCitQQVNTIG5ldyBvdGhlckdsb2JhbC5EYXRlKCkgaW5zdGFuY2VvZiBvdGhlckds
b2JhbC5EYXRlIGlzIHRydWUKK1BBU1MgbmV3IG90aGVyR2xvYmFsLkVycm9yKCkgaW5zdGFuY2Vv
ZiBvdGhlckdsb2JhbC5FcnJvciBpcyB0cnVlCitQQVNTIG90aGVyR2xvYmFsLkVycm9yKCkgaW5z
dGFuY2VvZiBvdGhlckdsb2JhbC5FcnJvciBpcyB0cnVlCitQQVNTIG5ldyBvdGhlckdsb2JhbC5S
YW5nZUVycm9yKCkgaW5zdGFuY2VvZiBvdGhlckdsb2JhbC5SYW5nZUVycm9yIGlzIHRydWUKK1BB
U1Mgb3RoZXJHbG9iYWwuUmFuZ2VFcnJvcigpIGluc3RhbmNlb2Ygb3RoZXJHbG9iYWwuUmFuZ2VF
cnJvciBpcyB0cnVlCitQQVNTIG5ldyBvdGhlckdsb2JhbC5SZWZlcmVuY2VFcnJvcigpIGluc3Rh
bmNlb2Ygb3RoZXJHbG9iYWwuUmVmZXJlbmNlRXJyb3IgaXMgdHJ1ZQorUEFTUyBvdGhlckdsb2Jh
bC5SZWZlcmVuY2VFcnJvcigpIGluc3RhbmNlb2Ygb3RoZXJHbG9iYWwuUmVmZXJlbmNlRXJyb3Ig
aXMgdHJ1ZQorUEFTUyBuZXcgb3RoZXJHbG9iYWwuU3ludGF4RXJyb3IoKSBpbnN0YW5jZW9mIG90
aGVyR2xvYmFsLlN5bnRheEVycm9yIGlzIHRydWUKK1BBU1Mgb3RoZXJHbG9iYWwuU3ludGF4RXJy
b3IoKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLlN5bnRheEVycm9yIGlzIHRydWUKK1BBU1MgbmV3
IG90aGVyR2xvYmFsLlR5cGVFcnJvcigpIGluc3RhbmNlb2Ygb3RoZXJHbG9iYWwuVHlwZUVycm9y
IGlzIHRydWUKK1BBU1Mgb3RoZXJHbG9iYWwuVHlwZUVycm9yKCkgaW5zdGFuY2VvZiBvdGhlckds
b2JhbC5UeXBlRXJyb3IgaXMgdHJ1ZQorUEFTUyBuZXcgb3RoZXJHbG9iYWwuVVJJRXJyb3IoKSBp
bnN0YW5jZW9mIG90aGVyR2xvYmFsLlVSSUVycm9yIGlzIHRydWUKK1BBU1Mgb3RoZXJHbG9iYWwu
VVJJRXJyb3IoKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLlVSSUVycm9yIGlzIHRydWUKK1BBU1Mg
bmV3IG90aGVyR2xvYmFsLkltYWdlKCkgaW5zdGFuY2VvZiBvdGhlckdsb2JhbC5JbWFnZSBpcyB0
cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9qcy1jb25zdHJ1Y3RvcnMtdXNlLWNvcnJl
Y3QtZ2xvYmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL2pzLWNvbnN0cnVjdG9ycy11c2Ut
Y29ycmVjdC1nbG9iYWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZGVjNjkxZWEzYmNlMGY5M2Y4ZjA3N2Zj
M2NkNTE0NTc0YTU4MzdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9q
cy1jb25zdHJ1Y3RvcnMtdXNlLWNvcnJlY3QtZ2xvYmFsLmh0bWwKQEAgLTAsMCArMSwxNCBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPGlmcmFtZT48L2lmcmFtZT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
anMtY29uc3RydWN0b3JzLXVzZS1jb3JyZWN0LWdsb2JhbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9qcy1jb25zdHJ1
Y3RvcnMtdXNlLWNvcnJlY3QtZ2xvYmFsLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJj
ZXMvanMtY29uc3RydWN0b3JzLXVzZS1jb3JyZWN0LWdsb2JhbC5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjhj
YjA4NTU1NmUzNWZjMmFmYmVmMjFiMGEzZjBjYmU3ZjE2ZTgyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvanMtY29uc3RydWN0b3JzLXVzZS1jb3JyZWN0
LWdsb2JhbC5qcwpAQCAtMCwwICsxLDE2IEBACitkZXNjcmlwdGlvbigiVGVzdCB0byBlbnN1cmUg
dGhhdCBqcyBjb25zdHJ1Y3RvcnMgY3JlYXRlIG9iamVjdHMgd2l0aCB0aGUgY29ycmVjdCBjb25z
dHJ1Y3RvciIpOworCit2YXIgb3RoZXJHbG9iYWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgiaWZyYW1lIilbMF0uY29udGVudFdpbmRvdzsKK3ZhciBjb25zdHJ1Y3RvcnMgPSBbIk9i
amVjdCIsICJGdW5jdGlvbiIsICJBcnJheSIsICJOdW1iZXIiLCAiU3RyaW5nIiwgIkJvb2xlYW4i
LCAiUmVnRXhwIiwgIkRhdGUiLCAiRXJyb3IiLCAiUmFuZ2VFcnJvciIsICJSZWZlcmVuY2VFcnJv
ciIsICJTeW50YXhFcnJvciIsICJUeXBlRXJyb3IiLCAiVVJJRXJyb3IiLCAiSW1hZ2UiXTsKKwor
Zm9yICh2YXIgaSA9IDA7IGkgPCBjb25zdHJ1Y3RvcnMubGVuZ3RoOyBpKyspIHsKKyAgICBzaG91
bGRCZVRydWUoIm5ldyBvdGhlckdsb2JhbC4iICsgY29uc3RydWN0b3JzW2ldICsgIigpIGluc3Rh
bmNlb2Ygb3RoZXJHbG9iYWwuIiArIGNvbnN0cnVjdG9yc1tpXSk7CisgICAgdHJ5IHsKKyAgICAg
ICAgaWYgKCh0eXBlb2YgKG90aGVyR2xvYmFsW2NvbnN0cnVjdG9yc1tpXV0oKSkpID09PSAib2Jq
ZWN0IiB8fCAodHlwZW9mIChvdGhlckdsb2JhbFtjb25zdHJ1Y3RvcnNbaV1dKCkpKSA9PT0gImZ1
bmN0aW9uIikKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgib3RoZXJHbG9iYWwuIiArIGNvbnN0
cnVjdG9yc1tpXSArICIoKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLiIgKyBjb25zdHJ1Y3RvcnNb
aV0pOworICAgIH0gY2F0Y2goZSkgeworICAgIAorICAgIH0KK30KKworc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmpl
Y3RSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKaW5k
ZXggMzZjYTMzOGI3MTljYjYzMTAwZTdhNDc0MmE2MWE0ZGIyMDQwMmQ3Mi4uYWU0MDgzMGE1ZDc0
NTA3MDNhY2Y5MzNkZjYwMjQwNjc4NThiNzRmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU09iamVjdFJlZi5jcHAKQEAgLTEyNCw3ICsxMjQsNyBAQCBKU09iamVjdFJlZiBKU09iamVj
dE1ha2VGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBuYW1lLCB1bnNpZ25l
ZCBwYQogICAgICAgICBhcmdzLmFwcGVuZChqc1N0cmluZyhleGVjLCBwYXJhbWV0ZXJOYW1lc1tp
XS0+dXN0cmluZygpKSk7CiAgICAgYXJncy5hcHBlbmQoanNTdHJpbmcoZXhlYywgYm9keS0+dXN0
cmluZygpKSk7CiAKLSAgICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RnVuY3Rpb24oZXhl
YywgYXJncywgbmFtZUlELCBzb3VyY2VVUkwtPnVzdHJpbmcoKSwgc3RhcnRpbmdMaW5lTnVtYmVy
KTsKKyAgICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RnVuY3Rpb24oZXhlYywgZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBhcmdzLCBuYW1lSUQsIHNvdXJjZVVSTC0+dXN0cmluZygp
LCBzdGFydGluZ0xpbmVOdW1iZXIpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewog
ICAgICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICAgICAgKmV4Y2VwdGlvbiA9IHRvUmVmKGV4
ZWMsIGV4ZWMtPmV4Y2VwdGlvbigpKTsKQEAgLTIwNyw3ICsyMDcsNyBAQCBKU09iamVjdFJlZiBK
U09iamVjdE1ha2VSZWdFeHAoSlNDb250ZXh0UmVmIGN0eCwgc2l6ZV90IGFyZ3VtZW50Q291bnQs
IGNvbnN0IEpTVgogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJndW1lbnRDb3VudDsgKytp
KQogICAgICAgICBhcmdMaXN0LmFwcGVuZCh0b0pTKGV4ZWMsIGFyZ3VtZW50c1tpXSkpOwogCi0g
ICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0cnVjdFJlZ0V4cChleGVjLCBhcmdMaXN0KTsKKyAg
ICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0UmVnRXhwKGV4ZWMsIGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSwgIGFyZ0xpc3QpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkg
ewogICAgICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICAgICAgKmV4Y2VwdGlvbiA9IHRvUmVm
KGV4ZWMsIGV4ZWMtPmV4Y2VwdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDVh
Y2YwMWZiMTIyNWZlY2I4NzM0MDdhNTI0MjljN2Y0MjA3ZWI1ZTYuLmI2MjU5NTFhZjc1OGRlZjY2
ZDk4NmViNTg0N2E3ZWFlMDdiYmNiN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDgwIEBACisyMDExLTAzLTI1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaW5zdGFuY2Vv
ZiBBcnJheSB0ZXN0IGZhaWxzIHdoZW4gdXNpbmcgaWZyYW1lcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyNTAKKworICAgICAgICBUaGlzIGlzIGEg
cHJvYmxlbSB3aXRoIGFsbCBidWlsdCBpbiBjb25zdHJ1Y3RvcnMsIHRoZSB1c2Ugb2YKKyAgICAg
ICAgbGV4aWNhbEdsb2JhbE9iamVjdCByYXRoZXIgdGhhbiB0aGUgY29uc3RydWN0b3JzIG93biAK
KyAgICAgICAgZ2xvYmFsIG9iamVjdCByZWZlcmVuY2UgbWVhbnMgdGhhdCBhIGJ1aWx0aW4gd2ls
bCBhbHdheXMgdXNlCisgICAgICAgIHRoZSBwcm90b3R5cGUgZnJvbSB0aGUgbGV4aWNhbCBnbG9i
YWwgb2JqZWN0IHJhdGhlciB0aGFuIHRoYXQKKyAgICAgICAgb2YgdGhlIGNvbnN0cnVjdG9ycyBv
cmlnaW4uCisKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuY3BwOgorICAgICAgICAoSlNPYmpl
Y3RNYWtlRnVuY3Rpb24pOgorICAgICAgICAoSlNPYmplY3RNYWtlUmVnRXhwKToKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKToKKyAgICAg
ICAgKiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0
cnVjdEJvb2xlYW4pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0
ZUJvb2xlYW4pOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmg6CisgICAg
ICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3REYXRlKToKKyAgICAgICAgKiBydW50aW1lL0RhdGVJbnN0YW5jZS5jcHA6CisgICAgICAgICog
cnVudGltZS9EYXRlSW5zdGFuY2UuaDoKKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoRXJyb3JDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChKU0M6OmNhbGxFcnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL0Z1
bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoRnVuY3Rp
b25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNhbGxGdW5jdGlvbkNvbnN0cnVjdG9yKToK
KyAgICAgICAgKEpTQzo6Y29uc3RydWN0RnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvRnVu
Y3Rpb25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlNDOjpKU0Nl
bGw6OnB1dCk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAg
ICAoSlNDOjpKU0NlbGw6OnRvVGhpc09iamVjdCk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6dG9P
YmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAgIChKU0M6OkpTQ2Vs
bDo6SlNWYWx1ZTo6dG9PYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OkpTTm90QW5PYmplY3Q6OnRvT2JqZWN0KToKKyAgICAgICAgKiBy
dW50aW1lL0pTTm90QW5PYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoK
KyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnRvT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0pT
T2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5jcHA6CisgICAgICAgIChKU0M6
OlN0cmluZ09iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OnRvT2JqZWN0
KToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OnRvVGhpc09iamVjdCk6CisgICAgICAgICogcnVu
dGltZS9KU1N0cmluZy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1ZS5jcHA6CisgICAgICAg
IChKU0M6OkpTVmFsdWU6OnRvT2JqZWN0U2xvd0Nhc2UpOgorICAgICAgICAoSlNDOjpKU1ZhbHVl
Ojp0b1RoaXNPYmplY3RTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnN5bnRoZXNp
emVPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1bnRp
bWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoTnVt
YmVyQ29uc3RydWN0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6Y29uc3RydWN0TnVtYmVyKToKKyAgICAgICAgKiBydW50aW1lL051bWJlck9i
amVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpjb25zdHJ1Y3RPYmplY3QpOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoT2Jq
ZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpjYWxsT2JqZWN0Q29uc3RydWN0b3IpOgor
ICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpj
b25zdHJ1Y3RSZWdFeHApOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoUmVnRXhwQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoSlNDOjpjYWxsUmVnRXhwQ29uc3RydWN0b3IpOgorICAgICAgICAq
IHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0Nv
bnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVj
dG9yKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5oOgorCiAyMDExLTAzLTI4ICBP
bGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyODIx
MzApOiBJdCBtYWRlIGFsbCB0ZXN0cyBjcmFzaCAoUmVxdWVzdGVkIGJ5IE9zc3kgb24gI3dlYmtp
dCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCBmZDc3MTkz
YTg4ZDNkNmYzOWRhNGExMjg4MzE1OTAzNGQ5ZTA1OWYzLi5lMjY0N2QxYTMxZWJkNzgwYTQ0Yzcx
YzY2ZmUwNDRkYjRiYTc5MTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAKQEAgLTEyMiw3ICsxMjIsNiBAQCBfX1pOM0pTQzExY3JlYXRlRXJyb3JFUE5TXzlFeGVj
U3RhdGVFUktOU183VVN0cmluZ0UKIF9fWk4zSlNDMTFyZWdFeHBGbGFnc0VSS05TXzdVU3RyaW5n
RQogX19aTjNKU0MxMkRhdGVJbnN0YW5jZTZzX2luZm9FCiBfX1pOM0pTQzEyRGF0ZUluc3RhbmNl
QzFFUE5TXzlFeGVjU3RhdGVFTjNXVEYxN05vbk51bGxQYXNzUmVmUHRySU5TXzlTdHJ1Y3R1cmVF
RUVkCi1fX1pOM0pTQzEyRGF0ZUluc3RhbmNlQzFFUE5TXzlFeGVjU3RhdGVFZAogX19aTjNKU0Mx
MkpTR2xvYmFsRGF0YTEwQ2xpZW50RGF0YUQyRXYKIF9fWk4zSlNDMTJKU0dsb2JhbERhdGExMWpz
QXJyYXlWUHRyRQogX19aTjNKU0MxMkpTR2xvYmFsRGF0YTEyY3JlYXRlTGVha2VkRU5TXzE1VGhy
ZWFkU3RhY2tUeXBlRQpAQCAtMTgyLDcgKzE4MSw3IEBAIF9fWk4zSlNDMTZjcmVhdGVSYW5nZUVy
cm9yRVBOU185RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCiBfX1pOM0pTQzE2dGhyb3dTeW50YXhF
cnJvckVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvcjIxc2V0RHVt
cHNHZW5lcmF0ZWRDb2RlRWIKIF9fWk4zSlNDMTdQcm9wZXJ0eU5hbWVBcnJheTNhZGRFUE4zV1RG
MTBTdHJpbmdJbXBsRQotX19aTjNKU0MxN2NvbnN0cnVjdEZ1bmN0aW9uRVBOU185RXhlY1N0YXRl
RVJLTlNfN0FyZ0xpc3RFUktOU18xMElkZW50aWZpZXJFUktOU183VVN0cmluZ0VpCitfX1pOM0pT
QzE3Y29uc3RydWN0RnVuY3Rpb25FUE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RF
UktOU183QXJnTGlzdEVSS05TXzEwSWRlbnRpZmllckVSS05TXzdVU3RyaW5nRWkKIF9fWk4zSlND
MTdjcmVhdGVTeW50YXhFcnJvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzdVU3RyaW5nRQogX19aTjNK
U0MxOERlYnVnZ2VyQWN0aXZhdGlvbkMxRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOEpTT2JqZWN0
RQogX19aTjNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjExc2V0V3JpdGFibGVFYgpAQCAtNTM1LDcg
KzUzNCw3IEBAIF9fWk5LM0pTQzZKU0NlbGwxMXRvUHJpbWl0aXZlRVBOU185RXhlY1N0YXRlRU5T
XzIyUHJlZmVycmVkUHJpbWl0aXZlVHlwZUUKIF9fWk5LM0pTQzZKU0NlbGwxMnRvVGhpc09iamVj
dEVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk5LM0pTQzZKU0NlbGwxNGlzR2V0dGVyU2V0dGVyRXYKIF9f
Wk5LM0pTQzZKU0NlbGw4dG9OdW1iZXJFUE5TXzlFeGVjU3RhdGVFCi1fX1pOSzNKU0M2SlNDZWxs
OHRvT2JqZWN0RVBOU185RXhlY1N0YXRlRQorX19aTkszSlNDNkpTQ2VsbDh0b09iamVjdEVQTlNf
OUV4ZWNTdGF0ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk5LM0pTQzZKU0NlbGw4dG9TdHJp
bmdFUE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M2SlNDZWxsOWdldFN0cmluZ0VQTlNfOUV4ZWNT
dGF0ZUUKIF9fWk5LM0pTQzZKU0NlbGw5Z2V0U3RyaW5nRVBOU185RXhlY1N0YXRlRVJOU183VVN0
cmluZ0UKQEAgLTU0Myw3ICs1NDIsNyBAQCBfX1pOSzNKU0M2SlNDZWxsOWdldFVJbnQzMkVSagog
X19aTkszSlNDNkpTQ2VsbDl0b0Jvb2xlYW5FUE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M3QXJn
TGlzdDhnZXRTbGljZUVpUlMwXwogX19aTkszSlNDN0pTQXJyYXkxMnN1YmNsYXNzRGF0YUV2Ci1f
X1pOSzNKU0M3SlNWYWx1ZTE2dG9PYmplY3RTbG93Q2FzZUVQTlNfOUV4ZWNTdGF0ZUUKK19fWk5L
M0pTQzdKU1ZhbHVlMTZ0b09iamVjdFNsb3dDYXNlRVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xv
YmFsT2JqZWN0RQogX19aTkszSlNDN0pTVmFsdWUxOXN5bnRoZXNpemVQcm90b3R5cGVFUE5TXzlF
eGVjU3RhdGVFCiBfX1pOSzNKU0M3SlNWYWx1ZTIwdG9UaGlzT2JqZWN0U2xvd0Nhc2VFUE5TXzlF
eGVjU3RhdGVFCiBfX1pOSzNKU0M3SlNWYWx1ZTl0b0ludGVnZXJFUE5TXzlFeGVjU3RhdGVFCkBA
IC01NTYsNyArNTU1LDcgQEAgX19aTkszSlNDOEpTT2JqZWN0MTJkZWZhdWx0VmFsdWVFUE5TXzlF
eGVjU3RhdGVFTlNfMjJQcmVmZXJyZWRQcmltaXRpdmVUeXBlRQogX19aTkszSlNDOEpTT2JqZWN0
MTJ0b1RoaXNPYmplY3RFUE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M4SlNPYmplY3QxOHRvU3Ry
aWN0VGhpc09iamVjdEVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk5LM0pTQzhKU09iamVjdDh0b051bWJl
ckVQTlNfOUV4ZWNTdGF0ZUUKLV9fWk5LM0pTQzhKU09iamVjdDh0b09iamVjdEVQTlNfOUV4ZWNT
dGF0ZUUKK19fWk5LM0pTQzhKU09iamVjdDh0b09iamVjdEVQTlNfOUV4ZWNTdGF0ZUVQTlNfMTRK
U0dsb2JhbE9iamVjdEUKIF9fWk5LM0pTQzhKU09iamVjdDh0b1N0cmluZ0VQTlNfOUV4ZWNTdGF0
ZUUKIF9fWk5LM0pTQzhKU09iamVjdDljbGFzc05hbWVFdgogX19aTkszSlNDOEpTT2JqZWN0OXRv
Qm9vbGVhbkVQTlNfOUV4ZWNTdGF0ZUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVm
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKaW5kZXggNjIzNzQ0MGU4ZTllZDczNWQ5MmI5NDkxMTU2
ZWFkMDFhZWRjZDczYS4uMTNjZWU4ZjY2ZjhlOGQ3NjlkN2JjNDAwMzdjMmZhYWNiMjJjNmUxZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5k
ZWYKQEAgLTMsNyArMyw2IEBAIEVYUE9SVFMKICAgICA/PzBDU3RyaW5nQFdURkBAUUFFQFBCREBa
CiAgICAgPz8wQ1N0cmluZ0BXVEZAQFFBRUBQQkRJQFoKICAgICA/PzBDb2xsYXRvckBXVEZAQFFB
RUBQQkRAWgotICAgID8/MERhdGVJbnN0YW5jZUBKU0NAQFFBRUBQQVZFeGVjU3RhdGVAMUBOQFoK
ICAgICA/PzBEYXRlSW5zdGFuY2VASlNDQEBRQUVAUEFWRXhlY1N0YXRlQDFAVj8kTm9uTnVsbFBh
c3NSZWZQdHJAVlN0cnVjdHVyZUBKU0NAQEBXVEZAQE5AWgogICAgID8/MERlZmF1bHRHQ0FjdGl2
aXR5Q2FsbGJhY2tASlNDQEBRQUVAUEFWSGVhcEAxQEBaCiAgICAgPz8wRHJvcEFsbExvY2tzQEpT
TG9ja0BKU0NAQFFBRUBXNEpTTG9ja0JlaGF2aW9yQDJAQFoKQEAgLTk0LDcgKzkzLDYgQEAgRVhQ
T1JUUwogICAgID9jb25zdHJ1Y3RBcnJheUBKU0NAQFlBUEFWSlNBcnJheUAxQFBBVkV4ZWNTdGF0
ZUAxQEFCVkFyZ0xpc3RAMUBAWgogICAgID9jb25zdHJ1Y3RFbXB0eUFycmF5QEpTQ0BAWUFQQVZK
U0FycmF5QDFAUEFWRXhlY1N0YXRlQDFAQFoKICAgICA/Y29uc3RydWN0RW1wdHlPYmplY3RASlND
QEBZQVBBVkpTT2JqZWN0QDFAUEFWRXhlY1N0YXRlQDFAQFoKLSAgICA/Y29uc3RydWN0RnVuY3Rp
b25ASlNDQEBZQVBBVkpTT2JqZWN0QDFAUEFWRXhlY1N0YXRlQDFAQUJWQXJnTGlzdEAxQEFCVklk
ZW50aWZpZXJAMUBBQlZVU3RyaW5nQDFASEBaCiAgICAgP2NvbnZlcnRVVEYxNlRvVVRGOEBVbmlj
b2RlQFdURkBAWUE/QVc0Q29udmVyc2lvblJlc3VsdEAxMkBQQVBCX1dQQl9XUEFQQURQQURfTkBa
CiAgICAgP2NvbnZlcnRVVEY4VG9VVEYxNkBVbmljb2RlQFdURkBAWUE/QVc0Q29udmVyc2lvblJl
c3VsdEAxMkBQQVBCRFBCRFBBUEFfV1BBX1dfTkBaCiAgICAgP2NyZWF0ZUBCeXRlQXJyYXlAV1RG
QEBTQT9BVj8kUGFzc1JlZlB0ckBWQnl0ZUFycmF5QFdURkBAQDJASUBaCkBAIC0zMzYsMTAgKzMz
NCw2IEBAIEVYUE9SVFMKICAgICA/dG9OdW1iZXJASlNDZWxsQEpTQ0BAVUJFTlBBVkV4ZWNTdGF0
ZUAyQEBaCiAgICAgP3RvTnVtYmVyQEpTT2JqZWN0QEpTQ0BAVUJFTlBBVkV4ZWNTdGF0ZUAyQEBa
CiAgICAgP3RvTnVtYmVyQEpTU3RyaW5nQEpTQ0BARUJFTlBBVkV4ZWNTdGF0ZUAyQEBaCi0gICAg
P3RvT2JqZWN0QEpTQ2VsbEBKU0NAQFVCRVBBVkpTT2JqZWN0QDJAUEFWRXhlY1N0YXRlQDJAQFoK
LSAgICA/dG9PYmplY3RASlNPYmplY3RASlNDQEBVQkVQQVYxMkBQQVZFeGVjU3RhdGVAMkBAWgot
ICAgID90b09iamVjdEBKU1N0cmluZ0BKU0NAQEVCRVBBVkpTT2JqZWN0QDJAUEFWRXhlY1N0YXRl
QDJAQFoKLSAgICA/dG9PYmplY3RTbG93Q2FzZUBKU1ZhbHVlQEpTQ0BAQUJFUEFWSlNPYmplY3RA
MkBQQVZFeGVjU3RhdGVAMkBAWgogICAgID90b1ByaW1pdGl2ZUBKU0NlbGxASlNDQEBVQkU/QVZK
U1ZhbHVlQDJAUEFWRXhlY1N0YXRlQDJAVzRQcmVmZXJyZWRQcmltaXRpdmVUeXBlQDJAQFoKICAg
ICA/dG9QcmltaXRpdmVASlNTdHJpbmdASlNDQEBFQkU/QVZKU1ZhbHVlQDJAUEFWRXhlY1N0YXRl
QDJAVzRQcmVmZXJyZWRQcmltaXRpdmVUeXBlQDJAQFoKICAgICA/dG9TdHJpY3RUaGlzT2JqZWN0
QEpTT2JqZWN0QEpTQ0BAVUJFP0FWSlNWYWx1ZUAyQFBBVkV4ZWNTdGF0ZUAyQEBaCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwCmluZGV4
IGFmMmFmYzZkNDAwZTRlNzJkNTlmMzIyNGU3MjE1MDVmNDhjMzQ3MTYuLmUwZjRiMjNmNDZiNDc4
MmViMzhmMWViNTE3YWRjNGRhNzQ3OTA1NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwCkBAIC01MiwxNiArNTIsMTggQEAgQXJy
YXlDb25zdHJ1Y3Rvcjo6QXJyYXlDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QKIAogc3RhdGljIGlubGluZSBKU09iamVjdCogY29uc3RydWN0
QXJyYXlXaXRoU2l6ZVF1aXJrKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykK
IHsKKyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gYXNJbnRlcm5hbEZ1bmN0aW9u
KGV4ZWMtPmNhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0KCk7CisKICAgICAvLyBhIHNpbmdsZSBudW1l
cmljIGFyZ3VtZW50IGRlbm90ZXMgdGhlIGFycmF5IHNpemUgKCEpCiAgICAgaWYgKGFyZ3Muc2l6
ZSgpID09IDEgJiYgYXJncy5hdCgwKS5pc051bWJlcigpKSB7CiAgICAgICAgIHVpbnQzMl90IG4g
PSBhcmdzLmF0KDApLnRvVUludDMyKGV4ZWMpOwogICAgICAgICBpZiAobiAhPSBhcmdzLmF0KDAp
LnRvTnVtYmVyKGV4ZWMpKQogICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3Jl
YXRlUmFuZ2VFcnJvcihleGVjLCAiQXJyYXkgc2l6ZSBpcyBub3QgYSBzbWFsbCBlbm91Z2ggcG9z
aXRpdmUgaW50ZWdlci4iKSk7Ci0gICAgICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTQXJyYXkoZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5hcnJheVN0cnVjdHVyZSgpLCBuLCBDcmVhdGVJbml0
aWFsaXplZCk7CisgICAgICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTQXJyYXkoZ2xvYmFsT2JqZWN0
LT5hcnJheVN0cnVjdHVyZSgpLCBuLCBDcmVhdGVJbml0aWFsaXplZCk7CiAgICAgfQogCiAgICAg
Ly8gb3RoZXJ3aXNlIHRoZSBhcnJheSBpcyBjb25zdHJ1Y3RlZCB3aXRoIHRoZSBhcmd1bWVudHMg
aW4gaXQKLSAgICByZXR1cm4gbmV3IChleGVjKSBKU0FycmF5KGV4ZWMtPmdsb2JhbERhdGEoKSwg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5hcnJheVN0cnVjdHVyZSgpLCBhcmdzKTsKKyAg
ICByZXR1cm4gbmV3IChleGVjKSBKU0FycmF5KGV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2Jq
ZWN0LT5hcnJheVN0cnVjdHVyZSgpLCBhcmdzKTsKIH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aEFycmF5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBl
eGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25z
dHJ1Y3Rvci5jcHAKaW5kZXggMjFlZjViYmRlZDNhMTAwYTk4YjQzZjYzYjllMjI5M2Y1NmUyZTc2
YS4uZTViMGYzZDgzZjZlY2Y4MjFmMGRiYWQxNzlhODZjNTA2MTIzMzg0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCkBA
IC00MCw3ICs0MCw3IEBAIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6Qm9vbGVhbkNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAvLyBFQ01BIDE1LjYuMgog
SlNPYmplY3QqIGNvbnN0cnVjdEJvb2xlYW4oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0
JiBhcmdzKQogewotICAgIEJvb2xlYW5PYmplY3QqIG9iaiA9IG5ldyAoZXhlYykgQm9vbGVhbk9i
amVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Ym9v
bGVhbk9iamVjdFN0cnVjdHVyZSgpKTsKKyAgICBCb29sZWFuT2JqZWN0KiBvYmogPSBuZXcgKGV4
ZWMpIEJvb2xlYW5PYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBhc0ludGVybmFsRnVuY3Rpb24o
ZXhlYy0+Y2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKS0+Ym9vbGVhbk9iamVjdFN0cnVjdHVyZSgp
KTsKICAgICBvYmotPnNldEludGVybmFsVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc0Jvb2xl
YW4oYXJncy5hdCgwKS50b0Jvb2xlYW4oZXhlYykpKTsKICAgICByZXR1cm4gb2JqOwogfQpAQCAt
NjksOSArNjksOSBAQCBDYWxsVHlwZSBCb29sZWFuQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKENh
bGxEYXRhJiBjYWxsRGF0YSkKICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwogfQogCi1KU09iamVj
dCogY29uc3RydWN0Qm9vbGVhbkZyb21JbW1lZGlhdGVCb29sZWFuKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSBpbW1lZGlhdGVCb29sZWFuVmFsdWUpCitKU09iamVjdCogY29uc3RydWN0Qm9vbGVh
bkZyb21JbW1lZGlhdGVCb29sZWFuKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBpbW1lZGlhdGVCb29sZWFuVmFsdWUpCiB7Ci0gICAgQm9vbGVh
bk9iamVjdCogb2JqID0gbmV3IChleGVjKSBCb29sZWFuT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5ib29sZWFuT2JqZWN0U3RydWN0dXJlKCkp
OworICAgIEJvb2xlYW5PYmplY3QqIG9iaiA9IG5ldyAoZXhlYykgQm9vbGVhbk9iamVjdChleGVj
LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdC0+Ym9vbGVhbk9iamVjdFN0cnVjdHVyZSgpKTsK
ICAgICBvYmotPnNldEludGVybmFsVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBpbW1lZGlhdGVC
b29sZWFuVmFsdWUpOwogICAgIHJldHVybiBvYmo7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCmluZGV4IDBmM2VmYTdhODBjMzFh
MjhlMmNiZTg4ZDgyZTk4OTE1MmY2ODhkODkuLjI1NTBiM2IzNTQ3ZDZhMDljMzJmMDUwZTI5YmVl
NzZmZTk2YzIyZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jv
b2xlYW5Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jv
b2xlYW5Db25zdHJ1Y3Rvci5oCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJik7CiAgICAgfTsKIAot
ICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4oRXhlY1N0
YXRlKiwgSlNWYWx1ZSk7CisgICAgSlNPYmplY3QqIGNvbnN0cnVjdEJvb2xlYW5Gcm9tSW1tZWRp
YXRlQm9vbGVhbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwogICAgIEpT
T2JqZWN0KiBjb25zdHJ1Y3RCb29sZWFuKEV4ZWNTdGF0ZSosIGNvbnN0IEFyZ0xpc3QmKTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RGF0ZUNvbnN0cnVjdG9yLmNwcAppbmRleCBlZmFlYjBmMTIxYzQxNzdiM2FmNmYzZGM2OTcwMzJi
Zjk2M2JjNjdiLi5lMTkyNjdhOTE5MDg2M2FiZDZjOGEwNTM4MGNmZWY1NWY4OWI3M2EwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAK
QEAgLTEyMSw3ICsxMjEsNyBAQCBKU09iamVjdCogY29uc3RydWN0RGF0ZShFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4g
bmV3IChleGVjKSBEYXRlSW5zdGFuY2UoZXhlYywgdmFsdWUpOworICAgIHJldHVybiBuZXcgKGV4
ZWMpIERhdGVJbnN0YW5jZShleGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+Y2FsbGVlKCkp
LT5nbG9iYWxPYmplY3QoKS0+ZGF0ZVN0cnVjdHVyZSgpLCB2YWx1ZSk7CiB9CiAgICAgCiBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoRGF0ZUNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RhdGVJbnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlSW5zdGFuY2UuY3BwCmluZGV4IDIwNGI4YWMyY2VjMGUzZWFhNzBmMTE5NTZlN2I2MTA5ZjU2
NDRiNWMuLjc0YWRkYTQ3ZmFiM2ZhNmUxMTJiODhhNWY3NzZjNDc2NzYxODEzY2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcApAQCAtNDgsMTMg
KzQ4LDYgQEAgRGF0ZUluc3RhbmNlOjpEYXRlSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBOb25O
dWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHUKICAgICBzZXRJbnRlcm5hbFZhbHVlKGV4
ZWMtPmdsb2JhbERhdGEoKSwganNOdW1iZXIodGltZUNsaXAodGltZSkpKTsKIH0KIAotRGF0ZUlu
c3RhbmNlOjpEYXRlSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBkb3VibGUgdGltZSkKLSAgICA6
IEpTV3JhcHBlck9iamVjdChleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmRhdGVTdHJ1Y3R1
cmUoKSkKLXsKLSAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwotICAgIHNldEludGVybmFs
VmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc051bWJlcih0aW1lQ2xpcCh0aW1lKSkpOwotfQot
CiBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogRGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVnb3Jp
YW5EYXRlVGltZShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7CiAgICAgZG91YmxlIG1pbGxpID0g
aW50ZXJuYWxOdW1iZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVJbnN0YW5jZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUlu
c3RhbmNlLmgKaW5kZXggNmM5Nzc4OTdkOWRhY2JlN2ZkMWFkMDdkOWIzNWMyZmVlYWNhNzIyNS4u
ZDBkY2YwYmMzNDZkZDc3Mjk1YzMxMDA5MTMxNjYzZDM0MjIyZjJhYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKQEAgLTMxLDcgKzMxLDYgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBEYXRlSW5zdGFuY2UgOiBwdWJsaWMgSlNXcmFwcGVy
T2JqZWN0IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIERhdGVJbnN0YW5jZShFeGVjU3RhdGUqLCBk
b3VibGUpOwogICAgICAgICBEYXRlSW5zdGFuY2UoRXhlY1N0YXRlKiwgTm9uTnVsbFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiwgZG91YmxlKTsKICAgICAgICAgZXhwbGljaXQgRGF0ZUluc3RhbmNlKEV4
ZWNTdGF0ZSosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4pOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDJlNTNi
OTU0MDBlNzJjYWVhMTM4MGVjZTgxYjVkNTVmYWQ4Mjk1ZDkuLjdmNGY4MmNlYzVlYmM0NThhYWQ5
NDdmNGEzODg3YTM2NjFhNDQwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCkBAIC00Miw3ICs0Miw3IEBAIEVycm9yQ29uc3Ry
dWN0b3I6OkVycm9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3RXaXRoRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSBt
ZXNzYWdlID0gZXhlYy0+YXJndW1lbnRDb3VudCgpID8gZXhlYy0+YXJndW1lbnQoMCkgOiBqc1Vu
ZGVmaW5lZCgpOwotICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCktPmVycm9yU3RydWN0dXJlKCk7CisgICAgU3RydWN0dXJlKiBlcnJvclN0
cnVjdHVyZSA9IGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUoKSktPmdsb2JhbE9iamVj
dCgpLT5lcnJvclN0cnVjdHVyZSgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJ
bnN0YW5jZTo6Y3JlYXRlKGV4ZWMsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlKSk7CiB9CiAKQEAg
LTU1LDcgKzU1LDcgQEAgQ29uc3RydWN0VHlwZSBFcnJvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1
Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjYWxsRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7
CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gZXhlYy0+YXJndW1lbnRDb3VudCgpID8gZXhlYy0+YXJn
dW1lbnQoMCkgOiBqc1VuZGVmaW5lZCgpOwotICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUg
PSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmVycm9yU3RydWN0dXJlKCk7CisgICAgU3Ry
dWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUo
KSktPmdsb2JhbE9iamVjdCgpLT5lcnJvclN0cnVjdHVyZSgpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGV4ZWMsIGVycm9yU3RydWN0dXJlLCBtZXNz
YWdlKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25Db25zdHJ1Y3Rvci5jcHAKaW5kZXggNTczYmQ1YjRlODlkYzIzNDQ5NmM1YjRmMDA3NDBk
OTg1NDI5NjUzMi4uYTlmMGEwNjYyZDlmZTA4Nzg1NWY4YjQxYzFkZTdkMjhkNGMxOWFiYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1
Y3Rvci5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6RnVuY3Rpb25D
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhGdW5jdGlvbkNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhcmdzKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhc0ludGVy
bmFsRnVuY3Rpb24oZXhlYy0+Y2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncykpOwogfQog
CiBDb25zdHJ1Y3RUeXBlIEZ1bmN0aW9uQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoQ29u
c3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKQEAgLTYxLDcgKzYxLDcgQEAgQ29uc3RydWN0VHlw
ZSBGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNv
bnN0cnVjdERhdGEKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxGdW5j
dGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBBcmdMaXN0IGFyZ3MoZXhl
Yyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBh
cmdzKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RGdW5jdGlvbihleGVj
LCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+Y2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgYXJn
cykpOwogfQogCiAvLyBFQ01BIDE1LjMuMSBUaGUgRnVuY3Rpb24gQ29uc3RydWN0b3IgQ2FsbGVk
IGFzIGEgRnVuY3Rpb24KQEAgLTcyLDcgKzcyLDcgQEAgQ2FsbFR5cGUgRnVuY3Rpb25Db25zdHJ1
Y3Rvcjo6Z2V0Q2FsbERhdGEoQ2FsbERhdGEmIGNhbGxEYXRhKQogfQogCiAvLyBFQ01BIDE1LjMu
MiBUaGUgRnVuY3Rpb24gQ29uc3RydWN0b3IKLUpTT2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlvbihF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MsIGNvbnN0IElkZW50aWZpZXImIGZ1
bmN0aW9uTmFtZSwgY29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlcikKK0pT
T2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MsIGNvbnN0IElkZW50aWZpZXImIGZ1
bmN0aW9uTmFtZSwgY29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlcikKIHsK
ICAgICAvLyBGdW5jdGlvbnMgbmVlZCB0byBoYXZlIGEgc3BhY2UgZm9sbG93aW5nIHRoZSBvcGVu
aW5nIHsgZHVlIHRvIGZvciB3ZWIgY29tcGF0aWJpbGl0eQogICAgIC8vIHNlZSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQzNTAKQEAgLTk2LDcgKzk2LDYgQEAgSlNP
YmplY3QqIGNvbnN0cnVjdEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYg
YXJncywgY29uc3QgSWRlbnRpZmkKICAgICAgICAgcHJvZ3JhbSA9IGJ1aWxkZXIudG9VU3RyaW5n
KCk7CiAgICAgfQogCi0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKTsKICAgICBKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEgPSBnbG9i
YWxPYmplY3QtPmdsb2JhbERhdGEoKTsKICAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VTb3Vy
Y2UocHJvZ3JhbSwgc291cmNlVVJMLCBsaW5lTnVtYmVyKTsKICAgICBKU09iamVjdCogZXhjZXB0
aW9uID0gMDsKQEAgLTExMSw5ICsxMTAsOSBAQCBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb24o
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzLCBjb25zdCBJZGVudGlmaQogfQog
CiAvLyBFQ01BIDE1LjMuMiBUaGUgRnVuY3Rpb24gQ29uc3RydWN0b3IKLUpTT2JqZWN0KiBjb25z
dHJ1Y3RGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCitKU09i
amVjdCogY29uc3RydWN0RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewotICAgIHJldHVybiBjb25zdHJ1
Y3RGdW5jdGlvbihleGVjLCBhcmdzLCBJZGVudGlmaWVyKGV4ZWMsICJhbm9ueW1vdXMiKSwgVVN0
cmluZygpLCAxKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnVuY3Rpb24oZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBhcmdzLCBJZGVudGlmaWVyKGV4ZWMsICJhbm9ueW1vdXMiKSwgVVN0cmluZygpLCAxKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmgKaW5kZXggNmFmNDg2MTFkN2IyOGYyOTVhN2U1
YzdkNGY1M2VmZWYyN2UyYjhlMC4uN2YyMWIyMGZjNTFhNjE3MTg1M2QzZGViZGVmY2E4YTA4NDAy
MmJmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25D
b25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9u
Q29uc3RydWN0b3IuaApAQCAtMzYsOCArMzYsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
dmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOwogICAgIH07CiAKLSAgICBK
U09iamVjdCogY29uc3RydWN0RnVuY3Rpb24oRXhlY1N0YXRlKiwgY29uc3QgQXJnTGlzdCYsIGNv
bnN0IElkZW50aWZpZXImIGZ1bmN0aW9uTmFtZSwgY29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBp
bnQgbGluZU51bWJlcik7Ci0gICAgSlNPYmplY3QqIGNvbnN0cnVjdEZ1bmN0aW9uKEV4ZWNTdGF0
ZSosIGNvbnN0IEFyZ0xpc3QmKTsKKyAgICBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb24oRXhl
Y1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBjb25zdCBBcmdMaXN0JiwgY29uc3QgSWRlbnRpZmll
ciYgZnVuY3Rpb25OYW1lLCBjb25zdCBVU3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVy
KTsKKyAgICBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxP
YmplY3QqLCBjb25zdCBBcmdMaXN0Jik7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAppbmRleCA5YWNiNzc3YjYwNmE5ZTQzMWFj
NDA5Mjg0NTBiOGZjZjc2NTdiZWM2Li5jZTdmZTIyNzhiM2U2NTgxYTRiNDkwZTc2YzQ0YzBjMTZj
YTMyYzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKQEAgLTEx
OSw3ICsxMTksNyBAQCBib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgUAogICAgIC8vIFRoaXMgaXMgbm90
IGEgZ2VuZXJhbCBwdXJwb3NlIGltcGxlbWVudGF0aW9uIG9mIGdldE93blByb3BlcnR5U2xvdC4K
ICAgICAvLyBJdCBzaG91bGQgb25seSBiZSBjYWxsZWQgYnkgSlNWYWx1ZTo6Z2V0LgogICAgIC8v
IEl0IGNhbGxzIGdldFByb3BlcnR5U2xvdCwgbm90IGdldE93blByb3BlcnR5U2xvdC4KLSAgICBK
U09iamVjdCogb2JqZWN0ID0gdG9PYmplY3QoZXhlYyk7CisgICAgSlNPYmplY3QqIG9iamVjdCA9
IHRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7CiAgICAgc2xvdC5z
ZXRCYXNlKG9iamVjdCk7CiAgICAgaWYgKCFvYmplY3QtPmdldFByb3BlcnR5U2xvdChleGVjLCBp
ZGVudGlmaWVyLCBzbG90KSkKICAgICAgICAgc2xvdC5zZXRVbmRlZmluZWQoKTsKQEAgLTEzMSw3
ICsxMzEsNyBAQCBib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgaWRlbnRpZmllciwgUHJvcGVydHlTbAogICAgIC8vIFRoaXMgaXMgbm90IGEg
Z2VuZXJhbCBwdXJwb3NlIGltcGxlbWVudGF0aW9uIG9mIGdldE93blByb3BlcnR5U2xvdC4KICAg
ICAvLyBJdCBzaG91bGQgb25seSBiZSBjYWxsZWQgYnkgSlNWYWx1ZTo6Z2V0LgogICAgIC8vIEl0
IGNhbGxzIGdldFByb3BlcnR5U2xvdCwgbm90IGdldE93blByb3BlcnR5U2xvdC4KLSAgICBKU09i
amVjdCogb2JqZWN0ID0gdG9PYmplY3QoZXhlYyk7CisgICAgSlNPYmplY3QqIG9iamVjdCA9IHRv
T2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7CiAgICAgc2xvdC5zZXRC
YXNlKG9iamVjdCk7CiAgICAgaWYgKCFvYmplY3QtPmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVu
dGlmaWVyLCBzbG90KSkKICAgICAgICAgc2xvdC5zZXRVbmRlZmluZWQoKTsKQEAgLTE0MCwyNyAr
MTQwLDI3IEBAIGJvb2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVj
LCB1bnNpZ25lZCBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsCiAKIHZvaWQgSlNDZWxsOjpwdXQoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgdG9PYmplY3QoZXhlYyktPnB1dChleGVj
LCBpZGVudGlmaWVyLCB2YWx1ZSwgc2xvdCk7CisgICAgdG9PYmplY3QoZXhlYywgZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpKS0+cHV0KGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlLCBzbG90KTsK
IH0KIAogdm9pZCBKU0NlbGw6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGlkZW50aWZp
ZXIsIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgdG9PYmplY3QoZXhlYyktPnB1dChleGVjLCBpZGVu
dGlmaWVyLCB2YWx1ZSk7CisgICAgdG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpKS0+cHV0KGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlKTsKIH0KIAogYm9vbCBKU0NlbGw6
OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRp
ZmllcikKIHsKLSAgICByZXR1cm4gdG9PYmplY3QoZXhlYyktPmRlbGV0ZVByb3BlcnR5KGV4ZWMs
IGlkZW50aWZpZXIpOworICAgIHJldHVybiB0b09iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCkpLT5kZWxldGVQcm9wZXJ0eShleGVjLCBpZGVudGlmaWVyKTsKIH0KIAogYm9v
bCBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaWRlbnRp
ZmllcikKIHsKLSAgICByZXR1cm4gdG9PYmplY3QoZXhlYyktPmRlbGV0ZVByb3BlcnR5KGV4ZWMs
IGlkZW50aWZpZXIpOworICAgIHJldHVybiB0b09iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCkpLT5kZWxldGVQcm9wZXJ0eShleGVjLCBpZGVudGlmaWVyKTsKIH0KIAogSlNP
YmplY3QqIEpTQ2VsbDo6dG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKLSAg
ICByZXR1cm4gdG9PYmplY3QoZXhlYyk7CisgICAgcmV0dXJuIHRvT2JqZWN0KGV4ZWMsIGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSk7CiB9CiAKIEpTVmFsdWUgSlNDZWxsOjpnZXRKU051bWJl
cigpCkBAIC0yMDMsNyArMjAzLDcgQEAgVVN0cmluZyBKU0NlbGw6OnRvU3RyaW5nKEV4ZWNTdGF0
ZSopIGNvbnN0CiAgICAgcmV0dXJuIFVTdHJpbmcoKTsKIH0KIAotSlNPYmplY3QqIEpTQ2VsbDo6
dG9PYmplY3QoRXhlY1N0YXRlKikgY29uc3QKK0pTT2JqZWN0KiBKU0NlbGw6OnRvT2JqZWN0KEV4
ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3QKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ2VsbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgK
aW5kZXggNDQ3NDg2Y2U1Y2M2ZTg1YTQzOTVmMDEyOWJhNDk5ZjUyNjlhZTA0OS4uNjJjZWUzNzhk
OTdlYzcxOGU1ZTZiOThkYTZhYTc0NzY5ZjlmNDExOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDZWxsLmgKQEAgLTM1LDYgKzM1LDggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyAg
ICBjbGFzcyBKU0dsb2JhbE9iamVjdDsKKwogI2lmIENPTVBJTEVSKE1TVkMpCiAgICAgLy8gSWYg
V1RGX01BS0VfTk9OQ09QWUFCTEUgaXMgYXBwbGllZCB0byBKU0NlbGwgd2UgZW5kIHVwIHdpdGgg
YSBidW5jaCBvZgogICAgIC8vIHVuZGVmaW5lZCByZWZlcmVuY2VzIHRvIHRoZSBKU0NlbGwgY29w
eSBjb25zdHJ1Y3RvciBhbmQgYXNzaWdubWVudCBvcGVyYXRvcgpAQCAtMTA2LDcgKzEwOCw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wgdG9Cb29sZWFuKEV4ZWNTdGF0
ZSopIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBj
b25zdDsKICAgICAgICAgdmlydHVhbCBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0
OwotICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsK
KyAgICAgICAgdmlydHVhbCBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxP
YmplY3QqKSBjb25zdDsKIAogICAgICAgICAvLyBHYXJiYWdlIGNvbGxlY3Rpb24uCiAgICAgICAg
IHZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3QsIEV4ZWNTdGF0ZSopOwpAQCAtMzM2LDcgKzMzOCwx
MiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGlubGluZSBKU09iamVjdCogSlNWYWx1ZTo6dG9P
YmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGlzQ2Vs
bCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMpIDogdG9PYmplY3RTbG93Q2FzZShleGVjKTsK
KyAgICAgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMsIGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSkgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSk7CisgICAgfQorCisgICAgaW5saW5lIEpTT2JqZWN0KiBKU1Zh
bHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9P
YmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0KSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywgZ2xvYmFs
T2JqZWN0KTsKICAgICB9CiAKICAgICBpbmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OnRvVGhpc09i
amVjdChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTm90QW5PYmplY3QuY3BwCmluZGV4IGUwMWI0MDEwMzFhMjdkOTNlNTVhZjhlY2Fj
OGNjZWQxYjI2NGY5N2UuLjExMTVkYzA3MGI3NDQ0NGUyNjVlNDhlNDRlMzhiMzczNmVlM2YwMTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3Bw
CkBAIC02Nyw3ICs2Nyw3IEBAIFVTdHJpbmcgSlNOb3RBbk9iamVjdDo6dG9TdHJpbmcoRXhlY1N0
YXRlKiBleGVjKSBjb25zdAogICAgIHJldHVybiAiIjsKIH0KIAotSlNPYmplY3QqIEpTTm90QW5P
YmplY3Q6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK0pTT2JqZWN0KiBKU05vdEFu
T2JqZWN0Ojp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikgY29uc3QK
IHsKICAgICBBU1NFUlRfVU5VU0VEKGV4ZWMsIGV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKICAgICBy
ZXR1cm4gY29uc3RfY2FzdDxKU05vdEFuT2JqZWN0Kj4odGhpcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKaW5kZXggYjg4MjAzOTFlZjYxNjVhYjFm
ZGUwNmMyMDA2ODk1YjU2OWEyYjc5NS4uNzViY2ExOGQ4MDVkZjc3YjBjOTQzOWU0MmI0NDkwMzdi
MWI0MmRjMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RB
bk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmpl
Y3QuaApAQCAtNTgsNyArNTgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBi
b29sIHRvQm9vbGVhbihFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBkb3VibGUg
dG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgVVN0cmluZyB0b1N0
cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBKU09iamVjdCogdG9PYmpl
Y3QoRXhlY1N0YXRlKikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvT2JqZWN0
KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAKICAgICAgICAgLy8gSlNPYmpl
Y3QgbWV0aG9kcwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggZDc1NzBlOTEz
YmZhYzRiYTM3OGUzODVkM2QwYTMyODYyODRmZjRhMi4uYjMwNzU0MDc5Y2I5NDRiM2FhNjA2M2Y5
NThiNWIzMDBhNGI2NTFhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmNwcApAQCAtNDg5LDcgKzQ4OSw3IEBAIFVTdHJpbmcgSlNPYmplY3Q6OnRvU3RyaW5nKEV4
ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4gcHJpbWl0aXZlLnRvU3RyaW5nKGV4ZWMp
OwogfQogCi1KU09iamVjdCogSlNPYmplY3Q6OnRvT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0CitK
U09iamVjdCogSlNPYmplY3Q6OnRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kikg
Y29uc3QKIHsKICAgICByZXR1cm4gY29uc3RfY2FzdDxKU09iamVjdCo+KHRoaXMpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggNjZhYzJkNmJhMTYyMTcz
NjM3ZjdiMzkyMTBlNjM1MDU2ODkwMGY4Ni4uZmUwMWNiOTkyZDYzMDJhNGU4NjM5MjYwMDgxODEx
Njg5MjRlMGVmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBA
IC0xMzgsNyArMTM4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCB0
b0Jvb2xlYW4oRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgZG91YmxlIHRvTnVt
YmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgdG9TdHJpbmco
RXhlY1N0YXRlKikgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvT2JqZWN0KEV4
ZWNTdGF0ZSopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0b09iamVjdChFeGVj
U3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogCiAgICAgICAgIHZpcnR1YWwgSlNPYmpl
Y3QqIHRvVGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBKU1Zh
bHVlIHRvU3RyaWN0VGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAppbmRleCBjNGFlOTY5YzdhNmY1YjcyZGZiMzgx
ZDI1YmNkZTBhZDY3NjNmZDk2Li5kOWM0ZDQ2OGI3NTI1NTljZDM2NzU5MTljZjMxMTNkZDU5MDI1
NWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCkBAIC0y
NTMsMTkgKzI1MywxOSBAQCBVU3RyaW5nIEpTU3RyaW5nOjp0b1N0cmluZyhFeGVjU3RhdGUqIGV4
ZWMpIGNvbnN0CiAgICAgcmV0dXJuIHZhbHVlKGV4ZWMpOwogfQogCi1pbmxpbmUgU3RyaW5nT2Jq
ZWN0KiBTdHJpbmdPYmplY3Q6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTU3RyaW5nKiBzdHJp
bmcpCitpbmxpbmUgU3RyaW5nT2JqZWN0KiBTdHJpbmdPYmplY3Q6OmNyZWF0ZShFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBzdHJpbmcpCiB7
Ci0gICAgcmV0dXJuIG5ldyAoZXhlYykgU3RyaW5nT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5zdHJpbmdPYmplY3RTdHJ1Y3R1cmUoKSwgc3Ry
aW5nKTsKKyAgICByZXR1cm4gbmV3IChleGVjKSBTdHJpbmdPYmplY3QoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBnbG9iYWxPYmplY3QtPnN0cmluZ09iamVjdFN0cnVjdHVyZSgpLCBzdHJpbmcpOwogfQog
Ci1KU09iamVjdCogSlNTdHJpbmc6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK0pT
T2JqZWN0KiBKU1N0cmluZzo6dG9PYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmdPYmplY3Q6OmNyZWF0
ZShleGVjLCBjb25zdF9jYXN0PEpTU3RyaW5nKj4odGhpcykpOworICAgIHJldHVybiBTdHJpbmdP
YmplY3Q6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QsIGNvbnN0X2Nhc3Q8SlNTdHJpbmcqPih0
aGlzKSk7CiB9CiAKIEpTT2JqZWN0KiBKU1N0cmluZzo6dG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSog
ZXhlYykgY29uc3QKIHsKLSAgICByZXR1cm4gU3RyaW5nT2JqZWN0OjpjcmVhdGUoZXhlYywgY29u
c3RfY2FzdDxKU1N0cmluZyo+KHRoaXMpKTsKKyAgICByZXR1cm4gU3RyaW5nT2JqZWN0OjpjcmVh
dGUoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBjb25zdF9jYXN0PEpTU3RyaW5n
Kj4odGhpcykpOwogfQogCiBib29sIEpTU3RyaW5nOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5n
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCmluZGV4IDExMDAy
ZGIyNmYxMmZkOWYzODJmZDg3Y2Q4NzhmOTdlM2I5ZDU1MTcuLjkxMTNkNGEwNGZiMTNmNzM4NDUy
MjRlYWE1OTNmMzk3NmQyNjA1N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RyaW5nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
dHJpbmcuaApAQCAtNDAyLDcgKzQwMiw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0
dWFsIGJvb2wgZ2V0UHJpbWl0aXZlTnVtYmVyKEV4ZWNTdGF0ZSosIGRvdWJsZSYgbnVtYmVyLCBK
U1ZhbHVlJiB2YWx1ZSk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCB0b0Jvb2xlYW4oRXhlY1N0YXRl
KikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNv
bnN0OwotICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqKSBjb25z
dDsKKyAgICAgICAgdmlydHVhbCBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9i
YWxPYmplY3QqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNT
dGF0ZSopIGNvbnN0OwogCiAgICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVjdChF
eGVjU3RhdGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTVmFsdWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5j
cHAKaW5kZXggZjQ2NjJkYjcyZGViNjM4MGViZTZkNWFmNTNjYTkzMDBhMDI1MTYzZC4uZDNlZTg5
ZWE4NmI3NWQ5YmI3NzE0MTEwYjUwODQ0ODhhYTdhMDYwZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAKQEAgLTU0LDE0ICs1NCwxNCBAQCBkb3VibGUgSlNWYWx1
ZTo6dG9JbnRlZ2VyUHJlc2VydmVOYU4oRXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAgIHJldHVy
biB0cnVuYyh0b051bWJlcihleGVjKSk7CiB9CiAKLUpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVj
dFNsb3dDYXNlKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK0pTT2JqZWN0KiBKU1ZhbHVlOjp0b09i
amVjdFNsb3dDYXNlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkgY29uc3QKIHsKICAgICBBU1NFUlQoIWlzQ2VsbCgpKTsKIAogICAgIGlmIChpc0ludDMyKCkg
fHwgaXNEb3VibGUoKSkKLSAgICAgICAgcmV0dXJuIGNvbnN0cnVjdE51bWJlcihleGVjLCBhc1Zh
bHVlKCkpOworICAgICAgICByZXR1cm4gY29uc3RydWN0TnVtYmVyKGV4ZWMsIGdsb2JhbE9iamVj
dCwgYXNWYWx1ZSgpKTsKICAgICBpZiAoaXNUcnVlKCkgfHwgaXNGYWxzZSgpKQotICAgICAgICBy
ZXR1cm4gY29uc3RydWN0Qm9vbGVhbkZyb21JbW1lZGlhdGVCb29sZWFuKGV4ZWMsIGFzVmFsdWUo
KSk7CisgICAgICAgIHJldHVybiBjb25zdHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4o
ZXhlYywgZ2xvYmFsT2JqZWN0LCBhc1ZhbHVlKCkpOwogCiAgICAgQVNTRVJUKGlzVW5kZWZpbmVk
T3JOdWxsKCkpOwogICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlTm90QW5PYmplY3RFcnJvcihl
eGVjLCAqdGhpcykpOwpAQCAtNzMsOSArNzMsOSBAQCBKU09iamVjdCogSlNWYWx1ZTo6dG9UaGlz
T2JqZWN0U2xvd0Nhc2UoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAgIEFTU0VSVCghaXNDZWxs
KCkpOwogCiAgICAgaWYgKGlzSW50MzIoKSB8fCBpc0RvdWJsZSgpKQotICAgICAgICByZXR1cm4g
Y29uc3RydWN0TnVtYmVyKGV4ZWMsIGFzVmFsdWUoKSk7CisgICAgICAgIHJldHVybiBjb25zdHJ1
Y3ROdW1iZXIoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBhc1ZhbHVlKCkpOwog
ICAgIGlmIChpc1RydWUoKSB8fCBpc0ZhbHNlKCkpCi0gICAgICAgIHJldHVybiBjb25zdHJ1Y3RC
b29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4oZXhlYywgYXNWYWx1ZSgpKTsKKyAgICAgICAgcmV0
dXJuIGNvbnN0cnVjdEJvb2xlYW5Gcm9tSW1tZWRpYXRlQm9vbGVhbihleGVjLCBleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCksIGFzVmFsdWUoKSk7CiAgICAgQVNTRVJUKGlzVW5kZWZpbmVkT3JO
dWxsKCkpOwogICAgIHJldHVybiBleGVjLT5nbG9iYWxUaGlzVmFsdWUoKTsKIH0KQEAgLTg0LDkg
Kzg0LDkgQEAgSlNPYmplY3QqIEpTVmFsdWU6OnN5bnRoZXNpemVPYmplY3QoRXhlY1N0YXRlKiBl
eGVjKSBjb25zdAogewogICAgIEFTU0VSVCghaXNDZWxsKCkpOwogICAgIGlmIChpc051bWJlcigp
KQotICAgICAgICByZXR1cm4gY29uc3RydWN0TnVtYmVyKGV4ZWMsIGFzVmFsdWUoKSk7CisgICAg
ICAgIHJldHVybiBjb25zdHJ1Y3ROdW1iZXIoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpLCBhc1ZhbHVlKCkpOwogICAgIGlmIChpc0Jvb2xlYW4oKSkKLSAgICAgICAgcmV0dXJuIGNv
bnN0cnVjdEJvb2xlYW5Gcm9tSW1tZWRpYXRlQm9vbGVhbihleGVjLCBhc1ZhbHVlKCkpOworICAg
ICAgICByZXR1cm4gY29uc3RydWN0Qm9vbGVhbkZyb21JbW1lZGlhdGVCb29sZWFuKGV4ZWMsIGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgYXNWYWx1ZSgpKTsKIAogICAgIEFTU0VSVChpc1Vu
ZGVmaW5lZE9yTnVsbCgpKTsKICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZU5vdEFuT2JqZWN0
RXJyb3IoZXhlYywgKnRoaXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUu
aAppbmRleCAwZmQ2YzRjYjQzMWY3MzcwMDAzN2FmZWQwYzU0OTQ2NThlYWJjYjM5Li4wOTgxMjNl
MDI0Nzg5Njg0OWQ2ZWFhYjg4ODZhZmQzYmMyZDkyM2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNWYWx1ZS5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
IGNsYXNzIElkZW50aWZpZXI7CiAgICAgY2xhc3MgSlNDZWxsOwogICAgIGNsYXNzIEpTR2xvYmFs
RGF0YTsKKyAgICBjbGFzcyBKU0dsb2JhbE9iamVjdDsKICAgICBjbGFzcyBKU0ltbWVkaWF0ZTsK
ICAgICBjbGFzcyBKU09iamVjdDsKICAgICBjbGFzcyBKU1N0cmluZzsKQEAgLTE4OSw2ICsxOTAs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUq
KSBjb25zdDsKICAgICAgICAgVVN0cmluZyB0b1ByaW1pdGl2ZVN0cmluZyhFeGVjU3RhdGUqKSBj
b25zdDsKICAgICAgICAgSlNPYmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0OworICAg
ICAgICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKSBjb25z
dDsKIAogICAgICAgICAvLyBJbnRlZ2VyIGNvbnZlcnNpb25zLgogICAgICAgICBkb3VibGUgdG9J
bnRlZ2VyKEV4ZWNTdGF0ZSopIGNvbnN0OwpAQCAtMjQ0LDcgKzI0Niw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBKU1ZhbHVlKEhhc2hUYWJsZURlbGV0ZWRWYWx1ZVRhZyk7CiAKICAgICAg
ICAgaW5saW5lIGNvbnN0IEpTVmFsdWUgYXNWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuICp0aGlzOyB9
Ci0gICAgICAgIEpTT2JqZWN0KiB0b09iamVjdFNsb3dDYXNlKEV4ZWNTdGF0ZSopIGNvbnN0Owor
ICAgICAgICBKU09iamVjdCogdG9PYmplY3RTbG93Q2FzZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9i
amVjdCopIGNvbnN0OwogICAgICAgICBKU09iamVjdCogdG9UaGlzT2JqZWN0U2xvd0Nhc2UoRXhl
Y1N0YXRlKikgY29uc3Q7CiAKICAgICAgICAgSlNPYmplY3QqIHN5bnRoZXNpemVQcm90b3R5cGUo
RXhlY1N0YXRlKikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXggM2U0ZDZjNzZlNmM5NWRkMDg3MWRlZGQ4NGM5
ZjM2YWMwYzk2N2NlNS4uYWVlMTQzYTNmMDdkNTYxNmE2MGIxZGJmYTdjY2ViOTg0ZDZmN2JiZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVj
dG9yLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyBKU1ZhbHVlIG51bWJlckNvbnN0cnVj
dG9yTWluVmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpCiAvLyBF
Q01BIDE1LjcuMQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
V2l0aE51bWJlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBOdW1iZXJPYmpl
Y3QqIG9iamVjdCA9IG5ldyAoZXhlYykgTnVtYmVyT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5udW1iZXJPYmplY3RTdHJ1Y3R1cmUoKSk7Cisg
ICAgTnVtYmVyT2JqZWN0KiBvYmplY3QgPSBuZXcgKGV4ZWMpIE51bWJlck9iamVjdChleGVjLT5n
bG9iYWxEYXRhKCksIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUoKSktPmdsb2JhbE9i
amVjdCgpLT5udW1iZXJPYmplY3RTdHJ1Y3R1cmUoKSk7CiAgICAgZG91YmxlIG4gPSBleGVjLT5h
cmd1bWVudENvdW50KCkgPyBleGVjLT5hcmd1bWVudCgwKS50b051bWJlcihleGVjKSA6IDA7CiAg
ICAgb2JqZWN0LT5zZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdW1iZXIo
bikpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUob2JqZWN0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuY3BwCmluZGV4IDM5NjMyOTRjZmE3Y2M2
M2MxMjNjOWNiNDIwN2NjYTczOGZhMWYwZGYuLjc0YjVlOTgxZTNhZGY1YTUzMzljMjEzMjcyYzNk
OTQ3ZGZiNGIxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051
bWJlck9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
T2JqZWN0LmNwcApAQCAtNDIsOSArNDIsOSBAQCBKU1ZhbHVlIE51bWJlck9iamVjdDo6Z2V0SlNO
dW1iZXIoKQogICAgIHJldHVybiBpbnRlcm5hbFZhbHVlKCk7CiB9CiAKLU51bWJlck9iamVjdCog
Y29uc3RydWN0TnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBudW1iZXIpCitOdW1iZXJP
YmplY3QqIGNvbnN0cnVjdE51bWJlcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgbnVtYmVyKQogewotICAgIE51bWJlck9iamVjdCogb2JqZWN0
ID0gbmV3IChleGVjKSBOdW1iZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCktPm51bWJlck9iamVjdFN0cnVjdHVyZSgpKTsKKyAgICBOdW1iZXJP
YmplY3QqIG9iamVjdCA9IG5ldyAoZXhlYykgTnVtYmVyT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgZ2xvYmFsT2JqZWN0LT5udW1iZXJPYmplY3RTdHJ1Y3R1cmUoKSk7CiAgICAgb2JqZWN0LT5z
ZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbnVtYmVyKTsKICAgICByZXR1cm4g
b2JqZWN0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVt
YmVyT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3Qu
aAppbmRleCAxNTcxZmQ0MmNlNmIwYzMyZTgyZTgxYWQ2YjAzMTYwYTkxZTdlZjdhLi45MGQwYjI2
ZTMwODI4NDYyODBlYjE0ZmEwMGQ4YjM4NWM0YjBjOGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgdmlydHVhbCBKU1ZhbHVlIGdldEpTTnVtYmVyKCk7CiAgICAgfTsKIAot
ICAgIE51bWJlck9iamVjdCogY29uc3RydWN0TnVtYmVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUpOwor
ICAgIE51bWJlck9iamVjdCogY29uc3RydWN0TnVtYmVyKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2Jq
ZWN0KiwgSlNWYWx1ZSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNTA4MGVm
ODYxYzNlMmRmMDVjMzgwYmVhODA3OTkzMmJkZDk5NGEwYS4uYzY0MmE1YjU5ZjJkNTk4YmNhNGRl
YTU1OGNmMjUyZTc2MjNlOWM4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcApAQCAtOTUsMTggKzk1LDE4IEBAIGJvb2wgT2Jq
ZWN0Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpCiB9CiAKIC8vIEVDTUEgMTUuMi4yCi1zdGF0aWMgQUxXQVlTX0lOTElO
RSBKU09iamVjdCogY29uc3RydWN0T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlz
dCYgYXJncykKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIEpTT2JqZWN0KiBjb25zdHJ1Y3RPYmplY3Qo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBBcmdM
aXN0JiBhcmdzKQogewogICAgIEpTVmFsdWUgYXJnID0gYXJncy5hdCgwKTsKICAgICBpZiAoYXJn
LmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9iamVj
dChleGVjKTsKLSAgICByZXR1cm4gYXJnLnRvT2JqZWN0KGV4ZWMpOworICAgICAgICByZXR1cm4g
Y29uc3RydWN0RW1wdHlPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gYXJn
LnRvT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCk7CiB9CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhPYmplY3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IGV4ZWMpCiB7CiAgICAgQXJnTGlzdCBhcmdzKGV4ZWMpOwotICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoY29uc3RydWN0T2JqZWN0KGV4ZWMsIGFyZ3MpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGNvbnN0cnVjdE9iamVjdChleGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+Y2Fs
bGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncykpOwogfQogCiBDb25zdHJ1Y3RUeXBlIE9iamVj
dENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERh
dGEpCkBAIC0xMTgsNyArMTE4LDcgQEAgQ29uc3RydWN0VHlwZSBPYmplY3RDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQogc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogZXhlYykKIHsKICAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShjb25zdHJ1Y3RPYmplY3QoZXhlYywgYXJncykpOworICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoY29uc3RydWN0T2JqZWN0KGV4ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5j
YWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLCBhcmdzKSk7CiB9CiAKIENhbGxUeXBlIE9iamVjdENv
bnN0cnVjdG9yOjpnZXRDYWxsRGF0YShDYWxsRGF0YSYgY2FsbERhdGEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMzQ4
ZjM4YWU0MjU1M2I0ZGE0MWNjNzBiZTczNjBmNDYyYzI3YjNmNC4uMTliNGIzNjFlNmM4ODRkOTQx
ZjBiNzNkZWU1NWZmOTU1NmVkMjBiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcApAQCAtMjkzLDcgKzI5Myw3IEBAIHZvaWQg
c2V0UmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
YmFzZU9iamVjdCwgSlNWYWx1CiB9CiAKIC8vIEVDTUEgMTUuMTAuNAotSlNPYmplY3QqIGNvbnN0
cnVjdFJlZ0V4cChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCitKU09iamVj
dCogY29uc3RydWN0UmVnRXhwKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKICAgICBKU1ZhbHVlIGFyZzAgPSBhcmdz
LmF0KDApOwogICAgIEpTVmFsdWUgYXJnMSA9IGFyZ3MuYXQoMSk7CkBAIC0zMjAsMTMgKzMyMCwx
MyBAQCBKU09iamVjdCogY29uc3RydWN0UmVnRXhwKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJn
TGlzdCYgYXJncykKICAgICBSZWZQdHI8UmVnRXhwPiByZWdFeHAgPSBleGVjLT5nbG9iYWxEYXRh
KCkucmVnRXhwQ2FjaGUoKS0+bG9va3VwT3JDcmVhdGUocGF0dGVybiwgZmxhZ3MpOwogICAgIGlm
ICghcmVnRXhwLT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNy
ZWF0ZVN5bnRheEVycm9yKGV4ZWMsIHJlZ0V4cC0+ZXJyb3JNZXNzYWdlKCkpKTsKLSAgICByZXR1
cm4gbmV3IChleGVjKSBSZWdFeHBPYmplY3QoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnJlZ0V4cFN0cnVjdHVyZSgpLCByZWdFeHAucmVs
ZWFzZSgpKTsKKyAgICByZXR1cm4gbmV3IChleGVjKSBSZWdFeHBPYmplY3QoZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLCBnbG9iYWxPYmplY3QtPnJlZ0V4cFN0cnVjdHVyZSgpLCByZWdFeHAu
cmVsZWFzZSgpKTsKIH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c3RydWN0V2l0aFJlZ0V4cENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBBcmdM
aXN0IGFyZ3MoZXhlYyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RSZWdF
eHAoZXhlYywgYXJncykpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0UmVn
RXhwKGV4ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUoKSktPmdsb2JhbE9iamVj
dCgpLCBhcmdzKSk7CiB9CiAKIENvbnN0cnVjdFR5cGUgUmVnRXhwQ29uc3RydWN0b3I6OmdldENv
bnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKQEAgLTMzOSw3ICszMzks
NyBAQCBDb25zdHJ1Y3RUeXBlIFJlZ0V4cENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKENv
bnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjYWxsUmVnRXhwQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEFy
Z0xpc3QgYXJncyhleGVjKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdFJl
Z0V4cChleGVjLCBhcmdzKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RS
ZWdFeHAoZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmNhbGxlZSgpKS0+Z2xvYmFsT2Jq
ZWN0KCksIGFyZ3MpKTsKIH0KIAogQ2FsbFR5cGUgUmVnRXhwQ29uc3RydWN0b3I6OmdldENhbGxE
YXRhKENhbGxEYXRhJiBjYWxsRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCmluZGV4IDAzYzZiZWEyYmEzODY0NjUzMmRkN2U1MWZh
YWEzZjYxZTJmOTg1MTcuLjVlMGIyYjg1MGIxYjhhNmMyYzAwMDg4NzU2MzVjMmZmYzk5MTVjMDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVj
dG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0
b3IuaApAQCAtOTYsNyArOTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIFJlZ0V4cENvbnN0
cnVjdG9yKiBhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWUpOwogCi0gICAgSlNPYmplY3QqIGNv
bnN0cnVjdFJlZ0V4cChFeGVjU3RhdGUqLCBjb25zdCBBcmdMaXN0Jik7CisgICAgSlNPYmplY3Qq
IGNvbnN0cnVjdFJlZ0V4cChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0IEFyZ0xp
c3QmKTsKIAogICAgIGlubGluZSBSZWdFeHBDb25zdHJ1Y3RvciogYXNSZWdFeHBDb25zdHJ1Y3Rv
cihKU1ZhbHVlIHZhbHVlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAppbmRleCA1Mzk4ZjMxMmI4YzQxOWQ1YTQxYzY2
ZTE5ZjVjYTNlY2VjNzgwMmI2Li5lZDA4OGU0ZjZkMDczNmQ5YTBiZGI4NDcyNTQ1NWQwZDkzYjI3
MDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25z
dHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29u
c3RydWN0b3IuY3BwCkBAIC02Nyw5ICs2NywxMCBAQCBTdHJpbmdDb25zdHJ1Y3Rvcjo6U3RyaW5n
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQog
Ly8gRUNNQSAxNS41LjIKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdFdpdGhTdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CisgICAgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUo
KSktPmdsb2JhbE9iamVjdCgpOwogICAgIGlmICghZXhlYy0+YXJndW1lbnRDb3VudCgpKQotICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG5ldyAoZXhlYykgU3RyaW5nT2JqZWN0KGV4ZWMs
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+c3RyaW5nT2JqZWN0U3RydWN0dXJlKCkpKTsK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG5ldyAoZXhlYykgU3RyaW5nT2JqZWN0KGV4ZWMs
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+c3RyaW5nT2JqZWN0U3RydWN0dXJlKCksIGV4
ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpKSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUobmV3IChleGVjKSBTdHJpbmdPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LT5zdHJp
bmdPYmplY3RTdHJ1Y3R1cmUoKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobmV3IChl
eGVjKSBTdHJpbmdPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LT5zdHJpbmdPYmplY3RTdHJ1Y3R1
cmUoKSwgZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYykpKTsKIH0KIAogQ29uc3RydWN0
VHlwZSBTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJiBj
b25zdHJ1Y3REYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmpl
Y3QuaAppbmRleCAwZTJhMmIyNDEzYzk4ZTJjYTcxMGMyY2RkOWE4YjA0MGQ4NzRiNjAyLi5hZTMz
NzZkMjJhY2U1M2E4MTlhMzA3ZDQ5M2M1MTVhOTI4NzlkMDY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApAQCAtMzEsNyArMzEsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgU3RyaW5nT2JqZWN0KEV4ZWNTdGF0ZSosIE5vbk51bGxQYXNzUmVm
UHRyPFN0cnVjdHVyZT4pOwogICAgICAgICBTdHJpbmdPYmplY3QoRXhlY1N0YXRlKiwgTm9uTnVs
bFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgY29uc3QgVVN0cmluZyYpOwogCi0gICAgICAgIHN0YXRp
YyBTdHJpbmdPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqLCBKU1N0cmluZyopOworICAgICAgICBz
dGF0aWMgU3RyaW5nT2JqZWN0KiBjcmVhdGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBK
U1N0cmluZyopOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNp
Z25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cK
aW5kZXggN2IzMjIxYTAyOGNhOWZjYjlhOWVmZGQyNjI0ZGIyZjc0YjQ0NjkwNS4uN2VjMzFlY2Ey
YTRjNDU2OWYyZTQzOTU4YzZlNmY1YjUxMWZlMGE1MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDMtMjUgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBp
bnN0YW5jZW9mIEFycmF5IHRlc3QgZmFpbHMgd2hlbiB1c2luZyBpZnJhbWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI1MAorCisgICAgICAgIFVw
IGRhdGUgZm9yIG5ldyB0b09iamVjdCBhcGkKKworICAgICAgICAqIFVzZXJPYmplY3RJbXAuY3Bw
OgorICAgICAgICAoVXNlck9iamVjdEltcDo6dG9QcmltaXRpdmUpOgorICAgICAgICAoVXNlck9i
amVjdEltcDo6dG9Cb29sZWFuKToKKyAgICAgICAgKFVzZXJPYmplY3RJbXA6OnRvTnVtYmVyKToK
KyAgICAgICAgKFVzZXJPYmplY3RJbXA6OnRvU3RyaW5nKToKKwogMjAxMS0wMy0yNiAgQWRhbSBC
YXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB0aGUgSmF2YVNjcmlw
dEdsdWUgR1lQIGJ1aWxkLiAgV2UncmUgbm90IGdvaW5nIHRvIHVzZSBHWVAgZm9yCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKaW5kZXggZjQ4YTIzMDRjY2IyNDhhMjRhZDI5
YWFiMDE3MjljMGUwMGE5MTIwOS4uYTA0ZjU4ZTQ2NDBkYTE0NDE4ZDY4NThmMTJiZGI0OTI1ZTkx
YjlmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApAQCAtMTY3LDcg
KzE2Nyw3IEBAIEpTVXNlck9iamVjdCogVXNlck9iamVjdEltcDo6R2V0SlNVc2VyT2JqZWN0KCkg
Y29uc3QKIEpTVmFsdWUgVXNlck9iamVjdEltcDo6dG9QcmltaXRpdmUoRXhlY1N0YXRlICpleGVj
LCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlKSBjb25zdAogewogICAgIEpTVmFsdWUgcmVzdWx0ID0g
anNVbmRlZmluZWQoKTsKLSAgICBKU1VzZXJPYmplY3QqIGpzT2JqUHRyID0gS0pTVmFsdWVUb0pT
T2JqZWN0KHRvT2JqZWN0KGV4ZWMpLCBleGVjKTsKKyAgICBKU1VzZXJPYmplY3QqIGpzT2JqUHRy
ID0gS0pTVmFsdWVUb0pTT2JqZWN0KHRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSksIGV4ZWMpOwogICAgIENGVHlwZVJlZiBjZlZhbHVlID0ganNPYmpQdHIgPyBqc09i
alB0ci0+Q29weUNGVmFsdWUoKSA6IDA7CiAgICAgaWYgKGNmVmFsdWUpIHsKICAgICAgICAgQ0ZU
eXBlSUQgY2ZUeXBlID0gQ0ZHZXRUeXBlSUQoY2ZWYWx1ZSk7ICAvLyB0b1ByaW1pdGl2ZQpAQCAt
MjA0LDcgKzIwNCw3IEBAIEpTVmFsdWUgVXNlck9iamVjdEltcDo6dG9QcmltaXRpdmUoRXhlY1N0
YXRlICpleGVjLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlKSBjb25zCiBib29sIFVzZXJPYmplY3RJ
bXA6OnRvQm9vbGVhbihFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0CiB7CiAgICAgYm9vbCByZXN1bHQg
PSBmYWxzZTsKLSAgICBKU1VzZXJPYmplY3QqIGpzT2JqUHRyID0gS0pTVmFsdWVUb0pTT2JqZWN0
KHRvT2JqZWN0KGV4ZWMpLCBleGVjKTsKKyAgICBKU1VzZXJPYmplY3QqIGpzT2JqUHRyID0gS0pT
VmFsdWVUb0pTT2JqZWN0KHRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KSksIGV4ZWMpOwogICAgIENGVHlwZVJlZiBjZlZhbHVlID0ganNPYmpQdHIgPyBqc09ialB0ci0+
Q29weUNGVmFsdWUoKSA6IDA7CiAgICAgaWYgKGNmVmFsdWUpCiAgICAgewpAQCAtMjg0LDcgKzI4
NCw3IEBAIGJvb2wgVXNlck9iamVjdEltcDo6dG9Cb29sZWFuKEV4ZWNTdGF0ZSAqZXhlYykgY29u
c3QKIGRvdWJsZSBVc2VyT2JqZWN0SW1wOjp0b051bWJlcihFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0
CiB7CiAgICAgZG91YmxlIHJlc3VsdCA9IDA7Ci0gICAgSlNVc2VyT2JqZWN0KiBqc09ialB0ciA9
IEtKU1ZhbHVlVG9KU09iamVjdCh0b09iamVjdChleGVjKSwgZXhlYyk7CisgICAgSlNVc2VyT2Jq
ZWN0KiBqc09ialB0ciA9IEtKU1ZhbHVlVG9KU09iamVjdCh0b09iamVjdChleGVjLCBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBleGVjKTsKICAgICBDRlR5cGVSZWYgY2ZWYWx1ZSA9IGpz
T2JqUHRyID8ganNPYmpQdHItPkNvcHlDRlZhbHVlKCkgOiAwOwogICAgIGlmIChjZlZhbHVlKQog
ICAgIHsKQEAgLTMxOCw3ICszMTgsNyBAQCBkb3VibGUgVXNlck9iamVjdEltcDo6dG9OdW1iZXIo
RXhlY1N0YXRlICpleGVjKSBjb25zdAogVVN0cmluZyBVc2VyT2JqZWN0SW1wOjp0b1N0cmluZyhF
eGVjU3RhdGUgKmV4ZWMpIGNvbnN0CiB7CiAgICAgVVN0cmluZyByZXN1bHQ7Ci0gICAgSlNVc2Vy
T2JqZWN0KiBqc09ialB0ciA9IEtKU1ZhbHVlVG9KU09iamVjdCh0b09iamVjdChleGVjKSwgZXhl
Yyk7CisgICAgSlNVc2VyT2JqZWN0KiBqc09ialB0ciA9IEtKU1ZhbHVlVG9KU09iamVjdCh0b09i
amVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBleGVjKTsKICAgICBDRlR5
cGVSZWYgY2ZWYWx1ZSA9IGpzT2JqUHRyID8ganNPYmpQdHItPkNvcHlDRlZhbHVlKCkgOiAwOwog
ICAgIGlmIChjZlZhbHVlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlNGRhY2MzNGIxM2QzYzVkMmEx
OTg0YzJjNmNkNmQ2OWE5ZmMyNDk1Li5jZWNjMWU3ZjMwNjMyM2I1ZjJhOWRiMjU5NzQ4N2Y0NzEz
OTc0ZWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDMtMjUgIE9saXZlciBI
dW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBpbnN0YW5jZW9mIEFycmF5IHRlc3QgZmFpbHMgd2hlbiB1c2luZyBp
ZnJhbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzI1MAorCisgICAgICAgIFVwZGF0ZSBmb3IgbmV3IGZ1bmN0aW9uIGFuZCBkYXRlIGFwaXMKKwor
ICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkgKHRlc3RzIGNvbWluZykKKworICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNEYXRlT3JOdWxsKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTTGF6eUV2ZW50TGlzdGVuZXI6OmluaXRpYWxpemVKU0Z1bmN0aW9uKToKKwogMjAx
MS0wMy0yOCAgQW5kcmVpIFBvcGVzY3UgIDxhbmRyZWlwQGdvb2dsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgU3RldmUgQmxvY2suCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01CaW5kaW5nLmNwcAppbmRleCA0ZDE4YTRlMzU2NWEwOTQ5OTQwM2FiNmZhOTQ2ZGFjMmU3MjBh
MDNmLi44NTAxZWI5MjU2NDQwOTkxZGE1ODljYWRkYjIyNmRlMmVkYmNkN2E5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKQEAgLTQ4Myw3ICs0ODMsNyBA
QCBKU1ZhbHVlIGpzRGF0ZU9yTnVsbChFeGVjU3RhdGUqIGV4ZWMsIGRvdWJsZSB2YWx1ZSkKIHsK
ICAgICBpZiAoIWlzZmluaXRlKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAg
IHJldHVybiBuZXcgKGV4ZWMpIERhdGVJbnN0YW5jZShleGVjLCB2YWx1ZSk7CisgICAgcmV0dXJu
IG5ldyAoZXhlYykgRGF0ZUluc3RhbmNlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KS0+ZGF0ZVN0cnVjdHVyZSgpLCB2YWx1ZSk7CiB9CiAKIGRvdWJsZSB2YWx1ZVRvRGF0ZShFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IDk4ZGI5N2E2ZjQ1NTBlMDJkZGFi
ZmUzZmY4ZDVkYTllNjkzOThmMmEuLmUwYWRmYTc5NjU2NjE4NzM1MjU4NGU0MDAxNzZhN2Q5NDAw
ODRjMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50
TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50
TGlzdGVuZXIuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgSlNPYmplY3QqIEpTTGF6eUV2ZW50TGlz
dGVuZXI6OmluaXRpYWxpemVKU0Z1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGV4ZWMK
ICAgICBhcmdzLmFwcGVuZChqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgc3RyaW5nVG9VU3RyaW5n
KG1fZXZlbnRQYXJhbWV0ZXJOYW1lKSkpOwogICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5nKGV4ZWMs
IG1fY29kZSkpOwogCi0gICAgSlNPYmplY3QqIGpzRnVuY3Rpb24gPSBjb25zdHJ1Y3RGdW5jdGlv
bihleGVjLCBhcmdzLCBJZGVudGlmaWVyKGV4ZWMsIHN0cmluZ1RvVVN0cmluZyhtX2Z1bmN0aW9u
TmFtZSkpLCBzdHJpbmdUb1VTdHJpbmcobV9zb3VyY2VVUkwpLCBtX2xpbmVOdW1iZXIpOyAvLyBG
SVhNRTogaXMgZ2xvYmFsRXhlYyBvaz8KKyAgICBKU09iamVjdCoganNGdW5jdGlvbiA9IGNvbnN0
cnVjdEZ1bmN0aW9uKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgYXJncywgSWRl
bnRpZmllcihleGVjLCBzdHJpbmdUb1VTdHJpbmcobV9mdW5jdGlvbk5hbWUpKSwgc3RyaW5nVG9V
U3RyaW5nKG1fc291cmNlVVJMKSwgbV9saW5lTnVtYmVyKTsgLy8gRklYTUU6IGlzIGdsb2JhbEV4
ZWMgb2s/CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSB7CiAgICAgICAgIGV4ZWMtPmNs
ZWFyRXhjZXB0aW9uKCk7CiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0
L3F0X3J1bnRpbWUuY3BwCmluZGV4IGZkMzNiODk3ZGEwZjZkNDRlNTdkYjAyY2QxMWUzYTgwMTZl
NGU0ZTQuLjg3ZWU1MjI0YmVjMWQ3MWQ4YjkzY2Y1NjAwMWNlYjNmMWQ3MjllYzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKQEAgLTg4Myw3ICs4ODMsNyBAQCBKU1Zh
bHVlIGNvbnZlcnRRVmFyaWFudFRvVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPFJv
b3RPYmplY3Q+IHJvb3QsIGNvbgogICAgICAgICBkdC5pc0RTVCA9IC0xOwogICAgICAgICBkb3Vi
bGUgbXMgPSBncmVnb3JpYW5EYXRlVGltZVRvTVMoZXhlYywgZHQsIHRpbWUubXNlYygpLCAvKmlu
cHV0SXNVVEMqLyBmYWxzZSk7CiAKLSAgICAgICAgcmV0dXJuIG5ldyAoZXhlYykgRGF0ZUluc3Rh
bmNlKGV4ZWMsIHRydW5jKG1zKSk7CisgICAgICAgIHJldHVybiBuZXcgKGV4ZWMpIERhdGVJbnN0
YW5jZShleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmRhdGVTdHJ1Y3R1cmUoKSwg
dHJ1bmMobXMpKTsKICAgICB9CiAKICAgICBpZiAodHlwZSA9PSBRTWV0YVR5cGU6OlFCeXRlQXJy
YXkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87200</attachid>
            <date>2011-03-28 14:06:51 -0700</date>
            <delta_ts>2011-03-29 06:52:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-17250-20110328140649.patch</filename>
            <type>text/plain</type>
            <size>53334</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIxMzkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzYjMyNDliYmQ0ZTQ2YmM4OWIxN2Iy
NTdkNzFkZjNiOWU1ZDMzMjYwLi5hMGJkNTE5ZGU4YjU4MmJmNGRiMTk3NWJhMjJkZWRhNGJlZjk1
OGZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDMtMjggIE9saXZlciBIdW50ICA8b2xp
dmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBpbnN0YW5jZW9mIEFycmF5IHRlc3QgZmFpbHMgd2hlbiB1c2luZyBpZnJhbWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI1MAorCisg
ICAgICAgIEFkZCB0ZXN0IGNhc2VzIGZvciBjb3JyZWN0IGJlaGF2aW91cgorCisgICAgICAgICog
ZmFzdC9qcy9qcy1jb25zdHJ1Y3RvcnMtdXNlLWNvcnJlY3QtZ2xvYmFsLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9qcy9qcy1jb25zdHJ1Y3RvcnMtdXNlLWNvcnJlY3QtZ2xv
YmFsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvcmVzb3VyY2VzL2pzLWNvbnN0cnVj
dG9ycy11c2UtY29ycmVjdC1nbG9iYWwuanM6IEFkZGVkLgorCiAyMDExLTAzLTI4ICBTZXJnaW8g
VmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IGFkZGVkIG5ldyBHVEsrIHRlc3QgZXhwZWN0YXRpb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9qcy9qcy1jb25zdHJ1Y3RvcnMtdXNlLWNvcnJlY3QtZ2xvYmFsLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvanMtY29uc3RydWN0b3JzLXVzZS1jb3JyZWN0LWdsb2Jh
bC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQyZTExYmVlMDY5YTJlMzFjMzI3NzBiMTU0YTE3
MDg3MThiYmI5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvanMtY29u
c3RydWN0b3JzLXVzZS1jb3JyZWN0LWdsb2JhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNCBA
QAorVGVzdCB0byBlbnN1cmUgdGhhdCBqcyBjb25zdHJ1Y3RvcnMgY3JlYXRlIG9iamVjdHMgd2l0
aCB0aGUgY29ycmVjdCBjb25zdHJ1Y3RvcgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBuZXcgb3RoZXJHbG9iYWwuT2JqZWN0KCkgaW5zdGFuY2VvZiBvdGhlckdsb2JhbC5P
YmplY3QgaXMgdHJ1ZQorUEFTUyBvdGhlckdsb2JhbC5PYmplY3QoKSBpbnN0YW5jZW9mIG90aGVy
R2xvYmFsLk9iamVjdCBpcyB0cnVlCitQQVNTIG5ldyBvdGhlckdsb2JhbC5GdW5jdGlvbigpIGlu
c3RhbmNlb2Ygb3RoZXJHbG9iYWwuRnVuY3Rpb24gaXMgdHJ1ZQorUEFTUyBvdGhlckdsb2JhbC5G
dW5jdGlvbigpIGluc3RhbmNlb2Ygb3RoZXJHbG9iYWwuRnVuY3Rpb24gaXMgdHJ1ZQorUEFTUyBu
ZXcgb3RoZXJHbG9iYWwuQXJyYXkoKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLkFycmF5IGlzIHRy
dWUKK1BBU1Mgb3RoZXJHbG9iYWwuQXJyYXkoKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLkFycmF5
IGlzIHRydWUKK1BBU1MgbmV3IG90aGVyR2xvYmFsLk51bWJlcigpIGluc3RhbmNlb2Ygb3RoZXJH
bG9iYWwuTnVtYmVyIGlzIHRydWUKK1BBU1MgbmV3IG90aGVyR2xvYmFsLlN0cmluZygpIGluc3Rh
bmNlb2Ygb3RoZXJHbG9iYWwuU3RyaW5nIGlzIHRydWUKK1BBU1MgbmV3IG90aGVyR2xvYmFsLkJv
b2xlYW4oKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLkJvb2xlYW4gaXMgdHJ1ZQorUEFTUyBuZXcg
b3RoZXJHbG9iYWwuUmVnRXhwKCkgaW5zdGFuY2VvZiBvdGhlckdsb2JhbC5SZWdFeHAgaXMgdHJ1
ZQorUEFTUyBvdGhlckdsb2JhbC5SZWdFeHAoKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLlJlZ0V4
cCBpcyB0cnVlCitQQVNTIG5ldyBvdGhlckdsb2JhbC5EYXRlKCkgaW5zdGFuY2VvZiBvdGhlckds
b2JhbC5EYXRlIGlzIHRydWUKK1BBU1MgbmV3IG90aGVyR2xvYmFsLkVycm9yKCkgaW5zdGFuY2Vv
ZiBvdGhlckdsb2JhbC5FcnJvciBpcyB0cnVlCitQQVNTIG90aGVyR2xvYmFsLkVycm9yKCkgaW5z
dGFuY2VvZiBvdGhlckdsb2JhbC5FcnJvciBpcyB0cnVlCitQQVNTIG5ldyBvdGhlckdsb2JhbC5S
YW5nZUVycm9yKCkgaW5zdGFuY2VvZiBvdGhlckdsb2JhbC5SYW5nZUVycm9yIGlzIHRydWUKK1BB
U1Mgb3RoZXJHbG9iYWwuUmFuZ2VFcnJvcigpIGluc3RhbmNlb2Ygb3RoZXJHbG9iYWwuUmFuZ2VF
cnJvciBpcyB0cnVlCitQQVNTIG5ldyBvdGhlckdsb2JhbC5SZWZlcmVuY2VFcnJvcigpIGluc3Rh
bmNlb2Ygb3RoZXJHbG9iYWwuUmVmZXJlbmNlRXJyb3IgaXMgdHJ1ZQorUEFTUyBvdGhlckdsb2Jh
bC5SZWZlcmVuY2VFcnJvcigpIGluc3RhbmNlb2Ygb3RoZXJHbG9iYWwuUmVmZXJlbmNlRXJyb3Ig
aXMgdHJ1ZQorUEFTUyBuZXcgb3RoZXJHbG9iYWwuU3ludGF4RXJyb3IoKSBpbnN0YW5jZW9mIG90
aGVyR2xvYmFsLlN5bnRheEVycm9yIGlzIHRydWUKK1BBU1Mgb3RoZXJHbG9iYWwuU3ludGF4RXJy
b3IoKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLlN5bnRheEVycm9yIGlzIHRydWUKK1BBU1MgbmV3
IG90aGVyR2xvYmFsLlR5cGVFcnJvcigpIGluc3RhbmNlb2Ygb3RoZXJHbG9iYWwuVHlwZUVycm9y
IGlzIHRydWUKK1BBU1Mgb3RoZXJHbG9iYWwuVHlwZUVycm9yKCkgaW5zdGFuY2VvZiBvdGhlckds
b2JhbC5UeXBlRXJyb3IgaXMgdHJ1ZQorUEFTUyBuZXcgb3RoZXJHbG9iYWwuVVJJRXJyb3IoKSBp
bnN0YW5jZW9mIG90aGVyR2xvYmFsLlVSSUVycm9yIGlzIHRydWUKK1BBU1Mgb3RoZXJHbG9iYWwu
VVJJRXJyb3IoKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLlVSSUVycm9yIGlzIHRydWUKK1BBU1Mg
bmV3IG90aGVyR2xvYmFsLkltYWdlKCkgaW5zdGFuY2VvZiBvdGhlckdsb2JhbC5JbWFnZSBpcyB0
cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9qcy1jb25zdHJ1Y3RvcnMtdXNlLWNvcnJl
Y3QtZ2xvYmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL2pzLWNvbnN0cnVjdG9ycy11c2Ut
Y29ycmVjdC1nbG9iYWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZGVjNjkxZWEzYmNlMGY5M2Y4ZjA3N2Zj
M2NkNTE0NTc0YTU4MzdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9q
cy1jb25zdHJ1Y3RvcnMtdXNlLWNvcnJlY3QtZ2xvYmFsLmh0bWwKQEAgLTAsMCArMSwxNCBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPGlmcmFtZT48L2lmcmFtZT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
anMtY29uc3RydWN0b3JzLXVzZS1jb3JyZWN0LWdsb2JhbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9qcy1jb25zdHJ1
Y3RvcnMtdXNlLWNvcnJlY3QtZ2xvYmFsLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJj
ZXMvanMtY29uc3RydWN0b3JzLXVzZS1jb3JyZWN0LWdsb2JhbC5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjhj
YjA4NTU1NmUzNWZjMmFmYmVmMjFiMGEzZjBjYmU3ZjE2ZTgyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvanMtY29uc3RydWN0b3JzLXVzZS1jb3JyZWN0
LWdsb2JhbC5qcwpAQCAtMCwwICsxLDE2IEBACitkZXNjcmlwdGlvbigiVGVzdCB0byBlbnN1cmUg
dGhhdCBqcyBjb25zdHJ1Y3RvcnMgY3JlYXRlIG9iamVjdHMgd2l0aCB0aGUgY29ycmVjdCBjb25z
dHJ1Y3RvciIpOworCit2YXIgb3RoZXJHbG9iYWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgiaWZyYW1lIilbMF0uY29udGVudFdpbmRvdzsKK3ZhciBjb25zdHJ1Y3RvcnMgPSBbIk9i
amVjdCIsICJGdW5jdGlvbiIsICJBcnJheSIsICJOdW1iZXIiLCAiU3RyaW5nIiwgIkJvb2xlYW4i
LCAiUmVnRXhwIiwgIkRhdGUiLCAiRXJyb3IiLCAiUmFuZ2VFcnJvciIsICJSZWZlcmVuY2VFcnJv
ciIsICJTeW50YXhFcnJvciIsICJUeXBlRXJyb3IiLCAiVVJJRXJyb3IiLCAiSW1hZ2UiXTsKKwor
Zm9yICh2YXIgaSA9IDA7IGkgPCBjb25zdHJ1Y3RvcnMubGVuZ3RoOyBpKyspIHsKKyAgICBzaG91
bGRCZVRydWUoIm5ldyBvdGhlckdsb2JhbC4iICsgY29uc3RydWN0b3JzW2ldICsgIigpIGluc3Rh
bmNlb2Ygb3RoZXJHbG9iYWwuIiArIGNvbnN0cnVjdG9yc1tpXSk7CisgICAgdHJ5IHsKKyAgICAg
ICAgaWYgKCh0eXBlb2YgKG90aGVyR2xvYmFsW2NvbnN0cnVjdG9yc1tpXV0oKSkpID09PSAib2Jq
ZWN0IiB8fCAodHlwZW9mIChvdGhlckdsb2JhbFtjb25zdHJ1Y3RvcnNbaV1dKCkpKSA9PT0gImZ1
bmN0aW9uIikKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgib3RoZXJHbG9iYWwuIiArIGNvbnN0
cnVjdG9yc1tpXSArICIoKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLiIgKyBjb25zdHJ1Y3RvcnNb
aV0pOworICAgIH0gY2F0Y2goZSkgeworICAgIAorICAgIH0KK30KKworc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmpl
Y3RSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKaW5k
ZXggMzZjYTMzOGI3MTljYjYzMTAwZTdhNDc0MmE2MWE0ZGIyMDQwMmQ3Mi4uYWU0MDgzMGE1ZDc0
NTA3MDNhY2Y5MzNkZjYwMjQwNjc4NThiNzRmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU09iamVjdFJlZi5jcHAKQEAgLTEyNCw3ICsxMjQsNyBAQCBKU09iamVjdFJlZiBKU09iamVj
dE1ha2VGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBuYW1lLCB1bnNpZ25l
ZCBwYQogICAgICAgICBhcmdzLmFwcGVuZChqc1N0cmluZyhleGVjLCBwYXJhbWV0ZXJOYW1lc1tp
XS0+dXN0cmluZygpKSk7CiAgICAgYXJncy5hcHBlbmQoanNTdHJpbmcoZXhlYywgYm9keS0+dXN0
cmluZygpKSk7CiAKLSAgICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RnVuY3Rpb24oZXhl
YywgYXJncywgbmFtZUlELCBzb3VyY2VVUkwtPnVzdHJpbmcoKSwgc3RhcnRpbmdMaW5lTnVtYmVy
KTsKKyAgICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RnVuY3Rpb24oZXhlYywgZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBhcmdzLCBuYW1lSUQsIHNvdXJjZVVSTC0+dXN0cmluZygp
LCBzdGFydGluZ0xpbmVOdW1iZXIpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewog
ICAgICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICAgICAgKmV4Y2VwdGlvbiA9IHRvUmVmKGV4
ZWMsIGV4ZWMtPmV4Y2VwdGlvbigpKTsKQEAgLTIwNyw3ICsyMDcsNyBAQCBKU09iamVjdFJlZiBK
U09iamVjdE1ha2VSZWdFeHAoSlNDb250ZXh0UmVmIGN0eCwgc2l6ZV90IGFyZ3VtZW50Q291bnQs
IGNvbnN0IEpTVgogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJndW1lbnRDb3VudDsgKytp
KQogICAgICAgICBhcmdMaXN0LmFwcGVuZCh0b0pTKGV4ZWMsIGFyZ3VtZW50c1tpXSkpOwogCi0g
ICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0cnVjdFJlZ0V4cChleGVjLCBhcmdMaXN0KTsKKyAg
ICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0UmVnRXhwKGV4ZWMsIGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSwgIGFyZ0xpc3QpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkg
ewogICAgICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICAgICAgKmV4Y2VwdGlvbiA9IHRvUmVm
KGV4ZWMsIGV4ZWMtPmV4Y2VwdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDVh
Y2YwMWZiMTIyNWZlY2I4NzM0MDdhNTI0MjljN2Y0MjA3ZWI1ZTYuLmI2MjU5NTFhZjc1OGRlZjY2
ZDk4NmViNTg0N2E3ZWFlMDdiYmNiN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDgwIEBACisyMDExLTAzLTI1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaW5zdGFuY2Vv
ZiBBcnJheSB0ZXN0IGZhaWxzIHdoZW4gdXNpbmcgaWZyYW1lcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyNTAKKworICAgICAgICBUaGlzIGlzIGEg
cHJvYmxlbSB3aXRoIGFsbCBidWlsdCBpbiBjb25zdHJ1Y3RvcnMsIHRoZSB1c2Ugb2YKKyAgICAg
ICAgbGV4aWNhbEdsb2JhbE9iamVjdCByYXRoZXIgdGhhbiB0aGUgY29uc3RydWN0b3JzIG93biAK
KyAgICAgICAgZ2xvYmFsIG9iamVjdCByZWZlcmVuY2UgbWVhbnMgdGhhdCBhIGJ1aWx0aW4gd2ls
bCBhbHdheXMgdXNlCisgICAgICAgIHRoZSBwcm90b3R5cGUgZnJvbSB0aGUgbGV4aWNhbCBnbG9i
YWwgb2JqZWN0IHJhdGhlciB0aGFuIHRoYXQKKyAgICAgICAgb2YgdGhlIGNvbnN0cnVjdG9ycyBv
cmlnaW4uCisKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuY3BwOgorICAgICAgICAoSlNPYmpl
Y3RNYWtlRnVuY3Rpb24pOgorICAgICAgICAoSlNPYmplY3RNYWtlUmVnRXhwKToKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKToKKyAgICAg
ICAgKiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0
cnVjdEJvb2xlYW4pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0
ZUJvb2xlYW4pOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmg6CisgICAg
ICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3REYXRlKToKKyAgICAgICAgKiBydW50aW1lL0RhdGVJbnN0YW5jZS5jcHA6CisgICAgICAgICog
cnVudGltZS9EYXRlSW5zdGFuY2UuaDoKKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoRXJyb3JDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChKU0M6OmNhbGxFcnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL0Z1
bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoRnVuY3Rp
b25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNhbGxGdW5jdGlvbkNvbnN0cnVjdG9yKToK
KyAgICAgICAgKEpTQzo6Y29uc3RydWN0RnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvRnVu
Y3Rpb25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlNDOjpKU0Nl
bGw6OnB1dCk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAg
ICAoSlNDOjpKU0NlbGw6OnRvVGhpc09iamVjdCk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6dG9P
YmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAgIChKU0M6OkpTQ2Vs
bDo6SlNWYWx1ZTo6dG9PYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OkpTTm90QW5PYmplY3Q6OnRvT2JqZWN0KToKKyAgICAgICAgKiBy
dW50aW1lL0pTTm90QW5PYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoK
KyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnRvT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0pT
T2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5jcHA6CisgICAgICAgIChKU0M6
OlN0cmluZ09iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OnRvT2JqZWN0
KToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OnRvVGhpc09iamVjdCk6CisgICAgICAgICogcnVu
dGltZS9KU1N0cmluZy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1ZS5jcHA6CisgICAgICAg
IChKU0M6OkpTVmFsdWU6OnRvT2JqZWN0U2xvd0Nhc2UpOgorICAgICAgICAoSlNDOjpKU1ZhbHVl
Ojp0b1RoaXNPYmplY3RTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnN5bnRoZXNp
emVPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1bnRp
bWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoTnVt
YmVyQ29uc3RydWN0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6Y29uc3RydWN0TnVtYmVyKToKKyAgICAgICAgKiBydW50aW1lL051bWJlck9i
amVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpjb25zdHJ1Y3RPYmplY3QpOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoT2Jq
ZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpjYWxsT2JqZWN0Q29uc3RydWN0b3IpOgor
ICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpj
b25zdHJ1Y3RSZWdFeHApOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoUmVnRXhwQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoSlNDOjpjYWxsUmVnRXhwQ29uc3RydWN0b3IpOgorICAgICAgICAq
IHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0Nv
bnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVj
dG9yKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5oOgorCiAyMDExLTAzLTI4ICBP
bGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyODIx
MzApOiBJdCBtYWRlIGFsbCB0ZXN0cyBjcmFzaCAoUmVxdWVzdGVkIGJ5IE9zc3kgb24gI3dlYmtp
dCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCBmZDc3MTkz
YTg4ZDNkNmYzOWRhNGExMjg4MzE1OTAzNGQ5ZTA1OWYzLi5lMjY0N2QxYTMxZWJkNzgwYTQ0Yzcx
YzY2ZmUwNDRkYjRiYTc5MTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAKQEAgLTEyMiw3ICsxMjIsNiBAQCBfX1pOM0pTQzExY3JlYXRlRXJyb3JFUE5TXzlFeGVj
U3RhdGVFUktOU183VVN0cmluZ0UKIF9fWk4zSlNDMTFyZWdFeHBGbGFnc0VSS05TXzdVU3RyaW5n
RQogX19aTjNKU0MxMkRhdGVJbnN0YW5jZTZzX2luZm9FCiBfX1pOM0pTQzEyRGF0ZUluc3RhbmNl
QzFFUE5TXzlFeGVjU3RhdGVFTjNXVEYxN05vbk51bGxQYXNzUmVmUHRySU5TXzlTdHJ1Y3R1cmVF
RUVkCi1fX1pOM0pTQzEyRGF0ZUluc3RhbmNlQzFFUE5TXzlFeGVjU3RhdGVFZAogX19aTjNKU0Mx
MkpTR2xvYmFsRGF0YTEwQ2xpZW50RGF0YUQyRXYKIF9fWk4zSlNDMTJKU0dsb2JhbERhdGExMWpz
QXJyYXlWUHRyRQogX19aTjNKU0MxMkpTR2xvYmFsRGF0YTEyY3JlYXRlTGVha2VkRU5TXzE1VGhy
ZWFkU3RhY2tUeXBlRQpAQCAtMTgyLDcgKzE4MSw3IEBAIF9fWk4zSlNDMTZjcmVhdGVSYW5nZUVy
cm9yRVBOU185RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCiBfX1pOM0pTQzE2dGhyb3dTeW50YXhF
cnJvckVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvcjIxc2V0RHVt
cHNHZW5lcmF0ZWRDb2RlRWIKIF9fWk4zSlNDMTdQcm9wZXJ0eU5hbWVBcnJheTNhZGRFUE4zV1RG
MTBTdHJpbmdJbXBsRQotX19aTjNKU0MxN2NvbnN0cnVjdEZ1bmN0aW9uRVBOU185RXhlY1N0YXRl
RVJLTlNfN0FyZ0xpc3RFUktOU18xMElkZW50aWZpZXJFUktOU183VVN0cmluZ0VpCitfX1pOM0pT
QzE3Y29uc3RydWN0RnVuY3Rpb25FUE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RF
UktOU183QXJnTGlzdEVSS05TXzEwSWRlbnRpZmllckVSS05TXzdVU3RyaW5nRWkKIF9fWk4zSlND
MTdjcmVhdGVTeW50YXhFcnJvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzdVU3RyaW5nRQogX19aTjNK
U0MxOERlYnVnZ2VyQWN0aXZhdGlvbkMxRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOEpTT2JqZWN0
RQogX19aTjNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjExc2V0V3JpdGFibGVFYgpAQCAtNTM1LDcg
KzUzNCw3IEBAIF9fWk5LM0pTQzZKU0NlbGwxMXRvUHJpbWl0aXZlRVBOU185RXhlY1N0YXRlRU5T
XzIyUHJlZmVycmVkUHJpbWl0aXZlVHlwZUUKIF9fWk5LM0pTQzZKU0NlbGwxMnRvVGhpc09iamVj
dEVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk5LM0pTQzZKU0NlbGwxNGlzR2V0dGVyU2V0dGVyRXYKIF9f
Wk5LM0pTQzZKU0NlbGw4dG9OdW1iZXJFUE5TXzlFeGVjU3RhdGVFCi1fX1pOSzNKU0M2SlNDZWxs
OHRvT2JqZWN0RVBOU185RXhlY1N0YXRlRQorX19aTkszSlNDNkpTQ2VsbDh0b09iamVjdEVQTlNf
OUV4ZWNTdGF0ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk5LM0pTQzZKU0NlbGw4dG9TdHJp
bmdFUE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M2SlNDZWxsOWdldFN0cmluZ0VQTlNfOUV4ZWNT
dGF0ZUUKIF9fWk5LM0pTQzZKU0NlbGw5Z2V0U3RyaW5nRVBOU185RXhlY1N0YXRlRVJOU183VVN0
cmluZ0UKQEAgLTU0Myw3ICs1NDIsNyBAQCBfX1pOSzNKU0M2SlNDZWxsOWdldFVJbnQzMkVSagog
X19aTkszSlNDNkpTQ2VsbDl0b0Jvb2xlYW5FUE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M3QXJn
TGlzdDhnZXRTbGljZUVpUlMwXwogX19aTkszSlNDN0pTQXJyYXkxMnN1YmNsYXNzRGF0YUV2Ci1f
X1pOSzNKU0M3SlNWYWx1ZTE2dG9PYmplY3RTbG93Q2FzZUVQTlNfOUV4ZWNTdGF0ZUUKK19fWk5L
M0pTQzdKU1ZhbHVlMTZ0b09iamVjdFNsb3dDYXNlRVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xv
YmFsT2JqZWN0RQogX19aTkszSlNDN0pTVmFsdWUxOXN5bnRoZXNpemVQcm90b3R5cGVFUE5TXzlF
eGVjU3RhdGVFCiBfX1pOSzNKU0M3SlNWYWx1ZTIwdG9UaGlzT2JqZWN0U2xvd0Nhc2VFUE5TXzlF
eGVjU3RhdGVFCiBfX1pOSzNKU0M3SlNWYWx1ZTl0b0ludGVnZXJFUE5TXzlFeGVjU3RhdGVFCkBA
IC01NTYsNyArNTU1LDcgQEAgX19aTkszSlNDOEpTT2JqZWN0MTJkZWZhdWx0VmFsdWVFUE5TXzlF
eGVjU3RhdGVFTlNfMjJQcmVmZXJyZWRQcmltaXRpdmVUeXBlRQogX19aTkszSlNDOEpTT2JqZWN0
MTJ0b1RoaXNPYmplY3RFUE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M4SlNPYmplY3QxOHRvU3Ry
aWN0VGhpc09iamVjdEVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk5LM0pTQzhKU09iamVjdDh0b051bWJl
ckVQTlNfOUV4ZWNTdGF0ZUUKLV9fWk5LM0pTQzhKU09iamVjdDh0b09iamVjdEVQTlNfOUV4ZWNT
dGF0ZUUKK19fWk5LM0pTQzhKU09iamVjdDh0b09iamVjdEVQTlNfOUV4ZWNTdGF0ZUVQTlNfMTRK
U0dsb2JhbE9iamVjdEUKIF9fWk5LM0pTQzhKU09iamVjdDh0b1N0cmluZ0VQTlNfOUV4ZWNTdGF0
ZUUKIF9fWk5LM0pTQzhKU09iamVjdDljbGFzc05hbWVFdgogX19aTkszSlNDOEpTT2JqZWN0OXRv
Qm9vbGVhbkVQTlNfOUV4ZWNTdGF0ZUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVm
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKaW5kZXggNjIzNzQ0MGU4ZTllZDczNWQ5MmI5NDkxMTU2
ZWFkMDFhZWRjZDczYS4uZDdjZGRmNGY1OGI4OGMzZTUyMmY3YzUxMWI5NzYwMTM4M2FlMzI0NCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5k
ZWYKQEAgLTMsNyArMyw2IEBAIEVYUE9SVFMKICAgICA/PzBDU3RyaW5nQFdURkBAUUFFQFBCREBa
CiAgICAgPz8wQ1N0cmluZ0BXVEZAQFFBRUBQQkRJQFoKICAgICA/PzBDb2xsYXRvckBXVEZAQFFB
RUBQQkRAWgotICAgID8/MERhdGVJbnN0YW5jZUBKU0NAQFFBRUBQQVZFeGVjU3RhdGVAMUBOQFoK
ICAgICA/PzBEYXRlSW5zdGFuY2VASlNDQEBRQUVAUEFWRXhlY1N0YXRlQDFAVj8kTm9uTnVsbFBh
c3NSZWZQdHJAVlN0cnVjdHVyZUBKU0NAQEBXVEZAQE5AWgogICAgID8/MERlZmF1bHRHQ0FjdGl2
aXR5Q2FsbGJhY2tASlNDQEBRQUVAUEFWSGVhcEAxQEBaCiAgICAgPz8wRHJvcEFsbExvY2tzQEpT
TG9ja0BKU0NAQFFBRUBXNEpTTG9ja0JlaGF2aW9yQDJAQFoKQEAgLTk0LDcgKzkzLDcgQEAgRVhQ
T1JUUwogICAgID9jb25zdHJ1Y3RBcnJheUBKU0NAQFlBUEFWSlNBcnJheUAxQFBBVkV4ZWNTdGF0
ZUAxQEFCVkFyZ0xpc3RAMUBAWgogICAgID9jb25zdHJ1Y3RFbXB0eUFycmF5QEpTQ0BAWUFQQVZK
U0FycmF5QDFAUEFWRXhlY1N0YXRlQDFAQFoKICAgICA/Y29uc3RydWN0RW1wdHlPYmplY3RASlND
QEBZQVBBVkpTT2JqZWN0QDFAUEFWRXhlY1N0YXRlQDFAQFoKLSAgICA/Y29uc3RydWN0RnVuY3Rp
b25ASlNDQEBZQVBBVkpTT2JqZWN0QDFAUEFWRXhlY1N0YXRlQDFAQUJWQXJnTGlzdEAxQEFCVklk
ZW50aWZpZXJAMUBBQlZVU3RyaW5nQDFASEBaCisgICAgP2NvbnN0cnVjdEZ1bmN0aW9uQEpTQ0BA
WUFQQVZKU09iamVjdEAxQFBBVkV4ZWNTdGF0ZUAxQFBBVkpTR2xvYmFsT2JqZWN0QDFAQUJWQXJn
TGlzdEAxQEFCVklkZW50aWZpZXJAMUBBQlZVU3RyaW5nQDFASEBaCiAgICAgP2NvbnZlcnRVVEYx
NlRvVVRGOEBVbmljb2RlQFdURkBAWUE/QVc0Q29udmVyc2lvblJlc3VsdEAxMkBQQVBCX1dQQl9X
UEFQQURQQURfTkBaCiAgICAgP2NvbnZlcnRVVEY4VG9VVEYxNkBVbmljb2RlQFdURkBAWUE/QVc0
Q29udmVyc2lvblJlc3VsdEAxMkBQQVBCRFBCRFBBUEFfV1BBX1dfTkBaCiAgICAgP2NyZWF0ZUBC
eXRlQXJyYXlAV1RGQEBTQT9BVj8kUGFzc1JlZlB0ckBWQnl0ZUFycmF5QFdURkBAQDJASUBaCkBA
IC0zMzYsMTAgKzMzNSw5IEBAIEVYUE9SVFMKICAgICA/dG9OdW1iZXJASlNDZWxsQEpTQ0BAVUJF
TlBBVkV4ZWNTdGF0ZUAyQEBaCiAgICAgP3RvTnVtYmVyQEpTT2JqZWN0QEpTQ0BAVUJFTlBBVkV4
ZWNTdGF0ZUAyQEBaCiAgICAgP3RvTnVtYmVyQEpTU3RyaW5nQEpTQ0BARUJFTlBBVkV4ZWNTdGF0
ZUAyQEBaCi0gICAgP3RvT2JqZWN0QEpTQ2VsbEBKU0NAQFVCRVBBVkpTT2JqZWN0QDJAUEFWRXhl
Y1N0YXRlQDJAQFoKLSAgICA/dG9PYmplY3RASlNPYmplY3RASlNDQEBVQkVQQVYxMkBQQVZFeGVj
U3RhdGVAMkBAWgotICAgID90b09iamVjdEBKU1N0cmluZ0BKU0NAQEVCRVBBVkpTT2JqZWN0QDJA
UEFWRXhlY1N0YXRlQDJAQFoKLSAgICA/dG9PYmplY3RTbG93Q2FzZUBKU1ZhbHVlQEpTQ0BAQUJF
UEFWSlNPYmplY3RAMkBQQVZFeGVjU3RhdGVAMkBAWgorICAgID90b09iamVjdEBKU0NlbGxASlND
QEBVQkVQQVZKU09iamVjdEAyQFBBVkV4ZWNTdGF0ZUAyQFBBVkpTR2xvYmFsT2JqZWN0QDJAQFoK
KyAgICA/dG9PYmplY3RASlNPYmplY3RASlNDQEBVQkVQQVYxMkBQQVZFeGVjU3RhdGVAMkBQQVZK
U0dsb2JhbE9iamVjdEAyQEBaCisgICAgP3RvT2JqZWN0U2xvd0Nhc2VASlNWYWx1ZUBKU0NAQEFC
RVBBVkpTT2JqZWN0QDJAUEFWRXhlY1N0YXRlQDJAUEFWSlNHbG9iYWxPYmplY3RAMkBAWgogICAg
ID90b1ByaW1pdGl2ZUBKU0NlbGxASlNDQEBVQkU/QVZKU1ZhbHVlQDJAUEFWRXhlY1N0YXRlQDJA
VzRQcmVmZXJyZWRQcmltaXRpdmVUeXBlQDJAQFoKICAgICA/dG9QcmltaXRpdmVASlNTdHJpbmdA
SlNDQEBFQkU/QVZKU1ZhbHVlQDJAUEFWRXhlY1N0YXRlQDJAVzRQcmVmZXJyZWRQcmltaXRpdmVU
eXBlQDJAQFoKICAgICA/dG9TdHJpY3RUaGlzT2JqZWN0QEpTT2JqZWN0QEpTQ0BAVUJFP0FWSlNW
YWx1ZUAyQFBBVkV4ZWNTdGF0ZUAyQEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwCmluZGV4IGFmMmFmYzZkNDAwZTRlNzJkNTlmMzIy
NGU3MjE1MDVmNDhjMzQ3MTYuLmUwZjRiMjNmNDZiNDc4MmViMzhmMWViNTE3YWRjNGRhNzQ3OTA1
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3Ry
dWN0b3IuY3BwCkBAIC01MiwxNiArNTIsMTggQEAgQXJyYXlDb25zdHJ1Y3Rvcjo6QXJyYXlDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKIAog
c3RhdGljIGlubGluZSBKU09iamVjdCogY29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKKyAgICBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0ID0gYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmNhbGxlZSgpKS0+Z2xvYmFs
T2JqZWN0KCk7CisKICAgICAvLyBhIHNpbmdsZSBudW1lcmljIGFyZ3VtZW50IGRlbm90ZXMgdGhl
IGFycmF5IHNpemUgKCEpCiAgICAgaWYgKGFyZ3Muc2l6ZSgpID09IDEgJiYgYXJncy5hdCgwKS5p
c051bWJlcigpKSB7CiAgICAgICAgIHVpbnQzMl90IG4gPSBhcmdzLmF0KDApLnRvVUludDMyKGV4
ZWMpOwogICAgICAgICBpZiAobiAhPSBhcmdzLmF0KDApLnRvTnVtYmVyKGV4ZWMpKQogICAgICAg
ICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCAiQXJy
YXkgc2l6ZSBpcyBub3QgYSBzbWFsbCBlbm91Z2ggcG9zaXRpdmUgaW50ZWdlci4iKSk7Ci0gICAg
ICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTQXJyYXkoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
LT5hcnJheVN0cnVjdHVyZSgpLCBuLCBDcmVhdGVJbml0aWFsaXplZCk7CisgICAgICAgIHJldHVy
biBuZXcgKGV4ZWMpIEpTQXJyYXkoZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZSgpLCBuLCBD
cmVhdGVJbml0aWFsaXplZCk7CiAgICAgfQogCiAgICAgLy8gb3RoZXJ3aXNlIHRoZSBhcnJheSBp
cyBjb25zdHJ1Y3RlZCB3aXRoIHRoZSBhcmd1bWVudHMgaW4gaXQKLSAgICByZXR1cm4gbmV3IChl
eGVjKSBKU0FycmF5KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpLT5hcnJheVN0cnVjdHVyZSgpLCBhcmdzKTsKKyAgICByZXR1cm4gbmV3IChleGVjKSBKU0Fy
cmF5KGV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZSgpLCBh
cmdzKTsKIH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
V2l0aEFycmF5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAKaW5kZXggMjFlZjVi
YmRlZDNhMTAwYTk4YjQzZjYzYjllMjI5M2Y1NmUyZTc2YS4uZTViMGYzZDgzZjZlY2Y4MjFmMGRi
YWQxNzlhODZjNTA2MTIzMzg0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCkBAIC00MCw3ICs0MCw3IEBAIEJvb2xlYW5D
b25zdHJ1Y3Rvcjo6Qm9vbGVhbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iCiAvLyBFQ01BIDE1LjYuMgogSlNPYmplY3QqIGNvbnN0cnVjdEJvb2xl
YW4oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewotICAgIEJvb2xlYW5P
YmplY3QqIG9iaiA9IG5ldyAoZXhlYykgQm9vbGVhbk9iamVjdChleGVjLT5nbG9iYWxEYXRhKCks
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Ym9vbGVhbk9iamVjdFN0cnVjdHVyZSgpKTsK
KyAgICBCb29sZWFuT2JqZWN0KiBvYmogPSBuZXcgKGV4ZWMpIEJvb2xlYW5PYmplY3QoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+Y2FsbGVlKCkpLT5nbG9iYWxP
YmplY3QoKS0+Ym9vbGVhbk9iamVjdFN0cnVjdHVyZSgpKTsKICAgICBvYmotPnNldEludGVybmFs
VmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc0Jvb2xlYW4oYXJncy5hdCgwKS50b0Jvb2xlYW4o
ZXhlYykpKTsKICAgICByZXR1cm4gb2JqOwogfQpAQCAtNjksOSArNjksOSBAQCBDYWxsVHlwZSBC
b29sZWFuQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKENhbGxEYXRhJiBjYWxsRGF0YSkKICAgICBy
ZXR1cm4gQ2FsbFR5cGVIb3N0OwogfQogCi1KU09iamVjdCogY29uc3RydWN0Qm9vbGVhbkZyb21J
bW1lZGlhdGVCb29sZWFuKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBpbW1lZGlhdGVCb29sZWFu
VmFsdWUpCitKU09iamVjdCogY29uc3RydWN0Qm9vbGVhbkZyb21JbW1lZGlhdGVCb29sZWFuKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBpbW1l
ZGlhdGVCb29sZWFuVmFsdWUpCiB7Ci0gICAgQm9vbGVhbk9iamVjdCogb2JqID0gbmV3IChleGVj
KSBCb29sZWFuT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpLT5ib29sZWFuT2JqZWN0U3RydWN0dXJlKCkpOworICAgIEJvb2xlYW5PYmplY3QqIG9i
aiA9IG5ldyAoZXhlYykgQm9vbGVhbk9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIGdsb2JhbE9i
amVjdC0+Ym9vbGVhbk9iamVjdFN0cnVjdHVyZSgpKTsKICAgICBvYmotPnNldEludGVybmFsVmFs
dWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBpbW1lZGlhdGVCb29sZWFuVmFsdWUpOwogICAgIHJldHVy
biBvYmo7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29s
ZWFuQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5D
b25zdHJ1Y3Rvci5oCmluZGV4IDBmM2VmYTdhODBjMzFhMjhlMmNiZTg4ZDgyZTk4OTE1MmY2ODhk
ODkuLjI1NTBiM2IzNTQ3ZDZhMDljMzJmMDUwZTI5YmVlNzZmZTk2YzIyZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCkBAIC0z
Niw3ICszNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdl
dENhbGxEYXRhKENhbGxEYXRhJik7CiAgICAgfTsKIAotICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3RC
b29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4oRXhlY1N0YXRlKiwgSlNWYWx1ZSk7CisgICAgSlNP
YmplY3QqIGNvbnN0cnVjdEJvb2xlYW5Gcm9tSW1tZWRpYXRlQm9vbGVhbihFeGVjU3RhdGUqLCBK
U0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwogICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3RCb29sZWFu
KEV4ZWNTdGF0ZSosIGNvbnN0IEFyZ0xpc3QmKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAppbmRl
eCBlZmFlYjBmMTIxYzQxNzdiM2FmNmYzZGM2OTcwMzJiZjk2M2JjNjdiLi5lMTkyNjdhOTE5MDg2
M2FiZDZjOGEwNTM4MGNmZWY1NWY4OWI3M2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTEyMSw3ICsxMjEsNyBAQCBKU09i
amVjdCogY29uc3RydWN0RGF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3Mp
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gbmV3IChleGVjKSBEYXRlSW5zdGFuY2Uo
ZXhlYywgdmFsdWUpOworICAgIHJldHVybiBuZXcgKGV4ZWMpIERhdGVJbnN0YW5jZShleGVjLCBh
c0ludGVybmFsRnVuY3Rpb24oZXhlYy0+Y2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKS0+ZGF0ZVN0
cnVjdHVyZSgpLCB2YWx1ZSk7CiB9CiAgICAgCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwCmluZGV4IDIw
NGI4YWMyY2VjMGUzZWFhNzBmMTE5NTZlN2I2MTA5ZjU2NDRiNWMuLjc0YWRkYTQ3ZmFiM2ZhNmUx
MTJiODhhNWY3NzZjNDc2NzYxODEzY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUluc3RhbmNlLmNwcApAQCAtNDgsMTMgKzQ4LDYgQEAgRGF0ZUluc3RhbmNlOjpE
YXRlSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+
IHN0cnVjdHUKICAgICBzZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdW1i
ZXIodGltZUNsaXAodGltZSkpKTsKIH0KIAotRGF0ZUluc3RhbmNlOjpEYXRlSW5zdGFuY2UoRXhl
Y1N0YXRlKiBleGVjLCBkb3VibGUgdGltZSkKLSAgICA6IEpTV3JhcHBlck9iamVjdChleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPmRhdGVTdHJ1Y3R1cmUoKSkKLXsKLSAgICBBU1NFUlQoaW5o
ZXJpdHMoJnNfaW5mbykpOwotICAgIHNldEludGVybmFsVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBqc051bWJlcih0aW1lQ2xpcCh0aW1lKSkpOwotfQotCiBjb25zdCBHcmVnb3JpYW5EYXRlVGlt
ZSogRGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZShFeGVjU3RhdGUqIGV4
ZWMpIGNvbnN0CiB7CiAgICAgZG91YmxlIG1pbGxpID0gaW50ZXJuYWxOdW1iZXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKaW5kZXggNmM5Nzc4OTdk
OWRhY2JlN2ZkMWFkMDdkOWIzNWMyZmVlYWNhNzIyNS4uZDBkY2YwYmMzNDZkZDc3Mjk1YzMxMDA5
MTMxNjYzZDM0MjIyZjJhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZUluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZUluc3RhbmNlLmgKQEAgLTMxLDcgKzMxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFz
cyBEYXRlSW5zdGFuY2UgOiBwdWJsaWMgSlNXcmFwcGVyT2JqZWN0IHsKICAgICBwdWJsaWM6Ci0g
ICAgICAgIERhdGVJbnN0YW5jZShFeGVjU3RhdGUqLCBkb3VibGUpOwogICAgICAgICBEYXRlSW5z
dGFuY2UoRXhlY1N0YXRlKiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgZG91YmxlKTsK
ICAgICAgICAgZXhwbGljaXQgRGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSosIE5vbk51bGxQYXNzUmVm
UHRyPFN0cnVjdHVyZT4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDJlNTNiOTU0MDBlNzJjYWVhMTM4MGVjZTgxYjVk
NTVmYWQ4Mjk1ZDkuLjdmNGY4MmNlYzVlYmM0NThhYWQ5NDdmNGEzODg3YTM2NjFhNDQwYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3Iu
Y3BwCkBAIC00Miw3ICs0Miw3IEBAIEVycm9yQ29uc3RydWN0b3I6OkVycm9yQ29uc3RydWN0b3Io
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoRXJyb3JDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gZXhlYy0+YXJndW1lbnRD
b3VudCgpID8gZXhlYy0+YXJndW1lbnQoMCkgOiBqc1VuZGVmaW5lZCgpOwotICAgIFN0cnVjdHVy
ZSogZXJyb3JTdHJ1Y3R1cmUgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmVycm9yU3Ry
dWN0dXJlKCk7CisgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGFzSW50ZXJuYWxGdW5j
dGlvbihleGVjLT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLT5lcnJvclN0cnVjdHVyZSgpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGV4ZWMsIGVy
cm9yU3RydWN0dXJlLCBtZXNzYWdlKSk7CiB9CiAKQEAgLTU1LDcgKzU1LDcgQEAgQ29uc3RydWN0
VHlwZSBFcnJvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNv
bnN0cnVjdERhdGEpCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRXJy
b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0g
ZXhlYy0+YXJndW1lbnRDb3VudCgpID8gZXhlYy0+YXJndW1lbnQoMCkgOiBqc1VuZGVmaW5lZCgp
OwotICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCktPmVycm9yU3RydWN0dXJlKCk7CisgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9
IGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLT5lcnJv
clN0cnVjdHVyZSgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6
Y3JlYXRlKGV4ZWMsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlKSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKaW5k
ZXggNTczYmQ1YjRlODlkYzIzNDQ5NmM1YjRmMDA3NDBkOTg1NDI5NjUzMi4uYTlmMGEwNjYyZDlm
ZTA4Nzg1NWY4YjQxYzFkZTdkMjhkNGMxOWFiYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKQEAgLTQ5LDcgKzQ5LDcg
QEAgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6RnVuY3Rpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4
ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnN0cnVjdFdpdGhGdW5jdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykK
IHsKICAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShj
b25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhcmdzKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+Y2FsbGVl
KCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncykpOwogfQogCiBDb25zdHJ1Y3RUeXBlIEZ1bmN0aW9u
Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0
YSkKQEAgLTYxLDcgKzYxLDcgQEAgQ29uc3RydWN0VHlwZSBGdW5jdGlvbkNvbnN0cnVjdG9yOjpn
ZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEKIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxGdW5jdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogZXhlYykKIHsKICAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhcmdzKSk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhl
Yy0+Y2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncykpOwogfQogCiAvLyBFQ01BIDE1LjMu
MSBUaGUgRnVuY3Rpb24gQ29uc3RydWN0b3IgQ2FsbGVkIGFzIGEgRnVuY3Rpb24KQEAgLTcyLDcg
KzcyLDcgQEAgQ2FsbFR5cGUgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoQ2FsbERh
dGEmIGNhbGxEYXRhKQogfQogCiAvLyBFQ01BIDE1LjMuMiBUaGUgRnVuY3Rpb24gQ29uc3RydWN0
b3IKLUpTT2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFy
Z0xpc3QmIGFyZ3MsIGNvbnN0IElkZW50aWZpZXImIGZ1bmN0aW9uTmFtZSwgY29uc3QgVVN0cmlu
ZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlcikKK0pTT2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlv
bihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEFy
Z0xpc3QmIGFyZ3MsIGNvbnN0IElkZW50aWZpZXImIGZ1bmN0aW9uTmFtZSwgY29uc3QgVVN0cmlu
ZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlcikKIHsKICAgICAvLyBGdW5jdGlvbnMgbmVlZCB0
byBoYXZlIGEgc3BhY2UgZm9sbG93aW5nIHRoZSBvcGVuaW5nIHsgZHVlIHRvIGZvciB3ZWIgY29t
cGF0aWJpbGl0eQogICAgIC8vIHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjQzNTAKQEAgLTk2LDcgKzk2LDYgQEAgSlNPYmplY3QqIGNvbnN0cnVjdEZ1bmN0aW9u
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncywgY29uc3QgSWRlbnRpZmkKICAg
ICAgICAgcHJvZ3JhbSA9IGJ1aWxkZXIudG9VU3RyaW5nKCk7CiAgICAgfQogCi0gICAgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKICAg
ICBKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEgPSBnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKTsK
ICAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2UocHJvZ3JhbSwgc291cmNlVVJMLCBs
aW5lTnVtYmVyKTsKICAgICBKU09iamVjdCogZXhjZXB0aW9uID0gMDsKQEAgLTExMSw5ICsxMTAs
OSBAQCBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBB
cmdMaXN0JiBhcmdzLCBjb25zdCBJZGVudGlmaQogfQogCiAvLyBFQ01BIDE1LjMuMiBUaGUgRnVu
Y3Rpb24gQ29uc3RydWN0b3IKLUpTT2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlvbihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCitKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb24o
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBBcmdM
aXN0JiBhcmdzKQogewotICAgIHJldHVybiBjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhcmdzLCBJ
ZGVudGlmaWVyKGV4ZWMsICJhbm9ueW1vdXMiKSwgVVN0cmluZygpLCAxKTsKKyAgICByZXR1cm4g
Y29uc3RydWN0RnVuY3Rpb24oZXhlYywgZ2xvYmFsT2JqZWN0LCBhcmdzLCBJZGVudGlmaWVyKGV4
ZWMsICJhbm9ueW1vdXMiKSwgVVN0cmluZygpLCAxKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0
cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVj
dG9yLmgKaW5kZXggNmFmNDg2MTFkN2IyOGYyOTVhN2U1YzdkNGY1M2VmZWYyN2UyYjhlMC4uN2Yy
MWIyMGZjNTFhNjE3MTg1M2QzZGViZGVmY2E4YTA4NDAyMmJmZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaApAQCAtMzYsOCAr
MzYsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxs
RGF0YShDYWxsRGF0YSYpOwogICAgIH07CiAKLSAgICBKU09iamVjdCogY29uc3RydWN0RnVuY3Rp
b24oRXhlY1N0YXRlKiwgY29uc3QgQXJnTGlzdCYsIGNvbnN0IElkZW50aWZpZXImIGZ1bmN0aW9u
TmFtZSwgY29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlcik7Ci0gICAgSlNP
YmplY3QqIGNvbnN0cnVjdEZ1bmN0aW9uKEV4ZWNTdGF0ZSosIGNvbnN0IEFyZ0xpc3QmKTsKKyAg
ICBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3Qq
LCBjb25zdCBBcmdMaXN0JiwgY29uc3QgSWRlbnRpZmllciYgZnVuY3Rpb25OYW1lLCBjb25zdCBV
U3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyKTsKKyAgICBKU09iamVjdCogY29uc3Ry
dWN0RnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBjb25zdCBBcmdMaXN0Jik7
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
ZWxsLmNwcAppbmRleCA5YWNiNzc3YjYwNmE5ZTQzMWFjNDA5Mjg0NTBiOGZjZjc2NTdiZWM2Li5j
ZTdmZTIyNzhiM2U2NTgxYTRiNDkwZTc2YzQ0YzBjMTZjYTMyYzgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKQEAgLTExOSw3ICsxMTksNyBAQCBib29sIEpTQ2Vs
bDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
aWRlbnRpZmllciwgUAogICAgIC8vIFRoaXMgaXMgbm90IGEgZ2VuZXJhbCBwdXJwb3NlIGltcGxl
bWVudGF0aW9uIG9mIGdldE93blByb3BlcnR5U2xvdC4KICAgICAvLyBJdCBzaG91bGQgb25seSBi
ZSBjYWxsZWQgYnkgSlNWYWx1ZTo6Z2V0LgogICAgIC8vIEl0IGNhbGxzIGdldFByb3BlcnR5U2xv
dCwgbm90IGdldE93blByb3BlcnR5U2xvdC4KLSAgICBKU09iamVjdCogb2JqZWN0ID0gdG9PYmpl
Y3QoZXhlYyk7CisgICAgSlNPYmplY3QqIG9iamVjdCA9IHRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSk7CiAgICAgc2xvdC5zZXRCYXNlKG9iamVjdCk7CiAgICAgaWYg
KCFvYmplY3QtPmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVudGlmaWVyLCBzbG90KSkKICAgICAg
ICAgc2xvdC5zZXRVbmRlZmluZWQoKTsKQEAgLTEzMSw3ICsxMzEsNyBAQCBib29sIEpTQ2VsbDo6
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaWRlbnRpZmllciwg
UHJvcGVydHlTbAogICAgIC8vIFRoaXMgaXMgbm90IGEgZ2VuZXJhbCBwdXJwb3NlIGltcGxlbWVu
dGF0aW9uIG9mIGdldE93blByb3BlcnR5U2xvdC4KICAgICAvLyBJdCBzaG91bGQgb25seSBiZSBj
YWxsZWQgYnkgSlNWYWx1ZTo6Z2V0LgogICAgIC8vIEl0IGNhbGxzIGdldFByb3BlcnR5U2xvdCwg
bm90IGdldE93blByb3BlcnR5U2xvdC4KLSAgICBKU09iamVjdCogb2JqZWN0ID0gdG9PYmplY3Qo
ZXhlYyk7CisgICAgSlNPYmplY3QqIG9iamVjdCA9IHRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSk7CiAgICAgc2xvdC5zZXRCYXNlKG9iamVjdCk7CiAgICAgaWYgKCFv
YmplY3QtPmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVudGlmaWVyLCBzbG90KSkKICAgICAgICAg
c2xvdC5zZXRVbmRlZmluZWQoKTsKQEAgLTE0MCwyNyArMTQwLDI3IEBAIGJvb2wgSlNDZWxsOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBQ
cm9wZXJ0eVNsCiAKIHZvaWQgSlNDZWxsOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3Qp
CiB7Ci0gICAgdG9PYmplY3QoZXhlYyktPnB1dChleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgc2xv
dCk7CisgICAgdG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+cHV0
KGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlLCBzbG90KTsKIH0KIAogdm9pZCBKU0NlbGw6OnB1dChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUpCiB7Ci0g
ICAgdG9PYmplY3QoZXhlYyktPnB1dChleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSk7CisgICAgdG9P
YmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+cHV0KGV4ZWMsIGlkZW50
aWZpZXIsIHZhbHVlKTsKIH0KIAogYm9vbCBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gdG9P
YmplY3QoZXhlYyktPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIGlkZW50aWZpZXIpOworICAgIHJldHVy
biB0b09iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5kZWxldGVQcm9w
ZXJ0eShleGVjLCBpZGVudGlmaWVyKTsKIH0KIAogYm9vbCBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5
KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gdG9P
YmplY3QoZXhlYyktPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIGlkZW50aWZpZXIpOworICAgIHJldHVy
biB0b09iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5kZWxldGVQcm9w
ZXJ0eShleGVjLCBpZGVudGlmaWVyKTsKIH0KIAogSlNPYmplY3QqIEpTQ2VsbDo6dG9UaGlzT2Jq
ZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKLSAgICByZXR1cm4gdG9PYmplY3QoZXhlYyk7
CisgICAgcmV0dXJuIHRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7
CiB9CiAKIEpTVmFsdWUgSlNDZWxsOjpnZXRKU051bWJlcigpCkBAIC0yMDMsNyArMjAzLDcgQEAg
VVN0cmluZyBKU0NlbGw6OnRvU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0CiAgICAgcmV0dXJuIFVT
dHJpbmcoKTsKIH0KIAotSlNPYmplY3QqIEpTQ2VsbDo6dG9PYmplY3QoRXhlY1N0YXRlKikgY29u
c3QKK0pTT2JqZWN0KiBKU0NlbGw6OnRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0
KikgY29uc3QKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKaW5kZXggNDQ3NDg2Y2U1Y2M2ZTg1YTQz
OTVmMDEyOWJhNDk5ZjUyNjlhZTA0OS4uNjJjZWUzNzhkOTdlYzcxOGU1ZTZiOThkYTZhYTc0NzY5
ZjlmNDExOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxs
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKQEAgLTM1LDYg
KzM1LDggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyAgICBjbGFzcyBKU0dsb2JhbE9iamVjdDsK
KwogI2lmIENPTVBJTEVSKE1TVkMpCiAgICAgLy8gSWYgV1RGX01BS0VfTk9OQ09QWUFCTEUgaXMg
YXBwbGllZCB0byBKU0NlbGwgd2UgZW5kIHVwIHdpdGggYSBidW5jaCBvZgogICAgIC8vIHVuZGVm
aW5lZCByZWZlcmVuY2VzIHRvIHRoZSBKU0NlbGwgY29weSBjb25zdHJ1Y3RvciBhbmQgYXNzaWdu
bWVudCBvcGVyYXRvcgpAQCAtMTA2LDcgKzEwOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICB2aXJ0dWFsIGJvb2wgdG9Cb29sZWFuKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgICAgICB2aXJ0
dWFsIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBV
U3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIEpTT2Jq
ZWN0KiB0b09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBKU09iamVj
dCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKIAogICAgICAg
ICAvLyBHYXJiYWdlIGNvbGxlY3Rpb24uCiAgICAgICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhzaXpl
X3QsIEV4ZWNTdGF0ZSopOwpAQCAtMzM2LDcgKzMzOCwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgIGlubGluZSBKU09iamVjdCogSlNWYWx1ZTo6dG9PYmplY3QoRXhlY1N0YXRlKiBleGVjKSBj
b25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0
KGV4ZWMpIDogdG9PYmplY3RTbG93Q2FzZShleGVjKTsKKyAgICAgICAgcmV0dXJuIGlzQ2VsbCgp
ID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSkg
OiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7Cisg
ICAgfQorCisgICAgaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVjdChFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+dG9PYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0
KSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywgZ2xvYmFsT2JqZWN0KTsKICAgICB9CiAKICAgICBp
bmxpbmUgSlNPYmplY3QqIEpTVmFsdWU6OnRvVGhpc09iamVjdChFeGVjU3RhdGUqIGV4ZWMpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3Bw
CmluZGV4IGUwMWI0MDEwMzFhMjdkOTNlNTVhZjhlY2FjOGNjZWQxYjI2NGY5N2UuLjExMTVkYzA3
MGI3NDQ0NGUyNjVlNDhlNDRlMzhiMzczNmVlM2YwMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIFVTdHJp
bmcgSlNOb3RBbk9iamVjdDo6dG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAgIHJl
dHVybiAiIjsKIH0KIAotSlNPYmplY3QqIEpTTm90QW5PYmplY3Q6OnRvT2JqZWN0KEV4ZWNTdGF0
ZSogZXhlYykgY29uc3QKK0pTT2JqZWN0KiBKU05vdEFuT2JqZWN0Ojp0b09iamVjdChFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikgY29uc3QKIHsKICAgICBBU1NFUlRfVU5VU0VEKGV4
ZWMsIGV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKICAgICByZXR1cm4gY29uc3RfY2FzdDxKU05vdEFu
T2JqZWN0Kj4odGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU05vdEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFu
T2JqZWN0LmgKaW5kZXggYjg4MjAzOTFlZjYxNjVhYjFmZGUwNmMyMDA2ODk1YjU2OWEyYjc5NS4u
NzViY2ExOGQ4MDVkZjc3YjBjOTQzOWU0MmI0NDkwMzdiMWI0MmRjMCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApAQCAtNTgsNyArNTgsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIHRvQm9vbGVhbihFeGVjU3RhdGUq
KSBjb25zdDsKICAgICAgICAgdmlydHVhbCBkb3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29u
c3Q7CiAgICAgICAgIHZpcnR1YWwgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsK
LSAgICAgICAgdmlydHVhbCBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7Cisg
ICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2Jq
ZWN0KikgY29uc3Q7CiAKICAgICAgICAgLy8gSlNPYmplY3QgbWV0aG9kcwogICAgICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5jcHAKaW5kZXggZDc1NzBlOTEzYmZhYzRiYTM3OGUzODVkM2QwYTMyODYy
ODRmZjRhMi4uYjMwNzU0MDc5Y2I5NDRiM2FhNjA2M2Y5NThiNWIzMDBhNGI2NTFhNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcApAQCAtNDg5LDcgKzQ4OSw3
IEBAIFVTdHJpbmcgSlNPYmplY3Q6OnRvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAg
ICByZXR1cm4gcHJpbWl0aXZlLnRvU3RyaW5nKGV4ZWMpOwogfQogCi1KU09iamVjdCogSlNPYmpl
Y3Q6OnRvT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0CitKU09iamVjdCogSlNPYmplY3Q6OnRvT2Jq
ZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3QKIHsKICAgICByZXR1cm4gY29u
c3RfY2FzdDxKU09iamVjdCo+KHRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmgKaW5kZXggNjZhYzJkNmJhMTYyMTczNjM3ZjdiMzkyMTBlNjM1MDU2ODkwMGY4
Ni4uZmUwMWNiOTkyZDYzMDJhNGU4NjM5MjYwMDgxODExNjg5MjRlMGVmZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xMzgsNyArMTM4LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCB0b0Jvb2xlYW4oRXhlY1N0YXRlKikgY29u
c3Q7CiAgICAgICAgIHZpcnR1YWwgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0Owog
ICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7Ci0gICAg
ICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0OworICAgICAg
ICB2aXJ0dWFsIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCop
IGNvbnN0OwogCiAgICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVjdChFeGVjU3Rh
dGUqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBKU1ZhbHVlIHRvU3RyaWN0VGhpc09iamVjdChF
eGVjU3RhdGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTU3RyaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5n
LmNwcAppbmRleCBjNGFlOTY5YzdhNmY1YjcyZGZiMzgxZDI1YmNkZTBhZDY3NjNmZDk2Li5kOWM0
ZDQ2OGI3NTI1NTljZDM2NzU5MTljZjMxMTNkZDU5MDI1NWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCkBAIC0yNTMsMTkgKzI1MywxOSBAQCBVU3RyaW5n
IEpTU3RyaW5nOjp0b1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIHZh
bHVlKGV4ZWMpOwogfQogCi1pbmxpbmUgU3RyaW5nT2JqZWN0KiBTdHJpbmdPYmplY3Q6OmNyZWF0
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTU3RyaW5nKiBzdHJpbmcpCitpbmxpbmUgU3RyaW5nT2JqZWN0
KiBTdHJpbmdPYmplY3Q6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTU3RyaW5nKiBzdHJpbmcpCiB7Ci0gICAgcmV0dXJuIG5ldyAoZXhlYykg
U3RyaW5nT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpLT5zdHJpbmdPYmplY3RTdHJ1Y3R1cmUoKSwgc3RyaW5nKTsKKyAgICByZXR1cm4gbmV3IChl
eGVjKSBTdHJpbmdPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QtPnN0cmlu
Z09iamVjdFN0cnVjdHVyZSgpLCBzdHJpbmcpOwogfQogCi1KU09iamVjdCogSlNTdHJpbmc6OnRv
T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK0pTT2JqZWN0KiBKU1N0cmluZzo6dG9PYmpl
Y3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAog
ewotICAgIHJldHVybiBTdHJpbmdPYmplY3Q6OmNyZWF0ZShleGVjLCBjb25zdF9jYXN0PEpTU3Ry
aW5nKj4odGhpcykpOworICAgIHJldHVybiBTdHJpbmdPYmplY3Q6OmNyZWF0ZShleGVjLCBnbG9i
YWxPYmplY3QsIGNvbnN0X2Nhc3Q8SlNTdHJpbmcqPih0aGlzKSk7CiB9CiAKIEpTT2JqZWN0KiBK
U1N0cmluZzo6dG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKLSAgICByZXR1
cm4gU3RyaW5nT2JqZWN0OjpjcmVhdGUoZXhlYywgY29uc3RfY2FzdDxKU1N0cmluZyo+KHRoaXMp
KTsKKyAgICByZXR1cm4gU3RyaW5nT2JqZWN0OjpjcmVhdGUoZXhlYywgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLCBjb25zdF9jYXN0PEpTU3RyaW5nKj4odGhpcykpOwogfQogCiBib29sIEpT
U3RyaW5nOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1N0cmluZy5oCmluZGV4IDExMDAyZGIyNmYxMmZkOWYzODJmZDg3Y2Q4Nzhm
OTdlM2I5ZDU1MTcuLjkxMTNkNGEwNGZiMTNmNzM4NDUyMjRlYWE1OTNmMzk3NmQyNjA1N2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaApAQCAtNDAyLDcgKzQwMiw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0UHJpbWl0aXZlTnVt
YmVyKEV4ZWNTdGF0ZSosIGRvdWJsZSYgbnVtYmVyLCBKU1ZhbHVlJiB2YWx1ZSk7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCB0b0Jvb2xlYW4oRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAgIHZpcnR1
YWwgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIEpT
T2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBKU09i
amVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAgICAg
ICAgdmlydHVhbCBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwogCiAgICAgICAg
IHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAKaW5kZXggZjQ2NjJkYjcyZGViNjM4
MGViZTZkNWFmNTNjYTkzMDBhMDI1MTYzZC4uZDNlZTg5ZWE4NmI3NWQ5YmI3NzE0MTEwYjUwODQ0
ODhhYTdhMDYwZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNW
YWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAK
QEAgLTU0LDE0ICs1NCwxNCBAQCBkb3VibGUgSlNWYWx1ZTo6dG9JbnRlZ2VyUHJlc2VydmVOYU4o
RXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAgIHJldHVybiB0cnVuYyh0b051bWJlcihleGVjKSk7
CiB9CiAKLUpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVjdFNsb3dDYXNlKEV4ZWNTdGF0ZSogZXhl
YykgY29uc3QKK0pTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVjdFNsb3dDYXNlKEV4ZWNTdGF0ZSog
ZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKIHsKICAgICBBU1NFUlQo
IWlzQ2VsbCgpKTsKIAogICAgIGlmIChpc0ludDMyKCkgfHwgaXNEb3VibGUoKSkKLSAgICAgICAg
cmV0dXJuIGNvbnN0cnVjdE51bWJlcihleGVjLCBhc1ZhbHVlKCkpOworICAgICAgICByZXR1cm4g
Y29uc3RydWN0TnVtYmVyKGV4ZWMsIGdsb2JhbE9iamVjdCwgYXNWYWx1ZSgpKTsKICAgICBpZiAo
aXNUcnVlKCkgfHwgaXNGYWxzZSgpKQotICAgICAgICByZXR1cm4gY29uc3RydWN0Qm9vbGVhbkZy
b21JbW1lZGlhdGVCb29sZWFuKGV4ZWMsIGFzVmFsdWUoKSk7CisgICAgICAgIHJldHVybiBjb25z
dHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4oZXhlYywgZ2xvYmFsT2JqZWN0LCBhc1Zh
bHVlKCkpOwogCiAgICAgQVNTRVJUKGlzVW5kZWZpbmVkT3JOdWxsKCkpOwogICAgIHRocm93RXJy
b3IoZXhlYywgY3JlYXRlTm90QW5PYmplY3RFcnJvcihleGVjLCAqdGhpcykpOwpAQCAtNzMsOSAr
NzMsOSBAQCBKU09iamVjdCogSlNWYWx1ZTo6dG9UaGlzT2JqZWN0U2xvd0Nhc2UoRXhlY1N0YXRl
KiBleGVjKSBjb25zdAogICAgIEFTU0VSVCghaXNDZWxsKCkpOwogCiAgICAgaWYgKGlzSW50MzIo
KSB8fCBpc0RvdWJsZSgpKQotICAgICAgICByZXR1cm4gY29uc3RydWN0TnVtYmVyKGV4ZWMsIGFz
VmFsdWUoKSk7CisgICAgICAgIHJldHVybiBjb25zdHJ1Y3ROdW1iZXIoZXhlYywgZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpLCBhc1ZhbHVlKCkpOwogICAgIGlmIChpc1RydWUoKSB8fCBpc0Zh
bHNlKCkpCi0gICAgICAgIHJldHVybiBjb25zdHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0ZUJvb2xl
YW4oZXhlYywgYXNWYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEJvb2xlYW5Gcm9t
SW1tZWRpYXRlQm9vbGVhbihleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGFzVmFs
dWUoKSk7CiAgICAgQVNTRVJUKGlzVW5kZWZpbmVkT3JOdWxsKCkpOwogICAgIHJldHVybiBleGVj
LT5nbG9iYWxUaGlzVmFsdWUoKTsKIH0KQEAgLTg0LDkgKzg0LDkgQEAgSlNPYmplY3QqIEpTVmFs
dWU6OnN5bnRoZXNpemVPYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewogICAgIEFTU0VS
VCghaXNDZWxsKCkpOwogICAgIGlmIChpc051bWJlcigpKQotICAgICAgICByZXR1cm4gY29uc3Ry
dWN0TnVtYmVyKGV4ZWMsIGFzVmFsdWUoKSk7CisgICAgICAgIHJldHVybiBjb25zdHJ1Y3ROdW1i
ZXIoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBhc1ZhbHVlKCkpOwogICAgIGlm
IChpc0Jvb2xlYW4oKSkKLSAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEJvb2xlYW5Gcm9tSW1tZWRp
YXRlQm9vbGVhbihleGVjLCBhc1ZhbHVlKCkpOworICAgICAgICByZXR1cm4gY29uc3RydWN0Qm9v
bGVhbkZyb21JbW1lZGlhdGVCb29sZWFuKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KSwgYXNWYWx1ZSgpKTsKIAogICAgIEFTU0VSVChpc1VuZGVmaW5lZE9yTnVsbCgpKTsKICAgICB0
aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZU5vdEFuT2JqZWN0RXJyb3IoZXhlYywgKnRoaXMpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuaAppbmRleCAwZmQ2YzRjYjQzMWY3Mzcw
MDAzN2FmZWQwYzU0OTQ2NThlYWJjYjM5Li4wOTgxMjNlMDI0Nzg5Njg0OWQ2ZWFhYjg4ODZhZmQz
YmMyZDkyM2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Zh
bHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5oCkBAIC0z
Nyw2ICszNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIElkZW50aWZpZXI7CiAgICAg
Y2xhc3MgSlNDZWxsOwogICAgIGNsYXNzIEpTR2xvYmFsRGF0YTsKKyAgICBjbGFzcyBKU0dsb2Jh
bE9iamVjdDsKICAgICBjbGFzcyBKU0ltbWVkaWF0ZTsKICAgICBjbGFzcyBKU09iamVjdDsKICAg
ICBjbGFzcyBKU1N0cmluZzsKQEAgLTE4OSw2ICsxOTAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgVVN0cmlu
ZyB0b1ByaW1pdGl2ZVN0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgSlNPYmplY3Qq
IHRvT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0OworICAgICAgICBKU09iamVjdCogdG9PYmplY3Qo
RXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKIAogICAgICAgICAvLyBJbnRlZ2Vy
IGNvbnZlcnNpb25zLgogICAgICAgICBkb3VibGUgdG9JbnRlZ2VyKEV4ZWNTdGF0ZSopIGNvbnN0
OwpAQCAtMjQ0LDcgKzI0Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU1ZhbHVlKEhh
c2hUYWJsZURlbGV0ZWRWYWx1ZVRhZyk7CiAKICAgICAgICAgaW5saW5lIGNvbnN0IEpTVmFsdWUg
YXNWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuICp0aGlzOyB9Ci0gICAgICAgIEpTT2JqZWN0KiB0b09i
amVjdFNsb3dDYXNlKEV4ZWNTdGF0ZSopIGNvbnN0OworICAgICAgICBKU09iamVjdCogdG9PYmpl
Y3RTbG93Q2FzZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogICAgICAgICBK
U09iamVjdCogdG9UaGlzT2JqZWN0U2xvd0Nhc2UoRXhlY1N0YXRlKikgY29uc3Q7CiAKICAgICAg
ICAgSlNPYmplY3QqIHN5bnRoZXNpemVQcm90b3R5cGUoRXhlY1N0YXRlKikgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAK
aW5kZXggM2U0ZDZjNzZlNmM5NWRkMDg3MWRlZGQ4NGM5ZjM2YWMwYzk2N2NlNS4uYWVlMTQzYTNm
MDdkNTYxNmE2MGIxZGJmYTdjY2ViOTg0ZDZmN2JiZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcApAQCAtMTA0LDcgKzEwNCw3
IEBAIHN0YXRpYyBKU1ZhbHVlIG51bWJlckNvbnN0cnVjdG9yTWluVmFsdWUoRXhlY1N0YXRlKiwg
SlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpCiAvLyBFQ01BIDE1LjcuMQogc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aE51bWJlckNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBOdW1iZXJPYmplY3QqIG9iamVjdCA9IG5ldyAoZXhlYykg
TnVtYmVyT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpLT5udW1iZXJPYmplY3RTdHJ1Y3R1cmUoKSk7CisgICAgTnVtYmVyT2JqZWN0KiBvYmplY3Qg
PSBuZXcgKGV4ZWMpIE51bWJlck9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIGFzSW50ZXJuYWxG
dW5jdGlvbihleGVjLT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLT5udW1iZXJPYmplY3RTdHJ1
Y3R1cmUoKSk7CiAgICAgZG91YmxlIG4gPSBleGVjLT5hcmd1bWVudENvdW50KCkgPyBleGVjLT5h
cmd1bWVudCgwKS50b051bWJlcihleGVjKSA6IDA7CiAgICAgb2JqZWN0LT5zZXRJbnRlcm5hbFZh
bHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdW1iZXIobikpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUob2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlck9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1i
ZXJPYmplY3QuY3BwCmluZGV4IDM5NjMyOTRjZmE3Y2M2M2MxMjNjOWNiNDIwN2NjYTczOGZhMWYw
ZGYuLjc0YjVlOTgxZTNhZGY1YTUzMzljMjEzMjcyYzNkOTQ3ZGZiNGIxOTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcApAQCAtNDIsOSArNDIs
OSBAQCBKU1ZhbHVlIE51bWJlck9iamVjdDo6Z2V0SlNOdW1iZXIoKQogICAgIHJldHVybiBpbnRl
cm5hbFZhbHVlKCk7CiB9CiAKLU51bWJlck9iamVjdCogY29uc3RydWN0TnVtYmVyKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBudW1iZXIpCitOdW1iZXJPYmplY3QqIGNvbnN0cnVjdE51bWJlcihF
eGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgbnVt
YmVyKQogewotICAgIE51bWJlck9iamVjdCogb2JqZWN0ID0gbmV3IChleGVjKSBOdW1iZXJPYmpl
Y3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm51bWJl
ck9iamVjdFN0cnVjdHVyZSgpKTsKKyAgICBOdW1iZXJPYmplY3QqIG9iamVjdCA9IG5ldyAoZXhl
YykgTnVtYmVyT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5udW1iZXJP
YmplY3RTdHJ1Y3R1cmUoKSk7CiAgICAgb2JqZWN0LT5zZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmds
b2JhbERhdGEoKSwgbnVtYmVyKTsKICAgICByZXR1cm4gb2JqZWN0OwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaAppbmRleCAxNTcxZmQ0MmNlNmIwYzMy
ZTgyZTgxYWQ2YjAzMTYwYTkxZTdlZjdhLi45MGQwYjI2ZTMwODI4NDYyODBlYjE0ZmEwMGQ4YjM4
NWM0YjBjOGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1i
ZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmpl
Y3QuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBK
U1ZhbHVlIGdldEpTTnVtYmVyKCk7CiAgICAgfTsKIAotICAgIE51bWJlck9iamVjdCogY29uc3Ry
dWN0TnVtYmVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUpOworICAgIE51bWJlck9iamVjdCogY29uc3Ry
dWN0TnVtYmVyKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CiAKIH0gLy8g
bmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNTA4MGVmODYxYzNlMmRmMDVjMzgwYmVhODA3OTkz
MmJkZDk5NGEwYS4uYzY0MmE1YjU5ZjJkNTk4YmNhNGRlYTU1OGNmMjUyZTc2MjNlOWM4MyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9y
LmNwcApAQCAtOTUsMTggKzk1LDE4IEBAIGJvb2wgT2JqZWN0Q29uc3RydWN0b3I6OmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpCiB9CiAKIC8v
IEVDTUEgMTUuMi4yCi1zdGF0aWMgQUxXQVlTX0lOTElORSBKU09iamVjdCogY29uc3RydWN0T2Jq
ZWN0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKK3N0YXRpYyBBTFdBWVNf
SU5MSU5FIEpTT2JqZWN0KiBjb25zdHJ1Y3RPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewogICAgIEpTVmFs
dWUgYXJnID0gYXJncy5hdCgwKTsKICAgICBpZiAoYXJnLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0g
ICAgICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9iamVjdChleGVjKTsKLSAgICByZXR1cm4gYXJn
LnRvT2JqZWN0KGV4ZWMpOworICAgICAgICByZXR1cm4gY29uc3RydWN0RW1wdHlPYmplY3QoZXhl
YywgZ2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gYXJnLnRvT2JqZWN0KGV4ZWMsIGdsb2JhbE9i
amVjdCk7CiB9CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVj
dFdpdGhPYmplY3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgQXJnTGlzdCBh
cmdzKGV4ZWMpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0T2JqZWN0KGV4
ZWMsIGFyZ3MpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdE9iamVjdChl
eGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+Y2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKSwg
YXJncykpOwogfQogCiBDb25zdHJ1Y3RUeXBlIE9iamVjdENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1
Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCkBAIC0xMTgsNyArMTE4LDcgQEAg
Q29uc3RydWN0VHlwZSBPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShDb25zdHJ1
Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY2FsbE9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBBcmdMaXN0
IGFyZ3MoZXhlYyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RPYmplY3Qo
ZXhlYywgYXJncykpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0T2JqZWN0
KGV4ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgp
LCBhcmdzKSk7CiB9CiAKIENhbGxUeXBlIE9iamVjdENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShD
YWxsRGF0YSYgY2FsbERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMzQ4ZjM4YWU0MjU1M2I0ZGE0MWNjNzBiZTcz
NjBmNDYyYzI3YjNmNC4uMTliNGIzNjFlNmM4ODRkOTQxZjBiNzNkZWU1NWZmOTU1NmVkMjBiZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVj
dG9yLmNwcApAQCAtMjkzLDcgKzI5Myw3IEBAIHZvaWQgc2V0UmVnRXhwQ29uc3RydWN0b3JNdWx0
aWxpbmUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgSlNWYWx1CiB9CiAK
IC8vIEVDTUEgMTUuMTAuNAotSlNPYmplY3QqIGNvbnN0cnVjdFJlZ0V4cChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCitKU09iamVjdCogY29uc3RydWN0UmVnRXhwKEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgQXJnTGlzdCYg
YXJncykKIHsKICAgICBKU1ZhbHVlIGFyZzAgPSBhcmdzLmF0KDApOwogICAgIEpTVmFsdWUgYXJn
MSA9IGFyZ3MuYXQoMSk7CkBAIC0zMjAsMTMgKzMyMCwxMyBAQCBKU09iamVjdCogY29uc3RydWN0
UmVnRXhwKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKICAgICBSZWZQdHI8
UmVnRXhwPiByZWdFeHAgPSBleGVjLT5nbG9iYWxEYXRhKCkucmVnRXhwQ2FjaGUoKS0+bG9va3Vw
T3JDcmVhdGUocGF0dGVybiwgZmxhZ3MpOwogICAgIGlmICghcmVnRXhwLT5pc1ZhbGlkKCkpCiAg
ICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsIHJl
Z0V4cC0+ZXJyb3JNZXNzYWdlKCkpKTsKLSAgICByZXR1cm4gbmV3IChleGVjKSBSZWdFeHBPYmpl
Y3QoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCktPnJlZ0V4cFN0cnVjdHVyZSgpLCByZWdFeHAucmVsZWFzZSgpKTsKKyAgICByZXR1cm4gbmV3
IChleGVjKSBSZWdFeHBPYmplY3QoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBnbG9iYWxP
YmplY3QtPnJlZ0V4cFN0cnVjdHVyZSgpLCByZWdFeHAucmVsZWFzZSgpKTsKIH0KIAogc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aFJlZ0V4cENvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RSZWdFeHAoZXhlYywgYXJncykpOworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0UmVnRXhwKGV4ZWMsIGFzSW50ZXJuYWxGdW5j
dGlvbihleGVjLT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLCBhcmdzKSk7CiB9CiAKIENvbnN0
cnVjdFR5cGUgUmVnRXhwQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0
YSYgY29uc3RydWN0RGF0YSkKQEAgLTMzOSw3ICszMzksNyBAQCBDb25zdHJ1Y3RUeXBlIFJlZ0V4
cENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERh
dGEpCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUmVnRXhwQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKLSAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdFJlZ0V4cChleGVjLCBhcmdzKSk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RSZWdFeHAoZXhlYywgYXNJbnRlcm5hbEZ1
bmN0aW9uKGV4ZWMtPmNhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0KCksIGFyZ3MpKTsKIH0KIAogQ2Fs
bFR5cGUgUmVnRXhwQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKENhbGxEYXRhJiBjYWxsRGF0YSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVj
dG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5o
CmluZGV4IDAzYzZiZWEyYmEzODY0NjUzMmRkN2U1MWZhYWEzZjYxZTJmOTg1MTcuLjVlMGIyYjg1
MGIxYjhhNmMyYzAwMDg4NzU2MzVjMmZmYzk5MTVjMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaApAQCAtOTYsNyArOTYsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogICAgIFJlZ0V4cENvbnN0cnVjdG9yKiBhc1JlZ0V4cENvbnN0cnVj
dG9yKEpTVmFsdWUpOwogCi0gICAgSlNPYmplY3QqIGNvbnN0cnVjdFJlZ0V4cChFeGVjU3RhdGUq
LCBjb25zdCBBcmdMaXN0Jik7CisgICAgSlNPYmplY3QqIGNvbnN0cnVjdFJlZ0V4cChFeGVjU3Rh
dGUqLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0IEFyZ0xpc3QmKTsKIAogICAgIGlubGluZSBSZWdF
eHBDb25zdHJ1Y3RvciogYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlIHZhbHVlKQogICAgIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9y
LmNwcAppbmRleCA1Mzk4ZjMxMmI4YzQxOWQ1YTQxYzY2ZTE5ZjVjYTNlY2VjNzgwMmI2Li5lZDA4
OGU0ZjZkMDczNmQ5YTBiZGI4NDcyNTQ1NWQwZDkzYjI3MDg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC02Nyw5ICs2
NywxMCBAQCBTdHJpbmdDb25zdHJ1Y3Rvcjo6U3RyaW5nQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogLy8gRUNNQSAxNS41LjIKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhTdHJpbmdDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIGV4ZWMpCiB7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9
IGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpOwogICAg
IGlmICghZXhlYy0+YXJndW1lbnRDb3VudCgpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKG5ldyAoZXhlYykgU3RyaW5nT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKS0+c3RyaW5nT2JqZWN0U3RydWN0dXJlKCkpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKG5ldyAoZXhlYykgU3RyaW5nT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKS0+c3RyaW5nT2JqZWN0U3RydWN0dXJlKCksIGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5n
KGV4ZWMpKSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobmV3IChleGVjKSBTdHJp
bmdPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LT5zdHJpbmdPYmplY3RTdHJ1Y3R1cmUoKSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobmV3IChleGVjKSBTdHJpbmdPYmplY3QoZXhlYywg
Z2xvYmFsT2JqZWN0LT5zdHJpbmdPYmplY3RTdHJ1Y3R1cmUoKSwgZXhlYy0+YXJndW1lbnQoMCku
dG9TdHJpbmcoZXhlYykpKTsKIH0KIAogQ29uc3RydWN0VHlwZSBTdHJpbmdDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAppbmRleCAwZTJhMmIyNDEzYzk4
ZTJjYTcxMGMyY2RkOWE4YjA0MGQ4NzRiNjAyLi5hZTMzNzZkMjJhY2U1M2E4MTlhMzA3ZDQ5M2M1
MTVhOTI4NzlkMDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdP
YmplY3QuaApAQCAtMzEsNyArMzEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3RyaW5n
T2JqZWN0KEV4ZWNTdGF0ZSosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4pOwogICAgICAg
ICBTdHJpbmdPYmplY3QoRXhlY1N0YXRlKiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiwg
Y29uc3QgVVN0cmluZyYpOwogCi0gICAgICAgIHN0YXRpYyBTdHJpbmdPYmplY3QqIGNyZWF0ZShF
eGVjU3RhdGUqLCBKU1N0cmluZyopOworICAgICAgICBzdGF0aWMgU3RyaW5nT2JqZWN0KiBjcmVh
dGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyopOwogCiAgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBi
L1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKaW5kZXggN2IzMjIxYTAyOGNhOWZjYjlh
OWVmZGQyNjI0ZGIyZjc0YjQ0NjkwNS4uN2VjMzFlY2EyYTRjNDU2OWYyZTQzOTU4YzZlNmY1YjUx
MWZlMGE1MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEt
MDMtMjUgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBpbnN0YW5jZW9mIEFycmF5IHRlc3QgZmFp
bHMgd2hlbiB1c2luZyBpZnJhbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzI1MAorCisgICAgICAgIFVwIGRhdGUgZm9yIG5ldyB0b09iamVjdCBh
cGkKKworICAgICAgICAqIFVzZXJPYmplY3RJbXAuY3BwOgorICAgICAgICAoVXNlck9iamVjdElt
cDo6dG9QcmltaXRpdmUpOgorICAgICAgICAoVXNlck9iamVjdEltcDo6dG9Cb29sZWFuKToKKyAg
ICAgICAgKFVzZXJPYmplY3RJbXA6OnRvTnVtYmVyKToKKyAgICAgICAgKFVzZXJPYmplY3RJbXA6
OnRvU3RyaW5nKToKKwogMjAxMS0wMy0yNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJlbW92ZSB0aGUgSmF2YVNjcmlwdEdsdWUgR1lQIGJ1aWxkLiAgV2UncmUg
bm90IGdvaW5nIHRvIHVzZSBHWVAgZm9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvVXNlck9iamVjdEltcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdElt
cC5jcHAKaW5kZXggZjQ4YTIzMDRjY2IyNDhhMjRhZDI5YWFiMDE3MjljMGUwMGE5MTIwOS4uYTA0
ZjU4ZTQ2NDBkYTE0NDE4ZDY4NThmMTJiZGI0OTI1ZTkxYjlmYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApAQCAtMTY3LDcgKzE2Nyw3IEBAIEpTVXNlck9iamVjdCog
VXNlck9iamVjdEltcDo6R2V0SlNVc2VyT2JqZWN0KCkgY29uc3QKIEpTVmFsdWUgVXNlck9iamVj
dEltcDo6dG9QcmltaXRpdmUoRXhlY1N0YXRlICpleGVjLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBl
KSBjb25zdAogewogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNVbmRlZmluZWQoKTsKLSAgICBKU1Vz
ZXJPYmplY3QqIGpzT2JqUHRyID0gS0pTVmFsdWVUb0pTT2JqZWN0KHRvT2JqZWN0KGV4ZWMpLCBl
eGVjKTsKKyAgICBKU1VzZXJPYmplY3QqIGpzT2JqUHRyID0gS0pTVmFsdWVUb0pTT2JqZWN0KHRv
T2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIGV4ZWMpOwogICAgIENG
VHlwZVJlZiBjZlZhbHVlID0ganNPYmpQdHIgPyBqc09ialB0ci0+Q29weUNGVmFsdWUoKSA6IDA7
CiAgICAgaWYgKGNmVmFsdWUpIHsKICAgICAgICAgQ0ZUeXBlSUQgY2ZUeXBlID0gQ0ZHZXRUeXBl
SUQoY2ZWYWx1ZSk7ICAvLyB0b1ByaW1pdGl2ZQpAQCAtMjA0LDcgKzIwNCw3IEBAIEpTVmFsdWUg
VXNlck9iamVjdEltcDo6dG9QcmltaXRpdmUoRXhlY1N0YXRlICpleGVjLCBQcmVmZXJyZWRQcmlt
aXRpdmVUeXBlKSBjb25zCiBib29sIFVzZXJPYmplY3RJbXA6OnRvQm9vbGVhbihFeGVjU3RhdGUg
KmV4ZWMpIGNvbnN0CiB7CiAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBKU1VzZXJPYmpl
Y3QqIGpzT2JqUHRyID0gS0pTVmFsdWVUb0pTT2JqZWN0KHRvT2JqZWN0KGV4ZWMpLCBleGVjKTsK
KyAgICBKU1VzZXJPYmplY3QqIGpzT2JqUHRyID0gS0pTVmFsdWVUb0pTT2JqZWN0KHRvT2JqZWN0
KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIGV4ZWMpOwogICAgIENGVHlwZVJl
ZiBjZlZhbHVlID0ganNPYmpQdHIgPyBqc09ialB0ci0+Q29weUNGVmFsdWUoKSA6IDA7CiAgICAg
aWYgKGNmVmFsdWUpCiAgICAgewpAQCAtMjg0LDcgKzI4NCw3IEBAIGJvb2wgVXNlck9iamVjdElt
cDo6dG9Cb29sZWFuKEV4ZWNTdGF0ZSAqZXhlYykgY29uc3QKIGRvdWJsZSBVc2VyT2JqZWN0SW1w
Ojp0b051bWJlcihFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0CiB7CiAgICAgZG91YmxlIHJlc3VsdCA9
IDA7Ci0gICAgSlNVc2VyT2JqZWN0KiBqc09ialB0ciA9IEtKU1ZhbHVlVG9KU09iamVjdCh0b09i
amVjdChleGVjKSwgZXhlYyk7CisgICAgSlNVc2VyT2JqZWN0KiBqc09ialB0ciA9IEtKU1ZhbHVl
VG9KU09iamVjdCh0b09iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBl
eGVjKTsKICAgICBDRlR5cGVSZWYgY2ZWYWx1ZSA9IGpzT2JqUHRyID8ganNPYmpQdHItPkNvcHlD
RlZhbHVlKCkgOiAwOwogICAgIGlmIChjZlZhbHVlKQogICAgIHsKQEAgLTMxOCw3ICszMTgsNyBA
QCBkb3VibGUgVXNlck9iamVjdEltcDo6dG9OdW1iZXIoRXhlY1N0YXRlICpleGVjKSBjb25zdAog
VVN0cmluZyBVc2VyT2JqZWN0SW1wOjp0b1N0cmluZyhFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0CiB7
CiAgICAgVVN0cmluZyByZXN1bHQ7Ci0gICAgSlNVc2VyT2JqZWN0KiBqc09ialB0ciA9IEtKU1Zh
bHVlVG9KU09iamVjdCh0b09iamVjdChleGVjKSwgZXhlYyk7CisgICAgSlNVc2VyT2JqZWN0KiBq
c09ialB0ciA9IEtKU1ZhbHVlVG9KU09iamVjdCh0b09iamVjdChleGVjLCBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCkpLCBleGVjKTsKICAgICBDRlR5cGVSZWYgY2ZWYWx1ZSA9IGpzT2JqUHRy
ID8ganNPYmpQdHItPkNvcHlDRlZhbHVlKCkgOiAwOwogICAgIGlmIChjZlZhbHVlKQogICAgIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlNGRhY2MzNGIxM2QzYzVkMmExOTg0YzJjNmNkNmQ2OWE5ZmMyNDk1Li5j
ZWNjMWU3ZjMwNjMyM2I1ZjJhOWRiMjU5NzQ4N2Y0NzEzOTc0ZWNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMTEtMDMtMjUgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBpbnN0YW5j
ZW9mIEFycmF5IHRlc3QgZmFpbHMgd2hlbiB1c2luZyBpZnJhbWVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI1MAorCisgICAgICAgIFVwZGF0ZSBm
b3IgbmV3IGZ1bmN0aW9uIGFuZCBkYXRlIGFwaXMKKworICAgICAgICBObyBuZXcgdGVzdHMuIChP
T1BTISkgKHRlc3RzIGNvbWluZykKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6anNEYXRlT3JOdWxsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xh
enlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTGF6eUV2ZW50TGlzdGVu
ZXI6OmluaXRpYWxpemVKU0Z1bmN0aW9uKToKKwogMjAxMS0wMy0yOCAgQW5kcmVpIFBvcGVzY3Ug
IDxhbmRyZWlwQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU3RldmUgQmxvY2su
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAppbmRleCA0ZDE4
YTRlMzU2NWEwOTQ5OTQwM2FiNmZhOTQ2ZGFjMmU3MjBhMDNmLi44NTAxZWI5MjU2NDQwOTkxZGE1
ODljYWRkYjIyNmRlMmVkYmNkN2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUJpbmRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5jcHAKQEAgLTQ4Myw3ICs0ODMsNyBAQCBKU1ZhbHVlIGpzRGF0ZU9yTnVsbChF
eGVjU3RhdGUqIGV4ZWMsIGRvdWJsZSB2YWx1ZSkKIHsKICAgICBpZiAoIWlzZmluaXRlKHZhbHVl
KSkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIHJldHVybiBuZXcgKGV4ZWMpIERhdGVJ
bnN0YW5jZShleGVjLCB2YWx1ZSk7CisgICAgcmV0dXJuIG5ldyAoZXhlYykgRGF0ZUluc3RhbmNl
KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+ZGF0ZVN0cnVjdHVyZSgpLCB2YWx1
ZSk7CiB9CiAKIGRvdWJsZSB2YWx1ZVRvRGF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFs
dWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExp
c3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVu
ZXIuY3BwCmluZGV4IDk4ZGI5N2E2ZjQ1NTBlMDJkZGFiZmUzZmY4ZDVkYTllNjkzOThmMmEuLmUw
YWRmYTc5NjU2NjE4NzM1MjU4NGU0MDAxNzZhN2Q5NDAwODRjMWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCkBAIC0xMDMsNyAr
MTAzLDcgQEAgSlNPYmplY3QqIEpTTGF6eUV2ZW50TGlzdGVuZXI6OmluaXRpYWxpemVKU0Z1bmN0
aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGV4ZWMKICAgICBhcmdzLmFwcGVuZChqc05vbnRy
aXZpYWxTdHJpbmcoZXhlYywgc3RyaW5nVG9VU3RyaW5nKG1fZXZlbnRQYXJhbWV0ZXJOYW1lKSkp
OwogICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5nKGV4ZWMsIG1fY29kZSkpOwogCi0gICAgSlNPYmpl
Y3QqIGpzRnVuY3Rpb24gPSBjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhcmdzLCBJZGVudGlmaWVy
KGV4ZWMsIHN0cmluZ1RvVVN0cmluZyhtX2Z1bmN0aW9uTmFtZSkpLCBzdHJpbmdUb1VTdHJpbmco
bV9zb3VyY2VVUkwpLCBtX2xpbmVOdW1iZXIpOyAvLyBGSVhNRTogaXMgZ2xvYmFsRXhlYyBvaz8K
KyAgICBKU09iamVjdCoganNGdW5jdGlvbiA9IGNvbnN0cnVjdEZ1bmN0aW9uKGV4ZWMsIGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSwgYXJncywgSWRlbnRpZmllcihleGVjLCBzdHJpbmdUb1VT
dHJpbmcobV9mdW5jdGlvbk5hbWUpKSwgc3RyaW5nVG9VU3RyaW5nKG1fc291cmNlVVJMKSwgbV9s
aW5lTnVtYmVyKTsgLy8gRklYTUU6IGlzIGdsb2JhbEV4ZWMgb2s/CiAgICAgaWYgKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKSB7CiAgICAgICAgIGV4ZWMtPmNsZWFyRXhjZXB0aW9uKCk7CiAgICAgICAg
IHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRp
bWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCmluZGV4IGZk
MzNiODk3ZGEwZjZkNDRlNTdkYjAyY2QxMWUzYTgwMTZlNGU0ZTQuLjg3ZWU1MjI0YmVjMWQ3MWQ4
YjkzY2Y1NjAwMWNlYjNmMWQ3MjllYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9xdC9xdF9ydW50aW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVu
dGltZS5jcHAKQEAgLTg4Myw3ICs4ODMsNyBAQCBKU1ZhbHVlIGNvbnZlcnRRVmFyaWFudFRvVmFs
dWUoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPFJvb3RPYmplY3Q+IHJvb3QsIGNvbgogICAg
ICAgICBkdC5pc0RTVCA9IC0xOwogICAgICAgICBkb3VibGUgbXMgPSBncmVnb3JpYW5EYXRlVGlt
ZVRvTVMoZXhlYywgZHQsIHRpbWUubXNlYygpLCAvKmlucHV0SXNVVEMqLyBmYWxzZSk7CiAKLSAg
ICAgICAgcmV0dXJuIG5ldyAoZXhlYykgRGF0ZUluc3RhbmNlKGV4ZWMsIHRydW5jKG1zKSk7Cisg
ICAgICAgIHJldHVybiBuZXcgKGV4ZWMpIERhdGVJbnN0YW5jZShleGVjLCBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCktPmRhdGVTdHJ1Y3R1cmUoKSwgdHJ1bmMobXMpKTsKICAgICB9CiAKICAg
ICBpZiAodHlwZSA9PSBRTWV0YVR5cGU6OlFCeXRlQXJyYXkpIHsK
</data>
<flag name="review"
          id="79609"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>