<?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>183721</bug_id>
          
          <creation_ts>2018-03-17 13:14:08 -0700</creation_ts>
          <short_desc>[ESNext][BigInt] Implement support for &quot;*&quot; operation</short_desc>
          <delta_ts>2018-05-31 19:17:09 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>185112</dependson>
    
    <dependson>185118</dependson>
          <blocked>179001</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Caio Lima">ticaiolima</reporter>
          <assigned_to name="Caio Lima">ticaiolima</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1407252</commentid>
    <comment_count>0</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-03-17 13:14:08 -0700</bug_when>
    <thetext>Support BigInts into times operation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407271</commentid>
    <comment_count>1</comment_count>
      <attachid>336016</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-03-17 15:37:14 -0700</bug_when>
    <thetext>Created attachment 336016
WIP - Patch

It starts. Need to write tests and ChangeLog yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407272</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-17 15:39:21 -0700</bug_when>
    <thetext>Attachment 336016 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSBigInt.cpp:264:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/runtime/JSBigInt.cpp:267:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/runtime/JSBigInt.cpp:489:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/runtime/JSBigInt.cpp:490:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/runtime/JSBigInt.cpp:490:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/runtime/JSBigInt.cpp:491:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/runtime/JSBigInt.cpp:492:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/runtime/JSBigInt.cpp:493:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/runtime/JSBigInt.cpp:494:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/runtime/JSBigInt.cpp:495:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/runtime/JSBigInt.cpp:511:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/runtime/JSBigInt.cpp:513:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/runtime/JSBigInt.cpp:513:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/runtime/JSBigInt.cpp:522:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 14 in 5 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>1407303</commentid>
    <comment_count>3</comment_count>
      <attachid>336027</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-03-18 11:49:00 -0700</bug_when>
    <thetext>Created attachment 336027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408632</commentid>
    <comment_count>4</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-03-23 00:59:28 -0700</bug_when>
    <thetext>Ping Review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409233</commentid>
    <comment_count>5</comment_count>
      <attachid>336027</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-03-25 22:02:45 -0700</bug_when>
    <thetext>Comment on attachment 336027
Patch

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

&gt; Source/JavaScriptCore/runtime/CommonSlowPaths.cpp:494
&gt; +    if (UNLIKELY(throwScope.exception()))
&gt; +        RETURN(JSValue());

CHECK_EXCEPTION() here

&gt; Source/JavaScriptCore/runtime/CommonSlowPaths.cpp:504
&gt; +        THROW(createTypeError(exec, &quot;Invalid operand in BigInt operation.&quot;));

Let&apos;s have this be more descriptive. You know this is a multiply. Also, is this really a type error? There is no automatic conversion to BigInt?

Like, if I want to multiply a BigInt by 2, I must write &quot;* 2n&quot;?

&gt; Source/JavaScriptCore/runtime/CommonSlowPaths.cpp:509
&gt; +    if (UNLIKELY(throwScope.exception()))
&gt; +        RETURN(JSValue());

CHECK_EXCEPTION()

&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:258
&gt; +    int resultLength = x-&gt;length() + y-&gt;length();

Why int here? Should definitely be using unsigned or size_t.
Also, are we worried about overflow here?

&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:262
&gt; +    for (int i = 0; i &lt; x-&gt;length(); i++)

ditto for type.

&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:493
&gt; +    for (int i = 0; i &lt; multiplicand-&gt;length(); i++, accumulatorIndex++) {

ditto for type. I see we&apos;re using int everywhere instead of unsigned/size_t. What&apos;s the reason for that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410571</commentid>
    <comment_count>6</comment_count>
      <attachid>336027</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-03-30 02:52:31 -0700</bug_when>
    <thetext>Comment on attachment 336027
Patch

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

Thank you for the review

&gt;&gt; Source/JavaScriptCore/runtime/CommonSlowPaths.cpp:494
&gt;&gt; +        RETURN(JSValue());
&gt; 
&gt; CHECK_EXCEPTION() here

ok

&gt;&gt; Source/JavaScriptCore/runtime/CommonSlowPaths.cpp:504
&gt;&gt; +        THROW(createTypeError(exec, &quot;Invalid operand in BigInt operation.&quot;));
&gt; 
&gt; Let&apos;s have this be more descriptive. You know this is a multiply. Also, is this really a type error? There is no automatic conversion to BigInt?
&gt; 
&gt; Like, if I want to multiply a BigInt by 2, I must write &quot;* 2n&quot;?

Yes. According to current spec, we should throw if type of operands doesn&apos;t match https://tc39.github.io/proposal-bigint/#sec-multiplicative-operators-runtime-semantics-evaluation

&gt;&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:258
&gt;&gt; +    int resultLength = x-&gt;length() + y-&gt;length();
&gt; 
&gt; Why int here? Should definitely be using unsigned or size_t.
&gt; Also, are we worried about overflow here?

It is from the original implementation in V8. AFIK, we could always use unsigned or size_t with no problems.
About overflow, I don&apos;t think we should be worried because current implementation max length is no greater than 2 ** 11 (https://github.com/caiolima/webkit/blob/master/Source/JavaScriptCore/runtime/JSBigInt.h#L100)

&gt;&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:493
&gt;&gt; +    for (int i = 0; i &lt; multiplicand-&gt;length(); i++, accumulatorIndex++) {
&gt; 
&gt; ditto for type. I see we&apos;re using int everywhere instead of unsigned/size_t. What&apos;s the reason for that?

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410950</commentid>
    <comment_count>7</comment_count>
      <attachid>336955</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-04-01 04:00:26 -0700</bug_when>
    <thetext>Created attachment 336955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411110</commentid>
    <comment_count>8</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-04-02 09:57:57 -0700</bug_when>
    <thetext>Ping Review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411365</commentid>
    <comment_count>9</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-04-02 23:58:42 -0700</bug_when>
    <thetext>Png review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412705</commentid>
    <comment_count>10</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-04-08 04:58:01 -0700</bug_when>
    <thetext>Ping Review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415122</commentid>
    <comment_count>11</comment_count>
      <attachid>338110</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-04-17 07:36:02 -0700</bug_when>
    <thetext>Created attachment 338110
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416099</commentid>
    <comment_count>12</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-04-19 15:40:17 -0700</bug_when>
    <thetext>Ping Review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417391</commentid>
    <comment_count>13</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-04-24 19:24:44 -0700</bug_when>
    <thetext>Ping Review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418291</commentid>
    <comment_count>14</comment_count>
      <attachid>338110</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-04-26 15:31:12 -0700</bug_when>
    <thetext>Comment on attachment 338110
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418384</commentid>
    <comment_count>15</comment_count>
      <attachid>338959</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-04-26 20:30:00 -0700</bug_when>
    <thetext>Created attachment 338959
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418387</commentid>
    <comment_count>16</comment_count>
      <attachid>338960</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-04-26 20:39:13 -0700</bug_when>
    <thetext>Created attachment 338960
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418400</commentid>
    <comment_count>17</comment_count>
      <attachid>338960</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-26 21:18:38 -0700</bug_when>
    <thetext>Comment on attachment 338960
Patch for landing

Clearing flags on attachment: 338960

Committed r231086: &lt;https://trac.webkit.org/changeset/231086&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418401</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-26 21:18:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418402</commentid>
    <comment_count>19</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-26 21:19:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/39781587&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418503</commentid>
    <comment_count>20</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-04-27 09:11:56 -0700</bug_when>
    <thetext>This change caused 100 failures on the JSC debug bot due to unchecked exceptions:

stress/untyped-mul.js.default: ERROR: Unchecked JS exception:
stress/untyped-mul.js.default:     This scope can throw a JS exception: toNumber @ ./runtime/JSString.cpp:418
stress/untyped-mul.js.default:         (ExceptionScope::m_recursionDepth was 5)
stress/untyped-mul.js.default:     But the exception was unchecked as of this scope: jsMul @ /Volumes/Data/slave/highsierra-debug/build/Source/JavaScriptCore/runtime/Operations.h:263
stress/untyped-mul.js.default:         (ExceptionScope::m_recursionDepth was 4)
stress/untyped-mul.js.default: 
stress/untyped-mul.js.default: Unchecked exception detected at:
stress/untyped-mul.js.default:     1   0x110047623 JSC::VM::verifyExceptionCheckNeedIsSatisfied(unsigned int, JSC::ExceptionEventLocation&amp;)
stress/untyped-mul.js.default:     2   0x11002210b JSC::ThrowScope::~ThrowScope()
stress/untyped-mul.js.default:     3   0x1100224e5 JSC::ThrowScope::~ThrowScope()
stress/untyped-mul.js.default:     4   0x10fb8a997 JSC::jsMul(JSC::ExecState*, JSC::JSValue, JSC::JSValue)
stress/untyped-mul.js.default:     5   0x10fb79d06 JSC::profiledMul(JSC::ExecState*, long long, long long, JSC::ArithProfile&amp;, bool)
stress/untyped-mul.js.default:     6   0x10fb79c75 operationValueMulProfiled
stress/untyped-mul.js.default:     7   0x5ab6aefac79
stress/untyped-mul.js.default:     8   0x10ecf1ca1 llint_entry
stress/untyped-mul.js.default:     9   0x10ece9552 vmEntryToJavaScript
stress/untyped-mul.js.default:     10  0x10fb58e3a JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
stress/untyped-mul.js.default:     11  0x10faf8b13 JSC::Interpreter::executeProgram(JSC::SourceCode const&amp;, JSC::ExecState*, JSC::JSObject*)
stress/untyped-mul.js.default:     12  0x10fdc2857 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
stress/untyped-mul.js.default:     13  0x10eb3cf49 runWithOptions(GlobalObject*, CommandLine&amp;, bool&amp;)
stress/untyped-mul.js.default:     14  0x10eb14fac jscmain(int, char**)::$_3::operator()(JSC::VM&amp;, GlobalObject*, bool&amp;) const
stress/untyped-mul.js.default:     15  0x10eafccc4 int runJSC&lt;jscmain(int, char**)::$_3&gt;(CommandLine, bool, jscmain(int, char**)::$_3 const&amp;)
stress/untyped-mul.js.default:     16  0x10eafb7af jscmain(int, char**)
stress/untyped-mul.js.default:     17  0x10eafb70e main
stress/untyped-mul.js.default:     18  0x7fff6e830015 start

https://build.webkit.org/builders/Apple%20High%20Sierra%20Debug%20JSC%20%28Tests%29/builds/939</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418529</commentid>
    <comment_count>21</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-04-27 10:22:52 -0700</bug_when>
    <thetext>Reverted r231086 for reason:

Caused JSC test failures due to an unchecked exception.

Committed r231104: &lt;https://trac.webkit.org/changeset/231104&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418585</commentid>
    <comment_count>22</comment_count>
      <attachid>339014</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-04-27 12:46:50 -0700</bug_when>
    <thetext>Created attachment 339014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418773</commentid>
    <comment_count>23</comment_count>
      <attachid>339014</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-27 23:12:03 -0700</bug_when>
    <thetext>Comment on attachment 339014
Patch

Clearing flags on attachment: 339014

Committed r231131: &lt;https://trac.webkit.org/changeset/231131&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418774</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-27 23:12:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418787</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-28 07:44:49 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 185112</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418800</commentid>
    <comment_count>26</comment_count>
      <attachid>339068</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-04-28 09:57:28 -0700</bug_when>
    <thetext>Created attachment 339068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418806</commentid>
    <comment_count>27</comment_count>
      <attachid>339068</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-28 10:37:26 -0700</bug_when>
    <thetext>Comment on attachment 339068
Patch

Clearing flags on attachment: 339068

Committed r231137: &lt;https://trac.webkit.org/changeset/231137&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418807</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-28 10:37:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418876</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-29 06:30:20 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 185118</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419376</commentid>
    <comment_count>30</comment_count>
      <attachid>339214</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-05-01 12:43:38 -0700</bug_when>
    <thetext>Created attachment 339214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419397</commentid>
    <comment_count>31</comment_count>
      <attachid>339218</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-05-01 13:12:48 -0700</bug_when>
    <thetext>Created attachment 339218
Benchmark

This new Path is perf neutral.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419994</commentid>
    <comment_count>32</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-05-02 19:38:40 -0700</bug_when>
    <thetext>Ping review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420149</commentid>
    <comment_count>33</comment_count>
      <attachid>339413</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-05-03 09:17:35 -0700</bug_when>
    <thetext>Created attachment 339413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420531</commentid>
    <comment_count>34</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-05-03 19:43:42 -0700</bug_when>
    <thetext>Hey Saam, could you take a new look at it? I added toNumeric to JSValue to make this change Spec compliant.

https://tc39.github.io/proposal-bigint/#sec-tonumeric</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420752</commentid>
    <comment_count>35</comment_count>
      <attachid>339413</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-05-04 10:55:14 -0700</bug_when>
    <thetext>Comment on attachment 339413
Patch

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

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:2573
&gt; +    JSValue result = jsMul(exec, op1, op2);

You&apos;re missing an exception after this.

&gt; Source/JavaScriptCore/runtime/CommonSlowPaths.cpp:504
&gt; +    Variant&lt;JSBigInt*, double&gt; leftNumeric = left.toNumeric(exec);
&gt; +    CHECK_EXCEPTION();
&gt; +    Variant&lt;JSBigInt*, double&gt; rightNumeric = right.toNumeric(exec);
&gt; +    CHECK_EXCEPTION();
&gt; +    
&gt; +    if (WTF::holds_alternative&lt;JSBigInt*&gt;(leftNumeric) || WTF::holds_alternative&lt;JSBigInt*&gt;(rightNumeric)) {
&gt; +        if (WTF::holds_alternative&lt;JSBigInt*&gt;(leftNumeric) &amp;&amp; WTF::holds_alternative&lt;JSBigInt*&gt;(rightNumeric)) {
&gt; +            JSValue result(JSBigInt::multiply(exec, WTF::get&lt;JSBigInt*&gt;(leftNumeric), WTF::get&lt;JSBigInt*&gt;(rightNumeric)));
&gt; +            RETURN_WITH_PROFILING(result, {
&gt; +                updateArithProfileForBinaryArithOp(exec, pc, result, left, right);
&gt; +            });
&gt; +        }
&gt; +
&gt; +        THROW(createTypeError(exec, &quot;Invalid mix of BigInt and other type in multiplication.&quot;));
&gt; +    }

Why isn&apos;t this just calling jsMul?

&gt; Source/JavaScriptCore/runtime/JSCJSValue.h:262
&gt; +    Variant&lt;JSBigInt*, double&gt; toNumeric(ExecState*) const;

This seems like a reasonable interface. I wonder if we care about making it faster or not since users of this branch on type.

&gt; Source/JavaScriptCore/runtime/JSCJSValueInlines.h:742
&gt; +    VM&amp; vm = exec-&gt;vm();
&gt; +    auto scope = DECLARE_THROW_SCOPE(vm);
&gt; +    JSValue primValue = this-&gt;toPrimitive(exec, PreferNumber);
&gt; +    RETURN_IF_EXCEPTION(scope, 0);
&gt; +    if (primValue.isBigInt())
&gt; +        return asBigInt(primValue);
&gt; +    double value = primValue.toNumber(exec);
&gt; +    RETURN_IF_EXCEPTION(scope, 0);
&gt; +    return value;

You should probably have fast paths for the type being int/double/bigint before calling toPrimitive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420753</commentid>
    <comment_count>36</comment_count>
      <attachid>339413</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-05-04 10:55:38 -0700</bug_when>
    <thetext>Comment on attachment 339413
Patch

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

&gt;&gt; Source/JavaScriptCore/jit/JITOperations.cpp:2573
&gt;&gt; +    JSValue result = jsMul(exec, op1, op2);
&gt; 
&gt; You&apos;re missing an exception after this.

exception check*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421020</commentid>
    <comment_count>37</comment_count>
      <attachid>339634</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-05-04 21:46:55 -0700</bug_when>
    <thetext>Created attachment 339634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421687</commentid>
    <comment_count>38</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-05-08 04:51:13 -0700</bug_when>
    <thetext>Ping Review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422996</commentid>
    <comment_count>39</comment_count>
      <attachid>340159</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-05-10 19:31:29 -0700</bug_when>
    <thetext>Created attachment 340159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422999</commentid>
    <comment_count>40</comment_count>
      <attachid>340160</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-05-10 19:53:53 -0700</bug_when>
    <thetext>Created attachment 340160
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423071</commentid>
    <comment_count>41</comment_count>
      <attachid>340160</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-11 00:15:36 -0700</bug_when>
    <thetext>Comment on attachment 340160
Patch

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

r=me

&gt; Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:150
&gt;                      // FIXME: Revisit this condition when introducing BigInt to JSC.

Remove this FIXME. And add a test for this case (in particular, we need to loop things to get compiled in DFG).

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:2560
&gt; +    VM&amp; vm = exec-&gt;vm();
&gt;      auto scope = DECLARE_THROW_SCOPE(vm);

Remove this.

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:2564
&gt; +    JSValue jsResult = jsMul(exec, op1, op2);

Just return `JSValue::encode(jsMul(exec, op1, op2))`.

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:2565
&gt;      RETURN_IF_EXCEPTION(scope, encodedJSValue());

Since `jsMul()` just returns the value, we do not need to have scope and exception checks.

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:2580
&gt;      RETURN_IF_EXCEPTION(scope, encodedJSValue());

On the other hand, this profiledMul uses arithProfile after `jsMul`. So this function should keep scope and exception checks.`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423332</commentid>
    <comment_count>42</comment_count>
      <attachid>340160</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-05-11 19:47:24 -0700</bug_when>
    <thetext>Comment on attachment 340160
Patch

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

Thx for the review!

&gt;&gt; Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:150
&gt;&gt;                      // FIXME: Revisit this condition when introducing BigInt to JSC.
&gt; 
&gt; Remove this FIXME. And add a test for this case (in particular, we need to loop things to get compiled in DFG).

```JSTests/stress/big-int-mul-jit.js``` is already testing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423336</commentid>
    <comment_count>43</comment_count>
      <attachid>340240</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-05-11 20:15:25 -0700</bug_when>
    <thetext>Created attachment 340240
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423337</commentid>
    <comment_count>44</comment_count>
      <attachid>340240</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-11 20:17:58 -0700</bug_when>
    <thetext>Comment on attachment 340240
Patch for landing

Rejecting attachment 340240 from commit-queue.

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

NOBODY Yusuke Suzuki found in /Volumes/Data/EWS/WebKit/JSTests/ChangeLog does not appear to be a valid reviewer according to contributors.json.
/Volumes/Data/EWS/WebKit/JSTests/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://webkit-queues.webkit.org/results/7657434</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423339</commentid>
    <comment_count>45</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-11 20:43:27 -0700</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #44)
&gt; Comment on attachment 340240 [details]
&gt; Patch for landing
&gt; 
&gt; Rejecting attachment 340240 [details] from commit-queue.
&gt; 
&gt; Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;,
&gt; &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;,
&gt; &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 340240,
&gt; &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit
&gt; 
&gt; NOBODY Yusuke Suzuki found in /Volumes/Data/EWS/WebKit/JSTests/ChangeLog
&gt; does not appear to be a valid reviewer according to contributors.json.
&gt; /Volumes/Data/EWS/WebKit/JSTests/ChangeLog neither lists a valid reviewer
&gt; nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).
&gt; 
&gt; Full output: http://webkit-queues.webkit.org/results/7657434

NOBODY remains.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423340</commentid>
    <comment_count>46</comment_count>
      <attachid>340242</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-05-11 20:53:10 -0700</bug_when>
    <thetext>Created attachment 340242
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423345</commentid>
    <comment_count>47</comment_count>
      <attachid>340242</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-11 21:32:18 -0700</bug_when>
    <thetext>Comment on attachment 340242
Patch for landing

Clearing flags on attachment: 340242

Committed r231733: &lt;https://trac.webkit.org/changeset/231733&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423346</commentid>
    <comment_count>48</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-11 21:32:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429100</commentid>
    <comment_count>49</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-31 18:52:31 -0700</bug_when>
    <thetext>Remember ArithMul can return number only. We need to add ValueMul too in DFG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429110</commentid>
    <comment_count>50</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-05-31 19:17:09 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #49)
&gt; Remember ArithMul can return number only. We need to add ValueMul too in DFG.

Yes. I created umbrella bug https://bugs.webkit.org/show_bug.cgi?id=186173 to keep track of each node we need to add Value&lt;op&gt;. Probably it is also going to be true for unary operators.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336016</attachid>
            <date>2018-03-17 15:37:14 -0700</date>
            <delta_ts>2018-03-18 11:48:55 -0700</delta_ts>
            <desc>WIP - Patch</desc>
            <filename>big-int-multiply.diff</filename>
            <type>text/plain</type>
            <size>11532</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IGU0NmEz
ZDcuLmM4YjRkYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmNwcApAQCAtMjQ2MywzNCArMjQ2MywyMyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZhbHVlQWRkTm9PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZQogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotQUxXQVlTX0lOTElORSBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgdW5wcm9maWxlZE11bChWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKK0FM
V0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHVucHJvZmlsZWRNdWwoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyKQogewotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBK
U1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKICAgICBKU1ZhbHVlIG9w
MiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKIAotICAgIGRvdWJsZSBhID0gb3AxLnRv
TnVtYmVyKGV4ZWMpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1Zh
bHVlKCkpOwotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBkb3VibGUgYiA9IG9wMi50b051bWJl
cihleGVjKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGEgKiBiKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc011bChleGVjLCBvcDEsIG9wMikpOwogfQogCi1B
TFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBwcm9maWxlZE11bChWTSYgdm0sIEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlJiBhcml0aFByb2ZpbGUsIGJvb2wgc2hvdWxkT2JzZXJ2
ZUxIU0FuZFJIU1R5cGVzID0gdHJ1ZSkKK0FMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIHByb2ZpbGVkTXVsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlJiBhcml0aFByb2ZpbGUs
IGJvb2wgc2hvdWxkT2JzZXJ2ZUxIU0FuZFJIU1R5cGVzID0gdHJ1ZSkKIHsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZE9wMSk7CiAgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZE9wMik7CiAKICAgICBpZiAoc2hvdWxkT2JzZXJ2ZUxIU0FuZFJIU1R5cGVzKQogICAg
ICAgICBhcml0aFByb2ZpbGUub2JzZXJ2ZUxIU0FuZFJIUyhvcDEsIG9wMik7CiAKLSAgICBkb3Vi
bGUgYSA9IG9wMS50b051bWJlcihleGVjKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsK
LSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICAK
LSAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEgKiBiKTsKKyAgICBKU1ZhbHVlIHJlc3Vs
dCA9IGpzTXVsKGV4ZWMsIG9wMSwgb3AyKTsKICAgICBhcml0aFByb2ZpbGUub2JzZXJ2ZVJlc3Vs
dChyZXN1bHQpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KQEAgLTI1
MDAsNyArMjQ4OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFs
dWVNdWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlCiAgICAgVk0qIHZtID0gJmV4
ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAK
LSAgICByZXR1cm4gdW5wcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRP
cDIpOworICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRP
cDIpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVs
Tm9PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVE11bElDKikKQEAgLTI1MDgsNyArMjQ5Nyw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxOb09wdGltaXpl
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlCiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAg
TmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAKLSAgICByZXR1cm4gdW5w
cm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOworICAgIHJldHVy
biB1bnByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwogfQogCiBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsT3B0aW1pemUoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyLCBKSVRNdWxJQyogbXVsSUMpCkBAIC0yNTI1LDcgKzI1MTQsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsT3B0aW1pemUoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSgogICAgIGV4ZWMtPmNvZGVCbG9jaygpLT5kdW1wTWF0aElDU3RhdHMoKTsK
ICNlbmRpZgogCi0gICAgcmV0dXJuIHVucHJvZmlsZWRNdWwoKnZtLCBleGVjLCBlbmNvZGVkT3Ax
LCBlbmNvZGVkT3AyKTsKKyAgICByZXR1cm4gdW5wcm9maWxlZE11bChleGVjLCBlbmNvZGVkT3Ax
LCBlbmNvZGVkT3AyKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25WYWx1ZU11bFByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKiBhcml0aFByb2Zp
bGUpCkBAIC0yNTM0LDcgKzI1MjMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSgogICAgIE5h
dGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwogCiAgICAgQVNTRVJUKGFyaXRo
UHJvZmlsZSk7Ci0gICAgcmV0dXJuIHByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwg
ZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSk7CisgICAgcmV0dXJuIHByb2ZpbGVkTXVsKGV4ZWMs
IGVuY29kZWRPcDEsIGVuY29kZWRPcDIsICphcml0aFByb2ZpbGUpOwogfQogCiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWRPcHRpbWl6ZShFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIsIEpJVE11bElDKiBtdWxJQykKQEAgLTI1NTIsNyArMjU0MSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZE9wdGltaXplKEV4
ZWNTdGF0ZSogZXhlYywKICAgICBleGVjLT5jb2RlQmxvY2soKS0+ZHVtcE1hdGhJQ1N0YXRzKCk7
CiAjZW5kaWYKIAotICAgIHJldHVybiBwcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEs
IGVuY29kZWRPcDIsICphcml0aFByb2ZpbGUsIGZhbHNlKTsKKyAgICByZXR1cm4gcHJvZmlsZWRN
dWwoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSwgZmFsc2UpOwog
fQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmls
ZWROb09wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUTXVsSUMqIG11bElDKQpAQCAtMjU2Miw3ICsy
NTUxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFBy
b2ZpbGVkTm9PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMKIAogICAgIEFyaXRoUHJvZmlsZSogYXJp
dGhQcm9maWxlID0gbXVsSUMtPmFyaXRoUHJvZmlsZSgpOwogICAgIEFTU0VSVChhcml0aFByb2Zp
bGUpOwotICAgIHJldHVybiBwcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29k
ZWRPcDIsICphcml0aFByb2ZpbGUpOworICAgIHJldHVybiBwcm9maWxlZE11bChleGVjLCBlbmNv
ZGVkT3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlKTsKIH0KIAogQUxXQVlTX0lOTElORSBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgdW5wcm9maWxlZE5lZ2F0ZShFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcGVyYW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKaW5kZXggZTZjMWE0NC4uODE0Y2ZiYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3Bw
CkBAIC00ODYsMTAgKzQ4NiwyOCBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfbXVsKQogICAg
IEJFR0lOKCk7CiAgICAgSlNWYWx1ZSBsZWZ0ID0gT1BfQygyKS5qc1ZhbHVlKCk7CiAgICAgSlNW
YWx1ZSByaWdodCA9IE9QX0MoMykuanNWYWx1ZSgpOwotICAgIGRvdWJsZSBhID0gbGVmdC50b051
bWJlcihleGVjKTsKKyAgICBKU1ZhbHVlIGxlZnRQcmltaXRpdmUgPSBsZWZ0LnRvUHJpbWl0aXZl
KGV4ZWMsIFByZWZlck51bWJlcik7IAogICAgIGlmIChVTkxJS0VMWSh0aHJvd1Njb3BlLmV4Y2Vw
dGlvbigpKSkKICAgICAgICAgUkVUVVJOKEpTVmFsdWUoKSk7Ci0gICAgZG91YmxlIGIgPSByaWdo
dC50b051bWJlcihleGVjKTsKKyAgICBKU1ZhbHVlIHJpZ2h0UHJpbWl0aXZlID0gcmlnaHQudG9Q
cmltaXRpdmUoZXhlYywgUHJlZmVyTnVtYmVyKTsKKyAgICBpZiAoVU5MSUtFTFkodGhyb3dTY29w
ZS5leGNlcHRpb24oKSkpCisgICAgICAgIFJFVFVSTihKU1ZhbHVlKCkpOworICAgIAorICAgIGlm
IChsZWZ0UHJpbWl0aXZlLmlzQmlnSW50KCkgfHwgcmlnaHRQcmltaXRpdmUuaXNCaWdJbnQoKSkg
eworICAgICAgICBpZiAobGVmdFByaW1pdGl2ZS5pc0JpZ0ludCgpICYmIHJpZ2h0UHJpbWl0aXZl
LmlzQmlnSW50KCkpIHsKKyAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0KEpTQmlnSW50OjptdWx0
aXBseShleGVjLCBhc0JpZ0ludChsZWZ0UHJpbWl0aXZlKSwgYXNCaWdJbnQocmlnaHRQcmltaXRp
dmUpKSk7CisgICAgICAgICAgICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVzdWx0LCB7CisgICAg
ICAgICAgICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChleGVjLCBwYywg
cmVzdWx0LCBsZWZ0LCByaWdodCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAg
ICAgIFRIUk9XKGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiSW52YWxpZCBvcGVyYW5kIGluIEJpZ0lu
dCBvcGVyYXRpb24uIikpOworICAgIH0KKyAgICAKKyAgICBkb3VibGUgYSA9IGxlZnRQcmltaXRp
dmUudG9OdW1iZXIoZXhlYyk7CisgICAgaWYgKFVOTElLRUxZKHRocm93U2NvcGUuZXhjZXB0aW9u
KCkpKQorICAgICAgICBSRVRVUk4oSlNWYWx1ZSgpKTsKKyAgICBkb3VibGUgYiA9IHJpZ2h0UHJp
bWl0aXZlLnRvTnVtYmVyKGV4ZWMpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAq
IGIpOwogICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1bHQsIHsKICAgICAgICAgdXBkYXRl
QXJpdGhQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChleGVjLCBwYywgcmVzdWx0LCBsZWZ0LCByaWdo
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAKaW5kZXggYzUx
YzhiMi4uYzdjZDFiYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCaWdJbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50
LmNwcApAQCAtMjQ2LDYgKzI0NiwyOCBAQCB2b2lkIEpTQmlnSW50OjppbnBsYWNlTXVsdGlwbHlB
ZGQodWludHB0cl90IGZhY3RvciwgdWludHB0cl90IHN1bW1hbmQpCiAgICAgaW50ZXJuYWxNdWx0
aXBseUFkZCh0aGlzLCBmYWN0b3IsIHN1bW1hbmQsIGxlbmd0aCgpLCB0aGlzKTsKIH0KIAorSlNC
aWdJbnQqIEpTQmlnSW50OjptdWx0aXBseShFeGVjU3RhdGUqIHN0YXRlLCBKU0JpZ0ludCogeCwg
SlNCaWdJbnQqIHkpCit7CisgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CisKKyAgICBpZiAoeC0+
aXNaZXJvKCkpCisgICAgICAgIHJldHVybiB4OworICAgIGlmICh5LT5pc1plcm8oKSkKKyAgICAg
ICAgcmV0dXJuIHk7CisKKyAgICBpbnQgcmVzdWx0TGVuZ3RoID0geC0+bGVuZ3RoKCkgKyB5LT5s
ZW5ndGgoKTsKKyAgICBKU0JpZ0ludCogcmVzdWx0ID0gSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5n
dGgodm0sIHJlc3VsdExlbmd0aCk7CisgICAgcmVzdWx0LT5pbml0aWFsaXplKEluaXRpYWxpemF0
aW9uVHlwZTo6V2l0aFplcm8pOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB4LT5sZW5ndGgo
KTsgaSsrKSB7CisgICAgICAgIG11bHRpcGx5QWNjdW11bGF0ZSh5LCB4LT5kaWdpdChpKSwgcmVz
dWx0LCBpKTsKKyAgICB9CisKKyAgICByZXN1bHQtPnNldFNpZ24oeC0+c2lnbigpICE9IHktPnNp
Z24oKSk7CisgICAgcmV0dXJuIHJlc3VsdC0+cmlnaHRUcmltKHZtKTs7Cit9CisKKwogI2lmIFVT
RShKU1ZBTFVFMzJfNjQpCiAjZGVmaW5lIEhBVkVfVFdPX0RJR0lUIDEKIHR5cGVkZWYgdWludDY0
X3QgVHdvRGlnaXQ7CkBAIC00NTgsNiArNDgwLDQ4IEBAIHZvaWQgSlNCaWdJbnQ6OmludGVybmFs
TXVsdGlwbHlBZGQoSlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1tYW5k
CiAgICAgICAgIEFTU0VSVCghKGNhcnJ5ICsgaGlnaCkpOwogfQogCisvLyBNdWx0aXBsaWVzIHtt
dWx0aXBsaWNhbmR9IHdpdGgge211bHRpcGxpZXJ9IGFuZCBhZGRzIHRoZSByZXN1bHQgdG8KKy8v
IHthY2N1bXVsYXRvcn0sIHN0YXJ0aW5nIGF0IHthY2N1bXVsYXRvckluZGV4fSBmb3IgdGhlIGxl
YXN0LXNpZ25pZmljYW50CisvLyBkaWdpdC4KKy8vIENhbGxlcnMgbXVzdCBlbnN1cmUgdGhhdCB7
YWNjdW11bGF0b3J9IGlzIGJpZyBlbm91Z2ggdG8gaG9sZCB0aGUgcmVzdWx0Lgordm9pZCBKU0Jp
Z0ludDo6bXVsdGlwbHlBY2N1bXVsYXRlKEpTQmlnSW50KiBtdWx0aXBsaWNhbmQsIERpZ2l0IG11
bHRpcGxpZXIsIEpTQmlnSW50KiBhY2N1bXVsYXRvciwgaW50IGFjY3VtdWxhdG9ySW5kZXgpCit7
CisgIEFTU0VSVChhY2N1bXVsYXRvci0+bGVuZ3RoKCkgPiBtdWx0aXBsaWNhbmQtPmxlbmd0aCgp
ICsgYWNjdW11bGF0b3JJbmRleCk7CisgIGlmICghbXVsdGlwbGllcikKKyAgICAgIHJldHVybjsK
KyAgICAgIAorICBEaWdpdCBjYXJyeSA9IDA7CisgIERpZ2l0IGhpZ2ggPSAwOworICBmb3IgKGlu
dCBpID0gMDsgaSA8IG11bHRpcGxpY2FuZC0+bGVuZ3RoKCk7IGkrKywgYWNjdW11bGF0b3JJbmRl
eCsrKSB7CisgICAgRGlnaXQgYWNjID0gYWNjdW11bGF0b3ItPmRpZ2l0KGFjY3VtdWxhdG9ySW5k
ZXgpOworICAgIERpZ2l0IG5ld0NhcnJ5ID0gMDsKKworICAgIC8vIEFkZCBsYXN0IHJvdW5kJ3Mg
Y2FycnlvdmVycy4KKyAgICBhY2MgPSBkaWdpdEFkZChhY2MsIGhpZ2gsIG5ld0NhcnJ5KTsKKyAg
ICBhY2MgPSBkaWdpdEFkZChhY2MsIGNhcnJ5LCBuZXdDYXJyeSk7CisKKyAgICAvLyBDb21wdXRl
IHRoaXMgcm91bmQncyBtdWx0aXBsaWNhdGlvbi4KKyAgICBEaWdpdCBtdWx0aXBsaWNhbmREaWdp
dCA9IG11bHRpcGxpY2FuZC0+ZGlnaXQoaSk7CisgICAgRGlnaXQgbG93ID0gZGlnaXRNdWwobXVs
dGlwbGllciwgbXVsdGlwbGljYW5kRGlnaXQsIGhpZ2gpOworICAgIGFjYyA9IGRpZ2l0QWRkKGFj
YywgbG93LCBuZXdDYXJyeSk7CisKKyAgICAvLyBTdG9yZSByZXN1bHQgYW5kIHByZXBhcmUgZm9y
IG5leHQgcm91bmQuCisgICAgYWNjdW11bGF0b3ItPnNldERpZ2l0KGFjY3VtdWxhdG9ySW5kZXgs
IGFjYyk7CisgICAgY2FycnkgPSBuZXdDYXJyeTsKKyAgfQorCisgIGZvciAoOyBjYXJyeSAhPSAw
IHx8IGhpZ2ggIT0gMDsgYWNjdW11bGF0b3JJbmRleCsrKSB7CisgICAgQVNTRVJUKGFjY3VtdWxh
dG9ySW5kZXggPCBhY2N1bXVsYXRvci0+bGVuZ3RoKCkpOworICAgIERpZ2l0IGFjYyA9IGFjY3Vt
dWxhdG9yLT5kaWdpdChhY2N1bXVsYXRvckluZGV4KTsKKyAgICBEaWdpdCBuZXdDYXJyeSA9IDA7
CisgICAgYWNjID0gZGlnaXRBZGQoYWNjLCBoaWdoLCBuZXdDYXJyeSk7CisgICAgaGlnaCA9IDA7
CisgICAgYWNjID0gZGlnaXRBZGQoYWNjLCBjYXJyeSwgbmV3Q2FycnkpOworICAgIGFjY3VtdWxh
dG9yLT5zZXREaWdpdChhY2N1bXVsYXRvckluZGV4LCBhY2MpOworICAgIGNhcnJ5ID0gbmV3Q2Fy
cnk7CisgIH0KK30KKwogYm9vbCBKU0JpZ0ludDo6ZXF1YWxzKEpTQmlnSW50KiB4LCBKU0JpZ0lu
dCogeSkKIHsKICAgICBpZiAoeC0+c2lnbigpICE9IHktPnNpZ24oKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0JpZ0ludC5oCmluZGV4IDZjMWRlYTcuLmExNGFiZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaApAQCAtODQsNiArODQsOCBAQCBwdWJs
aWM6CiAgICAgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwogCiAgICAgSlNPYmpl
Y3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CisKKyAgICBz
dGF0aWMgSlNCaWdJbnQqIG11bHRpcGx5KEV4ZWNTdGF0ZSosIEpTQmlnSW50KiB4LCBKU0JpZ0lu
dCogeSk7CiAgICAgCiBwcml2YXRlOgogICAgIHVzaW5nIERpZ2l0ID0gdWludHB0cl90OwpAQCAt
MTAzLDYgKzEwNSw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgc3RhdGljIHZvaWQgYWJzb2x1dGVE
aXZTbWFsbChFeGVjU3RhdGUmLCBKU0JpZ0ludCogeCwgRGlnaXQgZGl2aXNvciwgSlNCaWdJbnQq
KiBxdW90aWVudCwgRGlnaXQmIHJlbWFpbmRlcik7CiAgICAgc3RhdGljIHZvaWQgaW50ZXJuYWxN
dWx0aXBseUFkZChKU0JpZ0ludCogc291cmNlLCBEaWdpdCBmYWN0b3IsIERpZ2l0IHN1bW1hbmQs
IGludCwgSlNCaWdJbnQqIHJlc3VsdCk7CisgICAgc3RhdGljIHZvaWQgbXVsdGlwbHlBY2N1bXVs
YXRlKEpTQmlnSW50KiBtdWx0aXBsaWNhbmQsIERpZ2l0IG11bHRpcGxpZXIsIEpTQmlnSW50KiBh
Y2N1bXVsYXRvciwgaW50IGFjY3VtdWxhdG9ySW5kZXgpOwogCiAgICAgLy8gRGlnaXQgYXJpdGht
ZXRpYyBoZWxwZXJzLgogICAgIHN0YXRpYyBEaWdpdCBkaWdpdEFkZChEaWdpdCBhLCBEaWdpdCBi
LCBEaWdpdCYgY2FycnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9u
cy5oCmluZGV4IDEzNDlhZWMuLjg3MTYzMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcGVyYXRpb25zLmgKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkNhbGxGcmFt
ZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKKyNpbmNsdWRlICJKU0JpZ0ludC5o
IgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0yNTYsNiAr
MjU3LDMxIEBAIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc0FkZChDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgSlNWYWx1ZSB2MSwgSlNWYWx1ZSB2MikKICAgICByZXR1cm4ganNBZGRTbG93Q2FzZShjYWxs
RnJhbWUsIHYxLCB2Mik7CiB9CiAKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc011bChFeGVjU3Rh
dGUqIHN0YXRlLCBKU1ZhbHVlIHYxLCBKU1ZhbHVlIHYyKQoreworICAgIFZNJiB2bSA9IHN0YXRl
LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAg
IEpTVmFsdWUgbGVmdE51bWJlciA9IHYxLnRvUHJpbWl0aXZlKHN0YXRlLCBQcmVmZXJOdW1iZXIp
OworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgSlNWYWx1ZSByaWdo
dE51bWJlciA9IHYyLnRvUHJpbWl0aXZlKHN0YXRlLCBQcmVmZXJOdW1iZXIpOworICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBpZiAobGVmdE51bWJlci5pc0JpZ0lu
dCgpIHx8IHJpZ2h0TnVtYmVyLmlzQmlnSW50KCkpIHsKKyAgICAgICAgaWYgKGxlZnROdW1iZXIu
aXNCaWdJbnQoKSAmJiByaWdodE51bWJlci5pc0JpZ0ludCgpKQorICAgICAgICAgICAgcmV0dXJu
IEpTQmlnSW50OjptdWx0aXBseShzdGF0ZSwgYXNCaWdJbnQobGVmdE51bWJlciksIGFzQmlnSW50
KHJpZ2h0TnVtYmVyKSk7CisKKyAgICAgICAgdGhyb3dUeXBlRXJyb3Ioc3RhdGUsIHNjb3BlLCBB
U0NJSUxpdGVyYWwoIkludmFsaWQgb3BlcmFuZCBpbiBCaWdJbnQgb3BlcmF0aW9uLiIpKTsKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBkb3VibGUgbGVmdFZhbHVlID0gIGxlZnRO
dW1iZXIudG9OdW1iZXIoc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CisgICAgZG91YmxlIHJpZ2h0VmFsdWUgPSAgcmlnaHROdW1iZXIudG9OdW1iZXIoc3RhdGUp
OworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgcmV0dXJuIGpzTnVt
YmVyKGxlZnRWYWx1ZSAqIHJpZ2h0VmFsdWUpOworfQorCiBpbmxpbmUgYm9vbCBzY3JpYmJsZUZy
ZWVDZWxscygpCiB7CiAgICAgcmV0dXJuICFBU1NFUlRfRElTQUJMRUQgfHwgT3B0aW9uczo6c2Ny
aWJibGVGcmVlQ2VsbHMoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336027</attachid>
            <date>2018-03-18 11:49:00 -0700</date>
            <delta_ts>2018-04-01 04:00:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183721-20180318194858.patch</filename>
            <type>text/plain</type>
            <size>29911</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5Njk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
MGM5NzgzYTkwMGQwZjIzMmY3ZDVkMGY4NWE5ODA2ODRmOTI1MTRmLi5mYTg5NmJhYWE1YTgxMzBi
NTM3MWRmZmU1ZTAwZjY0YTYwODYwMTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxOC0wMy0xOCAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9ydCB0byAiKiIgb3Bl
cmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODM3MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCBCaWdJbnQgc3VwcG9ydCBpbnRvIHRpbWVzIGJpbmFyeSBvcGVyYXRvciBpbnRvIExMSW50
IGFuZCBvbgorICAgICAgICBKSVRPcGVyYXRpb25zIHByb2ZpbGVkTXVsIGFuZCB1bnByb2ZpbGVk
TXVsLgorCisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6CisgICAg
ICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNCaWdJbnQuY3BwOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6bXVsdGlwbHkpOgor
ICAgICAgICAoSlNDOjpKU0JpZ0ludDo6bXVsdGlwbHlBY2N1bXVsYXRlKToKKyAgICAgICAgKiBy
dW50aW1lL0pTQmlnSW50Lmg6CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6CisgICAg
ICAgIChKU0M6OmpzTXVsKToKKwogMjAxOC0wMy0xNSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2ly
c2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgRml4IE1TVkMgcnVuLXRpbWUgY2hlY2sgYWZ0ZXIg
cjIyOTM5MS4gCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0
YW50Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3Rh
bnRGb2xkaW5nUGhhc2UuY3BwCmluZGV4IGJkODc0OGFjZGMzMzFhMDBlMDVjNzdlNGVjYmQ1NDc1
M2YxNTU3MWEuLjliMzljOGY1NTBlNWNiNjA4YWJkNWRmM2E2OTg5NGI3N2ZiODMwMmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhh
c2UuY3BwCkBAIC0xNDYsMTQgKzE0NiwxNCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAg
ICBKU1ZhbHVlIGNoaWxkMkNvbnN0YW50ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMigp
Lm5vZGUoKSkudmFsdWUoKTsKIAogICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogUmV2aXNp
dCB0aGlzIGNvbmRpdGlvbiB3aGVuIGludHJvZHVjaW5nIEJpZ0ludCB0byBKU0MuCi0gICAgICAg
ICAgICAgICAgICAgIGF1dG8gaXNOb25TdHJpbmdDZWxsQ29uc3RhbnQgPSBbXSAoSlNWYWx1ZSB2
YWx1ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlICYmIHZhbHVlLmlz
Q2VsbCgpICYmICF2YWx1ZS5pc1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICBhdXRvIGlz
Tm9uU3RyaW5nT3JCaWdJbnRDZWxsQ29uc3RhbnQgPSBbXSAoSlNWYWx1ZSB2YWx1ZSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlICYmIHZhbHVlLmlzQ2VsbCgpICYmICF2
YWx1ZS5pc1N0cmluZygpICYmICF2YWx1ZS5pc0JpZ0ludCgpOwogICAgICAgICAgICAgICAgICAg
ICB9OwogCi0gICAgICAgICAgICAgICAgICAgIGlmIChpc05vblN0cmluZ0NlbGxDb25zdGFudChj
aGlsZDFDb25zdGFudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzTm9uU3RyaW5nT3JC
aWdJbnRDZWxsQ29uc3RhbnQoY2hpbGQxQ29uc3RhbnQpKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBub2RlLT5jb252ZXJ0VG9Db21wYXJlRXFQdHIobV9ncmFwaC5mcmVlemVTdHJvbmcoY2hp
bGQxQ29uc3RhbnQuYXNDZWxsKCkpLCBub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChp
c05vblN0cmluZ0NlbGxDb25zdGFudChjaGlsZDJDb25zdGFudCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChpc05vblN0cmluZ09yQmlnSW50Q2VsbENvbnN0YW50KGNoaWxkMkNv
bnN0YW50KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y29udmVydFRvQ29tcGFy
ZUVxUHRyKG1fZ3JhcGguZnJlZXplU3Ryb25nKGNoaWxkMkNvbnN0YW50LmFzQ2VsbCgpKSwgbm9k
ZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuY3BwCmluZGV4IGU0NmEzZDc1ZDQ3NWZlNDBlYTE2YmQyYTg2Yzk2NjRiZjdmOWQ5MTcu
LmM4YjRkYjU4ZDE5NGJiNjczNmM1NjY4OTA3ZjAzYWM2YWNjM2JjOWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMjQ2MywzNCArMjQ2MywyMyBA
QCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkTm9PcHRpbWl6
ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVz
dWx0KTsKIH0KIAotQUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgdW5wcm9maWxl
ZE11bChWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKK0FMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIHVucHJvZmlsZWRNdWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQogewotICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkT3AxKTsKICAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
T3AyKTsKIAotICAgIGRvdWJsZSBhID0gb3AxLnRvTnVtYmVyKGV4ZWMpOwotICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIHNjb3BlLnJlbGVhc2Uo
KTsKLSAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsKLSAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKGEgKiBiKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c011bChleGVjLCBvcDEsIG9wMikpOwogfQogCi1BTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBwcm9maWxlZE11bChWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlJiBh
cml0aFByb2ZpbGUsIGJvb2wgc2hvdWxkT2JzZXJ2ZUxIU0FuZFJIU1R5cGVzID0gdHJ1ZSkKK0FM
V0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHByb2ZpbGVkTXVsKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MiwgQXJpdGhQcm9maWxlJiBhcml0aFByb2ZpbGUsIGJvb2wgc2hvdWxkT2JzZXJ2ZUxIU0FuZFJI
U1R5cGVzID0gdHJ1ZSkKIHsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CiAgICAg
SlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CiAKICAgICBpZiAoc2hv
dWxkT2JzZXJ2ZUxIU0FuZFJIU1R5cGVzKQogICAgICAgICBhcml0aFByb2ZpbGUub2JzZXJ2ZUxI
U0FuZFJIUyhvcDEsIG9wMik7CiAKLSAgICBkb3VibGUgYSA9IG9wMS50b051bWJlcihleGVjKTsK
LSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICBk
b3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICAKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVt
YmVyKGEgKiBiKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTXVsKGV4ZWMsIG9wMSwgb3AyKTsK
ICAgICBhcml0aFByb2ZpbGUub2JzZXJ2ZVJlc3VsdChyZXN1bHQpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocmVzdWx0KTsKIH0KQEAgLTI1MDAsNyArMjQ4OSw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWwoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlCiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAKLSAgICByZXR1cm4gdW5wcm9maWxlZE11bCgq
dm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOworICAgIHJldHVybiB1bnByb2ZpbGVk
TXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsTm9PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJ
VE11bElDKikKQEAgLTI1MDgsNyArMjQ5Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmFsdWVNdWxOb09wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlCiAg
ICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgZXhlYyk7CiAKLSAgICByZXR1cm4gdW5wcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29k
ZWRPcDEsIGVuY29kZWRPcDIpOworICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKGV4ZWMsIGVuY29k
ZWRPcDEsIGVuY29kZWRPcDIpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlTXVsT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRNdWxJQyogbXVsSUMpCkBA
IC0yNTI1LDcgKzI1MTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlTXVsT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSgogICAgIGV4ZWMtPmNv
ZGVCbG9jaygpLT5kdW1wTWF0aElDU3RhdHMoKTsKICNlbmRpZgogCi0gICAgcmV0dXJuIHVucHJv
ZmlsZWRNdWwoKnZtLCBleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyKTsKKyAgICByZXR1cm4g
dW5wcm9maWxlZE11bChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyKTsKIH0KIAogRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMiwgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUpCkBAIC0yNTM0LDcgKzI1MjMsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSgogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGV4ZWMpOwogCiAgICAgQVNTRVJUKGFyaXRoUHJvZmlsZSk7Ci0gICAgcmV0dXJuIHByb2Zp
bGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSk7
CisgICAgcmV0dXJuIHByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIsICph
cml0aFByb2ZpbGUpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlTXVsUHJvZmlsZWRPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVE11bElDKiBtdWxJQykK
QEAgLTI1NTIsNyArMjU0MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVNdWxQcm9maWxlZE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywKICAgICBleGVjLT5j
b2RlQmxvY2soKS0+ZHVtcE1hdGhJQ1N0YXRzKCk7CiAjZW5kaWYKIAotICAgIHJldHVybiBwcm9m
aWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIsICphcml0aFByb2ZpbGUs
IGZhbHNlKTsKKyAgICByZXR1cm4gcHJvZmlsZWRNdWwoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2Rl
ZE9wMiwgKmFyaXRoUHJvZmlsZSwgZmFsc2UpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWROb09wdGltaXplKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwg
SklUTXVsSUMqIG11bElDKQpAQCAtMjU2Miw3ICsyNTUxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkTm9PcHRpbWl6ZShFeGVjU3RhdGUq
IGV4ZWMKIAogICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gbXVsSUMtPmFyaXRoUHJv
ZmlsZSgpOwogICAgIEFTU0VSVChhcml0aFByb2ZpbGUpOwotICAgIHJldHVybiBwcm9maWxlZE11
bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIsICphcml0aFByb2ZpbGUpOworICAg
IHJldHVybiBwcm9maWxlZE11bChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQ
cm9maWxlKTsKIH0KIAogQUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgdW5wcm9m
aWxlZE5lZ2F0ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcGVyYW5k
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1Bh
dGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5j
cHAKaW5kZXggZTZjMWE0NGQ2N2Y0MjE0NTI4NWZiMGQyMDA3NDVkYmNiM2E3ZGY3Ny4uODE0Y2Zi
YTBmN2JkMDQyMTc3MTM0NzY4NjAzODEwYWNlMTVlYmY5YSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCkBAIC00ODYsMTAgKzQ4Niwy
OCBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfbXVsKQogICAgIEJFR0lOKCk7CiAgICAgSlNW
YWx1ZSBsZWZ0ID0gT1BfQygyKS5qc1ZhbHVlKCk7CiAgICAgSlNWYWx1ZSByaWdodCA9IE9QX0Mo
MykuanNWYWx1ZSgpOwotICAgIGRvdWJsZSBhID0gbGVmdC50b051bWJlcihleGVjKTsKKyAgICBK
U1ZhbHVlIGxlZnRQcmltaXRpdmUgPSBsZWZ0LnRvUHJpbWl0aXZlKGV4ZWMsIFByZWZlck51bWJl
cik7IAogICAgIGlmIChVTkxJS0VMWSh0aHJvd1Njb3BlLmV4Y2VwdGlvbigpKSkKICAgICAgICAg
UkVUVVJOKEpTVmFsdWUoKSk7Ci0gICAgZG91YmxlIGIgPSByaWdodC50b051bWJlcihleGVjKTsK
KyAgICBKU1ZhbHVlIHJpZ2h0UHJpbWl0aXZlID0gcmlnaHQudG9QcmltaXRpdmUoZXhlYywgUHJl
ZmVyTnVtYmVyKTsKKyAgICBpZiAoVU5MSUtFTFkodGhyb3dTY29wZS5leGNlcHRpb24oKSkpCisg
ICAgICAgIFJFVFVSTihKU1ZhbHVlKCkpOworICAgIAorICAgIGlmIChsZWZ0UHJpbWl0aXZlLmlz
QmlnSW50KCkgfHwgcmlnaHRQcmltaXRpdmUuaXNCaWdJbnQoKSkgeworICAgICAgICBpZiAobGVm
dFByaW1pdGl2ZS5pc0JpZ0ludCgpICYmIHJpZ2h0UHJpbWl0aXZlLmlzQmlnSW50KCkpIHsKKyAg
ICAgICAgICAgIEpTVmFsdWUgcmVzdWx0KEpTQmlnSW50OjptdWx0aXBseShleGVjLCBhc0JpZ0lu
dChsZWZ0UHJpbWl0aXZlKSwgYXNCaWdJbnQocmlnaHRQcmltaXRpdmUpKSk7CisgICAgICAgICAg
ICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVzdWx0LCB7CisgICAgICAgICAgICAgICAgdXBkYXRl
QXJpdGhQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChleGVjLCBwYywgcmVzdWx0LCBsZWZ0LCByaWdo
dCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIFRIUk9XKGNyZWF0ZVR5
cGVFcnJvcihleGVjLCAiSW52YWxpZCBvcGVyYW5kIGluIEJpZ0ludCBvcGVyYXRpb24uIikpOwor
ICAgIH0KKyAgICAKKyAgICBkb3VibGUgYSA9IGxlZnRQcmltaXRpdmUudG9OdW1iZXIoZXhlYyk7
CisgICAgaWYgKFVOTElLRUxZKHRocm93U2NvcGUuZXhjZXB0aW9uKCkpKQorICAgICAgICBSRVRV
Uk4oSlNWYWx1ZSgpKTsKKyAgICBkb3VibGUgYiA9IHJpZ2h0UHJpbWl0aXZlLnRvTnVtYmVyKGV4
ZWMpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAqIGIpOwogICAgIFJFVFVSTl9X
SVRIX1BST0ZJTElORyhyZXN1bHQsIHsKICAgICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yQmlu
YXJ5QXJpdGhPcChleGVjLCBwYywgcmVzdWx0LCBsZWZ0LCByaWdodCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAKaW5kZXggYzUxYzhiMjEwZDkzYzE3Zjk2NDAw
ZWZlNzdkYWE2NzJhMjU5YTZkMy4uYWQ4NjRhZDE5YTc4OGU1YjAwODAzZDExMzQyNDlkMjhhNjAw
ZTk2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcApAQCAt
MjQ2LDYgKzI0NiwyNiBAQCB2b2lkIEpTQmlnSW50OjppbnBsYWNlTXVsdGlwbHlBZGQodWludHB0
cl90IGZhY3RvciwgdWludHB0cl90IHN1bW1hbmQpCiAgICAgaW50ZXJuYWxNdWx0aXBseUFkZCh0
aGlzLCBmYWN0b3IsIHN1bW1hbmQsIGxlbmd0aCgpLCB0aGlzKTsKIH0KIAorSlNCaWdJbnQqIEpT
QmlnSW50OjptdWx0aXBseShFeGVjU3RhdGUqIHN0YXRlLCBKU0JpZ0ludCogeCwgSlNCaWdJbnQq
IHkpCit7CisgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CisKKyAgICBpZiAoeC0+aXNaZXJvKCkp
CisgICAgICAgIHJldHVybiB4OworICAgIGlmICh5LT5pc1plcm8oKSkKKyAgICAgICAgcmV0dXJu
IHk7CisKKyAgICBpbnQgcmVzdWx0TGVuZ3RoID0geC0+bGVuZ3RoKCkgKyB5LT5sZW5ndGgoKTsK
KyAgICBKU0JpZ0ludCogcmVzdWx0ID0gSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGgodm0sIHJl
c3VsdExlbmd0aCk7CisgICAgcmVzdWx0LT5pbml0aWFsaXplKEluaXRpYWxpemF0aW9uVHlwZTo6
V2l0aFplcm8pOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB4LT5sZW5ndGgoKTsgaSsrKQor
ICAgICAgICBtdWx0aXBseUFjY3VtdWxhdGUoeSwgeC0+ZGlnaXQoaSksIHJlc3VsdCwgaSk7CisK
KyAgICByZXN1bHQtPnNldFNpZ24oeC0+c2lnbigpICE9IHktPnNpZ24oKSk7CisgICAgcmV0dXJu
IHJlc3VsdC0+cmlnaHRUcmltKHZtKTsKK30KKwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAjZGVm
aW5lIEhBVkVfVFdPX0RJR0lUIDEKIHR5cGVkZWYgdWludDY0X3QgVHdvRGlnaXQ7CkBAIC00NTgs
NiArNDc4LDQ5IEBAIHZvaWQgSlNCaWdJbnQ6OmludGVybmFsTXVsdGlwbHlBZGQoSlNCaWdJbnQq
IHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1tYW5kCiAgICAgICAgIEFTU0VSVCghKGNh
cnJ5ICsgaGlnaCkpOwogfQogCisvLyBNdWx0aXBsaWVzIHttdWx0aXBsaWNhbmR9IHdpdGgge211
bHRpcGxpZXJ9IGFuZCBhZGRzIHRoZSByZXN1bHQgdG8KKy8vIHthY2N1bXVsYXRvcn0sIHN0YXJ0
aW5nIGF0IHthY2N1bXVsYXRvckluZGV4fSBmb3IgdGhlIGxlYXN0LXNpZ25pZmljYW50CisvLyBk
aWdpdC4KKy8vIENhbGxlcnMgbXVzdCBlbnN1cmUgdGhhdCB7YWNjdW11bGF0b3J9IGlzIGJpZyBl
bm91Z2ggdG8gaG9sZCB0aGUgcmVzdWx0Lgordm9pZCBKU0JpZ0ludDo6bXVsdGlwbHlBY2N1bXVs
YXRlKEpTQmlnSW50KiBtdWx0aXBsaWNhbmQsIERpZ2l0IG11bHRpcGxpZXIsIEpTQmlnSW50KiBh
Y2N1bXVsYXRvciwgaW50IGFjY3VtdWxhdG9ySW5kZXgpCit7CisgICAgQVNTRVJUKGFjY3VtdWxh
dG9yLT5sZW5ndGgoKSA+IG11bHRpcGxpY2FuZC0+bGVuZ3RoKCkgKyBhY2N1bXVsYXRvckluZGV4
KTsKKyAgICBpZiAoIW11bHRpcGxpZXIpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBEaWdp
dCBjYXJyeSA9IDA7CisgICAgRGlnaXQgaGlnaCA9IDA7CisgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBtdWx0aXBsaWNhbmQtPmxlbmd0aCgpOyBpKyssIGFjY3VtdWxhdG9ySW5kZXgrKykgeworICAg
ICAgICBEaWdpdCBhY2MgPSBhY2N1bXVsYXRvci0+ZGlnaXQoYWNjdW11bGF0b3JJbmRleCk7Cisg
ICAgICAgIERpZ2l0IG5ld0NhcnJ5ID0gMDsKKyAgICAgICAgCisgICAgICAgIC8vIEFkZCBsYXN0
IHJvdW5kJ3MgY2FycnlvdmVycy4KKyAgICAgICAgYWNjID0gZGlnaXRBZGQoYWNjLCBoaWdoLCBu
ZXdDYXJyeSk7CisgICAgICAgIGFjYyA9IGRpZ2l0QWRkKGFjYywgY2FycnksIG5ld0NhcnJ5KTsK
KyAgICAgICAgCisgICAgICAgIC8vIENvbXB1dGUgdGhpcyByb3VuZCdzIG11bHRpcGxpY2F0aW9u
LgorICAgICAgICBEaWdpdCBtdWx0aXBsaWNhbmREaWdpdCA9IG11bHRpcGxpY2FuZC0+ZGlnaXQo
aSk7CisgICAgICAgIERpZ2l0IGxvdyA9IGRpZ2l0TXVsKG11bHRpcGxpZXIsIG11bHRpcGxpY2Fu
ZERpZ2l0LCBoaWdoKTsKKyAgICAgICAgYWNjID0gZGlnaXRBZGQoYWNjLCBsb3csIG5ld0NhcnJ5
KTsKKyAgICAgICAgCisgICAgICAgIC8vIFN0b3JlIHJlc3VsdCBhbmQgcHJlcGFyZSBmb3IgbmV4
dCByb3VuZC4KKyAgICAgICAgYWNjdW11bGF0b3ItPnNldERpZ2l0KGFjY3VtdWxhdG9ySW5kZXgs
IGFjYyk7CisgICAgICAgIGNhcnJ5ID0gbmV3Q2Fycnk7CisgICAgfQorICAgIAorICAgIHdoaWxl
IChjYXJyeSB8fCBoaWdoKSB7CisgICAgICAgIEFTU0VSVChhY2N1bXVsYXRvckluZGV4IDwgYWNj
dW11bGF0b3ItPmxlbmd0aCgpKTsKKyAgICAgICAgRGlnaXQgYWNjID0gYWNjdW11bGF0b3ItPmRp
Z2l0KGFjY3VtdWxhdG9ySW5kZXgpOworICAgICAgICBEaWdpdCBuZXdDYXJyeSA9IDA7CisgICAg
ICAgIGFjYyA9IGRpZ2l0QWRkKGFjYywgaGlnaCwgbmV3Q2FycnkpOworICAgICAgICBoaWdoID0g
MDsKKyAgICAgICAgYWNjID0gZGlnaXRBZGQoYWNjLCBjYXJyeSwgbmV3Q2FycnkpOworICAgICAg
ICBhY2N1bXVsYXRvci0+c2V0RGlnaXQoYWNjdW11bGF0b3JJbmRleCwgYWNjKTsKKyAgICAgICAg
Y2FycnkgPSBuZXdDYXJyeTsKKyAgICAgICAgYWNjdW11bGF0b3JJbmRleCsrOworICAgIH0KK30K
KwogYm9vbCBKU0JpZ0ludDo6ZXF1YWxzKEpTQmlnSW50KiB4LCBKU0JpZ0ludCogeSkKIHsKICAg
ICBpZiAoeC0+c2lnbigpICE9IHktPnNpZ24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0JpZ0ludC5oCmluZGV4IDZjMWRlYTdjZjUwMmVmNWIxZDJmYmEyNjUxZmU5NTE4NDk3NGQ3
ODIuLmExNGFiZjYyZWNlYTc2OTM3ODQ4MGUyZTU4NDcxN2Y0MWI5YjRlYmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaApAQCAtODQsNiArODQsOCBAQCBwdWJsaWM6
CiAgICAgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwogCiAgICAgSlNPYmplY3Qq
IHRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CisKKyAgICBzdGF0
aWMgSlNCaWdJbnQqIG11bHRpcGx5KEV4ZWNTdGF0ZSosIEpTQmlnSW50KiB4LCBKU0JpZ0ludCog
eSk7CiAgICAgCiBwcml2YXRlOgogICAgIHVzaW5nIERpZ2l0ID0gdWludHB0cl90OwpAQCAtMTAz
LDYgKzEwNSw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgc3RhdGljIHZvaWQgYWJzb2x1dGVEaXZT
bWFsbChFeGVjU3RhdGUmLCBKU0JpZ0ludCogeCwgRGlnaXQgZGl2aXNvciwgSlNCaWdJbnQqKiBx
dW90aWVudCwgRGlnaXQmIHJlbWFpbmRlcik7CiAgICAgc3RhdGljIHZvaWQgaW50ZXJuYWxNdWx0
aXBseUFkZChKU0JpZ0ludCogc291cmNlLCBEaWdpdCBmYWN0b3IsIERpZ2l0IHN1bW1hbmQsIGlu
dCwgSlNCaWdJbnQqIHJlc3VsdCk7CisgICAgc3RhdGljIHZvaWQgbXVsdGlwbHlBY2N1bXVsYXRl
KEpTQmlnSW50KiBtdWx0aXBsaWNhbmQsIERpZ2l0IG11bHRpcGxpZXIsIEpTQmlnSW50KiBhY2N1
bXVsYXRvciwgaW50IGFjY3VtdWxhdG9ySW5kZXgpOwogCiAgICAgLy8gRGlnaXQgYXJpdGhtZXRp
YyBoZWxwZXJzLgogICAgIHN0YXRpYyBEaWdpdCBkaWdpdEFkZChEaWdpdCBhLCBEaWdpdCBiLCBE
aWdpdCYgY2FycnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5o
CmluZGV4IDEzNDlhZWMxNmE3YTgzYThhOGE1OTBhY2VmZDU0YjE3OWM5N2JmMWYuLjg3MTYzMTkw
YjEyYzA1YjU0NGY3YmY4M2Y4ODkyZDcwNzUwMDljZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcGVyYXRpb25zLmgKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkNh
bGxGcmFtZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKKyNpbmNsdWRlICJKU0Jp
Z0ludC5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0y
NTYsNiArMjU3LDMxIEBAIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc0FkZChDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgSlNWYWx1ZSB2MSwgSlNWYWx1ZSB2MikKICAgICByZXR1cm4ganNBZGRTbG93Q2Fz
ZShjYWxsRnJhbWUsIHYxLCB2Mik7CiB9CiAKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc011bChF
eGVjU3RhdGUqIHN0YXRlLCBKU1ZhbHVlIHYxLCBKU1ZhbHVlIHYyKQoreworICAgIFZNJiB2bSA9
IHN0YXRlLT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
KworICAgIEpTVmFsdWUgbGVmdE51bWJlciA9IHYxLnRvUHJpbWl0aXZlKHN0YXRlLCBQcmVmZXJO
dW1iZXIpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgSlNWYWx1
ZSByaWdodE51bWJlciA9IHYyLnRvUHJpbWl0aXZlKHN0YXRlLCBQcmVmZXJOdW1iZXIpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBpZiAobGVmdE51bWJlci5p
c0JpZ0ludCgpIHx8IHJpZ2h0TnVtYmVyLmlzQmlnSW50KCkpIHsKKyAgICAgICAgaWYgKGxlZnRO
dW1iZXIuaXNCaWdJbnQoKSAmJiByaWdodE51bWJlci5pc0JpZ0ludCgpKQorICAgICAgICAgICAg
cmV0dXJuIEpTQmlnSW50OjptdWx0aXBseShzdGF0ZSwgYXNCaWdJbnQobGVmdE51bWJlciksIGFz
QmlnSW50KHJpZ2h0TnVtYmVyKSk7CisKKyAgICAgICAgdGhyb3dUeXBlRXJyb3Ioc3RhdGUsIHNj
b3BlLCBBU0NJSUxpdGVyYWwoIkludmFsaWQgb3BlcmFuZCBpbiBCaWdJbnQgb3BlcmF0aW9uLiIp
KTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBkb3VibGUgbGVmdFZhbHVlID0g
IGxlZnROdW1iZXIudG9OdW1iZXIoc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CisgICAgZG91YmxlIHJpZ2h0VmFsdWUgPSAgcmlnaHROdW1iZXIudG9OdW1iZXIo
c3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgcmV0dXJu
IGpzTnVtYmVyKGxlZnRWYWx1ZSAqIHJpZ2h0VmFsdWUpOworfQorCiBpbmxpbmUgYm9vbCBzY3Jp
YmJsZUZyZWVDZWxscygpCiB7CiAgICAgcmV0dXJuICFBU1NFUlRfRElTQUJMRUQgfHwgT3B0aW9u
czo6c2NyaWJibGVGcmVlQ2VsbHMoKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIv
SlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDVmNWQ5ODFmOTU5NWQ0YTEyMWRkMzcyZjdlZTdlYTQ3
ZmFmZWQxNy4uMDZjYWZkZjk3MTRiZDlmOWQ3MjE1MzcyMDBhODI4ZDIyMDNhNWRmOCAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOSBAQAorMjAxOC0wMy0xOCAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+CisK
KyAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9ydCB0byAiKiIgb3BlcmF0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM3
MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJp
Z0ludFRlc3RzLnlhbWw6CisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVsLWppdC5qczogQWRk
ZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS1wcmVjZWRlbmNl
LmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLmpz
OiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWwtdHlwZS1lcnJvci5qczogQWRk
ZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVsLXdyYXBwZWQtdmFsdWUuanM6IEFkZGVk
LgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11bHRpcGxpY2F0aW9uLmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWx0aXBseS1tZW1vcnktc3RyZXNzLmpzOiBBZGRlZC4K
KwogMjAxOC0wMy0xNCAgQ2FpdGxpbiBQb3R0ZXIgIDxjYWl0cEBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtKU0NdIGZpeCBvcmRlciBvZiBldmFsdWF0aW9uIGZvciBDbGFzc0RlZmluaXRpb25FdmFs
dWF0aW9uCmRpZmYgLS1naXQgYS9KU1Rlc3RzL2JpZ0ludFRlc3RzLnlhbWwgYi9KU1Rlc3RzL2Jp
Z0ludFRlc3RzLnlhbWwKaW5kZXggN2FlMjJjYjFiYjJhZmY2MmNjNGRkZjQ5NjI5OWY5NmEwNzQ0
ZjdhZS4uZTk0N2RjMjk0NWFkZjkwZDA3N2ZjODM3ZDU1ODNhMWQwOGUzYmM5MSAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9iaWdJbnRUZXN0cy55YW1sCisrKyBiL0pTVGVzdHMvYmlnSW50VGVzdHMueWFt
bApAQCAtOTcsMyArOTcsMjQgQEAKIC0gcGF0aDogc3RyZXNzL2JpZy1pbnQtdG8tc3RyaW5nLmpz
CiAgIGNtZDogcnVuQmlnSW50RW5hYmxlZAogCistIHBhdGg6IHN0cmVzcy9iaWctaW50LW11bC1q
aXQuanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQt
bXVsLXRvLXByaW1pdGl2ZS1wcmVjZWRlbmNlLmpzCisgIGNtZDogcnVuQmlnSW50RW5hYmxlZAor
CistIHBhdGg6IHN0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUuanMKKyAgY21kOiBydW5C
aWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsLXR5cGUtZXJyb3IuanMK
KyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsLXdy
YXBwZWQtdmFsdWUuanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNz
L2JpZy1pbnQtbXVsdGlwbGljYXRpb24uanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0g
cGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsdGlwbHktbWVtb3J5LXN0cmVzcy5qcworICBjbWQ6IHJ1
bkJpZ0ludEVuYWJsZWQKKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwt
aml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtaml0LmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBj
YmVkZTMxODc1ZDIxZmIzODIyZTdmMjhmZjA1YmNhY2ExYzlmN2EKLS0tIC9kZXYvbnVsbAorKysg
Yi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorLy9A
IHJ1bkJpZ0ludEVuYWJsZWQKKworbGV0IGFzc2VydCA9IHsKKyAgICBzYW1lVmFsdWU6IGZ1bmN0
aW9uKGksIGUsIG0pIHsKKyAgICAgICAgaWYgKGkgIT09IGUpCisgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IobSk7CisgICAgfQorfQorCitmdW5jdGlvbiBiaWdJbnRNdWwoeCwgeSkgeworICAg
IHJldHVybiB4ICogeTsKK30KK25vSW5saW5lKGJpZ0ludE11bCk7CisKK2ZvciAobGV0IGkgPSAw
OyBpIDwgMTAwMDA7IGkrKykgeworICAgIGxldCByID0gYmlnSW50TXVsKDNuLCAxMG4pOworICAg
IGFzc2VydC5zYW1lVmFsdWUociwgMzBuLCAzbiArICIgKiAiICsgMTBuICsgIiA9ICIgKyByKTsK
K30KKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZl
LXByZWNlZGVuY2UuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUt
cHJlY2VkZW5jZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTQ5YTE5Njg3ZTE0YWVlNzAxM2IzNjg2NDQ5MmU2
ODJiZDVlNzVlCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwt
dG8tcHJpbWl0aXZlLXByZWNlZGVuY2UuanMKQEAgLTAsMCArMSwzOSBAQAorLy9AIHJ1bkJpZ0lu
dEVuYWJsZWQKKworYXNzZXJ0ID0geworICAgIHNhbWVWYWx1ZTogZnVuY3Rpb24gKGlucHV0LCBl
eHBlY3RlZCwgbWVzc2FnZSkgeworICAgICAgICBpZiAoaW5wdXQgIT09IGV4cGVjdGVkKQorICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOworICAgIH0KK307CisKK2Z1bmN0aW9u
IHRlc3RNdWwoeCwgeSwgeiwgbWVzc2FnZSkgeworICAgIGFzc2VydC5zYW1lVmFsdWUoeCAqIHks
IHosIG1lc3NhZ2UpOworICAgIGFzc2VydC5zYW1lVmFsdWUoeSAqIHgsIHosIG1lc3NhZ2UpOwor
fQorCit0ZXN0TXVsKE9iamVjdCgybiksIDFuLCAybiwgIlRvUHJpbWl0aXZlOiB1bmJveCBvYmpl
Y3Qgd2l0aCBpbnRlcm5hbCBzbG90Iik7CisKK2xldCBvID0geworICAgIFtTeW1ib2wudG9Qcmlt
aXRpdmVdOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIDJuOworICAgIH0sCisgICAgdmFs
dWVPZjogZnVuY3Rpb24gKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBuZXZl
ciBleGVjdXRlIGl0Iik7CisgICAgfSwKKyAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgeworICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBleGVjdXRlIGl0Iik7CisgICAgfQor
fTsKK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9QcmltaXRpdmU6IEBAdG9QcmltaXRpdmUiKTsKKwor
byA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIDJuOworICAg
IH0sCisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJTaG91bGQgbmV2ZXIgZXhlY3V0ZSBpdCIpOworICAgIH0KK307Cit0ZXN0TXVsKG8sIDFuLCAy
biwgIlRvUHJpbWl0aXZlOiB2YWx1ZU9mIik7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVs
LXRvLXByaW1pdGl2ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDJlMmU4ZTI5MTE5ZTI3ZDEzNTc3Y2I1N2Fj
MmY5NzM1MGZlNmNjCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1t
dWwtdG8tcHJpbWl0aXZlLmpzCkBAIC0wLDAgKzEsMzUgQEAKKy8vQCBydW5CaWdJbnRFbmFibGVk
CisKK2Z1bmN0aW9uIGFzc2VydChhKSB7CisgICAgaWYgKCFhKQorICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkJhZCBhc3NlcnRpb24iKTsKK30KKworYXNzZXJ0LnNhbWVWYWx1ZSA9IGZ1bmN0aW9u
IChpbnB1dCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAgICBpZiAoaW5wdXQgIT09IGV4cGVjdGVk
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RN
dWwoeCwgeSwgeikgeworICAgIGFzc2VydC5zYW1lVmFsdWUoeCAqIHksIHosIHggKyAiICogIiAr
IHkgKyAiID0gIiArIHopOworICAgIGFzc2VydC5zYW1lVmFsdWUoeSAqIHgsIHosIHkgKyAiICog
IiArIHggKyAiID0gIiArIHopOworfQorCitsZXQgbyA9IHsKKyAgICBbU3ltYm9sLnRvUHJpbWl0
aXZlXTogZnVuY3Rpb24gKCkgeyByZXR1cm4gMzAwMDAwMDAwMDAwMDAwbjsgfQorfQorCit0ZXN0
TXVsKDUwMDAwMDAwMDAwMDQzOG4sIG8sIDE1MDAwMDAwMDAwMDEzMTQwMDAwMDAwMDAwMDAwMG4p
OworCitvLnZhbHVlT2YgPSBmdW5jdGlvbiAoKSB7CisgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91
bGQgbmV2ZXIgZXhlY3V0ZSBpdCIpOworfTsKKwordGVzdE11bCg3MDAwMDAwMDAwMDA0MzhuLCBv
LCAyMTAwMDAwMDAwMDAxMzE0MDAwMDAwMDAwMDAwMDBuKTsKKworby50b1N0cmluZyA9IGZ1bmN0
aW9uICgpIHsKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBleGVjdXRlIGl0Iik7
Cit9OworCit0ZXN0TXVsKDcwMDAwMDAwMDAwMDQzOG4sIG8sIDIxMDAwMDAwMDAwMDEzMTQwMDAw
MDAwMDAwMDAwMG4pOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10
eXBlLWVycm9yLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdHlwZS1lcnJvci5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iNTE3ODQ1N2ZiNjIzNzU3ZmQwZTc3MzU3N2RjMzk2ZjJmMzBmZTYwCi0tLSAv
ZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdHlwZS1lcnJvci5qcwpA
QCAtMCwwICsxLDEwNiBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworZnVuY3Rpb24gYXNzZXJ0
KGEsIG1lc3NhZ2UpIHsKKyAgICBpZiAoIWEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNz
YWdlKTsKK30KKworZnVuY3Rpb24gYXNzZXJ0VGhyb3dUeXBlRXJyb3IoYSwgYiwgbWVzc2FnZSkg
eworICAgIHRyeSB7CisgICAgICAgIGxldCBuID0gYSAqIGI7CisgICAgICAgIGFzc2VydChmYWxz
ZSwgbWVzc2FnZSArICI6IFNob3VsZCB0aHJvdyBUeXBlRXJyb3IsIGJ1dCBleGVjdXRlZCB3aXRo
b3V0IGV4Y2VwdGlvbiIpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgYXNzZXJ0KGUgaW5z
dGFuY2VvZiBUeXBlRXJyb3IsIG1lc3NhZ2UgKyAiOiBleHBlY3RlZCBUeXBlRXJyb3IsIGdvdDog
IiArIGUpOworICAgIH0KK30KKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCAiZm9vIiwgIkJp
Z0ludCAqIFN0cmluZyIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoImJhciIsIDE4NzU3MzgyOTg0
ODIxbiwgIlN0cmluZyAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBTeW1i
b2woImZvbyIpLCAiQmlnSW50ICogU3ltYm9sIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihTeW1i
b2woImJhciIpLCAxODc1NzM4Mjk4NDgyMW4sICJTeW1ib2wgKiBCaWdJbnQiKTsKK2Fzc2VydFRo
cm93VHlwZUVycm9yKDMwbiwgMzMyMCwgIkJpZ0ludCAqIEludDMyIik7Cithc3NlcnRUaHJvd1R5
cGVFcnJvcigzMzI1NiwgMTg3NTczODI5ODQ4MjFuLCAiSW50MzIgKiBCaWdJbnQiKTsKK2Fzc2Vy
dFRocm93VHlwZUVycm9yKDMwbiwgMC41NDMsICJCaWdJbnQgKiBEb3VibGUiKTsKK2Fzc2VydFRo
cm93VHlwZUVycm9yKDIzMC4xOTI5MywgMTg3NTczODI5ODQ4MjFuLCAiRG91YmxlICogQmlnSW50
Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIE5hTiwgIkJpZ0ludCAqIE5hTiIpOworYXNz
ZXJ0VGhyb3dUeXBlRXJyb3IoTmFOLCAxODc1NzM4Mjk4NDgyMW4sICJOYU4gKiBCaWdJbnQiKTsK
K2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgTmFOLCAiQmlnSW50ICogTmFOIik7Cithc3NlcnRU
aHJvd1R5cGVFcnJvcihOYU4sIDE4NzU3MzgyOTg0ODIxbiwgIk5hTiAqIEJpZ0ludCIpOworYXNz
ZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCArSW5maW5pdHksICJCaWdJbnQgKiBOYU4iKTsKK2Fzc2Vy
dFRocm93VHlwZUVycm9yKCtJbmZpbml0eSwgMTg3NTczODI5ODQ4MjFuLCAiTmFOICogQmlnSW50
Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIC1JbmZpbml0eSwgIkJpZ0ludCAqIC1JbmZp
bml0eSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoLUluZmluaXR5LCAxODc1NzM4Mjk4NDgyMW4s
ICItSW5maW5pdHkgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbnVsbCwg
IkJpZ0ludCAqIG51bGwiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG51bGwsIDE4NzU3MzgyOTg0
ODIxbiwgIm51bGwgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgdW5kZWZp
bmVkLCAiQmlnSW50ICogdW5kZWZpbmVkIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcih1bmRlZmlu
ZWQsIDE4NzU3MzgyOTg0ODIxbiwgInVuZGVmaW5lZCAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dU
eXBlRXJyb3IoMzBuLCB0cnVlLCAiQmlnSW50ICogdHJ1ZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJy
b3IodHJ1ZSwgMTg3NTczODI5ODQ4MjFuLCAidHJ1ZSAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dU
eXBlRXJyb3IoMzBuLCBmYWxzZSwgIkJpZ0ludCAqIGZhbHNlIik7Cithc3NlcnRUaHJvd1R5cGVF
cnJvcihmYWxzZSwgMTg3NTczODI5ODQ4MjFuLCAiZmFsc2UgKiBCaWdJbnQiKTsKKworLy8gRXJy
b3Igd2hlbiByZXR1cm5pbmcgZnJvbSBvYmplY3QKKworbGV0IG8gPSB7CisgICAgdmFsdWVPZjog
ZnVuY3Rpb24gKCkgeyByZXR1cm4gU3ltYm9sKCJGb28iKTsgfQorfTsKKworYXNzZXJ0VGhyb3dU
eXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LnZhbHVlT2YgcmV0dXJuaW5nIFN5bWJv
bCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LnZh
bHVlT2YgcmV0dXJuaW5nIFN5bWJvbCAqIEJpZ0ludCIpOworCitvID0geworICAgIHZhbHVlT2Y6
IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDMzMjU2OyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJv
cigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgSW50MzIiKTsKK2Fz
c2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC52YWx1ZU9mIHJl
dHVybmluZyBJbnQzMiAqIEJpZ0ludCIpOworCitvID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9u
ICgpIHsgcmV0dXJuIDAuNDUzOyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8s
ICJCaWdJbnQgKiBPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgRG91YmxlIik7Cithc3NlcnRUaHJv
d1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QudmFsdWVPZiByZXR1cm5pbmcg
RG91YmxlICogQmlnSW50Iik7CisKK28gPSB7CisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsg
cmV0dXJuIFN5bWJvbCgiRm9vIik7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwg
bywgIkJpZ0ludCAqIE9iamVjdC50b1N0cmluZyByZXR1cm5pbmcgU3ltYm9sIik7Cithc3NlcnRU
aHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QudG9TdHJpbmcgcmV0dXJu
aW5nIFN5bWJvbCAqIEJpZ0ludCIpOworCitvID0geworICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAo
KSB7IHJldHVybiAzMzI1NjsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAi
QmlnSW50ICogT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBJbnQzMiIpOworYXNzZXJ0VGhyb3dU
eXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBJ
bnQzMiAqIEJpZ0ludCIpOworCitvID0geworICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7IHJl
dHVybiAwLjQ1MzsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50
ICogT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBEb3VibGUiKTsKK2Fzc2VydFRocm93VHlwZUVy
cm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC50b1N0cmluZyByZXR1cm5pbmcgRG91Ymxl
ICogQmlnSW50Iik7CisKK28gPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9u
ICgpIHsgcmV0dXJuIFN5bWJvbCgiRm9vIik7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9y
KDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC5AQHRvUHJpbWl0aXZlIHJldHVybmluZyBTeW1ib2wi
KTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC5AQHRv
UHJpbWl0aXZlIHJldHVybmluZyBTeW1ib2wgKiBCaWdJbnQiKTsKKworbyA9IHsKKyAgICBbU3lt
Ym9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24gKCkgeyByZXR1cm4gMzMyNTY7IH0KK307CisKK2Fz
c2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC5AQHRvUHJpbWl0aXZl
IHJldHVybmluZyBJbnQzMiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4
MjFuLCAiT2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5nIEludDMyICogQmlnSW50Iik7CisK
K28gPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDAu
NDUzOyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmpl
Y3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcgRG91YmxlIik7Cithc3NlcnRUaHJvd1R5cGVFcnJv
cihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcgRG91
YmxlICogQmlnSW50Iik7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVs
LXdyYXBwZWQtdmFsdWUuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC13cmFwcGVkLXZh
bHVlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI2NzNkOGE2MDMwMmZhZjY2ZGZhNmNmYTFlYjEzNzBlYzhjMjJj
M2EKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC13cmFwcGVk
LXZhbHVlLmpzCkBAIC0wLDAgKzEsMzcgQEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKK2Fzc2Vy
dCA9IHsKKyAgICBzYW1lVmFsdWU6IGZ1bmN0aW9uIChpbnB1dCwgZXhwZWN0ZWQsIG1lc3NhZ2Up
IHsKKyAgICAgICAgaWYgKGlucHV0ICE9PSBleHBlY3RlZCkKKyAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcihtZXNzYWdlKTsKKyAgICB9Cit9OworCitmdW5jdGlvbiB0ZXN0TXVsKHgsIHksIHos
IG1lc3NhZ2UpIHsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKHggKiB5LCB6LCBtZXNzYWdlKTsKKyAg
ICBhc3NlcnQuc2FtZVZhbHVlKHkgKiB4LCB6LCBtZXNzYWdlKTsKK30KKwordGVzdE11bChPYmpl
Y3QoMm4pLCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogdW5ib3ggb2JqZWN0IHdpdGggaW50ZXJuYWwg
c2xvdCIpOworCitsZXQgbyA9IHsKKyAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24o
KSB7CisgICAgICAgIHJldHVybiAybjsKKyAgICB9Cit9OwordGVzdE11bChvLCAxbiwgMm4sICJU
b1ByaW1pdGl2ZTogQEB0b1ByaW1pdGl2ZSIpOworCitvID0geworICAgIHZhbHVlT2Y6IGZ1bmN0
aW9uKCkgeworICAgICAgICByZXR1cm4gMm47CisgICAgfQorfTsKK3Rlc3RNdWwobywgMW4sIDJu
LCAiVG9QcmltaXRpdmU6IHZhbHVlT2YiKTsKKworbyA9IHsKKyAgICB0b1N0cmluZzogZnVuY3Rp
b24oKSB7CisgICAgICAgIHJldHVybiAybjsKKyAgICB9Cit9Cit0ZXN0TXVsKG8sIDFuLCAybiwg
IlRvUHJpbWl0aXZlOiB0b1N0cmluZyIpOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9i
aWctaW50LW11bHRpcGxpY2F0aW9uLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0aXBs
aWNhdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZWNkNjM2ZDdmODlhMjRhY2ZiYjgxZDcyZDc1NWMyMjhm
ZTZmYWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0aXBs
aWNhdGlvbi5qcwpAQCAtMCwwICsxLDgzIEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCisvLyBD
b3B5cmlnaHQgKEMpIDIwMTcgUm9iaW4gVGVtcGxldG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
Ly8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUg
TElDRU5TRSBmaWxlLgorCithc3NlcnQgPSB7CisgICAgc2FtZVZhbHVlOiBmdW5jdGlvbiAoaW5w
dXQsIGV4cGVjdGVkLCBtZXNzYWdlKSB7CisgICAgaWYgKGlucHV0ICE9PSBleHBlY3RlZCkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOworICAgIH0KK307CisKK2Z1bmN0aW9uIHRl
c3RNdWwoeCwgeSwgeikgeworICAgIGFzc2VydC5zYW1lVmFsdWUoeCAqIHksIHosIHggKyAiICog
IiArIHkgKyAiID0gIiArIHopOworICAgIGFzc2VydC5zYW1lVmFsdWUoeSAqIHgsIHosIHkgKyAi
ICogIiArIHggKyAiID0gIiArIHopOworfQorCit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4s
IDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4RkRCQUMwOTdDOERDNUFDQ0RFRUM2Q0Q3QTQ0QTQxMDBu
KTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHhGRURDQkE5OG4sIDB4RkRCQUMwOTc1
MzBFQ0E4NjU0MUQ1OTgwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4MTIzNG4s
IDB4MTIxRjQ5RjQ5RjQ5RjQ5RjRCNDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwg
MHgzbiwgMHgyRkM5NjJGQzk2MkZDOTYzMG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBu
LCAweDJuLCAweDFGREI5NzUzMEVDQTg2NDIwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIx
MG4sIDB4MW4sIDB4RkVEQ0JBOTg3NjU0MzIxMG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMy
MTBuLCAweDBuLCAweDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgQmlnSW50KCIt
MSIpLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5
ODc2NTQzMjEwbiwgQmlnSW50KCItMiIpLCBCaWdJbnQoIi0zNjcyOTUxNzA4ODk4NjEyOTQ0MCIp
KTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgQmlnSW50KCItMyIpLCBCaWdJbnQoIi01
NTA5NDI3NTYzMzQ3OTE5NDE2MCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgQmln
SW50KCItNDY2MCIpLCBCaWdJbnQoIi04NTU3OTc3NDgxNzMzNzY4MTU5NTIwMCIpKTsKK3Rlc3RN
dWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgQmlnSW50KCItNDI3NTg3ODU1MSIpLCBCaWdJbnQoIi03
ODUyNTQ3NzE1NDY5MTg3NDYwNDUwMjgyMDcyMCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQz
MjBGbiwgMHhGRURDQkE5ODc2NTQzMjBGbiwgMHhGREJBQzA5N0M4REM1QUNBRTEzMkY3QTZCN0Ex
RENFMW4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweEZFRENCQTk3biwgMHhGREJB
QzA5NjU0MzIwRkVDREVFQzZDRDluKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgMHgz
biwgMHgyRkM5NjJGQzk2MkZDOTYyRG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAw
eDJuLCAweDFGREI5NzUzMEVDQTg2NDFFbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4s
IDB4MW4sIDB4RkVEQ0JBOTg3NjU0MzIwRm4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZu
LCAweDBuLCAweDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmlnSW50KCItMSIp
LCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcxOSIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2
NTQzMjBGbiwgQmlnSW50KCItMiIpLCBCaWdJbnQoIi0zNjcyOTUxNzA4ODk4NjEyOTQzOCIpKTsK
K3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmlnSW50KCItMyIpLCBCaWdJbnQoIi01NTA5
NDI3NTYzMzQ3OTE5NDE1NyIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmlnSW50
KCItNDI3NTg3ODU1MSIpLCBCaWdJbnQoIi03ODUyNTQ3NzE1NDY5MTg3NDYwMDIyNjk0MjE2OSIp
KTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMw
NjQ3MjAiKSwgQmlnSW50KCItMzM3MjY0MzU2Mzk3NTMxMDI4OTc2NjA4Mjg5NjMzNjE1NjEzNjgw
IikpOwordGVzdE11bCgweEZFRENCQTk4biwgMHhGRURDQkE5OG4sIDB4RkRCQUMwOTZERDQxM0E0
MG4pOwordGVzdE11bCgweEZFRENCQTk4biwgMHgxMjM0biwgMHgxMjFGNDlGNDk2RTBuKTsKK3Rl
c3RNdWwoMHhGRURDQkE5OG4sIDB4M24sIDB4MkZDOTYyRkM4bik7Cit0ZXN0TXVsKDB4RkVEQ0JB
OThuLCAweDJuLCAweDFGREI5NzUzMG4pOwordGVzdE11bCgweEZFRENCQTk4biwgMHgxbiwgMHhG
RURDQkE5OG4pOwordGVzdE11bCgweEZFRENCQTk4biwgMHgwbiwgMHgwbik7Cit0ZXN0TXVsKDB4
RkVEQ0JBOThuLCBCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTIiKSk7Cit0ZXN0TXVs
KDB4RkVEQ0JBOThuLCBCaWdJbnQoIi0yIiksIEJpZ0ludCgiLTg1NTE3NTcxMDQiKSk7Cit0ZXN0
TXVsKDB4RkVEQ0JBOThuLCBCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTEyODI3NjM1NjU2IikpOwor
dGVzdE11bCgweEZFRENCQTk4biwgQmlnSW50KCItNDI3NTg3ODU1MSIpLCBCaWdJbnQoIi0xODI4
MzEzNzM4NzE3NzczODE1MiIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0ludCgiLTE4MzY0
NzU4NTQ0NDkzMDY0NzIwIiksIEJpZ0ludCgiLTc4NTI1NDc3MTczMDU2NjMzMTQ4OTk1ODg1NDQw
IikpOwordGVzdE11bCgweDNuLCAweDNuLCAweDluKTsKK3Rlc3RNdWwoMHgzbiwgMHgybiwgMHg2
bik7Cit0ZXN0TXVsKDB4M24sIDB4MW4sIDB4M24pOwordGVzdE11bCgweDNuLCAweDBuLCAweDBu
KTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItMSIpLCBCaWdJbnQoIi0zIikpOwordGVzdE11bCgw
eDNuLCBCaWdJbnQoIi0yIiksIEJpZ0ludCgiLTYiKSk7Cit0ZXN0TXVsKDB4M24sIEJpZ0ludCgi
LTMiKSwgQmlnSW50KCItOSIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItNDY2MCIpLCBCaWdJ
bnQoIi0xMzk4MCIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItNDI3NTg3ODU1MiIpLCBCaWdJ
bnQoIi0xMjgyNzYzNTY1NiIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0
OTMwNjQ3MjAiKSwgQmlnSW50KCItNTUwOTQyNzU2MzM0NzkxOTQxNjAiKSk7Cit0ZXN0TXVsKDB4
MG4sIDB4MG4sIDB4MG4pOwordGVzdE11bCgweDBuLCBCaWdJbnQoIi0xIiksIDB4MG4pOwordGVz
dE11bCgweDBuLCBCaWdJbnQoIi0yIiksIDB4MG4pOwordGVzdE11bCgweDBuLCBCaWdJbnQoIi0z
IiksIDB4MG4pOwordGVzdE11bCgweDBuLCBCaWdJbnQoIi00Mjc1ODc4NTUxIiksIDB4MG4pOwor
dGVzdE11bCgweDBuLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcxOSIpLCAweDBuKTsKK3Rl
c3RNdWwoQmlnSW50KCItMSIpLCBCaWdJbnQoIi0xIiksIDB4MW4pOwordGVzdE11bChCaWdJbnQo
Ii0xIiksIEJpZ0ludCgiLTIiKSwgMHgybik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50
KCItMyIpLCAweDNuKTsKK3Rlc3RNdWwoQmlnSW50KCItMSIpLCBCaWdJbnQoIi00NjYwIiksIDB4
MTIzNG4pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTEiKSwgMHhG
RURDQkE5N24pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTIiKSwg
MHhGRURDQkE5OG4pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0
NDkzMDY0NzE5IiksIDB4RkVEQ0JBOTg3NjU0MzIwRm4pOwordGVzdE11bChCaWdJbnQoIi0xIiks
IEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIDB4RkVEQ0JBOTg3NjU0MzIxMG4pOwor
dGVzdE11bChCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTMiKSwgMHg5bik7Cit0ZXN0TXVsKEJpZ0lu
dCgiLTMiKSwgQmlnSW50KCItNDY2MCIpLCAweDM2OUNuKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIp
LCBCaWdJbnQoIi00Mjc1ODc4NTUxIiksIDB4MkZDOTYyRkM1bik7Cit0ZXN0TXVsKEJpZ0ludCgi
LTMiKSwgQmlnSW50KCItNDI3NTg3ODU1MiIpLCAweDJGQzk2MkZDOG4pOwordGVzdE11bChCaWdJ
bnQoIi0zIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzE5IiksIDB4MkZDOTYyRkM5NjJG
Qzk2MkRuKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2
NDcyMCIpLCAweDJGQzk2MkZDOTYyRkM5NjMwbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTE4MzY0NzU4
NTQ0NDkzMDY0NzIwIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIDB4RkRCQUMw
OTdDOERDNUFDQ0RFRUM2Q0Q3QTQ0QTQxMDBuKTsKKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3MvYmlnLWludC1tdWx0aXBseS1tZW1vcnktc3RyZXNzLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmln
LWludC1tdWx0aXBseS1tZW1vcnktc3RyZXNzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhYmFhN2UyOGY5YWVl
NjVkMjFjMGQzNmY2M2RmNjgwMjNiOWM4OTcKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0
cmVzcy9iaWctaW50LW11bHRpcGx5LW1lbW9yeS1zdHJlc3MuanMKQEAgLTAsMCArMSwxNSBAQAor
Ly9AIHJ1bkJpZ0ludEVuYWJsZWQKKworZnVuY3Rpb24gYXNzZXJ0KGEpIHsKKyAgICBpZiAoIWEp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGFzc2VydGlvbiIpOworfQorCitsZXQgYSA9
IDBuOworbGV0IGIgPSAxbjsKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDAwMDsgaSsrKSB7Cisg
ICAgYSA9IGIgKiAzMG47Cit9CisKK2Fzc2VydChhID09PSAzMG4pOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336955</attachid>
            <date>2018-04-01 04:00:26 -0700</date>
            <delta_ts>2018-04-17 07:35:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183721-20180401130024.patch</filename>
            <type>text/plain</type>
            <size>44709</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YWQ0YmE4OGIzYTY2ZjY2MjExYTgwMjJjZjlhODU4YzViMzNhNjhkLi42MTA5YmZjYWY2NmU4YjVj
MzA3MWQ1ZGYzYTRjMmQ4MzIyNzM5NTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxOC0wMy0zMSAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9ydCB0byAiKiIgb3Bl
cmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODM3MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCBCaWdJbnQgc3VwcG9ydCBpbnRvIHRpbWVzIGJpbmFyeSBvcGVyYXRvciBpbnRvIExMSW50
IGFuZCBvbgorICAgICAgICBKSVRPcGVyYXRpb25zIHByb2ZpbGVkTXVsIGFuZCB1bnByb2ZpbGVk
TXVsLiBXZSBhcmUgYWxzbyByZXBsYWNpbmcgYWxsCisgICAgICAgIHVzZXMgb2YgaW50IHRvIHVu
c2lnbmVkIHdoZW4gdGhlcmUgaXMgbm8gbmVnYXRpdmUgdmFsdWVzIGZvcgorICAgICAgICB2YXJp
YWJsZXMuCisKKyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OkNvbnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAg
ICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogcnVudGltZS9Db21tb25T
bG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhfREVDTCk6CisgICAgICAgICog
cnVudGltZS9KU0JpZ0ludC5jcHA6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjptdWx0aXBseSk6
CisgICAgICAgIChKU0M6OkpTQmlnSW50OjptdWx0aXBseUFjY3VtdWxhdGUpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNCaWdJbnQuaDoKKyAgICAgICAgKiBydW50aW1lL09wZXJhdGlvbnMuaDoKKyAg
ICAgICAgKEpTQzo6anNNdWwpOgorCiAyMDE4LTAzLTMwICBNYXJrIExhbSAgPG1hcmsubGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBBZGQgcG9pbnRlciBwcm9maWxpbmcgc3VwcG9ydCBpbiBiYXNl
bGluZSBKSVQgYW5kIHN1cHBvcnRpbmcgZmlsZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCmluZGV4IDBhZjZkZmM0NTAz
MGMwNTViYjkwNjgyOTc4YTE3YzNlZGVmNGI2NjQuLjdlY2M5N2E5OTZkMTAxZmJlMjUzYjg4MWIz
ZTE4MmI1ZjBlMTAxYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCkBAIC0xNDYsMTQgKzE0NiwxNCBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlIGNoaWxkMkNvbnN0YW50ID0gbV9zdGF0ZS5m
b3JOb2RlKG5vZGUtPmNoaWxkMigpLm5vZGUoKSkudmFsdWUoKTsKIAogICAgICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogUmV2aXNpdCB0aGlzIGNvbmRpdGlvbiB3aGVuIGludHJvZHVjaW5nIEJp
Z0ludCB0byBKU0MuCi0gICAgICAgICAgICAgICAgICAgIGF1dG8gaXNOb25TdHJpbmdDZWxsQ29u
c3RhbnQgPSBbXSAoSlNWYWx1ZSB2YWx1ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHZhbHVlICYmIHZhbHVlLmlzQ2VsbCgpICYmICF2YWx1ZS5pc1N0cmluZygpOworICAgICAg
ICAgICAgICAgICAgICBhdXRvIGlzTm9uU3RyaW5nT3JCaWdJbnRDZWxsQ29uc3RhbnQgPSBbXSAo
SlNWYWx1ZSB2YWx1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlICYm
IHZhbHVlLmlzQ2VsbCgpICYmICF2YWx1ZS5pc1N0cmluZygpICYmICF2YWx1ZS5pc0JpZ0ludCgp
OwogICAgICAgICAgICAgICAgICAgICB9OwogCi0gICAgICAgICAgICAgICAgICAgIGlmIChpc05v
blN0cmluZ0NlbGxDb25zdGFudChjaGlsZDFDb25zdGFudCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGlzTm9uU3RyaW5nT3JCaWdJbnRDZWxsQ29uc3RhbnQoY2hpbGQxQ29uc3RhbnQpKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9Db21wYXJlRXFQdHIobV9n
cmFwaC5mcmVlemVTdHJvbmcoY2hpbGQxQ29uc3RhbnQuYXNDZWxsKCkpLCBub2RlLT5jaGlsZDIo
KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChpc05vblN0cmluZ0NlbGxDb25zdGFudChjaGlsZDJDb25zdGFu
dCkpIHsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc05vblN0cmluZ09yQmlnSW50
Q2VsbENvbnN0YW50KGNoaWxkMkNvbnN0YW50KSkgewogICAgICAgICAgICAgICAgICAgICAgICAg
bm9kZS0+Y29udmVydFRvQ29tcGFyZUVxUHRyKG1fZ3JhcGguZnJlZXplU3Ryb25nKGNoaWxkMkNv
bnN0YW50LmFzQ2VsbCgpKSwgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IDY2OTVlYTIzNGRkMGMzNTBjNGVj
ZTVmODZlYjJhOGQ4OTAyNmNiNjAuLjg2MWUwMTNkZjllZjJiMzQwMjVjODRiYmFlMTE3ZDIzNmY2
ODJlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApA
QCAtMjQ5NywzNCArMjQ5NywyMyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlQWRkTm9PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZQogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotQUxXQVlTX0lOTElORSBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgdW5wcm9maWxlZE11bChWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKK0FMV0FZU19J
TkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHVucHJvZmlsZWRNdWwoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQog
ewotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVl
IG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKICAgICBKU1ZhbHVlIG9wMiA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKIAotICAgIGRvdWJsZSBhID0gb3AxLnRvTnVtYmVy
KGV4ZWMpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkp
OwotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVj
KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGEgKiBiKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc011bChleGVjLCBvcDEsIG9wMikpOwogfQogCi1BTFdBWVNf
SU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBwcm9maWxlZE11bChWTSYgdm0sIEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMiwgQXJpdGhQcm9maWxlJiBhcml0aFByb2ZpbGUsIGJvb2wgc2hvdWxkT2JzZXJ2ZUxIU0Fu
ZFJIU1R5cGVzID0gdHJ1ZSkKK0FMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHBy
b2ZpbGVkTXVsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlJiBhcml0aFByb2ZpbGUsIGJvb2wg
c2hvdWxkT2JzZXJ2ZUxIU0FuZFJIU1R5cGVzID0gdHJ1ZSkKIHsKLSAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZE9wMSk7CiAgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZE9wMik7CiAKICAgICBpZiAoc2hvdWxkT2JzZXJ2ZUxIU0FuZFJIU1R5cGVzKQogICAgICAgICBh
cml0aFByb2ZpbGUub2JzZXJ2ZUxIU0FuZFJIUyhvcDEsIG9wMik7CiAKLSAgICBkb3VibGUgYSA9
IG9wMS50b051bWJlcihleGVjKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNv
ZGVkSlNWYWx1ZSgpKTsKLSAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsKLSAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICAKLSAgICBK
U1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEgKiBiKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpz
TXVsKGV4ZWMsIG9wMSwgb3AyKTsKICAgICBhcml0aFByb2ZpbGUub2JzZXJ2ZVJlc3VsdChyZXN1
bHQpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KQEAgLTI1MzQsNyAr
MjUyMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWwo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlCiAgICAgVk0qIHZtID0gJmV4ZWMtPnZt
KCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAKLSAgICBy
ZXR1cm4gdW5wcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwor
ICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwog
fQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsTm9PcHRp
bWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIsIEpJVE11bElDKikKQEAgLTI1NDIsNyArMjUzMSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxOb09wdGltaXplKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlCiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0aXZl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAKLSAgICByZXR1cm4gdW5wcm9maWxl
ZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOworICAgIHJldHVybiB1bnBy
b2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwogfQogCiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsT3B0aW1pemUoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ay
LCBKSVRNdWxJQyogbXVsSUMpCkBAIC0yNTU5LDcgKzI1NDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSgogICAgIGV4ZWMtPmNvZGVCbG9jaygpLT5kdW1wTWF0aElDU3RhdHMoKTsKICNlbmRp
ZgogCi0gICAgcmV0dXJuIHVucHJvZmlsZWRNdWwoKnZtLCBleGVjLCBlbmNvZGVkT3AxLCBlbmNv
ZGVkT3AyKTsKKyAgICByZXR1cm4gdW5wcm9maWxlZE11bChleGVjLCBlbmNvZGVkT3AxLCBlbmNv
ZGVkT3AyKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1
ZU11bFByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUpCkBA
IC0yNTY4LDcgKzI1NTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSgogICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwogCiAgICAgQVNTRVJUKGFyaXRoUHJvZmls
ZSk7Ci0gICAgcmV0dXJuIHByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2Rl
ZE9wMiwgKmFyaXRoUHJvZmlsZSk7CisgICAgcmV0dXJuIHByb2ZpbGVkTXVsKGV4ZWMsIGVuY29k
ZWRPcDEsIGVuY29kZWRPcDIsICphcml0aFByb2ZpbGUpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWRPcHRpbWl6ZShFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIsIEpJVE11bElDKiBtdWxJQykKQEAgLTI1ODYsNyArMjU3NSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZE9wdGltaXplKEV4ZWNTdGF0
ZSogZXhlYywKICAgICBleGVjLT5jb2RlQmxvY2soKS0+ZHVtcE1hdGhJQ1N0YXRzKCk7CiAjZW5k
aWYKIAotICAgIHJldHVybiBwcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29k
ZWRPcDIsICphcml0aFByb2ZpbGUsIGZhbHNlKTsKKyAgICByZXR1cm4gcHJvZmlsZWRNdWwoZXhl
YywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSwgZmFsc2UpOwogfQogCiBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWROb09w
dGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUTXVsSUMqIG11bElDKQpAQCAtMjU5Niw3ICsyNTg1LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVk
Tm9PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMKIAogICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9m
aWxlID0gbXVsSUMtPmFyaXRoUHJvZmlsZSgpOwogICAgIEFTU0VSVChhcml0aFByb2ZpbGUpOwot
ICAgIHJldHVybiBwcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIs
ICphcml0aFByb2ZpbGUpOworICAgIHJldHVybiBwcm9maWxlZE11bChleGVjLCBlbmNvZGVkT3Ax
LCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlKTsKIH0KIAogQUxXQVlTX0lOTElORSBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgdW5wcm9maWxlZE5lZ2F0ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcGVyYW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKaW5kZXggZTZjMWE0NGQ2N2Y0MjE0NTI4NWZiMGQyMDA3
NDVkYmNiM2E3ZGY3Ny4uZGY4ZmU3M2Q0ZjA3YjYyZTk0ZWI4NTQzZWEyYjcxZWYwNGFmYWVlZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMu
Y3BwCkBAIC00ODYsMTAgKzQ4NiwyNCBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfbXVsKQog
ICAgIEJFR0lOKCk7CiAgICAgSlNWYWx1ZSBsZWZ0ID0gT1BfQygyKS5qc1ZhbHVlKCk7CiAgICAg
SlNWYWx1ZSByaWdodCA9IE9QX0MoMykuanNWYWx1ZSgpOwotICAgIGRvdWJsZSBhID0gbGVmdC50
b051bWJlcihleGVjKTsKLSAgICBpZiAoVU5MSUtFTFkodGhyb3dTY29wZS5leGNlcHRpb24oKSkp
Ci0gICAgICAgIFJFVFVSTihKU1ZhbHVlKCkpOwotICAgIGRvdWJsZSBiID0gcmlnaHQudG9OdW1i
ZXIoZXhlYyk7CisgICAgSlNWYWx1ZSBsZWZ0UHJpbWl0aXZlID0gbGVmdC50b1ByaW1pdGl2ZShl
eGVjLCBQcmVmZXJOdW1iZXIpOyAKKyAgICBDSEVDS19FWENFUFRJT04oKTsKKyAgICBKU1ZhbHVl
IHJpZ2h0UHJpbWl0aXZlID0gcmlnaHQudG9QcmltaXRpdmUoZXhlYywgUHJlZmVyTnVtYmVyKTsK
KyAgICBDSEVDS19FWENFUFRJT04oKTsKKyAgICAKKyAgICBpZiAobGVmdFByaW1pdGl2ZS5pc0Jp
Z0ludCgpIHx8IHJpZ2h0UHJpbWl0aXZlLmlzQmlnSW50KCkpIHsKKyAgICAgICAgaWYgKGxlZnRQ
cmltaXRpdmUuaXNCaWdJbnQoKSAmJiByaWdodFByaW1pdGl2ZS5pc0JpZ0ludCgpKSB7CisgICAg
ICAgICAgICBKU1ZhbHVlIHJlc3VsdChKU0JpZ0ludDo6bXVsdGlwbHkoZXhlYywgYXNCaWdJbnQo
bGVmdFByaW1pdGl2ZSksIGFzQmlnSW50KHJpZ2h0UHJpbWl0aXZlKSkpOworICAgICAgICAgICAg
UkVUVVJOX1dJVEhfUFJPRklMSU5HKHJlc3VsdCwgeworICAgICAgICAgICAgICAgIHVwZGF0ZUFy
aXRoUHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgbGVmdCwgcmlnaHQp
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBUSFJPVyhjcmVhdGVUeXBl
RXJyb3IoZXhlYywgIkludmFsaWQgbWl4IG9mIEJpZ0ludCBhbmQgb3RoZXIgdHlwZSBpbiBtdWx0
aXBsaWNhdGlvbi4iKSk7CisgICAgfQorCisgICAgZG91YmxlIGEgPSBsZWZ0UHJpbWl0aXZlLnRv
TnVtYmVyKGV4ZWMpOworICAgIGRvdWJsZSBiID0gcmlnaHRQcmltaXRpdmUudG9OdW1iZXIoZXhl
Yyk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhICogYik7CiAgICAgUkVUVVJOX1dJ
VEhfUFJPRklMSU5HKHJlc3VsdCwgewogICAgICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5h
cnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIGxlZnQsIHJpZ2h0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcAppbmRleCBjNTFjOGIyMTBkOTNjMTdmOTY0MDBl
ZmU3N2RhYTY3MmEyNTlhNmQzLi45MTk3YjlhMWE0NGRjNTExMjcwMmRhNzhhMTg4OTgwNzhmMmQ2
NDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCkBAIC02
OSw3ICs2OSw3IEBAIHZvaWQgSlNCaWdJbnQ6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBT
bG90VmlzaXRvciYgdmlzaXRvcikKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3Qs
IHZpc2l0b3IpOwogfQogCi1KU0JpZ0ludDo6SlNCaWdJbnQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgaW50IGxlbmd0aCkKK0pTQmlnSW50OjpKU0JpZ0ludChWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUp
CiAgICAgLCBtX2xlbmd0aChsZW5ndGgpCiB7IH0KQEAgLTkzLDEzICs5MywxMyBAQCBKU0JpZ0lu
dCogSlNCaWdJbnQ6OmNyZWF0ZVplcm8oVk0mIHZtKQogICAgIHJldHVybiB6ZXJvQmlnSW50Owog
fQogCi1zaXplX3QgSlNCaWdJbnQ6OmFsbG9jYXRpb25TaXplKGludCBsZW5ndGgpCitzaXplX3Qg
SlNCaWdJbnQ6OmFsbG9jYXRpb25TaXplKHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBzaXplX3Qg
c2l6ZVdpdGhQYWRkaW5nID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mPHNpemVvZihzaXplX3Qp
PihzaXplb2YoSlNCaWdJbnQpKTsKICAgICByZXR1cm4gc2l6ZVdpdGhQYWRkaW5nICsgbGVuZ3Ro
ICogc2l6ZW9mKERpZ2l0KTsKIH0KIAotSlNCaWdJbnQqIEpTQmlnSW50OjpjcmVhdGVXaXRoTGVu
Z3RoKFZNJiB2bSwgaW50IGxlbmd0aCkKK0pTQmlnSW50KiBKU0JpZ0ludDo6Y3JlYXRlV2l0aExl
bmd0aChWTSYgdm0sIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBKU0JpZ0ludCogYmlnSW50ID0g
bmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNCaWdJbnQ+KHZtLmhlYXAsIGFsbG9jYXRpb25T
aXplKGxlbmd0aCkpKSBKU0JpZ0ludCh2bSwgdm0uYmlnSW50U3RydWN0dXJlLmdldCgpLCBsZW5n
dGgpOwogICAgIGJpZ0ludC0+ZmluaXNoQ3JlYXRpb24odm0pOwpAQCAtMjIzLDcgKzIyMyw3IEBA
IEpTQmlnSW50KiBKU0JpZ0ludDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwgVk0mIHZtLCBT
dHJpbmdWaWV3IHMsIHVpbnQ4X3QgcmFkCiAgICAgcmV0dXJuIHBhcnNlSW50KHN0YXRlLCB2bSwg
cy5jaGFyYWN0ZXJzMTYoKSwgcy5sZW5ndGgoKSwgMCwgcmFkaXgsIGZhbHNlKTsKIH0KIAotU3Ry
aW5nIEpTQmlnSW50Ojp0b1N0cmluZyhFeGVjU3RhdGUmIHN0YXRlLCBpbnQgcmFkaXgpCitTdHJp
bmcgSlNCaWdJbnQ6OnRvU3RyaW5nKEV4ZWNTdGF0ZSYgc3RhdGUsIHVuc2lnbmVkIHJhZGl4KQog
ewogICAgIGlmICh0aGlzLT5pc1plcm8oKSkKICAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkuc21h
bGxTdHJpbmdzLnNpbmdsZUNoYXJhY3RlclN0cmluZ1JlcCgnMCcpOwpAQCAtMjQ2LDYgKzI0Niwy
NiBAQCB2b2lkIEpTQmlnSW50OjppbnBsYWNlTXVsdGlwbHlBZGQodWludHB0cl90IGZhY3Rvciwg
dWludHB0cl90IHN1bW1hbmQpCiAgICAgaW50ZXJuYWxNdWx0aXBseUFkZCh0aGlzLCBmYWN0b3Is
IHN1bW1hbmQsIGxlbmd0aCgpLCB0aGlzKTsKIH0KIAorSlNCaWdJbnQqIEpTQmlnSW50OjptdWx0
aXBseShFeGVjU3RhdGUqIHN0YXRlLCBKU0JpZ0ludCogeCwgSlNCaWdJbnQqIHkpCit7CisgICAg
Vk0mIHZtID0gc3RhdGUtPnZtKCk7CisKKyAgICBpZiAoeC0+aXNaZXJvKCkpCisgICAgICAgIHJl
dHVybiB4OworICAgIGlmICh5LT5pc1plcm8oKSkKKyAgICAgICAgcmV0dXJuIHk7CisKKyAgICB1
bnNpZ25lZCByZXN1bHRMZW5ndGggPSB4LT5sZW5ndGgoKSArIHktPmxlbmd0aCgpOworICAgIEpT
QmlnSW50KiByZXN1bHQgPSBKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aCh2bSwgcmVzdWx0TGVu
Z3RoKTsKKyAgICByZXN1bHQtPmluaXRpYWxpemUoSW5pdGlhbGl6YXRpb25UeXBlOjpXaXRoWmVy
byk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgeC0+bGVuZ3RoKCk7IGkrKykKKyAg
ICAgICAgbXVsdGlwbHlBY2N1bXVsYXRlKHksIHgtPmRpZ2l0KGkpLCByZXN1bHQsIGkpOworCisg
ICAgcmVzdWx0LT5zZXRTaWduKHgtPnNpZ24oKSAhPSB5LT5zaWduKCkpOworICAgIHJldHVybiBy
ZXN1bHQtPnJpZ2h0VHJpbSh2bSk7Cit9CisKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogI2RlZmlu
ZSBIQVZFX1RXT19ESUdJVCAxCiB0eXBlZGVmIHVpbnQ2NF90IFR3b0RpZ2l0OwpAQCAtMzc4LDkg
KzM5OCw5IEBAIEpTQmlnSW50OjpEaWdpdCBKU0JpZ0ludDo6ZGlnaXREaXYoRGlnaXQgaGlnaCwg
RGlnaXQgbG93LCBEaWdpdCBkaXZpc29yLCBEaWdpdCYKICAgICBzdGF0aWMgY29uc3QgRGlnaXQg
a0hhbGZEaWdpdEJhc2UgPSAxdWxsIDw8IGhhbGZEaWdpdEJpdHM7CiAgICAgLy8gQWRhcHRlZCBm
cm9tIFdhcnJlbiwgSGFja2VyJ3MgRGVsaWdodCwgcC4gMTUyLgogI2lmIFVTRShKU1ZBTFVFNjQp
Ci0gICAgaW50IHMgPSBjbHo2NChkaXZpc29yKTsKKyAgICB1bnNpZ25lZCBzID0gY2x6NjQoZGl2
aXNvcik7CiAjZWxzZQotICAgIGludCBzID0gY2x6MzIoZGl2aXNvcik7CisgICAgdW5zaWduZWQg
cyA9IGNsejMyKGRpdmlzb3IpOwogI2VuZGlmCiAgICAgZGl2aXNvciA8PD0gczsKICAgICAKQEAg
LTQyMywxNCArNDQzLDE0IEBAIEpTQmlnSW50OjpEaWdpdCBKU0JpZ0ludDo6ZGlnaXREaXYoRGln
aXQgaGlnaCwgRGlnaXQgbG93LCBEaWdpdCBkaXZpc29yLCBEaWdpdCYKIAogLy8gTXVsdGlwbGll
cyB7c291cmNlfSB3aXRoIHtmYWN0b3J9IGFuZCBhZGRzIHtzdW1tYW5kfSB0byB0aGUgcmVzdWx0
LgogLy8ge3Jlc3VsdH0gYW5kIHtzb3VyY2V9IG1heSBiZSB0aGUgc2FtZSBCaWdJbnQgZm9yIGlu
cGxhY2UgbW9kaWZpY2F0aW9uLgotdm9pZCBKU0JpZ0ludDo6aW50ZXJuYWxNdWx0aXBseUFkZChK
U0JpZ0ludCogc291cmNlLCBEaWdpdCBmYWN0b3IsIERpZ2l0IHN1bW1hbmQsIGludCBuLCBKU0Jp
Z0ludCogcmVzdWx0KQordm9pZCBKU0JpZ0ludDo6aW50ZXJuYWxNdWx0aXBseUFkZChKU0JpZ0lu
dCogc291cmNlLCBEaWdpdCBmYWN0b3IsIERpZ2l0IHN1bW1hbmQsIHVuc2lnbmVkIG4sIEpTQmln
SW50KiByZXN1bHQpCiB7CiAgICAgQVNTRVJUKHNvdXJjZS0+bGVuZ3RoKCkgPj0gbik7CiAgICAg
QVNTRVJUKHJlc3VsdC0+bGVuZ3RoKCkgPj0gbik7CiAKICAgICBEaWdpdCBjYXJyeSA9IHN1bW1h
bmQ7CiAgICAgRGlnaXQgaGlnaCA9IDA7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKysp
IHsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgIERpZ2l0
IGN1cnJlbnQgPSBzb3VyY2UtPmRpZ2l0KGkpOwogICAgICAgICBEaWdpdCBuZXdDYXJyeSA9IDA7
CiAKQEAgLTQ1OCw2ICs0NzgsNDkgQEAgdm9pZCBKU0JpZ0ludDo6aW50ZXJuYWxNdWx0aXBseUFk
ZChKU0JpZ0ludCogc291cmNlLCBEaWdpdCBmYWN0b3IsIERpZ2l0IHN1bW1hbmQKICAgICAgICAg
QVNTRVJUKCEoY2FycnkgKyBoaWdoKSk7CiB9CiAKKy8vIE11bHRpcGxpZXMge211bHRpcGxpY2Fu
ZH0gd2l0aCB7bXVsdGlwbGllcn0gYW5kIGFkZHMgdGhlIHJlc3VsdCB0bworLy8ge2FjY3VtdWxh
dG9yfSwgc3RhcnRpbmcgYXQge2FjY3VtdWxhdG9ySW5kZXh9IGZvciB0aGUgbGVhc3Qtc2lnbmlm
aWNhbnQKKy8vIGRpZ2l0LgorLy8gQ2FsbGVycyBtdXN0IGVuc3VyZSB0aGF0IHthY2N1bXVsYXRv
cn0gaXMgYmlnIGVub3VnaCB0byBob2xkIHRoZSByZXN1bHQuCit2b2lkIEpTQmlnSW50OjptdWx0
aXBseUFjY3VtdWxhdGUoSlNCaWdJbnQqIG11bHRpcGxpY2FuZCwgRGlnaXQgbXVsdGlwbGllciwg
SlNCaWdJbnQqIGFjY3VtdWxhdG9yLCB1bnNpZ25lZCBhY2N1bXVsYXRvckluZGV4KQoreworICAg
IEFTU0VSVChhY2N1bXVsYXRvci0+bGVuZ3RoKCkgPiBtdWx0aXBsaWNhbmQtPmxlbmd0aCgpICsg
YWNjdW11bGF0b3JJbmRleCk7CisgICAgaWYgKCFtdWx0aXBsaWVyKQorICAgICAgICByZXR1cm47
CisgICAgCisgICAgRGlnaXQgY2FycnkgPSAwOworICAgIERpZ2l0IGhpZ2ggPSAwOworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBtdWx0aXBsaWNhbmQtPmxlbmd0aCgpOyBpKyssIGFjY3Vt
dWxhdG9ySW5kZXgrKykgeworICAgICAgICBEaWdpdCBhY2MgPSBhY2N1bXVsYXRvci0+ZGlnaXQo
YWNjdW11bGF0b3JJbmRleCk7CisgICAgICAgIERpZ2l0IG5ld0NhcnJ5ID0gMDsKKyAgICAgICAg
CisgICAgICAgIC8vIEFkZCBsYXN0IHJvdW5kJ3MgY2FycnlvdmVycy4KKyAgICAgICAgYWNjID0g
ZGlnaXRBZGQoYWNjLCBoaWdoLCBuZXdDYXJyeSk7CisgICAgICAgIGFjYyA9IGRpZ2l0QWRkKGFj
YywgY2FycnksIG5ld0NhcnJ5KTsKKyAgICAgICAgCisgICAgICAgIC8vIENvbXB1dGUgdGhpcyBy
b3VuZCdzIG11bHRpcGxpY2F0aW9uLgorICAgICAgICBEaWdpdCBtdWx0aXBsaWNhbmREaWdpdCA9
IG11bHRpcGxpY2FuZC0+ZGlnaXQoaSk7CisgICAgICAgIERpZ2l0IGxvdyA9IGRpZ2l0TXVsKG11
bHRpcGxpZXIsIG11bHRpcGxpY2FuZERpZ2l0LCBoaWdoKTsKKyAgICAgICAgYWNjID0gZGlnaXRB
ZGQoYWNjLCBsb3csIG5ld0NhcnJ5KTsKKyAgICAgICAgCisgICAgICAgIC8vIFN0b3JlIHJlc3Vs
dCBhbmQgcHJlcGFyZSBmb3IgbmV4dCByb3VuZC4KKyAgICAgICAgYWNjdW11bGF0b3ItPnNldERp
Z2l0KGFjY3VtdWxhdG9ySW5kZXgsIGFjYyk7CisgICAgICAgIGNhcnJ5ID0gbmV3Q2Fycnk7Cisg
ICAgfQorICAgIAorICAgIHdoaWxlIChjYXJyeSB8fCBoaWdoKSB7CisgICAgICAgIEFTU0VSVChh
Y2N1bXVsYXRvckluZGV4IDwgYWNjdW11bGF0b3ItPmxlbmd0aCgpKTsKKyAgICAgICAgRGlnaXQg
YWNjID0gYWNjdW11bGF0b3ItPmRpZ2l0KGFjY3VtdWxhdG9ySW5kZXgpOworICAgICAgICBEaWdp
dCBuZXdDYXJyeSA9IDA7CisgICAgICAgIGFjYyA9IGRpZ2l0QWRkKGFjYywgaGlnaCwgbmV3Q2Fy
cnkpOworICAgICAgICBoaWdoID0gMDsKKyAgICAgICAgYWNjID0gZGlnaXRBZGQoYWNjLCBjYXJy
eSwgbmV3Q2FycnkpOworICAgICAgICBhY2N1bXVsYXRvci0+c2V0RGlnaXQoYWNjdW11bGF0b3JJ
bmRleCwgYWNjKTsKKyAgICAgICAgY2FycnkgPSBuZXdDYXJyeTsKKyAgICAgICAgYWNjdW11bGF0
b3JJbmRleCsrOworICAgIH0KK30KKwogYm9vbCBKU0JpZ0ludDo6ZXF1YWxzKEpTQmlnSW50KiB4
LCBKU0JpZ0ludCogeSkKIHsKICAgICBpZiAoeC0+c2lnbigpICE9IHktPnNpZ24oKSkKQEAgLTQ2
Niw3ICs1MjksNyBAQCBib29sIEpTQmlnSW50OjplcXVhbHMoSlNCaWdJbnQqIHgsIEpTQmlnSW50
KiB5KQogICAgIGlmICh4LT5sZW5ndGgoKSAhPSB5LT5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCB4LT5sZW5ndGgoKTsgaSsrKSB7Cisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHgtPmxlbmd0aCgpOyBpKyspIHsKICAgICAgICAg
aWYgKHgtPmRpZ2l0KGkpICE9IHktPmRpZ2l0KGkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KQEAgLTQ5NCw3ICs1NTcsNyBAQCB2b2lkIEpTQmlnSW50OjphYnNvbHV0ZURpdlNt
YWxsKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCBEaWdpdCBkaXZpc29yLCBKUwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaW50IGxlbmd0aCA9IHgtPmxlbmd0aCgpOworICAg
IHVuc2lnbmVkIGxlbmd0aCA9IHgtPmxlbmd0aCgpOwogICAgIGlmIChxdW90aWVudCAhPSBudWxs
cHRyKSB7CiAgICAgICAgIGlmICgqcXVvdGllbnQgPT0gbnVsbHB0cikKICAgICAgICAgICAgICpx
dW90aWVudCA9IEpTQmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoKHZtLCBsZW5ndGgpOwpAQCAtNTIx
LDE0ICs1ODQsMTQgQEAgY29uc3RleHByIHVpbnQ4X3QgbWF4Qml0c1BlckNoYXJUYWJsZVtdID0g
ewogICAgIDE2MiwgMTYzLCAxNjUsIDE2NiwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMzMu
LjM2CiB9OwogCi1zdGF0aWMgY29uc3QgaW50IGJpdHNQZXJDaGFyVGFibGVTaGlmdCA9IDU7Citz
dGF0aWMgY29uc3QgdW5zaWduZWQgYml0c1BlckNoYXJUYWJsZVNoaWZ0ID0gNTsKIHN0YXRpYyBj
b25zdCBzaXplX3QgYml0c1BlckNoYXJUYWJsZU11bHRpcGxpZXIgPSAxdSA8PCBiaXRzUGVyQ2hh
clRhYmxlU2hpZnQ7CiAKIC8vIENvbXB1dGUgKGFuIG92ZXJhcHByb3hpbWF0aW9uIG9mKSB0aGUg
bGVuZ3RoIG9mIHRoZSByZXN1bHRpbmcgc3RyaW5nOgogLy8gRGl2aWRlIGJpdCBsZW5ndGggb2Yg
dGhlIEJpZ0ludCBieSBiaXRzIHJlcHJlc2VudGFibGUgcGVyIGNoYXJhY3Rlci4KLXVpbnQ2NF90
IEpTQmlnSW50OjpjYWxjdWxhdGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKGludCBsZW5ndGgs
IGludCByYWRpeCwgRGlnaXQgbGFzdERpZ2l0LCBib29sIHNpZ24pCit1aW50NjRfdCBKU0JpZ0lu
dDo6Y2FsY3VsYXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZCh1bnNpZ25lZCBsZW5ndGgsIHVu
c2lnbmVkIHJhZGl4LCBEaWdpdCBsYXN0RGlnaXQsIGJvb2wgc2lnbikKIHsKLSAgICBpbnQgbGVh
ZGluZ1plcm9zOworICAgIHVuc2lnbmVkIGxlYWRpbmdaZXJvczsKICAgICBpZiAoc2l6ZW9mKGxh
c3REaWdpdCkgPT0gOCkKICAgICAgICAgbGVhZGluZ1plcm9zID0gY2x6NjQobGFzdERpZ2l0KTsK
ICAgICBlbHNlCkBAIC01NTYsNyArNjE5LDcgQEAgdWludDY0X3QgSlNCaWdJbnQ6OmNhbGN1bGF0
ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQoaW50IGxlbmd0aCwgaW50IHJhZGl4LCBEaWcKICAg
ICByZXR1cm4gbWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZDsKIH0KIAotU3RyaW5nIEpTQmlnSW50
Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQqIHgsIGludCByYWRp
eCkKK1N0cmluZyBKU0JpZ0ludDo6dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpT
QmlnSW50KiB4LCB1bnNpZ25lZCByYWRpeCkKIHsKICAgICAvLyBGSVhNRTogW0pTQ10gUmV2aXNp
dCB1c2FnZSBvZiBTdHJpbmdWZWN0b3IgaW50byBKU0JpZ0ludDo6dG9TdHJpbmcKICAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNjcKQEAgLTU2NSw3ICs2
MjgsNyBAQCBTdHJpbmcgSlNCaWdJbnQ6OnRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUmIHN0YXRl
LCBKU0JpZ0ludCogeCwgaW50IHJhZGl4KQogICAgIEFTU0VSVChyYWRpeCA+PSAyICYmIHJhZGl4
IDw9IDM2KTsKICAgICBBU1NFUlQoIXgtPmlzWmVybygpKTsKIAotICAgIGludCBsZW5ndGggPSB4
LT5sZW5ndGgoKTsKKyAgICB1bnNpZ25lZCBsZW5ndGggPSB4LT5sZW5ndGgoKTsKICAgICBib29s
IHNpZ24gPSB4LT5zaWduKCk7CiAKICAgICB1aW50OF90IG1heEJpdHNQZXJDaGFyID0gbWF4Qml0
c1BlckNoYXJUYWJsZVtyYWRpeF07CkBAIC01ODEsMTIgKzY0NCwxMiBAQCBTdHJpbmcgSlNCaWdJ
bnQ6OnRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUmIHN0YXRlLCBKU0JpZ0ludCogeCwgaW50IHJh
ZGl4KQogICAgIGlmIChsZW5ndGggPT0gMSkKICAgICAgICAgbGFzdERpZ2l0ID0geC0+ZGlnaXQo
MCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGludCBjaHVua0NoYXJzID0gZGlnaXRCaXRzICogYml0
c1BlckNoYXJUYWJsZU11bHRpcGxpZXIgLyBtYXhCaXRzUGVyQ2hhcjsKKyAgICAgICAgdW5zaWdu
ZWQgY2h1bmtDaGFycyA9IGRpZ2l0Qml0cyAqIGJpdHNQZXJDaGFyVGFibGVNdWx0aXBsaWVyIC8g
bWF4Qml0c1BlckNoYXI7CiAgICAgICAgIERpZ2l0IGNodW5rRGl2aXNvciA9IGRpZ2l0UG93KHJh
ZGl4LCBjaHVua0NoYXJzKTsKIAogICAgICAgICAvLyBCeSBjb25zdHJ1Y3Rpb24gb2YgY2h1bmtD
aGFycywgdGhlcmUgY2FuJ3QgaGF2ZSBiZWVuIG92ZXJmbG93LgogICAgICAgICBBU1NFUlQoY2h1
bmtEaXZpc29yKTsKLSAgICAgICAgaW50IG5vblplcm9EaWdpdCA9IGxlbmd0aCAtIDE7CisgICAg
ICAgIHVuc2lnbmVkIG5vblplcm9EaWdpdCA9IGxlbmd0aCAtIDE7CiAgICAgICAgIEFTU0VSVCh4
LT5kaWdpdChub25aZXJvRGlnaXQpKTsKIAogICAgICAgICAvLyB7cmVzdH0gaG9sZHMgdGhlIHBh
cnQgb2YgdGhlIEJpZ0ludCB0aGF0IHdlIGhhdmVuJ3QgbG9va2VkIGF0IHlldC4KQEAgLTYwMiw3
ICs2NjUsNyBAQCBTdHJpbmcgSlNCaWdJbnQ6OnRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUmIHN0
YXRlLCBKU0JpZ0ludCogeCwgaW50IHJhZGl4KQogICAgICAgICAgICAgQVNTRVJUKHJlc3QpOwog
CiAgICAgICAgICAgICBkaXZpZGVuZCA9ICZyZXN0OwotICAgICAgICAgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBjaHVua0NoYXJzOyBpKyspIHsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBjaHVua0NoYXJzOyBpKyspIHsKICAgICAgICAgICAgICAgICByZXN1bHRTdHJpbmcu
YXBwZW5kKHJhZGl4RGlnaXRzW2NodW5rICUgcmFkaXhdKTsKICAgICAgICAgICAgICAgICBjaHVu
ayAvPSByYWRpeDsKICAgICAgICAgICAgIH0KQEAgLTYyNyw3ICs2OTAsNyBAQCBTdHJpbmcgSlNC
aWdJbnQ6OnRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUmIHN0YXRlLCBKU0JpZ0ludCogeCwgaW50
IHJhZGl4KQogICAgIEFTU0VSVChyZXN1bHRTdHJpbmcuc2l6ZSgpIDw9IHN0YXRpY19jYXN0PHNp
emVfdD4obWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZCkpOwogCiAgICAgLy8gUmVtb3ZlIGxlYWRp
bmcgemVyb2VzLgotICAgIGludCBuZXdTaXplTm9MZWFkaW5nWmVyb2VzID0gcmVzdWx0U3RyaW5n
LnNpemUoKTsKKyAgICB1bnNpZ25lZCBuZXdTaXplTm9MZWFkaW5nWmVyb2VzID0gcmVzdWx0U3Ry
aW5nLnNpemUoKTsKICAgICB3aGlsZSAobmV3U2l6ZU5vTGVhZGluZ1plcm9lcyAgPiAxICYmIHJl
c3VsdFN0cmluZ1tuZXdTaXplTm9MZWFkaW5nWmVyb2VzIC0gMV0gPT0gJzAnKQogICAgICAgICBu
ZXdTaXplTm9MZWFkaW5nWmVyb2VzLS07CiAKQEAgLTY0NiwxNCArNzA5LDE2IEBAIEpTQmlnSW50
KiBKU0JpZ0ludDo6cmlnaHRUcmltKFZNJiB2bSkKICAgICBpZiAoaXNaZXJvKCkpCiAgICAgICAg
IHJldHVybiB0aGlzOwogCisgICAgQVNTRVJUKG1fbGVuZ3RoKTsKKwogICAgIGludCBub25aZXJv
SW5kZXggPSBtX2xlbmd0aCAtIDE7CiAgICAgd2hpbGUgKG5vblplcm9JbmRleCA+PSAwICYmICFk
aWdpdChub25aZXJvSW5kZXgpKQogICAgICAgICBub25aZXJvSW5kZXgtLTsKIAotICAgIGlmIChu
b25aZXJvSW5kZXggPT0gbV9sZW5ndGggLSAxKQorICAgIGlmIChub25aZXJvSW5kZXggPT0gc3Rh
dGljX2Nhc3Q8aW50PihtX2xlbmd0aCAtIDEpKQogICAgICAgICByZXR1cm4gdGhpczsKIAotICAg
IGludCBuZXdMZW5ndGggPSBub25aZXJvSW5kZXggKyAxOworICAgIHVuc2lnbmVkIG5ld0xlbmd0
aCA9IG5vblplcm9JbmRleCArIDE7CiAgICAgSlNCaWdJbnQqIHRyaW1tZWRCaWdJbnQgPSBjcmVh
dGVXaXRoTGVuZ3RoKHZtLCBuZXdMZW5ndGgpOwogICAgIFJFTEVBU0VfQVNTRVJUKHRyaW1tZWRC
aWdJbnQpOwogICAgIHN0ZDo6Y29weShkYXRhU3RvcmFnZSgpLCBkYXRhU3RvcmFnZSgpICsgbmV3
TGVuZ3RoLCB0cmltbWVkQmlnSW50LT5kYXRhU3RvcmFnZSgpKTsgCkBAIC02NjMsMTQgKzcyOCwx
NCBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6OnJpZ2h0VHJpbShWTSYgdm0pCiAgICAgcmV0dXJuIHRy
aW1tZWRCaWdJbnQ7CiB9CiAKLUpTQmlnSW50KiBKU0JpZ0ludDo6YWxsb2NhdGVGb3IoRXhlY1N0
YXRlKiBzdGF0ZSwgVk0mIHZtLCBpbnQgcmFkaXgsIGludCBjaGFyY291bnQpCitKU0JpZ0ludCog
SlNCaWdJbnQ6OmFsbG9jYXRlRm9yKEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgdW5zaWduZWQg
cmFkaXgsIHVuc2lnbmVkIGNoYXJjb3VudCkKIHsKICAgICBBU1NFUlQoMiA8PSByYWRpeCAmJiBy
YWRpeCA8PSAzNik7CiAgICAgQVNTRVJUKGNoYXJjb3VudCA+PSAwKTsKIAogICAgIHNpemVfdCBi
aXRzUGVyQ2hhciA9IG1heEJpdHNQZXJDaGFyVGFibGVbcmFkaXhdOwogICAgIHNpemVfdCBjaGFy
cyA9IGNoYXJjb3VudDsKLSAgICBjb25zdCBpbnQgcm91bmR1cCA9IGJpdHNQZXJDaGFyVGFibGVN
dWx0aXBsaWVyIC0gMTsKKyAgICBjb25zdCB1bnNpZ25lZCByb3VuZHVwID0gYml0c1BlckNoYXJU
YWJsZU11bHRpcGxpZXIgLSAxOwogICAgIGlmIChjaGFycyA8PSAoc3RkOjpudW1lcmljX2xpbWl0
czxzaXplX3Q+OjptYXgoKSAtIHJvdW5kdXApIC8gYml0c1BlckNoYXIpIHsKICAgICAgICAgc2l6
ZV90IGJpdHNNaW4gPSBiaXRzUGVyQ2hhciAqIGNoYXJzOwogCkBAIC02NzgsNyArNzQzLDcgQEAg
SlNCaWdJbnQqIEpTQmlnSW50OjphbGxvY2F0ZUZvcihFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0s
IGludCByYWRpeCwgaW50IGNoYXJjb3UKICAgICAgICAgYml0c01pbiA9IChiaXRzTWluICsgcm91
bmR1cCkgPj4gYml0c1BlckNoYXJUYWJsZVNoaWZ0OwogICAgICAgICBpZiAoYml0c01pbiA8PSBz
dGF0aWNfY2FzdDxzaXplX3Q+KG1heEludCkpIHsKICAgICAgICAgICAgIC8vIERpdmlkZSBieSBr
RGlnaXRzQml0cywgcm91bmRpbmcgdXAuCi0gICAgICAgICAgICBpbnQgbGVuZ3RoID0gKHN0YXRp
Y19jYXN0PGludD4oYml0c01pbikgKyBkaWdpdEJpdHMgLSAxKSAvIGRpZ2l0Qml0czsKKyAgICAg
ICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IChiaXRzTWluICsgZGlnaXRCaXRzIC0gMSkgLyBkaWdp
dEJpdHM7CiAgICAgICAgICAgICBpZiAobGVuZ3RoIDw9IG1heExlbmd0aCkgewogICAgICAgICAg
ICAgICAgIEpTQmlnSW50KiByZXN1bHQgPSBKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aCh2bSwg
bGVuZ3RoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAtNzE5LDExICs3ODQs
MTEgQEAgc2l6ZV90IEpTQmlnSW50OjpvZmZzZXRPZkRhdGEoKQogfQogCiB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgQ2hhclR5cGU+Ci1KU0JpZ0ludCogSlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0ZSog
c3RhdGUsIENoYXJUeXBlKiAgZGF0YSwgaW50IGxlbmd0aCkKK0pTQmlnSW50KiBKU0JpZ0ludDo6
cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwgQ2hhclR5cGUqICBkYXRhLCB1bnNpZ25lZCBsZW5n
dGgpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAKLSAgICBpbnQgcCA9IDA7CisgICAg
dW5zaWduZWQgcCA9IDA7CiAgICAgd2hpbGUgKHAgPCBsZW5ndGggJiYgaXNTdHJXaGl0ZVNwYWNl
KGRhdGFbcF0pKQogICAgICAgICArK3A7CiAKQEAgLTc1OCwxMCArODIzLDEwIEBAIEpTQmlnSW50
KiBKU0JpZ0ludDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwgQ2hhclR5cGUqICBkYXRhLCBp
bnQgbGVuZ3RoKQogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci1KU0JpZ0ludCog
SlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgQ2hhclR5cGUqIGRh
dGEsIGludCBsZW5ndGgsIGludCBzdGFydEluZGV4LCBpbnQgcmFkaXgsIGJvb2wgYWxsb3dFbXB0
eVN0cmluZykKK0pTQmlnSW50KiBKU0JpZ0ludDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwg
Vk0mIHZtLCBDaGFyVHlwZSogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCBzdGFydElu
ZGV4LCB1bnNpZ25lZCByYWRpeCwgYm9vbCBhbGxvd0VtcHR5U3RyaW5nKQogewogICAgIEFTU0VS
VChsZW5ndGggPj0gMCk7Ci0gICAgaW50IHAgPSBzdGFydEluZGV4OworICAgIHVuc2lnbmVkIHAg
PSBzdGFydEluZGV4OwogCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogCkBAIC03NzcsNyArODQyLDcgQEAgSlNCaWdJbnQqIEpTQmlnSW50OjpwYXJzZUludChFeGVj
U3RhdGUqIHN0YXRlLCBWTSYgdm0sIENoYXJUeXBlKiBkYXRhLCBpbnQgbGVuZ3QKIAogICAgIGlu
dCBlbmRJbmRleCA9IGxlbmd0aCAtIDE7CiAgICAgLy8gUmVtb3ZpbmcgdHJhaWxpbmcgc3BhY2Vz
Ci0gICAgd2hpbGUgKGVuZEluZGV4ID49IHAgJiYgaXNTdHJXaGl0ZVNwYWNlKGRhdGFbZW5kSW5k
ZXhdKSkKKyAgICB3aGlsZSAoZW5kSW5kZXggPj0gc3RhdGljX2Nhc3Q8aW50PihwKSAmJiBpc1N0
cldoaXRlU3BhY2UoZGF0YVtlbmRJbmRleF0pKQogICAgICAgICAtLWVuZEluZGV4OwogCiAgICAg
bGVuZ3RoID0gZW5kSW5kZXggKyAxOwpAQCAtNzg1LDE2ICs4NTAsMTYgQEAgSlNCaWdJbnQqIEpT
QmlnSW50OjpwYXJzZUludChFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0sIENoYXJUeXBlKiBkYXRh
LCBpbnQgbGVuZ3QKICAgICBpZiAocCA9PSBsZW5ndGgpCiAgICAgICAgIHJldHVybiBjcmVhdGVa
ZXJvKHZtKTsKIAotICAgIGludCBsaW1pdDAgPSAnMCcgKyAocmFkaXggPCAxMCA/IHJhZGl4IDog
MTApOwotICAgIGludCBsaW1pdGEgPSAnYScgKyAocmFkaXggLSAxMCk7Ci0gICAgaW50IGxpbWl0
QSA9ICdBJyArIChyYWRpeCAtIDEwKTsKKyAgICB1bnNpZ25lZCBsaW1pdDAgPSAnMCcgKyAocmFk
aXggPCAxMCA/IHJhZGl4IDogMTApOworICAgIHVuc2lnbmVkIGxpbWl0YSA9ICdhJyArIChyYWRp
eCAtIDEwKTsKKyAgICB1bnNpZ25lZCBsaW1pdEEgPSAnQScgKyAocmFkaXggLSAxMCk7CiAKICAg
ICBKU0JpZ0ludCogcmVzdWx0ID0gYWxsb2NhdGVGb3Ioc3RhdGUsIHZtLCByYWRpeCwgbGVuZ3Ro
IC0gcCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKICAgICBy
ZXN1bHQtPmluaXRpYWxpemUoSW5pdGlhbGl6YXRpb25UeXBlOjpXaXRoWmVybyk7CiAKLSAgICBm
b3IgKGludCBpID0gcDsgaSA8IGxlbmd0aDsgaSsrLCBwKyspIHsKKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSBwOyBpIDwgbGVuZ3RoOyBpKyssIHArKykgewogICAgICAgICB1aW50MzJfdCBkaWdpdDsK
ICAgICAgICAgaWYgKGRhdGFbaV0gPj0gJzAnICYmIGRhdGFbaV0gPCBsaW1pdDApCiAgICAgICAg
ICAgICBkaWdpdCA9IGRhdGFbaV0gLSAnMCc7CkBAIC04MjIsMTMgKzg4NywxMyBAQCBKU0JpZ0lu
dDo6RGlnaXQqIEpTQmlnSW50OjpkYXRhU3RvcmFnZSgpCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8RGlnaXQqPihyZWludGVycHJldF9jYXN0PGNoYXIqPih0aGlzKSArIG9mZnNldE9mRGF0
YSgpKTsKIH0KIAotSlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdChpbnQgbikKK0pTQmln
SW50OjpEaWdpdCBKU0JpZ0ludDo6ZGlnaXQodW5zaWduZWQgbikKIHsKICAgICBBU1NFUlQobiA+
PSAwICYmIG4gPCBsZW5ndGgoKSk7CiAgICAgcmV0dXJuIGRhdGFTdG9yYWdlKClbbl07CiB9CiAK
LXZvaWQgSlNCaWdJbnQ6OnNldERpZ2l0KGludCBuLCBEaWdpdCB2YWx1ZSkKK3ZvaWQgSlNCaWdJ
bnQ6OnNldERpZ2l0KHVuc2lnbmVkIG4sIERpZ2l0IHZhbHVlKQogewogICAgIEFTU0VSVChuID49
IDAgJiYgbiA8IGxlbmd0aCgpKTsKICAgICBkYXRhU3RvcmFnZSgpW25dID0gdmFsdWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaAppbmRleCA2YzFkZWE3Y2Y1MDJlZjVi
MWQyZmJhMjY1MWZlOTUxODQ5NzRkNzgyLi5jNjJjMzQ4MjYzOTA4NGM1ZWM1OGYwNWZlMGI1MjYz
ZDFiMTJjNjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Jp
Z0ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKQEAg
LTQwLDcgKzQwLDcgQEAgY2xhc3MgSlNCaWdJbnQgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIAog
cHVibGljOgogCi0gICAgSlNCaWdJbnQoVk0mLCBTdHJ1Y3R1cmUqLCBpbnQgbGVuZ3RoKTsKKyAg
ICBKU0JpZ0ludChWTSYsIFN0cnVjdHVyZSosIHVuc2lnbmVkIGxlbmd0aCk7CiAKICAgICBlbnVt
IGNsYXNzIEluaXRpYWxpemF0aW9uVHlwZSB7IE5vbmUsIFdpdGhaZXJvIH07CiAgICAgdm9pZCBp
bml0aWFsaXplKEluaXRpYWxpemF0aW9uVHlwZSk7CkBAIC00OCwxMiArNDgsMTEgQEAgcHVibGlj
OgogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsK
IAogICAgIHN0YXRpYyBzaXplX3QgZXN0aW1hdGVkU2l6ZShKU0NlbGwqKTsKLSAgICBzdGF0aWMg
c2l6ZV90IGFsbG9jYXRpb25TaXplKGludCBsZW5ndGgpOworICAgIHN0YXRpYyBzaXplX3QgYWxs
b2NhdGlvblNpemUodW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBwcm90b3R5cGUpOwot
CiAgICAgc3RhdGljIEpTQmlnSW50KiBjcmVhdGVaZXJvKFZNJik7Ci0gICAgc3RhdGljIEpTQmln
SW50KiBjcmVhdGVXaXRoTGVuZ3RoKFZNJiwgaW50IGxlbmd0aCk7CisgICAgc3RhdGljIEpTQmln
SW50KiBjcmVhdGVXaXRoTGVuZ3RoKFZNJiwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIHN0YXRp
YyBKU0JpZ0ludCogY3JlYXRlRnJvbShWTSYsIGludDMyX3QgdmFsdWUpOwogICAgIHN0YXRpYyBK
U0JpZ0ludCogY3JlYXRlRnJvbShWTSYsIHVpbnQzMl90IHZhbHVlKTsKQEAgLTY5LDE0ICs2OCwx
NCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaWduKGJvb2wgc2lnbikgeyBtX3NpZ24gPSBzaWdu
OyB9CiAgICAgYm9vbCBzaWduKCkgY29uc3QgeyByZXR1cm4gbV9zaWduOyB9CiAKLSAgICB2b2lk
IHNldExlbmd0aChpbnQgbGVuZ3RoKSB7IG1fbGVuZ3RoID0gbGVuZ3RoOyB9Ci0gICAgaW50IGxl
bmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CisgICAgdm9pZCBzZXRMZW5ndGgodW5z
aWduZWQgbGVuZ3RoKSB7IG1fbGVuZ3RoID0gbGVuZ3RoOyB9CisgICAgdW5zaWduZWQgbGVuZ3Ro
KCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KIAogICAgIHN0YXRpYyBKU0JpZ0ludCogcGFy
c2VJbnQoRXhlY1N0YXRlKiwgVk0mLCBTdHJpbmdWaWV3LCB1aW50OF90IHJhZGl4KTsKICAgICBz
dGF0aWMgSlNCaWdJbnQqIHBhcnNlSW50KEV4ZWNTdGF0ZSosIFN0cmluZ1ZpZXcpOwogCiAgICAg
c3RkOjpvcHRpb25hbDx1aW50OF90PiBzaW5nbGVEaWdpdFZhbHVlRm9yU3RyaW5nKCk7Ci0gICAg
U3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSYsIGludCByYWRpeCk7CisgICAgU3RyaW5nIHRvU3Ry
aW5nKEV4ZWNTdGF0ZSYsIHVuc2lnbmVkIHJhZGl4KTsKICAgICAKICAgICBKU19FWFBPUlRfUFJJ
VkFURSBzdGF0aWMgYm9vbCBlcXVhbHMoSlNCaWdJbnQqLCBKU0JpZ0ludCopOwogCkBAIC04NCwx
MiArODMsMTQgQEAgcHVibGljOgogICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBjb25z
dDsKIAogICAgIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCop
IGNvbnN0OworCisgICAgc3RhdGljIEpTQmlnSW50KiBtdWx0aXBseShFeGVjU3RhdGUqLCBKU0Jp
Z0ludCogeCwgSlNCaWdJbnQqIHkpOwogICAgIAogcHJpdmF0ZToKICAgICB1c2luZyBEaWdpdCA9
IHVpbnRwdHJfdDsKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGludCBiaXRzUGVyQnl0ZSA9
IDg7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQgZGlnaXRCaXRzID0gc2l6ZW9mKERp
Z2l0KSAqIGJpdHNQZXJCeXRlOwotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgaW50IGhhbGZE
aWdpdEJpdHMgPSBkaWdpdEJpdHMgLyAyOworICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgdW5z
aWduZWQgYml0c1BlckJ5dGUgPSA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgdW5zaWdu
ZWQgZGlnaXRCaXRzID0gc2l6ZW9mKERpZ2l0KSAqIGJpdHNQZXJCeXRlOworICAgIHN0YXRpYyBj
b25zdGV4cHIgY29uc3QgdW5zaWduZWQgaGFsZkRpZ2l0Qml0cyA9IGRpZ2l0Qml0cyAvIDI7CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBEaWdpdCBoYWxmRGlnaXRNYXNrID0gKDF1bGwgPDwg
aGFsZkRpZ2l0Qml0cykgLSAxOwogICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgaW50IG1heElu
dCA9IDB4N0ZGRkZGRkY7CiAgICAgCkBAIC05NywxMiArOTgsMTMgQEAgcHJpdmF0ZToKICAgICAv
LyBtYXhJbnQgLyBkaWdpdEJpdHMuIEhvd2V2ZXIsIHdlIHVzZSBhIGxvd2VyIGxpbWl0IGZvciBu
b3csIGJlY2F1c2UKICAgICAvLyByYWlzaW5nIGl0IGxhdGVyIGlzIGVhc2llciB0aGFuIGxvd2Vy
aW5nIGl0LgogICAgIC8vIFN1cHBvcnQgdXAgdG8gMSBtaWxsaW9uIGJpdHMuCi0gICAgc3RhdGlj
IGNvbnN0IGludCBtYXhMZW5ndGggPSAxMDI0ICogMTAyNCAvIChzaXplb2Yodm9pZCopICogYml0
c1BlckJ5dGUpOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhMZW5ndGggPSAxMDI0ICog
MTAyNCAvIChzaXplb2Yodm9pZCopICogYml0c1BlckJ5dGUpOwogICAgIAotICAgIHN0YXRpYyB1
aW50NjRfdCBjYWxjdWxhdGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKGludCBsZW5ndGgsIGlu
dCByYWRpeCwgRGlnaXQgbGFzdERpZ2l0LCBib29sIHNpZ24pOworICAgIHN0YXRpYyB1aW50NjRf
dCBjYWxjdWxhdGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKHVuc2lnbmVkIGxlbmd0aCwgdW5z
aWduZWQgcmFkaXgsIERpZ2l0IGxhc3REaWdpdCwgYm9vbCBzaWduKTsKICAgICAKICAgICBzdGF0
aWMgdm9pZCBhYnNvbHV0ZURpdlNtYWxsKEV4ZWNTdGF0ZSYsIEpTQmlnSW50KiB4LCBEaWdpdCBk
aXZpc29yLCBKU0JpZ0ludCoqIHF1b3RpZW50LCBEaWdpdCYgcmVtYWluZGVyKTsKLSAgICBzdGF0
aWMgdm9pZCBpbnRlcm5hbE11bHRpcGx5QWRkKEpTQmlnSW50KiBzb3VyY2UsIERpZ2l0IGZhY3Rv
ciwgRGlnaXQgc3VtbWFuZCwgaW50LCBKU0JpZ0ludCogcmVzdWx0KTsKKyAgICBzdGF0aWMgdm9p
ZCBpbnRlcm5hbE11bHRpcGx5QWRkKEpTQmlnSW50KiBzb3VyY2UsIERpZ2l0IGZhY3RvciwgRGln
aXQgc3VtbWFuZCwgdW5zaWduZWQsIEpTQmlnSW50KiByZXN1bHQpOworICAgIHN0YXRpYyB2b2lk
IG11bHRpcGx5QWNjdW11bGF0ZShKU0JpZ0ludCogbXVsdGlwbGljYW5kLCBEaWdpdCBtdWx0aXBs
aWVyLCBKU0JpZ0ludCogYWNjdW11bGF0b3IsIHVuc2lnbmVkIGFjY3VtdWxhdG9ySW5kZXgpOwog
CiAgICAgLy8gRGlnaXQgYXJpdGhtZXRpYyBoZWxwZXJzLgogICAgIHN0YXRpYyBEaWdpdCBkaWdp
dEFkZChEaWdpdCBhLCBEaWdpdCBiLCBEaWdpdCYgY2FycnkpOwpAQCAtMTExLDE3ICsxMTMsMTcg
QEAgcHJpdmF0ZToKICAgICBzdGF0aWMgRGlnaXQgZGlnaXREaXYoRGlnaXQgaGlnaCwgRGlnaXQg
bG93LCBEaWdpdCBkaXZpc29yLCBEaWdpdCYgcmVtYWluZGVyKTsKICAgICBzdGF0aWMgRGlnaXQg
ZGlnaXRQb3coRGlnaXQgYmFzZSwgRGlnaXQgZXhwb25lbnQpOwogCi0gICAgc3RhdGljIFN0cmlu
ZyB0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiwgSlNCaWdJbnQqLCBpbnQgcmFkaXgpOworICAg
IHN0YXRpYyBTdHJpbmcgdG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYsIEpTQmlnSW50KiwgdW5z
aWduZWQgcmFkaXgpOwogCiAgICAgYm9vbCBpc1plcm8oKTsKIAogICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBDaGFyVHlwZT4KLSAgICBzdGF0aWMgSlNCaWdJbnQqIHBhcnNlSW50KEV4ZWNTdGF0ZSos
IENoYXJUeXBlKiAgZGF0YSwgaW50IGxlbmd0aCk7CisgICAgc3RhdGljIEpTQmlnSW50KiBwYXJz
ZUludChFeGVjU3RhdGUqLCBDaGFyVHlwZSogIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCk7CiAKICAg
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci0gICAgc3RhdGljIEpTQmlnSW50KiBwYXJz
ZUludChFeGVjU3RhdGUqLCBWTSYsIENoYXJUeXBlKiBkYXRhLCBpbnQgbGVuZ3RoLCBpbnQgc3Rh
cnRJbmRleCwgaW50IHJhZGl4LCBib29sIGFsbG93RW1wdHlTdHJpbmcgPSB0cnVlKTsKKyAgICBz
dGF0aWMgSlNCaWdJbnQqIHBhcnNlSW50KEV4ZWNTdGF0ZSosIFZNJiwgQ2hhclR5cGUqIGRhdGEs
IHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQgc3RhcnRJbmRleCwgdW5zaWduZWQgcmFkaXgsIGJv
b2wgYWxsb3dFbXB0eVN0cmluZyA9IHRydWUpOwogCi0gICAgc3RhdGljIEpTQmlnSW50KiBhbGxv
Y2F0ZUZvcihFeGVjU3RhdGUqLCBWTSYsIGludCByYWRpeCwgaW50IGNoYXJjb3VudCk7CisgICAg
c3RhdGljIEpTQmlnSW50KiBhbGxvY2F0ZUZvcihFeGVjU3RhdGUqLCBWTSYsIHVuc2lnbmVkIHJh
ZGl4LCB1bnNpZ25lZCBjaGFyY291bnQpOwogCiAgICAgSlNCaWdJbnQqIHJpZ2h0VHJpbShWTSYp
OwogCkBAIC0xMzAsMTAgKzEzMiwxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBzaXplX3Qgb2Zm
c2V0T2ZEYXRhKCk7CiAgICAgRGlnaXQqIGRhdGFTdG9yYWdlKCk7CiAKLSAgICBEaWdpdCBkaWdp
dChpbnQpOwotICAgIHZvaWQgc2V0RGlnaXQoaW50LCBEaWdpdCk7CisgICAgRGlnaXQgZGlnaXQo
dW5zaWduZWQpOworICAgIHZvaWQgc2V0RGlnaXQodW5zaWduZWQsIERpZ2l0KTsKICAgICAgICAg
Ci0gICAgaW50IG1fbGVuZ3RoOworICAgIHVuc2lnbmVkIG1fbGVuZ3RoOwogICAgIGJvb2wgbV9z
aWduOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3Bl
cmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCmlu
ZGV4IDEzNDlhZWMxNmE3YTgzYThhOGE1OTBhY2VmZDU0YjE3OWM5N2JmMWYuLjgxZDdlZWMzYTFj
MWJiNTcwYWU4NTNlZjZlNzIxZjk2ODc5MmVhYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcGVyYXRpb25zLmgKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkNhbGxG
cmFtZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKKyNpbmNsdWRlICJKU0JpZ0lu
dC5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0yNTYs
NiArMjU3LDI5IEBAIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc0FkZChDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgSlNWYWx1ZSB2MSwgSlNWYWx1ZSB2MikKICAgICByZXR1cm4ganNBZGRTbG93Q2FzZShj
YWxsRnJhbWUsIHYxLCB2Mik7CiB9CiAKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc011bChFeGVj
U3RhdGUqIHN0YXRlLCBKU1ZhbHVlIHYxLCBKU1ZhbHVlIHYyKQoreworICAgIFZNJiB2bSA9IHN0
YXRlLT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKwor
ICAgIEpTVmFsdWUgbGVmdE51bWJlciA9IHYxLnRvUHJpbWl0aXZlKHN0YXRlLCBQcmVmZXJOdW1i
ZXIpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgSlNWYWx1ZSBy
aWdodE51bWJlciA9IHYyLnRvUHJpbWl0aXZlKHN0YXRlLCBQcmVmZXJOdW1iZXIpOworICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBpZiAobGVmdE51bWJlci5pc0Jp
Z0ludCgpIHx8IHJpZ2h0TnVtYmVyLmlzQmlnSW50KCkpIHsKKyAgICAgICAgaWYgKGxlZnROdW1i
ZXIuaXNCaWdJbnQoKSAmJiByaWdodE51bWJlci5pc0JpZ0ludCgpKQorICAgICAgICAgICAgcmV0
dXJuIEpTQmlnSW50OjptdWx0aXBseShzdGF0ZSwgYXNCaWdJbnQobGVmdE51bWJlciksIGFzQmln
SW50KHJpZ2h0TnVtYmVyKSk7CisKKyAgICAgICAgdGhyb3dUeXBlRXJyb3Ioc3RhdGUsIHNjb3Bl
LCBBU0NJSUxpdGVyYWwoIkludmFsaWQgbWl4IG9mIEJpZ0ludCBhbmQgb3RoZXIgdHlwZSBpbiBt
dWx0aXBsaWNhdGlvbi4iKSk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgZG91
YmxlIGxlZnRWYWx1ZSA9ICBsZWZ0TnVtYmVyLnRvTnVtYmVyKHN0YXRlKTsKKyAgICBkb3VibGUg
cmlnaHRWYWx1ZSA9ICByaWdodE51bWJlci50b051bWJlcihzdGF0ZSk7CisgICAgcmV0dXJuIGpz
TnVtYmVyKGxlZnRWYWx1ZSAqIHJpZ2h0VmFsdWUpOworfQorCiBpbmxpbmUgYm9vbCBzY3JpYmJs
ZUZyZWVDZWxscygpCiB7CiAgICAgcmV0dXJuICFBU1NFUlRfRElTQUJMRUQgfHwgT3B0aW9uczo6
c2NyaWJibGVGcmVlQ2VsbHMoKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDlmNmJjNjY0ODAxZDFlNmYzYWQyZTk4OWU0NjNlOGNmM2My
MGU1My4uMWIzN2EyZjI0M2NiNmJkMDkwZWVmNGMyZGM2MGNmZDQxZGQyN2Q1YSAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OSBAQAorMjAxOC0wMy0zMSAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+CisKKyAg
ICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9ydCB0byAiKiIgb3BlcmF0aW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM3MjEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJpZ0lu
dFRlc3RzLnlhbWw6CisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVsLWppdC5qczogQWRkZWQu
CisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS1wcmVjZWRlbmNlLmpz
OiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLmpzOiBB
ZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWwtdHlwZS1lcnJvci5qczogQWRkZWQu
CisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVsLXdyYXBwZWQtdmFsdWUuanM6IEFkZGVkLgor
ICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11bHRpcGxpY2F0aW9uLmpzOiBBZGRlZC4KKyAgICAg
ICAgKiBzdHJlc3MvYmlnLWludC1tdWx0aXBseS1tZW1vcnktc3RyZXNzLmpzOiBBZGRlZC4KKwog
MjAxOC0wMy0zMCAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAgICAg
V2ViQXNzZW1ibHk6IHN1cHBvcnQgRGF0YVZpZXcgY29tcGlsYXRpb24KZGlmZiAtLWdpdCBhL0pT
VGVzdHMvYmlnSW50VGVzdHMueWFtbCBiL0pTVGVzdHMvYmlnSW50VGVzdHMueWFtbAppbmRleCA3
YWUyMmNiMWJiMmFmZjYyY2M0ZGRmNDk2Mjk5Zjk2YTA3NDRmN2FlLi5lOTQ3ZGMyOTQ1YWRmOTBk
MDc3ZmM4MzdkNTU4M2ExZDA4ZTNiYzkxIDEwMDY0NAotLS0gYS9KU1Rlc3RzL2JpZ0ludFRlc3Rz
LnlhbWwKKysrIGIvSlNUZXN0cy9iaWdJbnRUZXN0cy55YW1sCkBAIC05NywzICs5NywyNCBAQAog
LSBwYXRoOiBzdHJlc3MvYmlnLWludC10by1zdHJpbmcuanMKICAgY21kOiBydW5CaWdJbnRFbmFi
bGVkCiAKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsLWppdC5qcworICBjbWQ6IHJ1bkJpZ0lu
dEVuYWJsZWQKKworLSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLXByZWNl
ZGVuY2UuanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1p
bnQtbXVsLXRvLXByaW1pdGl2ZS5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKworLSBwYXRo
OiBzdHJlc3MvYmlnLWludC1tdWwtdHlwZS1lcnJvci5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJs
ZWQKKworLSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWwtd3JhcHBlZC12YWx1ZS5qcworICBjbWQ6
IHJ1bkJpZ0ludEVuYWJsZWQKKworLSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWx0aXBsaWNhdGlv
bi5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKworLSBwYXRoOiBzdHJlc3MvYmlnLWludC1t
dWx0aXBseS1tZW1vcnktc3RyZXNzLmpzCisgIGNtZDogcnVuQmlnSW50RW5hYmxlZAorCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC1qaXQuanMgYi9KU1Rlc3RzL3N0cmVz
cy9iaWctaW50LW11bC1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGNiZWRlMzE4NzVkMjFmYjM4MjJlN2Yy
OGZmMDViY2FjYTFjOWY3YQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1p
bnQtbXVsLWppdC5qcwpAQCAtMCwwICsxLDE5IEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCits
ZXQgYXNzZXJ0ID0geworICAgIHNhbWVWYWx1ZTogZnVuY3Rpb24oaSwgZSwgbSkgeworICAgICAg
ICBpZiAoaSAhPT0gZSkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtKTsKKyAgICB9Cit9
CisKK2Z1bmN0aW9uIGJpZ0ludE11bCh4LCB5KSB7CisgICAgcmV0dXJuIHggKiB5OworfQorbm9J
bmxpbmUoYmlnSW50TXVsKTsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKSB7Cisg
ICAgbGV0IHIgPSBiaWdJbnRNdWwoM24sIDEwbik7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShyLCAz
MG4sIDNuICsgIiAqICIgKyAxMG4gKyAiID0gIiArIHIpOworfQorCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUtcHJlY2VkZW5jZS5qcyBiL0pTVGVz
dHMvc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS1wcmVjZWRlbmNlLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjcxNDlhMTk2ODdlMTRhZWU3MDEzYjM2ODY0NDkyZTY4MmJkNWU3NWUKLS0tIC9kZXYvbnVs
bAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUtcHJlY2VkZW5j
ZS5qcwpAQCAtMCwwICsxLDM5IEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCithc3NlcnQgPSB7
CisgICAgc2FtZVZhbHVlOiBmdW5jdGlvbiAoaW5wdXQsIGV4cGVjdGVkLCBtZXNzYWdlKSB7Cisg
ICAgICAgIGlmIChpbnB1dCAhPT0gZXhwZWN0ZWQpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IobWVzc2FnZSk7CisgICAgfQorfTsKKworZnVuY3Rpb24gdGVzdE11bCh4LCB5LCB6LCBtZXNz
YWdlKSB7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh4ICogeSwgeiwgbWVzc2FnZSk7CisgICAgYXNz
ZXJ0LnNhbWVWYWx1ZSh5ICogeCwgeiwgbWVzc2FnZSk7Cit9CisKK3Rlc3RNdWwoT2JqZWN0KDJu
KSwgMW4sIDJuLCAiVG9QcmltaXRpdmU6IHVuYm94IG9iamVjdCB3aXRoIGludGVybmFsIHNsb3Qi
KTsKKworbGV0IG8gPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9uKCkgewor
ICAgICAgICByZXR1cm4gMm47CisgICAgfSwKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiU2hvdWxkIG5ldmVyIGV4ZWN1dGUgaXQiKTsKKyAgICB9
LAorICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigi
U2hvdWxkIG5ldmVyIGV4ZWN1dGUgaXQiKTsKKyAgICB9Cit9OwordGVzdE11bChvLCAxbiwgMm4s
ICJUb1ByaW1pdGl2ZTogQEB0b1ByaW1pdGl2ZSIpOworCitvID0geworICAgIHZhbHVlT2Y6IGZ1
bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gMm47CisgICAgfSwKKyAgICB0b1N0cmluZzogZnVu
Y3Rpb24gKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBleGVjdXRl
IGl0Iik7CisgICAgfQorfTsKK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9QcmltaXRpdmU6IHZhbHVl
T2YiKTsKKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0
aXZlLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY0MmUyZThlMjkxMTllMjdkMTM1NzdjYjU3YWMyZjk3MzUwZmU2Y2MKLS0tIC9kZXYv
bnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUuanMKQEAg
LTAsMCArMSwzNSBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworZnVuY3Rpb24gYXNzZXJ0KGEp
IHsKKyAgICBpZiAoIWEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGFzc2VydGlvbiIp
OworfQorCithc3NlcnQuc2FtZVZhbHVlID0gZnVuY3Rpb24gKGlucHV0LCBleHBlY3RlZCwgbWVz
c2FnZSkgeworICAgIGlmIChpbnB1dCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcihtZXNzYWdlKTsKK30KKworZnVuY3Rpb24gdGVzdE11bCh4LCB5LCB6KSB7CisgICAgYXNz
ZXJ0LnNhbWVWYWx1ZSh4ICogeSwgeiwgeCArICIgKiAiICsgeSArICIgPSAiICsgeik7CisgICAg
YXNzZXJ0LnNhbWVWYWx1ZSh5ICogeCwgeiwgeSArICIgKiAiICsgeCArICIgPSAiICsgeik7Cit9
CisKK2xldCBvID0geworICAgIFtTeW1ib2wudG9QcmltaXRpdmVdOiBmdW5jdGlvbiAoKSB7IHJl
dHVybiAzMDAwMDAwMDAwMDAwMDBuOyB9Cit9CisKK3Rlc3RNdWwoNTAwMDAwMDAwMDAwNDM4biwg
bywgMTUwMDAwMDAwMDAwMTMxNDAwMDAwMDAwMDAwMDAwbik7CisKK28udmFsdWVPZiA9IGZ1bmN0
aW9uICgpIHsKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBleGVjdXRlIGl0Iik7
Cit9OworCit0ZXN0TXVsKDcwMDAwMDAwMDAwMDQzOG4sIG8sIDIxMDAwMDAwMDAwMDEzMTQwMDAw
MDAwMDAwMDAwMG4pOworCitvLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkgeworICAgIHRocm93IG5l
dyBFcnJvcigiU2hvdWxkIG5ldmVyIGV4ZWN1dGUgaXQiKTsKK307CisKK3Rlc3RNdWwoNzAwMDAw
MDAwMDAwNDM4biwgbywgMjEwMDAwMDAwMDAwMTMxNDAwMDAwMDAwMDAwMDAwbik7CisKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXR5cGUtZXJyb3IuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9iaWctaW50LW11bC10eXBlLWVycm9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1MTc4NDU3ZmI2
MjM3NTdmZDBlNzczNTc3ZGMzOTZmMmYzMGZlNjAKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3N0cmVzcy9iaWctaW50LW11bC10eXBlLWVycm9yLmpzCkBAIC0wLDAgKzEsMTA2IEBACisvL0Ag
cnVuQmlnSW50RW5hYmxlZAorCitmdW5jdGlvbiBhc3NlcnQoYSwgbWVzc2FnZSkgeworICAgIGlm
ICghYSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOworfQorCitmdW5jdGlvbiBh
c3NlcnRUaHJvd1R5cGVFcnJvcihhLCBiLCBtZXNzYWdlKSB7CisgICAgdHJ5IHsKKyAgICAgICAg
bGV0IG4gPSBhICogYjsKKyAgICAgICAgYXNzZXJ0KGZhbHNlLCBtZXNzYWdlICsgIjogU2hvdWxk
IHRocm93IFR5cGVFcnJvciwgYnV0IGV4ZWN1dGVkIHdpdGhvdXQgZXhjZXB0aW9uIik7CisgICAg
fSBjYXRjaCAoZSkgeworICAgICAgICBhc3NlcnQoZSBpbnN0YW5jZW9mIFR5cGVFcnJvciwgbWVz
c2FnZSArICI6IGV4cGVjdGVkIFR5cGVFcnJvciwgZ290OiAiICsgZSk7CisgICAgfQorfQorCith
c3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sICJmb28iLCAiQmlnSW50ICogU3RyaW5nIik7Cithc3Nl
cnRUaHJvd1R5cGVFcnJvcigiYmFyIiwgMTg3NTczODI5ODQ4MjFuLCAiU3RyaW5nICogQmlnSW50
Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIFN5bWJvbCgiZm9vIiksICJCaWdJbnQgKiBT
eW1ib2wiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKFN5bWJvbCgiYmFyIiksIDE4NzU3MzgyOTg0
ODIxbiwgIlN5bWJvbCAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCAzMzIw
LCAiQmlnSW50ICogSW50MzIiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMzMjU2LCAxODc1NzM4
Mjk4NDgyMW4sICJJbnQzMiAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCAw
LjU0MywgIkJpZ0ludCAqIERvdWJsZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMjMwLjE5Mjkz
LCAxODc1NzM4Mjk4NDgyMW4sICJEb3VibGUgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVy
cm9yKDMwbiwgTmFOLCAiQmlnSW50ICogTmFOIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihOYU4s
IDE4NzU3MzgyOTg0ODIxbiwgIk5hTiAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3Io
MzBuLCBOYU4sICJCaWdJbnQgKiBOYU4iKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKE5hTiwgMTg3
NTczODI5ODQ4MjFuLCAiTmFOICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4s
ICtJbmZpbml0eSwgIkJpZ0ludCAqIE5hTiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoK0luZmlu
aXR5LCAxODc1NzM4Mjk4NDgyMW4sICJOYU4gKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVy
cm9yKDMwbiwgLUluZmluaXR5LCAiQmlnSW50ICogLUluZmluaXR5Iik7Cithc3NlcnRUaHJvd1R5
cGVFcnJvcigtSW5maW5pdHksIDE4NzU3MzgyOTg0ODIxbiwgIi1JbmZpbml0eSAqIEJpZ0ludCIp
OworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBudWxsLCAiQmlnSW50ICogbnVsbCIpOworYXNz
ZXJ0VGhyb3dUeXBlRXJyb3IobnVsbCwgMTg3NTczODI5ODQ4MjFuLCAibnVsbCAqIEJpZ0ludCIp
OworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCB1bmRlZmluZWQsICJCaWdJbnQgKiB1bmRlZmlu
ZWQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKHVuZGVmaW5lZCwgMTg3NTczODI5ODQ4MjFuLCAi
dW5kZWZpbmVkICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIHRydWUsICJC
aWdJbnQgKiB0cnVlIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcih0cnVlLCAxODc1NzM4Mjk4NDgy
MW4sICJ0cnVlICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIGZhbHNlLCAi
QmlnSW50ICogZmFsc2UiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKGZhbHNlLCAxODc1NzM4Mjk4
NDgyMW4sICJmYWxzZSAqIEJpZ0ludCIpOworCisvLyBFcnJvciB3aGVuIHJldHVybmluZyBmcm9t
IG9iamVjdAorCitsZXQgbyA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7IHJldHVybiBT
eW1ib2woIkZvbyIpOyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJ
bnQgKiBPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgU3ltYm9sIik7Cithc3NlcnRUaHJvd1R5cGVF
cnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgU3ltYm9s
ICogQmlnSW50Iik7CisKK28gPSB7CisgICAgdmFsdWVPZjogZnVuY3Rpb24gKCkgeyByZXR1cm4g
MzMyNTY7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9i
amVjdC52YWx1ZU9mIHJldHVybmluZyBJbnQzMiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3Iobywg
MTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LnZhbHVlT2YgcmV0dXJuaW5nIEludDMyICogQmlnSW50
Iik7CisKK28gPSB7CisgICAgdmFsdWVPZjogZnVuY3Rpb24gKCkgeyByZXR1cm4gMC40NTM7IH0K
K307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC52YWx1
ZU9mIHJldHVybmluZyBEb3VibGUiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3Mzgy
OTg0ODIxbiwgIk9iamVjdC52YWx1ZU9mIHJldHVybmluZyBEb3VibGUgKiBCaWdJbnQiKTsKKwor
byA9IHsKKyAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgeyByZXR1cm4gU3ltYm9sKCJGb28iKTsg
fQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LnRv
U3RyaW5nIHJldHVybmluZyBTeW1ib2wiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3
MzgyOTg0ODIxbiwgIk9iamVjdC50b1N0cmluZyByZXR1cm5pbmcgU3ltYm9sICogQmlnSW50Iik7
CisKK28gPSB7CisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDMzMjU2OyB9Cit9
OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QudG9TdHJp
bmcgcmV0dXJuaW5nIEludDMyIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4
NDgyMW4sICJPYmplY3QudG9TdHJpbmcgcmV0dXJuaW5nIEludDMyICogQmlnSW50Iik7CisKK28g
PSB7CisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDAuNDUzOyB9Cit9OworCith
c3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QudG9TdHJpbmcgcmV0
dXJuaW5nIERvdWJsZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFu
LCAiT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBEb3VibGUgKiBCaWdJbnQiKTsKKworbyA9IHsK
KyAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24gKCkgeyByZXR1cm4gU3ltYm9sKCJG
b28iKTsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2Jq
ZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5nIFN5bWJvbCIpOworYXNzZXJ0VGhyb3dUeXBlRXJy
b3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5nIFN5
bWJvbCAqIEJpZ0ludCIpOworCitvID0geworICAgIFtTeW1ib2wudG9QcmltaXRpdmVdOiBmdW5j
dGlvbiAoKSB7IHJldHVybiAzMzI1NjsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBu
LCBvLCAiQmlnSW50ICogT2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5nIEludDMyIik7Cith
c3NlcnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QuQEB0b1ByaW1p
dGl2ZSByZXR1cm5pbmcgSW50MzIgKiBCaWdJbnQiKTsKKworbyA9IHsKKyAgICBbU3ltYm9sLnRv
UHJpbWl0aXZlXTogZnVuY3Rpb24gKCkgeyByZXR1cm4gMC40NTM7IH0KK307CisKK2Fzc2VydFRo
cm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC5AQHRvUHJpbWl0aXZlIHJldHVy
bmluZyBEb3VibGUiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwg
Ik9iamVjdC5AQHRvUHJpbWl0aXZlIHJldHVybmluZyBEb3VibGUgKiBCaWdJbnQiKTsKKwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtd3JhcHBlZC12YWx1ZS5qcyBiL0pT
VGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXdyYXBwZWQtdmFsdWUuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY3
M2Q4YTYwMzAyZmFmNjZkZmE2Y2ZhMWViMTM3MGVjOGMyMmMzYQotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXdyYXBwZWQtdmFsdWUuanMKQEAgLTAsMCArMSwz
NyBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworYXNzZXJ0ID0geworICAgIHNhbWVWYWx1ZTog
ZnVuY3Rpb24gKGlucHV0LCBleHBlY3RlZCwgbWVzc2FnZSkgeworICAgICAgICBpZiAoaW5wdXQg
IT09IGV4cGVjdGVkKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOworICAg
IH0KK307CisKK2Z1bmN0aW9uIHRlc3RNdWwoeCwgeSwgeiwgbWVzc2FnZSkgeworICAgIGFzc2Vy
dC5zYW1lVmFsdWUoeCAqIHksIHosIG1lc3NhZ2UpOworICAgIGFzc2VydC5zYW1lVmFsdWUoeSAq
IHgsIHosIG1lc3NhZ2UpOworfQorCit0ZXN0TXVsKE9iamVjdCgybiksIDFuLCAybiwgIlRvUHJp
bWl0aXZlOiB1bmJveCBvYmplY3Qgd2l0aCBpbnRlcm5hbCBzbG90Iik7CisKK2xldCBvID0gewor
ICAgIFtTeW1ib2wudG9QcmltaXRpdmVdOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIDJu
OworICAgIH0KK307Cit0ZXN0TXVsKG8sIDFuLCAybiwgIlRvUHJpbWl0aXZlOiBAQHRvUHJpbWl0
aXZlIik7CisKK28gPSB7CisgICAgdmFsdWVPZjogZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVy
biAybjsKKyAgICB9Cit9OwordGVzdE11bChvLCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogdmFsdWVP
ZiIpOworCitvID0geworICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJu
IDJuOworICAgIH0KK30KK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9QcmltaXRpdmU6IHRvU3RyaW5n
Iik7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbGljYXRpb24u
anMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bHRpcGxpY2F0aW9uLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNlY2Q2MzZkN2Y4OWEyNGFjZmJiODFkNzJkNzU1YzIyOGZlNmZhZDkKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bHRpcGxpY2F0aW9uLmpzCkBAIC0wLDAgKzEs
ODMgQEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKKy8vIENvcHlyaWdodCAoQykgMjAxNyBSb2Jp
biBUZW1wbGV0b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2Fzc2Vy
dCA9IHsKKyAgICBzYW1lVmFsdWU6IGZ1bmN0aW9uIChpbnB1dCwgZXhwZWN0ZWQsIG1lc3NhZ2Up
IHsKKyAgICBpZiAoaW5wdXQgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
bWVzc2FnZSk7CisgICAgfQorfTsKKworZnVuY3Rpb24gdGVzdE11bCh4LCB5LCB6KSB7CisgICAg
YXNzZXJ0LnNhbWVWYWx1ZSh4ICogeSwgeiwgeCArICIgKiAiICsgeSArICIgPSAiICsgeik7Cisg
ICAgYXNzZXJ0LnNhbWVWYWx1ZSh5ICogeCwgeiwgeSArICIgKiAiICsgeCArICIgPSAiICsgeik7
Cit9CisKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHhGRURDQkE5ODc2NTQzMjEwbiwg
MHhGREJBQzA5N0M4REM1QUNDREVFQzZDRDdBNDRBNDEwMG4pOwordGVzdE11bCgweEZFRENCQTk4
NzY1NDMyMTBuLCAweEZFRENCQTk4biwgMHhGREJBQzA5NzUzMEVDQTg2NTQxRDU5ODBuKTsKK3Rl
c3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHgxMjM0biwgMHgxMjFGNDlGNDlGNDlGNDlGNEI0
MG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweDNuLCAweDJGQzk2MkZDOTYyRkM5
NjMwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4Mm4sIDB4MUZEQjk3NTMwRUNB
ODY0MjBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHgxbiwgMHhGRURDQkE5ODc2
NTQzMjEwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4MG4sIDB4MG4pOwordGVz
dE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCBCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTE4MzY0NzU4
NTQ0NDkzMDY0NzIwIikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCBCaWdJbnQoIi0y
IiksIEJpZ0ludCgiLTM2NzI5NTE3MDg4OTg2MTI5NDQwIikpOwordGVzdE11bCgweEZFRENCQTk4
NzY1NDMyMTBuLCBCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTU1MDk0Mjc1NjMzNDc5MTk0MTYwIikp
OwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCBCaWdJbnQoIi00NjYwIiksIEJpZ0ludCgi
LTg1NTc5Nzc0ODE3MzM3NjgxNTk1MjAwIikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBu
LCBCaWdJbnQoIi00Mjc1ODc4NTUxIiksIEJpZ0ludCgiLTc4NTI1NDc3MTU0NjkxODc0NjA0NTAy
ODIwNzIwIikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweEZFRENCQTk4NzY1NDMy
MEZuLCAweEZEQkFDMDk3QzhEQzVBQ0FFMTMyRjdBNkI3QTFEQ0Uxbik7Cit0ZXN0TXVsKDB4RkVE
Q0JBOTg3NjU0MzIwRm4sIDB4RkVEQ0JBOTduLCAweEZEQkFDMDk2NTQzMjBGRUNERUVDNkNEOW4p
OwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweDNuLCAweDJGQzk2MkZDOTYyRkM5NjJE
bik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4Mm4sIDB4MUZEQjk3NTMwRUNBODY0
MUVuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgMHgxbiwgMHhGRURDQkE5ODc2NTQz
MjBGbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4MG4sIDB4MG4pOwordGVzdE11
bCgweEZFRENCQTk4NzY1NDMyMEZuLCBCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0
NDkzMDY0NzE5IikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCBCaWdJbnQoIi0yIiks
IEJpZ0ludCgiLTM2NzI5NTE3MDg4OTg2MTI5NDM4IikpOwordGVzdE11bCgweEZFRENCQTk4NzY1
NDMyMEZuLCBCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTU1MDk0Mjc1NjMzNDc5MTk0MTU3IikpOwor
dGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCBCaWdJbnQoIi00Mjc1ODc4NTUxIiksIEJpZ0lu
dCgiLTc4NTI1NDc3MTU0NjkxODc0NjAwMjI2OTQyMTY5IikpOwordGVzdE11bCgweEZFRENCQTk4
NzY1NDMyMEZuLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpLCBCaWdJbnQoIi0zMzcy
NjQzNTYzOTc1MzEwMjg5NzY2MDgyODk2MzM2MTU2MTM2ODAiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JB
OThuLCAweEZFRENCQTk4biwgMHhGREJBQzA5NkRENDEzQTQwbik7Cit0ZXN0TXVsKDB4RkVEQ0JB
OThuLCAweDEyMzRuLCAweDEyMUY0OUY0OTZFMG4pOwordGVzdE11bCgweEZFRENCQTk4biwgMHgz
biwgMHgyRkM5NjJGQzhuKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIDB4Mm4sIDB4MUZEQjk3NTMw
bik7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCAweDFuLCAweEZFRENCQTk4bik7Cit0ZXN0TXVsKDB4
RkVEQ0JBOThuLCAweDBuLCAweDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0ludCgiLTEi
KSwgQmlnSW50KCItNDI3NTg3ODU1MiIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0ludCgi
LTIiKSwgQmlnSW50KCItODU1MTc1NzEwNCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0lu
dCgiLTMiKSwgQmlnSW50KCItMTI4Mjc2MzU2NTYiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCBC
aWdJbnQoIi00Mjc1ODc4NTUxIiksIEJpZ0ludCgiLTE4MjgzMTM3Mzg3MTc3NzM4MTUyIikpOwor
dGVzdE11bCgweEZFRENCQTk4biwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgQmln
SW50KCItNzg1MjU0NzcxNzMwNTY2MzMxNDg5OTU4ODU0NDAiKSk7Cit0ZXN0TXVsKDB4M24sIDB4
M24sIDB4OW4pOwordGVzdE11bCgweDNuLCAweDJuLCAweDZuKTsKK3Rlc3RNdWwoMHgzbiwgMHgx
biwgMHgzbik7Cit0ZXN0TXVsKDB4M24sIDB4MG4sIDB4MG4pOwordGVzdE11bCgweDNuLCBCaWdJ
bnQoIi0xIiksIEJpZ0ludCgiLTMiKSk7Cit0ZXN0TXVsKDB4M24sIEJpZ0ludCgiLTIiKSwgQmln
SW50KCItNiIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItMyIpLCBCaWdJbnQoIi05IikpOwor
dGVzdE11bCgweDNuLCBCaWdJbnQoIi00NjYwIiksIEJpZ0ludCgiLTEzOTgwIikpOwordGVzdE11
bCgweDNuLCBCaWdJbnQoIi00Mjc1ODc4NTUyIiksIEJpZ0ludCgiLTEyODI3NjM1NjU2IikpOwor
dGVzdE11bCgweDNuLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpLCBCaWdJbnQoIi01
NTA5NDI3NTYzMzQ3OTE5NDE2MCIpKTsKK3Rlc3RNdWwoMHgwbiwgMHgwbiwgMHgwbik7Cit0ZXN0
TXVsKDB4MG4sIEJpZ0ludCgiLTEiKSwgMHgwbik7Cit0ZXN0TXVsKDB4MG4sIEJpZ0ludCgiLTIi
KSwgMHgwbik7Cit0ZXN0TXVsKDB4MG4sIEJpZ0ludCgiLTMiKSwgMHgwbik7Cit0ZXN0TXVsKDB4
MG4sIEJpZ0ludCgiLTQyNzU4Nzg1NTEiKSwgMHgwbik7Cit0ZXN0TXVsKDB4MG4sIEJpZ0ludCgi
LTE4MzY0NzU4NTQ0NDkzMDY0NzE5IiksIDB4MG4pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJp
Z0ludCgiLTEiKSwgMHgxbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMiIpLCAw
eDJuKTsKK3Rlc3RNdWwoQmlnSW50KCItMSIpLCBCaWdJbnQoIi0zIiksIDB4M24pOwordGVzdE11
bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTQ2NjAiKSwgMHgxMjM0bik7Cit0ZXN0TXVsKEJpZ0lu
dCgiLTEiKSwgQmlnSW50KCItNDI3NTg3ODU1MSIpLCAweEZFRENCQTk3bik7Cit0ZXN0TXVsKEJp
Z0ludCgiLTEiKSwgQmlnSW50KCItNDI3NTg3ODU1MiIpLCAweEZFRENCQTk4bik7Cit0ZXN0TXVs
KEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MTkiKSwgMHhGRURDQkE5
ODc2NTQzMjBGbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0
OTMwNjQ3MjAiKSwgMHhGRURDQkE5ODc2NTQzMjEwbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwg
QmlnSW50KCItMyIpLCAweDluKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi00NjYw
IiksIDB4MzY5Q24pOwordGVzdE11bChCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTEi
KSwgMHgyRkM5NjJGQzVuKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi00Mjc1ODc4
NTUyIiksIDB4MkZDOTYyRkM4bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwgQmlnSW50KCItMTgz
NjQ3NTg1NDQ0OTMwNjQ3MTkiKSwgMHgyRkM5NjJGQzk2MkZDOTYyRG4pOwordGVzdE11bChCaWdJ
bnQoIi0zIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIDB4MkZDOTYyRkM5NjJG
Qzk2MzBuKTsKK3Rlc3RNdWwoQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgQmlnSW50
KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgMHhGREJBQzA5N0M4REM1QUNDREVFQzZDRDdBNDRB
NDEwMG4pOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bHRpcGx5LW1l
bW9yeS1zdHJlc3MuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bHRpcGx5LW1lbW9yeS1z
dHJlc3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFiYWE3ZTI4ZjlhZWU2NWQyMWMwZDM2ZjYzZGY2ODAyM2I5
Yzg5NwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbHkt
bWVtb3J5LXN0cmVzcy5qcwpAQCAtMCwwICsxLDE1IEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAor
CitmdW5jdGlvbiBhc3NlcnQoYSkgeworICAgIGlmICghYSkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJCYWQgYXNzZXJ0aW9uIik7Cit9CisKK2xldCBhID0gMG47CitsZXQgYiA9IDFuOworZm9y
IChsZXQgaSA9IDA7IGkgPCAxMDAwMDAwOyBpKyspIHsKKyAgICBhID0gYiAqIDMwbjsKK30KKwor
YXNzZXJ0KGEgPT09IDMwbik7CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338110</attachid>
            <date>2018-04-17 07:36:02 -0700</date>
            <delta_ts>2018-04-26 20:30:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183721-20180417113549.patch</filename>
            <type>text/plain</type>
            <size>45325</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
ZjFkMzhhOWJmMGRjOTYxNjEzMzNlODQ4MGE1NWVlM2ZmOTg0NTAyLi44N2NmNjQzYjBlMmY0MzEx
YzAwMjc2ZWFiMzM4YWI4MzM5OTQwNGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MiBAQAorMjAxOC0wNC0xNyAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgIioiIG9w
ZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgzNzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkZWQgQmlnSW50IHN1cHBvcnQgaW50byB0aW1lcyBiaW5hcnkgb3BlcmF0b3IgaW50byBMTElu
dCBhbmQgb24KKyAgICAgICAgSklUT3BlcmF0aW9ucyBwcm9maWxlZE11bCBhbmQgdW5wcm9maWxl
ZE11bC4gV2UgYXJlIGFsc28gcmVwbGFjaW5nIGFsbAorICAgICAgICB1c2VzIG9mIGludCB0byB1
bnNpZ25lZCB3aGVuIHRoZXJlIGlzIG5vIG5lZ2F0aXZlIHZhbHVlcyBmb3IKKyAgICAgICAgdmFy
aWFibGVzLgorCisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6Cisg
ICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9u
U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNCaWdJbnQuY3BwOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6SlNCaWdJbnQp
OgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6YWxsb2NhdGlvblNpemUpOgorICAgICAgICAoSlND
OjpKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojp0
b1N0cmluZyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjptdWx0aXBseSk6CisgICAgICAgIChK
U0M6OkpTQmlnSW50OjpkaWdpdERpdik6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjppbnRlcm5h
bE11bHRpcGx5QWRkKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6Om11bHRpcGx5QWNjdW11bGF0
ZSk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjplcXVhbHMpOgorICAgICAgICAoSlNDOjpKU0Jp
Z0ludDo6YWJzb2x1dGVEaXZTbWFsbCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpjYWxjdWxh
dGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OnRv
U3RyaW5nR2VuZXJpYyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpyaWdodFRyaW0pOgorICAg
ICAgICAoSlNDOjpKU0JpZ0ludDo6YWxsb2NhdGVGb3IpOgorICAgICAgICAoSlNDOjpKU0JpZ0lu
dDo6cGFyc2VJbnQpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6ZGlnaXQpOgorICAgICAgICAo
SlNDOjpKU0JpZ0ludDo6c2V0RGlnaXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuaDoK
KyAgICAgICAgKiBydW50aW1lL09wZXJhdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6anNNdWwpOgor
CiAyMDE4LTA0LTE0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAg
RnVuY3Rpb24ucHJvdG90eXBlLmNhbGxlciBzaG91bGRuJ3QgcmV0dXJuIGdlbmVyYXRvciBib2Rp
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xk
aW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRp
bmdQaGFzZS5jcHAKaW5kZXggY2VlNjU2MjM0MzE3NzBmNGJmNDAyYWRhMGM4NzczNThmODAwYjY3
ZC4uZTQ2NTBhYzMwODBmNmI0MjBiNjM3OGI2NjVjZWQ1MjZiYjlkZTVhNyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAK
QEAgLTE0NiwxNCArMTQ2LDE0IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIEpTVmFs
dWUgY2hpbGQyQ29uc3RhbnQgPSBtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQyKCkubm9kZSgp
KS52YWx1ZSgpOwogCiAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBSZXZpc2l0IHRoaXMg
Y29uZGl0aW9uIHdoZW4gaW50cm9kdWNpbmcgQmlnSW50IHRvIEpTQy4KLSAgICAgICAgICAgICAg
ICAgICAgYXV0byBpc05vblN0cmluZ0NlbGxDb25zdGFudCA9IFtdIChKU1ZhbHVlIHZhbHVlKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgJiYgdmFsdWUuaXNDZWxsKCkg
JiYgIXZhbHVlLmlzU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gaXNOb25TdHJp
bmdPckJpZ0ludENlbGxDb25zdGFudCA9IFtdIChKU1ZhbHVlIHZhbHVlKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgJiYgdmFsdWUuaXNDZWxsKCkgJiYgIXZhbHVlLmlz
U3RyaW5nKCkgJiYgIXZhbHVlLmlzQmlnSW50KCk7CiAgICAgICAgICAgICAgICAgICAgIH07CiAK
LSAgICAgICAgICAgICAgICAgICAgaWYgKGlzTm9uU3RyaW5nQ2VsbENvbnN0YW50KGNoaWxkMUNv
bnN0YW50KSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNOb25TdHJpbmdPckJpZ0ludENl
bGxDb25zdGFudChjaGlsZDFDb25zdGFudCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIG5v
ZGUtPmNvbnZlcnRUb0NvbXBhcmVFcVB0cihtX2dyYXBoLmZyZWV6ZVN0cm9uZyhjaGlsZDFDb25z
dGFudC5hc0NlbGwoKSksIG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IGNoYW5nZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzTm9uU3Ry
aW5nQ2VsbENvbnN0YW50KGNoaWxkMkNvbnN0YW50KSkgeworICAgICAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKGlzTm9uU3RyaW5nT3JCaWdJbnRDZWxsQ29uc3RhbnQoY2hpbGQyQ29uc3RhbnQp
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9Db21wYXJlRXFQdHIo
bV9ncmFwaC5mcmVlemVTdHJvbmcoY2hpbGQyQ29uc3RhbnQuYXNDZWxsKCkpLCBub2RlLT5jaGls
ZDEoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAg
ICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5j
cHAKaW5kZXggMTY2MjMxYjNlYTA3Zjc0ZWNmYjI5MGFlMjViODRjOWE4MzhkMWEzZi4uYzgyODUy
ZjZmMWI3Y2NmNmVjOGFmNzBhMTk3MDVmMjQxNmIzMDM3NiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0yNTY5LDM0ICsyNTY5LDIzIEBAIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGROb09wdGltaXplKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwog
fQogCi1BTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSB1bnByb2ZpbGVkTXVsKFZN
JiB2bSwgRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyKQorQUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
dW5wcm9maWxlZE11bChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCiB7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRPcDEpOwogICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOwog
Ci0gICAgZG91YmxlIGEgPSBvcDEudG9OdW1iZXIoZXhlYyk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgc2NvcGUucmVsZWFzZSgpOwotICAg
IGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOdW1iZXIoYSAqIGIpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTXVsKGV4
ZWMsIG9wMSwgb3AyKSk7CiB9CiAKLUFMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IHByb2ZpbGVkTXVsKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUmIGFyaXRoUHJv
ZmlsZSwgYm9vbCBzaG91bGRPYnNlcnZlTEhTQW5kUkhTVHlwZXMgPSB0cnVlKQorQUxXQVlTX0lO
TElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcHJvZmlsZWRNdWwoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0
aFByb2ZpbGUmIGFyaXRoUHJvZmlsZSwgYm9vbCBzaG91bGRPYnNlcnZlTEhTQW5kUkhTVHlwZXMg
PSB0cnVlKQogewotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAg
ICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKICAgICBKU1ZhbHVl
IG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKIAogICAgIGlmIChzaG91bGRPYnNl
cnZlTEhTQW5kUkhTVHlwZXMpCiAgICAgICAgIGFyaXRoUHJvZmlsZS5vYnNlcnZlTEhTQW5kUkhT
KG9wMSwgb3AyKTsKIAotICAgIGRvdWJsZSBhID0gb3AxLnRvTnVtYmVyKGV4ZWMpOwotICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIGRvdWJsZSBi
ID0gb3AyLnRvTnVtYmVyKGV4ZWMpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVu
Y29kZWRKU1ZhbHVlKCkpOwotICAgIAotICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAq
IGIpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNNdWwoZXhlYywgb3AxLCBvcDIpOwogICAgIGFy
aXRoUHJvZmlsZS5vYnNlcnZlUmVzdWx0KHJlc3VsdCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZXN1bHQpOwogfQpAQCAtMjYwNiw3ICsyNTk1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIGUKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBleGVjKTsKIAotICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKCp2bSwgZXhl
YywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CisgICAgcmV0dXJuIHVucHJvZmlsZWRNdWwoZXhl
YywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVmFsdWVNdWxOb09wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUTXVsSUMq
KQpAQCAtMjYxNCw3ICsyNjAzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25WYWx1ZU11bE5vT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGUKICAgICBWTSog
dm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBl
eGVjKTsKIAotICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwg
ZW5jb2RlZE9wMik7CisgICAgcmV0dXJuIHVucHJvZmlsZWRNdWwoZXhlYywgZW5jb2RlZE9wMSwg
ZW5jb2RlZE9wMik7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VmFsdWVNdWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVE11bElDKiBtdWxJQykKQEAgLTI2MzEs
NyArMjYyMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVN
dWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKCiAgICAgZXhlYy0+Y29kZUJsb2Nr
KCktPmR1bXBNYXRoSUNTdGF0cygpOwogI2VuZGlmCiAKLSAgICByZXR1cm4gdW5wcm9maWxlZE11
bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOworICAgIHJldHVybiB1bnByb2Zp
bGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwogfQogCiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBB
cml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSkKQEAgLTI2NDAsNyArMjYyOSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZChFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKCiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhl
Yyk7CiAKICAgICBBU1NFUlQoYXJpdGhQcm9maWxlKTsKLSAgICByZXR1cm4gcHJvZmlsZWRNdWwo
KnZtLCBleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlKTsKKyAgICBy
ZXR1cm4gcHJvZmlsZWRNdWwoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJv
ZmlsZSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVN
dWxQcm9maWxlZE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUTXVsSUMqIG11bElDKQpAQCAtMjY1
OCw3ICsyNjQ3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1
ZU11bFByb2ZpbGVkT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLAogICAgIGV4ZWMtPmNvZGVCbG9j
aygpLT5kdW1wTWF0aElDU3RhdHMoKTsKICNlbmRpZgogCi0gICAgcmV0dXJuIHByb2ZpbGVkTXVs
KCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSwgZmFsc2Up
OworICAgIHJldHVybiBwcm9maWxlZE11bChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCAq
YXJpdGhQcm9maWxlLCBmYWxzZSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZE5vT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRNdWxJ
QyogbXVsSUMpCkBAIC0yNjY4LDcgKzI2NTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWROb09wdGltaXplKEV4ZWNTdGF0ZSogZXhlYwog
CiAgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBtdWxJQy0+YXJpdGhQcm9maWxlKCk7
CiAgICAgQVNTRVJUKGFyaXRoUHJvZmlsZSk7Ci0gICAgcmV0dXJuIHByb2ZpbGVkTXVsKCp2bSwg
ZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSk7CisgICAgcmV0dXJu
IHByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIsICphcml0aFByb2ZpbGUp
OwogfQogCiBBTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSB1bnByb2ZpbGVkTmVn
YXRlKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wZXJhbmQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAppbmRl
eCBlNmMxYTQ0ZDY3ZjQyMTQ1Mjg1ZmIwZDIwMDc0NWRiY2IzYTdkZjc3Li5kZjhmZTczZDRmMDdi
NjJlOTRlYjg1NDNlYTJiNzFlZjA0YWZhZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKQEAgLTQ4NiwxMCArNDg2LDI0IEBAIFNM
T1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9tdWwpCiAgICAgQkVHSU4oKTsKICAgICBKU1ZhbHVlIGxl
ZnQgPSBPUF9DKDIpLmpzVmFsdWUoKTsKICAgICBKU1ZhbHVlIHJpZ2h0ID0gT1BfQygzKS5qc1Zh
bHVlKCk7Ci0gICAgZG91YmxlIGEgPSBsZWZ0LnRvTnVtYmVyKGV4ZWMpOwotICAgIGlmIChVTkxJ
S0VMWSh0aHJvd1Njb3BlLmV4Y2VwdGlvbigpKSkKLSAgICAgICAgUkVUVVJOKEpTVmFsdWUoKSk7
Ci0gICAgZG91YmxlIGIgPSByaWdodC50b051bWJlcihleGVjKTsKKyAgICBKU1ZhbHVlIGxlZnRQ
cmltaXRpdmUgPSBsZWZ0LnRvUHJpbWl0aXZlKGV4ZWMsIFByZWZlck51bWJlcik7IAorICAgIENI
RUNLX0VYQ0VQVElPTigpOworICAgIEpTVmFsdWUgcmlnaHRQcmltaXRpdmUgPSByaWdodC50b1By
aW1pdGl2ZShleGVjLCBQcmVmZXJOdW1iZXIpOworICAgIENIRUNLX0VYQ0VQVElPTigpOworICAg
IAorICAgIGlmIChsZWZ0UHJpbWl0aXZlLmlzQmlnSW50KCkgfHwgcmlnaHRQcmltaXRpdmUuaXNC
aWdJbnQoKSkgeworICAgICAgICBpZiAobGVmdFByaW1pdGl2ZS5pc0JpZ0ludCgpICYmIHJpZ2h0
UHJpbWl0aXZlLmlzQmlnSW50KCkpIHsKKyAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0KEpTQmln
SW50OjptdWx0aXBseShleGVjLCBhc0JpZ0ludChsZWZ0UHJpbWl0aXZlKSwgYXNCaWdJbnQocmln
aHRQcmltaXRpdmUpKSk7CisgICAgICAgICAgICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVzdWx0
LCB7CisgICAgICAgICAgICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChl
eGVjLCBwYywgcmVzdWx0LCBsZWZ0LCByaWdodCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQorCisgICAgICAgIFRIUk9XKGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiSW52YWxpZCBtaXggb2Yg
QmlnSW50IGFuZCBvdGhlciB0eXBlIGluIG11bHRpcGxpY2F0aW9uLiIpKTsKKyAgICB9CisKKyAg
ICBkb3VibGUgYSA9IGxlZnRQcmltaXRpdmUudG9OdW1iZXIoZXhlYyk7CisgICAgZG91YmxlIGIg
PSByaWdodFByaW1pdGl2ZS50b051bWJlcihleGVjKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpz
TnVtYmVyKGEgKiBiKTsKICAgICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVzdWx0LCB7CiAgICAg
ICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwg
bGVmdCwgcmlnaHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCaWdJbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3Bw
CmluZGV4IGM1MWM4YjIxMGQ5M2MxN2Y5NjQwMGVmZTc3ZGFhNjcyYTI1OWE2ZDMuLjkxOTdiOWEx
YTQ0ZGM1MTEyNzAyZGE3OGExODg5ODA3OGYyZDY0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JpZ0ludC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBKU0JpZ0ludDo6
dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIEJh
c2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7CiB9CiAKLUpTQmlnSW50OjpK
U0JpZ0ludChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQgbGVuZ3RoKQorSlNCaWdJ
bnQ6OkpTQmlnSW50KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVuc2lnbmVkIGxlbmd0
aCkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKICAgICAsIG1fbGVuZ3RoKGxlbmd0aCkKIHsg
fQpAQCAtOTMsMTMgKzkzLDEzIEBAIEpTQmlnSW50KiBKU0JpZ0ludDo6Y3JlYXRlWmVybyhWTSYg
dm0pCiAgICAgcmV0dXJuIHplcm9CaWdJbnQ7CiB9CiAKLXNpemVfdCBKU0JpZ0ludDo6YWxsb2Nh
dGlvblNpemUoaW50IGxlbmd0aCkKK3NpemVfdCBKU0JpZ0ludDo6YWxsb2NhdGlvblNpemUodW5z
aWduZWQgbGVuZ3RoKQogewogICAgIHNpemVfdCBzaXplV2l0aFBhZGRpbmcgPSBXVEY6OnJvdW5k
VXBUb011bHRpcGxlT2Y8c2l6ZW9mKHNpemVfdCk+KHNpemVvZihKU0JpZ0ludCkpOwogICAgIHJl
dHVybiBzaXplV2l0aFBhZGRpbmcgKyBsZW5ndGggKiBzaXplb2YoRGlnaXQpOwogfQogCi1KU0Jp
Z0ludCogSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGgoVk0mIHZtLCBpbnQgbGVuZ3RoKQorSlNC
aWdJbnQqIEpTQmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoKFZNJiB2bSwgdW5zaWduZWQgbGVuZ3Ro
KQogewogICAgIEpTQmlnSW50KiBiaWdJbnQgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxK
U0JpZ0ludD4odm0uaGVhcCwgYWxsb2NhdGlvblNpemUobGVuZ3RoKSkpIEpTQmlnSW50KHZtLCB2
bS5iaWdJbnRTdHJ1Y3R1cmUuZ2V0KCksIGxlbmd0aCk7CiAgICAgYmlnSW50LT5maW5pc2hDcmVh
dGlvbih2bSk7CkBAIC0yMjMsNyArMjIzLDcgQEAgSlNCaWdJbnQqIEpTQmlnSW50OjpwYXJzZUlu
dChFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0sIFN0cmluZ1ZpZXcgcywgdWludDhfdCByYWQKICAg
ICByZXR1cm4gcGFyc2VJbnQoc3RhdGUsIHZtLCBzLmNoYXJhY3RlcnMxNigpLCBzLmxlbmd0aCgp
LCAwLCByYWRpeCwgZmFsc2UpOwogfQogCi1TdHJpbmcgSlNCaWdJbnQ6OnRvU3RyaW5nKEV4ZWNT
dGF0ZSYgc3RhdGUsIGludCByYWRpeCkKK1N0cmluZyBKU0JpZ0ludDo6dG9TdHJpbmcoRXhlY1N0
YXRlJiBzdGF0ZSwgdW5zaWduZWQgcmFkaXgpCiB7CiAgICAgaWYgKHRoaXMtPmlzWmVybygpKQog
ICAgICAgICByZXR1cm4gc3RhdGUudm0oKS5zbWFsbFN0cmluZ3Muc2luZ2xlQ2hhcmFjdGVyU3Ry
aW5nUmVwKCcwJyk7CkBAIC0yNDYsNiArMjQ2LDI2IEBAIHZvaWQgSlNCaWdJbnQ6OmlucGxhY2VN
dWx0aXBseUFkZCh1aW50cHRyX3QgZmFjdG9yLCB1aW50cHRyX3Qgc3VtbWFuZCkKICAgICBpbnRl
cm5hbE11bHRpcGx5QWRkKHRoaXMsIGZhY3Rvciwgc3VtbWFuZCwgbGVuZ3RoKCksIHRoaXMpOwog
fQogCitKU0JpZ0ludCogSlNCaWdJbnQ6Om11bHRpcGx5KEV4ZWNTdGF0ZSogc3RhdGUsIEpTQmln
SW50KiB4LCBKU0JpZ0ludCogeSkKK3sKKyAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKKworICAg
IGlmICh4LT5pc1plcm8oKSkKKyAgICAgICAgcmV0dXJuIHg7CisgICAgaWYgKHktPmlzWmVybygp
KQorICAgICAgICByZXR1cm4geTsKKworICAgIHVuc2lnbmVkIHJlc3VsdExlbmd0aCA9IHgtPmxl
bmd0aCgpICsgeS0+bGVuZ3RoKCk7CisgICAgSlNCaWdJbnQqIHJlc3VsdCA9IEpTQmlnSW50Ojpj
cmVhdGVXaXRoTGVuZ3RoKHZtLCByZXN1bHRMZW5ndGgpOworICAgIHJlc3VsdC0+aW5pdGlhbGl6
ZShJbml0aWFsaXphdGlvblR5cGU6OldpdGhaZXJvKTsKKworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCB4LT5sZW5ndGgoKTsgaSsrKQorICAgICAgICBtdWx0aXBseUFjY3VtdWxhdGUoeSwg
eC0+ZGlnaXQoaSksIHJlc3VsdCwgaSk7CisKKyAgICByZXN1bHQtPnNldFNpZ24oeC0+c2lnbigp
ICE9IHktPnNpZ24oKSk7CisgICAgcmV0dXJuIHJlc3VsdC0+cmlnaHRUcmltKHZtKTsKK30KKwog
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAjZGVmaW5lIEhBVkVfVFdPX0RJR0lUIDEKIHR5cGVkZWYg
dWludDY0X3QgVHdvRGlnaXQ7CkBAIC0zNzgsOSArMzk4LDkgQEAgSlNCaWdJbnQ6OkRpZ2l0IEpT
QmlnSW50OjpkaWdpdERpdihEaWdpdCBoaWdoLCBEaWdpdCBsb3csIERpZ2l0IGRpdmlzb3IsIERp
Z2l0JgogICAgIHN0YXRpYyBjb25zdCBEaWdpdCBrSGFsZkRpZ2l0QmFzZSA9IDF1bGwgPDwgaGFs
ZkRpZ2l0Qml0czsKICAgICAvLyBBZGFwdGVkIGZyb20gV2FycmVuLCBIYWNrZXIncyBEZWxpZ2h0
LCBwLiAxNTIuCiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICBpbnQgcyA9IGNsejY0KGRpdmlzb3Ip
OworICAgIHVuc2lnbmVkIHMgPSBjbHo2NChkaXZpc29yKTsKICNlbHNlCi0gICAgaW50IHMgPSBj
bHozMihkaXZpc29yKTsKKyAgICB1bnNpZ25lZCBzID0gY2x6MzIoZGl2aXNvcik7CiAjZW5kaWYK
ICAgICBkaXZpc29yIDw8PSBzOwogICAgIApAQCAtNDIzLDE0ICs0NDMsMTQgQEAgSlNCaWdJbnQ6
OkRpZ2l0IEpTQmlnSW50OjpkaWdpdERpdihEaWdpdCBoaWdoLCBEaWdpdCBsb3csIERpZ2l0IGRp
dmlzb3IsIERpZ2l0JgogCiAvLyBNdWx0aXBsaWVzIHtzb3VyY2V9IHdpdGgge2ZhY3Rvcn0gYW5k
IGFkZHMge3N1bW1hbmR9IHRvIHRoZSByZXN1bHQuCiAvLyB7cmVzdWx0fSBhbmQge3NvdXJjZX0g
bWF5IGJlIHRoZSBzYW1lIEJpZ0ludCBmb3IgaW5wbGFjZSBtb2RpZmljYXRpb24uCi12b2lkIEpT
QmlnSW50OjppbnRlcm5hbE11bHRpcGx5QWRkKEpTQmlnSW50KiBzb3VyY2UsIERpZ2l0IGZhY3Rv
ciwgRGlnaXQgc3VtbWFuZCwgaW50IG4sIEpTQmlnSW50KiByZXN1bHQpCit2b2lkIEpTQmlnSW50
OjppbnRlcm5hbE11bHRpcGx5QWRkKEpTQmlnSW50KiBzb3VyY2UsIERpZ2l0IGZhY3RvciwgRGln
aXQgc3VtbWFuZCwgdW5zaWduZWQgbiwgSlNCaWdJbnQqIHJlc3VsdCkKIHsKICAgICBBU1NFUlQo
c291cmNlLT5sZW5ndGgoKSA+PSBuKTsKICAgICBBU1NFUlQocmVzdWx0LT5sZW5ndGgoKSA+PSBu
KTsKIAogICAgIERpZ2l0IGNhcnJ5ID0gc3VtbWFuZDsKICAgICBEaWdpdCBoaWdoID0gMDsKLSAg
ICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgeworICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBuOyBpKyspIHsKICAgICAgICAgRGlnaXQgY3VycmVudCA9IHNvdXJjZS0+ZGlnaXQoaSk7
CiAgICAgICAgIERpZ2l0IG5ld0NhcnJ5ID0gMDsKIApAQCAtNDU4LDYgKzQ3OCw0OSBAQCB2b2lk
IEpTQmlnSW50OjppbnRlcm5hbE11bHRpcGx5QWRkKEpTQmlnSW50KiBzb3VyY2UsIERpZ2l0IGZh
Y3RvciwgRGlnaXQgc3VtbWFuZAogICAgICAgICBBU1NFUlQoIShjYXJyeSArIGhpZ2gpKTsKIH0K
IAorLy8gTXVsdGlwbGllcyB7bXVsdGlwbGljYW5kfSB3aXRoIHttdWx0aXBsaWVyfSBhbmQgYWRk
cyB0aGUgcmVzdWx0IHRvCisvLyB7YWNjdW11bGF0b3J9LCBzdGFydGluZyBhdCB7YWNjdW11bGF0
b3JJbmRleH0gZm9yIHRoZSBsZWFzdC1zaWduaWZpY2FudAorLy8gZGlnaXQuCisvLyBDYWxsZXJz
IG11c3QgZW5zdXJlIHRoYXQge2FjY3VtdWxhdG9yfSBpcyBiaWcgZW5vdWdoIHRvIGhvbGQgdGhl
IHJlc3VsdC4KK3ZvaWQgSlNCaWdJbnQ6Om11bHRpcGx5QWNjdW11bGF0ZShKU0JpZ0ludCogbXVs
dGlwbGljYW5kLCBEaWdpdCBtdWx0aXBsaWVyLCBKU0JpZ0ludCogYWNjdW11bGF0b3IsIHVuc2ln
bmVkIGFjY3VtdWxhdG9ySW5kZXgpCit7CisgICAgQVNTRVJUKGFjY3VtdWxhdG9yLT5sZW5ndGgo
KSA+IG11bHRpcGxpY2FuZC0+bGVuZ3RoKCkgKyBhY2N1bXVsYXRvckluZGV4KTsKKyAgICBpZiAo
IW11bHRpcGxpZXIpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBEaWdpdCBjYXJyeSA9IDA7
CisgICAgRGlnaXQgaGlnaCA9IDA7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG11bHRp
cGxpY2FuZC0+bGVuZ3RoKCk7IGkrKywgYWNjdW11bGF0b3JJbmRleCsrKSB7CisgICAgICAgIERp
Z2l0IGFjYyA9IGFjY3VtdWxhdG9yLT5kaWdpdChhY2N1bXVsYXRvckluZGV4KTsKKyAgICAgICAg
RGlnaXQgbmV3Q2FycnkgPSAwOworICAgICAgICAKKyAgICAgICAgLy8gQWRkIGxhc3Qgcm91bmQn
cyBjYXJyeW92ZXJzLgorICAgICAgICBhY2MgPSBkaWdpdEFkZChhY2MsIGhpZ2gsIG5ld0NhcnJ5
KTsKKyAgICAgICAgYWNjID0gZGlnaXRBZGQoYWNjLCBjYXJyeSwgbmV3Q2FycnkpOworICAgICAg
ICAKKyAgICAgICAgLy8gQ29tcHV0ZSB0aGlzIHJvdW5kJ3MgbXVsdGlwbGljYXRpb24uCisgICAg
ICAgIERpZ2l0IG11bHRpcGxpY2FuZERpZ2l0ID0gbXVsdGlwbGljYW5kLT5kaWdpdChpKTsKKyAg
ICAgICAgRGlnaXQgbG93ID0gZGlnaXRNdWwobXVsdGlwbGllciwgbXVsdGlwbGljYW5kRGlnaXQs
IGhpZ2gpOworICAgICAgICBhY2MgPSBkaWdpdEFkZChhY2MsIGxvdywgbmV3Q2FycnkpOworICAg
ICAgICAKKyAgICAgICAgLy8gU3RvcmUgcmVzdWx0IGFuZCBwcmVwYXJlIGZvciBuZXh0IHJvdW5k
LgorICAgICAgICBhY2N1bXVsYXRvci0+c2V0RGlnaXQoYWNjdW11bGF0b3JJbmRleCwgYWNjKTsK
KyAgICAgICAgY2FycnkgPSBuZXdDYXJyeTsKKyAgICB9CisgICAgCisgICAgd2hpbGUgKGNhcnJ5
IHx8IGhpZ2gpIHsKKyAgICAgICAgQVNTRVJUKGFjY3VtdWxhdG9ySW5kZXggPCBhY2N1bXVsYXRv
ci0+bGVuZ3RoKCkpOworICAgICAgICBEaWdpdCBhY2MgPSBhY2N1bXVsYXRvci0+ZGlnaXQoYWNj
dW11bGF0b3JJbmRleCk7CisgICAgICAgIERpZ2l0IG5ld0NhcnJ5ID0gMDsKKyAgICAgICAgYWNj
ID0gZGlnaXRBZGQoYWNjLCBoaWdoLCBuZXdDYXJyeSk7CisgICAgICAgIGhpZ2ggPSAwOworICAg
ICAgICBhY2MgPSBkaWdpdEFkZChhY2MsIGNhcnJ5LCBuZXdDYXJyeSk7CisgICAgICAgIGFjY3Vt
dWxhdG9yLT5zZXREaWdpdChhY2N1bXVsYXRvckluZGV4LCBhY2MpOworICAgICAgICBjYXJyeSA9
IG5ld0NhcnJ5OworICAgICAgICBhY2N1bXVsYXRvckluZGV4Kys7CisgICAgfQorfQorCiBib29s
IEpTQmlnSW50OjplcXVhbHMoSlNCaWdJbnQqIHgsIEpTQmlnSW50KiB5KQogewogICAgIGlmICh4
LT5zaWduKCkgIT0geS0+c2lnbigpKQpAQCAtNDY2LDcgKzUyOSw3IEBAIGJvb2wgSlNCaWdJbnQ6
OmVxdWFscyhKU0JpZ0ludCogeCwgSlNCaWdJbnQqIHkpCiAgICAgaWYgKHgtPmxlbmd0aCgpICE9
IHktPmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBmb3IgKGludCBpID0g
MDsgaSA8IHgtPmxlbmd0aCgpOyBpKyspIHsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
eC0+bGVuZ3RoKCk7IGkrKykgewogICAgICAgICBpZiAoeC0+ZGlnaXQoaSkgIT0geS0+ZGlnaXQo
aSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtNDk0LDcgKzU1Nyw3IEBA
IHZvaWQgSlNCaWdJbnQ6OmFic29sdXRlRGl2U21hbGwoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJ
bnQqIHgsIERpZ2l0IGRpdmlzb3IsIEpTCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBp
bnQgbGVuZ3RoID0geC0+bGVuZ3RoKCk7CisgICAgdW5zaWduZWQgbGVuZ3RoID0geC0+bGVuZ3Ro
KCk7CiAgICAgaWYgKHF1b3RpZW50ICE9IG51bGxwdHIpIHsKICAgICAgICAgaWYgKCpxdW90aWVu
dCA9PSBudWxscHRyKQogICAgICAgICAgICAgKnF1b3RpZW50ID0gSlNCaWdJbnQ6OmNyZWF0ZVdp
dGhMZW5ndGgodm0sIGxlbmd0aCk7CkBAIC01MjEsMTQgKzU4NCwxNCBAQCBjb25zdGV4cHIgdWlu
dDhfdCBtYXhCaXRzUGVyQ2hhclRhYmxlW10gPSB7CiAgICAgMTYyLCAxNjMsIDE2NSwgMTY2LCAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyAzMy4uMzYKIH07CiAKLXN0YXRpYyBjb25zdCBpbnQg
Yml0c1BlckNoYXJUYWJsZVNoaWZ0ID0gNTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBiaXRzUGVy
Q2hhclRhYmxlU2hpZnQgPSA1Owogc3RhdGljIGNvbnN0IHNpemVfdCBiaXRzUGVyQ2hhclRhYmxl
TXVsdGlwbGllciA9IDF1IDw8IGJpdHNQZXJDaGFyVGFibGVTaGlmdDsKIAogLy8gQ29tcHV0ZSAo
YW4gb3ZlcmFwcHJveGltYXRpb24gb2YpIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdGluZyBzdHJp
bmc6CiAvLyBEaXZpZGUgYml0IGxlbmd0aCBvZiB0aGUgQmlnSW50IGJ5IGJpdHMgcmVwcmVzZW50
YWJsZSBwZXIgY2hhcmFjdGVyLgotdWludDY0X3QgSlNCaWdJbnQ6OmNhbGN1bGF0ZU1heGltdW1D
aGFyYWN0ZXJzUmVxdWlyZWQoaW50IGxlbmd0aCwgaW50IHJhZGl4LCBEaWdpdCBsYXN0RGlnaXQs
IGJvb2wgc2lnbikKK3VpbnQ2NF90IEpTQmlnSW50OjpjYWxjdWxhdGVNYXhpbXVtQ2hhcmFjdGVy
c1JlcXVpcmVkKHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQgcmFkaXgsIERpZ2l0IGxhc3REaWdp
dCwgYm9vbCBzaWduKQogewotICAgIGludCBsZWFkaW5nWmVyb3M7CisgICAgdW5zaWduZWQgbGVh
ZGluZ1plcm9zOwogICAgIGlmIChzaXplb2YobGFzdERpZ2l0KSA9PSA4KQogICAgICAgICBsZWFk
aW5nWmVyb3MgPSBjbHo2NChsYXN0RGlnaXQpOwogICAgIGVsc2UKQEAgLTU1Niw3ICs2MTksNyBA
QCB1aW50NjRfdCBKU0JpZ0ludDo6Y2FsY3VsYXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZChp
bnQgbGVuZ3RoLCBpbnQgcmFkaXgsIERpZwogICAgIHJldHVybiBtYXhpbXVtQ2hhcmFjdGVyc1Jl
cXVpcmVkOwogfQogCi1TdHJpbmcgSlNCaWdJbnQ6OnRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUm
IHN0YXRlLCBKU0JpZ0ludCogeCwgaW50IHJhZGl4KQorU3RyaW5nIEpTQmlnSW50Ojp0b1N0cmlu
Z0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQqIHgsIHVuc2lnbmVkIHJhZGl4KQog
ewogICAgIC8vIEZJWE1FOiBbSlNDXSBSZXZpc2l0IHVzYWdlIG9mIFN0cmluZ1ZlY3RvciBpbnRv
IEpTQmlnSW50Ojp0b1N0cmluZwogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODA2NwpAQCAtNTY1LDcgKzYyOCw3IEBAIFN0cmluZyBKU0JpZ0ludDo6dG9T
dHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCBpbnQgcmFkaXgpCiAg
ICAgQVNTRVJUKHJhZGl4ID49IDIgJiYgcmFkaXggPD0gMzYpOwogICAgIEFTU0VSVCgheC0+aXNa
ZXJvKCkpOwogCi0gICAgaW50IGxlbmd0aCA9IHgtPmxlbmd0aCgpOworICAgIHVuc2lnbmVkIGxl
bmd0aCA9IHgtPmxlbmd0aCgpOwogICAgIGJvb2wgc2lnbiA9IHgtPnNpZ24oKTsKIAogICAgIHVp
bnQ4X3QgbWF4Qml0c1BlckNoYXIgPSBtYXhCaXRzUGVyQ2hhclRhYmxlW3JhZGl4XTsKQEAgLTU4
MSwxMiArNjQ0LDEyIEBAIFN0cmluZyBKU0JpZ0ludDo6dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0
ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCBpbnQgcmFkaXgpCiAgICAgaWYgKGxlbmd0aCA9PSAxKQog
ICAgICAgICBsYXN0RGlnaXQgPSB4LT5kaWdpdCgwKTsKICAgICBlbHNlIHsKLSAgICAgICAgaW50
IGNodW5rQ2hhcnMgPSBkaWdpdEJpdHMgKiBiaXRzUGVyQ2hhclRhYmxlTXVsdGlwbGllciAvIG1h
eEJpdHNQZXJDaGFyOworICAgICAgICB1bnNpZ25lZCBjaHVua0NoYXJzID0gZGlnaXRCaXRzICog
Yml0c1BlckNoYXJUYWJsZU11bHRpcGxpZXIgLyBtYXhCaXRzUGVyQ2hhcjsKICAgICAgICAgRGln
aXQgY2h1bmtEaXZpc29yID0gZGlnaXRQb3cocmFkaXgsIGNodW5rQ2hhcnMpOwogCiAgICAgICAg
IC8vIEJ5IGNvbnN0cnVjdGlvbiBvZiBjaHVua0NoYXJzLCB0aGVyZSBjYW4ndCBoYXZlIGJlZW4g
b3ZlcmZsb3cuCiAgICAgICAgIEFTU0VSVChjaHVua0Rpdmlzb3IpOwotICAgICAgICBpbnQgbm9u
WmVyb0RpZ2l0ID0gbGVuZ3RoIC0gMTsKKyAgICAgICAgdW5zaWduZWQgbm9uWmVyb0RpZ2l0ID0g
bGVuZ3RoIC0gMTsKICAgICAgICAgQVNTRVJUKHgtPmRpZ2l0KG5vblplcm9EaWdpdCkpOwogCiAg
ICAgICAgIC8vIHtyZXN0fSBob2xkcyB0aGUgcGFydCBvZiB0aGUgQmlnSW50IHRoYXQgd2UgaGF2
ZW4ndCBsb29rZWQgYXQgeWV0LgpAQCAtNjAyLDcgKzY2NSw3IEBAIFN0cmluZyBKU0JpZ0ludDo6
dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCBpbnQgcmFkaXgp
CiAgICAgICAgICAgICBBU1NFUlQocmVzdCk7CiAKICAgICAgICAgICAgIGRpdmlkZW5kID0gJnJl
c3Q7Ci0gICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNodW5rQ2hhcnM7IGkrKykgewor
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNodW5rQ2hhcnM7IGkrKykgewog
ICAgICAgICAgICAgICAgIHJlc3VsdFN0cmluZy5hcHBlbmQocmFkaXhEaWdpdHNbY2h1bmsgJSBy
YWRpeF0pOwogICAgICAgICAgICAgICAgIGNodW5rIC89IHJhZGl4OwogICAgICAgICAgICAgfQpA
QCAtNjI3LDcgKzY5MCw3IEBAIFN0cmluZyBKU0JpZ0ludDo6dG9TdHJpbmdHZW5lcmljKEV4ZWNT
dGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCBpbnQgcmFkaXgpCiAgICAgQVNTRVJUKHJlc3VsdFN0
cmluZy5zaXplKCkgPD0gc3RhdGljX2Nhc3Q8c2l6ZV90PihtYXhpbXVtQ2hhcmFjdGVyc1JlcXVp
cmVkKSk7CiAKICAgICAvLyBSZW1vdmUgbGVhZGluZyB6ZXJvZXMuCi0gICAgaW50IG5ld1NpemVO
b0xlYWRpbmdaZXJvZXMgPSByZXN1bHRTdHJpbmcuc2l6ZSgpOworICAgIHVuc2lnbmVkIG5ld1Np
emVOb0xlYWRpbmdaZXJvZXMgPSByZXN1bHRTdHJpbmcuc2l6ZSgpOwogICAgIHdoaWxlIChuZXdT
aXplTm9MZWFkaW5nWmVyb2VzICA+IDEgJiYgcmVzdWx0U3RyaW5nW25ld1NpemVOb0xlYWRpbmda
ZXJvZXMgLSAxXSA9PSAnMCcpCiAgICAgICAgIG5ld1NpemVOb0xlYWRpbmdaZXJvZXMtLTsKIApA
QCAtNjQ2LDE0ICs3MDksMTYgQEAgSlNCaWdJbnQqIEpTQmlnSW50OjpyaWdodFRyaW0oVk0mIHZt
KQogICAgIGlmIChpc1plcm8oKSkKICAgICAgICAgcmV0dXJuIHRoaXM7CiAKKyAgICBBU1NFUlQo
bV9sZW5ndGgpOworCiAgICAgaW50IG5vblplcm9JbmRleCA9IG1fbGVuZ3RoIC0gMTsKICAgICB3
aGlsZSAobm9uWmVyb0luZGV4ID49IDAgJiYgIWRpZ2l0KG5vblplcm9JbmRleCkpCiAgICAgICAg
IG5vblplcm9JbmRleC0tOwogCi0gICAgaWYgKG5vblplcm9JbmRleCA9PSBtX2xlbmd0aCAtIDEp
CisgICAgaWYgKG5vblplcm9JbmRleCA9PSBzdGF0aWNfY2FzdDxpbnQ+KG1fbGVuZ3RoIC0gMSkp
CiAgICAgICAgIHJldHVybiB0aGlzOwogCi0gICAgaW50IG5ld0xlbmd0aCA9IG5vblplcm9JbmRl
eCArIDE7CisgICAgdW5zaWduZWQgbmV3TGVuZ3RoID0gbm9uWmVyb0luZGV4ICsgMTsKICAgICBK
U0JpZ0ludCogdHJpbW1lZEJpZ0ludCA9IGNyZWF0ZVdpdGhMZW5ndGgodm0sIG5ld0xlbmd0aCk7
CiAgICAgUkVMRUFTRV9BU1NFUlQodHJpbW1lZEJpZ0ludCk7CiAgICAgc3RkOjpjb3B5KGRhdGFT
dG9yYWdlKCksIGRhdGFTdG9yYWdlKCkgKyBuZXdMZW5ndGgsIHRyaW1tZWRCaWdJbnQtPmRhdGFT
dG9yYWdlKCkpOyAKQEAgLTY2MywxNCArNzI4LDE0IEBAIEpTQmlnSW50KiBKU0JpZ0ludDo6cmln
aHRUcmltKFZNJiB2bSkKICAgICByZXR1cm4gdHJpbW1lZEJpZ0ludDsKIH0KIAotSlNCaWdJbnQq
IEpTQmlnSW50OjphbGxvY2F0ZUZvcihFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0sIGludCByYWRp
eCwgaW50IGNoYXJjb3VudCkKK0pTQmlnSW50KiBKU0JpZ0ludDo6YWxsb2NhdGVGb3IoRXhlY1N0
YXRlKiBzdGF0ZSwgVk0mIHZtLCB1bnNpZ25lZCByYWRpeCwgdW5zaWduZWQgY2hhcmNvdW50KQog
ewogICAgIEFTU0VSVCgyIDw9IHJhZGl4ICYmIHJhZGl4IDw9IDM2KTsKICAgICBBU1NFUlQoY2hh
cmNvdW50ID49IDApOwogCiAgICAgc2l6ZV90IGJpdHNQZXJDaGFyID0gbWF4Qml0c1BlckNoYXJU
YWJsZVtyYWRpeF07CiAgICAgc2l6ZV90IGNoYXJzID0gY2hhcmNvdW50OwotICAgIGNvbnN0IGlu
dCByb3VuZHVwID0gYml0c1BlckNoYXJUYWJsZU11bHRpcGxpZXIgLSAxOworICAgIGNvbnN0IHVu
c2lnbmVkIHJvdW5kdXAgPSBiaXRzUGVyQ2hhclRhYmxlTXVsdGlwbGllciAtIDE7CiAgICAgaWYg
KGNoYXJzIDw9IChzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpIC0gcm91bmR1cCkg
LyBiaXRzUGVyQ2hhcikgewogICAgICAgICBzaXplX3QgYml0c01pbiA9IGJpdHNQZXJDaGFyICog
Y2hhcnM7CiAKQEAgLTY3OCw3ICs3NDMsNyBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6OmFsbG9jYXRl
Rm9yKEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgaW50IHJhZGl4LCBpbnQgY2hhcmNvdQogICAg
ICAgICBiaXRzTWluID0gKGJpdHNNaW4gKyByb3VuZHVwKSA+PiBiaXRzUGVyQ2hhclRhYmxlU2hp
ZnQ7CiAgICAgICAgIGlmIChiaXRzTWluIDw9IHN0YXRpY19jYXN0PHNpemVfdD4obWF4SW50KSkg
ewogICAgICAgICAgICAgLy8gRGl2aWRlIGJ5IGtEaWdpdHNCaXRzLCByb3VuZGluZyB1cC4KLSAg
ICAgICAgICAgIGludCBsZW5ndGggPSAoc3RhdGljX2Nhc3Q8aW50PihiaXRzTWluKSArIGRpZ2l0
Qml0cyAtIDEpIC8gZGlnaXRCaXRzOworICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0gKGJp
dHNNaW4gKyBkaWdpdEJpdHMgLSAxKSAvIGRpZ2l0Qml0czsKICAgICAgICAgICAgIGlmIChsZW5n
dGggPD0gbWF4TGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgSlNCaWdJbnQqIHJlc3VsdCA9IEpT
QmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoKHZtLCBsZW5ndGgpOwogICAgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CkBAIC03MTksMTEgKzc4NCwxMSBAQCBzaXplX3QgSlNCaWdJbnQ6Om9mZnNl
dE9mRGF0YSgpCiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLUpTQmlnSW50KiBK
U0JpZ0ludDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwgQ2hhclR5cGUqICBkYXRhLCBpbnQg
bGVuZ3RoKQorSlNCaWdJbnQqIEpTQmlnSW50OjpwYXJzZUludChFeGVjU3RhdGUqIHN0YXRlLCBD
aGFyVHlwZSogIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+
dm0oKTsKIAotICAgIGludCBwID0gMDsKKyAgICB1bnNpZ25lZCBwID0gMDsKICAgICB3aGlsZSAo
cCA8IGxlbmd0aCAmJiBpc1N0cldoaXRlU3BhY2UoZGF0YVtwXSkpCiAgICAgICAgICsrcDsKIApA
QCAtNzU4LDEwICs4MjMsMTAgQEAgSlNCaWdJbnQqIEpTQmlnSW50OjpwYXJzZUludChFeGVjU3Rh
dGUqIHN0YXRlLCBDaGFyVHlwZSogIGRhdGEsIGludCBsZW5ndGgpCiB9CiAKIHRlbXBsYXRlIDx0
eXBlbmFtZSBDaGFyVHlwZT4KLUpTQmlnSW50KiBKU0JpZ0ludDo6cGFyc2VJbnQoRXhlY1N0YXRl
KiBzdGF0ZSwgVk0mIHZtLCBDaGFyVHlwZSogZGF0YSwgaW50IGxlbmd0aCwgaW50IHN0YXJ0SW5k
ZXgsIGludCByYWRpeCwgYm9vbCBhbGxvd0VtcHR5U3RyaW5nKQorSlNCaWdJbnQqIEpTQmlnSW50
OjpwYXJzZUludChFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0sIENoYXJUeXBlKiBkYXRhLCB1bnNp
Z25lZCBsZW5ndGgsIHVuc2lnbmVkIHN0YXJ0SW5kZXgsIHVuc2lnbmVkIHJhZGl4LCBib29sIGFs
bG93RW1wdHlTdHJpbmcpCiB7CiAgICAgQVNTRVJUKGxlbmd0aCA+PSAwKTsKLSAgICBpbnQgcCA9
IHN0YXJ0SW5kZXg7CisgICAgdW5zaWduZWQgcCA9IHN0YXJ0SW5kZXg7CiAKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKQEAgLTc3Nyw3ICs4NDIsNyBAQCBKU0Jp
Z0ludCogSlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgQ2hhclR5
cGUqIGRhdGEsIGludCBsZW5ndAogCiAgICAgaW50IGVuZEluZGV4ID0gbGVuZ3RoIC0gMTsKICAg
ICAvLyBSZW1vdmluZyB0cmFpbGluZyBzcGFjZXMKLSAgICB3aGlsZSAoZW5kSW5kZXggPj0gcCAm
JiBpc1N0cldoaXRlU3BhY2UoZGF0YVtlbmRJbmRleF0pKQorICAgIHdoaWxlIChlbmRJbmRleCA+
PSBzdGF0aWNfY2FzdDxpbnQ+KHApICYmIGlzU3RyV2hpdGVTcGFjZShkYXRhW2VuZEluZGV4XSkp
CiAgICAgICAgIC0tZW5kSW5kZXg7CiAKICAgICBsZW5ndGggPSBlbmRJbmRleCArIDE7CkBAIC03
ODUsMTYgKzg1MCwxNiBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0ZSog
c3RhdGUsIFZNJiB2bSwgQ2hhclR5cGUqIGRhdGEsIGludCBsZW5ndAogICAgIGlmIChwID09IGxl
bmd0aCkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVplcm8odm0pOwogCi0gICAgaW50IGxpbWl0MCA9
ICcwJyArIChyYWRpeCA8IDEwID8gcmFkaXggOiAxMCk7Ci0gICAgaW50IGxpbWl0YSA9ICdhJyAr
IChyYWRpeCAtIDEwKTsKLSAgICBpbnQgbGltaXRBID0gJ0EnICsgKHJhZGl4IC0gMTApOworICAg
IHVuc2lnbmVkIGxpbWl0MCA9ICcwJyArIChyYWRpeCA8IDEwID8gcmFkaXggOiAxMCk7CisgICAg
dW5zaWduZWQgbGltaXRhID0gJ2EnICsgKHJhZGl4IC0gMTApOworICAgIHVuc2lnbmVkIGxpbWl0
QSA9ICdBJyArIChyYWRpeCAtIDEwKTsKIAogICAgIEpTQmlnSW50KiByZXN1bHQgPSBhbGxvY2F0
ZUZvcihzdGF0ZSwgdm0sIHJhZGl4LCBsZW5ndGggLSBwKTsKICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBudWxscHRyKTsKIAogICAgIHJlc3VsdC0+aW5pdGlhbGl6ZShJbml0aWFsaXph
dGlvblR5cGU6OldpdGhaZXJvKTsKIAotICAgIGZvciAoaW50IGkgPSBwOyBpIDwgbGVuZ3RoOyBp
KyssIHArKykgeworICAgIGZvciAodW5zaWduZWQgaSA9IHA7IGkgPCBsZW5ndGg7IGkrKywgcCsr
KSB7CiAgICAgICAgIHVpbnQzMl90IGRpZ2l0OwogICAgICAgICBpZiAoZGF0YVtpXSA+PSAnMCcg
JiYgZGF0YVtpXSA8IGxpbWl0MCkKICAgICAgICAgICAgIGRpZ2l0ID0gZGF0YVtpXSAtICcwJzsK
QEAgLTgyMiwxMyArODg3LDEzIEBAIEpTQmlnSW50OjpEaWdpdCogSlNCaWdJbnQ6OmRhdGFTdG9y
YWdlKCkKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxEaWdpdCo+KHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHRoaXMpICsgb2Zmc2V0T2ZEYXRhKCkpOwogfQogCi1KU0JpZ0ludDo6RGlnaXQg
SlNCaWdJbnQ6OmRpZ2l0KGludCBuKQorSlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdCh1
bnNpZ25lZCBuKQogewogICAgIEFTU0VSVChuID49IDAgJiYgbiA8IGxlbmd0aCgpKTsKICAgICBy
ZXR1cm4gZGF0YVN0b3JhZ2UoKVtuXTsKIH0KIAotdm9pZCBKU0JpZ0ludDo6c2V0RGlnaXQoaW50
IG4sIERpZ2l0IHZhbHVlKQordm9pZCBKU0JpZ0ludDo6c2V0RGlnaXQodW5zaWduZWQgbiwgRGln
aXQgdmFsdWUpCiB7CiAgICAgQVNTRVJUKG4gPj0gMCAmJiBuIDwgbGVuZ3RoKCkpOwogICAgIGRh
dGFTdG9yYWdlKClbbl0gPSB2YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQmlnSW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Jp
Z0ludC5oCmluZGV4IDI5OGMzNDhjZDJiNGU1YWI1YzkyYzdiYjc5OWEzMGYzZWJmYTYyMzEuLmVi
MTJjMDA0NjZlMzU2ZmZkYWRmYTM2NjQxNGMwN2NkMDNiYzQ2ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaApAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBKU0JpZ0lu
dCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogCiBwdWJsaWM6CiAKLSAgICBKU0JpZ0ludChWTSYs
IFN0cnVjdHVyZSosIGludCBsZW5ndGgpOworICAgIEpTQmlnSW50KFZNJiwgU3RydWN0dXJlKiwg
dW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIGVudW0gY2xhc3MgSW5pdGlhbGl6YXRpb25UeXBlIHsg
Tm9uZSwgV2l0aFplcm8gfTsKICAgICB2b2lkIGluaXRpYWxpemUoSW5pdGlhbGl6YXRpb25UeXBl
KTsKQEAgLTQ5LDEyICs0OSwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGls
ZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAgc3RhdGljIHNpemVfdCBlc3RpbWF0
ZWRTaXplKEpTQ2VsbCopOwotICAgIHN0YXRpYyBzaXplX3QgYWxsb2NhdGlvblNpemUoaW50IGxl
bmd0aCk7CisgICAgc3RhdGljIHNpemVfdCBhbGxvY2F0aW9uU2l6ZSh1bnNpZ25lZCBsZW5ndGgp
OwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxP
YmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7Ci0KICAgICBzdGF0aWMgSlNCaWdJbnQqIGNyZWF0
ZVplcm8oVk0mKTsKLSAgICBzdGF0aWMgSlNCaWdJbnQqIGNyZWF0ZVdpdGhMZW5ndGgoVk0mLCBp
bnQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgSlNCaWdJbnQqIGNyZWF0ZVdpdGhMZW5ndGgoVk0mLCB1
bnNpZ25lZCBsZW5ndGgpOwogCiAgICAgc3RhdGljIEpTQmlnSW50KiBjcmVhdGVGcm9tKFZNJiwg
aW50MzJfdCB2YWx1ZSk7CiAgICAgc3RhdGljIEpTQmlnSW50KiBjcmVhdGVGcm9tKFZNJiwgdWlu
dDMyX3QgdmFsdWUpOwpAQCAtNzAsMTQgKzY5LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNp
Z24oYm9vbCBzaWduKSB7IG1fc2lnbiA9IHNpZ247IH0KICAgICBib29sIHNpZ24oKSBjb25zdCB7
IHJldHVybiBtX3NpZ247IH0KIAotICAgIHZvaWQgc2V0TGVuZ3RoKGludCBsZW5ndGgpIHsgbV9s
ZW5ndGggPSBsZW5ndGg7IH0KLSAgICBpbnQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9sZW5n
dGg7IH0KKyAgICB2b2lkIHNldExlbmd0aCh1bnNpZ25lZCBsZW5ndGgpIHsgbV9sZW5ndGggPSBs
ZW5ndGg7IH0KKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsg
fQogCiAgICAgc3RhdGljIEpTQmlnSW50KiBwYXJzZUludChFeGVjU3RhdGUqLCBWTSYsIFN0cmlu
Z1ZpZXcsIHVpbnQ4X3QgcmFkaXgpOwogICAgIHN0YXRpYyBKU0JpZ0ludCogcGFyc2VJbnQoRXhl
Y1N0YXRlKiwgU3RyaW5nVmlldyk7CiAKICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ4X3Q+IHNpbmds
ZURpZ2l0VmFsdWVGb3JTdHJpbmcoKTsKLSAgICBTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlJiwg
aW50IHJhZGl4KTsKKyAgICBTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlJiwgdW5zaWduZWQgcmFk
aXgpOwogICAgIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBib29sIGVxdWFscyhKU0Jp
Z0ludCosIEpTQmlnSW50Kik7CiAKQEAgLTg1LDEyICs4NCwxNCBAQCBwdWJsaWM6CiAgICAgZG91
YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwogCiAgICAgSlNPYmplY3QqIHRvT2JqZWN0
KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CisKKyAgICBzdGF0aWMgSlNCaWdJ
bnQqIG11bHRpcGx5KEV4ZWNTdGF0ZSosIEpTQmlnSW50KiB4LCBKU0JpZ0ludCogeSk7CiAgICAg
CiBwcml2YXRlOgogICAgIHVzaW5nIERpZ2l0ID0gdWludHB0cl90OwotICAgIHN0YXRpYyBjb25z
dGV4cHIgY29uc3QgaW50IGJpdHNQZXJCeXRlID0gODsKLSAgICBzdGF0aWMgY29uc3RleHByIGNv
bnN0IGludCBkaWdpdEJpdHMgPSBzaXplb2YoRGlnaXQpICogYml0c1BlckJ5dGU7Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciBjb25zdCBpbnQgaGFsZkRpZ2l0Qml0cyA9IGRpZ2l0Qml0cyAvIDI7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCB1bnNpZ25lZCBiaXRzUGVyQnl0ZSA9IDg7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBjb25zdCB1bnNpZ25lZCBkaWdpdEJpdHMgPSBzaXplb2YoRGlnaXQp
ICogYml0c1BlckJ5dGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCB1bnNpZ25lZCBoYWxm
RGlnaXRCaXRzID0gZGlnaXRCaXRzIC8gMjsKICAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IERp
Z2l0IGhhbGZEaWdpdE1hc2sgPSAoMXVsbCA8PCBoYWxmRGlnaXRCaXRzKSAtIDE7CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBjb25zdCBpbnQgbWF4SW50ID0gMHg3RkZGRkZGRjsKICAgICAKQEAgLTk4
LDEyICs5OSwxMyBAQCBwcml2YXRlOgogICAgIC8vIG1heEludCAvIGRpZ2l0Qml0cy4gSG93ZXZl
ciwgd2UgdXNlIGEgbG93ZXIgbGltaXQgZm9yIG5vdywgYmVjYXVzZQogICAgIC8vIHJhaXNpbmcg
aXQgbGF0ZXIgaXMgZWFzaWVyIHRoYW4gbG93ZXJpbmcgaXQuCiAgICAgLy8gU3VwcG9ydCB1cCB0
byAxIG1pbGxpb24gYml0cy4KLSAgICBzdGF0aWMgY29uc3QgaW50IG1heExlbmd0aCA9IDEwMjQg
KiAxMDI0IC8gKHNpemVvZih2b2lkKikgKiBiaXRzUGVyQnl0ZSk7CisgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIG1heExlbmd0aCA9IDEwMjQgKiAxMDI0IC8gKHNpemVvZih2b2lkKikgKiBiaXRz
UGVyQnl0ZSk7CiAgICAgCi0gICAgc3RhdGljIHVpbnQ2NF90IGNhbGN1bGF0ZU1heGltdW1DaGFy
YWN0ZXJzUmVxdWlyZWQoaW50IGxlbmd0aCwgaW50IHJhZGl4LCBEaWdpdCBsYXN0RGlnaXQsIGJv
b2wgc2lnbik7CisgICAgc3RhdGljIHVpbnQ2NF90IGNhbGN1bGF0ZU1heGltdW1DaGFyYWN0ZXJz
UmVxdWlyZWQodW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCByYWRpeCwgRGlnaXQgbGFzdERpZ2l0
LCBib29sIHNpZ24pOwogICAgIAogICAgIHN0YXRpYyB2b2lkIGFic29sdXRlRGl2U21hbGwoRXhl
Y1N0YXRlJiwgSlNCaWdJbnQqIHgsIERpZ2l0IGRpdmlzb3IsIEpTQmlnSW50KiogcXVvdGllbnQs
IERpZ2l0JiByZW1haW5kZXIpOwotICAgIHN0YXRpYyB2b2lkIGludGVybmFsTXVsdGlwbHlBZGQo
SlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1tYW5kLCBpbnQsIEpTQmln
SW50KiByZXN1bHQpOworICAgIHN0YXRpYyB2b2lkIGludGVybmFsTXVsdGlwbHlBZGQoSlNCaWdJ
bnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1tYW5kLCB1bnNpZ25lZCwgSlNCaWdJ
bnQqIHJlc3VsdCk7CisgICAgc3RhdGljIHZvaWQgbXVsdGlwbHlBY2N1bXVsYXRlKEpTQmlnSW50
KiBtdWx0aXBsaWNhbmQsIERpZ2l0IG11bHRpcGxpZXIsIEpTQmlnSW50KiBhY2N1bXVsYXRvciwg
dW5zaWduZWQgYWNjdW11bGF0b3JJbmRleCk7CiAKICAgICAvLyBEaWdpdCBhcml0aG1ldGljIGhl
bHBlcnMuCiAgICAgc3RhdGljIERpZ2l0IGRpZ2l0QWRkKERpZ2l0IGEsIERpZ2l0IGIsIERpZ2l0
JiBjYXJyeSk7CkBAIC0xMTIsMTcgKzExNCwxNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBEaWdp
dCBkaWdpdERpdihEaWdpdCBoaWdoLCBEaWdpdCBsb3csIERpZ2l0IGRpdmlzb3IsIERpZ2l0JiBy
ZW1haW5kZXIpOwogICAgIHN0YXRpYyBEaWdpdCBkaWdpdFBvdyhEaWdpdCBiYXNlLCBEaWdpdCBl
eHBvbmVudCk7CiAKLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUm
LCBKU0JpZ0ludCosIGludCByYWRpeCk7CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZ0dlbmVy
aWMoRXhlY1N0YXRlJiwgSlNCaWdJbnQqLCB1bnNpZ25lZCByYWRpeCk7CiAKICAgICBib29sIGlz
WmVybygpOwogCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotICAgIHN0YXRpYyBK
U0JpZ0ludCogcGFyc2VJbnQoRXhlY1N0YXRlKiwgQ2hhclR5cGUqICBkYXRhLCBpbnQgbGVuZ3Ro
KTsKKyAgICBzdGF0aWMgSlNCaWdJbnQqIHBhcnNlSW50KEV4ZWNTdGF0ZSosIENoYXJUeXBlKiAg
ZGF0YSwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlw
ZT4KLSAgICBzdGF0aWMgSlNCaWdJbnQqIHBhcnNlSW50KEV4ZWNTdGF0ZSosIFZNJiwgQ2hhclR5
cGUqIGRhdGEsIGludCBsZW5ndGgsIGludCBzdGFydEluZGV4LCBpbnQgcmFkaXgsIGJvb2wgYWxs
b3dFbXB0eVN0cmluZyA9IHRydWUpOworICAgIHN0YXRpYyBKU0JpZ0ludCogcGFyc2VJbnQoRXhl
Y1N0YXRlKiwgVk0mLCBDaGFyVHlwZSogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCBz
dGFydEluZGV4LCB1bnNpZ25lZCByYWRpeCwgYm9vbCBhbGxvd0VtcHR5U3RyaW5nID0gdHJ1ZSk7
CiAKLSAgICBzdGF0aWMgSlNCaWdJbnQqIGFsbG9jYXRlRm9yKEV4ZWNTdGF0ZSosIFZNJiwgaW50
IHJhZGl4LCBpbnQgY2hhcmNvdW50KTsKKyAgICBzdGF0aWMgSlNCaWdJbnQqIGFsbG9jYXRlRm9y
KEV4ZWNTdGF0ZSosIFZNJiwgdW5zaWduZWQgcmFkaXgsIHVuc2lnbmVkIGNoYXJjb3VudCk7CiAK
ICAgICBKU0JpZ0ludCogcmlnaHRUcmltKFZNJik7CiAKQEAgLTEzMSwxMCArMTMzLDEwIEBAIHBy
aXZhdGU6CiAgICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZkRhdGEoKTsKICAgICBEaWdpdCogZGF0
YVN0b3JhZ2UoKTsKIAotICAgIERpZ2l0IGRpZ2l0KGludCk7Ci0gICAgdm9pZCBzZXREaWdpdChp
bnQsIERpZ2l0KTsKKyAgICBEaWdpdCBkaWdpdCh1bnNpZ25lZCk7CisgICAgdm9pZCBzZXREaWdp
dCh1bnNpZ25lZCwgRGlnaXQpOwogICAgICAgICAKLSAgICBpbnQgbV9sZW5ndGg7CisgICAgdW5z
aWduZWQgbV9sZW5ndGg7CiAgICAgYm9vbCBtX3NpZ247CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgKaW5kZXggMTM0OWFlYzE2YTdhODNhOGE4YTU5MGFj
ZWZkNTRiMTc5Yzk3YmYxZi4uODFkN2VlYzNhMWMxYmI1NzBhZTg1M2VmNmU3MjFmOTY4NzkyZWFi
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaApAQCAtMjMs
NiArMjMsNyBAQAogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
SGVscGVycy5oIgorI2luY2x1ZGUgIkpTQmlnSW50LmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTI1Niw2ICsyNTcsMjkgQEAgQUxXQVlTX0lOTElORSBK
U1ZhbHVlIGpzQWRkKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYxLCBKU1ZhbHVlIHYy
KQogICAgIHJldHVybiBqc0FkZFNsb3dDYXNlKGNhbGxGcmFtZSwgdjEsIHYyKTsKIH0KIAorQUxX
QVlTX0lOTElORSBKU1ZhbHVlIGpzTXVsKEV4ZWNTdGF0ZSogc3RhdGUsIEpTVmFsdWUgdjEsIEpT
VmFsdWUgdjIpCit7CisgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CisgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgSlNWYWx1ZSBsZWZ0TnVtYmVyID0gdjEu
dG9QcmltaXRpdmUoc3RhdGUsIFByZWZlck51bWJlcik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgeyB9KTsKKyAgICBKU1ZhbHVlIHJpZ2h0TnVtYmVyID0gdjIudG9QcmltaXRpdmUo
c3RhdGUsIFByZWZlck51bWJlcik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKKworICAgIGlmIChsZWZ0TnVtYmVyLmlzQmlnSW50KCkgfHwgcmlnaHROdW1iZXIuaXNCaWdJ
bnQoKSkgeworICAgICAgICBpZiAobGVmdE51bWJlci5pc0JpZ0ludCgpICYmIHJpZ2h0TnVtYmVy
LmlzQmlnSW50KCkpCisgICAgICAgICAgICByZXR1cm4gSlNCaWdJbnQ6Om11bHRpcGx5KHN0YXRl
LCBhc0JpZ0ludChsZWZ0TnVtYmVyKSwgYXNCaWdJbnQocmlnaHROdW1iZXIpKTsKKworICAgICAg
ICB0aHJvd1R5cGVFcnJvcihzdGF0ZSwgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiSW52YWxpZCBtaXgg
b2YgQmlnSW50IGFuZCBvdGhlciB0eXBlIGluIG11bHRpcGxpY2F0aW9uLiIpKTsKKyAgICAgICAg
cmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBkb3VibGUgbGVmdFZhbHVlID0gIGxlZnROdW1iZXIu
dG9OdW1iZXIoc3RhdGUpOworICAgIGRvdWJsZSByaWdodFZhbHVlID0gIHJpZ2h0TnVtYmVyLnRv
TnVtYmVyKHN0YXRlKTsKKyAgICByZXR1cm4ganNOdW1iZXIobGVmdFZhbHVlICogcmlnaHRWYWx1
ZSk7Cit9CisKIGlubGluZSBib29sIHNjcmliYmxlRnJlZUNlbGxzKCkKIHsKICAgICByZXR1cm4g
IUFTU0VSVF9ESVNBQkxFRCB8fCBPcHRpb25zOjpzY3JpYmJsZUZyZWVDZWxscygpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCBhM2EyNjQz
ZmNjOTNhYmVlYjU4ZjZiMjIyOTAxNzc5ZjJlNDBiNzhkLi43MzRkZTA2MmNjMzQ4Y2E3YmQ0ODFm
ZjZhYTk4NjE5OGJlNGU3ZTI5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9K
U1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTA0LTE3ICBDYWlvIExpbWEg
IDx0aWNhaW9saW1hQGdtYWlsLmNvbT4KKworICAgICAgICBbRVNOZXh0XVtCaWdJbnRdIEltcGxl
bWVudCBzdXBwb3J0IGZvciAiKiIgb3BlcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM3MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGJpZ0ludFRlc3RzLnlhbWw6CisgICAgICAgICogc3Ry
ZXNzL2JpZy1pbnQtbXVsLWppdC5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQt
bXVsLXRvLXByaW1pdGl2ZS1wcmVjZWRlbmNlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3Mv
YmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmln
LWludC1tdWwtdHlwZS1lcnJvci5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQt
bXVsLXdyYXBwZWQtdmFsdWUuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11
bHRpcGxpY2F0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWx0aXBs
eS1tZW1vcnktc3RyZXNzLmpzOiBBZGRlZC4KKwogMjAxOC0wNC0xNCAgRmlsaXAgUGl6bG8gIDxm
cGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsZXIgc2hv
dWxkbid0IHJldHVybiBnZW5lcmF0b3IgYm9kaWVzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL2JpZ0lu
dFRlc3RzLnlhbWwgYi9KU1Rlc3RzL2JpZ0ludFRlc3RzLnlhbWwKaW5kZXggN2FlMjJjYjFiYjJh
ZmY2MmNjNGRkZjQ5NjI5OWY5NmEwNzQ0ZjdhZS4uZTk0N2RjMjk0NWFkZjkwZDA3N2ZjODM3ZDU1
ODNhMWQwOGUzYmM5MSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9iaWdJbnRUZXN0cy55YW1sCisrKyBi
L0pTVGVzdHMvYmlnSW50VGVzdHMueWFtbApAQCAtOTcsMyArOTcsMjQgQEAKIC0gcGF0aDogc3Ry
ZXNzL2JpZy1pbnQtdG8tc3RyaW5nLmpzCiAgIGNtZDogcnVuQmlnSW50RW5hYmxlZAogCistIHBh
dGg6IHN0cmVzcy9iaWctaW50LW11bC1qaXQuanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisK
Ky0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS1wcmVjZWRlbmNlLmpzCisg
IGNtZDogcnVuQmlnSW50RW5hYmxlZAorCistIHBhdGg6IHN0cmVzcy9iaWctaW50LW11bC10by1w
cmltaXRpdmUuanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2Jp
Zy1pbnQtbXVsLXR5cGUtZXJyb3IuanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0
aDogc3RyZXNzL2JpZy1pbnQtbXVsLXdyYXBwZWQtdmFsdWUuanMKKyAgY21kOiBydW5CaWdJbnRF
bmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsdGlwbGljYXRpb24uanMKKyAgY21k
OiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsdGlwbHktbWVt
b3J5LXN0cmVzcy5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1t
dWwtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjYmVkZTMxODc1ZDIxZmIzODIyZTdmMjhmZjA1YmNhY2Ex
YzlmN2EKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC1qaXQu
anMKQEAgLTAsMCArMSwxOSBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworbGV0IGFzc2VydCA9
IHsKKyAgICBzYW1lVmFsdWU6IGZ1bmN0aW9uKGksIGUsIG0pIHsKKyAgICAgICAgaWYgKGkgIT09
IGUpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobSk7CisgICAgfQorfQorCitmdW5jdGlv
biBiaWdJbnRNdWwoeCwgeSkgeworICAgIHJldHVybiB4ICogeTsKK30KK25vSW5saW5lKGJpZ0lu
dE11bCk7CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgeworICAgIGxldCByID0g
YmlnSW50TXVsKDNuLCAxMG4pOworICAgIGFzc2VydC5zYW1lVmFsdWUociwgMzBuLCAzbiArICIg
KiAiICsgMTBuICsgIiA9ICIgKyByKTsKK30KKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
YmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLXByZWNlZGVuY2UuanMgYi9KU1Rlc3RzL3N0cmVzcy9i
aWctaW50LW11bC10by1wcmltaXRpdmUtcHJlY2VkZW5jZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTQ5YTE5
Njg3ZTE0YWVlNzAxM2IzNjg2NDQ5MmU2ODJiZDVlNzVlCi0tLSAvZGV2L251bGwKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLXByZWNlZGVuY2UuanMKQEAgLTAs
MCArMSwzOSBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworYXNzZXJ0ID0geworICAgIHNhbWVW
YWx1ZTogZnVuY3Rpb24gKGlucHV0LCBleHBlY3RlZCwgbWVzc2FnZSkgeworICAgICAgICBpZiAo
aW5wdXQgIT09IGV4cGVjdGVkKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2Up
OworICAgIH0KK307CisKK2Z1bmN0aW9uIHRlc3RNdWwoeCwgeSwgeiwgbWVzc2FnZSkgeworICAg
IGFzc2VydC5zYW1lVmFsdWUoeCAqIHksIHosIG1lc3NhZ2UpOworICAgIGFzc2VydC5zYW1lVmFs
dWUoeSAqIHgsIHosIG1lc3NhZ2UpOworfQorCit0ZXN0TXVsKE9iamVjdCgybiksIDFuLCAybiwg
IlRvUHJpbWl0aXZlOiB1bmJveCBvYmplY3Qgd2l0aCBpbnRlcm5hbCBzbG90Iik7CisKK2xldCBv
ID0geworICAgIFtTeW1ib2wudG9QcmltaXRpdmVdOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0
dXJuIDJuOworICAgIH0sCisgICAgdmFsdWVPZjogZnVuY3Rpb24gKCkgeworICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBleGVjdXRlIGl0Iik7CisgICAgfSwKKyAgICB0b1N0
cmluZzogZnVuY3Rpb24gKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBuZXZl
ciBleGVjdXRlIGl0Iik7CisgICAgfQorfTsKK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9QcmltaXRp
dmU6IEBAdG9QcmltaXRpdmUiKTsKKworbyA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbigpIHsK
KyAgICAgICAgcmV0dXJuIDJuOworICAgIH0sCisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGQgbmV2ZXIgZXhlY3V0ZSBpdCIpOworICAg
IH0KK307Cit0ZXN0TXVsKG8sIDFuLCAybiwgIlRvUHJpbWl0aXZlOiB2YWx1ZU9mIik7CisKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS5qcyBiL0pT
VGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDJl
MmU4ZTI5MTE5ZTI3ZDEzNTc3Y2I1N2FjMmY5NzM1MGZlNmNjCi0tLSAvZGV2L251bGwKKysrIGIv
SlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLmpzCkBAIC0wLDAgKzEsMzUg
QEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKK2Z1bmN0aW9uIGFzc2VydChhKSB7CisgICAgaWYg
KCFhKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBhc3NlcnRpb24iKTsKK30KKworYXNz
ZXJ0LnNhbWVWYWx1ZSA9IGZ1bmN0aW9uIChpbnB1dCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAg
ICBpZiAoaW5wdXQgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2Fn
ZSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RNdWwoeCwgeSwgeikgeworICAgIGFzc2VydC5zYW1lVmFs
dWUoeCAqIHksIHosIHggKyAiICogIiArIHkgKyAiID0gIiArIHopOworICAgIGFzc2VydC5zYW1l
VmFsdWUoeSAqIHgsIHosIHkgKyAiICogIiArIHggKyAiID0gIiArIHopOworfQorCitsZXQgbyA9
IHsKKyAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24gKCkgeyByZXR1cm4gMzAwMDAw
MDAwMDAwMDAwbjsgfQorfQorCit0ZXN0TXVsKDUwMDAwMDAwMDAwMDQzOG4sIG8sIDE1MDAwMDAw
MDAwMDEzMTQwMDAwMDAwMDAwMDAwMG4pOworCitvLnZhbHVlT2YgPSBmdW5jdGlvbiAoKSB7Cisg
ICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGQgbmV2ZXIgZXhlY3V0ZSBpdCIpOworfTsKKwordGVz
dE11bCg3MDAwMDAwMDAwMDA0MzhuLCBvLCAyMTAwMDAwMDAwMDAxMzE0MDAwMDAwMDAwMDAwMDBu
KTsKKworby50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHsKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlNo
b3VsZCBuZXZlciBleGVjdXRlIGl0Iik7Cit9OworCit0ZXN0TXVsKDcwMDAwMDAwMDAwMDQzOG4s
IG8sIDIxMDAwMDAwMDAwMDEzMTQwMDAwMDAwMDAwMDAwMG4pOworCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9iaWctaW50LW11bC10eXBlLWVycm9yLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmln
LWludC1tdWwtdHlwZS1lcnJvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTE3ODQ1N2ZiNjIzNzU3ZmQwZTc3
MzU3N2RjMzk2ZjJmMzBmZTYwCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmln
LWludC1tdWwtdHlwZS1lcnJvci5qcwpAQCAtMCwwICsxLDEwNiBAQAorLy9AIHJ1bkJpZ0ludEVu
YWJsZWQKKworZnVuY3Rpb24gYXNzZXJ0KGEsIG1lc3NhZ2UpIHsKKyAgICBpZiAoIWEpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTsKK30KKworZnVuY3Rpb24gYXNzZXJ0VGhyb3dU
eXBlRXJyb3IoYSwgYiwgbWVzc2FnZSkgeworICAgIHRyeSB7CisgICAgICAgIGxldCBuID0gYSAq
IGI7CisgICAgICAgIGFzc2VydChmYWxzZSwgbWVzc2FnZSArICI6IFNob3VsZCB0aHJvdyBUeXBl
RXJyb3IsIGJ1dCBleGVjdXRlZCB3aXRob3V0IGV4Y2VwdGlvbiIpOworICAgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgICAgYXNzZXJ0KGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IsIG1lc3NhZ2UgKyAiOiBl
eHBlY3RlZCBUeXBlRXJyb3IsIGdvdDogIiArIGUpOworICAgIH0KK30KKworYXNzZXJ0VGhyb3dU
eXBlRXJyb3IoMzBuLCAiZm9vIiwgIkJpZ0ludCAqIFN0cmluZyIpOworYXNzZXJ0VGhyb3dUeXBl
RXJyb3IoImJhciIsIDE4NzU3MzgyOTg0ODIxbiwgIlN0cmluZyAqIEJpZ0ludCIpOworYXNzZXJ0
VGhyb3dUeXBlRXJyb3IoMzBuLCBTeW1ib2woImZvbyIpLCAiQmlnSW50ICogU3ltYm9sIik7Cith
c3NlcnRUaHJvd1R5cGVFcnJvcihTeW1ib2woImJhciIpLCAxODc1NzM4Mjk4NDgyMW4sICJTeW1i
b2wgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgMzMyMCwgIkJpZ0ludCAq
IEludDMyIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMzI1NiwgMTg3NTczODI5ODQ4MjFuLCAi
SW50MzIgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgMC41NDMsICJCaWdJ
bnQgKiBEb3VibGUiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDIzMC4xOTI5MywgMTg3NTczODI5
ODQ4MjFuLCAiRG91YmxlICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIE5h
TiwgIkJpZ0ludCAqIE5hTiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoTmFOLCAxODc1NzM4Mjk4
NDgyMW4sICJOYU4gKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgTmFOLCAi
QmlnSW50ICogTmFOIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihOYU4sIDE4NzU3MzgyOTg0ODIx
biwgIk5hTiAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCArSW5maW5pdHks
ICJCaWdJbnQgKiBOYU4iKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKCtJbmZpbml0eSwgMTg3NTcz
ODI5ODQ4MjFuLCAiTmFOICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIC1J
bmZpbml0eSwgIkJpZ0ludCAqIC1JbmZpbml0eSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoLUlu
ZmluaXR5LCAxODc1NzM4Mjk4NDgyMW4sICItSW5maW5pdHkgKiBCaWdJbnQiKTsKK2Fzc2VydFRo
cm93VHlwZUVycm9yKDMwbiwgbnVsbCwgIkJpZ0ludCAqIG51bGwiKTsKK2Fzc2VydFRocm93VHlw
ZUVycm9yKG51bGwsIDE4NzU3MzgyOTg0ODIxbiwgIm51bGwgKiBCaWdJbnQiKTsKK2Fzc2VydFRo
cm93VHlwZUVycm9yKDMwbiwgdW5kZWZpbmVkLCAiQmlnSW50ICogdW5kZWZpbmVkIik7Cithc3Nl
cnRUaHJvd1R5cGVFcnJvcih1bmRlZmluZWQsIDE4NzU3MzgyOTg0ODIxbiwgInVuZGVmaW5lZCAq
IEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCB0cnVlLCAiQmlnSW50ICogdHJ1
ZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IodHJ1ZSwgMTg3NTczODI5ODQ4MjFuLCAidHJ1ZSAq
IEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBmYWxzZSwgIkJpZ0ludCAqIGZh
bHNlIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihmYWxzZSwgMTg3NTczODI5ODQ4MjFuLCAiZmFs
c2UgKiBCaWdJbnQiKTsKKworLy8gRXJyb3Igd2hlbiByZXR1cm5pbmcgZnJvbSBvYmplY3QKKwor
bGV0IG8gPSB7CisgICAgdmFsdWVPZjogZnVuY3Rpb24gKCkgeyByZXR1cm4gU3ltYm9sKCJGb28i
KTsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0
LnZhbHVlT2YgcmV0dXJuaW5nIFN5bWJvbCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3
NTczODI5ODQ4MjFuLCAiT2JqZWN0LnZhbHVlT2YgcmV0dXJuaW5nIFN5bWJvbCAqIEJpZ0ludCIp
OworCitvID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDMzMjU2OyB9Cit9
OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QudmFsdWVP
ZiByZXR1cm5pbmcgSW50MzIiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0
ODIxbiwgIk9iamVjdC52YWx1ZU9mIHJldHVybmluZyBJbnQzMiAqIEJpZ0ludCIpOworCitvID0g
eworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDAuNDUzOyB9Cit9OworCithc3Nl
cnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QudmFsdWVPZiByZXR1cm5p
bmcgRG91YmxlIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJP
YmplY3QudmFsdWVPZiByZXR1cm5pbmcgRG91YmxlICogQmlnSW50Iik7CisKK28gPSB7CisgICAg
dG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFN5bWJvbCgiRm9vIik7IH0KK307CisKK2Fz
c2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC50b1N0cmluZyByZXR1
cm5pbmcgU3ltYm9sIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4s
ICJPYmplY3QudG9TdHJpbmcgcmV0dXJuaW5nIFN5bWJvbCAqIEJpZ0ludCIpOworCitvID0gewor
ICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7IHJldHVybiAzMzI1NjsgfQorfTsKKworYXNzZXJ0
VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LnRvU3RyaW5nIHJldHVybmlu
ZyBJbnQzMiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2Jq
ZWN0LnRvU3RyaW5nIHJldHVybmluZyBJbnQzMiAqIEJpZ0ludCIpOworCitvID0geworICAgIHRv
U3RyaW5nOiBmdW5jdGlvbiAoKSB7IHJldHVybiAwLjQ1MzsgfQorfTsKKworYXNzZXJ0VGhyb3dU
eXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBEb3Vi
bGUiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC50
b1N0cmluZyByZXR1cm5pbmcgRG91YmxlICogQmlnSW50Iik7CisKK28gPSB7CisgICAgW1N5bWJv
bC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFN5bWJvbCgiRm9vIik7IH0KK307
CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC5AQHRvUHJp
bWl0aXZlIHJldHVybmluZyBTeW1ib2wiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3
MzgyOTg0ODIxbiwgIk9iamVjdC5AQHRvUHJpbWl0aXZlIHJldHVybmluZyBTeW1ib2wgKiBCaWdJ
bnQiKTsKKworbyA9IHsKKyAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24gKCkgeyBy
ZXR1cm4gMzMyNTY7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0lu
dCAqIE9iamVjdC5AQHRvUHJpbWl0aXZlIHJldHVybmluZyBJbnQzMiIpOworYXNzZXJ0VGhyb3dU
eXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJu
aW5nIEludDMyICogQmlnSW50Iik7CisKK28gPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06
IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDAuNDUzOyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJv
cigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcgRG91Ymxl
Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QuQEB0
b1ByaW1pdGl2ZSByZXR1cm5pbmcgRG91YmxlICogQmlnSW50Iik7CisKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXdyYXBwZWQtdmFsdWUuanMgYi9KU1Rlc3RzL3N0cmVz
cy9iaWctaW50LW11bC13cmFwcGVkLXZhbHVlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2NzNkOGE2MDMwMmZh
ZjY2ZGZhNmNmYTFlYjEzNzBlYzhjMjJjM2EKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0
cmVzcy9iaWctaW50LW11bC13cmFwcGVkLXZhbHVlLmpzCkBAIC0wLDAgKzEsMzcgQEAKKy8vQCBy
dW5CaWdJbnRFbmFibGVkCisKK2Fzc2VydCA9IHsKKyAgICBzYW1lVmFsdWU6IGZ1bmN0aW9uIChp
bnB1dCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAgICAgICAgaWYgKGlucHV0ICE9PSBleHBlY3Rl
ZCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTsKKyAgICB9Cit9OworCitm
dW5jdGlvbiB0ZXN0TXVsKHgsIHksIHosIG1lc3NhZ2UpIHsKKyAgICBhc3NlcnQuc2FtZVZhbHVl
KHggKiB5LCB6LCBtZXNzYWdlKTsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKHkgKiB4LCB6LCBtZXNz
YWdlKTsKK30KKwordGVzdE11bChPYmplY3QoMm4pLCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogdW5i
b3ggb2JqZWN0IHdpdGggaW50ZXJuYWwgc2xvdCIpOworCitsZXQgbyA9IHsKKyAgICBbU3ltYm9s
LnRvUHJpbWl0aXZlXTogZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiAybjsKKyAgICB9Cit9
OwordGVzdE11bChvLCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogQEB0b1ByaW1pdGl2ZSIpOworCitv
ID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gMm47CisgICAg
fQorfTsKK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9QcmltaXRpdmU6IHZhbHVlT2YiKTsKKworbyA9
IHsKKyAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiAybjsKKyAgICB9
Cit9Cit0ZXN0TXVsKG8sIDFuLCAybiwgIlRvUHJpbWl0aXZlOiB0b1N0cmluZyIpOworCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bHRpcGxpY2F0aW9uLmpzIGIvSlNUZXN0
cy9zdHJlc3MvYmlnLWludC1tdWx0aXBsaWNhdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZWNkNjM2ZDdm
ODlhMjRhY2ZiYjgxZDcyZDc1NWMyMjhmZTZmYWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9zdHJlc3MvYmlnLWludC1tdWx0aXBsaWNhdGlvbi5qcwpAQCAtMCwwICsxLDgzIEBACisvL0Ag
cnVuQmlnSW50RW5hYmxlZAorCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgUm9iaW4gVGVtcGxldG9u
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBC
U0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCithc3NlcnQgPSB7CisgICAg
c2FtZVZhbHVlOiBmdW5jdGlvbiAoaW5wdXQsIGV4cGVjdGVkLCBtZXNzYWdlKSB7CisgICAgaWYg
KGlucHV0ICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOwor
ICAgIH0KK307CisKK2Z1bmN0aW9uIHRlc3RNdWwoeCwgeSwgeikgeworICAgIGFzc2VydC5zYW1l
VmFsdWUoeCAqIHksIHosIHggKyAiICogIiArIHkgKyAiID0gIiArIHopOworICAgIGFzc2VydC5z
YW1lVmFsdWUoeSAqIHgsIHosIHkgKyAiICogIiArIHggKyAiID0gIiArIHopOworfQorCit0ZXN0
TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4RkRCQUMwOTdD
OERDNUFDQ0RFRUM2Q0Q3QTQ0QTQxMDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwg
MHhGRURDQkE5OG4sIDB4RkRCQUMwOTc1MzBFQ0E4NjU0MUQ1OTgwbik7Cit0ZXN0TXVsKDB4RkVE
Q0JBOTg3NjU0MzIxMG4sIDB4MTIzNG4sIDB4MTIxRjQ5RjQ5RjQ5RjQ5RjRCNDBuKTsKK3Rlc3RN
dWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHgzbiwgMHgyRkM5NjJGQzk2MkZDOTYzMG4pOwordGVz
dE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweDJuLCAweDFGREI5NzUzMEVDQTg2NDIwbik7Cit0
ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4MW4sIDB4RkVEQ0JBOTg3NjU0MzIxMG4pOwor
dGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweDBuLCAweDBuKTsKK3Rlc3RNdWwoMHhGRURD
QkE5ODc2NTQzMjEwbiwgQmlnSW50KCItMSIpLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcy
MCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgQmlnSW50KCItMiIpLCBCaWdJbnQo
Ii0zNjcyOTUxNzA4ODk4NjEyOTQ0MCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwg
QmlnSW50KCItMyIpLCBCaWdJbnQoIi01NTA5NDI3NTYzMzQ3OTE5NDE2MCIpKTsKK3Rlc3RNdWwo
MHhGRURDQkE5ODc2NTQzMjEwbiwgQmlnSW50KCItNDY2MCIpLCBCaWdJbnQoIi04NTU3OTc3NDgx
NzMzNzY4MTU5NTIwMCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgQmlnSW50KCIt
NDI3NTg3ODU1MSIpLCBCaWdJbnQoIi03ODUyNTQ3NzE1NDY5MTg3NDYwNDUwMjgyMDcyMCIpKTsK
K3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgMHhGRURDQkE5ODc2NTQzMjBGbiwgMHhGREJB
QzA5N0M4REM1QUNBRTEzMkY3QTZCN0ExRENFMW4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMy
MEZuLCAweEZFRENCQTk3biwgMHhGREJBQzA5NjU0MzIwRkVDREVFQzZDRDluKTsKK3Rlc3RNdWwo
MHhGRURDQkE5ODc2NTQzMjBGbiwgMHgzbiwgMHgyRkM5NjJGQzk2MkZDOTYyRG4pOwordGVzdE11
bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweDJuLCAweDFGREI5NzUzMEVDQTg2NDFFbik7Cit0ZXN0
TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4MW4sIDB4RkVEQ0JBOTg3NjU0MzIwRm4pOwordGVz
dE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweDBuLCAweDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5
ODc2NTQzMjBGbiwgQmlnSW50KCItMSIpLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcxOSIp
KTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmlnSW50KCItMiIpLCBCaWdJbnQoIi0z
NjcyOTUxNzA4ODk4NjEyOTQzOCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmln
SW50KCItMyIpLCBCaWdJbnQoIi01NTA5NDI3NTYzMzQ3OTE5NDE1NyIpKTsKK3Rlc3RNdWwoMHhG
RURDQkE5ODc2NTQzMjBGbiwgQmlnSW50KCItNDI3NTg3ODU1MSIpLCBCaWdJbnQoIi03ODUyNTQ3
NzE1NDY5MTg3NDYwMDIyNjk0MjE2OSIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwg
QmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgQmlnSW50KCItMzM3MjY0MzU2Mzk3NTMx
MDI4OTc2NjA4Mjg5NjMzNjE1NjEzNjgwIikpOwordGVzdE11bCgweEZFRENCQTk4biwgMHhGRURD
QkE5OG4sIDB4RkRCQUMwOTZERDQxM0E0MG4pOwordGVzdE11bCgweEZFRENCQTk4biwgMHgxMjM0
biwgMHgxMjFGNDlGNDk2RTBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIDB4M24sIDB4MkZDOTYy
RkM4bik7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCAweDJuLCAweDFGREI5NzUzMG4pOwordGVzdE11
bCgweEZFRENCQTk4biwgMHgxbiwgMHhGRURDQkE5OG4pOwordGVzdE11bCgweEZFRENCQTk4biwg
MHgwbiwgMHgwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCBCaWdJbnQoIi0xIiksIEJpZ0ludCgi
LTQyNzU4Nzg1NTIiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCBCaWdJbnQoIi0yIiksIEJpZ0lu
dCgiLTg1NTE3NTcxMDQiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCBCaWdJbnQoIi0zIiksIEJp
Z0ludCgiLTEyODI3NjM1NjU2IikpOwordGVzdE11bCgweEZFRENCQTk4biwgQmlnSW50KCItNDI3
NTg3ODU1MSIpLCBCaWdJbnQoIi0xODI4MzEzNzM4NzE3NzczODE1MiIpKTsKK3Rlc3RNdWwoMHhG
RURDQkE5OG4sIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIEJpZ0ludCgiLTc4NTI1
NDc3MTczMDU2NjMzMTQ4OTk1ODg1NDQwIikpOwordGVzdE11bCgweDNuLCAweDNuLCAweDluKTsK
K3Rlc3RNdWwoMHgzbiwgMHgybiwgMHg2bik7Cit0ZXN0TXVsKDB4M24sIDB4MW4sIDB4M24pOwor
dGVzdE11bCgweDNuLCAweDBuLCAweDBuKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItMSIpLCBC
aWdJbnQoIi0zIikpOwordGVzdE11bCgweDNuLCBCaWdJbnQoIi0yIiksIEJpZ0ludCgiLTYiKSk7
Cit0ZXN0TXVsKDB4M24sIEJpZ0ludCgiLTMiKSwgQmlnSW50KCItOSIpKTsKK3Rlc3RNdWwoMHgz
biwgQmlnSW50KCItNDY2MCIpLCBCaWdJbnQoIi0xMzk4MCIpKTsKK3Rlc3RNdWwoMHgzbiwgQmln
SW50KCItNDI3NTg3ODU1MiIpLCBCaWdJbnQoIi0xMjgyNzYzNTY1NiIpKTsKK3Rlc3RNdWwoMHgz
biwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgQmlnSW50KCItNTUwOTQyNzU2MzM0
NzkxOTQxNjAiKSk7Cit0ZXN0TXVsKDB4MG4sIDB4MG4sIDB4MG4pOwordGVzdE11bCgweDBuLCBC
aWdJbnQoIi0xIiksIDB4MG4pOwordGVzdE11bCgweDBuLCBCaWdJbnQoIi0yIiksIDB4MG4pOwor
dGVzdE11bCgweDBuLCBCaWdJbnQoIi0zIiksIDB4MG4pOwordGVzdE11bCgweDBuLCBCaWdJbnQo
Ii00Mjc1ODc4NTUxIiksIDB4MG4pOwordGVzdE11bCgweDBuLCBCaWdJbnQoIi0xODM2NDc1ODU0
NDQ5MzA2NDcxOSIpLCAweDBuKTsKK3Rlc3RNdWwoQmlnSW50KCItMSIpLCBCaWdJbnQoIi0xIiks
IDB4MW4pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTIiKSwgMHgybik7Cit0ZXN0
TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMyIpLCAweDNuKTsKK3Rlc3RNdWwoQmlnSW50KCIt
MSIpLCBCaWdJbnQoIi00NjYwIiksIDB4MTIzNG4pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJp
Z0ludCgiLTQyNzU4Nzg1NTEiKSwgMHhGRURDQkE5N24pOwordGVzdE11bChCaWdJbnQoIi0xIiks
IEJpZ0ludCgiLTQyNzU4Nzg1NTIiKSwgMHhGRURDQkE5OG4pOwordGVzdE11bChCaWdJbnQoIi0x
IiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzE5IiksIDB4RkVEQ0JBOTg3NjU0MzIwRm4p
OwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiks
IDB4RkVEQ0JBOTg3NjU0MzIxMG4pOwordGVzdE11bChCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTMi
KSwgMHg5bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwgQmlnSW50KCItNDY2MCIpLCAweDM2OUNu
KTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi00Mjc1ODc4NTUxIiksIDB4MkZDOTYy
RkM1bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwgQmlnSW50KCItNDI3NTg3ODU1MiIpLCAweDJG
Qzk2MkZDOG4pOwordGVzdE11bChCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkz
MDY0NzE5IiksIDB4MkZDOTYyRkM5NjJGQzk2MkRuKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBC
aWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpLCAweDJGQzk2MkZDOTYyRkM5NjMwbik7Cit0
ZXN0TXVsKEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIEJpZ0ludCgiLTE4MzY0NzU4
NTQ0NDkzMDY0NzIwIiksIDB4RkRCQUMwOTdDOERDNUFDQ0RFRUM2Q0Q3QTQ0QTQxMDBuKTsKKwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0aXBseS1tZW1vcnktc3RyZXNz
LmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0aXBseS1tZW1vcnktc3RyZXNzLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFhYmFhN2UyOGY5YWVlNjVkMjFjMGQzNmY2M2RmNjgwMjNiOWM4OTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bHRpcGx5LW1lbW9yeS1zdHJl
c3MuanMKQEAgLTAsMCArMSwxNSBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworZnVuY3Rpb24g
YXNzZXJ0KGEpIHsKKyAgICBpZiAoIWEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGFz
c2VydGlvbiIpOworfQorCitsZXQgYSA9IDBuOworbGV0IGIgPSAxbjsKK2ZvciAobGV0IGkgPSAw
OyBpIDwgMTAwMDAwMDsgaSsrKSB7CisgICAgYSA9IGIgKiAzMG47Cit9CisKK2Fzc2VydChhID09
PSAzMG4pOworCg==
</data>
<flag name="review"
          id="356404"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338959</attachid>
            <date>2018-04-26 20:30:00 -0700</date>
            <delta_ts>2018-04-26 20:39:13 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>big-int-multiply.diff</filename>
            <type>text/plain</type>
            <size>44314</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NDYxZjZkNi4uNjRhOTE2MCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxOC0wNC0yMyAgQ2FpbyBMaW1hICA8
dGljYWlvbGltYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1l
bnQgc3VwcG9ydCBmb3IgIioiIG9wZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBC
YXJhdGkuCisKKyAgICAgICAgKiBiaWdJbnRUZXN0cy55YW1sOgorICAgICAgICAqIHN0cmVzcy9i
aWctaW50LW11bC1qaXQuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11bC10
by1wcmltaXRpdmUtcHJlY2VkZW5jZS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1p
bnQtbXVsLXRvLXByaW1pdGl2ZS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQt
bXVsLXR5cGUtZXJyb3IuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11bC13
cmFwcGVkLXZhbHVlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWx0aXBs
aWNhdGlvbi5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVsdGlwbHktbWVt
b3J5LXN0cmVzcy5qczogQWRkZWQuCisKIDIwMTgtMDQtMjUgIFJvYmluIE1vcmlzc2V0ICA8cm1v
cmlzc2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBJbiBGVExMb3dlckRGR1RvQjMuY3BwOjpjb21w
aWxlQ3JlYXRlUmVzdCwgYWx3YXlzIHVzZSBhIGNvbnRpZ3VvdXMgYXJyYXkgYXMgdGhlIGluZGV4
aW5nIHR5cGUgd2hlbiB1bmRlciBpc1dhdGNoaW5nSGF2aW5nQUJhZFRpbWVXYXRjaHBvaW50CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL2JpZ0ludFRlc3RzLnlhbWwgYi9KU1Rlc3RzL2JpZ0ludFRlc3Rz
LnlhbWwKaW5kZXggN2FlMjJjYi4uZTk0N2RjMiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9iaWdJbnRU
ZXN0cy55YW1sCisrKyBiL0pTVGVzdHMvYmlnSW50VGVzdHMueWFtbApAQCAtOTcsMyArOTcsMjQg
QEAKIC0gcGF0aDogc3RyZXNzL2JpZy1pbnQtdG8tc3RyaW5nLmpzCiAgIGNtZDogcnVuQmlnSW50
RW5hYmxlZAogCistIHBhdGg6IHN0cmVzcy9iaWctaW50LW11bC1qaXQuanMKKyAgY21kOiBydW5C
aWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS1w
cmVjZWRlbmNlLmpzCisgIGNtZDogcnVuQmlnSW50RW5hYmxlZAorCistIHBhdGg6IHN0cmVzcy9i
aWctaW50LW11bC10by1wcmltaXRpdmUuanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0g
cGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsLXR5cGUtZXJyb3IuanMKKyAgY21kOiBydW5CaWdJbnRF
bmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsLXdyYXBwZWQtdmFsdWUuanMKKyAg
Y21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsdGlwbGlj
YXRpb24uanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1p
bnQtbXVsdGlwbHktbWVtb3J5LXN0cmVzcy5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtaml0LmpzIGIvSlNUZXN0cy9z
dHJlc3MvYmlnLWludC1tdWwtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjBjYmVkZTMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11
bC1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworbGV0IGFz
c2VydCA9IHsKKyAgICBzYW1lVmFsdWU6IGZ1bmN0aW9uKGksIGUsIG0pIHsKKyAgICAgICAgaWYg
KGkgIT09IGUpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobSk7CisgICAgfQorfQorCitm
dW5jdGlvbiBiaWdJbnRNdWwoeCwgeSkgeworICAgIHJldHVybiB4ICogeTsKK30KK25vSW5saW5l
KGJpZ0ludE11bCk7CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgeworICAgIGxl
dCByID0gYmlnSW50TXVsKDNuLCAxMG4pOworICAgIGFzc2VydC5zYW1lVmFsdWUociwgMzBuLCAz
biArICIgKiAiICsgMTBuICsgIiA9ICIgKyByKTsKK30KKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLXByZWNlZGVuY2UuanMgYi9KU1Rlc3RzL3N0
cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUtcHJlY2VkZW5jZS5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTQ5YTE5Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9zdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLXByZWNlZGVuY2UuanMKQEAgLTAsMCAr
MSwzOSBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworYXNzZXJ0ID0geworICAgIHNhbWVWYWx1
ZTogZnVuY3Rpb24gKGlucHV0LCBleHBlY3RlZCwgbWVzc2FnZSkgeworICAgICAgICBpZiAoaW5w
dXQgIT09IGV4cGVjdGVkKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOwor
ICAgIH0KK307CisKK2Z1bmN0aW9uIHRlc3RNdWwoeCwgeSwgeiwgbWVzc2FnZSkgeworICAgIGFz
c2VydC5zYW1lVmFsdWUoeCAqIHksIHosIG1lc3NhZ2UpOworICAgIGFzc2VydC5zYW1lVmFsdWUo
eSAqIHgsIHosIG1lc3NhZ2UpOworfQorCit0ZXN0TXVsKE9iamVjdCgybiksIDFuLCAybiwgIlRv
UHJpbWl0aXZlOiB1bmJveCBvYmplY3Qgd2l0aCBpbnRlcm5hbCBzbG90Iik7CisKK2xldCBvID0g
eworICAgIFtTeW1ib2wudG9QcmltaXRpdmVdOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJu
IDJuOworICAgIH0sCisgICAgdmFsdWVPZjogZnVuY3Rpb24gKCkgeworICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIlNob3VsZCBuZXZlciBleGVjdXRlIGl0Iik7CisgICAgfSwKKyAgICB0b1N0cmlu
ZzogZnVuY3Rpb24gKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBl
eGVjdXRlIGl0Iik7CisgICAgfQorfTsKK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9QcmltaXRpdmU6
IEBAdG9QcmltaXRpdmUiKTsKKworbyA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbigpIHsKKyAg
ICAgICAgcmV0dXJuIDJuOworICAgIH0sCisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGQgbmV2ZXIgZXhlY3V0ZSBpdCIpOworICAgIH0K
K307Cit0ZXN0TXVsKG8sIDFuLCAybiwgIlRvUHJpbWl0aXZlOiB2YWx1ZU9mIik7CisKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS5qcyBiL0pTVGVz
dHMvc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi42NDJlMmU4Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJl
c3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLmpzCkBAIC0wLDAgKzEsMzUgQEAKKy8vQCBydW5C
aWdJbnRFbmFibGVkCisKK2Z1bmN0aW9uIGFzc2VydChhKSB7CisgICAgaWYgKCFhKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBhc3NlcnRpb24iKTsKK30KKworYXNzZXJ0LnNhbWVWYWx1
ZSA9IGZ1bmN0aW9uIChpbnB1dCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAgICBpZiAoaW5wdXQg
IT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7Cit9CisKK2Z1
bmN0aW9uIHRlc3RNdWwoeCwgeSwgeikgeworICAgIGFzc2VydC5zYW1lVmFsdWUoeCAqIHksIHos
IHggKyAiICogIiArIHkgKyAiID0gIiArIHopOworICAgIGFzc2VydC5zYW1lVmFsdWUoeSAqIHgs
IHosIHkgKyAiICogIiArIHggKyAiID0gIiArIHopOworfQorCitsZXQgbyA9IHsKKyAgICBbU3lt
Ym9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24gKCkgeyByZXR1cm4gMzAwMDAwMDAwMDAwMDAwbjsg
fQorfQorCit0ZXN0TXVsKDUwMDAwMDAwMDAwMDQzOG4sIG8sIDE1MDAwMDAwMDAwMDEzMTQwMDAw
MDAwMDAwMDAwMG4pOworCitvLnZhbHVlT2YgPSBmdW5jdGlvbiAoKSB7CisgICAgdGhyb3cgbmV3
IEVycm9yKCJTaG91bGQgbmV2ZXIgZXhlY3V0ZSBpdCIpOworfTsKKwordGVzdE11bCg3MDAwMDAw
MDAwMDA0MzhuLCBvLCAyMTAwMDAwMDAwMDAxMzE0MDAwMDAwMDAwMDAwMDBuKTsKKworby50b1N0
cmluZyA9IGZ1bmN0aW9uICgpIHsKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBl
eGVjdXRlIGl0Iik7Cit9OworCit0ZXN0TXVsKDcwMDAwMDAwMDAwMDQzOG4sIG8sIDIxMDAwMDAw
MDAwMDEzMTQwMDAwMDAwMDAwMDAwMG4pOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9i
aWctaW50LW11bC10eXBlLWVycm9yLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdHlw
ZS1lcnJvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTE3ODQ1Ci0t
LSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdHlwZS1lcnJvci5q
cwpAQCAtMCwwICsxLDEwNiBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworZnVuY3Rpb24gYXNz
ZXJ0KGEsIG1lc3NhZ2UpIHsKKyAgICBpZiAoIWEpCisgICAgICAgIHRocm93IG5ldyBFcnJvciht
ZXNzYWdlKTsKK30KKworZnVuY3Rpb24gYXNzZXJ0VGhyb3dUeXBlRXJyb3IoYSwgYiwgbWVzc2Fn
ZSkgeworICAgIHRyeSB7CisgICAgICAgIGxldCBuID0gYSAqIGI7CisgICAgICAgIGFzc2VydChm
YWxzZSwgbWVzc2FnZSArICI6IFNob3VsZCB0aHJvdyBUeXBlRXJyb3IsIGJ1dCBleGVjdXRlZCB3
aXRob3V0IGV4Y2VwdGlvbiIpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgYXNzZXJ0KGUg
aW5zdGFuY2VvZiBUeXBlRXJyb3IsIG1lc3NhZ2UgKyAiOiBleHBlY3RlZCBUeXBlRXJyb3IsIGdv
dDogIiArIGUpOworICAgIH0KK30KKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCAiZm9vIiwg
IkJpZ0ludCAqIFN0cmluZyIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoImJhciIsIDE4NzU3Mzgy
OTg0ODIxbiwgIlN0cmluZyAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBT
eW1ib2woImZvbyIpLCAiQmlnSW50ICogU3ltYm9sIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihT
eW1ib2woImJhciIpLCAxODc1NzM4Mjk4NDgyMW4sICJTeW1ib2wgKiBCaWdJbnQiKTsKK2Fzc2Vy
dFRocm93VHlwZUVycm9yKDMwbiwgMzMyMCwgIkJpZ0ludCAqIEludDMyIik7Cithc3NlcnRUaHJv
d1R5cGVFcnJvcigzMzI1NiwgMTg3NTczODI5ODQ4MjFuLCAiSW50MzIgKiBCaWdJbnQiKTsKK2Fz
c2VydFRocm93VHlwZUVycm9yKDMwbiwgMC41NDMsICJCaWdJbnQgKiBEb3VibGUiKTsKK2Fzc2Vy
dFRocm93VHlwZUVycm9yKDIzMC4xOTI5MywgMTg3NTczODI5ODQ4MjFuLCAiRG91YmxlICogQmln
SW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIE5hTiwgIkJpZ0ludCAqIE5hTiIpOwor
YXNzZXJ0VGhyb3dUeXBlRXJyb3IoTmFOLCAxODc1NzM4Mjk4NDgyMW4sICJOYU4gKiBCaWdJbnQi
KTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgTmFOLCAiQmlnSW50ICogTmFOIik7Cithc3Nl
cnRUaHJvd1R5cGVFcnJvcihOYU4sIDE4NzU3MzgyOTg0ODIxbiwgIk5hTiAqIEJpZ0ludCIpOwor
YXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCArSW5maW5pdHksICJCaWdJbnQgKiBOYU4iKTsKK2Fz
c2VydFRocm93VHlwZUVycm9yKCtJbmZpbml0eSwgMTg3NTczODI5ODQ4MjFuLCAiTmFOICogQmln
SW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIC1JbmZpbml0eSwgIkJpZ0ludCAqIC1J
bmZpbml0eSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoLUluZmluaXR5LCAxODc1NzM4Mjk4NDgy
MW4sICItSW5maW5pdHkgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbnVs
bCwgIkJpZ0ludCAqIG51bGwiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG51bGwsIDE4NzU3Mzgy
OTg0ODIxbiwgIm51bGwgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgdW5k
ZWZpbmVkLCAiQmlnSW50ICogdW5kZWZpbmVkIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcih1bmRl
ZmluZWQsIDE4NzU3MzgyOTg0ODIxbiwgInVuZGVmaW5lZCAqIEJpZ0ludCIpOworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IoMzBuLCB0cnVlLCAiQmlnSW50ICogdHJ1ZSIpOworYXNzZXJ0VGhyb3dUeXBl
RXJyb3IodHJ1ZSwgMTg3NTczODI5ODQ4MjFuLCAidHJ1ZSAqIEJpZ0ludCIpOworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IoMzBuLCBmYWxzZSwgIkJpZ0ludCAqIGZhbHNlIik7Cithc3NlcnRUaHJvd1R5
cGVFcnJvcihmYWxzZSwgMTg3NTczODI5ODQ4MjFuLCAiZmFsc2UgKiBCaWdJbnQiKTsKKworLy8g
RXJyb3Igd2hlbiByZXR1cm5pbmcgZnJvbSBvYmplY3QKKworbGV0IG8gPSB7CisgICAgdmFsdWVP
ZjogZnVuY3Rpb24gKCkgeyByZXR1cm4gU3ltYm9sKCJGb28iKTsgfQorfTsKKworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LnZhbHVlT2YgcmV0dXJuaW5nIFN5
bWJvbCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0
LnZhbHVlT2YgcmV0dXJuaW5nIFN5bWJvbCAqIEJpZ0ludCIpOworCitvID0geworICAgIHZhbHVl
T2Y6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDMzMjU2OyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVF
cnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgSW50MzIiKTsK
K2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC52YWx1ZU9m
IHJldHVybmluZyBJbnQzMiAqIEJpZ0ludCIpOworCitvID0geworICAgIHZhbHVlT2Y6IGZ1bmN0
aW9uICgpIHsgcmV0dXJuIDAuNDUzOyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4s
IG8sICJCaWdJbnQgKiBPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgRG91YmxlIik7Cithc3NlcnRU
aHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QudmFsdWVPZiByZXR1cm5p
bmcgRG91YmxlICogQmlnSW50Iik7CisKK28gPSB7CisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgp
IHsgcmV0dXJuIFN5bWJvbCgiRm9vIik7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMw
biwgbywgIkJpZ0ludCAqIE9iamVjdC50b1N0cmluZyByZXR1cm5pbmcgU3ltYm9sIik7Cithc3Nl
cnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QudG9TdHJpbmcgcmV0
dXJuaW5nIFN5bWJvbCAqIEJpZ0ludCIpOworCitvID0geworICAgIHRvU3RyaW5nOiBmdW5jdGlv
biAoKSB7IHJldHVybiAzMzI1NjsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBv
LCAiQmlnSW50ICogT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBJbnQzMiIpOworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LnRvU3RyaW5nIHJldHVybmlu
ZyBJbnQzMiAqIEJpZ0ludCIpOworCitvID0geworICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7
IHJldHVybiAwLjQ1MzsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmln
SW50ICogT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBEb3VibGUiKTsKK2Fzc2VydFRocm93VHlw
ZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC50b1N0cmluZyByZXR1cm5pbmcgRG91
YmxlICogQmlnSW50Iik7CisKK28gPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0
aW9uICgpIHsgcmV0dXJuIFN5bWJvbCgiRm9vIik7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVy
cm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC5AQHRvUHJpbWl0aXZlIHJldHVybmluZyBTeW1i
b2wiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC5A
QHRvUHJpbWl0aXZlIHJldHVybmluZyBTeW1ib2wgKiBCaWdJbnQiKTsKKworbyA9IHsKKyAgICBb
U3ltYm9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24gKCkgeyByZXR1cm4gMzMyNTY7IH0KK307CisK
K2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC5AQHRvUHJpbWl0
aXZlIHJldHVybmluZyBJbnQzMiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5
ODQ4MjFuLCAiT2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5nIEludDMyICogQmlnSW50Iik7
CisKK28gPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9uICgpIHsgcmV0dXJu
IDAuNDUzOyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBP
YmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcgRG91YmxlIik7Cithc3NlcnRUaHJvd1R5cGVF
cnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcg
RG91YmxlICogQmlnSW50Iik7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQt
bXVsLXdyYXBwZWQtdmFsdWUuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC13cmFwcGVk
LXZhbHVlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2NzNkOGEKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC13cmFwcGVkLXZhbHVl
LmpzCkBAIC0wLDAgKzEsMzcgQEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKK2Fzc2VydCA9IHsK
KyAgICBzYW1lVmFsdWU6IGZ1bmN0aW9uIChpbnB1dCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAg
ICAgICAgaWYgKGlucHV0ICE9PSBleHBlY3RlZCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cihtZXNzYWdlKTsKKyAgICB9Cit9OworCitmdW5jdGlvbiB0ZXN0TXVsKHgsIHksIHosIG1lc3Nh
Z2UpIHsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKHggKiB5LCB6LCBtZXNzYWdlKTsKKyAgICBhc3Nl
cnQuc2FtZVZhbHVlKHkgKiB4LCB6LCBtZXNzYWdlKTsKK30KKwordGVzdE11bChPYmplY3QoMm4p
LCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogdW5ib3ggb2JqZWN0IHdpdGggaW50ZXJuYWwgc2xvdCIp
OworCitsZXQgbyA9IHsKKyAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24oKSB7Cisg
ICAgICAgIHJldHVybiAybjsKKyAgICB9Cit9OwordGVzdE11bChvLCAxbiwgMm4sICJUb1ByaW1p
dGl2ZTogQEB0b1ByaW1pdGl2ZSIpOworCitvID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uKCkg
eworICAgICAgICByZXR1cm4gMm47CisgICAgfQorfTsKK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9Q
cmltaXRpdmU6IHZhbHVlT2YiKTsKKworbyA9IHsKKyAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7
CisgICAgICAgIHJldHVybiAybjsKKyAgICB9Cit9Cit0ZXN0TXVsKG8sIDFuLCAybiwgIlRvUHJp
bWl0aXZlOiB0b1N0cmluZyIpOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50
LW11bHRpcGxpY2F0aW9uLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0aXBsaWNhdGlv
bi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZWNkNjM2Ci0tLSAvZGV2
L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0aXBsaWNhdGlvbi5qcwpAQCAt
MCwwICsxLDgzIEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCisvLyBDb3B5cmlnaHQgKEMpIDIw
MTcgUm9iaW4gVGVtcGxldG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlz
IGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgor
Cithc3NlcnQgPSB7CisgICAgc2FtZVZhbHVlOiBmdW5jdGlvbiAoaW5wdXQsIGV4cGVjdGVkLCBt
ZXNzYWdlKSB7CisgICAgaWYgKGlucHV0ICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKG1lc3NhZ2UpOworICAgIH0KK307CisKK2Z1bmN0aW9uIHRlc3RNdWwoeCwgeSwgeikg
eworICAgIGFzc2VydC5zYW1lVmFsdWUoeCAqIHksIHosIHggKyAiICogIiArIHkgKyAiID0gIiAr
IHopOworICAgIGFzc2VydC5zYW1lVmFsdWUoeSAqIHgsIHosIHkgKyAiICogIiArIHggKyAiID0g
IiArIHopOworfQorCit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4RkVEQ0JBOTg3NjU0
MzIxMG4sIDB4RkRCQUMwOTdDOERDNUFDQ0RFRUM2Q0Q3QTQ0QTQxMDBuKTsKK3Rlc3RNdWwoMHhG
RURDQkE5ODc2NTQzMjEwbiwgMHhGRURDQkE5OG4sIDB4RkRCQUMwOTc1MzBFQ0E4NjU0MUQ1OTgw
bik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4MTIzNG4sIDB4MTIxRjQ5RjQ5RjQ5
RjQ5RjRCNDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHgzbiwgMHgyRkM5NjJG
Qzk2MkZDOTYzMG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweDJuLCAweDFGREI5
NzUzMEVDQTg2NDIwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4MW4sIDB4RkVE
Q0JBOTg3NjU0MzIxMG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweDBuLCAweDBu
KTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgQmlnSW50KCItMSIpLCBCaWdJbnQoIi0x
ODM2NDc1ODU0NDQ5MzA2NDcyMCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgQmln
SW50KCItMiIpLCBCaWdJbnQoIi0zNjcyOTUxNzA4ODk4NjEyOTQ0MCIpKTsKK3Rlc3RNdWwoMHhG
RURDQkE5ODc2NTQzMjEwbiwgQmlnSW50KCItMyIpLCBCaWdJbnQoIi01NTA5NDI3NTYzMzQ3OTE5
NDE2MCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgQmlnSW50KCItNDY2MCIpLCBC
aWdJbnQoIi04NTU3OTc3NDgxNzMzNzY4MTU5NTIwMCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2
NTQzMjEwbiwgQmlnSW50KCItNDI3NTg3ODU1MSIpLCBCaWdJbnQoIi03ODUyNTQ3NzE1NDY5MTg3
NDYwNDUwMjgyMDcyMCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgMHhGRURDQkE5
ODc2NTQzMjBGbiwgMHhGREJBQzA5N0M4REM1QUNBRTEzMkY3QTZCN0ExRENFMW4pOwordGVzdE11
bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweEZFRENCQTk3biwgMHhGREJBQzA5NjU0MzIwRkVDREVF
QzZDRDluKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgMHgzbiwgMHgyRkM5NjJGQzk2
MkZDOTYyRG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweDJuLCAweDFGREI5NzUz
MEVDQTg2NDFFbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4MW4sIDB4RkVEQ0JB
OTg3NjU0MzIwRm4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweDBuLCAweDBuKTsK
K3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmlnSW50KCItMSIpLCBCaWdJbnQoIi0xODM2
NDc1ODU0NDQ5MzA2NDcxOSIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmlnSW50
KCItMiIpLCBCaWdJbnQoIi0zNjcyOTUxNzA4ODk4NjEyOTQzOCIpKTsKK3Rlc3RNdWwoMHhGRURD
QkE5ODc2NTQzMjBGbiwgQmlnSW50KCItMyIpLCBCaWdJbnQoIi01NTA5NDI3NTYzMzQ3OTE5NDE1
NyIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmlnSW50KCItNDI3NTg3ODU1MSIp
LCBCaWdJbnQoIi03ODUyNTQ3NzE1NDY5MTg3NDYwMDIyNjk0MjE2OSIpKTsKK3Rlc3RNdWwoMHhG
RURDQkE5ODc2NTQzMjBGbiwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgQmlnSW50
KCItMzM3MjY0MzU2Mzk3NTMxMDI4OTc2NjA4Mjg5NjMzNjE1NjEzNjgwIikpOwordGVzdE11bCgw
eEZFRENCQTk4biwgMHhGRURDQkE5OG4sIDB4RkRCQUMwOTZERDQxM0E0MG4pOwordGVzdE11bCgw
eEZFRENCQTk4biwgMHgxMjM0biwgMHgxMjFGNDlGNDk2RTBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5
OG4sIDB4M24sIDB4MkZDOTYyRkM4bik7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCAweDJuLCAweDFG
REI5NzUzMG4pOwordGVzdE11bCgweEZFRENCQTk4biwgMHgxbiwgMHhGRURDQkE5OG4pOwordGVz
dE11bCgweEZFRENCQTk4biwgMHgwbiwgMHgwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCBCaWdJ
bnQoIi0xIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTIiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCBC
aWdJbnQoIi0yIiksIEJpZ0ludCgiLTg1NTE3NTcxMDQiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOThu
LCBCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTEyODI3NjM1NjU2IikpOwordGVzdE11bCgweEZFRENC
QTk4biwgQmlnSW50KCItNDI3NTg3ODU1MSIpLCBCaWdJbnQoIi0xODI4MzEzNzM4NzE3NzczODE1
MiIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIw
IiksIEJpZ0ludCgiLTc4NTI1NDc3MTczMDU2NjMzMTQ4OTk1ODg1NDQwIikpOwordGVzdE11bCgw
eDNuLCAweDNuLCAweDluKTsKK3Rlc3RNdWwoMHgzbiwgMHgybiwgMHg2bik7Cit0ZXN0TXVsKDB4
M24sIDB4MW4sIDB4M24pOwordGVzdE11bCgweDNuLCAweDBuLCAweDBuKTsKK3Rlc3RNdWwoMHgz
biwgQmlnSW50KCItMSIpLCBCaWdJbnQoIi0zIikpOwordGVzdE11bCgweDNuLCBCaWdJbnQoIi0y
IiksIEJpZ0ludCgiLTYiKSk7Cit0ZXN0TXVsKDB4M24sIEJpZ0ludCgiLTMiKSwgQmlnSW50KCIt
OSIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItNDY2MCIpLCBCaWdJbnQoIi0xMzk4MCIpKTsK
K3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItNDI3NTg3ODU1MiIpLCBCaWdJbnQoIi0xMjgyNzYzNTY1
NiIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgQmln
SW50KCItNTUwOTQyNzU2MzM0NzkxOTQxNjAiKSk7Cit0ZXN0TXVsKDB4MG4sIDB4MG4sIDB4MG4p
OwordGVzdE11bCgweDBuLCBCaWdJbnQoIi0xIiksIDB4MG4pOwordGVzdE11bCgweDBuLCBCaWdJ
bnQoIi0yIiksIDB4MG4pOwordGVzdE11bCgweDBuLCBCaWdJbnQoIi0zIiksIDB4MG4pOwordGVz
dE11bCgweDBuLCBCaWdJbnQoIi00Mjc1ODc4NTUxIiksIDB4MG4pOwordGVzdE11bCgweDBuLCBC
aWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcxOSIpLCAweDBuKTsKK3Rlc3RNdWwoQmlnSW50KCIt
MSIpLCBCaWdJbnQoIi0xIiksIDB4MW4pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgi
LTIiKSwgMHgybik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMyIpLCAweDNuKTsK
K3Rlc3RNdWwoQmlnSW50KCItMSIpLCBCaWdJbnQoIi00NjYwIiksIDB4MTIzNG4pOwordGVzdE11
bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTEiKSwgMHhGRURDQkE5N24pOwordGVz
dE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTIiKSwgMHhGRURDQkE5OG4pOwor
dGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzE5IiksIDB4
RkVEQ0JBOTg3NjU0MzIwRm4pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTE4MzY0
NzU4NTQ0NDkzMDY0NzIwIiksIDB4RkVEQ0JBOTg3NjU0MzIxMG4pOwordGVzdE11bChCaWdJbnQo
Ii0zIiksIEJpZ0ludCgiLTMiKSwgMHg5bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwgQmlnSW50
KCItNDY2MCIpLCAweDM2OUNuKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi00Mjc1
ODc4NTUxIiksIDB4MkZDOTYyRkM1bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwgQmlnSW50KCIt
NDI3NTg3ODU1MiIpLCAweDJGQzk2MkZDOG4pOwordGVzdE11bChCaWdJbnQoIi0zIiksIEJpZ0lu
dCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzE5IiksIDB4MkZDOTYyRkM5NjJGQzk2MkRuKTsKK3Rlc3RN
dWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpLCAweDJGQzk2
MkZDOTYyRkM5NjMwbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiks
IEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIDB4RkRCQUMwOTdDOERDNUFDQ0RFRUM2
Q0Q3QTQ0QTQxMDBuKTsKKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0
aXBseS1tZW1vcnktc3RyZXNzLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0aXBseS1t
ZW1vcnktc3RyZXNzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhYmFh
N2UKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bHRpcGx5LW1l
bW9yeS1zdHJlc3MuanMKQEAgLTAsMCArMSwxNSBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKwor
ZnVuY3Rpb24gYXNzZXJ0KGEpIHsKKyAgICBpZiAoIWEpCisgICAgICAgIHRocm93IG5ldyBFcnJv
cigiQmFkIGFzc2VydGlvbiIpOworfQorCitsZXQgYSA9IDBuOworbGV0IGIgPSAxbjsKK2ZvciAo
bGV0IGkgPSAwOyBpIDwgMTAwMDAwMDsgaSsrKSB7CisgICAgYSA9IGIgKiAzMG47Cit9CisKK2Fz
c2VydChhID09PSAzMG4pOworCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBmZGEyODYwLi45
YTlhMzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxOC0w
NC0yNyAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTTmV4
dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgIioiIG9wZXJhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNzIxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIFNhYW0gQmFyYXRpLgorCisgICAgICAgIEFkZGVkIEJpZ0ludCBz
dXBwb3J0IGludG8gdGltZXMgYmluYXJ5IG9wZXJhdG9yIGludG8gTExJbnQgYW5kIG9uCisgICAg
ICAgIEpJVE9wZXJhdGlvbnMgcHJvZmlsZWRNdWwgYW5kIHVucHJvZmlsZWRNdWwuIFdlIGFyZSBh
bHNvIHJlcGxhY2luZyBhbGwKKyAgICAgICAgdXNlcyBvZiBpbnQgdG8gdW5zaWduZWQgd2hlbiB0
aGVyZSBpcyBubyBuZWdhdGl2ZSB2YWx1ZXMgZm9yCisgICAgICAgIHZhcmlhYmxlcy4KKworICAg
ICAgICAqIGRmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6Q29uc3RhbnRGb2xkaW5nUGhhc2U6OmZvbGRDb25zdGFudHMpOgorICAgICAgICAqIGppdC9K
SVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHA6
CisgICAgICAgIChKU0M6OlNMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKiBydW50aW1lL0pTQmln
SW50LmNwcDoKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OkpTQmlnSW50KToKKyAgICAgICAgKEpT
Qzo6SlNCaWdJbnQ6OmFsbG9jYXRpb25TaXplKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OmNy
ZWF0ZVdpdGhMZW5ndGgpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6dG9TdHJpbmcpOgorICAg
ICAgICAoSlNDOjpKU0JpZ0ludDo6bXVsdGlwbHkpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6
ZGlnaXREaXYpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6aW50ZXJuYWxNdWx0aXBseUFkZCk6
CisgICAgICAgIChKU0M6OkpTQmlnSW50OjptdWx0aXBseUFjY3VtdWxhdGUpOgorICAgICAgICAo
SlNDOjpKU0JpZ0ludDo6ZXF1YWxzKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OmFic29sdXRl
RGl2U21hbGwpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6Y2FsY3VsYXRlTWF4aW11bUNoYXJh
Y3RlcnNSZXF1aXJlZCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMp
OgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6cmlnaHRUcmltKToKKyAgICAgICAgKEpTQzo6SlNC
aWdJbnQ6OmFsbG9jYXRlRm9yKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OnBhcnNlSW50KToK
KyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OmRpZ2l0KToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6
OnNldERpZ2l0KToKKyAgICAgICAgKiBydW50aW1lL0pTQmlnSW50Lmg6CisgICAgICAgICogcnVu
dGltZS9PcGVyYXRpb25zLmg6CisgICAgICAgIChKU0M6OmpzTXVsKToKKwogMjAxOC0wNC0yNiAg
TWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgR2FyZGVuaW5nOiBTcGVj
dWxhdGl2ZSBidWlsZCBmaXggZm9yIFdpbmRvd3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCmluZGV4IGNlZTY1NjIuLmU0
NjUwYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRG
b2xkaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3Rh
bnRGb2xkaW5nUGhhc2UuY3BwCkBAIC0xNDYsMTQgKzE0NiwxNCBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgICAgICAgICBKU1ZhbHVlIGNoaWxkMkNvbnN0YW50ID0gbV9zdGF0ZS5mb3JOb2RlKG5v
ZGUtPmNoaWxkMigpLm5vZGUoKSkudmFsdWUoKTsKIAogICAgICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogUmV2aXNpdCB0aGlzIGNvbmRpdGlvbiB3aGVuIGludHJvZHVjaW5nIEJpZ0ludCB0byBK
U0MuCi0gICAgICAgICAgICAgICAgICAgIGF1dG8gaXNOb25TdHJpbmdDZWxsQ29uc3RhbnQgPSBb
XSAoSlNWYWx1ZSB2YWx1ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVl
ICYmIHZhbHVlLmlzQ2VsbCgpICYmICF2YWx1ZS5pc1N0cmluZygpOworICAgICAgICAgICAgICAg
ICAgICBhdXRvIGlzTm9uU3RyaW5nT3JCaWdJbnRDZWxsQ29uc3RhbnQgPSBbXSAoSlNWYWx1ZSB2
YWx1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlICYmIHZhbHVlLmlz
Q2VsbCgpICYmICF2YWx1ZS5pc1N0cmluZygpICYmICF2YWx1ZS5pc0JpZ0ludCgpOwogICAgICAg
ICAgICAgICAgICAgICB9OwogCi0gICAgICAgICAgICAgICAgICAgIGlmIChpc05vblN0cmluZ0Nl
bGxDb25zdGFudChjaGlsZDFDb25zdGFudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlz
Tm9uU3RyaW5nT3JCaWdJbnRDZWxsQ29uc3RhbnQoY2hpbGQxQ29uc3RhbnQpKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9Db21wYXJlRXFQdHIobV9ncmFwaC5mcmVl
emVTdHJvbmcoY2hpbGQxQ29uc3RhbnQuYXNDZWxsKCkpLCBub2RlLT5jaGlsZDIoKSk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChpc05vblN0cmluZ0NlbGxDb25zdGFudChjaGlsZDJDb25zdGFudCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc05vblN0cmluZ09yQmlnSW50Q2VsbENvbnN0
YW50KGNoaWxkMkNvbnN0YW50KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y29u
dmVydFRvQ29tcGFyZUVxUHRyKG1fZ3JhcGguZnJlZXplU3Ryb25nKGNoaWxkMkNvbnN0YW50LmFz
Q2VsbCgpKSwgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdl
ZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IDM2NWJiNzMuLjYyZmMxYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMjU1NCwzNCArMjU1NCwy
MyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkTm9PcHRp
bWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
cmVzdWx0KTsKIH0KIAotQUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgdW5wcm9m
aWxlZE11bChWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKK0FMV0FZU19JTkxJTkUgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIHVucHJvZmlsZWRNdWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQogewotICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkT3AxKTsKICAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkT3AyKTsKIAotICAgIGRvdWJsZSBhID0gb3AxLnRvTnVtYmVyKGV4ZWMpOwotICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIHNjb3BlLnJlbGVh
c2UoKTsKLSAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsKLSAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGEgKiBiKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc011bChleGVjLCBvcDEsIG9wMikpOwogfQogCi1BTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBwcm9maWxlZE11bChWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxl
JiBhcml0aFByb2ZpbGUsIGJvb2wgc2hvdWxkT2JzZXJ2ZUxIU0FuZFJIU1R5cGVzID0gdHJ1ZSkK
K0FMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHByb2ZpbGVkTXVsKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMiwgQXJpdGhQcm9maWxlJiBhcml0aFByb2ZpbGUsIGJvb2wgc2hvdWxkT2JzZXJ2ZUxIU0Fu
ZFJIU1R5cGVzID0gdHJ1ZSkKIHsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CiAg
ICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CiAKICAgICBpZiAo
c2hvdWxkT2JzZXJ2ZUxIU0FuZFJIU1R5cGVzKQogICAgICAgICBhcml0aFByb2ZpbGUub2JzZXJ2
ZUxIU0FuZFJIUyhvcDEsIG9wMik7CiAKLSAgICBkb3VibGUgYSA9IG9wMS50b051bWJlcihleGVj
KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAg
ICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICAKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGpz
TnVtYmVyKGEgKiBiKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTXVsKGV4ZWMsIG9wMSwgb3Ay
KTsKICAgICBhcml0aFByb2ZpbGUub2JzZXJ2ZVJlc3VsdChyZXN1bHQpOwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KQEAgLTI1OTEsNyArMjU4MCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWwoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBlCiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAKLSAgICByZXR1cm4gdW5wcm9maWxlZE11
bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOworICAgIHJldHVybiB1bnByb2Zp
bGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwogfQogCiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsTm9PcHRpbWl6ZShFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIs
IEpJVE11bElDKikKQEAgLTI1OTksNyArMjU4OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVmFsdWVNdWxOb09wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgZXhlYyk7CiAKLSAgICByZXR1cm4gdW5wcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVu
Y29kZWRPcDEsIGVuY29kZWRPcDIpOworICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKGV4ZWMsIGVu
Y29kZWRPcDEsIGVuY29kZWRPcDIpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZhbHVlTXVsT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRNdWxJQyogbXVsSUMp
CkBAIC0yNjE2LDcgKzI2MDUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlTXVsT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSgogICAgIGV4ZWMt
PmNvZGVCbG9jaygpLT5kdW1wTWF0aElDU3RhdHMoKTsKICNlbmRpZgogCi0gICAgcmV0dXJuIHVu
cHJvZmlsZWRNdWwoKnZtLCBleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyKTsKKyAgICByZXR1
cm4gdW5wcm9maWxlZE11bChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyKTsKIH0KIAogRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMiwgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUpCkBAIC0yNjI1LDcgKzI2MTQsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSgogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGV4ZWMpOwogCiAgICAgQVNTRVJUKGFyaXRoUHJvZmlsZSk7Ci0gICAgcmV0dXJuIHBy
b2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmls
ZSk7CisgICAgcmV0dXJuIHByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIs
ICphcml0aFByb2ZpbGUpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlTXVsUHJvZmlsZWRPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVE11bElDKiBtdWxJ
QykKQEAgLTI2NDMsNyArMjYzMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmFsdWVNdWxQcm9maWxlZE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywKICAgICBleGVj
LT5jb2RlQmxvY2soKS0+ZHVtcE1hdGhJQ1N0YXRzKCk7CiAjZW5kaWYKIAotICAgIHJldHVybiBw
cm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIsICphcml0aFByb2Zp
bGUsIGZhbHNlKTsKKyAgICByZXR1cm4gcHJvZmlsZWRNdWwoZXhlYywgZW5jb2RlZE9wMSwgZW5j
b2RlZE9wMiwgKmFyaXRoUHJvZmlsZSwgZmFsc2UpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWROb09wdGltaXplKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MiwgSklUTXVsSUMqIG11bElDKQpAQCAtMjY1Myw3ICsyNjQyLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkTm9PcHRpbWl6ZShFeGVjU3Rh
dGUqIGV4ZWMKIAogICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gbXVsSUMtPmFyaXRo
UHJvZmlsZSgpOwogICAgIEFTU0VSVChhcml0aFByb2ZpbGUpOwotICAgIHJldHVybiBwcm9maWxl
ZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIsICphcml0aFByb2ZpbGUpOwor
ICAgIHJldHVybiBwcm9maWxlZE11bChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCAqYXJp
dGhQcm9maWxlKTsKIH0KIAogQUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgdW5w
cm9maWxlZE5lZ2F0ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcGVy
YW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRo
cy5jcHAKaW5kZXggZTZjMWE0NC4uZGY4ZmU3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtNDg2LDEwICs0ODYsMjQgQEAg
U0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX211bCkKICAgICBCRUdJTigpOwogICAgIEpTVmFsdWUg
bGVmdCA9IE9QX0MoMikuanNWYWx1ZSgpOwogICAgIEpTVmFsdWUgcmlnaHQgPSBPUF9DKDMpLmpz
VmFsdWUoKTsKLSAgICBkb3VibGUgYSA9IGxlZnQudG9OdW1iZXIoZXhlYyk7Ci0gICAgaWYgKFVO
TElLRUxZKHRocm93U2NvcGUuZXhjZXB0aW9uKCkpKQotICAgICAgICBSRVRVUk4oSlNWYWx1ZSgp
KTsKLSAgICBkb3VibGUgYiA9IHJpZ2h0LnRvTnVtYmVyKGV4ZWMpOworICAgIEpTVmFsdWUgbGVm
dFByaW1pdGl2ZSA9IGxlZnQudG9QcmltaXRpdmUoZXhlYywgUHJlZmVyTnVtYmVyKTsgCisgICAg
Q0hFQ0tfRVhDRVBUSU9OKCk7CisgICAgSlNWYWx1ZSByaWdodFByaW1pdGl2ZSA9IHJpZ2h0LnRv
UHJpbWl0aXZlKGV4ZWMsIFByZWZlck51bWJlcik7CisgICAgQ0hFQ0tfRVhDRVBUSU9OKCk7Cisg
ICAgCisgICAgaWYgKGxlZnRQcmltaXRpdmUuaXNCaWdJbnQoKSB8fCByaWdodFByaW1pdGl2ZS5p
c0JpZ0ludCgpKSB7CisgICAgICAgIGlmIChsZWZ0UHJpbWl0aXZlLmlzQmlnSW50KCkgJiYgcmln
aHRQcmltaXRpdmUuaXNCaWdJbnQoKSkgeworICAgICAgICAgICAgSlNWYWx1ZSByZXN1bHQoSlNC
aWdJbnQ6Om11bHRpcGx5KGV4ZWMsIGFzQmlnSW50KGxlZnRQcmltaXRpdmUpLCBhc0JpZ0ludChy
aWdodFByaW1pdGl2ZSkpKTsKKyAgICAgICAgICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1
bHQsIHsKKyAgICAgICAgICAgICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5hcnlBcml0aE9w
KGV4ZWMsIHBjLCByZXN1bHQsIGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9CisKKyAgICAgICAgVEhST1coY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJJbnZhbGlkIG1peCBv
ZiBCaWdJbnQgYW5kIG90aGVyIHR5cGUgaW4gbXVsdGlwbGljYXRpb24uIikpOworICAgIH0KKwor
ICAgIGRvdWJsZSBhID0gbGVmdFByaW1pdGl2ZS50b051bWJlcihleGVjKTsKKyAgICBkb3VibGUg
YiA9IHJpZ2h0UHJpbWl0aXZlLnRvTnVtYmVyKGV4ZWMpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0g
anNOdW1iZXIoYSAqIGIpOwogICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1bHQsIHsKICAg
ICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5QXJpdGhPcChleGVjLCBwYywgcmVzdWx0
LCBsZWZ0LCByaWdodCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0JpZ0ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5j
cHAKaW5kZXggYzUxYzhiMi4uOTE5N2I5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQmlnSW50LmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIEpTQmlnSW50Ojp2aXNpdENo
aWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgQmFzZTo6dmlz
aXRDaGlsZHJlbih0aGlzT2JqZWN0LCB2aXNpdG9yKTsKIH0KIAotSlNCaWdJbnQ6OkpTQmlnSW50
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgpCitKU0JpZ0ludDo6SlNC
aWdJbnQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgdW5zaWduZWQgbGVuZ3RoKQogICAg
IDogQmFzZSh2bSwgc3RydWN0dXJlKQogICAgICwgbV9sZW5ndGgobGVuZ3RoKQogeyB9CkBAIC05
MywxMyArOTMsMTMgQEAgSlNCaWdJbnQqIEpTQmlnSW50OjpjcmVhdGVaZXJvKFZNJiB2bSkKICAg
ICByZXR1cm4gemVyb0JpZ0ludDsKIH0KIAotc2l6ZV90IEpTQmlnSW50OjphbGxvY2F0aW9uU2l6
ZShpbnQgbGVuZ3RoKQorc2l6ZV90IEpTQmlnSW50OjphbGxvY2F0aW9uU2l6ZSh1bnNpZ25lZCBs
ZW5ndGgpCiB7CiAgICAgc2l6ZV90IHNpemVXaXRoUGFkZGluZyA9IFdURjo6cm91bmRVcFRvTXVs
dGlwbGVPZjxzaXplb2Yoc2l6ZV90KT4oc2l6ZW9mKEpTQmlnSW50KSk7CiAgICAgcmV0dXJuIHNp
emVXaXRoUGFkZGluZyArIGxlbmd0aCAqIHNpemVvZihEaWdpdCk7CiB9CiAKLUpTQmlnSW50KiBK
U0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aChWTSYgdm0sIGludCBsZW5ndGgpCitKU0JpZ0ludCog
SlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGgoVk0mIHZtLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAg
ICAgSlNCaWdJbnQqIGJpZ0ludCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpTQmlnSW50
Pih2bS5oZWFwLCBhbGxvY2F0aW9uU2l6ZShsZW5ndGgpKSkgSlNCaWdJbnQodm0sIHZtLmJpZ0lu
dFN0cnVjdHVyZS5nZXQoKSwgbGVuZ3RoKTsKICAgICBiaWdJbnQtPmZpbmlzaENyZWF0aW9uKHZt
KTsKQEAgLTIyMyw3ICsyMjMsNyBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNT
dGF0ZSogc3RhdGUsIFZNJiB2bSwgU3RyaW5nVmlldyBzLCB1aW50OF90IHJhZAogICAgIHJldHVy
biBwYXJzZUludChzdGF0ZSwgdm0sIHMuY2hhcmFjdGVyczE2KCksIHMubGVuZ3RoKCksIDAsIHJh
ZGl4LCBmYWxzZSk7CiB9CiAKLVN0cmluZyBKU0JpZ0ludDo6dG9TdHJpbmcoRXhlY1N0YXRlJiBz
dGF0ZSwgaW50IHJhZGl4KQorU3RyaW5nIEpTQmlnSW50Ojp0b1N0cmluZyhFeGVjU3RhdGUmIHN0
YXRlLCB1bnNpZ25lZCByYWRpeCkKIHsKICAgICBpZiAodGhpcy0+aXNaZXJvKCkpCiAgICAgICAg
IHJldHVybiBzdGF0ZS52bSgpLnNtYWxsU3RyaW5ncy5zaW5nbGVDaGFyYWN0ZXJTdHJpbmdSZXAo
JzAnKTsKQEAgLTI0Niw2ICsyNDYsMjYgQEAgdm9pZCBKU0JpZ0ludDo6aW5wbGFjZU11bHRpcGx5
QWRkKHVpbnRwdHJfdCBmYWN0b3IsIHVpbnRwdHJfdCBzdW1tYW5kKQogICAgIGludGVybmFsTXVs
dGlwbHlBZGQodGhpcywgZmFjdG9yLCBzdW1tYW5kLCBsZW5ndGgoKSwgdGhpcyk7CiB9CiAKK0pT
QmlnSW50KiBKU0JpZ0ludDo6bXVsdGlwbHkoRXhlY1N0YXRlKiBzdGF0ZSwgSlNCaWdJbnQqIHgs
IEpTQmlnSW50KiB5KQoreworICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOworCisgICAgaWYgKHgt
PmlzWmVybygpKQorICAgICAgICByZXR1cm4geDsKKyAgICBpZiAoeS0+aXNaZXJvKCkpCisgICAg
ICAgIHJldHVybiB5OworCisgICAgdW5zaWduZWQgcmVzdWx0TGVuZ3RoID0geC0+bGVuZ3RoKCkg
KyB5LT5sZW5ndGgoKTsKKyAgICBKU0JpZ0ludCogcmVzdWx0ID0gSlNCaWdJbnQ6OmNyZWF0ZVdp
dGhMZW5ndGgodm0sIHJlc3VsdExlbmd0aCk7CisgICAgcmVzdWx0LT5pbml0aWFsaXplKEluaXRp
YWxpemF0aW9uVHlwZTo6V2l0aFplcm8pOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHgtPmxlbmd0aCgpOyBpKyspCisgICAgICAgIG11bHRpcGx5QWNjdW11bGF0ZSh5LCB4LT5kaWdp
dChpKSwgcmVzdWx0LCBpKTsKKworICAgIHJlc3VsdC0+c2V0U2lnbih4LT5zaWduKCkgIT0geS0+
c2lnbigpKTsKKyAgICByZXR1cm4gcmVzdWx0LT5yaWdodFRyaW0odm0pOworfQorCiAjaWYgVVNF
KEpTVkFMVUUzMl82NCkKICNkZWZpbmUgSEFWRV9UV09fRElHSVQgMQogdHlwZWRlZiB1aW50NjRf
dCBUd29EaWdpdDsKQEAgLTM3OCw5ICszOTgsOSBAQCBKU0JpZ0ludDo6RGlnaXQgSlNCaWdJbnQ6
OmRpZ2l0RGl2KERpZ2l0IGhpZ2gsIERpZ2l0IGxvdywgRGlnaXQgZGl2aXNvciwgRGlnaXQmCiAg
ICAgc3RhdGljIGNvbnN0IERpZ2l0IGtIYWxmRGlnaXRCYXNlID0gMXVsbCA8PCBoYWxmRGlnaXRC
aXRzOwogICAgIC8vIEFkYXB0ZWQgZnJvbSBXYXJyZW4sIEhhY2tlcidzIERlbGlnaHQsIHAuIDE1
Mi4KICNpZiBVU0UoSlNWQUxVRTY0KQotICAgIGludCBzID0gY2x6NjQoZGl2aXNvcik7CisgICAg
dW5zaWduZWQgcyA9IGNsejY0KGRpdmlzb3IpOwogI2Vsc2UKLSAgICBpbnQgcyA9IGNsejMyKGRp
dmlzb3IpOworICAgIHVuc2lnbmVkIHMgPSBjbHozMihkaXZpc29yKTsKICNlbmRpZgogICAgIGRp
dmlzb3IgPDw9IHM7CiAgICAgCkBAIC00MjMsMTQgKzQ0MywxNCBAQCBKU0JpZ0ludDo6RGlnaXQg
SlNCaWdJbnQ6OmRpZ2l0RGl2KERpZ2l0IGhpZ2gsIERpZ2l0IGxvdywgRGlnaXQgZGl2aXNvciwg
RGlnaXQmCiAKIC8vIE11bHRpcGxpZXMge3NvdXJjZX0gd2l0aCB7ZmFjdG9yfSBhbmQgYWRkcyB7
c3VtbWFuZH0gdG8gdGhlIHJlc3VsdC4KIC8vIHtyZXN1bHR9IGFuZCB7c291cmNlfSBtYXkgYmUg
dGhlIHNhbWUgQmlnSW50IGZvciBpbnBsYWNlIG1vZGlmaWNhdGlvbi4KLXZvaWQgSlNCaWdJbnQ6
OmludGVybmFsTXVsdGlwbHlBZGQoSlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdp
dCBzdW1tYW5kLCBpbnQgbiwgSlNCaWdJbnQqIHJlc3VsdCkKK3ZvaWQgSlNCaWdJbnQ6OmludGVy
bmFsTXVsdGlwbHlBZGQoSlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1t
YW5kLCB1bnNpZ25lZCBuLCBKU0JpZ0ludCogcmVzdWx0KQogewogICAgIEFTU0VSVChzb3VyY2Ut
Pmxlbmd0aCgpID49IG4pOwogICAgIEFTU0VSVChyZXN1bHQtPmxlbmd0aCgpID49IG4pOwogCiAg
ICAgRGlnaXQgY2FycnkgPSBzdW1tYW5kOwogICAgIERpZ2l0IGhpZ2ggPSAwOwotICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG47
IGkrKykgewogICAgICAgICBEaWdpdCBjdXJyZW50ID0gc291cmNlLT5kaWdpdChpKTsKICAgICAg
ICAgRGlnaXQgbmV3Q2FycnkgPSAwOwogCkBAIC00NTgsNiArNDc4LDQ5IEBAIHZvaWQgSlNCaWdJ
bnQ6OmludGVybmFsTXVsdGlwbHlBZGQoSlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBE
aWdpdCBzdW1tYW5kCiAgICAgICAgIEFTU0VSVCghKGNhcnJ5ICsgaGlnaCkpOwogfQogCisvLyBN
dWx0aXBsaWVzIHttdWx0aXBsaWNhbmR9IHdpdGgge211bHRpcGxpZXJ9IGFuZCBhZGRzIHRoZSBy
ZXN1bHQgdG8KKy8vIHthY2N1bXVsYXRvcn0sIHN0YXJ0aW5nIGF0IHthY2N1bXVsYXRvckluZGV4
fSBmb3IgdGhlIGxlYXN0LXNpZ25pZmljYW50CisvLyBkaWdpdC4KKy8vIENhbGxlcnMgbXVzdCBl
bnN1cmUgdGhhdCB7YWNjdW11bGF0b3J9IGlzIGJpZyBlbm91Z2ggdG8gaG9sZCB0aGUgcmVzdWx0
Lgordm9pZCBKU0JpZ0ludDo6bXVsdGlwbHlBY2N1bXVsYXRlKEpTQmlnSW50KiBtdWx0aXBsaWNh
bmQsIERpZ2l0IG11bHRpcGxpZXIsIEpTQmlnSW50KiBhY2N1bXVsYXRvciwgdW5zaWduZWQgYWNj
dW11bGF0b3JJbmRleCkKK3sKKyAgICBBU1NFUlQoYWNjdW11bGF0b3ItPmxlbmd0aCgpID4gbXVs
dGlwbGljYW5kLT5sZW5ndGgoKSArIGFjY3VtdWxhdG9ySW5kZXgpOworICAgIGlmICghbXVsdGlw
bGllcikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIERpZ2l0IGNhcnJ5ID0gMDsKKyAgICBE
aWdpdCBoaWdoID0gMDsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbXVsdGlwbGljYW5k
LT5sZW5ndGgoKTsgaSsrLCBhY2N1bXVsYXRvckluZGV4KyspIHsKKyAgICAgICAgRGlnaXQgYWNj
ID0gYWNjdW11bGF0b3ItPmRpZ2l0KGFjY3VtdWxhdG9ySW5kZXgpOworICAgICAgICBEaWdpdCBu
ZXdDYXJyeSA9IDA7CisgICAgICAgIAorICAgICAgICAvLyBBZGQgbGFzdCByb3VuZCdzIGNhcnJ5
b3ZlcnMuCisgICAgICAgIGFjYyA9IGRpZ2l0QWRkKGFjYywgaGlnaCwgbmV3Q2FycnkpOworICAg
ICAgICBhY2MgPSBkaWdpdEFkZChhY2MsIGNhcnJ5LCBuZXdDYXJyeSk7CisgICAgICAgIAorICAg
ICAgICAvLyBDb21wdXRlIHRoaXMgcm91bmQncyBtdWx0aXBsaWNhdGlvbi4KKyAgICAgICAgRGln
aXQgbXVsdGlwbGljYW5kRGlnaXQgPSBtdWx0aXBsaWNhbmQtPmRpZ2l0KGkpOworICAgICAgICBE
aWdpdCBsb3cgPSBkaWdpdE11bChtdWx0aXBsaWVyLCBtdWx0aXBsaWNhbmREaWdpdCwgaGlnaCk7
CisgICAgICAgIGFjYyA9IGRpZ2l0QWRkKGFjYywgbG93LCBuZXdDYXJyeSk7CisgICAgICAgIAor
ICAgICAgICAvLyBTdG9yZSByZXN1bHQgYW5kIHByZXBhcmUgZm9yIG5leHQgcm91bmQuCisgICAg
ICAgIGFjY3VtdWxhdG9yLT5zZXREaWdpdChhY2N1bXVsYXRvckluZGV4LCBhY2MpOworICAgICAg
ICBjYXJyeSA9IG5ld0NhcnJ5OworICAgIH0KKyAgICAKKyAgICB3aGlsZSAoY2FycnkgfHwgaGln
aCkgeworICAgICAgICBBU1NFUlQoYWNjdW11bGF0b3JJbmRleCA8IGFjY3VtdWxhdG9yLT5sZW5n
dGgoKSk7CisgICAgICAgIERpZ2l0IGFjYyA9IGFjY3VtdWxhdG9yLT5kaWdpdChhY2N1bXVsYXRv
ckluZGV4KTsKKyAgICAgICAgRGlnaXQgbmV3Q2FycnkgPSAwOworICAgICAgICBhY2MgPSBkaWdp
dEFkZChhY2MsIGhpZ2gsIG5ld0NhcnJ5KTsKKyAgICAgICAgaGlnaCA9IDA7CisgICAgICAgIGFj
YyA9IGRpZ2l0QWRkKGFjYywgY2FycnksIG5ld0NhcnJ5KTsKKyAgICAgICAgYWNjdW11bGF0b3It
PnNldERpZ2l0KGFjY3VtdWxhdG9ySW5kZXgsIGFjYyk7CisgICAgICAgIGNhcnJ5ID0gbmV3Q2Fy
cnk7CisgICAgICAgIGFjY3VtdWxhdG9ySW5kZXgrKzsKKyAgICB9Cit9CisKIGJvb2wgSlNCaWdJ
bnQ6OmVxdWFscyhKU0JpZ0ludCogeCwgSlNCaWdJbnQqIHkpCiB7CiAgICAgaWYgKHgtPnNpZ24o
KSAhPSB5LT5zaWduKCkpCkBAIC00NjYsNyArNTI5LDcgQEAgYm9vbCBKU0JpZ0ludDo6ZXF1YWxz
KEpTQmlnSW50KiB4LCBKU0JpZ0ludCogeSkKICAgICBpZiAoeC0+bGVuZ3RoKCkgIT0geS0+bGVu
Z3RoKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
eC0+bGVuZ3RoKCk7IGkrKykgeworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB4LT5sZW5n
dGgoKTsgaSsrKSB7CiAgICAgICAgIGlmICh4LT5kaWdpdChpKSAhPSB5LT5kaWdpdChpKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC00OTQsNyArNTU3LDcgQEAgdm9pZCBK
U0JpZ0ludDo6YWJzb2x1dGVEaXZTbWFsbChFeGVjU3RhdGUmIHN0YXRlLCBKU0JpZ0ludCogeCwg
RGlnaXQgZGl2aXNvciwgSlMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGludCBsZW5n
dGggPSB4LT5sZW5ndGgoKTsKKyAgICB1bnNpZ25lZCBsZW5ndGggPSB4LT5sZW5ndGgoKTsKICAg
ICBpZiAocXVvdGllbnQgIT0gbnVsbHB0cikgewogICAgICAgICBpZiAoKnF1b3RpZW50ID09IG51
bGxwdHIpCiAgICAgICAgICAgICAqcXVvdGllbnQgPSBKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0
aCh2bSwgbGVuZ3RoKTsKQEAgLTUyMSwxNCArNTg0LDE0IEBAIGNvbnN0ZXhwciB1aW50OF90IG1h
eEJpdHNQZXJDaGFyVGFibGVbXSA9IHsKICAgICAxNjIsIDE2MywgMTY1LCAxNjYsICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIDMzLi4zNgogfTsKIAotc3RhdGljIGNvbnN0IGludCBiaXRzUGVy
Q2hhclRhYmxlU2hpZnQgPSA1Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGJpdHNQZXJDaGFyVGFi
bGVTaGlmdCA9IDU7CiBzdGF0aWMgY29uc3Qgc2l6ZV90IGJpdHNQZXJDaGFyVGFibGVNdWx0aXBs
aWVyID0gMXUgPDwgYml0c1BlckNoYXJUYWJsZVNoaWZ0OwogCiAvLyBDb21wdXRlIChhbiBvdmVy
YXBwcm94aW1hdGlvbiBvZikgdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0aW5nIHN0cmluZzoKIC8v
IERpdmlkZSBiaXQgbGVuZ3RoIG9mIHRoZSBCaWdJbnQgYnkgYml0cyByZXByZXNlbnRhYmxlIHBl
ciBjaGFyYWN0ZXIuCi11aW50NjRfdCBKU0JpZ0ludDo6Y2FsY3VsYXRlTWF4aW11bUNoYXJhY3Rl
cnNSZXF1aXJlZChpbnQgbGVuZ3RoLCBpbnQgcmFkaXgsIERpZ2l0IGxhc3REaWdpdCwgYm9vbCBz
aWduKQordWludDY0X3QgSlNCaWdJbnQ6OmNhbGN1bGF0ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWly
ZWQodW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCByYWRpeCwgRGlnaXQgbGFzdERpZ2l0LCBib29s
IHNpZ24pCiB7Ci0gICAgaW50IGxlYWRpbmdaZXJvczsKKyAgICB1bnNpZ25lZCBsZWFkaW5nWmVy
b3M7CiAgICAgaWYgKHNpemVvZihsYXN0RGlnaXQpID09IDgpCiAgICAgICAgIGxlYWRpbmdaZXJv
cyA9IGNsejY0KGxhc3REaWdpdCk7CiAgICAgZWxzZQpAQCAtNTU2LDcgKzYxOSw3IEBAIHVpbnQ2
NF90IEpTQmlnSW50OjpjYWxjdWxhdGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKGludCBsZW5n
dGgsIGludCByYWRpeCwgRGlnCiAgICAgcmV0dXJuIG1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQ7
CiB9CiAKLVN0cmluZyBKU0JpZ0ludDo6dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUs
IEpTQmlnSW50KiB4LCBpbnQgcmFkaXgpCitTdHJpbmcgSlNCaWdJbnQ6OnRvU3RyaW5nR2VuZXJp
YyhFeGVjU3RhdGUmIHN0YXRlLCBKU0JpZ0ludCogeCwgdW5zaWduZWQgcmFkaXgpCiB7CiAgICAg
Ly8gRklYTUU6IFtKU0NdIFJldmlzaXQgdXNhZ2Ugb2YgU3RyaW5nVmVjdG9yIGludG8gSlNCaWdJ
bnQ6OnRvU3RyaW5nCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4MDY3CkBAIC01NjUsNyArNjI4LDcgQEAgU3RyaW5nIEpTQmlnSW50Ojp0b1N0cmluZ0dl
bmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQqIHgsIGludCByYWRpeCkKICAgICBBU1NF
UlQocmFkaXggPj0gMiAmJiByYWRpeCA8PSAzNik7CiAgICAgQVNTRVJUKCF4LT5pc1plcm8oKSk7
CiAKLSAgICBpbnQgbGVuZ3RoID0geC0+bGVuZ3RoKCk7CisgICAgdW5zaWduZWQgbGVuZ3RoID0g
eC0+bGVuZ3RoKCk7CiAgICAgYm9vbCBzaWduID0geC0+c2lnbigpOwogCiAgICAgdWludDhfdCBt
YXhCaXRzUGVyQ2hhciA9IG1heEJpdHNQZXJDaGFyVGFibGVbcmFkaXhdOwpAQCAtNTgxLDEyICs2
NDQsMTIgQEAgU3RyaW5nIEpTQmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0
ZSwgSlNCaWdJbnQqIHgsIGludCByYWRpeCkKICAgICBpZiAobGVuZ3RoID09IDEpCiAgICAgICAg
IGxhc3REaWdpdCA9IHgtPmRpZ2l0KDApOwogICAgIGVsc2UgewotICAgICAgICBpbnQgY2h1bmtD
aGFycyA9IGRpZ2l0Qml0cyAqIGJpdHNQZXJDaGFyVGFibGVNdWx0aXBsaWVyIC8gbWF4Qml0c1Bl
ckNoYXI7CisgICAgICAgIHVuc2lnbmVkIGNodW5rQ2hhcnMgPSBkaWdpdEJpdHMgKiBiaXRzUGVy
Q2hhclRhYmxlTXVsdGlwbGllciAvIG1heEJpdHNQZXJDaGFyOwogICAgICAgICBEaWdpdCBjaHVu
a0Rpdmlzb3IgPSBkaWdpdFBvdyhyYWRpeCwgY2h1bmtDaGFycyk7CiAKICAgICAgICAgLy8gQnkg
Y29uc3RydWN0aW9uIG9mIGNodW5rQ2hhcnMsIHRoZXJlIGNhbid0IGhhdmUgYmVlbiBvdmVyZmxv
dy4KICAgICAgICAgQVNTRVJUKGNodW5rRGl2aXNvcik7Ci0gICAgICAgIGludCBub25aZXJvRGln
aXQgPSBsZW5ndGggLSAxOworICAgICAgICB1bnNpZ25lZCBub25aZXJvRGlnaXQgPSBsZW5ndGgg
LSAxOwogICAgICAgICBBU1NFUlQoeC0+ZGlnaXQobm9uWmVyb0RpZ2l0KSk7CiAKICAgICAgICAg
Ly8ge3Jlc3R9IGhvbGRzIHRoZSBwYXJ0IG9mIHRoZSBCaWdJbnQgdGhhdCB3ZSBoYXZlbid0IGxv
b2tlZCBhdCB5ZXQuCkBAIC02MDIsNyArNjY1LDcgQEAgU3RyaW5nIEpTQmlnSW50Ojp0b1N0cmlu
Z0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQqIHgsIGludCByYWRpeCkKICAgICAg
ICAgICAgIEFTU0VSVChyZXN0KTsKIAogICAgICAgICAgICAgZGl2aWRlbmQgPSAmcmVzdDsKLSAg
ICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2h1bmtDaGFyczsgaSsrKSB7CisgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY2h1bmtDaGFyczsgaSsrKSB7CiAgICAgICAg
ICAgICAgICAgcmVzdWx0U3RyaW5nLmFwcGVuZChyYWRpeERpZ2l0c1tjaHVuayAlIHJhZGl4XSk7
CiAgICAgICAgICAgICAgICAgY2h1bmsgLz0gcmFkaXg7CiAgICAgICAgICAgICB9CkBAIC02Mjcs
NyArNjkwLDcgQEAgU3RyaW5nIEpTQmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBz
dGF0ZSwgSlNCaWdJbnQqIHgsIGludCByYWRpeCkKICAgICBBU1NFUlQocmVzdWx0U3RyaW5nLnNp
emUoKSA8PSBzdGF0aWNfY2FzdDxzaXplX3Q+KG1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQpKTsK
IAogICAgIC8vIFJlbW92ZSBsZWFkaW5nIHplcm9lcy4KLSAgICBpbnQgbmV3U2l6ZU5vTGVhZGlu
Z1plcm9lcyA9IHJlc3VsdFN0cmluZy5zaXplKCk7CisgICAgdW5zaWduZWQgbmV3U2l6ZU5vTGVh
ZGluZ1plcm9lcyA9IHJlc3VsdFN0cmluZy5zaXplKCk7CiAgICAgd2hpbGUgKG5ld1NpemVOb0xl
YWRpbmdaZXJvZXMgID4gMSAmJiByZXN1bHRTdHJpbmdbbmV3U2l6ZU5vTGVhZGluZ1plcm9lcyAt
IDFdID09ICcwJykKICAgICAgICAgbmV3U2l6ZU5vTGVhZGluZ1plcm9lcy0tOwogCkBAIC02NDYs
MTQgKzcwOSwxNiBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6OnJpZ2h0VHJpbShWTSYgdm0pCiAgICAg
aWYgKGlzWmVybygpKQogICAgICAgICByZXR1cm4gdGhpczsKIAorICAgIEFTU0VSVChtX2xlbmd0
aCk7CisKICAgICBpbnQgbm9uWmVyb0luZGV4ID0gbV9sZW5ndGggLSAxOwogICAgIHdoaWxlIChu
b25aZXJvSW5kZXggPj0gMCAmJiAhZGlnaXQobm9uWmVyb0luZGV4KSkKICAgICAgICAgbm9uWmVy
b0luZGV4LS07CiAKLSAgICBpZiAobm9uWmVyb0luZGV4ID09IG1fbGVuZ3RoIC0gMSkKKyAgICBp
ZiAobm9uWmVyb0luZGV4ID09IHN0YXRpY19jYXN0PGludD4obV9sZW5ndGggLSAxKSkKICAgICAg
ICAgcmV0dXJuIHRoaXM7CiAKLSAgICBpbnQgbmV3TGVuZ3RoID0gbm9uWmVyb0luZGV4ICsgMTsK
KyAgICB1bnNpZ25lZCBuZXdMZW5ndGggPSBub25aZXJvSW5kZXggKyAxOwogICAgIEpTQmlnSW50
KiB0cmltbWVkQmlnSW50ID0gY3JlYXRlV2l0aExlbmd0aCh2bSwgbmV3TGVuZ3RoKTsKICAgICBS
RUxFQVNFX0FTU0VSVCh0cmltbWVkQmlnSW50KTsKICAgICBzdGQ6OmNvcHkoZGF0YVN0b3JhZ2Uo
KSwgZGF0YVN0b3JhZ2UoKSArIG5ld0xlbmd0aCwgdHJpbW1lZEJpZ0ludC0+ZGF0YVN0b3JhZ2Uo
KSk7IApAQCAtNjYzLDE0ICs3MjgsMTQgQEAgSlNCaWdJbnQqIEpTQmlnSW50OjpyaWdodFRyaW0o
Vk0mIHZtKQogICAgIHJldHVybiB0cmltbWVkQmlnSW50OwogfQogCi1KU0JpZ0ludCogSlNCaWdJ
bnQ6OmFsbG9jYXRlRm9yKEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgaW50IHJhZGl4LCBpbnQg
Y2hhcmNvdW50KQorSlNCaWdJbnQqIEpTQmlnSW50OjphbGxvY2F0ZUZvcihFeGVjU3RhdGUqIHN0
YXRlLCBWTSYgdm0sIHVuc2lnbmVkIHJhZGl4LCB1bnNpZ25lZCBjaGFyY291bnQpCiB7CiAgICAg
QVNTRVJUKDIgPD0gcmFkaXggJiYgcmFkaXggPD0gMzYpOwogICAgIEFTU0VSVChjaGFyY291bnQg
Pj0gMCk7CiAKICAgICBzaXplX3QgYml0c1BlckNoYXIgPSBtYXhCaXRzUGVyQ2hhclRhYmxlW3Jh
ZGl4XTsKICAgICBzaXplX3QgY2hhcnMgPSBjaGFyY291bnQ7Ci0gICAgY29uc3QgaW50IHJvdW5k
dXAgPSBiaXRzUGVyQ2hhclRhYmxlTXVsdGlwbGllciAtIDE7CisgICAgY29uc3QgdW5zaWduZWQg
cm91bmR1cCA9IGJpdHNQZXJDaGFyVGFibGVNdWx0aXBsaWVyIC0gMTsKICAgICBpZiAoY2hhcnMg
PD0gKHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkgLSByb3VuZHVwKSAvIGJpdHNQ
ZXJDaGFyKSB7CiAgICAgICAgIHNpemVfdCBiaXRzTWluID0gYml0c1BlckNoYXIgKiBjaGFyczsK
IApAQCAtNjc4LDcgKzc0Myw3IEBAIEpTQmlnSW50KiBKU0JpZ0ludDo6YWxsb2NhdGVGb3IoRXhl
Y1N0YXRlKiBzdGF0ZSwgVk0mIHZtLCBpbnQgcmFkaXgsIGludCBjaGFyY291CiAgICAgICAgIGJp
dHNNaW4gPSAoYml0c01pbiArIHJvdW5kdXApID4+IGJpdHNQZXJDaGFyVGFibGVTaGlmdDsKICAg
ICAgICAgaWYgKGJpdHNNaW4gPD0gc3RhdGljX2Nhc3Q8c2l6ZV90PihtYXhJbnQpKSB7CiAgICAg
ICAgICAgICAvLyBEaXZpZGUgYnkga0RpZ2l0c0JpdHMsIHJvdW5kaW5nIHVwLgotICAgICAgICAg
ICAgaW50IGxlbmd0aCA9IChzdGF0aWNfY2FzdDxpbnQ+KGJpdHNNaW4pICsgZGlnaXRCaXRzIC0g
MSkgLyBkaWdpdEJpdHM7CisgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSAoYml0c01pbiAr
IGRpZ2l0Qml0cyAtIDEpIC8gZGlnaXRCaXRzOwogICAgICAgICAgICAgaWYgKGxlbmd0aCA8PSBt
YXhMZW5ndGgpIHsKICAgICAgICAgICAgICAgICBKU0JpZ0ludCogcmVzdWx0ID0gSlNCaWdJbnQ6
OmNyZWF0ZVdpdGhMZW5ndGgodm0sIGxlbmd0aCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKQEAgLTcxOSwxMSArNzg0LDExIEBAIHNpemVfdCBKU0JpZ0ludDo6b2Zmc2V0T2ZEYXRh
KCkKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotSlNCaWdJbnQqIEpTQmlnSW50
OjpwYXJzZUludChFeGVjU3RhdGUqIHN0YXRlLCBDaGFyVHlwZSogIGRhdGEsIGludCBsZW5ndGgp
CitKU0JpZ0ludCogSlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0ZSogc3RhdGUsIENoYXJUeXBl
KiAgZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwog
Ci0gICAgaW50IHAgPSAwOworICAgIHVuc2lnbmVkIHAgPSAwOwogICAgIHdoaWxlIChwIDwgbGVu
Z3RoICYmIGlzU3RyV2hpdGVTcGFjZShkYXRhW3BdKSkKICAgICAgICAgKytwOwogCkBAIC03NTgs
MTAgKzgyMywxMCBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0ZSogc3Rh
dGUsIENoYXJUeXBlKiAgZGF0YSwgaW50IGxlbmd0aCkKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1l
IENoYXJUeXBlPgotSlNCaWdJbnQqIEpTQmlnSW50OjpwYXJzZUludChFeGVjU3RhdGUqIHN0YXRl
LCBWTSYgdm0sIENoYXJUeXBlKiBkYXRhLCBpbnQgbGVuZ3RoLCBpbnQgc3RhcnRJbmRleCwgaW50
IHJhZGl4LCBib29sIGFsbG93RW1wdHlTdHJpbmcpCitKU0JpZ0ludCogSlNCaWdJbnQ6OnBhcnNl
SW50KEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgQ2hhclR5cGUqIGRhdGEsIHVuc2lnbmVkIGxl
bmd0aCwgdW5zaWduZWQgc3RhcnRJbmRleCwgdW5zaWduZWQgcmFkaXgsIGJvb2wgYWxsb3dFbXB0
eVN0cmluZykKIHsKICAgICBBU1NFUlQobGVuZ3RoID49IDApOwotICAgIGludCBwID0gc3RhcnRJ
bmRleDsKKyAgICB1bnNpZ25lZCBwID0gc3RhcnRJbmRleDsKIAogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIApAQCAtNzc3LDcgKzg0Miw3IEBAIEpTQmlnSW50KiBK
U0JpZ0ludDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwgVk0mIHZtLCBDaGFyVHlwZSogZGF0
YSwgaW50IGxlbmd0CiAKICAgICBpbnQgZW5kSW5kZXggPSBsZW5ndGggLSAxOwogICAgIC8vIFJl
bW92aW5nIHRyYWlsaW5nIHNwYWNlcwotICAgIHdoaWxlIChlbmRJbmRleCA+PSBwICYmIGlzU3Ry
V2hpdGVTcGFjZShkYXRhW2VuZEluZGV4XSkpCisgICAgd2hpbGUgKGVuZEluZGV4ID49IHN0YXRp
Y19jYXN0PGludD4ocCkgJiYgaXNTdHJXaGl0ZVNwYWNlKGRhdGFbZW5kSW5kZXhdKSkKICAgICAg
ICAgLS1lbmRJbmRleDsKIAogICAgIGxlbmd0aCA9IGVuZEluZGV4ICsgMTsKQEAgLTc4NSwxNiAr
ODUwLDE2IEBAIEpTQmlnSW50KiBKU0JpZ0ludDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwg
Vk0mIHZtLCBDaGFyVHlwZSogZGF0YSwgaW50IGxlbmd0CiAgICAgaWYgKHAgPT0gbGVuZ3RoKQog
ICAgICAgICByZXR1cm4gY3JlYXRlWmVybyh2bSk7CiAKLSAgICBpbnQgbGltaXQwID0gJzAnICsg
KHJhZGl4IDwgMTAgPyByYWRpeCA6IDEwKTsKLSAgICBpbnQgbGltaXRhID0gJ2EnICsgKHJhZGl4
IC0gMTApOwotICAgIGludCBsaW1pdEEgPSAnQScgKyAocmFkaXggLSAxMCk7CisgICAgdW5zaWdu
ZWQgbGltaXQwID0gJzAnICsgKHJhZGl4IDwgMTAgPyByYWRpeCA6IDEwKTsKKyAgICB1bnNpZ25l
ZCBsaW1pdGEgPSAnYScgKyAocmFkaXggLSAxMCk7CisgICAgdW5zaWduZWQgbGltaXRBID0gJ0En
ICsgKHJhZGl4IC0gMTApOwogCiAgICAgSlNCaWdJbnQqIHJlc3VsdCA9IGFsbG9jYXRlRm9yKHN0
YXRlLCB2bSwgcmFkaXgsIGxlbmd0aCAtIHApOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIG51bGxwdHIpOwogCiAgICAgcmVzdWx0LT5pbml0aWFsaXplKEluaXRpYWxpemF0aW9uVHlw
ZTo6V2l0aFplcm8pOwogCi0gICAgZm9yIChpbnQgaSA9IHA7IGkgPCBsZW5ndGg7IGkrKywgcCsr
KSB7CisgICAgZm9yICh1bnNpZ25lZCBpID0gcDsgaSA8IGxlbmd0aDsgaSsrLCBwKyspIHsKICAg
ICAgICAgdWludDMyX3QgZGlnaXQ7CiAgICAgICAgIGlmIChkYXRhW2ldID49ICcwJyAmJiBkYXRh
W2ldIDwgbGltaXQwKQogICAgICAgICAgICAgZGlnaXQgPSBkYXRhW2ldIC0gJzAnOwpAQCAtODIy
LDEzICs4ODcsMTMgQEAgSlNCaWdJbnQ6OkRpZ2l0KiBKU0JpZ0ludDo6ZGF0YVN0b3JhZ2UoKQog
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PERpZ2l0Kj4ocmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odGhpcykgKyBvZmZzZXRPZkRhdGEoKSk7CiB9CiAKLUpTQmlnSW50OjpEaWdpdCBKU0JpZ0lu
dDo6ZGlnaXQoaW50IG4pCitKU0JpZ0ludDo6RGlnaXQgSlNCaWdJbnQ6OmRpZ2l0KHVuc2lnbmVk
IG4pCiB7CiAgICAgQVNTRVJUKG4gPj0gMCAmJiBuIDwgbGVuZ3RoKCkpOwogICAgIHJldHVybiBk
YXRhU3RvcmFnZSgpW25dOwogfQogCi12b2lkIEpTQmlnSW50OjpzZXREaWdpdChpbnQgbiwgRGln
aXQgdmFsdWUpCit2b2lkIEpTQmlnSW50OjpzZXREaWdpdCh1bnNpZ25lZCBuLCBEaWdpdCB2YWx1
ZSkKIHsKICAgICBBU1NFUlQobiA+PSAwICYmIG4gPCBsZW5ndGgoKSk7CiAgICAgZGF0YVN0b3Jh
Z2UoKVtuXSA9IHZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCaWdJbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgK
aW5kZXggMjk4YzM0OC4uZWIxMmMwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCaWdJbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JpZ0ludC5oCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVibGlj
IEpTQ2VsbCB7CiAKIHB1YmxpYzoKIAotICAgIEpTQmlnSW50KFZNJiwgU3RydWN0dXJlKiwgaW50
IGxlbmd0aCk7CisgICAgSlNCaWdJbnQoVk0mLCBTdHJ1Y3R1cmUqLCB1bnNpZ25lZCBsZW5ndGgp
OwogCiAgICAgZW51bSBjbGFzcyBJbml0aWFsaXphdGlvblR5cGUgeyBOb25lLCBXaXRoWmVybyB9
OwogICAgIHZvaWQgaW5pdGlhbGl6ZShJbml0aWFsaXphdGlvblR5cGUpOwpAQCAtNDksMTIgKzQ5
LDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNs
b3RWaXNpdG9yJik7CiAKICAgICBzdGF0aWMgc2l6ZV90IGVzdGltYXRlZFNpemUoSlNDZWxsKik7
Ci0gICAgc3RhdGljIHNpemVfdCBhbGxvY2F0aW9uU2l6ZShpbnQgbGVuZ3RoKTsKKyAgICBzdGF0
aWMgc2l6ZV90IGFsbG9jYXRpb25TaXplKHVuc2lnbmVkIGxlbmd0aCk7CiAKICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUg
cHJvdG90eXBlKTsKLQogICAgIHN0YXRpYyBKU0JpZ0ludCogY3JlYXRlWmVybyhWTSYpOwotICAg
IHN0YXRpYyBKU0JpZ0ludCogY3JlYXRlV2l0aExlbmd0aChWTSYsIGludCBsZW5ndGgpOworICAg
IHN0YXRpYyBKU0JpZ0ludCogY3JlYXRlV2l0aExlbmd0aChWTSYsIHVuc2lnbmVkIGxlbmd0aCk7
CiAKICAgICBzdGF0aWMgSlNCaWdJbnQqIGNyZWF0ZUZyb20oVk0mLCBpbnQzMl90IHZhbHVlKTsK
ICAgICBzdGF0aWMgSlNCaWdJbnQqIGNyZWF0ZUZyb20oVk0mLCB1aW50MzJfdCB2YWx1ZSk7CkBA
IC03MCwxNCArNjksMTQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2lnbihib29sIHNpZ24pIHsg
bV9zaWduID0gc2lnbjsgfQogICAgIGJvb2wgc2lnbigpIGNvbnN0IHsgcmV0dXJuIG1fc2lnbjsg
fQogCi0gICAgdm9pZCBzZXRMZW5ndGgoaW50IGxlbmd0aCkgeyBtX2xlbmd0aCA9IGxlbmd0aDsg
fQotICAgIGludCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQorICAgIHZvaWQg
c2V0TGVuZ3RoKHVuc2lnbmVkIGxlbmd0aCkgeyBtX2xlbmd0aCA9IGxlbmd0aDsgfQorICAgIHVu
c2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CiAKICAgICBzdGF0aWMg
SlNCaWdJbnQqIHBhcnNlSW50KEV4ZWNTdGF0ZSosIFZNJiwgU3RyaW5nVmlldywgdWludDhfdCBy
YWRpeCk7CiAgICAgc3RhdGljIEpTQmlnSW50KiBwYXJzZUludChFeGVjU3RhdGUqLCBTdHJpbmdW
aWV3KTsKIAogICAgIHN0ZDo6b3B0aW9uYWw8dWludDhfdD4gc2luZ2xlRGlnaXRWYWx1ZUZvclN0
cmluZygpOwotICAgIFN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUmLCBpbnQgcmFkaXgpOworICAg
IFN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUmLCB1bnNpZ25lZCByYWRpeCk7CiAgICAgCiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wgZXF1YWxzKEpTQmlnSW50KiwgSlNCaWdJbnQq
KTsKIApAQCAtODUsMTIgKzg0LDE0IEBAIHB1YmxpYzoKICAgICBkb3VibGUgdG9OdW1iZXIoRXhl
Y1N0YXRlKikgY29uc3Q7CiAKICAgICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNH
bG9iYWxPYmplY3QqKSBjb25zdDsKKworICAgIHN0YXRpYyBKU0JpZ0ludCogbXVsdGlwbHkoRXhl
Y1N0YXRlKiwgSlNCaWdJbnQqIHgsIEpTQmlnSW50KiB5KTsKICAgICAKIHByaXZhdGU6CiAgICAg
dXNpbmcgRGlnaXQgPSB1aW50cHRyX3Q7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQg
Yml0c1BlckJ5dGUgPSA4OwotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgaW50IGRpZ2l0Qml0
cyA9IHNpemVvZihEaWdpdCkgKiBiaXRzUGVyQnl0ZTsKLSAgICBzdGF0aWMgY29uc3RleHByIGNv
bnN0IGludCBoYWxmRGlnaXRCaXRzID0gZGlnaXRCaXRzIC8gMjsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIGNvbnN0IHVuc2lnbmVkIGJpdHNQZXJCeXRlID0gODsKKyAgICBzdGF0aWMgY29uc3RleHBy
IGNvbnN0IHVuc2lnbmVkIGRpZ2l0Qml0cyA9IHNpemVvZihEaWdpdCkgKiBiaXRzUGVyQnl0ZTsK
KyAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IHVuc2lnbmVkIGhhbGZEaWdpdEJpdHMgPSBkaWdp
dEJpdHMgLyAyOwogICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgRGlnaXQgaGFsZkRpZ2l0TWFz
ayA9ICgxdWxsIDw8IGhhbGZEaWdpdEJpdHMpIC0gMTsKICAgICBzdGF0aWMgY29uc3RleHByIGNv
bnN0IGludCBtYXhJbnQgPSAweDdGRkZGRkZGOwogICAgIApAQCAtOTgsMTIgKzk5LDEzIEBAIHBy
aXZhdGU6CiAgICAgLy8gbWF4SW50IC8gZGlnaXRCaXRzLiBIb3dldmVyLCB3ZSB1c2UgYSBsb3dl
ciBsaW1pdCBmb3Igbm93LCBiZWNhdXNlCiAgICAgLy8gcmFpc2luZyBpdCBsYXRlciBpcyBlYXNp
ZXIgdGhhbiBsb3dlcmluZyBpdC4KICAgICAvLyBTdXBwb3J0IHVwIHRvIDEgbWlsbGlvbiBiaXRz
LgotICAgIHN0YXRpYyBjb25zdCBpbnQgbWF4TGVuZ3RoID0gMTAyNCAqIDEwMjQgLyAoc2l6ZW9m
KHZvaWQqKSAqIGJpdHNQZXJCeXRlKTsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4TGVu
Z3RoID0gMTAyNCAqIDEwMjQgLyAoc2l6ZW9mKHZvaWQqKSAqIGJpdHNQZXJCeXRlKTsKICAgICAK
LSAgICBzdGF0aWMgdWludDY0X3QgY2FsY3VsYXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZChp
bnQgbGVuZ3RoLCBpbnQgcmFkaXgsIERpZ2l0IGxhc3REaWdpdCwgYm9vbCBzaWduKTsKKyAgICBz
dGF0aWMgdWludDY0X3QgY2FsY3VsYXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZCh1bnNpZ25l
ZCBsZW5ndGgsIHVuc2lnbmVkIHJhZGl4LCBEaWdpdCBsYXN0RGlnaXQsIGJvb2wgc2lnbik7CiAg
ICAgCiAgICAgc3RhdGljIHZvaWQgYWJzb2x1dGVEaXZTbWFsbChFeGVjU3RhdGUmLCBKU0JpZ0lu
dCogeCwgRGlnaXQgZGl2aXNvciwgSlNCaWdJbnQqKiBxdW90aWVudCwgRGlnaXQmIHJlbWFpbmRl
cik7Ci0gICAgc3RhdGljIHZvaWQgaW50ZXJuYWxNdWx0aXBseUFkZChKU0JpZ0ludCogc291cmNl
LCBEaWdpdCBmYWN0b3IsIERpZ2l0IHN1bW1hbmQsIGludCwgSlNCaWdJbnQqIHJlc3VsdCk7Cisg
ICAgc3RhdGljIHZvaWQgaW50ZXJuYWxNdWx0aXBseUFkZChKU0JpZ0ludCogc291cmNlLCBEaWdp
dCBmYWN0b3IsIERpZ2l0IHN1bW1hbmQsIHVuc2lnbmVkLCBKU0JpZ0ludCogcmVzdWx0KTsKKyAg
ICBzdGF0aWMgdm9pZCBtdWx0aXBseUFjY3VtdWxhdGUoSlNCaWdJbnQqIG11bHRpcGxpY2FuZCwg
RGlnaXQgbXVsdGlwbGllciwgSlNCaWdJbnQqIGFjY3VtdWxhdG9yLCB1bnNpZ25lZCBhY2N1bXVs
YXRvckluZGV4KTsKIAogICAgIC8vIERpZ2l0IGFyaXRobWV0aWMgaGVscGVycy4KICAgICBzdGF0
aWMgRGlnaXQgZGlnaXRBZGQoRGlnaXQgYSwgRGlnaXQgYiwgRGlnaXQmIGNhcnJ5KTsKQEAgLTEx
MiwxNyArMTE0LDE3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIERpZ2l0IGRpZ2l0RGl2KERpZ2l0
IGhpZ2gsIERpZ2l0IGxvdywgRGlnaXQgZGl2aXNvciwgRGlnaXQmIHJlbWFpbmRlcik7CiAgICAg
c3RhdGljIERpZ2l0IGRpZ2l0UG93KERpZ2l0IGJhc2UsIERpZ2l0IGV4cG9uZW50KTsKIAotICAg
IHN0YXRpYyBTdHJpbmcgdG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYsIEpTQmlnSW50KiwgaW50
IHJhZGl4KTsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUmLCBK
U0JpZ0ludCosIHVuc2lnbmVkIHJhZGl4KTsKIAogICAgIGJvb2wgaXNaZXJvKCk7CiAKICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci0gICAgc3RhdGljIEpTQmlnSW50KiBwYXJzZUlu
dChFeGVjU3RhdGUqLCBDaGFyVHlwZSogIGRhdGEsIGludCBsZW5ndGgpOworICAgIHN0YXRpYyBK
U0JpZ0ludCogcGFyc2VJbnQoRXhlY1N0YXRlKiwgQ2hhclR5cGUqICBkYXRhLCB1bnNpZ25lZCBs
ZW5ndGgpOwogCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotICAgIHN0YXRpYyBK
U0JpZ0ludCogcGFyc2VJbnQoRXhlY1N0YXRlKiwgVk0mLCBDaGFyVHlwZSogZGF0YSwgaW50IGxl
bmd0aCwgaW50IHN0YXJ0SW5kZXgsIGludCByYWRpeCwgYm9vbCBhbGxvd0VtcHR5U3RyaW5nID0g
dHJ1ZSk7CisgICAgc3RhdGljIEpTQmlnSW50KiBwYXJzZUludChFeGVjU3RhdGUqLCBWTSYsIENo
YXJUeXBlKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkIHN0YXJ0SW5kZXgsIHVuc2ln
bmVkIHJhZGl4LCBib29sIGFsbG93RW1wdHlTdHJpbmcgPSB0cnVlKTsKIAotICAgIHN0YXRpYyBK
U0JpZ0ludCogYWxsb2NhdGVGb3IoRXhlY1N0YXRlKiwgVk0mLCBpbnQgcmFkaXgsIGludCBjaGFy
Y291bnQpOworICAgIHN0YXRpYyBKU0JpZ0ludCogYWxsb2NhdGVGb3IoRXhlY1N0YXRlKiwgVk0m
LCB1bnNpZ25lZCByYWRpeCwgdW5zaWduZWQgY2hhcmNvdW50KTsKIAogICAgIEpTQmlnSW50KiBy
aWdodFRyaW0oVk0mKTsKIApAQCAtMTMxLDEwICsxMzMsMTAgQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgc2l6ZV90IG9mZnNldE9mRGF0YSgpOwogICAgIERpZ2l0KiBkYXRhU3RvcmFnZSgpOwogCi0g
ICAgRGlnaXQgZGlnaXQoaW50KTsKLSAgICB2b2lkIHNldERpZ2l0KGludCwgRGlnaXQpOworICAg
IERpZ2l0IGRpZ2l0KHVuc2lnbmVkKTsKKyAgICB2b2lkIHNldERpZ2l0KHVuc2lnbmVkLCBEaWdp
dCk7CiAgICAgICAgIAotICAgIGludCBtX2xlbmd0aDsKKyAgICB1bnNpZ25lZCBtX2xlbmd0aDsK
ICAgICBib29sIG1fc2lnbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09w
ZXJhdGlvbnMuaAppbmRleCAxMzQ5YWVjLi44MWQ3ZWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJD
YWxsRnJhbWUuaCIKICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCisjaW5jbHVkZSAiSlNC
aWdJbnQuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAt
MjU2LDYgKzI1NywyOSBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUganNBZGQoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIEpTVmFsdWUgdjEsIEpTVmFsdWUgdjIpCiAgICAgcmV0dXJuIGpzQWRkU2xvd0Nh
c2UoY2FsbEZyYW1lLCB2MSwgdjIpOwogfQogCitBTFdBWVNfSU5MSU5FIEpTVmFsdWUganNNdWwo
RXhlY1N0YXRlKiBzdGF0ZSwgSlNWYWx1ZSB2MSwgSlNWYWx1ZSB2MikKK3sKKyAgICBWTSYgdm0g
PSBzdGF0ZS0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisKKyAgICBKU1ZhbHVlIGxlZnROdW1iZXIgPSB2MS50b1ByaW1pdGl2ZShzdGF0ZSwgUHJlZmVy
TnVtYmVyKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIEpTVmFs
dWUgcmlnaHROdW1iZXIgPSB2Mi50b1ByaW1pdGl2ZShzdGF0ZSwgUHJlZmVyTnVtYmVyKTsKKyAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgaWYgKGxlZnROdW1iZXIu
aXNCaWdJbnQoKSB8fCByaWdodE51bWJlci5pc0JpZ0ludCgpKSB7CisgICAgICAgIGlmIChsZWZ0
TnVtYmVyLmlzQmlnSW50KCkgJiYgcmlnaHROdW1iZXIuaXNCaWdJbnQoKSkKKyAgICAgICAgICAg
IHJldHVybiBKU0JpZ0ludDo6bXVsdGlwbHkoc3RhdGUsIGFzQmlnSW50KGxlZnROdW1iZXIpLCBh
c0JpZ0ludChyaWdodE51bWJlcikpOworCisgICAgICAgIHRocm93VHlwZUVycm9yKHN0YXRlLCBz
Y29wZSwgQVNDSUlMaXRlcmFsKCJJbnZhbGlkIG1peCBvZiBCaWdJbnQgYW5kIG90aGVyIHR5cGUg
aW4gbXVsdGlwbGljYXRpb24uIikpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAg
IGRvdWJsZSBsZWZ0VmFsdWUgPSAgbGVmdE51bWJlci50b051bWJlcihzdGF0ZSk7CisgICAgZG91
YmxlIHJpZ2h0VmFsdWUgPSAgcmlnaHROdW1iZXIudG9OdW1iZXIoc3RhdGUpOworICAgIHJldHVy
biBqc051bWJlcihsZWZ0VmFsdWUgKiByaWdodFZhbHVlKTsKK30KKwogaW5saW5lIGJvb2wgc2Ny
aWJibGVGcmVlQ2VsbHMoKQogewogICAgIHJldHVybiAhQVNTRVJUX0RJU0FCTEVEIHx8IE9wdGlv
bnM6OnNjcmliYmxlRnJlZUNlbGxzKCk7Cg==
</data>
<flag name="commit-queue"
          id="357197"
          type_id="3"
          status="-"
          setter="ticaiolima"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338960</attachid>
            <date>2018-04-26 20:39:13 -0700</date>
            <delta_ts>2018-04-27 12:46:43 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>big-int-multiply.diff</filename>
            <type>text/plain</type>
            <size>44307</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NDYxZjZkNi4uNjRhOTE2MCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxOC0wNC0yMyAgQ2FpbyBMaW1hICA8
dGljYWlvbGltYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1l
bnQgc3VwcG9ydCBmb3IgIioiIG9wZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBC
YXJhdGkuCisKKyAgICAgICAgKiBiaWdJbnRUZXN0cy55YW1sOgorICAgICAgICAqIHN0cmVzcy9i
aWctaW50LW11bC1qaXQuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11bC10
by1wcmltaXRpdmUtcHJlY2VkZW5jZS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1p
bnQtbXVsLXRvLXByaW1pdGl2ZS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQt
bXVsLXR5cGUtZXJyb3IuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11bC13
cmFwcGVkLXZhbHVlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWx0aXBs
aWNhdGlvbi5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVsdGlwbHktbWVt
b3J5LXN0cmVzcy5qczogQWRkZWQuCisKIDIwMTgtMDQtMjUgIFJvYmluIE1vcmlzc2V0ICA8cm1v
cmlzc2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBJbiBGVExMb3dlckRGR1RvQjMuY3BwOjpjb21w
aWxlQ3JlYXRlUmVzdCwgYWx3YXlzIHVzZSBhIGNvbnRpZ3VvdXMgYXJyYXkgYXMgdGhlIGluZGV4
aW5nIHR5cGUgd2hlbiB1bmRlciBpc1dhdGNoaW5nSGF2aW5nQUJhZFRpbWVXYXRjaHBvaW50CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL2JpZ0ludFRlc3RzLnlhbWwgYi9KU1Rlc3RzL2JpZ0ludFRlc3Rz
LnlhbWwKaW5kZXggN2FlMjJjYi4uZTk0N2RjMiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9iaWdJbnRU
ZXN0cy55YW1sCisrKyBiL0pTVGVzdHMvYmlnSW50VGVzdHMueWFtbApAQCAtOTcsMyArOTcsMjQg
QEAKIC0gcGF0aDogc3RyZXNzL2JpZy1pbnQtdG8tc3RyaW5nLmpzCiAgIGNtZDogcnVuQmlnSW50
RW5hYmxlZAogCistIHBhdGg6IHN0cmVzcy9iaWctaW50LW11bC1qaXQuanMKKyAgY21kOiBydW5C
aWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS1w
cmVjZWRlbmNlLmpzCisgIGNtZDogcnVuQmlnSW50RW5hYmxlZAorCistIHBhdGg6IHN0cmVzcy9i
aWctaW50LW11bC10by1wcmltaXRpdmUuanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0g
cGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsLXR5cGUtZXJyb3IuanMKKyAgY21kOiBydW5CaWdJbnRF
bmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsLXdyYXBwZWQtdmFsdWUuanMKKyAg
Y21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsdGlwbGlj
YXRpb24uanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1p
bnQtbXVsdGlwbHktbWVtb3J5LXN0cmVzcy5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtaml0LmpzIGIvSlNUZXN0cy9z
dHJlc3MvYmlnLWludC1tdWwtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjBjYmVkZTMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11
bC1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworbGV0IGFz
c2VydCA9IHsKKyAgICBzYW1lVmFsdWU6IGZ1bmN0aW9uKGksIGUsIG0pIHsKKyAgICAgICAgaWYg
KGkgIT09IGUpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobSk7CisgICAgfQorfQorCitm
dW5jdGlvbiBiaWdJbnRNdWwoeCwgeSkgeworICAgIHJldHVybiB4ICogeTsKK30KK25vSW5saW5l
KGJpZ0ludE11bCk7CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgeworICAgIGxl
dCByID0gYmlnSW50TXVsKDNuLCAxMG4pOworICAgIGFzc2VydC5zYW1lVmFsdWUociwgMzBuLCAz
biArICIgKiAiICsgMTBuICsgIiA9ICIgKyByKTsKK30KKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLXByZWNlZGVuY2UuanMgYi9KU1Rlc3RzL3N0
cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUtcHJlY2VkZW5jZS5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTQ5YTE5Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9zdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLXByZWNlZGVuY2UuanMKQEAgLTAsMCAr
MSwzOSBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworYXNzZXJ0ID0geworICAgIHNhbWVWYWx1
ZTogZnVuY3Rpb24gKGlucHV0LCBleHBlY3RlZCwgbWVzc2FnZSkgeworICAgICAgICBpZiAoaW5w
dXQgIT09IGV4cGVjdGVkKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOwor
ICAgIH0KK307CisKK2Z1bmN0aW9uIHRlc3RNdWwoeCwgeSwgeiwgbWVzc2FnZSkgeworICAgIGFz
c2VydC5zYW1lVmFsdWUoeCAqIHksIHosIG1lc3NhZ2UpOworICAgIGFzc2VydC5zYW1lVmFsdWUo
eSAqIHgsIHosIG1lc3NhZ2UpOworfQorCit0ZXN0TXVsKE9iamVjdCgybiksIDFuLCAybiwgIlRv
UHJpbWl0aXZlOiB1bmJveCBvYmplY3Qgd2l0aCBpbnRlcm5hbCBzbG90Iik7CisKK2xldCBvID0g
eworICAgIFtTeW1ib2wudG9QcmltaXRpdmVdOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJu
IDJuOworICAgIH0sCisgICAgdmFsdWVPZjogZnVuY3Rpb24gKCkgeworICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIlNob3VsZCBuZXZlciBleGVjdXRlIGl0Iik7CisgICAgfSwKKyAgICB0b1N0cmlu
ZzogZnVuY3Rpb24gKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBl
eGVjdXRlIGl0Iik7CisgICAgfQorfTsKK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9QcmltaXRpdmU6
IEBAdG9QcmltaXRpdmUiKTsKKworbyA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbigpIHsKKyAg
ICAgICAgcmV0dXJuIDJuOworICAgIH0sCisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGQgbmV2ZXIgZXhlY3V0ZSBpdCIpOworICAgIH0K
K307Cit0ZXN0TXVsKG8sIDFuLCAybiwgIlRvUHJpbWl0aXZlOiB2YWx1ZU9mIik7CisKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS5qcyBiL0pTVGVz
dHMvc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi42NDJlMmU4Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJl
c3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLmpzCkBAIC0wLDAgKzEsMzUgQEAKKy8vQCBydW5C
aWdJbnRFbmFibGVkCisKK2Z1bmN0aW9uIGFzc2VydChhKSB7CisgICAgaWYgKCFhKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBhc3NlcnRpb24iKTsKK30KKworYXNzZXJ0LnNhbWVWYWx1
ZSA9IGZ1bmN0aW9uIChpbnB1dCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAgICBpZiAoaW5wdXQg
IT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7Cit9CisKK2Z1
bmN0aW9uIHRlc3RNdWwoeCwgeSwgeikgeworICAgIGFzc2VydC5zYW1lVmFsdWUoeCAqIHksIHos
IHggKyAiICogIiArIHkgKyAiID0gIiArIHopOworICAgIGFzc2VydC5zYW1lVmFsdWUoeSAqIHgs
IHosIHkgKyAiICogIiArIHggKyAiID0gIiArIHopOworfQorCitsZXQgbyA9IHsKKyAgICBbU3lt
Ym9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24gKCkgeyByZXR1cm4gMzAwMDAwMDAwMDAwMDAwbjsg
fQorfQorCit0ZXN0TXVsKDUwMDAwMDAwMDAwMDQzOG4sIG8sIDE1MDAwMDAwMDAwMDEzMTQwMDAw
MDAwMDAwMDAwMG4pOworCitvLnZhbHVlT2YgPSBmdW5jdGlvbiAoKSB7CisgICAgdGhyb3cgbmV3
IEVycm9yKCJTaG91bGQgbmV2ZXIgZXhlY3V0ZSBpdCIpOworfTsKKwordGVzdE11bCg3MDAwMDAw
MDAwMDA0MzhuLCBvLCAyMTAwMDAwMDAwMDAxMzE0MDAwMDAwMDAwMDAwMDBuKTsKKworby50b1N0
cmluZyA9IGZ1bmN0aW9uICgpIHsKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBl
eGVjdXRlIGl0Iik7Cit9OworCit0ZXN0TXVsKDcwMDAwMDAwMDAwMDQzOG4sIG8sIDIxMDAwMDAw
MDAwMDEzMTQwMDAwMDAwMDAwMDAwMG4pOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9i
aWctaW50LW11bC10eXBlLWVycm9yLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdHlw
ZS1lcnJvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTE3ODQ1Ci0t
LSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdHlwZS1lcnJvci5q
cwpAQCAtMCwwICsxLDEwNiBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworZnVuY3Rpb24gYXNz
ZXJ0KGEsIG1lc3NhZ2UpIHsKKyAgICBpZiAoIWEpCisgICAgICAgIHRocm93IG5ldyBFcnJvciht
ZXNzYWdlKTsKK30KKworZnVuY3Rpb24gYXNzZXJ0VGhyb3dUeXBlRXJyb3IoYSwgYiwgbWVzc2Fn
ZSkgeworICAgIHRyeSB7CisgICAgICAgIGxldCBuID0gYSAqIGI7CisgICAgICAgIGFzc2VydChm
YWxzZSwgbWVzc2FnZSArICI6IFNob3VsZCB0aHJvdyBUeXBlRXJyb3IsIGJ1dCBleGVjdXRlZCB3
aXRob3V0IGV4Y2VwdGlvbiIpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgYXNzZXJ0KGUg
aW5zdGFuY2VvZiBUeXBlRXJyb3IsIG1lc3NhZ2UgKyAiOiBleHBlY3RlZCBUeXBlRXJyb3IsIGdv
dDogIiArIGUpOworICAgIH0KK30KKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCAiZm9vIiwg
IkJpZ0ludCAqIFN0cmluZyIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoImJhciIsIDE4NzU3Mzgy
OTg0ODIxbiwgIlN0cmluZyAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBT
eW1ib2woImZvbyIpLCAiQmlnSW50ICogU3ltYm9sIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihT
eW1ib2woImJhciIpLCAxODc1NzM4Mjk4NDgyMW4sICJTeW1ib2wgKiBCaWdJbnQiKTsKK2Fzc2Vy
dFRocm93VHlwZUVycm9yKDMwbiwgMzMyMCwgIkJpZ0ludCAqIEludDMyIik7Cithc3NlcnRUaHJv
d1R5cGVFcnJvcigzMzI1NiwgMTg3NTczODI5ODQ4MjFuLCAiSW50MzIgKiBCaWdJbnQiKTsKK2Fz
c2VydFRocm93VHlwZUVycm9yKDMwbiwgMC41NDMsICJCaWdJbnQgKiBEb3VibGUiKTsKK2Fzc2Vy
dFRocm93VHlwZUVycm9yKDIzMC4xOTI5MywgMTg3NTczODI5ODQ4MjFuLCAiRG91YmxlICogQmln
SW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIE5hTiwgIkJpZ0ludCAqIE5hTiIpOwor
YXNzZXJ0VGhyb3dUeXBlRXJyb3IoTmFOLCAxODc1NzM4Mjk4NDgyMW4sICJOYU4gKiBCaWdJbnQi
KTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgTmFOLCAiQmlnSW50ICogTmFOIik7Cithc3Nl
cnRUaHJvd1R5cGVFcnJvcihOYU4sIDE4NzU3MzgyOTg0ODIxbiwgIk5hTiAqIEJpZ0ludCIpOwor
YXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCArSW5maW5pdHksICJCaWdJbnQgKiBOYU4iKTsKK2Fz
c2VydFRocm93VHlwZUVycm9yKCtJbmZpbml0eSwgMTg3NTczODI5ODQ4MjFuLCAiTmFOICogQmln
SW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIC1JbmZpbml0eSwgIkJpZ0ludCAqIC1J
bmZpbml0eSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoLUluZmluaXR5LCAxODc1NzM4Mjk4NDgy
MW4sICItSW5maW5pdHkgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbnVs
bCwgIkJpZ0ludCAqIG51bGwiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG51bGwsIDE4NzU3Mzgy
OTg0ODIxbiwgIm51bGwgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgdW5k
ZWZpbmVkLCAiQmlnSW50ICogdW5kZWZpbmVkIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcih1bmRl
ZmluZWQsIDE4NzU3MzgyOTg0ODIxbiwgInVuZGVmaW5lZCAqIEJpZ0ludCIpOworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IoMzBuLCB0cnVlLCAiQmlnSW50ICogdHJ1ZSIpOworYXNzZXJ0VGhyb3dUeXBl
RXJyb3IodHJ1ZSwgMTg3NTczODI5ODQ4MjFuLCAidHJ1ZSAqIEJpZ0ludCIpOworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IoMzBuLCBmYWxzZSwgIkJpZ0ludCAqIGZhbHNlIik7Cithc3NlcnRUaHJvd1R5
cGVFcnJvcihmYWxzZSwgMTg3NTczODI5ODQ4MjFuLCAiZmFsc2UgKiBCaWdJbnQiKTsKKworLy8g
RXJyb3Igd2hlbiByZXR1cm5pbmcgZnJvbSBvYmplY3QKKworbGV0IG8gPSB7CisgICAgdmFsdWVP
ZjogZnVuY3Rpb24gKCkgeyByZXR1cm4gU3ltYm9sKCJGb28iKTsgfQorfTsKKworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LnZhbHVlT2YgcmV0dXJuaW5nIFN5
bWJvbCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0
LnZhbHVlT2YgcmV0dXJuaW5nIFN5bWJvbCAqIEJpZ0ludCIpOworCitvID0geworICAgIHZhbHVl
T2Y6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDMzMjU2OyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVF
cnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgSW50MzIiKTsK
K2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC52YWx1ZU9m
IHJldHVybmluZyBJbnQzMiAqIEJpZ0ludCIpOworCitvID0geworICAgIHZhbHVlT2Y6IGZ1bmN0
aW9uICgpIHsgcmV0dXJuIDAuNDUzOyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4s
IG8sICJCaWdJbnQgKiBPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgRG91YmxlIik7Cithc3NlcnRU
aHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QudmFsdWVPZiByZXR1cm5p
bmcgRG91YmxlICogQmlnSW50Iik7CisKK28gPSB7CisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgp
IHsgcmV0dXJuIFN5bWJvbCgiRm9vIik7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMw
biwgbywgIkJpZ0ludCAqIE9iamVjdC50b1N0cmluZyByZXR1cm5pbmcgU3ltYm9sIik7Cithc3Nl
cnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QudG9TdHJpbmcgcmV0
dXJuaW5nIFN5bWJvbCAqIEJpZ0ludCIpOworCitvID0geworICAgIHRvU3RyaW5nOiBmdW5jdGlv
biAoKSB7IHJldHVybiAzMzI1NjsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBv
LCAiQmlnSW50ICogT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBJbnQzMiIpOworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LnRvU3RyaW5nIHJldHVybmlu
ZyBJbnQzMiAqIEJpZ0ludCIpOworCitvID0geworICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7
IHJldHVybiAwLjQ1MzsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmln
SW50ICogT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBEb3VibGUiKTsKK2Fzc2VydFRocm93VHlw
ZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC50b1N0cmluZyByZXR1cm5pbmcgRG91
YmxlICogQmlnSW50Iik7CisKK28gPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0
aW9uICgpIHsgcmV0dXJuIFN5bWJvbCgiRm9vIik7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVy
cm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC5AQHRvUHJpbWl0aXZlIHJldHVybmluZyBTeW1i
b2wiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC5A
QHRvUHJpbWl0aXZlIHJldHVybmluZyBTeW1ib2wgKiBCaWdJbnQiKTsKKworbyA9IHsKKyAgICBb
U3ltYm9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24gKCkgeyByZXR1cm4gMzMyNTY7IH0KK307CisK
K2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC5AQHRvUHJpbWl0
aXZlIHJldHVybmluZyBJbnQzMiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5
ODQ4MjFuLCAiT2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5nIEludDMyICogQmlnSW50Iik7
CisKK28gPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9uICgpIHsgcmV0dXJu
IDAuNDUzOyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBP
YmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcgRG91YmxlIik7Cithc3NlcnRUaHJvd1R5cGVF
cnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcg
RG91YmxlICogQmlnSW50Iik7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQt
bXVsLXdyYXBwZWQtdmFsdWUuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC13cmFwcGVk
LXZhbHVlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2NzNkOGEKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC13cmFwcGVkLXZhbHVl
LmpzCkBAIC0wLDAgKzEsMzcgQEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKK2Fzc2VydCA9IHsK
KyAgICBzYW1lVmFsdWU6IGZ1bmN0aW9uIChpbnB1dCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAg
ICAgICAgaWYgKGlucHV0ICE9PSBleHBlY3RlZCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cihtZXNzYWdlKTsKKyAgICB9Cit9OworCitmdW5jdGlvbiB0ZXN0TXVsKHgsIHksIHosIG1lc3Nh
Z2UpIHsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKHggKiB5LCB6LCBtZXNzYWdlKTsKKyAgICBhc3Nl
cnQuc2FtZVZhbHVlKHkgKiB4LCB6LCBtZXNzYWdlKTsKK30KKwordGVzdE11bChPYmplY3QoMm4p
LCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogdW5ib3ggb2JqZWN0IHdpdGggaW50ZXJuYWwgc2xvdCIp
OworCitsZXQgbyA9IHsKKyAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24oKSB7Cisg
ICAgICAgIHJldHVybiAybjsKKyAgICB9Cit9OwordGVzdE11bChvLCAxbiwgMm4sICJUb1ByaW1p
dGl2ZTogQEB0b1ByaW1pdGl2ZSIpOworCitvID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uKCkg
eworICAgICAgICByZXR1cm4gMm47CisgICAgfQorfTsKK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9Q
cmltaXRpdmU6IHZhbHVlT2YiKTsKKworbyA9IHsKKyAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7
CisgICAgICAgIHJldHVybiAybjsKKyAgICB9Cit9Cit0ZXN0TXVsKG8sIDFuLCAybiwgIlRvUHJp
bWl0aXZlOiB0b1N0cmluZyIpOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50
LW11bHRpcGxpY2F0aW9uLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0aXBsaWNhdGlv
bi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZWNkNjM2Ci0tLSAvZGV2
L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0aXBsaWNhdGlvbi5qcwpAQCAt
MCwwICsxLDgzIEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCisvLyBDb3B5cmlnaHQgKEMpIDIw
MTcgUm9iaW4gVGVtcGxldG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlz
IGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgor
Cithc3NlcnQgPSB7CisgICAgc2FtZVZhbHVlOiBmdW5jdGlvbiAoaW5wdXQsIGV4cGVjdGVkLCBt
ZXNzYWdlKSB7CisgICAgaWYgKGlucHV0ICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKG1lc3NhZ2UpOworICAgIH0KK307CisKK2Z1bmN0aW9uIHRlc3RNdWwoeCwgeSwgeikg
eworICAgIGFzc2VydC5zYW1lVmFsdWUoeCAqIHksIHosIHggKyAiICogIiArIHkgKyAiID0gIiAr
IHopOworICAgIGFzc2VydC5zYW1lVmFsdWUoeSAqIHgsIHosIHkgKyAiICogIiArIHggKyAiID0g
IiArIHopOworfQorCit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4RkVEQ0JBOTg3NjU0
MzIxMG4sIDB4RkRCQUMwOTdDOERDNUFDQ0RFRUM2Q0Q3QTQ0QTQxMDBuKTsKK3Rlc3RNdWwoMHhG
RURDQkE5ODc2NTQzMjEwbiwgMHhGRURDQkE5OG4sIDB4RkRCQUMwOTc1MzBFQ0E4NjU0MUQ1OTgw
bik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4MTIzNG4sIDB4MTIxRjQ5RjQ5RjQ5
RjQ5RjRCNDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHgzbiwgMHgyRkM5NjJG
Qzk2MkZDOTYzMG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweDJuLCAweDFGREI5
NzUzMEVDQTg2NDIwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4MW4sIDB4RkVE
Q0JBOTg3NjU0MzIxMG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweDBuLCAweDBu
KTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgQmlnSW50KCItMSIpLCBCaWdJbnQoIi0x
ODM2NDc1ODU0NDQ5MzA2NDcyMCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgQmln
SW50KCItMiIpLCBCaWdJbnQoIi0zNjcyOTUxNzA4ODk4NjEyOTQ0MCIpKTsKK3Rlc3RNdWwoMHhG
RURDQkE5ODc2NTQzMjEwbiwgQmlnSW50KCItMyIpLCBCaWdJbnQoIi01NTA5NDI3NTYzMzQ3OTE5
NDE2MCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgQmlnSW50KCItNDY2MCIpLCBC
aWdJbnQoIi04NTU3OTc3NDgxNzMzNzY4MTU5NTIwMCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2
NTQzMjEwbiwgQmlnSW50KCItNDI3NTg3ODU1MSIpLCBCaWdJbnQoIi03ODUyNTQ3NzE1NDY5MTg3
NDYwNDUwMjgyMDcyMCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgMHhGRURDQkE5
ODc2NTQzMjBGbiwgMHhGREJBQzA5N0M4REM1QUNBRTEzMkY3QTZCN0ExRENFMW4pOwordGVzdE11
bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweEZFRENCQTk3biwgMHhGREJBQzA5NjU0MzIwRkVDREVF
QzZDRDluKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgMHgzbiwgMHgyRkM5NjJGQzk2
MkZDOTYyRG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweDJuLCAweDFGREI5NzUz
MEVDQTg2NDFFbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4MW4sIDB4RkVEQ0JB
OTg3NjU0MzIwRm4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweDBuLCAweDBuKTsK
K3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmlnSW50KCItMSIpLCBCaWdJbnQoIi0xODM2
NDc1ODU0NDQ5MzA2NDcxOSIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmlnSW50
KCItMiIpLCBCaWdJbnQoIi0zNjcyOTUxNzA4ODk4NjEyOTQzOCIpKTsKK3Rlc3RNdWwoMHhGRURD
QkE5ODc2NTQzMjBGbiwgQmlnSW50KCItMyIpLCBCaWdJbnQoIi01NTA5NDI3NTYzMzQ3OTE5NDE1
NyIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmlnSW50KCItNDI3NTg3ODU1MSIp
LCBCaWdJbnQoIi03ODUyNTQ3NzE1NDY5MTg3NDYwMDIyNjk0MjE2OSIpKTsKK3Rlc3RNdWwoMHhG
RURDQkE5ODc2NTQzMjBGbiwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgQmlnSW50
KCItMzM3MjY0MzU2Mzk3NTMxMDI4OTc2NjA4Mjg5NjMzNjE1NjEzNjgwIikpOwordGVzdE11bCgw
eEZFRENCQTk4biwgMHhGRURDQkE5OG4sIDB4RkRCQUMwOTZERDQxM0E0MG4pOwordGVzdE11bCgw
eEZFRENCQTk4biwgMHgxMjM0biwgMHgxMjFGNDlGNDk2RTBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5
OG4sIDB4M24sIDB4MkZDOTYyRkM4bik7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCAweDJuLCAweDFG
REI5NzUzMG4pOwordGVzdE11bCgweEZFRENCQTk4biwgMHgxbiwgMHhGRURDQkE5OG4pOwordGVz
dE11bCgweEZFRENCQTk4biwgMHgwbiwgMHgwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCBCaWdJ
bnQoIi0xIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTIiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCBC
aWdJbnQoIi0yIiksIEJpZ0ludCgiLTg1NTE3NTcxMDQiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOThu
LCBCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTEyODI3NjM1NjU2IikpOwordGVzdE11bCgweEZFRENC
QTk4biwgQmlnSW50KCItNDI3NTg3ODU1MSIpLCBCaWdJbnQoIi0xODI4MzEzNzM4NzE3NzczODE1
MiIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIw
IiksIEJpZ0ludCgiLTc4NTI1NDc3MTczMDU2NjMzMTQ4OTk1ODg1NDQwIikpOwordGVzdE11bCgw
eDNuLCAweDNuLCAweDluKTsKK3Rlc3RNdWwoMHgzbiwgMHgybiwgMHg2bik7Cit0ZXN0TXVsKDB4
M24sIDB4MW4sIDB4M24pOwordGVzdE11bCgweDNuLCAweDBuLCAweDBuKTsKK3Rlc3RNdWwoMHgz
biwgQmlnSW50KCItMSIpLCBCaWdJbnQoIi0zIikpOwordGVzdE11bCgweDNuLCBCaWdJbnQoIi0y
IiksIEJpZ0ludCgiLTYiKSk7Cit0ZXN0TXVsKDB4M24sIEJpZ0ludCgiLTMiKSwgQmlnSW50KCIt
OSIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItNDY2MCIpLCBCaWdJbnQoIi0xMzk4MCIpKTsK
K3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItNDI3NTg3ODU1MiIpLCBCaWdJbnQoIi0xMjgyNzYzNTY1
NiIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgQmln
SW50KCItNTUwOTQyNzU2MzM0NzkxOTQxNjAiKSk7Cit0ZXN0TXVsKDB4MG4sIDB4MG4sIDB4MG4p
OwordGVzdE11bCgweDBuLCBCaWdJbnQoIi0xIiksIDB4MG4pOwordGVzdE11bCgweDBuLCBCaWdJ
bnQoIi0yIiksIDB4MG4pOwordGVzdE11bCgweDBuLCBCaWdJbnQoIi0zIiksIDB4MG4pOwordGVz
dE11bCgweDBuLCBCaWdJbnQoIi00Mjc1ODc4NTUxIiksIDB4MG4pOwordGVzdE11bCgweDBuLCBC
aWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcxOSIpLCAweDBuKTsKK3Rlc3RNdWwoQmlnSW50KCIt
MSIpLCBCaWdJbnQoIi0xIiksIDB4MW4pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgi
LTIiKSwgMHgybik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMyIpLCAweDNuKTsK
K3Rlc3RNdWwoQmlnSW50KCItMSIpLCBCaWdJbnQoIi00NjYwIiksIDB4MTIzNG4pOwordGVzdE11
bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTEiKSwgMHhGRURDQkE5N24pOwordGVz
dE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTIiKSwgMHhGRURDQkE5OG4pOwor
dGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzE5IiksIDB4
RkVEQ0JBOTg3NjU0MzIwRm4pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTE4MzY0
NzU4NTQ0NDkzMDY0NzIwIiksIDB4RkVEQ0JBOTg3NjU0MzIxMG4pOwordGVzdE11bChCaWdJbnQo
Ii0zIiksIEJpZ0ludCgiLTMiKSwgMHg5bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwgQmlnSW50
KCItNDY2MCIpLCAweDM2OUNuKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi00Mjc1
ODc4NTUxIiksIDB4MkZDOTYyRkM1bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwgQmlnSW50KCIt
NDI3NTg3ODU1MiIpLCAweDJGQzk2MkZDOG4pOwordGVzdE11bChCaWdJbnQoIi0zIiksIEJpZ0lu
dCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzE5IiksIDB4MkZDOTYyRkM5NjJGQzk2MkRuKTsKK3Rlc3RN
dWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpLCAweDJGQzk2
MkZDOTYyRkM5NjMwbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiks
IEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIDB4RkRCQUMwOTdDOERDNUFDQ0RFRUM2
Q0Q3QTQ0QTQxMDBuKTsKKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0
aXBseS1tZW1vcnktc3RyZXNzLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0aXBseS1t
ZW1vcnktc3RyZXNzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhYmFh
N2UKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bHRpcGx5LW1l
bW9yeS1zdHJlc3MuanMKQEAgLTAsMCArMSwxNSBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKwor
ZnVuY3Rpb24gYXNzZXJ0KGEpIHsKKyAgICBpZiAoIWEpCisgICAgICAgIHRocm93IG5ldyBFcnJv
cigiQmFkIGFzc2VydGlvbiIpOworfQorCitsZXQgYSA9IDBuOworbGV0IGIgPSAxbjsKK2ZvciAo
bGV0IGkgPSAwOyBpIDwgMTAwMDAwMDsgaSsrKSB7CisgICAgYSA9IGIgKiAzMG47Cit9CisKK2Fz
c2VydChhID09PSAzMG4pOworCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBmZGEyODYwLi5l
NTBjNjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxOC0w
NC0yNyAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTTmV4
dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgIioiIG9wZXJhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNzIxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgQWRkZWQgQmlnSW50IHN1cHBvcnQg
aW50byB0aW1lcyBiaW5hcnkgb3BlcmF0b3IgaW50byBMTEludCBhbmQgb24KKyAgICAgICAgSklU
T3BlcmF0aW9ucyBwcm9maWxlZE11bCBhbmQgdW5wcm9maWxlZE11bC4gV2UgYXJlIGFsc28gcmVw
bGFjaW5nIGFsbAorICAgICAgICB1c2VzIG9mIGludCB0byB1bnNpZ25lZCB3aGVuIHRoZXJlIGlz
IG5vIG5lZ2F0aXZlIHZhbHVlcyBmb3IKKyAgICAgICAgdmFyaWFibGVzLgorCisgICAgICAgICog
ZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDb25z
dGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6CisgICAgICAgICogaml0L0pJVE9wZXJh
dGlvbnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAg
ICAgKEpTQzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuY3Bw
OgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6SlNCaWdJbnQpOgorICAgICAgICAoSlNDOjpKU0Jp
Z0ludDo6YWxsb2NhdGlvblNpemUpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6Y3JlYXRlV2l0
aExlbmd0aCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojp0b1N0cmluZyk6CisgICAgICAgIChK
U0M6OkpTQmlnSW50OjptdWx0aXBseSk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpkaWdpdERp
dik6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjppbnRlcm5hbE11bHRpcGx5QWRkKToKKyAgICAg
ICAgKEpTQzo6SlNCaWdJbnQ6Om11bHRpcGx5QWNjdW11bGF0ZSk6CisgICAgICAgIChKU0M6OkpT
QmlnSW50OjplcXVhbHMpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6YWJzb2x1dGVEaXZTbWFs
bCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpjYWxjdWxhdGVNYXhpbXVtQ2hhcmFjdGVyc1Jl
cXVpcmVkKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OnRvU3RyaW5nR2VuZXJpYyk6CisgICAg
ICAgIChKU0M6OkpTQmlnSW50OjpyaWdodFRyaW0pOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6
YWxsb2NhdGVGb3IpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6cGFyc2VJbnQpOgorICAgICAg
ICAoSlNDOjpKU0JpZ0ludDo6ZGlnaXQpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6c2V0RGln
aXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuaDoKKyAgICAgICAgKiBydW50aW1lL09w
ZXJhdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6anNNdWwpOgorCiAyMDE4LTA0LTI2ICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBHYXJkZW5pbmc6IFNwZWN1bGF0aXZl
IGJ1aWxkIGZpeCBmb3IgV2luZG93cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggY2VlNjU2Mi4uZTQ2NTBhYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQ
aGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRp
bmdQaGFzZS5jcHAKQEAgLTE0NiwxNCArMTQ2LDE0IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAg
ICAgICAgIEpTVmFsdWUgY2hpbGQyQ29uc3RhbnQgPSBtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hp
bGQyKCkubm9kZSgpKS52YWx1ZSgpOwogCiAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBS
ZXZpc2l0IHRoaXMgY29uZGl0aW9uIHdoZW4gaW50cm9kdWNpbmcgQmlnSW50IHRvIEpTQy4KLSAg
ICAgICAgICAgICAgICAgICAgYXV0byBpc05vblN0cmluZ0NlbGxDb25zdGFudCA9IFtdIChKU1Zh
bHVlIHZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgJiYgdmFs
dWUuaXNDZWxsKCkgJiYgIXZhbHVlLmlzU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIGF1
dG8gaXNOb25TdHJpbmdPckJpZ0ludENlbGxDb25zdGFudCA9IFtdIChKU1ZhbHVlIHZhbHVlKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgJiYgdmFsdWUuaXNDZWxsKCkg
JiYgIXZhbHVlLmlzU3RyaW5nKCkgJiYgIXZhbHVlLmlzQmlnSW50KCk7CiAgICAgICAgICAgICAg
ICAgICAgIH07CiAKLSAgICAgICAgICAgICAgICAgICAgaWYgKGlzTm9uU3RyaW5nQ2VsbENvbnN0
YW50KGNoaWxkMUNvbnN0YW50KSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNOb25TdHJp
bmdPckJpZ0ludENlbGxDb25zdGFudChjaGlsZDFDb25zdGFudCkpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIG5vZGUtPmNvbnZlcnRUb0NvbXBhcmVFcVB0cihtX2dyYXBoLmZyZWV6ZVN0cm9u
ZyhjaGlsZDFDb25zdGFudC5hc0NlbGwoKSksIG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKGlzTm9uU3RyaW5nQ2VsbENvbnN0YW50KGNoaWxkMkNvbnN0YW50KSkgeworICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKGlzTm9uU3RyaW5nT3JCaWdJbnRDZWxsQ29uc3RhbnQoY2hp
bGQyQ29uc3RhbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9D
b21wYXJlRXFQdHIobV9ncmFwaC5mcmVlemVTdHJvbmcoY2hpbGQyQ29uc3RhbnQuYXNDZWxsKCkp
LCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5jcHAKaW5kZXggMzY1YmI3My4uNjJmYzFiMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0yNTU0LDM0ICsyNTU0LDIzIEBAIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGROb09wdGltaXplKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQp
OwogfQogCi1BTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSB1bnByb2ZpbGVkTXVs
KFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQorQUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgdW5wcm9maWxlZE11bChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCiB7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRPcDEpOwogICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIp
OwogCi0gICAgZG91YmxlIGEgPSBvcDEudG9OdW1iZXIoZXhlYyk7Ci0gICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgc2NvcGUucmVsZWFzZSgpOwot
ICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOwotICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOdW1iZXIoYSAqIGIpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTXVs
KGV4ZWMsIG9wMSwgb3AyKSk7CiB9CiAKLUFMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIHByb2ZpbGVkTXVsKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUmIGFyaXRo
UHJvZmlsZSwgYm9vbCBzaG91bGRPYnNlcnZlTEhTQW5kUkhTVHlwZXMgPSB0cnVlKQorQUxXQVlT
X0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcHJvZmlsZWRNdWwoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBB
cml0aFByb2ZpbGUmIGFyaXRoUHJvZmlsZSwgYm9vbCBzaG91bGRPYnNlcnZlTEhTQW5kUkhTVHlw
ZXMgPSB0cnVlKQogewotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ICAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKICAgICBKU1Zh
bHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKIAogICAgIGlmIChzaG91bGRP
YnNlcnZlTEhTQW5kUkhTVHlwZXMpCiAgICAgICAgIGFyaXRoUHJvZmlsZS5vYnNlcnZlTEhTQW5k
UkhTKG9wMSwgb3AyKTsKIAotICAgIGRvdWJsZSBhID0gb3AxLnRvTnVtYmVyKGV4ZWMpOwotICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIGRvdWJs
ZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIAotICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIo
YSAqIGIpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNNdWwoZXhlYywgb3AxLCBvcDIpOwogICAg
IGFyaXRoUHJvZmlsZS5vYnNlcnZlUmVzdWx0KHJlc3VsdCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShyZXN1bHQpOwogfQpAQCAtMjU5MSw3ICsyNTgwLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIGUKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKIAotICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKCp2bSwg
ZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CisgICAgcmV0dXJuIHVucHJvZmlsZWRNdWwo
ZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxOb09wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUTXVs
SUMqKQpAQCAtMjU5OSw3ICsyNTg4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25WYWx1ZU11bE5vT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGUKICAgICBW
TSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBleGVjKTsKIAotICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9w
MSwgZW5jb2RlZE9wMik7CisgICAgcmV0dXJuIHVucHJvZmlsZWRNdWwoZXhlYywgZW5jb2RlZE9w
MSwgZW5jb2RlZE9wMik7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVNdWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVE11bElDKiBtdWxJQykKQEAgLTI2
MTYsNyArMjYwNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFs
dWVNdWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKCiAgICAgZXhlYy0+Y29kZUJs
b2NrKCktPmR1bXBNYXRoSUNTdGF0cygpOwogI2VuZGlmCiAKLSAgICByZXR1cm4gdW5wcm9maWxl
ZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOworICAgIHJldHVybiB1bnBy
b2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwogfQogCiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ay
LCBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSkKQEAgLTI2MjUsNyArMjYxNCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZChFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKCiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
ZXhlYyk7CiAKICAgICBBU1NFUlQoYXJpdGhQcm9maWxlKTsKLSAgICByZXR1cm4gcHJvZmlsZWRN
dWwoKnZtLCBleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlKTsKKyAg
ICByZXR1cm4gcHJvZmlsZWRNdWwoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRo
UHJvZmlsZSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFs
dWVNdWxQcm9maWxlZE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUTXVsSUMqIG11bElDKQpAQCAt
MjY0Myw3ICsyNjMyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25W
YWx1ZU11bFByb2ZpbGVkT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLAogICAgIGV4ZWMtPmNvZGVC
bG9jaygpLT5kdW1wTWF0aElDU3RhdHMoKTsKICNlbmRpZgogCi0gICAgcmV0dXJuIHByb2ZpbGVk
TXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSwgZmFs
c2UpOworICAgIHJldHVybiBwcm9maWxlZE11bChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3Ay
LCAqYXJpdGhQcm9maWxlLCBmYWxzZSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZE5vT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRN
dWxJQyogbXVsSUMpCkBAIC0yNjUzLDcgKzI2NDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWROb09wdGltaXplKEV4ZWNTdGF0ZSogZXhl
YwogCiAgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBtdWxJQy0+YXJpdGhQcm9maWxl
KCk7CiAgICAgQVNTRVJUKGFyaXRoUHJvZmlsZSk7Ci0gICAgcmV0dXJuIHByb2ZpbGVkTXVsKCp2
bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSk7CisgICAgcmV0
dXJuIHByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIsICphcml0aFByb2Zp
bGUpOwogfQogCiBBTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSB1bnByb2ZpbGVk
TmVnYXRlKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wZXJhbmQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApp
bmRleCBlNmMxYTQ0Li5kZjhmZTczZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCkBAIC00ODYsMTAgKzQ4NiwyNCBAQCBTTE9XX1BB
VEhfREVDTChzbG93X3BhdGhfbXVsKQogICAgIEJFR0lOKCk7CiAgICAgSlNWYWx1ZSBsZWZ0ID0g
T1BfQygyKS5qc1ZhbHVlKCk7CiAgICAgSlNWYWx1ZSByaWdodCA9IE9QX0MoMykuanNWYWx1ZSgp
OwotICAgIGRvdWJsZSBhID0gbGVmdC50b051bWJlcihleGVjKTsKLSAgICBpZiAoVU5MSUtFTFko
dGhyb3dTY29wZS5leGNlcHRpb24oKSkpCi0gICAgICAgIFJFVFVSTihKU1ZhbHVlKCkpOwotICAg
IGRvdWJsZSBiID0gcmlnaHQudG9OdW1iZXIoZXhlYyk7CisgICAgSlNWYWx1ZSBsZWZ0UHJpbWl0
aXZlID0gbGVmdC50b1ByaW1pdGl2ZShleGVjLCBQcmVmZXJOdW1iZXIpOyAKKyAgICBDSEVDS19F
WENFUFRJT04oKTsKKyAgICBKU1ZhbHVlIHJpZ2h0UHJpbWl0aXZlID0gcmlnaHQudG9QcmltaXRp
dmUoZXhlYywgUHJlZmVyTnVtYmVyKTsKKyAgICBDSEVDS19FWENFUFRJT04oKTsKKyAgICAKKyAg
ICBpZiAobGVmdFByaW1pdGl2ZS5pc0JpZ0ludCgpIHx8IHJpZ2h0UHJpbWl0aXZlLmlzQmlnSW50
KCkpIHsKKyAgICAgICAgaWYgKGxlZnRQcmltaXRpdmUuaXNCaWdJbnQoKSAmJiByaWdodFByaW1p
dGl2ZS5pc0JpZ0ludCgpKSB7CisgICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdChKU0JpZ0ludDo6
bXVsdGlwbHkoZXhlYywgYXNCaWdJbnQobGVmdFByaW1pdGl2ZSksIGFzQmlnSW50KHJpZ2h0UHJp
bWl0aXZlKSkpOworICAgICAgICAgICAgUkVUVVJOX1dJVEhfUFJPRklMSU5HKHJlc3VsdCwgewor
ICAgICAgICAgICAgICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywg
cGMsIHJlc3VsdCwgbGVmdCwgcmlnaHQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKwor
ICAgICAgICBUSFJPVyhjcmVhdGVUeXBlRXJyb3IoZXhlYywgIkludmFsaWQgbWl4IG9mIEJpZ0lu
dCBhbmQgb3RoZXIgdHlwZSBpbiBtdWx0aXBsaWNhdGlvbi4iKSk7CisgICAgfQorCisgICAgZG91
YmxlIGEgPSBsZWZ0UHJpbWl0aXZlLnRvTnVtYmVyKGV4ZWMpOworICAgIGRvdWJsZSBiID0gcmln
aHRQcmltaXRpdmUudG9OdW1iZXIoZXhlYyk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJl
cihhICogYik7CiAgICAgUkVUVVJOX1dJVEhfUFJPRklMSU5HKHJlc3VsdCwgewogICAgICAgICB1
cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIGxlZnQs
IHJpZ2h0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmln
SW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcAppbmRl
eCBjNTFjOGIyLi45MTk3YjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0JpZ0ludC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
aWdJbnQuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgSlNCaWdJbnQ6OnZpc2l0Q2hpbGRyZW4o
SlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICBCYXNlOjp2aXNpdENoaWxk
cmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOwogfQogCi1KU0JpZ0ludDo6SlNCaWdJbnQoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50IGxlbmd0aCkKK0pTQmlnSW50OjpKU0JpZ0ludChW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgOiBCYXNl
KHZtLCBzdHJ1Y3R1cmUpCiAgICAgLCBtX2xlbmd0aChsZW5ndGgpCiB7IH0KQEAgLTkzLDEzICs5
MywxMyBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6OmNyZWF0ZVplcm8oVk0mIHZtKQogICAgIHJldHVy
biB6ZXJvQmlnSW50OwogfQogCi1zaXplX3QgSlNCaWdJbnQ6OmFsbG9jYXRpb25TaXplKGludCBs
ZW5ndGgpCitzaXplX3QgSlNCaWdJbnQ6OmFsbG9jYXRpb25TaXplKHVuc2lnbmVkIGxlbmd0aCkK
IHsKICAgICBzaXplX3Qgc2l6ZVdpdGhQYWRkaW5nID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9m
PHNpemVvZihzaXplX3QpPihzaXplb2YoSlNCaWdJbnQpKTsKICAgICByZXR1cm4gc2l6ZVdpdGhQ
YWRkaW5nICsgbGVuZ3RoICogc2l6ZW9mKERpZ2l0KTsKIH0KIAotSlNCaWdJbnQqIEpTQmlnSW50
OjpjcmVhdGVXaXRoTGVuZ3RoKFZNJiB2bSwgaW50IGxlbmd0aCkKK0pTQmlnSW50KiBKU0JpZ0lu
dDo6Y3JlYXRlV2l0aExlbmd0aChWTSYgdm0sIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBKU0Jp
Z0ludCogYmlnSW50ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNCaWdJbnQ+KHZtLmhl
YXAsIGFsbG9jYXRpb25TaXplKGxlbmd0aCkpKSBKU0JpZ0ludCh2bSwgdm0uYmlnSW50U3RydWN0
dXJlLmdldCgpLCBsZW5ndGgpOwogICAgIGJpZ0ludC0+ZmluaXNoQ3JlYXRpb24odm0pOwpAQCAt
MjIzLDcgKzIyMyw3IEBAIEpTQmlnSW50KiBKU0JpZ0ludDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBz
dGF0ZSwgVk0mIHZtLCBTdHJpbmdWaWV3IHMsIHVpbnQ4X3QgcmFkCiAgICAgcmV0dXJuIHBhcnNl
SW50KHN0YXRlLCB2bSwgcy5jaGFyYWN0ZXJzMTYoKSwgcy5sZW5ndGgoKSwgMCwgcmFkaXgsIGZh
bHNlKTsKIH0KIAotU3RyaW5nIEpTQmlnSW50Ojp0b1N0cmluZyhFeGVjU3RhdGUmIHN0YXRlLCBp
bnQgcmFkaXgpCitTdHJpbmcgSlNCaWdJbnQ6OnRvU3RyaW5nKEV4ZWNTdGF0ZSYgc3RhdGUsIHVu
c2lnbmVkIHJhZGl4KQogewogICAgIGlmICh0aGlzLT5pc1plcm8oKSkKICAgICAgICAgcmV0dXJu
IHN0YXRlLnZtKCkuc21hbGxTdHJpbmdzLnNpbmdsZUNoYXJhY3RlclN0cmluZ1JlcCgnMCcpOwpA
QCAtMjQ2LDYgKzI0NiwyNiBAQCB2b2lkIEpTQmlnSW50OjppbnBsYWNlTXVsdGlwbHlBZGQodWlu
dHB0cl90IGZhY3RvciwgdWludHB0cl90IHN1bW1hbmQpCiAgICAgaW50ZXJuYWxNdWx0aXBseUFk
ZCh0aGlzLCBmYWN0b3IsIHN1bW1hbmQsIGxlbmd0aCgpLCB0aGlzKTsKIH0KIAorSlNCaWdJbnQq
IEpTQmlnSW50OjptdWx0aXBseShFeGVjU3RhdGUqIHN0YXRlLCBKU0JpZ0ludCogeCwgSlNCaWdJ
bnQqIHkpCit7CisgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CisKKyAgICBpZiAoeC0+aXNaZXJv
KCkpCisgICAgICAgIHJldHVybiB4OworICAgIGlmICh5LT5pc1plcm8oKSkKKyAgICAgICAgcmV0
dXJuIHk7CisKKyAgICB1bnNpZ25lZCByZXN1bHRMZW5ndGggPSB4LT5sZW5ndGgoKSArIHktPmxl
bmd0aCgpOworICAgIEpTQmlnSW50KiByZXN1bHQgPSBKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0
aCh2bSwgcmVzdWx0TGVuZ3RoKTsKKyAgICByZXN1bHQtPmluaXRpYWxpemUoSW5pdGlhbGl6YXRp
b25UeXBlOjpXaXRoWmVybyk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgeC0+bGVu
Z3RoKCk7IGkrKykKKyAgICAgICAgbXVsdGlwbHlBY2N1bXVsYXRlKHksIHgtPmRpZ2l0KGkpLCBy
ZXN1bHQsIGkpOworCisgICAgcmVzdWx0LT5zZXRTaWduKHgtPnNpZ24oKSAhPSB5LT5zaWduKCkp
OworICAgIHJldHVybiByZXN1bHQtPnJpZ2h0VHJpbSh2bSk7Cit9CisKICNpZiBVU0UoSlNWQUxV
RTMyXzY0KQogI2RlZmluZSBIQVZFX1RXT19ESUdJVCAxCiB0eXBlZGVmIHVpbnQ2NF90IFR3b0Rp
Z2l0OwpAQCAtMzc4LDkgKzM5OCw5IEBAIEpTQmlnSW50OjpEaWdpdCBKU0JpZ0ludDo6ZGlnaXRE
aXYoRGlnaXQgaGlnaCwgRGlnaXQgbG93LCBEaWdpdCBkaXZpc29yLCBEaWdpdCYKICAgICBzdGF0
aWMgY29uc3QgRGlnaXQga0hhbGZEaWdpdEJhc2UgPSAxdWxsIDw8IGhhbGZEaWdpdEJpdHM7CiAg
ICAgLy8gQWRhcHRlZCBmcm9tIFdhcnJlbiwgSGFja2VyJ3MgRGVsaWdodCwgcC4gMTUyLgogI2lm
IFVTRShKU1ZBTFVFNjQpCi0gICAgaW50IHMgPSBjbHo2NChkaXZpc29yKTsKKyAgICB1bnNpZ25l
ZCBzID0gY2x6NjQoZGl2aXNvcik7CiAjZWxzZQotICAgIGludCBzID0gY2x6MzIoZGl2aXNvcik7
CisgICAgdW5zaWduZWQgcyA9IGNsejMyKGRpdmlzb3IpOwogI2VuZGlmCiAgICAgZGl2aXNvciA8
PD0gczsKICAgICAKQEAgLTQyMywxNCArNDQzLDE0IEBAIEpTQmlnSW50OjpEaWdpdCBKU0JpZ0lu
dDo6ZGlnaXREaXYoRGlnaXQgaGlnaCwgRGlnaXQgbG93LCBEaWdpdCBkaXZpc29yLCBEaWdpdCYK
IAogLy8gTXVsdGlwbGllcyB7c291cmNlfSB3aXRoIHtmYWN0b3J9IGFuZCBhZGRzIHtzdW1tYW5k
fSB0byB0aGUgcmVzdWx0LgogLy8ge3Jlc3VsdH0gYW5kIHtzb3VyY2V9IG1heSBiZSB0aGUgc2Ft
ZSBCaWdJbnQgZm9yIGlucGxhY2UgbW9kaWZpY2F0aW9uLgotdm9pZCBKU0JpZ0ludDo6aW50ZXJu
YWxNdWx0aXBseUFkZChKU0JpZ0ludCogc291cmNlLCBEaWdpdCBmYWN0b3IsIERpZ2l0IHN1bW1h
bmQsIGludCBuLCBKU0JpZ0ludCogcmVzdWx0KQordm9pZCBKU0JpZ0ludDo6aW50ZXJuYWxNdWx0
aXBseUFkZChKU0JpZ0ludCogc291cmNlLCBEaWdpdCBmYWN0b3IsIERpZ2l0IHN1bW1hbmQsIHVu
c2lnbmVkIG4sIEpTQmlnSW50KiByZXN1bHQpCiB7CiAgICAgQVNTRVJUKHNvdXJjZS0+bGVuZ3Ro
KCkgPj0gbik7CiAgICAgQVNTRVJUKHJlc3VsdC0+bGVuZ3RoKCkgPj0gbik7CiAKICAgICBEaWdp
dCBjYXJyeSA9IHN1bW1hbmQ7CiAgICAgRGlnaXQgaGlnaCA9IDA7Ci0gICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBuOyBpKyspIHsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbjsgaSsrKSB7
CiAgICAgICAgIERpZ2l0IGN1cnJlbnQgPSBzb3VyY2UtPmRpZ2l0KGkpOwogICAgICAgICBEaWdp
dCBuZXdDYXJyeSA9IDA7CiAKQEAgLTQ1OCw2ICs0NzgsNDkgQEAgdm9pZCBKU0JpZ0ludDo6aW50
ZXJuYWxNdWx0aXBseUFkZChKU0JpZ0ludCogc291cmNlLCBEaWdpdCBmYWN0b3IsIERpZ2l0IHN1
bW1hbmQKICAgICAgICAgQVNTRVJUKCEoY2FycnkgKyBoaWdoKSk7CiB9CiAKKy8vIE11bHRpcGxp
ZXMge211bHRpcGxpY2FuZH0gd2l0aCB7bXVsdGlwbGllcn0gYW5kIGFkZHMgdGhlIHJlc3VsdCB0
bworLy8ge2FjY3VtdWxhdG9yfSwgc3RhcnRpbmcgYXQge2FjY3VtdWxhdG9ySW5kZXh9IGZvciB0
aGUgbGVhc3Qtc2lnbmlmaWNhbnQKKy8vIGRpZ2l0LgorLy8gQ2FsbGVycyBtdXN0IGVuc3VyZSB0
aGF0IHthY2N1bXVsYXRvcn0gaXMgYmlnIGVub3VnaCB0byBob2xkIHRoZSByZXN1bHQuCit2b2lk
IEpTQmlnSW50OjptdWx0aXBseUFjY3VtdWxhdGUoSlNCaWdJbnQqIG11bHRpcGxpY2FuZCwgRGln
aXQgbXVsdGlwbGllciwgSlNCaWdJbnQqIGFjY3VtdWxhdG9yLCB1bnNpZ25lZCBhY2N1bXVsYXRv
ckluZGV4KQoreworICAgIEFTU0VSVChhY2N1bXVsYXRvci0+bGVuZ3RoKCkgPiBtdWx0aXBsaWNh
bmQtPmxlbmd0aCgpICsgYWNjdW11bGF0b3JJbmRleCk7CisgICAgaWYgKCFtdWx0aXBsaWVyKQor
ICAgICAgICByZXR1cm47CisgICAgCisgICAgRGlnaXQgY2FycnkgPSAwOworICAgIERpZ2l0IGhp
Z2ggPSAwOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtdWx0aXBsaWNhbmQtPmxlbmd0
aCgpOyBpKyssIGFjY3VtdWxhdG9ySW5kZXgrKykgeworICAgICAgICBEaWdpdCBhY2MgPSBhY2N1
bXVsYXRvci0+ZGlnaXQoYWNjdW11bGF0b3JJbmRleCk7CisgICAgICAgIERpZ2l0IG5ld0NhcnJ5
ID0gMDsKKyAgICAgICAgCisgICAgICAgIC8vIEFkZCBsYXN0IHJvdW5kJ3MgY2FycnlvdmVycy4K
KyAgICAgICAgYWNjID0gZGlnaXRBZGQoYWNjLCBoaWdoLCBuZXdDYXJyeSk7CisgICAgICAgIGFj
YyA9IGRpZ2l0QWRkKGFjYywgY2FycnksIG5ld0NhcnJ5KTsKKyAgICAgICAgCisgICAgICAgIC8v
IENvbXB1dGUgdGhpcyByb3VuZCdzIG11bHRpcGxpY2F0aW9uLgorICAgICAgICBEaWdpdCBtdWx0
aXBsaWNhbmREaWdpdCA9IG11bHRpcGxpY2FuZC0+ZGlnaXQoaSk7CisgICAgICAgIERpZ2l0IGxv
dyA9IGRpZ2l0TXVsKG11bHRpcGxpZXIsIG11bHRpcGxpY2FuZERpZ2l0LCBoaWdoKTsKKyAgICAg
ICAgYWNjID0gZGlnaXRBZGQoYWNjLCBsb3csIG5ld0NhcnJ5KTsKKyAgICAgICAgCisgICAgICAg
IC8vIFN0b3JlIHJlc3VsdCBhbmQgcHJlcGFyZSBmb3IgbmV4dCByb3VuZC4KKyAgICAgICAgYWNj
dW11bGF0b3ItPnNldERpZ2l0KGFjY3VtdWxhdG9ySW5kZXgsIGFjYyk7CisgICAgICAgIGNhcnJ5
ID0gbmV3Q2Fycnk7CisgICAgfQorICAgIAorICAgIHdoaWxlIChjYXJyeSB8fCBoaWdoKSB7Cisg
ICAgICAgIEFTU0VSVChhY2N1bXVsYXRvckluZGV4IDwgYWNjdW11bGF0b3ItPmxlbmd0aCgpKTsK
KyAgICAgICAgRGlnaXQgYWNjID0gYWNjdW11bGF0b3ItPmRpZ2l0KGFjY3VtdWxhdG9ySW5kZXgp
OworICAgICAgICBEaWdpdCBuZXdDYXJyeSA9IDA7CisgICAgICAgIGFjYyA9IGRpZ2l0QWRkKGFj
YywgaGlnaCwgbmV3Q2FycnkpOworICAgICAgICBoaWdoID0gMDsKKyAgICAgICAgYWNjID0gZGln
aXRBZGQoYWNjLCBjYXJyeSwgbmV3Q2FycnkpOworICAgICAgICBhY2N1bXVsYXRvci0+c2V0RGln
aXQoYWNjdW11bGF0b3JJbmRleCwgYWNjKTsKKyAgICAgICAgY2FycnkgPSBuZXdDYXJyeTsKKyAg
ICAgICAgYWNjdW11bGF0b3JJbmRleCsrOworICAgIH0KK30KKwogYm9vbCBKU0JpZ0ludDo6ZXF1
YWxzKEpTQmlnSW50KiB4LCBKU0JpZ0ludCogeSkKIHsKICAgICBpZiAoeC0+c2lnbigpICE9IHkt
PnNpZ24oKSkKQEAgLTQ2Niw3ICs1MjksNyBAQCBib29sIEpTQmlnSW50OjplcXVhbHMoSlNCaWdJ
bnQqIHgsIEpTQmlnSW50KiB5KQogICAgIGlmICh4LT5sZW5ndGgoKSAhPSB5LT5sZW5ndGgoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCB4LT5sZW5n
dGgoKTsgaSsrKSB7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHgtPmxlbmd0aCgpOyBp
KyspIHsKICAgICAgICAgaWYgKHgtPmRpZ2l0KGkpICE9IHktPmRpZ2l0KGkpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTQ5NCw3ICs1NTcsNyBAQCB2b2lkIEpTQmlnSW50
OjphYnNvbHV0ZURpdlNtYWxsKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCBEaWdpdCBk
aXZpc29yLCBKUwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaW50IGxlbmd0aCA9IHgt
Pmxlbmd0aCgpOworICAgIHVuc2lnbmVkIGxlbmd0aCA9IHgtPmxlbmd0aCgpOwogICAgIGlmIChx
dW90aWVudCAhPSBudWxscHRyKSB7CiAgICAgICAgIGlmICgqcXVvdGllbnQgPT0gbnVsbHB0cikK
ICAgICAgICAgICAgICpxdW90aWVudCA9IEpTQmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoKHZtLCBs
ZW5ndGgpOwpAQCAtNTIxLDE0ICs1ODQsMTQgQEAgY29uc3RleHByIHVpbnQ4X3QgbWF4Qml0c1Bl
ckNoYXJUYWJsZVtdID0gewogICAgIDE2MiwgMTYzLCAxNjUsIDE2NiwgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gMzMuLjM2CiB9OwogCi1zdGF0aWMgY29uc3QgaW50IGJpdHNQZXJDaGFyVGFi
bGVTaGlmdCA9IDU7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgYml0c1BlckNoYXJUYWJsZVNoaWZ0
ID0gNTsKIHN0YXRpYyBjb25zdCBzaXplX3QgYml0c1BlckNoYXJUYWJsZU11bHRpcGxpZXIgPSAx
dSA8PCBiaXRzUGVyQ2hhclRhYmxlU2hpZnQ7CiAKIC8vIENvbXB1dGUgKGFuIG92ZXJhcHByb3hp
bWF0aW9uIG9mKSB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHRpbmcgc3RyaW5nOgogLy8gRGl2aWRl
IGJpdCBsZW5ndGggb2YgdGhlIEJpZ0ludCBieSBiaXRzIHJlcHJlc2VudGFibGUgcGVyIGNoYXJh
Y3Rlci4KLXVpbnQ2NF90IEpTQmlnSW50OjpjYWxjdWxhdGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVp
cmVkKGludCBsZW5ndGgsIGludCByYWRpeCwgRGlnaXQgbGFzdERpZ2l0LCBib29sIHNpZ24pCit1
aW50NjRfdCBKU0JpZ0ludDo6Y2FsY3VsYXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZCh1bnNp
Z25lZCBsZW5ndGgsIHVuc2lnbmVkIHJhZGl4LCBEaWdpdCBsYXN0RGlnaXQsIGJvb2wgc2lnbikK
IHsKLSAgICBpbnQgbGVhZGluZ1plcm9zOworICAgIHVuc2lnbmVkIGxlYWRpbmdaZXJvczsKICAg
ICBpZiAoc2l6ZW9mKGxhc3REaWdpdCkgPT0gOCkKICAgICAgICAgbGVhZGluZ1plcm9zID0gY2x6
NjQobGFzdERpZ2l0KTsKICAgICBlbHNlCkBAIC01NTYsNyArNjE5LDcgQEAgdWludDY0X3QgSlNC
aWdJbnQ6OmNhbGN1bGF0ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQoaW50IGxlbmd0aCwgaW50
IHJhZGl4LCBEaWcKICAgICByZXR1cm4gbWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZDsKIH0KIAot
U3RyaW5nIEpTQmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJ
bnQqIHgsIGludCByYWRpeCkKK1N0cmluZyBKU0JpZ0ludDo6dG9TdHJpbmdHZW5lcmljKEV4ZWNT
dGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCB1bnNpZ25lZCByYWRpeCkKIHsKICAgICAvLyBGSVhN
RTogW0pTQ10gUmV2aXNpdCB1c2FnZSBvZiBTdHJpbmdWZWN0b3IgaW50byBKU0JpZ0ludDo6dG9T
dHJpbmcKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgw
NjcKQEAgLTU2NSw3ICs2MjgsNyBAQCBTdHJpbmcgSlNCaWdJbnQ6OnRvU3RyaW5nR2VuZXJpYyhF
eGVjU3RhdGUmIHN0YXRlLCBKU0JpZ0ludCogeCwgaW50IHJhZGl4KQogICAgIEFTU0VSVChyYWRp
eCA+PSAyICYmIHJhZGl4IDw9IDM2KTsKICAgICBBU1NFUlQoIXgtPmlzWmVybygpKTsKIAotICAg
IGludCBsZW5ndGggPSB4LT5sZW5ndGgoKTsKKyAgICB1bnNpZ25lZCBsZW5ndGggPSB4LT5sZW5n
dGgoKTsKICAgICBib29sIHNpZ24gPSB4LT5zaWduKCk7CiAKICAgICB1aW50OF90IG1heEJpdHNQ
ZXJDaGFyID0gbWF4Qml0c1BlckNoYXJUYWJsZVtyYWRpeF07CkBAIC01ODEsMTIgKzY0NCwxMiBA
QCBTdHJpbmcgSlNCaWdJbnQ6OnRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUmIHN0YXRlLCBKU0Jp
Z0ludCogeCwgaW50IHJhZGl4KQogICAgIGlmIChsZW5ndGggPT0gMSkKICAgICAgICAgbGFzdERp
Z2l0ID0geC0+ZGlnaXQoMCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGludCBjaHVua0NoYXJzID0g
ZGlnaXRCaXRzICogYml0c1BlckNoYXJUYWJsZU11bHRpcGxpZXIgLyBtYXhCaXRzUGVyQ2hhcjsK
KyAgICAgICAgdW5zaWduZWQgY2h1bmtDaGFycyA9IGRpZ2l0Qml0cyAqIGJpdHNQZXJDaGFyVGFi
bGVNdWx0aXBsaWVyIC8gbWF4Qml0c1BlckNoYXI7CiAgICAgICAgIERpZ2l0IGNodW5rRGl2aXNv
ciA9IGRpZ2l0UG93KHJhZGl4LCBjaHVua0NoYXJzKTsKIAogICAgICAgICAvLyBCeSBjb25zdHJ1
Y3Rpb24gb2YgY2h1bmtDaGFycywgdGhlcmUgY2FuJ3QgaGF2ZSBiZWVuIG92ZXJmbG93LgogICAg
ICAgICBBU1NFUlQoY2h1bmtEaXZpc29yKTsKLSAgICAgICAgaW50IG5vblplcm9EaWdpdCA9IGxl
bmd0aCAtIDE7CisgICAgICAgIHVuc2lnbmVkIG5vblplcm9EaWdpdCA9IGxlbmd0aCAtIDE7CiAg
ICAgICAgIEFTU0VSVCh4LT5kaWdpdChub25aZXJvRGlnaXQpKTsKIAogICAgICAgICAvLyB7cmVz
dH0gaG9sZHMgdGhlIHBhcnQgb2YgdGhlIEJpZ0ludCB0aGF0IHdlIGhhdmVuJ3QgbG9va2VkIGF0
IHlldC4KQEAgLTYwMiw3ICs2NjUsNyBAQCBTdHJpbmcgSlNCaWdJbnQ6OnRvU3RyaW5nR2VuZXJp
YyhFeGVjU3RhdGUmIHN0YXRlLCBKU0JpZ0ludCogeCwgaW50IHJhZGl4KQogICAgICAgICAgICAg
QVNTRVJUKHJlc3QpOwogCiAgICAgICAgICAgICBkaXZpZGVuZCA9ICZyZXN0OwotICAgICAgICAg
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaHVua0NoYXJzOyBpKyspIHsKKyAgICAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBjaHVua0NoYXJzOyBpKyspIHsKICAgICAgICAgICAgICAg
ICByZXN1bHRTdHJpbmcuYXBwZW5kKHJhZGl4RGlnaXRzW2NodW5rICUgcmFkaXhdKTsKICAgICAg
ICAgICAgICAgICBjaHVuayAvPSByYWRpeDsKICAgICAgICAgICAgIH0KQEAgLTYyNyw3ICs2OTAs
NyBAQCBTdHJpbmcgSlNCaWdJbnQ6OnRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUmIHN0YXRlLCBK
U0JpZ0ludCogeCwgaW50IHJhZGl4KQogICAgIEFTU0VSVChyZXN1bHRTdHJpbmcuc2l6ZSgpIDw9
IHN0YXRpY19jYXN0PHNpemVfdD4obWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZCkpOwogCiAgICAg
Ly8gUmVtb3ZlIGxlYWRpbmcgemVyb2VzLgotICAgIGludCBuZXdTaXplTm9MZWFkaW5nWmVyb2Vz
ID0gcmVzdWx0U3RyaW5nLnNpemUoKTsKKyAgICB1bnNpZ25lZCBuZXdTaXplTm9MZWFkaW5nWmVy
b2VzID0gcmVzdWx0U3RyaW5nLnNpemUoKTsKICAgICB3aGlsZSAobmV3U2l6ZU5vTGVhZGluZ1pl
cm9lcyAgPiAxICYmIHJlc3VsdFN0cmluZ1tuZXdTaXplTm9MZWFkaW5nWmVyb2VzIC0gMV0gPT0g
JzAnKQogICAgICAgICBuZXdTaXplTm9MZWFkaW5nWmVyb2VzLS07CiAKQEAgLTY0NiwxNCArNzA5
LDE2IEBAIEpTQmlnSW50KiBKU0JpZ0ludDo6cmlnaHRUcmltKFZNJiB2bSkKICAgICBpZiAoaXNa
ZXJvKCkpCiAgICAgICAgIHJldHVybiB0aGlzOwogCisgICAgQVNTRVJUKG1fbGVuZ3RoKTsKKwog
ICAgIGludCBub25aZXJvSW5kZXggPSBtX2xlbmd0aCAtIDE7CiAgICAgd2hpbGUgKG5vblplcm9J
bmRleCA+PSAwICYmICFkaWdpdChub25aZXJvSW5kZXgpKQogICAgICAgICBub25aZXJvSW5kZXgt
LTsKIAotICAgIGlmIChub25aZXJvSW5kZXggPT0gbV9sZW5ndGggLSAxKQorICAgIGlmIChub25a
ZXJvSW5kZXggPT0gc3RhdGljX2Nhc3Q8aW50PihtX2xlbmd0aCAtIDEpKQogICAgICAgICByZXR1
cm4gdGhpczsKIAotICAgIGludCBuZXdMZW5ndGggPSBub25aZXJvSW5kZXggKyAxOworICAgIHVu
c2lnbmVkIG5ld0xlbmd0aCA9IG5vblplcm9JbmRleCArIDE7CiAgICAgSlNCaWdJbnQqIHRyaW1t
ZWRCaWdJbnQgPSBjcmVhdGVXaXRoTGVuZ3RoKHZtLCBuZXdMZW5ndGgpOwogICAgIFJFTEVBU0Vf
QVNTRVJUKHRyaW1tZWRCaWdJbnQpOwogICAgIHN0ZDo6Y29weShkYXRhU3RvcmFnZSgpLCBkYXRh
U3RvcmFnZSgpICsgbmV3TGVuZ3RoLCB0cmltbWVkQmlnSW50LT5kYXRhU3RvcmFnZSgpKTsgCkBA
IC02NjMsMTQgKzcyOCwxNCBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6OnJpZ2h0VHJpbShWTSYgdm0p
CiAgICAgcmV0dXJuIHRyaW1tZWRCaWdJbnQ7CiB9CiAKLUpTQmlnSW50KiBKU0JpZ0ludDo6YWxs
b2NhdGVGb3IoRXhlY1N0YXRlKiBzdGF0ZSwgVk0mIHZtLCBpbnQgcmFkaXgsIGludCBjaGFyY291
bnQpCitKU0JpZ0ludCogSlNCaWdJbnQ6OmFsbG9jYXRlRm9yKEV4ZWNTdGF0ZSogc3RhdGUsIFZN
JiB2bSwgdW5zaWduZWQgcmFkaXgsIHVuc2lnbmVkIGNoYXJjb3VudCkKIHsKICAgICBBU1NFUlQo
MiA8PSByYWRpeCAmJiByYWRpeCA8PSAzNik7CiAgICAgQVNTRVJUKGNoYXJjb3VudCA+PSAwKTsK
IAogICAgIHNpemVfdCBiaXRzUGVyQ2hhciA9IG1heEJpdHNQZXJDaGFyVGFibGVbcmFkaXhdOwog
ICAgIHNpemVfdCBjaGFycyA9IGNoYXJjb3VudDsKLSAgICBjb25zdCBpbnQgcm91bmR1cCA9IGJp
dHNQZXJDaGFyVGFibGVNdWx0aXBsaWVyIC0gMTsKKyAgICBjb25zdCB1bnNpZ25lZCByb3VuZHVw
ID0gYml0c1BlckNoYXJUYWJsZU11bHRpcGxpZXIgLSAxOwogICAgIGlmIChjaGFycyA8PSAoc3Rk
OjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSAtIHJvdW5kdXApIC8gYml0c1BlckNoYXIp
IHsKICAgICAgICAgc2l6ZV90IGJpdHNNaW4gPSBiaXRzUGVyQ2hhciAqIGNoYXJzOwogCkBAIC02
NzgsNyArNzQzLDcgQEAgSlNCaWdJbnQqIEpTQmlnSW50OjphbGxvY2F0ZUZvcihFeGVjU3RhdGUq
IHN0YXRlLCBWTSYgdm0sIGludCByYWRpeCwgaW50IGNoYXJjb3UKICAgICAgICAgYml0c01pbiA9
IChiaXRzTWluICsgcm91bmR1cCkgPj4gYml0c1BlckNoYXJUYWJsZVNoaWZ0OwogICAgICAgICBp
ZiAoYml0c01pbiA8PSBzdGF0aWNfY2FzdDxzaXplX3Q+KG1heEludCkpIHsKICAgICAgICAgICAg
IC8vIERpdmlkZSBieSBrRGlnaXRzQml0cywgcm91bmRpbmcgdXAuCi0gICAgICAgICAgICBpbnQg
bGVuZ3RoID0gKHN0YXRpY19jYXN0PGludD4oYml0c01pbikgKyBkaWdpdEJpdHMgLSAxKSAvIGRp
Z2l0Qml0czsKKyAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IChiaXRzTWluICsgZGlnaXRC
aXRzIC0gMSkgLyBkaWdpdEJpdHM7CiAgICAgICAgICAgICBpZiAobGVuZ3RoIDw9IG1heExlbmd0
aCkgewogICAgICAgICAgICAgICAgIEpTQmlnSW50KiByZXN1bHQgPSBKU0JpZ0ludDo6Y3JlYXRl
V2l0aExlbmd0aCh2bSwgbGVuZ3RoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwpA
QCAtNzE5LDExICs3ODQsMTEgQEAgc2l6ZV90IEpTQmlnSW50OjpvZmZzZXRPZkRhdGEoKQogfQog
CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci1KU0JpZ0ludCogSlNCaWdJbnQ6OnBhcnNl
SW50KEV4ZWNTdGF0ZSogc3RhdGUsIENoYXJUeXBlKiAgZGF0YSwgaW50IGxlbmd0aCkKK0pTQmln
SW50KiBKU0JpZ0ludDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwgQ2hhclR5cGUqICBkYXRh
LCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAKLSAgICBp
bnQgcCA9IDA7CisgICAgdW5zaWduZWQgcCA9IDA7CiAgICAgd2hpbGUgKHAgPCBsZW5ndGggJiYg
aXNTdHJXaGl0ZVNwYWNlKGRhdGFbcF0pKQogICAgICAgICArK3A7CiAKQEAgLTc1OCwxMCArODIz
LDEwIEBAIEpTQmlnSW50KiBKU0JpZ0ludDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwgQ2hh
clR5cGUqICBkYXRhLCBpbnQgbGVuZ3RoKQogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5
cGU+Ci1KU0JpZ0ludCogSlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2
bSwgQ2hhclR5cGUqIGRhdGEsIGludCBsZW5ndGgsIGludCBzdGFydEluZGV4LCBpbnQgcmFkaXgs
IGJvb2wgYWxsb3dFbXB0eVN0cmluZykKK0pTQmlnSW50KiBKU0JpZ0ludDo6cGFyc2VJbnQoRXhl
Y1N0YXRlKiBzdGF0ZSwgVk0mIHZtLCBDaGFyVHlwZSogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCB1
bnNpZ25lZCBzdGFydEluZGV4LCB1bnNpZ25lZCByYWRpeCwgYm9vbCBhbGxvd0VtcHR5U3RyaW5n
KQogewogICAgIEFTU0VSVChsZW5ndGggPj0gMCk7Ci0gICAgaW50IHAgPSBzdGFydEluZGV4Owor
ICAgIHVuc2lnbmVkIHAgPSBzdGFydEluZGV4OwogCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwogCkBAIC03NzcsNyArODQyLDcgQEAgSlNCaWdJbnQqIEpTQmlnSW50
OjpwYXJzZUludChFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0sIENoYXJUeXBlKiBkYXRhLCBpbnQg
bGVuZ3QKIAogICAgIGludCBlbmRJbmRleCA9IGxlbmd0aCAtIDE7CiAgICAgLy8gUmVtb3Zpbmcg
dHJhaWxpbmcgc3BhY2VzCi0gICAgd2hpbGUgKGVuZEluZGV4ID49IHAgJiYgaXNTdHJXaGl0ZVNw
YWNlKGRhdGFbZW5kSW5kZXhdKSkKKyAgICB3aGlsZSAoZW5kSW5kZXggPj0gc3RhdGljX2Nhc3Q8
aW50PihwKSAmJiBpc1N0cldoaXRlU3BhY2UoZGF0YVtlbmRJbmRleF0pKQogICAgICAgICAtLWVu
ZEluZGV4OwogCiAgICAgbGVuZ3RoID0gZW5kSW5kZXggKyAxOwpAQCAtNzg1LDE2ICs4NTAsMTYg
QEAgSlNCaWdJbnQqIEpTQmlnSW50OjpwYXJzZUludChFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0s
IENoYXJUeXBlKiBkYXRhLCBpbnQgbGVuZ3QKICAgICBpZiAocCA9PSBsZW5ndGgpCiAgICAgICAg
IHJldHVybiBjcmVhdGVaZXJvKHZtKTsKIAotICAgIGludCBsaW1pdDAgPSAnMCcgKyAocmFkaXgg
PCAxMCA/IHJhZGl4IDogMTApOwotICAgIGludCBsaW1pdGEgPSAnYScgKyAocmFkaXggLSAxMCk7
Ci0gICAgaW50IGxpbWl0QSA9ICdBJyArIChyYWRpeCAtIDEwKTsKKyAgICB1bnNpZ25lZCBsaW1p
dDAgPSAnMCcgKyAocmFkaXggPCAxMCA/IHJhZGl4IDogMTApOworICAgIHVuc2lnbmVkIGxpbWl0
YSA9ICdhJyArIChyYWRpeCAtIDEwKTsKKyAgICB1bnNpZ25lZCBsaW1pdEEgPSAnQScgKyAocmFk
aXggLSAxMCk7CiAKICAgICBKU0JpZ0ludCogcmVzdWx0ID0gYWxsb2NhdGVGb3Ioc3RhdGUsIHZt
LCByYWRpeCwgbGVuZ3RoIC0gcCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVs
bHB0cik7CiAKICAgICByZXN1bHQtPmluaXRpYWxpemUoSW5pdGlhbGl6YXRpb25UeXBlOjpXaXRo
WmVybyk7CiAKLSAgICBmb3IgKGludCBpID0gcDsgaSA8IGxlbmd0aDsgaSsrLCBwKyspIHsKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSBwOyBpIDwgbGVuZ3RoOyBpKyssIHArKykgewogICAgICAgICB1
aW50MzJfdCBkaWdpdDsKICAgICAgICAgaWYgKGRhdGFbaV0gPj0gJzAnICYmIGRhdGFbaV0gPCBs
aW1pdDApCiAgICAgICAgICAgICBkaWdpdCA9IGRhdGFbaV0gLSAnMCc7CkBAIC04MjIsMTMgKzg4
NywxMyBAQCBKU0JpZ0ludDo6RGlnaXQqIEpTQmlnSW50OjpkYXRhU3RvcmFnZSgpCiAgICAgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RGlnaXQqPihyZWludGVycHJldF9jYXN0PGNoYXIqPih0aGlz
KSArIG9mZnNldE9mRGF0YSgpKTsKIH0KIAotSlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdp
dChpbnQgbikKK0pTQmlnSW50OjpEaWdpdCBKU0JpZ0ludDo6ZGlnaXQodW5zaWduZWQgbikKIHsK
ICAgICBBU1NFUlQobiA+PSAwICYmIG4gPCBsZW5ndGgoKSk7CiAgICAgcmV0dXJuIGRhdGFTdG9y
YWdlKClbbl07CiB9CiAKLXZvaWQgSlNCaWdJbnQ6OnNldERpZ2l0KGludCBuLCBEaWdpdCB2YWx1
ZSkKK3ZvaWQgSlNCaWdJbnQ6OnNldERpZ2l0KHVuc2lnbmVkIG4sIERpZ2l0IHZhbHVlKQogewog
ICAgIEFTU0VSVChuID49IDAgJiYgbiA8IGxlbmd0aCgpKTsKICAgICBkYXRhU3RvcmFnZSgpW25d
ID0gdmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Jp
Z0ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaAppbmRleCAy
OThjMzQ4Li5lYjEyYzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0JpZ0ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50
LmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgSlNCaWdJbnQgZmluYWwgOiBwdWJsaWMgSlNDZWxs
IHsKIAogcHVibGljOgogCi0gICAgSlNCaWdJbnQoVk0mLCBTdHJ1Y3R1cmUqLCBpbnQgbGVuZ3Ro
KTsKKyAgICBKU0JpZ0ludChWTSYsIFN0cnVjdHVyZSosIHVuc2lnbmVkIGxlbmd0aCk7CiAKICAg
ICBlbnVtIGNsYXNzIEluaXRpYWxpemF0aW9uVHlwZSB7IE5vbmUsIFdpdGhaZXJvIH07CiAgICAg
dm9pZCBpbml0aWFsaXplKEluaXRpYWxpemF0aW9uVHlwZSk7CkBAIC00OSwxMiArNDksMTEgQEAg
cHVibGljOgogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0
b3ImKTsKIAogICAgIHN0YXRpYyBzaXplX3QgZXN0aW1hdGVkU2l6ZShKU0NlbGwqKTsKLSAgICBz
dGF0aWMgc2l6ZV90IGFsbG9jYXRpb25TaXplKGludCBsZW5ndGgpOworICAgIHN0YXRpYyBzaXpl
X3QgYWxsb2NhdGlvblNpemUodW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBwcm90b3R5
cGUpOwotCiAgICAgc3RhdGljIEpTQmlnSW50KiBjcmVhdGVaZXJvKFZNJik7Ci0gICAgc3RhdGlj
IEpTQmlnSW50KiBjcmVhdGVXaXRoTGVuZ3RoKFZNJiwgaW50IGxlbmd0aCk7CisgICAgc3RhdGlj
IEpTQmlnSW50KiBjcmVhdGVXaXRoTGVuZ3RoKFZNJiwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAg
IHN0YXRpYyBKU0JpZ0ludCogY3JlYXRlRnJvbShWTSYsIGludDMyX3QgdmFsdWUpOwogICAgIHN0
YXRpYyBKU0JpZ0ludCogY3JlYXRlRnJvbShWTSYsIHVpbnQzMl90IHZhbHVlKTsKQEAgLTcwLDE0
ICs2OSwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaWduKGJvb2wgc2lnbikgeyBtX3NpZ24g
PSBzaWduOyB9CiAgICAgYm9vbCBzaWduKCkgY29uc3QgeyByZXR1cm4gbV9zaWduOyB9CiAKLSAg
ICB2b2lkIHNldExlbmd0aChpbnQgbGVuZ3RoKSB7IG1fbGVuZ3RoID0gbGVuZ3RoOyB9Ci0gICAg
aW50IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CisgICAgdm9pZCBzZXRMZW5n
dGgodW5zaWduZWQgbGVuZ3RoKSB7IG1fbGVuZ3RoID0gbGVuZ3RoOyB9CisgICAgdW5zaWduZWQg
bGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KIAogICAgIHN0YXRpYyBKU0JpZ0lu
dCogcGFyc2VJbnQoRXhlY1N0YXRlKiwgVk0mLCBTdHJpbmdWaWV3LCB1aW50OF90IHJhZGl4KTsK
ICAgICBzdGF0aWMgSlNCaWdJbnQqIHBhcnNlSW50KEV4ZWNTdGF0ZSosIFN0cmluZ1ZpZXcpOwog
CiAgICAgc3RkOjpvcHRpb25hbDx1aW50OF90PiBzaW5nbGVEaWdpdFZhbHVlRm9yU3RyaW5nKCk7
Ci0gICAgU3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSYsIGludCByYWRpeCk7CisgICAgU3RyaW5n
IHRvU3RyaW5nKEV4ZWNTdGF0ZSYsIHVuc2lnbmVkIHJhZGl4KTsKICAgICAKICAgICBKU19FWFBP
UlRfUFJJVkFURSBzdGF0aWMgYm9vbCBlcXVhbHMoSlNCaWdJbnQqLCBKU0JpZ0ludCopOwogCkBA
IC04NSwxMiArODQsMTQgQEAgcHVibGljOgogICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUq
KSBjb25zdDsKIAogICAgIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9i
amVjdCopIGNvbnN0OworCisgICAgc3RhdGljIEpTQmlnSW50KiBtdWx0aXBseShFeGVjU3RhdGUq
LCBKU0JpZ0ludCogeCwgSlNCaWdJbnQqIHkpOwogICAgIAogcHJpdmF0ZToKICAgICB1c2luZyBE
aWdpdCA9IHVpbnRwdHJfdDsKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGludCBiaXRzUGVy
Qnl0ZSA9IDg7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQgZGlnaXRCaXRzID0gc2l6
ZW9mKERpZ2l0KSAqIGJpdHNQZXJCeXRlOwotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgaW50
IGhhbGZEaWdpdEJpdHMgPSBkaWdpdEJpdHMgLyAyOworICAgIHN0YXRpYyBjb25zdGV4cHIgY29u
c3QgdW5zaWduZWQgYml0c1BlckJ5dGUgPSA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3Qg
dW5zaWduZWQgZGlnaXRCaXRzID0gc2l6ZW9mKERpZ2l0KSAqIGJpdHNQZXJCeXRlOworICAgIHN0
YXRpYyBjb25zdGV4cHIgY29uc3QgdW5zaWduZWQgaGFsZkRpZ2l0Qml0cyA9IGRpZ2l0Qml0cyAv
IDI7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBEaWdpdCBoYWxmRGlnaXRNYXNrID0gKDF1
bGwgPDwgaGFsZkRpZ2l0Qml0cykgLSAxOwogICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgaW50
IG1heEludCA9IDB4N0ZGRkZGRkY7CiAgICAgCkBAIC05OCwxMiArOTksMTMgQEAgcHJpdmF0ZToK
ICAgICAvLyBtYXhJbnQgLyBkaWdpdEJpdHMuIEhvd2V2ZXIsIHdlIHVzZSBhIGxvd2VyIGxpbWl0
IGZvciBub3csIGJlY2F1c2UKICAgICAvLyByYWlzaW5nIGl0IGxhdGVyIGlzIGVhc2llciB0aGFu
IGxvd2VyaW5nIGl0LgogICAgIC8vIFN1cHBvcnQgdXAgdG8gMSBtaWxsaW9uIGJpdHMuCi0gICAg
c3RhdGljIGNvbnN0IGludCBtYXhMZW5ndGggPSAxMDI0ICogMTAyNCAvIChzaXplb2Yodm9pZCop
ICogYml0c1BlckJ5dGUpOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhMZW5ndGggPSAx
MDI0ICogMTAyNCAvIChzaXplb2Yodm9pZCopICogYml0c1BlckJ5dGUpOwogICAgIAotICAgIHN0
YXRpYyB1aW50NjRfdCBjYWxjdWxhdGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKGludCBsZW5n
dGgsIGludCByYWRpeCwgRGlnaXQgbGFzdERpZ2l0LCBib29sIHNpZ24pOworICAgIHN0YXRpYyB1
aW50NjRfdCBjYWxjdWxhdGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKHVuc2lnbmVkIGxlbmd0
aCwgdW5zaWduZWQgcmFkaXgsIERpZ2l0IGxhc3REaWdpdCwgYm9vbCBzaWduKTsKICAgICAKICAg
ICBzdGF0aWMgdm9pZCBhYnNvbHV0ZURpdlNtYWxsKEV4ZWNTdGF0ZSYsIEpTQmlnSW50KiB4LCBE
aWdpdCBkaXZpc29yLCBKU0JpZ0ludCoqIHF1b3RpZW50LCBEaWdpdCYgcmVtYWluZGVyKTsKLSAg
ICBzdGF0aWMgdm9pZCBpbnRlcm5hbE11bHRpcGx5QWRkKEpTQmlnSW50KiBzb3VyY2UsIERpZ2l0
IGZhY3RvciwgRGlnaXQgc3VtbWFuZCwgaW50LCBKU0JpZ0ludCogcmVzdWx0KTsKKyAgICBzdGF0
aWMgdm9pZCBpbnRlcm5hbE11bHRpcGx5QWRkKEpTQmlnSW50KiBzb3VyY2UsIERpZ2l0IGZhY3Rv
ciwgRGlnaXQgc3VtbWFuZCwgdW5zaWduZWQsIEpTQmlnSW50KiByZXN1bHQpOworICAgIHN0YXRp
YyB2b2lkIG11bHRpcGx5QWNjdW11bGF0ZShKU0JpZ0ludCogbXVsdGlwbGljYW5kLCBEaWdpdCBt
dWx0aXBsaWVyLCBKU0JpZ0ludCogYWNjdW11bGF0b3IsIHVuc2lnbmVkIGFjY3VtdWxhdG9ySW5k
ZXgpOwogCiAgICAgLy8gRGlnaXQgYXJpdGhtZXRpYyBoZWxwZXJzLgogICAgIHN0YXRpYyBEaWdp
dCBkaWdpdEFkZChEaWdpdCBhLCBEaWdpdCBiLCBEaWdpdCYgY2FycnkpOwpAQCAtMTEyLDE3ICsx
MTQsMTcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgRGlnaXQgZGlnaXREaXYoRGlnaXQgaGlnaCwg
RGlnaXQgbG93LCBEaWdpdCBkaXZpc29yLCBEaWdpdCYgcmVtYWluZGVyKTsKICAgICBzdGF0aWMg
RGlnaXQgZGlnaXRQb3coRGlnaXQgYmFzZSwgRGlnaXQgZXhwb25lbnQpOwogCi0gICAgc3RhdGlj
IFN0cmluZyB0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiwgSlNCaWdJbnQqLCBpbnQgcmFkaXgp
OworICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYsIEpTQmlnSW50
KiwgdW5zaWduZWQgcmFkaXgpOwogCiAgICAgYm9vbCBpc1plcm8oKTsKIAogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBDaGFyVHlwZT4KLSAgICBzdGF0aWMgSlNCaWdJbnQqIHBhcnNlSW50KEV4ZWNT
dGF0ZSosIENoYXJUeXBlKiAgZGF0YSwgaW50IGxlbmd0aCk7CisgICAgc3RhdGljIEpTQmlnSW50
KiBwYXJzZUludChFeGVjU3RhdGUqLCBDaGFyVHlwZSogIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCk7
CiAKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci0gICAgc3RhdGljIEpTQmlnSW50
KiBwYXJzZUludChFeGVjU3RhdGUqLCBWTSYsIENoYXJUeXBlKiBkYXRhLCBpbnQgbGVuZ3RoLCBp
bnQgc3RhcnRJbmRleCwgaW50IHJhZGl4LCBib29sIGFsbG93RW1wdHlTdHJpbmcgPSB0cnVlKTsK
KyAgICBzdGF0aWMgSlNCaWdJbnQqIHBhcnNlSW50KEV4ZWNTdGF0ZSosIFZNJiwgQ2hhclR5cGUq
IGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQgc3RhcnRJbmRleCwgdW5zaWduZWQgcmFk
aXgsIGJvb2wgYWxsb3dFbXB0eVN0cmluZyA9IHRydWUpOwogCi0gICAgc3RhdGljIEpTQmlnSW50
KiBhbGxvY2F0ZUZvcihFeGVjU3RhdGUqLCBWTSYsIGludCByYWRpeCwgaW50IGNoYXJjb3VudCk7
CisgICAgc3RhdGljIEpTQmlnSW50KiBhbGxvY2F0ZUZvcihFeGVjU3RhdGUqLCBWTSYsIHVuc2ln
bmVkIHJhZGl4LCB1bnNpZ25lZCBjaGFyY291bnQpOwogCiAgICAgSlNCaWdJbnQqIHJpZ2h0VHJp
bShWTSYpOwogCkBAIC0xMzEsMTAgKzEzMywxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBzaXpl
X3Qgb2Zmc2V0T2ZEYXRhKCk7CiAgICAgRGlnaXQqIGRhdGFTdG9yYWdlKCk7CiAKLSAgICBEaWdp
dCBkaWdpdChpbnQpOwotICAgIHZvaWQgc2V0RGlnaXQoaW50LCBEaWdpdCk7CisgICAgRGlnaXQg
ZGlnaXQodW5zaWduZWQpOworICAgIHZvaWQgc2V0RGlnaXQodW5zaWduZWQsIERpZ2l0KTsKICAg
ICAgICAgCi0gICAgaW50IG1fbGVuZ3RoOworICAgIHVuc2lnbmVkIG1fbGVuZ3RoOwogICAgIGJv
b2wgbV9zaWduOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9u
cy5oCmluZGV4IDEzNDlhZWMuLjgxZDdlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcGVyYXRpb25zLmgKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkNhbGxGcmFt
ZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKKyNpbmNsdWRlICJKU0JpZ0ludC5o
IgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0yNTYsNiAr
MjU3LDI5IEBAIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc0FkZChDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgSlNWYWx1ZSB2MSwgSlNWYWx1ZSB2MikKICAgICByZXR1cm4ganNBZGRTbG93Q2FzZShjYWxs
RnJhbWUsIHYxLCB2Mik7CiB9CiAKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc011bChFeGVjU3Rh
dGUqIHN0YXRlLCBKU1ZhbHVlIHYxLCBKU1ZhbHVlIHYyKQoreworICAgIFZNJiB2bSA9IHN0YXRl
LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAg
IEpTVmFsdWUgbGVmdE51bWJlciA9IHYxLnRvUHJpbWl0aXZlKHN0YXRlLCBQcmVmZXJOdW1iZXIp
OworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgSlNWYWx1ZSByaWdo
dE51bWJlciA9IHYyLnRvUHJpbWl0aXZlKHN0YXRlLCBQcmVmZXJOdW1iZXIpOworICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBpZiAobGVmdE51bWJlci5pc0JpZ0lu
dCgpIHx8IHJpZ2h0TnVtYmVyLmlzQmlnSW50KCkpIHsKKyAgICAgICAgaWYgKGxlZnROdW1iZXIu
aXNCaWdJbnQoKSAmJiByaWdodE51bWJlci5pc0JpZ0ludCgpKQorICAgICAgICAgICAgcmV0dXJu
IEpTQmlnSW50OjptdWx0aXBseShzdGF0ZSwgYXNCaWdJbnQobGVmdE51bWJlciksIGFzQmlnSW50
KHJpZ2h0TnVtYmVyKSk7CisKKyAgICAgICAgdGhyb3dUeXBlRXJyb3Ioc3RhdGUsIHNjb3BlLCBB
U0NJSUxpdGVyYWwoIkludmFsaWQgbWl4IG9mIEJpZ0ludCBhbmQgb3RoZXIgdHlwZSBpbiBtdWx0
aXBsaWNhdGlvbi4iKSk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgZG91Ymxl
IGxlZnRWYWx1ZSA9ICBsZWZ0TnVtYmVyLnRvTnVtYmVyKHN0YXRlKTsKKyAgICBkb3VibGUgcmln
aHRWYWx1ZSA9ICByaWdodE51bWJlci50b051bWJlcihzdGF0ZSk7CisgICAgcmV0dXJuIGpzTnVt
YmVyKGxlZnRWYWx1ZSAqIHJpZ2h0VmFsdWUpOworfQorCiBpbmxpbmUgYm9vbCBzY3JpYmJsZUZy
ZWVDZWxscygpCiB7CiAgICAgcmV0dXJuICFBU1NFUlRfRElTQUJMRUQgfHwgT3B0aW9uczo6c2Ny
aWJibGVGcmVlQ2VsbHMoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339014</attachid>
            <date>2018-04-27 12:46:50 -0700</date>
            <delta_ts>2018-04-28 09:57:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183721-20180427164647.patch</filename>
            <type>text/plain</type>
            <size>45295</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
N2ZmN2NiMmM4YzU1OGFiOGViMTdlM2U5OTY5N2IwNzBjZjQzODMwLi41YjdiMGY5ZTlkZTZjODll
MTBkYmIyOWQyYzM1YjdhOTQ2ODNlZDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MiBAQAorMjAxOC0wNC0yNyAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgIioiIG9w
ZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgzNzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgQWRk
ZWQgQmlnSW50IHN1cHBvcnQgaW50byB0aW1lcyBiaW5hcnkgb3BlcmF0b3IgaW50byBMTEludCBh
bmQgb24KKyAgICAgICAgSklUT3BlcmF0aW9ucyBwcm9maWxlZE11bCBhbmQgdW5wcm9maWxlZE11
bC4gV2UgYXJlIGFsc28gcmVwbGFjaW5nIGFsbAorICAgICAgICB1c2VzIG9mIGludCB0byB1bnNp
Z25lZCB3aGVuIHRoZXJlIGlzIG5vIG5lZ2F0aXZlIHZhbHVlcyBmb3IKKyAgICAgICAgdmFyaWFi
bGVzLgorCisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6CisgICAg
ICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNCaWdJbnQuY3BwOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6SlNCaWdJbnQpOgor
ICAgICAgICAoSlNDOjpKU0JpZ0ludDo6YWxsb2NhdGlvblNpemUpOgorICAgICAgICAoSlNDOjpK
U0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojp0b1N0
cmluZyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjptdWx0aXBseSk6CisgICAgICAgIChKU0M6
OkpTQmlnSW50OjpkaWdpdERpdik6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjppbnRlcm5hbE11
bHRpcGx5QWRkKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6Om11bHRpcGx5QWNjdW11bGF0ZSk6
CisgICAgICAgIChKU0M6OkpTQmlnSW50OjplcXVhbHMpOgorICAgICAgICAoSlNDOjpKU0JpZ0lu
dDo6YWJzb2x1dGVEaXZTbWFsbCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpjYWxjdWxhdGVN
YXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OnRvU3Ry
aW5nR2VuZXJpYyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpyaWdodFRyaW0pOgorICAgICAg
ICAoSlNDOjpKU0JpZ0ludDo6YWxsb2NhdGVGb3IpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6
cGFyc2VJbnQpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6ZGlnaXQpOgorICAgICAgICAoSlND
OjpKU0JpZ0ludDo6c2V0RGlnaXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuaDoKKyAg
ICAgICAgKiBydW50aW1lL09wZXJhdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6anNNdWwpOgorCiAy
MDE4LTA0LTI3ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMzEwODYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCmluZGV4IGNlZTY1NjIz
NDMxNzcwZjRiZjQwMmFkYTBjODc3MzU4ZjgwMGI2N2QuLmU0NjUwYWMzMDgwZjZiNDIwYjYzNzhi
NjY1Y2VkNTI2YmI5ZGU1YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCkBAIC0xNDYsMTQgKzE0NiwxNCBAQCBwcml2
YXRlOgogICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlIGNoaWxkMkNvbnN0YW50ID0gbV9zdGF0
ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMigpLm5vZGUoKSkudmFsdWUoKTsKIAogICAgICAgICAgICAg
ICAgICAgICAvLyBGSVhNRTogUmV2aXNpdCB0aGlzIGNvbmRpdGlvbiB3aGVuIGludHJvZHVjaW5n
IEJpZ0ludCB0byBKU0MuCi0gICAgICAgICAgICAgICAgICAgIGF1dG8gaXNOb25TdHJpbmdDZWxs
Q29uc3RhbnQgPSBbXSAoSlNWYWx1ZSB2YWx1ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHZhbHVlICYmIHZhbHVlLmlzQ2VsbCgpICYmICF2YWx1ZS5pc1N0cmluZygpOworICAg
ICAgICAgICAgICAgICAgICBhdXRvIGlzTm9uU3RyaW5nT3JCaWdJbnRDZWxsQ29uc3RhbnQgPSBb
XSAoSlNWYWx1ZSB2YWx1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVl
ICYmIHZhbHVlLmlzQ2VsbCgpICYmICF2YWx1ZS5pc1N0cmluZygpICYmICF2YWx1ZS5pc0JpZ0lu
dCgpOwogICAgICAgICAgICAgICAgICAgICB9OwogCi0gICAgICAgICAgICAgICAgICAgIGlmIChp
c05vblN0cmluZ0NlbGxDb25zdGFudChjaGlsZDFDb25zdGFudCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGlzTm9uU3RyaW5nT3JCaWdJbnRDZWxsQ29uc3RhbnQoY2hpbGQxQ29uc3RhbnQp
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9Db21wYXJlRXFQdHIo
bV9ncmFwaC5mcmVlemVTdHJvbmcoY2hpbGQxQ29uc3RhbnQuYXNDZWxsKCkpLCBub2RlLT5jaGls
ZDIoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChpc05vblN0cmluZ0NlbGxDb25zdGFudChjaGlsZDJDb25z
dGFudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc05vblN0cmluZ09yQmln
SW50Q2VsbENvbnN0YW50KGNoaWxkMkNvbnN0YW50KSkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgbm9kZS0+Y29udmVydFRvQ29tcGFyZUVxUHRyKG1fZ3JhcGguZnJlZXplU3Ryb25nKGNoaWxk
MkNvbnN0YW50LmFzQ2VsbCgpKSwgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IDM2NWJiNzM3NTVhN2E0NTRj
ZjA4NTQzNmM2Mzc4ZDFiZjczZmVjNGIuLjYyZmMxYjAyMmFjOTdjYmQ4ODgxNDE5MjIyMmM2Mjc0
OWQyN2Y1YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cApAQCAtMjU1NCwzNCArMjU1NCwyMyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlQWRkTm9PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZQogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotQUxXQVlTX0lOTElORSBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgdW5wcm9maWxlZE11bChWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKK0FMV0FZ
U19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHVucHJvZmlsZWRNdWwoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ay
KQogewotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1Zh
bHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKICAgICBKU1ZhbHVlIG9wMiA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKIAotICAgIGRvdWJsZSBhID0gb3AxLnRvTnVt
YmVyKGV4ZWMpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVl
KCkpOwotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihl
eGVjKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGEgKiBiKSk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc011bChleGVjLCBvcDEsIG9wMikpOwogfQogCi1BTFdB
WVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBwcm9maWxlZE11bChWTSYgdm0sIEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMiwgQXJpdGhQcm9maWxlJiBhcml0aFByb2ZpbGUsIGJvb2wgc2hvdWxkT2JzZXJ2ZUxI
U0FuZFJIU1R5cGVzID0gdHJ1ZSkKK0FMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IHByb2ZpbGVkTXVsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlJiBhcml0aFByb2ZpbGUsIGJv
b2wgc2hvdWxkT2JzZXJ2ZUxIU0FuZFJIU1R5cGVzID0gdHJ1ZSkKIHsKLSAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZE9wMSk7CiAgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZE9wMik7CiAKICAgICBpZiAoc2hvdWxkT2JzZXJ2ZUxIU0FuZFJIU1R5cGVzKQogICAgICAg
ICBhcml0aFByb2ZpbGUub2JzZXJ2ZUxIU0FuZFJIUyhvcDEsIG9wMik7CiAKLSAgICBkb3VibGUg
YSA9IG9wMS50b051bWJlcihleGVjKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBl
bmNvZGVkSlNWYWx1ZSgpKTsKLSAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsKLSAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICAKLSAg
ICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEgKiBiKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9
IGpzTXVsKGV4ZWMsIG9wMSwgb3AyKTsKICAgICBhcml0aFByb2ZpbGUub2JzZXJ2ZVJlc3VsdChy
ZXN1bHQpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KQEAgLTI1OTEs
NyArMjU4MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVN
dWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlCiAgICAgVk0qIHZtID0gJmV4ZWMt
PnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAKLSAg
ICByZXR1cm4gdW5wcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIp
OworICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIp
OwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsTm9P
cHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVE11bElDKikKQEAgLTI1OTksNyArMjU4OCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxOb09wdGltaXplKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlCiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0
aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAKLSAgICByZXR1cm4gdW5wcm9m
aWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOworICAgIHJldHVybiB1
bnByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwogfQogCiBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsT3B0aW1pemUoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyLCBKSVRNdWxJQyogbXVsSUMpCkBAIC0yNjE2LDcgKzI2MDUsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsT3B0aW1pemUoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSgogICAgIGV4ZWMtPmNvZGVCbG9jaygpLT5kdW1wTWF0aElDU3RhdHMoKTsKICNl
bmRpZgogCi0gICAgcmV0dXJuIHVucHJvZmlsZWRNdWwoKnZtLCBleGVjLCBlbmNvZGVkT3AxLCBl
bmNvZGVkT3AyKTsKKyAgICByZXR1cm4gdW5wcm9maWxlZE11bChleGVjLCBlbmNvZGVkT3AxLCBl
bmNvZGVkT3AyKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25W
YWx1ZU11bFByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUp
CkBAIC0yNjI1LDcgKzI2MTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSgogICAgIE5hdGl2
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwogCiAgICAgQVNTRVJUKGFyaXRoUHJv
ZmlsZSk7Ci0gICAgcmV0dXJuIHByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5j
b2RlZE9wMiwgKmFyaXRoUHJvZmlsZSk7CisgICAgcmV0dXJuIHByb2ZpbGVkTXVsKGV4ZWMsIGVu
Y29kZWRPcDEsIGVuY29kZWRPcDIsICphcml0aFByb2ZpbGUpOwogfQogCiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWRPcHRpbWl6ZShFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIsIEpJVE11bElDKiBtdWxJQykKQEAgLTI2NDMsNyArMjYzMiw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZE9wdGltaXplKEV4ZWNT
dGF0ZSogZXhlYywKICAgICBleGVjLT5jb2RlQmxvY2soKS0+ZHVtcE1hdGhJQ1N0YXRzKCk7CiAj
ZW5kaWYKIAotICAgIHJldHVybiBwcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVu
Y29kZWRPcDIsICphcml0aFByb2ZpbGUsIGZhbHNlKTsKKyAgICByZXR1cm4gcHJvZmlsZWRNdWwo
ZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSwgZmFsc2UpOwogfQog
CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWRO
b09wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUTXVsSUMqIG11bElDKQpAQCAtMjY1Myw3ICsyNjQy
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2Zp
bGVkTm9PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMKIAogICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQ
cm9maWxlID0gbXVsSUMtPmFyaXRoUHJvZmlsZSgpOwogICAgIEFTU0VSVChhcml0aFByb2ZpbGUp
OwotICAgIHJldHVybiBwcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRP
cDIsICphcml0aFByb2ZpbGUpOworICAgIHJldHVybiBwcm9maWxlZE11bChleGVjLCBlbmNvZGVk
T3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlKTsKIH0KIAogQUxXQVlTX0lOTElORSBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgdW5wcm9maWxlZE5lZ2F0ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcGVyYW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKaW5kZXggZTZjMWE0NGQ2N2Y0MjE0NTI4NWZiMGQy
MDA3NDVkYmNiM2E3ZGY3Ny4uZGY4ZmU3M2Q0ZjA3YjYyZTk0ZWI4NTQzZWEyYjcxZWYwNGFmYWVl
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1Bh
dGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0
aHMuY3BwCkBAIC00ODYsMTAgKzQ4NiwyNCBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfbXVs
KQogICAgIEJFR0lOKCk7CiAgICAgSlNWYWx1ZSBsZWZ0ID0gT1BfQygyKS5qc1ZhbHVlKCk7CiAg
ICAgSlNWYWx1ZSByaWdodCA9IE9QX0MoMykuanNWYWx1ZSgpOwotICAgIGRvdWJsZSBhID0gbGVm
dC50b051bWJlcihleGVjKTsKLSAgICBpZiAoVU5MSUtFTFkodGhyb3dTY29wZS5leGNlcHRpb24o
KSkpCi0gICAgICAgIFJFVFVSTihKU1ZhbHVlKCkpOwotICAgIGRvdWJsZSBiID0gcmlnaHQudG9O
dW1iZXIoZXhlYyk7CisgICAgSlNWYWx1ZSBsZWZ0UHJpbWl0aXZlID0gbGVmdC50b1ByaW1pdGl2
ZShleGVjLCBQcmVmZXJOdW1iZXIpOyAKKyAgICBDSEVDS19FWENFUFRJT04oKTsKKyAgICBKU1Zh
bHVlIHJpZ2h0UHJpbWl0aXZlID0gcmlnaHQudG9QcmltaXRpdmUoZXhlYywgUHJlZmVyTnVtYmVy
KTsKKyAgICBDSEVDS19FWENFUFRJT04oKTsKKyAgICAKKyAgICBpZiAobGVmdFByaW1pdGl2ZS5p
c0JpZ0ludCgpIHx8IHJpZ2h0UHJpbWl0aXZlLmlzQmlnSW50KCkpIHsKKyAgICAgICAgaWYgKGxl
ZnRQcmltaXRpdmUuaXNCaWdJbnQoKSAmJiByaWdodFByaW1pdGl2ZS5pc0JpZ0ludCgpKSB7Cisg
ICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdChKU0JpZ0ludDo6bXVsdGlwbHkoZXhlYywgYXNCaWdJ
bnQobGVmdFByaW1pdGl2ZSksIGFzQmlnSW50KHJpZ2h0UHJpbWl0aXZlKSkpOworICAgICAgICAg
ICAgUkVUVVJOX1dJVEhfUFJPRklMSU5HKHJlc3VsdCwgeworICAgICAgICAgICAgICAgIHVwZGF0
ZUFyaXRoUHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgbGVmdCwgcmln
aHQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBUSFJPVyhjcmVhdGVU
eXBlRXJyb3IoZXhlYywgIkludmFsaWQgbWl4IG9mIEJpZ0ludCBhbmQgb3RoZXIgdHlwZSBpbiBt
dWx0aXBsaWNhdGlvbi4iKSk7CisgICAgfQorCisgICAgZG91YmxlIGEgPSBsZWZ0UHJpbWl0aXZl
LnRvTnVtYmVyKGV4ZWMpOworICAgIGRvdWJsZSBiID0gcmlnaHRQcmltaXRpdmUudG9OdW1iZXIo
ZXhlYyk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhICogYik7CiAgICAgUkVUVVJO
X1dJVEhfUFJPRklMSU5HKHJlc3VsdCwgewogICAgICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JC
aW5hcnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIGxlZnQsIHJpZ2h0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcAppbmRleCBjNTFjOGIyMTBkOTNjMTdmOTY0
MDBlZmU3N2RhYTY3MmEyNTlhNmQzLi45MTk3YjlhMWE0NGRjNTExMjcwMmRhNzhhMTg4OTgwNzhm
MmQ2NDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0lu
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCkBA
IC02OSw3ICs2OSw3IEBAIHZvaWQgSlNCaWdJbnQ6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxs
LCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmpl
Y3QsIHZpc2l0b3IpOwogfQogCi1KU0JpZ0ludDo6SlNCaWdJbnQoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgaW50IGxlbmd0aCkKK0pTQmlnSW50OjpKU0JpZ0ludChWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1
cmUpCiAgICAgLCBtX2xlbmd0aChsZW5ndGgpCiB7IH0KQEAgLTkzLDEzICs5MywxMyBAQCBKU0Jp
Z0ludCogSlNCaWdJbnQ6OmNyZWF0ZVplcm8oVk0mIHZtKQogICAgIHJldHVybiB6ZXJvQmlnSW50
OwogfQogCi1zaXplX3QgSlNCaWdJbnQ6OmFsbG9jYXRpb25TaXplKGludCBsZW5ndGgpCitzaXpl
X3QgSlNCaWdJbnQ6OmFsbG9jYXRpb25TaXplKHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBzaXpl
X3Qgc2l6ZVdpdGhQYWRkaW5nID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mPHNpemVvZihzaXpl
X3QpPihzaXplb2YoSlNCaWdJbnQpKTsKICAgICByZXR1cm4gc2l6ZVdpdGhQYWRkaW5nICsgbGVu
Z3RoICogc2l6ZW9mKERpZ2l0KTsKIH0KIAotSlNCaWdJbnQqIEpTQmlnSW50OjpjcmVhdGVXaXRo
TGVuZ3RoKFZNJiB2bSwgaW50IGxlbmd0aCkKK0pTQmlnSW50KiBKU0JpZ0ludDo6Y3JlYXRlV2l0
aExlbmd0aChWTSYgdm0sIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBKU0JpZ0ludCogYmlnSW50
ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNCaWdJbnQ+KHZtLmhlYXAsIGFsbG9jYXRp
b25TaXplKGxlbmd0aCkpKSBKU0JpZ0ludCh2bSwgdm0uYmlnSW50U3RydWN0dXJlLmdldCgpLCBs
ZW5ndGgpOwogICAgIGJpZ0ludC0+ZmluaXNoQ3JlYXRpb24odm0pOwpAQCAtMjIzLDcgKzIyMyw3
IEBAIEpTQmlnSW50KiBKU0JpZ0ludDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwgVk0mIHZt
LCBTdHJpbmdWaWV3IHMsIHVpbnQ4X3QgcmFkCiAgICAgcmV0dXJuIHBhcnNlSW50KHN0YXRlLCB2
bSwgcy5jaGFyYWN0ZXJzMTYoKSwgcy5sZW5ndGgoKSwgMCwgcmFkaXgsIGZhbHNlKTsKIH0KIAot
U3RyaW5nIEpTQmlnSW50Ojp0b1N0cmluZyhFeGVjU3RhdGUmIHN0YXRlLCBpbnQgcmFkaXgpCitT
dHJpbmcgSlNCaWdJbnQ6OnRvU3RyaW5nKEV4ZWNTdGF0ZSYgc3RhdGUsIHVuc2lnbmVkIHJhZGl4
KQogewogICAgIGlmICh0aGlzLT5pc1plcm8oKSkKICAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCku
c21hbGxTdHJpbmdzLnNpbmdsZUNoYXJhY3RlclN0cmluZ1JlcCgnMCcpOwpAQCAtMjQ2LDYgKzI0
NiwyNiBAQCB2b2lkIEpTQmlnSW50OjppbnBsYWNlTXVsdGlwbHlBZGQodWludHB0cl90IGZhY3Rv
ciwgdWludHB0cl90IHN1bW1hbmQpCiAgICAgaW50ZXJuYWxNdWx0aXBseUFkZCh0aGlzLCBmYWN0
b3IsIHN1bW1hbmQsIGxlbmd0aCgpLCB0aGlzKTsKIH0KIAorSlNCaWdJbnQqIEpTQmlnSW50Ojpt
dWx0aXBseShFeGVjU3RhdGUqIHN0YXRlLCBKU0JpZ0ludCogeCwgSlNCaWdJbnQqIHkpCit7Cisg
ICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CisKKyAgICBpZiAoeC0+aXNaZXJvKCkpCisgICAgICAg
IHJldHVybiB4OworICAgIGlmICh5LT5pc1plcm8oKSkKKyAgICAgICAgcmV0dXJuIHk7CisKKyAg
ICB1bnNpZ25lZCByZXN1bHRMZW5ndGggPSB4LT5sZW5ndGgoKSArIHktPmxlbmd0aCgpOworICAg
IEpTQmlnSW50KiByZXN1bHQgPSBKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aCh2bSwgcmVzdWx0
TGVuZ3RoKTsKKyAgICByZXN1bHQtPmluaXRpYWxpemUoSW5pdGlhbGl6YXRpb25UeXBlOjpXaXRo
WmVybyk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgeC0+bGVuZ3RoKCk7IGkrKykK
KyAgICAgICAgbXVsdGlwbHlBY2N1bXVsYXRlKHksIHgtPmRpZ2l0KGkpLCByZXN1bHQsIGkpOwor
CisgICAgcmVzdWx0LT5zZXRTaWduKHgtPnNpZ24oKSAhPSB5LT5zaWduKCkpOworICAgIHJldHVy
biByZXN1bHQtPnJpZ2h0VHJpbSh2bSk7Cit9CisKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogI2Rl
ZmluZSBIQVZFX1RXT19ESUdJVCAxCiB0eXBlZGVmIHVpbnQ2NF90IFR3b0RpZ2l0OwpAQCAtMzc4
LDkgKzM5OCw5IEBAIEpTQmlnSW50OjpEaWdpdCBKU0JpZ0ludDo6ZGlnaXREaXYoRGlnaXQgaGln
aCwgRGlnaXQgbG93LCBEaWdpdCBkaXZpc29yLCBEaWdpdCYKICAgICBzdGF0aWMgY29uc3QgRGln
aXQga0hhbGZEaWdpdEJhc2UgPSAxdWxsIDw8IGhhbGZEaWdpdEJpdHM7CiAgICAgLy8gQWRhcHRl
ZCBmcm9tIFdhcnJlbiwgSGFja2VyJ3MgRGVsaWdodCwgcC4gMTUyLgogI2lmIFVTRShKU1ZBTFVF
NjQpCi0gICAgaW50IHMgPSBjbHo2NChkaXZpc29yKTsKKyAgICB1bnNpZ25lZCBzID0gY2x6NjQo
ZGl2aXNvcik7CiAjZWxzZQotICAgIGludCBzID0gY2x6MzIoZGl2aXNvcik7CisgICAgdW5zaWdu
ZWQgcyA9IGNsejMyKGRpdmlzb3IpOwogI2VuZGlmCiAgICAgZGl2aXNvciA8PD0gczsKICAgICAK
QEAgLTQyMywxNCArNDQzLDE0IEBAIEpTQmlnSW50OjpEaWdpdCBKU0JpZ0ludDo6ZGlnaXREaXYo
RGlnaXQgaGlnaCwgRGlnaXQgbG93LCBEaWdpdCBkaXZpc29yLCBEaWdpdCYKIAogLy8gTXVsdGlw
bGllcyB7c291cmNlfSB3aXRoIHtmYWN0b3J9IGFuZCBhZGRzIHtzdW1tYW5kfSB0byB0aGUgcmVz
dWx0LgogLy8ge3Jlc3VsdH0gYW5kIHtzb3VyY2V9IG1heSBiZSB0aGUgc2FtZSBCaWdJbnQgZm9y
IGlucGxhY2UgbW9kaWZpY2F0aW9uLgotdm9pZCBKU0JpZ0ludDo6aW50ZXJuYWxNdWx0aXBseUFk
ZChKU0JpZ0ludCogc291cmNlLCBEaWdpdCBmYWN0b3IsIERpZ2l0IHN1bW1hbmQsIGludCBuLCBK
U0JpZ0ludCogcmVzdWx0KQordm9pZCBKU0JpZ0ludDo6aW50ZXJuYWxNdWx0aXBseUFkZChKU0Jp
Z0ludCogc291cmNlLCBEaWdpdCBmYWN0b3IsIERpZ2l0IHN1bW1hbmQsIHVuc2lnbmVkIG4sIEpT
QmlnSW50KiByZXN1bHQpCiB7CiAgICAgQVNTRVJUKHNvdXJjZS0+bGVuZ3RoKCkgPj0gbik7CiAg
ICAgQVNTRVJUKHJlc3VsdC0+bGVuZ3RoKCkgPj0gbik7CiAKICAgICBEaWdpdCBjYXJyeSA9IHN1
bW1hbmQ7CiAgICAgRGlnaXQgaGlnaCA9IDA7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBp
KyspIHsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgIERp
Z2l0IGN1cnJlbnQgPSBzb3VyY2UtPmRpZ2l0KGkpOwogICAgICAgICBEaWdpdCBuZXdDYXJyeSA9
IDA7CiAKQEAgLTQ1OCw2ICs0NzgsNDkgQEAgdm9pZCBKU0JpZ0ludDo6aW50ZXJuYWxNdWx0aXBs
eUFkZChKU0JpZ0ludCogc291cmNlLCBEaWdpdCBmYWN0b3IsIERpZ2l0IHN1bW1hbmQKICAgICAg
ICAgQVNTRVJUKCEoY2FycnkgKyBoaWdoKSk7CiB9CiAKKy8vIE11bHRpcGxpZXMge211bHRpcGxp
Y2FuZH0gd2l0aCB7bXVsdGlwbGllcn0gYW5kIGFkZHMgdGhlIHJlc3VsdCB0bworLy8ge2FjY3Vt
dWxhdG9yfSwgc3RhcnRpbmcgYXQge2FjY3VtdWxhdG9ySW5kZXh9IGZvciB0aGUgbGVhc3Qtc2ln
bmlmaWNhbnQKKy8vIGRpZ2l0LgorLy8gQ2FsbGVycyBtdXN0IGVuc3VyZSB0aGF0IHthY2N1bXVs
YXRvcn0gaXMgYmlnIGVub3VnaCB0byBob2xkIHRoZSByZXN1bHQuCit2b2lkIEpTQmlnSW50Ojpt
dWx0aXBseUFjY3VtdWxhdGUoSlNCaWdJbnQqIG11bHRpcGxpY2FuZCwgRGlnaXQgbXVsdGlwbGll
ciwgSlNCaWdJbnQqIGFjY3VtdWxhdG9yLCB1bnNpZ25lZCBhY2N1bXVsYXRvckluZGV4KQorewor
ICAgIEFTU0VSVChhY2N1bXVsYXRvci0+bGVuZ3RoKCkgPiBtdWx0aXBsaWNhbmQtPmxlbmd0aCgp
ICsgYWNjdW11bGF0b3JJbmRleCk7CisgICAgaWYgKCFtdWx0aXBsaWVyKQorICAgICAgICByZXR1
cm47CisgICAgCisgICAgRGlnaXQgY2FycnkgPSAwOworICAgIERpZ2l0IGhpZ2ggPSAwOworICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtdWx0aXBsaWNhbmQtPmxlbmd0aCgpOyBpKyssIGFj
Y3VtdWxhdG9ySW5kZXgrKykgeworICAgICAgICBEaWdpdCBhY2MgPSBhY2N1bXVsYXRvci0+ZGln
aXQoYWNjdW11bGF0b3JJbmRleCk7CisgICAgICAgIERpZ2l0IG5ld0NhcnJ5ID0gMDsKKyAgICAg
ICAgCisgICAgICAgIC8vIEFkZCBsYXN0IHJvdW5kJ3MgY2FycnlvdmVycy4KKyAgICAgICAgYWNj
ID0gZGlnaXRBZGQoYWNjLCBoaWdoLCBuZXdDYXJyeSk7CisgICAgICAgIGFjYyA9IGRpZ2l0QWRk
KGFjYywgY2FycnksIG5ld0NhcnJ5KTsKKyAgICAgICAgCisgICAgICAgIC8vIENvbXB1dGUgdGhp
cyByb3VuZCdzIG11bHRpcGxpY2F0aW9uLgorICAgICAgICBEaWdpdCBtdWx0aXBsaWNhbmREaWdp
dCA9IG11bHRpcGxpY2FuZC0+ZGlnaXQoaSk7CisgICAgICAgIERpZ2l0IGxvdyA9IGRpZ2l0TXVs
KG11bHRpcGxpZXIsIG11bHRpcGxpY2FuZERpZ2l0LCBoaWdoKTsKKyAgICAgICAgYWNjID0gZGln
aXRBZGQoYWNjLCBsb3csIG5ld0NhcnJ5KTsKKyAgICAgICAgCisgICAgICAgIC8vIFN0b3JlIHJl
c3VsdCBhbmQgcHJlcGFyZSBmb3IgbmV4dCByb3VuZC4KKyAgICAgICAgYWNjdW11bGF0b3ItPnNl
dERpZ2l0KGFjY3VtdWxhdG9ySW5kZXgsIGFjYyk7CisgICAgICAgIGNhcnJ5ID0gbmV3Q2Fycnk7
CisgICAgfQorICAgIAorICAgIHdoaWxlIChjYXJyeSB8fCBoaWdoKSB7CisgICAgICAgIEFTU0VS
VChhY2N1bXVsYXRvckluZGV4IDwgYWNjdW11bGF0b3ItPmxlbmd0aCgpKTsKKyAgICAgICAgRGln
aXQgYWNjID0gYWNjdW11bGF0b3ItPmRpZ2l0KGFjY3VtdWxhdG9ySW5kZXgpOworICAgICAgICBE
aWdpdCBuZXdDYXJyeSA9IDA7CisgICAgICAgIGFjYyA9IGRpZ2l0QWRkKGFjYywgaGlnaCwgbmV3
Q2FycnkpOworICAgICAgICBoaWdoID0gMDsKKyAgICAgICAgYWNjID0gZGlnaXRBZGQoYWNjLCBj
YXJyeSwgbmV3Q2FycnkpOworICAgICAgICBhY2N1bXVsYXRvci0+c2V0RGlnaXQoYWNjdW11bGF0
b3JJbmRleCwgYWNjKTsKKyAgICAgICAgY2FycnkgPSBuZXdDYXJyeTsKKyAgICAgICAgYWNjdW11
bGF0b3JJbmRleCsrOworICAgIH0KK30KKwogYm9vbCBKU0JpZ0ludDo6ZXF1YWxzKEpTQmlnSW50
KiB4LCBKU0JpZ0ludCogeSkKIHsKICAgICBpZiAoeC0+c2lnbigpICE9IHktPnNpZ24oKSkKQEAg
LTQ2Niw3ICs1MjksNyBAQCBib29sIEpTQmlnSW50OjplcXVhbHMoSlNCaWdJbnQqIHgsIEpTQmln
SW50KiB5KQogICAgIGlmICh4LT5sZW5ndGgoKSAhPSB5LT5sZW5ndGgoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCB4LT5sZW5ndGgoKTsgaSsrKSB7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHgtPmxlbmd0aCgpOyBpKyspIHsKICAgICAg
ICAgaWYgKHgtPmRpZ2l0KGkpICE9IHktPmRpZ2l0KGkpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KQEAgLTQ5NCw3ICs1NTcsNyBAQCB2b2lkIEpTQmlnSW50OjphYnNvbHV0ZURp
dlNtYWxsKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCBEaWdpdCBkaXZpc29yLCBKUwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaW50IGxlbmd0aCA9IHgtPmxlbmd0aCgpOwor
ICAgIHVuc2lnbmVkIGxlbmd0aCA9IHgtPmxlbmd0aCgpOwogICAgIGlmIChxdW90aWVudCAhPSBu
dWxscHRyKSB7CiAgICAgICAgIGlmICgqcXVvdGllbnQgPT0gbnVsbHB0cikKICAgICAgICAgICAg
ICpxdW90aWVudCA9IEpTQmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoKHZtLCBsZW5ndGgpOwpAQCAt
NTIxLDE0ICs1ODQsMTQgQEAgY29uc3RleHByIHVpbnQ4X3QgbWF4Qml0c1BlckNoYXJUYWJsZVtd
ID0gewogICAgIDE2MiwgMTYzLCAxNjUsIDE2NiwgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
MzMuLjM2CiB9OwogCi1zdGF0aWMgY29uc3QgaW50IGJpdHNQZXJDaGFyVGFibGVTaGlmdCA9IDU7
CitzdGF0aWMgY29uc3QgdW5zaWduZWQgYml0c1BlckNoYXJUYWJsZVNoaWZ0ID0gNTsKIHN0YXRp
YyBjb25zdCBzaXplX3QgYml0c1BlckNoYXJUYWJsZU11bHRpcGxpZXIgPSAxdSA8PCBiaXRzUGVy
Q2hhclRhYmxlU2hpZnQ7CiAKIC8vIENvbXB1dGUgKGFuIG92ZXJhcHByb3hpbWF0aW9uIG9mKSB0
aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHRpbmcgc3RyaW5nOgogLy8gRGl2aWRlIGJpdCBsZW5ndGgg
b2YgdGhlIEJpZ0ludCBieSBiaXRzIHJlcHJlc2VudGFibGUgcGVyIGNoYXJhY3Rlci4KLXVpbnQ2
NF90IEpTQmlnSW50OjpjYWxjdWxhdGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKGludCBsZW5n
dGgsIGludCByYWRpeCwgRGlnaXQgbGFzdERpZ2l0LCBib29sIHNpZ24pCit1aW50NjRfdCBKU0Jp
Z0ludDo6Y2FsY3VsYXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZCh1bnNpZ25lZCBsZW5ndGgs
IHVuc2lnbmVkIHJhZGl4LCBEaWdpdCBsYXN0RGlnaXQsIGJvb2wgc2lnbikKIHsKLSAgICBpbnQg
bGVhZGluZ1plcm9zOworICAgIHVuc2lnbmVkIGxlYWRpbmdaZXJvczsKICAgICBpZiAoc2l6ZW9m
KGxhc3REaWdpdCkgPT0gOCkKICAgICAgICAgbGVhZGluZ1plcm9zID0gY2x6NjQobGFzdERpZ2l0
KTsKICAgICBlbHNlCkBAIC01NTYsNyArNjE5LDcgQEAgdWludDY0X3QgSlNCaWdJbnQ6OmNhbGN1
bGF0ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQoaW50IGxlbmd0aCwgaW50IHJhZGl4LCBEaWcK
ICAgICByZXR1cm4gbWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZDsKIH0KIAotU3RyaW5nIEpTQmln
SW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQqIHgsIGludCBy
YWRpeCkKK1N0cmluZyBKU0JpZ0ludDo6dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUs
IEpTQmlnSW50KiB4LCB1bnNpZ25lZCByYWRpeCkKIHsKICAgICAvLyBGSVhNRTogW0pTQ10gUmV2
aXNpdCB1c2FnZSBvZiBTdHJpbmdWZWN0b3IgaW50byBKU0JpZ0ludDo6dG9TdHJpbmcKICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNjcKQEAgLTU2NSw3
ICs2MjgsNyBAQCBTdHJpbmcgSlNCaWdJbnQ6OnRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUmIHN0
YXRlLCBKU0JpZ0ludCogeCwgaW50IHJhZGl4KQogICAgIEFTU0VSVChyYWRpeCA+PSAyICYmIHJh
ZGl4IDw9IDM2KTsKICAgICBBU1NFUlQoIXgtPmlzWmVybygpKTsKIAotICAgIGludCBsZW5ndGgg
PSB4LT5sZW5ndGgoKTsKKyAgICB1bnNpZ25lZCBsZW5ndGggPSB4LT5sZW5ndGgoKTsKICAgICBi
b29sIHNpZ24gPSB4LT5zaWduKCk7CiAKICAgICB1aW50OF90IG1heEJpdHNQZXJDaGFyID0gbWF4
Qml0c1BlckNoYXJUYWJsZVtyYWRpeF07CkBAIC01ODEsMTIgKzY0NCwxMiBAQCBTdHJpbmcgSlNC
aWdJbnQ6OnRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUmIHN0YXRlLCBKU0JpZ0ludCogeCwgaW50
IHJhZGl4KQogICAgIGlmIChsZW5ndGggPT0gMSkKICAgICAgICAgbGFzdERpZ2l0ID0geC0+ZGln
aXQoMCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGludCBjaHVua0NoYXJzID0gZGlnaXRCaXRzICog
Yml0c1BlckNoYXJUYWJsZU11bHRpcGxpZXIgLyBtYXhCaXRzUGVyQ2hhcjsKKyAgICAgICAgdW5z
aWduZWQgY2h1bmtDaGFycyA9IGRpZ2l0Qml0cyAqIGJpdHNQZXJDaGFyVGFibGVNdWx0aXBsaWVy
IC8gbWF4Qml0c1BlckNoYXI7CiAgICAgICAgIERpZ2l0IGNodW5rRGl2aXNvciA9IGRpZ2l0UG93
KHJhZGl4LCBjaHVua0NoYXJzKTsKIAogICAgICAgICAvLyBCeSBjb25zdHJ1Y3Rpb24gb2YgY2h1
bmtDaGFycywgdGhlcmUgY2FuJ3QgaGF2ZSBiZWVuIG92ZXJmbG93LgogICAgICAgICBBU1NFUlQo
Y2h1bmtEaXZpc29yKTsKLSAgICAgICAgaW50IG5vblplcm9EaWdpdCA9IGxlbmd0aCAtIDE7Cisg
ICAgICAgIHVuc2lnbmVkIG5vblplcm9EaWdpdCA9IGxlbmd0aCAtIDE7CiAgICAgICAgIEFTU0VS
VCh4LT5kaWdpdChub25aZXJvRGlnaXQpKTsKIAogICAgICAgICAvLyB7cmVzdH0gaG9sZHMgdGhl
IHBhcnQgb2YgdGhlIEJpZ0ludCB0aGF0IHdlIGhhdmVuJ3QgbG9va2VkIGF0IHlldC4KQEAgLTYw
Miw3ICs2NjUsNyBAQCBTdHJpbmcgSlNCaWdJbnQ6OnRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUm
IHN0YXRlLCBKU0JpZ0ludCogeCwgaW50IHJhZGl4KQogICAgICAgICAgICAgQVNTRVJUKHJlc3Qp
OwogCiAgICAgICAgICAgICBkaXZpZGVuZCA9ICZyZXN0OwotICAgICAgICAgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCBjaHVua0NoYXJzOyBpKyspIHsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBjaHVua0NoYXJzOyBpKyspIHsKICAgICAgICAgICAgICAgICByZXN1bHRTdHJp
bmcuYXBwZW5kKHJhZGl4RGlnaXRzW2NodW5rICUgcmFkaXhdKTsKICAgICAgICAgICAgICAgICBj
aHVuayAvPSByYWRpeDsKICAgICAgICAgICAgIH0KQEAgLTYyNyw3ICs2OTAsNyBAQCBTdHJpbmcg
SlNCaWdJbnQ6OnRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUmIHN0YXRlLCBKU0JpZ0ludCogeCwg
aW50IHJhZGl4KQogICAgIEFTU0VSVChyZXN1bHRTdHJpbmcuc2l6ZSgpIDw9IHN0YXRpY19jYXN0
PHNpemVfdD4obWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZCkpOwogCiAgICAgLy8gUmVtb3ZlIGxl
YWRpbmcgemVyb2VzLgotICAgIGludCBuZXdTaXplTm9MZWFkaW5nWmVyb2VzID0gcmVzdWx0U3Ry
aW5nLnNpemUoKTsKKyAgICB1bnNpZ25lZCBuZXdTaXplTm9MZWFkaW5nWmVyb2VzID0gcmVzdWx0
U3RyaW5nLnNpemUoKTsKICAgICB3aGlsZSAobmV3U2l6ZU5vTGVhZGluZ1plcm9lcyAgPiAxICYm
IHJlc3VsdFN0cmluZ1tuZXdTaXplTm9MZWFkaW5nWmVyb2VzIC0gMV0gPT0gJzAnKQogICAgICAg
ICBuZXdTaXplTm9MZWFkaW5nWmVyb2VzLS07CiAKQEAgLTY0NiwxNCArNzA5LDE2IEBAIEpTQmln
SW50KiBKU0JpZ0ludDo6cmlnaHRUcmltKFZNJiB2bSkKICAgICBpZiAoaXNaZXJvKCkpCiAgICAg
ICAgIHJldHVybiB0aGlzOwogCisgICAgQVNTRVJUKG1fbGVuZ3RoKTsKKwogICAgIGludCBub25a
ZXJvSW5kZXggPSBtX2xlbmd0aCAtIDE7CiAgICAgd2hpbGUgKG5vblplcm9JbmRleCA+PSAwICYm
ICFkaWdpdChub25aZXJvSW5kZXgpKQogICAgICAgICBub25aZXJvSW5kZXgtLTsKIAotICAgIGlm
IChub25aZXJvSW5kZXggPT0gbV9sZW5ndGggLSAxKQorICAgIGlmIChub25aZXJvSW5kZXggPT0g
c3RhdGljX2Nhc3Q8aW50PihtX2xlbmd0aCAtIDEpKQogICAgICAgICByZXR1cm4gdGhpczsKIAot
ICAgIGludCBuZXdMZW5ndGggPSBub25aZXJvSW5kZXggKyAxOworICAgIHVuc2lnbmVkIG5ld0xl
bmd0aCA9IG5vblplcm9JbmRleCArIDE7CiAgICAgSlNCaWdJbnQqIHRyaW1tZWRCaWdJbnQgPSBj
cmVhdGVXaXRoTGVuZ3RoKHZtLCBuZXdMZW5ndGgpOwogICAgIFJFTEVBU0VfQVNTRVJUKHRyaW1t
ZWRCaWdJbnQpOwogICAgIHN0ZDo6Y29weShkYXRhU3RvcmFnZSgpLCBkYXRhU3RvcmFnZSgpICsg
bmV3TGVuZ3RoLCB0cmltbWVkQmlnSW50LT5kYXRhU3RvcmFnZSgpKTsgCkBAIC02NjMsMTQgKzcy
OCwxNCBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6OnJpZ2h0VHJpbShWTSYgdm0pCiAgICAgcmV0dXJu
IHRyaW1tZWRCaWdJbnQ7CiB9CiAKLUpTQmlnSW50KiBKU0JpZ0ludDo6YWxsb2NhdGVGb3IoRXhl
Y1N0YXRlKiBzdGF0ZSwgVk0mIHZtLCBpbnQgcmFkaXgsIGludCBjaGFyY291bnQpCitKU0JpZ0lu
dCogSlNCaWdJbnQ6OmFsbG9jYXRlRm9yKEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgdW5zaWdu
ZWQgcmFkaXgsIHVuc2lnbmVkIGNoYXJjb3VudCkKIHsKICAgICBBU1NFUlQoMiA8PSByYWRpeCAm
JiByYWRpeCA8PSAzNik7CiAgICAgQVNTRVJUKGNoYXJjb3VudCA+PSAwKTsKIAogICAgIHNpemVf
dCBiaXRzUGVyQ2hhciA9IG1heEJpdHNQZXJDaGFyVGFibGVbcmFkaXhdOwogICAgIHNpemVfdCBj
aGFycyA9IGNoYXJjb3VudDsKLSAgICBjb25zdCBpbnQgcm91bmR1cCA9IGJpdHNQZXJDaGFyVGFi
bGVNdWx0aXBsaWVyIC0gMTsKKyAgICBjb25zdCB1bnNpZ25lZCByb3VuZHVwID0gYml0c1BlckNo
YXJUYWJsZU11bHRpcGxpZXIgLSAxOwogICAgIGlmIChjaGFycyA8PSAoc3RkOjpudW1lcmljX2xp
bWl0czxzaXplX3Q+OjptYXgoKSAtIHJvdW5kdXApIC8gYml0c1BlckNoYXIpIHsKICAgICAgICAg
c2l6ZV90IGJpdHNNaW4gPSBiaXRzUGVyQ2hhciAqIGNoYXJzOwogCkBAIC02NzgsNyArNzQzLDcg
QEAgSlNCaWdJbnQqIEpTQmlnSW50OjphbGxvY2F0ZUZvcihFeGVjU3RhdGUqIHN0YXRlLCBWTSYg
dm0sIGludCByYWRpeCwgaW50IGNoYXJjb3UKICAgICAgICAgYml0c01pbiA9IChiaXRzTWluICsg
cm91bmR1cCkgPj4gYml0c1BlckNoYXJUYWJsZVNoaWZ0OwogICAgICAgICBpZiAoYml0c01pbiA8
PSBzdGF0aWNfY2FzdDxzaXplX3Q+KG1heEludCkpIHsKICAgICAgICAgICAgIC8vIERpdmlkZSBi
eSBrRGlnaXRzQml0cywgcm91bmRpbmcgdXAuCi0gICAgICAgICAgICBpbnQgbGVuZ3RoID0gKHN0
YXRpY19jYXN0PGludD4oYml0c01pbikgKyBkaWdpdEJpdHMgLSAxKSAvIGRpZ2l0Qml0czsKKyAg
ICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IChiaXRzTWluICsgZGlnaXRCaXRzIC0gMSkgLyBk
aWdpdEJpdHM7CiAgICAgICAgICAgICBpZiAobGVuZ3RoIDw9IG1heExlbmd0aCkgewogICAgICAg
ICAgICAgICAgIEpTQmlnSW50KiByZXN1bHQgPSBKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aCh2
bSwgbGVuZ3RoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAtNzE5LDExICs3
ODQsMTEgQEAgc2l6ZV90IEpTQmlnSW50OjpvZmZzZXRPZkRhdGEoKQogfQogCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgQ2hhclR5cGU+Ci1KU0JpZ0ludCogSlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0
ZSogc3RhdGUsIENoYXJUeXBlKiAgZGF0YSwgaW50IGxlbmd0aCkKK0pTQmlnSW50KiBKU0JpZ0lu
dDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwgQ2hhclR5cGUqICBkYXRhLCB1bnNpZ25lZCBs
ZW5ndGgpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CiAKLSAgICBpbnQgcCA9IDA7Cisg
ICAgdW5zaWduZWQgcCA9IDA7CiAgICAgd2hpbGUgKHAgPCBsZW5ndGggJiYgaXNTdHJXaGl0ZVNw
YWNlKGRhdGFbcF0pKQogICAgICAgICArK3A7CiAKQEAgLTc1OCwxMCArODIzLDEwIEBAIEpTQmln
SW50KiBKU0JpZ0ludDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwgQ2hhclR5cGUqICBkYXRh
LCBpbnQgbGVuZ3RoKQogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci1KU0JpZ0lu
dCogSlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgQ2hhclR5cGUq
IGRhdGEsIGludCBsZW5ndGgsIGludCBzdGFydEluZGV4LCBpbnQgcmFkaXgsIGJvb2wgYWxsb3dF
bXB0eVN0cmluZykKK0pTQmlnSW50KiBKU0JpZ0ludDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0
ZSwgVk0mIHZtLCBDaGFyVHlwZSogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCBzdGFy
dEluZGV4LCB1bnNpZ25lZCByYWRpeCwgYm9vbCBhbGxvd0VtcHR5U3RyaW5nKQogewogICAgIEFT
U0VSVChsZW5ndGggPj0gMCk7Ci0gICAgaW50IHAgPSBzdGFydEluZGV4OworICAgIHVuc2lnbmVk
IHAgPSBzdGFydEluZGV4OwogCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwogCkBAIC03NzcsNyArODQyLDcgQEAgSlNCaWdJbnQqIEpTQmlnSW50OjpwYXJzZUludChF
eGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0sIENoYXJUeXBlKiBkYXRhLCBpbnQgbGVuZ3QKIAogICAg
IGludCBlbmRJbmRleCA9IGxlbmd0aCAtIDE7CiAgICAgLy8gUmVtb3ZpbmcgdHJhaWxpbmcgc3Bh
Y2VzCi0gICAgd2hpbGUgKGVuZEluZGV4ID49IHAgJiYgaXNTdHJXaGl0ZVNwYWNlKGRhdGFbZW5k
SW5kZXhdKSkKKyAgICB3aGlsZSAoZW5kSW5kZXggPj0gc3RhdGljX2Nhc3Q8aW50PihwKSAmJiBp
c1N0cldoaXRlU3BhY2UoZGF0YVtlbmRJbmRleF0pKQogICAgICAgICAtLWVuZEluZGV4OwogCiAg
ICAgbGVuZ3RoID0gZW5kSW5kZXggKyAxOwpAQCAtNzg1LDE2ICs4NTAsMTYgQEAgSlNCaWdJbnQq
IEpTQmlnSW50OjpwYXJzZUludChFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0sIENoYXJUeXBlKiBk
YXRhLCBpbnQgbGVuZ3QKICAgICBpZiAocCA9PSBsZW5ndGgpCiAgICAgICAgIHJldHVybiBjcmVh
dGVaZXJvKHZtKTsKIAotICAgIGludCBsaW1pdDAgPSAnMCcgKyAocmFkaXggPCAxMCA/IHJhZGl4
IDogMTApOwotICAgIGludCBsaW1pdGEgPSAnYScgKyAocmFkaXggLSAxMCk7Ci0gICAgaW50IGxp
bWl0QSA9ICdBJyArIChyYWRpeCAtIDEwKTsKKyAgICB1bnNpZ25lZCBsaW1pdDAgPSAnMCcgKyAo
cmFkaXggPCAxMCA/IHJhZGl4IDogMTApOworICAgIHVuc2lnbmVkIGxpbWl0YSA9ICdhJyArIChy
YWRpeCAtIDEwKTsKKyAgICB1bnNpZ25lZCBsaW1pdEEgPSAnQScgKyAocmFkaXggLSAxMCk7CiAK
ICAgICBKU0JpZ0ludCogcmVzdWx0ID0gYWxsb2NhdGVGb3Ioc3RhdGUsIHZtLCByYWRpeCwgbGVu
Z3RoIC0gcCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKICAg
ICByZXN1bHQtPmluaXRpYWxpemUoSW5pdGlhbGl6YXRpb25UeXBlOjpXaXRoWmVybyk7CiAKLSAg
ICBmb3IgKGludCBpID0gcDsgaSA8IGxlbmd0aDsgaSsrLCBwKyspIHsKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSBwOyBpIDwgbGVuZ3RoOyBpKyssIHArKykgewogICAgICAgICB1aW50MzJfdCBkaWdp
dDsKICAgICAgICAgaWYgKGRhdGFbaV0gPj0gJzAnICYmIGRhdGFbaV0gPCBsaW1pdDApCiAgICAg
ICAgICAgICBkaWdpdCA9IGRhdGFbaV0gLSAnMCc7CkBAIC04MjIsMTMgKzg4NywxMyBAQCBKU0Jp
Z0ludDo6RGlnaXQqIEpTQmlnSW50OjpkYXRhU3RvcmFnZSgpCiAgICAgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8RGlnaXQqPihyZWludGVycHJldF9jYXN0PGNoYXIqPih0aGlzKSArIG9mZnNldE9m
RGF0YSgpKTsKIH0KIAotSlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdChpbnQgbikKK0pT
QmlnSW50OjpEaWdpdCBKU0JpZ0ludDo6ZGlnaXQodW5zaWduZWQgbikKIHsKICAgICBBU1NFUlQo
biA+PSAwICYmIG4gPCBsZW5ndGgoKSk7CiAgICAgcmV0dXJuIGRhdGFTdG9yYWdlKClbbl07CiB9
CiAKLXZvaWQgSlNCaWdJbnQ6OnNldERpZ2l0KGludCBuLCBEaWdpdCB2YWx1ZSkKK3ZvaWQgSlNC
aWdJbnQ6OnNldERpZ2l0KHVuc2lnbmVkIG4sIERpZ2l0IHZhbHVlKQogewogICAgIEFTU0VSVChu
ID49IDAgJiYgbiA8IGxlbmd0aCgpKTsKICAgICBkYXRhU3RvcmFnZSgpW25dID0gdmFsdWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaAppbmRleCAyOThjMzQ4Y2QyYjRl
NWFiNWM5MmM3YmI3OTlhMzBmM2ViZmE2MjMxLi5lYjEyYzAwNDY2ZTM1NmZmZGFkZmEzNjY0MTRj
MDdjZDAzYmM0NmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JpZ0ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgK
QEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgSlNCaWdJbnQgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsK
IAogcHVibGljOgogCi0gICAgSlNCaWdJbnQoVk0mLCBTdHJ1Y3R1cmUqLCBpbnQgbGVuZ3RoKTsK
KyAgICBKU0JpZ0ludChWTSYsIFN0cnVjdHVyZSosIHVuc2lnbmVkIGxlbmd0aCk7CiAKICAgICBl
bnVtIGNsYXNzIEluaXRpYWxpemF0aW9uVHlwZSB7IE5vbmUsIFdpdGhaZXJvIH07CiAgICAgdm9p
ZCBpbml0aWFsaXplKEluaXRpYWxpemF0aW9uVHlwZSk7CkBAIC00OSwxMiArNDksMTEgQEAgcHVi
bGljOgogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3Im
KTsKIAogICAgIHN0YXRpYyBzaXplX3QgZXN0aW1hdGVkU2l6ZShKU0NlbGwqKTsKLSAgICBzdGF0
aWMgc2l6ZV90IGFsbG9jYXRpb25TaXplKGludCBsZW5ndGgpOworICAgIHN0YXRpYyBzaXplX3Qg
YWxsb2NhdGlvblNpemUodW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBwcm90b3R5cGUp
OwotCiAgICAgc3RhdGljIEpTQmlnSW50KiBjcmVhdGVaZXJvKFZNJik7Ci0gICAgc3RhdGljIEpT
QmlnSW50KiBjcmVhdGVXaXRoTGVuZ3RoKFZNJiwgaW50IGxlbmd0aCk7CisgICAgc3RhdGljIEpT
QmlnSW50KiBjcmVhdGVXaXRoTGVuZ3RoKFZNJiwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIHN0
YXRpYyBKU0JpZ0ludCogY3JlYXRlRnJvbShWTSYsIGludDMyX3QgdmFsdWUpOwogICAgIHN0YXRp
YyBKU0JpZ0ludCogY3JlYXRlRnJvbShWTSYsIHVpbnQzMl90IHZhbHVlKTsKQEAgLTcwLDE0ICs2
OSwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaWduKGJvb2wgc2lnbikgeyBtX3NpZ24gPSBz
aWduOyB9CiAgICAgYm9vbCBzaWduKCkgY29uc3QgeyByZXR1cm4gbV9zaWduOyB9CiAKLSAgICB2
b2lkIHNldExlbmd0aChpbnQgbGVuZ3RoKSB7IG1fbGVuZ3RoID0gbGVuZ3RoOyB9Ci0gICAgaW50
IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CisgICAgdm9pZCBzZXRMZW5ndGgo
dW5zaWduZWQgbGVuZ3RoKSB7IG1fbGVuZ3RoID0gbGVuZ3RoOyB9CisgICAgdW5zaWduZWQgbGVu
Z3RoKCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KIAogICAgIHN0YXRpYyBKU0JpZ0ludCog
cGFyc2VJbnQoRXhlY1N0YXRlKiwgVk0mLCBTdHJpbmdWaWV3LCB1aW50OF90IHJhZGl4KTsKICAg
ICBzdGF0aWMgSlNCaWdJbnQqIHBhcnNlSW50KEV4ZWNTdGF0ZSosIFN0cmluZ1ZpZXcpOwogCiAg
ICAgc3RkOjpvcHRpb25hbDx1aW50OF90PiBzaW5nbGVEaWdpdFZhbHVlRm9yU3RyaW5nKCk7Ci0g
ICAgU3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSYsIGludCByYWRpeCk7CisgICAgU3RyaW5nIHRv
U3RyaW5nKEV4ZWNTdGF0ZSYsIHVuc2lnbmVkIHJhZGl4KTsKICAgICAKICAgICBKU19FWFBPUlRf
UFJJVkFURSBzdGF0aWMgYm9vbCBlcXVhbHMoSlNCaWdJbnQqLCBKU0JpZ0ludCopOwogCkBAIC04
NSwxMiArODQsMTQgQEAgcHVibGljOgogICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBj
b25zdDsKIAogICAgIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVj
dCopIGNvbnN0OworCisgICAgc3RhdGljIEpTQmlnSW50KiBtdWx0aXBseShFeGVjU3RhdGUqLCBK
U0JpZ0ludCogeCwgSlNCaWdJbnQqIHkpOwogICAgIAogcHJpdmF0ZToKICAgICB1c2luZyBEaWdp
dCA9IHVpbnRwdHJfdDsKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGludCBiaXRzUGVyQnl0
ZSA9IDg7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQgZGlnaXRCaXRzID0gc2l6ZW9m
KERpZ2l0KSAqIGJpdHNQZXJCeXRlOwotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgaW50IGhh
bGZEaWdpdEJpdHMgPSBkaWdpdEJpdHMgLyAyOworICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3Qg
dW5zaWduZWQgYml0c1BlckJ5dGUgPSA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgdW5z
aWduZWQgZGlnaXRCaXRzID0gc2l6ZW9mKERpZ2l0KSAqIGJpdHNQZXJCeXRlOworICAgIHN0YXRp
YyBjb25zdGV4cHIgY29uc3QgdW5zaWduZWQgaGFsZkRpZ2l0Qml0cyA9IGRpZ2l0Qml0cyAvIDI7
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBEaWdpdCBoYWxmRGlnaXRNYXNrID0gKDF1bGwg
PDwgaGFsZkRpZ2l0Qml0cykgLSAxOwogICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgaW50IG1h
eEludCA9IDB4N0ZGRkZGRkY7CiAgICAgCkBAIC05OCwxMiArOTksMTMgQEAgcHJpdmF0ZToKICAg
ICAvLyBtYXhJbnQgLyBkaWdpdEJpdHMuIEhvd2V2ZXIsIHdlIHVzZSBhIGxvd2VyIGxpbWl0IGZv
ciBub3csIGJlY2F1c2UKICAgICAvLyByYWlzaW5nIGl0IGxhdGVyIGlzIGVhc2llciB0aGFuIGxv
d2VyaW5nIGl0LgogICAgIC8vIFN1cHBvcnQgdXAgdG8gMSBtaWxsaW9uIGJpdHMuCi0gICAgc3Rh
dGljIGNvbnN0IGludCBtYXhMZW5ndGggPSAxMDI0ICogMTAyNCAvIChzaXplb2Yodm9pZCopICog
Yml0c1BlckJ5dGUpOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhMZW5ndGggPSAxMDI0
ICogMTAyNCAvIChzaXplb2Yodm9pZCopICogYml0c1BlckJ5dGUpOwogICAgIAotICAgIHN0YXRp
YyB1aW50NjRfdCBjYWxjdWxhdGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKGludCBsZW5ndGgs
IGludCByYWRpeCwgRGlnaXQgbGFzdERpZ2l0LCBib29sIHNpZ24pOworICAgIHN0YXRpYyB1aW50
NjRfdCBjYWxjdWxhdGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKHVuc2lnbmVkIGxlbmd0aCwg
dW5zaWduZWQgcmFkaXgsIERpZ2l0IGxhc3REaWdpdCwgYm9vbCBzaWduKTsKICAgICAKICAgICBz
dGF0aWMgdm9pZCBhYnNvbHV0ZURpdlNtYWxsKEV4ZWNTdGF0ZSYsIEpTQmlnSW50KiB4LCBEaWdp
dCBkaXZpc29yLCBKU0JpZ0ludCoqIHF1b3RpZW50LCBEaWdpdCYgcmVtYWluZGVyKTsKLSAgICBz
dGF0aWMgdm9pZCBpbnRlcm5hbE11bHRpcGx5QWRkKEpTQmlnSW50KiBzb3VyY2UsIERpZ2l0IGZh
Y3RvciwgRGlnaXQgc3VtbWFuZCwgaW50LCBKU0JpZ0ludCogcmVzdWx0KTsKKyAgICBzdGF0aWMg
dm9pZCBpbnRlcm5hbE11bHRpcGx5QWRkKEpTQmlnSW50KiBzb3VyY2UsIERpZ2l0IGZhY3Rvciwg
RGlnaXQgc3VtbWFuZCwgdW5zaWduZWQsIEpTQmlnSW50KiByZXN1bHQpOworICAgIHN0YXRpYyB2
b2lkIG11bHRpcGx5QWNjdW11bGF0ZShKU0JpZ0ludCogbXVsdGlwbGljYW5kLCBEaWdpdCBtdWx0
aXBsaWVyLCBKU0JpZ0ludCogYWNjdW11bGF0b3IsIHVuc2lnbmVkIGFjY3VtdWxhdG9ySW5kZXgp
OwogCiAgICAgLy8gRGlnaXQgYXJpdGhtZXRpYyBoZWxwZXJzLgogICAgIHN0YXRpYyBEaWdpdCBk
aWdpdEFkZChEaWdpdCBhLCBEaWdpdCBiLCBEaWdpdCYgY2FycnkpOwpAQCAtMTEyLDE3ICsxMTQs
MTcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgRGlnaXQgZGlnaXREaXYoRGlnaXQgaGlnaCwgRGln
aXQgbG93LCBEaWdpdCBkaXZpc29yLCBEaWdpdCYgcmVtYWluZGVyKTsKICAgICBzdGF0aWMgRGln
aXQgZGlnaXRQb3coRGlnaXQgYmFzZSwgRGlnaXQgZXhwb25lbnQpOwogCi0gICAgc3RhdGljIFN0
cmluZyB0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiwgSlNCaWdJbnQqLCBpbnQgcmFkaXgpOwor
ICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYsIEpTQmlnSW50Kiwg
dW5zaWduZWQgcmFkaXgpOwogCiAgICAgYm9vbCBpc1plcm8oKTsKIAogICAgIHRlbXBsYXRlIDx0
eXBlbmFtZSBDaGFyVHlwZT4KLSAgICBzdGF0aWMgSlNCaWdJbnQqIHBhcnNlSW50KEV4ZWNTdGF0
ZSosIENoYXJUeXBlKiAgZGF0YSwgaW50IGxlbmd0aCk7CisgICAgc3RhdGljIEpTQmlnSW50KiBw
YXJzZUludChFeGVjU3RhdGUqLCBDaGFyVHlwZSogIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCk7CiAK
ICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci0gICAgc3RhdGljIEpTQmlnSW50KiBw
YXJzZUludChFeGVjU3RhdGUqLCBWTSYsIENoYXJUeXBlKiBkYXRhLCBpbnQgbGVuZ3RoLCBpbnQg
c3RhcnRJbmRleCwgaW50IHJhZGl4LCBib29sIGFsbG93RW1wdHlTdHJpbmcgPSB0cnVlKTsKKyAg
ICBzdGF0aWMgSlNCaWdJbnQqIHBhcnNlSW50KEV4ZWNTdGF0ZSosIFZNJiwgQ2hhclR5cGUqIGRh
dGEsIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQgc3RhcnRJbmRleCwgdW5zaWduZWQgcmFkaXgs
IGJvb2wgYWxsb3dFbXB0eVN0cmluZyA9IHRydWUpOwogCi0gICAgc3RhdGljIEpTQmlnSW50KiBh
bGxvY2F0ZUZvcihFeGVjU3RhdGUqLCBWTSYsIGludCByYWRpeCwgaW50IGNoYXJjb3VudCk7Cisg
ICAgc3RhdGljIEpTQmlnSW50KiBhbGxvY2F0ZUZvcihFeGVjU3RhdGUqLCBWTSYsIHVuc2lnbmVk
IHJhZGl4LCB1bnNpZ25lZCBjaGFyY291bnQpOwogCiAgICAgSlNCaWdJbnQqIHJpZ2h0VHJpbShW
TSYpOwogCkBAIC0xMzEsMTAgKzEzMywxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBzaXplX3Qg
b2Zmc2V0T2ZEYXRhKCk7CiAgICAgRGlnaXQqIGRhdGFTdG9yYWdlKCk7CiAKLSAgICBEaWdpdCBk
aWdpdChpbnQpOwotICAgIHZvaWQgc2V0RGlnaXQoaW50LCBEaWdpdCk7CisgICAgRGlnaXQgZGln
aXQodW5zaWduZWQpOworICAgIHZvaWQgc2V0RGlnaXQodW5zaWduZWQsIERpZ2l0KTsKICAgICAg
ICAgCi0gICAgaW50IG1fbGVuZ3RoOworICAgIHVuc2lnbmVkIG1fbGVuZ3RoOwogICAgIGJvb2wg
bV9zaWduOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5o
CmluZGV4IDEzNDlhZWMxNmE3YTgzYThhOGE1OTBhY2VmZDU0YjE3OWM5N2JmMWYuLjBmYjIxYjQ4
ZDUwZTM5YjI1MWUyYWMwNGI0MGExZDNiYzBlNGE0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcGVyYXRpb25zLmgKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkNh
bGxGcmFtZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKKyNpbmNsdWRlICJKU0Jp
Z0ludC5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0y
NTYsNiArMjU3LDMwIEBAIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc0FkZChDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgSlNWYWx1ZSB2MSwgSlNWYWx1ZSB2MikKICAgICByZXR1cm4ganNBZGRTbG93Q2Fz
ZShjYWxsRnJhbWUsIHYxLCB2Mik7CiB9CiAKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc011bChF
eGVjU3RhdGUqIHN0YXRlLCBKU1ZhbHVlIHYxLCBKU1ZhbHVlIHYyKQoreworICAgIFZNJiB2bSA9
IHN0YXRlLT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
KworICAgIEpTVmFsdWUgbGVmdE51bWJlciA9IHYxLnRvUHJpbWl0aXZlKHN0YXRlLCBQcmVmZXJO
dW1iZXIpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgSlNWYWx1
ZSByaWdodE51bWJlciA9IHYyLnRvUHJpbWl0aXZlKHN0YXRlLCBQcmVmZXJOdW1iZXIpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBpZiAobGVmdE51bWJlci5p
c0JpZ0ludCgpIHx8IHJpZ2h0TnVtYmVyLmlzQmlnSW50KCkpIHsKKyAgICAgICAgaWYgKGxlZnRO
dW1iZXIuaXNCaWdJbnQoKSAmJiByaWdodE51bWJlci5pc0JpZ0ludCgpKQorICAgICAgICAgICAg
cmV0dXJuIEpTQmlnSW50OjptdWx0aXBseShzdGF0ZSwgYXNCaWdJbnQobGVmdE51bWJlciksIGFz
QmlnSW50KHJpZ2h0TnVtYmVyKSk7CisKKyAgICAgICAgdGhyb3dUeXBlRXJyb3Ioc3RhdGUsIHNj
b3BlLCBBU0NJSUxpdGVyYWwoIkludmFsaWQgbWl4IG9mIEJpZ0ludCBhbmQgb3RoZXIgdHlwZSBp
biBtdWx0aXBsaWNhdGlvbi4iKSk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAg
c2NvcGUucmVsZWFzZSgpOworICAgIGRvdWJsZSBsZWZ0VmFsdWUgPSAgbGVmdE51bWJlci50b051
bWJlcihzdGF0ZSk7CisgICAgZG91YmxlIHJpZ2h0VmFsdWUgPSAgcmlnaHROdW1iZXIudG9OdW1i
ZXIoc3RhdGUpOworICAgIHJldHVybiBqc051bWJlcihsZWZ0VmFsdWUgKiByaWdodFZhbHVlKTsK
K30KKwogaW5saW5lIGJvb2wgc2NyaWJibGVGcmVlQ2VsbHMoKQogewogICAgIHJldHVybiAhQVNT
RVJUX0RJU0FCTEVEIHx8IE9wdGlvbnM6OnNjcmliYmxlRnJlZUNlbGxzKCk7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVmYjM0YWQ4MGJm
NzI3MTI3MDQ4MDA2MWM5ZWY2YzI5ODIxYzZlMWUuLjMyYjkyZjAzMzE2OGVlNWZjYTZkY2RlNjlh
MGRjOGFkZDhhYzgzYWYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTgtMDQtMjMgIENhaW8gTGltYSAgPHRp
Y2Fpb2xpbWFAZ21haWwuY29tPgorCisgICAgICAgIFtFU05leHRdW0JpZ0ludF0gSW1wbGVtZW50
IHN1cHBvcnQgZm9yICIqIiBvcGVyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MzcyMQorCisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFy
YXRpLgorCisgICAgICAgICogYmlnSW50VGVzdHMueWFtbDoKKyAgICAgICAgKiBzdHJlc3MvYmln
LWludC1tdWwtaml0LmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWwtdG8t
cHJpbWl0aXZlLXByZWNlZGVuY2UuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50
LW11bC10by1wcmltaXRpdmUuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11
bC10eXBlLWVycm9yLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWwtd3Jh
cHBlZC12YWx1ZS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVsdGlwbGlj
YXRpb24uanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11bHRpcGx5LW1lbW9y
eS1zdHJlc3MuanM6IEFkZGVkLgorCiAyMDE4LTA0LTI3ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRk
YWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMzEwODYu
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL2JpZ0ludFRlc3RzLnlhbWwgYi9KU1Rlc3RzL2JpZ0ludFRl
c3RzLnlhbWwKaW5kZXggN2FlMjJjYjFiYjJhZmY2MmNjNGRkZjQ5NjI5OWY5NmEwNzQ0ZjdhZS4u
ZTk0N2RjMjk0NWFkZjkwZDA3N2ZjODM3ZDU1ODNhMWQwOGUzYmM5MSAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9iaWdJbnRUZXN0cy55YW1sCisrKyBiL0pTVGVzdHMvYmlnSW50VGVzdHMueWFtbApAQCAt
OTcsMyArOTcsMjQgQEAKIC0gcGF0aDogc3RyZXNzL2JpZy1pbnQtdG8tc3RyaW5nLmpzCiAgIGNt
ZDogcnVuQmlnSW50RW5hYmxlZAogCistIHBhdGg6IHN0cmVzcy9iaWctaW50LW11bC1qaXQuanMK
KyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsLXRv
LXByaW1pdGl2ZS1wcmVjZWRlbmNlLmpzCisgIGNtZDogcnVuQmlnSW50RW5hYmxlZAorCistIHBh
dGg6IHN0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUuanMKKyAgY21kOiBydW5CaWdJbnRF
bmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsLXR5cGUtZXJyb3IuanMKKyAgY21k
OiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsLXdyYXBwZWQt
dmFsdWUuanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1p
bnQtbXVsdGlwbGljYXRpb24uanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDog
c3RyZXNzL2JpZy1pbnQtbXVsdGlwbHktbWVtb3J5LXN0cmVzcy5qcworICBjbWQ6IHJ1bkJpZ0lu
dEVuYWJsZWQKKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtaml0Lmpz
IGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjYmVkZTMx
ODc1ZDIxZmIzODIyZTdmMjhmZjA1YmNhY2ExYzlmN2EKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rl
c3RzL3N0cmVzcy9iaWctaW50LW11bC1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorLy9AIHJ1bkJp
Z0ludEVuYWJsZWQKKworbGV0IGFzc2VydCA9IHsKKyAgICBzYW1lVmFsdWU6IGZ1bmN0aW9uKGks
IGUsIG0pIHsKKyAgICAgICAgaWYgKGkgIT09IGUpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IobSk7CisgICAgfQorfQorCitmdW5jdGlvbiBiaWdJbnRNdWwoeCwgeSkgeworICAgIHJldHVy
biB4ICogeTsKK30KK25vSW5saW5lKGJpZ0ludE11bCk7CisKK2ZvciAobGV0IGkgPSAwOyBpIDwg
MTAwMDA7IGkrKykgeworICAgIGxldCByID0gYmlnSW50TXVsKDNuLCAxMG4pOworICAgIGFzc2Vy
dC5zYW1lVmFsdWUociwgMzBuLCAzbiArICIgKiAiICsgMTBuICsgIiA9ICIgKyByKTsKK30KKwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLXByZWNl
ZGVuY2UuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUtcHJlY2Vk
ZW5jZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43MTQ5YTE5Njg3ZTE0YWVlNzAxM2IzNjg2NDQ5MmU2ODJiZDVl
NzVlCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdG8tcHJp
bWl0aXZlLXByZWNlZGVuY2UuanMKQEAgLTAsMCArMSwzOSBAQAorLy9AIHJ1bkJpZ0ludEVuYWJs
ZWQKKworYXNzZXJ0ID0geworICAgIHNhbWVWYWx1ZTogZnVuY3Rpb24gKGlucHV0LCBleHBlY3Rl
ZCwgbWVzc2FnZSkgeworICAgICAgICBpZiAoaW5wdXQgIT09IGV4cGVjdGVkKQorICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOworICAgIH0KK307CisKK2Z1bmN0aW9uIHRlc3RN
dWwoeCwgeSwgeiwgbWVzc2FnZSkgeworICAgIGFzc2VydC5zYW1lVmFsdWUoeCAqIHksIHosIG1l
c3NhZ2UpOworICAgIGFzc2VydC5zYW1lVmFsdWUoeSAqIHgsIHosIG1lc3NhZ2UpOworfQorCit0
ZXN0TXVsKE9iamVjdCgybiksIDFuLCAybiwgIlRvUHJpbWl0aXZlOiB1bmJveCBvYmplY3Qgd2l0
aCBpbnRlcm5hbCBzbG90Iik7CisKK2xldCBvID0geworICAgIFtTeW1ib2wudG9QcmltaXRpdmVd
OiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIDJuOworICAgIH0sCisgICAgdmFsdWVPZjog
ZnVuY3Rpb24gKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBleGVj
dXRlIGl0Iik7CisgICAgfSwKKyAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgeworICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBleGVjdXRlIGl0Iik7CisgICAgfQorfTsKK3Rl
c3RNdWwobywgMW4sIDJuLCAiVG9QcmltaXRpdmU6IEBAdG9QcmltaXRpdmUiKTsKKworbyA9IHsK
KyAgICB2YWx1ZU9mOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIDJuOworICAgIH0sCisg
ICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91
bGQgbmV2ZXIgZXhlY3V0ZSBpdCIpOworICAgIH0KK307Cit0ZXN0TXVsKG8sIDFuLCAybiwgIlRv
UHJpbWl0aXZlOiB2YWx1ZU9mIik7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1p
bnQtbXVsLXRvLXByaW1pdGl2ZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXBy
aW1pdGl2ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDJlMmU4ZTI5MTE5ZTI3ZDEzNTc3Y2I1N2FjMmY5NzM1
MGZlNmNjCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdG8t
cHJpbWl0aXZlLmpzCkBAIC0wLDAgKzEsMzUgQEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKK2Z1
bmN0aW9uIGFzc2VydChhKSB7CisgICAgaWYgKCFhKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IkJhZCBhc3NlcnRpb24iKTsKK30KKworYXNzZXJ0LnNhbWVWYWx1ZSA9IGZ1bmN0aW9uIChpbnB1
dCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAgICBpZiAoaW5wdXQgIT09IGV4cGVjdGVkKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RNdWwoeCwg
eSwgeikgeworICAgIGFzc2VydC5zYW1lVmFsdWUoeCAqIHksIHosIHggKyAiICogIiArIHkgKyAi
ID0gIiArIHopOworICAgIGFzc2VydC5zYW1lVmFsdWUoeSAqIHgsIHosIHkgKyAiICogIiArIHgg
KyAiID0gIiArIHopOworfQorCitsZXQgbyA9IHsKKyAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTog
ZnVuY3Rpb24gKCkgeyByZXR1cm4gMzAwMDAwMDAwMDAwMDAwbjsgfQorfQorCit0ZXN0TXVsKDUw
MDAwMDAwMDAwMDQzOG4sIG8sIDE1MDAwMDAwMDAwMDEzMTQwMDAwMDAwMDAwMDAwMG4pOworCitv
LnZhbHVlT2YgPSBmdW5jdGlvbiAoKSB7CisgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGQgbmV2
ZXIgZXhlY3V0ZSBpdCIpOworfTsKKwordGVzdE11bCg3MDAwMDAwMDAwMDA0MzhuLCBvLCAyMTAw
MDAwMDAwMDAxMzE0MDAwMDAwMDAwMDAwMDBuKTsKKworby50b1N0cmluZyA9IGZ1bmN0aW9uICgp
IHsKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBleGVjdXRlIGl0Iik7Cit9Owor
Cit0ZXN0TXVsKDcwMDAwMDAwMDAwMDQzOG4sIG8sIDIxMDAwMDAwMDAwMDEzMTQwMDAwMDAwMDAw
MDAwMG4pOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10eXBlLWVy
cm9yLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdHlwZS1lcnJvci5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iNTE3ODQ1N2ZiNjIzNzU3ZmQwZTc3MzU3N2RjMzk2ZjJmMzBmZTYwCi0tLSAvZGV2L251
bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdHlwZS1lcnJvci5qcwpAQCAtMCww
ICsxLDEwNiBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworZnVuY3Rpb24gYXNzZXJ0KGEsIG1l
c3NhZ2UpIHsKKyAgICBpZiAoIWEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTsK
K30KKworZnVuY3Rpb24gYXNzZXJ0VGhyb3dUeXBlRXJyb3IoYSwgYiwgbWVzc2FnZSkgeworICAg
IHRyeSB7CisgICAgICAgIGxldCBuID0gYSAqIGI7CisgICAgICAgIGFzc2VydChmYWxzZSwgbWVz
c2FnZSArICI6IFNob3VsZCB0aHJvdyBUeXBlRXJyb3IsIGJ1dCBleGVjdXRlZCB3aXRob3V0IGV4
Y2VwdGlvbiIpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgYXNzZXJ0KGUgaW5zdGFuY2Vv
ZiBUeXBlRXJyb3IsIG1lc3NhZ2UgKyAiOiBleHBlY3RlZCBUeXBlRXJyb3IsIGdvdDogIiArIGUp
OworICAgIH0KK30KKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCAiZm9vIiwgIkJpZ0ludCAq
IFN0cmluZyIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoImJhciIsIDE4NzU3MzgyOTg0ODIxbiwg
IlN0cmluZyAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBTeW1ib2woImZv
byIpLCAiQmlnSW50ICogU3ltYm9sIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihTeW1ib2woImJh
ciIpLCAxODc1NzM4Mjk4NDgyMW4sICJTeW1ib2wgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlw
ZUVycm9yKDMwbiwgMzMyMCwgIkJpZ0ludCAqIEludDMyIik7Cithc3NlcnRUaHJvd1R5cGVFcnJv
cigzMzI1NiwgMTg3NTczODI5ODQ4MjFuLCAiSW50MzIgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93
VHlwZUVycm9yKDMwbiwgMC41NDMsICJCaWdJbnQgKiBEb3VibGUiKTsKK2Fzc2VydFRocm93VHlw
ZUVycm9yKDIzMC4xOTI5MywgMTg3NTczODI5ODQ4MjFuLCAiRG91YmxlICogQmlnSW50Iik7Cith
c3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIE5hTiwgIkJpZ0ludCAqIE5hTiIpOworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IoTmFOLCAxODc1NzM4Mjk4NDgyMW4sICJOYU4gKiBCaWdJbnQiKTsKK2Fzc2Vy
dFRocm93VHlwZUVycm9yKDMwbiwgTmFOLCAiQmlnSW50ICogTmFOIik7Cithc3NlcnRUaHJvd1R5
cGVFcnJvcihOYU4sIDE4NzU3MzgyOTg0ODIxbiwgIk5hTiAqIEJpZ0ludCIpOworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IoMzBuLCArSW5maW5pdHksICJCaWdJbnQgKiBOYU4iKTsKK2Fzc2VydFRocm93
VHlwZUVycm9yKCtJbmZpbml0eSwgMTg3NTczODI5ODQ4MjFuLCAiTmFOICogQmlnSW50Iik7Cith
c3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIC1JbmZpbml0eSwgIkJpZ0ludCAqIC1JbmZpbml0eSIp
OworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoLUluZmluaXR5LCAxODc1NzM4Mjk4NDgyMW4sICItSW5m
aW5pdHkgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbnVsbCwgIkJpZ0lu
dCAqIG51bGwiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG51bGwsIDE4NzU3MzgyOTg0ODIxbiwg
Im51bGwgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgdW5kZWZpbmVkLCAi
QmlnSW50ICogdW5kZWZpbmVkIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcih1bmRlZmluZWQsIDE4
NzU3MzgyOTg0ODIxbiwgInVuZGVmaW5lZCAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJy
b3IoMzBuLCB0cnVlLCAiQmlnSW50ICogdHJ1ZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IodHJ1
ZSwgMTg3NTczODI5ODQ4MjFuLCAidHJ1ZSAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJy
b3IoMzBuLCBmYWxzZSwgIkJpZ0ludCAqIGZhbHNlIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihm
YWxzZSwgMTg3NTczODI5ODQ4MjFuLCAiZmFsc2UgKiBCaWdJbnQiKTsKKworLy8gRXJyb3Igd2hl
biByZXR1cm5pbmcgZnJvbSBvYmplY3QKKworbGV0IG8gPSB7CisgICAgdmFsdWVPZjogZnVuY3Rp
b24gKCkgeyByZXR1cm4gU3ltYm9sKCJGb28iKTsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJy
b3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LnZhbHVlT2YgcmV0dXJuaW5nIFN5bWJvbCIpOwor
YXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LnZhbHVlT2Yg
cmV0dXJuaW5nIFN5bWJvbCAqIEJpZ0ludCIpOworCitvID0geworICAgIHZhbHVlT2Y6IGZ1bmN0
aW9uICgpIHsgcmV0dXJuIDMzMjU2OyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4s
IG8sICJCaWdJbnQgKiBPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgSW50MzIiKTsKK2Fzc2VydFRo
cm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC52YWx1ZU9mIHJldHVybmlu
ZyBJbnQzMiAqIEJpZ0ludCIpOworCitvID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uICgpIHsg
cmV0dXJuIDAuNDUzOyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJ
bnQgKiBPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgRG91YmxlIik7Cithc3NlcnRUaHJvd1R5cGVF
cnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgRG91Ymxl
ICogQmlnSW50Iik7CisKK28gPSB7CisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsgcmV0dXJu
IFN5bWJvbCgiRm9vIik7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJp
Z0ludCAqIE9iamVjdC50b1N0cmluZyByZXR1cm5pbmcgU3ltYm9sIik7Cithc3NlcnRUaHJvd1R5
cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QudG9TdHJpbmcgcmV0dXJuaW5nIFN5
bWJvbCAqIEJpZ0ludCIpOworCitvID0geworICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7IHJl
dHVybiAzMzI1NjsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50
ICogT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBJbnQzMiIpOworYXNzZXJ0VGhyb3dUeXBlRXJy
b3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBJbnQzMiAq
IEJpZ0ludCIpOworCitvID0geworICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7IHJldHVybiAw
LjQ1MzsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2Jq
ZWN0LnRvU3RyaW5nIHJldHVybmluZyBEb3VibGUiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8s
IDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC50b1N0cmluZyByZXR1cm5pbmcgRG91YmxlICogQmln
SW50Iik7CisKK28gPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9uICgpIHsg
cmV0dXJuIFN5bWJvbCgiRm9vIik7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwg
bywgIkJpZ0ludCAqIE9iamVjdC5AQHRvUHJpbWl0aXZlIHJldHVybmluZyBTeW1ib2wiKTsKK2Fz
c2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC5AQHRvUHJpbWl0
aXZlIHJldHVybmluZyBTeW1ib2wgKiBCaWdJbnQiKTsKKworbyA9IHsKKyAgICBbU3ltYm9sLnRv
UHJpbWl0aXZlXTogZnVuY3Rpb24gKCkgeyByZXR1cm4gMzMyNTY7IH0KK307CisKK2Fzc2VydFRo
cm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC5AQHRvUHJpbWl0aXZlIHJldHVy
bmluZyBJbnQzMiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAi
T2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5nIEludDMyICogQmlnSW50Iik7CisKK28gPSB7
CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDAuNDUzOyB9
Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QuQEB0
b1ByaW1pdGl2ZSByZXR1cm5pbmcgRG91YmxlIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihvLCAx
ODc1NzM4Mjk4NDgyMW4sICJPYmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcgRG91YmxlICog
QmlnSW50Iik7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXdyYXBw
ZWQtdmFsdWUuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC13cmFwcGVkLXZhbHVlLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmI2NzNkOGE2MDMwMmZhZjY2ZGZhNmNmYTFlYjEzNzBlYzhjMjJjM2EKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC13cmFwcGVkLXZhbHVl
LmpzCkBAIC0wLDAgKzEsMzcgQEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKK2Fzc2VydCA9IHsK
KyAgICBzYW1lVmFsdWU6IGZ1bmN0aW9uIChpbnB1dCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAg
ICAgICAgaWYgKGlucHV0ICE9PSBleHBlY3RlZCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cihtZXNzYWdlKTsKKyAgICB9Cit9OworCitmdW5jdGlvbiB0ZXN0TXVsKHgsIHksIHosIG1lc3Nh
Z2UpIHsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKHggKiB5LCB6LCBtZXNzYWdlKTsKKyAgICBhc3Nl
cnQuc2FtZVZhbHVlKHkgKiB4LCB6LCBtZXNzYWdlKTsKK30KKwordGVzdE11bChPYmplY3QoMm4p
LCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogdW5ib3ggb2JqZWN0IHdpdGggaW50ZXJuYWwgc2xvdCIp
OworCitsZXQgbyA9IHsKKyAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24oKSB7Cisg
ICAgICAgIHJldHVybiAybjsKKyAgICB9Cit9OwordGVzdE11bChvLCAxbiwgMm4sICJUb1ByaW1p
dGl2ZTogQEB0b1ByaW1pdGl2ZSIpOworCitvID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uKCkg
eworICAgICAgICByZXR1cm4gMm47CisgICAgfQorfTsKK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9Q
cmltaXRpdmU6IHZhbHVlT2YiKTsKKworbyA9IHsKKyAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7
CisgICAgICAgIHJldHVybiAybjsKKyAgICB9Cit9Cit0ZXN0TXVsKG8sIDFuLCAybiwgIlRvUHJp
bWl0aXZlOiB0b1N0cmluZyIpOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50
LW11bHRpcGxpY2F0aW9uLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0aXBsaWNhdGlv
bi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zZWNkNjM2ZDdmODlhMjRhY2ZiYjgxZDcyZDc1NWMyMjhmZTZmYWQ5
Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0aXBsaWNhdGlv
bi5qcwpAQCAtMCwwICsxLDgzIEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCisvLyBDb3B5cmln
aHQgKEMpIDIwMTcgUm9iaW4gVGVtcGxldG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhp
cyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5T
RSBmaWxlLgorCithc3NlcnQgPSB7CisgICAgc2FtZVZhbHVlOiBmdW5jdGlvbiAoaW5wdXQsIGV4
cGVjdGVkLCBtZXNzYWdlKSB7CisgICAgaWYgKGlucHV0ICE9PSBleHBlY3RlZCkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOworICAgIH0KK307CisKK2Z1bmN0aW9uIHRlc3RNdWwo
eCwgeSwgeikgeworICAgIGFzc2VydC5zYW1lVmFsdWUoeCAqIHksIHosIHggKyAiICogIiArIHkg
KyAiID0gIiArIHopOworICAgIGFzc2VydC5zYW1lVmFsdWUoeSAqIHgsIHosIHkgKyAiICogIiAr
IHggKyAiID0gIiArIHopOworfQorCit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4RkVE
Q0JBOTg3NjU0MzIxMG4sIDB4RkRCQUMwOTdDOERDNUFDQ0RFRUM2Q0Q3QTQ0QTQxMDBuKTsKK3Rl
c3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHhGRURDQkE5OG4sIDB4RkRCQUMwOTc1MzBFQ0E4
NjU0MUQ1OTgwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4MTIzNG4sIDB4MTIx
RjQ5RjQ5RjQ5RjQ5RjRCNDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHgzbiwg
MHgyRkM5NjJGQzk2MkZDOTYzMG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweDJu
LCAweDFGREI5NzUzMEVDQTg2NDIwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4
MW4sIDB4RkVEQ0JBOTg3NjU0MzIxMG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAw
eDBuLCAweDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgQmlnSW50KCItMSIpLCBC
aWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQz
MjEwbiwgQmlnSW50KCItMiIpLCBCaWdJbnQoIi0zNjcyOTUxNzA4ODk4NjEyOTQ0MCIpKTsKK3Rl
c3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgQmlnSW50KCItMyIpLCBCaWdJbnQoIi01NTA5NDI3
NTYzMzQ3OTE5NDE2MCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgQmlnSW50KCIt
NDY2MCIpLCBCaWdJbnQoIi04NTU3OTc3NDgxNzMzNzY4MTU5NTIwMCIpKTsKK3Rlc3RNdWwoMHhG
RURDQkE5ODc2NTQzMjEwbiwgQmlnSW50KCItNDI3NTg3ODU1MSIpLCBCaWdJbnQoIi03ODUyNTQ3
NzE1NDY5MTg3NDYwNDUwMjgyMDcyMCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwg
MHhGRURDQkE5ODc2NTQzMjBGbiwgMHhGREJBQzA5N0M4REM1QUNBRTEzMkY3QTZCN0ExRENFMW4p
OwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweEZFRENCQTk3biwgMHhGREJBQzA5NjU0
MzIwRkVDREVFQzZDRDluKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgMHgzbiwgMHgy
RkM5NjJGQzk2MkZDOTYyRG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweDJuLCAw
eDFGREI5NzUzMEVDQTg2NDFFbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4MW4s
IDB4RkVEQ0JBOTg3NjU0MzIwRm4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweDBu
LCAweDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmlnSW50KCItMSIpLCBCaWdJ
bnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcxOSIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBG
biwgQmlnSW50KCItMiIpLCBCaWdJbnQoIi0zNjcyOTUxNzA4ODk4NjEyOTQzOCIpKTsKK3Rlc3RN
dWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmlnSW50KCItMyIpLCBCaWdJbnQoIi01NTA5NDI3NTYz
MzQ3OTE5NDE1NyIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmlnSW50KCItNDI3
NTg3ODU1MSIpLCBCaWdJbnQoIi03ODUyNTQ3NzE1NDY5MTg3NDYwMDIyNjk0MjE2OSIpKTsKK3Rl
c3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAi
KSwgQmlnSW50KCItMzM3MjY0MzU2Mzk3NTMxMDI4OTc2NjA4Mjg5NjMzNjE1NjEzNjgwIikpOwor
dGVzdE11bCgweEZFRENCQTk4biwgMHhGRURDQkE5OG4sIDB4RkRCQUMwOTZERDQxM0E0MG4pOwor
dGVzdE11bCgweEZFRENCQTk4biwgMHgxMjM0biwgMHgxMjFGNDlGNDk2RTBuKTsKK3Rlc3RNdWwo
MHhGRURDQkE5OG4sIDB4M24sIDB4MkZDOTYyRkM4bik7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCAw
eDJuLCAweDFGREI5NzUzMG4pOwordGVzdE11bCgweEZFRENCQTk4biwgMHgxbiwgMHhGRURDQkE5
OG4pOwordGVzdE11bCgweEZFRENCQTk4biwgMHgwbiwgMHgwbik7Cit0ZXN0TXVsKDB4RkVEQ0JB
OThuLCBCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTIiKSk7Cit0ZXN0TXVsKDB4RkVE
Q0JBOThuLCBCaWdJbnQoIi0yIiksIEJpZ0ludCgiLTg1NTE3NTcxMDQiKSk7Cit0ZXN0TXVsKDB4
RkVEQ0JBOThuLCBCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTEyODI3NjM1NjU2IikpOwordGVzdE11
bCgweEZFRENCQTk4biwgQmlnSW50KCItNDI3NTg3ODU1MSIpLCBCaWdJbnQoIi0xODI4MzEzNzM4
NzE3NzczODE1MiIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0ludCgiLTE4MzY0NzU4NTQ0
NDkzMDY0NzIwIiksIEJpZ0ludCgiLTc4NTI1NDc3MTczMDU2NjMzMTQ4OTk1ODg1NDQwIikpOwor
dGVzdE11bCgweDNuLCAweDNuLCAweDluKTsKK3Rlc3RNdWwoMHgzbiwgMHgybiwgMHg2bik7Cit0
ZXN0TXVsKDB4M24sIDB4MW4sIDB4M24pOwordGVzdE11bCgweDNuLCAweDBuLCAweDBuKTsKK3Rl
c3RNdWwoMHgzbiwgQmlnSW50KCItMSIpLCBCaWdJbnQoIi0zIikpOwordGVzdE11bCgweDNuLCBC
aWdJbnQoIi0yIiksIEJpZ0ludCgiLTYiKSk7Cit0ZXN0TXVsKDB4M24sIEJpZ0ludCgiLTMiKSwg
QmlnSW50KCItOSIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItNDY2MCIpLCBCaWdJbnQoIi0x
Mzk4MCIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItNDI3NTg3ODU1MiIpLCBCaWdJbnQoIi0x
MjgyNzYzNTY1NiIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3
MjAiKSwgQmlnSW50KCItNTUwOTQyNzU2MzM0NzkxOTQxNjAiKSk7Cit0ZXN0TXVsKDB4MG4sIDB4
MG4sIDB4MG4pOwordGVzdE11bCgweDBuLCBCaWdJbnQoIi0xIiksIDB4MG4pOwordGVzdE11bCgw
eDBuLCBCaWdJbnQoIi0yIiksIDB4MG4pOwordGVzdE11bCgweDBuLCBCaWdJbnQoIi0zIiksIDB4
MG4pOwordGVzdE11bCgweDBuLCBCaWdJbnQoIi00Mjc1ODc4NTUxIiksIDB4MG4pOwordGVzdE11
bCgweDBuLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcxOSIpLCAweDBuKTsKK3Rlc3RNdWwo
QmlnSW50KCItMSIpLCBCaWdJbnQoIi0xIiksIDB4MW4pOwordGVzdE11bChCaWdJbnQoIi0xIiks
IEJpZ0ludCgiLTIiKSwgMHgybik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMyIp
LCAweDNuKTsKK3Rlc3RNdWwoQmlnSW50KCItMSIpLCBCaWdJbnQoIi00NjYwIiksIDB4MTIzNG4p
OwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTEiKSwgMHhGRURDQkE5
N24pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTIiKSwgMHhGRURD
QkE5OG4pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0
NzE5IiksIDB4RkVEQ0JBOTg3NjU0MzIwRm4pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0lu
dCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIDB4RkVEQ0JBOTg3NjU0MzIxMG4pOwordGVzdE11
bChCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTMiKSwgMHg5bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMi
KSwgQmlnSW50KCItNDY2MCIpLCAweDM2OUNuKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJ
bnQoIi00Mjc1ODc4NTUxIiksIDB4MkZDOTYyRkM1bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwg
QmlnSW50KCItNDI3NTg3ODU1MiIpLCAweDJGQzk2MkZDOG4pOwordGVzdE11bChCaWdJbnQoIi0z
IiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzE5IiksIDB4MkZDOTYyRkM5NjJGQzk2MkRu
KTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIp
LCAweDJGQzk2MkZDOTYyRkM5NjMwbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkz
MDY0NzIwIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIDB4RkRCQUMwOTdDOERD
NUFDQ0RFRUM2Q0Q3QTQ0QTQxMDBuKTsKKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmln
LWludC1tdWx0aXBseS1tZW1vcnktc3RyZXNzLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1t
dWx0aXBseS1tZW1vcnktc3RyZXNzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhYmFhN2UyOGY5YWVlNjVkMjFj
MGQzNmY2M2RmNjgwMjNiOWM4OTcKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9i
aWctaW50LW11bHRpcGx5LW1lbW9yeS1zdHJlc3MuanMKQEAgLTAsMCArMSwxNSBAQAorLy9AIHJ1
bkJpZ0ludEVuYWJsZWQKKworZnVuY3Rpb24gYXNzZXJ0KGEpIHsKKyAgICBpZiAoIWEpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGFzc2VydGlvbiIpOworfQorCitsZXQgYSA9IDBuOwor
bGV0IGIgPSAxbjsKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDAwMDsgaSsrKSB7CisgICAgYSA9
IGIgKiAzMG47Cit9CisKK2Fzc2VydChhID09PSAzMG4pOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339068</attachid>
            <date>2018-04-28 09:57:28 -0700</date>
            <delta_ts>2018-05-01 12:43:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183721-20180428135725.patch</filename>
            <type>text/plain</type>
            <size>45405</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YTExOTFkOTAzZDIwZTEyNzk5ZGNjZjk1ODBjZDE3YzFlNzY5M2EzLi4xNGIzNGMxNDczZDE3NzE4
M2RiYzIzMWJjZThjYzY4NGI1YjZmNDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MiBAQAorMjAxOC0wNC0yOCAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgIioiIG9w
ZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgzNzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgQWRk
ZWQgQmlnSW50IHN1cHBvcnQgaW50byB0aW1lcyBiaW5hcnkgb3BlcmF0b3IgaW50byBMTEludCBh
bmQgb24KKyAgICAgICAgSklUT3BlcmF0aW9ucyBwcm9maWxlZE11bCBhbmQgdW5wcm9maWxlZE11
bC4gV2UgYXJlIGFsc28gcmVwbGFjaW5nIGFsbAorICAgICAgICB1c2VzIG9mIGludCB0byB1bnNp
Z25lZCB3aGVuIHRoZXJlIGlzIG5vIG5lZ2F0aXZlIHZhbHVlcyBmb3IKKyAgICAgICAgdmFyaWFi
bGVzLgorCisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6CisgICAg
ICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNCaWdJbnQuY3BwOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6SlNCaWdJbnQpOgor
ICAgICAgICAoSlNDOjpKU0JpZ0ludDo6YWxsb2NhdGlvblNpemUpOgorICAgICAgICAoSlNDOjpK
U0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojp0b1N0
cmluZyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjptdWx0aXBseSk6CisgICAgICAgIChKU0M6
OkpTQmlnSW50OjpkaWdpdERpdik6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjppbnRlcm5hbE11
bHRpcGx5QWRkKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6Om11bHRpcGx5QWNjdW11bGF0ZSk6
CisgICAgICAgIChKU0M6OkpTQmlnSW50OjplcXVhbHMpOgorICAgICAgICAoSlNDOjpKU0JpZ0lu
dDo6YWJzb2x1dGVEaXZTbWFsbCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpjYWxjdWxhdGVN
YXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OnRvU3Ry
aW5nR2VuZXJpYyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpyaWdodFRyaW0pOgorICAgICAg
ICAoSlNDOjpKU0JpZ0ludDo6YWxsb2NhdGVGb3IpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6
cGFyc2VJbnQpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6ZGlnaXQpOgorICAgICAgICAoSlND
OjpKU0JpZ0ludDo6c2V0RGlnaXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuaDoKKyAg
ICAgICAgKiBydW50aW1lL09wZXJhdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6anNNdWwpOgorCiAy
MDE4LTA0LTI4ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjMxMTMxLgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAppbmRleCBjZWU2
NTYyMzQzMTc3MGY0YmY0MDJhZGEwYzg3NzM1OGY4MDBiNjdkLi5lNDY1MGFjMzA4MGY2YjQyMGI2
Mzc4YjY2NWNlZDUyNmJiOWRlNWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcApAQCAtMTQ2LDE0ICsxNDYsMTQgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZSBjaGlsZDJDb25zdGFudCA9IG1f
c3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDIoKS5ub2RlKCkpLnZhbHVlKCk7CiAKICAgICAgICAg
ICAgICAgICAgICAgLy8gRklYTUU6IFJldmlzaXQgdGhpcyBjb25kaXRpb24gd2hlbiBpbnRyb2R1
Y2luZyBCaWdJbnQgdG8gSlNDLgotICAgICAgICAgICAgICAgICAgICBhdXRvIGlzTm9uU3RyaW5n
Q2VsbENvbnN0YW50ID0gW10gKEpTVmFsdWUgdmFsdWUpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB2YWx1ZSAmJiB2YWx1ZS5pc0NlbGwoKSAmJiAhdmFsdWUuaXNTdHJpbmcoKTsK
KyAgICAgICAgICAgICAgICAgICAgYXV0byBpc05vblN0cmluZ09yQmlnSW50Q2VsbENvbnN0YW50
ID0gW10gKEpTVmFsdWUgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2
YWx1ZSAmJiB2YWx1ZS5pc0NlbGwoKSAmJiAhdmFsdWUuaXNTdHJpbmcoKSAmJiAhdmFsdWUuaXNC
aWdJbnQoKTsKICAgICAgICAgICAgICAgICAgICAgfTsKIAotICAgICAgICAgICAgICAgICAgICBp
ZiAoaXNOb25TdHJpbmdDZWxsQ29uc3RhbnQoY2hpbGQxQ29uc3RhbnQpKSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChpc05vblN0cmluZ09yQmlnSW50Q2VsbENvbnN0YW50KGNoaWxkMUNvbnN0
YW50KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y29udmVydFRvQ29tcGFyZUVx
UHRyKG1fZ3JhcGguZnJlZXplU3Ryb25nKGNoaWxkMUNvbnN0YW50LmFzQ2VsbCgpKSwgbm9kZS0+
Y2hpbGQyKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNOb25TdHJpbmdDZWxsQ29uc3RhbnQoY2hpbGQy
Q29uc3RhbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNOb25TdHJpbmdP
ckJpZ0ludENlbGxDb25zdGFudChjaGlsZDJDb25zdGFudCkpIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgIG5vZGUtPmNvbnZlcnRUb0NvbXBhcmVFcVB0cihtX2dyYXBoLmZyZWV6ZVN0cm9uZyhj
aGlsZDJDb25zdGFudC5hc0NlbGwoKSksIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRleCAzNjViYjczNzU1YTdh
NDU0Y2YwODU0MzZjNjM3OGQxYmY3M2ZlYzRiLi42MmZjMWIwMjJhYzk3Y2JkODg4MTQxOTIyMjJj
NjI3NDlkMjdmNWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAKQEAgLTI1NTQsMzQgKzI1NTQsMjMgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZUFkZE5vT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGUKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUFMV0FZU19JTkxJTkUgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIHVucHJvZmlsZWRNdWwoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCitB
TFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSB1bnByb2ZpbGVkTXVsKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMikKIHsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAg
SlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CiAgICAgSlNWYWx1ZSBv
cDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CiAKLSAgICBkb3VibGUgYSA9IG9wMS50
b051bWJlcihleGVjKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNW
YWx1ZSgpKTsKLSAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgZG91YmxlIGIgPSBvcDIudG9OdW1i
ZXIoZXhlYyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhICogYikpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNNdWwoZXhlYywgb3AxLCBvcDIpKTsKIH0KIAot
QUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcHJvZmlsZWRNdWwoVk0mIHZtLCBF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSYgYXJpdGhQcm9maWxlLCBib29sIHNob3VsZE9ic2Vy
dmVMSFNBbmRSSFNUeXBlcyA9IHRydWUpCitBTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBwcm9maWxlZE11bChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSYgYXJpdGhQcm9maWxl
LCBib29sIHNob3VsZE9ic2VydmVMSFNBbmRSSFNUeXBlcyA9IHRydWUpCiB7Ci0gICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwogICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRPcDIpOwogCiAgICAgaWYgKHNob3VsZE9ic2VydmVMSFNBbmRSSFNUeXBlcykKICAg
ICAgICAgYXJpdGhQcm9maWxlLm9ic2VydmVMSFNBbmRSSFMob3AxLCBvcDIpOwogCi0gICAgZG91
YmxlIGEgPSBvcDEudG9OdW1iZXIoZXhlYyk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgZG91YmxlIGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7
Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAg
Ci0gICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhICogYik7CisgICAgSlNWYWx1ZSByZXN1
bHQgPSBqc011bChleGVjLCBvcDEsIG9wMik7CiAgICAgYXJpdGhQcm9maWxlLm9ic2VydmVSZXN1
bHQocmVzdWx0KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CkBAIC0y
NTkxLDcgKzI1ODAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZh
bHVlTXVsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZQogICAgIFZNKiB2bSA9ICZl
eGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwog
Ci0gICAgcmV0dXJuIHVucHJvZmlsZWRNdWwoKnZtLCBleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVk
T3AyKTsKKyAgICByZXR1cm4gdW5wcm9maWxlZE11bChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVk
T3AyKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11
bE5vT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRNdWxJQyopCkBAIC0yNTk5LDcgKzI1ODgsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsTm9PcHRpbWl6
ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZQogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAg
IE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwogCi0gICAgcmV0dXJuIHVu
cHJvZmlsZWRNdWwoKnZtLCBleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyKTsKKyAgICByZXR1
cm4gdW5wcm9maWxlZE11bChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyKTsKIH0KIAogRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bE9wdGltaXplKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMiwgSklUTXVsSUMqIG11bElDKQpAQCAtMjYxNiw3ICsyNjA1LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bE9wdGltaXplKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEoKICAgICBleGVjLT5jb2RlQmxvY2soKS0+ZHVtcE1hdGhJQ1N0YXRzKCk7
CiAjZW5kaWYKIAotICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9w
MSwgZW5jb2RlZE9wMik7CisgICAgcmV0dXJuIHVucHJvZmlsZWRNdWwoZXhlYywgZW5jb2RlZE9w
MSwgZW5jb2RlZE9wMik7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVNdWxQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9m
aWxlKQpAQCAtMjYyNSw3ICsyNjE0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEoKICAgICBO
YXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKIAogICAgIEFTU0VSVChhcml0
aFByb2ZpbGUpOwotICAgIHJldHVybiBwcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEs
IGVuY29kZWRPcDIsICphcml0aFByb2ZpbGUpOworICAgIHJldHVybiBwcm9maWxlZE11bChleGVj
LCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlKTsKIH0KIAogRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkT3B0aW1pemUoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AyLCBKSVRNdWxJQyogbXVsSUMpCkBAIC0yNjQzLDcgKzI2MzIsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWRPcHRpbWl6ZShF
eGVjU3RhdGUqIGV4ZWMsCiAgICAgZXhlYy0+Y29kZUJsb2NrKCktPmR1bXBNYXRoSUNTdGF0cygp
OwogI2VuZGlmCiAKLSAgICByZXR1cm4gcHJvZmlsZWRNdWwoKnZtLCBleGVjLCBlbmNvZGVkT3Ax
LCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlLCBmYWxzZSk7CisgICAgcmV0dXJuIHByb2ZpbGVk
TXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIsICphcml0aFByb2ZpbGUsIGZhbHNlKTsK
IH0KIAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2Zp
bGVkTm9PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVE11bElDKiBtdWxJQykKQEAgLTI2NTMsNyAr
MjY0Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQ
cm9maWxlZE5vT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjCiAKICAgICBBcml0aFByb2ZpbGUqIGFy
aXRoUHJvZmlsZSA9IG11bElDLT5hcml0aFByb2ZpbGUoKTsKICAgICBBU1NFUlQoYXJpdGhQcm9m
aWxlKTsKLSAgICByZXR1cm4gcHJvZmlsZWRNdWwoKnZtLCBleGVjLCBlbmNvZGVkT3AxLCBlbmNv
ZGVkT3AyLCAqYXJpdGhQcm9maWxlKTsKKyAgICByZXR1cm4gcHJvZmlsZWRNdWwoZXhlYywgZW5j
b2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSk7CiB9CiAKIEFMV0FZU19JTkxJTkUg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIHVucHJvZmlsZWROZWdhdGUoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3BlcmFuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCmluZGV4IGU2YzFhNDRkNjdmNDIxNDUyODVm
YjBkMjAwNzQ1ZGJjYjNhN2RmNzcuLjFjMDM5MWJhMDE5YTdkOTVjMDMzY2ExYzNiN2ViY2IwZTYx
YWJkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNs
b3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzLmNwcApAQCAtNDg2LDEwICs0ODYsMjYgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRo
X211bCkKICAgICBCRUdJTigpOwogICAgIEpTVmFsdWUgbGVmdCA9IE9QX0MoMikuanNWYWx1ZSgp
OwogICAgIEpTVmFsdWUgcmlnaHQgPSBPUF9DKDMpLmpzVmFsdWUoKTsKLSAgICBkb3VibGUgYSA9
IGxlZnQudG9OdW1iZXIoZXhlYyk7Ci0gICAgaWYgKFVOTElLRUxZKHRocm93U2NvcGUuZXhjZXB0
aW9uKCkpKQotICAgICAgICBSRVRVUk4oSlNWYWx1ZSgpKTsKLSAgICBkb3VibGUgYiA9IHJpZ2h0
LnRvTnVtYmVyKGV4ZWMpOworICAgIEpTVmFsdWUgbGVmdFByaW1pdGl2ZSA9IGxlZnQudG9Qcmlt
aXRpdmUoZXhlYywgUHJlZmVyTnVtYmVyKTsgCisgICAgQ0hFQ0tfRVhDRVBUSU9OKCk7CisgICAg
SlNWYWx1ZSByaWdodFByaW1pdGl2ZSA9IHJpZ2h0LnRvUHJpbWl0aXZlKGV4ZWMsIFByZWZlck51
bWJlcik7CisgICAgQ0hFQ0tfRVhDRVBUSU9OKCk7CisgICAgCisgICAgaWYgKGxlZnRQcmltaXRp
dmUuaXNCaWdJbnQoKSB8fCByaWdodFByaW1pdGl2ZS5pc0JpZ0ludCgpKSB7CisgICAgICAgIGlm
IChsZWZ0UHJpbWl0aXZlLmlzQmlnSW50KCkgJiYgcmlnaHRQcmltaXRpdmUuaXNCaWdJbnQoKSkg
eworICAgICAgICAgICAgSlNWYWx1ZSByZXN1bHQoSlNCaWdJbnQ6Om11bHRpcGx5KGV4ZWMsIGFz
QmlnSW50KGxlZnRQcmltaXRpdmUpLCBhc0JpZ0ludChyaWdodFByaW1pdGl2ZSkpKTsKKyAgICAg
ICAgICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1bHQsIHsKKyAgICAgICAgICAgICAgICB1
cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5hcnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIGxlZnQs
IHJpZ2h0KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgVEhST1coY3Jl
YXRlVHlwZUVycm9yKGV4ZWMsICJJbnZhbGlkIG1peCBvZiBCaWdJbnQgYW5kIG90aGVyIHR5cGUg
aW4gbXVsdGlwbGljYXRpb24uIikpOworICAgIH0KKworICAgIGRvdWJsZSBhID0gbGVmdFByaW1p
dGl2ZS50b051bWJlcihleGVjKTsKKyAgICBDSEVDS19FWENFUFRJT04oKTsKKyAgICBkb3VibGUg
YiA9IHJpZ2h0UHJpbWl0aXZlLnRvTnVtYmVyKGV4ZWMpOworICAgIENIRUNLX0VYQ0VQVElPTigp
OwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAqIGIpOwogICAgIFJFVFVSTl9XSVRI
X1BST0ZJTElORyhyZXN1bHQsIHsKICAgICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5
QXJpdGhPcChleGVjLCBwYywgcmVzdWx0LCBsZWZ0LCByaWdodCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAKaW5kZXggYzUxYzhiMjEwZDkzYzE3Zjk2NDAwZWZl
NzdkYWE2NzJhMjU5YTZkMy4uOTE5N2I5YTFhNDRkYzUxMTI3MDJkYTc4YTE4ODk4MDc4ZjJkNjQ5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcApAQCAtNjks
NyArNjksNyBAQCB2b2lkIEpTQmlnSW50Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0aGlzT2JqZWN0LCB2
aXNpdG9yKTsKIH0KIAotSlNCaWdJbnQ6OkpTQmlnSW50KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIGludCBsZW5ndGgpCitKU0JpZ0ludDo6SlNCaWdJbnQoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgdW5zaWduZWQgbGVuZ3RoKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQog
ICAgICwgbV9sZW5ndGgobGVuZ3RoKQogeyB9CkBAIC05MywxMyArOTMsMTMgQEAgSlNCaWdJbnQq
IEpTQmlnSW50OjpjcmVhdGVaZXJvKFZNJiB2bSkKICAgICByZXR1cm4gemVyb0JpZ0ludDsKIH0K
IAotc2l6ZV90IEpTQmlnSW50OjphbGxvY2F0aW9uU2l6ZShpbnQgbGVuZ3RoKQorc2l6ZV90IEpT
QmlnSW50OjphbGxvY2F0aW9uU2l6ZSh1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgc2l6ZV90IHNp
emVXaXRoUGFkZGluZyA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZjxzaXplb2Yoc2l6ZV90KT4o
c2l6ZW9mKEpTQmlnSW50KSk7CiAgICAgcmV0dXJuIHNpemVXaXRoUGFkZGluZyArIGxlbmd0aCAq
IHNpemVvZihEaWdpdCk7CiB9CiAKLUpTQmlnSW50KiBKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0
aChWTSYgdm0sIGludCBsZW5ndGgpCitKU0JpZ0ludCogSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5n
dGgoVk0mIHZtLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgSlNCaWdJbnQqIGJpZ0ludCA9IG5l
dyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpTQmlnSW50Pih2bS5oZWFwLCBhbGxvY2F0aW9uU2l6
ZShsZW5ndGgpKSkgSlNCaWdJbnQodm0sIHZtLmJpZ0ludFN0cnVjdHVyZS5nZXQoKSwgbGVuZ3Ro
KTsKICAgICBiaWdJbnQtPmZpbmlzaENyZWF0aW9uKHZtKTsKQEAgLTIyMyw3ICsyMjMsNyBAQCBK
U0JpZ0ludCogSlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgU3Ry
aW5nVmlldyBzLCB1aW50OF90IHJhZAogICAgIHJldHVybiBwYXJzZUludChzdGF0ZSwgdm0sIHMu
Y2hhcmFjdGVyczE2KCksIHMubGVuZ3RoKCksIDAsIHJhZGl4LCBmYWxzZSk7CiB9CiAKLVN0cmlu
ZyBKU0JpZ0ludDo6dG9TdHJpbmcoRXhlY1N0YXRlJiBzdGF0ZSwgaW50IHJhZGl4KQorU3RyaW5n
IEpTQmlnSW50Ojp0b1N0cmluZyhFeGVjU3RhdGUmIHN0YXRlLCB1bnNpZ25lZCByYWRpeCkKIHsK
ICAgICBpZiAodGhpcy0+aXNaZXJvKCkpCiAgICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnNtYWxs
U3RyaW5ncy5zaW5nbGVDaGFyYWN0ZXJTdHJpbmdSZXAoJzAnKTsKQEAgLTI0Niw2ICsyNDYsMjYg
QEAgdm9pZCBKU0JpZ0ludDo6aW5wbGFjZU11bHRpcGx5QWRkKHVpbnRwdHJfdCBmYWN0b3IsIHVp
bnRwdHJfdCBzdW1tYW5kKQogICAgIGludGVybmFsTXVsdGlwbHlBZGQodGhpcywgZmFjdG9yLCBz
dW1tYW5kLCBsZW5ndGgoKSwgdGhpcyk7CiB9CiAKK0pTQmlnSW50KiBKU0JpZ0ludDo6bXVsdGlw
bHkoRXhlY1N0YXRlKiBzdGF0ZSwgSlNCaWdJbnQqIHgsIEpTQmlnSW50KiB5KQoreworICAgIFZN
JiB2bSA9IHN0YXRlLT52bSgpOworCisgICAgaWYgKHgtPmlzWmVybygpKQorICAgICAgICByZXR1
cm4geDsKKyAgICBpZiAoeS0+aXNaZXJvKCkpCisgICAgICAgIHJldHVybiB5OworCisgICAgdW5z
aWduZWQgcmVzdWx0TGVuZ3RoID0geC0+bGVuZ3RoKCkgKyB5LT5sZW5ndGgoKTsKKyAgICBKU0Jp
Z0ludCogcmVzdWx0ID0gSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGgodm0sIHJlc3VsdExlbmd0
aCk7CisgICAgcmVzdWx0LT5pbml0aWFsaXplKEluaXRpYWxpemF0aW9uVHlwZTo6V2l0aFplcm8p
OworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHgtPmxlbmd0aCgpOyBpKyspCisgICAg
ICAgIG11bHRpcGx5QWNjdW11bGF0ZSh5LCB4LT5kaWdpdChpKSwgcmVzdWx0LCBpKTsKKworICAg
IHJlc3VsdC0+c2V0U2lnbih4LT5zaWduKCkgIT0geS0+c2lnbigpKTsKKyAgICByZXR1cm4gcmVz
dWx0LT5yaWdodFRyaW0odm0pOworfQorCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICNkZWZpbmUg
SEFWRV9UV09fRElHSVQgMQogdHlwZWRlZiB1aW50NjRfdCBUd29EaWdpdDsKQEAgLTM3OCw5ICsz
OTgsOSBAQCBKU0JpZ0ludDo6RGlnaXQgSlNCaWdJbnQ6OmRpZ2l0RGl2KERpZ2l0IGhpZ2gsIERp
Z2l0IGxvdywgRGlnaXQgZGl2aXNvciwgRGlnaXQmCiAgICAgc3RhdGljIGNvbnN0IERpZ2l0IGtI
YWxmRGlnaXRCYXNlID0gMXVsbCA8PCBoYWxmRGlnaXRCaXRzOwogICAgIC8vIEFkYXB0ZWQgZnJv
bSBXYXJyZW4sIEhhY2tlcidzIERlbGlnaHQsIHAuIDE1Mi4KICNpZiBVU0UoSlNWQUxVRTY0KQot
ICAgIGludCBzID0gY2x6NjQoZGl2aXNvcik7CisgICAgdW5zaWduZWQgcyA9IGNsejY0KGRpdmlz
b3IpOwogI2Vsc2UKLSAgICBpbnQgcyA9IGNsejMyKGRpdmlzb3IpOworICAgIHVuc2lnbmVkIHMg
PSBjbHozMihkaXZpc29yKTsKICNlbmRpZgogICAgIGRpdmlzb3IgPDw9IHM7CiAgICAgCkBAIC00
MjMsMTQgKzQ0MywxNCBAQCBKU0JpZ0ludDo6RGlnaXQgSlNCaWdJbnQ6OmRpZ2l0RGl2KERpZ2l0
IGhpZ2gsIERpZ2l0IGxvdywgRGlnaXQgZGl2aXNvciwgRGlnaXQmCiAKIC8vIE11bHRpcGxpZXMg
e3NvdXJjZX0gd2l0aCB7ZmFjdG9yfSBhbmQgYWRkcyB7c3VtbWFuZH0gdG8gdGhlIHJlc3VsdC4K
IC8vIHtyZXN1bHR9IGFuZCB7c291cmNlfSBtYXkgYmUgdGhlIHNhbWUgQmlnSW50IGZvciBpbnBs
YWNlIG1vZGlmaWNhdGlvbi4KLXZvaWQgSlNCaWdJbnQ6OmludGVybmFsTXVsdGlwbHlBZGQoSlNC
aWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1tYW5kLCBpbnQgbiwgSlNCaWdJ
bnQqIHJlc3VsdCkKK3ZvaWQgSlNCaWdJbnQ6OmludGVybmFsTXVsdGlwbHlBZGQoSlNCaWdJbnQq
IHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1tYW5kLCB1bnNpZ25lZCBuLCBKU0JpZ0lu
dCogcmVzdWx0KQogewogICAgIEFTU0VSVChzb3VyY2UtPmxlbmd0aCgpID49IG4pOwogICAgIEFT
U0VSVChyZXN1bHQtPmxlbmd0aCgpID49IG4pOwogCiAgICAgRGlnaXQgY2FycnkgPSBzdW1tYW5k
OwogICAgIERpZ2l0IGhpZ2ggPSAwOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICBEaWdpdCBj
dXJyZW50ID0gc291cmNlLT5kaWdpdChpKTsKICAgICAgICAgRGlnaXQgbmV3Q2FycnkgPSAwOwog
CkBAIC00NTgsNiArNDc4LDQ5IEBAIHZvaWQgSlNCaWdJbnQ6OmludGVybmFsTXVsdGlwbHlBZGQo
SlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1tYW5kCiAgICAgICAgIEFT
U0VSVCghKGNhcnJ5ICsgaGlnaCkpOwogfQogCisvLyBNdWx0aXBsaWVzIHttdWx0aXBsaWNhbmR9
IHdpdGgge211bHRpcGxpZXJ9IGFuZCBhZGRzIHRoZSByZXN1bHQgdG8KKy8vIHthY2N1bXVsYXRv
cn0sIHN0YXJ0aW5nIGF0IHthY2N1bXVsYXRvckluZGV4fSBmb3IgdGhlIGxlYXN0LXNpZ25pZmlj
YW50CisvLyBkaWdpdC4KKy8vIENhbGxlcnMgbXVzdCBlbnN1cmUgdGhhdCB7YWNjdW11bGF0b3J9
IGlzIGJpZyBlbm91Z2ggdG8gaG9sZCB0aGUgcmVzdWx0Lgordm9pZCBKU0JpZ0ludDo6bXVsdGlw
bHlBY2N1bXVsYXRlKEpTQmlnSW50KiBtdWx0aXBsaWNhbmQsIERpZ2l0IG11bHRpcGxpZXIsIEpT
QmlnSW50KiBhY2N1bXVsYXRvciwgdW5zaWduZWQgYWNjdW11bGF0b3JJbmRleCkKK3sKKyAgICBB
U1NFUlQoYWNjdW11bGF0b3ItPmxlbmd0aCgpID4gbXVsdGlwbGljYW5kLT5sZW5ndGgoKSArIGFj
Y3VtdWxhdG9ySW5kZXgpOworICAgIGlmICghbXVsdGlwbGllcikKKyAgICAgICAgcmV0dXJuOwor
ICAgIAorICAgIERpZ2l0IGNhcnJ5ID0gMDsKKyAgICBEaWdpdCBoaWdoID0gMDsKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbXVsdGlwbGljYW5kLT5sZW5ndGgoKTsgaSsrLCBhY2N1bXVs
YXRvckluZGV4KyspIHsKKyAgICAgICAgRGlnaXQgYWNjID0gYWNjdW11bGF0b3ItPmRpZ2l0KGFj
Y3VtdWxhdG9ySW5kZXgpOworICAgICAgICBEaWdpdCBuZXdDYXJyeSA9IDA7CisgICAgICAgIAor
ICAgICAgICAvLyBBZGQgbGFzdCByb3VuZCdzIGNhcnJ5b3ZlcnMuCisgICAgICAgIGFjYyA9IGRp
Z2l0QWRkKGFjYywgaGlnaCwgbmV3Q2FycnkpOworICAgICAgICBhY2MgPSBkaWdpdEFkZChhY2Ms
IGNhcnJ5LCBuZXdDYXJyeSk7CisgICAgICAgIAorICAgICAgICAvLyBDb21wdXRlIHRoaXMgcm91
bmQncyBtdWx0aXBsaWNhdGlvbi4KKyAgICAgICAgRGlnaXQgbXVsdGlwbGljYW5kRGlnaXQgPSBt
dWx0aXBsaWNhbmQtPmRpZ2l0KGkpOworICAgICAgICBEaWdpdCBsb3cgPSBkaWdpdE11bChtdWx0
aXBsaWVyLCBtdWx0aXBsaWNhbmREaWdpdCwgaGlnaCk7CisgICAgICAgIGFjYyA9IGRpZ2l0QWRk
KGFjYywgbG93LCBuZXdDYXJyeSk7CisgICAgICAgIAorICAgICAgICAvLyBTdG9yZSByZXN1bHQg
YW5kIHByZXBhcmUgZm9yIG5leHQgcm91bmQuCisgICAgICAgIGFjY3VtdWxhdG9yLT5zZXREaWdp
dChhY2N1bXVsYXRvckluZGV4LCBhY2MpOworICAgICAgICBjYXJyeSA9IG5ld0NhcnJ5OworICAg
IH0KKyAgICAKKyAgICB3aGlsZSAoY2FycnkgfHwgaGlnaCkgeworICAgICAgICBBU1NFUlQoYWNj
dW11bGF0b3JJbmRleCA8IGFjY3VtdWxhdG9yLT5sZW5ndGgoKSk7CisgICAgICAgIERpZ2l0IGFj
YyA9IGFjY3VtdWxhdG9yLT5kaWdpdChhY2N1bXVsYXRvckluZGV4KTsKKyAgICAgICAgRGlnaXQg
bmV3Q2FycnkgPSAwOworICAgICAgICBhY2MgPSBkaWdpdEFkZChhY2MsIGhpZ2gsIG5ld0NhcnJ5
KTsKKyAgICAgICAgaGlnaCA9IDA7CisgICAgICAgIGFjYyA9IGRpZ2l0QWRkKGFjYywgY2Fycnks
IG5ld0NhcnJ5KTsKKyAgICAgICAgYWNjdW11bGF0b3ItPnNldERpZ2l0KGFjY3VtdWxhdG9ySW5k
ZXgsIGFjYyk7CisgICAgICAgIGNhcnJ5ID0gbmV3Q2Fycnk7CisgICAgICAgIGFjY3VtdWxhdG9y
SW5kZXgrKzsKKyAgICB9Cit9CisKIGJvb2wgSlNCaWdJbnQ6OmVxdWFscyhKU0JpZ0ludCogeCwg
SlNCaWdJbnQqIHkpCiB7CiAgICAgaWYgKHgtPnNpZ24oKSAhPSB5LT5zaWduKCkpCkBAIC00NjYs
NyArNTI5LDcgQEAgYm9vbCBKU0JpZ0ludDo6ZXF1YWxzKEpTQmlnSW50KiB4LCBKU0JpZ0ludCog
eSkKICAgICBpZiAoeC0+bGVuZ3RoKCkgIT0geS0+bGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgeC0+bGVuZ3RoKCk7IGkrKykgeworICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB4LT5sZW5ndGgoKTsgaSsrKSB7CiAgICAgICAgIGlm
ICh4LT5kaWdpdChpKSAhPSB5LT5kaWdpdChpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CkBAIC00OTQsNyArNTU3LDcgQEAgdm9pZCBKU0JpZ0ludDo6YWJzb2x1dGVEaXZTbWFs
bChFeGVjU3RhdGUmIHN0YXRlLCBKU0JpZ0ludCogeCwgRGlnaXQgZGl2aXNvciwgSlMKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGludCBsZW5ndGggPSB4LT5sZW5ndGgoKTsKKyAgICB1
bnNpZ25lZCBsZW5ndGggPSB4LT5sZW5ndGgoKTsKICAgICBpZiAocXVvdGllbnQgIT0gbnVsbHB0
cikgewogICAgICAgICBpZiAoKnF1b3RpZW50ID09IG51bGxwdHIpCiAgICAgICAgICAgICAqcXVv
dGllbnQgPSBKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aCh2bSwgbGVuZ3RoKTsKQEAgLTUyMSwx
NCArNTg0LDE0IEBAIGNvbnN0ZXhwciB1aW50OF90IG1heEJpdHNQZXJDaGFyVGFibGVbXSA9IHsK
ICAgICAxNjIsIDE2MywgMTY1LCAxNjYsICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDMzLi4z
NgogfTsKIAotc3RhdGljIGNvbnN0IGludCBiaXRzUGVyQ2hhclRhYmxlU2hpZnQgPSA1Oworc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGJpdHNQZXJDaGFyVGFibGVTaGlmdCA9IDU7CiBzdGF0aWMgY29u
c3Qgc2l6ZV90IGJpdHNQZXJDaGFyVGFibGVNdWx0aXBsaWVyID0gMXUgPDwgYml0c1BlckNoYXJU
YWJsZVNoaWZ0OwogCiAvLyBDb21wdXRlIChhbiBvdmVyYXBwcm94aW1hdGlvbiBvZikgdGhlIGxl
bmd0aCBvZiB0aGUgcmVzdWx0aW5nIHN0cmluZzoKIC8vIERpdmlkZSBiaXQgbGVuZ3RoIG9mIHRo
ZSBCaWdJbnQgYnkgYml0cyByZXByZXNlbnRhYmxlIHBlciBjaGFyYWN0ZXIuCi11aW50NjRfdCBK
U0JpZ0ludDo6Y2FsY3VsYXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZChpbnQgbGVuZ3RoLCBp
bnQgcmFkaXgsIERpZ2l0IGxhc3REaWdpdCwgYm9vbCBzaWduKQordWludDY0X3QgSlNCaWdJbnQ6
OmNhbGN1bGF0ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQodW5zaWduZWQgbGVuZ3RoLCB1bnNp
Z25lZCByYWRpeCwgRGlnaXQgbGFzdERpZ2l0LCBib29sIHNpZ24pCiB7Ci0gICAgaW50IGxlYWRp
bmdaZXJvczsKKyAgICB1bnNpZ25lZCBsZWFkaW5nWmVyb3M7CiAgICAgaWYgKHNpemVvZihsYXN0
RGlnaXQpID09IDgpCiAgICAgICAgIGxlYWRpbmdaZXJvcyA9IGNsejY0KGxhc3REaWdpdCk7CiAg
ICAgZWxzZQpAQCAtNTU2LDcgKzYxOSw3IEBAIHVpbnQ2NF90IEpTQmlnSW50OjpjYWxjdWxhdGVN
YXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKGludCBsZW5ndGgsIGludCByYWRpeCwgRGlnCiAgICAg
cmV0dXJuIG1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQ7CiB9CiAKLVN0cmluZyBKU0JpZ0ludDo6
dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCBpbnQgcmFkaXgp
CitTdHJpbmcgSlNCaWdJbnQ6OnRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUmIHN0YXRlLCBKU0Jp
Z0ludCogeCwgdW5zaWduZWQgcmFkaXgpCiB7CiAgICAgLy8gRklYTUU6IFtKU0NdIFJldmlzaXQg
dXNhZ2Ugb2YgU3RyaW5nVmVjdG9yIGludG8gSlNCaWdJbnQ6OnRvU3RyaW5nCiAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDY3CkBAIC01NjUsNyArNjI4
LDcgQEAgU3RyaW5nIEpTQmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwg
SlNCaWdJbnQqIHgsIGludCByYWRpeCkKICAgICBBU1NFUlQocmFkaXggPj0gMiAmJiByYWRpeCA8
PSAzNik7CiAgICAgQVNTRVJUKCF4LT5pc1plcm8oKSk7CiAKLSAgICBpbnQgbGVuZ3RoID0geC0+
bGVuZ3RoKCk7CisgICAgdW5zaWduZWQgbGVuZ3RoID0geC0+bGVuZ3RoKCk7CiAgICAgYm9vbCBz
aWduID0geC0+c2lnbigpOwogCiAgICAgdWludDhfdCBtYXhCaXRzUGVyQ2hhciA9IG1heEJpdHNQ
ZXJDaGFyVGFibGVbcmFkaXhdOwpAQCAtNTgxLDEyICs2NDQsMTIgQEAgU3RyaW5nIEpTQmlnSW50
Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQqIHgsIGludCByYWRp
eCkKICAgICBpZiAobGVuZ3RoID09IDEpCiAgICAgICAgIGxhc3REaWdpdCA9IHgtPmRpZ2l0KDAp
OwogICAgIGVsc2UgewotICAgICAgICBpbnQgY2h1bmtDaGFycyA9IGRpZ2l0Qml0cyAqIGJpdHNQ
ZXJDaGFyVGFibGVNdWx0aXBsaWVyIC8gbWF4Qml0c1BlckNoYXI7CisgICAgICAgIHVuc2lnbmVk
IGNodW5rQ2hhcnMgPSBkaWdpdEJpdHMgKiBiaXRzUGVyQ2hhclRhYmxlTXVsdGlwbGllciAvIG1h
eEJpdHNQZXJDaGFyOwogICAgICAgICBEaWdpdCBjaHVua0Rpdmlzb3IgPSBkaWdpdFBvdyhyYWRp
eCwgY2h1bmtDaGFycyk7CiAKICAgICAgICAgLy8gQnkgY29uc3RydWN0aW9uIG9mIGNodW5rQ2hh
cnMsIHRoZXJlIGNhbid0IGhhdmUgYmVlbiBvdmVyZmxvdy4KICAgICAgICAgQVNTRVJUKGNodW5r
RGl2aXNvcik7Ci0gICAgICAgIGludCBub25aZXJvRGlnaXQgPSBsZW5ndGggLSAxOworICAgICAg
ICB1bnNpZ25lZCBub25aZXJvRGlnaXQgPSBsZW5ndGggLSAxOwogICAgICAgICBBU1NFUlQoeC0+
ZGlnaXQobm9uWmVyb0RpZ2l0KSk7CiAKICAgICAgICAgLy8ge3Jlc3R9IGhvbGRzIHRoZSBwYXJ0
IG9mIHRoZSBCaWdJbnQgdGhhdCB3ZSBoYXZlbid0IGxvb2tlZCBhdCB5ZXQuCkBAIC02MDIsNyAr
NjY1LDcgQEAgU3RyaW5nIEpTQmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0
ZSwgSlNCaWdJbnQqIHgsIGludCByYWRpeCkKICAgICAgICAgICAgIEFTU0VSVChyZXN0KTsKIAog
ICAgICAgICAgICAgZGl2aWRlbmQgPSAmcmVzdDsKLSAgICAgICAgICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgY2h1bmtDaGFyczsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgY2h1bmtDaGFyczsgaSsrKSB7CiAgICAgICAgICAgICAgICAgcmVzdWx0U3RyaW5nLmFw
cGVuZChyYWRpeERpZ2l0c1tjaHVuayAlIHJhZGl4XSk7CiAgICAgICAgICAgICAgICAgY2h1bmsg
Lz0gcmFkaXg7CiAgICAgICAgICAgICB9CkBAIC02MjcsNyArNjkwLDcgQEAgU3RyaW5nIEpTQmln
SW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQqIHgsIGludCBy
YWRpeCkKICAgICBBU1NFUlQocmVzdWx0U3RyaW5nLnNpemUoKSA8PSBzdGF0aWNfY2FzdDxzaXpl
X3Q+KG1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQpKTsKIAogICAgIC8vIFJlbW92ZSBsZWFkaW5n
IHplcm9lcy4KLSAgICBpbnQgbmV3U2l6ZU5vTGVhZGluZ1plcm9lcyA9IHJlc3VsdFN0cmluZy5z
aXplKCk7CisgICAgdW5zaWduZWQgbmV3U2l6ZU5vTGVhZGluZ1plcm9lcyA9IHJlc3VsdFN0cmlu
Zy5zaXplKCk7CiAgICAgd2hpbGUgKG5ld1NpemVOb0xlYWRpbmdaZXJvZXMgID4gMSAmJiByZXN1
bHRTdHJpbmdbbmV3U2l6ZU5vTGVhZGluZ1plcm9lcyAtIDFdID09ICcwJykKICAgICAgICAgbmV3
U2l6ZU5vTGVhZGluZ1plcm9lcy0tOwogCkBAIC02NDYsMTQgKzcwOSwxNiBAQCBKU0JpZ0ludCog
SlNCaWdJbnQ6OnJpZ2h0VHJpbShWTSYgdm0pCiAgICAgaWYgKGlzWmVybygpKQogICAgICAgICBy
ZXR1cm4gdGhpczsKIAorICAgIEFTU0VSVChtX2xlbmd0aCk7CisKICAgICBpbnQgbm9uWmVyb0lu
ZGV4ID0gbV9sZW5ndGggLSAxOwogICAgIHdoaWxlIChub25aZXJvSW5kZXggPj0gMCAmJiAhZGln
aXQobm9uWmVyb0luZGV4KSkKICAgICAgICAgbm9uWmVyb0luZGV4LS07CiAKLSAgICBpZiAobm9u
WmVyb0luZGV4ID09IG1fbGVuZ3RoIC0gMSkKKyAgICBpZiAobm9uWmVyb0luZGV4ID09IHN0YXRp
Y19jYXN0PGludD4obV9sZW5ndGggLSAxKSkKICAgICAgICAgcmV0dXJuIHRoaXM7CiAKLSAgICBp
bnQgbmV3TGVuZ3RoID0gbm9uWmVyb0luZGV4ICsgMTsKKyAgICB1bnNpZ25lZCBuZXdMZW5ndGgg
PSBub25aZXJvSW5kZXggKyAxOwogICAgIEpTQmlnSW50KiB0cmltbWVkQmlnSW50ID0gY3JlYXRl
V2l0aExlbmd0aCh2bSwgbmV3TGVuZ3RoKTsKICAgICBSRUxFQVNFX0FTU0VSVCh0cmltbWVkQmln
SW50KTsKICAgICBzdGQ6OmNvcHkoZGF0YVN0b3JhZ2UoKSwgZGF0YVN0b3JhZ2UoKSArIG5ld0xl
bmd0aCwgdHJpbW1lZEJpZ0ludC0+ZGF0YVN0b3JhZ2UoKSk7IApAQCAtNjYzLDE0ICs3MjgsMTQg
QEAgSlNCaWdJbnQqIEpTQmlnSW50OjpyaWdodFRyaW0oVk0mIHZtKQogICAgIHJldHVybiB0cmlt
bWVkQmlnSW50OwogfQogCi1KU0JpZ0ludCogSlNCaWdJbnQ6OmFsbG9jYXRlRm9yKEV4ZWNTdGF0
ZSogc3RhdGUsIFZNJiB2bSwgaW50IHJhZGl4LCBpbnQgY2hhcmNvdW50KQorSlNCaWdJbnQqIEpT
QmlnSW50OjphbGxvY2F0ZUZvcihFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0sIHVuc2lnbmVkIHJh
ZGl4LCB1bnNpZ25lZCBjaGFyY291bnQpCiB7CiAgICAgQVNTRVJUKDIgPD0gcmFkaXggJiYgcmFk
aXggPD0gMzYpOwogICAgIEFTU0VSVChjaGFyY291bnQgPj0gMCk7CiAKICAgICBzaXplX3QgYml0
c1BlckNoYXIgPSBtYXhCaXRzUGVyQ2hhclRhYmxlW3JhZGl4XTsKICAgICBzaXplX3QgY2hhcnMg
PSBjaGFyY291bnQ7Ci0gICAgY29uc3QgaW50IHJvdW5kdXAgPSBiaXRzUGVyQ2hhclRhYmxlTXVs
dGlwbGllciAtIDE7CisgICAgY29uc3QgdW5zaWduZWQgcm91bmR1cCA9IGJpdHNQZXJDaGFyVGFi
bGVNdWx0aXBsaWVyIC0gMTsKICAgICBpZiAoY2hhcnMgPD0gKHN0ZDo6bnVtZXJpY19saW1pdHM8
c2l6ZV90Pjo6bWF4KCkgLSByb3VuZHVwKSAvIGJpdHNQZXJDaGFyKSB7CiAgICAgICAgIHNpemVf
dCBiaXRzTWluID0gYml0c1BlckNoYXIgKiBjaGFyczsKIApAQCAtNjc4LDcgKzc0Myw3IEBAIEpT
QmlnSW50KiBKU0JpZ0ludDo6YWxsb2NhdGVGb3IoRXhlY1N0YXRlKiBzdGF0ZSwgVk0mIHZtLCBp
bnQgcmFkaXgsIGludCBjaGFyY291CiAgICAgICAgIGJpdHNNaW4gPSAoYml0c01pbiArIHJvdW5k
dXApID4+IGJpdHNQZXJDaGFyVGFibGVTaGlmdDsKICAgICAgICAgaWYgKGJpdHNNaW4gPD0gc3Rh
dGljX2Nhc3Q8c2l6ZV90PihtYXhJbnQpKSB7CiAgICAgICAgICAgICAvLyBEaXZpZGUgYnkga0Rp
Z2l0c0JpdHMsIHJvdW5kaW5nIHVwLgotICAgICAgICAgICAgaW50IGxlbmd0aCA9IChzdGF0aWNf
Y2FzdDxpbnQ+KGJpdHNNaW4pICsgZGlnaXRCaXRzIC0gMSkgLyBkaWdpdEJpdHM7CisgICAgICAg
ICAgICB1bnNpZ25lZCBsZW5ndGggPSAoYml0c01pbiArIGRpZ2l0Qml0cyAtIDEpIC8gZGlnaXRC
aXRzOwogICAgICAgICAgICAgaWYgKGxlbmd0aCA8PSBtYXhMZW5ndGgpIHsKICAgICAgICAgICAg
ICAgICBKU0JpZ0ludCogcmVzdWx0ID0gSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGgodm0sIGxl
bmd0aCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTcxOSwxMSArNzg0LDEx
IEBAIHNpemVfdCBKU0JpZ0ludDo6b2Zmc2V0T2ZEYXRhKCkKIH0KIAogdGVtcGxhdGUgPHR5cGVu
YW1lIENoYXJUeXBlPgotSlNCaWdJbnQqIEpTQmlnSW50OjpwYXJzZUludChFeGVjU3RhdGUqIHN0
YXRlLCBDaGFyVHlwZSogIGRhdGEsIGludCBsZW5ndGgpCitKU0JpZ0ludCogSlNCaWdJbnQ6OnBh
cnNlSW50KEV4ZWNTdGF0ZSogc3RhdGUsIENoYXJUeXBlKiAgZGF0YSwgdW5zaWduZWQgbGVuZ3Ro
KQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwogCi0gICAgaW50IHAgPSAwOworICAgIHVu
c2lnbmVkIHAgPSAwOwogICAgIHdoaWxlIChwIDwgbGVuZ3RoICYmIGlzU3RyV2hpdGVTcGFjZShk
YXRhW3BdKSkKICAgICAgICAgKytwOwogCkBAIC03NTgsMTAgKzgyMywxMCBAQCBKU0JpZ0ludCog
SlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0ZSogc3RhdGUsIENoYXJUeXBlKiAgZGF0YSwgaW50
IGxlbmd0aCkKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotSlNCaWdJbnQqIEpT
QmlnSW50OjpwYXJzZUludChFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0sIENoYXJUeXBlKiBkYXRh
LCBpbnQgbGVuZ3RoLCBpbnQgc3RhcnRJbmRleCwgaW50IHJhZGl4LCBib29sIGFsbG93RW1wdHlT
dHJpbmcpCitKU0JpZ0ludCogSlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0ZSogc3RhdGUsIFZN
JiB2bSwgQ2hhclR5cGUqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQgc3RhcnRJbmRl
eCwgdW5zaWduZWQgcmFkaXgsIGJvb2wgYWxsb3dFbXB0eVN0cmluZykKIHsKICAgICBBU1NFUlQo
bGVuZ3RoID49IDApOwotICAgIGludCBwID0gc3RhcnRJbmRleDsKKyAgICB1bnNpZ25lZCBwID0g
c3RhcnRJbmRleDsKIAogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
IApAQCAtNzc3LDcgKzg0Miw3IEBAIEpTQmlnSW50KiBKU0JpZ0ludDo6cGFyc2VJbnQoRXhlY1N0
YXRlKiBzdGF0ZSwgVk0mIHZtLCBDaGFyVHlwZSogZGF0YSwgaW50IGxlbmd0CiAKICAgICBpbnQg
ZW5kSW5kZXggPSBsZW5ndGggLSAxOwogICAgIC8vIFJlbW92aW5nIHRyYWlsaW5nIHNwYWNlcwot
ICAgIHdoaWxlIChlbmRJbmRleCA+PSBwICYmIGlzU3RyV2hpdGVTcGFjZShkYXRhW2VuZEluZGV4
XSkpCisgICAgd2hpbGUgKGVuZEluZGV4ID49IHN0YXRpY19jYXN0PGludD4ocCkgJiYgaXNTdHJX
aGl0ZVNwYWNlKGRhdGFbZW5kSW5kZXhdKSkKICAgICAgICAgLS1lbmRJbmRleDsKIAogICAgIGxl
bmd0aCA9IGVuZEluZGV4ICsgMTsKQEAgLTc4NSwxNiArODUwLDE2IEBAIEpTQmlnSW50KiBKU0Jp
Z0ludDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwgVk0mIHZtLCBDaGFyVHlwZSogZGF0YSwg
aW50IGxlbmd0CiAgICAgaWYgKHAgPT0gbGVuZ3RoKQogICAgICAgICByZXR1cm4gY3JlYXRlWmVy
byh2bSk7CiAKLSAgICBpbnQgbGltaXQwID0gJzAnICsgKHJhZGl4IDwgMTAgPyByYWRpeCA6IDEw
KTsKLSAgICBpbnQgbGltaXRhID0gJ2EnICsgKHJhZGl4IC0gMTApOwotICAgIGludCBsaW1pdEEg
PSAnQScgKyAocmFkaXggLSAxMCk7CisgICAgdW5zaWduZWQgbGltaXQwID0gJzAnICsgKHJhZGl4
IDwgMTAgPyByYWRpeCA6IDEwKTsKKyAgICB1bnNpZ25lZCBsaW1pdGEgPSAnYScgKyAocmFkaXgg
LSAxMCk7CisgICAgdW5zaWduZWQgbGltaXRBID0gJ0EnICsgKHJhZGl4IC0gMTApOwogCiAgICAg
SlNCaWdJbnQqIHJlc3VsdCA9IGFsbG9jYXRlRm9yKHN0YXRlLCB2bSwgcmFkaXgsIGxlbmd0aCAt
IHApOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogCiAgICAgcmVz
dWx0LT5pbml0aWFsaXplKEluaXRpYWxpemF0aW9uVHlwZTo6V2l0aFplcm8pOwogCi0gICAgZm9y
IChpbnQgaSA9IHA7IGkgPCBsZW5ndGg7IGkrKywgcCsrKSB7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gcDsgaSA8IGxlbmd0aDsgaSsrLCBwKyspIHsKICAgICAgICAgdWludDMyX3QgZGlnaXQ7CiAg
ICAgICAgIGlmIChkYXRhW2ldID49ICcwJyAmJiBkYXRhW2ldIDwgbGltaXQwKQogICAgICAgICAg
ICAgZGlnaXQgPSBkYXRhW2ldIC0gJzAnOwpAQCAtODIyLDEzICs4ODcsMTMgQEAgSlNCaWdJbnQ6
OkRpZ2l0KiBKU0JpZ0ludDo6ZGF0YVN0b3JhZ2UoKQogICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PERpZ2l0Kj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odGhpcykgKyBvZmZzZXRPZkRhdGEo
KSk7CiB9CiAKLUpTQmlnSW50OjpEaWdpdCBKU0JpZ0ludDo6ZGlnaXQoaW50IG4pCitKU0JpZ0lu
dDo6RGlnaXQgSlNCaWdJbnQ6OmRpZ2l0KHVuc2lnbmVkIG4pCiB7CiAgICAgQVNTRVJUKG4gPj0g
MCAmJiBuIDwgbGVuZ3RoKCkpOwogICAgIHJldHVybiBkYXRhU3RvcmFnZSgpW25dOwogfQogCi12
b2lkIEpTQmlnSW50OjpzZXREaWdpdChpbnQgbiwgRGlnaXQgdmFsdWUpCit2b2lkIEpTQmlnSW50
OjpzZXREaWdpdCh1bnNpZ25lZCBuLCBEaWdpdCB2YWx1ZSkKIHsKICAgICBBU1NFUlQobiA+PSAw
ICYmIG4gPCBsZW5ndGgoKSk7CiAgICAgZGF0YVN0b3JhZ2UoKVtuXSA9IHZhbHVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKaW5kZXggMjk4YzM0OGNkMmI0ZTVhYjVj
OTJjN2JiNzk5YTMwZjNlYmZhNjIzMS4uZWIxMmMwMDQ2NmUzNTZmZmRhZGZhMzY2NDE0YzA3Y2Qw
M2JjNDZmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJ
bnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCkBAIC00
MSw3ICs0MSw3IEBAIGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAKIHB1
YmxpYzoKIAotICAgIEpTQmlnSW50KFZNJiwgU3RydWN0dXJlKiwgaW50IGxlbmd0aCk7CisgICAg
SlNCaWdJbnQoVk0mLCBTdHJ1Y3R1cmUqLCB1bnNpZ25lZCBsZW5ndGgpOwogCiAgICAgZW51bSBj
bGFzcyBJbml0aWFsaXphdGlvblR5cGUgeyBOb25lLCBXaXRoWmVybyB9OwogICAgIHZvaWQgaW5p
dGlhbGl6ZShJbml0aWFsaXphdGlvblR5cGUpOwpAQCAtNDksMTIgKzQ5LDExIEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAK
ICAgICBzdGF0aWMgc2l6ZV90IGVzdGltYXRlZFNpemUoSlNDZWxsKik7Ci0gICAgc3RhdGljIHNp
emVfdCBhbGxvY2F0aW9uU2l6ZShpbnQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgc2l6ZV90IGFsbG9j
YXRpb25TaXplKHVuc2lnbmVkIGxlbmd0aCk7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBlKTsKLQog
ICAgIHN0YXRpYyBKU0JpZ0ludCogY3JlYXRlWmVybyhWTSYpOwotICAgIHN0YXRpYyBKU0JpZ0lu
dCogY3JlYXRlV2l0aExlbmd0aChWTSYsIGludCBsZW5ndGgpOworICAgIHN0YXRpYyBKU0JpZ0lu
dCogY3JlYXRlV2l0aExlbmd0aChWTSYsIHVuc2lnbmVkIGxlbmd0aCk7CiAKICAgICBzdGF0aWMg
SlNCaWdJbnQqIGNyZWF0ZUZyb20oVk0mLCBpbnQzMl90IHZhbHVlKTsKICAgICBzdGF0aWMgSlNC
aWdJbnQqIGNyZWF0ZUZyb20oVk0mLCB1aW50MzJfdCB2YWx1ZSk7CkBAIC03MCwxNCArNjksMTQg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0U2lnbihib29sIHNpZ24pIHsgbV9zaWduID0gc2lnbjsg
fQogICAgIGJvb2wgc2lnbigpIGNvbnN0IHsgcmV0dXJuIG1fc2lnbjsgfQogCi0gICAgdm9pZCBz
ZXRMZW5ndGgoaW50IGxlbmd0aCkgeyBtX2xlbmd0aCA9IGxlbmd0aDsgfQotICAgIGludCBsZW5n
dGgoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQorICAgIHZvaWQgc2V0TGVuZ3RoKHVuc2ln
bmVkIGxlbmd0aCkgeyBtX2xlbmd0aCA9IGxlbmd0aDsgfQorICAgIHVuc2lnbmVkIGxlbmd0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CiAKICAgICBzdGF0aWMgSlNCaWdJbnQqIHBhcnNl
SW50KEV4ZWNTdGF0ZSosIFZNJiwgU3RyaW5nVmlldywgdWludDhfdCByYWRpeCk7CiAgICAgc3Rh
dGljIEpTQmlnSW50KiBwYXJzZUludChFeGVjU3RhdGUqLCBTdHJpbmdWaWV3KTsKIAogICAgIHN0
ZDo6b3B0aW9uYWw8dWludDhfdD4gc2luZ2xlRGlnaXRWYWx1ZUZvclN0cmluZygpOwotICAgIFN0
cmluZyB0b1N0cmluZyhFeGVjU3RhdGUmLCBpbnQgcmFkaXgpOworICAgIFN0cmluZyB0b1N0cmlu
ZyhFeGVjU3RhdGUmLCB1bnNpZ25lZCByYWRpeCk7CiAgICAgCiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgc3RhdGljIGJvb2wgZXF1YWxzKEpTQmlnSW50KiwgSlNCaWdJbnQqKTsKIApAQCAtODUsMTIg
Kzg0LDE0IEBAIHB1YmxpYzoKICAgICBkb3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7
CiAKICAgICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKSBj
b25zdDsKKworICAgIHN0YXRpYyBKU0JpZ0ludCogbXVsdGlwbHkoRXhlY1N0YXRlKiwgSlNCaWdJ
bnQqIHgsIEpTQmlnSW50KiB5KTsKICAgICAKIHByaXZhdGU6CiAgICAgdXNpbmcgRGlnaXQgPSB1
aW50cHRyX3Q7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQgYml0c1BlckJ5dGUgPSA4
OwotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgaW50IGRpZ2l0Qml0cyA9IHNpemVvZihEaWdp
dCkgKiBiaXRzUGVyQnl0ZTsKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGludCBoYWxmRGln
aXRCaXRzID0gZGlnaXRCaXRzIC8gMjsKKyAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IHVuc2ln
bmVkIGJpdHNQZXJCeXRlID0gODsKKyAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IHVuc2lnbmVk
IGRpZ2l0Qml0cyA9IHNpemVvZihEaWdpdCkgKiBiaXRzUGVyQnl0ZTsKKyAgICBzdGF0aWMgY29u
c3RleHByIGNvbnN0IHVuc2lnbmVkIGhhbGZEaWdpdEJpdHMgPSBkaWdpdEJpdHMgLyAyOwogICAg
IHN0YXRpYyBjb25zdGV4cHIgY29uc3QgRGlnaXQgaGFsZkRpZ2l0TWFzayA9ICgxdWxsIDw8IGhh
bGZEaWdpdEJpdHMpIC0gMTsKICAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGludCBtYXhJbnQg
PSAweDdGRkZGRkZGOwogICAgIApAQCAtOTgsMTIgKzk5LDEzIEBAIHByaXZhdGU6CiAgICAgLy8g
bWF4SW50IC8gZGlnaXRCaXRzLiBIb3dldmVyLCB3ZSB1c2UgYSBsb3dlciBsaW1pdCBmb3Igbm93
LCBiZWNhdXNlCiAgICAgLy8gcmFpc2luZyBpdCBsYXRlciBpcyBlYXNpZXIgdGhhbiBsb3dlcmlu
ZyBpdC4KICAgICAvLyBTdXBwb3J0IHVwIHRvIDEgbWlsbGlvbiBiaXRzLgotICAgIHN0YXRpYyBj
b25zdCBpbnQgbWF4TGVuZ3RoID0gMTAyNCAqIDEwMjQgLyAoc2l6ZW9mKHZvaWQqKSAqIGJpdHNQ
ZXJCeXRlKTsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4TGVuZ3RoID0gMTAyNCAqIDEw
MjQgLyAoc2l6ZW9mKHZvaWQqKSAqIGJpdHNQZXJCeXRlKTsKICAgICAKLSAgICBzdGF0aWMgdWlu
dDY0X3QgY2FsY3VsYXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZChpbnQgbGVuZ3RoLCBpbnQg
cmFkaXgsIERpZ2l0IGxhc3REaWdpdCwgYm9vbCBzaWduKTsKKyAgICBzdGF0aWMgdWludDY0X3Qg
Y2FsY3VsYXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZCh1bnNpZ25lZCBsZW5ndGgsIHVuc2ln
bmVkIHJhZGl4LCBEaWdpdCBsYXN0RGlnaXQsIGJvb2wgc2lnbik7CiAgICAgCiAgICAgc3RhdGlj
IHZvaWQgYWJzb2x1dGVEaXZTbWFsbChFeGVjU3RhdGUmLCBKU0JpZ0ludCogeCwgRGlnaXQgZGl2
aXNvciwgSlNCaWdJbnQqKiBxdW90aWVudCwgRGlnaXQmIHJlbWFpbmRlcik7Ci0gICAgc3RhdGlj
IHZvaWQgaW50ZXJuYWxNdWx0aXBseUFkZChKU0JpZ0ludCogc291cmNlLCBEaWdpdCBmYWN0b3Is
IERpZ2l0IHN1bW1hbmQsIGludCwgSlNCaWdJbnQqIHJlc3VsdCk7CisgICAgc3RhdGljIHZvaWQg
aW50ZXJuYWxNdWx0aXBseUFkZChKU0JpZ0ludCogc291cmNlLCBEaWdpdCBmYWN0b3IsIERpZ2l0
IHN1bW1hbmQsIHVuc2lnbmVkLCBKU0JpZ0ludCogcmVzdWx0KTsKKyAgICBzdGF0aWMgdm9pZCBt
dWx0aXBseUFjY3VtdWxhdGUoSlNCaWdJbnQqIG11bHRpcGxpY2FuZCwgRGlnaXQgbXVsdGlwbGll
ciwgSlNCaWdJbnQqIGFjY3VtdWxhdG9yLCB1bnNpZ25lZCBhY2N1bXVsYXRvckluZGV4KTsKIAog
ICAgIC8vIERpZ2l0IGFyaXRobWV0aWMgaGVscGVycy4KICAgICBzdGF0aWMgRGlnaXQgZGlnaXRB
ZGQoRGlnaXQgYSwgRGlnaXQgYiwgRGlnaXQmIGNhcnJ5KTsKQEAgLTExMiwxNyArMTE0LDE3IEBA
IHByaXZhdGU6CiAgICAgc3RhdGljIERpZ2l0IGRpZ2l0RGl2KERpZ2l0IGhpZ2gsIERpZ2l0IGxv
dywgRGlnaXQgZGl2aXNvciwgRGlnaXQmIHJlbWFpbmRlcik7CiAgICAgc3RhdGljIERpZ2l0IGRp
Z2l0UG93KERpZ2l0IGJhc2UsIERpZ2l0IGV4cG9uZW50KTsKIAotICAgIHN0YXRpYyBTdHJpbmcg
dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYsIEpTQmlnSW50KiwgaW50IHJhZGl4KTsKKyAgICBz
dGF0aWMgU3RyaW5nIHRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUmLCBKU0JpZ0ludCosIHVuc2ln
bmVkIHJhZGl4KTsKIAogICAgIGJvb2wgaXNaZXJvKCk7CiAKICAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgQ2hhclR5cGU+Ci0gICAgc3RhdGljIEpTQmlnSW50KiBwYXJzZUludChFeGVjU3RhdGUqLCBD
aGFyVHlwZSogIGRhdGEsIGludCBsZW5ndGgpOworICAgIHN0YXRpYyBKU0JpZ0ludCogcGFyc2VJ
bnQoRXhlY1N0YXRlKiwgQ2hhclR5cGUqICBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpOwogCiAgICAg
dGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgotICAgIHN0YXRpYyBKU0JpZ0ludCogcGFyc2VJ
bnQoRXhlY1N0YXRlKiwgVk0mLCBDaGFyVHlwZSogZGF0YSwgaW50IGxlbmd0aCwgaW50IHN0YXJ0
SW5kZXgsIGludCByYWRpeCwgYm9vbCBhbGxvd0VtcHR5U3RyaW5nID0gdHJ1ZSk7CisgICAgc3Rh
dGljIEpTQmlnSW50KiBwYXJzZUludChFeGVjU3RhdGUqLCBWTSYsIENoYXJUeXBlKiBkYXRhLCB1
bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkIHN0YXJ0SW5kZXgsIHVuc2lnbmVkIHJhZGl4LCBib29s
IGFsbG93RW1wdHlTdHJpbmcgPSB0cnVlKTsKIAotICAgIHN0YXRpYyBKU0JpZ0ludCogYWxsb2Nh
dGVGb3IoRXhlY1N0YXRlKiwgVk0mLCBpbnQgcmFkaXgsIGludCBjaGFyY291bnQpOworICAgIHN0
YXRpYyBKU0JpZ0ludCogYWxsb2NhdGVGb3IoRXhlY1N0YXRlKiwgVk0mLCB1bnNpZ25lZCByYWRp
eCwgdW5zaWduZWQgY2hhcmNvdW50KTsKIAogICAgIEpTQmlnSW50KiByaWdodFRyaW0oVk0mKTsK
IApAQCAtMTMxLDEwICsxMzMsMTAgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgc2l6ZV90IG9mZnNl
dE9mRGF0YSgpOwogICAgIERpZ2l0KiBkYXRhU3RvcmFnZSgpOwogCi0gICAgRGlnaXQgZGlnaXQo
aW50KTsKLSAgICB2b2lkIHNldERpZ2l0KGludCwgRGlnaXQpOworICAgIERpZ2l0IGRpZ2l0KHVu
c2lnbmVkKTsKKyAgICB2b2lkIHNldERpZ2l0KHVuc2lnbmVkLCBEaWdpdCk7CiAgICAgICAgIAot
ICAgIGludCBtX2xlbmd0aDsKKyAgICB1bnNpZ25lZCBtX2xlbmd0aDsKICAgICBib29sIG1fc2ln
bjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJh
dGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaAppbmRl
eCAxMzQ5YWVjMTZhN2E4M2E4YThhNTkwYWNlZmQ1NGIxNzljOTdiZjFmLi5lMjY1ODE1MTM4OWYy
MzA2Y2EwMWNkZThkYjk3OGQ3ZmU5ZDY0MzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3BlcmF0aW9ucy5oCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJDYWxsRnJh
bWUuaCIKICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCisjaW5jbHVkZSAiSlNCaWdJbnQu
aCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtMjU2LDYg
KzI1NywzMSBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUganNBZGQoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIEpTVmFsdWUgdjEsIEpTVmFsdWUgdjIpCiAgICAgcmV0dXJuIGpzQWRkU2xvd0Nhc2UoY2Fs
bEZyYW1lLCB2MSwgdjIpOwogfQogCitBTFdBWVNfSU5MSU5FIEpTVmFsdWUganNNdWwoRXhlY1N0
YXRlKiBzdGF0ZSwgSlNWYWx1ZSB2MSwgSlNWYWx1ZSB2MikKK3sKKyAgICBWTSYgdm0gPSBzdGF0
ZS0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAg
ICBKU1ZhbHVlIGxlZnROdW1iZXIgPSB2MS50b1ByaW1pdGl2ZShzdGF0ZSwgUHJlZmVyTnVtYmVy
KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIEpTVmFsdWUgcmln
aHROdW1iZXIgPSB2Mi50b1ByaW1pdGl2ZShzdGF0ZSwgUHJlZmVyTnVtYmVyKTsKKyAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgaWYgKGxlZnROdW1iZXIuaXNCaWdJ
bnQoKSB8fCByaWdodE51bWJlci5pc0JpZ0ludCgpKSB7CisgICAgICAgIGlmIChsZWZ0TnVtYmVy
LmlzQmlnSW50KCkgJiYgcmlnaHROdW1iZXIuaXNCaWdJbnQoKSkKKyAgICAgICAgICAgIHJldHVy
biBKU0JpZ0ludDo6bXVsdGlwbHkoc3RhdGUsIGFzQmlnSW50KGxlZnROdW1iZXIpLCBhc0JpZ0lu
dChyaWdodE51bWJlcikpOworCisgICAgICAgIHRocm93VHlwZUVycm9yKHN0YXRlLCBzY29wZSwg
QVNDSUlMaXRlcmFsKCJJbnZhbGlkIG1peCBvZiBCaWdJbnQgYW5kIG90aGVyIHR5cGUgaW4gbXVs
dGlwbGljYXRpb24uIikpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGRvdWJs
ZSBsZWZ0VmFsdWUgPSAgbGVmdE51bWJlci50b051bWJlcihzdGF0ZSk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBkb3VibGUgcmlnaHRWYWx1ZSA9ICByaWdodE51
bWJlci50b051bWJlcihzdGF0ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKKyAgICByZXR1cm4ganNOdW1iZXIobGVmdFZhbHVlICogcmlnaHRWYWx1ZSk7Cit9CisKIGlu
bGluZSBib29sIHNjcmliYmxlRnJlZUNlbGxzKCkKIHsKICAgICByZXR1cm4gIUFTU0VSVF9ESVNB
QkxFRCB8fCBPcHRpb25zOjpzY3JpYmJsZUZyZWVDZWxscygpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAxMzkyYTBkYTk4ZjNhOWExNDI4
Yzk3YzNkNjI2ODc5ZTA3N2Q1Mjc0Li5hMTI2ODAwMDQwOTJkMzQ0ZmVlNGFkMmYxNWRkM2EzZmYz
ZGVkNWQ3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTA0LTI4ICBDYWlvIExpbWEgIDx0aWNhaW9saW1h
QGdtYWlsLmNvbT4KKworICAgICAgICBbRVNOZXh0XVtCaWdJbnRdIEltcGxlbWVudCBzdXBwb3J0
IGZvciAiKiIgb3BlcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODM3MjEKKworICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJhcmF0aS4KKwor
ICAgICAgICAqIGJpZ0ludFRlc3RzLnlhbWw6CisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVs
LWppdC5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2
ZS1wcmVjZWRlbmNlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWwtdG8t
cHJpbWl0aXZlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWwtdHlwZS1l
cnJvci5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVsLXdyYXBwZWQtdmFs
dWUuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11bHRpcGxpY2F0aW9uLmpz
OiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWx0aXBseS1tZW1vcnktc3RyZXNz
LmpzOiBBZGRlZC4KKwogMjAxOC0wNC0yOCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzMTEzMS4KZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvYmlnSW50VGVzdHMueWFtbCBiL0pTVGVzdHMvYmlnSW50VGVzdHMu
eWFtbAppbmRleCA3YWUyMmNiMWJiMmFmZjYyY2M0ZGRmNDk2Mjk5Zjk2YTA3NDRmN2FlLi5lOTQ3
ZGMyOTQ1YWRmOTBkMDc3ZmM4MzdkNTU4M2ExZDA4ZTNiYzkxIDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L2JpZ0ludFRlc3RzLnlhbWwKKysrIGIvSlNUZXN0cy9iaWdJbnRUZXN0cy55YW1sCkBAIC05Nywz
ICs5NywyNCBAQAogLSBwYXRoOiBzdHJlc3MvYmlnLWludC10by1zdHJpbmcuanMKICAgY21kOiBy
dW5CaWdJbnRFbmFibGVkCiAKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsLWppdC5qcworICBj
bWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKworLSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWwtdG8tcHJp
bWl0aXZlLXByZWNlZGVuY2UuanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDog
c3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJs
ZWQKKworLSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWwtdHlwZS1lcnJvci5qcworICBjbWQ6IHJ1
bkJpZ0ludEVuYWJsZWQKKworLSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWwtd3JhcHBlZC12YWx1
ZS5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKworLSBwYXRoOiBzdHJlc3MvYmlnLWludC1t
dWx0aXBsaWNhdGlvbi5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKworLSBwYXRoOiBzdHJl
c3MvYmlnLWludC1tdWx0aXBseS1tZW1vcnktc3RyZXNzLmpzCisgIGNtZDogcnVuQmlnSW50RW5h
YmxlZAorCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC1qaXQuanMgYi9K
U1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGNiZWRlMzE4NzVk
MjFmYjM4MjJlN2YyOGZmMDViY2FjYTFjOWY3YQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMv
c3RyZXNzL2JpZy1pbnQtbXVsLWppdC5qcwpAQCAtMCwwICsxLDE5IEBACisvL0AgcnVuQmlnSW50
RW5hYmxlZAorCitsZXQgYXNzZXJ0ID0geworICAgIHNhbWVWYWx1ZTogZnVuY3Rpb24oaSwgZSwg
bSkgeworICAgICAgICBpZiAoaSAhPT0gZSkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvciht
KTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGJpZ0ludE11bCh4LCB5KSB7CisgICAgcmV0dXJuIHgg
KiB5OworfQorbm9JbmxpbmUoYmlnSW50TXVsKTsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAw
MDsgaSsrKSB7CisgICAgbGV0IHIgPSBiaWdJbnRNdWwoM24sIDEwbik7CisgICAgYXNzZXJ0LnNh
bWVWYWx1ZShyLCAzMG4sIDNuICsgIiAqICIgKyAxMG4gKyAiID0gIiArIHIpOworfQorCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUtcHJlY2VkZW5j
ZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS1wcmVjZWRlbmNl
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjcxNDlhMTk2ODdlMTRhZWU3MDEzYjM2ODY0NDkyZTY4MmJkNWU3NWUK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRp
dmUtcHJlY2VkZW5jZS5qcwpAQCAtMCwwICsxLDM5IEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAor
Cithc3NlcnQgPSB7CisgICAgc2FtZVZhbHVlOiBmdW5jdGlvbiAoaW5wdXQsIGV4cGVjdGVkLCBt
ZXNzYWdlKSB7CisgICAgICAgIGlmIChpbnB1dCAhPT0gZXhwZWN0ZWQpCisgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7CisgICAgfQorfTsKKworZnVuY3Rpb24gdGVzdE11bCh4
LCB5LCB6LCBtZXNzYWdlKSB7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh4ICogeSwgeiwgbWVzc2Fn
ZSk7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh5ICogeCwgeiwgbWVzc2FnZSk7Cit9CisKK3Rlc3RN
dWwoT2JqZWN0KDJuKSwgMW4sIDJuLCAiVG9QcmltaXRpdmU6IHVuYm94IG9iamVjdCB3aXRoIGlu
dGVybmFsIHNsb3QiKTsKKworbGV0IG8gPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1
bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gMm47CisgICAgfSwKKyAgICB2YWx1ZU9mOiBmdW5j
dGlvbiAoKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiU2hvdWxkIG5ldmVyIGV4ZWN1dGUg
aXQiKTsKKyAgICB9LAorICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7CisgICAgICAgIHRocm93
IG5ldyBFcnJvcigiU2hvdWxkIG5ldmVyIGV4ZWN1dGUgaXQiKTsKKyAgICB9Cit9OwordGVzdE11
bChvLCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogQEB0b1ByaW1pdGl2ZSIpOworCitvID0geworICAg
IHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gMm47CisgICAgfSwKKyAgICB0
b1N0cmluZzogZnVuY3Rpb24gKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBu
ZXZlciBleGVjdXRlIGl0Iik7CisgICAgfQorfTsKK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9Qcmlt
aXRpdmU6IHZhbHVlT2YiKTsKKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1t
dWwtdG8tcHJpbWl0aXZlLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0
aXZlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY0MmUyZThlMjkxMTllMjdkMTM1NzdjYjU3YWMyZjk3MzUwZmU2
Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10by1wcmlt
aXRpdmUuanMKQEAgLTAsMCArMSwzNSBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworZnVuY3Rp
b24gYXNzZXJ0KGEpIHsKKyAgICBpZiAoIWEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFk
IGFzc2VydGlvbiIpOworfQorCithc3NlcnQuc2FtZVZhbHVlID0gZnVuY3Rpb24gKGlucHV0LCBl
eHBlY3RlZCwgbWVzc2FnZSkgeworICAgIGlmIChpbnB1dCAhPT0gZXhwZWN0ZWQpCisgICAgICAg
IHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTsKK30KKworZnVuY3Rpb24gdGVzdE11bCh4LCB5LCB6
KSB7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh4ICogeSwgeiwgeCArICIgKiAiICsgeSArICIgPSAi
ICsgeik7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh5ICogeCwgeiwgeSArICIgKiAiICsgeCArICIg
PSAiICsgeik7Cit9CisKK2xldCBvID0geworICAgIFtTeW1ib2wudG9QcmltaXRpdmVdOiBmdW5j
dGlvbiAoKSB7IHJldHVybiAzMDAwMDAwMDAwMDAwMDBuOyB9Cit9CisKK3Rlc3RNdWwoNTAwMDAw
MDAwMDAwNDM4biwgbywgMTUwMDAwMDAwMDAwMTMxNDAwMDAwMDAwMDAwMDAwbik7CisKK28udmFs
dWVPZiA9IGZ1bmN0aW9uICgpIHsKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBl
eGVjdXRlIGl0Iik7Cit9OworCit0ZXN0TXVsKDcwMDAwMDAwMDAwMDQzOG4sIG8sIDIxMDAwMDAw
MDAwMDEzMTQwMDAwMDAwMDAwMDAwMG4pOworCitvLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkgewor
ICAgIHRocm93IG5ldyBFcnJvcigiU2hvdWxkIG5ldmVyIGV4ZWN1dGUgaXQiKTsKK307CisKK3Rl
c3RNdWwoNzAwMDAwMDAwMDAwNDM4biwgbywgMjEwMDAwMDAwMDAwMTMxNDAwMDAwMDAwMDAwMDAw
bik7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXR5cGUtZXJyb3Iu
anMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10eXBlLWVycm9yLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI1MTc4NDU3ZmI2MjM3NTdmZDBlNzczNTc3ZGMzOTZmMmYzMGZlNjAKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10eXBlLWVycm9yLmpzCkBAIC0wLDAgKzEs
MTA2IEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCitmdW5jdGlvbiBhc3NlcnQoYSwgbWVzc2Fn
ZSkgeworICAgIGlmICghYSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOworfQor
CitmdW5jdGlvbiBhc3NlcnRUaHJvd1R5cGVFcnJvcihhLCBiLCBtZXNzYWdlKSB7CisgICAgdHJ5
IHsKKyAgICAgICAgbGV0IG4gPSBhICogYjsKKyAgICAgICAgYXNzZXJ0KGZhbHNlLCBtZXNzYWdl
ICsgIjogU2hvdWxkIHRocm93IFR5cGVFcnJvciwgYnV0IGV4ZWN1dGVkIHdpdGhvdXQgZXhjZXB0
aW9uIik7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBhc3NlcnQoZSBpbnN0YW5jZW9mIFR5
cGVFcnJvciwgbWVzc2FnZSArICI6IGV4cGVjdGVkIFR5cGVFcnJvciwgZ290OiAiICsgZSk7Cisg
ICAgfQorfQorCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sICJmb28iLCAiQmlnSW50ICogU3Ry
aW5nIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigiYmFyIiwgMTg3NTczODI5ODQ4MjFuLCAiU3Ry
aW5nICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIFN5bWJvbCgiZm9vIiks
ICJCaWdJbnQgKiBTeW1ib2wiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKFN5bWJvbCgiYmFyIiks
IDE4NzU3MzgyOTg0ODIxbiwgIlN5bWJvbCAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJy
b3IoMzBuLCAzMzIwLCAiQmlnSW50ICogSW50MzIiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMz
MjU2LCAxODc1NzM4Mjk4NDgyMW4sICJJbnQzMiAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBl
RXJyb3IoMzBuLCAwLjU0MywgIkJpZ0ludCAqIERvdWJsZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJy
b3IoMjMwLjE5MjkzLCAxODc1NzM4Mjk4NDgyMW4sICJEb3VibGUgKiBCaWdJbnQiKTsKK2Fzc2Vy
dFRocm93VHlwZUVycm9yKDMwbiwgTmFOLCAiQmlnSW50ICogTmFOIik7Cithc3NlcnRUaHJvd1R5
cGVFcnJvcihOYU4sIDE4NzU3MzgyOTg0ODIxbiwgIk5hTiAqIEJpZ0ludCIpOworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IoMzBuLCBOYU4sICJCaWdJbnQgKiBOYU4iKTsKK2Fzc2VydFRocm93VHlwZUVy
cm9yKE5hTiwgMTg3NTczODI5ODQ4MjFuLCAiTmFOICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5
cGVFcnJvcigzMG4sICtJbmZpbml0eSwgIkJpZ0ludCAqIE5hTiIpOworYXNzZXJ0VGhyb3dUeXBl
RXJyb3IoK0luZmluaXR5LCAxODc1NzM4Mjk4NDgyMW4sICJOYU4gKiBCaWdJbnQiKTsKK2Fzc2Vy
dFRocm93VHlwZUVycm9yKDMwbiwgLUluZmluaXR5LCAiQmlnSW50ICogLUluZmluaXR5Iik7Cith
c3NlcnRUaHJvd1R5cGVFcnJvcigtSW5maW5pdHksIDE4NzU3MzgyOTg0ODIxbiwgIi1JbmZpbml0
eSAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBudWxsLCAiQmlnSW50ICog
bnVsbCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobnVsbCwgMTg3NTczODI5ODQ4MjFuLCAibnVs
bCAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCB1bmRlZmluZWQsICJCaWdJ
bnQgKiB1bmRlZmluZWQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKHVuZGVmaW5lZCwgMTg3NTcz
ODI5ODQ4MjFuLCAidW5kZWZpbmVkICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigz
MG4sIHRydWUsICJCaWdJbnQgKiB0cnVlIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcih0cnVlLCAx
ODc1NzM4Mjk4NDgyMW4sICJ0cnVlICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigz
MG4sIGZhbHNlLCAiQmlnSW50ICogZmFsc2UiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKGZhbHNl
LCAxODc1NzM4Mjk4NDgyMW4sICJmYWxzZSAqIEJpZ0ludCIpOworCisvLyBFcnJvciB3aGVuIHJl
dHVybmluZyBmcm9tIG9iamVjdAorCitsZXQgbyA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbiAo
KSB7IHJldHVybiBTeW1ib2woIkZvbyIpOyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigz
MG4sIG8sICJCaWdJbnQgKiBPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgU3ltYm9sIik7Cithc3Nl
cnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QudmFsdWVPZiByZXR1
cm5pbmcgU3ltYm9sICogQmlnSW50Iik7CisKK28gPSB7CisgICAgdmFsdWVPZjogZnVuY3Rpb24g
KCkgeyByZXR1cm4gMzMyNTY7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywg
IkJpZ0ludCAqIE9iamVjdC52YWx1ZU9mIHJldHVybmluZyBJbnQzMiIpOworYXNzZXJ0VGhyb3dU
eXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LnZhbHVlT2YgcmV0dXJuaW5nIElu
dDMyICogQmlnSW50Iik7CisKK28gPSB7CisgICAgdmFsdWVPZjogZnVuY3Rpb24gKCkgeyByZXR1
cm4gMC40NTM7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAq
IE9iamVjdC52YWx1ZU9mIHJldHVybmluZyBEb3VibGUiKTsKK2Fzc2VydFRocm93VHlwZUVycm9y
KG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC52YWx1ZU9mIHJldHVybmluZyBEb3VibGUgKiBC
aWdJbnQiKTsKKworbyA9IHsKKyAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgeyByZXR1cm4gU3lt
Ym9sKCJGb28iKTsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50
ICogT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBTeW1ib2wiKTsKK2Fzc2VydFRocm93VHlwZUVy
cm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC50b1N0cmluZyByZXR1cm5pbmcgU3ltYm9s
ICogQmlnSW50Iik7CisKK28gPSB7CisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsgcmV0dXJu
IDMzMjU2OyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBP
YmplY3QudG9TdHJpbmcgcmV0dXJuaW5nIEludDMyIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihv
LCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QudG9TdHJpbmcgcmV0dXJuaW5nIEludDMyICogQmln
SW50Iik7CisKK28gPSB7CisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDAuNDUz
OyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3Qu
dG9TdHJpbmcgcmV0dXJuaW5nIERvdWJsZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3
NTczODI5ODQ4MjFuLCAiT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBEb3VibGUgKiBCaWdJbnQi
KTsKKworbyA9IHsKKyAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24gKCkgeyByZXR1
cm4gU3ltYm9sKCJGb28iKTsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAi
QmlnSW50ICogT2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5nIFN5bWJvbCIpOworYXNzZXJ0
VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LkBAdG9QcmltaXRpdmUg
cmV0dXJuaW5nIFN5bWJvbCAqIEJpZ0ludCIpOworCitvID0geworICAgIFtTeW1ib2wudG9Qcmlt
aXRpdmVdOiBmdW5jdGlvbiAoKSB7IHJldHVybiAzMzI1NjsgfQorfTsKKworYXNzZXJ0VGhyb3dU
eXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5n
IEludDMyIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmpl
Y3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcgSW50MzIgKiBCaWdJbnQiKTsKKworbyA9IHsKKyAg
ICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24gKCkgeyByZXR1cm4gMC40NTM7IH0KK307
CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC5AQHRvUHJp
bWl0aXZlIHJldHVybmluZyBEb3VibGUiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3
MzgyOTg0ODIxbiwgIk9iamVjdC5AQHRvUHJpbWl0aXZlIHJldHVybmluZyBEb3VibGUgKiBCaWdJ
bnQiKTsKKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtd3JhcHBlZC12
YWx1ZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXdyYXBwZWQtdmFsdWUuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjY3M2Q4YTYwMzAyZmFmNjZkZmE2Y2ZhMWViMTM3MGVjOGMyMmMzYQotLS0gL2Rl
di9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXdyYXBwZWQtdmFsdWUuanMK
QEAgLTAsMCArMSwzNyBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworYXNzZXJ0ID0geworICAg
IHNhbWVWYWx1ZTogZnVuY3Rpb24gKGlucHV0LCBleHBlY3RlZCwgbWVzc2FnZSkgeworICAgICAg
ICBpZiAoaW5wdXQgIT09IGV4cGVjdGVkKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1l
c3NhZ2UpOworICAgIH0KK307CisKK2Z1bmN0aW9uIHRlc3RNdWwoeCwgeSwgeiwgbWVzc2FnZSkg
eworICAgIGFzc2VydC5zYW1lVmFsdWUoeCAqIHksIHosIG1lc3NhZ2UpOworICAgIGFzc2VydC5z
YW1lVmFsdWUoeSAqIHgsIHosIG1lc3NhZ2UpOworfQorCit0ZXN0TXVsKE9iamVjdCgybiksIDFu
LCAybiwgIlRvUHJpbWl0aXZlOiB1bmJveCBvYmplY3Qgd2l0aCBpbnRlcm5hbCBzbG90Iik7CisK
K2xldCBvID0geworICAgIFtTeW1ib2wudG9QcmltaXRpdmVdOiBmdW5jdGlvbigpIHsKKyAgICAg
ICAgcmV0dXJuIDJuOworICAgIH0KK307Cit0ZXN0TXVsKG8sIDFuLCAybiwgIlRvUHJpbWl0aXZl
OiBAQHRvUHJpbWl0aXZlIik7CisKK28gPSB7CisgICAgdmFsdWVPZjogZnVuY3Rpb24oKSB7Cisg
ICAgICAgIHJldHVybiAybjsKKyAgICB9Cit9OwordGVzdE11bChvLCAxbiwgMm4sICJUb1ByaW1p
dGl2ZTogdmFsdWVPZiIpOworCitvID0geworICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsKKyAg
ICAgICAgcmV0dXJuIDJuOworICAgIH0KK30KK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9QcmltaXRp
dmU6IHRvU3RyaW5nIik7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVs
dGlwbGljYXRpb24uanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bHRpcGxpY2F0aW9uLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNlY2Q2MzZkN2Y4OWEyNGFjZmJiODFkNzJkNzU1YzIyOGZlNmZhZDkKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bHRpcGxpY2F0aW9uLmpz
CkBAIC0wLDAgKzEsODMgQEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKKy8vIENvcHlyaWdodCAo
QykgMjAxNyBSb2JpbiBUZW1wbGV0b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZp
bGUuCisKK2Fzc2VydCA9IHsKKyAgICBzYW1lVmFsdWU6IGZ1bmN0aW9uIChpbnB1dCwgZXhwZWN0
ZWQsIG1lc3NhZ2UpIHsKKyAgICBpZiAoaW5wdXQgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJv
dyBuZXcgRXJyb3IobWVzc2FnZSk7CisgICAgfQorfTsKKworZnVuY3Rpb24gdGVzdE11bCh4LCB5
LCB6KSB7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh4ICogeSwgeiwgeCArICIgKiAiICsgeSArICIg
PSAiICsgeik7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh5ICogeCwgeiwgeSArICIgKiAiICsgeCAr
ICIgPSAiICsgeik7Cit9CisKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHhGRURDQkE5
ODc2NTQzMjEwbiwgMHhGREJBQzA5N0M4REM1QUNDREVFQzZDRDdBNDRBNDEwMG4pOwordGVzdE11
bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweEZFRENCQTk4biwgMHhGREJBQzA5NzUzMEVDQTg2NTQx
RDU5ODBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHgxMjM0biwgMHgxMjFGNDlG
NDlGNDlGNDlGNEI0MG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweDNuLCAweDJG
Qzk2MkZDOTYyRkM5NjMwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4Mm4sIDB4
MUZEQjk3NTMwRUNBODY0MjBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHgxbiwg
MHhGRURDQkE5ODc2NTQzMjEwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4MG4s
IDB4MG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCBCaWdJbnQoIi0xIiksIEJpZ0lu
dCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBu
LCBCaWdJbnQoIi0yIiksIEJpZ0ludCgiLTM2NzI5NTE3MDg4OTg2MTI5NDQwIikpOwordGVzdE11
bCgweEZFRENCQTk4NzY1NDMyMTBuLCBCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTU1MDk0Mjc1NjMz
NDc5MTk0MTYwIikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCBCaWdJbnQoIi00NjYw
IiksIEJpZ0ludCgiLTg1NTc5Nzc0ODE3MzM3NjgxNTk1MjAwIikpOwordGVzdE11bCgweEZFRENC
QTk4NzY1NDMyMTBuLCBCaWdJbnQoIi00Mjc1ODc4NTUxIiksIEJpZ0ludCgiLTc4NTI1NDc3MTU0
NjkxODc0NjA0NTAyODIwNzIwIikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweEZF
RENCQTk4NzY1NDMyMEZuLCAweEZEQkFDMDk3QzhEQzVBQ0FFMTMyRjdBNkI3QTFEQ0Uxbik7Cit0
ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4RkVEQ0JBOTduLCAweEZEQkFDMDk2NTQzMjBG
RUNERUVDNkNEOW4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweDNuLCAweDJGQzk2
MkZDOTYyRkM5NjJEbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4Mm4sIDB4MUZE
Qjk3NTMwRUNBODY0MUVuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgMHgxbiwgMHhG
RURDQkE5ODc2NTQzMjBGbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4MG4sIDB4
MG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCBCaWdJbnQoIi0xIiksIEJpZ0ludCgi
LTE4MzY0NzU4NTQ0NDkzMDY0NzE5IikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCBC
aWdJbnQoIi0yIiksIEJpZ0ludCgiLTM2NzI5NTE3MDg4OTg2MTI5NDM4IikpOwordGVzdE11bCgw
eEZFRENCQTk4NzY1NDMyMEZuLCBCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTU1MDk0Mjc1NjMzNDc5
MTk0MTU3IikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCBCaWdJbnQoIi00Mjc1ODc4
NTUxIiksIEJpZ0ludCgiLTc4NTI1NDc3MTU0NjkxODc0NjAwMjI2OTQyMTY5IikpOwordGVzdE11
bCgweEZFRENCQTk4NzY1NDMyMEZuLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpLCBC
aWdJbnQoIi0zMzcyNjQzNTYzOTc1MzEwMjg5NzY2MDgyODk2MzM2MTU2MTM2ODAiKSk7Cit0ZXN0
TXVsKDB4RkVEQ0JBOThuLCAweEZFRENCQTk4biwgMHhGREJBQzA5NkRENDEzQTQwbik7Cit0ZXN0
TXVsKDB4RkVEQ0JBOThuLCAweDEyMzRuLCAweDEyMUY0OUY0OTZFMG4pOwordGVzdE11bCgweEZF
RENCQTk4biwgMHgzbiwgMHgyRkM5NjJGQzhuKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIDB4Mm4s
IDB4MUZEQjk3NTMwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCAweDFuLCAweEZFRENCQTk4bik7
Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCAweDBuLCAweDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4s
IEJpZ0ludCgiLTEiKSwgQmlnSW50KCItNDI3NTg3ODU1MiIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5
OG4sIEJpZ0ludCgiLTIiKSwgQmlnSW50KCItODU1MTc1NzEwNCIpKTsKK3Rlc3RNdWwoMHhGRURD
QkE5OG4sIEJpZ0ludCgiLTMiKSwgQmlnSW50KCItMTI4Mjc2MzU2NTYiKSk7Cit0ZXN0TXVsKDB4
RkVEQ0JBOThuLCBCaWdJbnQoIi00Mjc1ODc4NTUxIiksIEJpZ0ludCgiLTE4MjgzMTM3Mzg3MTc3
NzM4MTUyIikpOwordGVzdE11bCgweEZFRENCQTk4biwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMw
NjQ3MjAiKSwgQmlnSW50KCItNzg1MjU0NzcxNzMwNTY2MzMxNDg5OTU4ODU0NDAiKSk7Cit0ZXN0
TXVsKDB4M24sIDB4M24sIDB4OW4pOwordGVzdE11bCgweDNuLCAweDJuLCAweDZuKTsKK3Rlc3RN
dWwoMHgzbiwgMHgxbiwgMHgzbik7Cit0ZXN0TXVsKDB4M24sIDB4MG4sIDB4MG4pOwordGVzdE11
bCgweDNuLCBCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTMiKSk7Cit0ZXN0TXVsKDB4M24sIEJpZ0lu
dCgiLTIiKSwgQmlnSW50KCItNiIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItMyIpLCBCaWdJ
bnQoIi05IikpOwordGVzdE11bCgweDNuLCBCaWdJbnQoIi00NjYwIiksIEJpZ0ludCgiLTEzOTgw
IikpOwordGVzdE11bCgweDNuLCBCaWdJbnQoIi00Mjc1ODc4NTUyIiksIEJpZ0ludCgiLTEyODI3
NjM1NjU2IikpOwordGVzdE11bCgweDNuLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIp
LCBCaWdJbnQoIi01NTA5NDI3NTYzMzQ3OTE5NDE2MCIpKTsKK3Rlc3RNdWwoMHgwbiwgMHgwbiwg
MHgwbik7Cit0ZXN0TXVsKDB4MG4sIEJpZ0ludCgiLTEiKSwgMHgwbik7Cit0ZXN0TXVsKDB4MG4s
IEJpZ0ludCgiLTIiKSwgMHgwbik7Cit0ZXN0TXVsKDB4MG4sIEJpZ0ludCgiLTMiKSwgMHgwbik7
Cit0ZXN0TXVsKDB4MG4sIEJpZ0ludCgiLTQyNzU4Nzg1NTEiKSwgMHgwbik7Cit0ZXN0TXVsKDB4
MG4sIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzE5IiksIDB4MG4pOwordGVzdE11bChCaWdJ
bnQoIi0xIiksIEJpZ0ludCgiLTEiKSwgMHgxbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmln
SW50KCItMiIpLCAweDJuKTsKK3Rlc3RNdWwoQmlnSW50KCItMSIpLCBCaWdJbnQoIi0zIiksIDB4
M24pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTQ2NjAiKSwgMHgxMjM0bik7Cit0
ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCItNDI3NTg3ODU1MSIpLCAweEZFRENCQTk3bik7
Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCItNDI3NTg3ODU1MiIpLCAweEZFRENCQTk4
bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MTki
KSwgMHhGRURDQkE5ODc2NTQzMjBGbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCIt
MTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgMHhGRURDQkE5ODc2NTQzMjEwbik7Cit0ZXN0TXVsKEJp
Z0ludCgiLTMiKSwgQmlnSW50KCItMyIpLCAweDluKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBC
aWdJbnQoIi00NjYwIiksIDB4MzY5Q24pOwordGVzdE11bChCaWdJbnQoIi0zIiksIEJpZ0ludCgi
LTQyNzU4Nzg1NTEiKSwgMHgyRkM5NjJGQzVuKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJ
bnQoIi00Mjc1ODc4NTUyIiksIDB4MkZDOTYyRkM4bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwg
QmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MTkiKSwgMHgyRkM5NjJGQzk2MkZDOTYyRG4pOwor
dGVzdE11bChCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIDB4
MkZDOTYyRkM5NjJGQzk2MzBuKTsKK3Rlc3RNdWwoQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3
MjAiKSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgMHhGREJBQzA5N0M4REM1QUND
REVFQzZDRDdBNDRBNDEwMG4pOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50
LW11bHRpcGx5LW1lbW9yeS1zdHJlc3MuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bHRp
cGx5LW1lbW9yeS1zdHJlc3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFiYWE3ZTI4ZjlhZWU2NWQyMWMwZDM2
ZjYzZGY2ODAyM2I5Yzg5NwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1p
bnQtbXVsdGlwbHktbWVtb3J5LXN0cmVzcy5qcwpAQCAtMCwwICsxLDE1IEBACisvL0AgcnVuQmln
SW50RW5hYmxlZAorCitmdW5jdGlvbiBhc3NlcnQoYSkgeworICAgIGlmICghYSkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJCYWQgYXNzZXJ0aW9uIik7Cit9CisKK2xldCBhID0gMG47CitsZXQg
YiA9IDFuOworZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDAwOyBpKyspIHsKKyAgICBhID0gYiAq
IDMwbjsKK30KKworYXNzZXJ0KGEgPT09IDMwbik7CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339214</attachid>
            <date>2018-05-01 12:43:38 -0700</date>
            <delta_ts>2018-05-03 09:17:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183721-20180501164335.patch</filename>
            <type>text/plain</type>
            <size>47726</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YTExOTFkOTAzZDIwZTEyNzk5ZGNjZjk1ODBjZDE3YzFlNzY5M2EzLi45NzVhYTZmMGJkMTRkM2Jk
NDkzZThkMTgxMGRiNzRiOWRmNTE0ZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxOC0wNS0wMSAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgIioiIG9w
ZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgzNzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgQWRk
ZWQgQmlnSW50IHN1cHBvcnQgaW50byB0aW1lcyBiaW5hcnkgb3BlcmF0b3IgaW50byBMTEludCBh
bmQgb24KKyAgICAgICAgSklUT3BlcmF0aW9ucyBwcm9maWxlZE11bCBhbmQgdW5wcm9maWxlZE11
bC4gV2UgYXJlIGFsc28gcmVwbGFjaW5nIGFsbAorICAgICAgICB1c2VzIG9mIGludCB0byB1bnNp
Z25lZCB3aGVuIHRoZXJlIGlzIG5vIG5lZ2F0aXZlIHZhbHVlcyBmb3IKKyAgICAgICAgdmFyaWFi
bGVzLgorCisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6CisgICAg
ICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNCaWdJbnQuY3BwOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6SlNCaWdJbnQpOgor
ICAgICAgICAoSlNDOjpKU0JpZ0ludDo6YWxsb2NhdGlvblNpemUpOgorICAgICAgICAoSlNDOjpK
U0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojp0b1N0
cmluZyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjptdWx0aXBseSk6CisgICAgICAgIChKU0M6
OkpTQmlnSW50OjpkaWdpdERpdik6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjppbnRlcm5hbE11
bHRpcGx5QWRkKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6Om11bHRpcGx5QWNjdW11bGF0ZSk6
CisgICAgICAgIChKU0M6OkpTQmlnSW50OjplcXVhbHMpOgorICAgICAgICAoSlNDOjpKU0JpZ0lu
dDo6YWJzb2x1dGVEaXZTbWFsbCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpjYWxjdWxhdGVN
YXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OnRvU3Ry
aW5nR2VuZXJpYyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpyaWdodFRyaW0pOgorICAgICAg
ICAoSlNDOjpKU0JpZ0ludDo6YWxsb2NhdGVGb3IpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6
cGFyc2VJbnQpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6ZGlnaXQpOgorICAgICAgICAoSlND
OjpKU0JpZ0ludDo6c2V0RGlnaXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFs
dWVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvTnVtZXJpYyBjb25zdCk6Cisg
ICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6CisgICAgICAgIChKU0M6OmpzTXVsKToKKwog
MjAxOC0wNC0yOCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzMTEzMS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggY2Vl
NjU2MjM0MzE3NzBmNGJmNDAyYWRhMGM4NzczNThmODAwYjY3ZC4uZTQ2NTBhYzMwODBmNmI0MjBi
NjM3OGI2NjVjZWQ1MjZiYjlkZTVhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKQEAgLTE0NiwxNCArMTQ2LDE0IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWUgY2hpbGQyQ29uc3RhbnQgPSBt
X3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQyKCkubm9kZSgpKS52YWx1ZSgpOwogCiAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBSZXZpc2l0IHRoaXMgY29uZGl0aW9uIHdoZW4gaW50cm9k
dWNpbmcgQmlnSW50IHRvIEpTQy4KLSAgICAgICAgICAgICAgICAgICAgYXV0byBpc05vblN0cmlu
Z0NlbGxDb25zdGFudCA9IFtdIChKU1ZhbHVlIHZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gdmFsdWUgJiYgdmFsdWUuaXNDZWxsKCkgJiYgIXZhbHVlLmlzU3RyaW5nKCk7
CisgICAgICAgICAgICAgICAgICAgIGF1dG8gaXNOb25TdHJpbmdPckJpZ0ludENlbGxDb25zdGFu
dCA9IFtdIChKU1ZhbHVlIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
dmFsdWUgJiYgdmFsdWUuaXNDZWxsKCkgJiYgIXZhbHVlLmlzU3RyaW5nKCkgJiYgIXZhbHVlLmlz
QmlnSW50KCk7CiAgICAgICAgICAgICAgICAgICAgIH07CiAKLSAgICAgICAgICAgICAgICAgICAg
aWYgKGlzTm9uU3RyaW5nQ2VsbENvbnN0YW50KGNoaWxkMUNvbnN0YW50KSkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoaXNOb25TdHJpbmdPckJpZ0ludENlbGxDb25zdGFudChjaGlsZDFDb25z
dGFudCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZlcnRUb0NvbXBhcmVF
cVB0cihtX2dyYXBoLmZyZWV6ZVN0cm9uZyhjaGlsZDFDb25zdGFudC5hc0NlbGwoKSksIG5vZGUt
PmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwotICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzTm9uU3RyaW5nQ2VsbENvbnN0YW50KGNoaWxk
MkNvbnN0YW50KSkgeworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzTm9uU3RyaW5n
T3JCaWdJbnRDZWxsQ29uc3RhbnQoY2hpbGQyQ29uc3RhbnQpKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBub2RlLT5jb252ZXJ0VG9Db21wYXJlRXFQdHIobV9ncmFwaC5mcmVlemVTdHJvbmco
Y2hpbGQyQ29uc3RhbnQuYXNDZWxsKCkpLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggMzY1YmI3Mzc1NWE3
YTQ1NGNmMDg1NDM2YzYzNzhkMWJmNzNmZWM0Yi4uNjJmYzFiMDIyYWM5N2NiZDg4ODE0MTkyMjIy
YzYyNzQ5ZDI3ZjViNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuY3BwCkBAIC0yNTU0LDM0ICsyNTU0LDIzIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmFsdWVBZGROb09wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1BTFdBWVNfSU5MSU5FIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSB1bnByb2ZpbGVkTXVsKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQor
QUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgdW5wcm9maWxlZE11bChFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIpCiB7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAg
IEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwogICAgIEpTVmFsdWUg
b3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOwogCi0gICAgZG91YmxlIGEgPSBvcDEu
dG9OdW1iZXIoZXhlYyk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpT
VmFsdWUoKSk7Ci0gICAgc2NvcGUucmVsZWFzZSgpOwotICAgIGRvdWJsZSBiID0gb3AyLnRvTnVt
YmVyKGV4ZWMpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAqIGIpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTXVsKGV4ZWMsIG9wMSwgb3AyKSk7CiB9CiAK
LUFMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHByb2ZpbGVkTXVsKFZNJiB2bSwg
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUmIGFyaXRoUHJvZmlsZSwgYm9vbCBzaG91bGRPYnNl
cnZlTEhTQW5kUkhTVHlwZXMgPSB0cnVlKQorQUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgcHJvZmlsZWRNdWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUmIGFyaXRoUHJvZmls
ZSwgYm9vbCBzaG91bGRPYnNlcnZlTEhTQW5kUkhTVHlwZXMgPSB0cnVlKQogewotICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIG9wMSA9IEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkT3AxKTsKICAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkT3AyKTsKIAogICAgIGlmIChzaG91bGRPYnNlcnZlTEhTQW5kUkhTVHlwZXMpCiAg
ICAgICAgIGFyaXRoUHJvZmlsZS5vYnNlcnZlTEhTQW5kUkhTKG9wMSwgb3AyKTsKIAotICAgIGRv
dWJsZSBhID0gb3AxLnRvTnVtYmVyKGV4ZWMpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMp
OwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAg
IAotICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAqIGIpOworICAgIEpTVmFsdWUgcmVz
dWx0ID0ganNNdWwoZXhlYywgb3AxLCBvcDIpOwogICAgIGFyaXRoUHJvZmlsZS5vYnNlcnZlUmVz
dWx0KHJlc3VsdCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQpAQCAt
MjU5MSw3ICsyNTgwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25W
YWx1ZU11bChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGUKICAgICBWTSogdm0gPSAm
ZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsK
IAotICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2Rl
ZE9wMik7CisgICAgcmV0dXJuIHVucHJvZmlsZWRNdWwoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2Rl
ZE9wMik7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVN
dWxOb09wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUTXVsSUMqKQpAQCAtMjU5OSw3ICsyNTg4LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bE5vT3B0aW1p
emUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGUKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAg
ICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKIAotICAgIHJldHVybiB1
bnByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CisgICAgcmV0
dXJuIHVucHJvZmlsZWRNdWwoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CiB9CiAKIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxPcHRpbWl6ZShFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIsIEpJVE11bElDKiBtdWxJQykKQEAgLTI2MTYsNyArMjYwNSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxPcHRpbWl6ZShFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKCiAgICAgZXhlYy0+Y29kZUJsb2NrKCktPmR1bXBNYXRoSUNTdGF0cygp
OwogI2VuZGlmCiAKLSAgICByZXR1cm4gdW5wcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRP
cDEsIGVuY29kZWRPcDIpOworICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRP
cDEsIGVuY29kZWRPcDIpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqIGFyaXRoUHJv
ZmlsZSkKQEAgLTI2MjUsNyArMjYxNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKCiAgICAg
TmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAKICAgICBBU1NFUlQoYXJp
dGhQcm9maWxlKTsKLSAgICByZXR1cm4gcHJvZmlsZWRNdWwoKnZtLCBleGVjLCBlbmNvZGVkT3Ax
LCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlKTsKKyAgICByZXR1cm4gcHJvZmlsZWRNdWwoZXhl
YywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSk7CiB9CiAKIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZE9wdGltaXplKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMiwgSklUTXVsSUMqIG11bElDKQpAQCAtMjY0Myw3ICsyNjMyLDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkT3B0aW1pemUo
RXhlY1N0YXRlKiBleGVjLAogICAgIGV4ZWMtPmNvZGVCbG9jaygpLT5kdW1wTWF0aElDU3RhdHMo
KTsKICNlbmRpZgogCi0gICAgcmV0dXJuIHByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9w
MSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSwgZmFsc2UpOworICAgIHJldHVybiBwcm9maWxl
ZE11bChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlLCBmYWxzZSk7
CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9m
aWxlZE5vT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRNdWxJQyogbXVsSUMpCkBAIC0yNjUzLDcg
KzI2NDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVs
UHJvZmlsZWROb09wdGltaXplKEV4ZWNTdGF0ZSogZXhlYwogCiAgICAgQXJpdGhQcm9maWxlKiBh
cml0aFByb2ZpbGUgPSBtdWxJQy0+YXJpdGhQcm9maWxlKCk7CiAgICAgQVNTRVJUKGFyaXRoUHJv
ZmlsZSk7Ci0gICAgcmV0dXJuIHByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5j
b2RlZE9wMiwgKmFyaXRoUHJvZmlsZSk7CisgICAgcmV0dXJuIHByb2ZpbGVkTXVsKGV4ZWMsIGVu
Y29kZWRPcDEsIGVuY29kZWRPcDIsICphcml0aFByb2ZpbGUpOwogfQogCiBBTFdBWVNfSU5MSU5F
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSB1bnByb2ZpbGVkTmVnYXRlKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wZXJhbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAppbmRleCBlNmMxYTQ0ZDY3ZjQyMTQ1Mjg1
ZmIwZDIwMDc0NWRiY2IzYTdkZjc3Li5lODY5ZGI4ZDhjNDg1N2MyNjUxMWZlMGM0Mjg2OGJkNDMw
NDlmNDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25T
bG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNs
b3dQYXRocy5jcHAKQEAgLTY1LDYgKzY1LDcgQEAKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMu
aCIKICNpbmNsdWRlICJUeXBlUHJvZmlsZXJMb2cuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJp
bnRTdHJlYW0uaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiBuYW1lc3BhY2UgSlNDIHsK
IApAQCAtNDg2LDEwICs0ODcsMjQgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX211bCkKICAg
ICBCRUdJTigpOwogICAgIEpTVmFsdWUgbGVmdCA9IE9QX0MoMikuanNWYWx1ZSgpOwogICAgIEpT
VmFsdWUgcmlnaHQgPSBPUF9DKDMpLmpzVmFsdWUoKTsKLSAgICBkb3VibGUgYSA9IGxlZnQudG9O
dW1iZXIoZXhlYyk7Ci0gICAgaWYgKFVOTElLRUxZKHRocm93U2NvcGUuZXhjZXB0aW9uKCkpKQot
ICAgICAgICBSRVRVUk4oSlNWYWx1ZSgpKTsKLSAgICBkb3VibGUgYiA9IHJpZ2h0LnRvTnVtYmVy
KGV4ZWMpOworICAgIFZhcmlhbnQ8SlNCaWdJbnQqLCBkb3VibGU+IGxlZnROdW1lcmljID0gbGVm
dC50b051bWVyaWMoZXhlYyk7CisgICAgQ0hFQ0tfRVhDRVBUSU9OKCk7CisgICAgVmFyaWFudDxK
U0JpZ0ludCosIGRvdWJsZT4gcmlnaHROdW1lcmljID0gcmlnaHQudG9OdW1lcmljKGV4ZWMpOwor
ICAgIENIRUNLX0VYQ0VQVElPTigpOworICAgIAorICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0
aXZlPEpTQmlnSW50Kj4obGVmdE51bWVyaWMpIHx8IFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8SlNC
aWdJbnQqPihyaWdodE51bWVyaWMpKSB7CisgICAgICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0
aXZlPEpTQmlnSW50Kj4obGVmdE51bWVyaWMpICYmIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8SlNC
aWdJbnQqPihyaWdodE51bWVyaWMpKSB7CisgICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdChKU0Jp
Z0ludDo6bXVsdGlwbHkoZXhlYywgV1RGOjpnZXQ8SlNCaWdJbnQqPihsZWZ0TnVtZXJpYyksIFdU
Rjo6Z2V0PEpTQmlnSW50Kj4ocmlnaHROdW1lcmljKSkpOworICAgICAgICAgICAgUkVUVVJOX1dJ
VEhfUFJPRklMSU5HKHJlc3VsdCwgeworICAgICAgICAgICAgICAgIHVwZGF0ZUFyaXRoUHJvZmls
ZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgbGVmdCwgcmlnaHQpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBUSFJPVyhjcmVhdGVUeXBlRXJyb3IoZXhl
YywgIkludmFsaWQgbWl4IG9mIEJpZ0ludCBhbmQgb3RoZXIgdHlwZSBpbiBtdWx0aXBsaWNhdGlv
bi4iKSk7CisgICAgfQorCisgICAgZG91YmxlIGEgPSBXVEY6OmdldDxkb3VibGU+KGxlZnROdW1l
cmljKTsKKyAgICBkb3VibGUgYiA9IFdURjo6Z2V0PGRvdWJsZT4ocmlnaHROdW1lcmljKTsKICAg
ICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEgKiBiKTsKICAgICBSRVRVUk5fV0lUSF9QUk9G
SUxJTkcocmVzdWx0LCB7CiAgICAgICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvckJpbmFyeUFyaXRo
T3AoZXhlYywgcGMsIHJlc3VsdCwgbGVmdCwgcmlnaHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCaWdJbnQuY3BwCmluZGV4IGM1MWM4YjIxMGQ5M2MxN2Y5NjQwMGVmZTc3ZGFh
NjcyYTI1OWE2ZDMuLjkxOTdiOWExYTQ0ZGM1MTEyNzAyZGE3OGExODg5ODA3OGYyZDY0OWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAKQEAgLTY5LDcgKzY5
LDcgQEAgdm9pZCBKU0JpZ0ludDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNp
dG9yJiB2aXNpdG9yKQogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRv
cik7CiB9CiAKLUpTQmlnSW50OjpKU0JpZ0ludChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBpbnQgbGVuZ3RoKQorSlNCaWdJbnQ6OkpTQmlnSW50KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIHVuc2lnbmVkIGxlbmd0aCkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKICAgICAs
IG1fbGVuZ3RoKGxlbmd0aCkKIHsgfQpAQCAtOTMsMTMgKzkzLDEzIEBAIEpTQmlnSW50KiBKU0Jp
Z0ludDo6Y3JlYXRlWmVybyhWTSYgdm0pCiAgICAgcmV0dXJuIHplcm9CaWdJbnQ7CiB9CiAKLXNp
emVfdCBKU0JpZ0ludDo6YWxsb2NhdGlvblNpemUoaW50IGxlbmd0aCkKK3NpemVfdCBKU0JpZ0lu
dDo6YWxsb2NhdGlvblNpemUodW5zaWduZWQgbGVuZ3RoKQogewogICAgIHNpemVfdCBzaXplV2l0
aFBhZGRpbmcgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8c2l6ZW9mKHNpemVfdCk+KHNpemVv
ZihKU0JpZ0ludCkpOwogICAgIHJldHVybiBzaXplV2l0aFBhZGRpbmcgKyBsZW5ndGggKiBzaXpl
b2YoRGlnaXQpOwogfQogCi1KU0JpZ0ludCogSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGgoVk0m
IHZtLCBpbnQgbGVuZ3RoKQorSlNCaWdJbnQqIEpTQmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoKFZN
JiB2bSwgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIEpTQmlnSW50KiBiaWdJbnQgPSBuZXcgKE5v
dE51bGwsIGFsbG9jYXRlQ2VsbDxKU0JpZ0ludD4odm0uaGVhcCwgYWxsb2NhdGlvblNpemUobGVu
Z3RoKSkpIEpTQmlnSW50KHZtLCB2bS5iaWdJbnRTdHJ1Y3R1cmUuZ2V0KCksIGxlbmd0aCk7CiAg
ICAgYmlnSW50LT5maW5pc2hDcmVhdGlvbih2bSk7CkBAIC0yMjMsNyArMjIzLDcgQEAgSlNCaWdJ
bnQqIEpTQmlnSW50OjpwYXJzZUludChFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0sIFN0cmluZ1Zp
ZXcgcywgdWludDhfdCByYWQKICAgICByZXR1cm4gcGFyc2VJbnQoc3RhdGUsIHZtLCBzLmNoYXJh
Y3RlcnMxNigpLCBzLmxlbmd0aCgpLCAwLCByYWRpeCwgZmFsc2UpOwogfQogCi1TdHJpbmcgSlNC
aWdJbnQ6OnRvU3RyaW5nKEV4ZWNTdGF0ZSYgc3RhdGUsIGludCByYWRpeCkKK1N0cmluZyBKU0Jp
Z0ludDo6dG9TdHJpbmcoRXhlY1N0YXRlJiBzdGF0ZSwgdW5zaWduZWQgcmFkaXgpCiB7CiAgICAg
aWYgKHRoaXMtPmlzWmVybygpKQogICAgICAgICByZXR1cm4gc3RhdGUudm0oKS5zbWFsbFN0cmlu
Z3Muc2luZ2xlQ2hhcmFjdGVyU3RyaW5nUmVwKCcwJyk7CkBAIC0yNDYsNiArMjQ2LDI2IEBAIHZv
aWQgSlNCaWdJbnQ6OmlucGxhY2VNdWx0aXBseUFkZCh1aW50cHRyX3QgZmFjdG9yLCB1aW50cHRy
X3Qgc3VtbWFuZCkKICAgICBpbnRlcm5hbE11bHRpcGx5QWRkKHRoaXMsIGZhY3Rvciwgc3VtbWFu
ZCwgbGVuZ3RoKCksIHRoaXMpOwogfQogCitKU0JpZ0ludCogSlNCaWdJbnQ6Om11bHRpcGx5KEV4
ZWNTdGF0ZSogc3RhdGUsIEpTQmlnSW50KiB4LCBKU0JpZ0ludCogeSkKK3sKKyAgICBWTSYgdm0g
PSBzdGF0ZS0+dm0oKTsKKworICAgIGlmICh4LT5pc1plcm8oKSkKKyAgICAgICAgcmV0dXJuIHg7
CisgICAgaWYgKHktPmlzWmVybygpKQorICAgICAgICByZXR1cm4geTsKKworICAgIHVuc2lnbmVk
IHJlc3VsdExlbmd0aCA9IHgtPmxlbmd0aCgpICsgeS0+bGVuZ3RoKCk7CisgICAgSlNCaWdJbnQq
IHJlc3VsdCA9IEpTQmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoKHZtLCByZXN1bHRMZW5ndGgpOwor
ICAgIHJlc3VsdC0+aW5pdGlhbGl6ZShJbml0aWFsaXphdGlvblR5cGU6OldpdGhaZXJvKTsKKwor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB4LT5sZW5ndGgoKTsgaSsrKQorICAgICAgICBt
dWx0aXBseUFjY3VtdWxhdGUoeSwgeC0+ZGlnaXQoaSksIHJlc3VsdCwgaSk7CisKKyAgICByZXN1
bHQtPnNldFNpZ24oeC0+c2lnbigpICE9IHktPnNpZ24oKSk7CisgICAgcmV0dXJuIHJlc3VsdC0+
cmlnaHRUcmltKHZtKTsKK30KKwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAjZGVmaW5lIEhBVkVf
VFdPX0RJR0lUIDEKIHR5cGVkZWYgdWludDY0X3QgVHdvRGlnaXQ7CkBAIC0zNzgsOSArMzk4LDkg
QEAgSlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdERpdihEaWdpdCBoaWdoLCBEaWdpdCBs
b3csIERpZ2l0IGRpdmlzb3IsIERpZ2l0JgogICAgIHN0YXRpYyBjb25zdCBEaWdpdCBrSGFsZkRp
Z2l0QmFzZSA9IDF1bGwgPDwgaGFsZkRpZ2l0Qml0czsKICAgICAvLyBBZGFwdGVkIGZyb20gV2Fy
cmVuLCBIYWNrZXIncyBEZWxpZ2h0LCBwLiAxNTIuCiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICBp
bnQgcyA9IGNsejY0KGRpdmlzb3IpOworICAgIHVuc2lnbmVkIHMgPSBjbHo2NChkaXZpc29yKTsK
ICNlbHNlCi0gICAgaW50IHMgPSBjbHozMihkaXZpc29yKTsKKyAgICB1bnNpZ25lZCBzID0gY2x6
MzIoZGl2aXNvcik7CiAjZW5kaWYKICAgICBkaXZpc29yIDw8PSBzOwogICAgIApAQCAtNDIzLDE0
ICs0NDMsMTQgQEAgSlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdERpdihEaWdpdCBoaWdo
LCBEaWdpdCBsb3csIERpZ2l0IGRpdmlzb3IsIERpZ2l0JgogCiAvLyBNdWx0aXBsaWVzIHtzb3Vy
Y2V9IHdpdGgge2ZhY3Rvcn0gYW5kIGFkZHMge3N1bW1hbmR9IHRvIHRoZSByZXN1bHQuCiAvLyB7
cmVzdWx0fSBhbmQge3NvdXJjZX0gbWF5IGJlIHRoZSBzYW1lIEJpZ0ludCBmb3IgaW5wbGFjZSBt
b2RpZmljYXRpb24uCi12b2lkIEpTQmlnSW50OjppbnRlcm5hbE11bHRpcGx5QWRkKEpTQmlnSW50
KiBzb3VyY2UsIERpZ2l0IGZhY3RvciwgRGlnaXQgc3VtbWFuZCwgaW50IG4sIEpTQmlnSW50KiBy
ZXN1bHQpCit2b2lkIEpTQmlnSW50OjppbnRlcm5hbE11bHRpcGx5QWRkKEpTQmlnSW50KiBzb3Vy
Y2UsIERpZ2l0IGZhY3RvciwgRGlnaXQgc3VtbWFuZCwgdW5zaWduZWQgbiwgSlNCaWdJbnQqIHJl
c3VsdCkKIHsKICAgICBBU1NFUlQoc291cmNlLT5sZW5ndGgoKSA+PSBuKTsKICAgICBBU1NFUlQo
cmVzdWx0LT5sZW5ndGgoKSA+PSBuKTsKIAogICAgIERpZ2l0IGNhcnJ5ID0gc3VtbWFuZDsKICAg
ICBEaWdpdCBoaWdoID0gMDsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgeworICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgRGlnaXQgY3VycmVu
dCA9IHNvdXJjZS0+ZGlnaXQoaSk7CiAgICAgICAgIERpZ2l0IG5ld0NhcnJ5ID0gMDsKIApAQCAt
NDU4LDYgKzQ3OCw0OSBAQCB2b2lkIEpTQmlnSW50OjppbnRlcm5hbE11bHRpcGx5QWRkKEpTQmln
SW50KiBzb3VyY2UsIERpZ2l0IGZhY3RvciwgRGlnaXQgc3VtbWFuZAogICAgICAgICBBU1NFUlQo
IShjYXJyeSArIGhpZ2gpKTsKIH0KIAorLy8gTXVsdGlwbGllcyB7bXVsdGlwbGljYW5kfSB3aXRo
IHttdWx0aXBsaWVyfSBhbmQgYWRkcyB0aGUgcmVzdWx0IHRvCisvLyB7YWNjdW11bGF0b3J9LCBz
dGFydGluZyBhdCB7YWNjdW11bGF0b3JJbmRleH0gZm9yIHRoZSBsZWFzdC1zaWduaWZpY2FudAor
Ly8gZGlnaXQuCisvLyBDYWxsZXJzIG11c3QgZW5zdXJlIHRoYXQge2FjY3VtdWxhdG9yfSBpcyBi
aWcgZW5vdWdoIHRvIGhvbGQgdGhlIHJlc3VsdC4KK3ZvaWQgSlNCaWdJbnQ6Om11bHRpcGx5QWNj
dW11bGF0ZShKU0JpZ0ludCogbXVsdGlwbGljYW5kLCBEaWdpdCBtdWx0aXBsaWVyLCBKU0JpZ0lu
dCogYWNjdW11bGF0b3IsIHVuc2lnbmVkIGFjY3VtdWxhdG9ySW5kZXgpCit7CisgICAgQVNTRVJU
KGFjY3VtdWxhdG9yLT5sZW5ndGgoKSA+IG11bHRpcGxpY2FuZC0+bGVuZ3RoKCkgKyBhY2N1bXVs
YXRvckluZGV4KTsKKyAgICBpZiAoIW11bHRpcGxpZXIpCisgICAgICAgIHJldHVybjsKKyAgICAK
KyAgICBEaWdpdCBjYXJyeSA9IDA7CisgICAgRGlnaXQgaGlnaCA9IDA7CisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG11bHRpcGxpY2FuZC0+bGVuZ3RoKCk7IGkrKywgYWNjdW11bGF0b3JJ
bmRleCsrKSB7CisgICAgICAgIERpZ2l0IGFjYyA9IGFjY3VtdWxhdG9yLT5kaWdpdChhY2N1bXVs
YXRvckluZGV4KTsKKyAgICAgICAgRGlnaXQgbmV3Q2FycnkgPSAwOworICAgICAgICAKKyAgICAg
ICAgLy8gQWRkIGxhc3Qgcm91bmQncyBjYXJyeW92ZXJzLgorICAgICAgICBhY2MgPSBkaWdpdEFk
ZChhY2MsIGhpZ2gsIG5ld0NhcnJ5KTsKKyAgICAgICAgYWNjID0gZGlnaXRBZGQoYWNjLCBjYXJy
eSwgbmV3Q2FycnkpOworICAgICAgICAKKyAgICAgICAgLy8gQ29tcHV0ZSB0aGlzIHJvdW5kJ3Mg
bXVsdGlwbGljYXRpb24uCisgICAgICAgIERpZ2l0IG11bHRpcGxpY2FuZERpZ2l0ID0gbXVsdGlw
bGljYW5kLT5kaWdpdChpKTsKKyAgICAgICAgRGlnaXQgbG93ID0gZGlnaXRNdWwobXVsdGlwbGll
ciwgbXVsdGlwbGljYW5kRGlnaXQsIGhpZ2gpOworICAgICAgICBhY2MgPSBkaWdpdEFkZChhY2Ms
IGxvdywgbmV3Q2FycnkpOworICAgICAgICAKKyAgICAgICAgLy8gU3RvcmUgcmVzdWx0IGFuZCBw
cmVwYXJlIGZvciBuZXh0IHJvdW5kLgorICAgICAgICBhY2N1bXVsYXRvci0+c2V0RGlnaXQoYWNj
dW11bGF0b3JJbmRleCwgYWNjKTsKKyAgICAgICAgY2FycnkgPSBuZXdDYXJyeTsKKyAgICB9Cisg
ICAgCisgICAgd2hpbGUgKGNhcnJ5IHx8IGhpZ2gpIHsKKyAgICAgICAgQVNTRVJUKGFjY3VtdWxh
dG9ySW5kZXggPCBhY2N1bXVsYXRvci0+bGVuZ3RoKCkpOworICAgICAgICBEaWdpdCBhY2MgPSBh
Y2N1bXVsYXRvci0+ZGlnaXQoYWNjdW11bGF0b3JJbmRleCk7CisgICAgICAgIERpZ2l0IG5ld0Nh
cnJ5ID0gMDsKKyAgICAgICAgYWNjID0gZGlnaXRBZGQoYWNjLCBoaWdoLCBuZXdDYXJyeSk7Cisg
ICAgICAgIGhpZ2ggPSAwOworICAgICAgICBhY2MgPSBkaWdpdEFkZChhY2MsIGNhcnJ5LCBuZXdD
YXJyeSk7CisgICAgICAgIGFjY3VtdWxhdG9yLT5zZXREaWdpdChhY2N1bXVsYXRvckluZGV4LCBh
Y2MpOworICAgICAgICBjYXJyeSA9IG5ld0NhcnJ5OworICAgICAgICBhY2N1bXVsYXRvckluZGV4
Kys7CisgICAgfQorfQorCiBib29sIEpTQmlnSW50OjplcXVhbHMoSlNCaWdJbnQqIHgsIEpTQmln
SW50KiB5KQogewogICAgIGlmICh4LT5zaWduKCkgIT0geS0+c2lnbigpKQpAQCAtNDY2LDcgKzUy
OSw3IEBAIGJvb2wgSlNCaWdJbnQ6OmVxdWFscyhKU0JpZ0ludCogeCwgSlNCaWdJbnQqIHkpCiAg
ICAgaWYgKHgtPmxlbmd0aCgpICE9IHktPmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHgtPmxlbmd0aCgpOyBpKyspIHsKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgeC0+bGVuZ3RoKCk7IGkrKykgewogICAgICAgICBpZiAoeC0+
ZGlnaXQoaSkgIT0geS0+ZGlnaXQoaSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQpAQCAtNDk0LDcgKzU1Nyw3IEBAIHZvaWQgSlNCaWdJbnQ6OmFic29sdXRlRGl2U21hbGwoRXhl
Y1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQqIHgsIERpZ2l0IGRpdmlzb3IsIEpTCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBpbnQgbGVuZ3RoID0geC0+bGVuZ3RoKCk7CisgICAgdW5zaWdu
ZWQgbGVuZ3RoID0geC0+bGVuZ3RoKCk7CiAgICAgaWYgKHF1b3RpZW50ICE9IG51bGxwdHIpIHsK
ICAgICAgICAgaWYgKCpxdW90aWVudCA9PSBudWxscHRyKQogICAgICAgICAgICAgKnF1b3RpZW50
ID0gSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGgodm0sIGxlbmd0aCk7CkBAIC01MjEsMTQgKzU4
NCwxNCBAQCBjb25zdGV4cHIgdWludDhfdCBtYXhCaXRzUGVyQ2hhclRhYmxlW10gPSB7CiAgICAg
MTYyLCAxNjMsIDE2NSwgMTY2LCAgICAgICAgICAgICAgICAgICAgICAgICAvLyAzMy4uMzYKIH07
CiAKLXN0YXRpYyBjb25zdCBpbnQgYml0c1BlckNoYXJUYWJsZVNoaWZ0ID0gNTsKK3N0YXRpYyBj
b25zdCB1bnNpZ25lZCBiaXRzUGVyQ2hhclRhYmxlU2hpZnQgPSA1Owogc3RhdGljIGNvbnN0IHNp
emVfdCBiaXRzUGVyQ2hhclRhYmxlTXVsdGlwbGllciA9IDF1IDw8IGJpdHNQZXJDaGFyVGFibGVT
aGlmdDsKIAogLy8gQ29tcHV0ZSAoYW4gb3ZlcmFwcHJveGltYXRpb24gb2YpIHRoZSBsZW5ndGgg
b2YgdGhlIHJlc3VsdGluZyBzdHJpbmc6CiAvLyBEaXZpZGUgYml0IGxlbmd0aCBvZiB0aGUgQmln
SW50IGJ5IGJpdHMgcmVwcmVzZW50YWJsZSBwZXIgY2hhcmFjdGVyLgotdWludDY0X3QgSlNCaWdJ
bnQ6OmNhbGN1bGF0ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQoaW50IGxlbmd0aCwgaW50IHJh
ZGl4LCBEaWdpdCBsYXN0RGlnaXQsIGJvb2wgc2lnbikKK3VpbnQ2NF90IEpTQmlnSW50OjpjYWxj
dWxhdGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQg
cmFkaXgsIERpZ2l0IGxhc3REaWdpdCwgYm9vbCBzaWduKQogewotICAgIGludCBsZWFkaW5nWmVy
b3M7CisgICAgdW5zaWduZWQgbGVhZGluZ1plcm9zOwogICAgIGlmIChzaXplb2YobGFzdERpZ2l0
KSA9PSA4KQogICAgICAgICBsZWFkaW5nWmVyb3MgPSBjbHo2NChsYXN0RGlnaXQpOwogICAgIGVs
c2UKQEAgLTU1Niw3ICs2MTksNyBAQCB1aW50NjRfdCBKU0JpZ0ludDo6Y2FsY3VsYXRlTWF4aW11
bUNoYXJhY3RlcnNSZXF1aXJlZChpbnQgbGVuZ3RoLCBpbnQgcmFkaXgsIERpZwogICAgIHJldHVy
biBtYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkOwogfQogCi1TdHJpbmcgSlNCaWdJbnQ6OnRvU3Ry
aW5nR2VuZXJpYyhFeGVjU3RhdGUmIHN0YXRlLCBKU0JpZ0ludCogeCwgaW50IHJhZGl4KQorU3Ry
aW5nIEpTQmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQq
IHgsIHVuc2lnbmVkIHJhZGl4KQogewogICAgIC8vIEZJWE1FOiBbSlNDXSBSZXZpc2l0IHVzYWdl
IG9mIFN0cmluZ1ZlY3RvciBpbnRvIEpTQmlnSW50Ojp0b1N0cmluZwogICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA2NwpAQCAtNTY1LDcgKzYyOCw3IEBA
IFN0cmluZyBKU0JpZ0ludDo6dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmln
SW50KiB4LCBpbnQgcmFkaXgpCiAgICAgQVNTRVJUKHJhZGl4ID49IDIgJiYgcmFkaXggPD0gMzYp
OwogICAgIEFTU0VSVCgheC0+aXNaZXJvKCkpOwogCi0gICAgaW50IGxlbmd0aCA9IHgtPmxlbmd0
aCgpOworICAgIHVuc2lnbmVkIGxlbmd0aCA9IHgtPmxlbmd0aCgpOwogICAgIGJvb2wgc2lnbiA9
IHgtPnNpZ24oKTsKIAogICAgIHVpbnQ4X3QgbWF4Qml0c1BlckNoYXIgPSBtYXhCaXRzUGVyQ2hh
clRhYmxlW3JhZGl4XTsKQEAgLTU4MSwxMiArNjQ0LDEyIEBAIFN0cmluZyBKU0JpZ0ludDo6dG9T
dHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCBpbnQgcmFkaXgpCiAg
ICAgaWYgKGxlbmd0aCA9PSAxKQogICAgICAgICBsYXN0RGlnaXQgPSB4LT5kaWdpdCgwKTsKICAg
ICBlbHNlIHsKLSAgICAgICAgaW50IGNodW5rQ2hhcnMgPSBkaWdpdEJpdHMgKiBiaXRzUGVyQ2hh
clRhYmxlTXVsdGlwbGllciAvIG1heEJpdHNQZXJDaGFyOworICAgICAgICB1bnNpZ25lZCBjaHVu
a0NoYXJzID0gZGlnaXRCaXRzICogYml0c1BlckNoYXJUYWJsZU11bHRpcGxpZXIgLyBtYXhCaXRz
UGVyQ2hhcjsKICAgICAgICAgRGlnaXQgY2h1bmtEaXZpc29yID0gZGlnaXRQb3cocmFkaXgsIGNo
dW5rQ2hhcnMpOwogCiAgICAgICAgIC8vIEJ5IGNvbnN0cnVjdGlvbiBvZiBjaHVua0NoYXJzLCB0
aGVyZSBjYW4ndCBoYXZlIGJlZW4gb3ZlcmZsb3cuCiAgICAgICAgIEFTU0VSVChjaHVua0Rpdmlz
b3IpOwotICAgICAgICBpbnQgbm9uWmVyb0RpZ2l0ID0gbGVuZ3RoIC0gMTsKKyAgICAgICAgdW5z
aWduZWQgbm9uWmVyb0RpZ2l0ID0gbGVuZ3RoIC0gMTsKICAgICAgICAgQVNTRVJUKHgtPmRpZ2l0
KG5vblplcm9EaWdpdCkpOwogCiAgICAgICAgIC8vIHtyZXN0fSBob2xkcyB0aGUgcGFydCBvZiB0
aGUgQmlnSW50IHRoYXQgd2UgaGF2ZW4ndCBsb29rZWQgYXQgeWV0LgpAQCAtNjAyLDcgKzY2NSw3
IEBAIFN0cmluZyBKU0JpZ0ludDo6dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpT
QmlnSW50KiB4LCBpbnQgcmFkaXgpCiAgICAgICAgICAgICBBU1NFUlQocmVzdCk7CiAKICAgICAg
ICAgICAgIGRpdmlkZW5kID0gJnJlc3Q7Ci0gICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8
IGNodW5rQ2hhcnM7IGkrKykgeworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGNodW5rQ2hhcnM7IGkrKykgewogICAgICAgICAgICAgICAgIHJlc3VsdFN0cmluZy5hcHBlbmQo
cmFkaXhEaWdpdHNbY2h1bmsgJSByYWRpeF0pOwogICAgICAgICAgICAgICAgIGNodW5rIC89IHJh
ZGl4OwogICAgICAgICAgICAgfQpAQCAtNjI3LDcgKzY5MCw3IEBAIFN0cmluZyBKU0JpZ0ludDo6
dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCBpbnQgcmFkaXgp
CiAgICAgQVNTRVJUKHJlc3VsdFN0cmluZy5zaXplKCkgPD0gc3RhdGljX2Nhc3Q8c2l6ZV90Piht
YXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKSk7CiAKICAgICAvLyBSZW1vdmUgbGVhZGluZyB6ZXJv
ZXMuCi0gICAgaW50IG5ld1NpemVOb0xlYWRpbmdaZXJvZXMgPSByZXN1bHRTdHJpbmcuc2l6ZSgp
OworICAgIHVuc2lnbmVkIG5ld1NpemVOb0xlYWRpbmdaZXJvZXMgPSByZXN1bHRTdHJpbmcuc2l6
ZSgpOwogICAgIHdoaWxlIChuZXdTaXplTm9MZWFkaW5nWmVyb2VzICA+IDEgJiYgcmVzdWx0U3Ry
aW5nW25ld1NpemVOb0xlYWRpbmdaZXJvZXMgLSAxXSA9PSAnMCcpCiAgICAgICAgIG5ld1NpemVO
b0xlYWRpbmdaZXJvZXMtLTsKIApAQCAtNjQ2LDE0ICs3MDksMTYgQEAgSlNCaWdJbnQqIEpTQmln
SW50OjpyaWdodFRyaW0oVk0mIHZtKQogICAgIGlmIChpc1plcm8oKSkKICAgICAgICAgcmV0dXJu
IHRoaXM7CiAKKyAgICBBU1NFUlQobV9sZW5ndGgpOworCiAgICAgaW50IG5vblplcm9JbmRleCA9
IG1fbGVuZ3RoIC0gMTsKICAgICB3aGlsZSAobm9uWmVyb0luZGV4ID49IDAgJiYgIWRpZ2l0KG5v
blplcm9JbmRleCkpCiAgICAgICAgIG5vblplcm9JbmRleC0tOwogCi0gICAgaWYgKG5vblplcm9J
bmRleCA9PSBtX2xlbmd0aCAtIDEpCisgICAgaWYgKG5vblplcm9JbmRleCA9PSBzdGF0aWNfY2Fz
dDxpbnQ+KG1fbGVuZ3RoIC0gMSkpCiAgICAgICAgIHJldHVybiB0aGlzOwogCi0gICAgaW50IG5l
d0xlbmd0aCA9IG5vblplcm9JbmRleCArIDE7CisgICAgdW5zaWduZWQgbmV3TGVuZ3RoID0gbm9u
WmVyb0luZGV4ICsgMTsKICAgICBKU0JpZ0ludCogdHJpbW1lZEJpZ0ludCA9IGNyZWF0ZVdpdGhM
ZW5ndGgodm0sIG5ld0xlbmd0aCk7CiAgICAgUkVMRUFTRV9BU1NFUlQodHJpbW1lZEJpZ0ludCk7
CiAgICAgc3RkOjpjb3B5KGRhdGFTdG9yYWdlKCksIGRhdGFTdG9yYWdlKCkgKyBuZXdMZW5ndGgs
IHRyaW1tZWRCaWdJbnQtPmRhdGFTdG9yYWdlKCkpOyAKQEAgLTY2MywxNCArNzI4LDE0IEBAIEpT
QmlnSW50KiBKU0JpZ0ludDo6cmlnaHRUcmltKFZNJiB2bSkKICAgICByZXR1cm4gdHJpbW1lZEJp
Z0ludDsKIH0KIAotSlNCaWdJbnQqIEpTQmlnSW50OjphbGxvY2F0ZUZvcihFeGVjU3RhdGUqIHN0
YXRlLCBWTSYgdm0sIGludCByYWRpeCwgaW50IGNoYXJjb3VudCkKK0pTQmlnSW50KiBKU0JpZ0lu
dDo6YWxsb2NhdGVGb3IoRXhlY1N0YXRlKiBzdGF0ZSwgVk0mIHZtLCB1bnNpZ25lZCByYWRpeCwg
dW5zaWduZWQgY2hhcmNvdW50KQogewogICAgIEFTU0VSVCgyIDw9IHJhZGl4ICYmIHJhZGl4IDw9
IDM2KTsKICAgICBBU1NFUlQoY2hhcmNvdW50ID49IDApOwogCiAgICAgc2l6ZV90IGJpdHNQZXJD
aGFyID0gbWF4Qml0c1BlckNoYXJUYWJsZVtyYWRpeF07CiAgICAgc2l6ZV90IGNoYXJzID0gY2hh
cmNvdW50OwotICAgIGNvbnN0IGludCByb3VuZHVwID0gYml0c1BlckNoYXJUYWJsZU11bHRpcGxp
ZXIgLSAxOworICAgIGNvbnN0IHVuc2lnbmVkIHJvdW5kdXAgPSBiaXRzUGVyQ2hhclRhYmxlTXVs
dGlwbGllciAtIDE7CiAgICAgaWYgKGNoYXJzIDw9IChzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVf
dD46Om1heCgpIC0gcm91bmR1cCkgLyBiaXRzUGVyQ2hhcikgewogICAgICAgICBzaXplX3QgYml0
c01pbiA9IGJpdHNQZXJDaGFyICogY2hhcnM7CiAKQEAgLTY3OCw3ICs3NDMsNyBAQCBKU0JpZ0lu
dCogSlNCaWdJbnQ6OmFsbG9jYXRlRm9yKEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgaW50IHJh
ZGl4LCBpbnQgY2hhcmNvdQogICAgICAgICBiaXRzTWluID0gKGJpdHNNaW4gKyByb3VuZHVwKSA+
PiBiaXRzUGVyQ2hhclRhYmxlU2hpZnQ7CiAgICAgICAgIGlmIChiaXRzTWluIDw9IHN0YXRpY19j
YXN0PHNpemVfdD4obWF4SW50KSkgewogICAgICAgICAgICAgLy8gRGl2aWRlIGJ5IGtEaWdpdHNC
aXRzLCByb3VuZGluZyB1cC4KLSAgICAgICAgICAgIGludCBsZW5ndGggPSAoc3RhdGljX2Nhc3Q8
aW50PihiaXRzTWluKSArIGRpZ2l0Qml0cyAtIDEpIC8gZGlnaXRCaXRzOworICAgICAgICAgICAg
dW5zaWduZWQgbGVuZ3RoID0gKGJpdHNNaW4gKyBkaWdpdEJpdHMgLSAxKSAvIGRpZ2l0Qml0czsK
ICAgICAgICAgICAgIGlmIChsZW5ndGggPD0gbWF4TGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAg
SlNCaWdJbnQqIHJlc3VsdCA9IEpTQmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoKHZtLCBsZW5ndGgp
OwogICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC03MTksMTEgKzc4NCwxMSBAQCBz
aXplX3QgSlNCaWdJbnQ6Om9mZnNldE9mRGF0YSgpCiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBD
aGFyVHlwZT4KLUpTQmlnSW50KiBKU0JpZ0ludDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwg
Q2hhclR5cGUqICBkYXRhLCBpbnQgbGVuZ3RoKQorSlNCaWdJbnQqIEpTQmlnSW50OjpwYXJzZUlu
dChFeGVjU3RhdGUqIHN0YXRlLCBDaGFyVHlwZSogIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsK
ICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKIAotICAgIGludCBwID0gMDsKKyAgICB1bnNpZ25l
ZCBwID0gMDsKICAgICB3aGlsZSAocCA8IGxlbmd0aCAmJiBpc1N0cldoaXRlU3BhY2UoZGF0YVtw
XSkpCiAgICAgICAgICsrcDsKIApAQCAtNzU4LDEwICs4MjMsMTAgQEAgSlNCaWdJbnQqIEpTQmln
SW50OjpwYXJzZUludChFeGVjU3RhdGUqIHN0YXRlLCBDaGFyVHlwZSogIGRhdGEsIGludCBsZW5n
dGgpCiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLUpTQmlnSW50KiBKU0JpZ0lu
dDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwgVk0mIHZtLCBDaGFyVHlwZSogZGF0YSwgaW50
IGxlbmd0aCwgaW50IHN0YXJ0SW5kZXgsIGludCByYWRpeCwgYm9vbCBhbGxvd0VtcHR5U3RyaW5n
KQorSlNCaWdJbnQqIEpTQmlnSW50OjpwYXJzZUludChFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0s
IENoYXJUeXBlKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkIHN0YXJ0SW5kZXgsIHVu
c2lnbmVkIHJhZGl4LCBib29sIGFsbG93RW1wdHlTdHJpbmcpCiB7CiAgICAgQVNTRVJUKGxlbmd0
aCA+PSAwKTsKLSAgICBpbnQgcCA9IHN0YXJ0SW5kZXg7CisgICAgdW5zaWduZWQgcCA9IHN0YXJ0
SW5kZXg7CiAKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKQEAg
LTc3Nyw3ICs4NDIsNyBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0ZSog
c3RhdGUsIFZNJiB2bSwgQ2hhclR5cGUqIGRhdGEsIGludCBsZW5ndAogCiAgICAgaW50IGVuZElu
ZGV4ID0gbGVuZ3RoIC0gMTsKICAgICAvLyBSZW1vdmluZyB0cmFpbGluZyBzcGFjZXMKLSAgICB3
aGlsZSAoZW5kSW5kZXggPj0gcCAmJiBpc1N0cldoaXRlU3BhY2UoZGF0YVtlbmRJbmRleF0pKQor
ICAgIHdoaWxlIChlbmRJbmRleCA+PSBzdGF0aWNfY2FzdDxpbnQ+KHApICYmIGlzU3RyV2hpdGVT
cGFjZShkYXRhW2VuZEluZGV4XSkpCiAgICAgICAgIC0tZW5kSW5kZXg7CiAKICAgICBsZW5ndGgg
PSBlbmRJbmRleCArIDE7CkBAIC03ODUsMTYgKzg1MCwxNiBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6
OnBhcnNlSW50KEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgQ2hhclR5cGUqIGRhdGEsIGludCBs
ZW5ndAogICAgIGlmIChwID09IGxlbmd0aCkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVplcm8odm0p
OwogCi0gICAgaW50IGxpbWl0MCA9ICcwJyArIChyYWRpeCA8IDEwID8gcmFkaXggOiAxMCk7Ci0g
ICAgaW50IGxpbWl0YSA9ICdhJyArIChyYWRpeCAtIDEwKTsKLSAgICBpbnQgbGltaXRBID0gJ0En
ICsgKHJhZGl4IC0gMTApOworICAgIHVuc2lnbmVkIGxpbWl0MCA9ICcwJyArIChyYWRpeCA8IDEw
ID8gcmFkaXggOiAxMCk7CisgICAgdW5zaWduZWQgbGltaXRhID0gJ2EnICsgKHJhZGl4IC0gMTAp
OworICAgIHVuc2lnbmVkIGxpbWl0QSA9ICdBJyArIChyYWRpeCAtIDEwKTsKIAogICAgIEpTQmln
SW50KiByZXN1bHQgPSBhbGxvY2F0ZUZvcihzdGF0ZSwgdm0sIHJhZGl4LCBsZW5ndGggLSBwKTsK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAogICAgIHJlc3VsdC0+
aW5pdGlhbGl6ZShJbml0aWFsaXphdGlvblR5cGU6OldpdGhaZXJvKTsKIAotICAgIGZvciAoaW50
IGkgPSBwOyBpIDwgbGVuZ3RoOyBpKyssIHArKykgeworICAgIGZvciAodW5zaWduZWQgaSA9IHA7
IGkgPCBsZW5ndGg7IGkrKywgcCsrKSB7CiAgICAgICAgIHVpbnQzMl90IGRpZ2l0OwogICAgICAg
ICBpZiAoZGF0YVtpXSA+PSAnMCcgJiYgZGF0YVtpXSA8IGxpbWl0MCkKICAgICAgICAgICAgIGRp
Z2l0ID0gZGF0YVtpXSAtICcwJzsKQEAgLTgyMiwxMyArODg3LDEzIEBAIEpTQmlnSW50OjpEaWdp
dCogSlNCaWdJbnQ6OmRhdGFTdG9yYWdlKCkKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxE
aWdpdCo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHRoaXMpICsgb2Zmc2V0T2ZEYXRhKCkpOwog
fQogCi1KU0JpZ0ludDo6RGlnaXQgSlNCaWdJbnQ6OmRpZ2l0KGludCBuKQorSlNCaWdJbnQ6OkRp
Z2l0IEpTQmlnSW50OjpkaWdpdCh1bnNpZ25lZCBuKQogewogICAgIEFTU0VSVChuID49IDAgJiYg
biA8IGxlbmd0aCgpKTsKICAgICByZXR1cm4gZGF0YVN0b3JhZ2UoKVtuXTsKIH0KIAotdm9pZCBK
U0JpZ0ludDo6c2V0RGlnaXQoaW50IG4sIERpZ2l0IHZhbHVlKQordm9pZCBKU0JpZ0ludDo6c2V0
RGlnaXQodW5zaWduZWQgbiwgRGlnaXQgdmFsdWUpCiB7CiAgICAgQVNTRVJUKG4gPj0gMCAmJiBu
IDwgbGVuZ3RoKCkpOwogICAgIGRhdGFTdG9yYWdlKClbbl0gPSB2YWx1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCmluZGV4IDI5OGMzNDhjZDJiNGU1YWI1YzkyYzdi
Yjc5OWEzMGYzZWJmYTYyMzEuLmViMTJjMDA0NjZlMzU2ZmZkYWRmYTM2NjQxNGMwN2NkMDNiYzQ2
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaApAQCAtNDEsNyAr
NDEsNyBAQCBjbGFzcyBKU0JpZ0ludCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogCiBwdWJsaWM6
CiAKLSAgICBKU0JpZ0ludChWTSYsIFN0cnVjdHVyZSosIGludCBsZW5ndGgpOworICAgIEpTQmln
SW50KFZNJiwgU3RydWN0dXJlKiwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIGVudW0gY2xhc3Mg
SW5pdGlhbGl6YXRpb25UeXBlIHsgTm9uZSwgV2l0aFplcm8gfTsKICAgICB2b2lkIGluaXRpYWxp
emUoSW5pdGlhbGl6YXRpb25UeXBlKTsKQEAgLTQ5LDEyICs0OSwxMSBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAg
c3RhdGljIHNpemVfdCBlc3RpbWF0ZWRTaXplKEpTQ2VsbCopOwotICAgIHN0YXRpYyBzaXplX3Qg
YWxsb2NhdGlvblNpemUoaW50IGxlbmd0aCk7CisgICAgc3RhdGljIHNpemVfdCBhbGxvY2F0aW9u
U2l6ZSh1bnNpZ25lZCBsZW5ndGgpOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7Ci0KICAgICBz
dGF0aWMgSlNCaWdJbnQqIGNyZWF0ZVplcm8oVk0mKTsKLSAgICBzdGF0aWMgSlNCaWdJbnQqIGNy
ZWF0ZVdpdGhMZW5ndGgoVk0mLCBpbnQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgSlNCaWdJbnQqIGNy
ZWF0ZVdpdGhMZW5ndGgoVk0mLCB1bnNpZ25lZCBsZW5ndGgpOwogCiAgICAgc3RhdGljIEpTQmln
SW50KiBjcmVhdGVGcm9tKFZNJiwgaW50MzJfdCB2YWx1ZSk7CiAgICAgc3RhdGljIEpTQmlnSW50
KiBjcmVhdGVGcm9tKFZNJiwgdWludDMyX3QgdmFsdWUpOwpAQCAtNzAsMTQgKzY5LDE0IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFNpZ24oYm9vbCBzaWduKSB7IG1fc2lnbiA9IHNpZ247IH0KICAg
ICBib29sIHNpZ24oKSBjb25zdCB7IHJldHVybiBtX3NpZ247IH0KIAotICAgIHZvaWQgc2V0TGVu
Z3RoKGludCBsZW5ndGgpIHsgbV9sZW5ndGggPSBsZW5ndGg7IH0KLSAgICBpbnQgbGVuZ3RoKCkg
Y29uc3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KKyAgICB2b2lkIHNldExlbmd0aCh1bnNpZ25lZCBs
ZW5ndGgpIHsgbV9sZW5ndGggPSBsZW5ndGg7IH0KKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25z
dCB7IHJldHVybiBtX2xlbmd0aDsgfQogCiAgICAgc3RhdGljIEpTQmlnSW50KiBwYXJzZUludChF
eGVjU3RhdGUqLCBWTSYsIFN0cmluZ1ZpZXcsIHVpbnQ4X3QgcmFkaXgpOwogICAgIHN0YXRpYyBK
U0JpZ0ludCogcGFyc2VJbnQoRXhlY1N0YXRlKiwgU3RyaW5nVmlldyk7CiAKICAgICBzdGQ6Om9w
dGlvbmFsPHVpbnQ4X3Q+IHNpbmdsZURpZ2l0VmFsdWVGb3JTdHJpbmcoKTsKLSAgICBTdHJpbmcg
dG9TdHJpbmcoRXhlY1N0YXRlJiwgaW50IHJhZGl4KTsKKyAgICBTdHJpbmcgdG9TdHJpbmcoRXhl
Y1N0YXRlJiwgdW5zaWduZWQgcmFkaXgpOwogICAgIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0
YXRpYyBib29sIGVxdWFscyhKU0JpZ0ludCosIEpTQmlnSW50Kik7CiAKQEAgLTg1LDEyICs4NCwx
NCBAQCBwdWJsaWM6CiAgICAgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwogCiAg
ICAgSlNPYmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7
CisKKyAgICBzdGF0aWMgSlNCaWdJbnQqIG11bHRpcGx5KEV4ZWNTdGF0ZSosIEpTQmlnSW50KiB4
LCBKU0JpZ0ludCogeSk7CiAgICAgCiBwcml2YXRlOgogICAgIHVzaW5nIERpZ2l0ID0gdWludHB0
cl90OwotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgaW50IGJpdHNQZXJCeXRlID0gODsKLSAg
ICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGludCBkaWdpdEJpdHMgPSBzaXplb2YoRGlnaXQpICog
Yml0c1BlckJ5dGU7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQgaGFsZkRpZ2l0Qml0
cyA9IGRpZ2l0Qml0cyAvIDI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCB1bnNpZ25lZCBi
aXRzUGVyQnl0ZSA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCB1bnNpZ25lZCBkaWdp
dEJpdHMgPSBzaXplb2YoRGlnaXQpICogYml0c1BlckJ5dGU7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBjb25zdCB1bnNpZ25lZCBoYWxmRGlnaXRCaXRzID0gZGlnaXRCaXRzIC8gMjsKICAgICBzdGF0
aWMgY29uc3RleHByIGNvbnN0IERpZ2l0IGhhbGZEaWdpdE1hc2sgPSAoMXVsbCA8PCBoYWxmRGln
aXRCaXRzKSAtIDE7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQgbWF4SW50ID0gMHg3
RkZGRkZGRjsKICAgICAKQEAgLTk4LDEyICs5OSwxMyBAQCBwcml2YXRlOgogICAgIC8vIG1heElu
dCAvIGRpZ2l0Qml0cy4gSG93ZXZlciwgd2UgdXNlIGEgbG93ZXIgbGltaXQgZm9yIG5vdywgYmVj
YXVzZQogICAgIC8vIHJhaXNpbmcgaXQgbGF0ZXIgaXMgZWFzaWVyIHRoYW4gbG93ZXJpbmcgaXQu
CiAgICAgLy8gU3VwcG9ydCB1cCB0byAxIG1pbGxpb24gYml0cy4KLSAgICBzdGF0aWMgY29uc3Qg
aW50IG1heExlbmd0aCA9IDEwMjQgKiAxMDI0IC8gKHNpemVvZih2b2lkKikgKiBiaXRzUGVyQnl0
ZSk7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heExlbmd0aCA9IDEwMjQgKiAxMDI0IC8g
KHNpemVvZih2b2lkKikgKiBiaXRzUGVyQnl0ZSk7CiAgICAgCi0gICAgc3RhdGljIHVpbnQ2NF90
IGNhbGN1bGF0ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQoaW50IGxlbmd0aCwgaW50IHJhZGl4
LCBEaWdpdCBsYXN0RGlnaXQsIGJvb2wgc2lnbik7CisgICAgc3RhdGljIHVpbnQ2NF90IGNhbGN1
bGF0ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQodW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCBy
YWRpeCwgRGlnaXQgbGFzdERpZ2l0LCBib29sIHNpZ24pOwogICAgIAogICAgIHN0YXRpYyB2b2lk
IGFic29sdXRlRGl2U21hbGwoRXhlY1N0YXRlJiwgSlNCaWdJbnQqIHgsIERpZ2l0IGRpdmlzb3Is
IEpTQmlnSW50KiogcXVvdGllbnQsIERpZ2l0JiByZW1haW5kZXIpOwotICAgIHN0YXRpYyB2b2lk
IGludGVybmFsTXVsdGlwbHlBZGQoSlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdp
dCBzdW1tYW5kLCBpbnQsIEpTQmlnSW50KiByZXN1bHQpOworICAgIHN0YXRpYyB2b2lkIGludGVy
bmFsTXVsdGlwbHlBZGQoSlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1t
YW5kLCB1bnNpZ25lZCwgSlNCaWdJbnQqIHJlc3VsdCk7CisgICAgc3RhdGljIHZvaWQgbXVsdGlw
bHlBY2N1bXVsYXRlKEpTQmlnSW50KiBtdWx0aXBsaWNhbmQsIERpZ2l0IG11bHRpcGxpZXIsIEpT
QmlnSW50KiBhY2N1bXVsYXRvciwgdW5zaWduZWQgYWNjdW11bGF0b3JJbmRleCk7CiAKICAgICAv
LyBEaWdpdCBhcml0aG1ldGljIGhlbHBlcnMuCiAgICAgc3RhdGljIERpZ2l0IGRpZ2l0QWRkKERp
Z2l0IGEsIERpZ2l0IGIsIERpZ2l0JiBjYXJyeSk7CkBAIC0xMTIsMTcgKzExNCwxNyBAQCBwcml2
YXRlOgogICAgIHN0YXRpYyBEaWdpdCBkaWdpdERpdihEaWdpdCBoaWdoLCBEaWdpdCBsb3csIERp
Z2l0IGRpdmlzb3IsIERpZ2l0JiByZW1haW5kZXIpOwogICAgIHN0YXRpYyBEaWdpdCBkaWdpdFBv
dyhEaWdpdCBiYXNlLCBEaWdpdCBleHBvbmVudCk7CiAKLSAgICBzdGF0aWMgU3RyaW5nIHRvU3Ry
aW5nR2VuZXJpYyhFeGVjU3RhdGUmLCBKU0JpZ0ludCosIGludCByYWRpeCk7CisgICAgc3RhdGlj
IFN0cmluZyB0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiwgSlNCaWdJbnQqLCB1bnNpZ25lZCBy
YWRpeCk7CiAKICAgICBib29sIGlzWmVybygpOwogCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENo
YXJUeXBlPgotICAgIHN0YXRpYyBKU0JpZ0ludCogcGFyc2VJbnQoRXhlY1N0YXRlKiwgQ2hhclR5
cGUqICBkYXRhLCBpbnQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgSlNCaWdJbnQqIHBhcnNlSW50KEV4
ZWNTdGF0ZSosIENoYXJUeXBlKiAgZGF0YSwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIHRlbXBs
YXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLSAgICBzdGF0aWMgSlNCaWdJbnQqIHBhcnNlSW50KEV4
ZWNTdGF0ZSosIFZNJiwgQ2hhclR5cGUqIGRhdGEsIGludCBsZW5ndGgsIGludCBzdGFydEluZGV4
LCBpbnQgcmFkaXgsIGJvb2wgYWxsb3dFbXB0eVN0cmluZyA9IHRydWUpOworICAgIHN0YXRpYyBK
U0JpZ0ludCogcGFyc2VJbnQoRXhlY1N0YXRlKiwgVk0mLCBDaGFyVHlwZSogZGF0YSwgdW5zaWdu
ZWQgbGVuZ3RoLCB1bnNpZ25lZCBzdGFydEluZGV4LCB1bnNpZ25lZCByYWRpeCwgYm9vbCBhbGxv
d0VtcHR5U3RyaW5nID0gdHJ1ZSk7CiAKLSAgICBzdGF0aWMgSlNCaWdJbnQqIGFsbG9jYXRlRm9y
KEV4ZWNTdGF0ZSosIFZNJiwgaW50IHJhZGl4LCBpbnQgY2hhcmNvdW50KTsKKyAgICBzdGF0aWMg
SlNCaWdJbnQqIGFsbG9jYXRlRm9yKEV4ZWNTdGF0ZSosIFZNJiwgdW5zaWduZWQgcmFkaXgsIHVu
c2lnbmVkIGNoYXJjb3VudCk7CiAKICAgICBKU0JpZ0ludCogcmlnaHRUcmltKFZNJik7CiAKQEAg
LTEzMSwxMCArMTMzLDEwIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZkRh
dGEoKTsKICAgICBEaWdpdCogZGF0YVN0b3JhZ2UoKTsKIAotICAgIERpZ2l0IGRpZ2l0KGludCk7
Ci0gICAgdm9pZCBzZXREaWdpdChpbnQsIERpZ2l0KTsKKyAgICBEaWdpdCBkaWdpdCh1bnNpZ25l
ZCk7CisgICAgdm9pZCBzZXREaWdpdCh1bnNpZ25lZCwgRGlnaXQpOwogICAgICAgICAKLSAgICBp
bnQgbV9sZW5ndGg7CisgICAgdW5zaWduZWQgbV9sZW5ndGg7CiAgICAgYm9vbCBtX3NpZ247CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggMjFl
ODBmODc1MDNjN2VmOTFiN2IyMTA1ZWIwYzcyNWRhMmVhYjc2My4uOTFkYzFhNDBmMTRlMzc2NzJm
NDEwMTYwNGMwNjkwZTYwOTdlMThmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDSlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ0pTVmFsdWUuaApAQCAtMzksNiArMzksNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNz
IEFzc2VtYmx5SGVscGVyczsKK2NsYXNzIEpTQmlnSW50OwogY2xhc3MgRXhlY1N0YXRlOwogY2xh
c3MgSlNDZWxsOwogY2xhc3MgSlNWYWx1ZVNvdXJjZTsKQEAgLTI1Nyw2ICsyNTgsOCBAQCBwdWJs
aWM6CiAgICAgLy8gdG9OdW1iZXIgY29udmVyc2lvbiBpcyBleHBlY3RlZCB0byBiZSBzaWRlIGVm
ZmVjdCBmcmVlIGlmIGFuIGV4Y2VwdGlvbiBoYXMKICAgICAvLyBiZWVuIHNldCBpbiB0aGUgRXhl
Y1N0YXRlIGFscmVhZHkuCiAgICAgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0Owor
ICAgIAorICAgIFZhcmlhbnQ8SlNCaWdJbnQqLCBkb3VibGU+IHRvTnVtZXJpYyhFeGVjU3RhdGUq
KSBjb25zdDsKIAogICAgIC8vIHRvTnVtYmVyIGNvbnZlcnNpb24gaWYgaXQgY2FuIGJlIGRvbmUg
d2l0aG91dCBzaWRlIGVmZmVjdHMuCiAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHRvTnVtYmVy
RnJvbVByaW1pdGl2ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKaW5kZXggZDBkMzc5OWZiMzllYzMxODJkY2QyMTQ5NjA3
MDYwZTM1YjViMjc5YS4uNTk2N2IxN2RmMzcwYjU4NDUyY2FiN2M4ODg0YTY3YmZlOGI5MDMyMCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGlu
ZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5l
cy5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSlNQcm94eS5oIgogI2luY2x1ZGUgIkpT
U3RyaW5nSW5saW5lcy5oIgogI2luY2x1ZGUgIk1hdGhDb21tb24uaCIKKyNpbmNsdWRlIDx3dGYv
VmFyaWFudC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogbmFtZXNwYWNl
IEpTQyB7CkBAIC03MjgsNiArNzI5LDE0IEBAIEFMV0FZU19JTkxJTkUgZG91YmxlIEpTVmFsdWU6
OnRvTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4gdG9OdW1iZXJTbG93
Q2FzZShleGVjKTsKIH0KIAorQUxXQVlTX0lOTElORSBWYXJpYW50PEpTQmlnSW50KiwgZG91Ymxl
PiBKU1ZhbHVlOjp0b051bWVyaWMoRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIEpTVmFs
dWUgcHJpbVZhbHVlID0gdGhpcy0+dG9QcmltaXRpdmUoZXhlYywgUHJlZmVyTnVtYmVyKTsKKyAg
ICBpZiAocHJpbVZhbHVlLmlzQmlnSW50KCkpCisgICAgICAgIHJldHVybiBhc0JpZ0ludChwcmlt
VmFsdWUpOworICAgIHJldHVybiBwcmltVmFsdWUudG9OdW1iZXIoZXhlYyk7Cit9CisKIGlubGlu
ZSBKU09iamVjdCogSlNWYWx1ZTo6dG9PYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewog
ICAgIHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b09iamVjdChleGVjLCBleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCkpIDogdG9PYmplY3RTbG93Q2FzZShleGVjLCBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9u
cy5oCmluZGV4IDEzNDlhZWMxNmE3YTgzYThhOGE1OTBhY2VmZDU0YjE3OWM5N2JmMWYuLjQ5NTU5
MGJiODg2ZWEwYWYzYmE1ZDgxZWYyMGZmZDc0NTUwMGE3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgKQEAgLTIzLDcgKzIzLDkgQEAKIAogI2luY2x1ZGUg
IkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKKyNpbmNsdWRlICJK
U0JpZ0ludC5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvVmFyaWFu
dC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtMjU2LDYgKzI1OCwyOSBAQCBBTFdBWVNfSU5M
SU5FIEpTVmFsdWUganNBZGQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdjEsIEpTVmFs
dWUgdjIpCiAgICAgcmV0dXJuIGpzQWRkU2xvd0Nhc2UoY2FsbEZyYW1lLCB2MSwgdjIpOwogfQog
CitBTFdBWVNfSU5MSU5FIEpTVmFsdWUganNNdWwoRXhlY1N0YXRlKiBzdGF0ZSwgSlNWYWx1ZSB2
MSwgSlNWYWx1ZSB2MikKK3sKKyAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKKyAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBWYXJpYW50PEpTQmlnSW50Kiwg
ZG91YmxlPiBsZWZ0TnVtZXJpYyA9IHYxLnRvTnVtZXJpYyhzdGF0ZSk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBWYXJpYW50PEpTQmlnSW50KiwgZG91YmxlPiBy
aWdodE51bWVyaWMgPSB2Mi50b051bWVyaWMoc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7CisKKyAgICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxKU0JpZ0lu
dCo+KGxlZnROdW1lcmljKSB8fCBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPEpTQmlnSW50Kj4ocmln
aHROdW1lcmljKSkgeworICAgICAgICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxKU0JpZ0lu
dCo+KGxlZnROdW1lcmljKSAmJiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPEpTQmlnSW50Kj4ocmln
aHROdW1lcmljKSkKKyAgICAgICAgICAgIHJldHVybiBKU0JpZ0ludDo6bXVsdGlwbHkoc3RhdGUs
IFdURjo6Z2V0PEpTQmlnSW50Kj4obGVmdE51bWVyaWMpLCBXVEY6OmdldDxKU0JpZ0ludCo+KHJp
Z2h0TnVtZXJpYykpOworCisgICAgICAgIHRocm93VHlwZUVycm9yKHN0YXRlLCBzY29wZSwgQVND
SUlMaXRlcmFsKCJJbnZhbGlkIG1peCBvZiBCaWdJbnQgYW5kIG90aGVyIHR5cGUgaW4gbXVsdGlw
bGljYXRpb24uIikpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGRvdWJsZSBs
ZWZ0VmFsdWUgPSAgV1RGOjpnZXQ8ZG91YmxlPihsZWZ0TnVtZXJpYyk7CisgICAgZG91YmxlIHJp
Z2h0VmFsdWUgPSAgV1RGOjpnZXQ8ZG91YmxlPihyaWdodE51bWVyaWMpOworICAgIHJldHVybiBq
c051bWJlcihsZWZ0VmFsdWUgKiByaWdodFZhbHVlKTsKK30KKwogaW5saW5lIGJvb2wgc2NyaWJi
bGVGcmVlQ2VsbHMoKQogewogICAgIHJldHVybiAhQVNTRVJUX0RJU0FCTEVEIHx8IE9wdGlvbnM6
OnNjcmliYmxlRnJlZUNlbGxzKCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pT
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDEzOTJhMGRhOThmM2E5YTE0MjhjOTdjM2Q2MjY4NzllMDc3
ZDUyNzQuLmM5OTMyNWI0YWFhY2ZhOWM4NzY2YjI2NDg1MzJlNzg1ZjgyNTY4ZjMgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTkgQEAKKzIwMTgtMDUtMDEgIENhaW8gTGltYSAgPHRpY2Fpb2xpbWFAZ21haWwuY29tPgorCisg
ICAgICAgIFtFU05leHRdW0JpZ0ludF0gSW1wbGVtZW50IHN1cHBvcnQgZm9yICIqIiBvcGVyYXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzcy
MQorCisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgICogYmlnSW50
VGVzdHMueWFtbDoKKyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWwtaml0LmpzOiBBZGRlZC4K
KyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLXByZWNlZGVuY2UuanM6
IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUuanM6IEFk
ZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11bC10eXBlLWVycm9yLmpzOiBBZGRlZC4K
KyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWwtd3JhcHBlZC12YWx1ZS5qczogQWRkZWQuCisg
ICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVsdGlwbGljYXRpb24uanM6IEFkZGVkLgorICAgICAg
ICAqIHN0cmVzcy9iaWctaW50LW11bHRpcGx5LW1lbW9yeS1zdHJlc3MuanM6IEFkZGVkLgorCiAy
MDE4LTA0LTI4ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjMxMTMxLgpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9iaWdJbnRUZXN0cy55YW1sIGIvSlNUZXN0cy9iaWdJbnRUZXN0cy55YW1sCmluZGV4IDdhZTIy
Y2IxYmIyYWZmNjJjYzRkZGY0OTYyOTlmOTZhMDc0NGY3YWUuLmU5NDdkYzI5NDVhZGY5MGQwNzdm
YzgzN2Q1NTgzYTFkMDhlM2JjOTEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvYmlnSW50VGVzdHMueWFt
bAorKysgYi9KU1Rlc3RzL2JpZ0ludFRlc3RzLnlhbWwKQEAgLTk3LDMgKzk3LDI0IEBACiAtIHBh
dGg6IHN0cmVzcy9iaWctaW50LXRvLXN0cmluZy5qcwogICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQK
IAorLSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWwtaml0LmpzCisgIGNtZDogcnVuQmlnSW50RW5h
YmxlZAorCistIHBhdGg6IHN0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUtcHJlY2VkZW5j
ZS5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKworLSBwYXRoOiBzdHJlc3MvYmlnLWludC1t
dWwtdG8tcHJpbWl0aXZlLmpzCisgIGNtZDogcnVuQmlnSW50RW5hYmxlZAorCistIHBhdGg6IHN0
cmVzcy9iaWctaW50LW11bC10eXBlLWVycm9yLmpzCisgIGNtZDogcnVuQmlnSW50RW5hYmxlZAor
CistIHBhdGg6IHN0cmVzcy9iaWctaW50LW11bC13cmFwcGVkLXZhbHVlLmpzCisgIGNtZDogcnVu
QmlnSW50RW5hYmxlZAorCistIHBhdGg6IHN0cmVzcy9iaWctaW50LW11bHRpcGxpY2F0aW9uLmpz
CisgIGNtZDogcnVuQmlnSW50RW5hYmxlZAorCistIHBhdGg6IHN0cmVzcy9iaWctaW50LW11bHRp
cGx5LW1lbW9yeS1zdHJlc3MuanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2Jp
Zy1pbnQtbXVsLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2JlZGUzMTg3NWQyMWZiMzgyMmU3ZjI4ZmYw
NWJjYWNhMWM5ZjdhCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1t
dWwtaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKK2xldCBh
c3NlcnQgPSB7CisgICAgc2FtZVZhbHVlOiBmdW5jdGlvbihpLCBlLCBtKSB7CisgICAgICAgIGlm
IChpICE9PSBlKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG0pOworICAgIH0KK30KKwor
ZnVuY3Rpb24gYmlnSW50TXVsKHgsIHkpIHsKKyAgICByZXR1cm4geCAqIHk7Cit9Citub0lubGlu
ZShiaWdJbnRNdWwpOworCitmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsKKyAgICBs
ZXQgciA9IGJpZ0ludE11bCgzbiwgMTBuKTsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKHIsIDMwbiwg
M24gKyAiICogIiArIDEwbiArICIgPSAiICsgcik7Cit9CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS1wcmVjZWRlbmNlLmpzIGIvSlNUZXN0cy9z
dHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLXByZWNlZGVuY2UuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzE0OWExOTY4N2UxNGFlZTcwMTNiMzY4NjQ0OTJlNjgyYmQ1ZTc1ZQotLS0gL2Rldi9udWxsCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS1wcmVjZWRlbmNlLmpz
CkBAIC0wLDAgKzEsMzkgQEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKK2Fzc2VydCA9IHsKKyAg
ICBzYW1lVmFsdWU6IGZ1bmN0aW9uIChpbnB1dCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAgICAg
ICAgaWYgKGlucHV0ICE9PSBleHBlY3RlZCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvciht
ZXNzYWdlKTsKKyAgICB9Cit9OworCitmdW5jdGlvbiB0ZXN0TXVsKHgsIHksIHosIG1lc3NhZ2Up
IHsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKHggKiB5LCB6LCBtZXNzYWdlKTsKKyAgICBhc3NlcnQu
c2FtZVZhbHVlKHkgKiB4LCB6LCBtZXNzYWdlKTsKK30KKwordGVzdE11bChPYmplY3QoMm4pLCAx
biwgMm4sICJUb1ByaW1pdGl2ZTogdW5ib3ggb2JqZWN0IHdpdGggaW50ZXJuYWwgc2xvdCIpOwor
CitsZXQgbyA9IHsKKyAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24oKSB7CisgICAg
ICAgIHJldHVybiAybjsKKyAgICB9LAorICAgIHZhbHVlT2Y6IGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGQgbmV2ZXIgZXhlY3V0ZSBpdCIpOworICAgIH0sCisg
ICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91
bGQgbmV2ZXIgZXhlY3V0ZSBpdCIpOworICAgIH0KK307Cit0ZXN0TXVsKG8sIDFuLCAybiwgIlRv
UHJpbWl0aXZlOiBAQHRvUHJpbWl0aXZlIik7CisKK28gPSB7CisgICAgdmFsdWVPZjogZnVuY3Rp
b24oKSB7CisgICAgICAgIHJldHVybiAybjsKKyAgICB9LAorICAgIHRvU3RyaW5nOiBmdW5jdGlv
biAoKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiU2hvdWxkIG5ldmVyIGV4ZWN1dGUgaXQi
KTsKKyAgICB9Cit9OwordGVzdE11bChvLCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogdmFsdWVPZiIp
OworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUu
anMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjQyZTJlOGUyOTExOWUyN2QxMzU3N2NiNTdhYzJmOTczNTBmZTZjYwotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS5qcwpAQCAtMCww
ICsxLDM1IEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCitmdW5jdGlvbiBhc3NlcnQoYSkgewor
ICAgIGlmICghYSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgYXNzZXJ0aW9uIik7Cit9
CisKK2Fzc2VydC5zYW1lVmFsdWUgPSBmdW5jdGlvbiAoaW5wdXQsIGV4cGVjdGVkLCBtZXNzYWdl
KSB7CisgICAgaWYgKGlucHV0ICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KG1lc3NhZ2UpOworfQorCitmdW5jdGlvbiB0ZXN0TXVsKHgsIHksIHopIHsKKyAgICBhc3NlcnQu
c2FtZVZhbHVlKHggKiB5LCB6LCB4ICsgIiAqICIgKyB5ICsgIiA9ICIgKyB6KTsKKyAgICBhc3Nl
cnQuc2FtZVZhbHVlKHkgKiB4LCB6LCB5ICsgIiAqICIgKyB4ICsgIiA9ICIgKyB6KTsKK30KKwor
bGV0IG8gPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9uICgpIHsgcmV0dXJu
IDMwMDAwMDAwMDAwMDAwMG47IH0KK30KKwordGVzdE11bCg1MDAwMDAwMDAwMDA0MzhuLCBvLCAx
NTAwMDAwMDAwMDAxMzE0MDAwMDAwMDAwMDAwMDBuKTsKKworby52YWx1ZU9mID0gZnVuY3Rpb24g
KCkgeworICAgIHRocm93IG5ldyBFcnJvcigiU2hvdWxkIG5ldmVyIGV4ZWN1dGUgaXQiKTsKK307
CisKK3Rlc3RNdWwoNzAwMDAwMDAwMDAwNDM4biwgbywgMjEwMDAwMDAwMDAwMTMxNDAwMDAwMDAw
MDAwMDAwbik7CisKK28udG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7CisgICAgdGhyb3cgbmV3IEVy
cm9yKCJTaG91bGQgbmV2ZXIgZXhlY3V0ZSBpdCIpOworfTsKKwordGVzdE11bCg3MDAwMDAwMDAw
MDA0MzhuLCBvLCAyMTAwMDAwMDAwMDAxMzE0MDAwMDAwMDAwMDAwMDBuKTsKKwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdHlwZS1lcnJvci5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL2JpZy1pbnQtbXVsLXR5cGUtZXJyb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUxNzg0NTdmYjYyMzc1
N2ZkMGU3NzM1NzdkYzM5NmYyZjMwZmU2MAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL2JpZy1pbnQtbXVsLXR5cGUtZXJyb3IuanMKQEAgLTAsMCArMSwxMDYgQEAKKy8vQCBydW5C
aWdJbnRFbmFibGVkCisKK2Z1bmN0aW9uIGFzc2VydChhLCBtZXNzYWdlKSB7CisgICAgaWYgKCFh
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7Cit9CisKK2Z1bmN0aW9uIGFzc2Vy
dFRocm93VHlwZUVycm9yKGEsIGIsIG1lc3NhZ2UpIHsKKyAgICB0cnkgeworICAgICAgICBsZXQg
biA9IGEgKiBiOworICAgICAgICBhc3NlcnQoZmFsc2UsIG1lc3NhZ2UgKyAiOiBTaG91bGQgdGhy
b3cgVHlwZUVycm9yLCBidXQgZXhlY3V0ZWQgd2l0aG91dCBleGNlcHRpb24iKTsKKyAgICB9IGNh
dGNoIChlKSB7CisgICAgICAgIGFzc2VydChlIGluc3RhbmNlb2YgVHlwZUVycm9yLCBtZXNzYWdl
ICsgIjogZXhwZWN0ZWQgVHlwZUVycm9yLCBnb3Q6ICIgKyBlKTsKKyAgICB9Cit9CisKK2Fzc2Vy
dFRocm93VHlwZUVycm9yKDMwbiwgImZvbyIsICJCaWdJbnQgKiBTdHJpbmciKTsKK2Fzc2VydFRo
cm93VHlwZUVycm9yKCJiYXIiLCAxODc1NzM4Mjk4NDgyMW4sICJTdHJpbmcgKiBCaWdJbnQiKTsK
K2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgU3ltYm9sKCJmb28iKSwgIkJpZ0ludCAqIFN5bWJv
bCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoU3ltYm9sKCJiYXIiKSwgMTg3NTczODI5ODQ4MjFu
LCAiU3ltYm9sICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIDMzMjAsICJC
aWdJbnQgKiBJbnQzMiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzMyNTYsIDE4NzU3MzgyOTg0
ODIxbiwgIkludDMyICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIDAuNTQz
LCAiQmlnSW50ICogRG91YmxlIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigyMzAuMTkyOTMsIDE4
NzU3MzgyOTg0ODIxbiwgIkRvdWJsZSAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3Io
MzBuLCBOYU4sICJCaWdJbnQgKiBOYU4iKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKE5hTiwgMTg3
NTczODI5ODQ4MjFuLCAiTmFOICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4s
IE5hTiwgIkJpZ0ludCAqIE5hTiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoTmFOLCAxODc1NzM4
Mjk4NDgyMW4sICJOYU4gKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgK0lu
ZmluaXR5LCAiQmlnSW50ICogTmFOIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigrSW5maW5pdHks
IDE4NzU3MzgyOTg0ODIxbiwgIk5hTiAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3Io
MzBuLCAtSW5maW5pdHksICJCaWdJbnQgKiAtSW5maW5pdHkiKTsKK2Fzc2VydFRocm93VHlwZUVy
cm9yKC1JbmZpbml0eSwgMTg3NTczODI5ODQ4MjFuLCAiLUluZmluaXR5ICogQmlnSW50Iik7Cith
c3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG51bGwsICJCaWdJbnQgKiBudWxsIik7Cithc3NlcnRU
aHJvd1R5cGVFcnJvcihudWxsLCAxODc1NzM4Mjk4NDgyMW4sICJudWxsICogQmlnSW50Iik7Cith
c3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIHVuZGVmaW5lZCwgIkJpZ0ludCAqIHVuZGVmaW5lZCIp
OworYXNzZXJ0VGhyb3dUeXBlRXJyb3IodW5kZWZpbmVkLCAxODc1NzM4Mjk4NDgyMW4sICJ1bmRl
ZmluZWQgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgdHJ1ZSwgIkJpZ0lu
dCAqIHRydWUiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKHRydWUsIDE4NzU3MzgyOTg0ODIxbiwg
InRydWUgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgZmFsc2UsICJCaWdJ
bnQgKiBmYWxzZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoZmFsc2UsIDE4NzU3MzgyOTg0ODIx
biwgImZhbHNlICogQmlnSW50Iik7CisKKy8vIEVycm9yIHdoZW4gcmV0dXJuaW5nIGZyb20gb2Jq
ZWN0CisKK2xldCBvID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFN5bWJv
bCgiRm9vIik7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAq
IE9iamVjdC52YWx1ZU9mIHJldHVybmluZyBTeW1ib2wiKTsKK2Fzc2VydFRocm93VHlwZUVycm9y
KG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC52YWx1ZU9mIHJldHVybmluZyBTeW1ib2wgKiBC
aWdJbnQiKTsKKworbyA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7IHJldHVybiAzMzI1
NjsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0
LnZhbHVlT2YgcmV0dXJuaW5nIEludDMyIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihvLCAxODc1
NzM4Mjk4NDgyMW4sICJPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgSW50MzIgKiBCaWdJbnQiKTsK
KworbyA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7IHJldHVybiAwLjQ1MzsgfQorfTsK
KworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LnZhbHVlT2Yg
cmV0dXJuaW5nIERvdWJsZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4
MjFuLCAiT2JqZWN0LnZhbHVlT2YgcmV0dXJuaW5nIERvdWJsZSAqIEJpZ0ludCIpOworCitvID0g
eworICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7IHJldHVybiBTeW1ib2woIkZvbyIpOyB9Cit9
OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QudG9TdHJp
bmcgcmV0dXJuaW5nIFN5bWJvbCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5
ODQ4MjFuLCAiT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBTeW1ib2wgKiBCaWdJbnQiKTsKKwor
byA9IHsKKyAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgeyByZXR1cm4gMzMyNTY7IH0KK307CisK
K2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC50b1N0cmluZyBy
ZXR1cm5pbmcgSW50MzIiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIx
biwgIk9iamVjdC50b1N0cmluZyByZXR1cm5pbmcgSW50MzIgKiBCaWdJbnQiKTsKKworbyA9IHsK
KyAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgeyByZXR1cm4gMC40NTM7IH0KK307CisKK2Fzc2Vy
dFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC50b1N0cmluZyByZXR1cm5p
bmcgRG91YmxlIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJP
YmplY3QudG9TdHJpbmcgcmV0dXJuaW5nIERvdWJsZSAqIEJpZ0ludCIpOworCitvID0geworICAg
IFtTeW1ib2wudG9QcmltaXRpdmVdOiBmdW5jdGlvbiAoKSB7IHJldHVybiBTeW1ib2woIkZvbyIp
OyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3Qu
QEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcgU3ltYm9sIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihv
LCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcgU3ltYm9s
ICogQmlnSW50Iik7CisKK28gPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9u
ICgpIHsgcmV0dXJuIDMzMjU2OyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8s
ICJCaWdJbnQgKiBPYmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcgSW50MzIiKTsKK2Fzc2Vy
dFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC5AQHRvUHJpbWl0aXZl
IHJldHVybmluZyBJbnQzMiAqIEJpZ0ludCIpOworCitvID0geworICAgIFtTeW1ib2wudG9Qcmlt
aXRpdmVdOiBmdW5jdGlvbiAoKSB7IHJldHVybiAwLjQ1MzsgfQorfTsKKworYXNzZXJ0VGhyb3dU
eXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5n
IERvdWJsZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2Jq
ZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5nIERvdWJsZSAqIEJpZ0ludCIpOworCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC13cmFwcGVkLXZhbHVlLmpzIGIvSlNUZXN0
cy9zdHJlc3MvYmlnLWludC1tdWwtd3JhcHBlZC12YWx1ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjczZDhh
NjAzMDJmYWY2NmRmYTZjZmExZWIxMzcwZWM4YzIyYzNhCi0tLSAvZGV2L251bGwKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtd3JhcHBlZC12YWx1ZS5qcwpAQCAtMCwwICsxLDM3IEBA
CisvL0AgcnVuQmlnSW50RW5hYmxlZAorCithc3NlcnQgPSB7CisgICAgc2FtZVZhbHVlOiBmdW5j
dGlvbiAoaW5wdXQsIGV4cGVjdGVkLCBtZXNzYWdlKSB7CisgICAgICAgIGlmIChpbnB1dCAhPT0g
ZXhwZWN0ZWQpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7CisgICAgfQor
fTsKKworZnVuY3Rpb24gdGVzdE11bCh4LCB5LCB6LCBtZXNzYWdlKSB7CisgICAgYXNzZXJ0LnNh
bWVWYWx1ZSh4ICogeSwgeiwgbWVzc2FnZSk7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh5ICogeCwg
eiwgbWVzc2FnZSk7Cit9CisKK3Rlc3RNdWwoT2JqZWN0KDJuKSwgMW4sIDJuLCAiVG9QcmltaXRp
dmU6IHVuYm94IG9iamVjdCB3aXRoIGludGVybmFsIHNsb3QiKTsKKworbGV0IG8gPSB7CisgICAg
W1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gMm47Cisg
ICAgfQorfTsKK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9QcmltaXRpdmU6IEBAdG9QcmltaXRpdmUi
KTsKKworbyA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIDJu
OworICAgIH0KK307Cit0ZXN0TXVsKG8sIDFuLCAybiwgIlRvUHJpbWl0aXZlOiB2YWx1ZU9mIik7
CisKK28gPSB7CisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gMm47
CisgICAgfQorfQordGVzdE11bChvLCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogdG9TdHJpbmciKTsK
KwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0aXBsaWNhdGlvbi5qcyBi
L0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbGljYXRpb24uanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Vj
ZDYzNmQ3Zjg5YTI0YWNmYmI4MWQ3MmQ3NTVjMjI4ZmU2ZmFkOQotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbGljYXRpb24uanMKQEAgLTAsMCArMSw4MyBA
QAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFJvYmluIFRl
bXBsZXRvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBi
eSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworYXNzZXJ0ID0g
eworICAgIHNhbWVWYWx1ZTogZnVuY3Rpb24gKGlucHV0LCBleHBlY3RlZCwgbWVzc2FnZSkgewor
ICAgIGlmIChpbnB1dCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNz
YWdlKTsKKyAgICB9Cit9OworCitmdW5jdGlvbiB0ZXN0TXVsKHgsIHksIHopIHsKKyAgICBhc3Nl
cnQuc2FtZVZhbHVlKHggKiB5LCB6LCB4ICsgIiAqICIgKyB5ICsgIiA9ICIgKyB6KTsKKyAgICBh
c3NlcnQuc2FtZVZhbHVlKHkgKiB4LCB6LCB5ICsgIiAqICIgKyB4ICsgIiA9ICIgKyB6KTsKK30K
KwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweEZFRENCQTk4NzY1NDMyMTBuLCAweEZE
QkFDMDk3QzhEQzVBQ0NERUVDNkNEN0E0NEE0MTAwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0
MzIxMG4sIDB4RkVEQ0JBOThuLCAweEZEQkFDMDk3NTMwRUNBODY1NDFENTk4MG4pOwordGVzdE11
bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweDEyMzRuLCAweDEyMUY0OUY0OUY0OUY0OUY0QjQwbik7
Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4M24sIDB4MkZDOTYyRkM5NjJGQzk2MzBu
KTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHgybiwgMHgxRkRCOTc1MzBFQ0E4NjQy
MG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweDFuLCAweEZFRENCQTk4NzY1NDMy
MTBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHgwbiwgMHgwbik7Cit0ZXN0TXVs
KDB4RkVEQ0JBOTg3NjU0MzIxMG4sIEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0
OTMwNjQ3MjAiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIEJpZ0ludCgiLTIiKSwg
QmlnSW50KCItMzY3Mjk1MTcwODg5ODYxMjk0NDAiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0
MzIxMG4sIEJpZ0ludCgiLTMiKSwgQmlnSW50KCItNTUwOTQyNzU2MzM0NzkxOTQxNjAiKSk7Cit0
ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIEJpZ0ludCgiLTQ2NjAiKSwgQmlnSW50KCItODU1
Nzk3NzQ4MTczMzc2ODE1OTUyMDAiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIEJp
Z0ludCgiLTQyNzU4Nzg1NTEiKSwgQmlnSW50KCItNzg1MjU0NzcxNTQ2OTE4NzQ2MDQ1MDI4MjA3
MjAiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4RkVEQ0JBOTg3NjU0MzIwRm4s
IDB4RkRCQUMwOTdDOERDNUFDQUUxMzJGN0E2QjdBMURDRTFuKTsKK3Rlc3RNdWwoMHhGRURDQkE5
ODc2NTQzMjBGbiwgMHhGRURDQkE5N24sIDB4RkRCQUMwOTY1NDMyMEZFQ0RFRUM2Q0Q5bik7Cit0
ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4M24sIDB4MkZDOTYyRkM5NjJGQzk2MkRuKTsK
K3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgMHgybiwgMHgxRkRCOTc1MzBFQ0E4NjQxRW4p
OwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweDFuLCAweEZFRENCQTk4NzY1NDMyMEZu
KTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgMHgwbiwgMHgwbik7Cit0ZXN0TXVsKDB4
RkVEQ0JBOTg3NjU0MzIwRm4sIEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMw
NjQ3MTkiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIEJpZ0ludCgiLTIiKSwgQmln
SW50KCItMzY3Mjk1MTcwODg5ODYxMjk0MzgiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIw
Rm4sIEJpZ0ludCgiLTMiKSwgQmlnSW50KCItNTUwOTQyNzU2MzM0NzkxOTQxNTciKSk7Cit0ZXN0
TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIEJpZ0ludCgiLTQyNzU4Nzg1NTEiKSwgQmlnSW50KCIt
Nzg1MjU0NzcxNTQ2OTE4NzQ2MDAyMjY5NDIxNjkiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0
MzIwRm4sIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIEJpZ0ludCgiLTMzNzI2NDM1
NjM5NzUzMTAyODk3NjYwODI4OTYzMzYxNTYxMzY4MCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4s
IDB4RkVEQ0JBOThuLCAweEZEQkFDMDk2REQ0MTNBNDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4s
IDB4MTIzNG4sIDB4MTIxRjQ5RjQ5NkUwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCAweDNuLCAw
eDJGQzk2MkZDOG4pOwordGVzdE11bCgweEZFRENCQTk4biwgMHgybiwgMHgxRkRCOTc1MzBuKTsK
K3Rlc3RNdWwoMHhGRURDQkE5OG4sIDB4MW4sIDB4RkVEQ0JBOThuKTsKK3Rlc3RNdWwoMHhGRURD
QkE5OG4sIDB4MG4sIDB4MG4pOwordGVzdE11bCgweEZFRENCQTk4biwgQmlnSW50KCItMSIpLCBC
aWdJbnQoIi00Mjc1ODc4NTUyIikpOwordGVzdE11bCgweEZFRENCQTk4biwgQmlnSW50KCItMiIp
LCBCaWdJbnQoIi04NTUxNzU3MTA0IikpOwordGVzdE11bCgweEZFRENCQTk4biwgQmlnSW50KCIt
MyIpLCBCaWdJbnQoIi0xMjgyNzYzNTY1NiIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0lu
dCgiLTQyNzU4Nzg1NTEiKSwgQmlnSW50KCItMTgyODMxMzczODcxNzc3MzgxNTIiKSk7Cit0ZXN0
TXVsKDB4RkVEQ0JBOThuLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpLCBCaWdJbnQo
Ii03ODUyNTQ3NzE3MzA1NjYzMzE0ODk5NTg4NTQ0MCIpKTsKK3Rlc3RNdWwoMHgzbiwgMHgzbiwg
MHg5bik7Cit0ZXN0TXVsKDB4M24sIDB4Mm4sIDB4Nm4pOwordGVzdE11bCgweDNuLCAweDFuLCAw
eDNuKTsKK3Rlc3RNdWwoMHgzbiwgMHgwbiwgMHgwbik7Cit0ZXN0TXVsKDB4M24sIEJpZ0ludCgi
LTEiKSwgQmlnSW50KCItMyIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItMiIpLCBCaWdJbnQo
Ii02IikpOwordGVzdE11bCgweDNuLCBCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTkiKSk7Cit0ZXN0
TXVsKDB4M24sIEJpZ0ludCgiLTQ2NjAiKSwgQmlnSW50KCItMTM5ODAiKSk7Cit0ZXN0TXVsKDB4
M24sIEJpZ0ludCgiLTQyNzU4Nzg1NTIiKSwgQmlnSW50KCItMTI4Mjc2MzU2NTYiKSk7Cit0ZXN0
TXVsKDB4M24sIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIEJpZ0ludCgiLTU1MDk0
Mjc1NjMzNDc5MTk0MTYwIikpOwordGVzdE11bCgweDBuLCAweDBuLCAweDBuKTsKK3Rlc3RNdWwo
MHgwbiwgQmlnSW50KCItMSIpLCAweDBuKTsKK3Rlc3RNdWwoMHgwbiwgQmlnSW50KCItMiIpLCAw
eDBuKTsKK3Rlc3RNdWwoMHgwbiwgQmlnSW50KCItMyIpLCAweDBuKTsKK3Rlc3RNdWwoMHgwbiwg
QmlnSW50KCItNDI3NTg3ODU1MSIpLCAweDBuKTsKK3Rlc3RNdWwoMHgwbiwgQmlnSW50KCItMTgz
NjQ3NTg1NDQ0OTMwNjQ3MTkiKSwgMHgwbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50
KCItMSIpLCAweDFuKTsKK3Rlc3RNdWwoQmlnSW50KCItMSIpLCBCaWdJbnQoIi0yIiksIDB4Mm4p
OwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTMiKSwgMHgzbik7Cit0ZXN0TXVsKEJp
Z0ludCgiLTEiKSwgQmlnSW50KCItNDY2MCIpLCAweDEyMzRuKTsKK3Rlc3RNdWwoQmlnSW50KCIt
MSIpLCBCaWdJbnQoIi00Mjc1ODc4NTUxIiksIDB4RkVEQ0JBOTduKTsKK3Rlc3RNdWwoQmlnSW50
KCItMSIpLCBCaWdJbnQoIi00Mjc1ODc4NTUyIiksIDB4RkVEQ0JBOThuKTsKK3Rlc3RNdWwoQmln
SW50KCItMSIpLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcxOSIpLCAweEZFRENCQTk4NzY1
NDMyMEZuKTsKK3Rlc3RNdWwoQmlnSW50KCItMSIpLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2
NDcyMCIpLCAweEZFRENCQTk4NzY1NDMyMTBuKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJ
bnQoIi0zIiksIDB4OW4pOwordGVzdE11bChCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTQ2NjAiKSwg
MHgzNjlDbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwgQmlnSW50KCItNDI3NTg3ODU1MSIpLCAw
eDJGQzk2MkZDNW4pOwordGVzdE11bChCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTIi
KSwgMHgyRkM5NjJGQzhuKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi0xODM2NDc1
ODU0NDQ5MzA2NDcxOSIpLCAweDJGQzk2MkZDOTYyRkM5NjJEbik7Cit0ZXN0TXVsKEJpZ0ludCgi
LTMiKSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgMHgyRkM5NjJGQzk2MkZDOTYz
MG4pOwordGVzdE11bChCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpLCBCaWdJbnQoIi0x
ODM2NDc1ODU0NDQ5MzA2NDcyMCIpLCAweEZEQkFDMDk3QzhEQzVBQ0NERUVDNkNEN0E0NEE0MTAw
bik7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbHktbWVtb3J5
LXN0cmVzcy5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbHktbWVtb3J5LXN0cmVz
cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xYWJhYTdlMjhmOWFlZTY1ZDIxYzBkMzZmNjNkZjY4MDIzYjljODk3
Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0aXBseS1tZW1v
cnktc3RyZXNzLmpzCkBAIC0wLDAgKzEsMTUgQEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKK2Z1
bmN0aW9uIGFzc2VydChhKSB7CisgICAgaWYgKCFhKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IkJhZCBhc3NlcnRpb24iKTsKK30KKworbGV0IGEgPSAwbjsKK2xldCBiID0gMW47Citmb3IgKGxl
dCBpID0gMDsgaSA8IDEwMDAwMDA7IGkrKykgeworICAgIGEgPSBiICogMzBuOworfQorCithc3Nl
cnQoYSA9PT0gMzBuKTsKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>339218</attachid>
            <date>2018-05-01 13:12:48 -0700</date>
            <delta_ts>2018-05-01 13:12:48 -0700</delta_ts>
            <desc>Benchmark</desc>
            <filename>baseline_changes_SunSpiderV8SpiderOctaneKrakenTailBenchMicrobenchmarks_Caios-MacBook-Pro_20180501_1543_report.txt</filename>
            <type>text/plain</type>
            <size>90245</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">QmVuY2htYXJrIHJlcG9ydCBmb3IgU3VuU3BpZGVyLCBWOFNwaWRlciwgT2N0YW5lLCBLcmFrZW4s
IFRhaWxCZW5jaCwgYW5kIE1pY3JvYmVuY2htYXJrcyBvbiBDYWlvcy1NYWNCb29rLVBybyAoTWFj
Qm9va1BybzEyLDEpLgoKVk1zIHRlc3RlZDoKImJhc2VsaW5lIiBhdCAvVXNlcnMvY2Fpb2xpbWEv
b3Blbl9wcm9qZWN0cy9XZWJLaXQvV2ViS2l0QmFzZWxpbmVCdWlsZC9SZWxlYXNlL2pzYwoiY2hh
bmdlcyIgYXQgL1VzZXJzL2NhaW9saW1hL29wZW5fcHJvamVjdHMvV2ViS2l0L1dlYktpdEJ1aWxk
L1JlbGVhc2UvanNjCgpDb2xsZWN0ZWQgNSBzYW1wbGVzIHBlciBiZW5jaG1hcmsvVk0sIHdpdGgg
NSBWTSBpbnZvY2F0aW9ucyBwZXIgYmVuY2htYXJrLiBFbWl0dGVkIGEgY2FsbCB0byBnYygpIGJl
dHdlZW4gc2FtcGxlIG1lYXN1cmVtZW50cy4KVXNlZCAxIGJlbmNobWFyayBpdGVyYXRpb24gcGVy
IFZNIGludm9jYXRpb24gZm9yIHdhcm0tdXAuIFVzZWQgdGhlIGpzYy1zcGVjaWZpYyBwcmVjaXNl
VGltZSgpIGZ1bmN0aW9uIHRvIGdldCBtaWNyb3NlY29uZC1sZXZlbAp0aW1pbmcuIFJlcG9ydGlu
ZyBiZW5jaG1hcmsgZXhlY3V0aW9uIHRpbWVzIHdpdGggOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWxz
IGluIG1pbGxpc2Vjb25kcy4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lICAgICAgICAgICAgICAgICAgY2hhbmdlcyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClN1blNwaWRlcjoKICAgM2QtY3ViZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi43MTc3Ky0wLjg3OTkg
ICAgID8gICAgICA2Ljg3ODErLTAuNzM1NCAgICAgICAgPyBtaWdodCBiZSAxLjAyMzl4IHNsb3dl
cgogICAzZC1tb3JwaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2
Ljg2NDQrLTEuNDY0NCAgICAgICAgICAgIDYuMjY2NCstMC40NTA4ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDk1NHggZmFzdGVyCiAgIDNkLXJheXRyYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDcuOTg3OCstMC41ODg2ICAgICBeICAgICAgNi42NjI4Ky0wLjcyNDcgICAg
ICAgIF4gZGVmaW5pdGVseSAxLjE5ODl4IGZhc3RlcgogICBhY2Nlc3MtYmluYXJ5LXRyZWVzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjUxNzArLTAuNTA3NSAgICAgICAgICAgIDMu
MTYwNistMC4xOTAyICAgICAgICAgIG1pZ2h0IGJlIDEuMTEyOHggZmFzdGVyCiAgIGFjY2Vzcy1m
YW5ua3VjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguMTkzMistMC43NzQ2
ICAgICAgICAgICAgNy41MTQ4Ky0wLjgxMDEgICAgICAgICAgbWlnaHQgYmUgMS4wOTAzeCBmYXN0
ZXIKICAgYWNjZXNzLW5ib2R5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
My40NjA0Ky0wLjI3NzYgICAgID8gICAgICA0LjE5MzMrLTIuMjU1OCAgICAgICAgPyBtaWdodCBi
ZSAxLjIxMTh4IHNsb3dlcgogICBhY2Nlc3MtbnNpZXZlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA0LjM3ODIrLTAuMzA4OCAgICAgPyAgICAgIDQuNDY5NCstMC4zODk4ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDIwOHggc2xvd2VyCiAgIGJpdG9wcy0zYml0LWJpdHMtaW4tYnl0
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuODg5MystMC4zMzkwICAgICAgICAgICAgMS42
OTk2Ky0wLjA0MTYgICAgICAgICAgbWlnaHQgYmUgMS4xMTE2eCBmYXN0ZXIKICAgYml0b3BzLWJp
dHMtaW4tYnl0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC45MDY4Ky0yLjAzMzcg
ICAgICAgICAgICAzLjkyOTQrLTAuNTIwNCAgICAgICAgICBtaWdodCBiZSAxLjI0ODh4IGZhc3Rl
cgogICBiaXRvcHMtYml0d2lzZS1hbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
LjgwMDIrLTAuMTcyMSAgICAgPyAgICAgIDIuODkwMCstMC4yMzc1ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDMyMHggc2xvd2VyCiAgIGJpdG9wcy1uc2lldmUtYml0cyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDQuODMwOSstMC45MDkxICAgICA/ICAgICAgNS43OTMyKy0xLjU1MTEgICAg
ICAgID8gbWlnaHQgYmUgMS4xOTkyeCBzbG93ZXIKICAgY29udHJvbGZsb3ctcmVjdXJzaXZlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43NTUwKy0wLjE2NDcgICAgICAgICAgICAzLjc0
MDgrLTAuMTc5OCAgICAgICAgCiAgIGNyeXB0by1hZXMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDYuODE5OCstMC4xOTYxICAgICAgICAgICAgNi4zNDEzKy0wLjU0NDkg
ICAgICAgICAgbWlnaHQgYmUgMS4wNzU1eCBmYXN0ZXIKICAgY3J5cHRvLW1kNSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4xMTcyKy0wLjQ0NDEgICAgID8gICAgICA0
LjI1MjkrLTAuNDMyNyAgICAgICAgPyBtaWdodCBiZSAxLjAzMzB4IHNsb3dlcgogICBjcnlwdG8t
c2hhMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjA4MzcrLTAuMjQx
OCAgICAgPyAgICAgIDQuMjgxOSstMC41MjYwICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ4NXggc2xv
d2VyCiAgIGRhdGUtZm9ybWF0LXRvZnRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTAuNzkzNystMS40OTQ0ICAgICAgICAgICAxMC43MTgwKy0wLjU5MzggICAgICAgIAogICBkYXRl
LWZvcm1hdC14cGFyYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjY3MDArLTAu
NzMyOCAgICAgPyAgICAgIDguOTY3NCstMy43NzUxICAgICAgICA/IG1pZ2h0IGJlIDEuMTY5Mngg
c2xvd2VyCiAgIG1hdGgtY29yZGljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMuODM0MSstMC4yMzE5ICAgICA/ICAgICAgNC40Nzk0Ky0xLjUxNjkgICAgICAgID8gbWln
aHQgYmUgMS4xNjgzeCBzbG93ZXIKICAgbWF0aC1wYXJ0aWFsLXN1bXMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNS40MjY0Ky0wLjY1ODcgICAgICAgICAgICA1LjEwMjErLTAuNDc0
OCAgICAgICAgICBtaWdodCBiZSAxLjA2MzZ4IGZhc3RlcgogICBtYXRoLXNwZWN0cmFsLW5vcm0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjY3NDArLTAuMDM3OCAgICAgICAgICAg
IDIuNjY0OCstMC4wNDY3ICAgICAgICAKICAgcmVnZXhwLWRuYSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOC41NzgyKy0wLjYyNTMgICAgID8gICAgICA4Ljg1MDYrLTAu
NTczNyAgICAgICAgPyBtaWdodCBiZSAxLjAzMTh4IHNsb3dlcgogICBzdHJpbmctYmFzZTY0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjIyNTgrLTAuODkyOSAgICAgICAg
ICAgIDYuOTI2NystMC40MDk1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQzMnggZmFzdGVyCiAgIHN0
cmluZy1mYXN0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguNDY4OSst
MC43MTA4ICAgICAgICAgICAgOC4zNTQwKy0wLjkwNTggICAgICAgICAgbWlnaHQgYmUgMS4wMTM4
eCBmYXN0ZXIKICAgc3RyaW5nLXRhZ2Nsb3VkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxMS4yMjcxKy0wLjgxNDAgICAgID8gICAgIDExLjI5MjMrLTAuMjU2MSAgICAgICAgPwog
ICBzdHJpbmctdW5wYWNrLWNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI5LjQx
NDArLTExLjI5MjIgICAgICAgICAgMjUuMTExMCstMC45NjI3ICAgICAgICAgIG1pZ2h0IGJlIDEu
MTcxNHggZmFzdGVyCiAgIHN0cmluZy12YWxpZGF0ZS1pbnB1dCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDcuMjI1MistMC45MTAxICAgICAgICAgICAgNy4xODY4Ky0wLjYxODUgICAgICAg
IAoKICAgPGFyaXRobWV0aWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ni44MDIzKy0wLjM0MjQgICAgICAgICAgICA2LjYwNDkrLTAuMTc5NCAgICAgICAgICBtaWdodCBi
ZSAxLjAyOTl4IGZhc3RlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYmFzZWxpbmUgICAgICAgICAgICAgICAgICBjaGFuZ2VzICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKVjhTcGlkZXI6CiAgIGNyeXB0byAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDkuMzIzOSstMi4yMTcyICAg
ICAgICAgICA0OS4wNjM0Ky0xLjQxNDkgICAgICAgIAogICBkZWx0YWJsdWUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDg3LjU0MDgrLTYuMDQ4NCAgICAgPyAgICAgODku
ODA1MistMy43NTIxICAgICAgICA/IG1pZ2h0IGJlIDEuMDI1OXggc2xvd2VyCiAgIGVhcmxleS1i
b3llciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDcuNTQyMistMi44MTYz
ICAgICA/ICAgICA0OC44NDU5Ky0zLjE2NTEgICAgICAgID8gbWlnaHQgYmUgMS4wMjc0eCBzbG93
ZXIKICAgcmF5dHJhY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
Mi4xNzM2Ky0xLjc4ODcgICAgID8gICAgIDQ0LjczNzcrLTQuNTQ1NyAgICAgICAgPyBtaWdodCBi
ZSAxLjA2MDh4IHNsb3dlcgogICByZWdleHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDcyLjU4MDYrLTEuNDY3OCAgICAgICAgICAgNzIuNDkwNCstMS43MzY3ICAg
ICAgICAKICAgcmljaGFyZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA2MC40OTY2Ky0xLjU4ODQgICAgID8gICAgIDY5LjE3NTYrLTI2LjExMjEgICAgICAgPyBtaWdo
dCBiZSAxLjE0MzV4IHNsb3dlcgogICBzcGxheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDQ3LjMwOTIrLTEuMTcxMyAgICAgICAgICAgNDcuMTc2NistMi4xNzE2
ICAgICAgICAKCiAgIDxnZW9tZXRyaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNTYuMjk5OSstMC45NjMyICAgICA/ICAgICA1OC4wMTg5Ky0zLjU0MDIgICAgICAgID8g
bWlnaHQgYmUgMS4wMzA1eCBzbG93ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lICAgICAgICAgICAgICAgICAgY2hhbmdl
cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCk9jdGFuZToKICAgZW5jcnlw
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjE4MzQ2Ky0wLjAw
MzQ3ICAgICAgICAgIDAuMTgxNjArLTAuMDAyNDYgICAgICAgICBtaWdodCBiZSAxLjAxMDJ4IGZh
c3RlcgogICBkZWNyeXB0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDMuMjAyNjMrLTAuMDMzMDQgICAgICAgICAgMy4xOTcxMCstMC4wNTEyNSAgICAgICAKICAgZGVs
dGFibHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgICAwLjE1ODEyKy0w
LjAxNzM2ICAgID8gICAgIDAuMTYxNzUrLTAuMDE1ODQgICAgICAgPyBtaWdodCBiZSAxLjAyMjl4
IHNsb3dlcgogICBlYXJsZXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDAuMzU2NTMrLTAuMDA2MTEgICAgICAgICAgMC4zNTYwMSstMC4wMDczMCAgICAgICAKICAg
Ym95ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjE1MTU2
Ky0wLjExNDEwICAgID8gICAgIDcuOTI2NjMrLTQuODM0NjEgICAgICAgPyBtaWdodCBiZSAxLjI4
ODZ4IHNsb3dlcgogICBuYXZpZXItc3Rva2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgy
ICAgICAgIDUuMjE1NDYrLTAuMDk3MDkgICAgICAgICAgNS4yMTQ1MystMC4wNTE5OCAgICAgICAK
ICAgcmF5dHJhY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgICAxLjEy
MTgzKy0wLjc2MDc4ICAgICAgICAgIDAuODQ2NTMrLTAuMDAyNjkgICAgICAgICBtaWdodCBiZSAx
LjMyNTJ4IGZhc3RlcgogICByaWNoYXJkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHgyICAgICAgIDAuMDk4NjgrLTAuMDAyNjEgICAgPyAgICAgMC4wOTkyMCstMC4wMDIxMiAgICAg
ICA/CiAgIHNwbGF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAg
MC40NTE5NystMC4wMjQ2MyAgICAgICAgICAwLjQ0ODA3Ky0wLjAwNjMyICAgICAgIAogICByZWdl
eHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgMjIuMjE3NjErLTAu
NjI0NjcgICAgPyAgICAyNi4zNTM1MSstOC45Nzc0MiAgICAgICA/IG1pZ2h0IGJlIDEuMTg2Mngg
c2xvd2VyCiAgIHBkZmpzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAg
ICA1NS43NDAyMistMS42NzEyOCAgICA/ICAgIDcwLjEyMTE4Ky0zOS4yNDYzOSAgICAgID8gbWln
aHQgYmUgMS4yNTgweCBzbG93ZXIKICAgbWFuZHJlZWwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB4MiAgICAgIDYzLjUzNzEyKy0wLjUzMDk0ICAgICAgICAgNjMuMzg1ODQrLTAuNjM1
NzIgICAgICAgCiAgIGdiZW11ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIg
ICAgICA0NC4xMjIwNystMS4zNzM0MyAgICA/ICAgIDQ0LjQwNzk0Ky0wLjk2MzY0ICAgICAgID8K
ICAgY2xvc3VyZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjgx
OTk3Ky0wLjQwNTU4ICAgID8gICAgIDAuODU2MTErLTAuNTMzMTkgICAgICAgPyBtaWdodCBiZSAx
LjA0NDF4IHNsb3dlcgogICBqcXVlcnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDguNzk0MDYrLTAuMDc3MjYgICAgPyAgICAxMS4wNDIwOCstNi4yNTExMiAgICAg
ICA/IG1pZ2h0IGJlIDEuMjU1Nnggc2xvd2VyCiAgIGJveDJkICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeDIgICAgICAxMS4xODg4MCstMC4yNTExMSAgICA/ICAgIDExLjQwMDc2
Ky0wLjE4MDczICAgICAgID8gbWlnaHQgYmUgMS4wMTg5eCBzbG93ZXIKICAgemxpYiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgNTQyLjg4MzUxKy0yMzYuMzgwMDgg
ICAgICA0MDYuNDQ4OTErLTcuMDQ5MTAgICAgICAgICBtaWdodCBiZSAxLjMzNTd4IGZhc3Rlcgog
ICB0eXBlc2NyaXB0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICA5OTYuMjAx
MDMrLTY1LjM2NTgxICAgICAgIDk4Ny4wNTMyMistMjUuMjIyODAgICAgICAKICAgc3BsYXktbGF0
ZW5jeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjA4OTU5Ky0wLjI0MzMz
ICAgID8gICAgIDcuNjIzMzUrLTAuNDEwMjMgICAgICAgPyBtaWdodCBiZSAxLjA3NTN4IHNsb3dl
cgoKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2
LjY3NjI3Ky0wLjM1OTQwICAgID8gICAgIDYuNzMxOTMrLTAuNDM0NzggICAgICAgPyBtaWdodCBi
ZSAxLjAwODN4IHNsb3dlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYmFzZWxpbmUgICAgICAgICAgICAgICAgICBjaGFuZ2VzICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKS3Jha2VuOgogICBhaS1hc3RhciAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExMi4wNTIrLTIuNzAyICAgICAg
ICAgICAgMTExLjU0OSstMy43NzQgICAgICAgICAKICAgYXVkaW8tYmVhdC1kZXRlY3Rpb24gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNDMuMTIwKy0wLjg1MCAgICAgICAgICAgICA0Mi41
NjQrLTEuMDc1ICAgICAgICAgICBtaWdodCBiZSAxLjAxMzF4IGZhc3RlcgogICBhdWRpby1kZnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzOS44MTQrLTIuMTc3ICAg
ICAgPyAgICAgMTgxLjg0MistMTIwLjgyMiAgICAgICA/IG1pZ2h0IGJlIDEuMzAwNnggc2xvd2Vy
CiAgIGF1ZGlvLWZmdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMw
Ljg2MystMC4zMjQgICAgICA/ICAgICAgMzEuMzA1Ky0wLjQ4NSAgICAgICAgID8gbWlnaHQgYmUg
MS4wMTQzeCBzbG93ZXIKICAgYXVkaW8tb3NjaWxsYXRvciAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNTMuNTM3Ky0yLjQ0NyAgICAgID8gICAgICA1NC4zNzQrLTAuOTY0ICAgICAg
ICAgPyBtaWdodCBiZSAxLjAxNTZ4IHNsb3dlcgogICBpbWFnaW5nLWRhcmtyb29tICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA2Ny42OTIrLTIuNDg1ICAgICAgICAgICAgIDY3LjY4
MCstMy43MzMgICAgICAgICAKICAgaW1hZ2luZy1kZXNhdHVyYXRlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNzYuMDE0Ky00LjI3MCAgICAgID8gICAgICA4My43ODIrLTI1LjkxMCAg
ICAgICAgPyBtaWdodCBiZSAxLjEwMjJ4IHNsb3dlcgogICBpbWFnaW5nLWdhdXNzaWFuLWJsdXIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5OC42NDUrLTU2LjA2MyAgICAgICAgICAgIDc4
LjIzOSstNy4wMzMgICAgICAgICAgIG1pZ2h0IGJlIDEuMjYwOHggZmFzdGVyCiAgIGpzb24tcGFy
c2UtZmluYW5jaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0LjkxMCstMS42MDkg
ICAgICA/ICAgICAgNDkuNDEyKy0xMy40NTMgICAgICAgID8gbWlnaHQgYmUgMS4xMDAyeCBzbG93
ZXIKICAganNvbi1zdHJpbmdpZnktdGluZGVyYm94ICAgICAgICAgICAgICAgICAgICAgICAgICAg
MjYuMDk4Ky0xLjgxOSAgICAgID8gICAgICAyNi4zMzUrLTIuMDg4ICAgICAgICAgPwogICBzdGFu
Zm9yZC1jcnlwdG8tYWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0My40NDYrLTUu
Mjg3ICAgICAgICAgICAgIDQyLjExMystMC45ODcgICAgICAgICAgIG1pZ2h0IGJlIDEuMDMxN3gg
ZmFzdGVyCiAgIHN0YW5mb3JkLWNyeXB0by1jY20gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDM3LjM2NSstMS4zMjkgICAgICA/ICAgICAgMzcuNjkxKy0wLjg4OSAgICAgICAgID8KICAg
c3RhbmZvcmQtY3J5cHRvLXBia2RmMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzUuNjI1
Ky0zLjY1NiAgICAgID8gICAgICA3Ni40NTQrLTEuNTg1ICAgICAgICAgPyBtaWdodCBiZSAxLjAx
MTB4IHNsb3dlcgogICBzdGFuZm9yZC1jcnlwdG8tc2hhMjU2LWl0ZXJhdGl2ZSAgICAgICAgICAg
ICAgICAgICAyNC4zNjArLTEuMzIzICAgICAgICAgICAgIDIzLjczOSstMC4zNjAgICAgICAgICAg
IG1pZ2h0IGJlIDEuMDI2MXggZmFzdGVyCgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA2Mi4zOTYrLTQuNzQyICAgICAgPyAgICAgIDY0Ljc5MSst
MTAuNTI1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM4NHggc2xvd2VyCgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSAgICAgICAg
ICAgICAgICAgIGNoYW5nZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApU
YWlsQmVuY2g6CiAgIG4tYm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA5NTEuMDgxNistOC41Mjc1ICAgICA/ICAgIDk2Ni4wNDU2Ky0xMS40NzI3ICAgICAgID8g
bWlnaHQgYmUgMS4wMTU3eCBzbG93ZXIKICAgbWVyZ2Utc29ydCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDc1My45MzA0Ky0xMi42NzE4ICAgID8gICAgNzU3LjIxMzUrLTEz
LjI3MDUgICAgICAgPwogICBtZXJnZS1zb3J0LWNwcyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDc4LjYwNTYrLTEuODM3MSAgICAgPyAgICAgODAuNTE4MistMi4zNTgxICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDI0M3ggc2xvd2VyCiAgIGJmLWludGVycHJldGVyICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA1NDMuNTg5MystMzcyLjA4NTMgICAgICAgIDQwNC42OTE2
Ky00LjMwMTEgICAgICAgICAgbWlnaHQgYmUgMS4zNDMyeCBmYXN0ZXIKCiAgIDxnZW9tZXRyaWM+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MTAuOTcyMSstNTYuNzgzMyAg
ICAgICAgIDM5Mi44OTMwKy0yLjgxMjEgICAgICAgICAgbWlnaHQgYmUgMS4wNDYweCBmYXN0ZXIK
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJhc2VsaW5lICAgICAgICAgICAgICAgICAgY2hhbmdlcyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCk1pY3JvYmVuY2htYXJrczoKICAgYWJjLWZvcndhcmQtbG9vcC1lcXVh
bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOS4xMDc1Ky0yLjE3NjYgICAgICAgICAgIDI5
LjA3MTYrLTIuMDI1NiAgICAgICAgCiAgIGFiYy1wb3N0Zml4LWJhY2t3YXJkLWxvb3AgICAgICAg
ICAgICAgICAgICAgICAgICAgMzguMTE0NistMS44NzYxICAgICAgICAgICAzNi4xMTcwKy0wLjYw
OTcgICAgICAgICAgbWlnaHQgYmUgMS4wNTUzeCBmYXN0ZXIKICAgYWJjLXNpbXBsZS1iYWNrd2Fy
ZC1sb29wICAgICAgICAgICAgICAgICAgICAgICAgICAyOC43MjM0Ky0yLjAxOTUgICAgICAgICAg
IDI3LjcyNTErLTAuMjc3NSAgICAgICAgICBtaWdodCBiZSAxLjAzNjB4IGZhc3RlcgogICBhYmMt
c2ltcGxlLWZvcndhcmQtbG9vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4Ljk4MzgrLTIu
MTEwMyAgICAgPyAgICAgMjkuNzU1MSstMi4wMDQ4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI2Nngg
c2xvd2VyCiAgIGFiYy1za2lwcHktbG9vcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMjUuMjYyOCstMS4wMDkwICAgICA/ICAgICAyNS4zODk5Ky0xLjg2MTEgICAgICAgID8KICAg
YWJzLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy41OTUy
Ky0wLjU1NTEgICAgID8gICAgICAzLjgyMzgrLTAuOTcxNCAgICAgICAgPyBtaWdodCBiZSAxLjA2
MzZ4IHNsb3dlcgogICBhZGFwdC10by1kb3VibGUtZGl2aWRlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDE1LjQwMjcrLTAuOTA0OCAgICAgICAgICAgMTUuMzkzOCstMC40OTU1ICAgICAgICAK
ICAgYWxpYXNlZC1hcmd1bWVudHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgICAgMS41
NzkwKy0wLjE0NjUgICAgICAgICAgICAxLjU2NjQrLTAuMTQwNyAgICAgICAgCiAgIGFsbG9jYXRl
LWJpZy1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNjExNCstMC40MjQ4
ICAgICA/ICAgICAgMy44MDkwKy0wLjU2NDIgICAgICAgID8gbWlnaHQgYmUgMS4wNTQ3eCBzbG93
ZXIKICAgYXBwbHktbm90LWFwcGx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ni4xNTM3Ky0wLjE2NTIgICAgID8gICAgICA3LjcwODMrLTIuODkxNyAgICAgICAgPyBtaWdodCBi
ZSAxLjI1MjZ4IHNsb3dlcgogICBhcmd1bWVudHMtbmFtZWQtYW5kLXJlZmxlY3RpdmUgICAgICAg
ICAgICAgICAgICAgICA4LjkzNTErLTAuMzY3OSAgICAgICAgICAgIDguMTM2MistMC40MzE0ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDk4MnggZmFzdGVyCiAgIGFyZ3VtZW50cy1vdXQtb2YtYm91bmRz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuODE4NSstMC40MTA2ICAgICAgICAgICAxMi41
NDA2Ky0wLjMzNjcgICAgICAgICAgbWlnaHQgYmUgMS4wMjIyeCBmYXN0ZXIKICAgYXJndW1lbnRz
LXN0cmljdC1tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2MC40OTczKy0yOS43NTgy
ICAgICAgICAgIDU0Ljk1ODMrLTE3LjcxMTIgICAgICAgICBtaWdodCBiZSAxLjEwMDh4IGZhc3Rl
cgogICBhcmd1bWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5
LjExNjkrLTQuMDI4OSAgICAgICAgICAgIDcuNTg2NistMC41OTEyICAgICAgICAgIG1pZ2h0IGJl
IDEuMjAxN3ggZmFzdGVyCiAgIGFyaXR5LW1pc21hdGNoLWlubGluaW5nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEuNDMxMCstMC4wNDAzICAgICA/ICAgICAgMS41MTI1Ky0wLjE5MTkgICAg
ICAgID8gbWlnaHQgYmUgMS4wNTY5eCBzbG93ZXIKICAgYXJyYXktYWNjZXNzLXBvbHltb3JwaGlj
LXN0cnVjdHVyZSAgICAgICAgICAgICAgICAgNS4zNTQ3Ky0wLjY0NTkgICAgICAgICAgICA1LjIy
MjkrLTAuNTI3MyAgICAgICAgICBtaWdodCBiZSAxLjAyNTJ4IGZhc3RlcgogICBhcnJheS1ub25h
cnJheS1wb2x5bW9yaHBpYy1hY2Nlc3MgICAgICAgICAgICAgICAgIDI5Ljg0NTgrLTE0LjEzMDMg
ICAgICAgICAgMjMuOTI2MSstMS44Nzc2ICAgICAgICAgIG1pZ2h0IGJlIDEuMjQ3NHggZmFzdGVy
CiAgIGFycmF5LXByb3RvdHlwZS1ldmVyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAu
NDAzNCstMS43Njk2ICAgICA/ICAgICAzMS4zMTI4Ky0yLjMwOTAgICAgICAgID8gbWlnaHQgYmUg
MS4wMjk5eCBzbG93ZXIKICAgYXJyYXktcHJvdG90eXBlLWZvckVhY2ggICAgICAgICAgICAgICAg
ICAgICAgICAgICAzMC43ODEyKy0xLjc1NDAgICAgICAgICAgIDI5LjEzNDgrLTAuMzY0MiAgICAg
ICAgICBtaWdodCBiZSAxLjA1NjV4IGZhc3RlcgogICBhcnJheS1wcm90b3R5cGUtbWFwICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDM4Ljg1MTYrLTguMTA1MiAgICAgICAgICAgMzUuMjUx
NistMC42MTc1ICAgICAgICAgIG1pZ2h0IGJlIDEuMTAyMXggZmFzdGVyCiAgIGFycmF5LXByb3Rv
dHlwZS1yZWR1Y2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAuNDE5MistMC43NjM4ICAg
ICA/ICAgICAzMS4xMDY0Ky0wLjk4NDAgICAgICAgID8gbWlnaHQgYmUgMS4wMjI2eCBzbG93ZXIK
ICAgYXJyYXktcHJvdG90eXBlLXJlZHVjZVJpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAzMC45
MjIxKy0wLjY1NzQgICAgID8gICAgIDMyLjkwNjQrLTEuNjk0OCAgICAgICAgPyBtaWdodCBiZSAx
LjA2NDJ4IHNsb3dlcgogICBhcnJheS1wcm90b3R5cGUtc29tZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDMxLjczMjQrLTMuMTYwNyAgICAgICAgICAgMjkuODI4MystMC40Mzk1ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDYzOHggZmFzdGVyCiAgIGFycmF5LXB1c2gtMCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMzIuNDAxMystMy42MDE3ICAgICA/ICAgIDE0Ni44MDk5
Ky0zMi45NTMyICAgICAgID8gbWlnaHQgYmUgMS4xMDg4eCBzbG93ZXIKICAgYXJyYXktcHVzaC0x
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExNi4xODI5Ky0yLjU5OTkgICAg
ID8gICAgMTE5LjE2ODErLTIuOTY5MyAgICAgICAgPyBtaWdodCBiZSAxLjAyNTd4IHNsb3dlcgog
ICBhcnJheS1wdXNoLTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIyLjQ4
NDMrLTIuMzc2MiAgICAgPyAgICAxMjUuMzQyMSstMi40NTA3ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDIzM3ggc2xvd2VyCiAgIGFycmF5LXNwbGljZS1jb250aWd1b3VzICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMjguMjU2NistMi40MzgwICAgICAgICAgICAyNi44NjA0Ky0wLjcxNzUgICAgICAg
ICAgbWlnaHQgYmUgMS4wNTIweCBmYXN0ZXIKICAgYXJyYXktd2l0aC1kb3VibGUtYWRkICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNC44ODkwKy0wLjM1ODQgICAgID8gICAgICA1LjE1NzIr
LTAuMTcwMSAgICAgICAgPyBtaWdodCBiZSAxLjA1NDl4IHNsb3dlcgogICBhcnJheS13aXRoLWRv
dWJsZS1pbmNyZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICA1LjAzNjErLTEuNTA5MSAgICAg
ICAgICAgIDQuNTU4MCstMC40MDI0ICAgICAgICAgIG1pZ2h0IGJlIDEuMTA0OXggZmFzdGVyCiAg
IGFycmF5LXdpdGgtZG91YmxlLW11bC1hZGQgICAgICAgICAgICAgICAgICAgICAgICAgIDUuODk4
MystMC40ODg5ICAgICA/ICAgICAgNi4xMjMwKy0wLjEyODkgICAgICAgID8gbWlnaHQgYmUgMS4w
MzgxeCBzbG93ZXIKICAgYXJyYXktd2l0aC1kb3VibGUtc3VtICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNC4yNzA2Ky0wLjI0OTMgICAgID8gICAgICA0LjQwODYrLTAuMzE0OCAgICAgICAg
PyBtaWdodCBiZSAxLjAzMjN4IHNsb3dlcgogICBhcnJheS13aXRoLWludDMyLWFkZC1zdWIgICAg
ICAgICAgICAgICAgICAgICAgICAgICA3LjIwNTErLTAuNTg4OCAgICAgPyAgICAgIDcuMjk4Mist
MC4zNDY1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyOXggc2xvd2VyCiAgIGFycmF5LXdpdGgtaW50
MzItb3ItZG91YmxlLXN1bSAgICAgICAgICAgICAgICAgICAgIDQuMzAwMCstMC4xNjcyICAgICA/
ICAgICAgNC44ODA3Ky0xLjMxNzAgICAgICAgID8gbWlnaHQgYmUgMS4xMzUweCBzbG93ZXIKICAg
QXJyYXlCdWZmZXItRGF0YVZpZXctYWxsb2MtbGFyZ2UtbG9uZy1saXZlZCAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYzLjA2ODgrLTEuMzY0
MCAgICAgPyAgICAgODcuNTc1NistNjYuOTY5NCAgICAgICA/IG1pZ2h0IGJlIDEuMzg4Nnggc2xv
d2VyCiAgIEFycmF5QnVmZmVyLURhdGFWaWV3LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAg
MjMuMDY3NSstMS42NzQ3ICAgICA/ICAgICAyMy40MDE1Ky0yLjIzMzQgICAgICAgID8gbWlnaHQg
YmUgMS4wMTQ1eCBzbG93ZXIKICAgQXJyYXlCdWZmZXItSW50MzJBcnJheS1ieXRlT2Zmc2V0ICAg
ICAgICAgICAgICAgICAgNC45NzEyKy0wLjQwODQgICAgID8gICAgICA1LjAwOTcrLTAuNDMzNCAg
ICAgICAgPwogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZCAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY0
LjA3MTIrLTEuMjU5MyAgICAgPyAgICAgODUuNTI0NCstNjEuNTY1OCAgICAgICA/IG1pZ2h0IGJl
IDEuMzM0OHggc2xvd2VyCiAgIEFycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sb25nLWxpdmVk
LWJ1ZmZlciAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDMyLjYwMjErLTIuNjk2MSAgICAgICAgICAgMzEuOTM4MistMS4xOTU1ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDIwOHggZmFzdGVyCiAgIEFycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1s
b25nLWxpdmVkICAgICAgICAgICAgMzMuMTIzOSstMzEuMjA4OCAgICAgICAgICAyMi41Njc1Ky0w
LjQzNzkgICAgICAgICAgbWlnaHQgYmUgMS40Njc4eCBmYXN0ZXIKICAgQXJyYXlCdWZmZXItSW50
OEFycmF5LWFsbG9jICAgICAgICAgICAgICAgICAgICAgICAyMC44MDQ3Ky0wLjkwMjMgICAgID8g
ICAgIDIxLjIwMzQrLTAuNjA2OCAgICAgICAgPyBtaWdodCBiZSAxLjAxOTJ4IHNsb3dlcgogICBh
cnJvd2Z1bmNpdG9uLWRpcmVjdC1hcmd1bWVudHMgICAgICAgICAgICAgICAgICAgICAxLjUxODIr
LTAuMTI2OSAgICAgICAgICAgIDEuNDY1OCstMC4wNDI0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM1
N3ggZmFzdGVyCiAgIGFycm93ZnVuY2l0b24tcmVmZXJlbmNlLWFyZ3VtZW50cyAgICAgICAgICAg
ICAgICAgIDEuMDU4MCstMC4wNjQxICAgICA/ICAgICAgMS4wOTk4Ky0wLjIwMDMgICAgICAgID8g
bWlnaHQgYmUgMS4wMzk1eCBzbG93ZXIKICAgYXJyb3dmdW5jdGlvbi1jYWxsLWluLWNsYXNzLWNv
bnN0cnVjdG9yICAgICAgICAgICAyMi44MTgwKy0wLjY4MDYgICAgICAgICAgIDIyLjU1MTIrLTAu
ODM5NSAgICAgICAgICBtaWdodCBiZSAxLjAxMTh4IGZhc3RlcgogICBhcnJvd2Z1bmN0aW9uLWNh
bGwtaW4tY2xhc3MtbWV0aG9kICAgICAgICAgICAgICAgICA5LjkzNDIrLTAuNTU0OCAgICAgPyAg
ICAgMTAuNDk0MystMC41NzYxICAgICAgICA/IG1pZ2h0IGJlIDEuMDU2NHggc2xvd2VyCiAgIGFy
cm93ZnVuY3Rpb24tY2FsbC1pbi1mdW5jdGlvbiAgICAgICAgICAgICAgICAgICAgMjUuMjM2OCst
OS4xNzE1ICAgICAgICAgICAyMi4zNDY1Ky0wLjc2MjUgICAgICAgICAgbWlnaHQgYmUgMS4xMjkz
eCBmYXN0ZXIKICAgYXJyb3dmdW5jdGlvbi1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOS45NjIyKy0wLjYyNzYgICAgID8gICAgIDEwLjMyNzgrLTAuNTc2MSAgICAgICAgPyBt
aWdodCBiZSAxLjAzNjd4IHNsb3dlcgogICBhc21qc19ib29sX2J1ZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA4LjA2NjUrLTAuMzYzNiAgICAgICAgICAgIDguMDQ2MCstMC4z
MzM5ICAgICAgICAKICAgYXNzaWduLWN1c3RvbS1zZXR0ZXItcG9seW1vcnBoaWMgICAgICAgICAg
ICAgICAgICAxNS4wMjY4Ky0wLjM4ODcgICAgICAgICAgIDE0LjQ4NTQrLTAuNDI5NyAgICAgICAg
ICBtaWdodCBiZSAxLjAzNzR4IGZhc3RlcgogICBhc3NpZ24tY3VzdG9tLXNldHRlciAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMxLjM1NTYrLTIuMTQ3MiAgICAgICAgICAgMzAuMDIwMSst
MS43ODA3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ0NXggZmFzdGVyCiAgIGJhc2ljLXNldCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuOTI4MCstMC43OTc1ICAgICAg
ICAgICAgOS43MDExKy0wLjc1NTkgICAgICAgICAgbWlnaHQgYmUgMS4wMjM0eCBmYXN0ZXIKICAg
YmlnLWludC1tdWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC42MjQ4
Ky0wLjUzODcgICAgICAgICAgICA0LjQwOTArLTAuMjA1NSAgICAgICAgICBtaWdodCBiZSAxLjA0
ODl4IGZhc3RlcgogICBiaWdzd2l0Y2gtaW5kaXJlY3Qtc3ltYm9sICAgICAgICAgICAgICAgICAg
ICAgICAgIDg4LjY2NjkrLTMuMDgxNSAgICAgPyAgICAgOTEuNjE5NCstMi44ODIyICAgICAgICA/
IG1pZ2h0IGJlIDEuMDMzM3ggc2xvd2VyCiAgIGJpZ3N3aXRjaC1pbmRpcmVjdCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNTIuNjY2OSstMi4wNjcwICAgICA/ICAgICA2OS4xNTM5Ky00
Ny45NzQyICAgICAgID8gbWlnaHQgYmUgMS4zMTMweCBzbG93ZXIKICAgYmlnc3dpdGNoICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOC4xNTUzKy0xLjczMzIgICAgICAg
ICAgIDI4LjA5MTYrLTAuOTI1NSAgICAgICAgCiAgIGJvb2xlYW4tdGVzdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDQuMDgxOCstMC4yMjgxICAgICA/ICAgICAgNC4xMDg0
Ky0wLjI0NzEgICAgICAgID8KICAgYm91bmQtZnVuY3Rpb24tY2FsbCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxMi42MjcxKy0wLjU1MTQgICAgICAgICAgIDEyLjYwMTUrLTAuMzA1MyAg
ICAgICAgCiAgIGJvdW5kLWZ1bmN0aW9uLWNvbnN0cnVjdGlvbi1wZXJmb3JtYW5jZSAgICAgICAg
ICAgNzYuMzE3MCstMy4xNzEwICAgICA/ICAgICA3OC42MDk3Ky0yLjg4NTMgICAgICAgID8gbWln
aHQgYmUgMS4wMzAweCBzbG93ZXIKICAgYnJhbmNoLWZvbGQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNS4yMjM4Ky0xLjA1ODggICAgID8gICAgICA1LjgxOTYrLTEuMTU0
OCAgICAgICAgPyBtaWdodCBiZSAxLjExNDF4IHNsb3dlcgogICBicmFuY2gtb24tc3RyaW5nLWFz
LWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgIDEzLjk2NzYrLTAuNTI3NiAgICAgPyAgICAg
MTQuMjk5NCstMS40OTMwICAgICAgICA/IG1pZ2h0IGJlIDEuMDIzOHggc2xvd2VyCiAgIGJ1Zy0x
NTM0MzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMjEyNCstMC41
MzY0ICAgICAgICAgICAgNC4xMjQ1Ky0wLjYxMDUgICAgICAgICAgbWlnaHQgYmUgMS4wMjEzeCBm
YXN0ZXIKICAgYnVpbGQtbGFyZ2Utb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA1Ny4xODQ2Ky0zMi44MzkyICAgICAgICAgIDQ2LjczMTArLTIuNzUyNSAgICAgICAgICBtaWdo
dCBiZSAxLjIyMzd4IGZhc3RlcgogICBieS12YWwtZ2VuZXJpYyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAzLjY0MzcrLTAuNTg3NCAgICAgPyAgICAgIDQuMTIzOSstMC42ODE0
ICAgICAgICA/IG1pZ2h0IGJlIDEuMTMxOHggc2xvd2VyCiAgIGNhbGwtb3Itbm90LWNhbGwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzUuMzc2MystMi4zOTYzICAgICA/ICAgICAz
NS41NTA0Ky0wLjY0MzAgICAgICAgID8KICAgY2FsbC1zcHJlYWQtYXBwbHkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzMy43NjYzKy0xLjM0MzkgICAgICAgICAgIDMzLjQxMDArLTIu
MDQ4NCAgICAgICAgICBtaWdodCBiZSAxLjAxMDd4IGZhc3RlcgogICBjYWxsLXNwcmVhZC1jYWxs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMxLjE4NTIrLTEuMzg4MSAgICAgICAg
ICAgMzAuNjg3OSstMS43Mjg3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE2MnggZmFzdGVyCiAgIGNh
bGwtdXNpbmctc3ByZWFkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEuODY2Nist
MC45MzQ4ICAgICAgICAgICAxMS43MzM1Ky0xLjQ4MTYgICAgICAgICAgbWlnaHQgYmUgMS4wMTEz
eCBmYXN0ZXIKICAgY2FwdHVyZWQtYXNzaWdubWVudHMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMC43NTI2Ky0wLjA1NTkgICAgID8gICAgICAwLjk3MTUrLTAuNjY4NSAgICAgICAgPyBt
aWdodCBiZSAxLjI5MDl4IHNsb3dlcgogICBjYXN0LWludC10by1kb3VibGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA2Ljc4OTgrLTAuNDAyNSAgICAgICAgICAgIDYuNzYyNSstMC4z
NDEyICAgICAgICAKICAgY2VsbC1hcmd1bWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNC42MTIwKy0yLjIwMTYgICAgICAgICAgICA0LjAzMzcrLTAuMzk2OSAgICAgICAg
ICBtaWdodCBiZSAxLjE0MzR4IGZhc3RlcgogICBjZmctc2ltcGxpZnkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA0LjQyODYrLTEuNDk2MSAgICAgICAgICAgIDQuMjYyNSst
MS4wOTM5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM5MHggZmFzdGVyCiAgIGNoYWluLWdldHRlci1h
Y2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMuODU5NystMC40NDkwICAgICA/
ICAgICAxNC4yNTcwKy0xLjM3NjYgICAgICAgID8gbWlnaHQgYmUgMS4wMjg3eCBzbG93ZXIKICAg
Y21wZXEtb2JqLXRvLW9iai1vdGhlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS43MjQ1
Ky0wLjQzNjQgICAgID8gICAgIDEzLjE1NjMrLTMuNjYzNCAgICAgICAgPyBtaWdodCBiZSAxLjEy
MjF4IHNsb3dlcgogICBjb25jYXQtYXBwZW5kLW9uZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEwLjc1NzErLTAuNTkxMyAgICAgICAgICAgMTAuNjU0MistMC40NzE1ICAgICAgICAK
ICAgY29uc3RhbnQtdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS43
MTc3Ky0wLjIwODAgICAgID8gICAgICA2LjExODgrLTAuMzU5NSAgICAgICAgPyBtaWdodCBiZSAx
LjA3MDJ4IHNsb3dlcgogICBjb250aWd1b3VzLWFycmF5LXRvLXN0cmluZyAgICAgICAgICAgICAg
ICAgICAgICAgIDM1LjczOTYrLTEuNzI2OCAgICAgPyAgICAgMzguMTc1NSstMS43MDA3ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDY4Mnggc2xvd2VyCiAgIGNyZWF0ZS1sb3RzLW9mLWZ1bmN0aW9ucyAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTkuMDE4NCstMi41NTM5ICAgICAgICAgICAxOC4yNzQz
Ky0wLjQ3ODYgICAgICAgICAgbWlnaHQgYmUgMS4wNDA3eCBmYXN0ZXIKICAgY3NlLW5ldy1hcnJh
eS1idWZmZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi42ODEwKy0wLjQzNzEgICAg
ICAgICAgICAyLjU1MjIrLTAuMTc0MiAgICAgICAgICBtaWdodCBiZSAxLjA1MDV4IGZhc3Rlcgog
ICBjc2UtbmV3LWFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjc2
OTIrLTAuMzEyOCAgICAgPyAgICAgIDQuMTgwMCstMC4yNzg3ICAgICAgICA/IG1pZ2h0IGJlIDEu
MTA5MHggc2xvd2VyCiAgIGN1c3RvbS1zZXR0ZXItZ2V0dGVyLWFzLXB1dC1nZXQtYnktaWQgICAg
ICAgICAgICAgIDAuOTQ4MCstMC4wNDg3ICAgICAgICAgICAgMC45MDAyKy0wLjAxOTggICAgICAg
ICAgbWlnaHQgYmUgMS4wNTMyeCBmYXN0ZXIKICAgRGF0YVZpZXctY3VzdG9tLXByb3BlcnRpZXMg
ICAgICAgICAgICAgICAgICAgICAgICA3MC4wMzQ3Ky0yLjUxNTMgICAgICAgICAgIDY5Ljc2OTUr
LTMuMzA0MCAgICAgICAgCiAgIGRlbGF5LXRlYXItb2ZmLWFyZ3VtZW50cy1zdHJpY3Rtb2RlICAg
ICAgICAgICAgICAgMTIuOTIxMistMTIuNzY0MSAgICAgICAgICAgOC41NjE0Ky0wLjY4ODkgICAg
ICAgICAgbWlnaHQgYmUgMS41MDkyeCBmYXN0ZXIKICAgZGVsdGEtYmx1ZS10cnktY2F0Y2ggICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA2NS4wMDAzKy00Ljc3MzMgICAgID8gICAgIDY3Ljk5
OTIrLTYuNDE3NiAgICAgICAgPyBtaWdodCBiZSAxLjA0NjF4IHNsb3dlcgogICBkZWx0YWJsdWUt
Zm9yLW9mICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwLjcwNDMrLTMuOTQ2NCAg
ICAgICAgICAgNTAuNjIyNCstMy4wMDQ4ICAgICAgICAKICAgZGVsdGFibHVlLXZhcmFyZ3MgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNi4wMzkyKy0wLjkxMDggICAgID8gICAgIDI5
LjE2MTErLTkuMTA0NCAgICAgICAgPyBtaWdodCBiZSAxLjExOTl4IHNsb3dlcgogICBkZXN0cnVj
dHVyaW5nLWFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ3LjE0MTQrLTIuMzI5
NyAgICAgPyAgICAgNDguNzU4NSstMi45MDk1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM0M3ggc2xv
d2VyCiAgIGRlc3RydWN0dXJpbmctcGFyYW1ldGVycy1vdmVycmlkZGVuLWJ5LWZ1bmN0aW9uICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAu
OTgxMCstMC4yMDQ4ICAgICAgICAgICAgMC44OTk4Ky0wLjA1NDMgICAgICAgICAgbWlnaHQgYmUg
MS4wOTAyeCBmYXN0ZXIKICAgZGVzdHJ1Y3R1cmluZy1zd2FwICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNi4zNDY0Ky0wLjQ1MzkgICAgID8gICAgICA2LjcyMjIrLTAuMzYzNSAgICAg
ICAgPyBtaWdodCBiZSAxLjA1OTJ4IHNsb3dlcgogICBkZmctaW50ZXJuYWwtZnVuY3Rpb24tY2Fs
bCAgICAgICAgICAgICAgICAgICAgICAgICAxLjE2NTIrLTAuMTA5NCAgICAgPyAgICAgIDEuMTY4
MistMC4wODM5ICAgICAgICA/CiAgIGRmZy1pbnRlcm5hbC1mdW5jdGlvbi1jb25zdHJ1Y3QgICAg
ICAgICAgICAgICAgICAgIDEuMTc1NSstMC4wNTg0ICAgICAgICAgICAgMS4xMzExKy0wLjA0NDgg
ICAgICAgICAgbWlnaHQgYmUgMS4wMzkzeCBmYXN0ZXIKICAgZGZnLWludGVybmFsLWZ1bmN0aW9u
LW5vdC1oYW5kbGVkLWNhbGwgICAgICAgICAgICAxMC4xODM2Ky00LjQxMDUgICAgICAgICAgICA4
LjEzMDIrLTAuODg2MyAgICAgICAgICBtaWdodCBiZSAxLjI1MjZ4IGZhc3RlcgogICBkZmctaW50
ZXJuYWwtZnVuY3Rpb24tbm90LWhhbmRsZWQtY29uc3RydWN0ICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuOTA1MCstMC4yMjY3ICAgICAg
ICAgICAgMS44NTI5Ky0wLjA0MDAgICAgICAgICAgbWlnaHQgYmUgMS4wMjgxeCBmYXN0ZXIKICAg
ZGlyZWN0LWFyZ3VtZW50cy1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgMS40NzI0
Ky0wLjExODggICAgID8gICAgICAxLjUxOTArLTAuMDk4NyAgICAgICAgPyBtaWdodCBiZSAxLjAz
MTZ4IHNsb3dlcgogICBkaXJlY3QtYXJndW1lbnRzLWxlbmd0aCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA4LjgxNDQrLTAuNDQ0NiAgICAgPyAgICAgIDguODg5NistMC43MTk0ICAgICAgICA/
CiAgIGRpcmVjdC1hcmd1bWVudHMtb3ZlcnJpZGRlbi1sZW5ndGggICAgICAgICAgICAgICAgIDgu
NTgxNystMC41MjAzICAgICAgICAgICAgOC4yODA4Ky0xLjA2NzMgICAgICAgICAgbWlnaHQgYmUg
MS4wMzYzeCBmYXN0ZXIKICAgZGlyZWN0LWFyZ3VtZW50cy1wb3NzaWJseS1vdmVycmlkZGVuLWxl
bmd0aCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA4LjU4MzgrLTAuNjE4MiAgICAgICAgICAgIDguMzc2MystMC42NDA1ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDI0OHggZmFzdGVyCiAgIGRpcmVjdC1jYWxsLWFyaXR5LW1pc21hdGNoICAgICAg
ICAgICAgICAgICAgICAgICAgNzcuOTQ0NystMy4yNDE3ICAgICA/ICAgIDEwMy44MzY4Ky03NC4w
MjI0ICAgICAgID8gbWlnaHQgYmUgMS4zMzIyeCBzbG93ZXIKICAgZGlyZWN0LWNhbGwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2OC4yNjE2Ky00Ljg0ODIgICAgID8gICAg
IDY5LjgxODErLTMuMzUwNyAgICAgICAgPyBtaWdodCBiZSAxLjAyMjh4IHNsb3dlcgogICBkaXJl
Y3QtY29uc3RydWN0LWFyaXR5LW1pc21hdGNoICAgICAgICAgICAgICAgICAgMTMzLjAzMTUrLTIu
ODk4MCAgICAgPyAgICAxMzQuMDU5OCstNS4wNTg2ICAgICAgICA/CiAgIGRpcmVjdC1jb25zdHJ1
Y3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMTYuMTUxMystMi42MzczICAgICAg
ICAgIDExNC45Mjg3Ky0zLjc3MzEgICAgICAgICAgbWlnaHQgYmUgMS4wMTA2eCBmYXN0ZXIKICAg
ZGlyZWN0LXRhaWwtY2FsbC1hcml0eS1taXNtYXRjaCAgICAgICAgICAgICAgICAgICA4Ny44NzY4
Ky01LjQ4NTQgICAgICAgICAgIDg0LjM3NzQrLTIuNzIxMyAgICAgICAgICBtaWdodCBiZSAxLjA0
MTV4IGZhc3RlcgogICBkaXJlY3QtdGFpbC1jYWxsLWlubGluZWQtY2FsbGVyLWFyaXR5LW1pc21h
dGNoICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNzkuMjExNistMi43MzQ4ICAgICAgICAgICA3Ni44MzQ5Ky0yLjcxMjUgICAgICAgICAgbWln
aHQgYmUgMS4wMzA5eCBmYXN0ZXIKICAgZGlyZWN0LXRhaWwtY2FsbC1pbmxpbmVkLWNhbGxlciAg
ICAgICAgICAgICAgICAgICA3MS44MjcxKy0yLjc4MjcgICAgID8gICAgIDc2LjM1NDMrLTE2LjEy
MzMgICAgICAgPyBtaWdodCBiZSAxLjA2MzB4IHNsb3dlcgogICBkaXJlY3QtdGFpbC1jYWxsICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc5LjE5NTMrLTUuMjUyNCAgICAgPyAgICAg
ODAuMTk1OCstNi4zOTc0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyNnggc2xvd2VyCiAgIGRpdi1i
b29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuNDUzNystMC4z
Mzc3ICAgICAgICAgICAgNS4xNjE2Ky0wLjM2MTAgICAgICAgICAgbWlnaHQgYmUgMS4wNTY2eCBm
YXN0ZXIKICAgZGl2LWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOS4xODM4Ky0wLjQ3MzIgICAgID8gICAgICA5LjYyNTIrLTAuODMxNCAgICAgICAgPyBtaWdo
dCBiZSAxLjA0ODF4IHNsb3dlcgogICBkb250LWNvbmZ1c2Utc3RydWN0dXJlcy1mcm9tLWRpZmZl
cmVudC1leGVjdXRhYmxlLWFzLXBvbHktcHJvdG8gICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3NS40ODQ0Ky0zNy44OTUwICAgICAgICAgIDU4
LjMwMTgrLTEuNjQxOCAgICAgICAgICBtaWdodCBiZSAxLjI5NDd4IGZhc3RlcgogICBkb3VibGUt
YXJyYXktdG8tc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc3LjAyODUrLTIuMjg3
NSAgICAgPyAgICAgNzkuMDE5MSstNC43ODgyICAgICAgICA/IG1pZ2h0IGJlIDEuMDI1OHggc2xv
d2VyCiAgIGRvdWJsZS1nZXQtYnktdmFsLW91dC1vZi1ib3VuZHMgICAgICAgICAgICAgICAgICAg
IDguNDQ1OCstMy4zMjI5ICAgICAgICAgICAgNy42Njk3Ky0wLjYwMjEgICAgICAgICAgbWlnaHQg
YmUgMS4xMDEyeCBmYXN0ZXIKICAgZG91YmxlLXBvbGx1dGlvbi1nZXRieXZhbCAgICAgICAgICAg
ICAgICAgICAgICAgICAgOC41NDMyKy0wLjU1MzMgICAgICAgICAgICA4LjM2NzYrLTAuMzk1OCAg
ICAgICAgICBtaWdodCBiZSAxLjAyMTB4IGZhc3RlcgogICBkb3VibGUtcG9sbHV0aW9uLXB1dGJ5
b2Zmc2V0ICAgICAgICAgICAgICAgICAgICAgICA1LjAzOTUrLTAuNjIzMyAgICAgPyAgICAgIDUu
MjM3OCstMC45MjMyICAgICAgICA/IG1pZ2h0IGJlIDEuMDM5NHggc2xvd2VyCiAgIGRvdWJsZS1y
ZWFsLXVzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjguMjM3MSstMi4wNTU3
ICAgICAgICAgICAyOC4wNjA3Ky0xLjc4MDEgICAgICAgIAogICBkb3VibGUtdG8taW50MzItdHlw
ZWQtYXJyYXktbm8taW5saW5lICAgICAgICAgICAgICA0LjA5MjcrLTEuMjU3NyAgICAgICAgICAg
IDQuMDYxMistMC41ODAzICAgICAgICAKICAgZG91YmxlLXRvLWludDMyLXR5cGVkLWFycmF5ICAg
ICAgICAgICAgICAgICAgICAgICAgMy40NjU0Ky0wLjQxNDAgICAgID8gICAgICAzLjQ4MDkrLTAu
NDc5MiAgICAgICAgPwogICBkb3VibGUtdG8tdWludDMyLXR5cGVkLWFycmF5LW5vLWlubGluZSAg
ICAgICAgICAgICA0Ljg5MzcrLTIuNzg4NyAgICAgICAgICAgIDQuMDI3NistMC41NjEzICAgICAg
ICAgIG1pZ2h0IGJlIDEuMjE1MHggZmFzdGVyCiAgIGRvdWJsZS10by11aW50MzItdHlwZWQtYXJy
YXkgICAgICAgICAgICAgICAgICAgICAgIDMuNDYzMCstMC41NzE4ICAgICA/ICAgICAgMy45Nzg0
Ky0wLjc0NDIgICAgICAgID8gbWlnaHQgYmUgMS4xNDg4eCBzbG93ZXIKICAgZWxpZGFibGUtbmV3
LW9iamVjdC1kYWcgICAgICAgICAgICAgICAgICAgICAgICAgICAxOC42NTk4Ky0wLjI3MTkgICAg
ID8gICAgIDE4LjcxOTArLTAuNzQxNSAgICAgICAgPwogICBlbGlkYWJsZS1uZXctb2JqZWN0LXJv
Zmxjb3B0ZXIgICAgICAgICAgICAgICAgICAgIDM2LjQ3MjUrLTIyLjU3MjYgICAgICAgICAgMjgu
MzQ3NSstNi43MjIwICAgICAgICAgIG1pZ2h0IGJlIDEuMjg2NnggZmFzdGVyCiAgIGVsaWRhYmxl
LW5ldy1vYmplY3QtdGhlbi1jYWxsICAgICAgICAgICAgICAgICAgICAgMjAuMDM4MSstNi40OTYw
ICAgICAgICAgICAxNy44MjM2Ky0wLjM0OTggICAgICAgICAgbWlnaHQgYmUgMS4xMjQyeCBmYXN0
ZXIKICAgZWxpZGFibGUtbmV3LW9iamVjdC10cmVlICAgICAgICAgICAgICAgICAgICAgICAgICAx
OC4wNDY3Ky0wLjI3MDAgICAgID8gICAgIDE4LjQ0NzYrLTEuMTMyOCAgICAgICAgPyBtaWdodCBi
ZSAxLjAyMjJ4IHNsb3dlcgogICBlbXB0eS1zdHJpbmctcGx1cy1pbnQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA2Ljk1NDcrLTAuNDc0MSAgICAgPyAgICAgIDcuMDM0MCstMC42NDk5ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDExNHggc2xvd2VyCiAgIGVtc2NyaXB0ZW4tY3ViZTJoYXNoICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIuNTQ0MSstMS4yNjE2ICAgICA/ICAgICAzMy43
NjQ5Ky0zLjQxMjUgICAgICAgID8gbWlnaHQgYmUgMS4wMzc1eCBzbG93ZXIKICAgZXZhbC1jYWNo
ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMy40NzE0Ky0xLjgzMjgg
ICAgICAgICAgIDIzLjA3OTQrLTAuNzczMSAgICAgICAgICBtaWdodCBiZSAxLjAxNzB4IGZhc3Rl
cgogICBldmFsLWNvZGUtZnRsLXJlZW50cnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM2
LjQyNTkrLTEuMjMxNiAgICAgPyAgICAgMzguMDk3NSstMy42ODk0ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDQ1OXggc2xvd2VyCiAgIGV2YWwtY29kZS1mdGwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNTUuMDM1MSstMS45NjM1ICAgICAgICAgICA1My43NDUzKy0wLjc2NzQgICAg
ICAgICAgbWlnaHQgYmUgMS4wMjQweCBmYXN0ZXIKICAgZXZhbC1jb21wdXRlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzMC4yNjExKy0wLjM5MzggICAgID8gICAgIDM1LjUz
NzMrLTEyLjczMDIgICAgICAgPyBtaWdodCBiZSAxLjE3NDR4IHNsb3dlcgogICBldmFsLW5vdC1l
dmFsLWNvbXB1dGUtYXJncyAgICAgICAgICAgICAgICAgICAgICAgIDI4Ljk5MDgrLTAuNTcyMiAg
ICAgICAgICAgMjguNzA0NSstMC4xMDg3ICAgICAgICAKICAgZXZhbC1ub3QtZXZhbC1jb21wdXRl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOC43NzQwKy0wLjU0MjcgICAgID8gICAgIDI5
Ljg1MzArLTEuOTM3MSAgICAgICAgPyBtaWdodCBiZSAxLjAzNzV4IHNsb3dlcgogICBleGl0LWxl
bmd0aC1vbi1wbGFpbi1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgIDE0LjEyMjYrLTEuNTUx
NSAgICAgICAgICAgMTMuNzI0NistMC4xMzEwICAgICAgICAgIG1pZ2h0IGJlIDEuMDI5MHggZmFz
dGVyCiAgIGV4dGVybmFsLWFyZ3VtZW50cy1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAg
IDEuNjYzNSstMC4xMDg5ICAgICAgICAgICAgMS42MDAxKy0wLjE2MTUgICAgICAgICAgbWlnaHQg
YmUgMS4wMzk2eCBmYXN0ZXIKICAgZXh0ZXJuYWwtYXJndW1lbnRzLXB1dGJ5dmFsICAgICAgICAg
ICAgICAgICAgICAgICAgMi42NjMyKy0wLjA2MDMgICAgID8gICAgICAzLjI2NDArLTEuNTcwMyAg
ICAgICAgPyBtaWdodCBiZSAxLjIyNTZ4IHNsb3dlcgogICBmaXhlZC10eXBlZC1hcnJheS1zdG9y
YWdlLXZhci1pbmRleCAgICAgICAgICAgICAgICAzLjQwNDgrLTIuMTQ1OCAgICAgICAgICAgIDIu
NzczOSstMS40ODkwICAgICAgICAgIG1pZ2h0IGJlIDEuMjI3NHggZmFzdGVyCiAgIGZpeGVkLXR5
cGVkLWFycmF5LXN0b3JhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgIDEuODYwNistMC4wNjQ4
ICAgICAgICAgICAgMS44MjQ0Ky0wLjA1NDggICAgICAgICAgbWlnaHQgYmUgMS4wMTk5eCBmYXN0
ZXIKICAgRmxvYXQzMkFycmF5LW1hdHJpeC1tdWx0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ny40NTY0Ky0wLjkyNTkgICAgICAgICAgICA3LjI0NzcrLTAuMzE4MSAgICAgICAgICBtaWdodCBi
ZSAxLjAyODh4IGZhc3RlcgogICBGbG9hdDMyQXJyYXktdG8tRmxvYXQ2NEFycmF5LXNldCAgICAg
ICAgICAgICAgICAgIDUzLjU2MzIrLTIuNjYzMyAgICAgICAgICAgNDguNzMyNystMi4xODQzICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDk5MXggZmFzdGVyCiAgIEZsb2F0NjRBcnJheS1hbGxvYy1sb25n
LWxpdmVkICAgICAgICAgICAgICAgICAgICAgOTguNDIwOCstNS45MDQxICAgICAgICAgICA5Ny45
NzY4Ky0zLjIyNDYgICAgICAgIAogICBGbG9hdDY0QXJyYXktdG8tSW50MTZBcnJheS1zZXQgICAg
ICAgICAgICAgICAgICAgIDYxLjE0NTQrLTEuMTE2OCAgICAgICAgICAgNjAuNTcwMystMi40OTgw
ICAgICAgICAKICAgZm9sZC1kb3VibGUtdG8taW50ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxNS45NjUwKy0wLjI2NjkgICAgICAgICAgIDE1LjgzNTMrLTAuNTUwOCAgICAgICAgCiAg
IGZvbGQtZ2V0LWJ5LWlkLXRvLW11bHRpLWdldC1ieS1vZmZzZXQtcmFyZS1pbnQgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS4yNzE3Ky0y
LjQxOTUgICAgID8gICAgIDEzLjczMzArLTIuNzkxNSAgICAgICAgPyBtaWdodCBiZSAxLjIxODR4
IHNsb3dlcgogICBmb2xkLWdldC1ieS1pZC10by1tdWx0aS1nZXQtYnktb2Zmc2V0ICAgICAgICAg
ICAgIDEyLjk1OTArLTIuMDYxNiAgICAgICAgICAgMTIuNzI5NistMi40Nzc5ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDE4MHggZmFzdGVyCiAgIGZvbGQtbXVsdGktZ2V0LWJ5LW9mZnNldC10by1nZXQt
Ynktb2Zmc2V0ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDkuNTI4NystMS4yMTgxICAgICAgICAgICAgOC41NTQzKy0xLjk1NDQgICAgICAg
ICAgbWlnaHQgYmUgMS4xMTM5eCBmYXN0ZXIKICAgZm9sZC1tdWx0aS1nZXQtYnktb2Zmc2V0LXRv
LXBvbHktZ2V0LWJ5LW9mZnNldCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA4Ljk0MDMrLTEuNzM2OCAgICAgICAgICAgIDguNzIxMSstMS41
NDEyICAgICAgICAgIG1pZ2h0IGJlIDEuMDI1MXggZmFzdGVyCiAgIGZvbGQtbXVsdGktcHV0LWJ5
LW9mZnNldC10by1wb2x5LXB1dC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS4wMDIxKy0wLjQ3MzMgICAgID8gICAgIDEy
LjU5MTYrLTMuOTM0MSAgICAgICAgPyBtaWdodCBiZSAxLjE0NDV4IHNsb3dlcgogICBmb2xkLW11
bHRpLXB1dC1ieS1vZmZzZXQtdG8tcHV0LWJ5LW9mZnNldCAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjE4NjcrLTAuNjg5OCAgICAgICAg
ICAgIDguMzY1MCstMS45NzQ1ICAgICAgICAgIG1pZ2h0IGJlIDEuMjE3OHggZmFzdGVyCiAgIGZv
bGQtbXVsdGktcHV0LWJ5LW9mZnNldC10by1yZXBsYWNlLW9yLXRyYW5zaXRpb24tcHV0LWJ5LW9m
ZnNldCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEyLjM1NjMrLTEuNzY4MCAgICAgICAgICAgMTIuMzUzOCstMC4zODk2ICAgICAgICAKICAg
Zm9sZC1wdXQtYnktaWQtdG8tbXVsdGktcHV0LWJ5LW9mZnNldCAgICAgICAgICAgICAxMy4wMjA1
Ky0yLjg5MjIgICAgID8gICAgIDE0LjA4NDErLTIuNjQ0NyAgICAgICAgPyBtaWdodCBiZSAxLjA4
MTd4IHNsb3dlcgogICBmb2xkLXB1dC1ieS12YWwtd2l0aC1zdHJpbmctdG8tbXVsdGktcHV0LWJ5
LW9mZnNldCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDE1LjA3MDErLTAuNjc1OSAgICAgICAgICAgMTQuNTM2MistMC42MzM3ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDM2N3ggZmFzdGVyCiAgIGZvbGQtcHV0LWJ5LXZhbC13aXRoLXN5bWJvbC10
by1tdWx0aS1wdXQtYnktb2Zmc2V0ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTMuODc4OCstMS44NzgzICAgICAgICAgICAxMy41OTg4Ky0y
LjM5NTEgICAgICAgICAgbWlnaHQgYmUgMS4wMjA2eCBmYXN0ZXIKICAgZm9sZC1wdXQtc3RydWN0
dXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS42MzkzKy0yLjkyMjkgICAgICAg
ICAgICA4Ljk4NzcrLTIuNDU5MSAgICAgICAgICBtaWdodCBiZSAxLjA3MjV4IGZhc3RlcgogICBm
b3Itb2YtYXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI5LjQxOTgr
LTE5LjAzMTcgICAgICAgICAgMjIuNjUxNCstMC42MTQwICAgICAgICAgIG1pZ2h0IGJlIDEuMjk4
OHggZmFzdGVyCiAgIGZvci1vZi1pdGVyYXRlLWFycmF5LWVudHJpZXMgICAgICAgICAgICAgICAg
ICAgICAgMTAuMDk2NSstMS4yNjg2ICAgICA/ICAgICAxMC41MDk3Ky0wLjM2MTkgICAgICAgID8g
bWlnaHQgYmUgMS4wNDA5eCBzbG93ZXIKICAgZm9yLW9mLWl0ZXJhdGUtYXJyYXkta2V5cyAgICAg
ICAgICAgICAgICAgICAgICAgICAgOC4wOTAyKy00LjEyNDAgICAgICAgICAgICA2LjI2NjkrLTAu
NTc3NSAgICAgICAgICBtaWdodCBiZSAxLjI5MDl4IGZhc3RlcgogICBmb3Itb2YtaXRlcmF0ZS1h
cnJheS12YWx1ZXMgICAgICAgICAgICAgICAgICAgICAgICA1LjkzMzArLTAuNjYyOSAgICAgPyAg
ICAgIDYuMjQwMSstMC45MDk3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDUxOHggc2xvd2VyCiAgIGZv
cndhcmQtYXJndW1lbnRzLWRvbnQtZXNjYXBlLW9uLWFyZ3VtZW50cy1sZW5ndGggICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzOS44MDQ2Ky0y
NC4yNTQ2ICAgICAgICAgIDMyLjE3NTMrLTIuNTU5MCAgICAgICAgICBtaWdodCBiZSAxLjIzNzF4
IGZhc3RlcgogICBmcmVlemUtYW5kLWRvLXdvcmsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDE2LjU2ODQrLTAuNDAzNyAgICAgPyAgICAgMjAuODI3NistMTEuNzE5NyAgICAgICA/IG1p
Z2h0IGJlIDEuMjU3MXggc2xvd2VyCiAgIGZyb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTIuNjE0OCstMC44MTU0ICAgICA/ICAgICAxNC42NjQ2Ky02Ljg2
MzIgICAgICAgID8gbWlnaHQgYmUgMS4xNjI1eCBzbG93ZXIKICAgZnRsLWxpYnJhcnktaW5saW5p
bmctZGF0YXZpZXcgICAgICAgICAgICAgICAgICAgIDE0MC4xMDA1Ky04MC43MjEzICAgICAgICAg
MTA2Ljc4NjArLTUuNDk4OSAgICAgICAgICBtaWdodCBiZSAxLjMxMjB4IGZhc3RlcgogICBmdGwt
bGlicmFyeS1pbmxpbmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwLjQxOTErLTYu
ODg3MCAgICAgPyAgICAgMzEuNDE0OCstNy45ODY5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMyN3gg
c2xvd2VyCiAgIGZ0bC1wb2x5bW9ycGhpYy1TdHJpbmdGcm9tQ2hhckNvZGUgICAgICAgICAgICAg
ICAgNTQuNTg0MystNC45NzQ2ICAgICA/ICAgICA2MS4zMjI4Ky01LjY5OTYgICAgICAgID8gbWln
aHQgYmUgMS4xMjM1eCBzbG93ZXIKICAgZnVuY3Rpb24tY2FsbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxMC40ODI0Ky0wLjQzMzMgICAgID8gICAgIDExLjA0NzIrLTAuNDM0
MCAgICAgICAgPyBtaWdodCBiZSAxLjA1Mzl4IHNsb3dlcgogICBmdW5jdGlvbi1kb3QtYXBwbHkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjY5OTUrLTEuNTU4NCAgICAgICAgICAg
IDMuMTI1MCstMC4xMTUwICAgICAgICAgIG1pZ2h0IGJlIDEuMTgzOHggZmFzdGVyCiAgIGZ1bmN0
aW9uLXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNzkzOCstMC4y
MjMzICAgICA/ICAgICAgMy45Njg4Ky0wLjUwNDkgICAgICAgID8gbWlnaHQgYmUgMS4wNDYxeCBz
bG93ZXIKICAgZnVuY3Rpb24td2l0aC1ldmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA2NC40MzY1Ky0xLjE2NjggICAgICAgICAgIDY0LjE2OTArLTEuNzk1NyAgICAgICAgCiAgIGdj
c2UtcG9seS1nZXQtbGVzcy1vYnZpb3VzICAgICAgICAgICAgICAgICAgICAgICAgMTAuNjkxNyst
MC41Nzg0ICAgICAgICAgICAxMC4xNjYzKy0wLjQwMjEgICAgICAgICAgbWlnaHQgYmUgMS4wNTE3
eCBmYXN0ZXIKICAgZ2NzZS1wb2x5LWdldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxMS4zMTM4Ky0wLjM3MDggICAgICAgICAgIDExLjEwNDIrLTAuNjcyMSAgICAgICAgICBt
aWdodCBiZSAxLjAxODl4IGZhc3RlcgogICBnY3NlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA1LjMwMjArLTAuNzA3MyAgICAgPyAgICAgIDUuMzYwNCstMC4y
MjcwICAgICAgICA/IG1pZ2h0IGJlIDEuMDExMHggc2xvd2VyCiAgIGdlbmVyYXRvci1jcmVhdGUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNDMyMystMC4xMDkzICAgICA/ICAg
ICAgMS40Nzc2Ky0wLjE5MjYgICAgICAgID8gbWlnaHQgYmUgMS4wMzE2eCBzbG93ZXIKICAgZ2Vu
ZXJhdG9yLWZpYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMS41OTM2Ky0x
LjYzMDYgICAgICAgICAgIDIxLjM1MDMrLTAuOTk5NSAgICAgICAgICBtaWdodCBiZSAxLjAxMTR4
IGZhc3RlcgogICBnZW5lcmF0b3ItZnVuY3Rpb24tY3JlYXRlICAgICAgICAgICAgICAgICAgICAg
ICAgICA3LjQ3MDYrLTIuMTI2NyAgICAgICAgICAgIDYuNjg0MSstMC4zNzk3ICAgICAgICAgIG1p
Z2h0IGJlIDEuMTE3N3ggZmFzdGVyCiAgIGdlbmVyYXRvci1zdW5zcGlkZXItYWNjZXNzLW5zaWV2
ZSAgICAgICAgICAgICAgICAgIDcuMTU1NistMC44MTY4ICAgICAgICAgICAgNi44NDAxKy0wLjQz
MDMgICAgICAgICAgbWlnaHQgYmUgMS4wNDYxeCBmYXN0ZXIKICAgZ2VuZXJhdG9yLXdpdGgtc2V2
ZXJhbC10eXBlcyAgICAgICAgICAgICAgICAgICAgIDEzOC4wMjg3Ky0xNy4xNTU5ICAgICAgICAg
MTM2LjQ5NTIrLTM1LjM4MjkgICAgICAgICBtaWdodCBiZSAxLjAxMTJ4IGZhc3RlcgogICBnZXQt
YnktaWQtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy41NTQ2
Ky0wLjI0MDEgICAgID8gICAgICAzLjk1MTQrLTEuMTMwNSAgICAgICAgPyBtaWdodCBiZSAxLjEx
MTZ4IHNsb3dlcgogICBnZXQtYnktaWQtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA2LjcxMzYrLTAuMjU0NCAgICAgPyAgICAgIDYuODkwNystMS42ODc4ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDI2NHggc2xvd2VyCiAgIGdldC1ieS1pZC1jaGFpbi1mcm9tLXRyeS1ibG9jayAg
ICAgICAgICAgICAgICAgICAgIDIuNzE4NystMC4wOTU2ICAgICA/ICAgICAgMi45MTkyKy0wLjU4
NzUgICAgICAgID8gbWlnaHQgYmUgMS4wNzM4eCBzbG93ZXIKICAgZ2V0LWJ5LWlkLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbiAgICAgICAgICAgICAgNS42NDAxKy0wLjIzMDYgICAgID8gICAg
ICA1LjY2ODMrLTAuMTc5OCAgICAgICAgPwogICBnZXQtYnktaWQtcHJvdG8tb3Itc2VsZiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDEwLjA2MTArLTAuNzI5NSAgICAgPyAgICAgMTAuNTkzMist
MC43MTAzICAgICAgICA/IG1pZ2h0IGJlIDEuMDUyOXggc2xvd2VyCiAgIGdldC1ieS1pZC1xdWFk
bW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNzc2NCstMS40OTkz
ICAgICAgICAgICAgNC4zNzUyKy0wLjU2NTYgICAgICAgICAgbWlnaHQgYmUgMS4wOTE3eCBmYXN0
ZXIKICAgZ2V0LWJ5LWlkLXNlbGYtb3ItcHJvdG8gICAgICAgICAgICAgICAgICAgICAgICAgICAx
Mi4xMDEwKy01LjI5MjEgICAgICAgICAgIDEwLjY1ODgrLTAuMjkwNCAgICAgICAgICBtaWdodCBi
ZSAxLjEzNTN4IGZhc3RlcgogICBnZXQtYnktdmFsLW91dC1vZi1ib3VuZHMgICAgICAgICAgICAg
ICAgICAgICAgICAgICA3LjczNzYrLTAuNDA0MCAgICAgPyAgICAgIDguNDQ1OCstMi45MTI3ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDkxNXggc2xvd2VyCiAgIGdldC1ieS12YWwtd2l0aC1zdHJpbmct
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4yMTUyKy0wLjU2
OTEgICAgID8gICAgICA0LjQzMTYrLTEuMzk2MyAgICAgICAgPyBtaWdodCBiZSAxLjA1MTN4IHNs
b3dlcgogICBnZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOS4zMDA0Ky0yLjMzNTEgICAgID8gICAgICA5Ljc4MTgrLTEuOTAxNiAgICAg
ICAgPyBtaWdodCBiZSAxLjA1MTh4IHNsb3dlcgogICBnZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNo
YWluLWZyb20tdHJ5LWJsb2NrICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDMuMzc0OCstMS43MjY3ICAgICAgICAgICAgMi45MjU0Ky0wLjIx
MTYgICAgICAgICAgbWlnaHQgYmUgMS4xNTM2eCBmYXN0ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24gICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS42NTU5Ky0zLjQxNzIgICAgICAgICAg
ICA5LjI5ODcrLTEuODc2NiAgICAgICAgICBtaWdodCBiZSAxLjAzODR4IGZhc3RlcgogICBnZXQt
YnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYgICAgICAgICAgICAgIDEzLjU4ODQrLTIu
MjE0MCAgICAgICAgICAgMTIuMTI0MistMi45Mzc3ICAgICAgICAgIG1pZ2h0IGJlIDEuMTIwOHgg
ZmFzdGVyCiAgIGdldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLXNpbXBsZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA1LjI0NTcrLTAuNjY3NCAgICAgPyAgICAgIDUuNDEyOCst
MC43OTk5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMxOXggc2xvd2VyCiAgIGdldC1ieS12YWwtd2l0
aC1zdHJpbmctc2VsZi1vci1wcm90byAgICAgICAgICAgICAgMTIuMzgxMistMi40NDgyICAgICA/
ICAgICAxMi42ODA1Ky0yLjU0NDEgICAgICAgID8gbWlnaHQgYmUgMS4wMjQyeCBzbG93ZXIKICAg
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLXNpbXBsZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA0LjkxOTErLTEuMTk0NCAgICAgICAgICAgIDQuMzM2MSstMC40NzkyICAgICAg
ICAgIG1pZ2h0IGJlIDEuMTM0NXggZmFzdGVyCiAgIGdldC1ieS12YWwtd2l0aC1zeW1ib2wtYmlt
b3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjc0NDcrLTEuNTM0MiAgICAgPyAg
ICAgMTQuMjIyMistNS4zOTk3ICAgICAgICA/IG1pZ2h0IGJlIDEuMTE1OXggc2xvd2VyCiAgIGdl
dC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2sgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi43Njg2Ky0wLjA1MjYg
ICAgID8gICAgICAzLjA1MjErLTAuMzc0MyAgICAgICAgPyBtaWdodCBiZSAxLjEwMjR4IHNsb3dl
cgogICBnZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEy
LjQyNjYrLTAuNzcwMSAgICAgPyAgICAgMTIuNTE3MSstMC45NjYzICAgICAgICA/CiAgIGdldC1i
eS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZiAgICAgICAgICAgICAgMTMuNDA0NSstMy40
MDkwICAgICAgICAgICAxMy4xODE1Ky0yLjUyOTMgICAgICAgICAgbWlnaHQgYmUgMS4wMTY5eCBm
YXN0ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24tc2ltcGxlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDUuMzg0MystMC40MDQ5ICAgICA/ICAgICAgNS41MzUxKy0w
LjE4MDMgICAgICAgID8gbWlnaHQgYmUgMS4wMjgweCBzbG93ZXIKICAgZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1zZWxmLW9yLXByb3RvICAgICAgICAgICAgICAxMy4yMTc3Ky0zLjE0ODEgICAgID8g
ICAgIDEzLjM0MzErLTIuMzU4MiAgICAgICAgPwogICBnZXRfYnlfdmFsLUludDMyQXJyYXkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyLjI5NjIrLTAuMTY0NCAgICAgICAgICAgIDIuMjk1
NystMC4yNzY5ICAgICAgICAKICAgZ2V0X2NhbGxlZV9tb25vbW9ycGhpYyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNC44MTI4Ky0wLjU3ODAgICAgICAgICAgICA0LjY5ODArLTAuNjU3NyAg
ICAgICAgICBtaWdodCBiZSAxLjAyNDR4IGZhc3RlcgogICBnZXRfY2FsbGVlX3BvbHltb3JwaGlj
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjI4MDYrLTAuNzAyNiAgICAgPyAgICAgIDku
MzQ3NistMC4yNTkyICAgICAgICA/CiAgIGdldHRlci1uby1hY3RpdmF0aW9uICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQuNTAxMistMC4zNjAzICAgICAgICAgICAgNC4yNjExKy0wLjA5
MjIgICAgICAgICAgbWlnaHQgYmUgMS4wNTYzeCBmYXN0ZXIKICAgZ2V0dGVyLXByb3RvdHlwZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi45MzIxKy0wLjMyNTAgICAgICAgICAg
ICA2LjU5NjkrLTAuNDgyNSAgICAgICAgICBtaWdodCBiZSAxLjA1MDh4IGZhc3RlcgogICBnZXR0
ZXItcmljaGFyZHMtdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgICAgICAgIDk5LjcyNTUrLTQu
NDk4NCAgICAgICAgICAgOTkuNTQyNistMy4zNTMyICAgICAgICAKICAgZ2V0dGVyLXJpY2hhcmRz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExMC43OTU3Ky0yNi42NDU2ICAgICAg
ICAgIDk0LjgwNjMrLTE0LjI0MzcgICAgICAgICBtaWdodCBiZSAxLjE2ODd4IGZhc3RlcgogICBn
ZXR0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjQyODQr
LTAuMjUyNCAgICAgPyAgICAgIDUuOTAwNystMC42OTAwICAgICAgICA/IG1pZ2h0IGJlIDEuMDg3
MHggc2xvd2VyCiAgIGdsb2JhbC1jb2RlLWZ0bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNDMuOTg4MCstMi4zMjcwICAgICA/ICAgICA0NS4yOTU4Ky0yLjI2OTIgICAgICAgID8g
bWlnaHQgYmUgMS4wMjk3eCBzbG93ZXIKICAgZ2xvYmFsLWlzTmFOICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxNS4xNTUzKy0wLjQzMDcgICAgID8gICAgIDE1LjczOTkrLTAu
MjA5NyAgICAgICAgPyBtaWdodCBiZSAxLjAzODZ4IHNsb3dlcgogICBnbG9iYWwtb2JqZWN0LWFj
Y2Vzcy13aXRoLW11dGF0aW5nLXN0cnVjdHVyZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjIyNjYrLTAuMzQxMSAgICAgPyAgICAgIDcu
MzQyOSstMC45MjQ3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE2MXggc2xvd2VyCiAgIGdsb2JhbC12
YXItY29uc3QtaW5mZXItZmlyZS1mcm9tLW9wdCAgICAgICAgICAgICAgIDEuMzMxOCstMC4xNzU4
ICAgICA/ICAgICAgMS4zODA4Ky0wLjEyMjEgICAgICAgID8gbWlnaHQgYmUgMS4wMzY4eCBzbG93
ZXIKICAgZ2xvYmFsLXZhci1jb25zdC1pbmZlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MS4zMjUzKy0wLjA3MDUgICAgICAgICAgICAxLjI4MzIrLTAuMTE4NSAgICAgICAgICBtaWdodCBi
ZSAxLjAzMjh4IGZhc3RlcgogICBoYXJkLW92ZXJmbG93LWNoZWNrLWVxdWFsICAgICAgICAgICAg
ICAgICAgICAgICAgIDMxLjcyMDErLTIuMTcwOCAgICAgICAgICAgMzAuMTE1NistMi45MDkyICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDUzM3ggZmFzdGVyCiAgIGhhcmQtb3ZlcmZsb3ctY2hlY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMzQuMzEyNCstMS45NDIzICAgICAgICAgICAzMS41
NzUxKy0zLjMyNzYgICAgICAgICAgbWlnaHQgYmUgMS4wODY3eCBmYXN0ZXIKICAgaGFzLW93bi1w
cm9wZXJ0eS1uYW1lLWNhY2hlICAgICAgICAgICAgICAgICAgICAgICA2NS4wODM0Ky0zLjQ4ODIg
ICAgID8gICAgIDY2LjMwNjQrLTIuODkyOCAgICAgICAgPyBtaWdodCBiZSAxLjAxODh4IHNsb3dl
cgogICBIYXNoTWFwLXB1dC1nZXQtaXRlcmF0ZS1rZXlzICAgICAgICAgICAgICAgICAgICAgIDI3
LjE1OTcrLTAuNTY1MSAgICAgICAgICAgMjYuOTk4OCstMC42NDczICAgICAgICAKICAgSGFzaE1h
cC1wdXQtZ2V0LWl0ZXJhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAyNy40MjI2Ky0wLjI5
MDEgICAgID8gICAgIDI3LjUyMjgrLTAuNDk1NiAgICAgICAgPwogICBIYXNoTWFwLXN0cmluZy1w
dXQtZ2V0LWl0ZXJhdGUgICAgICAgICAgICAgICAgICAgIDQwLjMxNDUrLTIyLjkxNzQgICAgICAg
ICAgMzMuNjAyNistMS43MDM0ICAgICAgICAgIG1pZ2h0IGJlIDEuMTk5N3ggZmFzdGVyCiAgIGhv
aXN0LWdldC1ieS1vZmZzZXQtdG93ZXItd2l0aC1pbmZlcnJlZC10eXBlcyAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjU0MTgrLTAuOTgy
OCAgICAgPyAgICAgMTUuNTYxNystNi45MzQ4ICAgICAgICA/IG1pZ2h0IGJlIDEuMTQ5Mnggc2xv
d2VyCiAgIGhvaXN0LW1ha2Utcm9wZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDYuMzIxOCstMC4yNzI3ICAgICAgICAgICAgNi4xODQ2Ky0wLjUwMzQgICAgICAgICAgbWlnaHQg
YmUgMS4wMjIyeCBmYXN0ZXIKICAgaG9pc3QtcG9seS1jaGVjay1zdHJ1Y3R1cmUtZWZmZWN0ZnVs
LWxvb3AgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNC43NTQ5Ky0wLjI2MzUgICAgID8gICAgICA1LjExNjYrLTAuNjM3MCAgICAgICAgPyBt
aWdodCBiZSAxLjA3NjF4IHNsb3dlcgogICBob2lzdC1wb2x5LWNoZWNrLXN0cnVjdHVyZSAgICAg
ICAgICAgICAgICAgICAgICAgICAzLjA5MDQrLTAuMjIxMiAgICAgPyAgICAgIDMuMTA1OSstMC4z
NTMxICAgICAgICA/CiAgIGltcGxpY2l0LWJpZ3N3aXRjaC1pbmRpcmVjdC1zeW1ib2wgICAgICAg
ICAgICAgICAgNTguNjAyOCstMS4xOTYyICAgICAgICAgICA1OC4xODM4Ky0xLjYwODAgICAgICAg
IAogICBpbXVsLWRvdWJsZS1vbmx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1
LjU3NTIrLTAuMjA5NiAgICAgPyAgICAgIDUuNzgyMSstMC4yODQwICAgICAgICA/IG1pZ2h0IGJl
IDEuMDM3MXggc2xvd2VyCiAgIGltdWwtaW50LW9ubHkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDYuMjU5MCstMC40NTc2ICAgICAhICAgICAgNy41MDY4Ky0wLjcyMjcgICAg
ICAgICEgZGVmaW5pdGVseSAxLjE5OTR4IHNsb3dlcgogICBpbXVsLW1peGVkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjMxNTcrLTAuNzQ0NSAgICAgPyAgICAgIDcu
NTc3OCstNC40MDUzICAgICAgICA/IG1pZ2h0IGJlIDEuMTk5OHggc2xvd2VyCiAgIGluLWZvdXIt
Y2FzZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTguNzAxOSstMC42MTgx
ICAgICA/ICAgICAyMS43MzAwKy02LjM1NzkgICAgICAgID8gbWlnaHQgYmUgMS4xNjE5eCBzbG93
ZXIKICAgaW4tb25lLWNhc2UtZmFsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
MC43MTI3Ky0wLjYxOTIgICAgID8gICAgIDExLjQyMjgrLTEuNzEwMiAgICAgICAgPyBtaWdodCBi
ZSAxLjA2NjN4IHNsb3dlcgogICBpbi1vbmUtY2FzZS10cnVlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDExLjE4NzIrLTEuMDAxMCAgICAgPyAgICAgMTEuMjU3MystMS41NDA0ICAg
ICAgICA/CiAgIGluLXR3by1jYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTIuOTEyMistNS4wMTYwICAgICA/ICAgICAxMy4wODQ5Ky0zLjM5NzEgICAgICAgID8gbWln
aHQgYmUgMS4wMTM0eCBzbG93ZXIKICAgaW5kZXhlZC1wcm9wZXJ0aWVzLWluLW9iamVjdHMgICAg
ICAgICAgICAgICAgICAgICAgMy45MDI2Ky0wLjE0MTYgICAgICAgICAgICAzLjc0MzUrLTAuMTky
NSAgICAgICAgICBtaWdodCBiZSAxLjA0MjV4IGZhc3RlcgogICBpbmZlci1jbG9zdXJlLWNvbnN0
LXRoZW4tbW92LW5vLWlubGluZSAgICAgICAgICAgICA0LjI4NDArLTAuOTI2OSAgICAgPyAgICAg
IDQuNTEzNSstMC43OTk4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDUzNnggc2xvd2VyCiAgIGluZmVy
LWNsb3N1cmUtY29uc3QtdGhlbi1tb3YgICAgICAgICAgICAgICAgICAgICAgMTAuODk4MystMC42
ODM1ICAgICAgICAgICAxMC40NTY1Ky0wLjQ5MjggICAgICAgICAgbWlnaHQgYmUgMS4wNDIyeCBm
YXN0ZXIKICAgaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLXB1dC10by1zY29wZS1uby1pbmxpbmUg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
MS41NDU3Ky0wLjc3MjMgICAgID8gICAgIDEyLjQzODUrLTMuODA5OCAgICAgICAgPyBtaWdodCBi
ZSAxLjA3NzN4IHNsb3dlcgogICBpbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tcHV0LXRvLXNjb3Bl
ICAgICAgICAgICAgIDI4LjEyMzArLTEuNjg3MyAgICAgXiAgICAgMjYuMTI4OCstMC4yNzY4ICAg
ICAgICBeIGRlZmluaXRlbHkgMS4wNzYzeCBmYXN0ZXIKICAgaW5mZXItY2xvc3VyZS1jb25zdC10
aGVuLXJlZW50ZXItbm8taW5saW5lICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNDcuODA0NistMS43MDQwICAgICA/ICAgICA0OC42NzIyKy0y
LjkzMjQgICAgICAgID8gbWlnaHQgYmUgMS4wMTgxeCBzbG93ZXIKICAgaW5mZXItY2xvc3VyZS1j
b25zdC10aGVuLXJlZW50ZXIgICAgICAgICAgICAgICAgICAyNy40MzQ0Ky0xLjY1ODEgICAgID8g
ICAgIDI3LjU3MTkrLTIuNTg0MyAgICAgICAgPwogICBpbmZlci1jb25zdGFudC1nbG9iYWwtcHJv
cGVydHkgICAgICAgICAgICAgICAgICAgICA0LjAxMjgrLTAuNTUyMSAgICAgICAgICAgIDMuNjY5
MistMC4xMzE1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDkzN3ggZmFzdGVyCiAgIGluZmVyLWNvbnN0
YW50LXByb3BlcnR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMjk0MistMC4xMTYzICAg
ICA/ICAgICAgNy4xNDA3Ky0xMC42MzkyICAgICAgID8gbWlnaHQgYmUgMi4xNjc3eCBzbG93ZXIK
ICAgaW5mZXItb25lLXRpbWUtY2xvc3VyZS10ZW4tdmFycyAgICAgICAgICAgICAgICAgICAxMS4w
MjA5Ky00LjYwNTYgICAgICAgICAgICA4Ljk4MjIrLTAuMzMxNyAgICAgICAgICBtaWdodCBiZSAx
LjIyNzB4IGZhc3RlcgogICBpbmZlci1vbmUtdGltZS1jbG9zdXJlLXR3by12YXJzICAgICAgICAg
ICAgICAgICAgICA4Ljg2MzgrLTAuODg3OCAgICAgICAgICAgIDguNTcyMistMC4zNDI2ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDM0MHggZmFzdGVyCiAgIGluZmVyLW9uZS10aW1lLWNsb3N1cmUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDguMzc3NCstMC4yMjI3ICAgICA/ICAgICAgOC41MzIw
Ky0wLjI1NDQgICAgICAgID8gbWlnaHQgYmUgMS4wMTg1eCBzbG93ZXIKICAgaW5mZXItb25lLXRp
bWUtZGVlcC1jbG9zdXJlICAgICAgICAgICAgICAgICAgICAgICAxNC42ODU4Ky0wLjI3NzQgICAg
ICAgICAgIDE0LjU0MTArLTAuMzAxMSAgICAgICAgCiAgIGlubGluZS1hcmd1bWVudHMtYWNjZXNz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMDIwNSstMC41MzE3ICAgICAgICAgICAgNC45
Mzc3Ky0wLjMzNDAgICAgICAgICAgbWlnaHQgYmUgMS4wMTY4eCBmYXN0ZXIKICAgaW5saW5lLWFy
Z3VtZW50cy1hbGlhc2VkLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgNi4zMjkwKy0yLjg3OTAg
ICAgICAgICAgICA0Ljk2NjIrLTAuNDY1NyAgICAgICAgICBtaWdodCBiZSAxLjI3NDR4IGZhc3Rl
cgogICBpbmxpbmUtYXJndW1lbnRzLWxvY2FsLWVzY2FwZSAgICAgICAgICAgICAgICAgICAgICA0
LjY1NDQrLTAuMTU0NyAgICAgPyAgICAgIDUuMTQ0NCstMC40ODkwICAgICAgICA/IG1pZ2h0IGJl
IDEuMTA1M3ggc2xvd2VyCiAgIGlubGluZS1nZXQtc2NvcGVkLXZhciAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDMuNjYxMCstMC41ODkyICAgICAgICAgICAgMy40ODI0Ky0wLjE0MDcgICAg
ICAgICAgbWlnaHQgYmUgMS4wNTEzeCBmYXN0ZXIKICAgaW5saW5lZC1wdXQtYnktaWQtdHJhbnNp
dGlvbiAgICAgICAgICAgICAgICAgICAgICAxMS4wMDE2Ky0wLjI3ODcgICAgID8gICAgIDExLjU3
NjIrLTEuNTIyNSAgICAgICAgPyBtaWdodCBiZSAxLjA1MjJ4IHNsb3dlcgogICBpbmxpbmVkLXB1
dC1ieS12YWwtd2l0aC1zdHJpbmctdHJhbnNpdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYwLjU1NDYrLTIuMzMzOCAgICAgICAgICAg
NTcuOTczMistMC43OTg2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ0NXggZmFzdGVyCiAgIGlubGlu
ZWQtcHV0LWJ5LXZhbC13aXRoLXN5bWJvbC10cmFuc2l0aW9uICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTkuNzM4OSstMi43MzU3ICAgICAg
ICAgICA1OC45MDM4Ky0yLjI2OTkgICAgICAgICAgbWlnaHQgYmUgMS4wMTQyeCBmYXN0ZXIKICAg
aW5zdGFuY2VvZi1ib3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNS41NTMx
Ky0xLjkzODggICAgICAgICAgIDI0LjM5NzUrLTAuODU4MCAgICAgICAgICBtaWdodCBiZSAxLjA0
NzR4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItYWJzLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAg
ICAgICAgIDE0LjM2MTMrLTYuODM4NiAgICAgICAgICAgMTAuMDMzNSstMC42OTI2ICAgICAgICAg
IG1pZ2h0IGJlIDEuNDMxM3ggZmFzdGVyCiAgIGludC1vci1vdGhlci1hYnMtemVyby10aGVuLWdl
dC1ieS12YWwgICAgICAgICAgICAgMTcuMDkxNCstMC41OTU5ICAgICA/ICAgICAxNy4xMjIzKy0w
LjgyODkgICAgICAgID8KICAgaW50LW9yLW90aGVyLWFkZC10aGVuLWdldC1ieS12YWwgICAgICAg
ICAgICAgICAgICAgNC45NjcxKy0wLjE3NjIgICAgID8gICAgICA1LjU4MzArLTAuNDgyNyAgICAg
ICAgPyBtaWdodCBiZSAxLjEyNDB4IHNsb3dlcgogICBpbnQtb3Itb3RoZXItYWRkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA3LjIzNTMrLTAuNzQwMiAgICAgPyAgICAgIDcuMzgx
NystMC45OTkwICAgICAgICA/IG1pZ2h0IGJlIDEuMDIwMnggc2xvd2VyCiAgIGludC1vci1vdGhl
ci1kaXYtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDUuMDUzOCstMC4yODA4ICAg
ICA/ICAgICAgNS4yODQ5Ky0wLjM3NDcgICAgICAgID8gbWlnaHQgYmUgMS4wNDU3eCBzbG93ZXIK
ICAgaW50LW9yLW90aGVyLW1heC10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgNi4y
Njg4Ky0xLjg4MDAgICAgICAgICAgICA2LjI2MDkrLTAuNjQxNCAgICAgICAgCiAgIGludC1vci1v
dGhlci1taW4tdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDUuNzc3MCstMC41MjIw
ICAgICA/ICAgICAgNi4wNjExKy0wLjE3OTMgICAgICAgID8gbWlnaHQgYmUgMS4wNDkyeCBzbG93
ZXIKICAgaW50LW9yLW90aGVyLW1vZC10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAg
NS4yNzcyKy0wLjMwNjQgICAgICAgICAgICA1LjI2MDIrLTAuMjQ4MiAgICAgICAgCiAgIGludC1v
ci1vdGhlci1tdWwtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDguNTUwNCstMC4y
NDE3ICAgICA/ICAgICAgOS4xNjIwKy0wLjY2NzggICAgICAgID8gbWlnaHQgYmUgMS4wNzE1eCBz
bG93ZXIKICAgaW50LW9yLW90aGVyLW5lZy10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAg
ICAzNS40MTc5Ky0xOS41ODI4ICAgICAgICAgIDI4LjEwMjkrLTAuNzIxNiAgICAgICAgICBtaWdo
dCBiZSAxLjI2MDN4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItbmVnLXplcm8tdGhlbi1nZXQtYnkt
dmFsICAgICAgICAgICAgIDE2LjQ4NjQrLTEuMTI5NyAgICAgICAgICAgMTUuOTg5MSstMC40NzMy
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMxMXggZmFzdGVyCiAgIGludC1vci1vdGhlci1zdWItdGhl
bi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDcuOTE3NistMC44OTQzICAgICAgICAgICAg
Ny44ODU0Ky0wLjUxNTggICAgICAgIAogICBpbnQtb3Itb3RoZXItc3ViICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA1LjIyNTYrLTAuMTM1NSAgICAgPyAgICAgIDUuMzUzOCstMC40
NTg5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI0NXggc2xvd2VyCiAgIGludC1vdmVyZmxvdy1sb2Nh
bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuNzE2NSstNC45MzYzICAgICAgICAg
ICAgNi4xMjY4Ky0wLjM4MTEgICAgICAgICAgbWlnaHQgYmUgMS4yNTk1eCBmYXN0ZXIKICAgSW50
MTZBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAgICA2OS4xMTgxKy0y
LjE4NDkgICAgID8gICAgIDcwLjA2NTMrLTIuMDI5NyAgICAgICAgPyBtaWdodCBiZSAxLjAxMzd4
IHNsb3dlcgogICBJbnQxNkFycmF5LWJ1YmJsZS1zb3J0LXdpdGgtYnl0ZUxlbmd0aCAgICAgICAg
ICAgIDM1LjM1MTMrLTI4LjUzNTYgICAgICAgICAgMjUuNzYxOCstMi43NDU1ICAgICAgICAgIG1p
Z2h0IGJlIDEuMzcyMnggZmFzdGVyCiAgIEludDE2QXJyYXktYnViYmxlLXNvcnQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMjMuODU3MystMS41NDE3ICAgICA/ICAgICAyNC43NDY0Ky0yLjA3
NDEgICAgICAgID8gbWlnaHQgYmUgMS4wMzczeCBzbG93ZXIKICAgSW50MTZBcnJheS1sb2FkLWlu
dC1tdWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi42Mzc4Ky0wLjEwMjYgICAgID8gICAg
ICAyLjY4NzkrLTAuMjgxOCAgICAgICAgPyBtaWdodCBiZSAxLjAxOTB4IHNsb3dlcgogICBJbnQx
NkFycmF5LXRvLUludDMyQXJyYXktc2V0ICAgICAgICAgICAgICAgICAgICAgIDQ4LjIxMTErLTIu
NTE2NSAgICAgPyAgICAgNDkuNjkxNistMC45OTE5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMwN3gg
c2xvd2VyCiAgIGludDMyLWFycmF5LXRvLXN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNDguOTQyMCstMjguNzY0MSAgICAgICAgICAzNy44OTkyKy0wLjg0MjEgICAgICAgICAgbWln
aHQgYmUgMS4yOTE0eCBmYXN0ZXIKICAgSW50MzJBcnJheS1hbGxvYy1sYXJnZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxOC4yMTk1Ky0wLjI5MTUgICAgICAgICAgIDE3LjkzMjkrLTAuMzgw
NyAgICAgICAgICBtaWdodCBiZSAxLjAxNjB4IGZhc3RlcgogICBJbnQzMkFycmF5LWFsbG9jLWxv
bmctbGl2ZWQgICAgICAgICAgICAgICAgICAgICAgIDkwLjczMjkrLTM0Ljc0MzUgICAgICAgICAg
ODIuODQ5OCstMTkuNzQyOCAgICAgICAgIG1pZ2h0IGJlIDEuMDk1MXggZmFzdGVyCiAgIEludDMy
QXJyYXktYWxsb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuNjk3MistMy4w
NjAzICAgICAgICAgICAgNS41ODczKy0wLjUxNjUgICAgICAgICAgbWlnaHQgYmUgMS4xOTg3eCBm
YXN0ZXIKICAgSW50MzJBcnJheS1JbnQ4QXJyYXktdmlldy1hbGxvYyAgICAgICAgICAgICAgICAg
ICAxNi4zOTY0Ky02LjUzMDQgICAgICAgICAgIDEzLjI2NTgrLTAuMzc4NyAgICAgICAgICBtaWdo
dCBiZSAxLjIzNjB4IGZhc3RlcgogICBpbnQ1Mi1iYWNrLWFuZC1mb3J0aCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDEwLjY5NjErLTIuODI5MyAgICAgPyAgICAgMTEuNTczNCstNC40NDI4
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDgyMHggc2xvd2VyCiAgIGludDUyLXNwaWxsICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMDAzNistMC43MDUyICAgICAgICAgICAg
Ny4wMDI0Ky0wLjM4NDYgICAgICAgIAogICBJbnQ4QXJyYXktYWxsb2MtbG9uZy1saXZlZCAgICAg
ICAgICAgICAgICAgICAgICAgIDYwLjYxNTIrLTMuMTgyMSAgICAgICAgICAgNTguNDcwMCstNi4w
MTYyICAgICAgICAgIG1pZ2h0IGJlIDEuMDM2N3ggZmFzdGVyCiAgIEludDhBcnJheS1sb2FkLXdp
dGgtYnl0ZUxlbmd0aCAgICAgICAgICAgICAgICAgICAgIDQuNzAxMCstMC4yMTY3ICAgICA/ICAg
ICAgNC44NTYzKy0wLjQzMTIgICAgICAgID8gbWlnaHQgYmUgMS4wMzMweCBzbG93ZXIKICAgSW50
OEFycmF5LWxvYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS41NjcyKy0y
LjA1MjQgICAgICAgICAgICA0LjY2NTYrLTAuMjczOSAgICAgICAgICBtaWdodCBiZSAxLjE5MzJ4
IGZhc3RlcgogICBpbnRlZ2VyLWRpdmlkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDExLjgzNjQrLTAuNDg2NCAgICAgICAgICAgMTEuNzczNCstMC43NTgxICAgICAgICAKICAg
aW50ZWdlci1tb2R1bG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy44MTY4
Ky0xLjI1NjQgICAgICAgICAgICAzLjI5OTArLTAuMDU5OSAgICAgICAgICBtaWdodCBiZSAxLjE1
NzB4IGZhc3RlcgogICBpcy1hcnJheS1mb3ItYXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzLjI4MzQrLTAuNDMyNyAgICAgPyAgICAgIDMuMjk0OCstMC4yNzg2ICAgICAgICA/
CiAgIGlzLWFycmF5LWZvci1taXhlZC1jYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcu
MjA3MCstMC4yODU4ICAgICAgICAgICAgNy4wNTE3Ky0wLjY5MTggICAgICAgICAgbWlnaHQgYmUg
MS4wMjIweCBmYXN0ZXIKICAgaXMtYXJyYXktZm9yLW5vbi1hcnJheS1vYmplY3QgICAgICAgICAg
ICAgICAgICAgICAgMy41OTQ5Ky0wLjIzNDkgICAgID8gICAgICAzLjk3NzUrLTAuODM5MyAgICAg
ICAgPyBtaWdodCBiZSAxLjEwNjR4IHNsb3dlcgogICBpcy1hcnJheS1mb3ItcHJveHkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA0Ljc0MjkrLTAuMzg4NyAgICAgPyAgICAgIDQuNzcw
MistMC4zNzI3ICAgICAgICA/CiAgIGlzLWJvb2xlYW4tZm9sZC10cmlja3kgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDQuMzgwNSstMC4yODIzICAgICA/ICAgICAgNC41NDk1Ky0wLjQzNjYg
ICAgICAgID8gbWlnaHQgYmUgMS4wMzg2eCBzbG93ZXIKICAgaXMtYm9vbGVhbi1mb2xkICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4yMjkwKy0wLjAzNDcgICAgID8gICAgICAz
LjI4ODMrLTAuMjA0OSAgICAgICAgPyBtaWdodCBiZSAxLjAxODR4IHNsb3dlcgogICBpcy1mdW5j
dGlvbi1mb2xkLXRyaWNreS1pbnRlcm5hbC1mdW5jdGlvbiAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0LjE3NjIrLTEuODY0NCAgICAgICAg
ICAgMTMuNzYyMistMS42MjM5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMwMXggZmFzdGVyCiAgIGlz
LWZ1bmN0aW9uLWZvbGQtdHJpY2t5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNzQ0NSst
MC40MTUzICAgICAgICAgICAgNC41NTMyKy0wLjM1NjggICAgICAgICAgbWlnaHQgYmUgMS4wNDIw
eCBmYXN0ZXIKICAgaXMtZnVuY3Rpb24tZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMy4yNTkxKy0wLjA3NTYgICAgID8gICAgICAzLjMzNjYrLTAuMzY5OCAgICAgICAgPyBt
aWdodCBiZSAxLjAyMzh4IHNsb3dlcgogICBpcy1ub3QtY2VsbC1zcGVjdWxhdGlvbi1mb3ItZW1w
dHktdmFsdWUgICAgICAgICAgIDI1LjgwNjkrLTEuMTEyMyAgICAgPyAgICAgMjYuMzA5MCstMS4x
NTMzICAgICAgICA/IG1pZ2h0IGJlIDEuMDE5NXggc2xvd2VyCiAgIGlzLW51bWJlci1mb2xkLXRy
aWNreSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNTc1NistMC4xODg2ICAgICAgICAg
ICAgNC41NjIwKy0wLjA4NDkgICAgICAgIAogICBpcy1udW1iZXItZm9sZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzLjM1MjErLTAuNDc3OCAgICAgICAgICAgIDMuMjAyNyst
MC4wNDA5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ2N3ggZmFzdGVyCiAgIGlzLW9iamVjdC1vci1u
dWxsLWZvbGQtZnVuY3Rpb25zICAgICAgICAgICAgICAgICAgIDMuMjAzMCstMC4wNDgzICAgICA/
ICAgICAgMy4yNzc0Ky0wLjA5MzggICAgICAgID8gbWlnaHQgYmUgMS4wMjMyeCBzbG93ZXIKICAg
aXMtb2JqZWN0LW9yLW51bGwtZm9sZC1sZXNzLXRyaWNreSAgICAgICAgICAgICAgICAgNC43OTA3
Ky0wLjI1NDggICAgICAgICAgICA0LjY4NTcrLTAuMzA0MiAgICAgICAgICBtaWdodCBiZSAxLjAy
MjR4IGZhc3RlcgogICBpcy1vYmplY3Qtb3ItbnVsbC1mb2xkLXRyaWNreSAgICAgICAgICAgICAg
ICAgICAgICA1LjEwNjArLTAuMTk3NSAgICAgICAgICAgIDUuMDQxMCstMC4zMTEyICAgICAgICAg
IG1pZ2h0IGJlIDEuMDEyOXggZmFzdGVyCiAgIGlzLW9iamVjdC1vci1udWxsLWZvbGQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMuMjIxNCstMC4wNTg5ICAgICA/ICAgICAgMy4yOTQwKy0w
LjE0NTUgICAgICAgID8gbWlnaHQgYmUgMS4wMjI1eCBzbG93ZXIKICAgaXMtb2JqZWN0LW9yLW51
bGwtdHJpY2tpZXItZnVuY3Rpb24gICAgICAgICAgICAgICAgNC43MDA2Ky0wLjE2NDQgICAgID8g
ICAgICA1LjE5ODArLTAuNDYwMSAgICAgICAgPyBtaWdodCBiZSAxLjEwNTh4IHNsb3dlcgogICBp
cy1vYmplY3Qtb3ItbnVsbC10cmlja2llci1pbnRlcm5hbC1mdW5jdGlvbiAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjMxMDQrLTAuNjg4
MiAgICAgICAgICAgMTIuOTY4OCstMC43MDQ2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI2M3ggZmFz
dGVyCiAgIGlzLW9iamVjdC1vci1udWxsLXRyaWNreS1mdW5jdGlvbiAgICAgICAgICAgICAgICAg
IDQuOTYyOCstMC4zNzQ4ICAgICA/ICAgICAgNS4wNTQ5Ky0xLjA4MjAgICAgICAgID8gbWlnaHQg
YmUgMS4wMTg2eCBzbG93ZXIKICAgaXMtb2JqZWN0LW9yLW51bGwtdHJpY2t5LWludGVybmFsLWZ1
bmN0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDkuNTQ1NystMC4zMDk2ICAgICA/ICAgICAgOS42ODM1Ky0wLjg0MDUgICAgICAgID8g
bWlnaHQgYmUgMS4wMTQ0eCBzbG93ZXIKICAgaXMtc3RyaW5nLWZvbGQtdHJpY2t5ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNC4zODU1Ky0wLjE2NjggICAgID8gICAgICA0LjU1MjMrLTAu
MTg0OSAgICAgICAgPyBtaWdodCBiZSAxLjAzODB4IHNsb3dlcgogICBpcy1zdHJpbmctZm9sZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjQ3OTYrLTAuNzc1MCAgICAgICAg
ICAgIDMuMjUxOSstMC4wNTc1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDcwMHggZmFzdGVyCiAgIGlz
LXN5bWJvbC1taXhlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMzU3Mist
Mi45NDExICAgICAgICAgICAgNi43MzA0Ky0wLjc4NzAgICAgICAgICAgbWlnaHQgYmUgMS4wOTMx
eCBmYXN0ZXIKICAgaXMtc3ltYm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi44NjEzKy0wLjA1ODcgICAgID8gICAgICA1LjQ2NzgrLTMuMzgwNyAgICAgICAgPyBt
aWdodCBiZSAxLjkxMTB4IHNsb3dlcgogICBpcy11bmRlZmluZWQtZm9sZC10cmlja3kgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0LjAxOTkrLTAuMzQzMyAgICAgPyAgICAgIDQuMDM4MSstMC4y
MDAxICAgICAgICA/CiAgIGlzLXVuZGVmaW5lZC1mb2xkICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDMuNjQ1MistMS4xNzgxICAgICAgICAgICAgMy4yODA0Ky0wLjE0NDYgICAgICAg
ICAgbWlnaHQgYmUgMS4xMTEyeCBmYXN0ZXIKICAgSlNPTlAtbmVnYXRpdmUtMCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMC41Mjk1Ky0wLjAyOTcgICAgID8gICAgICAwLjUzNDAr
LTAuMDQ0OCAgICAgICAgPwogICBsYXJnZS1pbnQtY2FwdHVyZWQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA2LjE3NDUrLTAuNTkyMyAgICAgICAgICAgIDUuOTU2MCstMC42ODc5ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDM2N3ggZmFzdGVyCiAgIGxhcmdlLWludC1uZWcgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMjEuMDkxMistMTYuNjIwNyAgICAgICAgICAxNS4x
MDk3Ky0wLjgxNjQgICAgICAgICAgbWlnaHQgYmUgMS4zOTU5eCBmYXN0ZXIKICAgbGFyZ2UtaW50
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC40NzI4Ky0wLjEwOTEg
ICAgID8gICAgICA4LjgyNzkrLTAuMzk5NSAgICAgICAgPyBtaWdodCBiZSAxLjA0MTl4IHNsb3dl
cgogICBsYXJnZS1tYXAtaXRlcmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM5
LjQ1NjMrLTEuMTcxNiAgICAgPyAgICAgNDIuNjA4NSstNS44ODY4ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDc5OXggc2xvd2VyCiAgIGxhenktYXJyYXktc3BlY2llcy13YXRjaHBvaW50cyAgICAgICAg
ICAgICAgICAgICAgMzIuNjIzNystMTUuOTQ2MyAgICA/ICAgICAzNS45MDg0Ky0yOS4xODkyICAg
ICAgID8gbWlnaHQgYmUgMS4xMDA3eCBzbG93ZXIKICAgbGljbS1kcmFnb25zLW91dC1vZi1ib3Vu
ZHMgICAgICAgICAgICAgICAgICAgICAgICA1Ni4zMjk4Ky0wLjcxOTIgICAgID8gICAgIDU2LjM3
NDIrLTAuNjgwNSAgICAgICAgPwogICBsaWNtLWRyYWdvbnMtb3ZlcmZsb3cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDUzLjk4NTgrLTIuMDQzMiAgICAgICAgICAgNTMuNTQxNistMS4yNjky
ICAgICAgICAKICAgbGljbS1kcmFnb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA2NS44MzM4Ky0xLjYwMzggICAgID8gICAgIDY2Ljc2NDMrLTMuNjEyOSAgICAgICAgPyBt
aWdodCBiZSAxLjAxNDF4IHNsb3dlcgogICBsb2FkLXZhcmFyZ3MtZWxpbWluYXRpb24gICAgICAg
ICAgICAgICAgICAgICAgICAgIDE2LjgwNzkrLTAuNjU4OCAgICAgPyAgICAgMTYuODQxMCstMS4w
NDA3ICAgICAgICA/CiAgIGxvY2FsZS1jb21wYXJlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMjguNjM5MSstOC4yMTM3ICAgICAgICAgICAyNy4zMDI1Ky0xLjUwODMgICAgICAg
ICAgbWlnaHQgYmUgMS4wNDkweCBmYXN0ZXIKICAgbG9naWNhbC1ub3Qtd2VpcmQtdHlwZXMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNC40MzkxKy0xLjM5MzkgICAgICAgICAgICAzLjcwODIr
LTAuMDYzNiAgICAgICAgICBtaWdodCBiZSAxLjE5NzF4IGZhc3RlcgogICBsb2dpY2FsLW5vdCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjA3NjArLTAuMzIxOCAgICAg
ICAgICAgIDQuOTIwMSstMC4xNjE0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMxN3ggZmFzdGVyCiAg
IGxvdHMtb2YtZmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEuOTY5
MistMC40MzMzICAgICAgICAgICAxMS43NjExKy0wLjIzMzEgICAgICAgICAgbWlnaHQgYmUgMS4w
MTc3eCBmYXN0ZXIKICAgbWFrZS1pbmRleGVkLXN0b3JhZ2UgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNC4wNzU2Ky0wLjMwNDcgICAgICAgICAgICAzLjkwNDIrLTAuMzk2MyAgICAgICAg
ICBtaWdodCBiZSAxLjA0Mzl4IGZhc3RlcgogICBtYWtlLXJvcGUtY3NlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA1LjEzMzIrLTAuODA2NiAgICAgICAgICAgIDQuNjkwNyst
MC4yNDgzICAgICAgICAgIG1pZ2h0IGJlIDEuMDk0M3ggZmFzdGVyCiAgIG1hbnktZm9yZWFjaC1j
YWxscyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTIyOSstMC4xNDE0ICAgICA/
ICAgICAgMy4xMDQzKy0wLjQwNjUgICAgICAgID8gbWlnaHQgYmUgMS4wNjIxeCBzbG93ZXIKICAg
bWFueS1yZXBlYXQtc3RvcmVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNS4xOTg4
Ky0xLjk5NzQgICAgICAgICAgIDI0Ljk0MjQrLTAuNTU3MSAgICAgICAgICBtaWdodCBiZSAxLjAx
MDN4IGZhc3RlcgogICBtYXAtZm9yLWVhY2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyLjUzNTQrLTAuMDI5MCAgICAgPyAgICAgIDIuNTcwOSstMC4xMjQ0ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDE0MHggc2xvd2VyCiAgIG1hcC1mb3Itb2YgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDkuNzM0NSstMC44OTUwICAgICAgICAgICAgOS42MjE0Ky0w
LjgxNDkgICAgICAgICAgbWlnaHQgYmUgMS4wMTE4eCBmYXN0ZXIKICAgbWFwLWhhcy1hbmQtc2V0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3NS44NTI2Ky0wLjc2MjYgICAgID8g
ICAgMTg2Ljg5NzMrLTIzLjcyMDMgICAgICAgPyBtaWdodCBiZSAxLjA2Mjh4IHNsb3dlcgogICBt
YXAtaGFzLWdldC1jc2Utb3Bwb3J0dW5pdHkgICAgICAgICAgICAgICAgICAgICAgIDkwLjE1NDgr
LTEuOTY0MSAgICAgICAgICAgODkuNTQwMCstMi4wMDk2ICAgICAgICAKICAgbWFwLWtleS13ZWxs
LXR5cGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExNi44OTQ2Ky00MC43Nzc2ICAg
ICAgICAgMTA3LjEwNjUrLTEwLjcxMDcgICAgICAgICBtaWdodCBiZSAxLjA5MTR4IGZhc3Rlcgog
ICBtYXAtcmVoYXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjA0
NjYrLTAuNjA3NyAgICAgICAgICAgIDguNzUwMSstMC40NjIzICAgICAgICAgIG1pZ2h0IGJlIDEu
MDMzOXggZmFzdGVyCiAgIG1hcnNhZ2xpYS1sYXJnZXItaW50cyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNzUuMzY5MystMi45MjExICAgICA/ICAgICA4OS41MzIwKy0zNy4zMzcyICAgICAg
ID8gbWlnaHQgYmUgMS4xODc5eCBzbG93ZXIKICAgbWFyc2FnbGlhLW9zci1lbnRyeSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAyMS4xNDk4Ky0xLjcxNTEgICAgID8gICAgIDIxLjUzNjIr
LTEuNTE5OSAgICAgICAgPyBtaWdodCBiZSAxLjAxODN4IHNsb3dlcgogICBtYXRoLXJhbmRvbSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2Ljk1NTMrLTAuMjE4MSAgICAg
PyAgICAgMTcuNTMxNistMC44OTM1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM0MHggc2xvd2VyCiAg
IG1hdGgtdHJ1bmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguNTMz
MystMC4zMjg3ICAgICA/ICAgICAxMC4yNTI2Ky01LjAzODkgICAgICAgID8gbWlnaHQgYmUgMS4y
MDE1eCBzbG93ZXIKICAgbWF0aC13aXRoLW91dC1vZi1ib3VuZHMtYXJyYXktdmFsdWVzICAgICAg
ICAgICAgICA0NS4wMjEzKy0xNC4wMTMwICAgICAgICAgIDQxLjIzOTkrLTIuNDQ1NCAgICAgICAg
ICBtaWdodCBiZSAxLjA5MTd4IGZhc3RlcgogICBtYXgtYm9vbGVhbiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzLjMzNzArLTAuMTYxNCAgICAgPyAgICAgIDMuNDExMist
MC4zNzU0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIyM3ggc2xvd2VyCiAgIG1lZ2Ftb3JwaGljLWxv
YWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzkuOTg5MistMTAuNDgxOCAgICAg
ICAgICAzNi4xNDA5Ky0yLjE1OTEgICAgICAgICAgbWlnaHQgYmUgMS4xMDY1eCBmYXN0ZXIKICAg
bWV0aG9kLW9uLW51bWJlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMy41MzUz
Ky0xLjg2NTYgICAgICAgICAgIDIyLjk4ODYrLTAuOTUwOCAgICAgICAgICBtaWdodCBiZSAxLjAy
Mzh4IGZhc3RlcgogICBtaW4tYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzLjM4OTMrLTAuMTY3NCAgICAgPyAgICAgIDMuNTQwMystMC4yNzY0ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDQ0Nnggc2xvd2VyCiAgIG1pbnVzLWJvb2xlYW4tZG91YmxlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMuMzQ5NCstMC4wOTk5ICAgICA/ICAgICAgMy4zNTM0Ky0w
LjA3NTIgICAgICAgID8KICAgbWludXMtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMy4wMjExKy0wLjA1OTkgICAgID8gICAgICAzLjAyNTQrLTAuMDQzOCAgICAg
ICAgPwogICBtaXNjLXN0cmljdC1lcSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDI0LjUxNzcrLTIuMjgyMiAgICAgPyAgICAgMzIuOTY0NSstMTEuODM3OSAgICAgICA/IG1pZ2h0
IGJlIDEuMzQ0NXggc2xvd2VyCiAgIG1vZC1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTIuMTM4OSstMC4zNjA4ICAgICAgICAgICAxMi4wNzEwKy0wLjkxMzQg
ICAgICAgIAogICBtb2QtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA5LjI0MjkrLTAuMjA1NCAgICAgPyAgICAgIDkuNDc5NCstMC4yNTY5ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDI1Nnggc2xvd2VyCiAgIG11bC1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDMuMjM2OCstMC4wNjMyICAgICAgICAgICAgMy4yMjc0Ky0wLjA5
ODcgICAgICAgIAogICBtdWwtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzLjMxMDQrLTAuMDc0NCAgICAgPyAgICAgIDMuNDkxNystMC4zNzkyICAgICAgICA/
IG1pZ2h0IGJlIDEuMDU0OHggc2xvd2VyCiAgIG5lZy1ib29sZWFuICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMuNDY4NCstMC4xMDY5ICAgICA/ICAgICAgMy40OTk0Ky0w
LjE3MDggICAgICAgID8KICAgbmVnYXRpdmUtemVyby1kaXZpZGUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMC42NTkwKy0wLjAyMjggICAgID8gICAgICAwLjY3OTArLTAuMDI5MSAgICAg
ICAgPyBtaWdodCBiZSAxLjAzMDR4IHNsb3dlcgogICBuZWdhdGl2ZS16ZXJvLW1vZHVsbyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAwLjcwNDkrLTAuMDU4NSAgICAgICAgICAgIDAuNzAw
OSstMC4wNDU3ICAgICAgICAKICAgbmVnYXRpdmUtemVyby1uZWdhdGUgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMC42OTMwKy0wLjE2MzkgICAgICAgICAgICAwLjY1NTkrLTAuMDIzMyAg
ICAgICAgICBtaWdodCBiZSAxLjA1NjZ4IGZhc3RlcgogICBuZXctYXJyYXktYnVmZmVyLWRlYWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkyLjY5MTQrLTEuNjIzMyAgICAgICAgICAgOTIu
MzUwMSstMC44MzA1ICAgICAgICAKICAgbmV3LWFycmF5LWJ1ZmZlci1wdXNoICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNy4zNDcwKy0wLjUxMDkgICAgID8gICAgICA4LjUzNDIrLTMuNTQy
OSAgICAgICAgPyBtaWdodCBiZSAxLjE2MTZ4IHNsb3dlcgogICBuZXctYXJyYXktYnVmZmVyLXZl
Y3Rvci1wcm9maWxlICAgICAgICAgICAgICAgICAgIDI4LjY0MTcrLTAuNzAzNyAgICAgICAgICAg
MjcuNzk3MistMC4zNTIyICAgICAgICAgIG1pZ2h0IGJlIDEuMDMwNHggZmFzdGVyCiAgIG5ldy1h
cnJheS1kZWFkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuNzg5MystMC44
MTM3ICAgICAgICAgICAxMC41MTI2Ky0wLjU2NzUgICAgICAgICAgbWlnaHQgYmUgMS4wMjYzeCBm
YXN0ZXIKICAgbmV3LWFycmF5LXB1c2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNS45MTAyKy0wLjI5MDkgICAgID8gICAgICA1Ljk1NDkrLTAuMjY5NiAgICAgICAgPwogICBu
ZXctZXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ1LjMxOTYr
LTEuOTk4OCAgICAgPyAgICAgNDUuNTI3MistMS41ODY0ICAgICAgICA/CiAgIG5vLWlubGluZS1j
b25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzUuOTM5MSstMTYuOTQzNiAg
ICAgICAgICAzNC4wNTczKy0xMi42NzQ5ICAgICAgICAgbWlnaHQgYmUgMS4wNTUzeCBmYXN0ZXIK
ICAgTnVtYmVyLWlzTmFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi4x
MDEyKy0xLjAwNTYgICAgICAgICAgIDE1LjQ4ODIrLTAuMzc0MCAgICAgICAgICBtaWdodCBiZSAx
LjAzOTZ4IGZhc3RlcgogICBudW1iZXItdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjk5OTIrLTAuMTE2OCAgICAgPyAgICAgIDQuMDg5NistMC4zMjYxICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDIyNnggc2xvd2VyCiAgIG51bWJlci10by1zdHJpbmctc3RyZW5ndGgt
cmVkdWN0aW9uICAgICAgICAgICAgICAgIDYuOTE4NistMC4xNTQyICAgICA/ICAgICAgNy4wOTE1
Ky0wLjM1OTYgICAgICAgID8gbWlnaHQgYmUgMS4wMjUweCBzbG93ZXIKICAgbnVtYmVyLXRvLXN0
cmluZy13aXRoLWFkZC1lbXB0eSAgICAgICAgICAgICAgICAgICAxMC42MzUwKy0wLjkzNTggICAg
ID8gICAgIDExLjg1MTgrLTMuMjYzNiAgICAgICAgPyBtaWdodCBiZSAxLjExNDR4IHNsb3dlcgog
ICBudW1iZXItdG8tc3RyaW5nLXdpdGgtYWRkLWluLWxvb3AgICAgICAgICAgICAgICAgIDEyLjk5
MTgrLTEuMTY5MCAgICAgPyAgICAgMTguNDc3NistOC4zNzU4ICAgICAgICA/IG1pZ2h0IGJlIDEu
NDIyMnggc2xvd2VyCiAgIG51bWJlci10by1zdHJpbmctd2l0aC1hZGQgICAgICAgICAgICAgICAg
ICAgICAgICAgMTIuMDI5MistMS41NjAzICAgICAgICAgICAxMi4wMDExKy0xLjE3NzQgICAgICAg
IAogICBudW1iZXItdG8tc3RyaW5nLXdpdGgtcmFkaXgtMTAgICAgICAgICAgICAgICAgICAgICAx
LjgwMzIrLTAuMDQzNCAgICAgPyAgICAgIDEuODUwMistMC4wNjY5ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDI2MHggc2xvd2VyCiAgIG51bWJlci10by1zdHJpbmctd2l0aC1yYWRpeC1jc2UgICAgICAg
ICAgICAgICAgICAgIDYuNzQ4NCstMC4yNTQwICAgICA/ICAgICAgOC41NjI4Ky01LjI0NzUgICAg
ICAgID8gbWlnaHQgYmUgMS4yNjg5eCBzbG93ZXIKICAgbnVtYmVyLXRvLXN0cmluZy13aXRoLXJh
ZGl4ICAgICAgICAgICAgICAgICAgICAgICAxMy45NDc2Ky0wLjcxNDQgICAgICAgICAgIDEzLjc4
MTYrLTAuMzQ0NiAgICAgICAgICBtaWdodCBiZSAxLjAxMjB4IGZhc3RlcgogICBvYmplY3QtYW5k
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjM3MjcrLTQuMjkwOCAg
ICAgICAgICAgIDYuMzEyMistMC43ODI0ICAgICAgICAgIG1pZ2h0IGJlIDEuMTY4MHggZmFzdGVy
CiAgIG9iamVjdC1jbG9zdXJlLWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTcu
NDIyMCstMTIuNDU5NCAgICAgICAgICAxMi43ODgxKy0wLjg3NTkgICAgICAgICAgbWlnaHQgYmUg
MS4zNjI0eCBmYXN0ZXIKICAgb2JqZWN0LWVudHJpZXMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDExMi4yOTk0Ky00LjAyODIgICAgICAgICAgMTA4LjEwMjgrLTIuMjEzOSAgICAg
ICAgICBtaWdodCBiZSAxLjAzODh4IGZhc3RlcgogICBvYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1z
eW1ib2xzLW9uLWxhcmdlLWFycmF5ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDEuNzgxMistMC4zNzAxICAgICA/ICAgICAgMS45NzM1Ky0w
LjM5NjggICAgICAgID8gbWlnaHQgYmUgMS4xMDgweCBzbG93ZXIKICAgb2JqZWN0LWdldC1vd24t
cHJvcGVydHktc3ltYm9scyAgICAgICAgICAgICAgICAgICAyOS42NDI5Ky0xLjcxNDggICAgID8g
ICAgIDMwLjA0MDErLTEuOTUwNiAgICAgICAgPyBtaWdodCBiZSAxLjAxMzR4IHNsb3dlcgogICBv
YmplY3QtaW50LWFkZC1hcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1LjM4NzEr
LTAuOTE4NSAgICAgICAgICAgMTUuMzA1NSstMS4yNjQ3ICAgICAgICAKICAgb2JqZWN0LWludC1h
ZGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNy4yNjg3Ky0wLjQ1MTAgICAg
ID8gICAgIDE3LjM3NjkrLTAuNTYwMyAgICAgICAgPwogICBvYmplY3QtaW50LWFuZC1hcnJheSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2LjE1OTArLTQuMjQ0MCAgICAgICAgICAgMTQu
NjEwMCstMC4zMjEzICAgICAgICAgIG1pZ2h0IGJlIDEuMTA2MHggZmFzdGVyCiAgIG9iamVjdC1p
bnQtbXVsLWFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQuNTE4OCstMC4zMzgw
ICAgICAgICAgICAxNC40NzM4Ky0wLjM3MDcgICAgICAgIAogICBvYmplY3QtaW50LXN1Yi1hcnJh
eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0LjYzNDErLTAuNDgwMSAgICAgPyAgICAg
MTQuNzY1OCstMC41MTAxICAgICAgICA/CiAgIG9iamVjdC1pbnQtc3ViICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTcuMjk1MistMC4xNTM2ICAgICAgICAgICAxNy4xOTc0Ky0w
LjU0MjggICAgICAgIAogICBvYmplY3QtaXRlcmF0ZS1zeW1ib2xzICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA0LjMwMDArLTAuNTYwNSAgICAgICAgICAgIDQuMTY1NystMC40MjI4ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDMyM3ggZmFzdGVyCiAgIG9iamVjdC1pdGVyYXRlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDUuNTMzMystNC44OTE2ICAgICAgICAgICAgMy45NjU2
Ky0wLjI4NjUgICAgICAgICAgbWlnaHQgYmUgMS4zOTUzeCBmYXN0ZXIKICAgb2JqZWN0LWtleXMt
bWFwLXZhbHVlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICA1NS43NDc0Ky0xLjgzMDcgICAg
ID8gICAgIDU2LjA0NTQrLTIuNjIyNiAgICAgICAgPwogICBvYmplY3Qta2V5cyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4LjQ4NzIrLTAuNjU2NCAgICAgICAgICAgMjgu
Mzg2OSstMC4yMDA0ICAgICAgICAKICAgb2JqZWN0LWxzaGlmdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNi4xNjQyKy0wLjE1NDUgICAgICAgICAgICA1Ljg0OTIrLTAuMTgz
MyAgICAgICAgICBtaWdodCBiZSAxLjA1Mzl4IGZhc3RlcgogICBvYmplY3Qtb3IgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjI3NzcrLTAuMjU5OCAgICAgPyAgICAg
IDYuNTE1MistMC44NDkyICAgICAgICA/IG1pZ2h0IGJlIDEuMDM3OHggc2xvd2VyCiAgIG9iamVj
dC1yc2hpZnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuMTkxMistMC40
NTE4ICAgICAgICAgICAgNi4xNzAyKy0wLjQyMzIgICAgICAgIAogICBvYmplY3QtdGVzdCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjc4NTkrLTAuMjE0NiAgICAgICAg
ICAgIDMuNjk2NCstMC4xMDMxICAgICAgICAgIG1pZ2h0IGJlIDEuMDI0MnggZmFzdGVyCiAgIG9i
amVjdC11cnNoaWZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuMDM1Mist
MC40MDg4ICAgICA/ICAgICAgNi4wOTE0Ky0wLjQyMTEgICAgICAgID8KICAgb2JqZWN0LXZhbHVl
cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NS4yNDYzKy0yLjI5ODIgICAg
ID8gICAgIDQ3Ljg1MzcrLTQuODY2NSAgICAgICAgPyBtaWdodCBiZSAxLjA1NzZ4IHNsb3dlcgog
ICBvYmplY3QteG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjAw
NjArLTAuMjQyOCAgICAgPyAgICAgIDYuMDExMSstMC4yMDQ2ICAgICAgICA/CiAgIG9idmlvdXMt
c2luay1wYXRob2xvZ3ktdGFrZW4gICAgICAgICAgICAgICAgICAgICAxMzQuMjAyMCstMTUuODA2
MiAgICA/ICAgIDE3MS45NTk0Ky0xMjMuMjI0NyAgICAgID8gbWlnaHQgYmUgMS4yODEzeCBzbG93
ZXIKICAgb2J2aW91cy1zaW5rLXBhdGhvbG9neSAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
OC45Njg4Ky0xLjQyNzggICAgICAgICAgIDE4LjU0NTErLTAuMjQ4NyAgICAgICAgICBtaWdodCBi
ZSAxLjAyMjl4IGZhc3RlcgogICBvYnZpb3VzbHktZWxpZGFibGUtbmV3LW9iamVjdCAgICAgICAg
ICAgICAgICAgICAgIDE5LjExODgrLTcuMjU1MyAgICAgICAgICAgMTYuNDg1NCstMS4yODYwICAg
ICAgICAgIG1pZ2h0IGJlIDEuMTU5N3ggZmFzdGVyCiAgIHBsdXMtYm9vbGVhbi1hcml0aCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNTMxMSstMC44MzMxICAgICAgICAgICAgMy4y
MzQ2Ky0wLjM0MzEgICAgICAgICAgbWlnaHQgYmUgMS4wOTE3eCBmYXN0ZXIKICAgcGx1cy1ib29s
ZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43MzYwKy0xLjI4NDAg
ICAgICAgICAgICAzLjQzNDYrLTAuMTkyMiAgICAgICAgICBtaWdodCBiZSAxLjA4Nzh4IGZhc3Rl
cgogICBwbHVzLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
Ljk0NDIrLTAuMTgyMiAgICAgPyAgICAgIDMuMzg2MistMC45NzI0ICAgICAgICA/IG1pZ2h0IGJl
IDEuMTUwMXggc2xvd2VyCiAgIHBvbHktY2hhaW4tYWNjZXNzLWRpZmZlcmVudC1wcm90b3R5cGVz
LXNpbXBsZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzLjQ4NzkrLTAuMDk5MSAgICAgPyAgICAgIDMuODE5MystMC4yNjQ0ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDk1MHggc2xvd2VyCiAgIHBvbHktY2hhaW4tYWNjZXNzLWRpZmZlcmVudC1w
cm90b3R5cGVzICAgICAgICAgICAgIDMuNDA2OSstMC4wNzAyICAgICA/ICAgICAgMy40NjM1Ky0w
LjI1NDcgICAgICAgID8gbWlnaHQgYmUgMS4wMTY2eCBzbG93ZXIKICAgcG9seS1jaGFpbi1hY2Nl
c3Mtc2ltcGxlciAgICAgICAgICAgICAgICAgICAgICAgICAgMy43NDMwKy0wLjI3MDUgICAgID8g
ICAgICA0LjI5MTArLTEuMzA3NyAgICAgICAgPyBtaWdodCBiZSAxLjE0NjR4IHNsb3dlcgogICBw
b2x5LWNoYWluLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjM5NzAr
LTAuMzA3MiAgICAgPyAgICAgIDMuNjQ2OCstMC4zNDg5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDcz
NXggc2xvd2VyCiAgIHBvbHktcHJvdG8tYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNjIuMzk4MistNC41MDk5ICAgICA/ICAgICA2My42MTg2Ky0zLjMxMTAgICAgICAgID8g
bWlnaHQgYmUgMS4wMTk2eCBzbG93ZXIKICAgcG9seS1wcm90by1hbmQtbm9uLXBvbHktcHJvdG8t
c2FtZS1pYyAgICAgICAgICAgICAzMi42MTY1Ky0xLjcxODYgICAgICAgICAgIDMyLjMyNDkrLTEu
NjQwMSAgICAgICAgCiAgIHBvbHktcHJvdG8tY2xlYXItanMtZnVuY3Rpb24tYWxsb2NhdGlvbi1w
cm9maWxlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMzIuMjEzMSstMzIuNTgwNCAgICAgICAgICAzMC4yOTkzKy0xOS45NDgzICAgICAgICAg
bWlnaHQgYmUgMS4wNjMyeCBmYXN0ZXIKICAgcG9seS1wcm90by1wdXQtdHJhbnNpdGlvbi1zcGVl
ZCAgICAgICAgICAgICAgICAgICAyMi43NTI2Ky0yLjgyMzYgICAgICAgICAgIDIxLjczMDkrLTEu
NjAwMiAgICAgICAgICBtaWdodCBiZSAxLjA0NzB4IGZhc3RlcgogICBwb2x5LXByb3RvLXNldHRl
ci1zcGVlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjgwNDgrLTAuMzYyMCAgICAgPyAg
ICAgIDUuMTQ2NystMC41Mzk3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDcxMXggc2xvd2VyCiAgIHBv
bHktc3RyaWN0ZXEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTkuNTIxMist
My4zNjMyICAgICA/ICAgICA2OS4zOTc4Ky0yNS4zNTUwICAgICAgID8gbWlnaHQgYmUgMS4xNjU5
eCBzbG93ZXIKICAgcG9seW1vcnBoaWMtYXJyYXktY2FsbCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi4yMDM3Ky0wLjI4MDkgICAgICAgICAgICAyLjE0MjErLTAuMjA1MiAgICAgICAgICBt
aWdodCBiZSAxLjAyODh4IGZhc3RlcgogICBwb2x5bW9ycGhpYy1nZXQtYnktaWQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAyLjk3MTQrLTAuMzE5NyAgICAgPyAgICAgIDMuMjgxOCstMC43
MjI2ICAgICAgICA/IG1pZ2h0IGJlIDEuMTA0NXggc2xvd2VyCiAgIHBvbHltb3JwaGljLXB1dC1i
eS1pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzEuMzYyOSstMi4wMzMxICAgICAgICAg
ICAzMC40NzQwKy0xLjUzODkgICAgICAgICAgbWlnaHQgYmUgMS4wMjkyeCBmYXN0ZXIKICAgcG9s
eW1vcnBoaWMtcHV0LWJ5LXZhbC13aXRoLXN0cmluZyAgICAgICAgICAgICAgICAzMC40OTg4Ky0x
LjYwNzMgICAgID8gICAgIDMwLjY0ODErLTEuNTQzMCAgICAgICAgPwogICBwb2x5bW9ycGhpYy1w
dXQtYnktdmFsLXdpdGgtc3ltYm9sICAgICAgICAgICAgICAgIDMwLjQ5NzYrLTAuODE3MCAgICAg
ICAgICAgMzAuMzU5NSstMS42NTIwICAgICAgICAKICAgcG9seW1vcnBoaWMtc3RydWN0dXJlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxNS45NjM4Ky0xLjMxODggICAgID8gICAgIDE3LjMw
NTkrLTMuMjYwNyAgICAgICAgPyBtaWdodCBiZSAxLjA4NDF4IHNsb3dlcgogICBwb2x5dmFyaWFu
dC1tb25vbW9ycGhpYy1nZXQtYnktaWQgICAgICAgICAgICAgICAgICA1LjU2OTIrLTAuNTg1NSAg
ICAgICAgICAgIDUuNDcwOCstMC40MzI5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE4MHggZmFzdGVy
CiAgIHByZXZlbnQtZXh0ZW5zaW9ucy1hbmQtZG8td29yayAgICAgICAgICAgICAgICAgICAgMTYu
ODY5NCstMC4zNzEyICAgICA/ICAgICAxNy4xNDA2Ky0xLjQwMjkgICAgICAgID8gbWlnaHQgYmUg
MS4wMTYxeCBzbG93ZXIKICAgcHJvdG8tZ2V0dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMy44Mjc4Ky0wLjcwOTQgICAgID8gICAgIDE0LjAyMTMrLTEuMTUyOCAgICAg
ICAgPyBtaWdodCBiZSAxLjAxNDB4IHNsb3dlcgogICBwcm90b3R5cGUtYWNjZXNzLXdpdGgtbXV0
YXRpbmctcHJvdG90eXBlICAgICAgICAgICA2LjQzMDkrLTAuNDk4MCAgICAgICAgICAgIDYuMjUw
MystMC4zNjM1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI4OXggZmFzdGVyCiAgIHB1dC1ieS1pZC1y
ZXBsYWNlLWFuZC10cmFuc2l0aW9uICAgICAgICAgICAgICAgICAgIDguNzE3NistMC4yODcxICAg
ICA/ICAgICAgOS4yNTYyKy0wLjI5MzQgICAgICAgID8gbWlnaHQgYmUgMS4wNjE4eCBzbG93ZXIK
ICAgcHV0LWJ5LWlkLXNsaWdodGx5LXBvbHltb3JwaGljICAgICAgICAgICAgICAgICAgICAgMy41
MjcyKy0wLjEzNDAgICAgID8gICAgICAzLjcwMzgrLTAuMjI0NyAgICAgICAgPyBtaWdodCBiZSAx
LjA1MDF4IHNsb3dlcgogICBwdXQtYnktaWQtdHJhbnNpdGlvbi13aXRoLWluZGV4aW5nLWhlYWRl
ciAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDE2LjAyNjYrLTAuMTY1MSAgICAgPyAgICAgMTYuMjgwNistMC4zMDQxICAgICAgICA/IG1pZ2h0
IGJlIDEuMDE1OHggc2xvd2VyCiAgIHB1dC1ieS1pZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTUuOTU4NystMC43MzgzICAgICAgICAgICAxNS42NDI3Ky0wLjU2Njkg
ICAgICAgICAgbWlnaHQgYmUgMS4wMjAyeCBmYXN0ZXIKICAgcHV0LWJ5LXZhbC1kaXJlY3QgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC43NzA4Ky0wLjA0MzYgICAgICAgICAgICAw
Ljc1OTgrLTAuMDU2MSAgICAgICAgICBtaWdodCBiZSAxLjAxNDV4IGZhc3RlcgogICBwdXQtYnkt
dmFsLWxhcmdlLWluZGV4LWJsYW5rLWluZGV4aW5nLXR5cGUgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC4yMzE4Ky0wLjM4NDEgICAgID8g
ICAgICA5LjExNDcrLTAuOTIwMSAgICAgICAgPyBtaWdodCBiZSAxLjEwNzJ4IHNsb3dlcgogICBw
dXQtYnktdmFsLW1hY2hpbmUtaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjcyMTYr
LTAuNTczNiAgICAgICAgICAgIDQuNjQ3OSstMC4zMDE1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE1
OHggZmFzdGVyCiAgIHB1dC1ieS12YWwtd2l0aC1zdHJpbmctcmVwbGFjZS1hbmQtdHJhbnNpdGlv
biAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEzLjk4MzQrLTAuMzQ2NSAgICAgPyAgICAgMTcuMjA0NSstOC4zOTgwICAgICAgICA/IG1pZ2h0
IGJlIDEuMjMwNHggc2xvd2VyCiAgIHB1dC1ieS12YWwtd2l0aC1zdHJpbmctc2xpZ2h0bHktcG9s
eW1vcnBoaWMgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNC4yOTMzKy0wLjM2MDkgICAgID8gICAgICA0LjM4NjMrLTAuNDE0OCAgICAgICAg
PyBtaWdodCBiZSAxLjAyMTd4IHNsb3dlcgogICBwdXQtYnktdmFsLXdpdGgtc3RyaW5nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDE2LjE1MjIrLTAuMzg1NSAgICAgICAgICAgMTUuODczMyst
MC4yNzkwICAgICAgICAgIG1pZ2h0IGJlIDEuMDE3NnggZmFzdGVyCiAgIHB1dC1ieS12YWwtd2l0
aC1zeW1ib2wtcmVwbGFjZS1hbmQtdHJhbnNpdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0LjIwOTUrLTAuNjU0NiAgICAgPyAgICAg
MTUuMDMxOCstMi41NjA3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDU3OXggc2xvd2VyCiAgIHB1dC1i
eS12YWwtd2l0aC1zeW1ib2wtc2xpZ2h0bHktcG9seW1vcnBoaWMgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4xMjAyKy0wLjI0OTMgICAg
ID8gICAgICA0LjI4MDgrLTAuMjMyMSAgICAgICAgPyBtaWdodCBiZSAxLjAzOTB4IHNsb3dlcgog
ICBwdXQtYnktdmFsLXdpdGgtc3ltYm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2LjI2
MDkrLTAuNDgwNyAgICAgPyAgICAgMTYuNjM4NCstMi4wMjAxICAgICAgICA/IG1pZ2h0IGJlIDEu
MDIzMnggc2xvd2VyCiAgIHJhcmUtb3NyLWV4aXQtb24tbG9jYWwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTQuNjMyMCstMC41MDI2ICAgICA/ICAgICAxNC45MDU5Ky0wLjY1MTQgICAgICAg
ID8gbWlnaHQgYmUgMS4wMTg3eCBzbG93ZXIKICAgcmF5dHJhY2Utd2l0aC1lbXB0eS10cnktY2F0
Y2ggICAgICAgICAgICAgICAgICAgICAgNy4zNTUzKy0xLjI4NzAgICAgID8gICAgIDEwLjA2NzEr
LTMuODYzMyAgICAgICAgPyBtaWdodCBiZSAxLjM2ODd4IHNsb3dlcgogICByYXl0cmFjZS13aXRo
LXRyeS1jYXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjY2OTArLTIuMDE1MyAgICAg
PyAgICAgMTIuNDQ5NCstMS4xOTg2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDY2OXggc2xvd2VyCiAg
IHJlZ2V4cC1leGVjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTMuNDg2
OCstMS4xMzg3ICAgICA/ICAgICA1NC44ODA3Ky0xLjUzODEgICAgICAgID8gbWlnaHQgYmUgMS4w
MjYxeCBzbG93ZXIKICAgcmVnZXhwLWxhc3QtaW5kZXggICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxNC4wOTc4Ky0wLjUyODUgICAgID8gICAgIDE2LjA4NTUrLTUuNDY1NyAgICAgICAg
PyBtaWdodCBiZSAxLjE0MTB4IHNsb3dlcgogICByZWdleHAtbmVzdGVkLW5vbnplcm8tbWluLWNv
dW50ZWQtcGFyZW5zICAgICAgICAgICAwLjc2NDQrLTAuMzE5MSAgICAgICAgICAgIDAuNjQ5Nist
MC4wNDcyICAgICAgICAgIG1pZ2h0IGJlIDEuMTc2OHggZmFzdGVyCiAgIHJlZ2V4cC1wcm90b3R5
cGUtaXMtbm90LWluc3RhbmNlICAgICAgICAgICAgICAgICAgIDAuNzk0NistMC4xMDQ5ICAgICA/
ICAgICAgMC44MjQ2Ky0wLjA5NjQgICAgICAgID8gbWlnaHQgYmUgMS4wMzc3eCBzbG93ZXIKICAg
cmVnZXhwLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4xMjkzKy0w
LjI2ODYgICAgICAgICAgICAxLjAxNjYrLTAuMDMyNCAgICAgICAgICBtaWdodCBiZSAxLjExMDl4
IGZhc3RlcgogICByZWdleHAtcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0
czIgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMC42ODI2Ky0wLjA1MzQgICAgID8gICAgICAwLjgzMTkrLTAuNTI2MCAgICAgICAgPyBtaWdo
dCBiZSAxLjIxODd4IHNsb3dlcgogICByZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUt
c2lkZS1lZmZlY3RzICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEuNjIwMistMC4xMzgwICAgICAgICAgICAgMS41ODQ4Ky0wLjA2MDggICAg
ICAgICAgbWlnaHQgYmUgMS4wMjIzeCBmYXN0ZXIKICAgcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1v
YnNlcnZhYmxlLXNpZGUtZWZmZWN0czIgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMC42OTA2Ky0wLjA2MDYgICAgID8gICAgICAwLjY5OTAr
LTAuMDMxNyAgICAgICAgPyBtaWdodCBiZSAxLjAxMjJ4IHNsb3dlcgogICByZWdleHAtcHJvdG90
eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1mbGFncyAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjc5NDcrLTAuMjk3OSAg
ICAgICAgICAgIDAuNjg5MystMC4wMjcxICAgICAgICAgIG1pZ2h0IGJlIDEuMTUzMHggZmFzdGVy
CiAgIHJlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWdsb2Jh
bCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAwLjY5OTgrLTAuMDQyMyAgICAgICAgICAgIDAuNjkwNistMC4wNDE3ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDEzMnggZmFzdGVyCiAgIHJlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1z
aWRlLWVmZmVjdHMzLWlnbm9yZUNhc2UgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMC44NTU0Ky0wLjQ0NTggICAgICAgICAgICAwLjY5ODUr
LTAuMDIzMCAgICAgICAgICBtaWdodCBiZSAxLjIyNDd4IGZhc3RlcgogICByZWdleHAtcHJvdG90
eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1tdWx0aWxpbmUgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC42OTEwKy0wLjA0
MjkgICAgID8gICAgICAwLjY5ODArLTAuMDIxNiAgICAgICAgPyBtaWdodCBiZSAxLjAxMDJ4IHNs
b3dlcgogICByZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1z
dGlja3kgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMC43MTE5Ky0wLjA5NjEgICAgICAgICAgICAwLjY4NDArLTAuMDM0MiAgICAgICAgICBt
aWdodCBiZSAxLjA0MDh4IGZhc3RlcgogICByZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFi
bGUtc2lkZS1lZmZlY3RzMy11bmljb2RlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDAuODgyNSstMC40NTQxICAgICAgICAgICAgMC43ODY0
Ky0wLjI0NTYgICAgICAgICAgbWlnaHQgYmUgMS4xMjIzeCBmYXN0ZXIKICAgcmVnZXhwLXByb3Rv
dHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czQgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC44NTE1Ky0wLjMzMDcgICAgID8g
ICAgICAwLjk1NDUrLTAuNDY2OCAgICAgICAgPyBtaWdodCBiZSAxLjEyMDl4IHNsb3dlcgogICBy
ZWdleHAtcHJvdG90eXBlLXRlc3Qtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC45ODUyKy0wLjAz
NDkgICAgID8gICAgICAxLjAzODcrLTAuMDUwNCAgICAgICAgPyBtaWdodCBiZSAxLjA1NDR4IHNs
b3dlcgogICByZWdleHAtcHJvdG90eXBlLXRlc3Qtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMyICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAu
NjYyNCstMC4wMjg3ICAgICAgICAgICAgMC42NTA2Ky0wLjAzNDcgICAgICAgICAgbWlnaHQgYmUg
MS4wMTgxeCBmYXN0ZXIKICAgcmVnZXhwLXNldC1sYXN0LWluZGV4ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMi4zODUxKy0wLjIyMjUgICAgICAgICAgIDEyLjE1MTcrLTAuMjc5NCAgICAg
ICAgICBtaWdodCBiZSAxLjAxOTJ4IGZhc3RlcgogICByZWdleHAtdS1nbG9iYWwtZXM1ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDI0LjAwNjYrLTEuNjM2MCAgICAgPyAgICAgMjQuNTY0
MSstMS44Mjg3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIzMnggc2xvd2VyCiAgIHJlZ2V4cC11LWds
b2JhbC1lczYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNDQuMDI5NystMi43NzIxICAg
ICBeICAgIDEzOC41NzUyKy0yLjU0OTMgICAgICAgIF4gZGVmaW5pdGVseSAxLjAzOTR4IGZhc3Rl
cgogICByZWdpc3Rlci1wcmVzc3VyZS1mcm9tLW9zciAgICAgICAgICAgICAgICAgICAgICAgIDE4
LjE2ODMrLTAuNzMxOSAgICAgPyAgICAgMTguNjAyNistMC44MTE5ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDIzOXggc2xvd2VyCiAgIHJlcGVhdC1tdWx0aS1nZXQtYnktb2Zmc2V0ICAgICAgICAgICAg
ICAgICAgICAgICAgMjAuNDQ4NystMS42NzYzICAgICA/ICAgICAyMy43ODAyKy03LjkwNTYgICAg
ICAgID8gbWlnaHQgYmUgMS4xNjI5eCBzbG93ZXIKICAgcmVzdC1wYXJhbWV0ZXItY29uc3RydWN0
aW9uLXBlcmZvcm1hbmNlICAgICAgICAgICAyOS4yOTkyKy0wLjM3MTggICAgID8gICAgIDMzLjUx
MTIrLTkuNTI5NCAgICAgICAgPyBtaWdodCBiZSAxLjE0Mzh4IHNsb3dlcgogICByaWNoYXJkcy1l
bXB0eS10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgIDgwLjc4OTcrLTM3LjU0MzIg
ICAgICAgICAgNjguMzczMCstMS40OTM5ICAgICAgICAgIG1pZ2h0IGJlIDEuMTgxNnggZmFzdGVy
CiAgIHJpY2hhcmRzLXRyeS1jYXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMTEu
NjQwMCstOC4zNTk3ICAgICA/ICAgIDIxNC42NzAzKy0yLjcxODYgICAgICAgID8gbWlnaHQgYmUg
MS4wMTQzeCBzbG93ZXIKICAgc2NvcGVkLWFyZ3VtZW50cy1sZW5ndGggICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOS4wOTI1Ky0wLjY0MDggICAgICAgICAgICA4LjQwMDErLTAuNjYwMCAgICAg
ICAgICBtaWdodCBiZSAxLjA4MjR4IGZhc3RlcgogICBzY29wZWQtYXJndW1lbnRzLW92ZXJyaWRk
ZW4tbGVuZ3RoICAgICAgICAgICAgICAgICA4LjYyNTMrLTAuNzk0NCAgICAgICAgICAgIDguMDk3
NSstMC41MjExICAgICAgICAgIG1pZ2h0IGJlIDEuMDY1MnggZmFzdGVyCiAgIHNjb3BlZC1hcmd1
bWVudHMtcG9zc2libHktb3ZlcnJpZGRlbi1sZW5ndGggICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS41MDQyKy0xLjAzNDggICAgICAgICAg
ICA5LjIwMDIrLTAuMzkxMyAgICAgICAgICBtaWdodCBiZSAxLjAzMzB4IGZhc3RlcgogICBzZWFs
LWFuZC1kby13b3JrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2LjczNjErLTAu
Mjk1OSAgICAgPyAgICAgMTYuNzYxOSstMC41NTMzICAgICAgICA/CiAgIHNldC1mb3ItZWFjaCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNDg5MCstMC4xNTU5ICAgICA/
ICAgICAgMi45NTg2Ky0xLjMxNzcgICAgICAgID8gbWlnaHQgYmUgMS4xODg3eCBzbG93ZXIKICAg
c2V0LWZvci1vZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi44MDg0
Ky0wLjcyMzEgICAgICAgICAgICA2LjY5MzIrLTAuNDE5NiAgICAgICAgICBtaWdodCBiZSAxLjAx
NzJ4IGZhc3RlcgogICBzZXR0ZXItcHJvdG90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA2Ljk2NTkrLTAuNTA1MSAgICAgPyAgICAgIDcuMDc4MSstMC4yNTQ5ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDE2MXggc2xvd2VyCiAgIHNldHRlciAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDUuMzc3OSstMC40NDA5ICAgICAgICAgICAgNS4yMzUzKy0w
LjM1MTEgICAgICAgICAgbWlnaHQgYmUgMS4wMjcyeCBmYXN0ZXIKICAgc2ltcGxlLWFjdGl2YXRp
b24tZGVtbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMi4wODQ2Ky00LjkxNzcgICAgICAg
ICAgIDIxLjAyOTIrLTEuNDY1OCAgICAgICAgICBtaWdodCBiZSAxLjA1MDJ4IGZhc3RlcgogICBz
aW1wbGUtZ2V0dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIxLjY1NTMr
LTEuMjg4MiAgICAgPyAgICAgMjYuMTAyNystMTMuNDkzOCAgICAgICA/IG1pZ2h0IGJlIDEuMjA1
NHggc2xvd2VyCiAgIHNpbXBsZS1wb2x5LWNhbGwtbmVzdGVkICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDUuMzM1MistMC4yMTU0ICAgICA/ICAgICAgNS45OTU0Ky0xLjA3MzkgICAgICAgID8g
bWlnaHQgYmUgMS4xMjM4eCBzbG93ZXIKICAgc2ltcGxlLXBvbHktY2FsbCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMS45ODUxKy0wLjExNTIgICAgID8gICAgICAyLjAxNTcrLTAu
MDgzNCAgICAgICAgPyBtaWdodCBiZSAxLjAxNTR4IHNsb3dlcgogICBzaW1wbGUtcmVnZXhwLWV4
ZWMtZm9sZGluZy1mYWlsICAgICAgICAgICAgICAgICAgICA0LjcyMDArLTAuNzUyMCAgICAgPyAg
ICAgIDQuOTAzNCstMC4zMjI4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM4OXggc2xvd2VyCiAgIHNp
bXBsZS1yZWdleHAtZXhlYy1mb2xkaW5nICAgICAgICAgICAgICAgICAgICAgICAgIDguNTQ2OCst
MC4yMTIwICAgICA/ICAgICAgOC41Nzk2Ky0wLjU1NDIgICAgICAgID8KICAgc2ltcGxlLXJlZ2V4
cC10ZXN0LWZvbGRpbmctZmFpbC13aXRoLWhvaXN0ZWQtcmVnZXhwICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYuNjExNystMS4zOTU2ICAg
ICA/ICAgICAxOS40NDg4Ky05LjIyOTEgICAgICAgID8gbWlnaHQgYmUgMS4xNzA4eCBzbG93ZXIK
ICAgc2ltcGxlLXJlZ2V4cC10ZXN0LWZvbGRpbmctZmFpbCAgICAgICAgICAgICAgICAgICAgOS43
Njk5Ky0wLjM4MTUgICAgICAgICAgICA5LjYxMTArLTAuMzAyMSAgICAgICAgICBtaWdodCBiZSAx
LjAxNjV4IGZhc3RlcgogICBzaW1wbGUtcmVnZXhwLXRlc3QtZm9sZGluZy13aXRoLWhvaXN0ZWQt
cmVnZXhwICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTcuMTI4MistMC4xNzcyICAgICA/ICAgICAyMC4yMTY4Ky04LjI4MzMgICAgICAgID8g
bWlnaHQgYmUgMS4xODAzeCBzbG93ZXIKICAgc2ltcGxlLXJlZ2V4cC10ZXN0LWZvbGRpbmcgICAg
ICAgICAgICAgICAgICAgICAgICAxMS45NTM0Ky0wLjQxNzMgICAgICAgICAgIDExLjM1NzIrLTAu
MjQyNCAgICAgICAgICBtaWdodCBiZSAxLjA1MjV4IGZhc3RlcgogICBzaW4tYm9vbGVhbiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjYyNzErLTEuNDIyMCAgICAgICAg
ICAgIDcuNzM1NCstMC40MzIxICAgICAgICAgIG1pZ2h0IGJlIDEuMTE1M3ggZmFzdGVyCiAgIHNp
bmdsZXRvbi1zY29wZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTUuOTYwNyst
Mi40NTU5ICAgICAgICAgICA1NS42OTM1Ky0xLjMyMjEgICAgICAgIAogICBzaW5rLWZ1bmN0aW9u
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjk0OTIrLTEuMTU4MiAgICAg
PyAgICAgMTMuNjQ0OCstMy45OTM4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDUzN3ggc2xvd2VyCiAg
IHNpbmstaHVnZS1hY3RpdmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuNzIx
OSstMS45NDQ3ICAgICAgICAgICAxMi4zMzAxKy0wLjU3MjQgICAgICAgICAgbWlnaHQgYmUgMS4w
MzE4eCBmYXN0ZXIKICAgc2lua2FibGUtbmV3LW9iamVjdC1kYWcgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0MS41NTQ4Ky0yLjIyODcgICAgID8gICAgIDQyLjQ5OTcrLTIuMTc1OSAgICAgICAg
PyBtaWdodCBiZSAxLjAyMjd4IHNsb3dlcgogICBzaW5rYWJsZS1uZXctb2JqZWN0LXRha2VuICAg
ICAgICAgICAgICAgICAgICAgICAgIDM3LjAwNzkrLTAuODc3MCAgICAgPyAgICAgMzcuNDE4NSst
MS45NzA3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDExMXggc2xvd2VyCiAgIHNpbmthYmxlLW5ldy1v
YmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTguODA3OCstMC43ODU4ICAgICAg
ICAgICAxOC40NDQ0Ky0wLjQ1NDIgICAgICAgICAgbWlnaHQgYmUgMS4wMTk3eCBmYXN0ZXIKICAg
c2xvdy1hcnJheS1wcm9maWxlLWNvbnZlcmdlbmNlICAgICAgICAgICAgICAgICAgICAgMy40Mzg0
Ky0wLjA0MzEgICAgID8gICAgICAzLjU1NDIrLTAuMjk3NyAgICAgICAgPyBtaWdodCBiZSAxLjAz
Mzd4IHNsb3dlcgogICBzbG93LWNvbnZlcmdlbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzLjU5MDYrLTAuMTgwOSAgICAgICAgICAgIDMuNTc2OSstMC4xNjUwICAgICAgICAK
ICAgc2xvdy10ZXJuYXJpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi41
NDcyKy0xLjg0OTIgICAgICAgICAgIDE2LjI1OTUrLTAuNjM0NiAgICAgICAgICBtaWdodCBiZSAx
LjAxNzd4IGZhc3RlcgogICBzb3J0aW5nLWJlbmNobWFyayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDI1LjU5NjYrLTguMDk2NSAgICAgICAgICAgMjIuNjkzNystMC42NzY0ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMTI3OXggZmFzdGVyCiAgIHNwYXJzZS1jb25kaXRpb25hbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDEuNzk3NCstMC4wNTk1ICAgICAgICAgICAgMS43ODQz
Ky0wLjAzMTMgICAgICAgIAogICBzcGFyc2Utc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDY0Ljg3NTArLTIuMzk0NCAgICAgPyAgICAgNjguMjQyNistNC4wMjE4ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDUxOXggc2xvd2VyCiAgIHNwbGljZS10by1yZW1vdmUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMjEuMDI5OCstMS41NjYwICAgICA/ICAgICAyMS4x
Mjg1Ky0xLjU4OTggICAgICAgID8KICAgc3RyY2F0LWNvbnN0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNy42NjU1Ky0yLjAzMzAgICAgICAgICAgICA3LjExMTArLTAuNTY3
NCAgICAgICAgICBtaWdodCBiZSAxLjA3ODB4IGZhc3RlcgogICBzdHJjYXQtbGVuZ3RoLWNvbnN0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjYwMDIrLTQuODQ1MCAgICAgICAgICAg
IDcuMTEzMCstMC41MTU2ICAgICAgICAgIG1pZ2h0IGJlIDEuMjA5MXggZmFzdGVyCiAgIHN0cmlj
dC1vc3ItZW50cnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuODMzMistMS41
NDE5ICAgICAgICAgICAxMi4wNTk2Ky0wLjMwOTIgICAgICAgICAgbWlnaHQgYmUgMS4wNjQxeCBm
YXN0ZXIKICAgc3RyaW5nLWNoYXItY29kZS1hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyMS4xODI4Ky0yLjIxNTUgICAgICAgICAgIDIwLjIzNjQrLTEuNDA3NiAgICAgICAgICBtaWdo
dCBiZSAxLjA0Njh4IGZhc3RlcgogICBzdHJpbmctY29uY2F0LWNvbnZlcnQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDgzLjYxNjcrLTEuOTQwOCAgICAgPyAgICAgODQuMzQwMSstMS41MTIy
ICAgICAgICA/CiAgIHN0cmluZy1jb25jYXQtbG9uZy1jb252ZXJ0ICAgICAgICAgICAgICAgICAg
ICAgICAgOTQuNjkyMCstMS42MzM2ICAgICAgICAgICA5NC42NjEyKy0yLjEyMDUgICAgICAgIAog
ICBzdHJpbmctY29uY2F0LWxvbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU2LjE4
NDArLTEuNjM0OSAgICAgPyAgICAgNTcuMTc3NSstMS4zNTIyICAgICAgICA/IG1pZ2h0IGJlIDEu
MDE3N3ggc2xvd2VyCiAgIHN0cmluZy1jb25jYXQtb2JqZWN0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDMuNjc2NCstMC4xMjAyICAgICAgICAgICAgMy42MTE4Ky0wLjQ3NjggICAgICAg
ICAgbWlnaHQgYmUgMS4wMTc5eCBmYXN0ZXIKICAgc3RyaW5nLWNvbmNhdC1wYWlyLW9iamVjdCAg
ICAgICAgICAgICAgICAgICAgICAgICAgMy43NDI4Ky0wLjM5MDYgICAgICAgICAgICAzLjYyMjIr
LTAuMzA2NCAgICAgICAgICBtaWdodCBiZSAxLjAzMzN4IGZhc3RlcgogICBzdHJpbmctY29uY2F0
LXBhaXItc2ltcGxlICAgICAgICAgICAgICAgICAgICAgICAgICA1LjExOTYrLTIuOTcxMiAgICAg
ICAgICAgIDQuNDEwMCstMC44NDUzICAgICAgICAgIG1pZ2h0IGJlIDEuMTYwOXggZmFzdGVyCiAg
IHN0cmluZy1jb25jYXQtc2ltcGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMjgy
NistMC40NDM5ICAgICAgICAgICAgNi43NzM1Ky0wLjIzMDYgICAgICAgICAgbWlnaHQgYmUgMS4w
NzUyeCBmYXN0ZXIKICAgc3RyaW5nLWNvbmNhdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0Ni43ODUzKy0xLjg4OTkgICAgICAgICAgIDQ2LjI3NTQrLTAuNjkwMSAgICAgICAg
ICBtaWdodCBiZSAxLjAxMTB4IGZhc3RlcgogICBzdHJpbmctY29ucy1yZXBlYXQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA5LjIxNzcrLTAuMzIzMSAgICAgPyAgICAgIDkuMzU3Nist
MC4xOTI3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE1Mnggc2xvd2VyCiAgIHN0cmluZy1jb25zLXRv
d2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuNzkwMSstMC4yODk0ICAgICA/
ICAgICAgOS4wMDU4Ky0zLjQ4NTIgICAgICAgID8gbWlnaHQgYmUgMS4xNTYxeCBzbG93ZXIKICAg
c3RyaW5nLWVxdWFsaXR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy4wMzY3
Ky0wLjg2ODcgICAgID8gICAgIDEzLjEwOTArLTAuMzE1NiAgICAgICAgPwogICBzdHJpbmctZnJv
bS1jaGFyLWNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjE5MzIrLTAuNjg0NyAg
ICAgPyAgICAgIDguMjIzMSstMC4zNTk0ICAgICAgICA/CiAgIHN0cmluZy1nZXQtYnktdmFsLWJp
Zy1jaGFyICAgICAgICAgICAgICAgICAgICAgICAgIDYuOTkyOCstMC4yMjMzICAgICA/ICAgICAg
Ny4wNTg4Ky0wLjE4NTIgICAgICAgID8KICAgc3RyaW5nLWdldC1ieS12YWwtb3V0LW9mLWJvdW5k
cy1pbnNhbmUgICAgICAgICAgICAgNS4xMzE5Ky0wLjE1NjggICAgID8gICAgICA1LjQ5NTkrLTAu
NDcxMiAgICAgICAgPyBtaWdodCBiZSAxLjA3MDl4IHNsb3dlcgogICBzdHJpbmctZ2V0LWJ5LXZh
bC1vdXQtb2YtYm91bmRzICAgICAgICAgICAgICAgICAgICA2LjM1MDArLTAuNDA0MyAgICAgPyAg
ICAgIDYuNzAwNSstMC41NDI5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDU1Mnggc2xvd2VyCiAgIHN0
cmluZy1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDM1Myst
MC4yMjM5ICAgICA/ICAgICAgMy4xMDA2Ky0wLjI2ODAgICAgICAgID8gbWlnaHQgYmUgMS4wMjE1
eCBzbG93ZXIKICAgc3RyaW5nLWhhc2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi42NjIyKy0wLjA3NTUgICAgID8gICAgICAzLjE5MTIrLTEuMDk5MyAgICAgICAgPyBt
aWdodCBiZSAxLjE5ODd4IHNsb3dlcgogICBzdHJpbmctbG9uZy1pZGVudC1lcXVhbGl0eSAgICAg
ICAgICAgICAgICAgICAgICAgIDE4Ljg3ODkrLTAuMjgyOSAgICAgPyAgICAgMTkuNjM3NystMS41
ODM3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQwMnggc2xvd2VyCiAgIHN0cmluZy1vdXQtb2YtYm91
bmRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuNTUyMystMC4zNzMwICAgICA/ICAg
ICAxMi41Njk3Ky0wLjEyOTcgICAgICAgID8KICAgc3RyaW5nLXByb3RvdHlwZS1zZWFyY2gtb2Jz
ZXJ2YWJsZS1zaWRlLWVmZmVjdHMgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMS4yMjMyKy0wLjAzMDAgICAgID8gICAgICAxLjMwMjYrLTAu
MTI3NiAgICAgICAgPyBtaWdodCBiZSAxLjA2NDl4IHNsb3dlcgogICBzdHJpbmctcHJvdG90eXBl
LXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czIgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC43ODE4Ky0wLjA1NjUgICAgID8gICAg
ICAwLjc5NjIrLTAuMTEwNiAgICAgICAgPyBtaWdodCBiZSAxLjAxODR4IHNsb3dlcgogICBzdHJp
bmctcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC43NDcxKy0wLjAy
NzAgICAgID8gICAgICAwLjc1NDkrLTAuMDMyNyAgICAgICAgPyBtaWdodCBiZSAxLjAxMDV4IHNs
b3dlcgogICBzdHJpbmctcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czQg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MC43NjY0Ky0wLjA0MjEgICAgICAgICAgICAwLjc0MjcrLTAuMDQyNCAgICAgICAgICBtaWdodCBi
ZSAxLjAzMTl4IGZhc3RlcgogICBzdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lk
ZS1lZmZlY3RzICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEuODcwNystMC4xMjUxICAgICA/ICAgICAgMi42MTc3Ky0xLjg1MDQgICAgICAg
ID8gbWlnaHQgYmUgMS4zOTkzeCBzbG93ZXIKICAgc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNl
cnZhYmxlLXNpZGUtZWZmZWN0czIgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMC43OTkxKy0wLjA0MDEgICAgICAgICAgICAwLjc4NDUrLTAu
MDM4MiAgICAgICAgICBtaWdodCBiZSAxLjAxODZ4IGZhc3RlcgogICBzdHJpbmctcHJvdG90eXBl
LXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1mbGFncyAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjgwMjErLTAuMDMzMyAgICAg
PyAgICAgIDAuOTIxMistMC4zNDk2ICAgICAgICA/IG1pZ2h0IGJlIDEuMTQ4NXggc2xvd2VyCiAg
IHN0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWdsb2JhbCAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
LjgxOTArLTAuMDg2MiAgICAgICAgICAgIDAuODA1MSstMC4wMTcyICAgICAgICAgIG1pZ2h0IGJl
IDEuMDE3M3ggZmFzdGVyCiAgIHN0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRl
LWVmZmVjdHMzLWlnbm9yZUNhc2UgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMC45MTQ3Ky0wLjM3NDkgICAgICAgICAgICAwLjgwNTArLTAu
MDI0MCAgICAgICAgICBtaWdodCBiZSAxLjEzNjR4IGZhc3RlcgogICBzdHJpbmctcHJvdG90eXBl
LXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1tdWx0aWxpbmUgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC45MjY4Ky0wLjI5MDUg
ICAgICAgICAgICAwLjgyMTYrLTAuMDQxNCAgICAgICAgICBtaWdodCBiZSAxLjEyODF4IGZhc3Rl
cgogICBzdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1zdGlj
a3kgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMC43ODIwKy0wLjAxNzcgICAgID8gICAgICAwLjc4MzkrLTAuMDE1NyAgICAgICAgPwogICBz
dHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy11bmljb2RlICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAu
Nzg1NCstMC4wNDE4ICAgICA/ICAgICAgMC45Mjc0Ky0wLjI2MjkgICAgICAgID8gbWlnaHQgYmUg
MS4xODA5eCBzbG93ZXIKICAgc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUt
ZWZmZWN0czQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMC44MDk1Ky0wLjA0ODkgICAgID8gICAgICAwLjk4OTcrLTAuNDExMCAgICAgICAg
PyBtaWdodCBiZSAxLjIyMjZ4IHNsb3dlcgogICBzdHJpbmctcmVwZWF0LWFyaXRoICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDI3LjU2MDYrLTYuODI0OCAgICAgPyAgICAgMzEuNzg2MCst
MTYuMDg4NSAgICAgICA/IG1pZ2h0IGJlIDEuMTUzM3ggc2xvd2VyCiAgIHN0cmluZy1yZXBlYXQt
bm90LXJlc29sdmluZy1maXhlZCAgICAgICAgICAgICAgICAgIDUuODY4OCstMi4wOTYwICAgICAg
ICAgICAgNC43NTIyKy0wLjUwMTMgICAgICAgICAgbWlnaHQgYmUgMS4yMzUweCBmYXN0ZXIKICAg
c3RyaW5nLXJlcGVhdC1ub3QtcmVzb2x2aW5nLW5vLWlubGluZSAgICAgICAgICAgICAgNS4wNjky
Ky0wLjYzMjEgICAgICAgICAgICA0Ljg3MjkrLTAuNDI5NCAgICAgICAgICBtaWdodCBiZSAxLjA0
MDN4IGZhc3RlcgogICBzdHJpbmctcmVwZWF0LW5vdC1yZXNvbHZpbmcgICAgICAgICAgICAgICAg
ICAgICAgICA1LjQ2MjcrLTEuMDIxMyAgICAgICAgICAgIDUuMzQ2MCstMC40MTgzICAgICAgICAg
IG1pZ2h0IGJlIDEuMDIxOHggZmFzdGVyCiAgIHN0cmluZy1yZXBlYXQtcmVzb2x2aW5nLWZpeGVk
ICAgICAgICAgICAgICAgICAgICAgMzAuODcyOSstMS45NDU4ICAgICA/ICAgICAzMS4yNTY0Ky0x
Ljc1NDUgICAgICAgID8gbWlnaHQgYmUgMS4wMTI0eCBzbG93ZXIKICAgc3RyaW5nLXJlcGVhdC1y
ZXNvbHZpbmctbm8taW5saW5lICAgICAgICAgICAgICAgICA0MS41NzgyKy0xLjA0ODMgICAgID8g
ICAgIDQyLjAyNzkrLTEuODA4MSAgICAgICAgPyBtaWdodCBiZSAxLjAxMDh4IHNsb3dlcgogICBz
dHJpbmctcmVwZWF0LXJlc29sdmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgIDQyLjU4ODYr
LTIuNTczMiAgICAgICAgICAgNDIuNDgwOCstMi4zMTEzICAgICAgICAKICAgc3RyaW5nLXJlcGVh
dC1zaW5nbGUtbm90LXJlc29sdmluZyAgICAgICAgICAgICAgICAxMC41ODUwKy0wLjM3NDggICAg
ID8gICAgIDEwLjk3NjErLTEuMjE3MyAgICAgICAgPyBtaWdodCBiZSAxLjAzNjl4IHNsb3dlcgog
ICBzdHJpbmctcmVwZWF0LXNpbmdsZS1yZXNvbHZpbmcgICAgICAgICAgICAgICAgICAgIDExLjM0
NzkrLTAuODkyMCAgICAgICAgICAgMTAuOTkwMistMC40MTQwICAgICAgICAgIG1pZ2h0IGJlIDEu
MDMyNXggZmFzdGVyCiAgIHN0cmluZy1yZXBlYXQtc21hbGwtbm90LXJlc29sdmluZyAgICAgICAg
ICAgICAgICAgIDYuMzU2MSstMy4wNzEwICAgICAgICAgICAgNi4wMjM1Ky0zLjQ2NDIgICAgICAg
ICAgbWlnaHQgYmUgMS4wNTUyeCBmYXN0ZXIKICAgc3RyaW5nLXJlcGVhdC1zbWFsbC1yZXNvbHZp
bmcgICAgICAgICAgICAgICAgICAgICA0Mi44NjM0Ky0xLjE2NjggICAgID8gICAgIDQzLjA5MTkr
LTEuODg3NCAgICAgICAgPwogICBzdHJpbmctcmVwbGFjZS1lbXB0eSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA3Ljc3NzIrLTEuMTIxNSAgICAgICAgICAgIDcuMTQzOSstMC43Mjc2ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDg4NnggZmFzdGVyCiAgIHN0cmluZy1yZXBsYWNlLWdlbmVyaWMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNTYuMDkzNystMy4wNzE2ICAgICAgICAgICA1NS4y
NzkzKy0yLjg3MDYgICAgICAgICAgbWlnaHQgYmUgMS4wMTQ3eCBmYXN0ZXIKICAgc3RyaW5nLXJl
cGxhY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy40MjUzKy0wLjgxOTgg
ICAgID8gICAgICA3Ljk0MjYrLTAuNDk4NCAgICAgICAgPyBtaWdodCBiZSAxLjA2OTd4IHNsb3dl
cgogICBzdHJpbmctcm9wZS13aXRoLW9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgIDIy
LjIwOTErLTMuNTQ2MiAgICAgPyAgICAgMjYuMDU3MCstMC44MDg2ICAgICAgICA/IG1pZ2h0IGJl
IDEuMTczM3ggc2xvd2VyCiAgIHN0cmluZy1zbGljZS1lbXB0eSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDkuNTAwNSstMC40ODE5ICAgICA/ICAgICAgOS43MjI0Ky0wLjUzOTUgICAg
ICAgID8gbWlnaHQgYmUgMS4wMjM0eCBzbG93ZXIKICAgc3RyaW5nLXNsaWNlLW9uZS1jaGFyICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxMC41NTY4Ky0wLjQzODQgICAgID8gICAgIDEwLjU4
NjIrLTEuNTc5MSAgICAgICAgPwogICBzdHJpbmctc2xpY2UgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDM1LjI5NzcrLTEuMjM5NCAgICAgPyAgICAgMzYuNjI5OSstMS44Nzkw
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM3N3ggc2xvd2VyCiAgIHN0cmluZy1zdWIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDcuMTQ2NystNi45NzY2ICAgICA/ICAgICA2
Ny4yNDUzKy01Ny4xMTIzICAgICAgID8gbWlnaHQgYmUgMS40MjYzeCBzbG93ZXIKICAgc3RyaW5n
LXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43MDg0Ky0wLjA4
ODMgICAgID8gICAgICA0LjY3NjUrLTIuMzAxNSAgICAgICAgPyBtaWdodCBiZSAxLjI2MTB4IHNs
b3dlcgogICBzdHJpbmctdHJhbnNjb2RpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA5LjE1MTgrLTAuODMzNyAgICAgPyAgICAgIDkuNjQzNCstMC45NTY0ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDUzN3ggc2xvd2VyCiAgIHN0cmluZy12YXItZXF1YWxpdHkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMzEuOTk0OSstNi40NjcwICAgICAgICAgICAyOS42OTUwKy0yLjgwNDUg
ICAgICAgICAgbWlnaHQgYmUgMS4wNzc0eCBmYXN0ZXIKICAgc3RyaW5nYWxsb2MgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExOS4zOTk4Ky0xLjk3MDAgICAgID8gICAgMTE5
Ljg0NzYrLTEuOTYxOSAgICAgICAgPwogICBzdHJ1Y3R1cmUtaG9pc3Qtb3Zlci10cmFuc2l0aW9u
cyAgICAgICAgICAgICAgICAgICAzLjg1MjcrLTAuNTIxMyAgICAgPyAgICAgIDQuMTk2NSstMC43
MDQwICAgICAgICA/IG1pZ2h0IGJlIDEuMDg5Mnggc2xvd2VyCiAgIHN1YnN0cmluZy1jb25jYXQt
d2VpcmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDMuNjc1MCstMi45MTAxICAgICA/ICAg
ICA0NC45OTAyKy0zLjYxMzggICAgICAgID8gbWlnaHQgYmUgMS4wMzAxeCBzbG93ZXIKICAgc3Vi
c3RyaW5nLWNvbmNhdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NS4zNzYzKy0y
LjExNTIgICAgICAgICAgIDQ0LjU1NzIrLTAuNzMyNiAgICAgICAgICBtaWdodCBiZSAxLjAxODR4
IGZhc3RlcgogICBzdWJzdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDQ4LjkwMDQrLTEuMzEzOCAgICAgPyAgICAgNTAuOTg4MystNS4xNzc0ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDQyN3ggc2xvd2VyCiAgIHN1cGVyLWdldC1ieS1pZC13aXRoLXRoaXMtbW9ub21v
cnBoaWMgICAgICAgICAgICAgMjEuODI0OCstMC41MzQxICAgICAgICAgICAyMS42MzgyKy0wLjgw
OTUgICAgICAgIAogICBzdXBlci1nZXQtYnktaWQtd2l0aC10aGlzLXBvbHltb3JwaGljICAgICAg
ICAgICAgIDIxLjYzMTQrLTkuNjIwNiAgICAgICAgICAgMTkuNjc0OSstMS45ODk2ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDk5NHggZmFzdGVyCiAgIHN1cGVyLWdldC1ieS12YWwtd2l0aC10aGlzLW1v
bm9tb3JwaGljICAgICAgICAgICAgMzcuMTY5NCstMjQuMjE3NCAgICAgICAgICAyOC4zNDczKy0w
LjU1MDEgICAgICAgICAgbWlnaHQgYmUgMS4zMTEyeCBmYXN0ZXIKICAgc3VwZXItZ2V0LWJ5LXZh
bC13aXRoLXRoaXMtcG9seW1vcnBoaWMgICAgICAgICAgICAyNS4yODU3Ky0xLjA5NjEgICAgICAg
ICAgIDI0LjM3NjQrLTAuOTE5OCAgICAgICAgICBtaWdodCBiZSAxLjAzNzN4IGZhc3RlcgogICBz
dXBlci1nZXR0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2LjMxNjkr
LTEuMTAzMyAgICAgICAgICAgMTYuMTk2NystMC44NzIxICAgICAgICAKICAgc3dpdGNoLWNoYXIt
Y29uc3RhbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4xMDQwKy0wLjI1NTggICAg
ICAgICAgICAyLjk4ODkrLTAuMTU0NyAgICAgICAgICBtaWdodCBiZSAxLjAzODV4IGZhc3Rlcgog
ICBzd2l0Y2gtY2hhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjQ1
ODgrLTEuMDM0NSAgICAgICAgICAgIDcuMjczMystMC40NzIyICAgICAgICAgIG1pZ2h0IGJlIDEu
MDI1NXggZmFzdGVyCiAgIHN3aXRjaC1jb25zdGFudCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDcuMzgzOSstMC4zMjkxICAgICAgICAgICAgNy4yNjMyKy0wLjYxODQgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTY2eCBmYXN0ZXIKICAgc3dpdGNoLXN0cmluZy1iYXNpYy1iaWctdmFy
ICAgICAgICAgICAgICAgICAgICAgICAxNi42NDk5Ky0wLjYyOTkgICAgICAgICAgIDE2LjMwODIr
LTAuMzAwOSAgICAgICAgICBtaWdodCBiZSAxLjAyMTB4IGZhc3RlcgogICBzd2l0Y2gtc3RyaW5n
LWJhc2ljLWJpZyAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjY4NTQrLTEuMDI4MyAgICAg
ICAgICAgMTMuMjMyNystMC40NDM0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM0MnggZmFzdGVyCiAg
IHN3aXRjaC1zdHJpbmctYmFzaWMtdmFyICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYuMzQz
OSstMC44ODk2ICAgICAgICAgICAxNi4zMzk5Ky0wLjM2NjIgICAgICAgIAogICBzd2l0Y2gtc3Ry
aW5nLWJhc2ljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjgzNDQrLTAuNjc1OSAg
ICAgPyAgICAgMTQuNzAyOCstNi4zOTM1ICAgICAgICA/IG1pZ2h0IGJlIDEuMTQ1Nnggc2xvd2Vy
CiAgIHN3aXRjaC1zdHJpbmctYmlnLWxlbmd0aC10b3dlci12YXIgICAgICAgICAgICAgICAgMjIu
NDM3MistMS44NTQ4ICAgICAgICAgICAyMS45Nzk0Ky0wLjcxODEgICAgICAgICAgbWlnaHQgYmUg
MS4wMjA4eCBmYXN0ZXIKICAgc3dpdGNoLXN0cmluZy1sZW5ndGgtdG93ZXItdmFyICAgICAgICAg
ICAgICAgICAgICAyMy4zMDc2Ky0xOS4yNTMyICAgICAgICAgIDE2LjI0ODgrLTAuOTgyNCAgICAg
ICAgICBtaWdodCBiZSAxLjQzNDR4IGZhc3RlcgogICBzd2l0Y2gtc3RyaW5nLWxlbmd0aC10b3dl
ciAgICAgICAgICAgICAgICAgICAgICAgIDE1Ljk5MzkrLTYuNDgxNiAgICAgICAgICAgMTQuNjg3
MystNS43NjIwICAgICAgICAgIG1pZ2h0IGJlIDEuMDg5MHggZmFzdGVyCiAgIHN3aXRjaC1zdHJp
bmctc2hvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuMjg0MCstMC4zODU0ICAg
ICA/ICAgICAxNS4yMDg5Ky03LjQ0MjMgICAgICAgID8gbWlnaHQgYmUgMS4yMzgxeCBzbG93ZXIK
ICAgc3dpdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4z
MjUwKy0wLjM4NTMgICAgID8gICAgICA5LjMyNTQrLTAuNTAxNSAgICAgICAgPwogICBzd2l0Y2hp
bmctc2l6ZS1jbGFzc2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ2LjE2MzMrLTAuNjIy
NCAgICAgPyAgICAgNjAuMDcwMistMzcuMzg3MSAgICAgICA/IG1pZ2h0IGJlIDEuMzAxM3ggc2xv
d2VyCiAgIHN5bWJvbC10b3N0cmluZ3RhZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDMuNjc3MSstMC4xMzA0ICAgICA/ICAgICAgMy44NTYwKy0wLjM3OTYgICAgICAgID8gbWlnaHQg
YmUgMS4wNDg3eCBzbG93ZXIKICAgdGFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA4MS40NDUxKy0yMS40ODE3ICAgICAgICAgIDc2LjI0NDQrLTMuMjA3NCAg
ICAgICAgICBtaWdodCBiZSAxLjA2ODJ4IGZhc3RlcgogICB0ZWFyLW9mZi1hcmd1bWVudHMtc2lt
cGxlICAgICAgICAgICAgICAgICAgICAgICAgICA0LjAwMTcrLTAuNDA1OSAgICAgICAgICAgIDMu
ODE4NCstMC41MTAwICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ4MHggZmFzdGVyCiAgIHRlYXItb2Zm
LWFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuNTYwOCstMS4wNTY2
ICAgICAgICAgICAgNS4wMzE0Ky0wLjU2NjAgICAgICAgICAgbWlnaHQgYmUgMS4xMDUyeCBmYXN0
ZXIKICAgdGVtcGxhdGUtc3RyaW5nLWFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ny42ODU1Ky0wLjQyOTMgICAgID8gICAgICA3Ljg5ODkrLTAuMzg5NSAgICAgICAgPyBtaWdodCBi
ZSAxLjAyNzh4IHNsb3dlcgogICB0ZW1wb3JhbC1zdHJ1Y3R1cmUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDE0LjExNDUrLTAuOTEwNSAgICAgPyAgICAgMTUuMDIyNistMC41NTk1ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDY0M3ggc2xvd2VyCiAgIHRocm93ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTguMTgxNCstMC42MjI2ICAgICA/ICAgICAxOC42
MDk4Ky0wLjM2MzYgICAgICAgID8gbWlnaHQgYmUgMS4wMjM2eCBzbG93ZXIKICAgdG8taW50MzIt
Ym9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNS4wOTc5Ky0wLjc3MTgg
ICAgID8gICAgIDE3LjE4MzUrLTUuOTQxMSAgICAgICAgPyBtaWdodCBiZSAxLjEzODF4IHNsb3dl
cgogICB0by1udW1iZXItY29uc3RydWN0b3ItbnVtYmVyLXN0cmluZy1udW1iZXItc3RyaW5nICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUu
NDMyMSstMC41MjMwICAgICA/ICAgICAgNS44MDAyKy0wLjY1NDAgICAgICAgID8gbWlnaHQgYmUg
MS4wNjc4eCBzbG93ZXIKICAgdG8tbnVtYmVyLWNvbnN0cnVjdG9yLW9ubHktbnVtYmVyICAgICAg
ICAgICAgICAgICAgMS4wNzc3Ky0wLjA5MjEgICAgID8gICAgICAxLjE2MTIrLTAuMjQ0NCAgICAg
ICAgPyBtaWdodCBiZSAxLjA3NzR4IHNsb3dlcgogICB0by1udW1iZXItY29uc3RydWN0b3Itb25s
eS1zdHJpbmcgICAgICAgICAgICAgICAgICAyLjc1MjArLTAuNTcyNiAgICAgICAgICAgIDIuNzA3
NistMC4yODIzICAgICAgICAgIG1pZ2h0IGJlIDEuMDE2NHggZmFzdGVyCiAgIHRvLW51bWJlci1j
b25zdHJ1Y3Rvci1zdHJpbmctbnVtYmVyLXN0cmluZy1udW1iZXIgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4xOTYxKy0xLjA2OTQgICAg
ID8gICAgICA0LjM5MzIrLTAuNTIxNCAgICAgICAgPyBtaWdodCBiZSAxLjA0NzB4IHNsb3dlcgog
ICB0by1udW1iZXItbnVtYmVyLXN0cmluZy1udW1iZXItc3RyaW5nICAgICAgICAgICAgICA1LjE5
NzkrLTAuNzMyMCAgICAgICAgICAgIDQuNjU4MSstMC40MzAzICAgICAgICAgIG1pZ2h0IGJlIDEu
MTE1OXggZmFzdGVyCiAgIHRvLW51bWJlci1vbmx5LW51bWJlciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEuMDIwNSstMC4yMTQzICAgICAgICAgICAgMC45NjY4Ky0wLjA0OTYgICAgICAg
ICAgbWlnaHQgYmUgMS4wNTU1eCBmYXN0ZXIKICAgdG8tbnVtYmVyLW9ubHktc3RyaW5nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMy4wMjkyKy0xLjM0MjkgICAgICAgICAgICAyLjYxMDgr
LTAuMjgxMyAgICAgICAgICBtaWdodCBiZSAxLjE2MDJ4IGZhc3RlcgogICB0by1udW1iZXItc3Ry
aW5nLW51bWJlci1zdHJpbmctbnVtYmVyICAgICAgICAgICAgICA0LjM3NTQrLTAuNTk2NSAgICAg
ICAgICAgIDQuMjk4OCstMC40OTY0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE3OHggZmFzdGVyCiAg
IHRyeS1jYXRjaC1nZXQtYnktdmFsLWNsb25lZC1hcmd1bWVudHMgICAgICAgICAgICAgIDUuNzk0
NSstMC42Mzc3ICAgICA/ICAgICAgNS45MTEzKy0wLjY2NDAgICAgICAgID8gbWlnaHQgYmUgMS4w
MjAyeCBzbG93ZXIKICAgdHJ5LWNhdGNoLWdldC1ieS12YWwtZGlyZWN0LWFyZ3VtZW50cyAgICAg
ICAgICAgICAgMy4yMjA1Ky0wLjM0NjMgICAgICAgICAgICAzLjEwMTErLTAuMjgxNyAgICAgICAg
ICBtaWdodCBiZSAxLjAzODV4IGZhc3RlcgogICB0cnktY2F0Y2gtZ2V0LWJ5LXZhbC1zY29wZWQt
YXJndW1lbnRzICAgICAgICAgICAgICA3LjE5MDgrLTAuNjk0NSAgICAgICAgICAgIDYuODE0NCst
MC4zOTg4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDU1MnggZmFzdGVyCiAgIHRyeS1jYXRjaC13b3Jk
LWNvdW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIuMDQxMistMC40ODcyICAgICAg
ICAgICAzMS45NDI4Ky0wLjU0NjUgICAgICAgIAogICB0cnktZ2V0LWJ5LWlkLWJhc2ljICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA4Ljg0NTQrLTAuNjc0MyAgICAgICAgICAgIDguNDky
NistMC4xNjcyICAgICAgICAgIG1pZ2h0IGJlIDEuMDQxNXggZmFzdGVyCiAgIHRyeS1nZXQtYnkt
aWQtcG9seW1vcnBoaWMgICAgICAgICAgICAgICAgICAgICAgICAgIDkuOTQzMSstMC42MzU0ICAg
ICAgICAgICAgOS44Njc4Ky0wLjY2MDkgICAgICAgIAogICB0eXBlZC1hcnJheS1nZXQtc2V0LWJ5
LXZhbC1wcm9maWxpbmcgICAgICAgICAgICAgIDI2LjAwMDQrLTEuNjU5MyAgICAgICAgICAgMjUu
ODY0OCstMS42NTc2ICAgICAgICAKICAgdHlwZWQtYXJyYXktc3ViYXJyYXkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA1Mi45ODYwKy0xLjQ1NDAgICAgICAgICAgIDUyLjI4OTgrLTIuNTc1
NSAgICAgICAgICBtaWdodCBiZSAxLjAxMzN4IGZhc3RlcgogICB1bmRlZmluZWQtdGVzdCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjkzNTkrLTAuMTI4NSAgICAgPyAgICAg
IDQuMTU1NystMC4xOTc1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDU1OHggc2xvd2VyCiAgIHVucHJv
ZmlsZWQtbGljbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguMzY0NSstMC42
Njg5ICAgICAgICAgICAgOC4xNTg2Ky0wLjM5NTUgICAgICAgICAgbWlnaHQgYmUgMS4wMjUyeCBm
YXN0ZXIKICAgdW50eXBlZC1zdHJpbmctZnJvbS1jaGFyLWNvZGUgICAgICAgICAgICAgICAgICAg
ICAxMi45MTk2Ky0wLjU3NDEgICAgID8gICAgIDE0LjIzMzkrLTQuMDAyNyAgICAgICAgPyBtaWdo
dCBiZSAxLjEwMTd4IHNsb3dlcgogICB2OC1yYXl0cmFjZS13aXRoLWVtcHR5LXRyeS1jYXRjaCAg
ICAgICAgICAgICAgICAgIDYxLjg4NjQrLTMuMTI5NiAgICAgPyAgICAgNjMuMjIwOCstNS4xNjM5
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIxNnggc2xvd2VyCiAgIHY4LXJheXRyYWNlLXdpdGgtdHJ5
LWNhdGNoICAgICAgICAgICAgICAgICAgICAgICAgNTMuNDExOCstMC44NTgyICAgICA/ICAgICA1
NC40OTEyKy0xLjY5MDggICAgICAgID8gbWlnaHQgYmUgMS4wMjAyeCBzbG93ZXIKICAgdjgtcmVn
ZXhwLXNlYXJjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2Ni40MTg1Ky0xLjgx
NjcgICAgID8gICAgIDg5LjY2MDUrLTU3Ljg4MzMgICAgICAgPyBtaWdodCBiZSAxLjM0OTl4IHNs
b3dlcgogICB2YXJhcmdzLWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDE0Ljc5NjgrLTAuNDI2NSAgICAgPyAgICAgMTQuOTI3OCstMC4yOTU2ICAgICAgICA/CiAgIHZh
cmFyZ3MtY29uc3RydWN0LWlubGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgMjAuNTAwNist
MC43ODIxICAgICA/ICAgICAyMC41ODgwKy0wLjM5MTMgICAgICAgID8KICAgdmFyYXJncy1jb25z
dHJ1Y3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNS4yMzc3Ky0xLjk3NjkgICAg
ICAgICAgIDI0Ljk2NjgrLTAuNzYwMCAgICAgICAgICBtaWdodCBiZSAxLjAxMDl4IGZhc3Rlcgog
ICB2YXJhcmdzLWlubGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4Ljg5
MTkrLTAuNjYzMyAgICAgPyAgICAgIDkuNjk2MystMC45ODQzICAgICAgICA/IG1pZ2h0IGJlIDEu
MDkwNXggc2xvd2VyCiAgIHZhcmFyZ3Mtc3RyaWN0LW1vZGUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTAuNDIzNCstMC42NDc5ICAgICAgICAgICAxMC4yOTkzKy0wLjY5MDMgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTIxeCBmYXN0ZXIKICAgdmFyYXJncyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMC4zMjM3Ky0wLjYxNDkgICAgID8gICAgIDEyLjMwMTgr
LTUuODA3MCAgICAgICAgPyBtaWdodCBiZSAxLjE5MTZ4IHNsb3dlcgogICB2ZWN0b3ItbGVuZ3Ro
LWhpbnQtYXJyYXktY29uc3RydWN0b3IgICAgICAgICAgICAgIDE2Ljk4MzcrLTEuMTg2MiAgICAg
ICAgICAgMTYuNDUwOSstMC42MDE5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMyNHggZmFzdGVyCiAg
IHZlY3Rvci1sZW5ndGgtaGludC1uZXctYXJyYXkgICAgICAgICAgICAgICAgICAgICAgMTAuMDgx
NSstMC43NTA2ICAgICA/ICAgICAxMy42MjQ0Ky0xMS4xMTg2ICAgICAgID8gbWlnaHQgYmUgMS4z
NTE0eCBzbG93ZXIKICAgd2Vhay1tYXAta2V5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDExNy45NzczKy02LjAzMjQgICAgID8gICAgMTY4LjkyMjUrLTEzMS4wNzY1ICAgICAg
PyBtaWdodCBiZSAxLjQzMTh4IHNsb3dlcgogICB3ZWFrLXNldC1rZXkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTIxLjc3NjErLTcuMTQyMyAgICAgICAgICAxMTkuMTA2MCst
Ny44MDg4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIyNHggZmFzdGVyCiAgIHdlaXJkLWlubGluaW5n
LWNvbnN0LXByb3AgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNjkzMSstMS4xOTUwICAgICAg
ICAgICAgMy4zNjQyKy0wLjk5MTIgICAgICAgICAgbWlnaHQgYmUgMS4wOTc4eCBmYXN0ZXIKCiAg
IDxnZW9tZXRyaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuMzky
MystMC4wMzIzICAgICA/ICAgICAxMC40MjkyKy0wLjA0MzQgICAgICAgID8gbWlnaHQgYmUgMS4w
MDM2eCBzbG93ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJhc2VsaW5lICAgICAgICAgICAgICAgICAgY2hhbmdlcyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCkdlb21lYW4gb2YgcHJlZmVycmVkIG1lYW5zOgog
ICA8c2NhbGVkLXJlc3VsdD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI5LjYz
MDErLTAuNTU5MSAgICAgPyAgICAgMjkuNjUyNistMC43MjY3ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDAwOHggc2xvd2VyCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339413</attachid>
            <date>2018-05-03 09:17:35 -0700</date>
            <delta_ts>2018-05-04 21:46:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183721-20180503131732.patch</filename>
            <type>text/plain</type>
            <size>47894</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YTExOTFkOTAzZDIwZTEyNzk5ZGNjZjk1ODBjZDE3YzFlNzY5M2EzLi45NzVhYTZmMGJkMTRkM2Jk
NDkzZThkMTgxMGRiNzRiOWRmNTE0ZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxOC0wNS0wMSAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgIioiIG9w
ZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgzNzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgQWRk
ZWQgQmlnSW50IHN1cHBvcnQgaW50byB0aW1lcyBiaW5hcnkgb3BlcmF0b3IgaW50byBMTEludCBh
bmQgb24KKyAgICAgICAgSklUT3BlcmF0aW9ucyBwcm9maWxlZE11bCBhbmQgdW5wcm9maWxlZE11
bC4gV2UgYXJlIGFsc28gcmVwbGFjaW5nIGFsbAorICAgICAgICB1c2VzIG9mIGludCB0byB1bnNp
Z25lZCB3aGVuIHRoZXJlIGlzIG5vIG5lZ2F0aXZlIHZhbHVlcyBmb3IKKyAgICAgICAgdmFyaWFi
bGVzLgorCisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6CisgICAg
ICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNCaWdJbnQuY3BwOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6SlNCaWdJbnQpOgor
ICAgICAgICAoSlNDOjpKU0JpZ0ludDo6YWxsb2NhdGlvblNpemUpOgorICAgICAgICAoSlNDOjpK
U0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojp0b1N0
cmluZyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjptdWx0aXBseSk6CisgICAgICAgIChKU0M6
OkpTQmlnSW50OjpkaWdpdERpdik6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjppbnRlcm5hbE11
bHRpcGx5QWRkKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6Om11bHRpcGx5QWNjdW11bGF0ZSk6
CisgICAgICAgIChKU0M6OkpTQmlnSW50OjplcXVhbHMpOgorICAgICAgICAoSlNDOjpKU0JpZ0lu
dDo6YWJzb2x1dGVEaXZTbWFsbCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpjYWxjdWxhdGVN
YXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OnRvU3Ry
aW5nR2VuZXJpYyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpyaWdodFRyaW0pOgorICAgICAg
ICAoSlNDOjpKU0JpZ0ludDo6YWxsb2NhdGVGb3IpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6
cGFyc2VJbnQpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6ZGlnaXQpOgorICAgICAgICAoSlND
OjpKU0JpZ0ludDo6c2V0RGlnaXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFs
dWVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvTnVtZXJpYyBjb25zdCk6Cisg
ICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6CisgICAgICAgIChKU0M6OmpzTXVsKToKKwog
MjAxOC0wNC0yOCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzMTEzMS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggY2Vl
NjU2MjM0MzE3NzBmNGJmNDAyYWRhMGM4NzczNThmODAwYjY3ZC4uZTQ2NTBhYzMwODBmNmI0MjBi
NjM3OGI2NjVjZWQ1MjZiYjlkZTVhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKQEAgLTE0NiwxNCArMTQ2LDE0IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWUgY2hpbGQyQ29uc3RhbnQgPSBt
X3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQyKCkubm9kZSgpKS52YWx1ZSgpOwogCiAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBSZXZpc2l0IHRoaXMgY29uZGl0aW9uIHdoZW4gaW50cm9k
dWNpbmcgQmlnSW50IHRvIEpTQy4KLSAgICAgICAgICAgICAgICAgICAgYXV0byBpc05vblN0cmlu
Z0NlbGxDb25zdGFudCA9IFtdIChKU1ZhbHVlIHZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gdmFsdWUgJiYgdmFsdWUuaXNDZWxsKCkgJiYgIXZhbHVlLmlzU3RyaW5nKCk7
CisgICAgICAgICAgICAgICAgICAgIGF1dG8gaXNOb25TdHJpbmdPckJpZ0ludENlbGxDb25zdGFu
dCA9IFtdIChKU1ZhbHVlIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
dmFsdWUgJiYgdmFsdWUuaXNDZWxsKCkgJiYgIXZhbHVlLmlzU3RyaW5nKCkgJiYgIXZhbHVlLmlz
QmlnSW50KCk7CiAgICAgICAgICAgICAgICAgICAgIH07CiAKLSAgICAgICAgICAgICAgICAgICAg
aWYgKGlzTm9uU3RyaW5nQ2VsbENvbnN0YW50KGNoaWxkMUNvbnN0YW50KSkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoaXNOb25TdHJpbmdPckJpZ0ludENlbGxDb25zdGFudChjaGlsZDFDb25z
dGFudCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZlcnRUb0NvbXBhcmVF
cVB0cihtX2dyYXBoLmZyZWV6ZVN0cm9uZyhjaGlsZDFDb25zdGFudC5hc0NlbGwoKSksIG5vZGUt
PmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwotICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzTm9uU3RyaW5nQ2VsbENvbnN0YW50KGNoaWxk
MkNvbnN0YW50KSkgeworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzTm9uU3RyaW5n
T3JCaWdJbnRDZWxsQ29uc3RhbnQoY2hpbGQyQ29uc3RhbnQpKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBub2RlLT5jb252ZXJ0VG9Db21wYXJlRXFQdHIobV9ncmFwaC5mcmVlemVTdHJvbmco
Y2hpbGQyQ29uc3RhbnQuYXNDZWxsKCkpLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggMzY1YmI3Mzc1NWE3
YTQ1NGNmMDg1NDM2YzYzNzhkMWJmNzNmZWM0Yi4uNjJmYzFiMDIyYWM5N2NiZDg4ODE0MTkyMjIy
YzYyNzQ5ZDI3ZjViNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuY3BwCkBAIC0yNTU0LDM0ICsyNTU0LDIzIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmFsdWVBZGROb09wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1BTFdBWVNfSU5MSU5FIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSB1bnByb2ZpbGVkTXVsKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQor
QUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgdW5wcm9maWxlZE11bChFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIpCiB7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAg
IEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwogICAgIEpTVmFsdWUg
b3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOwogCi0gICAgZG91YmxlIGEgPSBvcDEu
dG9OdW1iZXIoZXhlYyk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpT
VmFsdWUoKSk7Ci0gICAgc2NvcGUucmVsZWFzZSgpOwotICAgIGRvdWJsZSBiID0gb3AyLnRvTnVt
YmVyKGV4ZWMpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAqIGIpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTXVsKGV4ZWMsIG9wMSwgb3AyKSk7CiB9CiAK
LUFMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHByb2ZpbGVkTXVsKFZNJiB2bSwg
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUmIGFyaXRoUHJvZmlsZSwgYm9vbCBzaG91bGRPYnNl
cnZlTEhTQW5kUkhTVHlwZXMgPSB0cnVlKQorQUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgcHJvZmlsZWRNdWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUmIGFyaXRoUHJvZmls
ZSwgYm9vbCBzaG91bGRPYnNlcnZlTEhTQW5kUkhTVHlwZXMgPSB0cnVlKQogewotICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIG9wMSA9IEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkT3AxKTsKICAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkT3AyKTsKIAogICAgIGlmIChzaG91bGRPYnNlcnZlTEhTQW5kUkhTVHlwZXMpCiAg
ICAgICAgIGFyaXRoUHJvZmlsZS5vYnNlcnZlTEhTQW5kUkhTKG9wMSwgb3AyKTsKIAotICAgIGRv
dWJsZSBhID0gb3AxLnRvTnVtYmVyKGV4ZWMpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMp
OwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAg
IAotICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAqIGIpOworICAgIEpTVmFsdWUgcmVz
dWx0ID0ganNNdWwoZXhlYywgb3AxLCBvcDIpOwogICAgIGFyaXRoUHJvZmlsZS5vYnNlcnZlUmVz
dWx0KHJlc3VsdCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQpAQCAt
MjU5MSw3ICsyNTgwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25W
YWx1ZU11bChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGUKICAgICBWTSogdm0gPSAm
ZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsK
IAotICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2Rl
ZE9wMik7CisgICAgcmV0dXJuIHVucHJvZmlsZWRNdWwoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2Rl
ZE9wMik7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVN
dWxOb09wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUTXVsSUMqKQpAQCAtMjU5OSw3ICsyNTg4LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bE5vT3B0aW1p
emUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGUKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAg
ICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKIAotICAgIHJldHVybiB1
bnByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CisgICAgcmV0
dXJuIHVucHJvZmlsZWRNdWwoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CiB9CiAKIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxPcHRpbWl6ZShFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIsIEpJVE11bElDKiBtdWxJQykKQEAgLTI2MTYsNyArMjYwNSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxPcHRpbWl6ZShFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKCiAgICAgZXhlYy0+Y29kZUJsb2NrKCktPmR1bXBNYXRoSUNTdGF0cygp
OwogI2VuZGlmCiAKLSAgICByZXR1cm4gdW5wcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRP
cDEsIGVuY29kZWRPcDIpOworICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRP
cDEsIGVuY29kZWRPcDIpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqIGFyaXRoUHJv
ZmlsZSkKQEAgLTI2MjUsNyArMjYxNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKCiAgICAg
TmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAKICAgICBBU1NFUlQoYXJp
dGhQcm9maWxlKTsKLSAgICByZXR1cm4gcHJvZmlsZWRNdWwoKnZtLCBleGVjLCBlbmNvZGVkT3Ax
LCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlKTsKKyAgICByZXR1cm4gcHJvZmlsZWRNdWwoZXhl
YywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSk7CiB9CiAKIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZE9wdGltaXplKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMiwgSklUTXVsSUMqIG11bElDKQpAQCAtMjY0Myw3ICsyNjMyLDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkT3B0aW1pemUo
RXhlY1N0YXRlKiBleGVjLAogICAgIGV4ZWMtPmNvZGVCbG9jaygpLT5kdW1wTWF0aElDU3RhdHMo
KTsKICNlbmRpZgogCi0gICAgcmV0dXJuIHByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9w
MSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSwgZmFsc2UpOworICAgIHJldHVybiBwcm9maWxl
ZE11bChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlLCBmYWxzZSk7
CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9m
aWxlZE5vT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRNdWxJQyogbXVsSUMpCkBAIC0yNjUzLDcg
KzI2NDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVs
UHJvZmlsZWROb09wdGltaXplKEV4ZWNTdGF0ZSogZXhlYwogCiAgICAgQXJpdGhQcm9maWxlKiBh
cml0aFByb2ZpbGUgPSBtdWxJQy0+YXJpdGhQcm9maWxlKCk7CiAgICAgQVNTRVJUKGFyaXRoUHJv
ZmlsZSk7Ci0gICAgcmV0dXJuIHByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5j
b2RlZE9wMiwgKmFyaXRoUHJvZmlsZSk7CisgICAgcmV0dXJuIHByb2ZpbGVkTXVsKGV4ZWMsIGVu
Y29kZWRPcDEsIGVuY29kZWRPcDIsICphcml0aFByb2ZpbGUpOwogfQogCiBBTFdBWVNfSU5MSU5F
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSB1bnByb2ZpbGVkTmVnYXRlKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wZXJhbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAppbmRleCBlNmMxYTQ0ZDY3ZjQyMTQ1Mjg1
ZmIwZDIwMDc0NWRiY2IzYTdkZjc3Li5lODY5ZGI4ZDhjNDg1N2MyNjUxMWZlMGM0Mjg2OGJkNDMw
NDlmNDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25T
bG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNs
b3dQYXRocy5jcHAKQEAgLTY1LDYgKzY1LDcgQEAKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMu
aCIKICNpbmNsdWRlICJUeXBlUHJvZmlsZXJMb2cuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJp
bnRTdHJlYW0uaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiBuYW1lc3BhY2UgSlNDIHsK
IApAQCAtNDg2LDEwICs0ODcsMjQgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX211bCkKICAg
ICBCRUdJTigpOwogICAgIEpTVmFsdWUgbGVmdCA9IE9QX0MoMikuanNWYWx1ZSgpOwogICAgIEpT
VmFsdWUgcmlnaHQgPSBPUF9DKDMpLmpzVmFsdWUoKTsKLSAgICBkb3VibGUgYSA9IGxlZnQudG9O
dW1iZXIoZXhlYyk7Ci0gICAgaWYgKFVOTElLRUxZKHRocm93U2NvcGUuZXhjZXB0aW9uKCkpKQot
ICAgICAgICBSRVRVUk4oSlNWYWx1ZSgpKTsKLSAgICBkb3VibGUgYiA9IHJpZ2h0LnRvTnVtYmVy
KGV4ZWMpOworICAgIFZhcmlhbnQ8SlNCaWdJbnQqLCBkb3VibGU+IGxlZnROdW1lcmljID0gbGVm
dC50b051bWVyaWMoZXhlYyk7CisgICAgQ0hFQ0tfRVhDRVBUSU9OKCk7CisgICAgVmFyaWFudDxK
U0JpZ0ludCosIGRvdWJsZT4gcmlnaHROdW1lcmljID0gcmlnaHQudG9OdW1lcmljKGV4ZWMpOwor
ICAgIENIRUNLX0VYQ0VQVElPTigpOworICAgIAorICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0
aXZlPEpTQmlnSW50Kj4obGVmdE51bWVyaWMpIHx8IFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8SlNC
aWdJbnQqPihyaWdodE51bWVyaWMpKSB7CisgICAgICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0
aXZlPEpTQmlnSW50Kj4obGVmdE51bWVyaWMpICYmIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8SlNC
aWdJbnQqPihyaWdodE51bWVyaWMpKSB7CisgICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdChKU0Jp
Z0ludDo6bXVsdGlwbHkoZXhlYywgV1RGOjpnZXQ8SlNCaWdJbnQqPihsZWZ0TnVtZXJpYyksIFdU
Rjo6Z2V0PEpTQmlnSW50Kj4ocmlnaHROdW1lcmljKSkpOworICAgICAgICAgICAgUkVUVVJOX1dJ
VEhfUFJPRklMSU5HKHJlc3VsdCwgeworICAgICAgICAgICAgICAgIHVwZGF0ZUFyaXRoUHJvZmls
ZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJlc3VsdCwgbGVmdCwgcmlnaHQpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBUSFJPVyhjcmVhdGVUeXBlRXJyb3IoZXhl
YywgIkludmFsaWQgbWl4IG9mIEJpZ0ludCBhbmQgb3RoZXIgdHlwZSBpbiBtdWx0aXBsaWNhdGlv
bi4iKSk7CisgICAgfQorCisgICAgZG91YmxlIGEgPSBXVEY6OmdldDxkb3VibGU+KGxlZnROdW1l
cmljKTsKKyAgICBkb3VibGUgYiA9IFdURjo6Z2V0PGRvdWJsZT4ocmlnaHROdW1lcmljKTsKICAg
ICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEgKiBiKTsKICAgICBSRVRVUk5fV0lUSF9QUk9G
SUxJTkcocmVzdWx0LCB7CiAgICAgICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvckJpbmFyeUFyaXRo
T3AoZXhlYywgcGMsIHJlc3VsdCwgbGVmdCwgcmlnaHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCaWdJbnQuY3BwCmluZGV4IGM1MWM4YjIxMGQ5M2MxN2Y5NjQwMGVmZTc3ZGFh
NjcyYTI1OWE2ZDMuLjkxOTdiOWExYTQ0ZGM1MTEyNzAyZGE3OGExODg5ODA3OGYyZDY0OWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAKQEAgLTY5LDcgKzY5
LDcgQEAgdm9pZCBKU0JpZ0ludDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNp
dG9yJiB2aXNpdG9yKQogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRv
cik7CiB9CiAKLUpTQmlnSW50OjpKU0JpZ0ludChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBpbnQgbGVuZ3RoKQorSlNCaWdJbnQ6OkpTQmlnSW50KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIHVuc2lnbmVkIGxlbmd0aCkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKICAgICAs
IG1fbGVuZ3RoKGxlbmd0aCkKIHsgfQpAQCAtOTMsMTMgKzkzLDEzIEBAIEpTQmlnSW50KiBKU0Jp
Z0ludDo6Y3JlYXRlWmVybyhWTSYgdm0pCiAgICAgcmV0dXJuIHplcm9CaWdJbnQ7CiB9CiAKLXNp
emVfdCBKU0JpZ0ludDo6YWxsb2NhdGlvblNpemUoaW50IGxlbmd0aCkKK3NpemVfdCBKU0JpZ0lu
dDo6YWxsb2NhdGlvblNpemUodW5zaWduZWQgbGVuZ3RoKQogewogICAgIHNpemVfdCBzaXplV2l0
aFBhZGRpbmcgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8c2l6ZW9mKHNpemVfdCk+KHNpemVv
ZihKU0JpZ0ludCkpOwogICAgIHJldHVybiBzaXplV2l0aFBhZGRpbmcgKyBsZW5ndGggKiBzaXpl
b2YoRGlnaXQpOwogfQogCi1KU0JpZ0ludCogSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGgoVk0m
IHZtLCBpbnQgbGVuZ3RoKQorSlNCaWdJbnQqIEpTQmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoKFZN
JiB2bSwgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIEpTQmlnSW50KiBiaWdJbnQgPSBuZXcgKE5v
dE51bGwsIGFsbG9jYXRlQ2VsbDxKU0JpZ0ludD4odm0uaGVhcCwgYWxsb2NhdGlvblNpemUobGVu
Z3RoKSkpIEpTQmlnSW50KHZtLCB2bS5iaWdJbnRTdHJ1Y3R1cmUuZ2V0KCksIGxlbmd0aCk7CiAg
ICAgYmlnSW50LT5maW5pc2hDcmVhdGlvbih2bSk7CkBAIC0yMjMsNyArMjIzLDcgQEAgSlNCaWdJ
bnQqIEpTQmlnSW50OjpwYXJzZUludChFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0sIFN0cmluZ1Zp
ZXcgcywgdWludDhfdCByYWQKICAgICByZXR1cm4gcGFyc2VJbnQoc3RhdGUsIHZtLCBzLmNoYXJh
Y3RlcnMxNigpLCBzLmxlbmd0aCgpLCAwLCByYWRpeCwgZmFsc2UpOwogfQogCi1TdHJpbmcgSlNC
aWdJbnQ6OnRvU3RyaW5nKEV4ZWNTdGF0ZSYgc3RhdGUsIGludCByYWRpeCkKK1N0cmluZyBKU0Jp
Z0ludDo6dG9TdHJpbmcoRXhlY1N0YXRlJiBzdGF0ZSwgdW5zaWduZWQgcmFkaXgpCiB7CiAgICAg
aWYgKHRoaXMtPmlzWmVybygpKQogICAgICAgICByZXR1cm4gc3RhdGUudm0oKS5zbWFsbFN0cmlu
Z3Muc2luZ2xlQ2hhcmFjdGVyU3RyaW5nUmVwKCcwJyk7CkBAIC0yNDYsNiArMjQ2LDI2IEBAIHZv
aWQgSlNCaWdJbnQ6OmlucGxhY2VNdWx0aXBseUFkZCh1aW50cHRyX3QgZmFjdG9yLCB1aW50cHRy
X3Qgc3VtbWFuZCkKICAgICBpbnRlcm5hbE11bHRpcGx5QWRkKHRoaXMsIGZhY3Rvciwgc3VtbWFu
ZCwgbGVuZ3RoKCksIHRoaXMpOwogfQogCitKU0JpZ0ludCogSlNCaWdJbnQ6Om11bHRpcGx5KEV4
ZWNTdGF0ZSogc3RhdGUsIEpTQmlnSW50KiB4LCBKU0JpZ0ludCogeSkKK3sKKyAgICBWTSYgdm0g
PSBzdGF0ZS0+dm0oKTsKKworICAgIGlmICh4LT5pc1plcm8oKSkKKyAgICAgICAgcmV0dXJuIHg7
CisgICAgaWYgKHktPmlzWmVybygpKQorICAgICAgICByZXR1cm4geTsKKworICAgIHVuc2lnbmVk
IHJlc3VsdExlbmd0aCA9IHgtPmxlbmd0aCgpICsgeS0+bGVuZ3RoKCk7CisgICAgSlNCaWdJbnQq
IHJlc3VsdCA9IEpTQmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoKHZtLCByZXN1bHRMZW5ndGgpOwor
ICAgIHJlc3VsdC0+aW5pdGlhbGl6ZShJbml0aWFsaXphdGlvblR5cGU6OldpdGhaZXJvKTsKKwor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB4LT5sZW5ndGgoKTsgaSsrKQorICAgICAgICBt
dWx0aXBseUFjY3VtdWxhdGUoeSwgeC0+ZGlnaXQoaSksIHJlc3VsdCwgaSk7CisKKyAgICByZXN1
bHQtPnNldFNpZ24oeC0+c2lnbigpICE9IHktPnNpZ24oKSk7CisgICAgcmV0dXJuIHJlc3VsdC0+
cmlnaHRUcmltKHZtKTsKK30KKwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAjZGVmaW5lIEhBVkVf
VFdPX0RJR0lUIDEKIHR5cGVkZWYgdWludDY0X3QgVHdvRGlnaXQ7CkBAIC0zNzgsOSArMzk4LDkg
QEAgSlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdERpdihEaWdpdCBoaWdoLCBEaWdpdCBs
b3csIERpZ2l0IGRpdmlzb3IsIERpZ2l0JgogICAgIHN0YXRpYyBjb25zdCBEaWdpdCBrSGFsZkRp
Z2l0QmFzZSA9IDF1bGwgPDwgaGFsZkRpZ2l0Qml0czsKICAgICAvLyBBZGFwdGVkIGZyb20gV2Fy
cmVuLCBIYWNrZXIncyBEZWxpZ2h0LCBwLiAxNTIuCiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICBp
bnQgcyA9IGNsejY0KGRpdmlzb3IpOworICAgIHVuc2lnbmVkIHMgPSBjbHo2NChkaXZpc29yKTsK
ICNlbHNlCi0gICAgaW50IHMgPSBjbHozMihkaXZpc29yKTsKKyAgICB1bnNpZ25lZCBzID0gY2x6
MzIoZGl2aXNvcik7CiAjZW5kaWYKICAgICBkaXZpc29yIDw8PSBzOwogICAgIApAQCAtNDIzLDE0
ICs0NDMsMTQgQEAgSlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdERpdihEaWdpdCBoaWdo
LCBEaWdpdCBsb3csIERpZ2l0IGRpdmlzb3IsIERpZ2l0JgogCiAvLyBNdWx0aXBsaWVzIHtzb3Vy
Y2V9IHdpdGgge2ZhY3Rvcn0gYW5kIGFkZHMge3N1bW1hbmR9IHRvIHRoZSByZXN1bHQuCiAvLyB7
cmVzdWx0fSBhbmQge3NvdXJjZX0gbWF5IGJlIHRoZSBzYW1lIEJpZ0ludCBmb3IgaW5wbGFjZSBt
b2RpZmljYXRpb24uCi12b2lkIEpTQmlnSW50OjppbnRlcm5hbE11bHRpcGx5QWRkKEpTQmlnSW50
KiBzb3VyY2UsIERpZ2l0IGZhY3RvciwgRGlnaXQgc3VtbWFuZCwgaW50IG4sIEpTQmlnSW50KiBy
ZXN1bHQpCit2b2lkIEpTQmlnSW50OjppbnRlcm5hbE11bHRpcGx5QWRkKEpTQmlnSW50KiBzb3Vy
Y2UsIERpZ2l0IGZhY3RvciwgRGlnaXQgc3VtbWFuZCwgdW5zaWduZWQgbiwgSlNCaWdJbnQqIHJl
c3VsdCkKIHsKICAgICBBU1NFUlQoc291cmNlLT5sZW5ndGgoKSA+PSBuKTsKICAgICBBU1NFUlQo
cmVzdWx0LT5sZW5ndGgoKSA+PSBuKTsKIAogICAgIERpZ2l0IGNhcnJ5ID0gc3VtbWFuZDsKICAg
ICBEaWdpdCBoaWdoID0gMDsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgeworICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgRGlnaXQgY3VycmVu
dCA9IHNvdXJjZS0+ZGlnaXQoaSk7CiAgICAgICAgIERpZ2l0IG5ld0NhcnJ5ID0gMDsKIApAQCAt
NDU4LDYgKzQ3OCw0OSBAQCB2b2lkIEpTQmlnSW50OjppbnRlcm5hbE11bHRpcGx5QWRkKEpTQmln
SW50KiBzb3VyY2UsIERpZ2l0IGZhY3RvciwgRGlnaXQgc3VtbWFuZAogICAgICAgICBBU1NFUlQo
IShjYXJyeSArIGhpZ2gpKTsKIH0KIAorLy8gTXVsdGlwbGllcyB7bXVsdGlwbGljYW5kfSB3aXRo
IHttdWx0aXBsaWVyfSBhbmQgYWRkcyB0aGUgcmVzdWx0IHRvCisvLyB7YWNjdW11bGF0b3J9LCBz
dGFydGluZyBhdCB7YWNjdW11bGF0b3JJbmRleH0gZm9yIHRoZSBsZWFzdC1zaWduaWZpY2FudAor
Ly8gZGlnaXQuCisvLyBDYWxsZXJzIG11c3QgZW5zdXJlIHRoYXQge2FjY3VtdWxhdG9yfSBpcyBi
aWcgZW5vdWdoIHRvIGhvbGQgdGhlIHJlc3VsdC4KK3ZvaWQgSlNCaWdJbnQ6Om11bHRpcGx5QWNj
dW11bGF0ZShKU0JpZ0ludCogbXVsdGlwbGljYW5kLCBEaWdpdCBtdWx0aXBsaWVyLCBKU0JpZ0lu
dCogYWNjdW11bGF0b3IsIHVuc2lnbmVkIGFjY3VtdWxhdG9ySW5kZXgpCit7CisgICAgQVNTRVJU
KGFjY3VtdWxhdG9yLT5sZW5ndGgoKSA+IG11bHRpcGxpY2FuZC0+bGVuZ3RoKCkgKyBhY2N1bXVs
YXRvckluZGV4KTsKKyAgICBpZiAoIW11bHRpcGxpZXIpCisgICAgICAgIHJldHVybjsKKyAgICAK
KyAgICBEaWdpdCBjYXJyeSA9IDA7CisgICAgRGlnaXQgaGlnaCA9IDA7CisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG11bHRpcGxpY2FuZC0+bGVuZ3RoKCk7IGkrKywgYWNjdW11bGF0b3JJ
bmRleCsrKSB7CisgICAgICAgIERpZ2l0IGFjYyA9IGFjY3VtdWxhdG9yLT5kaWdpdChhY2N1bXVs
YXRvckluZGV4KTsKKyAgICAgICAgRGlnaXQgbmV3Q2FycnkgPSAwOworICAgICAgICAKKyAgICAg
ICAgLy8gQWRkIGxhc3Qgcm91bmQncyBjYXJyeW92ZXJzLgorICAgICAgICBhY2MgPSBkaWdpdEFk
ZChhY2MsIGhpZ2gsIG5ld0NhcnJ5KTsKKyAgICAgICAgYWNjID0gZGlnaXRBZGQoYWNjLCBjYXJy
eSwgbmV3Q2FycnkpOworICAgICAgICAKKyAgICAgICAgLy8gQ29tcHV0ZSB0aGlzIHJvdW5kJ3Mg
bXVsdGlwbGljYXRpb24uCisgICAgICAgIERpZ2l0IG11bHRpcGxpY2FuZERpZ2l0ID0gbXVsdGlw
bGljYW5kLT5kaWdpdChpKTsKKyAgICAgICAgRGlnaXQgbG93ID0gZGlnaXRNdWwobXVsdGlwbGll
ciwgbXVsdGlwbGljYW5kRGlnaXQsIGhpZ2gpOworICAgICAgICBhY2MgPSBkaWdpdEFkZChhY2Ms
IGxvdywgbmV3Q2FycnkpOworICAgICAgICAKKyAgICAgICAgLy8gU3RvcmUgcmVzdWx0IGFuZCBw
cmVwYXJlIGZvciBuZXh0IHJvdW5kLgorICAgICAgICBhY2N1bXVsYXRvci0+c2V0RGlnaXQoYWNj
dW11bGF0b3JJbmRleCwgYWNjKTsKKyAgICAgICAgY2FycnkgPSBuZXdDYXJyeTsKKyAgICB9Cisg
ICAgCisgICAgd2hpbGUgKGNhcnJ5IHx8IGhpZ2gpIHsKKyAgICAgICAgQVNTRVJUKGFjY3VtdWxh
dG9ySW5kZXggPCBhY2N1bXVsYXRvci0+bGVuZ3RoKCkpOworICAgICAgICBEaWdpdCBhY2MgPSBh
Y2N1bXVsYXRvci0+ZGlnaXQoYWNjdW11bGF0b3JJbmRleCk7CisgICAgICAgIERpZ2l0IG5ld0Nh
cnJ5ID0gMDsKKyAgICAgICAgYWNjID0gZGlnaXRBZGQoYWNjLCBoaWdoLCBuZXdDYXJyeSk7Cisg
ICAgICAgIGhpZ2ggPSAwOworICAgICAgICBhY2MgPSBkaWdpdEFkZChhY2MsIGNhcnJ5LCBuZXdD
YXJyeSk7CisgICAgICAgIGFjY3VtdWxhdG9yLT5zZXREaWdpdChhY2N1bXVsYXRvckluZGV4LCBh
Y2MpOworICAgICAgICBjYXJyeSA9IG5ld0NhcnJ5OworICAgICAgICBhY2N1bXVsYXRvckluZGV4
Kys7CisgICAgfQorfQorCiBib29sIEpTQmlnSW50OjplcXVhbHMoSlNCaWdJbnQqIHgsIEpTQmln
SW50KiB5KQogewogICAgIGlmICh4LT5zaWduKCkgIT0geS0+c2lnbigpKQpAQCAtNDY2LDcgKzUy
OSw3IEBAIGJvb2wgSlNCaWdJbnQ6OmVxdWFscyhKU0JpZ0ludCogeCwgSlNCaWdJbnQqIHkpCiAg
ICAgaWYgKHgtPmxlbmd0aCgpICE9IHktPmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHgtPmxlbmd0aCgpOyBpKyspIHsKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgeC0+bGVuZ3RoKCk7IGkrKykgewogICAgICAgICBpZiAoeC0+
ZGlnaXQoaSkgIT0geS0+ZGlnaXQoaSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQpAQCAtNDk0LDcgKzU1Nyw3IEBAIHZvaWQgSlNCaWdJbnQ6OmFic29sdXRlRGl2U21hbGwoRXhl
Y1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQqIHgsIERpZ2l0IGRpdmlzb3IsIEpTCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBpbnQgbGVuZ3RoID0geC0+bGVuZ3RoKCk7CisgICAgdW5zaWdu
ZWQgbGVuZ3RoID0geC0+bGVuZ3RoKCk7CiAgICAgaWYgKHF1b3RpZW50ICE9IG51bGxwdHIpIHsK
ICAgICAgICAgaWYgKCpxdW90aWVudCA9PSBudWxscHRyKQogICAgICAgICAgICAgKnF1b3RpZW50
ID0gSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGgodm0sIGxlbmd0aCk7CkBAIC01MjEsMTQgKzU4
NCwxNCBAQCBjb25zdGV4cHIgdWludDhfdCBtYXhCaXRzUGVyQ2hhclRhYmxlW10gPSB7CiAgICAg
MTYyLCAxNjMsIDE2NSwgMTY2LCAgICAgICAgICAgICAgICAgICAgICAgICAvLyAzMy4uMzYKIH07
CiAKLXN0YXRpYyBjb25zdCBpbnQgYml0c1BlckNoYXJUYWJsZVNoaWZ0ID0gNTsKK3N0YXRpYyBj
b25zdCB1bnNpZ25lZCBiaXRzUGVyQ2hhclRhYmxlU2hpZnQgPSA1Owogc3RhdGljIGNvbnN0IHNp
emVfdCBiaXRzUGVyQ2hhclRhYmxlTXVsdGlwbGllciA9IDF1IDw8IGJpdHNQZXJDaGFyVGFibGVT
aGlmdDsKIAogLy8gQ29tcHV0ZSAoYW4gb3ZlcmFwcHJveGltYXRpb24gb2YpIHRoZSBsZW5ndGgg
b2YgdGhlIHJlc3VsdGluZyBzdHJpbmc6CiAvLyBEaXZpZGUgYml0IGxlbmd0aCBvZiB0aGUgQmln
SW50IGJ5IGJpdHMgcmVwcmVzZW50YWJsZSBwZXIgY2hhcmFjdGVyLgotdWludDY0X3QgSlNCaWdJ
bnQ6OmNhbGN1bGF0ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQoaW50IGxlbmd0aCwgaW50IHJh
ZGl4LCBEaWdpdCBsYXN0RGlnaXQsIGJvb2wgc2lnbikKK3VpbnQ2NF90IEpTQmlnSW50OjpjYWxj
dWxhdGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQg
cmFkaXgsIERpZ2l0IGxhc3REaWdpdCwgYm9vbCBzaWduKQogewotICAgIGludCBsZWFkaW5nWmVy
b3M7CisgICAgdW5zaWduZWQgbGVhZGluZ1plcm9zOwogICAgIGlmIChzaXplb2YobGFzdERpZ2l0
KSA9PSA4KQogICAgICAgICBsZWFkaW5nWmVyb3MgPSBjbHo2NChsYXN0RGlnaXQpOwogICAgIGVs
c2UKQEAgLTU1Niw3ICs2MTksNyBAQCB1aW50NjRfdCBKU0JpZ0ludDo6Y2FsY3VsYXRlTWF4aW11
bUNoYXJhY3RlcnNSZXF1aXJlZChpbnQgbGVuZ3RoLCBpbnQgcmFkaXgsIERpZwogICAgIHJldHVy
biBtYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkOwogfQogCi1TdHJpbmcgSlNCaWdJbnQ6OnRvU3Ry
aW5nR2VuZXJpYyhFeGVjU3RhdGUmIHN0YXRlLCBKU0JpZ0ludCogeCwgaW50IHJhZGl4KQorU3Ry
aW5nIEpTQmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQq
IHgsIHVuc2lnbmVkIHJhZGl4KQogewogICAgIC8vIEZJWE1FOiBbSlNDXSBSZXZpc2l0IHVzYWdl
IG9mIFN0cmluZ1ZlY3RvciBpbnRvIEpTQmlnSW50Ojp0b1N0cmluZwogICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA2NwpAQCAtNTY1LDcgKzYyOCw3IEBA
IFN0cmluZyBKU0JpZ0ludDo6dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmln
SW50KiB4LCBpbnQgcmFkaXgpCiAgICAgQVNTRVJUKHJhZGl4ID49IDIgJiYgcmFkaXggPD0gMzYp
OwogICAgIEFTU0VSVCgheC0+aXNaZXJvKCkpOwogCi0gICAgaW50IGxlbmd0aCA9IHgtPmxlbmd0
aCgpOworICAgIHVuc2lnbmVkIGxlbmd0aCA9IHgtPmxlbmd0aCgpOwogICAgIGJvb2wgc2lnbiA9
IHgtPnNpZ24oKTsKIAogICAgIHVpbnQ4X3QgbWF4Qml0c1BlckNoYXIgPSBtYXhCaXRzUGVyQ2hh
clRhYmxlW3JhZGl4XTsKQEAgLTU4MSwxMiArNjQ0LDEyIEBAIFN0cmluZyBKU0JpZ0ludDo6dG9T
dHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCBpbnQgcmFkaXgpCiAg
ICAgaWYgKGxlbmd0aCA9PSAxKQogICAgICAgICBsYXN0RGlnaXQgPSB4LT5kaWdpdCgwKTsKICAg
ICBlbHNlIHsKLSAgICAgICAgaW50IGNodW5rQ2hhcnMgPSBkaWdpdEJpdHMgKiBiaXRzUGVyQ2hh
clRhYmxlTXVsdGlwbGllciAvIG1heEJpdHNQZXJDaGFyOworICAgICAgICB1bnNpZ25lZCBjaHVu
a0NoYXJzID0gZGlnaXRCaXRzICogYml0c1BlckNoYXJUYWJsZU11bHRpcGxpZXIgLyBtYXhCaXRz
UGVyQ2hhcjsKICAgICAgICAgRGlnaXQgY2h1bmtEaXZpc29yID0gZGlnaXRQb3cocmFkaXgsIGNo
dW5rQ2hhcnMpOwogCiAgICAgICAgIC8vIEJ5IGNvbnN0cnVjdGlvbiBvZiBjaHVua0NoYXJzLCB0
aGVyZSBjYW4ndCBoYXZlIGJlZW4gb3ZlcmZsb3cuCiAgICAgICAgIEFTU0VSVChjaHVua0Rpdmlz
b3IpOwotICAgICAgICBpbnQgbm9uWmVyb0RpZ2l0ID0gbGVuZ3RoIC0gMTsKKyAgICAgICAgdW5z
aWduZWQgbm9uWmVyb0RpZ2l0ID0gbGVuZ3RoIC0gMTsKICAgICAgICAgQVNTRVJUKHgtPmRpZ2l0
KG5vblplcm9EaWdpdCkpOwogCiAgICAgICAgIC8vIHtyZXN0fSBob2xkcyB0aGUgcGFydCBvZiB0
aGUgQmlnSW50IHRoYXQgd2UgaGF2ZW4ndCBsb29rZWQgYXQgeWV0LgpAQCAtNjAyLDcgKzY2NSw3
IEBAIFN0cmluZyBKU0JpZ0ludDo6dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpT
QmlnSW50KiB4LCBpbnQgcmFkaXgpCiAgICAgICAgICAgICBBU1NFUlQocmVzdCk7CiAKICAgICAg
ICAgICAgIGRpdmlkZW5kID0gJnJlc3Q7Ci0gICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8
IGNodW5rQ2hhcnM7IGkrKykgeworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGNodW5rQ2hhcnM7IGkrKykgewogICAgICAgICAgICAgICAgIHJlc3VsdFN0cmluZy5hcHBlbmQo
cmFkaXhEaWdpdHNbY2h1bmsgJSByYWRpeF0pOwogICAgICAgICAgICAgICAgIGNodW5rIC89IHJh
ZGl4OwogICAgICAgICAgICAgfQpAQCAtNjI3LDcgKzY5MCw3IEBAIFN0cmluZyBKU0JpZ0ludDo6
dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCBpbnQgcmFkaXgp
CiAgICAgQVNTRVJUKHJlc3VsdFN0cmluZy5zaXplKCkgPD0gc3RhdGljX2Nhc3Q8c2l6ZV90Piht
YXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKSk7CiAKICAgICAvLyBSZW1vdmUgbGVhZGluZyB6ZXJv
ZXMuCi0gICAgaW50IG5ld1NpemVOb0xlYWRpbmdaZXJvZXMgPSByZXN1bHRTdHJpbmcuc2l6ZSgp
OworICAgIHVuc2lnbmVkIG5ld1NpemVOb0xlYWRpbmdaZXJvZXMgPSByZXN1bHRTdHJpbmcuc2l6
ZSgpOwogICAgIHdoaWxlIChuZXdTaXplTm9MZWFkaW5nWmVyb2VzICA+IDEgJiYgcmVzdWx0U3Ry
aW5nW25ld1NpemVOb0xlYWRpbmdaZXJvZXMgLSAxXSA9PSAnMCcpCiAgICAgICAgIG5ld1NpemVO
b0xlYWRpbmdaZXJvZXMtLTsKIApAQCAtNjQ2LDE0ICs3MDksMTYgQEAgSlNCaWdJbnQqIEpTQmln
SW50OjpyaWdodFRyaW0oVk0mIHZtKQogICAgIGlmIChpc1plcm8oKSkKICAgICAgICAgcmV0dXJu
IHRoaXM7CiAKKyAgICBBU1NFUlQobV9sZW5ndGgpOworCiAgICAgaW50IG5vblplcm9JbmRleCA9
IG1fbGVuZ3RoIC0gMTsKICAgICB3aGlsZSAobm9uWmVyb0luZGV4ID49IDAgJiYgIWRpZ2l0KG5v
blplcm9JbmRleCkpCiAgICAgICAgIG5vblplcm9JbmRleC0tOwogCi0gICAgaWYgKG5vblplcm9J
bmRleCA9PSBtX2xlbmd0aCAtIDEpCisgICAgaWYgKG5vblplcm9JbmRleCA9PSBzdGF0aWNfY2Fz
dDxpbnQ+KG1fbGVuZ3RoIC0gMSkpCiAgICAgICAgIHJldHVybiB0aGlzOwogCi0gICAgaW50IG5l
d0xlbmd0aCA9IG5vblplcm9JbmRleCArIDE7CisgICAgdW5zaWduZWQgbmV3TGVuZ3RoID0gbm9u
WmVyb0luZGV4ICsgMTsKICAgICBKU0JpZ0ludCogdHJpbW1lZEJpZ0ludCA9IGNyZWF0ZVdpdGhM
ZW5ndGgodm0sIG5ld0xlbmd0aCk7CiAgICAgUkVMRUFTRV9BU1NFUlQodHJpbW1lZEJpZ0ludCk7
CiAgICAgc3RkOjpjb3B5KGRhdGFTdG9yYWdlKCksIGRhdGFTdG9yYWdlKCkgKyBuZXdMZW5ndGgs
IHRyaW1tZWRCaWdJbnQtPmRhdGFTdG9yYWdlKCkpOyAKQEAgLTY2MywxNCArNzI4LDE0IEBAIEpT
QmlnSW50KiBKU0JpZ0ludDo6cmlnaHRUcmltKFZNJiB2bSkKICAgICByZXR1cm4gdHJpbW1lZEJp
Z0ludDsKIH0KIAotSlNCaWdJbnQqIEpTQmlnSW50OjphbGxvY2F0ZUZvcihFeGVjU3RhdGUqIHN0
YXRlLCBWTSYgdm0sIGludCByYWRpeCwgaW50IGNoYXJjb3VudCkKK0pTQmlnSW50KiBKU0JpZ0lu
dDo6YWxsb2NhdGVGb3IoRXhlY1N0YXRlKiBzdGF0ZSwgVk0mIHZtLCB1bnNpZ25lZCByYWRpeCwg
dW5zaWduZWQgY2hhcmNvdW50KQogewogICAgIEFTU0VSVCgyIDw9IHJhZGl4ICYmIHJhZGl4IDw9
IDM2KTsKICAgICBBU1NFUlQoY2hhcmNvdW50ID49IDApOwogCiAgICAgc2l6ZV90IGJpdHNQZXJD
aGFyID0gbWF4Qml0c1BlckNoYXJUYWJsZVtyYWRpeF07CiAgICAgc2l6ZV90IGNoYXJzID0gY2hh
cmNvdW50OwotICAgIGNvbnN0IGludCByb3VuZHVwID0gYml0c1BlckNoYXJUYWJsZU11bHRpcGxp
ZXIgLSAxOworICAgIGNvbnN0IHVuc2lnbmVkIHJvdW5kdXAgPSBiaXRzUGVyQ2hhclRhYmxlTXVs
dGlwbGllciAtIDE7CiAgICAgaWYgKGNoYXJzIDw9IChzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVf
dD46Om1heCgpIC0gcm91bmR1cCkgLyBiaXRzUGVyQ2hhcikgewogICAgICAgICBzaXplX3QgYml0
c01pbiA9IGJpdHNQZXJDaGFyICogY2hhcnM7CiAKQEAgLTY3OCw3ICs3NDMsNyBAQCBKU0JpZ0lu
dCogSlNCaWdJbnQ6OmFsbG9jYXRlRm9yKEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgaW50IHJh
ZGl4LCBpbnQgY2hhcmNvdQogICAgICAgICBiaXRzTWluID0gKGJpdHNNaW4gKyByb3VuZHVwKSA+
PiBiaXRzUGVyQ2hhclRhYmxlU2hpZnQ7CiAgICAgICAgIGlmIChiaXRzTWluIDw9IHN0YXRpY19j
YXN0PHNpemVfdD4obWF4SW50KSkgewogICAgICAgICAgICAgLy8gRGl2aWRlIGJ5IGtEaWdpdHNC
aXRzLCByb3VuZGluZyB1cC4KLSAgICAgICAgICAgIGludCBsZW5ndGggPSAoc3RhdGljX2Nhc3Q8
aW50PihiaXRzTWluKSArIGRpZ2l0Qml0cyAtIDEpIC8gZGlnaXRCaXRzOworICAgICAgICAgICAg
dW5zaWduZWQgbGVuZ3RoID0gKGJpdHNNaW4gKyBkaWdpdEJpdHMgLSAxKSAvIGRpZ2l0Qml0czsK
ICAgICAgICAgICAgIGlmIChsZW5ndGggPD0gbWF4TGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAg
SlNCaWdJbnQqIHJlc3VsdCA9IEpTQmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoKHZtLCBsZW5ndGgp
OwogICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC03MTksMTEgKzc4NCwxMSBAQCBz
aXplX3QgSlNCaWdJbnQ6Om9mZnNldE9mRGF0YSgpCiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBD
aGFyVHlwZT4KLUpTQmlnSW50KiBKU0JpZ0ludDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwg
Q2hhclR5cGUqICBkYXRhLCBpbnQgbGVuZ3RoKQorSlNCaWdJbnQqIEpTQmlnSW50OjpwYXJzZUlu
dChFeGVjU3RhdGUqIHN0YXRlLCBDaGFyVHlwZSogIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsK
ICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKIAotICAgIGludCBwID0gMDsKKyAgICB1bnNpZ25l
ZCBwID0gMDsKICAgICB3aGlsZSAocCA8IGxlbmd0aCAmJiBpc1N0cldoaXRlU3BhY2UoZGF0YVtw
XSkpCiAgICAgICAgICsrcDsKIApAQCAtNzU4LDEwICs4MjMsMTAgQEAgSlNCaWdJbnQqIEpTQmln
SW50OjpwYXJzZUludChFeGVjU3RhdGUqIHN0YXRlLCBDaGFyVHlwZSogIGRhdGEsIGludCBsZW5n
dGgpCiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLUpTQmlnSW50KiBKU0JpZ0lu
dDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwgVk0mIHZtLCBDaGFyVHlwZSogZGF0YSwgaW50
IGxlbmd0aCwgaW50IHN0YXJ0SW5kZXgsIGludCByYWRpeCwgYm9vbCBhbGxvd0VtcHR5U3RyaW5n
KQorSlNCaWdJbnQqIEpTQmlnSW50OjpwYXJzZUludChFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0s
IENoYXJUeXBlKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkIHN0YXJ0SW5kZXgsIHVu
c2lnbmVkIHJhZGl4LCBib29sIGFsbG93RW1wdHlTdHJpbmcpCiB7CiAgICAgQVNTRVJUKGxlbmd0
aCA+PSAwKTsKLSAgICBpbnQgcCA9IHN0YXJ0SW5kZXg7CisgICAgdW5zaWduZWQgcCA9IHN0YXJ0
SW5kZXg7CiAKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKQEAg
LTc3Nyw3ICs4NDIsNyBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0ZSog
c3RhdGUsIFZNJiB2bSwgQ2hhclR5cGUqIGRhdGEsIGludCBsZW5ndAogCiAgICAgaW50IGVuZElu
ZGV4ID0gbGVuZ3RoIC0gMTsKICAgICAvLyBSZW1vdmluZyB0cmFpbGluZyBzcGFjZXMKLSAgICB3
aGlsZSAoZW5kSW5kZXggPj0gcCAmJiBpc1N0cldoaXRlU3BhY2UoZGF0YVtlbmRJbmRleF0pKQor
ICAgIHdoaWxlIChlbmRJbmRleCA+PSBzdGF0aWNfY2FzdDxpbnQ+KHApICYmIGlzU3RyV2hpdGVT
cGFjZShkYXRhW2VuZEluZGV4XSkpCiAgICAgICAgIC0tZW5kSW5kZXg7CiAKICAgICBsZW5ndGgg
PSBlbmRJbmRleCArIDE7CkBAIC03ODUsMTYgKzg1MCwxNiBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6
OnBhcnNlSW50KEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgQ2hhclR5cGUqIGRhdGEsIGludCBs
ZW5ndAogICAgIGlmIChwID09IGxlbmd0aCkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVplcm8odm0p
OwogCi0gICAgaW50IGxpbWl0MCA9ICcwJyArIChyYWRpeCA8IDEwID8gcmFkaXggOiAxMCk7Ci0g
ICAgaW50IGxpbWl0YSA9ICdhJyArIChyYWRpeCAtIDEwKTsKLSAgICBpbnQgbGltaXRBID0gJ0En
ICsgKHJhZGl4IC0gMTApOworICAgIHVuc2lnbmVkIGxpbWl0MCA9ICcwJyArIChyYWRpeCA8IDEw
ID8gcmFkaXggOiAxMCk7CisgICAgdW5zaWduZWQgbGltaXRhID0gJ2EnICsgKHJhZGl4IC0gMTAp
OworICAgIHVuc2lnbmVkIGxpbWl0QSA9ICdBJyArIChyYWRpeCAtIDEwKTsKIAogICAgIEpTQmln
SW50KiByZXN1bHQgPSBhbGxvY2F0ZUZvcihzdGF0ZSwgdm0sIHJhZGl4LCBsZW5ndGggLSBwKTsK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAogICAgIHJlc3VsdC0+
aW5pdGlhbGl6ZShJbml0aWFsaXphdGlvblR5cGU6OldpdGhaZXJvKTsKIAotICAgIGZvciAoaW50
IGkgPSBwOyBpIDwgbGVuZ3RoOyBpKyssIHArKykgeworICAgIGZvciAodW5zaWduZWQgaSA9IHA7
IGkgPCBsZW5ndGg7IGkrKywgcCsrKSB7CiAgICAgICAgIHVpbnQzMl90IGRpZ2l0OwogICAgICAg
ICBpZiAoZGF0YVtpXSA+PSAnMCcgJiYgZGF0YVtpXSA8IGxpbWl0MCkKICAgICAgICAgICAgIGRp
Z2l0ID0gZGF0YVtpXSAtICcwJzsKQEAgLTgyMiwxMyArODg3LDEzIEBAIEpTQmlnSW50OjpEaWdp
dCogSlNCaWdJbnQ6OmRhdGFTdG9yYWdlKCkKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxE
aWdpdCo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHRoaXMpICsgb2Zmc2V0T2ZEYXRhKCkpOwog
fQogCi1KU0JpZ0ludDo6RGlnaXQgSlNCaWdJbnQ6OmRpZ2l0KGludCBuKQorSlNCaWdJbnQ6OkRp
Z2l0IEpTQmlnSW50OjpkaWdpdCh1bnNpZ25lZCBuKQogewogICAgIEFTU0VSVChuID49IDAgJiYg
biA8IGxlbmd0aCgpKTsKICAgICByZXR1cm4gZGF0YVN0b3JhZ2UoKVtuXTsKIH0KIAotdm9pZCBK
U0JpZ0ludDo6c2V0RGlnaXQoaW50IG4sIERpZ2l0IHZhbHVlKQordm9pZCBKU0JpZ0ludDo6c2V0
RGlnaXQodW5zaWduZWQgbiwgRGlnaXQgdmFsdWUpCiB7CiAgICAgQVNTRVJUKG4gPj0gMCAmJiBu
IDwgbGVuZ3RoKCkpOwogICAgIGRhdGFTdG9yYWdlKClbbl0gPSB2YWx1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCmluZGV4IDI5OGMzNDhjZDJiNGU1YWI1YzkyYzdi
Yjc5OWEzMGYzZWJmYTYyMzEuLmViMTJjMDA0NjZlMzU2ZmZkYWRmYTM2NjQxNGMwN2NkMDNiYzQ2
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaApAQCAtNDEsNyAr
NDEsNyBAQCBjbGFzcyBKU0JpZ0ludCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogCiBwdWJsaWM6
CiAKLSAgICBKU0JpZ0ludChWTSYsIFN0cnVjdHVyZSosIGludCBsZW5ndGgpOworICAgIEpTQmln
SW50KFZNJiwgU3RydWN0dXJlKiwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIGVudW0gY2xhc3Mg
SW5pdGlhbGl6YXRpb25UeXBlIHsgTm9uZSwgV2l0aFplcm8gfTsKICAgICB2b2lkIGluaXRpYWxp
emUoSW5pdGlhbGl6YXRpb25UeXBlKTsKQEAgLTQ5LDEyICs0OSwxMSBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAg
c3RhdGljIHNpemVfdCBlc3RpbWF0ZWRTaXplKEpTQ2VsbCopOwotICAgIHN0YXRpYyBzaXplX3Qg
YWxsb2NhdGlvblNpemUoaW50IGxlbmd0aCk7CisgICAgc3RhdGljIHNpemVfdCBhbGxvY2F0aW9u
U2l6ZSh1bnNpZ25lZCBsZW5ndGgpOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7Ci0KICAgICBz
dGF0aWMgSlNCaWdJbnQqIGNyZWF0ZVplcm8oVk0mKTsKLSAgICBzdGF0aWMgSlNCaWdJbnQqIGNy
ZWF0ZVdpdGhMZW5ndGgoVk0mLCBpbnQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgSlNCaWdJbnQqIGNy
ZWF0ZVdpdGhMZW5ndGgoVk0mLCB1bnNpZ25lZCBsZW5ndGgpOwogCiAgICAgc3RhdGljIEpTQmln
SW50KiBjcmVhdGVGcm9tKFZNJiwgaW50MzJfdCB2YWx1ZSk7CiAgICAgc3RhdGljIEpTQmlnSW50
KiBjcmVhdGVGcm9tKFZNJiwgdWludDMyX3QgdmFsdWUpOwpAQCAtNzAsMTQgKzY5LDE0IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFNpZ24oYm9vbCBzaWduKSB7IG1fc2lnbiA9IHNpZ247IH0KICAg
ICBib29sIHNpZ24oKSBjb25zdCB7IHJldHVybiBtX3NpZ247IH0KIAotICAgIHZvaWQgc2V0TGVu
Z3RoKGludCBsZW5ndGgpIHsgbV9sZW5ndGggPSBsZW5ndGg7IH0KLSAgICBpbnQgbGVuZ3RoKCkg
Y29uc3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KKyAgICB2b2lkIHNldExlbmd0aCh1bnNpZ25lZCBs
ZW5ndGgpIHsgbV9sZW5ndGggPSBsZW5ndGg7IH0KKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25z
dCB7IHJldHVybiBtX2xlbmd0aDsgfQogCiAgICAgc3RhdGljIEpTQmlnSW50KiBwYXJzZUludChF
eGVjU3RhdGUqLCBWTSYsIFN0cmluZ1ZpZXcsIHVpbnQ4X3QgcmFkaXgpOwogICAgIHN0YXRpYyBK
U0JpZ0ludCogcGFyc2VJbnQoRXhlY1N0YXRlKiwgU3RyaW5nVmlldyk7CiAKICAgICBzdGQ6Om9w
dGlvbmFsPHVpbnQ4X3Q+IHNpbmdsZURpZ2l0VmFsdWVGb3JTdHJpbmcoKTsKLSAgICBTdHJpbmcg
dG9TdHJpbmcoRXhlY1N0YXRlJiwgaW50IHJhZGl4KTsKKyAgICBTdHJpbmcgdG9TdHJpbmcoRXhl
Y1N0YXRlJiwgdW5zaWduZWQgcmFkaXgpOwogICAgIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0
YXRpYyBib29sIGVxdWFscyhKU0JpZ0ludCosIEpTQmlnSW50Kik7CiAKQEAgLTg1LDEyICs4NCwx
NCBAQCBwdWJsaWM6CiAgICAgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwogCiAg
ICAgSlNPYmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7
CisKKyAgICBzdGF0aWMgSlNCaWdJbnQqIG11bHRpcGx5KEV4ZWNTdGF0ZSosIEpTQmlnSW50KiB4
LCBKU0JpZ0ludCogeSk7CiAgICAgCiBwcml2YXRlOgogICAgIHVzaW5nIERpZ2l0ID0gdWludHB0
cl90OwotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgaW50IGJpdHNQZXJCeXRlID0gODsKLSAg
ICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGludCBkaWdpdEJpdHMgPSBzaXplb2YoRGlnaXQpICog
Yml0c1BlckJ5dGU7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQgaGFsZkRpZ2l0Qml0
cyA9IGRpZ2l0Qml0cyAvIDI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCB1bnNpZ25lZCBi
aXRzUGVyQnl0ZSA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCB1bnNpZ25lZCBkaWdp
dEJpdHMgPSBzaXplb2YoRGlnaXQpICogYml0c1BlckJ5dGU7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBjb25zdCB1bnNpZ25lZCBoYWxmRGlnaXRCaXRzID0gZGlnaXRCaXRzIC8gMjsKICAgICBzdGF0
aWMgY29uc3RleHByIGNvbnN0IERpZ2l0IGhhbGZEaWdpdE1hc2sgPSAoMXVsbCA8PCBoYWxmRGln
aXRCaXRzKSAtIDE7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQgbWF4SW50ID0gMHg3
RkZGRkZGRjsKICAgICAKQEAgLTk4LDEyICs5OSwxMyBAQCBwcml2YXRlOgogICAgIC8vIG1heElu
dCAvIGRpZ2l0Qml0cy4gSG93ZXZlciwgd2UgdXNlIGEgbG93ZXIgbGltaXQgZm9yIG5vdywgYmVj
YXVzZQogICAgIC8vIHJhaXNpbmcgaXQgbGF0ZXIgaXMgZWFzaWVyIHRoYW4gbG93ZXJpbmcgaXQu
CiAgICAgLy8gU3VwcG9ydCB1cCB0byAxIG1pbGxpb24gYml0cy4KLSAgICBzdGF0aWMgY29uc3Qg
aW50IG1heExlbmd0aCA9IDEwMjQgKiAxMDI0IC8gKHNpemVvZih2b2lkKikgKiBiaXRzUGVyQnl0
ZSk7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heExlbmd0aCA9IDEwMjQgKiAxMDI0IC8g
KHNpemVvZih2b2lkKikgKiBiaXRzUGVyQnl0ZSk7CiAgICAgCi0gICAgc3RhdGljIHVpbnQ2NF90
IGNhbGN1bGF0ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQoaW50IGxlbmd0aCwgaW50IHJhZGl4
LCBEaWdpdCBsYXN0RGlnaXQsIGJvb2wgc2lnbik7CisgICAgc3RhdGljIHVpbnQ2NF90IGNhbGN1
bGF0ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQodW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCBy
YWRpeCwgRGlnaXQgbGFzdERpZ2l0LCBib29sIHNpZ24pOwogICAgIAogICAgIHN0YXRpYyB2b2lk
IGFic29sdXRlRGl2U21hbGwoRXhlY1N0YXRlJiwgSlNCaWdJbnQqIHgsIERpZ2l0IGRpdmlzb3Is
IEpTQmlnSW50KiogcXVvdGllbnQsIERpZ2l0JiByZW1haW5kZXIpOwotICAgIHN0YXRpYyB2b2lk
IGludGVybmFsTXVsdGlwbHlBZGQoSlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdp
dCBzdW1tYW5kLCBpbnQsIEpTQmlnSW50KiByZXN1bHQpOworICAgIHN0YXRpYyB2b2lkIGludGVy
bmFsTXVsdGlwbHlBZGQoSlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1t
YW5kLCB1bnNpZ25lZCwgSlNCaWdJbnQqIHJlc3VsdCk7CisgICAgc3RhdGljIHZvaWQgbXVsdGlw
bHlBY2N1bXVsYXRlKEpTQmlnSW50KiBtdWx0aXBsaWNhbmQsIERpZ2l0IG11bHRpcGxpZXIsIEpT
QmlnSW50KiBhY2N1bXVsYXRvciwgdW5zaWduZWQgYWNjdW11bGF0b3JJbmRleCk7CiAKICAgICAv
LyBEaWdpdCBhcml0aG1ldGljIGhlbHBlcnMuCiAgICAgc3RhdGljIERpZ2l0IGRpZ2l0QWRkKERp
Z2l0IGEsIERpZ2l0IGIsIERpZ2l0JiBjYXJyeSk7CkBAIC0xMTIsMTcgKzExNCwxNyBAQCBwcml2
YXRlOgogICAgIHN0YXRpYyBEaWdpdCBkaWdpdERpdihEaWdpdCBoaWdoLCBEaWdpdCBsb3csIERp
Z2l0IGRpdmlzb3IsIERpZ2l0JiByZW1haW5kZXIpOwogICAgIHN0YXRpYyBEaWdpdCBkaWdpdFBv
dyhEaWdpdCBiYXNlLCBEaWdpdCBleHBvbmVudCk7CiAKLSAgICBzdGF0aWMgU3RyaW5nIHRvU3Ry
aW5nR2VuZXJpYyhFeGVjU3RhdGUmLCBKU0JpZ0ludCosIGludCByYWRpeCk7CisgICAgc3RhdGlj
IFN0cmluZyB0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiwgSlNCaWdJbnQqLCB1bnNpZ25lZCBy
YWRpeCk7CiAKICAgICBib29sIGlzWmVybygpOwogCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENo
YXJUeXBlPgotICAgIHN0YXRpYyBKU0JpZ0ludCogcGFyc2VJbnQoRXhlY1N0YXRlKiwgQ2hhclR5
cGUqICBkYXRhLCBpbnQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgSlNCaWdJbnQqIHBhcnNlSW50KEV4
ZWNTdGF0ZSosIENoYXJUeXBlKiAgZGF0YSwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIHRlbXBs
YXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLSAgICBzdGF0aWMgSlNCaWdJbnQqIHBhcnNlSW50KEV4
ZWNTdGF0ZSosIFZNJiwgQ2hhclR5cGUqIGRhdGEsIGludCBsZW5ndGgsIGludCBzdGFydEluZGV4
LCBpbnQgcmFkaXgsIGJvb2wgYWxsb3dFbXB0eVN0cmluZyA9IHRydWUpOworICAgIHN0YXRpYyBK
U0JpZ0ludCogcGFyc2VJbnQoRXhlY1N0YXRlKiwgVk0mLCBDaGFyVHlwZSogZGF0YSwgdW5zaWdu
ZWQgbGVuZ3RoLCB1bnNpZ25lZCBzdGFydEluZGV4LCB1bnNpZ25lZCByYWRpeCwgYm9vbCBhbGxv
d0VtcHR5U3RyaW5nID0gdHJ1ZSk7CiAKLSAgICBzdGF0aWMgSlNCaWdJbnQqIGFsbG9jYXRlRm9y
KEV4ZWNTdGF0ZSosIFZNJiwgaW50IHJhZGl4LCBpbnQgY2hhcmNvdW50KTsKKyAgICBzdGF0aWMg
SlNCaWdJbnQqIGFsbG9jYXRlRm9yKEV4ZWNTdGF0ZSosIFZNJiwgdW5zaWduZWQgcmFkaXgsIHVu
c2lnbmVkIGNoYXJjb3VudCk7CiAKICAgICBKU0JpZ0ludCogcmlnaHRUcmltKFZNJik7CiAKQEAg
LTEzMSwxMCArMTMzLDEwIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZkRh
dGEoKTsKICAgICBEaWdpdCogZGF0YVN0b3JhZ2UoKTsKIAotICAgIERpZ2l0IGRpZ2l0KGludCk7
Ci0gICAgdm9pZCBzZXREaWdpdChpbnQsIERpZ2l0KTsKKyAgICBEaWdpdCBkaWdpdCh1bnNpZ25l
ZCk7CisgICAgdm9pZCBzZXREaWdpdCh1bnNpZ25lZCwgRGlnaXQpOwogICAgICAgICAKLSAgICBp
bnQgbV9sZW5ndGg7CisgICAgdW5zaWduZWQgbV9sZW5ndGg7CiAgICAgYm9vbCBtX3NpZ247CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggMjFl
ODBmODc1MDNjN2VmOTFiN2IyMTA1ZWIwYzcyNWRhMmVhYjc2My4uOTFkYzFhNDBmMTRlMzc2NzJm
NDEwMTYwNGMwNjkwZTYwOTdlMThmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDSlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ0pTVmFsdWUuaApAQCAtMzksNiArMzksNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNz
IEFzc2VtYmx5SGVscGVyczsKK2NsYXNzIEpTQmlnSW50OwogY2xhc3MgRXhlY1N0YXRlOwogY2xh
c3MgSlNDZWxsOwogY2xhc3MgSlNWYWx1ZVNvdXJjZTsKQEAgLTI1Nyw2ICsyNTgsOCBAQCBwdWJs
aWM6CiAgICAgLy8gdG9OdW1iZXIgY29udmVyc2lvbiBpcyBleHBlY3RlZCB0byBiZSBzaWRlIGVm
ZmVjdCBmcmVlIGlmIGFuIGV4Y2VwdGlvbiBoYXMKICAgICAvLyBiZWVuIHNldCBpbiB0aGUgRXhl
Y1N0YXRlIGFscmVhZHkuCiAgICAgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0Owor
ICAgIAorICAgIFZhcmlhbnQ8SlNCaWdJbnQqLCBkb3VibGU+IHRvTnVtZXJpYyhFeGVjU3RhdGUq
KSBjb25zdDsKIAogICAgIC8vIHRvTnVtYmVyIGNvbnZlcnNpb24gaWYgaXQgY2FuIGJlIGRvbmUg
d2l0aG91dCBzaWRlIGVmZmVjdHMuCiAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHRvTnVtYmVy
RnJvbVByaW1pdGl2ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKaW5kZXggZDBkMzc5OWZiMzllYzMxODJkY2QyMTQ5NjA3
MDYwZTM1YjViMjc5YS4uYjRiODU0YzNiNzc2N2I1MjJlY2IzNGU1YjJlMTcyMzkzNzk3MzM3YSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGlu
ZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5l
cy5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSlNQcm94eS5oIgogI2luY2x1ZGUgIkpT
U3RyaW5nSW5saW5lcy5oIgogI2luY2x1ZGUgIk1hdGhDb21tb24uaCIKKyNpbmNsdWRlIDx3dGYv
VmFyaWFudC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogbmFtZXNwYWNl
IEpTQyB7CkBAIC03MjgsNiArNzI5LDE5IEBAIEFMV0FZU19JTkxJTkUgZG91YmxlIEpTVmFsdWU6
OnRvTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4gdG9OdW1iZXJTbG93
Q2FzZShleGVjKTsKIH0KIAorQUxXQVlTX0lOTElORSBWYXJpYW50PEpTQmlnSW50KiwgZG91Ymxl
PiBKU1ZhbHVlOjp0b051bWVyaWMoRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIFZNJiB2
bSA9IGV4ZWMtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OworICAgIEpTVmFsdWUgcHJpbVZhbHVlID0gdGhpcy0+dG9QcmltaXRpdmUoZXhlYywgUHJlZmVy
TnVtYmVyKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCAwKTsKKyAgICBpZiAocHJp
bVZhbHVlLmlzQmlnSW50KCkpCisgICAgICAgIHJldHVybiBhc0JpZ0ludChwcmltVmFsdWUpOwor
ICAgIGRvdWJsZSB2YWx1ZSA9IHByaW1WYWx1ZS50b051bWJlcihleGVjKTsKKyAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCAwKTsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKIGlubGluZSBK
U09iamVjdCogSlNWYWx1ZTo6dG9PYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewogICAg
IHJldHVybiBpc0NlbGwoKSA/IGFzQ2VsbCgpLT50b09iamVjdChleGVjLCBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCkpIDogdG9PYmplY3RTbG93Q2FzZShleGVjLCBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5o
CmluZGV4IDEzNDlhZWMxNmE3YTgzYThhOGE1OTBhY2VmZDU0YjE3OWM5N2JmMWYuLjQ5NTU5MGJi
ODg2ZWEwYWYzYmE1ZDgxZWYyMGZmZDc0NTUwMGE3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcGVyYXRpb25zLmgKQEAgLTIzLDcgKzIzLDkgQEAKIAogI2luY2x1ZGUgIkNh
bGxGcmFtZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKKyNpbmNsdWRlICJKU0Jp
Z0ludC5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5o
PgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtMjU2LDYgKzI1OCwyOSBAQCBBTFdBWVNfSU5MSU5F
IEpTVmFsdWUganNBZGQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdjEsIEpTVmFsdWUg
djIpCiAgICAgcmV0dXJuIGpzQWRkU2xvd0Nhc2UoY2FsbEZyYW1lLCB2MSwgdjIpOwogfQogCitB
TFdBWVNfSU5MSU5FIEpTVmFsdWUganNNdWwoRXhlY1N0YXRlKiBzdGF0ZSwgSlNWYWx1ZSB2MSwg
SlNWYWx1ZSB2MikKK3sKKyAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKKyAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBWYXJpYW50PEpTQmlnSW50KiwgZG91
YmxlPiBsZWZ0TnVtZXJpYyA9IHYxLnRvTnVtZXJpYyhzdGF0ZSk7CisgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBWYXJpYW50PEpTQmlnSW50KiwgZG91YmxlPiByaWdo
dE51bWVyaWMgPSB2Mi50b051bWVyaWMoc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7CisKKyAgICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxKU0JpZ0ludCo+
KGxlZnROdW1lcmljKSB8fCBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPEpTQmlnSW50Kj4ocmlnaHRO
dW1lcmljKSkgeworICAgICAgICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxKU0JpZ0ludCo+
KGxlZnROdW1lcmljKSAmJiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPEpTQmlnSW50Kj4ocmlnaHRO
dW1lcmljKSkKKyAgICAgICAgICAgIHJldHVybiBKU0JpZ0ludDo6bXVsdGlwbHkoc3RhdGUsIFdU
Rjo6Z2V0PEpTQmlnSW50Kj4obGVmdE51bWVyaWMpLCBXVEY6OmdldDxKU0JpZ0ludCo+KHJpZ2h0
TnVtZXJpYykpOworCisgICAgICAgIHRocm93VHlwZUVycm9yKHN0YXRlLCBzY29wZSwgQVNDSUlM
aXRlcmFsKCJJbnZhbGlkIG1peCBvZiBCaWdJbnQgYW5kIG90aGVyIHR5cGUgaW4gbXVsdGlwbGlj
YXRpb24uIikpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGRvdWJsZSBsZWZ0
VmFsdWUgPSAgV1RGOjpnZXQ8ZG91YmxlPihsZWZ0TnVtZXJpYyk7CisgICAgZG91YmxlIHJpZ2h0
VmFsdWUgPSAgV1RGOjpnZXQ8ZG91YmxlPihyaWdodE51bWVyaWMpOworICAgIHJldHVybiBqc051
bWJlcihsZWZ0VmFsdWUgKiByaWdodFZhbHVlKTsKK30KKwogaW5saW5lIGJvb2wgc2NyaWJibGVG
cmVlQ2VsbHMoKQogewogICAgIHJldHVybiAhQVNTRVJUX0RJU0FCTEVEIHx8IE9wdGlvbnM6OnNj
cmliYmxlRnJlZUNlbGxzKCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDEzOTJhMGRhOThmM2E5YTE0MjhjOTdjM2Q2MjY4NzllMDc3ZDUy
NzQuLmM5OTMyNWI0YWFhY2ZhOWM4NzY2YjI2NDg1MzJlNzg1ZjgyNTY4ZjMgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTgtMDUtMDEgIENhaW8gTGltYSAgPHRpY2Fpb2xpbWFAZ21haWwuY29tPgorCisgICAg
ICAgIFtFU05leHRdW0JpZ0ludF0gSW1wbGVtZW50IHN1cHBvcnQgZm9yICIqIiBvcGVyYXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzcyMQor
CisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgICogYmlnSW50VGVz
dHMueWFtbDoKKyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWwtaml0LmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLXByZWNlZGVuY2UuanM6IEFk
ZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUuanM6IEFkZGVk
LgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11bC10eXBlLWVycm9yLmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWwtd3JhcHBlZC12YWx1ZS5qczogQWRkZWQuCisgICAg
ICAgICogc3RyZXNzL2JpZy1pbnQtbXVsdGlwbGljYXRpb24uanM6IEFkZGVkLgorICAgICAgICAq
IHN0cmVzcy9iaWctaW50LW11bHRpcGx5LW1lbW9yeS1zdHJlc3MuanM6IEFkZGVkLgorCiAyMDE4
LTA0LTI4ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjMxMTMxLgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9i
aWdJbnRUZXN0cy55YW1sIGIvSlNUZXN0cy9iaWdJbnRUZXN0cy55YW1sCmluZGV4IDdhZTIyY2Ix
YmIyYWZmNjJjYzRkZGY0OTYyOTlmOTZhMDc0NGY3YWUuLmU5NDdkYzI5NDVhZGY5MGQwNzdmYzgz
N2Q1NTgzYTFkMDhlM2JjOTEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvYmlnSW50VGVzdHMueWFtbAor
KysgYi9KU1Rlc3RzL2JpZ0ludFRlc3RzLnlhbWwKQEAgLTk3LDMgKzk3LDI0IEBACiAtIHBhdGg6
IHN0cmVzcy9iaWctaW50LXRvLXN0cmluZy5qcwogICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKIAor
LSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWwtaml0LmpzCisgIGNtZDogcnVuQmlnSW50RW5hYmxl
ZAorCistIHBhdGg6IHN0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUtcHJlY2VkZW5jZS5q
cworICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKworLSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWwt
dG8tcHJpbWl0aXZlLmpzCisgIGNtZDogcnVuQmlnSW50RW5hYmxlZAorCistIHBhdGg6IHN0cmVz
cy9iaWctaW50LW11bC10eXBlLWVycm9yLmpzCisgIGNtZDogcnVuQmlnSW50RW5hYmxlZAorCist
IHBhdGg6IHN0cmVzcy9iaWctaW50LW11bC13cmFwcGVkLXZhbHVlLmpzCisgIGNtZDogcnVuQmln
SW50RW5hYmxlZAorCistIHBhdGg6IHN0cmVzcy9iaWctaW50LW11bHRpcGxpY2F0aW9uLmpzCisg
IGNtZDogcnVuQmlnSW50RW5hYmxlZAorCistIHBhdGg6IHN0cmVzcy9iaWctaW50LW11bHRpcGx5
LW1lbW9yeS1zdHJlc3MuanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1p
bnQtbXVsLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2JlZGUzMTg3NWQyMWZiMzgyMmU3ZjI4ZmYwNWJj
YWNhMWM5ZjdhCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwt
aml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKK2xldCBhc3Nl
cnQgPSB7CisgICAgc2FtZVZhbHVlOiBmdW5jdGlvbihpLCBlLCBtKSB7CisgICAgICAgIGlmIChp
ICE9PSBlKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG0pOworICAgIH0KK30KKworZnVu
Y3Rpb24gYmlnSW50TXVsKHgsIHkpIHsKKyAgICByZXR1cm4geCAqIHk7Cit9Citub0lubGluZShi
aWdJbnRNdWwpOworCitmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsKKyAgICBsZXQg
ciA9IGJpZ0ludE11bCgzbiwgMTBuKTsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKHIsIDMwbiwgM24g
KyAiICogIiArIDEwbiArICIgPSAiICsgcik7Cit9CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS1wcmVjZWRlbmNlLmpzIGIvSlNUZXN0cy9zdHJl
c3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLXByZWNlZGVuY2UuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE0
OWExOTY4N2UxNGFlZTcwMTNiMzY4NjQ0OTJlNjgyYmQ1ZTc1ZQotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS1wcmVjZWRlbmNlLmpzCkBA
IC0wLDAgKzEsMzkgQEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKK2Fzc2VydCA9IHsKKyAgICBz
YW1lVmFsdWU6IGZ1bmN0aW9uIChpbnB1dCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAgICAgICAg
aWYgKGlucHV0ICE9PSBleHBlY3RlZCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNz
YWdlKTsKKyAgICB9Cit9OworCitmdW5jdGlvbiB0ZXN0TXVsKHgsIHksIHosIG1lc3NhZ2UpIHsK
KyAgICBhc3NlcnQuc2FtZVZhbHVlKHggKiB5LCB6LCBtZXNzYWdlKTsKKyAgICBhc3NlcnQuc2Ft
ZVZhbHVlKHkgKiB4LCB6LCBtZXNzYWdlKTsKK30KKwordGVzdE11bChPYmplY3QoMm4pLCAxbiwg
Mm4sICJUb1ByaW1pdGl2ZTogdW5ib3ggb2JqZWN0IHdpdGggaW50ZXJuYWwgc2xvdCIpOworCits
ZXQgbyA9IHsKKyAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24oKSB7CisgICAgICAg
IHJldHVybiAybjsKKyAgICB9LAorICAgIHZhbHVlT2Y6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJTaG91bGQgbmV2ZXIgZXhlY3V0ZSBpdCIpOworICAgIH0sCisgICAg
dG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGQg
bmV2ZXIgZXhlY3V0ZSBpdCIpOworICAgIH0KK307Cit0ZXN0TXVsKG8sIDFuLCAybiwgIlRvUHJp
bWl0aXZlOiBAQHRvUHJpbWl0aXZlIik7CisKK28gPSB7CisgICAgdmFsdWVPZjogZnVuY3Rpb24o
KSB7CisgICAgICAgIHJldHVybiAybjsKKyAgICB9LAorICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAo
KSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiU2hvdWxkIG5ldmVyIGV4ZWN1dGUgaXQiKTsK
KyAgICB9Cit9OwordGVzdE11bChvLCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogdmFsdWVPZiIpOwor
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUuanMg
Yi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjQyZTJlOGUyOTExOWUyN2QxMzU3N2NiNTdhYzJmOTczNTBmZTZjYwotLS0gL2Rldi9udWxsCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS5qcwpAQCAtMCwwICsx
LDM1IEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCitmdW5jdGlvbiBhc3NlcnQoYSkgeworICAg
IGlmICghYSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgYXNzZXJ0aW9uIik7Cit9CisK
K2Fzc2VydC5zYW1lVmFsdWUgPSBmdW5jdGlvbiAoaW5wdXQsIGV4cGVjdGVkLCBtZXNzYWdlKSB7
CisgICAgaWYgKGlucHV0ICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1l
c3NhZ2UpOworfQorCitmdW5jdGlvbiB0ZXN0TXVsKHgsIHksIHopIHsKKyAgICBhc3NlcnQuc2Ft
ZVZhbHVlKHggKiB5LCB6LCB4ICsgIiAqICIgKyB5ICsgIiA9ICIgKyB6KTsKKyAgICBhc3NlcnQu
c2FtZVZhbHVlKHkgKiB4LCB6LCB5ICsgIiAqICIgKyB4ICsgIiA9ICIgKyB6KTsKK30KKworbGV0
IG8gPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDMw
MDAwMDAwMDAwMDAwMG47IH0KK30KKwordGVzdE11bCg1MDAwMDAwMDAwMDA0MzhuLCBvLCAxNTAw
MDAwMDAwMDAxMzE0MDAwMDAwMDAwMDAwMDBuKTsKKworby52YWx1ZU9mID0gZnVuY3Rpb24gKCkg
eworICAgIHRocm93IG5ldyBFcnJvcigiU2hvdWxkIG5ldmVyIGV4ZWN1dGUgaXQiKTsKK307CisK
K3Rlc3RNdWwoNzAwMDAwMDAwMDAwNDM4biwgbywgMjEwMDAwMDAwMDAwMTMxNDAwMDAwMDAwMDAw
MDAwbik7CisKK28udG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7CisgICAgdGhyb3cgbmV3IEVycm9y
KCJTaG91bGQgbmV2ZXIgZXhlY3V0ZSBpdCIpOworfTsKKwordGVzdE11bCg3MDAwMDAwMDAwMDA0
MzhuLCBvLCAyMTAwMDAwMDAwMDAxMzE0MDAwMDAwMDAwMDAwMDBuKTsKKwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdHlwZS1lcnJvci5qcyBiL0pTVGVzdHMvc3RyZXNz
L2JpZy1pbnQtbXVsLXR5cGUtZXJyb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUxNzg0NTdmYjYyMzc1N2Zk
MGU3NzM1NzdkYzM5NmYyZjMwZmU2MAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNz
L2JpZy1pbnQtbXVsLXR5cGUtZXJyb3IuanMKQEAgLTAsMCArMSwxMDYgQEAKKy8vQCBydW5CaWdJ
bnRFbmFibGVkCisKK2Z1bmN0aW9uIGFzc2VydChhLCBtZXNzYWdlKSB7CisgICAgaWYgKCFhKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7Cit9CisKK2Z1bmN0aW9uIGFzc2VydFRo
cm93VHlwZUVycm9yKGEsIGIsIG1lc3NhZ2UpIHsKKyAgICB0cnkgeworICAgICAgICBsZXQgbiA9
IGEgKiBiOworICAgICAgICBhc3NlcnQoZmFsc2UsIG1lc3NhZ2UgKyAiOiBTaG91bGQgdGhyb3cg
VHlwZUVycm9yLCBidXQgZXhlY3V0ZWQgd2l0aG91dCBleGNlcHRpb24iKTsKKyAgICB9IGNhdGNo
IChlKSB7CisgICAgICAgIGFzc2VydChlIGluc3RhbmNlb2YgVHlwZUVycm9yLCBtZXNzYWdlICsg
IjogZXhwZWN0ZWQgVHlwZUVycm9yLCBnb3Q6ICIgKyBlKTsKKyAgICB9Cit9CisKK2Fzc2VydFRo
cm93VHlwZUVycm9yKDMwbiwgImZvbyIsICJCaWdJbnQgKiBTdHJpbmciKTsKK2Fzc2VydFRocm93
VHlwZUVycm9yKCJiYXIiLCAxODc1NzM4Mjk4NDgyMW4sICJTdHJpbmcgKiBCaWdJbnQiKTsKK2Fz
c2VydFRocm93VHlwZUVycm9yKDMwbiwgU3ltYm9sKCJmb28iKSwgIkJpZ0ludCAqIFN5bWJvbCIp
OworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoU3ltYm9sKCJiYXIiKSwgMTg3NTczODI5ODQ4MjFuLCAi
U3ltYm9sICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIDMzMjAsICJCaWdJ
bnQgKiBJbnQzMiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzMyNTYsIDE4NzU3MzgyOTg0ODIx
biwgIkludDMyICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIDAuNTQzLCAi
QmlnSW50ICogRG91YmxlIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigyMzAuMTkyOTMsIDE4NzU3
MzgyOTg0ODIxbiwgIkRvdWJsZSAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBu
LCBOYU4sICJCaWdJbnQgKiBOYU4iKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKE5hTiwgMTg3NTcz
ODI5ODQ4MjFuLCAiTmFOICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIE5h
TiwgIkJpZ0ludCAqIE5hTiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoTmFOLCAxODc1NzM4Mjk4
NDgyMW4sICJOYU4gKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgK0luZmlu
aXR5LCAiQmlnSW50ICogTmFOIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigrSW5maW5pdHksIDE4
NzU3MzgyOTg0ODIxbiwgIk5hTiAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBu
LCAtSW5maW5pdHksICJCaWdJbnQgKiAtSW5maW5pdHkiKTsKK2Fzc2VydFRocm93VHlwZUVycm9y
KC1JbmZpbml0eSwgMTg3NTczODI5ODQ4MjFuLCAiLUluZmluaXR5ICogQmlnSW50Iik7Cithc3Nl
cnRUaHJvd1R5cGVFcnJvcigzMG4sIG51bGwsICJCaWdJbnQgKiBudWxsIik7Cithc3NlcnRUaHJv
d1R5cGVFcnJvcihudWxsLCAxODc1NzM4Mjk4NDgyMW4sICJudWxsICogQmlnSW50Iik7Cithc3Nl
cnRUaHJvd1R5cGVFcnJvcigzMG4sIHVuZGVmaW5lZCwgIkJpZ0ludCAqIHVuZGVmaW5lZCIpOwor
YXNzZXJ0VGhyb3dUeXBlRXJyb3IodW5kZWZpbmVkLCAxODc1NzM4Mjk4NDgyMW4sICJ1bmRlZmlu
ZWQgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgdHJ1ZSwgIkJpZ0ludCAq
IHRydWUiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKHRydWUsIDE4NzU3MzgyOTg0ODIxbiwgInRy
dWUgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgZmFsc2UsICJCaWdJbnQg
KiBmYWxzZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoZmFsc2UsIDE4NzU3MzgyOTg0ODIxbiwg
ImZhbHNlICogQmlnSW50Iik7CisKKy8vIEVycm9yIHdoZW4gcmV0dXJuaW5nIGZyb20gb2JqZWN0
CisKK2xldCBvID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFN5bWJvbCgi
Rm9vIik7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9i
amVjdC52YWx1ZU9mIHJldHVybmluZyBTeW1ib2wiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8s
IDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC52YWx1ZU9mIHJldHVybmluZyBTeW1ib2wgKiBCaWdJ
bnQiKTsKKworbyA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7IHJldHVybiAzMzI1Njsg
fQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LnZh
bHVlT2YgcmV0dXJuaW5nIEludDMyIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4
Mjk4NDgyMW4sICJPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgSW50MzIgKiBCaWdJbnQiKTsKKwor
byA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7IHJldHVybiAwLjQ1MzsgfQorfTsKKwor
YXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LnZhbHVlT2YgcmV0
dXJuaW5nIERvdWJsZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFu
LCAiT2JqZWN0LnZhbHVlT2YgcmV0dXJuaW5nIERvdWJsZSAqIEJpZ0ludCIpOworCitvID0gewor
ICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7IHJldHVybiBTeW1ib2woIkZvbyIpOyB9Cit9Owor
Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QudG9TdHJpbmcg
cmV0dXJuaW5nIFN5bWJvbCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4
MjFuLCAiT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBTeW1ib2wgKiBCaWdJbnQiKTsKKworbyA9
IHsKKyAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgeyByZXR1cm4gMzMyNTY7IH0KK307CisKK2Fz
c2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC50b1N0cmluZyByZXR1
cm5pbmcgSW50MzIiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwg
Ik9iamVjdC50b1N0cmluZyByZXR1cm5pbmcgSW50MzIgKiBCaWdJbnQiKTsKKworbyA9IHsKKyAg
ICB0b1N0cmluZzogZnVuY3Rpb24gKCkgeyByZXR1cm4gMC40NTM7IH0KK307CisKK2Fzc2VydFRo
cm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC50b1N0cmluZyByZXR1cm5pbmcg
RG91YmxlIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmpl
Y3QudG9TdHJpbmcgcmV0dXJuaW5nIERvdWJsZSAqIEJpZ0ludCIpOworCitvID0geworICAgIFtT
eW1ib2wudG9QcmltaXRpdmVdOiBmdW5jdGlvbiAoKSB7IHJldHVybiBTeW1ib2woIkZvbyIpOyB9
Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QuQEB0
b1ByaW1pdGl2ZSByZXR1cm5pbmcgU3ltYm9sIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihvLCAx
ODc1NzM4Mjk4NDgyMW4sICJPYmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcgU3ltYm9sICog
QmlnSW50Iik7CisKK28gPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9uICgp
IHsgcmV0dXJuIDMzMjU2OyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJC
aWdJbnQgKiBPYmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcgSW50MzIiKTsKK2Fzc2VydFRo
cm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC5AQHRvUHJpbWl0aXZlIHJl
dHVybmluZyBJbnQzMiAqIEJpZ0ludCIpOworCitvID0geworICAgIFtTeW1ib2wudG9QcmltaXRp
dmVdOiBmdW5jdGlvbiAoKSB7IHJldHVybiAwLjQ1MzsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBl
RXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5nIERv
dWJsZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0
LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5nIERvdWJsZSAqIEJpZ0ludCIpOworCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC13cmFwcGVkLXZhbHVlLmpzIGIvSlNUZXN0cy9z
dHJlc3MvYmlnLWludC1tdWwtd3JhcHBlZC12YWx1ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjczZDhhNjAz
MDJmYWY2NmRmYTZjZmExZWIxMzcwZWM4YzIyYzNhCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9zdHJlc3MvYmlnLWludC1tdWwtd3JhcHBlZC12YWx1ZS5qcwpAQCAtMCwwICsxLDM3IEBACisv
L0AgcnVuQmlnSW50RW5hYmxlZAorCithc3NlcnQgPSB7CisgICAgc2FtZVZhbHVlOiBmdW5jdGlv
biAoaW5wdXQsIGV4cGVjdGVkLCBtZXNzYWdlKSB7CisgICAgICAgIGlmIChpbnB1dCAhPT0gZXhw
ZWN0ZWQpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7CisgICAgfQorfTsK
KworZnVuY3Rpb24gdGVzdE11bCh4LCB5LCB6LCBtZXNzYWdlKSB7CisgICAgYXNzZXJ0LnNhbWVW
YWx1ZSh4ICogeSwgeiwgbWVzc2FnZSk7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh5ICogeCwgeiwg
bWVzc2FnZSk7Cit9CisKK3Rlc3RNdWwoT2JqZWN0KDJuKSwgMW4sIDJuLCAiVG9QcmltaXRpdmU6
IHVuYm94IG9iamVjdCB3aXRoIGludGVybmFsIHNsb3QiKTsKKworbGV0IG8gPSB7CisgICAgW1N5
bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gMm47CisgICAg
fQorfTsKK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9QcmltaXRpdmU6IEBAdG9QcmltaXRpdmUiKTsK
KworbyA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIDJuOwor
ICAgIH0KK307Cit0ZXN0TXVsKG8sIDFuLCAybiwgIlRvUHJpbWl0aXZlOiB2YWx1ZU9mIik7CisK
K28gPSB7CisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gMm47Cisg
ICAgfQorfQordGVzdE11bChvLCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogdG9TdHJpbmciKTsKKwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0aXBsaWNhdGlvbi5qcyBiL0pT
VGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbGljYXRpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2VjZDYz
NmQ3Zjg5YTI0YWNmYmI4MWQ3MmQ3NTVjMjI4ZmU2ZmFkOQotLS0gL2Rldi9udWxsCisrKyBiL0pT
VGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbGljYXRpb24uanMKQEAgLTAsMCArMSw4MyBAQAor
Ly9AIHJ1bkJpZ0ludEVuYWJsZWQKKworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFJvYmluIFRlbXBs
ZXRvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0
aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworYXNzZXJ0ID0gewor
ICAgIHNhbWVWYWx1ZTogZnVuY3Rpb24gKGlucHV0LCBleHBlY3RlZCwgbWVzc2FnZSkgeworICAg
IGlmIChpbnB1dCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdl
KTsKKyAgICB9Cit9OworCitmdW5jdGlvbiB0ZXN0TXVsKHgsIHksIHopIHsKKyAgICBhc3NlcnQu
c2FtZVZhbHVlKHggKiB5LCB6LCB4ICsgIiAqICIgKyB5ICsgIiA9ICIgKyB6KTsKKyAgICBhc3Nl
cnQuc2FtZVZhbHVlKHkgKiB4LCB6LCB5ICsgIiAqICIgKyB4ICsgIiA9ICIgKyB6KTsKK30KKwor
dGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweEZFRENCQTk4NzY1NDMyMTBuLCAweEZEQkFD
MDk3QzhEQzVBQ0NERUVDNkNEN0E0NEE0MTAwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIx
MG4sIDB4RkVEQ0JBOThuLCAweEZEQkFDMDk3NTMwRUNBODY1NDFENTk4MG4pOwordGVzdE11bCgw
eEZFRENCQTk4NzY1NDMyMTBuLCAweDEyMzRuLCAweDEyMUY0OUY0OUY0OUY0OUY0QjQwbik7Cit0
ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4M24sIDB4MkZDOTYyRkM5NjJGQzk2MzBuKTsK
K3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHgybiwgMHgxRkRCOTc1MzBFQ0E4NjQyMG4p
OwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweDFuLCAweEZFRENCQTk4NzY1NDMyMTBu
KTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHgwbiwgMHgwbik7Cit0ZXN0TXVsKDB4
RkVEQ0JBOTg3NjU0MzIxMG4sIEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMw
NjQ3MjAiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIEJpZ0ludCgiLTIiKSwgQmln
SW50KCItMzY3Mjk1MTcwODg5ODYxMjk0NDAiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIx
MG4sIEJpZ0ludCgiLTMiKSwgQmlnSW50KCItNTUwOTQyNzU2MzM0NzkxOTQxNjAiKSk7Cit0ZXN0
TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIEJpZ0ludCgiLTQ2NjAiKSwgQmlnSW50KCItODU1Nzk3
NzQ4MTczMzc2ODE1OTUyMDAiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIEJpZ0lu
dCgiLTQyNzU4Nzg1NTEiKSwgQmlnSW50KCItNzg1MjU0NzcxNTQ2OTE4NzQ2MDQ1MDI4MjA3MjAi
KSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4
RkRCQUMwOTdDOERDNUFDQUUxMzJGN0E2QjdBMURDRTFuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2
NTQzMjBGbiwgMHhGRURDQkE5N24sIDB4RkRCQUMwOTY1NDMyMEZFQ0RFRUM2Q0Q5bik7Cit0ZXN0
TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4M24sIDB4MkZDOTYyRkM5NjJGQzk2MkRuKTsKK3Rl
c3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgMHgybiwgMHgxRkRCOTc1MzBFQ0E4NjQxRW4pOwor
dGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweDFuLCAweEZFRENCQTk4NzY1NDMyMEZuKTsK
K3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgMHgwbiwgMHgwbik7Cit0ZXN0TXVsKDB4RkVE
Q0JBOTg3NjU0MzIwRm4sIEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3
MTkiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIEJpZ0ludCgiLTIiKSwgQmlnSW50
KCItMzY3Mjk1MTcwODg5ODYxMjk0MzgiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4s
IEJpZ0ludCgiLTMiKSwgQmlnSW50KCItNTUwOTQyNzU2MzM0NzkxOTQxNTciKSk7Cit0ZXN0TXVs
KDB4RkVEQ0JBOTg3NjU0MzIwRm4sIEJpZ0ludCgiLTQyNzU4Nzg1NTEiKSwgQmlnSW50KCItNzg1
MjU0NzcxNTQ2OTE4NzQ2MDAyMjY5NDIxNjkiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIw
Rm4sIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIEJpZ0ludCgiLTMzNzI2NDM1NjM5
NzUzMTAyODk3NjYwODI4OTYzMzYxNTYxMzY4MCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIDB4
RkVEQ0JBOThuLCAweEZEQkFDMDk2REQ0MTNBNDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIDB4
MTIzNG4sIDB4MTIxRjQ5RjQ5NkUwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCAweDNuLCAweDJG
Qzk2MkZDOG4pOwordGVzdE11bCgweEZFRENCQTk4biwgMHgybiwgMHgxRkRCOTc1MzBuKTsKK3Rl
c3RNdWwoMHhGRURDQkE5OG4sIDB4MW4sIDB4RkVEQ0JBOThuKTsKK3Rlc3RNdWwoMHhGRURDQkE5
OG4sIDB4MG4sIDB4MG4pOwordGVzdE11bCgweEZFRENCQTk4biwgQmlnSW50KCItMSIpLCBCaWdJ
bnQoIi00Mjc1ODc4NTUyIikpOwordGVzdE11bCgweEZFRENCQTk4biwgQmlnSW50KCItMiIpLCBC
aWdJbnQoIi04NTUxNzU3MTA0IikpOwordGVzdE11bCgweEZFRENCQTk4biwgQmlnSW50KCItMyIp
LCBCaWdJbnQoIi0xMjgyNzYzNTY1NiIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0ludCgi
LTQyNzU4Nzg1NTEiKSwgQmlnSW50KCItMTgyODMxMzczODcxNzc3MzgxNTIiKSk7Cit0ZXN0TXVs
KDB4RkVEQ0JBOThuLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpLCBCaWdJbnQoIi03
ODUyNTQ3NzE3MzA1NjYzMzE0ODk5NTg4NTQ0MCIpKTsKK3Rlc3RNdWwoMHgzbiwgMHgzbiwgMHg5
bik7Cit0ZXN0TXVsKDB4M24sIDB4Mm4sIDB4Nm4pOwordGVzdE11bCgweDNuLCAweDFuLCAweDNu
KTsKK3Rlc3RNdWwoMHgzbiwgMHgwbiwgMHgwbik7Cit0ZXN0TXVsKDB4M24sIEJpZ0ludCgiLTEi
KSwgQmlnSW50KCItMyIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItMiIpLCBCaWdJbnQoIi02
IikpOwordGVzdE11bCgweDNuLCBCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTkiKSk7Cit0ZXN0TXVs
KDB4M24sIEJpZ0ludCgiLTQ2NjAiKSwgQmlnSW50KCItMTM5ODAiKSk7Cit0ZXN0TXVsKDB4M24s
IEJpZ0ludCgiLTQyNzU4Nzg1NTIiKSwgQmlnSW50KCItMTI4Mjc2MzU2NTYiKSk7Cit0ZXN0TXVs
KDB4M24sIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIEJpZ0ludCgiLTU1MDk0Mjc1
NjMzNDc5MTk0MTYwIikpOwordGVzdE11bCgweDBuLCAweDBuLCAweDBuKTsKK3Rlc3RNdWwoMHgw
biwgQmlnSW50KCItMSIpLCAweDBuKTsKK3Rlc3RNdWwoMHgwbiwgQmlnSW50KCItMiIpLCAweDBu
KTsKK3Rlc3RNdWwoMHgwbiwgQmlnSW50KCItMyIpLCAweDBuKTsKK3Rlc3RNdWwoMHgwbiwgQmln
SW50KCItNDI3NTg3ODU1MSIpLCAweDBuKTsKK3Rlc3RNdWwoMHgwbiwgQmlnSW50KCItMTgzNjQ3
NTg1NDQ0OTMwNjQ3MTkiKSwgMHgwbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCIt
MSIpLCAweDFuKTsKK3Rlc3RNdWwoQmlnSW50KCItMSIpLCBCaWdJbnQoIi0yIiksIDB4Mm4pOwor
dGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTMiKSwgMHgzbik7Cit0ZXN0TXVsKEJpZ0lu
dCgiLTEiKSwgQmlnSW50KCItNDY2MCIpLCAweDEyMzRuKTsKK3Rlc3RNdWwoQmlnSW50KCItMSIp
LCBCaWdJbnQoIi00Mjc1ODc4NTUxIiksIDB4RkVEQ0JBOTduKTsKK3Rlc3RNdWwoQmlnSW50KCIt
MSIpLCBCaWdJbnQoIi00Mjc1ODc4NTUyIiksIDB4RkVEQ0JBOThuKTsKK3Rlc3RNdWwoQmlnSW50
KCItMSIpLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcxOSIpLCAweEZFRENCQTk4NzY1NDMy
MEZuKTsKK3Rlc3RNdWwoQmlnSW50KCItMSIpLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcy
MCIpLCAweEZFRENCQTk4NzY1NDMyMTBuKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJbnQo
Ii0zIiksIDB4OW4pOwordGVzdE11bChCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTQ2NjAiKSwgMHgz
NjlDbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwgQmlnSW50KCItNDI3NTg3ODU1MSIpLCAweDJG
Qzk2MkZDNW4pOwordGVzdE11bChCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTIiKSwg
MHgyRkM5NjJGQzhuKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi0xODM2NDc1ODU0
NDQ5MzA2NDcxOSIpLCAweDJGQzk2MkZDOTYyRkM5NjJEbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMi
KSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgMHgyRkM5NjJGQzk2MkZDOTYzMG4p
OwordGVzdE11bChCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpLCBCaWdJbnQoIi0xODM2
NDc1ODU0NDQ5MzA2NDcyMCIpLCAweEZEQkFDMDk3QzhEQzVBQ0NERUVDNkNEN0E0NEE0MTAwbik7
CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbHktbWVtb3J5LXN0
cmVzcy5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbHktbWVtb3J5LXN0cmVzcy5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xYWJhYTdlMjhmOWFlZTY1ZDIxYzBkMzZmNjNkZjY4MDIzYjljODk3Ci0t
LSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0aXBseS1tZW1vcnkt
c3RyZXNzLmpzCkBAIC0wLDAgKzEsMTUgQEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKK2Z1bmN0
aW9uIGFzc2VydChhKSB7CisgICAgaWYgKCFhKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJh
ZCBhc3NlcnRpb24iKTsKK30KKworbGV0IGEgPSAwbjsKK2xldCBiID0gMW47Citmb3IgKGxldCBp
ID0gMDsgaSA8IDEwMDAwMDA7IGkrKykgeworICAgIGEgPSBiICogMzBuOworfQorCithc3NlcnQo
YSA9PT0gMzBuKTsKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339634</attachid>
            <date>2018-05-04 21:46:55 -0700</date>
            <delta_ts>2018-05-10 19:31:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183721-20180505014653.patch</filename>
            <type>text/plain</type>
            <size>47413</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YTExOTFkOTAzZDIwZTEyNzk5ZGNjZjk1ODBjZDE3YzFlNzY5M2EzLi45NzVhYTZmMGJkMTRkM2Jk
NDkzZThkMTgxMGRiNzRiOWRmNTE0ZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxOC0wNS0wMSAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgIioiIG9w
ZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgzNzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgQWRk
ZWQgQmlnSW50IHN1cHBvcnQgaW50byB0aW1lcyBiaW5hcnkgb3BlcmF0b3IgaW50byBMTEludCBh
bmQgb24KKyAgICAgICAgSklUT3BlcmF0aW9ucyBwcm9maWxlZE11bCBhbmQgdW5wcm9maWxlZE11
bC4gV2UgYXJlIGFsc28gcmVwbGFjaW5nIGFsbAorICAgICAgICB1c2VzIG9mIGludCB0byB1bnNp
Z25lZCB3aGVuIHRoZXJlIGlzIG5vIG5lZ2F0aXZlIHZhbHVlcyBmb3IKKyAgICAgICAgdmFyaWFi
bGVzLgorCisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6CisgICAg
ICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNCaWdJbnQuY3BwOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6SlNCaWdJbnQpOgor
ICAgICAgICAoSlNDOjpKU0JpZ0ludDo6YWxsb2NhdGlvblNpemUpOgorICAgICAgICAoSlNDOjpK
U0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojp0b1N0
cmluZyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjptdWx0aXBseSk6CisgICAgICAgIChKU0M6
OkpTQmlnSW50OjpkaWdpdERpdik6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjppbnRlcm5hbE11
bHRpcGx5QWRkKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6Om11bHRpcGx5QWNjdW11bGF0ZSk6
CisgICAgICAgIChKU0M6OkpTQmlnSW50OjplcXVhbHMpOgorICAgICAgICAoSlNDOjpKU0JpZ0lu
dDo6YWJzb2x1dGVEaXZTbWFsbCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpjYWxjdWxhdGVN
YXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OnRvU3Ry
aW5nR2VuZXJpYyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpyaWdodFRyaW0pOgorICAgICAg
ICAoSlNDOjpKU0JpZ0ludDo6YWxsb2NhdGVGb3IpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6
cGFyc2VJbnQpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6ZGlnaXQpOgorICAgICAgICAoSlND
OjpKU0JpZ0ludDo6c2V0RGlnaXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFs
dWVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvTnVtZXJpYyBjb25zdCk6Cisg
ICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6CisgICAgICAgIChKU0M6OmpzTXVsKToKKwog
MjAxOC0wNC0yOCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzMTEzMS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggY2Vl
NjU2MjM0MzE3NzBmNGJmNDAyYWRhMGM4NzczNThmODAwYjY3ZC4uZTQ2NTBhYzMwODBmNmI0MjBi
NjM3OGI2NjVjZWQ1MjZiYjlkZTVhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKQEAgLTE0NiwxNCArMTQ2LDE0IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWUgY2hpbGQyQ29uc3RhbnQgPSBt
X3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQyKCkubm9kZSgpKS52YWx1ZSgpOwogCiAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBSZXZpc2l0IHRoaXMgY29uZGl0aW9uIHdoZW4gaW50cm9k
dWNpbmcgQmlnSW50IHRvIEpTQy4KLSAgICAgICAgICAgICAgICAgICAgYXV0byBpc05vblN0cmlu
Z0NlbGxDb25zdGFudCA9IFtdIChKU1ZhbHVlIHZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gdmFsdWUgJiYgdmFsdWUuaXNDZWxsKCkgJiYgIXZhbHVlLmlzU3RyaW5nKCk7
CisgICAgICAgICAgICAgICAgICAgIGF1dG8gaXNOb25TdHJpbmdPckJpZ0ludENlbGxDb25zdGFu
dCA9IFtdIChKU1ZhbHVlIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
dmFsdWUgJiYgdmFsdWUuaXNDZWxsKCkgJiYgIXZhbHVlLmlzU3RyaW5nKCkgJiYgIXZhbHVlLmlz
QmlnSW50KCk7CiAgICAgICAgICAgICAgICAgICAgIH07CiAKLSAgICAgICAgICAgICAgICAgICAg
aWYgKGlzTm9uU3RyaW5nQ2VsbENvbnN0YW50KGNoaWxkMUNvbnN0YW50KSkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoaXNOb25TdHJpbmdPckJpZ0ludENlbGxDb25zdGFudChjaGlsZDFDb25z
dGFudCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZlcnRUb0NvbXBhcmVF
cVB0cihtX2dyYXBoLmZyZWV6ZVN0cm9uZyhjaGlsZDFDb25zdGFudC5hc0NlbGwoKSksIG5vZGUt
PmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwotICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzTm9uU3RyaW5nQ2VsbENvbnN0YW50KGNoaWxk
MkNvbnN0YW50KSkgeworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzTm9uU3RyaW5n
T3JCaWdJbnRDZWxsQ29uc3RhbnQoY2hpbGQyQ29uc3RhbnQpKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBub2RlLT5jb252ZXJ0VG9Db21wYXJlRXFQdHIobV9ncmFwaC5mcmVlemVTdHJvbmco
Y2hpbGQyQ29uc3RhbnQuYXNDZWxsKCkpLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggMzY1YmI3Mzc1NWE3
YTQ1NGNmMDg1NDM2YzYzNzhkMWJmNzNmZWM0Yi4uNzRkYjI2MjRmNjJhY2I3YTJhMGIwMTc2MWQy
Y2M5YmRlOGM3ZTk2MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuY3BwCkBAIC0yNTU0LDIxICsyNTU0LDIxIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmFsdWVBZGROb09wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1BTFdBWVNfSU5MSU5FIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSB1bnByb2ZpbGVkTXVsKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQor
QUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgdW5wcm9maWxlZE11bChFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIpCiB7CisgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZE9wMSk7CiAgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9w
Mik7CiAKLSAgICBkb3VibGUgYSA9IG9wMS50b051bWJlcihleGVjKTsKKyAgICBKU1ZhbHVlIGpz
UmVzdWx0ID0ganNNdWwoZXhlYywgb3AxLCBvcDIpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBkb3Vi
bGUgYiA9IG9wMi50b051bWJlcihleGVjKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKGEgKiBiKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Jlc3VsdCk7CiB9
CiAKLUFMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHByb2ZpbGVkTXVsKFZNJiB2
bSwgRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUmIGFyaXRoUHJvZmlsZSwgYm9vbCBzaG91bGRP
YnNlcnZlTEhTQW5kUkhTVHlwZXMgPSB0cnVlKQorQUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgcHJvZmlsZWRNdWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUmIGFyaXRoUHJv
ZmlsZSwgYm9vbCBzaG91bGRPYnNlcnZlTEhTQW5kUkhTVHlwZXMgPSB0cnVlKQogeworICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwogICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwogICAg
IEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOwpAQCAtMjU3NiwxMiAr
MjU3Niw4IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHByb2ZpbGVkTXVs
KFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkCiAgICAgaWYgKHNob3VsZE9ic2VydmVM
SFNBbmRSSFNUeXBlcykKICAgICAgICAgYXJpdGhQcm9maWxlLm9ic2VydmVMSFNBbmRSSFMob3Ax
LCBvcDIpOwogCi0gICAgZG91YmxlIGEgPSBvcDEudG9OdW1iZXIoZXhlYyk7Ci0gICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgZG91YmxlIGIgPSBv
cDIudG9OdW1iZXIoZXhlYyk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc011bChleGVjLCBvcDEs
IG9wMik7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7
Ci0gICAgCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhICogYik7CiAgICAgYXJpdGhQ
cm9maWxlLm9ic2VydmVSZXN1bHQocmVzdWx0KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHJlc3VsdCk7CiB9CkBAIC0yNTkxLDcgKzI1ODcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
ZQogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGV4ZWMpOwogCi0gICAgcmV0dXJuIHVucHJvZmlsZWRNdWwoKnZtLCBleGVjLCBl
bmNvZGVkT3AxLCBlbmNvZGVkT3AyKTsKKyAgICByZXR1cm4gdW5wcm9maWxlZE11bChleGVjLCBl
bmNvZGVkT3AxLCBlbmNvZGVkT3AyKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZU11bE5vT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRNdWxJQyopCkBA
IC0yNTk5LDcgKzI1OTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlTXVsTm9PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZQogICAgIFZNKiB2bSA9
ICZleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMp
OwogCi0gICAgcmV0dXJuIHVucHJvZmlsZWRNdWwoKnZtLCBleGVjLCBlbmNvZGVkT3AxLCBlbmNv
ZGVkT3AyKTsKKyAgICByZXR1cm4gdW5wcm9maWxlZE11bChleGVjLCBlbmNvZGVkT3AxLCBlbmNv
ZGVkT3AyKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1
ZU11bE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUTXVsSUMqIG11bElDKQpAQCAtMjYxNiw3ICsy
NjEyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bE9w
dGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEoKICAgICBleGVjLT5jb2RlQmxvY2soKS0+
ZHVtcE1hdGhJQ1N0YXRzKCk7CiAjZW5kaWYKIAotICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKCp2
bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CisgICAgcmV0dXJuIHVucHJvZmlsZWRN
dWwoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRo
UHJvZmlsZSogYXJpdGhQcm9maWxlKQpAQCAtMjYyNSw3ICsyNjIxLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEoKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsK
IAogICAgIEFTU0VSVChhcml0aFByb2ZpbGUpOwotICAgIHJldHVybiBwcm9maWxlZE11bCgqdm0s
IGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIsICphcml0aFByb2ZpbGUpOworICAgIHJldHVy
biBwcm9maWxlZE11bChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxl
KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFBy
b2ZpbGVkT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBKSVRNdWxJQyogbXVsSUMpCkBAIC0yNjQzLDcg
KzI2MzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVs
UHJvZmlsZWRPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsCiAgICAgZXhlYy0+Y29kZUJsb2NrKCkt
PmR1bXBNYXRoSUNTdGF0cygpOwogI2VuZGlmCiAKLSAgICByZXR1cm4gcHJvZmlsZWRNdWwoKnZt
LCBleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlLCBmYWxzZSk7Cisg
ICAgcmV0dXJuIHByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIsICphcml0
aFByb2ZpbGUsIGZhbHNlKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25WYWx1ZU11bFByb2ZpbGVkTm9PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVE11bElDKiBt
dWxJQykKQEAgLTI2NTMsNyArMjY0OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZE5vT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjCiAKICAg
ICBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG11bElDLT5hcml0aFByb2ZpbGUoKTsKICAg
ICBBU1NFUlQoYXJpdGhQcm9maWxlKTsKLSAgICByZXR1cm4gcHJvZmlsZWRNdWwoKnZtLCBleGVj
LCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlKTsKKyAgICByZXR1cm4gcHJv
ZmlsZWRNdWwoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSk7CiB9
CiAKIEFMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHVucHJvZmlsZWROZWdhdGUo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3BlcmFuZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCmluZGV4IGU2
YzFhNDRkNjdmNDIxNDUyODVmYjBkMjAwNzQ1ZGJjYjNhN2RmNzcuLjllOTFkNDMzZjU4ODQ0N2Fm
YzY2MWEyNmU3NjFkNDFhYWE1NGFiNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtNjUsNiArNjUsNyBAQAogI2luY2x1ZGUg
IlRodW5rR2VuZXJhdG9ycy5oIgogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgogI2luY2x1
ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAK
IG5hbWVzcGFjZSBKU0MgewogCkBAIC00ODYsMTEgKzQ4Nyw4IEBAIFNMT1dfUEFUSF9ERUNMKHNs
b3dfcGF0aF9tdWwpCiAgICAgQkVHSU4oKTsKICAgICBKU1ZhbHVlIGxlZnQgPSBPUF9DKDIpLmpz
VmFsdWUoKTsKICAgICBKU1ZhbHVlIHJpZ2h0ID0gT1BfQygzKS5qc1ZhbHVlKCk7Ci0gICAgZG91
YmxlIGEgPSBsZWZ0LnRvTnVtYmVyKGV4ZWMpOwotICAgIGlmIChVTkxJS0VMWSh0aHJvd1Njb3Bl
LmV4Y2VwdGlvbigpKSkKLSAgICAgICAgUkVUVVJOKEpTVmFsdWUoKSk7Ci0gICAgZG91YmxlIGIg
PSByaWdodC50b051bWJlcihleGVjKTsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEg
KiBiKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTXVsKGV4ZWMsIGxlZnQsIHJpZ2h0KTsKKyAg
ICBDSEVDS19FWENFUFRJT04oKTsKICAgICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVzdWx0LCB7
CiAgICAgICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvckJpbmFyeUFyaXRoT3AoZXhlYywgcGMsIHJl
c3VsdCwgbGVmdCwgcmlnaHQpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCaWdJbnQuY3BwCmluZGV4IGM1MWM4YjIxMGQ5M2MxN2Y5NjQwMGVmZTc3ZGFhNjcyYTI1
OWE2ZDMuLjkxOTdiOWExYTQ0ZGM1MTEyNzAyZGE3OGExODg5ODA3OGYyZDY0OWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAg
dm9pZCBKU0JpZ0ludDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7CiB9
CiAKLUpTQmlnSW50OjpKU0JpZ0ludChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQg
bGVuZ3RoKQorSlNCaWdJbnQ6OkpTQmlnSW50KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IHVuc2lnbmVkIGxlbmd0aCkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKICAgICAsIG1fbGVu
Z3RoKGxlbmd0aCkKIHsgfQpAQCAtOTMsMTMgKzkzLDEzIEBAIEpTQmlnSW50KiBKU0JpZ0ludDo6
Y3JlYXRlWmVybyhWTSYgdm0pCiAgICAgcmV0dXJuIHplcm9CaWdJbnQ7CiB9CiAKLXNpemVfdCBK
U0JpZ0ludDo6YWxsb2NhdGlvblNpemUoaW50IGxlbmd0aCkKK3NpemVfdCBKU0JpZ0ludDo6YWxs
b2NhdGlvblNpemUodW5zaWduZWQgbGVuZ3RoKQogewogICAgIHNpemVfdCBzaXplV2l0aFBhZGRp
bmcgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8c2l6ZW9mKHNpemVfdCk+KHNpemVvZihKU0Jp
Z0ludCkpOwogICAgIHJldHVybiBzaXplV2l0aFBhZGRpbmcgKyBsZW5ndGggKiBzaXplb2YoRGln
aXQpOwogfQogCi1KU0JpZ0ludCogSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGgoVk0mIHZtLCBp
bnQgbGVuZ3RoKQorSlNCaWdJbnQqIEpTQmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoKFZNJiB2bSwg
dW5zaWduZWQgbGVuZ3RoKQogewogICAgIEpTQmlnSW50KiBiaWdJbnQgPSBuZXcgKE5vdE51bGws
IGFsbG9jYXRlQ2VsbDxKU0JpZ0ludD4odm0uaGVhcCwgYWxsb2NhdGlvblNpemUobGVuZ3RoKSkp
IEpTQmlnSW50KHZtLCB2bS5iaWdJbnRTdHJ1Y3R1cmUuZ2V0KCksIGxlbmd0aCk7CiAgICAgYmln
SW50LT5maW5pc2hDcmVhdGlvbih2bSk7CkBAIC0yMjMsNyArMjIzLDcgQEAgSlNCaWdJbnQqIEpT
QmlnSW50OjpwYXJzZUludChFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0sIFN0cmluZ1ZpZXcgcywg
dWludDhfdCByYWQKICAgICByZXR1cm4gcGFyc2VJbnQoc3RhdGUsIHZtLCBzLmNoYXJhY3RlcnMx
NigpLCBzLmxlbmd0aCgpLCAwLCByYWRpeCwgZmFsc2UpOwogfQogCi1TdHJpbmcgSlNCaWdJbnQ6
OnRvU3RyaW5nKEV4ZWNTdGF0ZSYgc3RhdGUsIGludCByYWRpeCkKK1N0cmluZyBKU0JpZ0ludDo6
dG9TdHJpbmcoRXhlY1N0YXRlJiBzdGF0ZSwgdW5zaWduZWQgcmFkaXgpCiB7CiAgICAgaWYgKHRo
aXMtPmlzWmVybygpKQogICAgICAgICByZXR1cm4gc3RhdGUudm0oKS5zbWFsbFN0cmluZ3Muc2lu
Z2xlQ2hhcmFjdGVyU3RyaW5nUmVwKCcwJyk7CkBAIC0yNDYsNiArMjQ2LDI2IEBAIHZvaWQgSlNC
aWdJbnQ6OmlucGxhY2VNdWx0aXBseUFkZCh1aW50cHRyX3QgZmFjdG9yLCB1aW50cHRyX3Qgc3Vt
bWFuZCkKICAgICBpbnRlcm5hbE11bHRpcGx5QWRkKHRoaXMsIGZhY3Rvciwgc3VtbWFuZCwgbGVu
Z3RoKCksIHRoaXMpOwogfQogCitKU0JpZ0ludCogSlNCaWdJbnQ6Om11bHRpcGx5KEV4ZWNTdGF0
ZSogc3RhdGUsIEpTQmlnSW50KiB4LCBKU0JpZ0ludCogeSkKK3sKKyAgICBWTSYgdm0gPSBzdGF0
ZS0+dm0oKTsKKworICAgIGlmICh4LT5pc1plcm8oKSkKKyAgICAgICAgcmV0dXJuIHg7CisgICAg
aWYgKHktPmlzWmVybygpKQorICAgICAgICByZXR1cm4geTsKKworICAgIHVuc2lnbmVkIHJlc3Vs
dExlbmd0aCA9IHgtPmxlbmd0aCgpICsgeS0+bGVuZ3RoKCk7CisgICAgSlNCaWdJbnQqIHJlc3Vs
dCA9IEpTQmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoKHZtLCByZXN1bHRMZW5ndGgpOworICAgIHJl
c3VsdC0+aW5pdGlhbGl6ZShJbml0aWFsaXphdGlvblR5cGU6OldpdGhaZXJvKTsKKworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCB4LT5sZW5ndGgoKTsgaSsrKQorICAgICAgICBtdWx0aXBs
eUFjY3VtdWxhdGUoeSwgeC0+ZGlnaXQoaSksIHJlc3VsdCwgaSk7CisKKyAgICByZXN1bHQtPnNl
dFNpZ24oeC0+c2lnbigpICE9IHktPnNpZ24oKSk7CisgICAgcmV0dXJuIHJlc3VsdC0+cmlnaHRU
cmltKHZtKTsKK30KKwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAjZGVmaW5lIEhBVkVfVFdPX0RJ
R0lUIDEKIHR5cGVkZWYgdWludDY0X3QgVHdvRGlnaXQ7CkBAIC0zNzgsOSArMzk4LDkgQEAgSlNC
aWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdERpdihEaWdpdCBoaWdoLCBEaWdpdCBsb3csIERp
Z2l0IGRpdmlzb3IsIERpZ2l0JgogICAgIHN0YXRpYyBjb25zdCBEaWdpdCBrSGFsZkRpZ2l0QmFz
ZSA9IDF1bGwgPDwgaGFsZkRpZ2l0Qml0czsKICAgICAvLyBBZGFwdGVkIGZyb20gV2FycmVuLCBI
YWNrZXIncyBEZWxpZ2h0LCBwLiAxNTIuCiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICBpbnQgcyA9
IGNsejY0KGRpdmlzb3IpOworICAgIHVuc2lnbmVkIHMgPSBjbHo2NChkaXZpc29yKTsKICNlbHNl
Ci0gICAgaW50IHMgPSBjbHozMihkaXZpc29yKTsKKyAgICB1bnNpZ25lZCBzID0gY2x6MzIoZGl2
aXNvcik7CiAjZW5kaWYKICAgICBkaXZpc29yIDw8PSBzOwogICAgIApAQCAtNDIzLDE0ICs0NDMs
MTQgQEAgSlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdERpdihEaWdpdCBoaWdoLCBEaWdp
dCBsb3csIERpZ2l0IGRpdmlzb3IsIERpZ2l0JgogCiAvLyBNdWx0aXBsaWVzIHtzb3VyY2V9IHdp
dGgge2ZhY3Rvcn0gYW5kIGFkZHMge3N1bW1hbmR9IHRvIHRoZSByZXN1bHQuCiAvLyB7cmVzdWx0
fSBhbmQge3NvdXJjZX0gbWF5IGJlIHRoZSBzYW1lIEJpZ0ludCBmb3IgaW5wbGFjZSBtb2RpZmlj
YXRpb24uCi12b2lkIEpTQmlnSW50OjppbnRlcm5hbE11bHRpcGx5QWRkKEpTQmlnSW50KiBzb3Vy
Y2UsIERpZ2l0IGZhY3RvciwgRGlnaXQgc3VtbWFuZCwgaW50IG4sIEpTQmlnSW50KiByZXN1bHQp
Cit2b2lkIEpTQmlnSW50OjppbnRlcm5hbE11bHRpcGx5QWRkKEpTQmlnSW50KiBzb3VyY2UsIERp
Z2l0IGZhY3RvciwgRGlnaXQgc3VtbWFuZCwgdW5zaWduZWQgbiwgSlNCaWdJbnQqIHJlc3VsdCkK
IHsKICAgICBBU1NFUlQoc291cmNlLT5sZW5ndGgoKSA+PSBuKTsKICAgICBBU1NFUlQocmVzdWx0
LT5sZW5ndGgoKSA+PSBuKTsKIAogICAgIERpZ2l0IGNhcnJ5ID0gc3VtbWFuZDsKICAgICBEaWdp
dCBoaWdoID0gMDsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgeworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgRGlnaXQgY3VycmVudCA9IHNv
dXJjZS0+ZGlnaXQoaSk7CiAgICAgICAgIERpZ2l0IG5ld0NhcnJ5ID0gMDsKIApAQCAtNDU4LDYg
KzQ3OCw0OSBAQCB2b2lkIEpTQmlnSW50OjppbnRlcm5hbE11bHRpcGx5QWRkKEpTQmlnSW50KiBz
b3VyY2UsIERpZ2l0IGZhY3RvciwgRGlnaXQgc3VtbWFuZAogICAgICAgICBBU1NFUlQoIShjYXJy
eSArIGhpZ2gpKTsKIH0KIAorLy8gTXVsdGlwbGllcyB7bXVsdGlwbGljYW5kfSB3aXRoIHttdWx0
aXBsaWVyfSBhbmQgYWRkcyB0aGUgcmVzdWx0IHRvCisvLyB7YWNjdW11bGF0b3J9LCBzdGFydGlu
ZyBhdCB7YWNjdW11bGF0b3JJbmRleH0gZm9yIHRoZSBsZWFzdC1zaWduaWZpY2FudAorLy8gZGln
aXQuCisvLyBDYWxsZXJzIG11c3QgZW5zdXJlIHRoYXQge2FjY3VtdWxhdG9yfSBpcyBiaWcgZW5v
dWdoIHRvIGhvbGQgdGhlIHJlc3VsdC4KK3ZvaWQgSlNCaWdJbnQ6Om11bHRpcGx5QWNjdW11bGF0
ZShKU0JpZ0ludCogbXVsdGlwbGljYW5kLCBEaWdpdCBtdWx0aXBsaWVyLCBKU0JpZ0ludCogYWNj
dW11bGF0b3IsIHVuc2lnbmVkIGFjY3VtdWxhdG9ySW5kZXgpCit7CisgICAgQVNTRVJUKGFjY3Vt
dWxhdG9yLT5sZW5ndGgoKSA+IG11bHRpcGxpY2FuZC0+bGVuZ3RoKCkgKyBhY2N1bXVsYXRvcklu
ZGV4KTsKKyAgICBpZiAoIW11bHRpcGxpZXIpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBE
aWdpdCBjYXJyeSA9IDA7CisgICAgRGlnaXQgaGlnaCA9IDA7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG11bHRpcGxpY2FuZC0+bGVuZ3RoKCk7IGkrKywgYWNjdW11bGF0b3JJbmRleCsr
KSB7CisgICAgICAgIERpZ2l0IGFjYyA9IGFjY3VtdWxhdG9yLT5kaWdpdChhY2N1bXVsYXRvcklu
ZGV4KTsKKyAgICAgICAgRGlnaXQgbmV3Q2FycnkgPSAwOworICAgICAgICAKKyAgICAgICAgLy8g
QWRkIGxhc3Qgcm91bmQncyBjYXJyeW92ZXJzLgorICAgICAgICBhY2MgPSBkaWdpdEFkZChhY2Ms
IGhpZ2gsIG5ld0NhcnJ5KTsKKyAgICAgICAgYWNjID0gZGlnaXRBZGQoYWNjLCBjYXJyeSwgbmV3
Q2FycnkpOworICAgICAgICAKKyAgICAgICAgLy8gQ29tcHV0ZSB0aGlzIHJvdW5kJ3MgbXVsdGlw
bGljYXRpb24uCisgICAgICAgIERpZ2l0IG11bHRpcGxpY2FuZERpZ2l0ID0gbXVsdGlwbGljYW5k
LT5kaWdpdChpKTsKKyAgICAgICAgRGlnaXQgbG93ID0gZGlnaXRNdWwobXVsdGlwbGllciwgbXVs
dGlwbGljYW5kRGlnaXQsIGhpZ2gpOworICAgICAgICBhY2MgPSBkaWdpdEFkZChhY2MsIGxvdywg
bmV3Q2FycnkpOworICAgICAgICAKKyAgICAgICAgLy8gU3RvcmUgcmVzdWx0IGFuZCBwcmVwYXJl
IGZvciBuZXh0IHJvdW5kLgorICAgICAgICBhY2N1bXVsYXRvci0+c2V0RGlnaXQoYWNjdW11bGF0
b3JJbmRleCwgYWNjKTsKKyAgICAgICAgY2FycnkgPSBuZXdDYXJyeTsKKyAgICB9CisgICAgCisg
ICAgd2hpbGUgKGNhcnJ5IHx8IGhpZ2gpIHsKKyAgICAgICAgQVNTRVJUKGFjY3VtdWxhdG9ySW5k
ZXggPCBhY2N1bXVsYXRvci0+bGVuZ3RoKCkpOworICAgICAgICBEaWdpdCBhY2MgPSBhY2N1bXVs
YXRvci0+ZGlnaXQoYWNjdW11bGF0b3JJbmRleCk7CisgICAgICAgIERpZ2l0IG5ld0NhcnJ5ID0g
MDsKKyAgICAgICAgYWNjID0gZGlnaXRBZGQoYWNjLCBoaWdoLCBuZXdDYXJyeSk7CisgICAgICAg
IGhpZ2ggPSAwOworICAgICAgICBhY2MgPSBkaWdpdEFkZChhY2MsIGNhcnJ5LCBuZXdDYXJyeSk7
CisgICAgICAgIGFjY3VtdWxhdG9yLT5zZXREaWdpdChhY2N1bXVsYXRvckluZGV4LCBhY2MpOwor
ICAgICAgICBjYXJyeSA9IG5ld0NhcnJ5OworICAgICAgICBhY2N1bXVsYXRvckluZGV4Kys7Cisg
ICAgfQorfQorCiBib29sIEpTQmlnSW50OjplcXVhbHMoSlNCaWdJbnQqIHgsIEpTQmlnSW50KiB5
KQogewogICAgIGlmICh4LT5zaWduKCkgIT0geS0+c2lnbigpKQpAQCAtNDY2LDcgKzUyOSw3IEBA
IGJvb2wgSlNCaWdJbnQ6OmVxdWFscyhKU0JpZ0ludCogeCwgSlNCaWdJbnQqIHkpCiAgICAgaWYg
KHgtPmxlbmd0aCgpICE9IHktPmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBmb3IgKGludCBpID0gMDsgaSA8IHgtPmxlbmd0aCgpOyBpKyspIHsKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgeC0+bGVuZ3RoKCk7IGkrKykgewogICAgICAgICBpZiAoeC0+ZGlnaXQo
aSkgIT0geS0+ZGlnaXQoaSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAt
NDk0LDcgKzU1Nyw3IEBAIHZvaWQgSlNCaWdJbnQ6OmFic29sdXRlRGl2U21hbGwoRXhlY1N0YXRl
JiBzdGF0ZSwgSlNCaWdJbnQqIHgsIERpZ2l0IGRpdmlzb3IsIEpTCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBpbnQgbGVuZ3RoID0geC0+bGVuZ3RoKCk7CisgICAgdW5zaWduZWQgbGVu
Z3RoID0geC0+bGVuZ3RoKCk7CiAgICAgaWYgKHF1b3RpZW50ICE9IG51bGxwdHIpIHsKICAgICAg
ICAgaWYgKCpxdW90aWVudCA9PSBudWxscHRyKQogICAgICAgICAgICAgKnF1b3RpZW50ID0gSlNC
aWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGgodm0sIGxlbmd0aCk7CkBAIC01MjEsMTQgKzU4NCwxNCBA
QCBjb25zdGV4cHIgdWludDhfdCBtYXhCaXRzUGVyQ2hhclRhYmxlW10gPSB7CiAgICAgMTYyLCAx
NjMsIDE2NSwgMTY2LCAgICAgICAgICAgICAgICAgICAgICAgICAvLyAzMy4uMzYKIH07CiAKLXN0
YXRpYyBjb25zdCBpbnQgYml0c1BlckNoYXJUYWJsZVNoaWZ0ID0gNTsKK3N0YXRpYyBjb25zdCB1
bnNpZ25lZCBiaXRzUGVyQ2hhclRhYmxlU2hpZnQgPSA1Owogc3RhdGljIGNvbnN0IHNpemVfdCBi
aXRzUGVyQ2hhclRhYmxlTXVsdGlwbGllciA9IDF1IDw8IGJpdHNQZXJDaGFyVGFibGVTaGlmdDsK
IAogLy8gQ29tcHV0ZSAoYW4gb3ZlcmFwcHJveGltYXRpb24gb2YpIHRoZSBsZW5ndGggb2YgdGhl
IHJlc3VsdGluZyBzdHJpbmc6CiAvLyBEaXZpZGUgYml0IGxlbmd0aCBvZiB0aGUgQmlnSW50IGJ5
IGJpdHMgcmVwcmVzZW50YWJsZSBwZXIgY2hhcmFjdGVyLgotdWludDY0X3QgSlNCaWdJbnQ6OmNh
bGN1bGF0ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQoaW50IGxlbmd0aCwgaW50IHJhZGl4LCBE
aWdpdCBsYXN0RGlnaXQsIGJvb2wgc2lnbikKK3VpbnQ2NF90IEpTQmlnSW50OjpjYWxjdWxhdGVN
YXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQgcmFkaXgs
IERpZ2l0IGxhc3REaWdpdCwgYm9vbCBzaWduKQogewotICAgIGludCBsZWFkaW5nWmVyb3M7Cisg
ICAgdW5zaWduZWQgbGVhZGluZ1plcm9zOwogICAgIGlmIChzaXplb2YobGFzdERpZ2l0KSA9PSA4
KQogICAgICAgICBsZWFkaW5nWmVyb3MgPSBjbHo2NChsYXN0RGlnaXQpOwogICAgIGVsc2UKQEAg
LTU1Niw3ICs2MTksNyBAQCB1aW50NjRfdCBKU0JpZ0ludDo6Y2FsY3VsYXRlTWF4aW11bUNoYXJh
Y3RlcnNSZXF1aXJlZChpbnQgbGVuZ3RoLCBpbnQgcmFkaXgsIERpZwogICAgIHJldHVybiBtYXhp
bXVtQ2hhcmFjdGVyc1JlcXVpcmVkOwogfQogCi1TdHJpbmcgSlNCaWdJbnQ6OnRvU3RyaW5nR2Vu
ZXJpYyhFeGVjU3RhdGUmIHN0YXRlLCBKU0JpZ0ludCogeCwgaW50IHJhZGl4KQorU3RyaW5nIEpT
QmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQqIHgsIHVu
c2lnbmVkIHJhZGl4KQogewogICAgIC8vIEZJWE1FOiBbSlNDXSBSZXZpc2l0IHVzYWdlIG9mIFN0
cmluZ1ZlY3RvciBpbnRvIEpTQmlnSW50Ojp0b1N0cmluZwogICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA2NwpAQCAtNTY1LDcgKzYyOCw3IEBAIFN0cmlu
ZyBKU0JpZ0ludDo6dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4
LCBpbnQgcmFkaXgpCiAgICAgQVNTRVJUKHJhZGl4ID49IDIgJiYgcmFkaXggPD0gMzYpOwogICAg
IEFTU0VSVCgheC0+aXNaZXJvKCkpOwogCi0gICAgaW50IGxlbmd0aCA9IHgtPmxlbmd0aCgpOwor
ICAgIHVuc2lnbmVkIGxlbmd0aCA9IHgtPmxlbmd0aCgpOwogICAgIGJvb2wgc2lnbiA9IHgtPnNp
Z24oKTsKIAogICAgIHVpbnQ4X3QgbWF4Qml0c1BlckNoYXIgPSBtYXhCaXRzUGVyQ2hhclRhYmxl
W3JhZGl4XTsKQEAgLTU4MSwxMiArNjQ0LDEyIEBAIFN0cmluZyBKU0JpZ0ludDo6dG9TdHJpbmdH
ZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCBpbnQgcmFkaXgpCiAgICAgaWYg
KGxlbmd0aCA9PSAxKQogICAgICAgICBsYXN0RGlnaXQgPSB4LT5kaWdpdCgwKTsKICAgICBlbHNl
IHsKLSAgICAgICAgaW50IGNodW5rQ2hhcnMgPSBkaWdpdEJpdHMgKiBiaXRzUGVyQ2hhclRhYmxl
TXVsdGlwbGllciAvIG1heEJpdHNQZXJDaGFyOworICAgICAgICB1bnNpZ25lZCBjaHVua0NoYXJz
ID0gZGlnaXRCaXRzICogYml0c1BlckNoYXJUYWJsZU11bHRpcGxpZXIgLyBtYXhCaXRzUGVyQ2hh
cjsKICAgICAgICAgRGlnaXQgY2h1bmtEaXZpc29yID0gZGlnaXRQb3cocmFkaXgsIGNodW5rQ2hh
cnMpOwogCiAgICAgICAgIC8vIEJ5IGNvbnN0cnVjdGlvbiBvZiBjaHVua0NoYXJzLCB0aGVyZSBj
YW4ndCBoYXZlIGJlZW4gb3ZlcmZsb3cuCiAgICAgICAgIEFTU0VSVChjaHVua0Rpdmlzb3IpOwot
ICAgICAgICBpbnQgbm9uWmVyb0RpZ2l0ID0gbGVuZ3RoIC0gMTsKKyAgICAgICAgdW5zaWduZWQg
bm9uWmVyb0RpZ2l0ID0gbGVuZ3RoIC0gMTsKICAgICAgICAgQVNTRVJUKHgtPmRpZ2l0KG5vblpl
cm9EaWdpdCkpOwogCiAgICAgICAgIC8vIHtyZXN0fSBob2xkcyB0aGUgcGFydCBvZiB0aGUgQmln
SW50IHRoYXQgd2UgaGF2ZW4ndCBsb29rZWQgYXQgeWV0LgpAQCAtNjAyLDcgKzY2NSw3IEBAIFN0
cmluZyBKU0JpZ0ludDo6dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50
KiB4LCBpbnQgcmFkaXgpCiAgICAgICAgICAgICBBU1NFUlQocmVzdCk7CiAKICAgICAgICAgICAg
IGRpdmlkZW5kID0gJnJlc3Q7Ci0gICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNodW5r
Q2hhcnM7IGkrKykgeworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNodW5r
Q2hhcnM7IGkrKykgewogICAgICAgICAgICAgICAgIHJlc3VsdFN0cmluZy5hcHBlbmQocmFkaXhE
aWdpdHNbY2h1bmsgJSByYWRpeF0pOwogICAgICAgICAgICAgICAgIGNodW5rIC89IHJhZGl4Owog
ICAgICAgICAgICAgfQpAQCAtNjI3LDcgKzY5MCw3IEBAIFN0cmluZyBKU0JpZ0ludDo6dG9TdHJp
bmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCBpbnQgcmFkaXgpCiAgICAg
QVNTRVJUKHJlc3VsdFN0cmluZy5zaXplKCkgPD0gc3RhdGljX2Nhc3Q8c2l6ZV90PihtYXhpbXVt
Q2hhcmFjdGVyc1JlcXVpcmVkKSk7CiAKICAgICAvLyBSZW1vdmUgbGVhZGluZyB6ZXJvZXMuCi0g
ICAgaW50IG5ld1NpemVOb0xlYWRpbmdaZXJvZXMgPSByZXN1bHRTdHJpbmcuc2l6ZSgpOworICAg
IHVuc2lnbmVkIG5ld1NpemVOb0xlYWRpbmdaZXJvZXMgPSByZXN1bHRTdHJpbmcuc2l6ZSgpOwog
ICAgIHdoaWxlIChuZXdTaXplTm9MZWFkaW5nWmVyb2VzICA+IDEgJiYgcmVzdWx0U3RyaW5nW25l
d1NpemVOb0xlYWRpbmdaZXJvZXMgLSAxXSA9PSAnMCcpCiAgICAgICAgIG5ld1NpemVOb0xlYWRp
bmdaZXJvZXMtLTsKIApAQCAtNjQ2LDE0ICs3MDksMTYgQEAgSlNCaWdJbnQqIEpTQmlnSW50Ojpy
aWdodFRyaW0oVk0mIHZtKQogICAgIGlmIChpc1plcm8oKSkKICAgICAgICAgcmV0dXJuIHRoaXM7
CiAKKyAgICBBU1NFUlQobV9sZW5ndGgpOworCiAgICAgaW50IG5vblplcm9JbmRleCA9IG1fbGVu
Z3RoIC0gMTsKICAgICB3aGlsZSAobm9uWmVyb0luZGV4ID49IDAgJiYgIWRpZ2l0KG5vblplcm9J
bmRleCkpCiAgICAgICAgIG5vblplcm9JbmRleC0tOwogCi0gICAgaWYgKG5vblplcm9JbmRleCA9
PSBtX2xlbmd0aCAtIDEpCisgICAgaWYgKG5vblplcm9JbmRleCA9PSBzdGF0aWNfY2FzdDxpbnQ+
KG1fbGVuZ3RoIC0gMSkpCiAgICAgICAgIHJldHVybiB0aGlzOwogCi0gICAgaW50IG5ld0xlbmd0
aCA9IG5vblplcm9JbmRleCArIDE7CisgICAgdW5zaWduZWQgbmV3TGVuZ3RoID0gbm9uWmVyb0lu
ZGV4ICsgMTsKICAgICBKU0JpZ0ludCogdHJpbW1lZEJpZ0ludCA9IGNyZWF0ZVdpdGhMZW5ndGgo
dm0sIG5ld0xlbmd0aCk7CiAgICAgUkVMRUFTRV9BU1NFUlQodHJpbW1lZEJpZ0ludCk7CiAgICAg
c3RkOjpjb3B5KGRhdGFTdG9yYWdlKCksIGRhdGFTdG9yYWdlKCkgKyBuZXdMZW5ndGgsIHRyaW1t
ZWRCaWdJbnQtPmRhdGFTdG9yYWdlKCkpOyAKQEAgLTY2MywxNCArNzI4LDE0IEBAIEpTQmlnSW50
KiBKU0JpZ0ludDo6cmlnaHRUcmltKFZNJiB2bSkKICAgICByZXR1cm4gdHJpbW1lZEJpZ0ludDsK
IH0KIAotSlNCaWdJbnQqIEpTQmlnSW50OjphbGxvY2F0ZUZvcihFeGVjU3RhdGUqIHN0YXRlLCBW
TSYgdm0sIGludCByYWRpeCwgaW50IGNoYXJjb3VudCkKK0pTQmlnSW50KiBKU0JpZ0ludDo6YWxs
b2NhdGVGb3IoRXhlY1N0YXRlKiBzdGF0ZSwgVk0mIHZtLCB1bnNpZ25lZCByYWRpeCwgdW5zaWdu
ZWQgY2hhcmNvdW50KQogewogICAgIEFTU0VSVCgyIDw9IHJhZGl4ICYmIHJhZGl4IDw9IDM2KTsK
ICAgICBBU1NFUlQoY2hhcmNvdW50ID49IDApOwogCiAgICAgc2l6ZV90IGJpdHNQZXJDaGFyID0g
bWF4Qml0c1BlckNoYXJUYWJsZVtyYWRpeF07CiAgICAgc2l6ZV90IGNoYXJzID0gY2hhcmNvdW50
OwotICAgIGNvbnN0IGludCByb3VuZHVwID0gYml0c1BlckNoYXJUYWJsZU11bHRpcGxpZXIgLSAx
OworICAgIGNvbnN0IHVuc2lnbmVkIHJvdW5kdXAgPSBiaXRzUGVyQ2hhclRhYmxlTXVsdGlwbGll
ciAtIDE7CiAgICAgaWYgKGNoYXJzIDw9IChzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1h
eCgpIC0gcm91bmR1cCkgLyBiaXRzUGVyQ2hhcikgewogICAgICAgICBzaXplX3QgYml0c01pbiA9
IGJpdHNQZXJDaGFyICogY2hhcnM7CiAKQEAgLTY3OCw3ICs3NDMsNyBAQCBKU0JpZ0ludCogSlNC
aWdJbnQ6OmFsbG9jYXRlRm9yKEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgaW50IHJhZGl4LCBp
bnQgY2hhcmNvdQogICAgICAgICBiaXRzTWluID0gKGJpdHNNaW4gKyByb3VuZHVwKSA+PiBiaXRz
UGVyQ2hhclRhYmxlU2hpZnQ7CiAgICAgICAgIGlmIChiaXRzTWluIDw9IHN0YXRpY19jYXN0PHNp
emVfdD4obWF4SW50KSkgewogICAgICAgICAgICAgLy8gRGl2aWRlIGJ5IGtEaWdpdHNCaXRzLCBy
b3VuZGluZyB1cC4KLSAgICAgICAgICAgIGludCBsZW5ndGggPSAoc3RhdGljX2Nhc3Q8aW50Pihi
aXRzTWluKSArIGRpZ2l0Qml0cyAtIDEpIC8gZGlnaXRCaXRzOworICAgICAgICAgICAgdW5zaWdu
ZWQgbGVuZ3RoID0gKGJpdHNNaW4gKyBkaWdpdEJpdHMgLSAxKSAvIGRpZ2l0Qml0czsKICAgICAg
ICAgICAgIGlmIChsZW5ndGggPD0gbWF4TGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgSlNCaWdJ
bnQqIHJlc3VsdCA9IEpTQmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoKHZtLCBsZW5ndGgpOwogICAg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC03MTksMTEgKzc4NCwxMSBAQCBzaXplX3Qg
SlNCaWdJbnQ6Om9mZnNldE9mRGF0YSgpCiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlw
ZT4KLUpTQmlnSW50KiBKU0JpZ0ludDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwgQ2hhclR5
cGUqICBkYXRhLCBpbnQgbGVuZ3RoKQorSlNCaWdJbnQqIEpTQmlnSW50OjpwYXJzZUludChFeGVj
U3RhdGUqIHN0YXRlLCBDaGFyVHlwZSogIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBW
TSYgdm0gPSBzdGF0ZS0+dm0oKTsKIAotICAgIGludCBwID0gMDsKKyAgICB1bnNpZ25lZCBwID0g
MDsKICAgICB3aGlsZSAocCA8IGxlbmd0aCAmJiBpc1N0cldoaXRlU3BhY2UoZGF0YVtwXSkpCiAg
ICAgICAgICsrcDsKIApAQCAtNzU4LDEwICs4MjMsMTAgQEAgSlNCaWdJbnQqIEpTQmlnSW50Ojpw
YXJzZUludChFeGVjU3RhdGUqIHN0YXRlLCBDaGFyVHlwZSogIGRhdGEsIGludCBsZW5ndGgpCiB9
CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLUpTQmlnSW50KiBKU0JpZ0ludDo6cGFy
c2VJbnQoRXhlY1N0YXRlKiBzdGF0ZSwgVk0mIHZtLCBDaGFyVHlwZSogZGF0YSwgaW50IGxlbmd0
aCwgaW50IHN0YXJ0SW5kZXgsIGludCByYWRpeCwgYm9vbCBhbGxvd0VtcHR5U3RyaW5nKQorSlNC
aWdJbnQqIEpTQmlnSW50OjpwYXJzZUludChFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0sIENoYXJU
eXBlKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkIHN0YXJ0SW5kZXgsIHVuc2lnbmVk
IHJhZGl4LCBib29sIGFsbG93RW1wdHlTdHJpbmcpCiB7CiAgICAgQVNTRVJUKGxlbmd0aCA+PSAw
KTsKLSAgICBpbnQgcCA9IHN0YXJ0SW5kZXg7CisgICAgdW5zaWduZWQgcCA9IHN0YXJ0SW5kZXg7
CiAKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKQEAgLTc3Nyw3
ICs4NDIsNyBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0ZSogc3RhdGUs
IFZNJiB2bSwgQ2hhclR5cGUqIGRhdGEsIGludCBsZW5ndAogCiAgICAgaW50IGVuZEluZGV4ID0g
bGVuZ3RoIC0gMTsKICAgICAvLyBSZW1vdmluZyB0cmFpbGluZyBzcGFjZXMKLSAgICB3aGlsZSAo
ZW5kSW5kZXggPj0gcCAmJiBpc1N0cldoaXRlU3BhY2UoZGF0YVtlbmRJbmRleF0pKQorICAgIHdo
aWxlIChlbmRJbmRleCA+PSBzdGF0aWNfY2FzdDxpbnQ+KHApICYmIGlzU3RyV2hpdGVTcGFjZShk
YXRhW2VuZEluZGV4XSkpCiAgICAgICAgIC0tZW5kSW5kZXg7CiAKICAgICBsZW5ndGggPSBlbmRJ
bmRleCArIDE7CkBAIC03ODUsMTYgKzg1MCwxNiBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6OnBhcnNl
SW50KEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgQ2hhclR5cGUqIGRhdGEsIGludCBsZW5ndAog
ICAgIGlmIChwID09IGxlbmd0aCkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVplcm8odm0pOwogCi0g
ICAgaW50IGxpbWl0MCA9ICcwJyArIChyYWRpeCA8IDEwID8gcmFkaXggOiAxMCk7Ci0gICAgaW50
IGxpbWl0YSA9ICdhJyArIChyYWRpeCAtIDEwKTsKLSAgICBpbnQgbGltaXRBID0gJ0EnICsgKHJh
ZGl4IC0gMTApOworICAgIHVuc2lnbmVkIGxpbWl0MCA9ICcwJyArIChyYWRpeCA8IDEwID8gcmFk
aXggOiAxMCk7CisgICAgdW5zaWduZWQgbGltaXRhID0gJ2EnICsgKHJhZGl4IC0gMTApOworICAg
IHVuc2lnbmVkIGxpbWl0QSA9ICdBJyArIChyYWRpeCAtIDEwKTsKIAogICAgIEpTQmlnSW50KiBy
ZXN1bHQgPSBhbGxvY2F0ZUZvcihzdGF0ZSwgdm0sIHJhZGl4LCBsZW5ndGggLSBwKTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAogICAgIHJlc3VsdC0+aW5pdGlh
bGl6ZShJbml0aWFsaXphdGlvblR5cGU6OldpdGhaZXJvKTsKIAotICAgIGZvciAoaW50IGkgPSBw
OyBpIDwgbGVuZ3RoOyBpKyssIHArKykgeworICAgIGZvciAodW5zaWduZWQgaSA9IHA7IGkgPCBs
ZW5ndGg7IGkrKywgcCsrKSB7CiAgICAgICAgIHVpbnQzMl90IGRpZ2l0OwogICAgICAgICBpZiAo
ZGF0YVtpXSA+PSAnMCcgJiYgZGF0YVtpXSA8IGxpbWl0MCkKICAgICAgICAgICAgIGRpZ2l0ID0g
ZGF0YVtpXSAtICcwJzsKQEAgLTgyMiwxMyArODg3LDEzIEBAIEpTQmlnSW50OjpEaWdpdCogSlNC
aWdJbnQ6OmRhdGFTdG9yYWdlKCkKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxEaWdpdCo+
KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHRoaXMpICsgb2Zmc2V0T2ZEYXRhKCkpOwogfQogCi1K
U0JpZ0ludDo6RGlnaXQgSlNCaWdJbnQ6OmRpZ2l0KGludCBuKQorSlNCaWdJbnQ6OkRpZ2l0IEpT
QmlnSW50OjpkaWdpdCh1bnNpZ25lZCBuKQogewogICAgIEFTU0VSVChuID49IDAgJiYgbiA8IGxl
bmd0aCgpKTsKICAgICByZXR1cm4gZGF0YVN0b3JhZ2UoKVtuXTsKIH0KIAotdm9pZCBKU0JpZ0lu
dDo6c2V0RGlnaXQoaW50IG4sIERpZ2l0IHZhbHVlKQordm9pZCBKU0JpZ0ludDo6c2V0RGlnaXQo
dW5zaWduZWQgbiwgRGlnaXQgdmFsdWUpCiB7CiAgICAgQVNTRVJUKG4gPj0gMCAmJiBuIDwgbGVu
Z3RoKCkpOwogICAgIGRhdGFTdG9yYWdlKClbbl0gPSB2YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JpZ0ludC5oCmluZGV4IDI5OGMzNDhjZDJiNGU1YWI1YzkyYzdiYjc5OWEz
MGYzZWJmYTYyMzEuLmViMTJjMDA0NjZlMzU2ZmZkYWRmYTM2NjQxNGMwN2NkMDNiYzQ2ZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaApAQCAtNDEsNyArNDEsNyBA
QCBjbGFzcyBKU0JpZ0ludCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogCiBwdWJsaWM6CiAKLSAg
ICBKU0JpZ0ludChWTSYsIFN0cnVjdHVyZSosIGludCBsZW5ndGgpOworICAgIEpTQmlnSW50KFZN
JiwgU3RydWN0dXJlKiwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIGVudW0gY2xhc3MgSW5pdGlh
bGl6YXRpb25UeXBlIHsgTm9uZSwgV2l0aFplcm8gfTsKICAgICB2b2lkIGluaXRpYWxpemUoSW5p
dGlhbGl6YXRpb25UeXBlKTsKQEAgLTQ5LDEyICs0OSwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAgc3RhdGlj
IHNpemVfdCBlc3RpbWF0ZWRTaXplKEpTQ2VsbCopOwotICAgIHN0YXRpYyBzaXplX3QgYWxsb2Nh
dGlvblNpemUoaW50IGxlbmd0aCk7CisgICAgc3RhdGljIHNpemVfdCBhbGxvY2F0aW9uU2l6ZSh1
bnNpZ25lZCBsZW5ndGgpOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7Ci0KICAgICBzdGF0aWMg
SlNCaWdJbnQqIGNyZWF0ZVplcm8oVk0mKTsKLSAgICBzdGF0aWMgSlNCaWdJbnQqIGNyZWF0ZVdp
dGhMZW5ndGgoVk0mLCBpbnQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgSlNCaWdJbnQqIGNyZWF0ZVdp
dGhMZW5ndGgoVk0mLCB1bnNpZ25lZCBsZW5ndGgpOwogCiAgICAgc3RhdGljIEpTQmlnSW50KiBj
cmVhdGVGcm9tKFZNJiwgaW50MzJfdCB2YWx1ZSk7CiAgICAgc3RhdGljIEpTQmlnSW50KiBjcmVh
dGVGcm9tKFZNJiwgdWludDMyX3QgdmFsdWUpOwpAQCAtNzAsMTQgKzY5LDE0IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFNpZ24oYm9vbCBzaWduKSB7IG1fc2lnbiA9IHNpZ247IH0KICAgICBib29s
IHNpZ24oKSBjb25zdCB7IHJldHVybiBtX3NpZ247IH0KIAotICAgIHZvaWQgc2V0TGVuZ3RoKGlu
dCBsZW5ndGgpIHsgbV9sZW5ndGggPSBsZW5ndGg7IH0KLSAgICBpbnQgbGVuZ3RoKCkgY29uc3Qg
eyByZXR1cm4gbV9sZW5ndGg7IH0KKyAgICB2b2lkIHNldExlbmd0aCh1bnNpZ25lZCBsZW5ndGgp
IHsgbV9sZW5ndGggPSBsZW5ndGg7IH0KKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJl
dHVybiBtX2xlbmd0aDsgfQogCiAgICAgc3RhdGljIEpTQmlnSW50KiBwYXJzZUludChFeGVjU3Rh
dGUqLCBWTSYsIFN0cmluZ1ZpZXcsIHVpbnQ4X3QgcmFkaXgpOwogICAgIHN0YXRpYyBKU0JpZ0lu
dCogcGFyc2VJbnQoRXhlY1N0YXRlKiwgU3RyaW5nVmlldyk7CiAKICAgICBzdGQ6Om9wdGlvbmFs
PHVpbnQ4X3Q+IHNpbmdsZURpZ2l0VmFsdWVGb3JTdHJpbmcoKTsKLSAgICBTdHJpbmcgdG9TdHJp
bmcoRXhlY1N0YXRlJiwgaW50IHJhZGl4KTsKKyAgICBTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRl
JiwgdW5zaWduZWQgcmFkaXgpOwogICAgIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBi
b29sIGVxdWFscyhKU0JpZ0ludCosIEpTQmlnSW50Kik7CiAKQEAgLTg1LDEyICs4NCwxNCBAQCBw
dWJsaWM6CiAgICAgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwogCiAgICAgSlNP
YmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CisKKyAg
ICBzdGF0aWMgSlNCaWdJbnQqIG11bHRpcGx5KEV4ZWNTdGF0ZSosIEpTQmlnSW50KiB4LCBKU0Jp
Z0ludCogeSk7CiAgICAgCiBwcml2YXRlOgogICAgIHVzaW5nIERpZ2l0ID0gdWludHB0cl90Owot
ICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgaW50IGJpdHNQZXJCeXRlID0gODsKLSAgICBzdGF0
aWMgY29uc3RleHByIGNvbnN0IGludCBkaWdpdEJpdHMgPSBzaXplb2YoRGlnaXQpICogYml0c1Bl
ckJ5dGU7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQgaGFsZkRpZ2l0Qml0cyA9IGRp
Z2l0Qml0cyAvIDI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCB1bnNpZ25lZCBiaXRzUGVy
Qnl0ZSA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCB1bnNpZ25lZCBkaWdpdEJpdHMg
PSBzaXplb2YoRGlnaXQpICogYml0c1BlckJ5dGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBjb25z
dCB1bnNpZ25lZCBoYWxmRGlnaXRCaXRzID0gZGlnaXRCaXRzIC8gMjsKICAgICBzdGF0aWMgY29u
c3RleHByIGNvbnN0IERpZ2l0IGhhbGZEaWdpdE1hc2sgPSAoMXVsbCA8PCBoYWxmRGlnaXRCaXRz
KSAtIDE7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQgbWF4SW50ID0gMHg3RkZGRkZG
RjsKICAgICAKQEAgLTk4LDEyICs5OSwxMyBAQCBwcml2YXRlOgogICAgIC8vIG1heEludCAvIGRp
Z2l0Qml0cy4gSG93ZXZlciwgd2UgdXNlIGEgbG93ZXIgbGltaXQgZm9yIG5vdywgYmVjYXVzZQog
ICAgIC8vIHJhaXNpbmcgaXQgbGF0ZXIgaXMgZWFzaWVyIHRoYW4gbG93ZXJpbmcgaXQuCiAgICAg
Ly8gU3VwcG9ydCB1cCB0byAxIG1pbGxpb24gYml0cy4KLSAgICBzdGF0aWMgY29uc3QgaW50IG1h
eExlbmd0aCA9IDEwMjQgKiAxMDI0IC8gKHNpemVvZih2b2lkKikgKiBiaXRzUGVyQnl0ZSk7Cisg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heExlbmd0aCA9IDEwMjQgKiAxMDI0IC8gKHNpemVv
Zih2b2lkKikgKiBiaXRzUGVyQnl0ZSk7CiAgICAgCi0gICAgc3RhdGljIHVpbnQ2NF90IGNhbGN1
bGF0ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQoaW50IGxlbmd0aCwgaW50IHJhZGl4LCBEaWdp
dCBsYXN0RGlnaXQsIGJvb2wgc2lnbik7CisgICAgc3RhdGljIHVpbnQ2NF90IGNhbGN1bGF0ZU1h
eGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQodW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCByYWRpeCwg
RGlnaXQgbGFzdERpZ2l0LCBib29sIHNpZ24pOwogICAgIAogICAgIHN0YXRpYyB2b2lkIGFic29s
dXRlRGl2U21hbGwoRXhlY1N0YXRlJiwgSlNCaWdJbnQqIHgsIERpZ2l0IGRpdmlzb3IsIEpTQmln
SW50KiogcXVvdGllbnQsIERpZ2l0JiByZW1haW5kZXIpOwotICAgIHN0YXRpYyB2b2lkIGludGVy
bmFsTXVsdGlwbHlBZGQoSlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1t
YW5kLCBpbnQsIEpTQmlnSW50KiByZXN1bHQpOworICAgIHN0YXRpYyB2b2lkIGludGVybmFsTXVs
dGlwbHlBZGQoSlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1tYW5kLCB1
bnNpZ25lZCwgSlNCaWdJbnQqIHJlc3VsdCk7CisgICAgc3RhdGljIHZvaWQgbXVsdGlwbHlBY2N1
bXVsYXRlKEpTQmlnSW50KiBtdWx0aXBsaWNhbmQsIERpZ2l0IG11bHRpcGxpZXIsIEpTQmlnSW50
KiBhY2N1bXVsYXRvciwgdW5zaWduZWQgYWNjdW11bGF0b3JJbmRleCk7CiAKICAgICAvLyBEaWdp
dCBhcml0aG1ldGljIGhlbHBlcnMuCiAgICAgc3RhdGljIERpZ2l0IGRpZ2l0QWRkKERpZ2l0IGEs
IERpZ2l0IGIsIERpZ2l0JiBjYXJyeSk7CkBAIC0xMTIsMTcgKzExNCwxNyBAQCBwcml2YXRlOgog
ICAgIHN0YXRpYyBEaWdpdCBkaWdpdERpdihEaWdpdCBoaWdoLCBEaWdpdCBsb3csIERpZ2l0IGRp
dmlzb3IsIERpZ2l0JiByZW1haW5kZXIpOwogICAgIHN0YXRpYyBEaWdpdCBkaWdpdFBvdyhEaWdp
dCBiYXNlLCBEaWdpdCBleHBvbmVudCk7CiAKLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nR2Vu
ZXJpYyhFeGVjU3RhdGUmLCBKU0JpZ0ludCosIGludCByYWRpeCk7CisgICAgc3RhdGljIFN0cmlu
ZyB0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiwgSlNCaWdJbnQqLCB1bnNpZ25lZCByYWRpeCk7
CiAKICAgICBib29sIGlzWmVybygpOwogCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBl
PgotICAgIHN0YXRpYyBKU0JpZ0ludCogcGFyc2VJbnQoRXhlY1N0YXRlKiwgQ2hhclR5cGUqICBk
YXRhLCBpbnQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgSlNCaWdJbnQqIHBhcnNlSW50KEV4ZWNTdGF0
ZSosIENoYXJUeXBlKiAgZGF0YSwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIHRlbXBsYXRlIDx0
eXBlbmFtZSBDaGFyVHlwZT4KLSAgICBzdGF0aWMgSlNCaWdJbnQqIHBhcnNlSW50KEV4ZWNTdGF0
ZSosIFZNJiwgQ2hhclR5cGUqIGRhdGEsIGludCBsZW5ndGgsIGludCBzdGFydEluZGV4LCBpbnQg
cmFkaXgsIGJvb2wgYWxsb3dFbXB0eVN0cmluZyA9IHRydWUpOworICAgIHN0YXRpYyBKU0JpZ0lu
dCogcGFyc2VJbnQoRXhlY1N0YXRlKiwgVk0mLCBDaGFyVHlwZSogZGF0YSwgdW5zaWduZWQgbGVu
Z3RoLCB1bnNpZ25lZCBzdGFydEluZGV4LCB1bnNpZ25lZCByYWRpeCwgYm9vbCBhbGxvd0VtcHR5
U3RyaW5nID0gdHJ1ZSk7CiAKLSAgICBzdGF0aWMgSlNCaWdJbnQqIGFsbG9jYXRlRm9yKEV4ZWNT
dGF0ZSosIFZNJiwgaW50IHJhZGl4LCBpbnQgY2hhcmNvdW50KTsKKyAgICBzdGF0aWMgSlNCaWdJ
bnQqIGFsbG9jYXRlRm9yKEV4ZWNTdGF0ZSosIFZNJiwgdW5zaWduZWQgcmFkaXgsIHVuc2lnbmVk
IGNoYXJjb3VudCk7CiAKICAgICBKU0JpZ0ludCogcmlnaHRUcmltKFZNJik7CiAKQEAgLTEzMSwx
MCArMTMzLDEwIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZkRhdGEoKTsK
ICAgICBEaWdpdCogZGF0YVN0b3JhZ2UoKTsKIAotICAgIERpZ2l0IGRpZ2l0KGludCk7Ci0gICAg
dm9pZCBzZXREaWdpdChpbnQsIERpZ2l0KTsKKyAgICBEaWdpdCBkaWdpdCh1bnNpZ25lZCk7Cisg
ICAgdm9pZCBzZXREaWdpdCh1bnNpZ25lZCwgRGlnaXQpOwogICAgICAgICAKLSAgICBpbnQgbV9s
ZW5ndGg7CisgICAgdW5zaWduZWQgbV9sZW5ndGg7CiAgICAgYm9vbCBtX3NpZ247CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggMjFlODBmODc1
MDNjN2VmOTFiN2IyMTA1ZWIwYzcyNWRhMmVhYjc2My4uOTFkYzFhNDBmMTRlMzc2NzJmNDEwMTYw
NGMwNjkwZTYwOTdlMThmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDSlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pT
VmFsdWUuaApAQCAtMzksNiArMzksNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEFzc2Vt
Ymx5SGVscGVyczsKK2NsYXNzIEpTQmlnSW50OwogY2xhc3MgRXhlY1N0YXRlOwogY2xhc3MgSlND
ZWxsOwogY2xhc3MgSlNWYWx1ZVNvdXJjZTsKQEAgLTI1Nyw2ICsyNTgsOCBAQCBwdWJsaWM6CiAg
ICAgLy8gdG9OdW1iZXIgY29udmVyc2lvbiBpcyBleHBlY3RlZCB0byBiZSBzaWRlIGVmZmVjdCBm
cmVlIGlmIGFuIGV4Y2VwdGlvbiBoYXMKICAgICAvLyBiZWVuIHNldCBpbiB0aGUgRXhlY1N0YXRl
IGFscmVhZHkuCiAgICAgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OworICAgIAor
ICAgIFZhcmlhbnQ8SlNCaWdJbnQqLCBkb3VibGU+IHRvTnVtZXJpYyhFeGVjU3RhdGUqKSBjb25z
dDsKIAogICAgIC8vIHRvTnVtYmVyIGNvbnZlcnNpb24gaWYgaXQgY2FuIGJlIGRvbmUgd2l0aG91
dCBzaWRlIGVmZmVjdHMuCiAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHRvTnVtYmVyRnJvbVBy
aW1pdGl2ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDSlNWYWx1ZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q0pTVmFsdWVJbmxpbmVzLmgKaW5kZXggZDBkMzc5OWZiMzllYzMxODJkY2QyMTQ5NjA3MDYwZTM1
YjViMjc5YS4uYTg3MjY3YzIxYWQxYWI0NGJkNWQ3MzBkMjhlMGEwNDMzNTQyOTVmMyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCkBA
IC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSlNQcm94eS5oIgogI2luY2x1ZGUgIkpTU3RyaW5n
SW5saW5lcy5oIgogI2luY2x1ZGUgIk1hdGhDb21tb24uaCIKKyNpbmNsdWRlIDx3dGYvVmFyaWFu
dC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogbmFtZXNwYWNlIEpTQyB7
CkBAIC03MjgsNiArNzI5LDI2IEBAIEFMV0FZU19JTkxJTkUgZG91YmxlIEpTVmFsdWU6OnRvTnVt
YmVyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4gdG9OdW1iZXJTbG93Q2FzZShl
eGVjKTsKIH0KIAorQUxXQVlTX0lOTElORSBWYXJpYW50PEpTQmlnSW50KiwgZG91YmxlPiBKU1Zh
bHVlOjp0b051bWVyaWMoRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIGlmIChpc0ludDMy
KCkpCisgICAgICAgIHJldHVybiBhc0ludDMyKCk7CisgICAgaWYgKGlzRG91YmxlKCkpCisgICAg
ICAgIHJldHVybiBhc0RvdWJsZSgpOworICAgIGlmIChpc0JpZ0ludCgpKQorICAgICAgICByZXR1
cm4gYXNCaWdJbnQoKnRoaXMpOworCisgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgSlNWYWx1ZSBwcmltVmFsdWUg
PSB0aGlzLT50b1ByaW1pdGl2ZShleGVjLCBQcmVmZXJOdW1iZXIpOworICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIDApOworICAgIGlmIChwcmltVmFsdWUuaXNCaWdJbnQoKSkKKyAgICAg
ICAgcmV0dXJuIGFzQmlnSW50KHByaW1WYWx1ZSk7CisgICAgZG91YmxlIHZhbHVlID0gcHJpbVZh
bHVlLnRvTnVtYmVyKGV4ZWMpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIDApOwor
ICAgIHJldHVybiB2YWx1ZTsKK30KKwogaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVj
dChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxs
KCktPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSkgOiB0b09iamVj
dFNsb3dDYXNlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgKaW5kZXggMTM0OWFlYzE2YTdhODNhOGE4
YTU5MGFjZWZkNTRiMTc5Yzk3YmYxZi4uNDk1NTkwYmI4ODZlYTBhZjNiYTVkODFlZjIwZmZkNzQ1
NTAwYTc1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0
aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaApA
QCAtMjMsNyArMjMsOSBAQAogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiRXhj
ZXB0aW9uSGVscGVycy5oIgorI2luY2x1ZGUgIkpTQmlnSW50LmgiCiAjaW5jbHVkZSAiSlNDSlNW
YWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBA
IC0yNTYsNiArMjU4LDI5IEBAIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc0FkZChDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgSlNWYWx1ZSB2MSwgSlNWYWx1ZSB2MikKICAgICByZXR1cm4ganNBZGRTbG93
Q2FzZShjYWxsRnJhbWUsIHYxLCB2Mik7CiB9CiAKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc011
bChFeGVjU3RhdGUqIHN0YXRlLCBKU1ZhbHVlIHYxLCBKU1ZhbHVlIHYyKQoreworICAgIFZNJiB2
bSA9IHN0YXRlLT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKKworICAgIFZhcmlhbnQ8SlNCaWdJbnQqLCBkb3VibGU+IGxlZnROdW1lcmljID0gdjEudG9O
dW1lcmljKHN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAg
IFZhcmlhbnQ8SlNCaWdJbnQqLCBkb3VibGU+IHJpZ2h0TnVtZXJpYyA9IHYyLnRvTnVtZXJpYyhz
dGF0ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKworICAgIGlmIChX
VEY6OmhvbGRzX2FsdGVybmF0aXZlPEpTQmlnSW50Kj4obGVmdE51bWVyaWMpIHx8IFdURjo6aG9s
ZHNfYWx0ZXJuYXRpdmU8SlNCaWdJbnQqPihyaWdodE51bWVyaWMpKSB7CisgICAgICAgIGlmIChX
VEY6OmhvbGRzX2FsdGVybmF0aXZlPEpTQmlnSW50Kj4obGVmdE51bWVyaWMpICYmIFdURjo6aG9s
ZHNfYWx0ZXJuYXRpdmU8SlNCaWdJbnQqPihyaWdodE51bWVyaWMpKQorICAgICAgICAgICAgcmV0
dXJuIEpTQmlnSW50OjptdWx0aXBseShzdGF0ZSwgV1RGOjpnZXQ8SlNCaWdJbnQqPihsZWZ0TnVt
ZXJpYyksIFdURjo6Z2V0PEpTQmlnSW50Kj4ocmlnaHROdW1lcmljKSk7CisKKyAgICAgICAgdGhy
b3dUeXBlRXJyb3Ioc3RhdGUsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkludmFsaWQgbWl4IG9mIEJp
Z0ludCBhbmQgb3RoZXIgdHlwZSBpbiBtdWx0aXBsaWNhdGlvbi4iKSk7CisgICAgICAgIHJldHVy
biB7IH07CisgICAgfQorCisgICAgZG91YmxlIGxlZnRWYWx1ZSA9ICBXVEY6OmdldDxkb3VibGU+
KGxlZnROdW1lcmljKTsKKyAgICBkb3VibGUgcmlnaHRWYWx1ZSA9ICBXVEY6OmdldDxkb3VibGU+
KHJpZ2h0TnVtZXJpYyk7CisgICAgcmV0dXJuIGpzTnVtYmVyKGxlZnRWYWx1ZSAqIHJpZ2h0VmFs
dWUpOworfQorCiBpbmxpbmUgYm9vbCBzY3JpYmJsZUZyZWVDZWxscygpCiB7CiAgICAgcmV0dXJu
ICFBU1NFUlRfRElTQUJMRUQgfHwgT3B0aW9uczo6c2NyaWJibGVGcmVlQ2VsbHMoKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTM5MmEw
ZGE5OGYzYTlhMTQyOGM5N2MzZDYyNjg3OWUwNzdkNTI3NC4uYzk5MzI1YjRhYWFjZmE5Yzg3NjZi
MjY0ODUzMmU3ODVmODI1NjhmMyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
SlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxOC0wNS0wMSAgQ2FpbyBMaW1h
ICA8dGljYWlvbGltYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBs
ZW1lbnQgc3VwcG9ydCBmb3IgIioiIG9wZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2Fh
bSBCYXJhdGkuCisKKyAgICAgICAgKiBiaWdJbnRUZXN0cy55YW1sOgorICAgICAgICAqIHN0cmVz
cy9iaWctaW50LW11bC1qaXQuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11
bC10by1wcmltaXRpdmUtcHJlY2VkZW5jZS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2Jp
Zy1pbnQtbXVsLXRvLXByaW1pdGl2ZS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1p
bnQtbXVsLXR5cGUtZXJyb3IuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11
bC13cmFwcGVkLXZhbHVlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWx0
aXBsaWNhdGlvbi5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVsdGlwbHkt
bWVtb3J5LXN0cmVzcy5qczogQWRkZWQuCisKIDIwMTgtMDQtMjggIENvbW1pdCBRdWV1ZSAgPGNv
bW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIyMzExMzEuCmRpZmYgLS1naXQgYS9KU1Rlc3RzL2JpZ0ludFRlc3RzLnlhbWwgYi9KU1Rlc3Rz
L2JpZ0ludFRlc3RzLnlhbWwKaW5kZXggN2FlMjJjYjFiYjJhZmY2MmNjNGRkZjQ5NjI5OWY5NmEw
NzQ0ZjdhZS4uZTk0N2RjMjk0NWFkZjkwZDA3N2ZjODM3ZDU1ODNhMWQwOGUzYmM5MSAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9iaWdJbnRUZXN0cy55YW1sCisrKyBiL0pTVGVzdHMvYmlnSW50VGVzdHMu
eWFtbApAQCAtOTcsMyArOTcsMjQgQEAKIC0gcGF0aDogc3RyZXNzL2JpZy1pbnQtdG8tc3RyaW5n
LmpzCiAgIGNtZDogcnVuQmlnSW50RW5hYmxlZAogCistIHBhdGg6IHN0cmVzcy9iaWctaW50LW11
bC1qaXQuanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1p
bnQtbXVsLXRvLXByaW1pdGl2ZS1wcmVjZWRlbmNlLmpzCisgIGNtZDogcnVuQmlnSW50RW5hYmxl
ZAorCistIHBhdGg6IHN0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUuanMKKyAgY21kOiBy
dW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsLXR5cGUtZXJyb3Iu
anMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVs
LXdyYXBwZWQtdmFsdWUuanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3Ry
ZXNzL2JpZy1pbnQtbXVsdGlwbGljYXRpb24uanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisK
Ky0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsdGlwbHktbWVtb3J5LXN0cmVzcy5qcworICBjbWQ6
IHJ1bkJpZ0ludEVuYWJsZWQKKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1t
dWwtaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtaml0LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBjYmVkZTMxODc1ZDIxZmIzODIyZTdmMjhmZjA1YmNhY2ExYzlmN2EKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAor
Ly9AIHJ1bkJpZ0ludEVuYWJsZWQKKworbGV0IGFzc2VydCA9IHsKKyAgICBzYW1lVmFsdWU6IGZ1
bmN0aW9uKGksIGUsIG0pIHsKKyAgICAgICAgaWYgKGkgIT09IGUpCisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IobSk7CisgICAgfQorfQorCitmdW5jdGlvbiBiaWdJbnRNdWwoeCwgeSkgewor
ICAgIHJldHVybiB4ICogeTsKK30KK25vSW5saW5lKGJpZ0ludE11bCk7CisKK2ZvciAobGV0IGkg
PSAwOyBpIDwgMTAwMDA7IGkrKykgeworICAgIGxldCByID0gYmlnSW50TXVsKDNuLCAxMG4pOwor
ICAgIGFzc2VydC5zYW1lVmFsdWUociwgMzBuLCAzbiArICIgKiAiICsgMTBuICsgIiA9ICIgKyBy
KTsKK30KKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0
aXZlLXByZWNlZGVuY2UuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRp
dmUtcHJlY2VkZW5jZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTQ5YTE5Njg3ZTE0YWVlNzAxM2IzNjg2NDQ5
MmU2ODJiZDVlNzVlCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1t
dWwtdG8tcHJpbWl0aXZlLXByZWNlZGVuY2UuanMKQEAgLTAsMCArMSwzOSBAQAorLy9AIHJ1bkJp
Z0ludEVuYWJsZWQKKworYXNzZXJ0ID0geworICAgIHNhbWVWYWx1ZTogZnVuY3Rpb24gKGlucHV0
LCBleHBlY3RlZCwgbWVzc2FnZSkgeworICAgICAgICBpZiAoaW5wdXQgIT09IGV4cGVjdGVkKQor
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOworICAgIH0KK307CisKK2Z1bmN0
aW9uIHRlc3RNdWwoeCwgeSwgeiwgbWVzc2FnZSkgeworICAgIGFzc2VydC5zYW1lVmFsdWUoeCAq
IHksIHosIG1lc3NhZ2UpOworICAgIGFzc2VydC5zYW1lVmFsdWUoeSAqIHgsIHosIG1lc3NhZ2Up
OworfQorCit0ZXN0TXVsKE9iamVjdCgybiksIDFuLCAybiwgIlRvUHJpbWl0aXZlOiB1bmJveCBv
YmplY3Qgd2l0aCBpbnRlcm5hbCBzbG90Iik7CisKK2xldCBvID0geworICAgIFtTeW1ib2wudG9Q
cmltaXRpdmVdOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIDJuOworICAgIH0sCisgICAg
dmFsdWVPZjogZnVuY3Rpb24gKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBu
ZXZlciBleGVjdXRlIGl0Iik7CisgICAgfSwKKyAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgewor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBleGVjdXRlIGl0Iik7CisgICAg
fQorfTsKK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9QcmltaXRpdmU6IEBAdG9QcmltaXRpdmUiKTsK
KworbyA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIDJuOwor
ICAgIH0sCisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJTaG91bGQgbmV2ZXIgZXhlY3V0ZSBpdCIpOworICAgIH0KK307Cit0ZXN0TXVsKG8sIDFu
LCAybiwgIlRvUHJpbWl0aXZlOiB2YWx1ZU9mIik7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQt
bXVsLXRvLXByaW1pdGl2ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDJlMmU4ZTI5MTE5ZTI3ZDEzNTc3Y2I1
N2FjMmY5NzM1MGZlNmNjCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWlu
dC1tdWwtdG8tcHJpbWl0aXZlLmpzCkBAIC0wLDAgKzEsMzUgQEAKKy8vQCBydW5CaWdJbnRFbmFi
bGVkCisKK2Z1bmN0aW9uIGFzc2VydChhKSB7CisgICAgaWYgKCFhKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkJhZCBhc3NlcnRpb24iKTsKK30KKworYXNzZXJ0LnNhbWVWYWx1ZSA9IGZ1bmN0
aW9uIChpbnB1dCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAgICBpZiAoaW5wdXQgIT09IGV4cGVj
dGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7Cit9CisKK2Z1bmN0aW9uIHRl
c3RNdWwoeCwgeSwgeikgeworICAgIGFzc2VydC5zYW1lVmFsdWUoeCAqIHksIHosIHggKyAiICog
IiArIHkgKyAiID0gIiArIHopOworICAgIGFzc2VydC5zYW1lVmFsdWUoeSAqIHgsIHosIHkgKyAi
ICogIiArIHggKyAiID0gIiArIHopOworfQorCitsZXQgbyA9IHsKKyAgICBbU3ltYm9sLnRvUHJp
bWl0aXZlXTogZnVuY3Rpb24gKCkgeyByZXR1cm4gMzAwMDAwMDAwMDAwMDAwbjsgfQorfQorCit0
ZXN0TXVsKDUwMDAwMDAwMDAwMDQzOG4sIG8sIDE1MDAwMDAwMDAwMDEzMTQwMDAwMDAwMDAwMDAw
MG4pOworCitvLnZhbHVlT2YgPSBmdW5jdGlvbiAoKSB7CisgICAgdGhyb3cgbmV3IEVycm9yKCJT
aG91bGQgbmV2ZXIgZXhlY3V0ZSBpdCIpOworfTsKKwordGVzdE11bCg3MDAwMDAwMDAwMDA0Mzhu
LCBvLCAyMTAwMDAwMDAwMDAxMzE0MDAwMDAwMDAwMDAwMDBuKTsKKworby50b1N0cmluZyA9IGZ1
bmN0aW9uICgpIHsKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBleGVjdXRlIGl0
Iik7Cit9OworCit0ZXN0TXVsKDcwMDAwMDAwMDAwMDQzOG4sIG8sIDIxMDAwMDAwMDAwMDEzMTQw
MDAwMDAwMDAwMDAwMG4pOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11
bC10eXBlLWVycm9yLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdHlwZS1lcnJvci5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iNTE3ODQ1N2ZiNjIzNzU3ZmQwZTc3MzU3N2RjMzk2ZjJmMzBmZTYwCi0t
LSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdHlwZS1lcnJvci5q
cwpAQCAtMCwwICsxLDEwNiBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworZnVuY3Rpb24gYXNz
ZXJ0KGEsIG1lc3NhZ2UpIHsKKyAgICBpZiAoIWEpCisgICAgICAgIHRocm93IG5ldyBFcnJvciht
ZXNzYWdlKTsKK30KKworZnVuY3Rpb24gYXNzZXJ0VGhyb3dUeXBlRXJyb3IoYSwgYiwgbWVzc2Fn
ZSkgeworICAgIHRyeSB7CisgICAgICAgIGxldCBuID0gYSAqIGI7CisgICAgICAgIGFzc2VydChm
YWxzZSwgbWVzc2FnZSArICI6IFNob3VsZCB0aHJvdyBUeXBlRXJyb3IsIGJ1dCBleGVjdXRlZCB3
aXRob3V0IGV4Y2VwdGlvbiIpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgYXNzZXJ0KGUg
aW5zdGFuY2VvZiBUeXBlRXJyb3IsIG1lc3NhZ2UgKyAiOiBleHBlY3RlZCBUeXBlRXJyb3IsIGdv
dDogIiArIGUpOworICAgIH0KK30KKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCAiZm9vIiwg
IkJpZ0ludCAqIFN0cmluZyIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoImJhciIsIDE4NzU3Mzgy
OTg0ODIxbiwgIlN0cmluZyAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBT
eW1ib2woImZvbyIpLCAiQmlnSW50ICogU3ltYm9sIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihT
eW1ib2woImJhciIpLCAxODc1NzM4Mjk4NDgyMW4sICJTeW1ib2wgKiBCaWdJbnQiKTsKK2Fzc2Vy
dFRocm93VHlwZUVycm9yKDMwbiwgMzMyMCwgIkJpZ0ludCAqIEludDMyIik7Cithc3NlcnRUaHJv
d1R5cGVFcnJvcigzMzI1NiwgMTg3NTczODI5ODQ4MjFuLCAiSW50MzIgKiBCaWdJbnQiKTsKK2Fz
c2VydFRocm93VHlwZUVycm9yKDMwbiwgMC41NDMsICJCaWdJbnQgKiBEb3VibGUiKTsKK2Fzc2Vy
dFRocm93VHlwZUVycm9yKDIzMC4xOTI5MywgMTg3NTczODI5ODQ4MjFuLCAiRG91YmxlICogQmln
SW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIE5hTiwgIkJpZ0ludCAqIE5hTiIpOwor
YXNzZXJ0VGhyb3dUeXBlRXJyb3IoTmFOLCAxODc1NzM4Mjk4NDgyMW4sICJOYU4gKiBCaWdJbnQi
KTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgTmFOLCAiQmlnSW50ICogTmFOIik7Cithc3Nl
cnRUaHJvd1R5cGVFcnJvcihOYU4sIDE4NzU3MzgyOTg0ODIxbiwgIk5hTiAqIEJpZ0ludCIpOwor
YXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCArSW5maW5pdHksICJCaWdJbnQgKiBOYU4iKTsKK2Fz
c2VydFRocm93VHlwZUVycm9yKCtJbmZpbml0eSwgMTg3NTczODI5ODQ4MjFuLCAiTmFOICogQmln
SW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIC1JbmZpbml0eSwgIkJpZ0ludCAqIC1J
bmZpbml0eSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoLUluZmluaXR5LCAxODc1NzM4Mjk4NDgy
MW4sICItSW5maW5pdHkgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbnVs
bCwgIkJpZ0ludCAqIG51bGwiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG51bGwsIDE4NzU3Mzgy
OTg0ODIxbiwgIm51bGwgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgdW5k
ZWZpbmVkLCAiQmlnSW50ICogdW5kZWZpbmVkIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcih1bmRl
ZmluZWQsIDE4NzU3MzgyOTg0ODIxbiwgInVuZGVmaW5lZCAqIEJpZ0ludCIpOworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IoMzBuLCB0cnVlLCAiQmlnSW50ICogdHJ1ZSIpOworYXNzZXJ0VGhyb3dUeXBl
RXJyb3IodHJ1ZSwgMTg3NTczODI5ODQ4MjFuLCAidHJ1ZSAqIEJpZ0ludCIpOworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IoMzBuLCBmYWxzZSwgIkJpZ0ludCAqIGZhbHNlIik7Cithc3NlcnRUaHJvd1R5
cGVFcnJvcihmYWxzZSwgMTg3NTczODI5ODQ4MjFuLCAiZmFsc2UgKiBCaWdJbnQiKTsKKworLy8g
RXJyb3Igd2hlbiByZXR1cm5pbmcgZnJvbSBvYmplY3QKKworbGV0IG8gPSB7CisgICAgdmFsdWVP
ZjogZnVuY3Rpb24gKCkgeyByZXR1cm4gU3ltYm9sKCJGb28iKTsgfQorfTsKKworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LnZhbHVlT2YgcmV0dXJuaW5nIFN5
bWJvbCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0
LnZhbHVlT2YgcmV0dXJuaW5nIFN5bWJvbCAqIEJpZ0ludCIpOworCitvID0geworICAgIHZhbHVl
T2Y6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDMzMjU2OyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVF
cnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgSW50MzIiKTsK
K2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC52YWx1ZU9m
IHJldHVybmluZyBJbnQzMiAqIEJpZ0ludCIpOworCitvID0geworICAgIHZhbHVlT2Y6IGZ1bmN0
aW9uICgpIHsgcmV0dXJuIDAuNDUzOyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4s
IG8sICJCaWdJbnQgKiBPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgRG91YmxlIik7Cithc3NlcnRU
aHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QudmFsdWVPZiByZXR1cm5p
bmcgRG91YmxlICogQmlnSW50Iik7CisKK28gPSB7CisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgp
IHsgcmV0dXJuIFN5bWJvbCgiRm9vIik7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMw
biwgbywgIkJpZ0ludCAqIE9iamVjdC50b1N0cmluZyByZXR1cm5pbmcgU3ltYm9sIik7Cithc3Nl
cnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QudG9TdHJpbmcgcmV0
dXJuaW5nIFN5bWJvbCAqIEJpZ0ludCIpOworCitvID0geworICAgIHRvU3RyaW5nOiBmdW5jdGlv
biAoKSB7IHJldHVybiAzMzI1NjsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBv
LCAiQmlnSW50ICogT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBJbnQzMiIpOworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LnRvU3RyaW5nIHJldHVybmlu
ZyBJbnQzMiAqIEJpZ0ludCIpOworCitvID0geworICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7
IHJldHVybiAwLjQ1MzsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmln
SW50ICogT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBEb3VibGUiKTsKK2Fzc2VydFRocm93VHlw
ZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC50b1N0cmluZyByZXR1cm5pbmcgRG91
YmxlICogQmlnSW50Iik7CisKK28gPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0
aW9uICgpIHsgcmV0dXJuIFN5bWJvbCgiRm9vIik7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVy
cm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC5AQHRvUHJpbWl0aXZlIHJldHVybmluZyBTeW1i
b2wiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC5A
QHRvUHJpbWl0aXZlIHJldHVybmluZyBTeW1ib2wgKiBCaWdJbnQiKTsKKworbyA9IHsKKyAgICBb
U3ltYm9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24gKCkgeyByZXR1cm4gMzMyNTY7IH0KK307CisK
K2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC5AQHRvUHJpbWl0
aXZlIHJldHVybmluZyBJbnQzMiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5
ODQ4MjFuLCAiT2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5nIEludDMyICogQmlnSW50Iik7
CisKK28gPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9uICgpIHsgcmV0dXJu
IDAuNDUzOyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBP
YmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcgRG91YmxlIik7Cithc3NlcnRUaHJvd1R5cGVF
cnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcg
RG91YmxlICogQmlnSW50Iik7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQt
bXVsLXdyYXBwZWQtdmFsdWUuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC13cmFwcGVk
LXZhbHVlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2NzNkOGE2MDMwMmZhZjY2ZGZhNmNmYTFlYjEzNzBlYzhj
MjJjM2EKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC13cmFw
cGVkLXZhbHVlLmpzCkBAIC0wLDAgKzEsMzcgQEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKK2Fz
c2VydCA9IHsKKyAgICBzYW1lVmFsdWU6IGZ1bmN0aW9uIChpbnB1dCwgZXhwZWN0ZWQsIG1lc3Nh
Z2UpIHsKKyAgICAgICAgaWYgKGlucHV0ICE9PSBleHBlY3RlZCkKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcihtZXNzYWdlKTsKKyAgICB9Cit9OworCitmdW5jdGlvbiB0ZXN0TXVsKHgsIHks
IHosIG1lc3NhZ2UpIHsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKHggKiB5LCB6LCBtZXNzYWdlKTsK
KyAgICBhc3NlcnQuc2FtZVZhbHVlKHkgKiB4LCB6LCBtZXNzYWdlKTsKK30KKwordGVzdE11bChP
YmplY3QoMm4pLCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogdW5ib3ggb2JqZWN0IHdpdGggaW50ZXJu
YWwgc2xvdCIpOworCitsZXQgbyA9IHsKKyAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogZnVuY3Rp
b24oKSB7CisgICAgICAgIHJldHVybiAybjsKKyAgICB9Cit9OwordGVzdE11bChvLCAxbiwgMm4s
ICJUb1ByaW1pdGl2ZTogQEB0b1ByaW1pdGl2ZSIpOworCitvID0geworICAgIHZhbHVlT2Y6IGZ1
bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gMm47CisgICAgfQorfTsKK3Rlc3RNdWwobywgMW4s
IDJuLCAiVG9QcmltaXRpdmU6IHZhbHVlT2YiKTsKKworbyA9IHsKKyAgICB0b1N0cmluZzogZnVu
Y3Rpb24oKSB7CisgICAgICAgIHJldHVybiAybjsKKyAgICB9Cit9Cit0ZXN0TXVsKG8sIDFuLCAy
biwgIlRvUHJpbWl0aXZlOiB0b1N0cmluZyIpOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9iaWctaW50LW11bHRpcGxpY2F0aW9uLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0
aXBsaWNhdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZWNkNjM2ZDdmODlhMjRhY2ZiYjgxZDcyZDc1NWMy
MjhmZTZmYWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0
aXBsaWNhdGlvbi5qcwpAQCAtMCwwICsxLDgzIEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCisv
LyBDb3B5cmlnaHQgKEMpIDIwMTcgUm9iaW4gVGVtcGxldG9uLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0
aGUgTElDRU5TRSBmaWxlLgorCithc3NlcnQgPSB7CisgICAgc2FtZVZhbHVlOiBmdW5jdGlvbiAo
aW5wdXQsIGV4cGVjdGVkLCBtZXNzYWdlKSB7CisgICAgaWYgKGlucHV0ICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOworICAgIH0KK307CisKK2Z1bmN0aW9u
IHRlc3RNdWwoeCwgeSwgeikgeworICAgIGFzc2VydC5zYW1lVmFsdWUoeCAqIHksIHosIHggKyAi
ICogIiArIHkgKyAiID0gIiArIHopOworICAgIGFzc2VydC5zYW1lVmFsdWUoeSAqIHgsIHosIHkg
KyAiICogIiArIHggKyAiID0gIiArIHopOworfQorCit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIx
MG4sIDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4RkRCQUMwOTdDOERDNUFDQ0RFRUM2Q0Q3QTQ0QTQx
MDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHhGRURDQkE5OG4sIDB4RkRCQUMw
OTc1MzBFQ0E4NjU0MUQ1OTgwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4MTIz
NG4sIDB4MTIxRjQ5RjQ5RjQ5RjQ5RjRCNDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEw
biwgMHgzbiwgMHgyRkM5NjJGQzk2MkZDOTYzMG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMy
MTBuLCAweDJuLCAweDFGREI5NzUzMEVDQTg2NDIwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0
MzIxMG4sIDB4MW4sIDB4RkVEQ0JBOTg3NjU0MzIxMG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1
NDMyMTBuLCAweDBuLCAweDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgQmlnSW50
KCItMSIpLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpKTsKK3Rlc3RNdWwoMHhGRURD
QkE5ODc2NTQzMjEwbiwgQmlnSW50KCItMiIpLCBCaWdJbnQoIi0zNjcyOTUxNzA4ODk4NjEyOTQ0
MCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgQmlnSW50KCItMyIpLCBCaWdJbnQo
Ii01NTA5NDI3NTYzMzQ3OTE5NDE2MCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwg
QmlnSW50KCItNDY2MCIpLCBCaWdJbnQoIi04NTU3OTc3NDgxNzMzNzY4MTU5NTIwMCIpKTsKK3Rl
c3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgQmlnSW50KCItNDI3NTg3ODU1MSIpLCBCaWdJbnQo
Ii03ODUyNTQ3NzE1NDY5MTg3NDYwNDUwMjgyMDcyMCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2
NTQzMjBGbiwgMHhGRURDQkE5ODc2NTQzMjBGbiwgMHhGREJBQzA5N0M4REM1QUNBRTEzMkY3QTZC
N0ExRENFMW4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweEZFRENCQTk3biwgMHhG
REJBQzA5NjU0MzIwRkVDREVFQzZDRDluKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwg
MHgzbiwgMHgyRkM5NjJGQzk2MkZDOTYyRG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZu
LCAweDJuLCAweDFGREI5NzUzMEVDQTg2NDFFbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIw
Rm4sIDB4MW4sIDB4RkVEQ0JBOTg3NjU0MzIwRm4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMy
MEZuLCAweDBuLCAweDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmlnSW50KCIt
MSIpLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcxOSIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5
ODc2NTQzMjBGbiwgQmlnSW50KCItMiIpLCBCaWdJbnQoIi0zNjcyOTUxNzA4ODk4NjEyOTQzOCIp
KTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmlnSW50KCItMyIpLCBCaWdJbnQoIi01
NTA5NDI3NTYzMzQ3OTE5NDE1NyIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmln
SW50KCItNDI3NTg3ODU1MSIpLCBCaWdJbnQoIi03ODUyNTQ3NzE1NDY5MTg3NDYwMDIyNjk0MjE2
OSIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0
OTMwNjQ3MjAiKSwgQmlnSW50KCItMzM3MjY0MzU2Mzk3NTMxMDI4OTc2NjA4Mjg5NjMzNjE1NjEz
NjgwIikpOwordGVzdE11bCgweEZFRENCQTk4biwgMHhGRURDQkE5OG4sIDB4RkRCQUMwOTZERDQx
M0E0MG4pOwordGVzdE11bCgweEZFRENCQTk4biwgMHgxMjM0biwgMHgxMjFGNDlGNDk2RTBuKTsK
K3Rlc3RNdWwoMHhGRURDQkE5OG4sIDB4M24sIDB4MkZDOTYyRkM4bik7Cit0ZXN0TXVsKDB4RkVE
Q0JBOThuLCAweDJuLCAweDFGREI5NzUzMG4pOwordGVzdE11bCgweEZFRENCQTk4biwgMHgxbiwg
MHhGRURDQkE5OG4pOwordGVzdE11bCgweEZFRENCQTk4biwgMHgwbiwgMHgwbik7Cit0ZXN0TXVs
KDB4RkVEQ0JBOThuLCBCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTIiKSk7Cit0ZXN0
TXVsKDB4RkVEQ0JBOThuLCBCaWdJbnQoIi0yIiksIEJpZ0ludCgiLTg1NTE3NTcxMDQiKSk7Cit0
ZXN0TXVsKDB4RkVEQ0JBOThuLCBCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTEyODI3NjM1NjU2Iikp
OwordGVzdE11bCgweEZFRENCQTk4biwgQmlnSW50KCItNDI3NTg3ODU1MSIpLCBCaWdJbnQoIi0x
ODI4MzEzNzM4NzE3NzczODE1MiIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0ludCgiLTE4
MzY0NzU4NTQ0NDkzMDY0NzIwIiksIEJpZ0ludCgiLTc4NTI1NDc3MTczMDU2NjMzMTQ4OTk1ODg1
NDQwIikpOwordGVzdE11bCgweDNuLCAweDNuLCAweDluKTsKK3Rlc3RNdWwoMHgzbiwgMHgybiwg
MHg2bik7Cit0ZXN0TXVsKDB4M24sIDB4MW4sIDB4M24pOwordGVzdE11bCgweDNuLCAweDBuLCAw
eDBuKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItMSIpLCBCaWdJbnQoIi0zIikpOwordGVzdE11
bCgweDNuLCBCaWdJbnQoIi0yIiksIEJpZ0ludCgiLTYiKSk7Cit0ZXN0TXVsKDB4M24sIEJpZ0lu
dCgiLTMiKSwgQmlnSW50KCItOSIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItNDY2MCIpLCBC
aWdJbnQoIi0xMzk4MCIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItNDI3NTg3ODU1MiIpLCBC
aWdJbnQoIi0xMjgyNzYzNTY1NiIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItMTgzNjQ3NTg1
NDQ0OTMwNjQ3MjAiKSwgQmlnSW50KCItNTUwOTQyNzU2MzM0NzkxOTQxNjAiKSk7Cit0ZXN0TXVs
KDB4MG4sIDB4MG4sIDB4MG4pOwordGVzdE11bCgweDBuLCBCaWdJbnQoIi0xIiksIDB4MG4pOwor
dGVzdE11bCgweDBuLCBCaWdJbnQoIi0yIiksIDB4MG4pOwordGVzdE11bCgweDBuLCBCaWdJbnQo
Ii0zIiksIDB4MG4pOwordGVzdE11bCgweDBuLCBCaWdJbnQoIi00Mjc1ODc4NTUxIiksIDB4MG4p
OwordGVzdE11bCgweDBuLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcxOSIpLCAweDBuKTsK
K3Rlc3RNdWwoQmlnSW50KCItMSIpLCBCaWdJbnQoIi0xIiksIDB4MW4pOwordGVzdE11bChCaWdJ
bnQoIi0xIiksIEJpZ0ludCgiLTIiKSwgMHgybik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmln
SW50KCItMyIpLCAweDNuKTsKK3Rlc3RNdWwoQmlnSW50KCItMSIpLCBCaWdJbnQoIi00NjYwIiks
IDB4MTIzNG4pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTEiKSwg
MHhGRURDQkE5N24pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTIi
KSwgMHhGRURDQkE5OG4pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTE4MzY0NzU4
NTQ0NDkzMDY0NzE5IiksIDB4RkVEQ0JBOTg3NjU0MzIwRm4pOwordGVzdE11bChCaWdJbnQoIi0x
IiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIDB4RkVEQ0JBOTg3NjU0MzIxMG4p
OwordGVzdE11bChCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTMiKSwgMHg5bik7Cit0ZXN0TXVsKEJp
Z0ludCgiLTMiKSwgQmlnSW50KCItNDY2MCIpLCAweDM2OUNuKTsKK3Rlc3RNdWwoQmlnSW50KCIt
MyIpLCBCaWdJbnQoIi00Mjc1ODc4NTUxIiksIDB4MkZDOTYyRkM1bik7Cit0ZXN0TXVsKEJpZ0lu
dCgiLTMiKSwgQmlnSW50KCItNDI3NTg3ODU1MiIpLCAweDJGQzk2MkZDOG4pOwordGVzdE11bChC
aWdJbnQoIi0zIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzE5IiksIDB4MkZDOTYyRkM5
NjJGQzk2MkRuKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5
MzA2NDcyMCIpLCAweDJGQzk2MkZDOTYyRkM5NjMwbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTE4MzY0
NzU4NTQ0NDkzMDY0NzIwIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIDB4RkRC
QUMwOTdDOERDNUFDQ0RFRUM2Q0Q3QTQ0QTQxMDBuKTsKKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3MvYmlnLWludC1tdWx0aXBseS1tZW1vcnktc3RyZXNzLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
YmlnLWludC1tdWx0aXBseS1tZW1vcnktc3RyZXNzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhYmFhN2UyOGY5
YWVlNjVkMjFjMGQzNmY2M2RmNjgwMjNiOWM4OTcKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3N0cmVzcy9iaWctaW50LW11bHRpcGx5LW1lbW9yeS1zdHJlc3MuanMKQEAgLTAsMCArMSwxNSBA
QAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworZnVuY3Rpb24gYXNzZXJ0KGEpIHsKKyAgICBpZiAo
IWEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGFzc2VydGlvbiIpOworfQorCitsZXQg
YSA9IDBuOworbGV0IGIgPSAxbjsKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDAwMDsgaSsrKSB7
CisgICAgYSA9IGIgKiAzMG47Cit9CisKK2Fzc2VydChhID09PSAzMG4pOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>340159</attachid>
            <date>2018-05-10 19:31:29 -0700</date>
            <delta_ts>2018-05-10 19:53:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183721-20180510233127.patch</filename>
            <type>text/plain</type>
            <size>45369</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxNjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NzBkOTUyYTZiMDA4ZWNjZWI2MzkyNGRmNTFhODY4ZmRkNzYxODc5Li5iMDdjYjQ2YTkwZTIyZDU4
MzhhZjNhOGJmMzc0ZDY1ZWQyYTFkZGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxOC0wNS0wMSAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgIioiIG9w
ZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgzNzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkZWQgQmlnSW50IHN1cHBvcnQgaW50byB0aW1lcyBiaW5hcnkgb3BlcmF0b3IgaW50byBMTElu
dCBhbmQgb24KKyAgICAgICAgSklUT3BlcmF0aW9ucyBwcm9maWxlZE11bCBhbmQgdW5wcm9maWxl
ZE11bC4gV2UgYXJlIGFsc28gcmVwbGFjaW5nIGFsbAorICAgICAgICB1c2VzIG9mIGludCB0byB1
bnNpZ25lZCB3aGVuIHRoZXJlIGlzIG5vIG5lZ2F0aXZlIHZhbHVlcyBmb3IKKyAgICAgICAgdmFy
aWFibGVzLgorCisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6Cisg
ICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9u
U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNCaWdJbnQuY3BwOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6SlNCaWdJbnQp
OgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6YWxsb2NhdGlvblNpemUpOgorICAgICAgICAoSlND
OjpKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojp0
b1N0cmluZyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjptdWx0aXBseSk6CisgICAgICAgIChK
U0M6OkpTQmlnSW50OjpkaWdpdERpdik6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjppbnRlcm5h
bE11bHRpcGx5QWRkKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6Om11bHRpcGx5QWNjdW11bGF0
ZSk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjplcXVhbHMpOgorICAgICAgICAoSlNDOjpKU0Jp
Z0ludDo6YWJzb2x1dGVEaXZTbWFsbCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpjYWxjdWxh
dGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OnRv
U3RyaW5nR2VuZXJpYyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpyaWdodFRyaW0pOgorICAg
ICAgICAoSlNDOjpKU0JpZ0ludDo6YWxsb2NhdGVGb3IpOgorICAgICAgICAoSlNDOjpKU0JpZ0lu
dDo6cGFyc2VJbnQpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6ZGlnaXQpOgorICAgICAgICAo
SlNDOjpKU0JpZ0ludDo6c2V0RGlnaXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuaDoK
KyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ0pT
VmFsdWVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvTnVtZXJpYyBjb25zdCk6
CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6CisgICAgICAgIChKU0M6OmpzTXVsKToK
KwogMjAxOC0wNS0xMCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAg
IERGRyBDRkEgc2hvdWxkIHBpY2sgdGhlIHJpZ2h0IHRpbWUgdG8gaW5qZWN0IE9TUiBlbnRyeSBk
YXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9s
ZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xk
aW5nUGhhc2UuY3BwCmluZGV4IGYwNGNjNjg0NGJlNzdlOWJhZDk2OTY5NjAyOWNjZWIxOTU5YjQ0
OTYuLmZiYWVmZjEyNDk4YjA1Y2FlYzAzMmQ0YTc2Mjk2YzNmYzcwOTI2NjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3Bw
CkBAIC0xNDgsMTQgKzE0OCwxNCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBKU1Zh
bHVlIGNoaWxkMkNvbnN0YW50ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMigpLm5vZGUo
KSkudmFsdWUoKTsKIAogICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogUmV2aXNpdCB0aGlz
IGNvbmRpdGlvbiB3aGVuIGludHJvZHVjaW5nIEJpZ0ludCB0byBKU0MuCi0gICAgICAgICAgICAg
ICAgICAgIGF1dG8gaXNOb25TdHJpbmdDZWxsQ29uc3RhbnQgPSBbXSAoSlNWYWx1ZSB2YWx1ZSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlICYmIHZhbHVlLmlzQ2VsbCgp
ICYmICF2YWx1ZS5pc1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICBhdXRvIGlzTm9uU3Ry
aW5nT3JCaWdJbnRDZWxsQ29uc3RhbnQgPSBbXSAoSlNWYWx1ZSB2YWx1ZSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlICYmIHZhbHVlLmlzQ2VsbCgpICYmICF2YWx1ZS5p
c1N0cmluZygpICYmICF2YWx1ZS5pc0JpZ0ludCgpOwogICAgICAgICAgICAgICAgICAgICB9Owog
Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpc05vblN0cmluZ0NlbGxDb25zdGFudChjaGlsZDFD
b25zdGFudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzTm9uU3RyaW5nT3JCaWdJbnRD
ZWxsQ29uc3RhbnQoY2hpbGQxQ29uc3RhbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBu
b2RlLT5jb252ZXJ0VG9Db21wYXJlRXFQdHIobV9ncmFwaC5mcmVlemVTdHJvbmcoY2hpbGQxQ29u
c3RhbnQuYXNDZWxsKCkpLCBub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc05vblN0
cmluZ0NlbGxDb25zdGFudChjaGlsZDJDb25zdGFudCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChpc05vblN0cmluZ09yQmlnSW50Q2VsbENvbnN0YW50KGNoaWxkMkNvbnN0YW50
KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y29udmVydFRvQ29tcGFyZUVxUHRy
KG1fZ3JhcGguZnJlZXplU3Ryb25nKGNoaWxkMkNvbnN0YW50LmFzQ2VsbCgpKSwgbm9kZS0+Y2hp
bGQxKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CiAgICAgICAg
ICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
Y3BwCmluZGV4IDM2NWJiNzM3NTVhN2E0NTRjZjA4NTQzNmM2Mzc4ZDFiZjczZmVjNGIuLjc0ZGIy
NjI0ZjYyYWNiN2EyYTBiMDE3NjFkMmNjOWJkZThjN2U5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMjU1NCwyMSArMjU1NCwyMSBAQCBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkTm9PcHRpbWl6ZShFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsK
IH0KIAotQUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgdW5wcm9maWxlZE11bChW
TSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikKK0FMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IHVucHJvZmlsZWRNdWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQogeworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUg
b3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwogICAgIEpTVmFsdWUgb3AyID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOwogCi0gICAgZG91YmxlIGEgPSBvcDEudG9OdW1iZXIo
ZXhlYyk7CisgICAgSlNWYWx1ZSBqc1Jlc3VsdCA9IGpzTXVsKGV4ZWMsIG9wMSwgb3AyKTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICBzY29w
ZS5yZWxlYXNlKCk7Ci0gICAgZG91YmxlIGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhICogYikpOworICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNSZXN1bHQpOwogfQogCi1BTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBwcm9maWxlZE11bChWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlJiBhcml0
aFByb2ZpbGUsIGJvb2wgc2hvdWxkT2JzZXJ2ZUxIU0FuZFJIU1R5cGVzID0gdHJ1ZSkKK0FMV0FZ
U19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHByb2ZpbGVkTXVsKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwg
QXJpdGhQcm9maWxlJiBhcml0aFByb2ZpbGUsIGJvb2wgc2hvdWxkT2JzZXJ2ZUxIU0FuZFJIU1R5
cGVzID0gdHJ1ZSkKIHsKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkT3AxKTsKICAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkT3AyKTsKQEAgLTI1NzYsMTIgKzI1NzYsOCBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBwcm9maWxlZE11bChWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZAog
ICAgIGlmIChzaG91bGRPYnNlcnZlTEhTQW5kUkhTVHlwZXMpCiAgICAgICAgIGFyaXRoUHJvZmls
ZS5vYnNlcnZlTEhTQW5kUkhTKG9wMSwgb3AyKTsKIAotICAgIGRvdWJsZSBhID0gb3AxLnRvTnVt
YmVyKGV4ZWMpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVl
KCkpOwotICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOworICAgIEpTVmFsdWUgcmVz
dWx0ID0ganNNdWwoZXhlYywgb3AxLCBvcDIpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIAotICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1i
ZXIoYSAqIGIpOwogICAgIGFyaXRoUHJvZmlsZS5vYnNlcnZlUmVzdWx0KHJlc3VsdCk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQpAQCAtMjU5MSw3ICsyNTg3LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bChFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGUKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBO
YXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKIAotICAgIHJldHVybiB1bnBy
b2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CisgICAgcmV0dXJu
IHVucHJvZmlsZWRNdWwoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CiB9CiAKIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxOb09wdGltaXplKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMiwgSklUTXVsSUMqKQpAQCAtMjU5OSw3ICsyNTk1LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bE5vT3B0aW1pemUoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGUKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKIAotICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKCp2bSwg
ZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CisgICAgcmV0dXJuIHVucHJvZmlsZWRNdWwo
ZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVE11bElD
KiBtdWxJQykKQEAgLTI2MTYsNyArMjYxMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmFsdWVNdWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKCiAg
ICAgZXhlYy0+Y29kZUJsb2NrKCktPmR1bXBNYXRoSUNTdGF0cygpOwogI2VuZGlmCiAKLSAgICBy
ZXR1cm4gdW5wcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwor
ICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwog
fQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmls
ZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSkKQEAgLTI2MjUsNyAr
MjYyMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQ
cm9maWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKCiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgZXhlYyk7CiAKICAgICBBU1NFUlQoYXJpdGhQcm9maWxlKTsKLSAgICBy
ZXR1cm4gcHJvZmlsZWRNdWwoKnZtLCBleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCAqYXJp
dGhQcm9maWxlKTsKKyAgICByZXR1cm4gcHJvZmlsZWRNdWwoZXhlYywgZW5jb2RlZE9wMSwgZW5j
b2RlZE9wMiwgKmFyaXRoUHJvZmlsZSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUTXVs
SUMqIG11bElDKQpAQCAtMjY0Myw3ICsyNjM5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLAog
ICAgIGV4ZWMtPmNvZGVCbG9jaygpLT5kdW1wTWF0aElDU3RhdHMoKTsKICNlbmRpZgogCi0gICAg
cmV0dXJuIHByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFy
aXRoUHJvZmlsZSwgZmFsc2UpOworICAgIHJldHVybiBwcm9maWxlZE11bChleGVjLCBlbmNvZGVk
T3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlLCBmYWxzZSk7CiB9CiAKIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZE5vT3B0aW1pemUoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AyLCBKSVRNdWxJQyogbXVsSUMpCkBAIC0yNjUzLDcgKzI2NDksNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWROb09wdGltaXpl
KEV4ZWNTdGF0ZSogZXhlYwogCiAgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBtdWxJ
Qy0+YXJpdGhQcm9maWxlKCk7CiAgICAgQVNTRVJUKGFyaXRoUHJvZmlsZSk7Ci0gICAgcmV0dXJu
IHByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJv
ZmlsZSk7CisgICAgcmV0dXJuIHByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRP
cDIsICphcml0aFByb2ZpbGUpOwogfQogCiBBTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSB1bnByb2ZpbGVkTmVnYXRlKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wZXJhbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
U2xvd1BhdGhzLmNwcAppbmRleCBhNTUwZmMwOWI5YTgyZGUwZjExYzE4Zjc1ZmFjZmNhYzVjZjNj
YjEwLi5hOGE1NjgxZGM5NmU4ODAyZWJhZDgxMmFmOWEwNzVhZjlhNjE3NjNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKQEAgLTY1
LDYgKzY1LDcgQEAKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKICNpbmNsdWRlICJUeXBl
UHJvZmlsZXJMb2cuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KKyNpbmNs
dWRlIDx3dGYvVmFyaWFudC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNDg4LDExICs0ODks
OCBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfbXVsKQogICAgIEJFR0lOKCk7CiAgICAgSlNW
YWx1ZSBsZWZ0ID0gT1BfQygyKS5qc1ZhbHVlKCk7CiAgICAgSlNWYWx1ZSByaWdodCA9IE9QX0Mo
MykuanNWYWx1ZSgpOwotICAgIGRvdWJsZSBhID0gbGVmdC50b051bWJlcihleGVjKTsKLSAgICBp
ZiAoVU5MSUtFTFkodGhyb3dTY29wZS5leGNlcHRpb24oKSkpCi0gICAgICAgIFJFVFVSTihKU1Zh
bHVlKCkpOwotICAgIGRvdWJsZSBiID0gcmlnaHQudG9OdW1iZXIoZXhlYyk7Ci0gICAgSlNWYWx1
ZSByZXN1bHQgPSBqc051bWJlcihhICogYik7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc011bChl
eGVjLCBsZWZ0LCByaWdodCk7CisgICAgQ0hFQ0tfRVhDRVBUSU9OKCk7CiAgICAgUkVUVVJOX1dJ
VEhfUFJPRklMSU5HKHJlc3VsdCwgewogICAgICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5h
cnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIGxlZnQsIHJpZ2h0KTsKICAgICB9KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcAppbmRleCA1ZmFkMDhmYzVjNjUz
YTNlNjEyYTM3YzI4NTAxZjIxMzdmZDQ2MzE1Li4xNDgyOWE3NTAxOTliMjQ1ZDExZDFmOGNjMTRj
YWIzM2MwMDVmODFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JpZ0ludC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQu
Y3BwCkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgSlNCaWdJbnQ6OnZpc2l0Q2hpbGRyZW4oSlNDZWxs
KiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRo
aXNPYmplY3QsIHZpc2l0b3IpOwogfQogCi1KU0JpZ0ludDo6SlNCaWdJbnQoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgaW50IGxlbmd0aCkKK0pTQmlnSW50OjpKU0JpZ0ludChWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgOiBCYXNlKHZtLCBz
dHJ1Y3R1cmUpCiAgICAgLCBtX2xlbmd0aChsZW5ndGgpCiB7IH0KQEAgLTkyLDEzICs5MiwxMyBA
QCBKU0JpZ0ludCogSlNCaWdJbnQ6OmNyZWF0ZVplcm8oVk0mIHZtKQogICAgIHJldHVybiB6ZXJv
QmlnSW50OwogfQogCi1zaXplX3QgSlNCaWdJbnQ6OmFsbG9jYXRpb25TaXplKGludCBsZW5ndGgp
CitzaXplX3QgSlNCaWdJbnQ6OmFsbG9jYXRpb25TaXplKHVuc2lnbmVkIGxlbmd0aCkKIHsKICAg
ICBzaXplX3Qgc2l6ZVdpdGhQYWRkaW5nID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mPHNpemVv
ZihzaXplX3QpPihzaXplb2YoSlNCaWdJbnQpKTsKICAgICByZXR1cm4gc2l6ZVdpdGhQYWRkaW5n
ICsgbGVuZ3RoICogc2l6ZW9mKERpZ2l0KTsKIH0KIAotSlNCaWdJbnQqIEpTQmlnSW50OjpjcmVh
dGVXaXRoTGVuZ3RoKFZNJiB2bSwgaW50IGxlbmd0aCkKK0pTQmlnSW50KiBKU0JpZ0ludDo6Y3Jl
YXRlV2l0aExlbmd0aChWTSYgdm0sIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBKU0JpZ0ludCog
YmlnSW50ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNCaWdJbnQ+KHZtLmhlYXAsIGFs
bG9jYXRpb25TaXplKGxlbmd0aCkpKSBKU0JpZ0ludCh2bSwgdm0uYmlnSW50U3RydWN0dXJlLmdl
dCgpLCBsZW5ndGgpOwogICAgIGJpZ0ludC0+ZmluaXNoQ3JlYXRpb24odm0pOwpAQCAtMjI5LDYg
KzIyOSwxMSBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6OnN0cmluZ1RvQmlnSW50KEV4ZWNTdGF0ZSog
c3RhdGUsIFN0cmluZ1ZpZXcgcykKIAogU3RyaW5nIEpTQmlnSW50Ojp0b1N0cmluZyhFeGVjU3Rh
dGUmIHN0YXRlLCB1bnNpZ25lZCByYWRpeCkKIHsKKyAgICByZXR1cm4gcGFyc2VJbnQoc3RhdGUs
IHMsIEVycm9yUGFyc2VNb2RlOjpJZ25vcmVFeGNlcHRpb25zKTsKK30KKworU3RyaW5nIEpTQmln
SW50Ojp0b1N0cmluZyhFeGVjU3RhdGUmIHN0YXRlLCB1bnNpZ25lZCByYWRpeCkKK3sKICAgICBp
ZiAodGhpcy0+aXNaZXJvKCkpCiAgICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnNtYWxsU3RyaW5n
cy5zaW5nbGVDaGFyYWN0ZXJTdHJpbmdSZXAoJzAnKTsKIApAQCAtMjUwLDYgKzI1NSwyNiBAQCBp
bmxpbmUgdm9pZCBKU0JpZ0ludDo6aW5wbGFjZU11bHRpcGx5QWRkKHVpbnRwdHJfdCBmYWN0b3Is
IHVpbnRwdHJfdCBzdW1tYW5kKQogICAgIGludGVybmFsTXVsdGlwbHlBZGQodGhpcywgZmFjdG9y
LCBzdW1tYW5kLCBsZW5ndGgoKSwgdGhpcyk7CiB9CiAKK0pTQmlnSW50KiBKU0JpZ0ludDo6bXVs
dGlwbHkoRXhlY1N0YXRlKiBzdGF0ZSwgSlNCaWdJbnQqIHgsIEpTQmlnSW50KiB5KQoreworICAg
IFZNJiB2bSA9IHN0YXRlLT52bSgpOworCisgICAgaWYgKHgtPmlzWmVybygpKQorICAgICAgICBy
ZXR1cm4geDsKKyAgICBpZiAoeS0+aXNaZXJvKCkpCisgICAgICAgIHJldHVybiB5OworCisgICAg
dW5zaWduZWQgcmVzdWx0TGVuZ3RoID0geC0+bGVuZ3RoKCkgKyB5LT5sZW5ndGgoKTsKKyAgICBK
U0JpZ0ludCogcmVzdWx0ID0gSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGgodm0sIHJlc3VsdExl
bmd0aCk7CisgICAgcmVzdWx0LT5pbml0aWFsaXplKEluaXRpYWxpemF0aW9uVHlwZTo6V2l0aFpl
cm8pOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHgtPmxlbmd0aCgpOyBpKyspCisg
ICAgICAgIG11bHRpcGx5QWNjdW11bGF0ZSh5LCB4LT5kaWdpdChpKSwgcmVzdWx0LCBpKTsKKwor
ICAgIHJlc3VsdC0+c2V0U2lnbih4LT5zaWduKCkgIT0geS0+c2lnbigpKTsKKyAgICByZXR1cm4g
cmVzdWx0LT5yaWdodFRyaW0odm0pOworfQorCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICNkZWZp
bmUgSEFWRV9UV09fRElHSVQgMQogdHlwZWRlZiB1aW50NjRfdCBUd29EaWdpdDsKQEAgLTM2Myw5
ICszODgsOSBAQCBpbmxpbmUgSlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdERpdihEaWdp
dCBoaWdoLCBEaWdpdCBsb3csIERpZ2l0IGRpdmlzb3IsCiAgICAgc3RhdGljIGNvbnN0IERpZ2l0
IGtIYWxmRGlnaXRCYXNlID0gMXVsbCA8PCBoYWxmRGlnaXRCaXRzOwogICAgIC8vIEFkYXB0ZWQg
ZnJvbSBXYXJyZW4sIEhhY2tlcidzIERlbGlnaHQsIHAuIDE1Mi4KICNpZiBVU0UoSlNWQUxVRTY0
KQotICAgIGludCBzID0gY2x6NjQoZGl2aXNvcik7CisgICAgdW5zaWduZWQgcyA9IGNsejY0KGRp
dmlzb3IpOwogI2Vsc2UKLSAgICBpbnQgcyA9IGNsejMyKGRpdmlzb3IpOworICAgIHVuc2lnbmVk
IHMgPSBjbHozMihkaXZpc29yKTsKICNlbmRpZgogICAgIGRpdmlzb3IgPDw9IHM7CiAgICAgCkBA
IC00MDgsMTQgKzQzMywxNCBAQCBpbmxpbmUgSlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdp
dERpdihEaWdpdCBoaWdoLCBEaWdpdCBsb3csIERpZ2l0IGRpdmlzb3IsCiAKIC8vIE11bHRpcGxp
ZXMge3NvdXJjZX0gd2l0aCB7ZmFjdG9yfSBhbmQgYWRkcyB7c3VtbWFuZH0gdG8gdGhlIHJlc3Vs
dC4KIC8vIHtyZXN1bHR9IGFuZCB7c291cmNlfSBtYXkgYmUgdGhlIHNhbWUgQmlnSW50IGZvciBp
bnBsYWNlIG1vZGlmaWNhdGlvbi4KLXZvaWQgSlNCaWdJbnQ6OmludGVybmFsTXVsdGlwbHlBZGQo
SlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1tYW5kLCBpbnQgbiwgSlNC
aWdJbnQqIHJlc3VsdCkKK3ZvaWQgSlNCaWdJbnQ6OmludGVybmFsTXVsdGlwbHlBZGQoSlNCaWdJ
bnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1tYW5kLCB1bnNpZ25lZCBuLCBKU0Jp
Z0ludCogcmVzdWx0KQogewogICAgIEFTU0VSVChzb3VyY2UtPmxlbmd0aCgpID49IG4pOwogICAg
IEFTU0VSVChyZXN1bHQtPmxlbmd0aCgpID49IG4pOwogCiAgICAgRGlnaXQgY2FycnkgPSBzdW1t
YW5kOwogICAgIERpZ2l0IGhpZ2ggPSAwOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsr
KSB7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICBEaWdp
dCBjdXJyZW50ID0gc291cmNlLT5kaWdpdChpKTsKICAgICAgICAgRGlnaXQgbmV3Q2FycnkgPSAw
OwogCkBAIC00NDMsNiArNDY4LDQ5IEBAIHZvaWQgSlNCaWdJbnQ6OmludGVybmFsTXVsdGlwbHlB
ZGQoSlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1tYW5kCiAgICAgICAg
IEFTU0VSVCghKGNhcnJ5ICsgaGlnaCkpOwogfQogCisvLyBNdWx0aXBsaWVzIHttdWx0aXBsaWNh
bmR9IHdpdGgge211bHRpcGxpZXJ9IGFuZCBhZGRzIHRoZSByZXN1bHQgdG8KKy8vIHthY2N1bXVs
YXRvcn0sIHN0YXJ0aW5nIGF0IHthY2N1bXVsYXRvckluZGV4fSBmb3IgdGhlIGxlYXN0LXNpZ25p
ZmljYW50CisvLyBkaWdpdC4KKy8vIENhbGxlcnMgbXVzdCBlbnN1cmUgdGhhdCB7YWNjdW11bGF0
b3J9IGlzIGJpZyBlbm91Z2ggdG8gaG9sZCB0aGUgcmVzdWx0Lgordm9pZCBKU0JpZ0ludDo6bXVs
dGlwbHlBY2N1bXVsYXRlKEpTQmlnSW50KiBtdWx0aXBsaWNhbmQsIERpZ2l0IG11bHRpcGxpZXIs
IEpTQmlnSW50KiBhY2N1bXVsYXRvciwgdW5zaWduZWQgYWNjdW11bGF0b3JJbmRleCkKK3sKKyAg
ICBBU1NFUlQoYWNjdW11bGF0b3ItPmxlbmd0aCgpID4gbXVsdGlwbGljYW5kLT5sZW5ndGgoKSAr
IGFjY3VtdWxhdG9ySW5kZXgpOworICAgIGlmICghbXVsdGlwbGllcikKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIERpZ2l0IGNhcnJ5ID0gMDsKKyAgICBEaWdpdCBoaWdoID0gMDsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbXVsdGlwbGljYW5kLT5sZW5ndGgoKTsgaSsrLCBhY2N1
bXVsYXRvckluZGV4KyspIHsKKyAgICAgICAgRGlnaXQgYWNjID0gYWNjdW11bGF0b3ItPmRpZ2l0
KGFjY3VtdWxhdG9ySW5kZXgpOworICAgICAgICBEaWdpdCBuZXdDYXJyeSA9IDA7CisgICAgICAg
IAorICAgICAgICAvLyBBZGQgbGFzdCByb3VuZCdzIGNhcnJ5b3ZlcnMuCisgICAgICAgIGFjYyA9
IGRpZ2l0QWRkKGFjYywgaGlnaCwgbmV3Q2FycnkpOworICAgICAgICBhY2MgPSBkaWdpdEFkZChh
Y2MsIGNhcnJ5LCBuZXdDYXJyeSk7CisgICAgICAgIAorICAgICAgICAvLyBDb21wdXRlIHRoaXMg
cm91bmQncyBtdWx0aXBsaWNhdGlvbi4KKyAgICAgICAgRGlnaXQgbXVsdGlwbGljYW5kRGlnaXQg
PSBtdWx0aXBsaWNhbmQtPmRpZ2l0KGkpOworICAgICAgICBEaWdpdCBsb3cgPSBkaWdpdE11bCht
dWx0aXBsaWVyLCBtdWx0aXBsaWNhbmREaWdpdCwgaGlnaCk7CisgICAgICAgIGFjYyA9IGRpZ2l0
QWRkKGFjYywgbG93LCBuZXdDYXJyeSk7CisgICAgICAgIAorICAgICAgICAvLyBTdG9yZSByZXN1
bHQgYW5kIHByZXBhcmUgZm9yIG5leHQgcm91bmQuCisgICAgICAgIGFjY3VtdWxhdG9yLT5zZXRE
aWdpdChhY2N1bXVsYXRvckluZGV4LCBhY2MpOworICAgICAgICBjYXJyeSA9IG5ld0NhcnJ5Owor
ICAgIH0KKyAgICAKKyAgICB3aGlsZSAoY2FycnkgfHwgaGlnaCkgeworICAgICAgICBBU1NFUlQo
YWNjdW11bGF0b3JJbmRleCA8IGFjY3VtdWxhdG9yLT5sZW5ndGgoKSk7CisgICAgICAgIERpZ2l0
IGFjYyA9IGFjY3VtdWxhdG9yLT5kaWdpdChhY2N1bXVsYXRvckluZGV4KTsKKyAgICAgICAgRGln
aXQgbmV3Q2FycnkgPSAwOworICAgICAgICBhY2MgPSBkaWdpdEFkZChhY2MsIGhpZ2gsIG5ld0Nh
cnJ5KTsKKyAgICAgICAgaGlnaCA9IDA7CisgICAgICAgIGFjYyA9IGRpZ2l0QWRkKGFjYywgY2Fy
cnksIG5ld0NhcnJ5KTsKKyAgICAgICAgYWNjdW11bGF0b3ItPnNldERpZ2l0KGFjY3VtdWxhdG9y
SW5kZXgsIGFjYyk7CisgICAgICAgIGNhcnJ5ID0gbmV3Q2Fycnk7CisgICAgICAgIGFjY3VtdWxh
dG9ySW5kZXgrKzsKKyAgICB9Cit9CisKIGJvb2wgSlNCaWdJbnQ6OmVxdWFscyhKU0JpZ0ludCog
eCwgSlNCaWdJbnQqIHkpCiB7CiAgICAgaWYgKHgtPnNpZ24oKSAhPSB5LT5zaWduKCkpCkBAIC00
NTEsNyArNTE5LDcgQEAgYm9vbCBKU0JpZ0ludDo6ZXF1YWxzKEpTQmlnSW50KiB4LCBKU0JpZ0lu
dCogeSkKICAgICBpZiAoeC0+bGVuZ3RoKCkgIT0geS0+bGVuZ3RoKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgeC0+bGVuZ3RoKCk7IGkrKykgewor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB4LT5sZW5ndGgoKTsgaSsrKSB7CiAgICAgICAg
IGlmICh4LT5kaWdpdChpKSAhPSB5LT5kaWdpdChpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CkBAIC00NzksNyArNTQ3LDcgQEAgdm9pZCBKU0JpZ0ludDo6YWJzb2x1dGVEaXZT
bWFsbChFeGVjU3RhdGUmIHN0YXRlLCBKU0JpZ0ludCogeCwgRGlnaXQgZGl2aXNvciwgSlMKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGludCBsZW5ndGggPSB4LT5sZW5ndGgoKTsKKyAg
ICB1bnNpZ25lZCBsZW5ndGggPSB4LT5sZW5ndGgoKTsKICAgICBpZiAocXVvdGllbnQgIT0gbnVs
bHB0cikgewogICAgICAgICBpZiAoKnF1b3RpZW50ID09IG51bGxwdHIpCiAgICAgICAgICAgICAq
cXVvdGllbnQgPSBKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aCh2bSwgbGVuZ3RoKTsKQEAgLTUw
NiwxNCArNTc0LDE0IEBAIGNvbnN0ZXhwciB1aW50OF90IG1heEJpdHNQZXJDaGFyVGFibGVbXSA9
IHsKICAgICAxNjIsIDE2MywgMTY1LCAxNjYsICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDMz
Li4zNgogfTsKIAotc3RhdGljIGNvbnN0IGludCBiaXRzUGVyQ2hhclRhYmxlU2hpZnQgPSA1Owor
c3RhdGljIGNvbnN0IHVuc2lnbmVkIGJpdHNQZXJDaGFyVGFibGVTaGlmdCA9IDU7CiBzdGF0aWMg
Y29uc3Qgc2l6ZV90IGJpdHNQZXJDaGFyVGFibGVNdWx0aXBsaWVyID0gMXUgPDwgYml0c1BlckNo
YXJUYWJsZVNoaWZ0OwogCiAvLyBDb21wdXRlIChhbiBvdmVyYXBwcm94aW1hdGlvbiBvZikgdGhl
IGxlbmd0aCBvZiB0aGUgcmVzdWx0aW5nIHN0cmluZzoKIC8vIERpdmlkZSBiaXQgbGVuZ3RoIG9m
IHRoZSBCaWdJbnQgYnkgYml0cyByZXByZXNlbnRhYmxlIHBlciBjaGFyYWN0ZXIuCi11aW50NjRf
dCBKU0JpZ0ludDo6Y2FsY3VsYXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZChpbnQgbGVuZ3Ro
LCBpbnQgcmFkaXgsIERpZ2l0IGxhc3REaWdpdCwgYm9vbCBzaWduKQordWludDY0X3QgSlNCaWdJ
bnQ6OmNhbGN1bGF0ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQodW5zaWduZWQgbGVuZ3RoLCB1
bnNpZ25lZCByYWRpeCwgRGlnaXQgbGFzdERpZ2l0LCBib29sIHNpZ24pCiB7Ci0gICAgaW50IGxl
YWRpbmdaZXJvczsKKyAgICB1bnNpZ25lZCBsZWFkaW5nWmVyb3M7CiAgICAgaWYgKHNpemVvZihs
YXN0RGlnaXQpID09IDgpCiAgICAgICAgIGxlYWRpbmdaZXJvcyA9IGNsejY0KGxhc3REaWdpdCk7
CiAgICAgZWxzZQpAQCAtNTQxLDcgKzYwOSw3IEBAIHVpbnQ2NF90IEpTQmlnSW50OjpjYWxjdWxh
dGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKGludCBsZW5ndGgsIGludCByYWRpeCwgRGlnCiAg
ICAgcmV0dXJuIG1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQ7CiB9CiAKLVN0cmluZyBKU0JpZ0lu
dDo6dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCBpbnQgcmFk
aXgpCitTdHJpbmcgSlNCaWdJbnQ6OnRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUmIHN0YXRlLCBK
U0JpZ0ludCogeCwgdW5zaWduZWQgcmFkaXgpCiB7CiAgICAgLy8gRklYTUU6IFtKU0NdIFJldmlz
aXQgdXNhZ2Ugb2YgVmVjdG9yIGludG8gSlNCaWdJbnQ6OnRvU3RyaW5nCiAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDY3CkBAIC01NTAsNyArNjE4LDcg
QEAgU3RyaW5nIEpTQmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNC
aWdJbnQqIHgsIGludCByYWRpeCkKICAgICBBU1NFUlQocmFkaXggPj0gMiAmJiByYWRpeCA8PSAz
Nik7CiAgICAgQVNTRVJUKCF4LT5pc1plcm8oKSk7CiAKLSAgICBpbnQgbGVuZ3RoID0geC0+bGVu
Z3RoKCk7CisgICAgdW5zaWduZWQgbGVuZ3RoID0geC0+bGVuZ3RoKCk7CiAgICAgYm9vbCBzaWdu
ID0geC0+c2lnbigpOwogCiAgICAgdWludDhfdCBtYXhCaXRzUGVyQ2hhciA9IG1heEJpdHNQZXJD
aGFyVGFibGVbcmFkaXhdOwpAQCAtNTY2LDEyICs2MzQsMTIgQEAgU3RyaW5nIEpTQmlnSW50Ojp0
b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQqIHgsIGludCByYWRpeCkK
ICAgICBpZiAobGVuZ3RoID09IDEpCiAgICAgICAgIGxhc3REaWdpdCA9IHgtPmRpZ2l0KDApOwog
ICAgIGVsc2UgewotICAgICAgICBpbnQgY2h1bmtDaGFycyA9IGRpZ2l0Qml0cyAqIGJpdHNQZXJD
aGFyVGFibGVNdWx0aXBsaWVyIC8gbWF4Qml0c1BlckNoYXI7CisgICAgICAgIHVuc2lnbmVkIGNo
dW5rQ2hhcnMgPSBkaWdpdEJpdHMgKiBiaXRzUGVyQ2hhclRhYmxlTXVsdGlwbGllciAvIG1heEJp
dHNQZXJDaGFyOwogICAgICAgICBEaWdpdCBjaHVua0Rpdmlzb3IgPSBkaWdpdFBvdyhyYWRpeCwg
Y2h1bmtDaGFycyk7CiAKICAgICAgICAgLy8gQnkgY29uc3RydWN0aW9uIG9mIGNodW5rQ2hhcnMs
IHRoZXJlIGNhbid0IGhhdmUgYmVlbiBvdmVyZmxvdy4KICAgICAgICAgQVNTRVJUKGNodW5rRGl2
aXNvcik7Ci0gICAgICAgIGludCBub25aZXJvRGlnaXQgPSBsZW5ndGggLSAxOworICAgICAgICB1
bnNpZ25lZCBub25aZXJvRGlnaXQgPSBsZW5ndGggLSAxOwogICAgICAgICBBU1NFUlQoeC0+ZGln
aXQobm9uWmVyb0RpZ2l0KSk7CiAKICAgICAgICAgLy8ge3Jlc3R9IGhvbGRzIHRoZSBwYXJ0IG9m
IHRoZSBCaWdJbnQgdGhhdCB3ZSBoYXZlbid0IGxvb2tlZCBhdCB5ZXQuCkBAIC01ODcsNyArNjU1
LDcgQEAgU3RyaW5nIEpTQmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwg
SlNCaWdJbnQqIHgsIGludCByYWRpeCkKICAgICAgICAgICAgIEFTU0VSVChyZXN0KTsKIAogICAg
ICAgICAgICAgZGl2aWRlbmQgPSAmcmVzdDsKLSAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgY2h1bmtDaGFyczsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgY2h1bmtDaGFyczsgaSsrKSB7CiAgICAgICAgICAgICAgICAgcmVzdWx0U3RyaW5nLmFwcGVu
ZChyYWRpeERpZ2l0c1tjaHVuayAlIHJhZGl4XSk7CiAgICAgICAgICAgICAgICAgY2h1bmsgLz0g
cmFkaXg7CiAgICAgICAgICAgICB9CkBAIC02MTIsNyArNjgwLDcgQEAgU3RyaW5nIEpTQmlnSW50
Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQqIHgsIGludCByYWRp
eCkKICAgICBBU1NFUlQocmVzdWx0U3RyaW5nLnNpemUoKSA8PSBzdGF0aWNfY2FzdDxzaXplX3Q+
KG1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQpKTsKIAogICAgIC8vIFJlbW92ZSBsZWFkaW5nIHpl
cm9lcy4KLSAgICBpbnQgbmV3U2l6ZU5vTGVhZGluZ1plcm9lcyA9IHJlc3VsdFN0cmluZy5zaXpl
KCk7CisgICAgdW5zaWduZWQgbmV3U2l6ZU5vTGVhZGluZ1plcm9lcyA9IHJlc3VsdFN0cmluZy5z
aXplKCk7CiAgICAgd2hpbGUgKG5ld1NpemVOb0xlYWRpbmdaZXJvZXMgID4gMSAmJiByZXN1bHRT
dHJpbmdbbmV3U2l6ZU5vTGVhZGluZ1plcm9lcyAtIDFdID09ICcwJykKICAgICAgICAgbmV3U2l6
ZU5vTGVhZGluZ1plcm9lcy0tOwogCkBAIC02MzEsMTQgKzY5OSwxNiBAQCBKU0JpZ0ludCogSlNC
aWdJbnQ6OnJpZ2h0VHJpbShWTSYgdm0pCiAgICAgaWYgKGlzWmVybygpKQogICAgICAgICByZXR1
cm4gdGhpczsKIAorICAgIEFTU0VSVChtX2xlbmd0aCk7CisKICAgICBpbnQgbm9uWmVyb0luZGV4
ID0gbV9sZW5ndGggLSAxOwogICAgIHdoaWxlIChub25aZXJvSW5kZXggPj0gMCAmJiAhZGlnaXQo
bm9uWmVyb0luZGV4KSkKICAgICAgICAgbm9uWmVyb0luZGV4LS07CiAKLSAgICBpZiAobm9uWmVy
b0luZGV4ID09IG1fbGVuZ3RoIC0gMSkKKyAgICBpZiAobm9uWmVyb0luZGV4ID09IHN0YXRpY19j
YXN0PGludD4obV9sZW5ndGggLSAxKSkKICAgICAgICAgcmV0dXJuIHRoaXM7CiAKLSAgICBpbnQg
bmV3TGVuZ3RoID0gbm9uWmVyb0luZGV4ICsgMTsKKyAgICB1bnNpZ25lZCBuZXdMZW5ndGggPSBu
b25aZXJvSW5kZXggKyAxOwogICAgIEpTQmlnSW50KiB0cmltbWVkQmlnSW50ID0gY3JlYXRlV2l0
aExlbmd0aCh2bSwgbmV3TGVuZ3RoKTsKICAgICBSRUxFQVNFX0FTU0VSVCh0cmltbWVkQmlnSW50
KTsKICAgICBzdGQ6OmNvcHkoZGF0YVN0b3JhZ2UoKSwgZGF0YVN0b3JhZ2UoKSArIG5ld0xlbmd0
aCwgdHJpbW1lZEJpZ0ludC0+ZGF0YVN0b3JhZ2UoKSk7IApAQCAtNjQ4LDE0ICs3MTgsMTQgQEAg
SlNCaWdJbnQqIEpTQmlnSW50OjpyaWdodFRyaW0oVk0mIHZtKQogICAgIHJldHVybiB0cmltbWVk
QmlnSW50OwogfQogCi1KU0JpZ0ludCogSlNCaWdJbnQ6OmFsbG9jYXRlRm9yKEV4ZWNTdGF0ZSog
c3RhdGUsIFZNJiB2bSwgaW50IHJhZGl4LCBpbnQgY2hhcmNvdW50KQorSlNCaWdJbnQqIEpTQmln
SW50OjphbGxvY2F0ZUZvcihFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0sIHVuc2lnbmVkIHJhZGl4
LCB1bnNpZ25lZCBjaGFyY291bnQpCiB7CiAgICAgQVNTRVJUKDIgPD0gcmFkaXggJiYgcmFkaXgg
PD0gMzYpOwogICAgIEFTU0VSVChjaGFyY291bnQgPj0gMCk7CiAKICAgICBzaXplX3QgYml0c1Bl
ckNoYXIgPSBtYXhCaXRzUGVyQ2hhclRhYmxlW3JhZGl4XTsKICAgICBzaXplX3QgY2hhcnMgPSBj
aGFyY291bnQ7Ci0gICAgY29uc3QgaW50IHJvdW5kdXAgPSBiaXRzUGVyQ2hhclRhYmxlTXVsdGlw
bGllciAtIDE7CisgICAgY29uc3QgdW5zaWduZWQgcm91bmR1cCA9IGJpdHNQZXJDaGFyVGFibGVN
dWx0aXBsaWVyIC0gMTsKICAgICBpZiAoY2hhcnMgPD0gKHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6
ZV90Pjo6bWF4KCkgLSByb3VuZHVwKSAvIGJpdHNQZXJDaGFyKSB7CiAgICAgICAgIHNpemVfdCBi
aXRzTWluID0gYml0c1BlckNoYXIgKiBjaGFyczsKIApAQCAtNjYzLDcgKzczMyw3IEBAIEpTQmln
SW50KiBKU0JpZ0ludDo6YWxsb2NhdGVGb3IoRXhlY1N0YXRlKiBzdGF0ZSwgVk0mIHZtLCBpbnQg
cmFkaXgsIGludCBjaGFyY291CiAgICAgICAgIGJpdHNNaW4gPSAoYml0c01pbiArIHJvdW5kdXAp
ID4+IGJpdHNQZXJDaGFyVGFibGVTaGlmdDsKICAgICAgICAgaWYgKGJpdHNNaW4gPD0gc3RhdGlj
X2Nhc3Q8c2l6ZV90PihtYXhJbnQpKSB7CiAgICAgICAgICAgICAvLyBEaXZpZGUgYnkga0RpZ2l0
c0JpdHMsIHJvdW5kaW5nIHVwLgotICAgICAgICAgICAgaW50IGxlbmd0aCA9IChzdGF0aWNfY2Fz
dDxpbnQ+KGJpdHNNaW4pICsgZGlnaXRCaXRzIC0gMSkgLyBkaWdpdEJpdHM7CisgICAgICAgICAg
ICB1bnNpZ25lZCBsZW5ndGggPSAoYml0c01pbiArIGRpZ2l0Qml0cyAtIDEpIC8gZGlnaXRCaXRz
OwogICAgICAgICAgICAgaWYgKGxlbmd0aCA8PSBtYXhMZW5ndGgpIHsKICAgICAgICAgICAgICAg
ICBKU0JpZ0ludCogcmVzdWx0ID0gSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGgodm0sIGxlbmd0
aCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTc3MSw5ICs4NDEsOSBAQCBK
U0JpZ0ludCogSlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgQ2hh
clR5cGUqIGRhdGEsIHVuc2lnbmVkCiAgICAgaWYgKHAgPT0gbGVuZ3RoKQogICAgICAgICByZXR1
cm4gY3JlYXRlWmVybyh2bSk7CiAKLSAgICBpbnQgbGltaXQwID0gJzAnICsgKHJhZGl4IDwgMTAg
PyByYWRpeCA6IDEwKTsKLSAgICBpbnQgbGltaXRhID0gJ2EnICsgKHJhZGl4IC0gMTApOwotICAg
IGludCBsaW1pdEEgPSAnQScgKyAocmFkaXggLSAxMCk7CisgICAgdW5zaWduZWQgbGltaXQwID0g
JzAnICsgKHJhZGl4IDwgMTAgPyByYWRpeCA6IDEwKTsKKyAgICB1bnNpZ25lZCBsaW1pdGEgPSAn
YScgKyAocmFkaXggLSAxMCk7CisgICAgdW5zaWduZWQgbGltaXRBID0gJ0EnICsgKHJhZGl4IC0g
MTApOwogCiAgICAgSlNCaWdJbnQqIHJlc3VsdCA9IGFsbG9jYXRlRm9yKHN0YXRlLCB2bSwgcmFk
aXgsIGxlbmd0aCAtIHApOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIp
OwpAQCAtODA5LDEzICs4NzksMTMgQEAgaW5saW5lIEpTQmlnSW50OjpEaWdpdCogSlNCaWdJbnQ6
OmRhdGFTdG9yYWdlKCkKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxEaWdpdCo+KHJlaW50
ZXJwcmV0X2Nhc3Q8Y2hhcio+KHRoaXMpICsgb2Zmc2V0T2ZEYXRhKCkpOwogfQogCi1pbmxpbmUg
SlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdChpbnQgbikKK0pTQmlnSW50OjpEaWdpdCBK
U0JpZ0ludDo6ZGlnaXQodW5zaWduZWQgbikKIHsKICAgICBBU1NFUlQobiA+PSAwICYmIG4gPCBs
ZW5ndGgoKSk7CiAgICAgcmV0dXJuIGRhdGFTdG9yYWdlKClbbl07CiB9CiAKLWlubGluZSB2b2lk
IEpTQmlnSW50OjpzZXREaWdpdChpbnQgbiwgRGlnaXQgdmFsdWUpCit2b2lkIEpTQmlnSW50Ojpz
ZXREaWdpdCh1bnNpZ25lZCBuLCBEaWdpdCB2YWx1ZSkKIHsKICAgICBBU1NFUlQobiA+PSAwICYm
IG4gPCBsZW5ndGgoKSk7CiAgICAgZGF0YVN0b3JhZ2UoKVtuXSA9IHZhbHVlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKaW5kZXggYjliZjc1MTJmZmMxM2I4ZjRmMmJh
NzNhYjRhMTc4NTMyYjljNzkzNC4uMDI0NGNiYjQ5NTRjOGVmZTQ5ODA5NjM4ODczZDFhN2ZjMWY2
NWRkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCkBAIC00MSw3
ICs0MSw3IEBAIGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAKIHB1Ymxp
YzoKIAotICAgIEpTQmlnSW50KFZNJiwgU3RydWN0dXJlKiwgaW50IGxlbmd0aCk7CisgICAgSlNC
aWdJbnQoVk0mLCBTdHJ1Y3R1cmUqLCB1bnNpZ25lZCBsZW5ndGgpOwogCiAgICAgZW51bSBjbGFz
cyBJbml0aWFsaXphdGlvblR5cGUgeyBOb25lLCBXaXRoWmVybyB9OwogICAgIHZvaWQgaW5pdGlh
bGl6ZShJbml0aWFsaXphdGlvblR5cGUpOwpAQCAtNDksMTIgKzQ5LDExIEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAKICAg
ICBzdGF0aWMgc2l6ZV90IGVzdGltYXRlZFNpemUoSlNDZWxsKik7Ci0gICAgc3RhdGljIHNpemVf
dCBhbGxvY2F0aW9uU2l6ZShpbnQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgc2l6ZV90IGFsbG9jYXRp
b25TaXplKHVuc2lnbmVkIGxlbmd0aCk7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBlKTsKLQogICAg
IHN0YXRpYyBKU0JpZ0ludCogY3JlYXRlWmVybyhWTSYpOwotICAgIHN0YXRpYyBKU0JpZ0ludCog
Y3JlYXRlV2l0aExlbmd0aChWTSYsIGludCBsZW5ndGgpOworICAgIHN0YXRpYyBKU0JpZ0ludCog
Y3JlYXRlV2l0aExlbmd0aChWTSYsIHVuc2lnbmVkIGxlbmd0aCk7CiAKICAgICBzdGF0aWMgSlNC
aWdJbnQqIGNyZWF0ZUZyb20oVk0mLCBpbnQzMl90IHZhbHVlKTsKICAgICBzdGF0aWMgSlNCaWdJ
bnQqIGNyZWF0ZUZyb20oVk0mLCB1aW50MzJfdCB2YWx1ZSk7CkBAIC03MCw4ICs2OSw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFNpZ24oYm9vbCBzaWduKSB7IG1fc2lnbiA9IHNpZ247IH0KICAg
ICBib29sIHNpZ24oKSBjb25zdCB7IHJldHVybiBtX3NpZ247IH0KIAotICAgIHZvaWQgc2V0TGVu
Z3RoKGludCBsZW5ndGgpIHsgbV9sZW5ndGggPSBsZW5ndGg7IH0KLSAgICBpbnQgbGVuZ3RoKCkg
Y29uc3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KKyAgICB2b2lkIHNldExlbmd0aCh1bnNpZ25lZCBs
ZW5ndGgpIHsgbV9sZW5ndGggPSBsZW5ndGg7IH0KKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25z
dCB7IHJldHVybiBtX2xlbmd0aDsgfQogCiAgICAgZW51bSBFcnJvclBhcnNlTW9kZSB7CiAgICAg
ICAgIFRocm93RXhjZXB0aW9ucywKQEAgLTkyLDYgKzkxLDggQEAgcHVibGljOgogICAgIGRvdWJs
ZSB0b051bWJlcihFeGVjU3RhdGUqKSBjb25zdDsKIAogICAgIEpTT2JqZWN0KiB0b09iamVjdChF
eGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0OworCisgICAgc3RhdGljIEpTQmlnSW50
KiBtdWx0aXBseShFeGVjU3RhdGUqLCBKU0JpZ0ludCogeCwgSlNCaWdJbnQqIHkpOwogICAgIAog
cHJpdmF0ZToKIApAQCAtMTAzLDkgKzEwNCw5IEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIHVz
aW5nIERpZ2l0ID0gdWludHB0cl90OwotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgaW50IGJp
dHNQZXJCeXRlID0gODsKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGludCBkaWdpdEJpdHMg
PSBzaXplb2YoRGlnaXQpICogYml0c1BlckJ5dGU7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25z
dCBpbnQgaGFsZkRpZ2l0Qml0cyA9IGRpZ2l0Qml0cyAvIDI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBjb25zdCB1bnNpZ25lZCBiaXRzUGVyQnl0ZSA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBj
b25zdCB1bnNpZ25lZCBkaWdpdEJpdHMgPSBzaXplb2YoRGlnaXQpICogYml0c1BlckJ5dGU7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCB1bnNpZ25lZCBoYWxmRGlnaXRCaXRzID0gZGlnaXRC
aXRzIC8gMjsKICAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IERpZ2l0IGhhbGZEaWdpdE1hc2sg
PSAoMXVsbCA8PCBoYWxmRGlnaXRCaXRzKSAtIDE7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBjb25z
dCBpbnQgbWF4SW50ID0gMHg3RkZGRkZGRjsKICAgICAKQEAgLTExMywxMiArMTE0LDEzIEBAIHBy
aXZhdGU6CiAgICAgLy8gbWF4SW50IC8gZGlnaXRCaXRzLiBIb3dldmVyLCB3ZSB1c2UgYSBsb3dl
ciBsaW1pdCBmb3Igbm93LCBiZWNhdXNlCiAgICAgLy8gcmFpc2luZyBpdCBsYXRlciBpcyBlYXNp
ZXIgdGhhbiBsb3dlcmluZyBpdC4KICAgICAvLyBTdXBwb3J0IHVwIHRvIDEgbWlsbGlvbiBiaXRz
LgotICAgIHN0YXRpYyBjb25zdCBpbnQgbWF4TGVuZ3RoID0gMTAyNCAqIDEwMjQgLyAoc2l6ZW9m
KHZvaWQqKSAqIGJpdHNQZXJCeXRlKTsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4TGVu
Z3RoID0gMTAyNCAqIDEwMjQgLyAoc2l6ZW9mKHZvaWQqKSAqIGJpdHNQZXJCeXRlKTsKICAgICAK
LSAgICBzdGF0aWMgdWludDY0X3QgY2FsY3VsYXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZChp
bnQgbGVuZ3RoLCBpbnQgcmFkaXgsIERpZ2l0IGxhc3REaWdpdCwgYm9vbCBzaWduKTsKKyAgICBz
dGF0aWMgdWludDY0X3QgY2FsY3VsYXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZCh1bnNpZ25l
ZCBsZW5ndGgsIHVuc2lnbmVkIHJhZGl4LCBEaWdpdCBsYXN0RGlnaXQsIGJvb2wgc2lnbik7CiAg
ICAgCiAgICAgc3RhdGljIHZvaWQgYWJzb2x1dGVEaXZTbWFsbChFeGVjU3RhdGUmLCBKU0JpZ0lu
dCogeCwgRGlnaXQgZGl2aXNvciwgSlNCaWdJbnQqKiBxdW90aWVudCwgRGlnaXQmIHJlbWFpbmRl
cik7Ci0gICAgc3RhdGljIHZvaWQgaW50ZXJuYWxNdWx0aXBseUFkZChKU0JpZ0ludCogc291cmNl
LCBEaWdpdCBmYWN0b3IsIERpZ2l0IHN1bW1hbmQsIGludCwgSlNCaWdJbnQqIHJlc3VsdCk7Cisg
ICAgc3RhdGljIHZvaWQgaW50ZXJuYWxNdWx0aXBseUFkZChKU0JpZ0ludCogc291cmNlLCBEaWdp
dCBmYWN0b3IsIERpZ2l0IHN1bW1hbmQsIHVuc2lnbmVkLCBKU0JpZ0ludCogcmVzdWx0KTsKKyAg
ICBzdGF0aWMgdm9pZCBtdWx0aXBseUFjY3VtdWxhdGUoSlNCaWdJbnQqIG11bHRpcGxpY2FuZCwg
RGlnaXQgbXVsdGlwbGllciwgSlNCaWdJbnQqIGFjY3VtdWxhdG9yLCB1bnNpZ25lZCBhY2N1bXVs
YXRvckluZGV4KTsKIAogICAgIC8vIERpZ2l0IGFyaXRobWV0aWMgaGVscGVycy4KICAgICBzdGF0
aWMgRGlnaXQgZGlnaXRBZGQoRGlnaXQgYSwgRGlnaXQgYiwgRGlnaXQmIGNhcnJ5KTsKQEAgLTEy
Nyw3ICsxMjksNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBEaWdpdCBkaWdpdERpdihEaWdpdCBo
aWdoLCBEaWdpdCBsb3csIERpZ2l0IGRpdmlzb3IsIERpZ2l0JiByZW1haW5kZXIpOwogICAgIHN0
YXRpYyBEaWdpdCBkaWdpdFBvdyhEaWdpdCBiYXNlLCBEaWdpdCBleHBvbmVudCk7CiAKLSAgICBz
dGF0aWMgU3RyaW5nIHRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUmLCBKU0JpZ0ludCosIGludCBy
YWRpeCk7CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiwgSlNC
aWdJbnQqLCB1bnNpZ25lZCByYWRpeCk7CiAKICAgICBib29sIGlzWmVybygpOwogCkBAIC0xMzks
NyArMTQxLDcgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+CiAg
ICAgc3RhdGljIEpTQmlnSW50KiBwYXJzZUludChFeGVjU3RhdGUqLCBWTSYsIENoYXJUeXBlKiBk
YXRhLCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkIHN0YXJ0SW5kZXgsIHVuc2lnbmVkIHJhZGl4
LCBFcnJvclBhcnNlTW9kZSwgYm9vbCBhbGxvd0VtcHR5U3RyaW5nID0gdHJ1ZSk7CiAKLSAgICBz
dGF0aWMgSlNCaWdJbnQqIGFsbG9jYXRlRm9yKEV4ZWNTdGF0ZSosIFZNJiwgaW50IHJhZGl4LCBp
bnQgY2hhcmNvdW50KTsKKyAgICBzdGF0aWMgSlNCaWdJbnQqIGFsbG9jYXRlRm9yKEV4ZWNTdGF0
ZSosIFZNJiwgdW5zaWduZWQgcmFkaXgsIHVuc2lnbmVkIGNoYXJjb3VudCk7CiAKICAgICBKU0Jp
Z0ludCogcmlnaHRUcmltKFZNJik7CiAKQEAgLTE0OCwxMCArMTUwLDEwIEBAIHByaXZhdGU6CiAg
ICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZkRhdGEoKTsKICAgICBEaWdpdCogZGF0YVN0b3JhZ2Uo
KTsKIAotICAgIERpZ2l0IGRpZ2l0KGludCk7Ci0gICAgdm9pZCBzZXREaWdpdChpbnQsIERpZ2l0
KTsKKyAgICBEaWdpdCBkaWdpdCh1bnNpZ25lZCk7CisgICAgdm9pZCBzZXREaWdpdCh1bnNpZ25l
ZCwgRGlnaXQpOwogICAgICAgICAKLSAgICBpbnQgbV9sZW5ndGg7CisgICAgdW5zaWduZWQgbV9s
ZW5ndGg7CiAgICAgYm9vbCBtX3NpZ247CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggMjFlODBmODc1MDNjN2VmOTFiN2IyMTA1ZWIwYzcyNWRh
MmVhYjc2My4uOTFkYzFhNDBmMTRlMzc2NzJmNDEwMTYwNGMwNjkwZTYwOTdlMThmYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaApAQCAtMzksNiArMzksNyBA
QAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEFzc2VtYmx5SGVscGVyczsKK2NsYXNzIEpTQmln
SW50OwogY2xhc3MgRXhlY1N0YXRlOwogY2xhc3MgSlNDZWxsOwogY2xhc3MgSlNWYWx1ZVNvdXJj
ZTsKQEAgLTI1Nyw2ICsyNTgsOCBAQCBwdWJsaWM6CiAgICAgLy8gdG9OdW1iZXIgY29udmVyc2lv
biBpcyBleHBlY3RlZCB0byBiZSBzaWRlIGVmZmVjdCBmcmVlIGlmIGFuIGV4Y2VwdGlvbiBoYXMK
ICAgICAvLyBiZWVuIHNldCBpbiB0aGUgRXhlY1N0YXRlIGFscmVhZHkuCiAgICAgZG91YmxlIHRv
TnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OworICAgIAorICAgIFZhcmlhbnQ8SlNCaWdJbnQqLCBk
b3VibGU+IHRvTnVtZXJpYyhFeGVjU3RhdGUqKSBjb25zdDsKIAogICAgIC8vIHRvTnVtYmVyIGNv
bnZlcnNpb24gaWYgaXQgY2FuIGJlIGRvbmUgd2l0aG91dCBzaWRlIGVmZmVjdHMuCiAgICAgc3Rk
OjpvcHRpb25hbDxkb3VibGU+IHRvTnVtYmVyRnJvbVByaW1pdGl2ZSgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKaW5kZXgg
MjNkM2IyNmM1OTU0MmI3NzBlNGQzZDBhMjQ2MTI2MmUzZGU1YzlhOC4uM2FlZTBjNDdlNjMzNDE2
OGNkMDIzMDliNjQ2YTI0MzU3ODE0ZjFmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVk
ZSAiSlNQcm94eS5oIgogI2luY2x1ZGUgIkpTU3RyaW5nSW5saW5lcy5oIgogI2luY2x1ZGUgIk1h
dGhDb21tb24uaCIKKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0ltcGwuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC03MjgsNiArNzI5LDI2IEBAIEFM
V0FZU19JTkxJTkUgZG91YmxlIEpTVmFsdWU6OnRvTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYykgY29u
c3QKICAgICByZXR1cm4gdG9OdW1iZXJTbG93Q2FzZShleGVjKTsKIH0KIAorQUxXQVlTX0lOTElO
RSBWYXJpYW50PEpTQmlnSW50KiwgZG91YmxlPiBKU1ZhbHVlOjp0b051bWVyaWMoRXhlY1N0YXRl
KiBleGVjKSBjb25zdAoreworICAgIGlmIChpc0ludDMyKCkpCisgICAgICAgIHJldHVybiBhc0lu
dDMyKCk7CisgICAgaWYgKGlzRG91YmxlKCkpCisgICAgICAgIHJldHVybiBhc0RvdWJsZSgpOwor
ICAgIGlmIChpc0JpZ0ludCgpKQorICAgICAgICByZXR1cm4gYXNCaWdJbnQoKnRoaXMpOworCisg
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CisgICAgSlNWYWx1ZSBwcmltVmFsdWUgPSB0aGlzLT50b1ByaW1pdGl2ZShleGVj
LCBQcmVmZXJOdW1iZXIpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIDApOworICAg
IGlmIChwcmltVmFsdWUuaXNCaWdJbnQoKSkKKyAgICAgICAgcmV0dXJuIGFzQmlnSW50KHByaW1W
YWx1ZSk7CisgICAgZG91YmxlIHZhbHVlID0gcHJpbVZhbHVlLnRvTnVtYmVyKGV4ZWMpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIDApOworICAgIHJldHVybiB2YWx1ZTsKK30KKwog
aW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMsIGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSkgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVy
YXRpb25zLmgKaW5kZXggMTM0OWFlYzE2YTdhODNhOGE4YTU5MGFjZWZkNTRiMTc5Yzk3YmYxZi4u
NDk1NTkwYmI4ODZlYTBhZjNiYTVkODFlZjIwZmZkNzQ1NTAwYTc1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaApAQCAtMjMsNyArMjMsOSBAQAogCiAjaW5j
bHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgorI2luY2x1
ZGUgIkpTQmlnSW50LmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9W
YXJpYW50Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC0yNTYsNiArMjU4LDI5IEBAIEFMV0FZ
U19JTkxJTkUgSlNWYWx1ZSBqc0FkZChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2MSwg
SlNWYWx1ZSB2MikKICAgICByZXR1cm4ganNBZGRTbG93Q2FzZShjYWxsRnJhbWUsIHYxLCB2Mik7
CiB9CiAKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc011bChFeGVjU3RhdGUqIHN0YXRlLCBKU1Zh
bHVlIHYxLCBKU1ZhbHVlIHYyKQoreworICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOworICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFZhcmlhbnQ8SlNCaWdJ
bnQqLCBkb3VibGU+IGxlZnROdW1lcmljID0gdjEudG9OdW1lcmljKHN0YXRlKTsKKyAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIFZhcmlhbnQ8SlNCaWdJbnQqLCBkb3Vi
bGU+IHJpZ2h0TnVtZXJpYyA9IHYyLnRvTnVtZXJpYyhzdGF0ZSk7CisgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKKworICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPEpT
QmlnSW50Kj4obGVmdE51bWVyaWMpIHx8IFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8SlNCaWdJbnQq
PihyaWdodE51bWVyaWMpKSB7CisgICAgICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPEpT
QmlnSW50Kj4obGVmdE51bWVyaWMpICYmIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8SlNCaWdJbnQq
PihyaWdodE51bWVyaWMpKQorICAgICAgICAgICAgcmV0dXJuIEpTQmlnSW50OjptdWx0aXBseShz
dGF0ZSwgV1RGOjpnZXQ8SlNCaWdJbnQqPihsZWZ0TnVtZXJpYyksIFdURjo6Z2V0PEpTQmlnSW50
Kj4ocmlnaHROdW1lcmljKSk7CisKKyAgICAgICAgdGhyb3dUeXBlRXJyb3Ioc3RhdGUsIHNjb3Bl
LCBBU0NJSUxpdGVyYWwoIkludmFsaWQgbWl4IG9mIEJpZ0ludCBhbmQgb3RoZXIgdHlwZSBpbiBt
dWx0aXBsaWNhdGlvbi4iKSk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgZG91
YmxlIGxlZnRWYWx1ZSA9ICBXVEY6OmdldDxkb3VibGU+KGxlZnROdW1lcmljKTsKKyAgICBkb3Vi
bGUgcmlnaHRWYWx1ZSA9ICBXVEY6OmdldDxkb3VibGU+KHJpZ2h0TnVtZXJpYyk7CisgICAgcmV0
dXJuIGpzTnVtYmVyKGxlZnRWYWx1ZSAqIHJpZ2h0VmFsdWUpOworfQorCiBpbmxpbmUgYm9vbCBz
Y3JpYmJsZUZyZWVDZWxscygpCiB7CiAgICAgcmV0dXJuICFBU1NFUlRfRElTQUJMRUQgfHwgT3B0
aW9uczo6c2NyaWJibGVGcmVlQ2VsbHMoKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9n
IGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzMxMTU4ODA0MWVhMGJiNTZjYWYzNzk2YTRmMjVk
YzQxN2I2MjA1Mi4uZDNhNDY1NjRjNjkzY2Y3YmE0MGEzNjU3NmI2Y2I5ZTg2Yjc0N2I1NiAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxOC0wNS0xMCAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgIioiIG9w
ZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgzNzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBiaWdJbnRUZXN0cy55YW1sOgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11bC1qaXQuanM6
IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUtcHJlY2Vk
ZW5jZS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2
ZS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVsLXR5cGUtZXJyb3IuanM6
IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11bC13cmFwcGVkLXZhbHVlLmpzOiBB
ZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWx0aXBsaWNhdGlvbi5qczogQWRkZWQu
CisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVsdGlwbHktbWVtb3J5LXN0cmVzcy5qczogQWRk
ZWQuCisKIDIwMTgtMDUtMTAgIExlbyBCYWx0ZXIgIDxsZW9uYXJkby5iYWx0ZXJAZ21haWwuY29t
PgogCiAgICAgICAgIFVwZGF0ZSBUZXN0MjYyIHRlc3RzIHRocm91Z2ggdGhlIG5ldyBpbXBvcnQg
c2NyaXB0IC0gMjAxODA1MDkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvYmlnSW50VGVzdHMueWFtbCBi
L0pTVGVzdHMvYmlnSW50VGVzdHMueWFtbAppbmRleCA3YWUyMmNiMWJiMmFmZjYyY2M0ZGRmNDk2
Mjk5Zjk2YTA3NDRmN2FlLi5lOTQ3ZGMyOTQ1YWRmOTBkMDc3ZmM4MzdkNTU4M2ExZDA4ZTNiYzkx
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL2JpZ0ludFRlc3RzLnlhbWwKKysrIGIvSlNUZXN0cy9iaWdJ
bnRUZXN0cy55YW1sCkBAIC05NywzICs5NywyNCBAQAogLSBwYXRoOiBzdHJlc3MvYmlnLWludC10
by1zdHJpbmcuanMKICAgY21kOiBydW5CaWdJbnRFbmFibGVkCiAKKy0gcGF0aDogc3RyZXNzL2Jp
Zy1pbnQtbXVsLWppdC5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKworLSBwYXRoOiBzdHJl
c3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLXByZWNlZGVuY2UuanMKKyAgY21kOiBydW5CaWdJ
bnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS5qcwor
ICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKworLSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWwtdHlw
ZS1lcnJvci5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKworLSBwYXRoOiBzdHJlc3MvYmln
LWludC1tdWwtd3JhcHBlZC12YWx1ZS5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKworLSBw
YXRoOiBzdHJlc3MvYmlnLWludC1tdWx0aXBsaWNhdGlvbi5qcworICBjbWQ6IHJ1bkJpZ0ludEVu
YWJsZWQKKworLSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWx0aXBseS1tZW1vcnktc3RyZXNzLmpz
CisgIGNtZDogcnVuQmlnSW50RW5hYmxlZAorCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9i
aWctaW50LW11bC1qaXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC1qaXQuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMGNiZWRlMzE4NzVkMjFmYjM4MjJlN2YyOGZmMDViY2FjYTFjOWY3YQotLS0gL2Rl
di9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLWppdC5qcwpAQCAtMCwwICsx
LDE5IEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCitsZXQgYXNzZXJ0ID0geworICAgIHNhbWVW
YWx1ZTogZnVuY3Rpb24oaSwgZSwgbSkgeworICAgICAgICBpZiAoaSAhPT0gZSkKKyAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcihtKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGJpZ0ludE11bCh4
LCB5KSB7CisgICAgcmV0dXJuIHggKiB5OworfQorbm9JbmxpbmUoYmlnSW50TXVsKTsKKworZm9y
IChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKSB7CisgICAgbGV0IHIgPSBiaWdJbnRNdWwoM24s
IDEwbik7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShyLCAzMG4sIDNuICsgIiAqICIgKyAxMG4gKyAi
ID0gIiArIHIpOworfQorCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10
by1wcmltaXRpdmUtcHJlY2VkZW5jZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXRv
LXByaW1pdGl2ZS1wcmVjZWRlbmNlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNDlhMTk2ODdlMTRhZWU3MDEz
YjM2ODY0NDkyZTY4MmJkNWU3NWUKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9i
aWctaW50LW11bC10by1wcmltaXRpdmUtcHJlY2VkZW5jZS5qcwpAQCAtMCwwICsxLDM5IEBACisv
L0AgcnVuQmlnSW50RW5hYmxlZAorCithc3NlcnQgPSB7CisgICAgc2FtZVZhbHVlOiBmdW5jdGlv
biAoaW5wdXQsIGV4cGVjdGVkLCBtZXNzYWdlKSB7CisgICAgICAgIGlmIChpbnB1dCAhPT0gZXhw
ZWN0ZWQpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7CisgICAgfQorfTsK
KworZnVuY3Rpb24gdGVzdE11bCh4LCB5LCB6LCBtZXNzYWdlKSB7CisgICAgYXNzZXJ0LnNhbWVW
YWx1ZSh4ICogeSwgeiwgbWVzc2FnZSk7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh5ICogeCwgeiwg
bWVzc2FnZSk7Cit9CisKK3Rlc3RNdWwoT2JqZWN0KDJuKSwgMW4sIDJuLCAiVG9QcmltaXRpdmU6
IHVuYm94IG9iamVjdCB3aXRoIGludGVybmFsIHNsb3QiKTsKKworbGV0IG8gPSB7CisgICAgW1N5
bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gMm47CisgICAg
fSwKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigi
U2hvdWxkIG5ldmVyIGV4ZWN1dGUgaXQiKTsKKyAgICB9LAorICAgIHRvU3RyaW5nOiBmdW5jdGlv
biAoKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiU2hvdWxkIG5ldmVyIGV4ZWN1dGUgaXQi
KTsKKyAgICB9Cit9OwordGVzdE11bChvLCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogQEB0b1ByaW1p
dGl2ZSIpOworCitvID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1
cm4gMm47CisgICAgfSwKKyAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgeworICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBleGVjdXRlIGl0Iik7CisgICAgfQorfTsKK3Rlc3RN
dWwobywgMW4sIDJuLCAiVG9QcmltaXRpdmU6IHZhbHVlT2YiKTsKKwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
YmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0MmUyZThlMjkxMTllMjdk
MTM1NzdjYjU3YWMyZjk3MzUwZmU2Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVz
cy9iaWctaW50LW11bC10by1wcmltaXRpdmUuanMKQEAgLTAsMCArMSwzNSBAQAorLy9AIHJ1bkJp
Z0ludEVuYWJsZWQKKworZnVuY3Rpb24gYXNzZXJ0KGEpIHsKKyAgICBpZiAoIWEpCisgICAgICAg
IHRocm93IG5ldyBFcnJvcigiQmFkIGFzc2VydGlvbiIpOworfQorCithc3NlcnQuc2FtZVZhbHVl
ID0gZnVuY3Rpb24gKGlucHV0LCBleHBlY3RlZCwgbWVzc2FnZSkgeworICAgIGlmIChpbnB1dCAh
PT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTsKK30KKworZnVu
Y3Rpb24gdGVzdE11bCh4LCB5LCB6KSB7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh4ICogeSwgeiwg
eCArICIgKiAiICsgeSArICIgPSAiICsgeik7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh5ICogeCwg
eiwgeSArICIgKiAiICsgeCArICIgPSAiICsgeik7Cit9CisKK2xldCBvID0geworICAgIFtTeW1i
b2wudG9QcmltaXRpdmVdOiBmdW5jdGlvbiAoKSB7IHJldHVybiAzMDAwMDAwMDAwMDAwMDBuOyB9
Cit9CisKK3Rlc3RNdWwoNTAwMDAwMDAwMDAwNDM4biwgbywgMTUwMDAwMDAwMDAwMTMxNDAwMDAw
MDAwMDAwMDAwbik7CisKK28udmFsdWVPZiA9IGZ1bmN0aW9uICgpIHsKKyAgICB0aHJvdyBuZXcg
RXJyb3IoIlNob3VsZCBuZXZlciBleGVjdXRlIGl0Iik7Cit9OworCit0ZXN0TXVsKDcwMDAwMDAw
MDAwMDQzOG4sIG8sIDIxMDAwMDAwMDAwMDEzMTQwMDAwMDAwMDAwMDAwMG4pOworCitvLnRvU3Ry
aW5nID0gZnVuY3Rpb24gKCkgeworICAgIHRocm93IG5ldyBFcnJvcigiU2hvdWxkIG5ldmVyIGV4
ZWN1dGUgaXQiKTsKK307CisKK3Rlc3RNdWwoNzAwMDAwMDAwMDAwNDM4biwgbywgMjEwMDAwMDAw
MDAwMTMxNDAwMDAwMDAwMDAwMDAwbik7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2Jp
Zy1pbnQtbXVsLXR5cGUtZXJyb3IuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10eXBl
LWVycm9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1MTc4NDU3ZmI2MjM3NTdmZDBlNzczNTc3ZGMzOTZmMmYz
MGZlNjAKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10eXBl
LWVycm9yLmpzCkBAIC0wLDAgKzEsMTA2IEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCitmdW5j
dGlvbiBhc3NlcnQoYSwgbWVzc2FnZSkgeworICAgIGlmICghYSkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKG1lc3NhZ2UpOworfQorCitmdW5jdGlvbiBhc3NlcnRUaHJvd1R5cGVFcnJvcihhLCBi
LCBtZXNzYWdlKSB7CisgICAgdHJ5IHsKKyAgICAgICAgbGV0IG4gPSBhICogYjsKKyAgICAgICAg
YXNzZXJ0KGZhbHNlLCBtZXNzYWdlICsgIjogU2hvdWxkIHRocm93IFR5cGVFcnJvciwgYnV0IGV4
ZWN1dGVkIHdpdGhvdXQgZXhjZXB0aW9uIik7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBh
c3NlcnQoZSBpbnN0YW5jZW9mIFR5cGVFcnJvciwgbWVzc2FnZSArICI6IGV4cGVjdGVkIFR5cGVF
cnJvciwgZ290OiAiICsgZSk7CisgICAgfQorfQorCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4s
ICJmb28iLCAiQmlnSW50ICogU3RyaW5nIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigiYmFyIiwg
MTg3NTczODI5ODQ4MjFuLCAiU3RyaW5nICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJv
cigzMG4sIFN5bWJvbCgiZm9vIiksICJCaWdJbnQgKiBTeW1ib2wiKTsKK2Fzc2VydFRocm93VHlw
ZUVycm9yKFN5bWJvbCgiYmFyIiksIDE4NzU3MzgyOTg0ODIxbiwgIlN5bWJvbCAqIEJpZ0ludCIp
OworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCAzMzIwLCAiQmlnSW50ICogSW50MzIiKTsKK2Fz
c2VydFRocm93VHlwZUVycm9yKDMzMjU2LCAxODc1NzM4Mjk4NDgyMW4sICJJbnQzMiAqIEJpZ0lu
dCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCAwLjU0MywgIkJpZ0ludCAqIERvdWJsZSIp
OworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMjMwLjE5MjkzLCAxODc1NzM4Mjk4NDgyMW4sICJEb3Vi
bGUgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgTmFOLCAiQmlnSW50ICog
TmFOIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihOYU4sIDE4NzU3MzgyOTg0ODIxbiwgIk5hTiAq
IEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBOYU4sICJCaWdJbnQgKiBOYU4i
KTsKK2Fzc2VydFRocm93VHlwZUVycm9yKE5hTiwgMTg3NTczODI5ODQ4MjFuLCAiTmFOICogQmln
SW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sICtJbmZpbml0eSwgIkJpZ0ludCAqIE5h
TiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoK0luZmluaXR5LCAxODc1NzM4Mjk4NDgyMW4sICJO
YU4gKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgLUluZmluaXR5LCAiQmln
SW50ICogLUluZmluaXR5Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigtSW5maW5pdHksIDE4NzU3
MzgyOTg0ODIxbiwgIi1JbmZpbml0eSAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3Io
MzBuLCBudWxsLCAiQmlnSW50ICogbnVsbCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobnVsbCwg
MTg3NTczODI5ODQ4MjFuLCAibnVsbCAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3Io
MzBuLCB1bmRlZmluZWQsICJCaWdJbnQgKiB1bmRlZmluZWQiKTsKK2Fzc2VydFRocm93VHlwZUVy
cm9yKHVuZGVmaW5lZCwgMTg3NTczODI5ODQ4MjFuLCAidW5kZWZpbmVkICogQmlnSW50Iik7Cith
c3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIHRydWUsICJCaWdJbnQgKiB0cnVlIik7Cithc3NlcnRU
aHJvd1R5cGVFcnJvcih0cnVlLCAxODc1NzM4Mjk4NDgyMW4sICJ0cnVlICogQmlnSW50Iik7Cith
c3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIGZhbHNlLCAiQmlnSW50ICogZmFsc2UiKTsKK2Fzc2Vy
dFRocm93VHlwZUVycm9yKGZhbHNlLCAxODc1NzM4Mjk4NDgyMW4sICJmYWxzZSAqIEJpZ0ludCIp
OworCisvLyBFcnJvciB3aGVuIHJldHVybmluZyBmcm9tIG9iamVjdAorCitsZXQgbyA9IHsKKyAg
ICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7IHJldHVybiBTeW1ib2woIkZvbyIpOyB9Cit9OworCith
c3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QudmFsdWVPZiByZXR1
cm5pbmcgU3ltYm9sIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4s
ICJPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgU3ltYm9sICogQmlnSW50Iik7CisKK28gPSB7Cisg
ICAgdmFsdWVPZjogZnVuY3Rpb24gKCkgeyByZXR1cm4gMzMyNTY7IH0KK307CisKK2Fzc2VydFRo
cm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC52YWx1ZU9mIHJldHVybmluZyBJ
bnQzMiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0
LnZhbHVlT2YgcmV0dXJuaW5nIEludDMyICogQmlnSW50Iik7CisKK28gPSB7CisgICAgdmFsdWVP
ZjogZnVuY3Rpb24gKCkgeyByZXR1cm4gMC40NTM7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVy
cm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC52YWx1ZU9mIHJldHVybmluZyBEb3VibGUiKTsK
K2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC52YWx1ZU9m
IHJldHVybmluZyBEb3VibGUgKiBCaWdJbnQiKTsKKworbyA9IHsKKyAgICB0b1N0cmluZzogZnVu
Y3Rpb24gKCkgeyByZXR1cm4gU3ltYm9sKCJGb28iKTsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBl
RXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBTeW1ib2wi
KTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC50b1N0
cmluZyByZXR1cm5pbmcgU3ltYm9sICogQmlnSW50Iik7CisKK28gPSB7CisgICAgdG9TdHJpbmc6
IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDMzMjU2OyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJv
cigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QudG9TdHJpbmcgcmV0dXJuaW5nIEludDMyIik7Cith
c3NlcnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QudG9TdHJpbmcg
cmV0dXJuaW5nIEludDMyICogQmlnSW50Iik7CisKK28gPSB7CisgICAgdG9TdHJpbmc6IGZ1bmN0
aW9uICgpIHsgcmV0dXJuIDAuNDUzOyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4s
IG8sICJCaWdJbnQgKiBPYmplY3QudG9TdHJpbmcgcmV0dXJuaW5nIERvdWJsZSIpOworYXNzZXJ0
VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LnRvU3RyaW5nIHJldHVy
bmluZyBEb3VibGUgKiBCaWdJbnQiKTsKKworbyA9IHsKKyAgICBbU3ltYm9sLnRvUHJpbWl0aXZl
XTogZnVuY3Rpb24gKCkgeyByZXR1cm4gU3ltYm9sKCJGb28iKTsgfQorfTsKKworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJu
aW5nIFN5bWJvbCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAi
T2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5nIFN5bWJvbCAqIEJpZ0ludCIpOworCitvID0g
eworICAgIFtTeW1ib2wudG9QcmltaXRpdmVdOiBmdW5jdGlvbiAoKSB7IHJldHVybiAzMzI1Njsg
fQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LkBA
dG9QcmltaXRpdmUgcmV0dXJuaW5nIEludDMyIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihvLCAx
ODc1NzM4Mjk4NDgyMW4sICJPYmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcgSW50MzIgKiBC
aWdJbnQiKTsKKworbyA9IHsKKyAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24gKCkg
eyByZXR1cm4gMC40NTM7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJp
Z0ludCAqIE9iamVjdC5AQHRvUHJpbWl0aXZlIHJldHVybmluZyBEb3VibGUiKTsKK2Fzc2VydFRo
cm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC5AQHRvUHJpbWl0aXZlIHJl
dHVybmluZyBEb3VibGUgKiBCaWdJbnQiKTsKKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
YmlnLWludC1tdWwtd3JhcHBlZC12YWx1ZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVs
LXdyYXBwZWQtdmFsdWUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY3M2Q4YTYwMzAyZmFmNjZkZmE2Y2ZhMWVi
MTM3MGVjOGMyMmMzYQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQt
bXVsLXdyYXBwZWQtdmFsdWUuanMKQEAgLTAsMCArMSwzNyBAQAorLy9AIHJ1bkJpZ0ludEVuYWJs
ZWQKKworYXNzZXJ0ID0geworICAgIHNhbWVWYWx1ZTogZnVuY3Rpb24gKGlucHV0LCBleHBlY3Rl
ZCwgbWVzc2FnZSkgeworICAgICAgICBpZiAoaW5wdXQgIT09IGV4cGVjdGVkKQorICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOworICAgIH0KK307CisKK2Z1bmN0aW9uIHRlc3RN
dWwoeCwgeSwgeiwgbWVzc2FnZSkgeworICAgIGFzc2VydC5zYW1lVmFsdWUoeCAqIHksIHosIG1l
c3NhZ2UpOworICAgIGFzc2VydC5zYW1lVmFsdWUoeSAqIHgsIHosIG1lc3NhZ2UpOworfQorCit0
ZXN0TXVsKE9iamVjdCgybiksIDFuLCAybiwgIlRvUHJpbWl0aXZlOiB1bmJveCBvYmplY3Qgd2l0
aCBpbnRlcm5hbCBzbG90Iik7CisKK2xldCBvID0geworICAgIFtTeW1ib2wudG9QcmltaXRpdmVd
OiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIDJuOworICAgIH0KK307Cit0ZXN0TXVsKG8s
IDFuLCAybiwgIlRvUHJpbWl0aXZlOiBAQHRvUHJpbWl0aXZlIik7CisKK28gPSB7CisgICAgdmFs
dWVPZjogZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiAybjsKKyAgICB9Cit9OwordGVzdE11
bChvLCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogdmFsdWVPZiIpOworCitvID0geworICAgIHRvU3Ry
aW5nOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIDJuOworICAgIH0KK30KK3Rlc3RNdWwo
bywgMW4sIDJuLCAiVG9QcmltaXRpdmU6IHRvU3RyaW5nIik7CisKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbGljYXRpb24uanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWct
aW50LW11bHRpcGxpY2F0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlY2Q2MzZkN2Y4OWEyNGFjZmJiODFk
NzJkNzU1YzIyOGZlNmZhZDkKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWct
aW50LW11bHRpcGxpY2F0aW9uLmpzCkBAIC0wLDAgKzEsODMgQEAKKy8vQCBydW5CaWdJbnRFbmFi
bGVkCisKKy8vIENvcHlyaWdodCAoQykgMjAxNyBSb2JpbiBUZW1wbGV0b24uIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZv
dW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2Fzc2VydCA9IHsKKyAgICBzYW1lVmFsdWU6IGZ1
bmN0aW9uIChpbnB1dCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAgICBpZiAoaW5wdXQgIT09IGV4
cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7CisgICAgfQorfTsKKwor
ZnVuY3Rpb24gdGVzdE11bCh4LCB5LCB6KSB7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh4ICogeSwg
eiwgeCArICIgKiAiICsgeSArICIgPSAiICsgeik7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh5ICog
eCwgeiwgeSArICIgKiAiICsgeCArICIgPSAiICsgeik7Cit9CisKK3Rlc3RNdWwoMHhGRURDQkE5
ODc2NTQzMjEwbiwgMHhGRURDQkE5ODc2NTQzMjEwbiwgMHhGREJBQzA5N0M4REM1QUNDREVFQzZD
RDdBNDRBNDEwMG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweEZFRENCQTk4biwg
MHhGREJBQzA5NzUzMEVDQTg2NTQxRDU5ODBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEw
biwgMHgxMjM0biwgMHgxMjFGNDlGNDlGNDlGNDlGNEI0MG4pOwordGVzdE11bCgweEZFRENCQTk4
NzY1NDMyMTBuLCAweDNuLCAweDJGQzk2MkZDOTYyRkM5NjMwbik7Cit0ZXN0TXVsKDB4RkVEQ0JB
OTg3NjU0MzIxMG4sIDB4Mm4sIDB4MUZEQjk3NTMwRUNBODY0MjBuKTsKK3Rlc3RNdWwoMHhGRURD
QkE5ODc2NTQzMjEwbiwgMHgxbiwgMHhGRURDQkE5ODc2NTQzMjEwbik7Cit0ZXN0TXVsKDB4RkVE
Q0JBOTg3NjU0MzIxMG4sIDB4MG4sIDB4MG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBu
LCBCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIikpOwordGVzdE11
bCgweEZFRENCQTk4NzY1NDMyMTBuLCBCaWdJbnQoIi0yIiksIEJpZ0ludCgiLTM2NzI5NTE3MDg4
OTg2MTI5NDQwIikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCBCaWdJbnQoIi0zIiks
IEJpZ0ludCgiLTU1MDk0Mjc1NjMzNDc5MTk0MTYwIikpOwordGVzdE11bCgweEZFRENCQTk4NzY1
NDMyMTBuLCBCaWdJbnQoIi00NjYwIiksIEJpZ0ludCgiLTg1NTc5Nzc0ODE3MzM3NjgxNTk1MjAw
IikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCBCaWdJbnQoIi00Mjc1ODc4NTUxIiks
IEJpZ0ludCgiLTc4NTI1NDc3MTU0NjkxODc0NjA0NTAyODIwNzIwIikpOwordGVzdE11bCgweEZF
RENCQTk4NzY1NDMyMEZuLCAweEZFRENCQTk4NzY1NDMyMEZuLCAweEZEQkFDMDk3QzhEQzVBQ0FF
MTMyRjdBNkI3QTFEQ0Uxbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4RkVEQ0JB
OTduLCAweEZEQkFDMDk2NTQzMjBGRUNERUVDNkNEOW4pOwordGVzdE11bCgweEZFRENCQTk4NzY1
NDMyMEZuLCAweDNuLCAweDJGQzk2MkZDOTYyRkM5NjJEbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3
NjU0MzIwRm4sIDB4Mm4sIDB4MUZEQjk3NTMwRUNBODY0MUVuKTsKK3Rlc3RNdWwoMHhGRURDQkE5
ODc2NTQzMjBGbiwgMHgxbiwgMHhGRURDQkE5ODc2NTQzMjBGbik7Cit0ZXN0TXVsKDB4RkVEQ0JB
OTg3NjU0MzIwRm4sIDB4MG4sIDB4MG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCBC
aWdJbnQoIi0xIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzE5IikpOwordGVzdE11bCgw
eEZFRENCQTk4NzY1NDMyMEZuLCBCaWdJbnQoIi0yIiksIEJpZ0ludCgiLTM2NzI5NTE3MDg4OTg2
MTI5NDM4IikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCBCaWdJbnQoIi0zIiksIEJp
Z0ludCgiLTU1MDk0Mjc1NjMzNDc5MTk0MTU3IikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMy
MEZuLCBCaWdJbnQoIi00Mjc1ODc4NTUxIiksIEJpZ0ludCgiLTc4NTI1NDc3MTU0NjkxODc0NjAw
MjI2OTQyMTY5IikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCBCaWdJbnQoIi0xODM2
NDc1ODU0NDQ5MzA2NDcyMCIpLCBCaWdJbnQoIi0zMzcyNjQzNTYzOTc1MzEwMjg5NzY2MDgyODk2
MzM2MTU2MTM2ODAiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCAweEZFRENCQTk4biwgMHhGREJB
QzA5NkRENDEzQTQwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCAweDEyMzRuLCAweDEyMUY0OUY0
OTZFMG4pOwordGVzdE11bCgweEZFRENCQTk4biwgMHgzbiwgMHgyRkM5NjJGQzhuKTsKK3Rlc3RN
dWwoMHhGRURDQkE5OG4sIDB4Mm4sIDB4MUZEQjk3NTMwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOThu
LCAweDFuLCAweEZFRENCQTk4bik7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCAweDBuLCAweDBuKTsK
K3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0ludCgiLTEiKSwgQmlnSW50KCItNDI3NTg3ODU1MiIp
KTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0ludCgiLTIiKSwgQmlnSW50KCItODU1MTc1NzEw
NCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0ludCgiLTMiKSwgQmlnSW50KCItMTI4Mjc2
MzU2NTYiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCBCaWdJbnQoIi00Mjc1ODc4NTUxIiksIEJp
Z0ludCgiLTE4MjgzMTM3Mzg3MTc3NzM4MTUyIikpOwordGVzdE11bCgweEZFRENCQTk4biwgQmln
SW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgQmlnSW50KCItNzg1MjU0NzcxNzMwNTY2MzMx
NDg5OTU4ODU0NDAiKSk7Cit0ZXN0TXVsKDB4M24sIDB4M24sIDB4OW4pOwordGVzdE11bCgweDNu
LCAweDJuLCAweDZuKTsKK3Rlc3RNdWwoMHgzbiwgMHgxbiwgMHgzbik7Cit0ZXN0TXVsKDB4M24s
IDB4MG4sIDB4MG4pOwordGVzdE11bCgweDNuLCBCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTMiKSk7
Cit0ZXN0TXVsKDB4M24sIEJpZ0ludCgiLTIiKSwgQmlnSW50KCItNiIpKTsKK3Rlc3RNdWwoMHgz
biwgQmlnSW50KCItMyIpLCBCaWdJbnQoIi05IikpOwordGVzdE11bCgweDNuLCBCaWdJbnQoIi00
NjYwIiksIEJpZ0ludCgiLTEzOTgwIikpOwordGVzdE11bCgweDNuLCBCaWdJbnQoIi00Mjc1ODc4
NTUyIiksIEJpZ0ludCgiLTEyODI3NjM1NjU2IikpOwordGVzdE11bCgweDNuLCBCaWdJbnQoIi0x
ODM2NDc1ODU0NDQ5MzA2NDcyMCIpLCBCaWdJbnQoIi01NTA5NDI3NTYzMzQ3OTE5NDE2MCIpKTsK
K3Rlc3RNdWwoMHgwbiwgMHgwbiwgMHgwbik7Cit0ZXN0TXVsKDB4MG4sIEJpZ0ludCgiLTEiKSwg
MHgwbik7Cit0ZXN0TXVsKDB4MG4sIEJpZ0ludCgiLTIiKSwgMHgwbik7Cit0ZXN0TXVsKDB4MG4s
IEJpZ0ludCgiLTMiKSwgMHgwbik7Cit0ZXN0TXVsKDB4MG4sIEJpZ0ludCgiLTQyNzU4Nzg1NTEi
KSwgMHgwbik7Cit0ZXN0TXVsKDB4MG4sIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzE5Iiks
IDB4MG4pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTEiKSwgMHgxbik7Cit0ZXN0
TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMiIpLCAweDJuKTsKK3Rlc3RNdWwoQmlnSW50KCIt
MSIpLCBCaWdJbnQoIi0zIiksIDB4M24pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgi
LTQ2NjAiKSwgMHgxMjM0bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCItNDI3NTg3
ODU1MSIpLCAweEZFRENCQTk3bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCItNDI3
NTg3ODU1MiIpLCAweEZFRENCQTk4bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCIt
MTgzNjQ3NTg1NDQ0OTMwNjQ3MTkiKSwgMHhGRURDQkE5ODc2NTQzMjBGbik7Cit0ZXN0TXVsKEJp
Z0ludCgiLTEiKSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgMHhGRURDQkE5ODc2
NTQzMjEwbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwgQmlnSW50KCItMyIpLCAweDluKTsKK3Rl
c3RNdWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi00NjYwIiksIDB4MzY5Q24pOwordGVzdE11bChC
aWdJbnQoIi0zIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTEiKSwgMHgyRkM5NjJGQzVuKTsKK3Rlc3RN
dWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi00Mjc1ODc4NTUyIiksIDB4MkZDOTYyRkM4bik7Cit0
ZXN0TXVsKEJpZ0ludCgiLTMiKSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MTkiKSwgMHgy
RkM5NjJGQzk2MkZDOTYyRG4pOwordGVzdE11bChCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTE4MzY0
NzU4NTQ0NDkzMDY0NzIwIiksIDB4MkZDOTYyRkM5NjJGQzk2MzBuKTsKK3Rlc3RNdWwoQmlnSW50
KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAi
KSwgMHhGREJBQzA5N0M4REM1QUNDREVFQzZDRDdBNDRBNDEwMG4pOworCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bHRpcGx5LW1lbW9yeS1zdHJlc3MuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9iaWctaW50LW11bHRpcGx5LW1lbW9yeS1zdHJlc3MuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFi
YWE3ZTI4ZjlhZWU2NWQyMWMwZDM2ZjYzZGY2ODAyM2I5Yzg5NwotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbHktbWVtb3J5LXN0cmVzcy5qcwpAQCAtMCww
ICsxLDE1IEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCitmdW5jdGlvbiBhc3NlcnQoYSkgewor
ICAgIGlmICghYSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgYXNzZXJ0aW9uIik7Cit9
CisKK2xldCBhID0gMG47CitsZXQgYiA9IDFuOworZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDAw
OyBpKyspIHsKKyAgICBhID0gYiAqIDMwbjsKK30KKworYXNzZXJ0KGEgPT09IDMwbik7CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>340160</attachid>
            <date>2018-05-10 19:53:53 -0700</date>
            <delta_ts>2018-05-11 20:15:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183721-20180510235351.patch</filename>
            <type>text/plain</type>
            <size>44982</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxNjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NzBkOTUyYTZiMDA4ZWNjZWI2MzkyNGRmNTFhODY4ZmRkNzYxODc5Li5iMDdjYjQ2YTkwZTIyZDU4
MzhhZjNhOGJmMzc0ZDY1ZWQyYTFkZGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxOC0wNS0wMSAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgIioiIG9w
ZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgzNzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkZWQgQmlnSW50IHN1cHBvcnQgaW50byB0aW1lcyBiaW5hcnkgb3BlcmF0b3IgaW50byBMTElu
dCBhbmQgb24KKyAgICAgICAgSklUT3BlcmF0aW9ucyBwcm9maWxlZE11bCBhbmQgdW5wcm9maWxl
ZE11bC4gV2UgYXJlIGFsc28gcmVwbGFjaW5nIGFsbAorICAgICAgICB1c2VzIG9mIGludCB0byB1
bnNpZ25lZCB3aGVuIHRoZXJlIGlzIG5vIG5lZ2F0aXZlIHZhbHVlcyBmb3IKKyAgICAgICAgdmFy
aWFibGVzLgorCisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6Cisg
ICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9u
U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNCaWdJbnQuY3BwOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6SlNCaWdJbnQp
OgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6YWxsb2NhdGlvblNpemUpOgorICAgICAgICAoSlND
OjpKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojp0
b1N0cmluZyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjptdWx0aXBseSk6CisgICAgICAgIChK
U0M6OkpTQmlnSW50OjpkaWdpdERpdik6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjppbnRlcm5h
bE11bHRpcGx5QWRkKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6Om11bHRpcGx5QWNjdW11bGF0
ZSk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjplcXVhbHMpOgorICAgICAgICAoSlNDOjpKU0Jp
Z0ludDo6YWJzb2x1dGVEaXZTbWFsbCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpjYWxjdWxh
dGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OnRv
U3RyaW5nR2VuZXJpYyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpyaWdodFRyaW0pOgorICAg
ICAgICAoSlNDOjpKU0JpZ0ludDo6YWxsb2NhdGVGb3IpOgorICAgICAgICAoSlNDOjpKU0JpZ0lu
dDo6cGFyc2VJbnQpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6ZGlnaXQpOgorICAgICAgICAo
SlNDOjpKU0JpZ0ludDo6c2V0RGlnaXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuaDoK
KyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ0pT
VmFsdWVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvTnVtZXJpYyBjb25zdCk6
CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6CisgICAgICAgIChKU0M6OmpzTXVsKToK
KwogMjAxOC0wNS0xMCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAg
IERGRyBDRkEgc2hvdWxkIHBpY2sgdGhlIHJpZ2h0IHRpbWUgdG8gaW5qZWN0IE9TUiBlbnRyeSBk
YXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9s
ZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xk
aW5nUGhhc2UuY3BwCmluZGV4IGYwNGNjNjg0NGJlNzdlOWJhZDk2OTY5NjAyOWNjZWIxOTU5YjQ0
OTYuLmZiYWVmZjEyNDk4YjA1Y2FlYzAzMmQ0YTc2Mjk2YzNmYzcwOTI2NjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3Bw
CkBAIC0xNDgsMTQgKzE0OCwxNCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBKU1Zh
bHVlIGNoaWxkMkNvbnN0YW50ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMigpLm5vZGUo
KSkudmFsdWUoKTsKIAogICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogUmV2aXNpdCB0aGlz
IGNvbmRpdGlvbiB3aGVuIGludHJvZHVjaW5nIEJpZ0ludCB0byBKU0MuCi0gICAgICAgICAgICAg
ICAgICAgIGF1dG8gaXNOb25TdHJpbmdDZWxsQ29uc3RhbnQgPSBbXSAoSlNWYWx1ZSB2YWx1ZSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlICYmIHZhbHVlLmlzQ2VsbCgp
ICYmICF2YWx1ZS5pc1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICBhdXRvIGlzTm9uU3Ry
aW5nT3JCaWdJbnRDZWxsQ29uc3RhbnQgPSBbXSAoSlNWYWx1ZSB2YWx1ZSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlICYmIHZhbHVlLmlzQ2VsbCgpICYmICF2YWx1ZS5p
c1N0cmluZygpICYmICF2YWx1ZS5pc0JpZ0ludCgpOwogICAgICAgICAgICAgICAgICAgICB9Owog
Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpc05vblN0cmluZ0NlbGxDb25zdGFudChjaGlsZDFD
b25zdGFudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzTm9uU3RyaW5nT3JCaWdJbnRD
ZWxsQ29uc3RhbnQoY2hpbGQxQ29uc3RhbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBu
b2RlLT5jb252ZXJ0VG9Db21wYXJlRXFQdHIobV9ncmFwaC5mcmVlemVTdHJvbmcoY2hpbGQxQ29u
c3RhbnQuYXNDZWxsKCkpLCBub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc05vblN0
cmluZ0NlbGxDb25zdGFudChjaGlsZDJDb25zdGFudCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChpc05vblN0cmluZ09yQmlnSW50Q2VsbENvbnN0YW50KGNoaWxkMkNvbnN0YW50
KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y29udmVydFRvQ29tcGFyZUVxUHRy
KG1fZ3JhcGguZnJlZXplU3Ryb25nKGNoaWxkMkNvbnN0YW50LmFzQ2VsbCgpKSwgbm9kZS0+Y2hp
bGQxKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CiAgICAgICAg
ICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
Y3BwCmluZGV4IDM2NWJiNzM3NTVhN2E0NTRjZjA4NTQzNmM2Mzc4ZDFiZjczZmVjNGIuLjc0ZGIy
NjI0ZjYyYWNiN2EyYTBiMDE3NjFkMmNjOWJkZThjN2U5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMjU1NCwyMSArMjU1NCwyMSBAQCBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkTm9PcHRpbWl6ZShFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsK
IH0KIAotQUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgdW5wcm9maWxlZE11bChW
TSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikKK0FMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IHVucHJvZmlsZWRNdWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQogeworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUg
b3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwogICAgIEpTVmFsdWUgb3AyID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOwogCi0gICAgZG91YmxlIGEgPSBvcDEudG9OdW1iZXIo
ZXhlYyk7CisgICAgSlNWYWx1ZSBqc1Jlc3VsdCA9IGpzTXVsKGV4ZWMsIG9wMSwgb3AyKTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICBzY29w
ZS5yZWxlYXNlKCk7Ci0gICAgZG91YmxlIGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhICogYikpOworICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNSZXN1bHQpOwogfQogCi1BTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBwcm9maWxlZE11bChWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlJiBhcml0
aFByb2ZpbGUsIGJvb2wgc2hvdWxkT2JzZXJ2ZUxIU0FuZFJIU1R5cGVzID0gdHJ1ZSkKK0FMV0FZ
U19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHByb2ZpbGVkTXVsKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwg
QXJpdGhQcm9maWxlJiBhcml0aFByb2ZpbGUsIGJvb2wgc2hvdWxkT2JzZXJ2ZUxIU0FuZFJIU1R5
cGVzID0gdHJ1ZSkKIHsKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkT3AxKTsKICAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkT3AyKTsKQEAgLTI1NzYsMTIgKzI1NzYsOCBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBwcm9maWxlZE11bChWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZAog
ICAgIGlmIChzaG91bGRPYnNlcnZlTEhTQW5kUkhTVHlwZXMpCiAgICAgICAgIGFyaXRoUHJvZmls
ZS5vYnNlcnZlTEhTQW5kUkhTKG9wMSwgb3AyKTsKIAotICAgIGRvdWJsZSBhID0gb3AxLnRvTnVt
YmVyKGV4ZWMpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVl
KCkpOwotICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOworICAgIEpTVmFsdWUgcmVz
dWx0ID0ganNNdWwoZXhlYywgb3AxLCBvcDIpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIAotICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1i
ZXIoYSAqIGIpOwogICAgIGFyaXRoUHJvZmlsZS5vYnNlcnZlUmVzdWx0KHJlc3VsdCk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQpAQCAtMjU5MSw3ICsyNTg3LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bChFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGUKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBO
YXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKIAotICAgIHJldHVybiB1bnBy
b2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CisgICAgcmV0dXJu
IHVucHJvZmlsZWRNdWwoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CiB9CiAKIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxOb09wdGltaXplKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMiwgSklUTXVsSUMqKQpAQCAtMjU5OSw3ICsyNTk1LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bE5vT3B0aW1pemUoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGUKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKIAotICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKCp2bSwg
ZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CisgICAgcmV0dXJuIHVucHJvZmlsZWRNdWwo
ZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVE11bElD
KiBtdWxJQykKQEAgLTI2MTYsNyArMjYxMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmFsdWVNdWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKCiAg
ICAgZXhlYy0+Y29kZUJsb2NrKCktPmR1bXBNYXRoSUNTdGF0cygpOwogI2VuZGlmCiAKLSAgICBy
ZXR1cm4gdW5wcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwor
ICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwog
fQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmls
ZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSkKQEAgLTI2MjUsNyAr
MjYyMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQ
cm9maWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKCiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgZXhlYyk7CiAKICAgICBBU1NFUlQoYXJpdGhQcm9maWxlKTsKLSAgICBy
ZXR1cm4gcHJvZmlsZWRNdWwoKnZtLCBleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCAqYXJp
dGhQcm9maWxlKTsKKyAgICByZXR1cm4gcHJvZmlsZWRNdWwoZXhlYywgZW5jb2RlZE9wMSwgZW5j
b2RlZE9wMiwgKmFyaXRoUHJvZmlsZSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUTXVs
SUMqIG11bElDKQpAQCAtMjY0Myw3ICsyNjM5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLAog
ICAgIGV4ZWMtPmNvZGVCbG9jaygpLT5kdW1wTWF0aElDU3RhdHMoKTsKICNlbmRpZgogCi0gICAg
cmV0dXJuIHByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFy
aXRoUHJvZmlsZSwgZmFsc2UpOworICAgIHJldHVybiBwcm9maWxlZE11bChleGVjLCBlbmNvZGVk
T3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlLCBmYWxzZSk7CiB9CiAKIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZE5vT3B0aW1pemUoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AyLCBKSVRNdWxJQyogbXVsSUMpCkBAIC0yNjUzLDcgKzI2NDksNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWROb09wdGltaXpl
KEV4ZWNTdGF0ZSogZXhlYwogCiAgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBtdWxJ
Qy0+YXJpdGhQcm9maWxlKCk7CiAgICAgQVNTRVJUKGFyaXRoUHJvZmlsZSk7Ci0gICAgcmV0dXJu
IHByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJv
ZmlsZSk7CisgICAgcmV0dXJuIHByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRP
cDIsICphcml0aFByb2ZpbGUpOwogfQogCiBBTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSB1bnByb2ZpbGVkTmVnYXRlKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wZXJhbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
U2xvd1BhdGhzLmNwcAppbmRleCBhNTUwZmMwOWI5YTgyZGUwZjExYzE4Zjc1ZmFjZmNhYzVjZjNj
YjEwLi5hOGE1NjgxZGM5NmU4ODAyZWJhZDgxMmFmOWEwNzVhZjlhNjE3NjNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKQEAgLTY1
LDYgKzY1LDcgQEAKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKICNpbmNsdWRlICJUeXBl
UHJvZmlsZXJMb2cuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KKyNpbmNs
dWRlIDx3dGYvVmFyaWFudC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNDg4LDExICs0ODks
OCBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfbXVsKQogICAgIEJFR0lOKCk7CiAgICAgSlNW
YWx1ZSBsZWZ0ID0gT1BfQygyKS5qc1ZhbHVlKCk7CiAgICAgSlNWYWx1ZSByaWdodCA9IE9QX0Mo
MykuanNWYWx1ZSgpOwotICAgIGRvdWJsZSBhID0gbGVmdC50b051bWJlcihleGVjKTsKLSAgICBp
ZiAoVU5MSUtFTFkodGhyb3dTY29wZS5leGNlcHRpb24oKSkpCi0gICAgICAgIFJFVFVSTihKU1Zh
bHVlKCkpOwotICAgIGRvdWJsZSBiID0gcmlnaHQudG9OdW1iZXIoZXhlYyk7Ci0gICAgSlNWYWx1
ZSByZXN1bHQgPSBqc051bWJlcihhICogYik7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc011bChl
eGVjLCBsZWZ0LCByaWdodCk7CisgICAgQ0hFQ0tfRVhDRVBUSU9OKCk7CiAgICAgUkVUVVJOX1dJ
VEhfUFJPRklMSU5HKHJlc3VsdCwgewogICAgICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5h
cnlBcml0aE9wKGV4ZWMsIHBjLCByZXN1bHQsIGxlZnQsIHJpZ2h0KTsKICAgICB9KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcAppbmRleCA1ZmFkMDhmYzVjNjUz
YTNlNjEyYTM3YzI4NTAxZjIxMzdmZDQ2MzE1Li5mZDhlOWFmMmExZDQwMjEzYjYyZGFmZTA0ODA0
NzgyM2Q2YzU5ZTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JpZ0ludC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQu
Y3BwCkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgSlNCaWdJbnQ6OnZpc2l0Q2hpbGRyZW4oSlNDZWxs
KiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRo
aXNPYmplY3QsIHZpc2l0b3IpOwogfQogCi1KU0JpZ0ludDo6SlNCaWdJbnQoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgaW50IGxlbmd0aCkKK0pTQmlnSW50OjpKU0JpZ0ludChWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgOiBCYXNlKHZtLCBz
dHJ1Y3R1cmUpCiAgICAgLCBtX2xlbmd0aChsZW5ndGgpCiB7IH0KQEAgLTkyLDEzICs5MiwxMyBA
QCBKU0JpZ0ludCogSlNCaWdJbnQ6OmNyZWF0ZVplcm8oVk0mIHZtKQogICAgIHJldHVybiB6ZXJv
QmlnSW50OwogfQogCi1zaXplX3QgSlNCaWdJbnQ6OmFsbG9jYXRpb25TaXplKGludCBsZW5ndGgp
CitzaXplX3QgSlNCaWdJbnQ6OmFsbG9jYXRpb25TaXplKHVuc2lnbmVkIGxlbmd0aCkKIHsKICAg
ICBzaXplX3Qgc2l6ZVdpdGhQYWRkaW5nID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mPHNpemVv
ZihzaXplX3QpPihzaXplb2YoSlNCaWdJbnQpKTsKICAgICByZXR1cm4gc2l6ZVdpdGhQYWRkaW5n
ICsgbGVuZ3RoICogc2l6ZW9mKERpZ2l0KTsKIH0KIAotSlNCaWdJbnQqIEpTQmlnSW50OjpjcmVh
dGVXaXRoTGVuZ3RoKFZNJiB2bSwgaW50IGxlbmd0aCkKK0pTQmlnSW50KiBKU0JpZ0ludDo6Y3Jl
YXRlV2l0aExlbmd0aChWTSYgdm0sIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBKU0JpZ0ludCog
YmlnSW50ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNCaWdJbnQ+KHZtLmhlYXAsIGFs
bG9jYXRpb25TaXplKGxlbmd0aCkpKSBKU0JpZ0ludCh2bSwgdm0uYmlnSW50U3RydWN0dXJlLmdl
dCgpLCBsZW5ndGgpOwogICAgIGJpZ0ludC0+ZmluaXNoQ3JlYXRpb24odm0pOwpAQCAtMjUwLDYg
KzI1MCwyNiBAQCBpbmxpbmUgdm9pZCBKU0JpZ0ludDo6aW5wbGFjZU11bHRpcGx5QWRkKHVpbnRw
dHJfdCBmYWN0b3IsIHVpbnRwdHJfdCBzdW1tYW5kKQogICAgIGludGVybmFsTXVsdGlwbHlBZGQo
dGhpcywgZmFjdG9yLCBzdW1tYW5kLCBsZW5ndGgoKSwgdGhpcyk7CiB9CiAKK0pTQmlnSW50KiBK
U0JpZ0ludDo6bXVsdGlwbHkoRXhlY1N0YXRlKiBzdGF0ZSwgSlNCaWdJbnQqIHgsIEpTQmlnSW50
KiB5KQoreworICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOworCisgICAgaWYgKHgtPmlzWmVybygp
KQorICAgICAgICByZXR1cm4geDsKKyAgICBpZiAoeS0+aXNaZXJvKCkpCisgICAgICAgIHJldHVy
biB5OworCisgICAgdW5zaWduZWQgcmVzdWx0TGVuZ3RoID0geC0+bGVuZ3RoKCkgKyB5LT5sZW5n
dGgoKTsKKyAgICBKU0JpZ0ludCogcmVzdWx0ID0gSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGgo
dm0sIHJlc3VsdExlbmd0aCk7CisgICAgcmVzdWx0LT5pbml0aWFsaXplKEluaXRpYWxpemF0aW9u
VHlwZTo6V2l0aFplcm8pOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHgtPmxlbmd0
aCgpOyBpKyspCisgICAgICAgIG11bHRpcGx5QWNjdW11bGF0ZSh5LCB4LT5kaWdpdChpKSwgcmVz
dWx0LCBpKTsKKworICAgIHJlc3VsdC0+c2V0U2lnbih4LT5zaWduKCkgIT0geS0+c2lnbigpKTsK
KyAgICByZXR1cm4gcmVzdWx0LT5yaWdodFRyaW0odm0pOworfQorCiAjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKICNkZWZpbmUgSEFWRV9UV09fRElHSVQgMQogdHlwZWRlZiB1aW50NjRfdCBUd29EaWdp
dDsKQEAgLTM2Myw5ICszODMsOSBAQCBpbmxpbmUgSlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50Ojpk
aWdpdERpdihEaWdpdCBoaWdoLCBEaWdpdCBsb3csIERpZ2l0IGRpdmlzb3IsCiAgICAgc3RhdGlj
IGNvbnN0IERpZ2l0IGtIYWxmRGlnaXRCYXNlID0gMXVsbCA8PCBoYWxmRGlnaXRCaXRzOwogICAg
IC8vIEFkYXB0ZWQgZnJvbSBXYXJyZW4sIEhhY2tlcidzIERlbGlnaHQsIHAuIDE1Mi4KICNpZiBV
U0UoSlNWQUxVRTY0KQotICAgIGludCBzID0gY2x6NjQoZGl2aXNvcik7CisgICAgdW5zaWduZWQg
cyA9IGNsejY0KGRpdmlzb3IpOwogI2Vsc2UKLSAgICBpbnQgcyA9IGNsejMyKGRpdmlzb3IpOwor
ICAgIHVuc2lnbmVkIHMgPSBjbHozMihkaXZpc29yKTsKICNlbmRpZgogICAgIGRpdmlzb3IgPDw9
IHM7CiAgICAgCkBAIC00MDgsMTQgKzQyOCwxNCBAQCBpbmxpbmUgSlNCaWdJbnQ6OkRpZ2l0IEpT
QmlnSW50OjpkaWdpdERpdihEaWdpdCBoaWdoLCBEaWdpdCBsb3csIERpZ2l0IGRpdmlzb3IsCiAK
IC8vIE11bHRpcGxpZXMge3NvdXJjZX0gd2l0aCB7ZmFjdG9yfSBhbmQgYWRkcyB7c3VtbWFuZH0g
dG8gdGhlIHJlc3VsdC4KIC8vIHtyZXN1bHR9IGFuZCB7c291cmNlfSBtYXkgYmUgdGhlIHNhbWUg
QmlnSW50IGZvciBpbnBsYWNlIG1vZGlmaWNhdGlvbi4KLXZvaWQgSlNCaWdJbnQ6OmludGVybmFs
TXVsdGlwbHlBZGQoSlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1tYW5k
LCBpbnQgbiwgSlNCaWdJbnQqIHJlc3VsdCkKK3ZvaWQgSlNCaWdJbnQ6OmludGVybmFsTXVsdGlw
bHlBZGQoSlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1tYW5kLCB1bnNp
Z25lZCBuLCBKU0JpZ0ludCogcmVzdWx0KQogewogICAgIEFTU0VSVChzb3VyY2UtPmxlbmd0aCgp
ID49IG4pOwogICAgIEFTU0VSVChyZXN1bHQtPmxlbmd0aCgpID49IG4pOwogCiAgICAgRGlnaXQg
Y2FycnkgPSBzdW1tYW5kOwogICAgIERpZ2l0IGhpZ2ggPSAwOwotICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgbjsgaSsrKSB7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG47IGkrKykgewog
ICAgICAgICBEaWdpdCBjdXJyZW50ID0gc291cmNlLT5kaWdpdChpKTsKICAgICAgICAgRGlnaXQg
bmV3Q2FycnkgPSAwOwogCkBAIC00NDMsNiArNDYzLDQ5IEBAIHZvaWQgSlNCaWdJbnQ6OmludGVy
bmFsTXVsdGlwbHlBZGQoSlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1t
YW5kCiAgICAgICAgIEFTU0VSVCghKGNhcnJ5ICsgaGlnaCkpOwogfQogCisvLyBNdWx0aXBsaWVz
IHttdWx0aXBsaWNhbmR9IHdpdGgge211bHRpcGxpZXJ9IGFuZCBhZGRzIHRoZSByZXN1bHQgdG8K
Ky8vIHthY2N1bXVsYXRvcn0sIHN0YXJ0aW5nIGF0IHthY2N1bXVsYXRvckluZGV4fSBmb3IgdGhl
IGxlYXN0LXNpZ25pZmljYW50CisvLyBkaWdpdC4KKy8vIENhbGxlcnMgbXVzdCBlbnN1cmUgdGhh
dCB7YWNjdW11bGF0b3J9IGlzIGJpZyBlbm91Z2ggdG8gaG9sZCB0aGUgcmVzdWx0Lgordm9pZCBK
U0JpZ0ludDo6bXVsdGlwbHlBY2N1bXVsYXRlKEpTQmlnSW50KiBtdWx0aXBsaWNhbmQsIERpZ2l0
IG11bHRpcGxpZXIsIEpTQmlnSW50KiBhY2N1bXVsYXRvciwgdW5zaWduZWQgYWNjdW11bGF0b3JJ
bmRleCkKK3sKKyAgICBBU1NFUlQoYWNjdW11bGF0b3ItPmxlbmd0aCgpID4gbXVsdGlwbGljYW5k
LT5sZW5ndGgoKSArIGFjY3VtdWxhdG9ySW5kZXgpOworICAgIGlmICghbXVsdGlwbGllcikKKyAg
ICAgICAgcmV0dXJuOworICAgIAorICAgIERpZ2l0IGNhcnJ5ID0gMDsKKyAgICBEaWdpdCBoaWdo
ID0gMDsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbXVsdGlwbGljYW5kLT5sZW5ndGgo
KTsgaSsrLCBhY2N1bXVsYXRvckluZGV4KyspIHsKKyAgICAgICAgRGlnaXQgYWNjID0gYWNjdW11
bGF0b3ItPmRpZ2l0KGFjY3VtdWxhdG9ySW5kZXgpOworICAgICAgICBEaWdpdCBuZXdDYXJyeSA9
IDA7CisgICAgICAgIAorICAgICAgICAvLyBBZGQgbGFzdCByb3VuZCdzIGNhcnJ5b3ZlcnMuCisg
ICAgICAgIGFjYyA9IGRpZ2l0QWRkKGFjYywgaGlnaCwgbmV3Q2FycnkpOworICAgICAgICBhY2Mg
PSBkaWdpdEFkZChhY2MsIGNhcnJ5LCBuZXdDYXJyeSk7CisgICAgICAgIAorICAgICAgICAvLyBD
b21wdXRlIHRoaXMgcm91bmQncyBtdWx0aXBsaWNhdGlvbi4KKyAgICAgICAgRGlnaXQgbXVsdGlw
bGljYW5kRGlnaXQgPSBtdWx0aXBsaWNhbmQtPmRpZ2l0KGkpOworICAgICAgICBEaWdpdCBsb3cg
PSBkaWdpdE11bChtdWx0aXBsaWVyLCBtdWx0aXBsaWNhbmREaWdpdCwgaGlnaCk7CisgICAgICAg
IGFjYyA9IGRpZ2l0QWRkKGFjYywgbG93LCBuZXdDYXJyeSk7CisgICAgICAgIAorICAgICAgICAv
LyBTdG9yZSByZXN1bHQgYW5kIHByZXBhcmUgZm9yIG5leHQgcm91bmQuCisgICAgICAgIGFjY3Vt
dWxhdG9yLT5zZXREaWdpdChhY2N1bXVsYXRvckluZGV4LCBhY2MpOworICAgICAgICBjYXJyeSA9
IG5ld0NhcnJ5OworICAgIH0KKyAgICAKKyAgICB3aGlsZSAoY2FycnkgfHwgaGlnaCkgeworICAg
ICAgICBBU1NFUlQoYWNjdW11bGF0b3JJbmRleCA8IGFjY3VtdWxhdG9yLT5sZW5ndGgoKSk7Cisg
ICAgICAgIERpZ2l0IGFjYyA9IGFjY3VtdWxhdG9yLT5kaWdpdChhY2N1bXVsYXRvckluZGV4KTsK
KyAgICAgICAgRGlnaXQgbmV3Q2FycnkgPSAwOworICAgICAgICBhY2MgPSBkaWdpdEFkZChhY2Ms
IGhpZ2gsIG5ld0NhcnJ5KTsKKyAgICAgICAgaGlnaCA9IDA7CisgICAgICAgIGFjYyA9IGRpZ2l0
QWRkKGFjYywgY2FycnksIG5ld0NhcnJ5KTsKKyAgICAgICAgYWNjdW11bGF0b3ItPnNldERpZ2l0
KGFjY3VtdWxhdG9ySW5kZXgsIGFjYyk7CisgICAgICAgIGNhcnJ5ID0gbmV3Q2Fycnk7CisgICAg
ICAgIGFjY3VtdWxhdG9ySW5kZXgrKzsKKyAgICB9Cit9CisKIGJvb2wgSlNCaWdJbnQ6OmVxdWFs
cyhKU0JpZ0ludCogeCwgSlNCaWdJbnQqIHkpCiB7CiAgICAgaWYgKHgtPnNpZ24oKSAhPSB5LT5z
aWduKCkpCkBAIC00NTEsNyArNTE0LDcgQEAgYm9vbCBKU0JpZ0ludDo6ZXF1YWxzKEpTQmlnSW50
KiB4LCBKU0JpZ0ludCogeSkKICAgICBpZiAoeC0+bGVuZ3RoKCkgIT0geS0+bGVuZ3RoKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgeC0+bGVuZ3Ro
KCk7IGkrKykgeworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB4LT5sZW5ndGgoKTsgaSsr
KSB7CiAgICAgICAgIGlmICh4LT5kaWdpdChpKSAhPSB5LT5kaWdpdChpKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CkBAIC00NzksNyArNTQyLDcgQEAgdm9pZCBKU0JpZ0ludDo6
YWJzb2x1dGVEaXZTbWFsbChFeGVjU3RhdGUmIHN0YXRlLCBKU0JpZ0ludCogeCwgRGlnaXQgZGl2
aXNvciwgSlMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGludCBsZW5ndGggPSB4LT5s
ZW5ndGgoKTsKKyAgICB1bnNpZ25lZCBsZW5ndGggPSB4LT5sZW5ndGgoKTsKICAgICBpZiAocXVv
dGllbnQgIT0gbnVsbHB0cikgewogICAgICAgICBpZiAoKnF1b3RpZW50ID09IG51bGxwdHIpCiAg
ICAgICAgICAgICAqcXVvdGllbnQgPSBKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aCh2bSwgbGVu
Z3RoKTsKQEAgLTUwNiwxNCArNTY5LDE0IEBAIGNvbnN0ZXhwciB1aW50OF90IG1heEJpdHNQZXJD
aGFyVGFibGVbXSA9IHsKICAgICAxNjIsIDE2MywgMTY1LCAxNjYsICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIDMzLi4zNgogfTsKIAotc3RhdGljIGNvbnN0IGludCBiaXRzUGVyQ2hhclRhYmxl
U2hpZnQgPSA1Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGJpdHNQZXJDaGFyVGFibGVTaGlmdCA9
IDU7CiBzdGF0aWMgY29uc3Qgc2l6ZV90IGJpdHNQZXJDaGFyVGFibGVNdWx0aXBsaWVyID0gMXUg
PDwgYml0c1BlckNoYXJUYWJsZVNoaWZ0OwogCiAvLyBDb21wdXRlIChhbiBvdmVyYXBwcm94aW1h
dGlvbiBvZikgdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0aW5nIHN0cmluZzoKIC8vIERpdmlkZSBi
aXQgbGVuZ3RoIG9mIHRoZSBCaWdJbnQgYnkgYml0cyByZXByZXNlbnRhYmxlIHBlciBjaGFyYWN0
ZXIuCi11aW50NjRfdCBKU0JpZ0ludDo6Y2FsY3VsYXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1aXJl
ZChpbnQgbGVuZ3RoLCBpbnQgcmFkaXgsIERpZ2l0IGxhc3REaWdpdCwgYm9vbCBzaWduKQordWlu
dDY0X3QgSlNCaWdJbnQ6OmNhbGN1bGF0ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQodW5zaWdu
ZWQgbGVuZ3RoLCB1bnNpZ25lZCByYWRpeCwgRGlnaXQgbGFzdERpZ2l0LCBib29sIHNpZ24pCiB7
Ci0gICAgaW50IGxlYWRpbmdaZXJvczsKKyAgICB1bnNpZ25lZCBsZWFkaW5nWmVyb3M7CiAgICAg
aWYgKHNpemVvZihsYXN0RGlnaXQpID09IDgpCiAgICAgICAgIGxlYWRpbmdaZXJvcyA9IGNsejY0
KGxhc3REaWdpdCk7CiAgICAgZWxzZQpAQCAtNTQxLDcgKzYwNCw3IEBAIHVpbnQ2NF90IEpTQmln
SW50OjpjYWxjdWxhdGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKGludCBsZW5ndGgsIGludCBy
YWRpeCwgRGlnCiAgICAgcmV0dXJuIG1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQ7CiB9CiAKLVN0
cmluZyBKU0JpZ0ludDo6dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50
KiB4LCBpbnQgcmFkaXgpCitTdHJpbmcgSlNCaWdJbnQ6OnRvU3RyaW5nR2VuZXJpYyhFeGVjU3Rh
dGUmIHN0YXRlLCBKU0JpZ0ludCogeCwgdW5zaWduZWQgcmFkaXgpCiB7CiAgICAgLy8gRklYTUU6
IFtKU0NdIFJldmlzaXQgdXNhZ2Ugb2YgVmVjdG9yIGludG8gSlNCaWdJbnQ6OnRvU3RyaW5nCiAg
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDY3CkBAIC01
NTAsNyArNjEzLDcgQEAgU3RyaW5nIEpTQmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRl
JiBzdGF0ZSwgSlNCaWdJbnQqIHgsIGludCByYWRpeCkKICAgICBBU1NFUlQocmFkaXggPj0gMiAm
JiByYWRpeCA8PSAzNik7CiAgICAgQVNTRVJUKCF4LT5pc1plcm8oKSk7CiAKLSAgICBpbnQgbGVu
Z3RoID0geC0+bGVuZ3RoKCk7CisgICAgdW5zaWduZWQgbGVuZ3RoID0geC0+bGVuZ3RoKCk7CiAg
ICAgYm9vbCBzaWduID0geC0+c2lnbigpOwogCiAgICAgdWludDhfdCBtYXhCaXRzUGVyQ2hhciA9
IG1heEJpdHNQZXJDaGFyVGFibGVbcmFkaXhdOwpAQCAtNTY2LDEyICs2MjksMTIgQEAgU3RyaW5n
IEpTQmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQqIHgs
IGludCByYWRpeCkKICAgICBpZiAobGVuZ3RoID09IDEpCiAgICAgICAgIGxhc3REaWdpdCA9IHgt
PmRpZ2l0KDApOwogICAgIGVsc2UgewotICAgICAgICBpbnQgY2h1bmtDaGFycyA9IGRpZ2l0Qml0
cyAqIGJpdHNQZXJDaGFyVGFibGVNdWx0aXBsaWVyIC8gbWF4Qml0c1BlckNoYXI7CisgICAgICAg
IHVuc2lnbmVkIGNodW5rQ2hhcnMgPSBkaWdpdEJpdHMgKiBiaXRzUGVyQ2hhclRhYmxlTXVsdGlw
bGllciAvIG1heEJpdHNQZXJDaGFyOwogICAgICAgICBEaWdpdCBjaHVua0Rpdmlzb3IgPSBkaWdp
dFBvdyhyYWRpeCwgY2h1bmtDaGFycyk7CiAKICAgICAgICAgLy8gQnkgY29uc3RydWN0aW9uIG9m
IGNodW5rQ2hhcnMsIHRoZXJlIGNhbid0IGhhdmUgYmVlbiBvdmVyZmxvdy4KICAgICAgICAgQVNT
RVJUKGNodW5rRGl2aXNvcik7Ci0gICAgICAgIGludCBub25aZXJvRGlnaXQgPSBsZW5ndGggLSAx
OworICAgICAgICB1bnNpZ25lZCBub25aZXJvRGlnaXQgPSBsZW5ndGggLSAxOwogICAgICAgICBB
U1NFUlQoeC0+ZGlnaXQobm9uWmVyb0RpZ2l0KSk7CiAKICAgICAgICAgLy8ge3Jlc3R9IGhvbGRz
IHRoZSBwYXJ0IG9mIHRoZSBCaWdJbnQgdGhhdCB3ZSBoYXZlbid0IGxvb2tlZCBhdCB5ZXQuCkBA
IC01ODcsNyArNjUwLDcgQEAgU3RyaW5nIEpTQmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0
YXRlJiBzdGF0ZSwgSlNCaWdJbnQqIHgsIGludCByYWRpeCkKICAgICAgICAgICAgIEFTU0VSVChy
ZXN0KTsKIAogICAgICAgICAgICAgZGl2aWRlbmQgPSAmcmVzdDsKLSAgICAgICAgICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgY2h1bmtDaGFyczsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgY2h1bmtDaGFyczsgaSsrKSB7CiAgICAgICAgICAgICAgICAgcmVzdWx0
U3RyaW5nLmFwcGVuZChyYWRpeERpZ2l0c1tjaHVuayAlIHJhZGl4XSk7CiAgICAgICAgICAgICAg
ICAgY2h1bmsgLz0gcmFkaXg7CiAgICAgICAgICAgICB9CkBAIC02MTIsNyArNjc1LDcgQEAgU3Ry
aW5nIEpTQmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQq
IHgsIGludCByYWRpeCkKICAgICBBU1NFUlQocmVzdWx0U3RyaW5nLnNpemUoKSA8PSBzdGF0aWNf
Y2FzdDxzaXplX3Q+KG1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQpKTsKIAogICAgIC8vIFJlbW92
ZSBsZWFkaW5nIHplcm9lcy4KLSAgICBpbnQgbmV3U2l6ZU5vTGVhZGluZ1plcm9lcyA9IHJlc3Vs
dFN0cmluZy5zaXplKCk7CisgICAgdW5zaWduZWQgbmV3U2l6ZU5vTGVhZGluZ1plcm9lcyA9IHJl
c3VsdFN0cmluZy5zaXplKCk7CiAgICAgd2hpbGUgKG5ld1NpemVOb0xlYWRpbmdaZXJvZXMgID4g
MSAmJiByZXN1bHRTdHJpbmdbbmV3U2l6ZU5vTGVhZGluZ1plcm9lcyAtIDFdID09ICcwJykKICAg
ICAgICAgbmV3U2l6ZU5vTGVhZGluZ1plcm9lcy0tOwogCkBAIC02MzEsMTQgKzY5NCwxNiBAQCBK
U0JpZ0ludCogSlNCaWdJbnQ6OnJpZ2h0VHJpbShWTSYgdm0pCiAgICAgaWYgKGlzWmVybygpKQog
ICAgICAgICByZXR1cm4gdGhpczsKIAorICAgIEFTU0VSVChtX2xlbmd0aCk7CisKICAgICBpbnQg
bm9uWmVyb0luZGV4ID0gbV9sZW5ndGggLSAxOwogICAgIHdoaWxlIChub25aZXJvSW5kZXggPj0g
MCAmJiAhZGlnaXQobm9uWmVyb0luZGV4KSkKICAgICAgICAgbm9uWmVyb0luZGV4LS07CiAKLSAg
ICBpZiAobm9uWmVyb0luZGV4ID09IG1fbGVuZ3RoIC0gMSkKKyAgICBpZiAobm9uWmVyb0luZGV4
ID09IHN0YXRpY19jYXN0PGludD4obV9sZW5ndGggLSAxKSkKICAgICAgICAgcmV0dXJuIHRoaXM7
CiAKLSAgICBpbnQgbmV3TGVuZ3RoID0gbm9uWmVyb0luZGV4ICsgMTsKKyAgICB1bnNpZ25lZCBu
ZXdMZW5ndGggPSBub25aZXJvSW5kZXggKyAxOwogICAgIEpTQmlnSW50KiB0cmltbWVkQmlnSW50
ID0gY3JlYXRlV2l0aExlbmd0aCh2bSwgbmV3TGVuZ3RoKTsKICAgICBSRUxFQVNFX0FTU0VSVCh0
cmltbWVkQmlnSW50KTsKICAgICBzdGQ6OmNvcHkoZGF0YVN0b3JhZ2UoKSwgZGF0YVN0b3JhZ2Uo
KSArIG5ld0xlbmd0aCwgdHJpbW1lZEJpZ0ludC0+ZGF0YVN0b3JhZ2UoKSk7IApAQCAtNjQ4LDE0
ICs3MTMsMTQgQEAgSlNCaWdJbnQqIEpTQmlnSW50OjpyaWdodFRyaW0oVk0mIHZtKQogICAgIHJl
dHVybiB0cmltbWVkQmlnSW50OwogfQogCi1KU0JpZ0ludCogSlNCaWdJbnQ6OmFsbG9jYXRlRm9y
KEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgaW50IHJhZGl4LCBpbnQgY2hhcmNvdW50KQorSlNC
aWdJbnQqIEpTQmlnSW50OjphbGxvY2F0ZUZvcihFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0sIHVu
c2lnbmVkIHJhZGl4LCB1bnNpZ25lZCBjaGFyY291bnQpCiB7CiAgICAgQVNTRVJUKDIgPD0gcmFk
aXggJiYgcmFkaXggPD0gMzYpOwogICAgIEFTU0VSVChjaGFyY291bnQgPj0gMCk7CiAKICAgICBz
aXplX3QgYml0c1BlckNoYXIgPSBtYXhCaXRzUGVyQ2hhclRhYmxlW3JhZGl4XTsKICAgICBzaXpl
X3QgY2hhcnMgPSBjaGFyY291bnQ7Ci0gICAgY29uc3QgaW50IHJvdW5kdXAgPSBiaXRzUGVyQ2hh
clRhYmxlTXVsdGlwbGllciAtIDE7CisgICAgY29uc3QgdW5zaWduZWQgcm91bmR1cCA9IGJpdHNQ
ZXJDaGFyVGFibGVNdWx0aXBsaWVyIC0gMTsKICAgICBpZiAoY2hhcnMgPD0gKHN0ZDo6bnVtZXJp
Y19saW1pdHM8c2l6ZV90Pjo6bWF4KCkgLSByb3VuZHVwKSAvIGJpdHNQZXJDaGFyKSB7CiAgICAg
ICAgIHNpemVfdCBiaXRzTWluID0gYml0c1BlckNoYXIgKiBjaGFyczsKIApAQCAtNjYzLDcgKzcy
OCw3IEBAIEpTQmlnSW50KiBKU0JpZ0ludDo6YWxsb2NhdGVGb3IoRXhlY1N0YXRlKiBzdGF0ZSwg
Vk0mIHZtLCBpbnQgcmFkaXgsIGludCBjaGFyY291CiAgICAgICAgIGJpdHNNaW4gPSAoYml0c01p
biArIHJvdW5kdXApID4+IGJpdHNQZXJDaGFyVGFibGVTaGlmdDsKICAgICAgICAgaWYgKGJpdHNN
aW4gPD0gc3RhdGljX2Nhc3Q8c2l6ZV90PihtYXhJbnQpKSB7CiAgICAgICAgICAgICAvLyBEaXZp
ZGUgYnkga0RpZ2l0c0JpdHMsIHJvdW5kaW5nIHVwLgotICAgICAgICAgICAgaW50IGxlbmd0aCA9
IChzdGF0aWNfY2FzdDxpbnQ+KGJpdHNNaW4pICsgZGlnaXRCaXRzIC0gMSkgLyBkaWdpdEJpdHM7
CisgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSAoYml0c01pbiArIGRpZ2l0Qml0cyAtIDEp
IC8gZGlnaXRCaXRzOwogICAgICAgICAgICAgaWYgKGxlbmd0aCA8PSBtYXhMZW5ndGgpIHsKICAg
ICAgICAgICAgICAgICBKU0JpZ0ludCogcmVzdWx0ID0gSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5n
dGgodm0sIGxlbmd0aCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTc3MSw5
ICs4MzYsOSBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0ZSogc3RhdGUs
IFZNJiB2bSwgQ2hhclR5cGUqIGRhdGEsIHVuc2lnbmVkCiAgICAgaWYgKHAgPT0gbGVuZ3RoKQog
ICAgICAgICByZXR1cm4gY3JlYXRlWmVybyh2bSk7CiAKLSAgICBpbnQgbGltaXQwID0gJzAnICsg
KHJhZGl4IDwgMTAgPyByYWRpeCA6IDEwKTsKLSAgICBpbnQgbGltaXRhID0gJ2EnICsgKHJhZGl4
IC0gMTApOwotICAgIGludCBsaW1pdEEgPSAnQScgKyAocmFkaXggLSAxMCk7CisgICAgdW5zaWdu
ZWQgbGltaXQwID0gJzAnICsgKHJhZGl4IDwgMTAgPyByYWRpeCA6IDEwKTsKKyAgICB1bnNpZ25l
ZCBsaW1pdGEgPSAnYScgKyAocmFkaXggLSAxMCk7CisgICAgdW5zaWduZWQgbGltaXRBID0gJ0En
ICsgKHJhZGl4IC0gMTApOwogCiAgICAgSlNCaWdJbnQqIHJlc3VsdCA9IGFsbG9jYXRlRm9yKHN0
YXRlLCB2bSwgcmFkaXgsIGxlbmd0aCAtIHApOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIG51bGxwdHIpOwpAQCAtODA5LDEzICs4NzQsMTMgQEAgaW5saW5lIEpTQmlnSW50OjpEaWdp
dCogSlNCaWdJbnQ6OmRhdGFTdG9yYWdlKCkKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxE
aWdpdCo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHRoaXMpICsgb2Zmc2V0T2ZEYXRhKCkpOwog
fQogCi1pbmxpbmUgSlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdChpbnQgbikKK0pTQmln
SW50OjpEaWdpdCBKU0JpZ0ludDo6ZGlnaXQodW5zaWduZWQgbikKIHsKICAgICBBU1NFUlQobiA+
PSAwICYmIG4gPCBsZW5ndGgoKSk7CiAgICAgcmV0dXJuIGRhdGFTdG9yYWdlKClbbl07CiB9CiAK
LWlubGluZSB2b2lkIEpTQmlnSW50OjpzZXREaWdpdChpbnQgbiwgRGlnaXQgdmFsdWUpCit2b2lk
IEpTQmlnSW50OjpzZXREaWdpdCh1bnNpZ25lZCBuLCBEaWdpdCB2YWx1ZSkKIHsKICAgICBBU1NF
UlQobiA+PSAwICYmIG4gPCBsZW5ndGgoKSk7CiAgICAgZGF0YVN0b3JhZ2UoKVtuXSA9IHZhbHVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKaW5kZXggYjliZjc1MTJm
ZmMxM2I4ZjRmMmJhNzNhYjRhMTc4NTMyYjljNzkzNC4uMDI0NGNiYjQ5NTRjOGVmZTQ5ODA5NjM4
ODczZDFhN2ZjMWY2NWRkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCaWdJbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0lu
dC5oCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVibGljIEpTQ2Vs
bCB7CiAKIHB1YmxpYzoKIAotICAgIEpTQmlnSW50KFZNJiwgU3RydWN0dXJlKiwgaW50IGxlbmd0
aCk7CisgICAgSlNCaWdJbnQoVk0mLCBTdHJ1Y3R1cmUqLCB1bnNpZ25lZCBsZW5ndGgpOwogCiAg
ICAgZW51bSBjbGFzcyBJbml0aWFsaXphdGlvblR5cGUgeyBOb25lLCBXaXRoWmVybyB9OwogICAg
IHZvaWQgaW5pdGlhbGl6ZShJbml0aWFsaXphdGlvblR5cGUpOwpAQCAtNDksMTIgKzQ5LDExIEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNp
dG9yJik7CiAKICAgICBzdGF0aWMgc2l6ZV90IGVzdGltYXRlZFNpemUoSlNDZWxsKik7Ci0gICAg
c3RhdGljIHNpemVfdCBhbGxvY2F0aW9uU2l6ZShpbnQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgc2l6
ZV90IGFsbG9jYXRpb25TaXplKHVuc2lnbmVkIGxlbmd0aCk7CiAKICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90
eXBlKTsKLQogICAgIHN0YXRpYyBKU0JpZ0ludCogY3JlYXRlWmVybyhWTSYpOwotICAgIHN0YXRp
YyBKU0JpZ0ludCogY3JlYXRlV2l0aExlbmd0aChWTSYsIGludCBsZW5ndGgpOworICAgIHN0YXRp
YyBKU0JpZ0ludCogY3JlYXRlV2l0aExlbmd0aChWTSYsIHVuc2lnbmVkIGxlbmd0aCk7CiAKICAg
ICBzdGF0aWMgSlNCaWdJbnQqIGNyZWF0ZUZyb20oVk0mLCBpbnQzMl90IHZhbHVlKTsKICAgICBz
dGF0aWMgSlNCaWdJbnQqIGNyZWF0ZUZyb20oVk0mLCB1aW50MzJfdCB2YWx1ZSk7CkBAIC03MCw4
ICs2OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNpZ24oYm9vbCBzaWduKSB7IG1fc2lnbiA9
IHNpZ247IH0KICAgICBib29sIHNpZ24oKSBjb25zdCB7IHJldHVybiBtX3NpZ247IH0KIAotICAg
IHZvaWQgc2V0TGVuZ3RoKGludCBsZW5ndGgpIHsgbV9sZW5ndGggPSBsZW5ndGg7IH0KLSAgICBp
bnQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KKyAgICB2b2lkIHNldExlbmd0
aCh1bnNpZ25lZCBsZW5ndGgpIHsgbV9sZW5ndGggPSBsZW5ndGg7IH0KKyAgICB1bnNpZ25lZCBs
ZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQogCiAgICAgZW51bSBFcnJvclBhcnNl
TW9kZSB7CiAgICAgICAgIFRocm93RXhjZXB0aW9ucywKQEAgLTkyLDYgKzkxLDggQEAgcHVibGlj
OgogICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBjb25zdDsKIAogICAgIEpTT2JqZWN0
KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0OworCisgICAgc3Rh
dGljIEpTQmlnSW50KiBtdWx0aXBseShFeGVjU3RhdGUqLCBKU0JpZ0ludCogeCwgSlNCaWdJbnQq
IHkpOwogICAgIAogcHJpdmF0ZToKIApAQCAtMTAzLDkgKzEwNCw5IEBAIHByaXZhdGU6CiAgICAg
fTsKIAogICAgIHVzaW5nIERpZ2l0ID0gdWludHB0cl90OwotICAgIHN0YXRpYyBjb25zdGV4cHIg
Y29uc3QgaW50IGJpdHNQZXJCeXRlID0gODsKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGlu
dCBkaWdpdEJpdHMgPSBzaXplb2YoRGlnaXQpICogYml0c1BlckJ5dGU7Ci0gICAgc3RhdGljIGNv
bnN0ZXhwciBjb25zdCBpbnQgaGFsZkRpZ2l0Qml0cyA9IGRpZ2l0Qml0cyAvIDI7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBjb25zdCB1bnNpZ25lZCBiaXRzUGVyQnl0ZSA9IDg7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBjb25zdCB1bnNpZ25lZCBkaWdpdEJpdHMgPSBzaXplb2YoRGlnaXQpICogYml0
c1BlckJ5dGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCB1bnNpZ25lZCBoYWxmRGlnaXRC
aXRzID0gZGlnaXRCaXRzIC8gMjsKICAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IERpZ2l0IGhh
bGZEaWdpdE1hc2sgPSAoMXVsbCA8PCBoYWxmRGlnaXRCaXRzKSAtIDE7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBjb25zdCBpbnQgbWF4SW50ID0gMHg3RkZGRkZGRjsKICAgICAKQEAgLTExMywxMiAr
MTE0LDEzIEBAIHByaXZhdGU6CiAgICAgLy8gbWF4SW50IC8gZGlnaXRCaXRzLiBIb3dldmVyLCB3
ZSB1c2UgYSBsb3dlciBsaW1pdCBmb3Igbm93LCBiZWNhdXNlCiAgICAgLy8gcmFpc2luZyBpdCBs
YXRlciBpcyBlYXNpZXIgdGhhbiBsb3dlcmluZyBpdC4KICAgICAvLyBTdXBwb3J0IHVwIHRvIDEg
bWlsbGlvbiBiaXRzLgotICAgIHN0YXRpYyBjb25zdCBpbnQgbWF4TGVuZ3RoID0gMTAyNCAqIDEw
MjQgLyAoc2l6ZW9mKHZvaWQqKSAqIGJpdHNQZXJCeXRlKTsKKyAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgbWF4TGVuZ3RoID0gMTAyNCAqIDEwMjQgLyAoc2l6ZW9mKHZvaWQqKSAqIGJpdHNQZXJC
eXRlKTsKICAgICAKLSAgICBzdGF0aWMgdWludDY0X3QgY2FsY3VsYXRlTWF4aW11bUNoYXJhY3Rl
cnNSZXF1aXJlZChpbnQgbGVuZ3RoLCBpbnQgcmFkaXgsIERpZ2l0IGxhc3REaWdpdCwgYm9vbCBz
aWduKTsKKyAgICBzdGF0aWMgdWludDY0X3QgY2FsY3VsYXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1
aXJlZCh1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkIHJhZGl4LCBEaWdpdCBsYXN0RGlnaXQsIGJv
b2wgc2lnbik7CiAgICAgCiAgICAgc3RhdGljIHZvaWQgYWJzb2x1dGVEaXZTbWFsbChFeGVjU3Rh
dGUmLCBKU0JpZ0ludCogeCwgRGlnaXQgZGl2aXNvciwgSlNCaWdJbnQqKiBxdW90aWVudCwgRGln
aXQmIHJlbWFpbmRlcik7Ci0gICAgc3RhdGljIHZvaWQgaW50ZXJuYWxNdWx0aXBseUFkZChKU0Jp
Z0ludCogc291cmNlLCBEaWdpdCBmYWN0b3IsIERpZ2l0IHN1bW1hbmQsIGludCwgSlNCaWdJbnQq
IHJlc3VsdCk7CisgICAgc3RhdGljIHZvaWQgaW50ZXJuYWxNdWx0aXBseUFkZChKU0JpZ0ludCog
c291cmNlLCBEaWdpdCBmYWN0b3IsIERpZ2l0IHN1bW1hbmQsIHVuc2lnbmVkLCBKU0JpZ0ludCog
cmVzdWx0KTsKKyAgICBzdGF0aWMgdm9pZCBtdWx0aXBseUFjY3VtdWxhdGUoSlNCaWdJbnQqIG11
bHRpcGxpY2FuZCwgRGlnaXQgbXVsdGlwbGllciwgSlNCaWdJbnQqIGFjY3VtdWxhdG9yLCB1bnNp
Z25lZCBhY2N1bXVsYXRvckluZGV4KTsKIAogICAgIC8vIERpZ2l0IGFyaXRobWV0aWMgaGVscGVy
cy4KICAgICBzdGF0aWMgRGlnaXQgZGlnaXRBZGQoRGlnaXQgYSwgRGlnaXQgYiwgRGlnaXQmIGNh
cnJ5KTsKQEAgLTEyNyw3ICsxMjksNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBEaWdpdCBkaWdp
dERpdihEaWdpdCBoaWdoLCBEaWdpdCBsb3csIERpZ2l0IGRpdmlzb3IsIERpZ2l0JiByZW1haW5k
ZXIpOwogICAgIHN0YXRpYyBEaWdpdCBkaWdpdFBvdyhEaWdpdCBiYXNlLCBEaWdpdCBleHBvbmVu
dCk7CiAKLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUmLCBKU0Jp
Z0ludCosIGludCByYWRpeCk7CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZ0dlbmVyaWMoRXhl
Y1N0YXRlJiwgSlNCaWdJbnQqLCB1bnNpZ25lZCByYWRpeCk7CiAKICAgICBib29sIGlzWmVybygp
OwogCkBAIC0xMzksNyArMTQxLDcgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
Q2hhclR5cGU+CiAgICAgc3RhdGljIEpTQmlnSW50KiBwYXJzZUludChFeGVjU3RhdGUqLCBWTSYs
IENoYXJUeXBlKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkIHN0YXJ0SW5kZXgsIHVu
c2lnbmVkIHJhZGl4LCBFcnJvclBhcnNlTW9kZSwgYm9vbCBhbGxvd0VtcHR5U3RyaW5nID0gdHJ1
ZSk7CiAKLSAgICBzdGF0aWMgSlNCaWdJbnQqIGFsbG9jYXRlRm9yKEV4ZWNTdGF0ZSosIFZNJiwg
aW50IHJhZGl4LCBpbnQgY2hhcmNvdW50KTsKKyAgICBzdGF0aWMgSlNCaWdJbnQqIGFsbG9jYXRl
Rm9yKEV4ZWNTdGF0ZSosIFZNJiwgdW5zaWduZWQgcmFkaXgsIHVuc2lnbmVkIGNoYXJjb3VudCk7
CiAKICAgICBKU0JpZ0ludCogcmlnaHRUcmltKFZNJik7CiAKQEAgLTE0OCwxMCArMTUwLDEwIEBA
IHByaXZhdGU6CiAgICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZkRhdGEoKTsKICAgICBEaWdpdCog
ZGF0YVN0b3JhZ2UoKTsKIAotICAgIERpZ2l0IGRpZ2l0KGludCk7Ci0gICAgdm9pZCBzZXREaWdp
dChpbnQsIERpZ2l0KTsKKyAgICBEaWdpdCBkaWdpdCh1bnNpZ25lZCk7CisgICAgdm9pZCBzZXRE
aWdpdCh1bnNpZ25lZCwgRGlnaXQpOwogICAgICAgICAKLSAgICBpbnQgbV9sZW5ndGg7CisgICAg
dW5zaWduZWQgbV9sZW5ndGg7CiAgICAgYm9vbCBtX3NpZ247CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggMjFlODBmODc1MDNjN2VmOTFiN2Iy
MTA1ZWIwYzcyNWRhMmVhYjc2My4uOTFkYzFhNDBmMTRlMzc2NzJmNDEwMTYwNGMwNjkwZTYwOTdl
MThmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaApAQCAt
MzksNiArMzksNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEFzc2VtYmx5SGVscGVyczsK
K2NsYXNzIEpTQmlnSW50OwogY2xhc3MgRXhlY1N0YXRlOwogY2xhc3MgSlNDZWxsOwogY2xhc3Mg
SlNWYWx1ZVNvdXJjZTsKQEAgLTI1Nyw2ICsyNTgsOCBAQCBwdWJsaWM6CiAgICAgLy8gdG9OdW1i
ZXIgY29udmVyc2lvbiBpcyBleHBlY3RlZCB0byBiZSBzaWRlIGVmZmVjdCBmcmVlIGlmIGFuIGV4
Y2VwdGlvbiBoYXMKICAgICAvLyBiZWVuIHNldCBpbiB0aGUgRXhlY1N0YXRlIGFscmVhZHkuCiAg
ICAgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OworICAgIAorICAgIFZhcmlhbnQ8
SlNCaWdJbnQqLCBkb3VibGU+IHRvTnVtZXJpYyhFeGVjU3RhdGUqKSBjb25zdDsKIAogICAgIC8v
IHRvTnVtYmVyIGNvbnZlcnNpb24gaWYgaXQgY2FuIGJlIGRvbmUgd2l0aG91dCBzaWRlIGVmZmVj
dHMuCiAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHRvTnVtYmVyRnJvbVByaW1pdGl2ZSgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1
ZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxp
bmVzLmgKaW5kZXggMjNkM2IyNmM1OTU0MmI3NzBlNGQzZDBhMjQ2MTI2MmUzZGU1YzlhOC4uM2Fl
ZTBjNDdlNjMzNDE2OGNkMDIzMDliNjQ2YTI0MzU3ODE0ZjFmNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCkBAIC0zNyw2ICszNyw3
IEBACiAjaW5jbHVkZSAiSlNQcm94eS5oIgogI2luY2x1ZGUgIkpTU3RyaW5nSW5saW5lcy5oIgog
I2luY2x1ZGUgIk1hdGhDb21tb24uaCIKKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC03MjgsNiAr
NzI5LDI2IEBAIEFMV0FZU19JTkxJTkUgZG91YmxlIEpTVmFsdWU6OnRvTnVtYmVyKEV4ZWNTdGF0
ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4gdG9OdW1iZXJTbG93Q2FzZShleGVjKTsKIH0KIAor
QUxXQVlTX0lOTElORSBWYXJpYW50PEpTQmlnSW50KiwgZG91YmxlPiBKU1ZhbHVlOjp0b051bWVy
aWMoRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIGlmIChpc0ludDMyKCkpCisgICAgICAg
IHJldHVybiBhc0ludDMyKCk7CisgICAgaWYgKGlzRG91YmxlKCkpCisgICAgICAgIHJldHVybiBh
c0RvdWJsZSgpOworICAgIGlmIChpc0JpZ0ludCgpKQorICAgICAgICByZXR1cm4gYXNCaWdJbnQo
KnRoaXMpOworCisgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgSlNWYWx1ZSBwcmltVmFsdWUgPSB0aGlzLT50b1By
aW1pdGl2ZShleGVjLCBQcmVmZXJOdW1iZXIpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIDApOworICAgIGlmIChwcmltVmFsdWUuaXNCaWdJbnQoKSkKKyAgICAgICAgcmV0dXJuIGFz
QmlnSW50KHByaW1WYWx1ZSk7CisgICAgZG91YmxlIHZhbHVlID0gcHJpbVZhbHVlLnRvTnVtYmVy
KGV4ZWMpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIDApOworICAgIHJldHVybiB2
YWx1ZTsKK30KKwogaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVjdChFeGVjU3RhdGUq
IGV4ZWMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0
KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSkgOiB0b09iamVjdFNsb3dDYXNlKGV4
ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcGVyYXRpb25zLmgKaW5kZXggMTM0OWFlYzE2YTdhODNhOGE4YTU5MGFjZWZkNTRi
MTc5Yzk3YmYxZi4uNDk1NTkwYmI4ODZlYTBhZjNiYTVkODFlZjIwZmZkNzQ1NTAwYTc1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaApAQCAtMjMsNyArMjMs
OSBAQAogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVy
cy5oIgorI2luY2x1ZGUgIkpTQmlnSW50LmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgorI2lu
Y2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC0yNTYsNiArMjU4
LDI5IEBAIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc0FkZChDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
SlNWYWx1ZSB2MSwgSlNWYWx1ZSB2MikKICAgICByZXR1cm4ganNBZGRTbG93Q2FzZShjYWxsRnJh
bWUsIHYxLCB2Mik7CiB9CiAKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc011bChFeGVjU3RhdGUq
IHN0YXRlLCBKU1ZhbHVlIHYxLCBKU1ZhbHVlIHYyKQoreworICAgIFZNJiB2bSA9IHN0YXRlLT52
bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFZh
cmlhbnQ8SlNCaWdJbnQqLCBkb3VibGU+IGxlZnROdW1lcmljID0gdjEudG9OdW1lcmljKHN0YXRl
KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIFZhcmlhbnQ8SlNC
aWdJbnQqLCBkb3VibGU+IHJpZ2h0TnVtZXJpYyA9IHYyLnRvTnVtZXJpYyhzdGF0ZSk7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKworICAgIGlmIChXVEY6OmhvbGRzX2Fs
dGVybmF0aXZlPEpTQmlnSW50Kj4obGVmdE51bWVyaWMpIHx8IFdURjo6aG9sZHNfYWx0ZXJuYXRp
dmU8SlNCaWdJbnQqPihyaWdodE51bWVyaWMpKSB7CisgICAgICAgIGlmIChXVEY6OmhvbGRzX2Fs
dGVybmF0aXZlPEpTQmlnSW50Kj4obGVmdE51bWVyaWMpICYmIFdURjo6aG9sZHNfYWx0ZXJuYXRp
dmU8SlNCaWdJbnQqPihyaWdodE51bWVyaWMpKQorICAgICAgICAgICAgcmV0dXJuIEpTQmlnSW50
OjptdWx0aXBseShzdGF0ZSwgV1RGOjpnZXQ8SlNCaWdJbnQqPihsZWZ0TnVtZXJpYyksIFdURjo6
Z2V0PEpTQmlnSW50Kj4ocmlnaHROdW1lcmljKSk7CisKKyAgICAgICAgdGhyb3dUeXBlRXJyb3Io
c3RhdGUsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkludmFsaWQgbWl4IG9mIEJpZ0ludCBhbmQgb3Ro
ZXIgdHlwZSBpbiBtdWx0aXBsaWNhdGlvbi4iKSk7CisgICAgICAgIHJldHVybiB7IH07CisgICAg
fQorCisgICAgZG91YmxlIGxlZnRWYWx1ZSA9ICBXVEY6OmdldDxkb3VibGU+KGxlZnROdW1lcmlj
KTsKKyAgICBkb3VibGUgcmlnaHRWYWx1ZSA9ICBXVEY6OmdldDxkb3VibGU+KHJpZ2h0TnVtZXJp
Yyk7CisgICAgcmV0dXJuIGpzTnVtYmVyKGxlZnRWYWx1ZSAqIHJpZ2h0VmFsdWUpOworfQorCiBp
bmxpbmUgYm9vbCBzY3JpYmJsZUZyZWVDZWxscygpCiB7CiAgICAgcmV0dXJuICFBU1NFUlRfRElT
QUJMRUQgfHwgT3B0aW9uczo6c2NyaWJibGVGcmVlQ2VsbHMoKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzMxMTU4ODA0MWVhMGJiNTZj
YWYzNzk2YTRmMjVkYzQxN2I2MjA1Mi4uZDNhNDY1NjRjNjkzY2Y3YmE0MGEzNjU3NmI2Y2I5ZTg2
Yjc0N2I1NiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxOC0wNS0xMCAgQ2FpbyBMaW1hICA8dGljYWlvbGlt
YUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1lbnQgc3VwcG9y
dCBmb3IgIioiIG9wZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgzNzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBiaWdJbnRUZXN0cy55YW1sOgorICAgICAgICAqIHN0cmVzcy9iaWctaW50
LW11bC1qaXQuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11bC10by1wcmlt
aXRpdmUtcHJlY2VkZW5jZS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVs
LXRvLXByaW1pdGl2ZS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVsLXR5
cGUtZXJyb3IuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11bC13cmFwcGVk
LXZhbHVlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWx0aXBsaWNhdGlv
bi5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVsdGlwbHktbWVtb3J5LXN0
cmVzcy5qczogQWRkZWQuCisKIDIwMTgtMDUtMTAgIExlbyBCYWx0ZXIgIDxsZW9uYXJkby5iYWx0
ZXJAZ21haWwuY29tPgogCiAgICAgICAgIFVwZGF0ZSBUZXN0MjYyIHRlc3RzIHRocm91Z2ggdGhl
IG5ldyBpbXBvcnQgc2NyaXB0IC0gMjAxODA1MDkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvYmlnSW50
VGVzdHMueWFtbCBiL0pTVGVzdHMvYmlnSW50VGVzdHMueWFtbAppbmRleCA3YWUyMmNiMWJiMmFm
ZjYyY2M0ZGRmNDk2Mjk5Zjk2YTA3NDRmN2FlLi5lOTQ3ZGMyOTQ1YWRmOTBkMDc3ZmM4MzdkNTU4
M2ExZDA4ZTNiYzkxIDEwMDY0NAotLS0gYS9KU1Rlc3RzL2JpZ0ludFRlc3RzLnlhbWwKKysrIGIv
SlNUZXN0cy9iaWdJbnRUZXN0cy55YW1sCkBAIC05NywzICs5NywyNCBAQAogLSBwYXRoOiBzdHJl
c3MvYmlnLWludC10by1zdHJpbmcuanMKICAgY21kOiBydW5CaWdJbnRFbmFibGVkCiAKKy0gcGF0
aDogc3RyZXNzL2JpZy1pbnQtbXVsLWppdC5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKwor
LSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLXByZWNlZGVuY2UuanMKKyAg
Y21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsLXRvLXBy
aW1pdGl2ZS5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKworLSBwYXRoOiBzdHJlc3MvYmln
LWludC1tdWwtdHlwZS1lcnJvci5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKworLSBwYXRo
OiBzdHJlc3MvYmlnLWludC1tdWwtd3JhcHBlZC12YWx1ZS5qcworICBjbWQ6IHJ1bkJpZ0ludEVu
YWJsZWQKKworLSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWx0aXBsaWNhdGlvbi5qcworICBjbWQ6
IHJ1bkJpZ0ludEVuYWJsZWQKKworLSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWx0aXBseS1tZW1v
cnktc3RyZXNzLmpzCisgIGNtZDogcnVuQmlnSW50RW5hYmxlZAorCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9iaWctaW50LW11bC1qaXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11
bC1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGNiZWRlMzE4NzVkMjFmYjM4MjJlN2YyOGZmMDViY2FjYTFj
OWY3YQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLWppdC5q
cwpAQCAtMCwwICsxLDE5IEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCitsZXQgYXNzZXJ0ID0g
eworICAgIHNhbWVWYWx1ZTogZnVuY3Rpb24oaSwgZSwgbSkgeworICAgICAgICBpZiAoaSAhPT0g
ZSkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9u
IGJpZ0ludE11bCh4LCB5KSB7CisgICAgcmV0dXJuIHggKiB5OworfQorbm9JbmxpbmUoYmlnSW50
TXVsKTsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKSB7CisgICAgbGV0IHIgPSBi
aWdJbnRNdWwoM24sIDEwbik7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShyLCAzMG4sIDNuICsgIiAq
ICIgKyAxMG4gKyAiID0gIiArIHIpOworfQorCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9i
aWctaW50LW11bC10by1wcmltaXRpdmUtcHJlY2VkZW5jZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2Jp
Zy1pbnQtbXVsLXRvLXByaW1pdGl2ZS1wcmVjZWRlbmNlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNDlhMTk2
ODdlMTRhZWU3MDEzYjM2ODY0NDkyZTY4MmJkNWU3NWUKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rl
c3RzL3N0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUtcHJlY2VkZW5jZS5qcwpAQCAtMCww
ICsxLDM5IEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCithc3NlcnQgPSB7CisgICAgc2FtZVZh
bHVlOiBmdW5jdGlvbiAoaW5wdXQsIGV4cGVjdGVkLCBtZXNzYWdlKSB7CisgICAgICAgIGlmIChp
bnB1dCAhPT0gZXhwZWN0ZWQpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7
CisgICAgfQorfTsKKworZnVuY3Rpb24gdGVzdE11bCh4LCB5LCB6LCBtZXNzYWdlKSB7CisgICAg
YXNzZXJ0LnNhbWVWYWx1ZSh4ICogeSwgeiwgbWVzc2FnZSk7CisgICAgYXNzZXJ0LnNhbWVWYWx1
ZSh5ICogeCwgeiwgbWVzc2FnZSk7Cit9CisKK3Rlc3RNdWwoT2JqZWN0KDJuKSwgMW4sIDJuLCAi
VG9QcmltaXRpdmU6IHVuYm94IG9iamVjdCB3aXRoIGludGVybmFsIHNsb3QiKTsKKworbGV0IG8g
PSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1
cm4gMm47CisgICAgfSwKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7CisgICAgICAgIHRocm93
IG5ldyBFcnJvcigiU2hvdWxkIG5ldmVyIGV4ZWN1dGUgaXQiKTsKKyAgICB9LAorICAgIHRvU3Ry
aW5nOiBmdW5jdGlvbiAoKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiU2hvdWxkIG5ldmVy
IGV4ZWN1dGUgaXQiKTsKKyAgICB9Cit9OwordGVzdE11bChvLCAxbiwgMm4sICJUb1ByaW1pdGl2
ZTogQEB0b1ByaW1pdGl2ZSIpOworCitvID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uKCkgewor
ICAgICAgICByZXR1cm4gMm47CisgICAgfSwKKyAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgewor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBleGVjdXRlIGl0Iik7CisgICAg
fQorfTsKK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9QcmltaXRpdmU6IHZhbHVlT2YiKTsKKwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLmpzIGIvSlNU
ZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0MmUy
ZThlMjkxMTllMjdkMTM1NzdjYjU3YWMyZjk3MzUwZmU2Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9K
U1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUuanMKQEAgLTAsMCArMSwzNSBA
QAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworZnVuY3Rpb24gYXNzZXJ0KGEpIHsKKyAgICBpZiAo
IWEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGFzc2VydGlvbiIpOworfQorCithc3Nl
cnQuc2FtZVZhbHVlID0gZnVuY3Rpb24gKGlucHV0LCBleHBlY3RlZCwgbWVzc2FnZSkgeworICAg
IGlmIChpbnB1dCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdl
KTsKK30KKworZnVuY3Rpb24gdGVzdE11bCh4LCB5LCB6KSB7CisgICAgYXNzZXJ0LnNhbWVWYWx1
ZSh4ICogeSwgeiwgeCArICIgKiAiICsgeSArICIgPSAiICsgeik7CisgICAgYXNzZXJ0LnNhbWVW
YWx1ZSh5ICogeCwgeiwgeSArICIgKiAiICsgeCArICIgPSAiICsgeik7Cit9CisKK2xldCBvID0g
eworICAgIFtTeW1ib2wudG9QcmltaXRpdmVdOiBmdW5jdGlvbiAoKSB7IHJldHVybiAzMDAwMDAw
MDAwMDAwMDBuOyB9Cit9CisKK3Rlc3RNdWwoNTAwMDAwMDAwMDAwNDM4biwgbywgMTUwMDAwMDAw
MDAwMTMxNDAwMDAwMDAwMDAwMDAwbik7CisKK28udmFsdWVPZiA9IGZ1bmN0aW9uICgpIHsKKyAg
ICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBleGVjdXRlIGl0Iik7Cit9OworCit0ZXN0
TXVsKDcwMDAwMDAwMDAwMDQzOG4sIG8sIDIxMDAwMDAwMDAwMDEzMTQwMDAwMDAwMDAwMDAwMG4p
OworCitvLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkgeworICAgIHRocm93IG5ldyBFcnJvcigiU2hv
dWxkIG5ldmVyIGV4ZWN1dGUgaXQiKTsKK307CisKK3Rlc3RNdWwoNzAwMDAwMDAwMDAwNDM4biwg
bywgMjEwMDAwMDAwMDAwMTMxNDAwMDAwMDAwMDAwMDAwbik7CisKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL2JpZy1pbnQtbXVsLXR5cGUtZXJyb3IuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWct
aW50LW11bC10eXBlLWVycm9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1MTc4NDU3ZmI2MjM3NTdmZDBlNzcz
NTc3ZGMzOTZmMmYzMGZlNjAKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWct
aW50LW11bC10eXBlLWVycm9yLmpzCkBAIC0wLDAgKzEsMTA2IEBACisvL0AgcnVuQmlnSW50RW5h
YmxlZAorCitmdW5jdGlvbiBhc3NlcnQoYSwgbWVzc2FnZSkgeworICAgIGlmICghYSkKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOworfQorCitmdW5jdGlvbiBhc3NlcnRUaHJvd1R5
cGVFcnJvcihhLCBiLCBtZXNzYWdlKSB7CisgICAgdHJ5IHsKKyAgICAgICAgbGV0IG4gPSBhICog
YjsKKyAgICAgICAgYXNzZXJ0KGZhbHNlLCBtZXNzYWdlICsgIjogU2hvdWxkIHRocm93IFR5cGVF
cnJvciwgYnV0IGV4ZWN1dGVkIHdpdGhvdXQgZXhjZXB0aW9uIik7CisgICAgfSBjYXRjaCAoZSkg
eworICAgICAgICBhc3NlcnQoZSBpbnN0YW5jZW9mIFR5cGVFcnJvciwgbWVzc2FnZSArICI6IGV4
cGVjdGVkIFR5cGVFcnJvciwgZ290OiAiICsgZSk7CisgICAgfQorfQorCithc3NlcnRUaHJvd1R5
cGVFcnJvcigzMG4sICJmb28iLCAiQmlnSW50ICogU3RyaW5nIik7Cithc3NlcnRUaHJvd1R5cGVF
cnJvcigiYmFyIiwgMTg3NTczODI5ODQ4MjFuLCAiU3RyaW5nICogQmlnSW50Iik7Cithc3NlcnRU
aHJvd1R5cGVFcnJvcigzMG4sIFN5bWJvbCgiZm9vIiksICJCaWdJbnQgKiBTeW1ib2wiKTsKK2Fz
c2VydFRocm93VHlwZUVycm9yKFN5bWJvbCgiYmFyIiksIDE4NzU3MzgyOTg0ODIxbiwgIlN5bWJv
bCAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCAzMzIwLCAiQmlnSW50ICog
SW50MzIiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMzMjU2LCAxODc1NzM4Mjk4NDgyMW4sICJJ
bnQzMiAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCAwLjU0MywgIkJpZ0lu
dCAqIERvdWJsZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMjMwLjE5MjkzLCAxODc1NzM4Mjk4
NDgyMW4sICJEb3VibGUgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgTmFO
LCAiQmlnSW50ICogTmFOIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihOYU4sIDE4NzU3MzgyOTg0
ODIxbiwgIk5hTiAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBOYU4sICJC
aWdJbnQgKiBOYU4iKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKE5hTiwgMTg3NTczODI5ODQ4MjFu
LCAiTmFOICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sICtJbmZpbml0eSwg
IkJpZ0ludCAqIE5hTiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoK0luZmluaXR5LCAxODc1NzM4
Mjk4NDgyMW4sICJOYU4gKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgLUlu
ZmluaXR5LCAiQmlnSW50ICogLUluZmluaXR5Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigtSW5m
aW5pdHksIDE4NzU3MzgyOTg0ODIxbiwgIi1JbmZpbml0eSAqIEJpZ0ludCIpOworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IoMzBuLCBudWxsLCAiQmlnSW50ICogbnVsbCIpOworYXNzZXJ0VGhyb3dUeXBl
RXJyb3IobnVsbCwgMTg3NTczODI5ODQ4MjFuLCAibnVsbCAqIEJpZ0ludCIpOworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IoMzBuLCB1bmRlZmluZWQsICJCaWdJbnQgKiB1bmRlZmluZWQiKTsKK2Fzc2Vy
dFRocm93VHlwZUVycm9yKHVuZGVmaW5lZCwgMTg3NTczODI5ODQ4MjFuLCAidW5kZWZpbmVkICog
QmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIHRydWUsICJCaWdJbnQgKiB0cnVl
Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcih0cnVlLCAxODc1NzM4Mjk4NDgyMW4sICJ0cnVlICog
QmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIGZhbHNlLCAiQmlnSW50ICogZmFs
c2UiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKGZhbHNlLCAxODc1NzM4Mjk4NDgyMW4sICJmYWxz
ZSAqIEJpZ0ludCIpOworCisvLyBFcnJvciB3aGVuIHJldHVybmluZyBmcm9tIG9iamVjdAorCits
ZXQgbyA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7IHJldHVybiBTeW1ib2woIkZvbyIp
OyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3Qu
dmFsdWVPZiByZXR1cm5pbmcgU3ltYm9sIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihvLCAxODc1
NzM4Mjk4NDgyMW4sICJPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgU3ltYm9sICogQmlnSW50Iik7
CisKK28gPSB7CisgICAgdmFsdWVPZjogZnVuY3Rpb24gKCkgeyByZXR1cm4gMzMyNTY7IH0KK307
CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC52YWx1ZU9m
IHJldHVybmluZyBJbnQzMiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4
MjFuLCAiT2JqZWN0LnZhbHVlT2YgcmV0dXJuaW5nIEludDMyICogQmlnSW50Iik7CisKK28gPSB7
CisgICAgdmFsdWVPZjogZnVuY3Rpb24gKCkgeyByZXR1cm4gMC40NTM7IH0KK307CisKK2Fzc2Vy
dFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC52YWx1ZU9mIHJldHVybmlu
ZyBEb3VibGUiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9i
amVjdC52YWx1ZU9mIHJldHVybmluZyBEb3VibGUgKiBCaWdJbnQiKTsKKworbyA9IHsKKyAgICB0
b1N0cmluZzogZnVuY3Rpb24gKCkgeyByZXR1cm4gU3ltYm9sKCJGb28iKTsgfQorfTsKKworYXNz
ZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LnRvU3RyaW5nIHJldHVy
bmluZyBTeW1ib2wiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwg
Ik9iamVjdC50b1N0cmluZyByZXR1cm5pbmcgU3ltYm9sICogQmlnSW50Iik7CisKK28gPSB7Cisg
ICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDMzMjU2OyB9Cit9OworCithc3NlcnRU
aHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QudG9TdHJpbmcgcmV0dXJuaW5n
IEludDMyIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmpl
Y3QudG9TdHJpbmcgcmV0dXJuaW5nIEludDMyICogQmlnSW50Iik7CisKK28gPSB7CisgICAgdG9T
dHJpbmc6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDAuNDUzOyB9Cit9OworCithc3NlcnRUaHJvd1R5
cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QudG9TdHJpbmcgcmV0dXJuaW5nIERvdWJs
ZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LnRv
U3RyaW5nIHJldHVybmluZyBEb3VibGUgKiBCaWdJbnQiKTsKKworbyA9IHsKKyAgICBbU3ltYm9s
LnRvUHJpbWl0aXZlXTogZnVuY3Rpb24gKCkgeyByZXR1cm4gU3ltYm9sKCJGb28iKTsgfQorfTsK
KworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LkBAdG9Qcmlt
aXRpdmUgcmV0dXJuaW5nIFN5bWJvbCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTcz
ODI5ODQ4MjFuLCAiT2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5nIFN5bWJvbCAqIEJpZ0lu
dCIpOworCitvID0geworICAgIFtTeW1ib2wudG9QcmltaXRpdmVdOiBmdW5jdGlvbiAoKSB7IHJl
dHVybiAzMzI1NjsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50
ICogT2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5nIEludDMyIik7Cithc3NlcnRUaHJvd1R5
cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5p
bmcgSW50MzIgKiBCaWdJbnQiKTsKKworbyA9IHsKKyAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTog
ZnVuY3Rpb24gKCkgeyByZXR1cm4gMC40NTM7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9y
KDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC5AQHRvUHJpbWl0aXZlIHJldHVybmluZyBEb3VibGUi
KTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC5AQHRv
UHJpbWl0aXZlIHJldHVybmluZyBEb3VibGUgKiBCaWdJbnQiKTsKKwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtd3JhcHBlZC12YWx1ZS5qcyBiL0pTVGVzdHMvc3RyZXNz
L2JpZy1pbnQtbXVsLXdyYXBwZWQtdmFsdWUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY3M2Q4YTYwMzAyZmFm
NjZkZmE2Y2ZhMWViMTM3MGVjOGMyMmMzYQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL2JpZy1pbnQtbXVsLXdyYXBwZWQtdmFsdWUuanMKQEAgLTAsMCArMSwzNyBAQAorLy9AIHJ1
bkJpZ0ludEVuYWJsZWQKKworYXNzZXJ0ID0geworICAgIHNhbWVWYWx1ZTogZnVuY3Rpb24gKGlu
cHV0LCBleHBlY3RlZCwgbWVzc2FnZSkgeworICAgICAgICBpZiAoaW5wdXQgIT09IGV4cGVjdGVk
KQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOworICAgIH0KK307CisKK2Z1
bmN0aW9uIHRlc3RNdWwoeCwgeSwgeiwgbWVzc2FnZSkgeworICAgIGFzc2VydC5zYW1lVmFsdWUo
eCAqIHksIHosIG1lc3NhZ2UpOworICAgIGFzc2VydC5zYW1lVmFsdWUoeSAqIHgsIHosIG1lc3Nh
Z2UpOworfQorCit0ZXN0TXVsKE9iamVjdCgybiksIDFuLCAybiwgIlRvUHJpbWl0aXZlOiB1bmJv
eCBvYmplY3Qgd2l0aCBpbnRlcm5hbCBzbG90Iik7CisKK2xldCBvID0geworICAgIFtTeW1ib2wu
dG9QcmltaXRpdmVdOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIDJuOworICAgIH0KK307
Cit0ZXN0TXVsKG8sIDFuLCAybiwgIlRvUHJpbWl0aXZlOiBAQHRvUHJpbWl0aXZlIik7CisKK28g
PSB7CisgICAgdmFsdWVPZjogZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiAybjsKKyAgICB9
Cit9OwordGVzdE11bChvLCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogdmFsdWVPZiIpOworCitvID0g
eworICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIDJuOworICAgIH0K
K30KK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9QcmltaXRpdmU6IHRvU3RyaW5nIik7CisKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbGljYXRpb24uanMgYi9KU1Rlc3Rz
L3N0cmVzcy9iaWctaW50LW11bHRpcGxpY2F0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlY2Q2MzZkN2Y4
OWEyNGFjZmJiODFkNzJkNzU1YzIyOGZlNmZhZDkKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3N0cmVzcy9iaWctaW50LW11bHRpcGxpY2F0aW9uLmpzCkBAIC0wLDAgKzEsODMgQEAKKy8vQCBy
dW5CaWdJbnRFbmFibGVkCisKKy8vIENvcHlyaWdodCAoQykgMjAxNyBSb2JpbiBUZW1wbGV0b24u
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJT
RCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2Fzc2VydCA9IHsKKyAgICBz
YW1lVmFsdWU6IGZ1bmN0aW9uIChpbnB1dCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAgICBpZiAo
aW5wdXQgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7Cisg
ICAgfQorfTsKKworZnVuY3Rpb24gdGVzdE11bCh4LCB5LCB6KSB7CisgICAgYXNzZXJ0LnNhbWVW
YWx1ZSh4ICogeSwgeiwgeCArICIgKiAiICsgeSArICIgPSAiICsgeik7CisgICAgYXNzZXJ0LnNh
bWVWYWx1ZSh5ICogeCwgeiwgeSArICIgKiAiICsgeCArICIgPSAiICsgeik7Cit9CisKK3Rlc3RN
dWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHhGRURDQkE5ODc2NTQzMjEwbiwgMHhGREJBQzA5N0M4
REM1QUNDREVFQzZDRDdBNDRBNDEwMG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAw
eEZFRENCQTk4biwgMHhGREJBQzA5NzUzMEVDQTg2NTQxRDU5ODBuKTsKK3Rlc3RNdWwoMHhGRURD
QkE5ODc2NTQzMjEwbiwgMHgxMjM0biwgMHgxMjFGNDlGNDlGNDlGNDlGNEI0MG4pOwordGVzdE11
bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweDNuLCAweDJGQzk2MkZDOTYyRkM5NjMwbik7Cit0ZXN0
TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4Mm4sIDB4MUZEQjk3NTMwRUNBODY0MjBuKTsKK3Rl
c3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHgxbiwgMHhGRURDQkE5ODc2NTQzMjEwbik7Cit0
ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4MG4sIDB4MG4pOwordGVzdE11bCgweEZFRENC
QTk4NzY1NDMyMTBuLCBCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIw
IikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCBCaWdJbnQoIi0yIiksIEJpZ0ludCgi
LTM2NzI5NTE3MDg4OTg2MTI5NDQwIikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCBC
aWdJbnQoIi0zIiksIEJpZ0ludCgiLTU1MDk0Mjc1NjMzNDc5MTk0MTYwIikpOwordGVzdE11bCgw
eEZFRENCQTk4NzY1NDMyMTBuLCBCaWdJbnQoIi00NjYwIiksIEJpZ0ludCgiLTg1NTc5Nzc0ODE3
MzM3NjgxNTk1MjAwIikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCBCaWdJbnQoIi00
Mjc1ODc4NTUxIiksIEJpZ0ludCgiLTc4NTI1NDc3MTU0NjkxODc0NjA0NTAyODIwNzIwIikpOwor
dGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweEZFRENCQTk4NzY1NDMyMEZuLCAweEZEQkFD
MDk3QzhEQzVBQ0FFMTMyRjdBNkI3QTFEQ0Uxbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIw
Rm4sIDB4RkVEQ0JBOTduLCAweEZEQkFDMDk2NTQzMjBGRUNERUVDNkNEOW4pOwordGVzdE11bCgw
eEZFRENCQTk4NzY1NDMyMEZuLCAweDNuLCAweDJGQzk2MkZDOTYyRkM5NjJEbik7Cit0ZXN0TXVs
KDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4Mm4sIDB4MUZEQjk3NTMwRUNBODY0MUVuKTsKK3Rlc3RN
dWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgMHgxbiwgMHhGRURDQkE5ODc2NTQzMjBGbik7Cit0ZXN0
TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4MG4sIDB4MG4pOwordGVzdE11bCgweEZFRENCQTk4
NzY1NDMyMEZuLCBCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzE5Iikp
OwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCBCaWdJbnQoIi0yIiksIEJpZ0ludCgiLTM2
NzI5NTE3MDg4OTg2MTI5NDM4IikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCBCaWdJ
bnQoIi0zIiksIEJpZ0ludCgiLTU1MDk0Mjc1NjMzNDc5MTk0MTU3IikpOwordGVzdE11bCgweEZF
RENCQTk4NzY1NDMyMEZuLCBCaWdJbnQoIi00Mjc1ODc4NTUxIiksIEJpZ0ludCgiLTc4NTI1NDc3
MTU0NjkxODc0NjAwMjI2OTQyMTY5IikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCBC
aWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpLCBCaWdJbnQoIi0zMzcyNjQzNTYzOTc1MzEw
Mjg5NzY2MDgyODk2MzM2MTU2MTM2ODAiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCAweEZFRENC
QTk4biwgMHhGREJBQzA5NkRENDEzQTQwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCAweDEyMzRu
LCAweDEyMUY0OUY0OTZFMG4pOwordGVzdE11bCgweEZFRENCQTk4biwgMHgzbiwgMHgyRkM5NjJG
QzhuKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIDB4Mm4sIDB4MUZEQjk3NTMwbik7Cit0ZXN0TXVs
KDB4RkVEQ0JBOThuLCAweDFuLCAweEZFRENCQTk4bik7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCAw
eDBuLCAweDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0ludCgiLTEiKSwgQmlnSW50KCIt
NDI3NTg3ODU1MiIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0ludCgiLTIiKSwgQmlnSW50
KCItODU1MTc1NzEwNCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0ludCgiLTMiKSwgQmln
SW50KCItMTI4Mjc2MzU2NTYiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCBCaWdJbnQoIi00Mjc1
ODc4NTUxIiksIEJpZ0ludCgiLTE4MjgzMTM3Mzg3MTc3NzM4MTUyIikpOwordGVzdE11bCgweEZF
RENCQTk4biwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgQmlnSW50KCItNzg1MjU0
NzcxNzMwNTY2MzMxNDg5OTU4ODU0NDAiKSk7Cit0ZXN0TXVsKDB4M24sIDB4M24sIDB4OW4pOwor
dGVzdE11bCgweDNuLCAweDJuLCAweDZuKTsKK3Rlc3RNdWwoMHgzbiwgMHgxbiwgMHgzbik7Cit0
ZXN0TXVsKDB4M24sIDB4MG4sIDB4MG4pOwordGVzdE11bCgweDNuLCBCaWdJbnQoIi0xIiksIEJp
Z0ludCgiLTMiKSk7Cit0ZXN0TXVsKDB4M24sIEJpZ0ludCgiLTIiKSwgQmlnSW50KCItNiIpKTsK
K3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItMyIpLCBCaWdJbnQoIi05IikpOwordGVzdE11bCgweDNu
LCBCaWdJbnQoIi00NjYwIiksIEJpZ0ludCgiLTEzOTgwIikpOwordGVzdE11bCgweDNuLCBCaWdJ
bnQoIi00Mjc1ODc4NTUyIiksIEJpZ0ludCgiLTEyODI3NjM1NjU2IikpOwordGVzdE11bCgweDNu
LCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpLCBCaWdJbnQoIi01NTA5NDI3NTYzMzQ3
OTE5NDE2MCIpKTsKK3Rlc3RNdWwoMHgwbiwgMHgwbiwgMHgwbik7Cit0ZXN0TXVsKDB4MG4sIEJp
Z0ludCgiLTEiKSwgMHgwbik7Cit0ZXN0TXVsKDB4MG4sIEJpZ0ludCgiLTIiKSwgMHgwbik7Cit0
ZXN0TXVsKDB4MG4sIEJpZ0ludCgiLTMiKSwgMHgwbik7Cit0ZXN0TXVsKDB4MG4sIEJpZ0ludCgi
LTQyNzU4Nzg1NTEiKSwgMHgwbik7Cit0ZXN0TXVsKDB4MG4sIEJpZ0ludCgiLTE4MzY0NzU4NTQ0
NDkzMDY0NzE5IiksIDB4MG4pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTEiKSwg
MHgxbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMiIpLCAweDJuKTsKK3Rlc3RN
dWwoQmlnSW50KCItMSIpLCBCaWdJbnQoIi0zIiksIDB4M24pOwordGVzdE11bChCaWdJbnQoIi0x
IiksIEJpZ0ludCgiLTQ2NjAiKSwgMHgxMjM0bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmln
SW50KCItNDI3NTg3ODU1MSIpLCAweEZFRENCQTk3bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwg
QmlnSW50KCItNDI3NTg3ODU1MiIpLCAweEZFRENCQTk4bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEi
KSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MTkiKSwgMHhGRURDQkE5ODc2NTQzMjBGbik7
Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwg
MHhGRURDQkE5ODc2NTQzMjEwbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwgQmlnSW50KCItMyIp
LCAweDluKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi00NjYwIiksIDB4MzY5Q24p
OwordGVzdE11bChCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTEiKSwgMHgyRkM5NjJG
QzVuKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi00Mjc1ODc4NTUyIiksIDB4MkZD
OTYyRkM4bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMw
NjQ3MTkiKSwgMHgyRkM5NjJGQzk2MkZDOTYyRG4pOwordGVzdE11bChCaWdJbnQoIi0zIiksIEJp
Z0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIDB4MkZDOTYyRkM5NjJGQzk2MzBuKTsKK3Rl
c3RNdWwoQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgQmlnSW50KCItMTgzNjQ3NTg1
NDQ0OTMwNjQ3MjAiKSwgMHhGREJBQzA5N0M4REM1QUNDREVFQzZDRDdBNDRBNDEwMG4pOworCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bHRpcGx5LW1lbW9yeS1zdHJlc3Mu
anMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bHRpcGx5LW1lbW9yeS1zdHJlc3MuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMWFiYWE3ZTI4ZjlhZWU2NWQyMWMwZDM2ZjYzZGY2ODAyM2I5Yzg5NwotLS0gL2Rl
di9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbHktbWVtb3J5LXN0cmVz
cy5qcwpAQCAtMCwwICsxLDE1IEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCitmdW5jdGlvbiBh
c3NlcnQoYSkgeworICAgIGlmICghYSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgYXNz
ZXJ0aW9uIik7Cit9CisKK2xldCBhID0gMG47CitsZXQgYiA9IDFuOworZm9yIChsZXQgaSA9IDA7
IGkgPCAxMDAwMDAwOyBpKyspIHsKKyAgICBhID0gYiAqIDMwbjsKK30KKworYXNzZXJ0KGEgPT09
IDMwbik7CisK
</data>
<flag name="review"
          id="358407"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>340240</attachid>
            <date>2018-05-11 20:15:25 -0700</date>
            <delta_ts>2018-05-11 20:53:10 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>big-int-times.diff</filename>
            <type>text/plain</type>
            <size>43711</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MzMxMTU4OC4uNGZhZDM4MCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxOC0wNS0xMCAgQ2FpbyBMaW1hICA8
dGljYWlvbGltYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1l
bnQgc3VwcG9ydCBmb3IgIioiIG9wZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAgKiBiaWdJbnRUZXN0cy55YW1sOgorICAgICAgICAq
IHN0cmVzcy9iaWctaW50LW11bC1qaXQuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWct
aW50LW11bC10by1wcmltaXRpdmUtcHJlY2VkZW5jZS5qczogQWRkZWQuCisgICAgICAgICogc3Ry
ZXNzL2JpZy1pbnQtbXVsLXRvLXByaW1pdGl2ZS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNz
L2JpZy1pbnQtbXVsLXR5cGUtZXJyb3IuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWct
aW50LW11bC13cmFwcGVkLXZhbHVlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmlnLWlu
dC1tdWx0aXBsaWNhdGlvbi5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVs
dGlwbHktbWVtb3J5LXN0cmVzcy5qczogQWRkZWQuCisKIDIwMTgtMDUtMTAgIExlbyBCYWx0ZXIg
IDxsZW9uYXJkby5iYWx0ZXJAZ21haWwuY29tPgogCiAgICAgICAgIFVwZGF0ZSBUZXN0MjYyIHRl
c3RzIHRocm91Z2ggdGhlIG5ldyBpbXBvcnQgc2NyaXB0IC0gMjAxODA1MDkKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvYmlnSW50VGVzdHMueWFtbCBiL0pTVGVzdHMvYmlnSW50VGVzdHMueWFtbAppbmRl
eCA3YWUyMmNiLi5lOTQ3ZGMyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL2JpZ0ludFRlc3RzLnlhbWwK
KysrIGIvSlNUZXN0cy9iaWdJbnRUZXN0cy55YW1sCkBAIC05NywzICs5NywyNCBAQAogLSBwYXRo
OiBzdHJlc3MvYmlnLWludC10by1zdHJpbmcuanMKICAgY21kOiBydW5CaWdJbnRFbmFibGVkCiAK
Ky0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVsLWppdC5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJs
ZWQKKworLSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLXByZWNlZGVuY2Uu
anMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKKy0gcGF0aDogc3RyZXNzL2JpZy1pbnQtbXVs
LXRvLXByaW1pdGl2ZS5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKworLSBwYXRoOiBzdHJl
c3MvYmlnLWludC1tdWwtdHlwZS1lcnJvci5qcworICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKwor
LSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWwtd3JhcHBlZC12YWx1ZS5qcworICBjbWQ6IHJ1bkJp
Z0ludEVuYWJsZWQKKworLSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWx0aXBsaWNhdGlvbi5qcwor
ICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKworLSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWx0aXBs
eS1tZW1vcnktc3RyZXNzLmpzCisgIGNtZDogcnVuQmlnSW50RW5hYmxlZAorCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC1qaXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWct
aW50LW11bC1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNiZWRl
MwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLWppdC5qcwpA
QCAtMCwwICsxLDE5IEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCitsZXQgYXNzZXJ0ID0gewor
ICAgIHNhbWVWYWx1ZTogZnVuY3Rpb24oaSwgZSwgbSkgeworICAgICAgICBpZiAoaSAhPT0gZSkK
KyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGJp
Z0ludE11bCh4LCB5KSB7CisgICAgcmV0dXJuIHggKiB5OworfQorbm9JbmxpbmUoYmlnSW50TXVs
KTsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKSB7CisgICAgbGV0IHIgPSBiaWdJ
bnRNdWwoM24sIDEwbik7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShyLCAzMG4sIDNuICsgIiAqICIg
KyAxMG4gKyAiID0gIiArIHIpOworfQorCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWct
aW50LW11bC10by1wcmltaXRpdmUtcHJlY2VkZW5jZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1p
bnQtbXVsLXRvLXByaW1pdGl2ZS1wcmVjZWRlbmNlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjcxNDlhMTkKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9i
aWctaW50LW11bC10by1wcmltaXRpdmUtcHJlY2VkZW5jZS5qcwpAQCAtMCwwICsxLDM5IEBACisv
L0AgcnVuQmlnSW50RW5hYmxlZAorCithc3NlcnQgPSB7CisgICAgc2FtZVZhbHVlOiBmdW5jdGlv
biAoaW5wdXQsIGV4cGVjdGVkLCBtZXNzYWdlKSB7CisgICAgICAgIGlmIChpbnB1dCAhPT0gZXhw
ZWN0ZWQpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7CisgICAgfQorfTsK
KworZnVuY3Rpb24gdGVzdE11bCh4LCB5LCB6LCBtZXNzYWdlKSB7CisgICAgYXNzZXJ0LnNhbWVW
YWx1ZSh4ICogeSwgeiwgbWVzc2FnZSk7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh5ICogeCwgeiwg
bWVzc2FnZSk7Cit9CisKK3Rlc3RNdWwoT2JqZWN0KDJuKSwgMW4sIDJuLCAiVG9QcmltaXRpdmU6
IHVuYm94IG9iamVjdCB3aXRoIGludGVybmFsIHNsb3QiKTsKKworbGV0IG8gPSB7CisgICAgW1N5
bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gMm47CisgICAg
fSwKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigi
U2hvdWxkIG5ldmVyIGV4ZWN1dGUgaXQiKTsKKyAgICB9LAorICAgIHRvU3RyaW5nOiBmdW5jdGlv
biAoKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiU2hvdWxkIG5ldmVyIGV4ZWN1dGUgaXQi
KTsKKyAgICB9Cit9OwordGVzdE11bChvLCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogQEB0b1ByaW1p
dGl2ZSIpOworCitvID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1
cm4gMm47CisgICAgfSwKKyAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgeworICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlNob3VsZCBuZXZlciBleGVjdXRlIGl0Iik7CisgICAgfQorfTsKK3Rlc3RN
dWwobywgMW4sIDJuLCAiVG9QcmltaXRpdmU6IHZhbHVlT2YiKTsKKwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
YmlnLWludC1tdWwtdG8tcHJpbWl0aXZlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjY0MmUyZTgKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50
LW11bC10by1wcmltaXRpdmUuanMKQEAgLTAsMCArMSwzNSBAQAorLy9AIHJ1bkJpZ0ludEVuYWJs
ZWQKKworZnVuY3Rpb24gYXNzZXJ0KGEpIHsKKyAgICBpZiAoIWEpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcigiQmFkIGFzc2VydGlvbiIpOworfQorCithc3NlcnQuc2FtZVZhbHVlID0gZnVuY3Rp
b24gKGlucHV0LCBleHBlY3RlZCwgbWVzc2FnZSkgeworICAgIGlmIChpbnB1dCAhPT0gZXhwZWN0
ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTsKK30KKworZnVuY3Rpb24gdGVz
dE11bCh4LCB5LCB6KSB7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh4ICogeSwgeiwgeCArICIgKiAi
ICsgeSArICIgPSAiICsgeik7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh5ICogeCwgeiwgeSArICIg
KiAiICsgeCArICIgPSAiICsgeik7Cit9CisKK2xldCBvID0geworICAgIFtTeW1ib2wudG9Qcmlt
aXRpdmVdOiBmdW5jdGlvbiAoKSB7IHJldHVybiAzMDAwMDAwMDAwMDAwMDBuOyB9Cit9CisKK3Rl
c3RNdWwoNTAwMDAwMDAwMDAwNDM4biwgbywgMTUwMDAwMDAwMDAwMTMxNDAwMDAwMDAwMDAwMDAw
bik7CisKK28udmFsdWVPZiA9IGZ1bmN0aW9uICgpIHsKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlNo
b3VsZCBuZXZlciBleGVjdXRlIGl0Iik7Cit9OworCit0ZXN0TXVsKDcwMDAwMDAwMDAwMDQzOG4s
IG8sIDIxMDAwMDAwMDAwMDEzMTQwMDAwMDAwMDAwMDAwMG4pOworCitvLnRvU3RyaW5nID0gZnVu
Y3Rpb24gKCkgeworICAgIHRocm93IG5ldyBFcnJvcigiU2hvdWxkIG5ldmVyIGV4ZWN1dGUgaXQi
KTsKK307CisKK3Rlc3RNdWwoNzAwMDAwMDAwMDAwNDM4biwgbywgMjEwMDAwMDAwMDAwMTMxNDAw
MDAwMDAwMDAwMDAwbik7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVs
LXR5cGUtZXJyb3IuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10eXBlLWVycm9yLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1MTc4NDUKLS0tIC9kZXYvbnVs
bAorKysgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC10eXBlLWVycm9yLmpzCkBAIC0wLDAg
KzEsMTA2IEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCitmdW5jdGlvbiBhc3NlcnQoYSwgbWVz
c2FnZSkgeworICAgIGlmICghYSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOwor
fQorCitmdW5jdGlvbiBhc3NlcnRUaHJvd1R5cGVFcnJvcihhLCBiLCBtZXNzYWdlKSB7CisgICAg
dHJ5IHsKKyAgICAgICAgbGV0IG4gPSBhICogYjsKKyAgICAgICAgYXNzZXJ0KGZhbHNlLCBtZXNz
YWdlICsgIjogU2hvdWxkIHRocm93IFR5cGVFcnJvciwgYnV0IGV4ZWN1dGVkIHdpdGhvdXQgZXhj
ZXB0aW9uIik7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBhc3NlcnQoZSBpbnN0YW5jZW9m
IFR5cGVFcnJvciwgbWVzc2FnZSArICI6IGV4cGVjdGVkIFR5cGVFcnJvciwgZ290OiAiICsgZSk7
CisgICAgfQorfQorCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sICJmb28iLCAiQmlnSW50ICog
U3RyaW5nIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigiYmFyIiwgMTg3NTczODI5ODQ4MjFuLCAi
U3RyaW5nICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIFN5bWJvbCgiZm9v
IiksICJCaWdJbnQgKiBTeW1ib2wiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKFN5bWJvbCgiYmFy
IiksIDE4NzU3MzgyOTg0ODIxbiwgIlN5bWJvbCAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBl
RXJyb3IoMzBuLCAzMzIwLCAiQmlnSW50ICogSW50MzIiKTsKK2Fzc2VydFRocm93VHlwZUVycm9y
KDMzMjU2LCAxODc1NzM4Mjk4NDgyMW4sICJJbnQzMiAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dU
eXBlRXJyb3IoMzBuLCAwLjU0MywgIkJpZ0ludCAqIERvdWJsZSIpOworYXNzZXJ0VGhyb3dUeXBl
RXJyb3IoMjMwLjE5MjkzLCAxODc1NzM4Mjk4NDgyMW4sICJEb3VibGUgKiBCaWdJbnQiKTsKK2Fz
c2VydFRocm93VHlwZUVycm9yKDMwbiwgTmFOLCAiQmlnSW50ICogTmFOIik7Cithc3NlcnRUaHJv
d1R5cGVFcnJvcihOYU4sIDE4NzU3MzgyOTg0ODIxbiwgIk5hTiAqIEJpZ0ludCIpOworYXNzZXJ0
VGhyb3dUeXBlRXJyb3IoMzBuLCBOYU4sICJCaWdJbnQgKiBOYU4iKTsKK2Fzc2VydFRocm93VHlw
ZUVycm9yKE5hTiwgMTg3NTczODI5ODQ4MjFuLCAiTmFOICogQmlnSW50Iik7Cithc3NlcnRUaHJv
d1R5cGVFcnJvcigzMG4sICtJbmZpbml0eSwgIkJpZ0ludCAqIE5hTiIpOworYXNzZXJ0VGhyb3dU
eXBlRXJyb3IoK0luZmluaXR5LCAxODc1NzM4Mjk4NDgyMW4sICJOYU4gKiBCaWdJbnQiKTsKK2Fz
c2VydFRocm93VHlwZUVycm9yKDMwbiwgLUluZmluaXR5LCAiQmlnSW50ICogLUluZmluaXR5Iik7
Cithc3NlcnRUaHJvd1R5cGVFcnJvcigtSW5maW5pdHksIDE4NzU3MzgyOTg0ODIxbiwgIi1JbmZp
bml0eSAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBudWxsLCAiQmlnSW50
ICogbnVsbCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobnVsbCwgMTg3NTczODI5ODQ4MjFuLCAi
bnVsbCAqIEJpZ0ludCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCB1bmRlZmluZWQsICJC
aWdJbnQgKiB1bmRlZmluZWQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKHVuZGVmaW5lZCwgMTg3
NTczODI5ODQ4MjFuLCAidW5kZWZpbmVkICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJv
cigzMG4sIHRydWUsICJCaWdJbnQgKiB0cnVlIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcih0cnVl
LCAxODc1NzM4Mjk4NDgyMW4sICJ0cnVlICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJv
cigzMG4sIGZhbHNlLCAiQmlnSW50ICogZmFsc2UiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKGZh
bHNlLCAxODc1NzM4Mjk4NDgyMW4sICJmYWxzZSAqIEJpZ0ludCIpOworCisvLyBFcnJvciB3aGVu
IHJldHVybmluZyBmcm9tIG9iamVjdAorCitsZXQgbyA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlv
biAoKSB7IHJldHVybiBTeW1ib2woIkZvbyIpOyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJv
cigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgU3ltYm9sIik7Cith
c3NlcnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QudmFsdWVPZiBy
ZXR1cm5pbmcgU3ltYm9sICogQmlnSW50Iik7CisKK28gPSB7CisgICAgdmFsdWVPZjogZnVuY3Rp
b24gKCkgeyByZXR1cm4gMzMyNTY7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwg
bywgIkJpZ0ludCAqIE9iamVjdC52YWx1ZU9mIHJldHVybmluZyBJbnQzMiIpOworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LnZhbHVlT2YgcmV0dXJuaW5n
IEludDMyICogQmlnSW50Iik7CisKK28gPSB7CisgICAgdmFsdWVPZjogZnVuY3Rpb24gKCkgeyBy
ZXR1cm4gMC40NTM7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0lu
dCAqIE9iamVjdC52YWx1ZU9mIHJldHVybmluZyBEb3VibGUiKTsKK2Fzc2VydFRocm93VHlwZUVy
cm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC52YWx1ZU9mIHJldHVybmluZyBEb3VibGUg
KiBCaWdJbnQiKTsKKworbyA9IHsKKyAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgeyByZXR1cm4g
U3ltYm9sKCJGb28iKTsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmln
SW50ICogT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBTeW1ib2wiKTsKK2Fzc2VydFRocm93VHlw
ZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC50b1N0cmluZyByZXR1cm5pbmcgU3lt
Ym9sICogQmlnSW50Iik7CisKK28gPSB7CisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsgcmV0
dXJuIDMzMjU2OyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQg
KiBPYmplY3QudG9TdHJpbmcgcmV0dXJuaW5nIEludDMyIik7Cithc3NlcnRUaHJvd1R5cGVFcnJv
cihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QudG9TdHJpbmcgcmV0dXJuaW5nIEludDMyICog
QmlnSW50Iik7CisKK28gPSB7CisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDAu
NDUzOyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmpl
Y3QudG9TdHJpbmcgcmV0dXJuaW5nIERvdWJsZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3Iobywg
MTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBEb3VibGUgKiBCaWdJ
bnQiKTsKKworbyA9IHsKKyAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24gKCkgeyBy
ZXR1cm4gU3ltYm9sKCJGb28iKTsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBv
LCAiQmlnSW50ICogT2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5nIFN5bWJvbCIpOworYXNz
ZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LkBAdG9QcmltaXRp
dmUgcmV0dXJuaW5nIFN5bWJvbCAqIEJpZ0ludCIpOworCitvID0geworICAgIFtTeW1ib2wudG9Q
cmltaXRpdmVdOiBmdW5jdGlvbiAoKSB7IHJldHVybiAzMzI1NjsgfQorfTsKKworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJu
aW5nIEludDMyIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJP
YmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcgSW50MzIgKiBCaWdJbnQiKTsKKworbyA9IHsK
KyAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogZnVuY3Rpb24gKCkgeyByZXR1cm4gMC40NTM7IH0K
K307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC5AQHRv
UHJpbWl0aXZlIHJldHVybmluZyBEb3VibGUiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4
NzU3MzgyOTg0ODIxbiwgIk9iamVjdC5AQHRvUHJpbWl0aXZlIHJldHVybmluZyBEb3VibGUgKiBC
aWdJbnQiKTsKKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtd3JhcHBl
ZC12YWx1ZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXdyYXBwZWQtdmFsdWUuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY3M2Q4YQotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXdyYXBwZWQtdmFsdWUuanMKQEAgLTAs
MCArMSwzNyBAQAorLy9AIHJ1bkJpZ0ludEVuYWJsZWQKKworYXNzZXJ0ID0geworICAgIHNhbWVW
YWx1ZTogZnVuY3Rpb24gKGlucHV0LCBleHBlY3RlZCwgbWVzc2FnZSkgeworICAgICAgICBpZiAo
aW5wdXQgIT09IGV4cGVjdGVkKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2Up
OworICAgIH0KK307CisKK2Z1bmN0aW9uIHRlc3RNdWwoeCwgeSwgeiwgbWVzc2FnZSkgeworICAg
IGFzc2VydC5zYW1lVmFsdWUoeCAqIHksIHosIG1lc3NhZ2UpOworICAgIGFzc2VydC5zYW1lVmFs
dWUoeSAqIHgsIHosIG1lc3NhZ2UpOworfQorCit0ZXN0TXVsKE9iamVjdCgybiksIDFuLCAybiwg
IlRvUHJpbWl0aXZlOiB1bmJveCBvYmplY3Qgd2l0aCBpbnRlcm5hbCBzbG90Iik7CisKK2xldCBv
ID0geworICAgIFtTeW1ib2wudG9QcmltaXRpdmVdOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0
dXJuIDJuOworICAgIH0KK307Cit0ZXN0TXVsKG8sIDFuLCAybiwgIlRvUHJpbWl0aXZlOiBAQHRv
UHJpbWl0aXZlIik7CisKK28gPSB7CisgICAgdmFsdWVPZjogZnVuY3Rpb24oKSB7CisgICAgICAg
IHJldHVybiAybjsKKyAgICB9Cit9OwordGVzdE11bChvLCAxbiwgMm4sICJUb1ByaW1pdGl2ZTog
dmFsdWVPZiIpOworCitvID0geworICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsKKyAgICAgICAg
cmV0dXJuIDJuOworICAgIH0KK30KK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9QcmltaXRpdmU6IHRv
U3RyaW5nIik7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbGlj
YXRpb24uanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bHRpcGxpY2F0aW9uLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlY2Q2MzYKLS0tIC9kZXYvbnVsbAorKysg
Yi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bHRpcGxpY2F0aW9uLmpzCkBAIC0wLDAgKzEsODMg
QEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKKy8vIENvcHlyaWdodCAoQykgMjAxNyBSb2JpbiBU
ZW1wbGV0b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQg
YnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2Fzc2VydCA9
IHsKKyAgICBzYW1lVmFsdWU6IGZ1bmN0aW9uIChpbnB1dCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsK
KyAgICBpZiAoaW5wdXQgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVz
c2FnZSk7CisgICAgfQorfTsKKworZnVuY3Rpb24gdGVzdE11bCh4LCB5LCB6KSB7CisgICAgYXNz
ZXJ0LnNhbWVWYWx1ZSh4ICogeSwgeiwgeCArICIgKiAiICsgeSArICIgPSAiICsgeik7CisgICAg
YXNzZXJ0LnNhbWVWYWx1ZSh5ICogeCwgeiwgeSArICIgKiAiICsgeCArICIgPSAiICsgeik7Cit9
CisKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHhGRURDQkE5ODc2NTQzMjEwbiwgMHhG
REJBQzA5N0M4REM1QUNDREVFQzZDRDdBNDRBNDEwMG4pOwordGVzdE11bCgweEZFRENCQTk4NzY1
NDMyMTBuLCAweEZFRENCQTk4biwgMHhGREJBQzA5NzUzMEVDQTg2NTQxRDU5ODBuKTsKK3Rlc3RN
dWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHgxMjM0biwgMHgxMjFGNDlGNDlGNDlGNDlGNEI0MG4p
OwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweDNuLCAweDJGQzk2MkZDOTYyRkM5NjMw
bik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4Mm4sIDB4MUZEQjk3NTMwRUNBODY0
MjBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHgxbiwgMHhGRURDQkE5ODc2NTQz
MjEwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4MG4sIDB4MG4pOwordGVzdE11
bCgweEZFRENCQTk4NzY1NDMyMTBuLCBCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0
NDkzMDY0NzIwIikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCBCaWdJbnQoIi0yIiks
IEJpZ0ludCgiLTM2NzI5NTE3MDg4OTg2MTI5NDQwIikpOwordGVzdE11bCgweEZFRENCQTk4NzY1
NDMyMTBuLCBCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTU1MDk0Mjc1NjMzNDc5MTk0MTYwIikpOwor
dGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCBCaWdJbnQoIi00NjYwIiksIEJpZ0ludCgiLTg1
NTc5Nzc0ODE3MzM3NjgxNTk1MjAwIikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCBC
aWdJbnQoIi00Mjc1ODc4NTUxIiksIEJpZ0ludCgiLTc4NTI1NDc3MTU0NjkxODc0NjA0NTAyODIw
NzIwIikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweEZFRENCQTk4NzY1NDMyMEZu
LCAweEZEQkFDMDk3QzhEQzVBQ0FFMTMyRjdBNkI3QTFEQ0Uxbik7Cit0ZXN0TXVsKDB4RkVEQ0JB
OTg3NjU0MzIwRm4sIDB4RkVEQ0JBOTduLCAweEZEQkFDMDk2NTQzMjBGRUNERUVDNkNEOW4pOwor
dGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweDNuLCAweDJGQzk2MkZDOTYyRkM5NjJEbik7
Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4Mm4sIDB4MUZEQjk3NTMwRUNBODY0MUVu
KTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgMHgxbiwgMHhGRURDQkE5ODc2NTQzMjBG
bik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4MG4sIDB4MG4pOwordGVzdE11bCgw
eEZFRENCQTk4NzY1NDMyMEZuLCBCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkz
MDY0NzE5IikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCBCaWdJbnQoIi0yIiksIEJp
Z0ludCgiLTM2NzI5NTE3MDg4OTg2MTI5NDM4IikpOwordGVzdE11bCgweEZFRENCQTk4NzY1NDMy
MEZuLCBCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTU1MDk0Mjc1NjMzNDc5MTk0MTU3IikpOwordGVz
dE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCBCaWdJbnQoIi00Mjc1ODc4NTUxIiksIEJpZ0ludCgi
LTc4NTI1NDc3MTU0NjkxODc0NjAwMjI2OTQyMTY5IikpOwordGVzdE11bCgweEZFRENCQTk4NzY1
NDMyMEZuLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpLCBCaWdJbnQoIi0zMzcyNjQz
NTYzOTc1MzEwMjg5NzY2MDgyODk2MzM2MTU2MTM2ODAiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOThu
LCAweEZFRENCQTk4biwgMHhGREJBQzA5NkRENDEzQTQwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOThu
LCAweDEyMzRuLCAweDEyMUY0OUY0OTZFMG4pOwordGVzdE11bCgweEZFRENCQTk4biwgMHgzbiwg
MHgyRkM5NjJGQzhuKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIDB4Mm4sIDB4MUZEQjk3NTMwbik7
Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCAweDFuLCAweEZFRENCQTk4bik7Cit0ZXN0TXVsKDB4RkVE
Q0JBOThuLCAweDBuLCAweDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0ludCgiLTEiKSwg
QmlnSW50KCItNDI3NTg3ODU1MiIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0ludCgiLTIi
KSwgQmlnSW50KCItODU1MTc1NzEwNCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0ludCgi
LTMiKSwgQmlnSW50KCItMTI4Mjc2MzU2NTYiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCBCaWdJ
bnQoIi00Mjc1ODc4NTUxIiksIEJpZ0ludCgiLTE4MjgzMTM3Mzg3MTc3NzM4MTUyIikpOwordGVz
dE11bCgweEZFRENCQTk4biwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgQmlnSW50
KCItNzg1MjU0NzcxNzMwNTY2MzMxNDg5OTU4ODU0NDAiKSk7Cit0ZXN0TXVsKDB4M24sIDB4M24s
IDB4OW4pOwordGVzdE11bCgweDNuLCAweDJuLCAweDZuKTsKK3Rlc3RNdWwoMHgzbiwgMHgxbiwg
MHgzbik7Cit0ZXN0TXVsKDB4M24sIDB4MG4sIDB4MG4pOwordGVzdE11bCgweDNuLCBCaWdJbnQo
Ii0xIiksIEJpZ0ludCgiLTMiKSk7Cit0ZXN0TXVsKDB4M24sIEJpZ0ludCgiLTIiKSwgQmlnSW50
KCItNiIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItMyIpLCBCaWdJbnQoIi05IikpOwordGVz
dE11bCgweDNuLCBCaWdJbnQoIi00NjYwIiksIEJpZ0ludCgiLTEzOTgwIikpOwordGVzdE11bCgw
eDNuLCBCaWdJbnQoIi00Mjc1ODc4NTUyIiksIEJpZ0ludCgiLTEyODI3NjM1NjU2IikpOwordGVz
dE11bCgweDNuLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpLCBCaWdJbnQoIi01NTA5
NDI3NTYzMzQ3OTE5NDE2MCIpKTsKK3Rlc3RNdWwoMHgwbiwgMHgwbiwgMHgwbik7Cit0ZXN0TXVs
KDB4MG4sIEJpZ0ludCgiLTEiKSwgMHgwbik7Cit0ZXN0TXVsKDB4MG4sIEJpZ0ludCgiLTIiKSwg
MHgwbik7Cit0ZXN0TXVsKDB4MG4sIEJpZ0ludCgiLTMiKSwgMHgwbik7Cit0ZXN0TXVsKDB4MG4s
IEJpZ0ludCgiLTQyNzU4Nzg1NTEiKSwgMHgwbik7Cit0ZXN0TXVsKDB4MG4sIEJpZ0ludCgiLTE4
MzY0NzU4NTQ0NDkzMDY0NzE5IiksIDB4MG4pOwordGVzdE11bChCaWdJbnQoIi0xIiksIEJpZ0lu
dCgiLTEiKSwgMHgxbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMiIpLCAweDJu
KTsKK3Rlc3RNdWwoQmlnSW50KCItMSIpLCBCaWdJbnQoIi0zIiksIDB4M24pOwordGVzdE11bChC
aWdJbnQoIi0xIiksIEJpZ0ludCgiLTQ2NjAiKSwgMHgxMjM0bik7Cit0ZXN0TXVsKEJpZ0ludCgi
LTEiKSwgQmlnSW50KCItNDI3NTg3ODU1MSIpLCAweEZFRENCQTk3bik7Cit0ZXN0TXVsKEJpZ0lu
dCgiLTEiKSwgQmlnSW50KCItNDI3NTg3ODU1MiIpLCAweEZFRENCQTk4bik7Cit0ZXN0TXVsKEJp
Z0ludCgiLTEiKSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MTkiKSwgMHhGRURDQkE5ODc2
NTQzMjBGbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMw
NjQ3MjAiKSwgMHhGRURDQkE5ODc2NTQzMjEwbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwgQmln
SW50KCItMyIpLCAweDluKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi00NjYwIiks
IDB4MzY5Q24pOwordGVzdE11bChCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTEiKSwg
MHgyRkM5NjJGQzVuKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi00Mjc1ODc4NTUy
IiksIDB4MkZDOTYyRkM4bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwgQmlnSW50KCItMTgzNjQ3
NTg1NDQ0OTMwNjQ3MTkiKSwgMHgyRkM5NjJGQzk2MkZDOTYyRG4pOwordGVzdE11bChCaWdJbnQo
Ii0zIiksIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIDB4MkZDOTYyRkM5NjJGQzk2
MzBuKTsKK3Rlc3RNdWwoQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgQmlnSW50KCIt
MTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgMHhGREJBQzA5N0M4REM1QUNDREVFQzZDRDdBNDRBNDEw
MG4pOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bHRpcGx5LW1lbW9y
eS1zdHJlc3MuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bHRpcGx5LW1lbW9yeS1zdHJl
c3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWFiYWE3ZQotLS0gL2Rl
di9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbHktbWVtb3J5LXN0cmVz
cy5qcwpAQCAtMCwwICsxLDE1IEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCitmdW5jdGlvbiBh
c3NlcnQoYSkgeworICAgIGlmICghYSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgYXNz
ZXJ0aW9uIik7Cit9CisKK2xldCBhID0gMG47CitsZXQgYiA9IDFuOworZm9yIChsZXQgaSA9IDA7
IGkgPCAxMDAwMDAwOyBpKyspIHsKKyAgICBhID0gYiAqIDMwbjsKK30KKworYXNzZXJ0KGEgPT09
IDMwbik7CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDI3MGQ5NTIuLjg3OGM5ZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTA1LTAxICBDYWlv
IExpbWEgIDx0aWNhaW9saW1hQGdtYWlsLmNvbT4KKworICAgICAgICBbRVNOZXh0XVtCaWdJbnRd
IEltcGxlbWVudCBzdXBwb3J0IGZvciAiKiIgb3BlcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM3MjEKKworICAgICAgICBSZXZpZXdlZCBi
eSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgIEFkZGVkIEJpZ0ludCBzdXBwb3J0IGludG8gdGlt
ZXMgYmluYXJ5IG9wZXJhdG9yIGludG8gTExJbnQgYW5kIG9uCisgICAgICAgIEpJVE9wZXJhdGlv
bnMgcHJvZmlsZWRNdWwgYW5kIHVucHJvZmlsZWRNdWwuIFdlIGFyZSBhbHNvIHJlcGxhY2luZyBh
bGwKKyAgICAgICAgdXNlcyBvZiBpbnQgdG8gdW5zaWduZWQgd2hlbiB0aGVyZSBpcyBubyBuZWdh
dGl2ZSB2YWx1ZXMgZm9yCisgICAgICAgIHZhcmlhYmxlcy4KKworICAgICAgICAqIGRmZy9ERkdD
b25zdGFudEZvbGRpbmdQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Q29uc3RhbnRGb2xk
aW5nUGhhc2U6OmZvbGRDb25zdGFudHMpOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNw
cDoKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6
OlNMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKiBydW50aW1lL0pTQmlnSW50LmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNCaWdJbnQ6OkpTQmlnSW50KToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OmFs
bG9jYXRpb25TaXplKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGgp
OgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6dG9TdHJpbmcpOgorICAgICAgICAoSlNDOjpKU0Jp
Z0ludDo6bXVsdGlwbHkpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6ZGlnaXREaXYpOgorICAg
ICAgICAoSlNDOjpKU0JpZ0ludDo6aW50ZXJuYWxNdWx0aXBseUFkZCk6CisgICAgICAgIChKU0M6
OkpTQmlnSW50OjptdWx0aXBseUFjY3VtdWxhdGUpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6
ZXF1YWxzKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OmFic29sdXRlRGl2U21hbGwpOgorICAg
ICAgICAoSlNDOjpKU0JpZ0ludDo6Y2FsY3VsYXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZCk6
CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMpOgorICAgICAgICAoSlND
OjpKU0JpZ0ludDo6cmlnaHRUcmltKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OmFsbG9jYXRl
Rm9yKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OnBhcnNlSW50KToKKyAgICAgICAgKEpTQzo6
SlNCaWdJbnQ6OmRpZ2l0KToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OnNldERpZ2l0KToKKyAg
ICAgICAgKiBydW50aW1lL0pTQmlnSW50Lmg6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVl
Lmg6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAgICAoSlND
OjpKU1ZhbHVlOjp0b051bWVyaWMgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvT3BlcmF0aW9u
cy5oOgorICAgICAgICAoSlNDOjpqc011bCk6CisKIDIwMTgtMDUtMTAgIEZpbGlwIFBpemxvICA8
ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBERkcgQ0ZBIHNob3VsZCBwaWNrIHRoZSByaWdo
dCB0aW1lIHRvIGluamVjdCBPU1IgZW50cnkgZGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAppbmRleCBmMDRjYzY4Li5m
YmFlZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50
Rm9sZGluZ1BoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0
YW50Rm9sZGluZ1BoYXNlLmNwcApAQCAtMTQ4LDE0ICsxNDgsMTQgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICAgICAgSlNWYWx1ZSBjaGlsZDJDb25zdGFudCA9IG1fc3RhdGUuZm9yTm9kZShu
b2RlLT5jaGlsZDIoKS5ub2RlKCkpLnZhbHVlKCk7CiAKICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IFJldmlzaXQgdGhpcyBjb25kaXRpb24gd2hlbiBpbnRyb2R1Y2luZyBCaWdJbnQgdG8g
SlNDLgotICAgICAgICAgICAgICAgICAgICBhdXRvIGlzTm9uU3RyaW5nQ2VsbENvbnN0YW50ID0g
W10gKEpTVmFsdWUgdmFsdWUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1
ZSAmJiB2YWx1ZS5pc0NlbGwoKSAmJiAhdmFsdWUuaXNTdHJpbmcoKTsKKyAgICAgICAgICAgICAg
ICAgICAgYXV0byBpc05vblN0cmluZ09yQmlnSW50Q2VsbENvbnN0YW50ID0gW10gKEpTVmFsdWUg
dmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSAmJiB2YWx1ZS5p
c0NlbGwoKSAmJiAhdmFsdWUuaXNTdHJpbmcoKSAmJiAhdmFsdWUuaXNCaWdJbnQoKTsKICAgICAg
ICAgICAgICAgICAgICAgfTsKIAotICAgICAgICAgICAgICAgICAgICBpZiAoaXNOb25TdHJpbmdD
ZWxsQ29uc3RhbnQoY2hpbGQxQ29uc3RhbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChp
c05vblN0cmluZ09yQmlnSW50Q2VsbENvbnN0YW50KGNoaWxkMUNvbnN0YW50KSkgewogICAgICAg
ICAgICAgICAgICAgICAgICAgbm9kZS0+Y29udmVydFRvQ29tcGFyZUVxUHRyKG1fZ3JhcGguZnJl
ZXplU3Ryb25nKGNoaWxkMUNvbnN0YW50LmFzQ2VsbCgpKSwgbm9kZS0+Y2hpbGQyKCkpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAg
IH0gZWxzZSBpZiAoaXNOb25TdHJpbmdDZWxsQ29uc3RhbnQoY2hpbGQyQ29uc3RhbnQpKSB7Cisg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNOb25TdHJpbmdPckJpZ0ludENlbGxDb25z
dGFudChjaGlsZDJDb25zdGFudCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNv
bnZlcnRUb0NvbXBhcmVFcVB0cihtX2dyYXBoLmZyZWV6ZVN0cm9uZyhjaGlsZDJDb25zdGFudC5h
c0NlbGwoKSksIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5n
ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRleCAzNjViYjczLi5iMjg4ZDFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTI1NTQsMjEgKzI1NTQs
MTcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZE5vT3B0
aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHJlc3VsdCk7CiB9CiAKLUFMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHVucHJv
ZmlsZWRNdWwoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCitBTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSB1bnByb2ZpbGVkTXVsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKIHsKLSAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZE9wMSk7CiAgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZE9wMik7CiAKLSAgICBkb3VibGUgYSA9IG9wMS50b051bWJlcihleGVjKTsKLSAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICBzY29wZS5yZWxl
YXNlKCk7Ci0gICAgZG91YmxlIGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7Ci0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcihhICogYikpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNNdWwoZXhlYywgb3AxLCBvcDIpKTsKIH0KIAotQUxXQVlTX0lOTElORSBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgcHJvZmlsZWRNdWwoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEFyaXRoUHJvZmls
ZSYgYXJpdGhQcm9maWxlLCBib29sIHNob3VsZE9ic2VydmVMSFNBbmRSSFNUeXBlcyA9IHRydWUp
CitBTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBwcm9maWxlZE11bChFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIsIEFyaXRoUHJvZmlsZSYgYXJpdGhQcm9maWxlLCBib29sIHNob3VsZE9ic2VydmVMSFNB
bmRSSFNUeXBlcyA9IHRydWUpCiB7CisgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSBvcDEgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CiAgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZE9wMik7CkBAIC0yNTc2LDEyICsyNTcyLDggQEAgQUxXQVlTX0lOTElORSBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgcHJvZmlsZWRNdWwoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWQKICAgICBpZiAoc2hvdWxkT2JzZXJ2ZUxIU0FuZFJIU1R5cGVzKQogICAgICAgICBhcml0
aFByb2ZpbGUub2JzZXJ2ZUxIU0FuZFJIUyhvcDEsIG9wMik7CiAKLSAgICBkb3VibGUgYSA9IG9w
MS50b051bWJlcihleGVjKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTXVsKGV4ZWMsIG9wMSwg
b3AyKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsK
LSAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICAKLSAgICBKU1ZhbHVlIHJlc3VsdCA9
IGpzTnVtYmVyKGEgKiBiKTsKICAgICBhcml0aFByb2ZpbGUub2JzZXJ2ZVJlc3VsdChyZXN1bHQp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KQEAgLTI1OTEsNyArMjU4
Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWwoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlCiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7
CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAKLSAgICByZXR1
cm4gdW5wcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOworICAg
IHJldHVybiB1bnByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwogfQog
CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsTm9PcHRpbWl6
ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDIsIEpJVE11bElDKikKQEAgLTI1OTksNyArMjU5MSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxOb09wdGltaXplKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlCiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAKLSAgICByZXR1cm4gdW5wcm9maWxlZE11
bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOworICAgIHJldHVybiB1bnByb2Zp
bGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwogfQogCiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsT3B0aW1pemUoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBK
SVRNdWxJQyogbXVsSUMpCkBAIC0yNjE2LDcgKzI2MDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSgogICAgIGV4ZWMtPmNvZGVCbG9jaygpLT5kdW1wTWF0aElDU3RhdHMoKTsKICNlbmRpZgog
Ci0gICAgcmV0dXJuIHVucHJvZmlsZWRNdWwoKnZtLCBleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVk
T3AyKTsKKyAgICByZXR1cm4gdW5wcm9maWxlZE11bChleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVk
T3AyKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11
bFByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUpCkBAIC0y
NjI1LDcgKzI2MTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZh
bHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSgogICAgIE5hdGl2ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwogCiAgICAgQVNTRVJUKGFyaXRoUHJvZmlsZSk7
Ci0gICAgcmV0dXJuIHByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9w
MiwgKmFyaXRoUHJvZmlsZSk7CisgICAgcmV0dXJuIHByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRP
cDEsIGVuY29kZWRPcDIsICphcml0aFByb2ZpbGUpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWRPcHRpbWl6ZShFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIs
IEpJVE11bElDKiBtdWxJQykKQEAgLTI2NDMsNyArMjYzNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZE9wdGltaXplKEV4ZWNTdGF0ZSog
ZXhlYywKICAgICBleGVjLT5jb2RlQmxvY2soKS0+ZHVtcE1hdGhJQ1N0YXRzKCk7CiAjZW5kaWYK
IAotICAgIHJldHVybiBwcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRP
cDIsICphcml0aFByb2ZpbGUsIGZhbHNlKTsKKyAgICByZXR1cm4gcHJvZmlsZWRNdWwoZXhlYywg
ZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJvZmlsZSwgZmFsc2UpOwogfQogCiBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWROb09wdGlt
aXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMiwgSklUTXVsSUMqIG11bElDKQpAQCAtMjY1Myw3ICsyNjQ1LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkTm9P
cHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMKIAogICAgIEFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxl
ID0gbXVsSUMtPmFyaXRoUHJvZmlsZSgpOwogICAgIEFTU0VSVChhcml0aFByb2ZpbGUpOwotICAg
IHJldHVybiBwcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIsICph
cml0aFByb2ZpbGUpOworICAgIHJldHVybiBwcm9maWxlZE11bChleGVjLCBlbmNvZGVkT3AxLCBl
bmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlKTsKIH0KIAogQUxXQVlTX0lOTElORSBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgdW5wcm9maWxlZE5lZ2F0ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcGVyYW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vblNsb3dQYXRocy5jcHAKaW5kZXggYTU1MGZjMC4uYThhNTY4MSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCkBAIC02NSw2
ICs2NSw3IEBACiAjaW5jbHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgiCiAjaW5jbHVkZSAiVHlwZVBy
b2ZpbGVyTG9nLmgiCiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CisjaW5jbHVk
ZSA8d3RmL1ZhcmlhbnQuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTQ4OCwxMSArNDg5LDgg
QEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX211bCkKICAgICBCRUdJTigpOwogICAgIEpTVmFs
dWUgbGVmdCA9IE9QX0MoMikuanNWYWx1ZSgpOwogICAgIEpTVmFsdWUgcmlnaHQgPSBPUF9DKDMp
LmpzVmFsdWUoKTsKLSAgICBkb3VibGUgYSA9IGxlZnQudG9OdW1iZXIoZXhlYyk7Ci0gICAgaWYg
KFVOTElLRUxZKHRocm93U2NvcGUuZXhjZXB0aW9uKCkpKQotICAgICAgICBSRVRVUk4oSlNWYWx1
ZSgpKTsKLSAgICBkb3VibGUgYiA9IHJpZ2h0LnRvTnVtYmVyKGV4ZWMpOwotICAgIEpTVmFsdWUg
cmVzdWx0ID0ganNOdW1iZXIoYSAqIGIpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNNdWwoZXhl
YywgbGVmdCwgcmlnaHQpOworICAgIENIRUNLX0VYQ0VQVElPTigpOwogICAgIFJFVFVSTl9XSVRI
X1BST0ZJTElORyhyZXN1bHQsIHsKICAgICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yQmluYXJ5
QXJpdGhPcChleGVjLCBwYywgcmVzdWx0LCBsZWZ0LCByaWdodCk7CiAgICAgfSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAKaW5kZXggNWZhZDA4Zi4uZmQ4ZTlh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcApAQCAtNjgs
NyArNjgsNyBAQCB2b2lkIEpTQmlnSW50Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0aGlzT2JqZWN0LCB2
aXNpdG9yKTsKIH0KIAotSlNCaWdJbnQ6OkpTQmlnSW50KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIGludCBsZW5ndGgpCitKU0JpZ0ludDo6SlNCaWdJbnQoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgdW5zaWduZWQgbGVuZ3RoKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQog
ICAgICwgbV9sZW5ndGgobGVuZ3RoKQogeyB9CkBAIC05MiwxMyArOTIsMTMgQEAgSlNCaWdJbnQq
IEpTQmlnSW50OjpjcmVhdGVaZXJvKFZNJiB2bSkKICAgICByZXR1cm4gemVyb0JpZ0ludDsKIH0K
IAotc2l6ZV90IEpTQmlnSW50OjphbGxvY2F0aW9uU2l6ZShpbnQgbGVuZ3RoKQorc2l6ZV90IEpT
QmlnSW50OjphbGxvY2F0aW9uU2l6ZSh1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgc2l6ZV90IHNp
emVXaXRoUGFkZGluZyA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZjxzaXplb2Yoc2l6ZV90KT4o
c2l6ZW9mKEpTQmlnSW50KSk7CiAgICAgcmV0dXJuIHNpemVXaXRoUGFkZGluZyArIGxlbmd0aCAq
IHNpemVvZihEaWdpdCk7CiB9CiAKLUpTQmlnSW50KiBKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0
aChWTSYgdm0sIGludCBsZW5ndGgpCitKU0JpZ0ludCogSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5n
dGgoVk0mIHZtLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgSlNCaWdJbnQqIGJpZ0ludCA9IG5l
dyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpTQmlnSW50Pih2bS5oZWFwLCBhbGxvY2F0aW9uU2l6
ZShsZW5ndGgpKSkgSlNCaWdJbnQodm0sIHZtLmJpZ0ludFN0cnVjdHVyZS5nZXQoKSwgbGVuZ3Ro
KTsKICAgICBiaWdJbnQtPmZpbmlzaENyZWF0aW9uKHZtKTsKQEAgLTI1MCw2ICsyNTAsMjYgQEAg
aW5saW5lIHZvaWQgSlNCaWdJbnQ6OmlucGxhY2VNdWx0aXBseUFkZCh1aW50cHRyX3QgZmFjdG9y
LCB1aW50cHRyX3Qgc3VtbWFuZCkKICAgICBpbnRlcm5hbE11bHRpcGx5QWRkKHRoaXMsIGZhY3Rv
ciwgc3VtbWFuZCwgbGVuZ3RoKCksIHRoaXMpOwogfQogCitKU0JpZ0ludCogSlNCaWdJbnQ6Om11
bHRpcGx5KEV4ZWNTdGF0ZSogc3RhdGUsIEpTQmlnSW50KiB4LCBKU0JpZ0ludCogeSkKK3sKKyAg
ICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKKworICAgIGlmICh4LT5pc1plcm8oKSkKKyAgICAgICAg
cmV0dXJuIHg7CisgICAgaWYgKHktPmlzWmVybygpKQorICAgICAgICByZXR1cm4geTsKKworICAg
IHVuc2lnbmVkIHJlc3VsdExlbmd0aCA9IHgtPmxlbmd0aCgpICsgeS0+bGVuZ3RoKCk7CisgICAg
SlNCaWdJbnQqIHJlc3VsdCA9IEpTQmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoKHZtLCByZXN1bHRM
ZW5ndGgpOworICAgIHJlc3VsdC0+aW5pdGlhbGl6ZShJbml0aWFsaXphdGlvblR5cGU6OldpdGha
ZXJvKTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB4LT5sZW5ndGgoKTsgaSsrKQor
ICAgICAgICBtdWx0aXBseUFjY3VtdWxhdGUoeSwgeC0+ZGlnaXQoaSksIHJlc3VsdCwgaSk7CisK
KyAgICByZXN1bHQtPnNldFNpZ24oeC0+c2lnbigpICE9IHktPnNpZ24oKSk7CisgICAgcmV0dXJu
IHJlc3VsdC0+cmlnaHRUcmltKHZtKTsKK30KKwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAjZGVm
aW5lIEhBVkVfVFdPX0RJR0lUIDEKIHR5cGVkZWYgdWludDY0X3QgVHdvRGlnaXQ7CkBAIC0zNjMs
OSArMzgzLDkgQEAgaW5saW5lIEpTQmlnSW50OjpEaWdpdCBKU0JpZ0ludDo6ZGlnaXREaXYoRGln
aXQgaGlnaCwgRGlnaXQgbG93LCBEaWdpdCBkaXZpc29yLAogICAgIHN0YXRpYyBjb25zdCBEaWdp
dCBrSGFsZkRpZ2l0QmFzZSA9IDF1bGwgPDwgaGFsZkRpZ2l0Qml0czsKICAgICAvLyBBZGFwdGVk
IGZyb20gV2FycmVuLCBIYWNrZXIncyBEZWxpZ2h0LCBwLiAxNTIuCiAjaWYgVVNFKEpTVkFMVUU2
NCkKLSAgICBpbnQgcyA9IGNsejY0KGRpdmlzb3IpOworICAgIHVuc2lnbmVkIHMgPSBjbHo2NChk
aXZpc29yKTsKICNlbHNlCi0gICAgaW50IHMgPSBjbHozMihkaXZpc29yKTsKKyAgICB1bnNpZ25l
ZCBzID0gY2x6MzIoZGl2aXNvcik7CiAjZW5kaWYKICAgICBkaXZpc29yIDw8PSBzOwogICAgIApA
QCAtNDA4LDE0ICs0MjgsMTQgQEAgaW5saW5lIEpTQmlnSW50OjpEaWdpdCBKU0JpZ0ludDo6ZGln
aXREaXYoRGlnaXQgaGlnaCwgRGlnaXQgbG93LCBEaWdpdCBkaXZpc29yLAogCiAvLyBNdWx0aXBs
aWVzIHtzb3VyY2V9IHdpdGgge2ZhY3Rvcn0gYW5kIGFkZHMge3N1bW1hbmR9IHRvIHRoZSByZXN1
bHQuCiAvLyB7cmVzdWx0fSBhbmQge3NvdXJjZX0gbWF5IGJlIHRoZSBzYW1lIEJpZ0ludCBmb3Ig
aW5wbGFjZSBtb2RpZmljYXRpb24uCi12b2lkIEpTQmlnSW50OjppbnRlcm5hbE11bHRpcGx5QWRk
KEpTQmlnSW50KiBzb3VyY2UsIERpZ2l0IGZhY3RvciwgRGlnaXQgc3VtbWFuZCwgaW50IG4sIEpT
QmlnSW50KiByZXN1bHQpCit2b2lkIEpTQmlnSW50OjppbnRlcm5hbE11bHRpcGx5QWRkKEpTQmln
SW50KiBzb3VyY2UsIERpZ2l0IGZhY3RvciwgRGlnaXQgc3VtbWFuZCwgdW5zaWduZWQgbiwgSlNC
aWdJbnQqIHJlc3VsdCkKIHsKICAgICBBU1NFUlQoc291cmNlLT5sZW5ndGgoKSA+PSBuKTsKICAg
ICBBU1NFUlQocmVzdWx0LT5sZW5ndGgoKSA+PSBuKTsKIAogICAgIERpZ2l0IGNhcnJ5ID0gc3Vt
bWFuZDsKICAgICBEaWdpdCBoaWdoID0gMDsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkr
KykgeworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgRGln
aXQgY3VycmVudCA9IHNvdXJjZS0+ZGlnaXQoaSk7CiAgICAgICAgIERpZ2l0IG5ld0NhcnJ5ID0g
MDsKIApAQCAtNDQzLDYgKzQ2Myw0OSBAQCB2b2lkIEpTQmlnSW50OjppbnRlcm5hbE11bHRpcGx5
QWRkKEpTQmlnSW50KiBzb3VyY2UsIERpZ2l0IGZhY3RvciwgRGlnaXQgc3VtbWFuZAogICAgICAg
ICBBU1NFUlQoIShjYXJyeSArIGhpZ2gpKTsKIH0KIAorLy8gTXVsdGlwbGllcyB7bXVsdGlwbGlj
YW5kfSB3aXRoIHttdWx0aXBsaWVyfSBhbmQgYWRkcyB0aGUgcmVzdWx0IHRvCisvLyB7YWNjdW11
bGF0b3J9LCBzdGFydGluZyBhdCB7YWNjdW11bGF0b3JJbmRleH0gZm9yIHRoZSBsZWFzdC1zaWdu
aWZpY2FudAorLy8gZGlnaXQuCisvLyBDYWxsZXJzIG11c3QgZW5zdXJlIHRoYXQge2FjY3VtdWxh
dG9yfSBpcyBiaWcgZW5vdWdoIHRvIGhvbGQgdGhlIHJlc3VsdC4KK3ZvaWQgSlNCaWdJbnQ6Om11
bHRpcGx5QWNjdW11bGF0ZShKU0JpZ0ludCogbXVsdGlwbGljYW5kLCBEaWdpdCBtdWx0aXBsaWVy
LCBKU0JpZ0ludCogYWNjdW11bGF0b3IsIHVuc2lnbmVkIGFjY3VtdWxhdG9ySW5kZXgpCit7Cisg
ICAgQVNTRVJUKGFjY3VtdWxhdG9yLT5sZW5ndGgoKSA+IG11bHRpcGxpY2FuZC0+bGVuZ3RoKCkg
KyBhY2N1bXVsYXRvckluZGV4KTsKKyAgICBpZiAoIW11bHRpcGxpZXIpCisgICAgICAgIHJldHVy
bjsKKyAgICAKKyAgICBEaWdpdCBjYXJyeSA9IDA7CisgICAgRGlnaXQgaGlnaCA9IDA7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG11bHRpcGxpY2FuZC0+bGVuZ3RoKCk7IGkrKywgYWNj
dW11bGF0b3JJbmRleCsrKSB7CisgICAgICAgIERpZ2l0IGFjYyA9IGFjY3VtdWxhdG9yLT5kaWdp
dChhY2N1bXVsYXRvckluZGV4KTsKKyAgICAgICAgRGlnaXQgbmV3Q2FycnkgPSAwOworICAgICAg
ICAKKyAgICAgICAgLy8gQWRkIGxhc3Qgcm91bmQncyBjYXJyeW92ZXJzLgorICAgICAgICBhY2Mg
PSBkaWdpdEFkZChhY2MsIGhpZ2gsIG5ld0NhcnJ5KTsKKyAgICAgICAgYWNjID0gZGlnaXRBZGQo
YWNjLCBjYXJyeSwgbmV3Q2FycnkpOworICAgICAgICAKKyAgICAgICAgLy8gQ29tcHV0ZSB0aGlz
IHJvdW5kJ3MgbXVsdGlwbGljYXRpb24uCisgICAgICAgIERpZ2l0IG11bHRpcGxpY2FuZERpZ2l0
ID0gbXVsdGlwbGljYW5kLT5kaWdpdChpKTsKKyAgICAgICAgRGlnaXQgbG93ID0gZGlnaXRNdWwo
bXVsdGlwbGllciwgbXVsdGlwbGljYW5kRGlnaXQsIGhpZ2gpOworICAgICAgICBhY2MgPSBkaWdp
dEFkZChhY2MsIGxvdywgbmV3Q2FycnkpOworICAgICAgICAKKyAgICAgICAgLy8gU3RvcmUgcmVz
dWx0IGFuZCBwcmVwYXJlIGZvciBuZXh0IHJvdW5kLgorICAgICAgICBhY2N1bXVsYXRvci0+c2V0
RGlnaXQoYWNjdW11bGF0b3JJbmRleCwgYWNjKTsKKyAgICAgICAgY2FycnkgPSBuZXdDYXJyeTsK
KyAgICB9CisgICAgCisgICAgd2hpbGUgKGNhcnJ5IHx8IGhpZ2gpIHsKKyAgICAgICAgQVNTRVJU
KGFjY3VtdWxhdG9ySW5kZXggPCBhY2N1bXVsYXRvci0+bGVuZ3RoKCkpOworICAgICAgICBEaWdp
dCBhY2MgPSBhY2N1bXVsYXRvci0+ZGlnaXQoYWNjdW11bGF0b3JJbmRleCk7CisgICAgICAgIERp
Z2l0IG5ld0NhcnJ5ID0gMDsKKyAgICAgICAgYWNjID0gZGlnaXRBZGQoYWNjLCBoaWdoLCBuZXdD
YXJyeSk7CisgICAgICAgIGhpZ2ggPSAwOworICAgICAgICBhY2MgPSBkaWdpdEFkZChhY2MsIGNh
cnJ5LCBuZXdDYXJyeSk7CisgICAgICAgIGFjY3VtdWxhdG9yLT5zZXREaWdpdChhY2N1bXVsYXRv
ckluZGV4LCBhY2MpOworICAgICAgICBjYXJyeSA9IG5ld0NhcnJ5OworICAgICAgICBhY2N1bXVs
YXRvckluZGV4Kys7CisgICAgfQorfQorCiBib29sIEpTQmlnSW50OjplcXVhbHMoSlNCaWdJbnQq
IHgsIEpTQmlnSW50KiB5KQogewogICAgIGlmICh4LT5zaWduKCkgIT0geS0+c2lnbigpKQpAQCAt
NDUxLDcgKzUxNCw3IEBAIGJvb2wgSlNCaWdJbnQ6OmVxdWFscyhKU0JpZ0ludCogeCwgSlNCaWdJ
bnQqIHkpCiAgICAgaWYgKHgtPmxlbmd0aCgpICE9IHktPmxlbmd0aCgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHgtPmxlbmd0aCgpOyBpKyspIHsK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgeC0+bGVuZ3RoKCk7IGkrKykgewogICAgICAg
ICBpZiAoeC0+ZGlnaXQoaSkgIT0geS0+ZGlnaXQoaSkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQpAQCAtNDc5LDcgKzU0Miw3IEBAIHZvaWQgSlNCaWdJbnQ6OmFic29sdXRlRGl2
U21hbGwoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQqIHgsIERpZ2l0IGRpdmlzb3IsIEpTCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpbnQgbGVuZ3RoID0geC0+bGVuZ3RoKCk7Cisg
ICAgdW5zaWduZWQgbGVuZ3RoID0geC0+bGVuZ3RoKCk7CiAgICAgaWYgKHF1b3RpZW50ICE9IG51
bGxwdHIpIHsKICAgICAgICAgaWYgKCpxdW90aWVudCA9PSBudWxscHRyKQogICAgICAgICAgICAg
KnF1b3RpZW50ID0gSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGgodm0sIGxlbmd0aCk7CkBAIC01
MDYsMTQgKzU2OSwxNCBAQCBjb25zdGV4cHIgdWludDhfdCBtYXhCaXRzUGVyQ2hhclRhYmxlW10g
PSB7CiAgICAgMTYyLCAxNjMsIDE2NSwgMTY2LCAgICAgICAgICAgICAgICAgICAgICAgICAvLyAz
My4uMzYKIH07CiAKLXN0YXRpYyBjb25zdCBpbnQgYml0c1BlckNoYXJUYWJsZVNoaWZ0ID0gNTsK
K3N0YXRpYyBjb25zdCB1bnNpZ25lZCBiaXRzUGVyQ2hhclRhYmxlU2hpZnQgPSA1Owogc3RhdGlj
IGNvbnN0IHNpemVfdCBiaXRzUGVyQ2hhclRhYmxlTXVsdGlwbGllciA9IDF1IDw8IGJpdHNQZXJD
aGFyVGFibGVTaGlmdDsKIAogLy8gQ29tcHV0ZSAoYW4gb3ZlcmFwcHJveGltYXRpb24gb2YpIHRo
ZSBsZW5ndGggb2YgdGhlIHJlc3VsdGluZyBzdHJpbmc6CiAvLyBEaXZpZGUgYml0IGxlbmd0aCBv
ZiB0aGUgQmlnSW50IGJ5IGJpdHMgcmVwcmVzZW50YWJsZSBwZXIgY2hhcmFjdGVyLgotdWludDY0
X3QgSlNCaWdJbnQ6OmNhbGN1bGF0ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQoaW50IGxlbmd0
aCwgaW50IHJhZGl4LCBEaWdpdCBsYXN0RGlnaXQsIGJvb2wgc2lnbikKK3VpbnQ2NF90IEpTQmln
SW50OjpjYWxjdWxhdGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKHVuc2lnbmVkIGxlbmd0aCwg
dW5zaWduZWQgcmFkaXgsIERpZ2l0IGxhc3REaWdpdCwgYm9vbCBzaWduKQogewotICAgIGludCBs
ZWFkaW5nWmVyb3M7CisgICAgdW5zaWduZWQgbGVhZGluZ1plcm9zOwogICAgIGlmIChzaXplb2Yo
bGFzdERpZ2l0KSA9PSA4KQogICAgICAgICBsZWFkaW5nWmVyb3MgPSBjbHo2NChsYXN0RGlnaXQp
OwogICAgIGVsc2UKQEAgLTU0MSw3ICs2MDQsNyBAQCB1aW50NjRfdCBKU0JpZ0ludDo6Y2FsY3Vs
YXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZChpbnQgbGVuZ3RoLCBpbnQgcmFkaXgsIERpZwog
ICAgIHJldHVybiBtYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkOwogfQogCi1TdHJpbmcgSlNCaWdJ
bnQ6OnRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUmIHN0YXRlLCBKU0JpZ0ludCogeCwgaW50IHJh
ZGl4KQorU3RyaW5nIEpTQmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwg
SlNCaWdJbnQqIHgsIHVuc2lnbmVkIHJhZGl4KQogewogICAgIC8vIEZJWE1FOiBbSlNDXSBSZXZp
c2l0IHVzYWdlIG9mIFZlY3RvciBpbnRvIEpTQmlnSW50Ojp0b1N0cmluZwogICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA2NwpAQCAtNTUwLDcgKzYxMyw3
IEBAIFN0cmluZyBKU0JpZ0ludDo6dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpT
QmlnSW50KiB4LCBpbnQgcmFkaXgpCiAgICAgQVNTRVJUKHJhZGl4ID49IDIgJiYgcmFkaXggPD0g
MzYpOwogICAgIEFTU0VSVCgheC0+aXNaZXJvKCkpOwogCi0gICAgaW50IGxlbmd0aCA9IHgtPmxl
bmd0aCgpOworICAgIHVuc2lnbmVkIGxlbmd0aCA9IHgtPmxlbmd0aCgpOwogICAgIGJvb2wgc2ln
biA9IHgtPnNpZ24oKTsKIAogICAgIHVpbnQ4X3QgbWF4Qml0c1BlckNoYXIgPSBtYXhCaXRzUGVy
Q2hhclRhYmxlW3JhZGl4XTsKQEAgLTU2NiwxMiArNjI5LDEyIEBAIFN0cmluZyBKU0JpZ0ludDo6
dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCBpbnQgcmFkaXgp
CiAgICAgaWYgKGxlbmd0aCA9PSAxKQogICAgICAgICBsYXN0RGlnaXQgPSB4LT5kaWdpdCgwKTsK
ICAgICBlbHNlIHsKLSAgICAgICAgaW50IGNodW5rQ2hhcnMgPSBkaWdpdEJpdHMgKiBiaXRzUGVy
Q2hhclRhYmxlTXVsdGlwbGllciAvIG1heEJpdHNQZXJDaGFyOworICAgICAgICB1bnNpZ25lZCBj
aHVua0NoYXJzID0gZGlnaXRCaXRzICogYml0c1BlckNoYXJUYWJsZU11bHRpcGxpZXIgLyBtYXhC
aXRzUGVyQ2hhcjsKICAgICAgICAgRGlnaXQgY2h1bmtEaXZpc29yID0gZGlnaXRQb3cocmFkaXgs
IGNodW5rQ2hhcnMpOwogCiAgICAgICAgIC8vIEJ5IGNvbnN0cnVjdGlvbiBvZiBjaHVua0NoYXJz
LCB0aGVyZSBjYW4ndCBoYXZlIGJlZW4gb3ZlcmZsb3cuCiAgICAgICAgIEFTU0VSVChjaHVua0Rp
dmlzb3IpOwotICAgICAgICBpbnQgbm9uWmVyb0RpZ2l0ID0gbGVuZ3RoIC0gMTsKKyAgICAgICAg
dW5zaWduZWQgbm9uWmVyb0RpZ2l0ID0gbGVuZ3RoIC0gMTsKICAgICAgICAgQVNTRVJUKHgtPmRp
Z2l0KG5vblplcm9EaWdpdCkpOwogCiAgICAgICAgIC8vIHtyZXN0fSBob2xkcyB0aGUgcGFydCBv
ZiB0aGUgQmlnSW50IHRoYXQgd2UgaGF2ZW4ndCBsb29rZWQgYXQgeWV0LgpAQCAtNTg3LDcgKzY1
MCw3IEBAIFN0cmluZyBKU0JpZ0ludDo6dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUs
IEpTQmlnSW50KiB4LCBpbnQgcmFkaXgpCiAgICAgICAgICAgICBBU1NFUlQocmVzdCk7CiAKICAg
ICAgICAgICAgIGRpdmlkZW5kID0gJnJlc3Q7Ci0gICAgICAgICAgICBmb3IgKGludCBpID0gMDsg
aSA8IGNodW5rQ2hhcnM7IGkrKykgeworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGNodW5rQ2hhcnM7IGkrKykgewogICAgICAgICAgICAgICAgIHJlc3VsdFN0cmluZy5hcHBl
bmQocmFkaXhEaWdpdHNbY2h1bmsgJSByYWRpeF0pOwogICAgICAgICAgICAgICAgIGNodW5rIC89
IHJhZGl4OwogICAgICAgICAgICAgfQpAQCAtNjEyLDcgKzY3NSw3IEBAIFN0cmluZyBKU0JpZ0lu
dDo6dG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCBpbnQgcmFk
aXgpCiAgICAgQVNTRVJUKHJlc3VsdFN0cmluZy5zaXplKCkgPD0gc3RhdGljX2Nhc3Q8c2l6ZV90
PihtYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKSk7CiAKICAgICAvLyBSZW1vdmUgbGVhZGluZyB6
ZXJvZXMuCi0gICAgaW50IG5ld1NpemVOb0xlYWRpbmdaZXJvZXMgPSByZXN1bHRTdHJpbmcuc2l6
ZSgpOworICAgIHVuc2lnbmVkIG5ld1NpemVOb0xlYWRpbmdaZXJvZXMgPSByZXN1bHRTdHJpbmcu
c2l6ZSgpOwogICAgIHdoaWxlIChuZXdTaXplTm9MZWFkaW5nWmVyb2VzICA+IDEgJiYgcmVzdWx0
U3RyaW5nW25ld1NpemVOb0xlYWRpbmdaZXJvZXMgLSAxXSA9PSAnMCcpCiAgICAgICAgIG5ld1Np
emVOb0xlYWRpbmdaZXJvZXMtLTsKIApAQCAtNjMxLDE0ICs2OTQsMTYgQEAgSlNCaWdJbnQqIEpT
QmlnSW50OjpyaWdodFRyaW0oVk0mIHZtKQogICAgIGlmIChpc1plcm8oKSkKICAgICAgICAgcmV0
dXJuIHRoaXM7CiAKKyAgICBBU1NFUlQobV9sZW5ndGgpOworCiAgICAgaW50IG5vblplcm9JbmRl
eCA9IG1fbGVuZ3RoIC0gMTsKICAgICB3aGlsZSAobm9uWmVyb0luZGV4ID49IDAgJiYgIWRpZ2l0
KG5vblplcm9JbmRleCkpCiAgICAgICAgIG5vblplcm9JbmRleC0tOwogCi0gICAgaWYgKG5vblpl
cm9JbmRleCA9PSBtX2xlbmd0aCAtIDEpCisgICAgaWYgKG5vblplcm9JbmRleCA9PSBzdGF0aWNf
Y2FzdDxpbnQ+KG1fbGVuZ3RoIC0gMSkpCiAgICAgICAgIHJldHVybiB0aGlzOwogCi0gICAgaW50
IG5ld0xlbmd0aCA9IG5vblplcm9JbmRleCArIDE7CisgICAgdW5zaWduZWQgbmV3TGVuZ3RoID0g
bm9uWmVyb0luZGV4ICsgMTsKICAgICBKU0JpZ0ludCogdHJpbW1lZEJpZ0ludCA9IGNyZWF0ZVdp
dGhMZW5ndGgodm0sIG5ld0xlbmd0aCk7CiAgICAgUkVMRUFTRV9BU1NFUlQodHJpbW1lZEJpZ0lu
dCk7CiAgICAgc3RkOjpjb3B5KGRhdGFTdG9yYWdlKCksIGRhdGFTdG9yYWdlKCkgKyBuZXdMZW5n
dGgsIHRyaW1tZWRCaWdJbnQtPmRhdGFTdG9yYWdlKCkpOyAKQEAgLTY0OCwxNCArNzEzLDE0IEBA
IEpTQmlnSW50KiBKU0JpZ0ludDo6cmlnaHRUcmltKFZNJiB2bSkKICAgICByZXR1cm4gdHJpbW1l
ZEJpZ0ludDsKIH0KIAotSlNCaWdJbnQqIEpTQmlnSW50OjphbGxvY2F0ZUZvcihFeGVjU3RhdGUq
IHN0YXRlLCBWTSYgdm0sIGludCByYWRpeCwgaW50IGNoYXJjb3VudCkKK0pTQmlnSW50KiBKU0Jp
Z0ludDo6YWxsb2NhdGVGb3IoRXhlY1N0YXRlKiBzdGF0ZSwgVk0mIHZtLCB1bnNpZ25lZCByYWRp
eCwgdW5zaWduZWQgY2hhcmNvdW50KQogewogICAgIEFTU0VSVCgyIDw9IHJhZGl4ICYmIHJhZGl4
IDw9IDM2KTsKICAgICBBU1NFUlQoY2hhcmNvdW50ID49IDApOwogCiAgICAgc2l6ZV90IGJpdHNQ
ZXJDaGFyID0gbWF4Qml0c1BlckNoYXJUYWJsZVtyYWRpeF07CiAgICAgc2l6ZV90IGNoYXJzID0g
Y2hhcmNvdW50OwotICAgIGNvbnN0IGludCByb3VuZHVwID0gYml0c1BlckNoYXJUYWJsZU11bHRp
cGxpZXIgLSAxOworICAgIGNvbnN0IHVuc2lnbmVkIHJvdW5kdXAgPSBiaXRzUGVyQ2hhclRhYmxl
TXVsdGlwbGllciAtIDE7CiAgICAgaWYgKGNoYXJzIDw9IChzdGQ6Om51bWVyaWNfbGltaXRzPHNp
emVfdD46Om1heCgpIC0gcm91bmR1cCkgLyBiaXRzUGVyQ2hhcikgewogICAgICAgICBzaXplX3Qg
Yml0c01pbiA9IGJpdHNQZXJDaGFyICogY2hhcnM7CiAKQEAgLTY2Myw3ICs3MjgsNyBAQCBKU0Jp
Z0ludCogSlNCaWdJbnQ6OmFsbG9jYXRlRm9yKEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgaW50
IHJhZGl4LCBpbnQgY2hhcmNvdQogICAgICAgICBiaXRzTWluID0gKGJpdHNNaW4gKyByb3VuZHVw
KSA+PiBiaXRzUGVyQ2hhclRhYmxlU2hpZnQ7CiAgICAgICAgIGlmIChiaXRzTWluIDw9IHN0YXRp
Y19jYXN0PHNpemVfdD4obWF4SW50KSkgewogICAgICAgICAgICAgLy8gRGl2aWRlIGJ5IGtEaWdp
dHNCaXRzLCByb3VuZGluZyB1cC4KLSAgICAgICAgICAgIGludCBsZW5ndGggPSAoc3RhdGljX2Nh
c3Q8aW50PihiaXRzTWluKSArIGRpZ2l0Qml0cyAtIDEpIC8gZGlnaXRCaXRzOworICAgICAgICAg
ICAgdW5zaWduZWQgbGVuZ3RoID0gKGJpdHNNaW4gKyBkaWdpdEJpdHMgLSAxKSAvIGRpZ2l0Qml0
czsKICAgICAgICAgICAgIGlmIChsZW5ndGggPD0gbWF4TGVuZ3RoKSB7CiAgICAgICAgICAgICAg
ICAgSlNCaWdJbnQqIHJlc3VsdCA9IEpTQmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoKHZtLCBsZW5n
dGgpOwogICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC03NzEsOSArODM2LDkgQEAg
SlNCaWdJbnQqIEpTQmlnSW50OjpwYXJzZUludChFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0sIENo
YXJUeXBlKiBkYXRhLCB1bnNpZ25lZAogICAgIGlmIChwID09IGxlbmd0aCkKICAgICAgICAgcmV0
dXJuIGNyZWF0ZVplcm8odm0pOwogCi0gICAgaW50IGxpbWl0MCA9ICcwJyArIChyYWRpeCA8IDEw
ID8gcmFkaXggOiAxMCk7Ci0gICAgaW50IGxpbWl0YSA9ICdhJyArIChyYWRpeCAtIDEwKTsKLSAg
ICBpbnQgbGltaXRBID0gJ0EnICsgKHJhZGl4IC0gMTApOworICAgIHVuc2lnbmVkIGxpbWl0MCA9
ICcwJyArIChyYWRpeCA8IDEwID8gcmFkaXggOiAxMCk7CisgICAgdW5zaWduZWQgbGltaXRhID0g
J2EnICsgKHJhZGl4IC0gMTApOworICAgIHVuc2lnbmVkIGxpbWl0QSA9ICdBJyArIChyYWRpeCAt
IDEwKTsKIAogICAgIEpTQmlnSW50KiByZXN1bHQgPSBhbGxvY2F0ZUZvcihzdGF0ZSwgdm0sIHJh
ZGl4LCBsZW5ndGggLSBwKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRy
KTsKQEAgLTgwOSwxMyArODc0LDEzIEBAIGlubGluZSBKU0JpZ0ludDo6RGlnaXQqIEpTQmlnSW50
OjpkYXRhU3RvcmFnZSgpCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RGlnaXQqPihyZWlu
dGVycHJldF9jYXN0PGNoYXIqPih0aGlzKSArIG9mZnNldE9mRGF0YSgpKTsKIH0KIAotaW5saW5l
IEpTQmlnSW50OjpEaWdpdCBKU0JpZ0ludDo6ZGlnaXQoaW50IG4pCitKU0JpZ0ludDo6RGlnaXQg
SlNCaWdJbnQ6OmRpZ2l0KHVuc2lnbmVkIG4pCiB7CiAgICAgQVNTRVJUKG4gPj0gMCAmJiBuIDwg
bGVuZ3RoKCkpOwogICAgIHJldHVybiBkYXRhU3RvcmFnZSgpW25dOwogfQogCi1pbmxpbmUgdm9p
ZCBKU0JpZ0ludDo6c2V0RGlnaXQoaW50IG4sIERpZ2l0IHZhbHVlKQordm9pZCBKU0JpZ0ludDo6
c2V0RGlnaXQodW5zaWduZWQgbiwgRGlnaXQgdmFsdWUpCiB7CiAgICAgQVNTRVJUKG4gPj0gMCAm
JiBuIDwgbGVuZ3RoKCkpOwogICAgIGRhdGFTdG9yYWdlKClbbl0gPSB2YWx1ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCmluZGV4IGI5YmY3NTEuLjAyNDRjYmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaApAQCAtNDEsNyArNDEsNyBA
QCBjbGFzcyBKU0JpZ0ludCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogCiBwdWJsaWM6CiAKLSAg
ICBKU0JpZ0ludChWTSYsIFN0cnVjdHVyZSosIGludCBsZW5ndGgpOworICAgIEpTQmlnSW50KFZN
JiwgU3RydWN0dXJlKiwgdW5zaWduZWQgbGVuZ3RoKTsKIAogICAgIGVudW0gY2xhc3MgSW5pdGlh
bGl6YXRpb25UeXBlIHsgTm9uZSwgV2l0aFplcm8gfTsKICAgICB2b2lkIGluaXRpYWxpemUoSW5p
dGlhbGl6YXRpb25UeXBlKTsKQEAgLTQ5LDEyICs0OSwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAgc3RhdGlj
IHNpemVfdCBlc3RpbWF0ZWRTaXplKEpTQ2VsbCopOwotICAgIHN0YXRpYyBzaXplX3QgYWxsb2Nh
dGlvblNpemUoaW50IGxlbmd0aCk7CisgICAgc3RhdGljIHNpemVfdCBhbGxvY2F0aW9uU2l6ZSh1
bnNpZ25lZCBsZW5ndGgpOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7Ci0KICAgICBzdGF0aWMg
SlNCaWdJbnQqIGNyZWF0ZVplcm8oVk0mKTsKLSAgICBzdGF0aWMgSlNCaWdJbnQqIGNyZWF0ZVdp
dGhMZW5ndGgoVk0mLCBpbnQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgSlNCaWdJbnQqIGNyZWF0ZVdp
dGhMZW5ndGgoVk0mLCB1bnNpZ25lZCBsZW5ndGgpOwogCiAgICAgc3RhdGljIEpTQmlnSW50KiBj
cmVhdGVGcm9tKFZNJiwgaW50MzJfdCB2YWx1ZSk7CiAgICAgc3RhdGljIEpTQmlnSW50KiBjcmVh
dGVGcm9tKFZNJiwgdWludDMyX3QgdmFsdWUpOwpAQCAtNzAsOCArNjksOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRTaWduKGJvb2wgc2lnbikgeyBtX3NpZ24gPSBzaWduOyB9CiAgICAgYm9vbCBz
aWduKCkgY29uc3QgeyByZXR1cm4gbV9zaWduOyB9CiAKLSAgICB2b2lkIHNldExlbmd0aChpbnQg
bGVuZ3RoKSB7IG1fbGVuZ3RoID0gbGVuZ3RoOyB9Ci0gICAgaW50IGxlbmd0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fbGVuZ3RoOyB9CisgICAgdm9pZCBzZXRMZW5ndGgodW5zaWduZWQgbGVuZ3RoKSB7
IG1fbGVuZ3RoID0gbGVuZ3RoOyB9CisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1
cm4gbV9sZW5ndGg7IH0KIAogICAgIGVudW0gRXJyb3JQYXJzZU1vZGUgewogICAgICAgICBUaHJv
d0V4Y2VwdGlvbnMsCkBAIC05Miw2ICs5MSw4IEBAIHB1YmxpYzoKICAgICBkb3VibGUgdG9OdW1i
ZXIoRXhlY1N0YXRlKikgY29uc3Q7CiAKICAgICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRl
KiwgSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKKworICAgIHN0YXRpYyBKU0JpZ0ludCogbXVsdGlw
bHkoRXhlY1N0YXRlKiwgSlNCaWdJbnQqIHgsIEpTQmlnSW50KiB5KTsKICAgICAKIHByaXZhdGU6
CiAKQEAgLTEwMyw5ICsxMDQsOSBAQCBwcml2YXRlOgogICAgIH07CiAKICAgICB1c2luZyBEaWdp
dCA9IHVpbnRwdHJfdDsKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGludCBiaXRzUGVyQnl0
ZSA9IDg7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQgZGlnaXRCaXRzID0gc2l6ZW9m
KERpZ2l0KSAqIGJpdHNQZXJCeXRlOwotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgaW50IGhh
bGZEaWdpdEJpdHMgPSBkaWdpdEJpdHMgLyAyOworICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3Qg
dW5zaWduZWQgYml0c1BlckJ5dGUgPSA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgdW5z
aWduZWQgZGlnaXRCaXRzID0gc2l6ZW9mKERpZ2l0KSAqIGJpdHNQZXJCeXRlOworICAgIHN0YXRp
YyBjb25zdGV4cHIgY29uc3QgdW5zaWduZWQgaGFsZkRpZ2l0Qml0cyA9IGRpZ2l0Qml0cyAvIDI7
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBEaWdpdCBoYWxmRGlnaXRNYXNrID0gKDF1bGwg
PDwgaGFsZkRpZ2l0Qml0cykgLSAxOwogICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgaW50IG1h
eEludCA9IDB4N0ZGRkZGRkY7CiAgICAgCkBAIC0xMTMsMTIgKzExNCwxMyBAQCBwcml2YXRlOgog
ICAgIC8vIG1heEludCAvIGRpZ2l0Qml0cy4gSG93ZXZlciwgd2UgdXNlIGEgbG93ZXIgbGltaXQg
Zm9yIG5vdywgYmVjYXVzZQogICAgIC8vIHJhaXNpbmcgaXQgbGF0ZXIgaXMgZWFzaWVyIHRoYW4g
bG93ZXJpbmcgaXQuCiAgICAgLy8gU3VwcG9ydCB1cCB0byAxIG1pbGxpb24gYml0cy4KLSAgICBz
dGF0aWMgY29uc3QgaW50IG1heExlbmd0aCA9IDEwMjQgKiAxMDI0IC8gKHNpemVvZih2b2lkKikg
KiBiaXRzUGVyQnl0ZSk7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heExlbmd0aCA9IDEw
MjQgKiAxMDI0IC8gKHNpemVvZih2b2lkKikgKiBiaXRzUGVyQnl0ZSk7CiAgICAgCi0gICAgc3Rh
dGljIHVpbnQ2NF90IGNhbGN1bGF0ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQoaW50IGxlbmd0
aCwgaW50IHJhZGl4LCBEaWdpdCBsYXN0RGlnaXQsIGJvb2wgc2lnbik7CisgICAgc3RhdGljIHVp
bnQ2NF90IGNhbGN1bGF0ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQodW5zaWduZWQgbGVuZ3Ro
LCB1bnNpZ25lZCByYWRpeCwgRGlnaXQgbGFzdERpZ2l0LCBib29sIHNpZ24pOwogICAgIAogICAg
IHN0YXRpYyB2b2lkIGFic29sdXRlRGl2U21hbGwoRXhlY1N0YXRlJiwgSlNCaWdJbnQqIHgsIERp
Z2l0IGRpdmlzb3IsIEpTQmlnSW50KiogcXVvdGllbnQsIERpZ2l0JiByZW1haW5kZXIpOwotICAg
IHN0YXRpYyB2b2lkIGludGVybmFsTXVsdGlwbHlBZGQoSlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQg
ZmFjdG9yLCBEaWdpdCBzdW1tYW5kLCBpbnQsIEpTQmlnSW50KiByZXN1bHQpOworICAgIHN0YXRp
YyB2b2lkIGludGVybmFsTXVsdGlwbHlBZGQoSlNCaWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9y
LCBEaWdpdCBzdW1tYW5kLCB1bnNpZ25lZCwgSlNCaWdJbnQqIHJlc3VsdCk7CisgICAgc3RhdGlj
IHZvaWQgbXVsdGlwbHlBY2N1bXVsYXRlKEpTQmlnSW50KiBtdWx0aXBsaWNhbmQsIERpZ2l0IG11
bHRpcGxpZXIsIEpTQmlnSW50KiBhY2N1bXVsYXRvciwgdW5zaWduZWQgYWNjdW11bGF0b3JJbmRl
eCk7CiAKICAgICAvLyBEaWdpdCBhcml0aG1ldGljIGhlbHBlcnMuCiAgICAgc3RhdGljIERpZ2l0
IGRpZ2l0QWRkKERpZ2l0IGEsIERpZ2l0IGIsIERpZ2l0JiBjYXJyeSk7CkBAIC0xMjcsNyArMTI5
LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgRGlnaXQgZGlnaXREaXYoRGlnaXQgaGlnaCwgRGln
aXQgbG93LCBEaWdpdCBkaXZpc29yLCBEaWdpdCYgcmVtYWluZGVyKTsKICAgICBzdGF0aWMgRGln
aXQgZGlnaXRQb3coRGlnaXQgYmFzZSwgRGlnaXQgZXhwb25lbnQpOwogCi0gICAgc3RhdGljIFN0
cmluZyB0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiwgSlNCaWdJbnQqLCBpbnQgcmFkaXgpOwor
ICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYsIEpTQmlnSW50Kiwg
dW5zaWduZWQgcmFkaXgpOwogCiAgICAgYm9vbCBpc1plcm8oKTsKIApAQCAtMTM5LDcgKzE0MSw3
IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUeXBlPgogICAgIHN0YXRp
YyBKU0JpZ0ludCogcGFyc2VJbnQoRXhlY1N0YXRlKiwgVk0mLCBDaGFyVHlwZSogZGF0YSwgdW5z
aWduZWQgbGVuZ3RoLCB1bnNpZ25lZCBzdGFydEluZGV4LCB1bnNpZ25lZCByYWRpeCwgRXJyb3JQ
YXJzZU1vZGUsIGJvb2wgYWxsb3dFbXB0eVN0cmluZyA9IHRydWUpOwogCi0gICAgc3RhdGljIEpT
QmlnSW50KiBhbGxvY2F0ZUZvcihFeGVjU3RhdGUqLCBWTSYsIGludCByYWRpeCwgaW50IGNoYXJj
b3VudCk7CisgICAgc3RhdGljIEpTQmlnSW50KiBhbGxvY2F0ZUZvcihFeGVjU3RhdGUqLCBWTSYs
IHVuc2lnbmVkIHJhZGl4LCB1bnNpZ25lZCBjaGFyY291bnQpOwogCiAgICAgSlNCaWdJbnQqIHJp
Z2h0VHJpbShWTSYpOwogCkBAIC0xNDgsMTAgKzE1MCwxMCBAQCBwcml2YXRlOgogICAgIHN0YXRp
YyBzaXplX3Qgb2Zmc2V0T2ZEYXRhKCk7CiAgICAgRGlnaXQqIGRhdGFTdG9yYWdlKCk7CiAKLSAg
ICBEaWdpdCBkaWdpdChpbnQpOwotICAgIHZvaWQgc2V0RGlnaXQoaW50LCBEaWdpdCk7CisgICAg
RGlnaXQgZGlnaXQodW5zaWduZWQpOworICAgIHZvaWQgc2V0RGlnaXQodW5zaWduZWQsIERpZ2l0
KTsKICAgICAgICAgCi0gICAgaW50IG1fbGVuZ3RoOworICAgIHVuc2lnbmVkIG1fbGVuZ3RoOwog
ICAgIGJvb2wgbV9zaWduOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDSlNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
SlNWYWx1ZS5oCmluZGV4IDIxZTgwZjguLjkxZGMxYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKQEAgLTM5LDYgKzM5LDcgQEAKIG5hbWVzcGFjZSBKU0Mg
ewogCiBjbGFzcyBBc3NlbWJseUhlbHBlcnM7CitjbGFzcyBKU0JpZ0ludDsKIGNsYXNzIEV4ZWNT
dGF0ZTsKIGNsYXNzIEpTQ2VsbDsKIGNsYXNzIEpTVmFsdWVTb3VyY2U7CkBAIC0yNTcsNiArMjU4
LDggQEAgcHVibGljOgogICAgIC8vIHRvTnVtYmVyIGNvbnZlcnNpb24gaXMgZXhwZWN0ZWQgdG8g
YmUgc2lkZSBlZmZlY3QgZnJlZSBpZiBhbiBleGNlcHRpb24gaGFzCiAgICAgLy8gYmVlbiBzZXQg
aW4gdGhlIEV4ZWNTdGF0ZSBhbHJlYWR5LgogICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUq
KSBjb25zdDsKKyAgICAKKyAgICBWYXJpYW50PEpTQmlnSW50KiwgZG91YmxlPiB0b051bWVyaWMo
RXhlY1N0YXRlKikgY29uc3Q7CiAKICAgICAvLyB0b051bWJlciBjb252ZXJzaW9uIGlmIGl0IGNh
biBiZSBkb25lIHdpdGhvdXQgc2lkZSBlZmZlY3RzLgogICAgIHN0ZDo6b3B0aW9uYWw8ZG91Ymxl
PiB0b051bWJlckZyb21QcmltaXRpdmUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCmluZGV4IDIzZDNiMjYuLjNhZWUwYzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxp
bmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGlu
ZXMuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkpTUHJveHkuaCIKICNpbmNsdWRlICJK
U1N0cmluZ0lubGluZXMuaCIKICNpbmNsdWRlICJNYXRoQ29tbW9uLmgiCisjaW5jbHVkZSA8d3Rm
L1ZhcmlhbnQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKIG5hbWVzcGFj
ZSBKU0MgewpAQCAtNzI4LDYgKzcyOSwyNiBAQCBBTFdBWVNfSU5MSU5FIGRvdWJsZSBKU1ZhbHVl
Ojp0b051bWJlcihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIHRvTnVtYmVyU2xv
d0Nhc2UoZXhlYyk7CiB9CiAKK0FMV0FZU19JTkxJTkUgVmFyaWFudDxKU0JpZ0ludCosIGRvdWJs
ZT4gSlNWYWx1ZTo6dG9OdW1lcmljKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICBpZiAo
aXNJbnQzMigpKQorICAgICAgICByZXR1cm4gYXNJbnQzMigpOworICAgIGlmIChpc0RvdWJsZSgp
KQorICAgICAgICByZXR1cm4gYXNEb3VibGUoKTsKKyAgICBpZiAoaXNCaWdJbnQoKSkKKyAgICAg
ICAgcmV0dXJuIGFzQmlnSW50KCp0aGlzKTsKKworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Cisg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIEpTVmFsdWUgcHJp
bVZhbHVlID0gdGhpcy0+dG9QcmltaXRpdmUoZXhlYywgUHJlZmVyTnVtYmVyKTsKKyAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCAwKTsKKyAgICBpZiAocHJpbVZhbHVlLmlzQmlnSW50KCkp
CisgICAgICAgIHJldHVybiBhc0JpZ0ludChwcmltVmFsdWUpOworICAgIGRvdWJsZSB2YWx1ZSA9
IHByaW1WYWx1ZS50b051bWJlcihleGVjKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCAwKTsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKIGlubGluZSBKU09iamVjdCogSlNWYWx1ZTo6
dG9PYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewogICAgIHJldHVybiBpc0NlbGwoKSA/
IGFzQ2VsbCgpLT50b09iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpIDog
dG9PYmplY3RTbG93Q2FzZShleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCmluZGV4IDEzNDlhZWMuLjQ5
NTU5MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlv
bnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgKQEAg
LTIzLDcgKzIzLDkgQEAKIAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkhlbHBlcnMuaCIKKyNpbmNsdWRlICJKU0JpZ0ludC5oIgogI2luY2x1ZGUgIkpTQ0pTVmFs
dWUuaCIKKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAt
MjU2LDYgKzI1OCwyOSBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUganNBZGQoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIEpTVmFsdWUgdjEsIEpTVmFsdWUgdjIpCiAgICAgcmV0dXJuIGpzQWRkU2xvd0Nh
c2UoY2FsbEZyYW1lLCB2MSwgdjIpOwogfQogCitBTFdBWVNfSU5MSU5FIEpTVmFsdWUganNNdWwo
RXhlY1N0YXRlKiBzdGF0ZSwgSlNWYWx1ZSB2MSwgSlNWYWx1ZSB2MikKK3sKKyAgICBWTSYgdm0g
PSBzdGF0ZS0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisKKyAgICBWYXJpYW50PEpTQmlnSW50KiwgZG91YmxlPiBsZWZ0TnVtZXJpYyA9IHYxLnRvTnVt
ZXJpYyhzdGF0ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBW
YXJpYW50PEpTQmlnSW50KiwgZG91YmxlPiByaWdodE51bWVyaWMgPSB2Mi50b051bWVyaWMoc3Rh
dGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBpZiAoV1RG
Ojpob2xkc19hbHRlcm5hdGl2ZTxKU0JpZ0ludCo+KGxlZnROdW1lcmljKSB8fCBXVEY6OmhvbGRz
X2FsdGVybmF0aXZlPEpTQmlnSW50Kj4ocmlnaHROdW1lcmljKSkgeworICAgICAgICBpZiAoV1RG
Ojpob2xkc19hbHRlcm5hdGl2ZTxKU0JpZ0ludCo+KGxlZnROdW1lcmljKSAmJiBXVEY6OmhvbGRz
X2FsdGVybmF0aXZlPEpTQmlnSW50Kj4ocmlnaHROdW1lcmljKSkKKyAgICAgICAgICAgIHJldHVy
biBKU0JpZ0ludDo6bXVsdGlwbHkoc3RhdGUsIFdURjo6Z2V0PEpTQmlnSW50Kj4obGVmdE51bWVy
aWMpLCBXVEY6OmdldDxKU0JpZ0ludCo+KHJpZ2h0TnVtZXJpYykpOworCisgICAgICAgIHRocm93
VHlwZUVycm9yKHN0YXRlLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJJbnZhbGlkIG1peCBvZiBCaWdJ
bnQgYW5kIG90aGVyIHR5cGUgaW4gbXVsdGlwbGljYXRpb24uIikpOworICAgICAgICByZXR1cm4g
eyB9OworICAgIH0KKworICAgIGRvdWJsZSBsZWZ0VmFsdWUgPSAgV1RGOjpnZXQ8ZG91YmxlPihs
ZWZ0TnVtZXJpYyk7CisgICAgZG91YmxlIHJpZ2h0VmFsdWUgPSAgV1RGOjpnZXQ8ZG91YmxlPihy
aWdodE51bWVyaWMpOworICAgIHJldHVybiBqc051bWJlcihsZWZ0VmFsdWUgKiByaWdodFZhbHVl
KTsKK30KKwogaW5saW5lIGJvb2wgc2NyaWJibGVGcmVlQ2VsbHMoKQogewogICAgIHJldHVybiAh
QVNTRVJUX0RJU0FCTEVEIHx8IE9wdGlvbnM6OnNjcmliYmxlRnJlZUNlbGxzKCk7Cg==
</data>
<flag name="commit-queue"
          id="358500"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>340242</attachid>
            <date>2018-05-11 20:53:10 -0700</date>
            <delta_ts>2018-05-11 21:32:18 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>big-int-times.diff</filename>
            <type>text/plain</type>
            <size>43704</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MzMxMTU4OC4uYzRhYWIyMCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxOC0wNS0xMCAgQ2FpbyBMaW1hICA8
dGljYWlvbGltYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTTmV4dF1bQmlnSW50XSBJbXBsZW1l
bnQgc3VwcG9ydCBmb3IgIioiIG9wZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtl
IFN1enVraS4KKworICAgICAgICAqIGJpZ0ludFRlc3RzLnlhbWw6CisgICAgICAgICogc3RyZXNz
L2JpZy1pbnQtbXVsLWppdC5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVs
LXRvLXByaW1pdGl2ZS1wcmVjZWRlbmNlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmln
LWludC1tdWwtdG8tcHJpbWl0aXZlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmlnLWlu
dC1tdWwtdHlwZS1lcnJvci5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2JpZy1pbnQtbXVs
LXdyYXBwZWQtdmFsdWUuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9iaWctaW50LW11bHRp
cGxpY2F0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvYmlnLWludC1tdWx0aXBseS1t
ZW1vcnktc3RyZXNzLmpzOiBBZGRlZC4KKwogMjAxOC0wNS0xMCAgTGVvIEJhbHRlciAgPGxlb25h
cmRvLmJhbHRlckBnbWFpbC5jb20+CiAKICAgICAgICAgVXBkYXRlIFRlc3QyNjIgdGVzdHMgdGhy
b3VnaCB0aGUgbmV3IGltcG9ydCBzY3JpcHQgLSAyMDE4MDUwOQpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9iaWdJbnRUZXN0cy55YW1sIGIvSlNUZXN0cy9iaWdJbnRUZXN0cy55YW1sCmluZGV4IDdhZTIy
Y2IuLmU5NDdkYzIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvYmlnSW50VGVzdHMueWFtbAorKysgYi9K
U1Rlc3RzL2JpZ0ludFRlc3RzLnlhbWwKQEAgLTk3LDMgKzk3LDI0IEBACiAtIHBhdGg6IHN0cmVz
cy9iaWctaW50LXRvLXN0cmluZy5qcwogICBjbWQ6IHJ1bkJpZ0ludEVuYWJsZWQKIAorLSBwYXRo
OiBzdHJlc3MvYmlnLWludC1tdWwtaml0LmpzCisgIGNtZDogcnVuQmlnSW50RW5hYmxlZAorCist
IHBhdGg6IHN0cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUtcHJlY2VkZW5jZS5qcworICBj
bWQ6IHJ1bkJpZ0ludEVuYWJsZWQKKworLSBwYXRoOiBzdHJlc3MvYmlnLWludC1tdWwtdG8tcHJp
bWl0aXZlLmpzCisgIGNtZDogcnVuQmlnSW50RW5hYmxlZAorCistIHBhdGg6IHN0cmVzcy9iaWct
aW50LW11bC10eXBlLWVycm9yLmpzCisgIGNtZDogcnVuQmlnSW50RW5hYmxlZAorCistIHBhdGg6
IHN0cmVzcy9iaWctaW50LW11bC13cmFwcGVkLXZhbHVlLmpzCisgIGNtZDogcnVuQmlnSW50RW5h
YmxlZAorCistIHBhdGg6IHN0cmVzcy9iaWctaW50LW11bHRpcGxpY2F0aW9uLmpzCisgIGNtZDog
cnVuQmlnSW50RW5hYmxlZAorCistIHBhdGg6IHN0cmVzcy9iaWctaW50LW11bHRpcGx5LW1lbW9y
eS1zdHJlc3MuanMKKyAgY21kOiBydW5CaWdJbnRFbmFibGVkCisKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL2JpZy1pbnQtbXVsLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVs
LWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2JlZGUzCi0tLSAv
ZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtaml0LmpzCkBAIC0wLDAg
KzEsMTkgQEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKK2xldCBhc3NlcnQgPSB7CisgICAgc2Ft
ZVZhbHVlOiBmdW5jdGlvbihpLCBlLCBtKSB7CisgICAgICAgIGlmIChpICE9PSBlKQorICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKG0pOworICAgIH0KK30KKworZnVuY3Rpb24gYmlnSW50TXVs
KHgsIHkpIHsKKyAgICByZXR1cm4geCAqIHk7Cit9Citub0lubGluZShiaWdJbnRNdWwpOworCitm
b3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsKKyAgICBsZXQgciA9IGJpZ0ludE11bCgz
biwgMTBuKTsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKHIsIDMwbiwgM24gKyAiICogIiArIDEwbiAr
ICIgPSAiICsgcik7Cit9CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVs
LXRvLXByaW1pdGl2ZS1wcmVjZWRlbmNlLmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwt
dG8tcHJpbWl0aXZlLXByZWNlZGVuY2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNzE0OWExOQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQt
bXVsLXRvLXByaW1pdGl2ZS1wcmVjZWRlbmNlLmpzCkBAIC0wLDAgKzEsMzkgQEAKKy8vQCBydW5C
aWdJbnRFbmFibGVkCisKK2Fzc2VydCA9IHsKKyAgICBzYW1lVmFsdWU6IGZ1bmN0aW9uIChpbnB1
dCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKKyAgICAgICAgaWYgKGlucHV0ICE9PSBleHBlY3RlZCkK
KyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTsKKyAgICB9Cit9OworCitmdW5j
dGlvbiB0ZXN0TXVsKHgsIHksIHosIG1lc3NhZ2UpIHsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKHgg
KiB5LCB6LCBtZXNzYWdlKTsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKHkgKiB4LCB6LCBtZXNzYWdl
KTsKK30KKwordGVzdE11bChPYmplY3QoMm4pLCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogdW5ib3gg
b2JqZWN0IHdpdGggaW50ZXJuYWwgc2xvdCIpOworCitsZXQgbyA9IHsKKyAgICBbU3ltYm9sLnRv
UHJpbWl0aXZlXTogZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiAybjsKKyAgICB9LAorICAg
IHZhbHVlT2Y6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGQg
bmV2ZXIgZXhlY3V0ZSBpdCIpOworICAgIH0sCisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGQgbmV2ZXIgZXhlY3V0ZSBpdCIpOworICAg
IH0KK307Cit0ZXN0TXVsKG8sIDFuLCAybiwgIlRvUHJpbWl0aXZlOiBAQHRvUHJpbWl0aXZlIik7
CisKK28gPSB7CisgICAgdmFsdWVPZjogZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiAybjsK
KyAgICB9LAorICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7CisgICAgICAgIHRocm93IG5ldyBF
cnJvcigiU2hvdWxkIG5ldmVyIGV4ZWN1dGUgaXQiKTsKKyAgICB9Cit9OwordGVzdE11bChvLCAx
biwgMm4sICJUb1ByaW1pdGl2ZTogdmFsdWVPZiIpOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9iaWctaW50LW11bC10by1wcmltaXRpdmUuanMgYi9KU1Rlc3RzL3N0cmVzcy9iaWctaW50
LW11bC10by1wcmltaXRpdmUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NjQyZTJlOAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXRv
LXByaW1pdGl2ZS5qcwpAQCAtMCwwICsxLDM1IEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCitm
dW5jdGlvbiBhc3NlcnQoYSkgeworICAgIGlmICghYSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJCYWQgYXNzZXJ0aW9uIik7Cit9CisKK2Fzc2VydC5zYW1lVmFsdWUgPSBmdW5jdGlvbiAoaW5w
dXQsIGV4cGVjdGVkLCBtZXNzYWdlKSB7CisgICAgaWYgKGlucHV0ICE9PSBleHBlY3RlZCkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpOworfQorCitmdW5jdGlvbiB0ZXN0TXVsKHgs
IHksIHopIHsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKHggKiB5LCB6LCB4ICsgIiAqICIgKyB5ICsg
IiA9ICIgKyB6KTsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKHkgKiB4LCB6LCB5ICsgIiAqICIgKyB4
ICsgIiA9ICIgKyB6KTsKK30KKworbGV0IG8gPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06
IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDMwMDAwMDAwMDAwMDAwMG47IH0KK30KKwordGVzdE11bCg1
MDAwMDAwMDAwMDA0MzhuLCBvLCAxNTAwMDAwMDAwMDAxMzE0MDAwMDAwMDAwMDAwMDBuKTsKKwor
by52YWx1ZU9mID0gZnVuY3Rpb24gKCkgeworICAgIHRocm93IG5ldyBFcnJvcigiU2hvdWxkIG5l
dmVyIGV4ZWN1dGUgaXQiKTsKK307CisKK3Rlc3RNdWwoNzAwMDAwMDAwMDAwNDM4biwgbywgMjEw
MDAwMDAwMDAwMTMxNDAwMDAwMDAwMDAwMDAwbik7CisKK28udG9TdHJpbmcgPSBmdW5jdGlvbiAo
KSB7CisgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGQgbmV2ZXIgZXhlY3V0ZSBpdCIpOworfTsK
KwordGVzdE11bCg3MDAwMDAwMDAwMDA0MzhuLCBvLCAyMTAwMDAwMDAwMDAxMzE0MDAwMDAwMDAw
MDAwMDBuKTsKKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtdHlwZS1l
cnJvci5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXR5cGUtZXJyb3IuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjUxNzg0NQotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsLXR5cGUtZXJyb3IuanMKQEAgLTAsMCArMSwxMDYg
QEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKK2Z1bmN0aW9uIGFzc2VydChhLCBtZXNzYWdlKSB7
CisgICAgaWYgKCFhKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7Cit9CisKK2Z1
bmN0aW9uIGFzc2VydFRocm93VHlwZUVycm9yKGEsIGIsIG1lc3NhZ2UpIHsKKyAgICB0cnkgewor
ICAgICAgICBsZXQgbiA9IGEgKiBiOworICAgICAgICBhc3NlcnQoZmFsc2UsIG1lc3NhZ2UgKyAi
OiBTaG91bGQgdGhyb3cgVHlwZUVycm9yLCBidXQgZXhlY3V0ZWQgd2l0aG91dCBleGNlcHRpb24i
KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGFzc2VydChlIGluc3RhbmNlb2YgVHlwZUVy
cm9yLCBtZXNzYWdlICsgIjogZXhwZWN0ZWQgVHlwZUVycm9yLCBnb3Q6ICIgKyBlKTsKKyAgICB9
Cit9CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgImZvbyIsICJCaWdJbnQgKiBTdHJpbmci
KTsKK2Fzc2VydFRocm93VHlwZUVycm9yKCJiYXIiLCAxODc1NzM4Mjk4NDgyMW4sICJTdHJpbmcg
KiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgU3ltYm9sKCJmb28iKSwgIkJp
Z0ludCAqIFN5bWJvbCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoU3ltYm9sKCJiYXIiKSwgMTg3
NTczODI5ODQ4MjFuLCAiU3ltYm9sICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigz
MG4sIDMzMjAsICJCaWdJbnQgKiBJbnQzMiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzMyNTYs
IDE4NzU3MzgyOTg0ODIxbiwgIkludDMyICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJv
cigzMG4sIDAuNTQzLCAiQmlnSW50ICogRG91YmxlIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigy
MzAuMTkyOTMsIDE4NzU3MzgyOTg0ODIxbiwgIkRvdWJsZSAqIEJpZ0ludCIpOworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IoMzBuLCBOYU4sICJCaWdJbnQgKiBOYU4iKTsKK2Fzc2VydFRocm93VHlwZUVy
cm9yKE5hTiwgMTg3NTczODI5ODQ4MjFuLCAiTmFOICogQmlnSW50Iik7Cithc3NlcnRUaHJvd1R5
cGVFcnJvcigzMG4sIE5hTiwgIkJpZ0ludCAqIE5hTiIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3Io
TmFOLCAxODc1NzM4Mjk4NDgyMW4sICJOYU4gKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVy
cm9yKDMwbiwgK0luZmluaXR5LCAiQmlnSW50ICogTmFOIik7Cithc3NlcnRUaHJvd1R5cGVFcnJv
cigrSW5maW5pdHksIDE4NzU3MzgyOTg0ODIxbiwgIk5hTiAqIEJpZ0ludCIpOworYXNzZXJ0VGhy
b3dUeXBlRXJyb3IoMzBuLCAtSW5maW5pdHksICJCaWdJbnQgKiAtSW5maW5pdHkiKTsKK2Fzc2Vy
dFRocm93VHlwZUVycm9yKC1JbmZpbml0eSwgMTg3NTczODI5ODQ4MjFuLCAiLUluZmluaXR5ICog
QmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG51bGwsICJCaWdJbnQgKiBudWxs
Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihudWxsLCAxODc1NzM4Mjk4NDgyMW4sICJudWxsICog
QmlnSW50Iik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIHVuZGVmaW5lZCwgIkJpZ0ludCAq
IHVuZGVmaW5lZCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IodW5kZWZpbmVkLCAxODc1NzM4Mjk4
NDgyMW4sICJ1bmRlZmluZWQgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwg
dHJ1ZSwgIkJpZ0ludCAqIHRydWUiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKHRydWUsIDE4NzU3
MzgyOTg0ODIxbiwgInRydWUgKiBCaWdJbnQiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwg
ZmFsc2UsICJCaWdJbnQgKiBmYWxzZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoZmFsc2UsIDE4
NzU3MzgyOTg0ODIxbiwgImZhbHNlICogQmlnSW50Iik7CisKKy8vIEVycm9yIHdoZW4gcmV0dXJu
aW5nIGZyb20gb2JqZWN0CisKK2xldCBvID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uICgpIHsg
cmV0dXJuIFN5bWJvbCgiRm9vIik7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwg
bywgIkJpZ0ludCAqIE9iamVjdC52YWx1ZU9mIHJldHVybmluZyBTeW1ib2wiKTsKK2Fzc2VydFRo
cm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC52YWx1ZU9mIHJldHVybmlu
ZyBTeW1ib2wgKiBCaWdJbnQiKTsKKworbyA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7
IHJldHVybiAzMzI1NjsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmln
SW50ICogT2JqZWN0LnZhbHVlT2YgcmV0dXJuaW5nIEludDMyIik7Cithc3NlcnRUaHJvd1R5cGVF
cnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QudmFsdWVPZiByZXR1cm5pbmcgSW50MzIg
KiBCaWdJbnQiKTsKKworbyA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7IHJldHVybiAw
LjQ1MzsgfQorfTsKKworYXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2Jq
ZWN0LnZhbHVlT2YgcmV0dXJuaW5nIERvdWJsZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3Iobywg
MTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LnZhbHVlT2YgcmV0dXJuaW5nIERvdWJsZSAqIEJpZ0lu
dCIpOworCitvID0geworICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7IHJldHVybiBTeW1ib2wo
IkZvbyIpOyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJbnQgKiBP
YmplY3QudG9TdHJpbmcgcmV0dXJuaW5nIFN5bWJvbCIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3Io
bywgMTg3NTczODI5ODQ4MjFuLCAiT2JqZWN0LnRvU3RyaW5nIHJldHVybmluZyBTeW1ib2wgKiBC
aWdJbnQiKTsKKworbyA9IHsKKyAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgeyByZXR1cm4gMzMy
NTY7IH0KK307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVj
dC50b1N0cmluZyByZXR1cm5pbmcgSW50MzIiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4
NzU3MzgyOTg0ODIxbiwgIk9iamVjdC50b1N0cmluZyByZXR1cm5pbmcgSW50MzIgKiBCaWdJbnQi
KTsKKworbyA9IHsKKyAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgeyByZXR1cm4gMC40NTM7IH0K
K307CisKK2Fzc2VydFRocm93VHlwZUVycm9yKDMwbiwgbywgIkJpZ0ludCAqIE9iamVjdC50b1N0
cmluZyByZXR1cm5pbmcgRG91YmxlIik7Cithc3NlcnRUaHJvd1R5cGVFcnJvcihvLCAxODc1NzM4
Mjk4NDgyMW4sICJPYmplY3QudG9TdHJpbmcgcmV0dXJuaW5nIERvdWJsZSAqIEJpZ0ludCIpOwor
CitvID0geworICAgIFtTeW1ib2wudG9QcmltaXRpdmVdOiBmdW5jdGlvbiAoKSB7IHJldHVybiBT
eW1ib2woIkZvbyIpOyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVFcnJvcigzMG4sIG8sICJCaWdJ
bnQgKiBPYmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcgU3ltYm9sIik7Cithc3NlcnRUaHJv
d1R5cGVFcnJvcihvLCAxODc1NzM4Mjk4NDgyMW4sICJPYmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1
cm5pbmcgU3ltYm9sICogQmlnSW50Iik7CisKK28gPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2
ZV06IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDMzMjU2OyB9Cit9OworCithc3NlcnRUaHJvd1R5cGVF
cnJvcigzMG4sIG8sICJCaWdJbnQgKiBPYmplY3QuQEB0b1ByaW1pdGl2ZSByZXR1cm5pbmcgSW50
MzIiKTsKK2Fzc2VydFRocm93VHlwZUVycm9yKG8sIDE4NzU3MzgyOTg0ODIxbiwgIk9iamVjdC5A
QHRvUHJpbWl0aXZlIHJldHVybmluZyBJbnQzMiAqIEJpZ0ludCIpOworCitvID0geworICAgIFtT
eW1ib2wudG9QcmltaXRpdmVdOiBmdW5jdGlvbiAoKSB7IHJldHVybiAwLjQ1MzsgfQorfTsKKwor
YXNzZXJ0VGhyb3dUeXBlRXJyb3IoMzBuLCBvLCAiQmlnSW50ICogT2JqZWN0LkBAdG9QcmltaXRp
dmUgcmV0dXJuaW5nIERvdWJsZSIpOworYXNzZXJ0VGhyb3dUeXBlRXJyb3IobywgMTg3NTczODI5
ODQ4MjFuLCAiT2JqZWN0LkBAdG9QcmltaXRpdmUgcmV0dXJuaW5nIERvdWJsZSAqIEJpZ0ludCIp
OworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9iaWctaW50LW11bC13cmFwcGVkLXZhbHVl
LmpzIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtd3JhcHBlZC12YWx1ZS5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjczZDhhCi0tLSAvZGV2L251bGwKKysrIGIv
SlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWwtd3JhcHBlZC12YWx1ZS5qcwpAQCAtMCwwICsxLDM3
IEBACisvL0AgcnVuQmlnSW50RW5hYmxlZAorCithc3NlcnQgPSB7CisgICAgc2FtZVZhbHVlOiBm
dW5jdGlvbiAoaW5wdXQsIGV4cGVjdGVkLCBtZXNzYWdlKSB7CisgICAgICAgIGlmIChpbnB1dCAh
PT0gZXhwZWN0ZWQpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7CisgICAg
fQorfTsKKworZnVuY3Rpb24gdGVzdE11bCh4LCB5LCB6LCBtZXNzYWdlKSB7CisgICAgYXNzZXJ0
LnNhbWVWYWx1ZSh4ICogeSwgeiwgbWVzc2FnZSk7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh5ICog
eCwgeiwgbWVzc2FnZSk7Cit9CisKK3Rlc3RNdWwoT2JqZWN0KDJuKSwgMW4sIDJuLCAiVG9Qcmlt
aXRpdmU6IHVuYm94IG9iamVjdCB3aXRoIGludGVybmFsIHNsb3QiKTsKKworbGV0IG8gPSB7Cisg
ICAgW1N5bWJvbC50b1ByaW1pdGl2ZV06IGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gMm47
CisgICAgfQorfTsKK3Rlc3RNdWwobywgMW4sIDJuLCAiVG9QcmltaXRpdmU6IEBAdG9QcmltaXRp
dmUiKTsKKworbyA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJu
IDJuOworICAgIH0KK307Cit0ZXN0TXVsKG8sIDFuLCAybiwgIlRvUHJpbWl0aXZlOiB2YWx1ZU9m
Iik7CisKK28gPSB7CisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4g
Mm47CisgICAgfQorfQordGVzdE11bChvLCAxbiwgMm4sICJUb1ByaW1pdGl2ZTogdG9TdHJpbmci
KTsKKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0aXBsaWNhdGlvbi5q
cyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbGljYXRpb24uanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VjZDYzNgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVz
dHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbGljYXRpb24uanMKQEAgLTAsMCArMSw4MyBAQAorLy9A
IHJ1bkJpZ0ludEVuYWJsZWQKKworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFJvYmluIFRlbXBsZXRv
bi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUg
QlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworYXNzZXJ0ID0geworICAg
IHNhbWVWYWx1ZTogZnVuY3Rpb24gKGlucHV0LCBleHBlY3RlZCwgbWVzc2FnZSkgeworICAgIGlm
IChpbnB1dCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTsK
KyAgICB9Cit9OworCitmdW5jdGlvbiB0ZXN0TXVsKHgsIHksIHopIHsKKyAgICBhc3NlcnQuc2Ft
ZVZhbHVlKHggKiB5LCB6LCB4ICsgIiAqICIgKyB5ICsgIiA9ICIgKyB6KTsKKyAgICBhc3NlcnQu
c2FtZVZhbHVlKHkgKiB4LCB6LCB5ICsgIiAqICIgKyB4ICsgIiA9ICIgKyB6KTsKK30KKwordGVz
dE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweEZFRENCQTk4NzY1NDMyMTBuLCAweEZEQkFDMDk3
QzhEQzVBQ0NERUVDNkNEN0E0NEE0MTAwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4s
IDB4RkVEQ0JBOThuLCAweEZEQkFDMDk3NTMwRUNBODY1NDFENTk4MG4pOwordGVzdE11bCgweEZF
RENCQTk4NzY1NDMyMTBuLCAweDEyMzRuLCAweDEyMUY0OUY0OUY0OUY0OUY0QjQwbik7Cit0ZXN0
TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIDB4M24sIDB4MkZDOTYyRkM5NjJGQzk2MzBuKTsKK3Rl
c3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHgybiwgMHgxRkRCOTc1MzBFQ0E4NjQyMG4pOwor
dGVzdE11bCgweEZFRENCQTk4NzY1NDMyMTBuLCAweDFuLCAweEZFRENCQTk4NzY1NDMyMTBuKTsK
K3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQzMjEwbiwgMHgwbiwgMHgwbik7Cit0ZXN0TXVsKDB4RkVE
Q0JBOTg3NjU0MzIxMG4sIEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3
MjAiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIEJpZ0ludCgiLTIiKSwgQmlnSW50
KCItMzY3Mjk1MTcwODg5ODYxMjk0NDAiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4s
IEJpZ0ludCgiLTMiKSwgQmlnSW50KCItNTUwOTQyNzU2MzM0NzkxOTQxNjAiKSk7Cit0ZXN0TXVs
KDB4RkVEQ0JBOTg3NjU0MzIxMG4sIEJpZ0ludCgiLTQ2NjAiKSwgQmlnSW50KCItODU1Nzk3NzQ4
MTczMzc2ODE1OTUyMDAiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIxMG4sIEJpZ0ludCgi
LTQyNzU4Nzg1NTEiKSwgQmlnSW50KCItNzg1MjU0NzcxNTQ2OTE4NzQ2MDQ1MDI4MjA3MjAiKSk7
Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4RkRC
QUMwOTdDOERDNUFDQUUxMzJGN0E2QjdBMURDRTFuKTsKK3Rlc3RNdWwoMHhGRURDQkE5ODc2NTQz
MjBGbiwgMHhGRURDQkE5N24sIDB4RkRCQUMwOTY1NDMyMEZFQ0RFRUM2Q0Q5bik7Cit0ZXN0TXVs
KDB4RkVEQ0JBOTg3NjU0MzIwRm4sIDB4M24sIDB4MkZDOTYyRkM5NjJGQzk2MkRuKTsKK3Rlc3RN
dWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgMHgybiwgMHgxRkRCOTc1MzBFQ0E4NjQxRW4pOwordGVz
dE11bCgweEZFRENCQTk4NzY1NDMyMEZuLCAweDFuLCAweEZFRENCQTk4NzY1NDMyMEZuKTsKK3Rl
c3RNdWwoMHhGRURDQkE5ODc2NTQzMjBGbiwgMHgwbiwgMHgwbik7Cit0ZXN0TXVsKDB4RkVEQ0JB
OTg3NjU0MzIwRm4sIEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MTki
KSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIEJpZ0ludCgiLTIiKSwgQmlnSW50KCIt
MzY3Mjk1MTcwODg5ODYxMjk0MzgiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4sIEJp
Z0ludCgiLTMiKSwgQmlnSW50KCItNTUwOTQyNzU2MzM0NzkxOTQxNTciKSk7Cit0ZXN0TXVsKDB4
RkVEQ0JBOTg3NjU0MzIwRm4sIEJpZ0ludCgiLTQyNzU4Nzg1NTEiKSwgQmlnSW50KCItNzg1MjU0
NzcxNTQ2OTE4NzQ2MDAyMjY5NDIxNjkiKSk7Cit0ZXN0TXVsKDB4RkVEQ0JBOTg3NjU0MzIwRm4s
IEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIEJpZ0ludCgiLTMzNzI2NDM1NjM5NzUz
MTAyODk3NjYwODI4OTYzMzYxNTYxMzY4MCIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIDB4RkVE
Q0JBOThuLCAweEZEQkFDMDk2REQ0MTNBNDBuKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIDB4MTIz
NG4sIDB4MTIxRjQ5RjQ5NkUwbik7Cit0ZXN0TXVsKDB4RkVEQ0JBOThuLCAweDNuLCAweDJGQzk2
MkZDOG4pOwordGVzdE11bCgweEZFRENCQTk4biwgMHgybiwgMHgxRkRCOTc1MzBuKTsKK3Rlc3RN
dWwoMHhGRURDQkE5OG4sIDB4MW4sIDB4RkVEQ0JBOThuKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4s
IDB4MG4sIDB4MG4pOwordGVzdE11bCgweEZFRENCQTk4biwgQmlnSW50KCItMSIpLCBCaWdJbnQo
Ii00Mjc1ODc4NTUyIikpOwordGVzdE11bCgweEZFRENCQTk4biwgQmlnSW50KCItMiIpLCBCaWdJ
bnQoIi04NTUxNzU3MTA0IikpOwordGVzdE11bCgweEZFRENCQTk4biwgQmlnSW50KCItMyIpLCBC
aWdJbnQoIi0xMjgyNzYzNTY1NiIpKTsKK3Rlc3RNdWwoMHhGRURDQkE5OG4sIEJpZ0ludCgiLTQy
NzU4Nzg1NTEiKSwgQmlnSW50KCItMTgyODMxMzczODcxNzc3MzgxNTIiKSk7Cit0ZXN0TXVsKDB4
RkVEQ0JBOThuLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpLCBCaWdJbnQoIi03ODUy
NTQ3NzE3MzA1NjYzMzE0ODk5NTg4NTQ0MCIpKTsKK3Rlc3RNdWwoMHgzbiwgMHgzbiwgMHg5bik7
Cit0ZXN0TXVsKDB4M24sIDB4Mm4sIDB4Nm4pOwordGVzdE11bCgweDNuLCAweDFuLCAweDNuKTsK
K3Rlc3RNdWwoMHgzbiwgMHgwbiwgMHgwbik7Cit0ZXN0TXVsKDB4M24sIEJpZ0ludCgiLTEiKSwg
QmlnSW50KCItMyIpKTsKK3Rlc3RNdWwoMHgzbiwgQmlnSW50KCItMiIpLCBCaWdJbnQoIi02Iikp
OwordGVzdE11bCgweDNuLCBCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTkiKSk7Cit0ZXN0TXVsKDB4
M24sIEJpZ0ludCgiLTQ2NjAiKSwgQmlnSW50KCItMTM5ODAiKSk7Cit0ZXN0TXVsKDB4M24sIEJp
Z0ludCgiLTQyNzU4Nzg1NTIiKSwgQmlnSW50KCItMTI4Mjc2MzU2NTYiKSk7Cit0ZXN0TXVsKDB4
M24sIEJpZ0ludCgiLTE4MzY0NzU4NTQ0NDkzMDY0NzIwIiksIEJpZ0ludCgiLTU1MDk0Mjc1NjMz
NDc5MTk0MTYwIikpOwordGVzdE11bCgweDBuLCAweDBuLCAweDBuKTsKK3Rlc3RNdWwoMHgwbiwg
QmlnSW50KCItMSIpLCAweDBuKTsKK3Rlc3RNdWwoMHgwbiwgQmlnSW50KCItMiIpLCAweDBuKTsK
K3Rlc3RNdWwoMHgwbiwgQmlnSW50KCItMyIpLCAweDBuKTsKK3Rlc3RNdWwoMHgwbiwgQmlnSW50
KCItNDI3NTg3ODU1MSIpLCAweDBuKTsKK3Rlc3RNdWwoMHgwbiwgQmlnSW50KCItMTgzNjQ3NTg1
NDQ0OTMwNjQ3MTkiKSwgMHgwbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTEiKSwgQmlnSW50KCItMSIp
LCAweDFuKTsKK3Rlc3RNdWwoQmlnSW50KCItMSIpLCBCaWdJbnQoIi0yIiksIDB4Mm4pOwordGVz
dE11bChCaWdJbnQoIi0xIiksIEJpZ0ludCgiLTMiKSwgMHgzbik7Cit0ZXN0TXVsKEJpZ0ludCgi
LTEiKSwgQmlnSW50KCItNDY2MCIpLCAweDEyMzRuKTsKK3Rlc3RNdWwoQmlnSW50KCItMSIpLCBC
aWdJbnQoIi00Mjc1ODc4NTUxIiksIDB4RkVEQ0JBOTduKTsKK3Rlc3RNdWwoQmlnSW50KCItMSIp
LCBCaWdJbnQoIi00Mjc1ODc4NTUyIiksIDB4RkVEQ0JBOThuKTsKK3Rlc3RNdWwoQmlnSW50KCIt
MSIpLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcxOSIpLCAweEZFRENCQTk4NzY1NDMyMEZu
KTsKK3Rlc3RNdWwoQmlnSW50KCItMSIpLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIp
LCAweEZFRENCQTk4NzY1NDMyMTBuKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi0z
IiksIDB4OW4pOwordGVzdE11bChCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTQ2NjAiKSwgMHgzNjlD
bik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwgQmlnSW50KCItNDI3NTg3ODU1MSIpLCAweDJGQzk2
MkZDNW4pOwordGVzdE11bChCaWdJbnQoIi0zIiksIEJpZ0ludCgiLTQyNzU4Nzg1NTIiKSwgMHgy
RkM5NjJGQzhuKTsKK3Rlc3RNdWwoQmlnSW50KCItMyIpLCBCaWdJbnQoIi0xODM2NDc1ODU0NDQ5
MzA2NDcxOSIpLCAweDJGQzk2MkZDOTYyRkM5NjJEbik7Cit0ZXN0TXVsKEJpZ0ludCgiLTMiKSwg
QmlnSW50KCItMTgzNjQ3NTg1NDQ0OTMwNjQ3MjAiKSwgMHgyRkM5NjJGQzk2MkZDOTYzMG4pOwor
dGVzdE11bChCaWdJbnQoIi0xODM2NDc1ODU0NDQ5MzA2NDcyMCIpLCBCaWdJbnQoIi0xODM2NDc1
ODU0NDQ5MzA2NDcyMCIpLCAweEZEQkFDMDk3QzhEQzVBQ0NERUVDNkNEN0E0NEE0MTAwbik7CisK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbHktbWVtb3J5LXN0cmVz
cy5qcyBiL0pTVGVzdHMvc3RyZXNzL2JpZy1pbnQtbXVsdGlwbHktbWVtb3J5LXN0cmVzcy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYWJhYTdlCi0tLSAvZGV2L251bGwK
KysrIGIvSlNUZXN0cy9zdHJlc3MvYmlnLWludC1tdWx0aXBseS1tZW1vcnktc3RyZXNzLmpzCkBA
IC0wLDAgKzEsMTUgQEAKKy8vQCBydW5CaWdJbnRFbmFibGVkCisKK2Z1bmN0aW9uIGFzc2VydChh
KSB7CisgICAgaWYgKCFhKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBhc3NlcnRpb24i
KTsKK30KKworbGV0IGEgPSAwbjsKK2xldCBiID0gMW47Citmb3IgKGxldCBpID0gMDsgaSA8IDEw
MDAwMDA7IGkrKykgeworICAgIGEgPSBiICogMzBuOworfQorCithc3NlcnQoYSA9PT0gMzBuKTsK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggMjcwZDk1Mi4uODc4YzlkNiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTgtMDUtMDEgIENhaW8gTGltYSAg
PHRpY2Fpb2xpbWFAZ21haWwuY29tPgorCisgICAgICAgIFtFU05leHRdW0JpZ0ludF0gSW1wbGVt
ZW50IHN1cHBvcnQgZm9yICIqIiBvcGVyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzcyMQorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3Vr
ZSBTdXp1a2kuCisKKyAgICAgICAgQWRkZWQgQmlnSW50IHN1cHBvcnQgaW50byB0aW1lcyBiaW5h
cnkgb3BlcmF0b3IgaW50byBMTEludCBhbmQgb24KKyAgICAgICAgSklUT3BlcmF0aW9ucyBwcm9m
aWxlZE11bCBhbmQgdW5wcm9maWxlZE11bC4gV2UgYXJlIGFsc28gcmVwbGFjaW5nIGFsbAorICAg
ICAgICB1c2VzIG9mIGludCB0byB1bnNpZ25lZCB3aGVuIHRoZXJlIGlzIG5vIG5lZ2F0aXZlIHZh
bHVlcyBmb3IKKyAgICAgICAgdmFyaWFibGVzLgorCisgICAgICAgICogZGZnL0RGR0NvbnN0YW50
Rm9sZGluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFz
ZTo6Zm9sZENvbnN0YW50cyk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAg
ICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6U0xPV19Q
QVRIX0RFQ0wpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuY3BwOgorICAgICAgICAoSlND
OjpKU0JpZ0ludDo6SlNCaWdJbnQpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6YWxsb2NhdGlv
blNpemUpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aCk6CisgICAg
ICAgIChKU0M6OkpTQmlnSW50Ojp0b1N0cmluZyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojpt
dWx0aXBseSk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpkaWdpdERpdik6CisgICAgICAgIChK
U0M6OkpTQmlnSW50OjppbnRlcm5hbE11bHRpcGx5QWRkKToKKyAgICAgICAgKEpTQzo6SlNCaWdJ
bnQ6Om11bHRpcGx5QWNjdW11bGF0ZSk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjplcXVhbHMp
OgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6YWJzb2x1dGVEaXZTbWFsbCk6CisgICAgICAgIChK
U0M6OkpTQmlnSW50OjpjYWxjdWxhdGVNYXhpbXVtQ2hhcmFjdGVyc1JlcXVpcmVkKToKKyAgICAg
ICAgKEpTQzo6SlNCaWdJbnQ6OnRvU3RyaW5nR2VuZXJpYyk6CisgICAgICAgIChKU0M6OkpTQmln
SW50OjpyaWdodFRyaW0pOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6YWxsb2NhdGVGb3IpOgor
ICAgICAgICAoSlNDOjpKU0JpZ0ludDo6cGFyc2VJbnQpOgorICAgICAgICAoSlNDOjpKU0JpZ0lu
dDo6ZGlnaXQpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6c2V0RGlnaXQpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNCaWdJbnQuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTVmFs
dWU6OnRvTnVtZXJpYyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6Cisg
ICAgICAgIChKU0M6OmpzTXVsKToKKwogMjAxOC0wNS0xMCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9A
YXBwbGUuY29tPgogCiAgICAgICAgIERGRyBDRkEgc2hvdWxkIHBpY2sgdGhlIHJpZ2h0IHRpbWUg
dG8gaW5qZWN0IE9TUiBlbnRyeSBkYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCmluZGV4IGYwNGNjNjguLmZiYWVmZjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5n
UGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xk
aW5nUGhhc2UuY3BwCkBAIC0xNDgsMTQgKzE0OCwxNCBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgICAgICBKU1ZhbHVlIGNoaWxkMkNvbnN0YW50ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNo
aWxkMigpLm5vZGUoKSkudmFsdWUoKTsKIAogICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
UmV2aXNpdCB0aGlzIGNvbmRpdGlvbiB3aGVuIGludHJvZHVjaW5nIEJpZ0ludCB0byBKU0MuCi0g
ICAgICAgICAgICAgICAgICAgIGF1dG8gaXNOb25TdHJpbmdDZWxsQ29uc3RhbnQgPSBbXSAoSlNW
YWx1ZSB2YWx1ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlICYmIHZh
bHVlLmlzQ2VsbCgpICYmICF2YWx1ZS5pc1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICBh
dXRvIGlzTm9uU3RyaW5nT3JCaWdJbnRDZWxsQ29uc3RhbnQgPSBbXSAoSlNWYWx1ZSB2YWx1ZSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlICYmIHZhbHVlLmlzQ2VsbCgp
ICYmICF2YWx1ZS5pc1N0cmluZygpICYmICF2YWx1ZS5pc0JpZ0ludCgpOwogICAgICAgICAgICAg
ICAgICAgICB9OwogCi0gICAgICAgICAgICAgICAgICAgIGlmIChpc05vblN0cmluZ0NlbGxDb25z
dGFudChjaGlsZDFDb25zdGFudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzTm9uU3Ry
aW5nT3JCaWdJbnRDZWxsQ29uc3RhbnQoY2hpbGQxQ29uc3RhbnQpKSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9Db21wYXJlRXFQdHIobV9ncmFwaC5mcmVlemVTdHJv
bmcoY2hpbGQxQ29uc3RhbnQuYXNDZWxsKCkpLCBub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IGlmIChpc05vblN0cmluZ0NlbGxDb25zdGFudChjaGlsZDJDb25zdGFudCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChpc05vblN0cmluZ09yQmlnSW50Q2VsbENvbnN0YW50KGNo
aWxkMkNvbnN0YW50KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y29udmVydFRv
Q29tcGFyZUVxUHRyKG1fZ3JhcGguZnJlZXplU3Ryb25nKGNoaWxkMkNvbnN0YW50LmFzQ2VsbCgp
KSwgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRy
dWU7CiAgICAgICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuY3BwCmluZGV4IDM2NWJiNzMuLmIyODhkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMjU1NCwyMSArMjU1NCwxNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkTm9PcHRpbWl6ZShF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
KTsKIH0KIAotQUxXQVlTX0lOTElORSBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgdW5wcm9maWxlZE11
bChWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKK0FMV0FZU19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIHVucHJvZmlsZWRNdWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQogewotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkT3AxKTsKICAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3Ay
KTsKIAotICAgIGRvdWJsZSBhID0gb3AxLnRvTnVtYmVyKGV4ZWMpOwotICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIHNjb3BlLnJlbGVhc2UoKTsK
LSAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKGEgKiBiKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc011
bChleGVjLCBvcDEsIG9wMikpOwogfQogCi1BTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBwcm9maWxlZE11bChWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQXJpdGhQcm9maWxlJiBhcml0
aFByb2ZpbGUsIGJvb2wgc2hvdWxkT2JzZXJ2ZUxIU0FuZFJIU1R5cGVzID0gdHJ1ZSkKK0FMV0FZ
U19JTkxJTkUgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHByb2ZpbGVkTXVsKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwg
QXJpdGhQcm9maWxlJiBhcml0aFByb2ZpbGUsIGJvb2wgc2hvdWxkT2JzZXJ2ZUxIU0FuZFJIU1R5
cGVzID0gdHJ1ZSkKIHsKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkT3AxKTsKICAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkT3AyKTsKQEAgLTI1NzYsMTIgKzI1NzIsOCBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBwcm9maWxlZE11bChWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZAog
ICAgIGlmIChzaG91bGRPYnNlcnZlTEhTQW5kUkhTVHlwZXMpCiAgICAgICAgIGFyaXRoUHJvZmls
ZS5vYnNlcnZlTEhTQW5kUkhTKG9wMSwgb3AyKTsKIAotICAgIGRvdWJsZSBhID0gb3AxLnRvTnVt
YmVyKGV4ZWMpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNNdWwoZXhlYywgb3AxLCBvcDIpOwog
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIGRv
dWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIAotICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1i
ZXIoYSAqIGIpOwogICAgIGFyaXRoUHJvZmlsZS5vYnNlcnZlUmVzdWx0KHJlc3VsdCk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQpAQCAtMjU5MSw3ICsyNTgzLDcgQEAg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bChFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGUKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBO
YXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKIAotICAgIHJldHVybiB1bnBy
b2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CisgICAgcmV0dXJu
IHVucHJvZmlsZWRNdWwoZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CiB9CiAKIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxOb09wdGltaXplKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMiwgSklUTXVsSUMqKQpAQCAtMjU5OSw3ICsyNTkxLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bE5vT3B0aW1pemUoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGUKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKIAotICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKCp2bSwg
ZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CisgICAgcmV0dXJuIHVucHJvZmlsZWRNdWwo
ZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMik7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEpJVE11bElD
KiBtdWxJQykKQEAgLTI2MTYsNyArMjYwOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmFsdWVNdWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKCiAg
ICAgZXhlYy0+Y29kZUJsb2NrKCktPmR1bXBNYXRoSUNTdGF0cygpOwogI2VuZGlmCiAKLSAgICBy
ZXR1cm4gdW5wcm9maWxlZE11bCgqdm0sIGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwor
ICAgIHJldHVybiB1bnByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRPcDIpOwog
fQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmls
ZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyLCBBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSkKQEAgLTI2MjUsNyAr
MjYxNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQ
cm9maWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKCiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgZXhlYyk7CiAKICAgICBBU1NFUlQoYXJpdGhQcm9maWxlKTsKLSAgICBy
ZXR1cm4gcHJvZmlsZWRNdWwoKnZtLCBleGVjLCBlbmNvZGVkT3AxLCBlbmNvZGVkT3AyLCAqYXJp
dGhQcm9maWxlKTsKKyAgICByZXR1cm4gcHJvZmlsZWRNdWwoZXhlYywgZW5jb2RlZE9wMSwgZW5j
b2RlZE9wMiwgKmFyaXRoUHJvZmlsZSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgSklUTXVs
SUMqIG11bElDKQpAQCAtMjY0Myw3ICsyNjM1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLAog
ICAgIGV4ZWMtPmNvZGVCbG9jaygpLT5kdW1wTWF0aElDU3RhdHMoKTsKICNlbmRpZgogCi0gICAg
cmV0dXJuIHByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFy
aXRoUHJvZmlsZSwgZmFsc2UpOworICAgIHJldHVybiBwcm9maWxlZE11bChleGVjLCBlbmNvZGVk
T3AxLCBlbmNvZGVkT3AyLCAqYXJpdGhQcm9maWxlLCBmYWxzZSk7CiB9CiAKIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZE5vT3B0aW1pemUoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AyLCBKSVRNdWxJQyogbXVsSUMpCkBAIC0yNjUzLDcgKzI2NDUsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWROb09wdGltaXpl
KEV4ZWNTdGF0ZSogZXhlYwogCiAgICAgQXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBtdWxJ
Qy0+YXJpdGhQcm9maWxlKCk7CiAgICAgQVNTRVJUKGFyaXRoUHJvZmlsZSk7Ci0gICAgcmV0dXJu
IHByb2ZpbGVkTXVsKCp2bSwgZXhlYywgZW5jb2RlZE9wMSwgZW5jb2RlZE9wMiwgKmFyaXRoUHJv
ZmlsZSk7CisgICAgcmV0dXJuIHByb2ZpbGVkTXVsKGV4ZWMsIGVuY29kZWRPcDEsIGVuY29kZWRP
cDIsICphcml0aFByb2ZpbGUpOwogfQogCiBBTFdBWVNfSU5MSU5FIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSB1bnByb2ZpbGVkTmVnYXRlKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wZXJhbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
U2xvd1BhdGhzLmNwcAppbmRleCBhNTUwZmMwLi5hOGE1NjgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKQEAgLTY1LDYgKzY1LDcg
QEAKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKICNpbmNsdWRlICJUeXBlUHJvZmlsZXJM
b2cuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KKyNpbmNsdWRlIDx3dGYv
VmFyaWFudC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNDg4LDExICs0ODksOCBAQCBTTE9X
X1BBVEhfREVDTChzbG93X3BhdGhfbXVsKQogICAgIEJFR0lOKCk7CiAgICAgSlNWYWx1ZSBsZWZ0
ID0gT1BfQygyKS5qc1ZhbHVlKCk7CiAgICAgSlNWYWx1ZSByaWdodCA9IE9QX0MoMykuanNWYWx1
ZSgpOwotICAgIGRvdWJsZSBhID0gbGVmdC50b051bWJlcihleGVjKTsKLSAgICBpZiAoVU5MSUtF
TFkodGhyb3dTY29wZS5leGNlcHRpb24oKSkpCi0gICAgICAgIFJFVFVSTihKU1ZhbHVlKCkpOwot
ICAgIGRvdWJsZSBiID0gcmlnaHQudG9OdW1iZXIoZXhlYyk7Ci0gICAgSlNWYWx1ZSByZXN1bHQg
PSBqc051bWJlcihhICogYik7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc011bChleGVjLCBsZWZ0
LCByaWdodCk7CisgICAgQ0hFQ0tfRVhDRVBUSU9OKCk7CiAgICAgUkVUVVJOX1dJVEhfUFJPRklM
SU5HKHJlc3VsdCwgewogICAgICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JCaW5hcnlBcml0aE9w
KGV4ZWMsIHBjLCByZXN1bHQsIGxlZnQsIHJpZ2h0KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcAppbmRleCA1ZmFkMDhmLi5mZDhlOWFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCkBAIC02OCw3ICs2OCw3
IEBAIHZvaWQgSlNCaWdJbnQ6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRv
ciYgdmlzaXRvcikKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3Ip
OwogfQogCi1KU0JpZ0ludDo6SlNCaWdJbnQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
aW50IGxlbmd0aCkKK0pTQmlnSW50OjpKU0JpZ0ludChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0
dXJlLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCiAgICAgLCBt
X2xlbmd0aChsZW5ndGgpCiB7IH0KQEAgLTkyLDEzICs5MiwxMyBAQCBKU0JpZ0ludCogSlNCaWdJ
bnQ6OmNyZWF0ZVplcm8oVk0mIHZtKQogICAgIHJldHVybiB6ZXJvQmlnSW50OwogfQogCi1zaXpl
X3QgSlNCaWdJbnQ6OmFsbG9jYXRpb25TaXplKGludCBsZW5ndGgpCitzaXplX3QgSlNCaWdJbnQ6
OmFsbG9jYXRpb25TaXplKHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBzaXplX3Qgc2l6ZVdpdGhQ
YWRkaW5nID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mPHNpemVvZihzaXplX3QpPihzaXplb2Yo
SlNCaWdJbnQpKTsKICAgICByZXR1cm4gc2l6ZVdpdGhQYWRkaW5nICsgbGVuZ3RoICogc2l6ZW9m
KERpZ2l0KTsKIH0KIAotSlNCaWdJbnQqIEpTQmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoKFZNJiB2
bSwgaW50IGxlbmd0aCkKK0pTQmlnSW50KiBKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aChWTSYg
dm0sIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBKU0JpZ0ludCogYmlnSW50ID0gbmV3IChOb3RO
dWxsLCBhbGxvY2F0ZUNlbGw8SlNCaWdJbnQ+KHZtLmhlYXAsIGFsbG9jYXRpb25TaXplKGxlbmd0
aCkpKSBKU0JpZ0ludCh2bSwgdm0uYmlnSW50U3RydWN0dXJlLmdldCgpLCBsZW5ndGgpOwogICAg
IGJpZ0ludC0+ZmluaXNoQ3JlYXRpb24odm0pOwpAQCAtMjUwLDYgKzI1MCwyNiBAQCBpbmxpbmUg
dm9pZCBKU0JpZ0ludDo6aW5wbGFjZU11bHRpcGx5QWRkKHVpbnRwdHJfdCBmYWN0b3IsIHVpbnRw
dHJfdCBzdW1tYW5kKQogICAgIGludGVybmFsTXVsdGlwbHlBZGQodGhpcywgZmFjdG9yLCBzdW1t
YW5kLCBsZW5ndGgoKSwgdGhpcyk7CiB9CiAKK0pTQmlnSW50KiBKU0JpZ0ludDo6bXVsdGlwbHko
RXhlY1N0YXRlKiBzdGF0ZSwgSlNCaWdJbnQqIHgsIEpTQmlnSW50KiB5KQoreworICAgIFZNJiB2
bSA9IHN0YXRlLT52bSgpOworCisgICAgaWYgKHgtPmlzWmVybygpKQorICAgICAgICByZXR1cm4g
eDsKKyAgICBpZiAoeS0+aXNaZXJvKCkpCisgICAgICAgIHJldHVybiB5OworCisgICAgdW5zaWdu
ZWQgcmVzdWx0TGVuZ3RoID0geC0+bGVuZ3RoKCkgKyB5LT5sZW5ndGgoKTsKKyAgICBKU0JpZ0lu
dCogcmVzdWx0ID0gSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGgodm0sIHJlc3VsdExlbmd0aCk7
CisgICAgcmVzdWx0LT5pbml0aWFsaXplKEluaXRpYWxpemF0aW9uVHlwZTo6V2l0aFplcm8pOwor
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHgtPmxlbmd0aCgpOyBpKyspCisgICAgICAg
IG11bHRpcGx5QWNjdW11bGF0ZSh5LCB4LT5kaWdpdChpKSwgcmVzdWx0LCBpKTsKKworICAgIHJl
c3VsdC0+c2V0U2lnbih4LT5zaWduKCkgIT0geS0+c2lnbigpKTsKKyAgICByZXR1cm4gcmVzdWx0
LT5yaWdodFRyaW0odm0pOworfQorCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICNkZWZpbmUgSEFW
RV9UV09fRElHSVQgMQogdHlwZWRlZiB1aW50NjRfdCBUd29EaWdpdDsKQEAgLTM2Myw5ICszODMs
OSBAQCBpbmxpbmUgSlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdERpdihEaWdpdCBoaWdo
LCBEaWdpdCBsb3csIERpZ2l0IGRpdmlzb3IsCiAgICAgc3RhdGljIGNvbnN0IERpZ2l0IGtIYWxm
RGlnaXRCYXNlID0gMXVsbCA8PCBoYWxmRGlnaXRCaXRzOwogICAgIC8vIEFkYXB0ZWQgZnJvbSBX
YXJyZW4sIEhhY2tlcidzIERlbGlnaHQsIHAuIDE1Mi4KICNpZiBVU0UoSlNWQUxVRTY0KQotICAg
IGludCBzID0gY2x6NjQoZGl2aXNvcik7CisgICAgdW5zaWduZWQgcyA9IGNsejY0KGRpdmlzb3Ip
OwogI2Vsc2UKLSAgICBpbnQgcyA9IGNsejMyKGRpdmlzb3IpOworICAgIHVuc2lnbmVkIHMgPSBj
bHozMihkaXZpc29yKTsKICNlbmRpZgogICAgIGRpdmlzb3IgPDw9IHM7CiAgICAgCkBAIC00MDgs
MTQgKzQyOCwxNCBAQCBpbmxpbmUgSlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdERpdihE
aWdpdCBoaWdoLCBEaWdpdCBsb3csIERpZ2l0IGRpdmlzb3IsCiAKIC8vIE11bHRpcGxpZXMge3Nv
dXJjZX0gd2l0aCB7ZmFjdG9yfSBhbmQgYWRkcyB7c3VtbWFuZH0gdG8gdGhlIHJlc3VsdC4KIC8v
IHtyZXN1bHR9IGFuZCB7c291cmNlfSBtYXkgYmUgdGhlIHNhbWUgQmlnSW50IGZvciBpbnBsYWNl
IG1vZGlmaWNhdGlvbi4KLXZvaWQgSlNCaWdJbnQ6OmludGVybmFsTXVsdGlwbHlBZGQoSlNCaWdJ
bnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1tYW5kLCBpbnQgbiwgSlNCaWdJbnQq
IHJlc3VsdCkKK3ZvaWQgSlNCaWdJbnQ6OmludGVybmFsTXVsdGlwbHlBZGQoSlNCaWdJbnQqIHNv
dXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1tYW5kLCB1bnNpZ25lZCBuLCBKU0JpZ0ludCog
cmVzdWx0KQogewogICAgIEFTU0VSVChzb3VyY2UtPmxlbmd0aCgpID49IG4pOwogICAgIEFTU0VS
VChyZXN1bHQtPmxlbmd0aCgpID49IG4pOwogCiAgICAgRGlnaXQgY2FycnkgPSBzdW1tYW5kOwog
ICAgIERpZ2l0IGhpZ2ggPSAwOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7Cisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICBEaWdpdCBjdXJy
ZW50ID0gc291cmNlLT5kaWdpdChpKTsKICAgICAgICAgRGlnaXQgbmV3Q2FycnkgPSAwOwogCkBA
IC00NDMsNiArNDYzLDQ5IEBAIHZvaWQgSlNCaWdJbnQ6OmludGVybmFsTXVsdGlwbHlBZGQoSlNC
aWdJbnQqIHNvdXJjZSwgRGlnaXQgZmFjdG9yLCBEaWdpdCBzdW1tYW5kCiAgICAgICAgIEFTU0VS
VCghKGNhcnJ5ICsgaGlnaCkpOwogfQogCisvLyBNdWx0aXBsaWVzIHttdWx0aXBsaWNhbmR9IHdp
dGgge211bHRpcGxpZXJ9IGFuZCBhZGRzIHRoZSByZXN1bHQgdG8KKy8vIHthY2N1bXVsYXRvcn0s
IHN0YXJ0aW5nIGF0IHthY2N1bXVsYXRvckluZGV4fSBmb3IgdGhlIGxlYXN0LXNpZ25pZmljYW50
CisvLyBkaWdpdC4KKy8vIENhbGxlcnMgbXVzdCBlbnN1cmUgdGhhdCB7YWNjdW11bGF0b3J9IGlz
IGJpZyBlbm91Z2ggdG8gaG9sZCB0aGUgcmVzdWx0Lgordm9pZCBKU0JpZ0ludDo6bXVsdGlwbHlB
Y2N1bXVsYXRlKEpTQmlnSW50KiBtdWx0aXBsaWNhbmQsIERpZ2l0IG11bHRpcGxpZXIsIEpTQmln
SW50KiBhY2N1bXVsYXRvciwgdW5zaWduZWQgYWNjdW11bGF0b3JJbmRleCkKK3sKKyAgICBBU1NF
UlQoYWNjdW11bGF0b3ItPmxlbmd0aCgpID4gbXVsdGlwbGljYW5kLT5sZW5ndGgoKSArIGFjY3Vt
dWxhdG9ySW5kZXgpOworICAgIGlmICghbXVsdGlwbGllcikKKyAgICAgICAgcmV0dXJuOworICAg
IAorICAgIERpZ2l0IGNhcnJ5ID0gMDsKKyAgICBEaWdpdCBoaWdoID0gMDsKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbXVsdGlwbGljYW5kLT5sZW5ndGgoKTsgaSsrLCBhY2N1bXVsYXRv
ckluZGV4KyspIHsKKyAgICAgICAgRGlnaXQgYWNjID0gYWNjdW11bGF0b3ItPmRpZ2l0KGFjY3Vt
dWxhdG9ySW5kZXgpOworICAgICAgICBEaWdpdCBuZXdDYXJyeSA9IDA7CisgICAgICAgIAorICAg
ICAgICAvLyBBZGQgbGFzdCByb3VuZCdzIGNhcnJ5b3ZlcnMuCisgICAgICAgIGFjYyA9IGRpZ2l0
QWRkKGFjYywgaGlnaCwgbmV3Q2FycnkpOworICAgICAgICBhY2MgPSBkaWdpdEFkZChhY2MsIGNh
cnJ5LCBuZXdDYXJyeSk7CisgICAgICAgIAorICAgICAgICAvLyBDb21wdXRlIHRoaXMgcm91bmQn
cyBtdWx0aXBsaWNhdGlvbi4KKyAgICAgICAgRGlnaXQgbXVsdGlwbGljYW5kRGlnaXQgPSBtdWx0
aXBsaWNhbmQtPmRpZ2l0KGkpOworICAgICAgICBEaWdpdCBsb3cgPSBkaWdpdE11bChtdWx0aXBs
aWVyLCBtdWx0aXBsaWNhbmREaWdpdCwgaGlnaCk7CisgICAgICAgIGFjYyA9IGRpZ2l0QWRkKGFj
YywgbG93LCBuZXdDYXJyeSk7CisgICAgICAgIAorICAgICAgICAvLyBTdG9yZSByZXN1bHQgYW5k
IHByZXBhcmUgZm9yIG5leHQgcm91bmQuCisgICAgICAgIGFjY3VtdWxhdG9yLT5zZXREaWdpdChh
Y2N1bXVsYXRvckluZGV4LCBhY2MpOworICAgICAgICBjYXJyeSA9IG5ld0NhcnJ5OworICAgIH0K
KyAgICAKKyAgICB3aGlsZSAoY2FycnkgfHwgaGlnaCkgeworICAgICAgICBBU1NFUlQoYWNjdW11
bGF0b3JJbmRleCA8IGFjY3VtdWxhdG9yLT5sZW5ndGgoKSk7CisgICAgICAgIERpZ2l0IGFjYyA9
IGFjY3VtdWxhdG9yLT5kaWdpdChhY2N1bXVsYXRvckluZGV4KTsKKyAgICAgICAgRGlnaXQgbmV3
Q2FycnkgPSAwOworICAgICAgICBhY2MgPSBkaWdpdEFkZChhY2MsIGhpZ2gsIG5ld0NhcnJ5KTsK
KyAgICAgICAgaGlnaCA9IDA7CisgICAgICAgIGFjYyA9IGRpZ2l0QWRkKGFjYywgY2FycnksIG5l
d0NhcnJ5KTsKKyAgICAgICAgYWNjdW11bGF0b3ItPnNldERpZ2l0KGFjY3VtdWxhdG9ySW5kZXgs
IGFjYyk7CisgICAgICAgIGNhcnJ5ID0gbmV3Q2Fycnk7CisgICAgICAgIGFjY3VtdWxhdG9ySW5k
ZXgrKzsKKyAgICB9Cit9CisKIGJvb2wgSlNCaWdJbnQ6OmVxdWFscyhKU0JpZ0ludCogeCwgSlNC
aWdJbnQqIHkpCiB7CiAgICAgaWYgKHgtPnNpZ24oKSAhPSB5LT5zaWduKCkpCkBAIC00NTEsNyAr
NTE0LDcgQEAgYm9vbCBKU0JpZ0ludDo6ZXF1YWxzKEpTQmlnSW50KiB4LCBKU0JpZ0ludCogeSkK
ICAgICBpZiAoeC0+bGVuZ3RoKCkgIT0geS0+bGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgeC0+bGVuZ3RoKCk7IGkrKykgeworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCB4LT5sZW5ndGgoKTsgaSsrKSB7CiAgICAgICAgIGlmICh4
LT5kaWdpdChpKSAhPSB5LT5kaWdpdChpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CkBAIC00NzksNyArNTQyLDcgQEAgdm9pZCBKU0JpZ0ludDo6YWJzb2x1dGVEaXZTbWFsbChF
eGVjU3RhdGUmIHN0YXRlLCBKU0JpZ0ludCogeCwgRGlnaXQgZGl2aXNvciwgSlMKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGludCBsZW5ndGggPSB4LT5sZW5ndGgoKTsKKyAgICB1bnNp
Z25lZCBsZW5ndGggPSB4LT5sZW5ndGgoKTsKICAgICBpZiAocXVvdGllbnQgIT0gbnVsbHB0cikg
ewogICAgICAgICBpZiAoKnF1b3RpZW50ID09IG51bGxwdHIpCiAgICAgICAgICAgICAqcXVvdGll
bnQgPSBKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aCh2bSwgbGVuZ3RoKTsKQEAgLTUwNiwxNCAr
NTY5LDE0IEBAIGNvbnN0ZXhwciB1aW50OF90IG1heEJpdHNQZXJDaGFyVGFibGVbXSA9IHsKICAg
ICAxNjIsIDE2MywgMTY1LCAxNjYsICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDMzLi4zNgog
fTsKIAotc3RhdGljIGNvbnN0IGludCBiaXRzUGVyQ2hhclRhYmxlU2hpZnQgPSA1Oworc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGJpdHNQZXJDaGFyVGFibGVTaGlmdCA9IDU7CiBzdGF0aWMgY29uc3Qg
c2l6ZV90IGJpdHNQZXJDaGFyVGFibGVNdWx0aXBsaWVyID0gMXUgPDwgYml0c1BlckNoYXJUYWJs
ZVNoaWZ0OwogCiAvLyBDb21wdXRlIChhbiBvdmVyYXBwcm94aW1hdGlvbiBvZikgdGhlIGxlbmd0
aCBvZiB0aGUgcmVzdWx0aW5nIHN0cmluZzoKIC8vIERpdmlkZSBiaXQgbGVuZ3RoIG9mIHRoZSBC
aWdJbnQgYnkgYml0cyByZXByZXNlbnRhYmxlIHBlciBjaGFyYWN0ZXIuCi11aW50NjRfdCBKU0Jp
Z0ludDo6Y2FsY3VsYXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZChpbnQgbGVuZ3RoLCBpbnQg
cmFkaXgsIERpZ2l0IGxhc3REaWdpdCwgYm9vbCBzaWduKQordWludDY0X3QgSlNCaWdJbnQ6OmNh
bGN1bGF0ZU1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQodW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25l
ZCByYWRpeCwgRGlnaXQgbGFzdERpZ2l0LCBib29sIHNpZ24pCiB7Ci0gICAgaW50IGxlYWRpbmda
ZXJvczsKKyAgICB1bnNpZ25lZCBsZWFkaW5nWmVyb3M7CiAgICAgaWYgKHNpemVvZihsYXN0RGln
aXQpID09IDgpCiAgICAgICAgIGxlYWRpbmdaZXJvcyA9IGNsejY0KGxhc3REaWdpdCk7CiAgICAg
ZWxzZQpAQCAtNTQxLDcgKzYwNCw3IEBAIHVpbnQ2NF90IEpTQmlnSW50OjpjYWxjdWxhdGVNYXhp
bXVtQ2hhcmFjdGVyc1JlcXVpcmVkKGludCBsZW5ndGgsIGludCByYWRpeCwgRGlnCiAgICAgcmV0
dXJuIG1heGltdW1DaGFyYWN0ZXJzUmVxdWlyZWQ7CiB9CiAKLVN0cmluZyBKU0JpZ0ludDo6dG9T
dHJpbmdHZW5lcmljKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTQmlnSW50KiB4LCBpbnQgcmFkaXgpCitT
dHJpbmcgSlNCaWdJbnQ6OnRvU3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUmIHN0YXRlLCBKU0JpZ0lu
dCogeCwgdW5zaWduZWQgcmFkaXgpCiB7CiAgICAgLy8gRklYTUU6IFtKU0NdIFJldmlzaXQgdXNh
Z2Ugb2YgVmVjdG9yIGludG8gSlNCaWdJbnQ6OnRvU3RyaW5nCiAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDY3CkBAIC01NTAsNyArNjEzLDcgQEAgU3Ry
aW5nIEpTQmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQq
IHgsIGludCByYWRpeCkKICAgICBBU1NFUlQocmFkaXggPj0gMiAmJiByYWRpeCA8PSAzNik7CiAg
ICAgQVNTRVJUKCF4LT5pc1plcm8oKSk7CiAKLSAgICBpbnQgbGVuZ3RoID0geC0+bGVuZ3RoKCk7
CisgICAgdW5zaWduZWQgbGVuZ3RoID0geC0+bGVuZ3RoKCk7CiAgICAgYm9vbCBzaWduID0geC0+
c2lnbigpOwogCiAgICAgdWludDhfdCBtYXhCaXRzUGVyQ2hhciA9IG1heEJpdHNQZXJDaGFyVGFi
bGVbcmFkaXhdOwpAQCAtNTY2LDEyICs2MjksMTIgQEAgU3RyaW5nIEpTQmlnSW50Ojp0b1N0cmlu
Z0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQqIHgsIGludCByYWRpeCkKICAgICBp
ZiAobGVuZ3RoID09IDEpCiAgICAgICAgIGxhc3REaWdpdCA9IHgtPmRpZ2l0KDApOwogICAgIGVs
c2UgewotICAgICAgICBpbnQgY2h1bmtDaGFycyA9IGRpZ2l0Qml0cyAqIGJpdHNQZXJDaGFyVGFi
bGVNdWx0aXBsaWVyIC8gbWF4Qml0c1BlckNoYXI7CisgICAgICAgIHVuc2lnbmVkIGNodW5rQ2hh
cnMgPSBkaWdpdEJpdHMgKiBiaXRzUGVyQ2hhclRhYmxlTXVsdGlwbGllciAvIG1heEJpdHNQZXJD
aGFyOwogICAgICAgICBEaWdpdCBjaHVua0Rpdmlzb3IgPSBkaWdpdFBvdyhyYWRpeCwgY2h1bmtD
aGFycyk7CiAKICAgICAgICAgLy8gQnkgY29uc3RydWN0aW9uIG9mIGNodW5rQ2hhcnMsIHRoZXJl
IGNhbid0IGhhdmUgYmVlbiBvdmVyZmxvdy4KICAgICAgICAgQVNTRVJUKGNodW5rRGl2aXNvcik7
Ci0gICAgICAgIGludCBub25aZXJvRGlnaXQgPSBsZW5ndGggLSAxOworICAgICAgICB1bnNpZ25l
ZCBub25aZXJvRGlnaXQgPSBsZW5ndGggLSAxOwogICAgICAgICBBU1NFUlQoeC0+ZGlnaXQobm9u
WmVyb0RpZ2l0KSk7CiAKICAgICAgICAgLy8ge3Jlc3R9IGhvbGRzIHRoZSBwYXJ0IG9mIHRoZSBC
aWdJbnQgdGhhdCB3ZSBoYXZlbid0IGxvb2tlZCBhdCB5ZXQuCkBAIC01ODcsNyArNjUwLDcgQEAg
U3RyaW5nIEpTQmlnSW50Ojp0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJ
bnQqIHgsIGludCByYWRpeCkKICAgICAgICAgICAgIEFTU0VSVChyZXN0KTsKIAogICAgICAgICAg
ICAgZGl2aWRlbmQgPSAmcmVzdDsKLSAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2h1
bmtDaGFyczsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY2h1
bmtDaGFyczsgaSsrKSB7CiAgICAgICAgICAgICAgICAgcmVzdWx0U3RyaW5nLmFwcGVuZChyYWRp
eERpZ2l0c1tjaHVuayAlIHJhZGl4XSk7CiAgICAgICAgICAgICAgICAgY2h1bmsgLz0gcmFkaXg7
CiAgICAgICAgICAgICB9CkBAIC02MTIsNyArNjc1LDcgQEAgU3RyaW5nIEpTQmlnSW50Ojp0b1N0
cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNCaWdJbnQqIHgsIGludCByYWRpeCkKICAg
ICBBU1NFUlQocmVzdWx0U3RyaW5nLnNpemUoKSA8PSBzdGF0aWNfY2FzdDxzaXplX3Q+KG1heGlt
dW1DaGFyYWN0ZXJzUmVxdWlyZWQpKTsKIAogICAgIC8vIFJlbW92ZSBsZWFkaW5nIHplcm9lcy4K
LSAgICBpbnQgbmV3U2l6ZU5vTGVhZGluZ1plcm9lcyA9IHJlc3VsdFN0cmluZy5zaXplKCk7Cisg
ICAgdW5zaWduZWQgbmV3U2l6ZU5vTGVhZGluZ1plcm9lcyA9IHJlc3VsdFN0cmluZy5zaXplKCk7
CiAgICAgd2hpbGUgKG5ld1NpemVOb0xlYWRpbmdaZXJvZXMgID4gMSAmJiByZXN1bHRTdHJpbmdb
bmV3U2l6ZU5vTGVhZGluZ1plcm9lcyAtIDFdID09ICcwJykKICAgICAgICAgbmV3U2l6ZU5vTGVh
ZGluZ1plcm9lcy0tOwogCkBAIC02MzEsMTQgKzY5NCwxNiBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6
OnJpZ2h0VHJpbShWTSYgdm0pCiAgICAgaWYgKGlzWmVybygpKQogICAgICAgICByZXR1cm4gdGhp
czsKIAorICAgIEFTU0VSVChtX2xlbmd0aCk7CisKICAgICBpbnQgbm9uWmVyb0luZGV4ID0gbV9s
ZW5ndGggLSAxOwogICAgIHdoaWxlIChub25aZXJvSW5kZXggPj0gMCAmJiAhZGlnaXQobm9uWmVy
b0luZGV4KSkKICAgICAgICAgbm9uWmVyb0luZGV4LS07CiAKLSAgICBpZiAobm9uWmVyb0luZGV4
ID09IG1fbGVuZ3RoIC0gMSkKKyAgICBpZiAobm9uWmVyb0luZGV4ID09IHN0YXRpY19jYXN0PGlu
dD4obV9sZW5ndGggLSAxKSkKICAgICAgICAgcmV0dXJuIHRoaXM7CiAKLSAgICBpbnQgbmV3TGVu
Z3RoID0gbm9uWmVyb0luZGV4ICsgMTsKKyAgICB1bnNpZ25lZCBuZXdMZW5ndGggPSBub25aZXJv
SW5kZXggKyAxOwogICAgIEpTQmlnSW50KiB0cmltbWVkQmlnSW50ID0gY3JlYXRlV2l0aExlbmd0
aCh2bSwgbmV3TGVuZ3RoKTsKICAgICBSRUxFQVNFX0FTU0VSVCh0cmltbWVkQmlnSW50KTsKICAg
ICBzdGQ6OmNvcHkoZGF0YVN0b3JhZ2UoKSwgZGF0YVN0b3JhZ2UoKSArIG5ld0xlbmd0aCwgdHJp
bW1lZEJpZ0ludC0+ZGF0YVN0b3JhZ2UoKSk7IApAQCAtNjQ4LDE0ICs3MTMsMTQgQEAgSlNCaWdJ
bnQqIEpTQmlnSW50OjpyaWdodFRyaW0oVk0mIHZtKQogICAgIHJldHVybiB0cmltbWVkQmlnSW50
OwogfQogCi1KU0JpZ0ludCogSlNCaWdJbnQ6OmFsbG9jYXRlRm9yKEV4ZWNTdGF0ZSogc3RhdGUs
IFZNJiB2bSwgaW50IHJhZGl4LCBpbnQgY2hhcmNvdW50KQorSlNCaWdJbnQqIEpTQmlnSW50Ojph
bGxvY2F0ZUZvcihFeGVjU3RhdGUqIHN0YXRlLCBWTSYgdm0sIHVuc2lnbmVkIHJhZGl4LCB1bnNp
Z25lZCBjaGFyY291bnQpCiB7CiAgICAgQVNTRVJUKDIgPD0gcmFkaXggJiYgcmFkaXggPD0gMzYp
OwogICAgIEFTU0VSVChjaGFyY291bnQgPj0gMCk7CiAKICAgICBzaXplX3QgYml0c1BlckNoYXIg
PSBtYXhCaXRzUGVyQ2hhclRhYmxlW3JhZGl4XTsKICAgICBzaXplX3QgY2hhcnMgPSBjaGFyY291
bnQ7Ci0gICAgY29uc3QgaW50IHJvdW5kdXAgPSBiaXRzUGVyQ2hhclRhYmxlTXVsdGlwbGllciAt
IDE7CisgICAgY29uc3QgdW5zaWduZWQgcm91bmR1cCA9IGJpdHNQZXJDaGFyVGFibGVNdWx0aXBs
aWVyIC0gMTsKICAgICBpZiAoY2hhcnMgPD0gKHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6
bWF4KCkgLSByb3VuZHVwKSAvIGJpdHNQZXJDaGFyKSB7CiAgICAgICAgIHNpemVfdCBiaXRzTWlu
ID0gYml0c1BlckNoYXIgKiBjaGFyczsKIApAQCAtNjYzLDcgKzcyOCw3IEBAIEpTQmlnSW50KiBK
U0JpZ0ludDo6YWxsb2NhdGVGb3IoRXhlY1N0YXRlKiBzdGF0ZSwgVk0mIHZtLCBpbnQgcmFkaXgs
IGludCBjaGFyY291CiAgICAgICAgIGJpdHNNaW4gPSAoYml0c01pbiArIHJvdW5kdXApID4+IGJp
dHNQZXJDaGFyVGFibGVTaGlmdDsKICAgICAgICAgaWYgKGJpdHNNaW4gPD0gc3RhdGljX2Nhc3Q8
c2l6ZV90PihtYXhJbnQpKSB7CiAgICAgICAgICAgICAvLyBEaXZpZGUgYnkga0RpZ2l0c0JpdHMs
IHJvdW5kaW5nIHVwLgotICAgICAgICAgICAgaW50IGxlbmd0aCA9IChzdGF0aWNfY2FzdDxpbnQ+
KGJpdHNNaW4pICsgZGlnaXRCaXRzIC0gMSkgLyBkaWdpdEJpdHM7CisgICAgICAgICAgICB1bnNp
Z25lZCBsZW5ndGggPSAoYml0c01pbiArIGRpZ2l0Qml0cyAtIDEpIC8gZGlnaXRCaXRzOwogICAg
ICAgICAgICAgaWYgKGxlbmd0aCA8PSBtYXhMZW5ndGgpIHsKICAgICAgICAgICAgICAgICBKU0Jp
Z0ludCogcmVzdWx0ID0gSlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGgodm0sIGxlbmd0aCk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTc3MSw5ICs4MzYsOSBAQCBKU0JpZ0lu
dCogSlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0ZSogc3RhdGUsIFZNJiB2bSwgQ2hhclR5cGUq
IGRhdGEsIHVuc2lnbmVkCiAgICAgaWYgKHAgPT0gbGVuZ3RoKQogICAgICAgICByZXR1cm4gY3Jl
YXRlWmVybyh2bSk7CiAKLSAgICBpbnQgbGltaXQwID0gJzAnICsgKHJhZGl4IDwgMTAgPyByYWRp
eCA6IDEwKTsKLSAgICBpbnQgbGltaXRhID0gJ2EnICsgKHJhZGl4IC0gMTApOwotICAgIGludCBs
aW1pdEEgPSAnQScgKyAocmFkaXggLSAxMCk7CisgICAgdW5zaWduZWQgbGltaXQwID0gJzAnICsg
KHJhZGl4IDwgMTAgPyByYWRpeCA6IDEwKTsKKyAgICB1bnNpZ25lZCBsaW1pdGEgPSAnYScgKyAo
cmFkaXggLSAxMCk7CisgICAgdW5zaWduZWQgbGltaXRBID0gJ0EnICsgKHJhZGl4IC0gMTApOwog
CiAgICAgSlNCaWdJbnQqIHJlc3VsdCA9IGFsbG9jYXRlRm9yKHN0YXRlLCB2bSwgcmFkaXgsIGxl
bmd0aCAtIHApOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwpAQCAt
ODA5LDEzICs4NzQsMTMgQEAgaW5saW5lIEpTQmlnSW50OjpEaWdpdCogSlNCaWdJbnQ6OmRhdGFT
dG9yYWdlKCkKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxEaWdpdCo+KHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KHRoaXMpICsgb2Zmc2V0T2ZEYXRhKCkpOwogfQogCi1pbmxpbmUgSlNCaWdJ
bnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdChpbnQgbikKK0pTQmlnSW50OjpEaWdpdCBKU0JpZ0lu
dDo6ZGlnaXQodW5zaWduZWQgbikKIHsKICAgICBBU1NFUlQobiA+PSAwICYmIG4gPCBsZW5ndGgo
KSk7CiAgICAgcmV0dXJuIGRhdGFTdG9yYWdlKClbbl07CiB9CiAKLWlubGluZSB2b2lkIEpTQmln
SW50OjpzZXREaWdpdChpbnQgbiwgRGlnaXQgdmFsdWUpCit2b2lkIEpTQmlnSW50OjpzZXREaWdp
dCh1bnNpZ25lZCBuLCBEaWdpdCB2YWx1ZSkKIHsKICAgICBBU1NFUlQobiA+PSAwICYmIG4gPCBs
ZW5ndGgoKSk7CiAgICAgZGF0YVN0b3JhZ2UoKVtuXSA9IHZhbHVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKaW5kZXggYjliZjc1MS4uMDI0NGNiYiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNz
IEpTQmlnSW50IGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAKIHB1YmxpYzoKIAotICAgIEpTQmln
SW50KFZNJiwgU3RydWN0dXJlKiwgaW50IGxlbmd0aCk7CisgICAgSlNCaWdJbnQoVk0mLCBTdHJ1
Y3R1cmUqLCB1bnNpZ25lZCBsZW5ndGgpOwogCiAgICAgZW51bSBjbGFzcyBJbml0aWFsaXphdGlv
blR5cGUgeyBOb25lLCBXaXRoWmVybyB9OwogICAgIHZvaWQgaW5pdGlhbGl6ZShJbml0aWFsaXph
dGlvblR5cGUpOwpAQCAtNDksMTIgKzQ5LDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCB2
aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAKICAgICBzdGF0aWMgc2l6ZV90
IGVzdGltYXRlZFNpemUoSlNDZWxsKik7Ci0gICAgc3RhdGljIHNpemVfdCBhbGxvY2F0aW9uU2l6
ZShpbnQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgc2l6ZV90IGFsbG9jYXRpb25TaXplKHVuc2lnbmVk
IGxlbmd0aCk7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBK
U0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBlKTsKLQogICAgIHN0YXRpYyBKU0JpZ0lu
dCogY3JlYXRlWmVybyhWTSYpOwotICAgIHN0YXRpYyBKU0JpZ0ludCogY3JlYXRlV2l0aExlbmd0
aChWTSYsIGludCBsZW5ndGgpOworICAgIHN0YXRpYyBKU0JpZ0ludCogY3JlYXRlV2l0aExlbmd0
aChWTSYsIHVuc2lnbmVkIGxlbmd0aCk7CiAKICAgICBzdGF0aWMgSlNCaWdJbnQqIGNyZWF0ZUZy
b20oVk0mLCBpbnQzMl90IHZhbHVlKTsKICAgICBzdGF0aWMgSlNCaWdJbnQqIGNyZWF0ZUZyb20o
Vk0mLCB1aW50MzJfdCB2YWx1ZSk7CkBAIC03MCw4ICs2OSw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFNpZ24oYm9vbCBzaWduKSB7IG1fc2lnbiA9IHNpZ247IH0KICAgICBib29sIHNpZ24oKSBj
b25zdCB7IHJldHVybiBtX3NpZ247IH0KIAotICAgIHZvaWQgc2V0TGVuZ3RoKGludCBsZW5ndGgp
IHsgbV9sZW5ndGggPSBsZW5ndGg7IH0KLSAgICBpbnQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4g
bV9sZW5ndGg7IH0KKyAgICB2b2lkIHNldExlbmd0aCh1bnNpZ25lZCBsZW5ndGgpIHsgbV9sZW5n
dGggPSBsZW5ndGg7IH0KKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xl
bmd0aDsgfQogCiAgICAgZW51bSBFcnJvclBhcnNlTW9kZSB7CiAgICAgICAgIFRocm93RXhjZXB0
aW9ucywKQEAgLTkyLDYgKzkxLDggQEAgcHVibGljOgogICAgIGRvdWJsZSB0b051bWJlcihFeGVj
U3RhdGUqKSBjb25zdDsKIAogICAgIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0ds
b2JhbE9iamVjdCopIGNvbnN0OworCisgICAgc3RhdGljIEpTQmlnSW50KiBtdWx0aXBseShFeGVj
U3RhdGUqLCBKU0JpZ0ludCogeCwgSlNCaWdJbnQqIHkpOwogICAgIAogcHJpdmF0ZToKIApAQCAt
MTAzLDkgKzEwNCw5IEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIHVzaW5nIERpZ2l0ID0gdWlu
dHB0cl90OwotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgaW50IGJpdHNQZXJCeXRlID0gODsK
LSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGludCBkaWdpdEJpdHMgPSBzaXplb2YoRGlnaXQp
ICogYml0c1BlckJ5dGU7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQgaGFsZkRpZ2l0
Qml0cyA9IGRpZ2l0Qml0cyAvIDI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCB1bnNpZ25l
ZCBiaXRzUGVyQnl0ZSA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCB1bnNpZ25lZCBk
aWdpdEJpdHMgPSBzaXplb2YoRGlnaXQpICogYml0c1BlckJ5dGU7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBjb25zdCB1bnNpZ25lZCBoYWxmRGlnaXRCaXRzID0gZGlnaXRCaXRzIC8gMjsKICAgICBz
dGF0aWMgY29uc3RleHByIGNvbnN0IERpZ2l0IGhhbGZEaWdpdE1hc2sgPSAoMXVsbCA8PCBoYWxm
RGlnaXRCaXRzKSAtIDE7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQgbWF4SW50ID0g
MHg3RkZGRkZGRjsKICAgICAKQEAgLTExMywxMiArMTE0LDEzIEBAIHByaXZhdGU6CiAgICAgLy8g
bWF4SW50IC8gZGlnaXRCaXRzLiBIb3dldmVyLCB3ZSB1c2UgYSBsb3dlciBsaW1pdCBmb3Igbm93
LCBiZWNhdXNlCiAgICAgLy8gcmFpc2luZyBpdCBsYXRlciBpcyBlYXNpZXIgdGhhbiBsb3dlcmlu
ZyBpdC4KICAgICAvLyBTdXBwb3J0IHVwIHRvIDEgbWlsbGlvbiBiaXRzLgotICAgIHN0YXRpYyBj
b25zdCBpbnQgbWF4TGVuZ3RoID0gMTAyNCAqIDEwMjQgLyAoc2l6ZW9mKHZvaWQqKSAqIGJpdHNQ
ZXJCeXRlKTsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4TGVuZ3RoID0gMTAyNCAqIDEw
MjQgLyAoc2l6ZW9mKHZvaWQqKSAqIGJpdHNQZXJCeXRlKTsKICAgICAKLSAgICBzdGF0aWMgdWlu
dDY0X3QgY2FsY3VsYXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZChpbnQgbGVuZ3RoLCBpbnQg
cmFkaXgsIERpZ2l0IGxhc3REaWdpdCwgYm9vbCBzaWduKTsKKyAgICBzdGF0aWMgdWludDY0X3Qg
Y2FsY3VsYXRlTWF4aW11bUNoYXJhY3RlcnNSZXF1aXJlZCh1bnNpZ25lZCBsZW5ndGgsIHVuc2ln
bmVkIHJhZGl4LCBEaWdpdCBsYXN0RGlnaXQsIGJvb2wgc2lnbik7CiAgICAgCiAgICAgc3RhdGlj
IHZvaWQgYWJzb2x1dGVEaXZTbWFsbChFeGVjU3RhdGUmLCBKU0JpZ0ludCogeCwgRGlnaXQgZGl2
aXNvciwgSlNCaWdJbnQqKiBxdW90aWVudCwgRGlnaXQmIHJlbWFpbmRlcik7Ci0gICAgc3RhdGlj
IHZvaWQgaW50ZXJuYWxNdWx0aXBseUFkZChKU0JpZ0ludCogc291cmNlLCBEaWdpdCBmYWN0b3Is
IERpZ2l0IHN1bW1hbmQsIGludCwgSlNCaWdJbnQqIHJlc3VsdCk7CisgICAgc3RhdGljIHZvaWQg
aW50ZXJuYWxNdWx0aXBseUFkZChKU0JpZ0ludCogc291cmNlLCBEaWdpdCBmYWN0b3IsIERpZ2l0
IHN1bW1hbmQsIHVuc2lnbmVkLCBKU0JpZ0ludCogcmVzdWx0KTsKKyAgICBzdGF0aWMgdm9pZCBt
dWx0aXBseUFjY3VtdWxhdGUoSlNCaWdJbnQqIG11bHRpcGxpY2FuZCwgRGlnaXQgbXVsdGlwbGll
ciwgSlNCaWdJbnQqIGFjY3VtdWxhdG9yLCB1bnNpZ25lZCBhY2N1bXVsYXRvckluZGV4KTsKIAog
ICAgIC8vIERpZ2l0IGFyaXRobWV0aWMgaGVscGVycy4KICAgICBzdGF0aWMgRGlnaXQgZGlnaXRB
ZGQoRGlnaXQgYSwgRGlnaXQgYiwgRGlnaXQmIGNhcnJ5KTsKQEAgLTEyNyw3ICsxMjksNyBAQCBw
cml2YXRlOgogICAgIHN0YXRpYyBEaWdpdCBkaWdpdERpdihEaWdpdCBoaWdoLCBEaWdpdCBsb3cs
IERpZ2l0IGRpdmlzb3IsIERpZ2l0JiByZW1haW5kZXIpOwogICAgIHN0YXRpYyBEaWdpdCBkaWdp
dFBvdyhEaWdpdCBiYXNlLCBEaWdpdCBleHBvbmVudCk7CiAKLSAgICBzdGF0aWMgU3RyaW5nIHRv
U3RyaW5nR2VuZXJpYyhFeGVjU3RhdGUmLCBKU0JpZ0ludCosIGludCByYWRpeCk7CisgICAgc3Rh
dGljIFN0cmluZyB0b1N0cmluZ0dlbmVyaWMoRXhlY1N0YXRlJiwgSlNCaWdJbnQqLCB1bnNpZ25l
ZCByYWRpeCk7CiAKICAgICBib29sIGlzWmVybygpOwogCkBAIC0xMzksNyArMTQxLDcgQEAgcHJp
dmF0ZToKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+CiAgICAgc3RhdGljIEpTQmln
SW50KiBwYXJzZUludChFeGVjU3RhdGUqLCBWTSYsIENoYXJUeXBlKiBkYXRhLCB1bnNpZ25lZCBs
ZW5ndGgsIHVuc2lnbmVkIHN0YXJ0SW5kZXgsIHVuc2lnbmVkIHJhZGl4LCBFcnJvclBhcnNlTW9k
ZSwgYm9vbCBhbGxvd0VtcHR5U3RyaW5nID0gdHJ1ZSk7CiAKLSAgICBzdGF0aWMgSlNCaWdJbnQq
IGFsbG9jYXRlRm9yKEV4ZWNTdGF0ZSosIFZNJiwgaW50IHJhZGl4LCBpbnQgY2hhcmNvdW50KTsK
KyAgICBzdGF0aWMgSlNCaWdJbnQqIGFsbG9jYXRlRm9yKEV4ZWNTdGF0ZSosIFZNJiwgdW5zaWdu
ZWQgcmFkaXgsIHVuc2lnbmVkIGNoYXJjb3VudCk7CiAKICAgICBKU0JpZ0ludCogcmlnaHRUcmlt
KFZNJik7CiAKQEAgLTE0OCwxMCArMTUwLDEwIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHNpemVf
dCBvZmZzZXRPZkRhdGEoKTsKICAgICBEaWdpdCogZGF0YVN0b3JhZ2UoKTsKIAotICAgIERpZ2l0
IGRpZ2l0KGludCk7Ci0gICAgdm9pZCBzZXREaWdpdChpbnQsIERpZ2l0KTsKKyAgICBEaWdpdCBk
aWdpdCh1bnNpZ25lZCk7CisgICAgdm9pZCBzZXREaWdpdCh1bnNpZ25lZCwgRGlnaXQpOwogICAg
ICAgICAKLSAgICBpbnQgbV9sZW5ndGg7CisgICAgdW5zaWduZWQgbV9sZW5ndGg7CiAgICAgYm9v
bCBtX3NpZ247CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NKU1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVl
LmgKaW5kZXggMjFlODBmOC4uOTFkYzFhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ0pTVmFsdWUuaApAQCAtMzksNiArMzksNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIGNs
YXNzIEFzc2VtYmx5SGVscGVyczsKK2NsYXNzIEpTQmlnSW50OwogY2xhc3MgRXhlY1N0YXRlOwog
Y2xhc3MgSlNDZWxsOwogY2xhc3MgSlNWYWx1ZVNvdXJjZTsKQEAgLTI1Nyw2ICsyNTgsOCBAQCBw
dWJsaWM6CiAgICAgLy8gdG9OdW1iZXIgY29udmVyc2lvbiBpcyBleHBlY3RlZCB0byBiZSBzaWRl
IGVmZmVjdCBmcmVlIGlmIGFuIGV4Y2VwdGlvbiBoYXMKICAgICAvLyBiZWVuIHNldCBpbiB0aGUg
RXhlY1N0YXRlIGFscmVhZHkuCiAgICAgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0
OworICAgIAorICAgIFZhcmlhbnQ8SlNCaWdJbnQqLCBkb3VibGU+IHRvTnVtZXJpYyhFeGVjU3Rh
dGUqKSBjb25zdDsKIAogICAgIC8vIHRvTnVtYmVyIGNvbnZlcnNpb24gaWYgaXQgY2FuIGJlIGRv
bmUgd2l0aG91dCBzaWRlIGVmZmVjdHMuCiAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHRvTnVt
YmVyRnJvbVByaW1pdGl2ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKaW5kZXggMjNkM2IyNi4uM2FlZTBjNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCkBA
IC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSlNQcm94eS5oIgogI2luY2x1ZGUgIkpTU3RyaW5n
SW5saW5lcy5oIgogI2luY2x1ZGUgIk1hdGhDb21tb24uaCIKKyNpbmNsdWRlIDx3dGYvVmFyaWFu
dC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogbmFtZXNwYWNlIEpTQyB7
CkBAIC03MjgsNiArNzI5LDI2IEBAIEFMV0FZU19JTkxJTkUgZG91YmxlIEpTVmFsdWU6OnRvTnVt
YmVyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4gdG9OdW1iZXJTbG93Q2FzZShl
eGVjKTsKIH0KIAorQUxXQVlTX0lOTElORSBWYXJpYW50PEpTQmlnSW50KiwgZG91YmxlPiBKU1Zh
bHVlOjp0b051bWVyaWMoRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIGlmIChpc0ludDMy
KCkpCisgICAgICAgIHJldHVybiBhc0ludDMyKCk7CisgICAgaWYgKGlzRG91YmxlKCkpCisgICAg
ICAgIHJldHVybiBhc0RvdWJsZSgpOworICAgIGlmIChpc0JpZ0ludCgpKQorICAgICAgICByZXR1
cm4gYXNCaWdJbnQoKnRoaXMpOworCisgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgSlNWYWx1ZSBwcmltVmFsdWUg
PSB0aGlzLT50b1ByaW1pdGl2ZShleGVjLCBQcmVmZXJOdW1iZXIpOworICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIDApOworICAgIGlmIChwcmltVmFsdWUuaXNCaWdJbnQoKSkKKyAgICAg
ICAgcmV0dXJuIGFzQmlnSW50KHByaW1WYWx1ZSk7CisgICAgZG91YmxlIHZhbHVlID0gcHJpbVZh
bHVlLnRvTnVtYmVyKGV4ZWMpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIDApOwor
ICAgIHJldHVybiB2YWx1ZTsKK30KKwogaW5saW5lIEpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVj
dChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxs
KCktPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSkgOiB0b09iamVj
dFNsb3dDYXNlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgKaW5kZXggMTM0OWFlYy4uNDk1NTkwYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaApAQCAtMjMsNyAr
MjMsOSBAQAogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVs
cGVycy5oIgorI2luY2x1ZGUgIkpTQmlnSW50LmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgor
I2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC0yNTYsNiAr
MjU4LDI5IEBAIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc0FkZChDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgSlNWYWx1ZSB2MSwgSlNWYWx1ZSB2MikKICAgICByZXR1cm4ganNBZGRTbG93Q2FzZShjYWxs
RnJhbWUsIHYxLCB2Mik7CiB9CiAKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc011bChFeGVjU3Rh
dGUqIHN0YXRlLCBKU1ZhbHVlIHYxLCBKU1ZhbHVlIHYyKQoreworICAgIFZNJiB2bSA9IHN0YXRl
LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAg
IFZhcmlhbnQ8SlNCaWdJbnQqLCBkb3VibGU+IGxlZnROdW1lcmljID0gdjEudG9OdW1lcmljKHN0
YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIFZhcmlhbnQ8
SlNCaWdJbnQqLCBkb3VibGU+IHJpZ2h0TnVtZXJpYyA9IHYyLnRvTnVtZXJpYyhzdGF0ZSk7Cisg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKworICAgIGlmIChXVEY6OmhvbGRz
X2FsdGVybmF0aXZlPEpTQmlnSW50Kj4obGVmdE51bWVyaWMpIHx8IFdURjo6aG9sZHNfYWx0ZXJu
YXRpdmU8SlNCaWdJbnQqPihyaWdodE51bWVyaWMpKSB7CisgICAgICAgIGlmIChXVEY6OmhvbGRz
X2FsdGVybmF0aXZlPEpTQmlnSW50Kj4obGVmdE51bWVyaWMpICYmIFdURjo6aG9sZHNfYWx0ZXJu
YXRpdmU8SlNCaWdJbnQqPihyaWdodE51bWVyaWMpKQorICAgICAgICAgICAgcmV0dXJuIEpTQmln
SW50OjptdWx0aXBseShzdGF0ZSwgV1RGOjpnZXQ8SlNCaWdJbnQqPihsZWZ0TnVtZXJpYyksIFdU
Rjo6Z2V0PEpTQmlnSW50Kj4ocmlnaHROdW1lcmljKSk7CisKKyAgICAgICAgdGhyb3dUeXBlRXJy
b3Ioc3RhdGUsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkludmFsaWQgbWl4IG9mIEJpZ0ludCBhbmQg
b3RoZXIgdHlwZSBpbiBtdWx0aXBsaWNhdGlvbi4iKSk7CisgICAgICAgIHJldHVybiB7IH07Cisg
ICAgfQorCisgICAgZG91YmxlIGxlZnRWYWx1ZSA9ICBXVEY6OmdldDxkb3VibGU+KGxlZnROdW1l
cmljKTsKKyAgICBkb3VibGUgcmlnaHRWYWx1ZSA9ICBXVEY6OmdldDxkb3VibGU+KHJpZ2h0TnVt
ZXJpYyk7CisgICAgcmV0dXJuIGpzTnVtYmVyKGxlZnRWYWx1ZSAqIHJpZ2h0VmFsdWUpOworfQor
CiBpbmxpbmUgYm9vbCBzY3JpYmJsZUZyZWVDZWxscygpCiB7CiAgICAgcmV0dXJuICFBU1NFUlRf
RElTQUJMRUQgfHwgT3B0aW9uczo6c2NyaWJibGVGcmVlQ2VsbHMoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>