<?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>141095</bug_id>
          
          <creation_ts>2015-01-30 13:26:15 -0800</creation_ts>
          <short_desc>Adjust the ranges of basic block statements in JSC&apos;s control flow profiler to be mutually exclusive</short_desc>
          <delta_ts>2015-02-23 14:11:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>141334</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>burg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>joepeck</cc>
    
    <cc>mark.lam</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1065629</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-01-30 13:26:15 -0800</bug_when>
    <thetext>Specifically:
1. While loops, for loops, and if statements with block statements as their m_statement member variable.

We want basic block boundaries for these conditional block statements to start one character after the closing brace and end one character before the closing brace.
We&apos;re doing this to tune the UI that will be displayed inside the Web Inspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065846</commentid>
    <comment_count>1</comment_count>
      <attachid>245791</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-01-31 12:20:22 -0800</bug_when>
    <thetext>Created attachment 245791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067271</commentid>
    <comment_count>2</comment_count>
      <attachid>245791</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-02-05 17:36:39 -0800</bug_when>
    <thetext>Comment on attachment 245791
Patch

LGTM but would be better with regression tests so that we don&apos;t unknowingly mess this up in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067325</commentid>
    <comment_count>3</comment_count>
      <attachid>246155</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-02-06 01:11:28 -0800</bug_when>
    <thetext>Created attachment 246155
patch

Now with regression tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067379</commentid>
    <comment_count>4</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-02-06 11:07:35 -0800</bug_when>
    <thetext>I&apos;m going to do a more thorough overhaul of the text ranges for the control flow profiler. There&apos;s a flaw in the profile now that one block&apos;s end offset may be another block&apos;s start offset. We should really make all basic block ranges mutually exclusive. 

This will make reasoning about the text offset locations more sound.

How it will be implemented: place the text offset that is an argument to BytecodeGenerator::emitProfileControlFlow at the *start* of a textual basic block. I reason about the correctness of this inductively: 

For a function w/ 1 block, we place the offset at the start of the function. For n blocks, we assume all n-1 were correct, and for every statement that makes up an nth block, make sure that the offset is at the start of that block.

This isn&apos;t a huge change, most things are already pretty close to correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067382</commentid>
    <comment_count>5</comment_count>
      <attachid>246167</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-02-06 11:42:36 -0800</bug_when>
    <thetext>Created attachment 246167
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067452</commentid>
    <comment_count>6</comment_count>
      <attachid>246167</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-02-06 16:33:22 -0800</bug_when>
    <thetext>Comment on attachment 246167
patch

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

&gt; Source/JavaScriptCore/ChangeLog:16
&gt; +

I think you should also mention that you adjusted the profiler control flow markers to also not start on open braces in the source code.

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:1900
&gt; +        generator.emitProfileControlFlow(m_ifBlock-&gt;endOffset() + (!m_ifBlock-&gt;isBlock() ? 1 : 0));

nit: I’d prefer you use don’t negate the isBlock() condition.  Instead, just swap the adjustments to be “... ? 0 : 1”.  I think that better highlights the symmetry at the closing brace.

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:1905
&gt; +    generator.emitProfileControlFlow(m_elseBlock ? m_elseBlock-&gt;endOffset() + 1 : m_ifBlock-&gt;endOffset() + (!m_ifBlock-&gt;isBlock() ? 1 : 0));

Ditto.  Don’t negate the isBlock() condition.

Right now, you would have:
if (x) { &lt;marker&gt; a; &lt;marker&gt; } ...
if (x) { &lt;marker&gt; a; &lt;marker&gt; } else { b; } &lt;marker&gt; ...

I would think to be consistent, it should be:
if (x) { &lt;marker&gt; a; &lt;marker&gt; } ...
if (x) { &lt;marker&gt; a; &lt;marker&gt; } else { b; &lt;marker&gt; } ...

or:
if (x) { &lt;marker&gt; a; } &lt;marker&gt; ...
if (x) { &lt;marker&gt; a; } &lt;marker&gt; else { b; } &lt;marker&gt; ...

Is there a good reason for the different treatment of the close brace for the if block and the else block?

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:1951
&gt; +    generator.emitProfileControlFlow(endOffset() + (!m_statement-&gt;isBlock() ? 1 : 0));

Ditto.  Don’t negate the isBlock() condition.

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:1986
&gt; +    generator.emitProfileControlFlow(endOffset() + (!m_statement-&gt;isBlock() ? 1 : 0));

Ditto.

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2090
&gt; +    int profilerEndOffset = m_statement-&gt;endOffset() + (!m_statement-&gt;isBlock() ? 1 : 0);

Ditto.

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2264
&gt; +    generator.emitProfileControlFlow(m_statement-&gt;endOffset() + (!m_statement-&gt;isBlock() ? 1 : 0));

Ditto.

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:8
&gt; +function testIf(x) {
&gt; +    if (x &lt; 10) { foo(); } else if (x &lt; 20) { bar(); } else { baz() }
&gt; +}

For each of these test cases, can you also add cases without braces?  e.g.
    if (x &lt; 10) foo(); else if (x &lt; 20) bar(); else baz()

We should test that code path as well.

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:29
&gt; +assert(hasBasicBlockExecuted(testIf, &quot;{ foo&quot;), &quot;should have executed.&quot;);

why “{ foo”?  Why not &quot;if (x &lt; 10) {“?

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:34
&gt; +testIf(21);

Can you create a testIf2() and run this test to ensure that the “{ foo” and “foo” parts are also not run?  Basically, I see that your test cases are not comprehensive.  Do you have a good reason for leaving those cases out?

Ditto for some of the test cases below.

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:45
&gt; +assert(hasBasicBlockExecuted(testForRegular, &quot;{ bar&quot;), &quot;should have executed.&quot;); 

There is no “{ bar” in testForRegular.  So, how can this be executed?  I know this is a typo, and I also built and ran your patch + test, and found this test case to pass which makes me suspicious of the test mechanism.  Can you take a second look to see why it is passing when it shouldn’t?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067473</commentid>
    <comment_count>7</comment_count>
      <attachid>246167</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-02-06 17:21:55 -0800</bug_when>
    <thetext>Comment on attachment 246167
patch

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

&gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:1900
&gt;&gt; +        generator.emitProfileControlFlow(m_ifBlock-&gt;endOffset() + (!m_ifBlock-&gt;isBlock() ? 1 : 0));
&gt; 
&gt; nit: I’d prefer you use don’t negate the isBlock() condition.  Instead, just swap the adjustments to be “... ? 0 : 1”.  I think that better highlights the symmetry at the closing brace.

Will change this and the others below.

&gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:1905
&gt;&gt; +    generator.emitProfileControlFlow(m_elseBlock ? m_elseBlock-&gt;endOffset() + 1 : m_ifBlock-&gt;endOffset() + (!m_ifBlock-&gt;isBlock() ? 1 : 0));
&gt; 
&gt; Ditto.  Don’t negate the isBlock() condition.
&gt; 
&gt; Right now, you would have:
&gt; if (x) { &lt;marker&gt; a; &lt;marker&gt; } ...
&gt; if (x) { &lt;marker&gt; a; &lt;marker&gt; } else { b; } &lt;marker&gt; ...
&gt; 
&gt; I would think to be consistent, it should be:
&gt; if (x) { &lt;marker&gt; a; &lt;marker&gt; } ...
&gt; if (x) { &lt;marker&gt; a; &lt;marker&gt; } else { b; &lt;marker&gt; } ...
&gt; 
&gt; or:
&gt; if (x) { &lt;marker&gt; a; } &lt;marker&gt; ...
&gt; if (x) { &lt;marker&gt; a; } &lt;marker&gt; else { b; } &lt;marker&gt; ...
&gt; 
&gt; Is there a good reason for the different treatment of the close brace for the if block and the else block?

Yeah, there is:
Because the it&apos;s comprised like this: &quot;&lt;marker&gt; } else ...&quot;, the marker will always have the &quot;else&quot; text offsets as being part of a new basic block.
If that else statement never executes, then we ensure that &quot;else { ... }&quot; is marked entirely as not executed. 

If we did it this way: &quot;else { b; &lt;marker&gt; }&quot;, if the else clause doesn&apos;t execute, then the &quot;else b;&quot; will be shown as not executing, but the last brace will be shown as executing, and this is just confusing to not have the braces match each other.

&gt;&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:8
&gt;&gt; +}
&gt; 
&gt; For each of these test cases, can you also add cases without braces?  e.g.
&gt;     if (x &lt; 10) foo(); else if (x &lt; 20) bar(); else baz()
&gt; 
&gt; We should test that code path as well.

I will add this, but I think it should be added to the controlFlowProfiler/if-statement.js test.

&gt;&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:29
&gt;&gt; +assert(hasBasicBlockExecuted(testIf, &quot;{ foo&quot;), &quot;should have executed.&quot;);
&gt; 
&gt; why “{ foo”?  Why not &quot;if (x &lt; 10) {“?

Because the offset that is tested against for membership of a particular basic block is the first index of the matched substring. 
I&apos;m just making sure that the &quot;{&quot; is part of the &quot;if (x &lt; 10) {&quot; basic block, and not the &quot; foo();&quot; basic block. 
This will catch future off by one errors.

&gt;&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:34
&gt;&gt; +testIf(21);
&gt; 
&gt; Can you create a testIf2() and run this test to ensure that the “{ foo” and “foo” parts are also not run?  Basically, I see that your test cases are not comprehensive.  Do you have a good reason for leaving those cases out?
&gt; 
&gt; Ditto for some of the test cases below.

There are more comprehensive if-statement tests inside the controlFlowProfiler/if-statement.js file.
But I should add a couple more clauses here just to make sure the braces are executed/not executed as expected.

&gt;&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:45
&gt;&gt; +assert(hasBasicBlockExecuted(testForRegular, &quot;{ bar&quot;), &quot;should have executed.&quot;); 
&gt; 
&gt; There is no “{ bar” in testForRegular.  So, how can this be executed?  I know this is a typo, and I also built and ran your patch + test, and found this test case to pass which makes me suspicious of the test mechanism.  Can you take a second look to see why it is passing when it shouldn’t?

Good catch.
My guess is that the test is passing because I do a WTFString::find on the source, which will return -1, which indicates it&apos;s not a substring. 
But, when searching for the offset, I add the offset of the start of the function, so it&apos;s just checking if that function ran, which it indeed did.

Testing hypothesis now. And also adding an assert to make sure that the supposed substring is indeed a substring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067475</commentid>
    <comment_count>8</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-02-06 17:24:48 -0800</bug_when>
    <thetext>&gt; Because the it&apos;s comprised like this: &quot;&lt;marker&gt; } else ...&quot;, the marker will
/s/it&apos;s/if&apos;s/

&gt; execute, then the &quot;else b;&quot; will be shown as not executing, but the last
/s/&quot;else b;&quot;/&quot;else {b;&quot;/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067481</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-02-06 17:46:20 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; Right now, you would have:
&gt; &gt; if (x) { &lt;marker&gt; a; &lt;marker&gt; } ...
&gt; &gt; if (x) { &lt;marker&gt; a; &lt;marker&gt; } else { b; } &lt;marker&gt; ...
&gt; &gt; 
&gt; &gt; I would think to be consistent, it should be:
&gt; &gt; if (x) { &lt;marker&gt; a; &lt;marker&gt; } ...
&gt; &gt; if (x) { &lt;marker&gt; a; &lt;marker&gt; } else { b; &lt;marker&gt; } ...
&gt; &gt; 
&gt; &gt; or:
&gt; &gt; if (x) { &lt;marker&gt; a; } &lt;marker&gt; ...
&gt; &gt; if (x) { &lt;marker&gt; a; } &lt;marker&gt; else { b; } &lt;marker&gt; ...
&gt; &gt; 
&gt; &gt; Is there a good reason for the different treatment of the close brace for the if block and the else block?
&gt; 
&gt; Yeah, there is:
&gt; Because the it&apos;s comprised like this: &quot;&lt;marker&gt; } else ...&quot;, the marker will
&gt; always have the &quot;else&quot; text offsets as being part of a new basic block.
&gt; If that else statement never executes, then we ensure that &quot;else { ... }&quot; is
&gt; marked entirely as not executed. 
&gt; 
&gt; If we did it this way: &quot;else { b; &lt;marker&gt; }&quot;, if the else clause doesn&apos;t
&gt; execute, then the &quot;else b;&quot; will be shown as not executing, but the last
&gt; brace will be shown as executing, and this is just confusing to not have the
&gt; braces match each other.

But how about the 3rd case:
if (x) { &lt;marker&gt; a; } &lt;marker&gt; ...
if (x) { &lt;marker&gt; a; } &lt;marker&gt; else { b; } &lt;marker&gt; ...

Wouldn’t that satisfy the requirement?  Or am I missing something?

For that matter, why not this alternative:

if (x) &lt;marker&gt; { a; } &lt;marker&gt; ...
if (x) &lt;marker&gt; { a; } &lt;marker&gt; else { b; } &lt;marker&gt; ...

Why do we need to exclude the open brace?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067534</commentid>
    <comment_count>10</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-02-07 09:47:25 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #7)
&gt; &gt; &gt; Right now, you would have:
&gt; &gt; &gt; if (x) { &lt;marker&gt; a; &lt;marker&gt; } ...
&gt; &gt; &gt; if (x) { &lt;marker&gt; a; &lt;marker&gt; } else { b; } &lt;marker&gt; ...
&gt; &gt; &gt; 
&gt; &gt; &gt; I would think to be consistent, it should be:
&gt; &gt; &gt; if (x) { &lt;marker&gt; a; &lt;marker&gt; } ...
&gt; &gt; &gt; if (x) { &lt;marker&gt; a; &lt;marker&gt; } else { b; &lt;marker&gt; } ...
&gt; &gt; &gt; 
&gt; &gt; &gt; or:
&gt; &gt; &gt; if (x) { &lt;marker&gt; a; } &lt;marker&gt; ...
&gt; &gt; &gt; if (x) { &lt;marker&gt; a; } &lt;marker&gt; else { b; } &lt;marker&gt; ...
&gt; &gt; &gt; 
&gt; &gt; &gt; Is there a good reason for the different treatment of the close brace for the if block and the else block?
&gt; &gt; 
&gt; &gt; Yeah, there is:
&gt; &gt; Because the it&apos;s comprised like this: &quot;&lt;marker&gt; } else ...&quot;, the marker will
&gt; &gt; always have the &quot;else&quot; text offsets as being part of a new basic block.
&gt; &gt; If that else statement never executes, then we ensure that &quot;else { ... }&quot; is
&gt; &gt; marked entirely as not executed. 
&gt; &gt; 
&gt; &gt; If we did it this way: &quot;else { b; &lt;marker&gt; }&quot;, if the else clause doesn&apos;t
&gt; &gt; execute, then the &quot;else b;&quot; will be shown as not executing, but the last
&gt; &gt; brace will be shown as executing, and this is just confusing to not have the
&gt; &gt; braces match each other.
&gt; 
&gt; But how about the 3rd case:
&gt; if (x) { &lt;marker&gt; a; } &lt;marker&gt; ...
&gt; if (x) { &lt;marker&gt; a; } &lt;marker&gt; else { b; } &lt;marker&gt; ...
&gt; 
&gt; Wouldn’t that satisfy the requirement?  Or am I missing something?
&gt; 
&gt; For that matter, why not this alternative:
&gt; 
&gt; if (x) &lt;marker&gt; { a; } &lt;marker&gt; ...
&gt; if (x) &lt;marker&gt; { a; } &lt;marker&gt; else { b; } &lt;marker&gt; ...
&gt; 
&gt; Why do we need to exclude the open brace?

There were two bugs that falsely lead me to think we could do:
&quot;if (x) { &lt;marker&gt; a; &lt;marker&gt; } else { b; } &lt;marker&gt; ...&quot;
and have the meta data associating the if statement&apos;s closing curly braces as always being executed. 
We had an off by one bug in the parser that gives the wrong opening brace offset 
to BlockNode&apos;s starting offset and also there was a UI bug in the inspector that 
also had a off by one error. This made things tricky to reason about.

After looking at the underlying data (not through the inspector&apos;s UI), it&apos;s obvious 
that if only one of the paths in an if/else execute, you can&apos;t have the closing if 
statement&apos;s brace always indicating that it&apos;s been executed. It must be tied to 
either the if-true branch executing or the else branch executing. Instead, my next patch 
will use Mark&apos;s above suggested scheme:
if (x) &lt;marker&gt; { a; } &lt;marker&gt; ...
if (x) &lt;marker&gt; { a; } &lt;marker&gt; else { b; } &lt;marker&gt; ...

which will always result in having both the open/close brace of the if statement tied
to the if-true branch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067764</commentid>
    <comment_count>11</comment_count>
      <attachid>246258</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-02-08 23:10:03 -0800</bug_when>
    <thetext>Created attachment 246258
perf tests

performance tests for upcoming patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067767</commentid>
    <comment_count>12</comment_count>
      <attachid>246259</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-02-09 00:08:27 -0800</bug_when>
    <thetext>Created attachment 246259
patch

Made the changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067867</commentid>
    <comment_count>13</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-02-09 11:42:27 -0800</bug_when>
    <thetext>Saam, in the benchmark results, I see:

JSRegress:
   array-splice-contiguous                           45.6274+-4.8273     !     54.3857+-3.7530        ! definitely 1.1920x slower

Can you take a look at what’s really happening there?  Is this regression real?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067879</commentid>
    <comment_count>14</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-09 12:12:41 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Saam, in the benchmark results, I see:
&gt; 
&gt; JSRegress:
&gt;    array-splice-contiguous                           45.6274+-4.8273     !  
&gt; 54.3857+-3.7530        ! definitely 1.1920x slower
&gt; 
&gt; Can you take a look at what’s really happening there?  Is this regression
&gt; real?

Let&apos;s not get into this.

The selection statistics of having so many tiny tests in JSRegress means that any code change will cause some subset of those tests to fluctuate, often by a lot.  This isn&apos;t a large or important test, so I don&apos;t think we should spend time investigating what happened unless there is also a trend of slow-downs in larger tests or in test averages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067927</commentid>
    <comment_count>15</comment_count>
      <attachid>246296</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-02-09 15:12:34 -0800</bug_when>
    <thetext>Created attachment 246296
more perf tests

Yeah, ran a two more runs of JSRegress before I saw Fil&apos;s comments. 
It looks like perf isn&apos;t really changed from this. 
Says it&apos;s &quot;definitely&quot; faster/slower in a few instances which I don&apos;t buy either way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067956</commentid>
    <comment_count>16</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-02-09 16:09:32 -0800</bug_when>
    <thetext>There are a few more changes I need to make, actually. I&apos;ve discovered another area that needs tweaking. Will upload patch soon. It will be 95% or more the same patch as this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068083</commentid>
    <comment_count>17</comment_count>
      <attachid>246331</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-02-10 09:25:23 -0800</bug_when>
    <thetext>Created attachment 246331
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068720</commentid>
    <comment_count>18</comment_count>
      <attachid>246331</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-02-12 13:08:18 -0800</bug_when>
    <thetext>Comment on attachment 246331
patch

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

&gt; Source/JavaScriptCore/ChangeLog:32
&gt; +        * bytecode/CodeBlock.cpp:
&gt; +        (JSC::CodeBlock::insertBasicBlockBoundariesForControlFlowProfiler):
&gt; +        When computing basic block boundaries in CodeBlock, we ensure that every
&gt; +        block&apos;s end offset is one less than its successor&apos;s start offset to
&gt; +        maintain that boundaries&apos; ranges should be mutually exclusive.
&gt; +

Duplicate comment.  Please remove.

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:41
&gt; +assert(!hasBasicBlockExecuted(testIf, &quot;{ bar&quot;), &quot;should not have executed.&quot;); 
&gt; +assert(!hasBasicBlockExecuted(testIf, &quot; bar&quot;), &quot;should not have executed.&quot;); 

I think you should also test this case:
assert(hasBasicBlockExecuted(testIf, &quot;else if&quot;), &quot;should not have executed.&quot;);
assert(!hasBasicBlockExecuted(testIf, &quot;else {&quot;), &quot;should have executed.&quot;);
assert(!hasBasicBlockExecuted(testIf, &quot;{ baz&quot;), &quot;should have executed.&quot;);
assert(!hasBasicBlockExecuted(testIf, &quot; baz&quot;), &quot;should have executed.&quot;);

Basically, you need to re-check all paths that remains un-executed, and paths that are newly executed.  And for this patch, we&apos;re particularly interested in the edge cases i.e &quot;else if&quot; and &quot;else {&quot;.

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:45
&gt; +assert(hasBasicBlockExecuted(testIf, &quot;{ bar&quot;), &quot;should have executed.&quot;); 
&gt; +assert(hasBasicBlockExecuted(testIf, &quot; bar&quot;), &quot;should have executed.&quot;); 

I think you should also test this case:
assert(hasBasicBlockExecuted(testIf, &quot;else {&quot;), &quot;should have executed.&quot;);

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:106
&gt; +// So in this following case, the block that contains the &apos;{&apos;.

Invalid comment from copy paste error.  Please remove.

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:110
&gt; +assert(hasBasicBlockExecuted(testIfNoBraces, &quot; foo&quot;), &quot;should have executed.&quot;);
&gt; +assert(!hasBasicBlockExecuted(testIfNoBraces, &quot; else if&quot;), &quot;should not have executed.&quot;);

Thinking about edge cases, how about the case:
assert(!hasBasicBlockExecuted(testIfNoBraces, &quot;; else if&quot;), &quot;should have executed.&quot;);
assert(!hasBasicBlockExecuted(testIfNoBraces, &quot;) bar&quot;), &quot;should not have executed.&quot;);
assert(!hasBasicBlockExecuted(testIfNoBraces, &quot;; else baz&quot;), &quot;should not have executed.&quot;);

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:112
&gt; +assert(!hasBasicBlockExecuted(testIfNoBraces, &quot;else&quot;), &quot;should not have executed.&quot;); 

Isn&apos;t &quot;else&quot; here ambiguous and will actually match the block for &quot;else if (&quot; instead of &quot;else baz&quot;?  I think you should test for &quot;else baz&quot;.

nit: I happened to notice that there are empty spaces at the end of these lines (and possibly some of the ones above and below as well).  Can you remove them please?

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:116
&gt; +assert(!hasBasicBlockExecuted(testIfNoBraces, &quot;bar&quot;), &quot;should not have executed.&quot;); 
&gt; +assert(hasBasicBlockExecuted(testIfNoBraces, &quot;else baz&quot;), &quot;should have executed.&quot;); 

Consider adding:
assert(!hasBasicBlockExecuted(testIfNoBraces, &quot;else if&quot;), &quot;should not have executed.&quot;);
assert(!hasBasicBlockExecuted(testIfNoBraces, &quot;) bar&quot;), &quot;should not have executed.&quot;);
assert(!hasBasicBlockExecuted(testIfNoBraces, &quot;; else baz&quot;), &quot;should have executed.&quot;);

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:119
&gt; +assert(hasBasicBlockExecuted(testIfNoBraces, &quot; bar&quot;), &quot;should have executed.&quot;); 
&gt; +assert(hasBasicBlockExecuted(testIfNoBraces, &quot;bar&quot;), &quot;should have executed.&quot;); 

Consider adding cases:
assert(!hasBasicBlockExecuted(testIfNoBraces, &quot;else if&quot;), &quot;should have executed.&quot;);
assert(!hasBasicBlockExecuted(testIfNoBraces, &quot;) bar&quot;), &quot;should have executed.&quot;);

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:128
&gt; +assert(hasBasicBlockExecuted(testForRegularNoBraces, &quot; foo&quot;), &quot;should have executed.&quot;); 
&gt; +assert(hasBasicBlockExecuted(testForRegularNoBraces, &quot;foo&quot;), &quot;should have executed.&quot;); 

Consider adding:
assert(!hasBasicBlockExecuted(testForRegularNoBraces, &quot;; bar&quot;), &quot;should have executed.&quot;);

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:137
&gt; +assert(hasBasicBlockExecuted(testForInNoBraces, &quot; foo&quot;), &quot;should have executed.&quot;); 
&gt; +assert(hasBasicBlockExecuted(testForInNoBraces, &quot;foo&quot;), &quot;should have executed.&quot;); 

Consider adding:
assert(!hasBasicBlockExecuted(testForInNoBraces, &quot;; bar&quot;), &quot;should have executed.&quot;);

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:146
&gt; +assert(hasBasicBlockExecuted(testForOfNoBraces, &quot; foo&quot;), &quot;should have executed.&quot;); 
&gt; +assert(hasBasicBlockExecuted(testForOfNoBraces, &quot;foo&quot;), &quot;should have executed.&quot;); 

Consider adding:
assert(!hasBasicBlockExecuted(testForOfNoBraces, &quot;; bar&quot;), &quot;should have executed.&quot;);

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:155
&gt; +assert(hasBasicBlockExecuted(testWhileNoBraces, &quot; foo&quot;), &quot;should have executed.&quot;); 
&gt; +assert(hasBasicBlockExecuted(testWhileNoBraces, &quot;foo&quot;), &quot;should have executed.&quot;); 

Consider adding:
assert(!hasBasicBlockExecuted(testWhileNoBraces, &quot;; bar&quot;), &quot;should have executed.&quot;);

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/conditional-expression.js:11
&gt; +function testConditionalFunction(x, y) {

What makes this &quot;testConditionalFunction&quot;?  Maybe &quot;testConditionalNested&quot; might be a better name (assuming I&apos;m reading your naming convention correctly)?

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/conditional-expression.js:20
&gt; +assert(hasBasicBlockExecuted(testConditionalBasic, &quot;x&quot;), &quot;should have executed.&quot;);
&gt; +assert(hasBasicBlockExecuted(testConditionalBasic, &quot;20&quot;), &quot;should have executed.&quot;);
&gt; +assert(!hasBasicBlockExecuted(testConditionalBasic, &quot;10&quot;), &quot;should not have executed yet.&quot;);

Consider adding:
assert(hasBasicBlockExecuted(testConditionalBasic, &quot;?&quot;), &quot;should have executed.&quot;);
assert(hasBasicBlockExecuted(testConditionalBasic, &quot;:&quot;), &quot;should have executed.&quot;);

I think you also need a copy of testConditionalBasic (maybe testConditionalBasic2) so that you can test testConditionalBasic2(true) first and ensure that the &quot;:&quot; is not executed.

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/conditional-expression.js:30
&gt; +assert(hasBasicBlockExecuted(testConditionalFunction, &quot;x&quot;), &quot;should have executed.&quot;);
&gt; +assert(hasBasicBlockExecuted(testConditionalFunction, &quot;bar&quot;), &quot;should have executed.&quot;);
&gt; +assert(!hasBasicBlockExecuted(testConditionalFunction, &quot;foo&quot;), &quot;should not have executed yet.&quot;);
&gt; +assert(!hasBasicBlockExecuted(testConditionalFunction, &quot;baz&quot;), &quot;should not have executed yet.&quot;);

Consider adding:
assert(hasBasicBlockExecuted(testConditionalFunction, &quot;? y&quot;), &quot;should have executed.&quot;);
assert(hasBasicBlockExecuted(testConditionalFunction, &quot;? foo&quot;), &quot;should not have executed.&quot;);
assert(!hasBasicBlockExecuted(testConditionalFunction, &quot;: baz&quot;), &quot;should not have executed yet.&quot;);
assert(hasBasicBlockExecuted(testConditionalFunction, &quot;: bar&quot;), &quot;should have executed.&quot;);

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/conditional-expression.js:34
&gt; +assert(hasBasicBlockExecuted(testConditionalFunction, &quot;baz&quot;), &quot;should have executed.&quot;);
&gt; +assert(!hasBasicBlockExecuted(testConditionalFunction, &quot;foo&quot;), &quot;should not have executed yet.&quot;);

Consider adding:
assert(hasBasicBlockExecuted(testConditionalFunction, &quot;? foo&quot;), &quot;should have executed.&quot;);
assert(!hasBasicBlockExecuted(testConditionalFunction, &quot;: baz&quot;), &quot;should have executed yet.&quot;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070909</commentid>
    <comment_count>19</comment_count>
      <attachid>247024</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-02-20 17:56:00 -0800</bug_when>
    <thetext>Created attachment 247024
patch

new patch with more edge cases in tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071266</commentid>
    <comment_count>20</comment_count>
      <attachid>247024</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-02-23 11:33:17 -0800</bug_when>
    <thetext>Comment on attachment 247024
patch

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

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:75
&gt; +assert(hasBasicBlockExecuted(testWhile, &quot; bar&quot;), &quot;should not have executed.&quot;); 

Shouldn&apos;t this be &quot;should have executed.&quot;?

After spotting this mismatch between the assertion and the text string (and noticed a few others below), I&apos;d like to suggest a different approach to expressing the tests:

1. At the top of this file, declare:

var ShouldHaveExecuted = true;
var ShouldNotHaveExecuted = false;

function checkBasicBlock(func, expr, expectation)
{
    if (expectation = ShouldHaveExecuted)
        assert(hasBasicBlockExecuted(func, expr, &quot;should have executed&quot;);
    else
        assert(!hasBasicBlockExecuted(func, expr, &quot;should not have executed&quot;);
}

2. When expressing the tests, express them like this:

checkBasicBlock(testWhile, &quot; bar&quot;, ShouldHaveExecuted);

I think expressing them this way will eliminate cut-and-paste errors that caused these mismatches between the assertion and the text string.  Sorry that I didn&apos;t catch this the first time I read thru the tests.

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:100
&gt; +assert(hasBasicBlockExecuted(testIfNoBraces, &quot; bar&quot;), &quot;should have executed.&quot;); 

This is strange that the white space before &quot;bar&quot; is attributed to the &quot;else if (x &lt; 20)&quot; preceding it rather than the &quot;bar&quot; after it.  To the average human being, &quot; bar&quot; reads the same as &quot;bar&quot;, and hence, would be interpreted as &quot;bar&quot; should have executed.  Hence, I was expecting this to result in &quot;should not have executed.&quot; but was surprised to find the contrary.

Is this intentional?

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:110
&gt; +assert(hasBasicBlockExecuted(testForRegularNoBraces, &quot; foo&quot;), &quot;should have executed.&quot;); 

Same here with the preceding white space.

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:117
&gt; +assert(hasBasicBlockExecuted(testForRegularNoBraces, &quot; bar&quot;), &quot;should not have executed.&quot;); 

The text does not match the assertion.  It should read &quot;should have executed&quot;.

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:123
&gt; +assert(hasBasicBlockExecuted(testForInNoBraces, &quot; foo&quot;), &quot;should have executed.&quot;); 

Same here with the preceding white space.

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:136
&gt; +assert(hasBasicBlockExecuted(testForOfNoBraces, &quot; foo&quot;), &quot;should have executed.&quot;); 

Same here with the preceding white space.

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:149
&gt; +assert(hasBasicBlockExecuted(testWhileNoBraces, &quot; foo&quot;), &quot;should have executed.&quot;); 

Same here with the preceding white space.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071280</commentid>
    <comment_count>21</comment_count>
      <attachid>247133</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-02-23 12:15:27 -0800</bug_when>
    <thetext>Created attachment 247133
patch

With changelog and test case describing why we split:
&quot;if (cond) bar();&quot;
into the blocks:
&quot;if (cond) &quot; and &quot;bar();&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071285</commentid>
    <comment_count>22</comment_count>
      <attachid>247133</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-02-23 12:23:47 -0800</bug_when>
    <thetext>Comment on attachment 247133
patch

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

&gt; Source/JavaScriptCore/tests/controlFlowProfiler/brace-location.js:75
&gt; +assert(hasBasicBlockExecuted(testWhile, &quot; bar&quot;), &quot;should not have executed.&quot;); 

Still a mismatch here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071299</commentid>
    <comment_count>23</comment_count>
      <attachid>247138</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-02-23 13:10:36 -0800</bug_when>
    <thetext>Created attachment 247138
patch

Looks Mark&apos;s suggestion and re-wrote tests using the form:

checkBasicBlock(testWhile, &quot; bar&quot;, ShouldHaveExecuted);

And things are much cleaner now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071300</commentid>
    <comment_count>24</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-02-23 13:11:18 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; Created attachment 247138 [details]
&gt; patch
&gt; 
&gt; Looks Mark&apos;s suggestion and re-wrote tests using the form:
Took*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071306</commentid>
    <comment_count>25</comment_count>
      <attachid>247138</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-02-23 13:24:37 -0800</bug_when>
    <thetext>Comment on attachment 247138
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071333</commentid>
    <comment_count>26</comment_count>
      <attachid>247138</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-23 14:11:08 -0800</bug_when>
    <thetext>Comment on attachment 247138
patch

Clearing flags on attachment: 247138

Committed r180518: &lt;http://trac.webkit.org/changeset/180518&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071334</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-23 14:11:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245791</attachid>
            <date>2015-01-31 12:20:22 -0800</date>
            <delta_ts>2015-02-06 01:11:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141095-20150131122030.patch</filename>
            <type>text/plain</type>
            <size>7379</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc5NDQzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDE1LTAxLTMxICBTYWFtIEJhcmF0aSAgPHNhYW1iYXJhdGkxQGdtYWlsLmNvbT4KKworICAg
ICAgICBBZGp1c3QgdGhlIHJhbmdlcyBvZiBjZXJ0YWluIGJhc2ljIGJsb2NrIHN0YXRlbWVudHMg
aW4gSlNDJ3MgY29udHJvbCBmbG93IHByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDEwOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgYmFzaWMgYmxvY2sgYm91bmRhcmllcyB3ZSBhcmUg
aW50ZXJlc3RlZCBpbiBjaGFuZ2luZyBhcmUgdGhlCisgICAgICAgIGJhc2ljIGJsb2NrcyB0aGF0
IGFyZSBKYXZhU2NyaXB0IGJsb2NrIHN0YXRlbWVudHMuIEZvciBleGFtcGxlLCBGb3IgCisgICAg
ICAgIGxvb3BzLCBXaGlsZSBsb29wcywgYW5kIElmIHN0YXRlbWVudHMgd2hlbiB0aGV5IGNvbnRh
aW4gYmxvY2sgCisgICAgICAgIHN0YXRlbWVudHMgYW5kIG5vdCBzaW5nbGUgbGluZSBleHByZXNz
aW9ucyBhcyB0aGVpciBib2RpZXMuIFdlCisgICAgICAgIHdhbnQgdGhlIHRleHR1YWwgYmFzaWMg
YmxvY2sgYm91bmRhcmllcyBmb3IgdGhlc2Ugc3RhdGVtZW50cyB0bworICAgICAgICBzdGFydCBv
bmUgY2hhcmFjdGVyIGFmdGVyIHRoZWlyIG9wZW5pbmcgJ3snIGFuZCB0byBlbmQgb25lIGNoYXJh
Y3RlcgorICAgICAgICBiZWZvcmUgdGhlaXIgY2xvc2luZyAnfScuCisKKyAgICAgICAgKiBieXRl
Y29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6SWZFbHNlTm9kZTo6ZW1p
dEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6V2hpbGVOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAg
ICAgICAoSlNDOjpGb3JOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpGb3JJbk5v
ZGU6OmVtaXRNdWx0aUxvb3BCeXRlY29kZSk6CisgICAgICAgIChKU0M6OkZvck9mTm9kZTo6ZW1p
dEJ5dGVjb2RlKToKKwogMjAxNS0wMS0zMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE3OTQyNi4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHAJKHJldmlzaW9uIDE3OTM5NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg4Niw3ICsxODg2
LDcgQEAgdm9pZCBJZkVsc2VOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZQogCiAgICAgZ2Vu
ZXJhdG9yLmVtaXROb2RlSW5Db25kaXRpb25Db250ZXh0KG1fY29uZGl0aW9uLCB0cnVlVGFyZ2V0
LCBmYWxzZVRhcmdldCwgZmFsbFRocm91Z2hNb2RlKTsKICAgICBnZW5lcmF0b3IuZW1pdExhYmVs
KGJlZm9yZVRoZW4uZ2V0KCkpOwotICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93
KG1faWZCbG9jay0+c3RhcnRPZmZzZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29u
dHJvbEZsb3cobV9pZkJsb2NrLT5zdGFydE9mZnNldCgpICsgKG1faWZCbG9jay0+aXNCbG9jaygp
ID8gMSA6IDApKTsKIAogICAgIGlmICghZGlkRm9sZElmQmxvY2spIHsKICAgICAgICAgZ2VuZXJh
dG9yLmVtaXROb2RlKGRzdCwgbV9pZkJsb2NrKTsKQEAgLTE5MDIsNyArMTkwMiw3IEBAIHZvaWQg
SWZFbHNlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2UKICAgICB9CiAKICAgICBnZW5lcmF0
b3IuZW1pdExhYmVsKGFmdGVyRWxzZS5nZXQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxl
Q29udHJvbEZsb3cobV9lbHNlQmxvY2sgPyBtX2Vsc2VCbG9jay0+ZW5kT2Zmc2V0KCkgOiBtX2lm
QmxvY2stPmVuZE9mZnNldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxv
dyhtX2Vsc2VCbG9jayA/IG1fZWxzZUJsb2NrLT5lbmRPZmZzZXQoKSA6IG1faWZCbG9jay0+ZW5k
T2Zmc2V0KCkgLSAobV9pZkJsb2NrLT5pc0Jsb2NrKCkgPyAxIDogMCkpOwogfQogCiAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRG9XaGlsZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQpAQCAtMTkzOCw3ICsxOTM4LDcgQEAgdm9pZCBXaGlsZU5vZGU6OmVt
aXRCeXRlY29kZShCeXRlY29kZUdlbgogICAgIGdlbmVyYXRvci5lbWl0TGFiZWwodG9wT2ZMb29w
LmdldCgpKTsKICAgICBnZW5lcmF0b3IuZW1pdExvb3BIaW50KCk7CiAgICAgCi0gICAgZ2VuZXJh
dG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPnN0YXJ0T2Zmc2V0KCkpOwor
ICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fc3RhdGVtZW50LT5zdGFydE9m
ZnNldCgpICsgKG1fc3RhdGVtZW50LT5pc0Jsb2NrKCkgPyAxIDogMCkpOwogICAgIGdlbmVyYXRv
ci5lbWl0Tm9kZShkc3QsIG1fc3RhdGVtZW50KTsKIAogICAgIGdlbmVyYXRvci5lbWl0TGFiZWwo
c2NvcGUtPmNvbnRpbnVlVGFyZ2V0KCkpOwpAQCAtMTk0OCw3ICsxOTQ4LDcgQEAgdm9pZCBXaGls
ZU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbgogCiAgICAgZ2VuZXJhdG9yLmVtaXRMYWJl
bChzY29wZS0+YnJlYWtUYXJnZXQoKSk7CiAKLSAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250
cm9sRmxvdyhlbmRPZmZzZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZs
b3coZW5kT2Zmc2V0KCkgLSAobV9zdGF0ZW1lbnQtPmlzQmxvY2soKSA/IDEgOiAwKSk7CiB9CiAK
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGb3JOb2RlIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xOTY4LDcgKzE5NjgsNyBAQCB2b2lkIEZvck5v
ZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyCiAKICAgICBnZW5lcmF0b3IuZW1pdExhYmVs
KHRvcE9mTG9vcC5nZXQoKSk7CiAgICAgZ2VuZXJhdG9yLmVtaXRMb29wSGludCgpOwotICAgIGdl
bmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fc3RhdGVtZW50LT5zdGFydE9mZnNldCgp
KTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3N0YXRlbWVudC0+c3Rh
cnRPZmZzZXQoKSArIChtX3N0YXRlbWVudC0+aXNCbG9jaygpID8gMSA6IDApKTsKIAogICAgIGdl
bmVyYXRvci5lbWl0Tm9kZShkc3QsIG1fc3RhdGVtZW50KTsKIApAQCAtMTk4Myw3ICsxOTgzLDcg
QEAgdm9pZCBGb3JOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcgogICAgICAgICBnZW5l
cmF0b3IuZW1pdEp1bXAodG9wT2ZMb29wLmdldCgpKTsKIAogICAgIGdlbmVyYXRvci5lbWl0TGFi
ZWwoc2NvcGUtPmJyZWFrVGFyZ2V0KCkpOwotICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRy
b2xGbG93KGVuZE9mZnNldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxv
dyhlbmRPZmZzZXQoKSAtIChtX3N0YXRlbWVudC0+aXNCbG9jaygpID8gMSA6IDApKTsKIH0KIAog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZvckluTm9kZSAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIwODYsNiArMjA4Niw4IEBAIHZvaWQgRm9ySW5O
b2RlOjplbWl0TXVsdGlMb29wQnl0ZWNvZGUoQnkKICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoYmFz
ZS5nZXQoKSwgbV9leHByKTsKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gbG9jYWwgPSB0aGlzLT50
cnlHZXRCb3VuZExvY2FsKGdlbmVyYXRvcik7CiAKKyAgICBpbnQgcHJvZmlsZXJTdGFydE9mZnNl
dCA9IG1fc3RhdGVtZW50LT5zdGFydE9mZnNldCgpICsgKG1fc3RhdGVtZW50LT5pc0Jsb2NrKCkg
PyAxIDogMCk7CisgICAgaW50IHByb2ZpbGVyRW5kT2Zmc2V0ID0gbV9zdGF0ZW1lbnQtPmVuZE9m
ZnNldCgpIC0gKG1fc3RhdGVtZW50LT5pc0Jsb2NrKCkgPyAxIDogMCk7CiAgICAgLy8gSW5kZXhl
ZCBwcm9wZXJ0eSBsb29wLgogICAgIHsKICAgICAgICAgTGFiZWxTY29wZVB0ciBzY29wZSA9IGdl
bmVyYXRvci5uZXdMYWJlbFNjb3BlKExhYmVsU2NvcGU6Okxvb3ApOwpAQCAtMjEwNywxMyArMjEw
OSwxMyBAQCB2b2lkIEZvckluTm9kZTo6ZW1pdE11bHRpTG9vcEJ5dGVjb2RlKEJ5CiAgICAgICAg
IGdlbmVyYXRvci5lbWl0VG9JbmRleFN0cmluZyhwcm9wZXJ0eU5hbWUuZ2V0KCksIGkuZ2V0KCkp
OwogICAgICAgICB0aGlzLT5lbWl0TG9vcEhlYWRlcihnZW5lcmF0b3IsIHByb3BlcnR5TmFtZS5n
ZXQoKSk7CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9zdGF0
ZW1lbnQtPnN0YXJ0T2Zmc2V0KCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250
cm9sRmxvdyhwcm9maWxlclN0YXJ0T2Zmc2V0KTsKIAogICAgICAgICBnZW5lcmF0b3IucHVzaElu
ZGV4ZWRGb3JJblNjb3BlKGxvY2FsLmdldCgpLCBpLmdldCgpKTsKICAgICAgICAgZ2VuZXJhdG9y
LmVtaXROb2RlKGRzdCwgbV9zdGF0ZW1lbnQpOwogICAgICAgICBnZW5lcmF0b3IucG9wSW5kZXhl
ZEZvckluU2NvcGUobG9jYWwuZ2V0KCkpOwogCi0gICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmls
ZUNvbnRyb2xGbG93KG1fc3RhdGVtZW50LT5lbmRPZmZzZXQoKSk7CisgICAgICAgIGdlbmVyYXRv
ci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KHByb2ZpbGVyRW5kT2Zmc2V0KTsKIAogICAgICAgICBn
ZW5lcmF0b3IuZW1pdExhYmVsKHNjb3BlLT5jb250aW51ZVRhcmdldCgpKTsKICAgICAgICAgZ2Vu
ZXJhdG9yLmVtaXRJbmMoaS5nZXQoKSk7CkBAIC0yMTQ1LDEzICsyMTQ3LDEzIEBAIHZvaWQgRm9y
SW5Ob2RlOjplbWl0TXVsdGlMb29wQnl0ZWNvZGUoQnkKIAogICAgICAgICB0aGlzLT5lbWl0TG9v
cEhlYWRlcihnZW5lcmF0b3IsIHByb3BlcnR5TmFtZS5nZXQoKSk7CiAKLSAgICAgICAgZ2VuZXJh
dG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPnN0YXJ0T2Zmc2V0KCkpOwor
ICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhwcm9maWxlclN0YXJ0T2Zm
c2V0KTsKIAogICAgICAgICBnZW5lcmF0b3IucHVzaFN0cnVjdHVyZUZvckluU2NvcGUobG9jYWwu
Z2V0KCksIGkuZ2V0KCksIHByb3BlcnR5TmFtZS5nZXQoKSwgc3RydWN0dXJlRW51bWVyYXRvci5n
ZXQoKSk7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0Tm9kZShkc3QsIG1fc3RhdGVtZW50KTsKICAg
ICAgICAgZ2VuZXJhdG9yLnBvcFN0cnVjdHVyZUZvckluU2NvcGUobG9jYWwuZ2V0KCkpOwogCi0g
ICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fc3RhdGVtZW50LT5lbmRP
ZmZzZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KHByb2Zp
bGVyRW5kT2Zmc2V0KTsKIAogICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHNjb3BlLT5jb250
aW51ZVRhcmdldCgpKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRJbmMoaS5nZXQoKSk7CkBAIC0y
MTgyLDcgKzIxODQsNyBAQCB2b2lkIEZvckluTm9kZTo6ZW1pdE11bHRpTG9vcEJ5dGVjb2RlKEJ5
CiAKICAgICAgICAgdGhpcy0+ZW1pdExvb3BIZWFkZXIoZ2VuZXJhdG9yLCBwcm9wZXJ0eU5hbWUu
Z2V0KCkpOwogCi0gICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fc3Rh
dGVtZW50LT5zdGFydE9mZnNldCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29u
dHJvbEZsb3cocHJvZmlsZXJTdGFydE9mZnNldCk7CiAKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRO
b2RlKGRzdCwgbV9zdGF0ZW1lbnQpOwogCkBAIC0yMjAzLDcgKzIyMDUsNyBAQCB2b2lkIEZvcklu
Tm9kZTo6ZW1pdE11bHRpTG9vcEJ5dGVjb2RlKEJ5CiAKICAgICBnZW5lcmF0b3IuZW1pdERlYnVn
SG9vayhXaWxsRXhlY3V0ZVN0YXRlbWVudCwgZmlyc3RMaW5lKCksIHN0YXJ0T2Zmc2V0KCksIGxp
bmVTdGFydE9mZnNldCgpKTsKICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGVuZC5nZXQoKSk7Ci0g
ICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPmVuZE9mZnNl
dCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhwcm9maWxlckVuZE9m
ZnNldCk7CiB9CiAKIHZvaWQgRm9ySW5Ob2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQpAQCAtMjI1NSwxMSArMjI1NywxMSBAQCB2
b2lkIEZvck9mTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuCiAgICAgICAgICAgICBEZWNv
bnN0cnVjdGluZ0Fzc2lnbm1lbnROb2RlKiBhc3NpZ25Ob2RlID0gc3RhdGljX2Nhc3Q8RGVjb25z
dHJ1Y3RpbmdBc3NpZ25tZW50Tm9kZSo+KG1fbGV4cHIpOwogICAgICAgICAgICAgYXNzaWduTm9k
ZS0+YmluZGluZ3MoKS0+YmluZFZhbHVlKGdlbmVyYXRvciwgdmFsdWUpOwogICAgICAgICB9Ci0g
ICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fc3RhdGVtZW50LT5zdGFy
dE9mZnNldCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9z
dGF0ZW1lbnQtPnN0YXJ0T2Zmc2V0KCkgKyAobV9zdGF0ZW1lbnQtPmlzQmxvY2soKSA/IDEgOiAw
KSk7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0Tm9kZShkc3QsIG1fc3RhdGVtZW50KTsKICAgICB9
OwogICAgIGdlbmVyYXRvci5lbWl0RW51bWVyYXRpb24odGhpcywgbV9leHByLCBleHRyYWN0b3Ip
OwotICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fc3RhdGVtZW50LT5lbmRP
ZmZzZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9zdGF0ZW1l
bnQtPmVuZE9mZnNldCgpIC0gKG1fc3RhdGVtZW50LT5pc0Jsb2NrKCkgPyAxIDogMCkpOwogfQog
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ29udGludWVOb2RlIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246155</attachid>
            <date>2015-02-06 01:11:28 -0800</date>
            <delta_ts>2015-02-06 11:42:36 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>10811</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc5NzM3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDE1LTAyLTA1ICBTYWFtIEJhcmF0aSAgPHNhYW1iYXJhdGkxQGdtYWlsLmNvbT4KKworICAg
ICAgICBBZGp1c3QgdGhlIHJhbmdlcyBvZiBjZXJ0YWluIGJhc2ljIGJsb2NrIHN0YXRlbWVudHMg
aW4gSlNDJ3MgY29udHJvbCBmbG93IHByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDEwOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgYmFzaWMgYmxvY2sgYm91bmRhcmllcyB3ZSBhcmUg
aW50ZXJlc3RlZCBpbiBjaGFuZ2luZyBhcmUgdGhlCisgICAgICAgIGJhc2ljIGJsb2NrcyB0aGF0
IGFyZSBKYXZhU2NyaXB0IGJsb2NrIHN0YXRlbWVudHMuIEZvciBleGFtcGxlLCBGb3IgCisgICAg
ICAgIGxvb3BzLCBXaGlsZSBsb29wcywgYW5kIElmIHN0YXRlbWVudHMgd2hlbiB0aGV5IGNvbnRh
aW4gYmxvY2sgCisgICAgICAgIHN0YXRlbWVudHMgYW5kIG5vdCBzaW5nbGUgbGluZSBleHByZXNz
aW9ucyBhcyB0aGVpciBib2RpZXMuIFdlCisgICAgICAgIHdhbnQgdGhlIHRleHR1YWwgYmFzaWMg
YmxvY2sgYm91bmRhcmllcyBmb3IgdGhlc2Ugc3RhdGVtZW50cyB0bworICAgICAgICBzdGFydCBv
bmUgY2hhcmFjdGVyIGFmdGVyIHRoZWlyIG9wZW5pbmcgJ3snIGFuZCB0byBlbmQgb25lIGNoYXJh
Y3RlcgorICAgICAgICBiZWZvcmUgdGhlaXIgY2xvc2luZyAnfScuCisKKyAgICAgICAgKiBieXRl
Y29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6SWZFbHNlTm9kZTo6ZW1p
dEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6V2hpbGVOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAg
ICAgICAoSlNDOjpGb3JOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpGb3JJbk5v
ZGU6OmVtaXRNdWx0aUxvb3BCeXRlY29kZSk6CisgICAgICAgIChKU0M6OkZvck9mTm9kZTo6ZW1p
dEJ5dGVjb2RlKToKKyAgICAgICAgKiB0ZXN0cy9jb250cm9sRmxvd1Byb2ZpbGVyL2JyYWNlLWxv
Y2F0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAg
ICAoYmF6KToKKyAgICAgICAgKHRlc3RJZik6CisgICAgICAgICh0ZXN0Rm9yUmVndWxhcik6Cisg
ICAgICAgICh0ZXN0Rm9ySW4pOgorICAgICAgICAodGVzdFdoaWxlKToKKwogMjAxNS0wMi0wNSAg
TWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBDb2RlQ2FjaGUg
aXMgbm90IHRocmVhZCBzYWZlIHdoZW4gYWRkaW5nIHRoZSBzYW1lIHNvdXJjZSBmcm9tIHR3byBk
aWZmZXJlbnQgdGhyZWFkcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9Ob2Rlc0NvZGVnZW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkocmV2aXNpb24gMTc5Njc5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xODg2LDcgKzE4ODYsNyBAQCB2b2lkIElmRWxzZU5vZGU6OmVtaXRCeXRlY29kZShC
eXRlY29kZUdlCiAKICAgICBnZW5lcmF0b3IuZW1pdE5vZGVJbkNvbmRpdGlvbkNvbnRleHQobV9j
b25kaXRpb24sIHRydWVUYXJnZXQsIGZhbHNlVGFyZ2V0LCBmYWxsVGhyb3VnaE1vZGUpOwogICAg
IGdlbmVyYXRvci5lbWl0TGFiZWwoYmVmb3JlVGhlbi5nZXQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVt
aXRQcm9maWxlQ29udHJvbEZsb3cobV9pZkJsb2NrLT5zdGFydE9mZnNldCgpKTsKKyAgICBnZW5l
cmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX2lmQmxvY2stPnN0YXJ0T2Zmc2V0KCkgKyAo
bV9pZkJsb2NrLT5pc0Jsb2NrKCkgPyAxIDogMCkpOwogCiAgICAgaWYgKCFkaWRGb2xkSWZCbG9j
aykgewogICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX2lmQmxvY2spOwpAQCAtMTkw
Miw3ICsxOTAyLDcgQEAgdm9pZCBJZkVsc2VOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZQog
ICAgIH0KIAogICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoYWZ0ZXJFbHNlLmdldCgpKTsKLSAgICBn
ZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX2Vsc2VCbG9jayA/IG1fZWxzZUJsb2Nr
LT5lbmRPZmZzZXQoKSA6IG1faWZCbG9jay0+ZW5kT2Zmc2V0KCkpOworICAgIGdlbmVyYXRvci5l
bWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fZWxzZUJsb2NrID8gbV9lbHNlQmxvY2stPmVuZE9mZnNl
dCgpIDogbV9pZkJsb2NrLT5lbmRPZmZzZXQoKSAtIChtX2lmQmxvY2stPmlzQmxvY2soKSA/IDEg
OiAwKSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBEb1doaWxlTm9k
ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xOTM4LDcgKzE5MzgsNyBA
QCB2b2lkIFdoaWxlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuCiAgICAgZ2VuZXJhdG9y
LmVtaXRMYWJlbCh0b3BPZkxvb3AuZ2V0KCkpOwogICAgIGdlbmVyYXRvci5lbWl0TG9vcEhpbnQo
KTsKICAgICAKLSAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3N0YXRlbWVu
dC0+c3RhcnRPZmZzZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3co
bV9zdGF0ZW1lbnQtPnN0YXJ0T2Zmc2V0KCkgKyAobV9zdGF0ZW1lbnQtPmlzQmxvY2soKSA/IDEg
OiAwKSk7CiAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKGRzdCwgbV9zdGF0ZW1lbnQpOwogCiAgICAg
Z2VuZXJhdG9yLmVtaXRMYWJlbChzY29wZS0+Y29udGludWVUYXJnZXQoKSk7CkBAIC0xOTQ4LDcg
KzE5NDgsNyBAQCB2b2lkIFdoaWxlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuCiAKICAg
ICBnZW5lcmF0b3IuZW1pdExhYmVsKHNjb3BlLT5icmVha1RhcmdldCgpKTsKIAotICAgIGdlbmVy
YXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KGVuZE9mZnNldCgpKTsKKyAgICBnZW5lcmF0b3Iu
ZW1pdFByb2ZpbGVDb250cm9sRmxvdyhlbmRPZmZzZXQoKSAtIChtX3N0YXRlbWVudC0+aXNCbG9j
aygpID8gMSA6IDApKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZv
ck5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE5NjgsNyAr
MTk2OCw3IEBAIHZvaWQgRm9yTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXIKIAogICAg
IGdlbmVyYXRvci5lbWl0TGFiZWwodG9wT2ZMb29wLmdldCgpKTsKICAgICBnZW5lcmF0b3IuZW1p
dExvb3BIaW50KCk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9zdGF0
ZW1lbnQtPnN0YXJ0T2Zmc2V0KCkpOworICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xG
bG93KG1fc3RhdGVtZW50LT5zdGFydE9mZnNldCgpICsgKG1fc3RhdGVtZW50LT5pc0Jsb2NrKCkg
PyAxIDogMCkpOwogCiAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKGRzdCwgbV9zdGF0ZW1lbnQpOwog
CkBAIC0xOTgzLDcgKzE5ODMsNyBAQCB2b2lkIEZvck5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyCiAgICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcCh0b3BPZkxvb3AuZ2V0KCkpOwogCiAg
ICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzY29wZS0+YnJlYWtUYXJnZXQoKSk7Ci0gICAgZ2VuZXJh
dG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3coZW5kT2Zmc2V0KCkpOworICAgIGdlbmVyYXRvci5l
bWl0UHJvZmlsZUNvbnRyb2xGbG93KGVuZE9mZnNldCgpIC0gKG1fc3RhdGVtZW50LT5pc0Jsb2Nr
KCkgPyAxIDogMCkpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRm9y
SW5Ob2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjA4Niw2ICsy
MDg2LDggQEAgdm9pZCBGb3JJbk5vZGU6OmVtaXRNdWx0aUxvb3BCeXRlY29kZShCeQogICAgIGdl
bmVyYXRvci5lbWl0Tm9kZShiYXNlLmdldCgpLCBtX2V4cHIpOwogICAgIFJlZlB0cjxSZWdpc3Rl
cklEPiBsb2NhbCA9IHRoaXMtPnRyeUdldEJvdW5kTG9jYWwoZ2VuZXJhdG9yKTsKIAorICAgIGlu
dCBwcm9maWxlclN0YXJ0T2Zmc2V0ID0gbV9zdGF0ZW1lbnQtPnN0YXJ0T2Zmc2V0KCkgKyAobV9z
dGF0ZW1lbnQtPmlzQmxvY2soKSA/IDEgOiAwKTsKKyAgICBpbnQgcHJvZmlsZXJFbmRPZmZzZXQg
PSBtX3N0YXRlbWVudC0+ZW5kT2Zmc2V0KCkgLSAobV9zdGF0ZW1lbnQtPmlzQmxvY2soKSA/IDEg
OiAwKTsKICAgICAvLyBJbmRleGVkIHByb3BlcnR5IGxvb3AuCiAgICAgewogICAgICAgICBMYWJl
bFNjb3BlUHRyIHNjb3BlID0gZ2VuZXJhdG9yLm5ld0xhYmVsU2NvcGUoTGFiZWxTY29wZTo6TG9v
cCk7CkBAIC0yMTA3LDEzICsyMTA5LDEzIEBAIHZvaWQgRm9ySW5Ob2RlOjplbWl0TXVsdGlMb29w
Qnl0ZWNvZGUoQnkKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRUb0luZGV4U3RyaW5nKHByb3BlcnR5
TmFtZS5nZXQoKSwgaS5nZXQoKSk7CiAgICAgICAgIHRoaXMtPmVtaXRMb29wSGVhZGVyKGdlbmVy
YXRvciwgcHJvcGVydHlOYW1lLmdldCgpKTsKIAotICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2Zp
bGVDb250cm9sRmxvdyhtX3N0YXRlbWVudC0+c3RhcnRPZmZzZXQoKSk7CisgICAgICAgIGdlbmVy
YXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KHByb2ZpbGVyU3RhcnRPZmZzZXQpOwogCiAgICAg
ICAgIGdlbmVyYXRvci5wdXNoSW5kZXhlZEZvckluU2NvcGUobG9jYWwuZ2V0KCksIGkuZ2V0KCkp
OwogICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX3N0YXRlbWVudCk7CiAgICAgICAg
IGdlbmVyYXRvci5wb3BJbmRleGVkRm9ySW5TY29wZShsb2NhbC5nZXQoKSk7CiAKLSAgICAgICAg
Z2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPmVuZE9mZnNldCgp
KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cocHJvZmlsZXJFbmRP
ZmZzZXQpOwogCiAgICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoc2NvcGUtPmNvbnRpbnVlVGFy
Z2V0KCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdEluYyhpLmdldCgpKTsKQEAgLTIxNDUsMTMg
KzIxNDcsMTMgQEAgdm9pZCBGb3JJbk5vZGU6OmVtaXRNdWx0aUxvb3BCeXRlY29kZShCeQogCiAg
ICAgICAgIHRoaXMtPmVtaXRMb29wSGVhZGVyKGdlbmVyYXRvciwgcHJvcGVydHlOYW1lLmdldCgp
KTsKIAotICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3N0YXRlbWVu
dC0+c3RhcnRPZmZzZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xG
bG93KHByb2ZpbGVyU3RhcnRPZmZzZXQpOwogCiAgICAgICAgIGdlbmVyYXRvci5wdXNoU3RydWN0
dXJlRm9ySW5TY29wZShsb2NhbC5nZXQoKSwgaS5nZXQoKSwgcHJvcGVydHlOYW1lLmdldCgpLCBz
dHJ1Y3R1cmVFbnVtZXJhdG9yLmdldCgpKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKGRz
dCwgbV9zdGF0ZW1lbnQpOwogICAgICAgICBnZW5lcmF0b3IucG9wU3RydWN0dXJlRm9ySW5TY29w
ZShsb2NhbC5nZXQoKSk7CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZs
b3cobV9zdGF0ZW1lbnQtPmVuZE9mZnNldCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9m
aWxlQ29udHJvbEZsb3cocHJvZmlsZXJFbmRPZmZzZXQpOwogCiAgICAgICAgIGdlbmVyYXRvci5l
bWl0TGFiZWwoc2NvcGUtPmNvbnRpbnVlVGFyZ2V0KCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1p
dEluYyhpLmdldCgpKTsKQEAgLTIxODIsNyArMjE4NCw3IEBAIHZvaWQgRm9ySW5Ob2RlOjplbWl0
TXVsdGlMb29wQnl0ZWNvZGUoQnkKIAogICAgICAgICB0aGlzLT5lbWl0TG9vcEhlYWRlcihnZW5l
cmF0b3IsIHByb3BlcnR5TmFtZS5nZXQoKSk7CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9m
aWxlQ29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPnN0YXJ0T2Zmc2V0KCkpOworICAgICAgICBnZW5l
cmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhwcm9maWxlclN0YXJ0T2Zmc2V0KTsKIAogICAg
ICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX3N0YXRlbWVudCk7CiAKQEAgLTIyMDMsNyAr
MjIwNSw3IEBAIHZvaWQgRm9ySW5Ob2RlOjplbWl0TXVsdGlMb29wQnl0ZWNvZGUoQnkKIAogICAg
IGdlbmVyYXRvci5lbWl0RGVidWdIb29rKFdpbGxFeGVjdXRlU3RhdGVtZW50LCBmaXJzdExpbmUo
KSwgc3RhcnRPZmZzZXQoKSwgbGluZVN0YXJ0T2Zmc2V0KCkpOwogICAgIGdlbmVyYXRvci5lbWl0
TGFiZWwoZW5kLmdldCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyht
X3N0YXRlbWVudC0+ZW5kT2Zmc2V0KCkpOworICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRy
b2xGbG93KHByb2ZpbGVyRW5kT2Zmc2V0KTsKIH0KIAogdm9pZCBGb3JJbk5vZGU6OmVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCkBAIC0y
MjU1LDExICsyMjU3LDExIEBAIHZvaWQgRm9yT2ZOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW4KICAgICAgICAgICAgIERlY29uc3RydWN0aW5nQXNzaWdubWVudE5vZGUqIGFzc2lnbk5vZGUg
PSBzdGF0aWNfY2FzdDxEZWNvbnN0cnVjdGluZ0Fzc2lnbm1lbnROb2RlKj4obV9sZXhwcik7CiAg
ICAgICAgICAgICBhc3NpZ25Ob2RlLT5iaW5kaW5ncygpLT5iaW5kVmFsdWUoZ2VuZXJhdG9yLCB2
YWx1ZSk7CiAgICAgICAgIH0KLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZs
b3cobV9zdGF0ZW1lbnQtPnN0YXJ0T2Zmc2V0KCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdFBy
b2ZpbGVDb250cm9sRmxvdyhtX3N0YXRlbWVudC0+c3RhcnRPZmZzZXQoKSArIChtX3N0YXRlbWVu
dC0+aXNCbG9jaygpID8gMSA6IDApKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKGRzdCwg
bV9zdGF0ZW1lbnQpOwogICAgIH07CiAgICAgZ2VuZXJhdG9yLmVtaXRFbnVtZXJhdGlvbih0aGlz
LCBtX2V4cHIsIGV4dHJhY3Rvcik7Ci0gICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZs
b3cobV9zdGF0ZW1lbnQtPmVuZE9mZnNldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVD
b250cm9sRmxvdyhtX3N0YXRlbWVudC0+ZW5kT2Zmc2V0KCkgLSAobV9zdGF0ZW1lbnQtPmlzQmxv
Y2soKSA/IDEgOiAwKSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBD
b250aW51ZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvY29udHJvbEZsb3dQcm9maWxlci9icmFjZS1sb2NhdGlv
bi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvY29udHJvbEZs
b3dQcm9maWxlci9icmFjZS1sb2NhdGlvbi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9jb250cm9sRmxvd1Byb2ZpbGVyL2JyYWNlLWxvY2F0aW9uLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjggQEAKK2xvYWQoIi4vZHJpdmVyL2RyaXZlci5qcyIp
OworCitmdW5jdGlvbiBmb28oKSB7fQorZnVuY3Rpb24gYmFyKCkge30KK2Z1bmN0aW9uIGJheigp
IHt9CitmdW5jdGlvbiB0ZXN0SWYoeCkgeworICAgIGlmICh4IDwgMTApIHsgZm9vKCk7IH0gZWxz
ZSBpZiAoeCA8IDIwKSB7IGJhcigpOyB9IGVsc2UgeyBiYXooKSB9Cit9CisKK2Z1bmN0aW9uIHRl
c3RGb3JSZWd1bGFyKHgpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHg7IGkrKykgeyBmb28o
KTsgfQorfQorCitmdW5jdGlvbiB0ZXN0Rm9ySW4oeCkgeworICAgIGZvciAodmFyIGkgaW4geCkg
eyBmb28oKTsgfQorfQorCitmdW5jdGlvbiB0ZXN0Rm9yT2YoeCkgeworICAgIGZvciAodmFyIGkg
b2YgeCkgeyBmb28oKTsgfQorfQorCitmdW5jdGlvbiB0ZXN0V2hpbGUoeCkgeworICAgIHZhciBp
ID0gMDsgd2hpbGUgKGkrKyA8IHgpIHsgZm9vKCk7IH0KK30KKwordGVzdElmKDkpOworLy8gTm90
ZSwgdGhlIGNoZWNrIHdpbGwgYmUgYWdhaW5zdCB0aGUgYmFzaWMgYmxvY2sgdGhhdCBjb250YWlu
cyB0aGUgZmlyc3QgbWF0Y2hlZCBjaGFyYWN0ZXIuIAorLy8gU28gaW4gdGhpcyBmb2xsb3dpbmcg
Y2FzZSwgdGhlIGJsb2NrIHRoYXQgY29udGFpbnMgdGhlICd7Jy4KK2Fzc2VydChoYXNCYXNpY0Js
b2NrRXhlY3V0ZWQodGVzdElmLCAieyBmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOwor
Ly8gSW4gdGhpcyBjYXNlLCBpdCB3aWxsIHRlc3QgdGhlIGJhc2ljIGJsb2NrIHRoYXQgY29udGFp
bnMgdGhlICcgJyBjaGFyYWN0ZXIuCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJ
ZiwgIiBmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOworYXNzZXJ0KGhhc0Jhc2ljQmxv
Y2tFeGVjdXRlZCh0ZXN0SWYsICJ9IGVsc2UgaWYiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIp
OworYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAiZWxzZSBpZiIpLCAic2hv
dWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOwordGVzdElmKDIxKTsKK2Fzc2VydChoYXNCYXNpY0Js
b2NrRXhlY3V0ZWQodGVzdElmLCAieyBiYXIiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAK
K2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZiwgIiBiYXIiKSwgInNob3VsZCBu
b3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJ
ZiwgImVsc2UgeyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAordGVzdElmKDExKTsKK2Fz
c2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAieyBiYXIiKSwgInNob3VsZCBoYXZl
IGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAiIGJh
ciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorCit0ZXN0Rm9yUmVndWxhcigwKTsKK2Fz
c2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvclJlZ3VsYXIsICJ7IGZvbyIpLCAic2hv
dWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVz
dEZvclJlZ3VsYXIsICIgZm9vIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7IAordGVz
dEZvclJlZ3VsYXIoMSk7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JSZWd1
bGFyLCAieyBmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNp
Y0Jsb2NrRXhlY3V0ZWQodGVzdEZvclJlZ3VsYXIsICIgZm9vIiksICJzaG91bGQgaGF2ZSBleGVj
dXRlZC4iKTsgCisKK3Rlc3RGb3JJbih7fSk7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVk
KHRlc3RGb3JJbiwgInsgZm9vIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQo
IWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9ySW4sICIgZm9vIiksICJzaG91bGQgbm90IGhh
dmUgZXhlY3V0ZWQuIik7IAordGVzdEZvckluKHtmb286IDIwfSk7Cithc3NlcnQoaGFzQmFzaWNC
bG9ja0V4ZWN1dGVkKHRlc3RGb3JJbiwgInsgZm9vIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4i
KTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JJbiwgIiBmb28iKSwgInNo
b3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKKwordGVzdEZvck9mKFtdKTsKK2Fzc2VydChoYXNCYXNp
Y0Jsb2NrRXhlY3V0ZWQodGVzdEZvck9mLCAieyBmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVk
LiIpOyAKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JPZiwgIiBmb28iKSwg
InNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCit0ZXN0Rm9yT2YoWzIwXSk7Cithc3NlcnQo
aGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JPZiwgInsgZm9vIiksICJzaG91bGQgaGF2ZSBl
eGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JPZiwgIiBm
b28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKKwordGVzdFdoaWxlKDApOworYXNzZXJ0
KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0V2hpbGUsICJ7IGZvbyIpLCAic2hvdWxkIGhhdmUg
ZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdFdoaWxlLCAi
IGZvbyIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK3Rlc3RXaGlsZSgxKTsKK2Fz
c2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdFdoaWxlLCAieyBmb28iKSwgInNob3VsZCBo
YXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdFdoaWxl
LCAiIGZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246167</attachid>
            <date>2015-02-06 11:42:36 -0800</date>
            <delta_ts>2015-02-09 00:08:27 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>15928</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc5NzUwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDE1LTAyLTA2ICBTYWFtIEJhcmF0aSAgPHNhYW1iYXJhdGkxQGdtYWlsLmNvbT4KKworICAg
ICAgICBBZGp1c3QgdGhlIHJhbmdlcyBvZiBiYXNpYyBibG9jayBzdGF0ZW1lbnRzIGluIEpTQydz
IGNvbnRyb2wgZmxvdyBwcm9maWxlciB0byBiZSBtdXR1YWxseSBleGNsdXNpdmUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTA5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvc2UgdGhlIGNvbnRy
b2wgZmxvdyBvZiBhIHByb2dyYW0gZm9ybXMgYmFzaWMgYmxvY2sgQSB3aXRoIHN1Y2Nlc3NvciBi
bG9jaworICAgICAgICBCLiBBJ3MgZW5kIG9mZnNldCB3aWxsIGJlIHRoZSAqc2FtZSogYXMgQidz
IHN0YXJ0IG9mZnNldCBpbiB0aGUgY3VycmVudCBhcmNoaXRlY3R1cmUgCisgICAgICAgIG9mIHRo
ZSBjb250cm9sIGZsb3cgcHJvZmlsZXIuIFRoaXMgbWFrZXMgcmVhc29uaW5nIGFib3V0IHRoZSB0
ZXh0IG9mZnNldHMgb2YKKyAgICAgICAgdGhlIGNvbnRyb2wgZmxvdyBwcm9maWxlciB1bnNvdW5k
LiBUbyBtYWtlIHJlYXNvbmluZyBhYm91dCBvZmZzZXRzIHNvdW5kLCBhbGwgCisgICAgICAgIGJh
c2ljIGJsb2NrIHJhbmdlcyBzaG91bGQgYmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgQWxsIGNhbGxz
IHRvIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHJvZmlsZXJDb250cm9sRmxvdyAKKyAgICAgICAg
bm93IHBhc3MgaW4gdGhlICpzdGFydCogb2YgYSBiYXNpYyBibG9jayBhcyB0aGUgdGV4dCBvZmZz
ZXQgYXJndW1lbnQuIFRoZW4sIAorICAgICAgICB3aGVuIGdhdGhlcmluZyBiYXNpYyBibG9jayBi
b3VuZGFyaWVzIGluIENvZGVCbG9jaywgd2UgZW5zdXJlIHRoYXQgZXZlcnkKKyAgICAgICAgYmxv
Y2sncyBlbmQgb2Zmc2V0IGlzIG9uZSBsZXNzIHRoYW4gaXRzIHN1Y2Nlc3NvcidzIHN0YXJ0IG9m
ZnNldC4KKworICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkNvZGVCbG9jazo6aW5zZXJ0QmFzaWNCbG9ja0JvdW5kYXJpZXNGb3JDb250cm9sRmxvd1Byb2Zp
bGVyKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAg
KEpTQzo6Q29uZGl0aW9uYWxOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpJZkVs
c2VOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpXaGlsZU5vZGU6OmVtaXRCeXRl
Y29kZSk6CisgICAgICAgIChKU0M6OkZvck5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChK
U0M6OkZvckluTm9kZTo6ZW1pdE11bHRpTG9vcEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6Rm9y
T2ZOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpDb250aW51ZU5vZGU6OmVtaXRC
eXRlY29kZSk6CisgICAgICAgIChKU0M6OkJyZWFrTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAg
ICAgKEpTQzo6UmV0dXJuTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6VGhyb3dO
b2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpUcnlOb2RlOjplbWl0Qnl0ZWNvZGUp
OgorICAgICAgICAqIHRlc3RzL2NvbnRyb2xGbG93UHJvZmlsZXIvYnJhY2UtbG9jYXRpb24uanM6
IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAgICAgIChiYXopOgor
ICAgICAgICAodGVzdElmKToKKyAgICAgICAgKHRlc3RGb3JSZWd1bGFyKToKKyAgICAgICAgKHRl
c3RGb3JJbik6CisgICAgICAgICh0ZXN0Rm9yT2YpOgorICAgICAgICAodGVzdFdoaWxlKToKKwog
MjAxNS0wMi0wNCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bW92ZSBCeXRlY29kZUdlbmVyYXRvcjo6cHJlc2VydmVMYXN0VmFyKCkgYW5kIHJlcGxhY2UgaXQg
d2l0aCBhIG1vcmUgcm9idXN0IG1lY2hhbmlzbSBmb3IgcHJlc2VydmluZyBub24tdGVtcG9yYXJ5
IHJlZ2lzdGVycwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5jcHAJKHJldmlzaW9uIDE3OTY3OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDU2LDcgKzQwNTYsNyBAQCB2
b2lkIENvZGVCbG9jazo6aW5zZXJ0QmFzaWNCbG9ja0JvdW5kYXJpCiAgICAgICAgIGlmIChpICsg
MSA8IG9mZnNldHNMZW5ndGgpIHsKICAgICAgICAgICAgIHNpemVfdCBlbmRJZHggPSBieXRlY29k
ZU9mZnNldHNbaSArIDFdOwogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQodm0oKS0+aW50ZXJw
cmV0ZXItPmdldE9wY29kZUlEKGluc3RydWN0aW9uc1tlbmRJZHhdLnUub3Bjb2RlKSA9PSBvcF9w
cm9maWxlX2NvbnRyb2xfZmxvdyk7Ci0gICAgICAgICAgICBiYXNpY0Jsb2NrRW5kT2Zmc2V0ID0g
aW5zdHJ1Y3Rpb25zW2VuZElkeCArIDFdLnUub3BlcmFuZDsKKyAgICAgICAgICAgIGJhc2ljQmxv
Y2tFbmRPZmZzZXQgPSBpbnN0cnVjdGlvbnNbZW5kSWR4ICsgMV0udS5vcGVyYW5kIC0gMTsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGJhc2ljQmxvY2tFbmRPZmZzZXQgPSBtX3NvdXJj
ZU9mZnNldCArIG1fb3duZXJFeGVjdXRhYmxlLT5zb3VyY2UoKS5sZW5ndGgoKSAtIDE7IC8vIE9m
ZnNldCBiZWZvcmUgdGhlIGNsb3NpbmcgYnJhY2UuCiAgICAgICAgICAgICBiYXNpY0Jsb2NrU3Rh
cnRPZmZzZXQgPSBzdGQ6Om1pbihiYXNpY0Jsb2NrU3RhcnRPZmZzZXQsIGJhc2ljQmxvY2tFbmRP
ZmZzZXQpOyAvLyBTb21lIHN0YXJ0IG9mZnNldHMgbWF5IGJlIGF0IHRoZSBjbG9zaW5nIGJyYWNl
LCBlbnN1cmUgaXQgaXMgdGhlIG9mZnNldCBiZWZvcmUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCShyZXZpc2lvbiAx
Nzk2NzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdl
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NDksNyArMTQ0OSw3IEBAIFJlZ2lzdGVySUQqIENv
bmRpdGlvbmFsTm9kZTo6ZW1pdEJ5dGVjb2QKIAogICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoYWZ0
ZXJFbHNlLmdldCgpKTsKIAotICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1f
ZXhwcjItPmVuZE9mZnNldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxv
dyhtX2V4cHIyLT5lbmRPZmZzZXQoKSArIDEpOwogCiAgICAgcmV0dXJuIG5ld0RzdC5nZXQoKTsK
IH0KQEAgLTE4ODYsNyArMTg4Niw3IEBAIHZvaWQgSWZFbHNlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2UKIAogICAgIGdlbmVyYXRvci5lbWl0Tm9kZUluQ29uZGl0aW9uQ29udGV4dChtX2Nv
bmRpdGlvbiwgdHJ1ZVRhcmdldCwgZmFsc2VUYXJnZXQsIGZhbGxUaHJvdWdoTW9kZSk7CiAgICAg
Z2VuZXJhdG9yLmVtaXRMYWJlbChiZWZvcmVUaGVuLmdldCgpKTsKLSAgICBnZW5lcmF0b3IuZW1p
dFByb2ZpbGVDb250cm9sRmxvdyhtX2lmQmxvY2stPnN0YXJ0T2Zmc2V0KCkpOworICAgIGdlbmVy
YXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1faWZCbG9jay0+c3RhcnRPZmZzZXQoKSArICht
X2lmQmxvY2stPmlzQmxvY2soKSA/IDEgOiAwKSk7CiAKICAgICBpZiAoIWRpZEZvbGRJZkJsb2Nr
KSB7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0Tm9kZShkc3QsIG1faWZCbG9jayk7CkBAIC0xODk3
LDEyICsxODk3LDEyIEBAIHZvaWQgSWZFbHNlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2UK
ICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGJlZm9yZUVsc2UuZ2V0KCkpOwogCiAgICAgaWYgKG1f
ZWxzZUJsb2NrKSB7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1f
aWZCbG9jay0+ZW5kT2Zmc2V0KCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250
cm9sRmxvdyhtX2lmQmxvY2stPmVuZE9mZnNldCgpICsgKCFtX2lmQmxvY2stPmlzQmxvY2soKSA/
IDEgOiAwKSk7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0Tm9kZShkc3QsIG1fZWxzZUJsb2NrKTsK
ICAgICB9CiAKICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGFmdGVyRWxzZS5nZXQoKSk7Ci0gICAg
Z2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9lbHNlQmxvY2sgPyBtX2Vsc2VCbG9j
ay0+ZW5kT2Zmc2V0KCkgOiBtX2lmQmxvY2stPmVuZE9mZnNldCgpKTsKKyAgICBnZW5lcmF0b3Iu
ZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX2Vsc2VCbG9jayA/IG1fZWxzZUJsb2NrLT5lbmRPZmZz
ZXQoKSArIDEgOiBtX2lmQmxvY2stPmVuZE9mZnNldCgpICsgKCFtX2lmQmxvY2stPmlzQmxvY2so
KSA/IDEgOiAwKSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBEb1do
aWxlTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xOTM4LDcgKzE5
MzgsNyBAQCB2b2lkIFdoaWxlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuCiAgICAgZ2Vu
ZXJhdG9yLmVtaXRMYWJlbCh0b3BPZkxvb3AuZ2V0KCkpOwogICAgIGdlbmVyYXRvci5lbWl0TG9v
cEhpbnQoKTsKICAgICAKLSAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3N0
YXRlbWVudC0+c3RhcnRPZmZzZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJv
bEZsb3cobV9zdGF0ZW1lbnQtPnN0YXJ0T2Zmc2V0KCkgKyAobV9zdGF0ZW1lbnQtPmlzQmxvY2so
KSA/IDEgOiAwKSk7CiAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKGRzdCwgbV9zdGF0ZW1lbnQpOwog
CiAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzY29wZS0+Y29udGludWVUYXJnZXQoKSk7CkBAIC0x
OTQ4LDcgKzE5NDgsNyBAQCB2b2lkIFdoaWxlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
CiAKICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHNjb3BlLT5icmVha1RhcmdldCgpKTsKIAotICAg
IGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KGVuZE9mZnNldCgpKTsKKyAgICBnZW5l
cmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhlbmRPZmZzZXQoKSArICghbV9zdGF0ZW1lbnQt
PmlzQmxvY2soKSA/IDEgOiAwKSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSBGb3JOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0x
OTY4LDcgKzE5NjgsNyBAQCB2b2lkIEZvck5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
CiAKICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHRvcE9mTG9vcC5nZXQoKSk7CiAgICAgZ2VuZXJh
dG9yLmVtaXRMb29wSGludCgpOwotICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93
KG1fc3RhdGVtZW50LT5zdGFydE9mZnNldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVD
b250cm9sRmxvdyhtX3N0YXRlbWVudC0+c3RhcnRPZmZzZXQoKSArIChtX3N0YXRlbWVudC0+aXNC
bG9jaygpID8gMSA6IDApKTsKIAogICAgIGdlbmVyYXRvci5lbWl0Tm9kZShkc3QsIG1fc3RhdGVt
ZW50KTsKIApAQCAtMTk4Myw3ICsxOTgzLDcgQEAgdm9pZCBGb3JOb2RlOjplbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcgogICAgICAgICBnZW5lcmF0b3IuZW1pdEp1bXAodG9wT2ZMb29wLmdldCgp
KTsKIAogICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoc2NvcGUtPmJyZWFrVGFyZ2V0KCkpOwotICAg
IGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KGVuZE9mZnNldCgpKTsKKyAgICBnZW5l
cmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhlbmRPZmZzZXQoKSArICghbV9zdGF0ZW1lbnQt
PmlzQmxvY2soKSA/IDEgOiAwKSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSBGb3JJbk5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0y
MDg2LDYgKzIwODYsOCBAQCB2b2lkIEZvckluTm9kZTo6ZW1pdE11bHRpTG9vcEJ5dGVjb2RlKEJ5
CiAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKGJhc2UuZ2V0KCksIG1fZXhwcik7CiAgICAgUmVmUHRy
PFJlZ2lzdGVySUQ+IGxvY2FsID0gdGhpcy0+dHJ5R2V0Qm91bmRMb2NhbChnZW5lcmF0b3IpOwog
CisgICAgaW50IHByb2ZpbGVyU3RhcnRPZmZzZXQgPSBtX3N0YXRlbWVudC0+c3RhcnRPZmZzZXQo
KSArIChtX3N0YXRlbWVudC0+aXNCbG9jaygpID8gMSA6IDApOworICAgIGludCBwcm9maWxlckVu
ZE9mZnNldCA9IG1fc3RhdGVtZW50LT5lbmRPZmZzZXQoKSArICghbV9zdGF0ZW1lbnQtPmlzQmxv
Y2soKSA/IDEgOiAwKTsKICAgICAvLyBJbmRleGVkIHByb3BlcnR5IGxvb3AuCiAgICAgewogICAg
ICAgICBMYWJlbFNjb3BlUHRyIHNjb3BlID0gZ2VuZXJhdG9yLm5ld0xhYmVsU2NvcGUoTGFiZWxT
Y29wZTo6TG9vcCk7CkBAIC0yMTA3LDEzICsyMTA5LDEzIEBAIHZvaWQgRm9ySW5Ob2RlOjplbWl0
TXVsdGlMb29wQnl0ZWNvZGUoQnkKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRUb0luZGV4U3RyaW5n
KHByb3BlcnR5TmFtZS5nZXQoKSwgaS5nZXQoKSk7CiAgICAgICAgIHRoaXMtPmVtaXRMb29wSGVh
ZGVyKGdlbmVyYXRvciwgcHJvcGVydHlOYW1lLmdldCgpKTsKIAotICAgICAgICBnZW5lcmF0b3Iu
ZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3N0YXRlbWVudC0+c3RhcnRPZmZzZXQoKSk7CisgICAg
ICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KHByb2ZpbGVyU3RhcnRPZmZzZXQp
OwogCiAgICAgICAgIGdlbmVyYXRvci5wdXNoSW5kZXhlZEZvckluU2NvcGUobG9jYWwuZ2V0KCks
IGkuZ2V0KCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX3N0YXRlbWVudCk7
CiAgICAgICAgIGdlbmVyYXRvci5wb3BJbmRleGVkRm9ySW5TY29wZShsb2NhbC5nZXQoKSk7CiAK
LSAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPmVu
ZE9mZnNldCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cocHJv
ZmlsZXJFbmRPZmZzZXQpOwogCiAgICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoc2NvcGUtPmNv
bnRpbnVlVGFyZ2V0KCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdEluYyhpLmdldCgpKTsKQEAg
LTIxNDUsMTMgKzIxNDcsMTMgQEAgdm9pZCBGb3JJbk5vZGU6OmVtaXRNdWx0aUxvb3BCeXRlY29k
ZShCeQogCiAgICAgICAgIHRoaXMtPmVtaXRMb29wSGVhZGVyKGdlbmVyYXRvciwgcHJvcGVydHlO
YW1lLmdldCgpKTsKIAotICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyht
X3N0YXRlbWVudC0+c3RhcnRPZmZzZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmls
ZUNvbnRyb2xGbG93KHByb2ZpbGVyU3RhcnRPZmZzZXQpOwogCiAgICAgICAgIGdlbmVyYXRvci5w
dXNoU3RydWN0dXJlRm9ySW5TY29wZShsb2NhbC5nZXQoKSwgaS5nZXQoKSwgcHJvcGVydHlOYW1l
LmdldCgpLCBzdHJ1Y3R1cmVFbnVtZXJhdG9yLmdldCgpKTsKICAgICAgICAgZ2VuZXJhdG9yLmVt
aXROb2RlKGRzdCwgbV9zdGF0ZW1lbnQpOwogICAgICAgICBnZW5lcmF0b3IucG9wU3RydWN0dXJl
Rm9ySW5TY29wZShsb2NhbC5nZXQoKSk7CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxl
Q29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPmVuZE9mZnNldCgpKTsKKyAgICAgICAgZ2VuZXJhdG9y
LmVtaXRQcm9maWxlQ29udHJvbEZsb3cocHJvZmlsZXJFbmRPZmZzZXQpOwogCiAgICAgICAgIGdl
bmVyYXRvci5lbWl0TGFiZWwoc2NvcGUtPmNvbnRpbnVlVGFyZ2V0KCkpOwogICAgICAgICBnZW5l
cmF0b3IuZW1pdEluYyhpLmdldCgpKTsKQEAgLTIxODIsNyArMjE4NCw3IEBAIHZvaWQgRm9ySW5O
b2RlOjplbWl0TXVsdGlMb29wQnl0ZWNvZGUoQnkKIAogICAgICAgICB0aGlzLT5lbWl0TG9vcEhl
YWRlcihnZW5lcmF0b3IsIHByb3BlcnR5TmFtZS5nZXQoKSk7CiAKLSAgICAgICAgZ2VuZXJhdG9y
LmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPnN0YXJ0T2Zmc2V0KCkpOworICAg
ICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhwcm9maWxlclN0YXJ0T2Zmc2V0
KTsKIAogICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX3N0YXRlbWVudCk7CiAKQEAg
LTIyMDMsNyArMjIwNSw3IEBAIHZvaWQgRm9ySW5Ob2RlOjplbWl0TXVsdGlMb29wQnl0ZWNvZGUo
QnkKIAogICAgIGdlbmVyYXRvci5lbWl0RGVidWdIb29rKFdpbGxFeGVjdXRlU3RhdGVtZW50LCBm
aXJzdExpbmUoKSwgc3RhcnRPZmZzZXQoKSwgbGluZVN0YXJ0T2Zmc2V0KCkpOwogICAgIGdlbmVy
YXRvci5lbWl0TGFiZWwoZW5kLmdldCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250
cm9sRmxvdyhtX3N0YXRlbWVudC0+ZW5kT2Zmc2V0KCkpOworICAgIGdlbmVyYXRvci5lbWl0UHJv
ZmlsZUNvbnRyb2xGbG93KHByb2ZpbGVyRW5kT2Zmc2V0KTsKIH0KIAogdm9pZCBGb3JJbk5vZGU6
OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBk
c3QpCkBAIC0yMjU1LDExICsyMjU3LDExIEBAIHZvaWQgRm9yT2ZOb2RlOjplbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW4KICAgICAgICAgICAgIERlY29uc3RydWN0aW5nQXNzaWdubWVudE5vZGUqIGFz
c2lnbk5vZGUgPSBzdGF0aWNfY2FzdDxEZWNvbnN0cnVjdGluZ0Fzc2lnbm1lbnROb2RlKj4obV9s
ZXhwcik7CiAgICAgICAgICAgICBhc3NpZ25Ob2RlLT5iaW5kaW5ncygpLT5iaW5kVmFsdWUoZ2Vu
ZXJhdG9yLCB2YWx1ZSk7CiAgICAgICAgIH0KLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxl
Q29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPnN0YXJ0T2Zmc2V0KCkpOworICAgICAgICBnZW5lcmF0
b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3N0YXRlbWVudC0+c3RhcnRPZmZzZXQoKSArICht
X3N0YXRlbWVudC0+aXNCbG9jaygpID8gMSA6IDApKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRO
b2RlKGRzdCwgbV9zdGF0ZW1lbnQpOwogICAgIH07CiAgICAgZ2VuZXJhdG9yLmVtaXRFbnVtZXJh
dGlvbih0aGlzLCBtX2V4cHIsIGV4dHJhY3Rvcik7Ci0gICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxl
Q29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPmVuZE9mZnNldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1p
dFByb2ZpbGVDb250cm9sRmxvdyhtX3N0YXRlbWVudC0+ZW5kT2Zmc2V0KCkgKyAoIW1fc3RhdGVt
ZW50LT5pc0Jsb2NrKCkgPyAxIDogMCkpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gQ29udGludWVOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpA
QCAtMjI4OCw3ICsyMjkwLDcgQEAgdm9pZCBDb250aW51ZU5vZGU6OmVtaXRCeXRlY29kZShCeXRl
Y29kZQogICAgIGdlbmVyYXRvci5lbWl0UG9wU2NvcGVzKGdlbmVyYXRvci5zY29wZVJlZ2lzdGVy
KCksIHNjb3BlLT5zY29wZURlcHRoKCkpOwogICAgIGdlbmVyYXRvci5lbWl0SnVtcChzY29wZS0+
Y29udGludWVUYXJnZXQoKSk7CiAKLSAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxv
dyhlbmRPZmZzZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3coZW5k
T2Zmc2V0KCkgKyAxKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEJy
ZWFrTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIzMTcsNyAr
MjMxOSw3IEBAIHZvaWQgQnJlYWtOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW4KICAgICBn
ZW5lcmF0b3IuZW1pdFBvcFNjb3BlcyhnZW5lcmF0b3Iuc2NvcGVSZWdpc3RlcigpLCBzY29wZS0+
c2NvcGVEZXB0aCgpKTsKICAgICBnZW5lcmF0b3IuZW1pdEp1bXAoc2NvcGUtPmJyZWFrVGFyZ2V0
KCkpOwogCi0gICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3coZW5kT2Zmc2V0KCkp
OworICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KGVuZE9mZnNldCgpICsgMSk7
CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZXR1cm5Ob2RlIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMzQyLDcgKzIzNDQsNyBAQCB2b2lk
IFJldHVybk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlCiAKICAgICBnZW5lcmF0b3IuZW1p
dERlYnVnSG9vayhXaWxsTGVhdmVDYWxsRnJhbWUsIGxhc3RMaW5lKCksIHN0YXJ0T2Zmc2V0KCks
IGxpbmVTdGFydE9mZnNldCgpKTsKICAgICBnZW5lcmF0b3IuZW1pdFJldHVybihyZXR1cm5SZWdp
c3Rlci5nZXQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3coZW5kT2Zm
c2V0KCkpOyAKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhlbmRPZmZzZXQo
KSArIDEpOyAKICAgICAvLyBFbWl0dGluZyBhbiB1bnJlYWNoYWJsZSByZXR1cm4gaGVyZSBpcyBu
ZWVkZWQgaW4gY2FzZSB0aGlzIG9wX3Byb2ZpbGVfY29udHJvbF9mbG93IGlzIHRoZSAKICAgICAv
LyBsYXN0IG9wY29kZSBpbiBhIENvZGVCbG9jayBiZWNhdXNlIGEgQ29kZUJsb2NrJ3MgaW5zdHJ1
Y3Rpb25zIG11c3QgZW5kIHdpdGggYSB0ZXJtaW5hbCBvcGNvZGUuCiAgICAgaWYgKGdlbmVyYXRv
ci52bSgpLT5jb250cm9sRmxvd1Byb2ZpbGVyKCkpCkBAIC0yNTY1LDcgKzI1NjcsNyBAQCB2b2lk
IFRocm93Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuCiAgICAgZ2VuZXJhdG9yLmVtaXRF
eHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOwogICAgIGdl
bmVyYXRvci5lbWl0VGhyb3coZXhwci5nZXQoKSk7CiAKLSAgICBnZW5lcmF0b3IuZW1pdFByb2Zp
bGVDb250cm9sRmxvdyhlbmRPZmZzZXQoKSk7IAorICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNv
bnRyb2xGbG93KGVuZE9mZnNldCgpICsgMSk7IAogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gVHJ5Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQpAQCAtMjYxOCw3ICsyNjIwLDcgQEAgdm9pZCBUcnlOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcgogCiAgICAgICAgIFJlZlB0cjxMYWJlbD4gZmluYWxseUVuZExhYmVsID0gZ2VuZXJh
dG9yLm5ld0xhYmVsKCk7CiAKLSAgICAgICAgaW50IGZpbmFsbHlTdGFydE9mZnNldCA9IG1fY2F0
Y2hCbG9jayA/IG1fY2F0Y2hCbG9jay0+ZW5kT2Zmc2V0KCkgOiBtX3RyeUJsb2NrLT5lbmRPZmZz
ZXQoKTsKKyAgICAgICAgaW50IGZpbmFsbHlTdGFydE9mZnNldCA9IG1fY2F0Y2hCbG9jayA/IG1f
Y2F0Y2hCbG9jay0+ZW5kT2Zmc2V0KCkgKyAxIDogbV90cnlCbG9jay0+ZW5kT2Zmc2V0KCkgKyAx
OwogCiAgICAgICAgIC8vIE5vcm1hbCBwYXRoOiBydW4gdGhlIGZpbmFsbHkgY29kZSwgYW5kIGp1
bXAgdG8gdGhlIGVuZC4KICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3co
ZmluYWxseVN0YXJ0T2Zmc2V0KTsKQEAgLTI2MzUsNyArMjYzNyw3IEBAIHZvaWQgVHJ5Tm9kZTo6
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXIKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChm
aW5hbGx5RW5kTGFiZWwuZ2V0KCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250
cm9sRmxvdyhtX2ZpbmFsbHlCbG9jay0+ZW5kT2Zmc2V0KCkpOwogICAgIH0gZWxzZQotICAgICAg
ICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX2NhdGNoQmxvY2stPmVuZE9mZnNl
dCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9jYXRjaEJs
b2NrLT5lbmRPZmZzZXQoKSArIDEpOwogCiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9jb250cm9sRmxvd1Byb2ZpbGVyL2JyYWNlLWxvY2F0aW9uLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9jb250cm9sRmxvd1Byb2ZpbGVyL2JyYWNl
LWxvY2F0aW9uLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2NvbnRyb2xGbG93UHJvZmlsZXIvYnJhY2UtbG9jYXRpb24uanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw3MiBAQAorbG9hZCgiLi9kcml2ZXIvZHJpdmVyLmpzIik7CisKK2Z1bmN0aW9uIGZv
bygpIHt9CitmdW5jdGlvbiBiYXIoKSB7fQorZnVuY3Rpb24gYmF6KCkge30KK2Z1bmN0aW9uIHRl
c3RJZih4KSB7CisgICAgaWYgKHggPCAxMCkgeyBmb28oKTsgfSBlbHNlIGlmICh4IDwgMjApIHsg
YmFyKCk7IH0gZWxzZSB7IGJheigpIH0KK30KKworZnVuY3Rpb24gdGVzdEZvclJlZ3VsYXIoeCkg
eworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgeDsgaSsrKSB7IGZvbygpOyB9IGJhcigpOworfQor
CitmdW5jdGlvbiB0ZXN0Rm9ySW4oeCkgeworICAgIGZvciAodmFyIGkgaW4geCkgeyBmb28oKTsg
fSBiYXIoKTsKK30KKworZnVuY3Rpb24gdGVzdEZvck9mKHgpIHsKKyAgICBmb3IgKHZhciBpIG9m
IHgpIHsgZm9vKCk7IH0gYmFyKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RXaGlsZSh4KSB7CisgICAg
dmFyIGkgPSAwOyB3aGlsZSAoaSsrIDwgeCkgeyBmb28oKTsgfSBiYXIoKTsKK30KKwordGVzdElm
KDkpOworLy8gTm90ZSwgdGhlIGNoZWNrIHdpbGwgYmUgYWdhaW5zdCB0aGUgYmFzaWMgYmxvY2sg
dGhhdCBjb250YWlucyB0aGUgZmlyc3QgbWF0Y2hlZCBjaGFyYWN0ZXIuIAorLy8gU28gaW4gdGhp
cyBmb2xsb3dpbmcgY2FzZSwgdGhlIGJsb2NrIHRoYXQgY29udGFpbnMgdGhlICd7Jy4KK2Fzc2Vy
dChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAieyBmb28iKSwgInNob3VsZCBoYXZlIGV4
ZWN1dGVkLiIpOworLy8gSW4gdGhpcyBjYXNlLCBpdCB3aWxsIHRlc3QgdGhlIGJhc2ljIGJsb2Nr
IHRoYXQgY29udGFpbnMgdGhlICcgJyBjaGFyYWN0ZXIuCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4
ZWN1dGVkKHRlc3RJZiwgIiBmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOworYXNzZXJ0
KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWYsICJ9IGVsc2UgaWYiKSwgInNob3VsZCBoYXZl
IGV4ZWN1dGVkLiIpOworYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAiZWxz
ZSBpZiIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOwordGVzdElmKDIxKTsKK2Fzc2Vy
dChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAieyBiYXIiKSwgInNob3VsZCBoYXZlIGV4
ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZiwgIiBiYXIi
KSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4
ZWN1dGVkKHRlc3RJZiwgImVsc2UgeyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAordGVz
dElmKDExKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAieyBiYXIiKSwg
InNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQo
dGVzdElmLCAiIGJhciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorCit0ZXN0Rm9yUmVn
dWxhcigwKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvclJlZ3VsYXIsICJ7
IGZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2Nr
RXhlY3V0ZWQodGVzdEZvclJlZ3VsYXIsICIgZm9vIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0
ZWQuIik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yUmVndWxhciwgInsg
YmFyIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCit0ZXN0Rm9yUmVndWxhcigxKTsKK2Fz
c2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvclJlZ3VsYXIsICJ7IGZvbyIpLCAic2hv
dWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0
Rm9yUmVndWxhciwgIiBmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKKwordGVzdEZv
ckluKHt9KTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvckluLCAieyBmb28i
KSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1
dGVkKHRlc3RGb3JJbiwgIiBmb28iKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCith
c3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JJbiwgInsgYmFyIiksICJzaG91bGQg
aGF2ZSBleGVjdXRlZC4iKTsgCit0ZXN0Rm9ySW4oe2ZvbzogMjB9KTsKK2Fzc2VydChoYXNCYXNp
Y0Jsb2NrRXhlY3V0ZWQodGVzdEZvckluLCAieyBmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVk
LiIpOyAKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvckluLCAiIGZvbyIpLCAi
c2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorCit0ZXN0Rm9yT2YoW10pOworYXNzZXJ0KGhhc0Jh
c2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yT2YsICJ7IGZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0
ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvck9mLCAiIGZvbyIp
LCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhl
Y3V0ZWQodGVzdEZvck9mLCAieyBiYXIiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK3Rl
c3RGb3JPZihbMjBdKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvck9mLCAi
eyBmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNpY0Jsb2Nr
RXhlY3V0ZWQodGVzdEZvck9mLCAiIGZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAor
Cit0ZXN0V2hpbGUoMCk7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RXaGlsZSwg
InsgZm9vIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxv
Y2tFeGVjdXRlZCh0ZXN0V2hpbGUsICIgZm9vIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQu
Iik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0V2hpbGUsICJ7IGJhciIpLCAi
c2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAordGVzdFdoaWxlKDEpOworYXNzZXJ0KGhhc0Jhc2lj
QmxvY2tFeGVjdXRlZCh0ZXN0V2hpbGUsICJ7IGZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQu
Iik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0V2hpbGUsICIgZm9vIiksICJz
aG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>246258</attachid>
            <date>2015-02-08 23:10:03 -0800</date>
            <delta_ts>2015-02-08 23:11:05 -0800</delta_ts>
            <desc>perf tests</desc>
            <filename>perf.results</filename>
            <type>text/plain</type>
            <size>50634</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">Vk1zIHRlc3RlZDoKIm9yaWdpbmFsIiBhdCAvVXNlcnMvc2FhbWJhcmF0aS9XSy90ZXJuYXJ5L1dl
YktpdEJ1aWxkL1JlbGVhc2UvanNjIChyMTc5NzgzKQoid2l0aFBhcnNlckNoYW5nZXMiIGF0IC9V
c2Vycy9zYWFtYmFyYXRpL1dLL0NsZWFuL09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvUmVsZWFzZS9q
c2MgKHIxNzk3ODMpCgpDb2xsZWN0ZWQgNCBzYW1wbGVzIHBlciBiZW5jaG1hcmsvVk0sIHdpdGgg
NCBWTSBpbnZvY2F0aW9ucyBwZXIgYmVuY2htYXJrLiBFbWl0dGVkIGEgY2FsbCB0byBnYygpIGJl
dHdlZW4gc2FtcGxlIG1lYXN1cmVtZW50cy4KVXNlZCAxIGJlbmNobWFyayBpdGVyYXRpb24gcGVy
IFZNIGludm9jYXRpb24gZm9yIHdhcm0tdXAuIFVzZWQgdGhlIGpzYy1zcGVjaWZpYyBwcmVjaXNl
VGltZSgpIGZ1bmN0aW9uIHRvIGdldCBtaWNyb3NlY29uZC1sZXZlbAp0aW1pbmcuIFJlcG9ydGlu
ZyBiZW5jaG1hcmsgZXhlY3V0aW9uIHRpbWVzIHdpdGggOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWxz
IGluIG1pbGxpc2Vjb25kcy4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsICAgICAgICAgICAgIHdpdGhQYXJzZXJDaGFuZ2Vz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClN1blNwaWRlcjoKICAgM2QtY3ViZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS43OTAzKy0xLjk0ODcg
ICAgICAgICAgICA1LjIwMDMrLTAuMTQxMiAgICAgICAgICBtaWdodCBiZSAxLjExMzR4IGZhc3Rl
cgogICAzZC1tb3JwaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEw
LjI5ODMrLTEyLjc1ODYgICAgICAgICAgIDYuMzg5NCstMC4yMDU5ICAgICAgICAgIG1pZ2h0IGJl
IDEuNjExOHggZmFzdGVyCiAgIDNkLXJheXRyYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDYuODY0MSstMi45NzQ1ICAgICA/ICAgICAgNy4zNzM1Ky0xLjkwMTggICAg
ICAgID8gbWlnaHQgYmUgMS4wNzQyeCBzbG93ZXIKICAgYWNjZXNzLWJpbmFyeS10cmVlcyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMi43MzIwKy0wLjc2MDQgICAgICAgICAgICAyLjcy
MDUrLTAuMTU1OCAgICAgICAgCiAgIGFjY2Vzcy1mYW5ua3VjaCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDYuODY5OSstMC45MTEyICAgICAgICAgICAgNi42NDM1Ky0wLjY2ODkg
ICAgICAgICAgbWlnaHQgYmUgMS4wMzQxeCBmYXN0ZXIKICAgYWNjZXNzLW5ib2R5ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy40MjQyKy0xLjMxMTMgICAgICAgICAgICAz
LjIwODIrLTEuMTk4NyAgICAgICAgICBtaWdodCBiZSAxLjA2NzN4IGZhc3RlcgogICBhY2Nlc3Mt
bnNpZXZlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjEzMjYrLTAuOTQ1
OSAgICAgPyAgICAgIDQuMzIyNCstMC43MjA1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ1OXggc2xv
d2VyCiAgIGJpdG9wcy0zYml0LWJpdHMtaW4tYnl0ZSAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEuOTQxOCstMC41ODgzICAgICA/ICAgICAgMS45OTgzKy0wLjI1OTAgICAgICAgID8gbWlnaHQg
YmUgMS4wMjkxeCBzbG93ZXIKICAgYml0b3BzLWJpdHMtaW4tYnl0ZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMy44ODkyKy0wLjcxNjMgICAgID8gICAgICAzLjk4MjYrLTAuNzYyOSAg
ICAgICAgPyBtaWdodCBiZSAxLjAyNDB4IHNsb3dlcgogICBiaXRvcHMtYml0d2lzZS1hbmQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjI2MzErLTAuMDQ5NiAgICAgPyAgICAgIDIu
NDY4MSstMC42Mjc2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDkwNnggc2xvd2VyCiAgIGJpdG9wcy1u
c2lldmUtYml0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMzcxMSstMC41MDI1
ICAgICAgICAgICAgMy44MDQwKy0wLjI0NDcgICAgICAgICAgbWlnaHQgYmUgMS4xNDkxeCBmYXN0
ZXIKICAgY29udHJvbGZsb3ctcmVjdXJzaXZlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Mi44Nzk1Ky0wLjYzNzAgICAgID8gICAgICAzLjI3ODArLTIuMjY5NSAgICAgICAgPyBtaWdodCBi
ZSAxLjEzODR4IHNsb3dlcgogICBjcnlwdG8tYWVzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA0LjAzMTQrLTAuMTM5NiAgICAgPyAgICAgIDQuMjExOSstMC4yODUzICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDQ0OHggc2xvd2VyCiAgIGNyeXB0by1tZDUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDE2OSstMC42NDU3ICAgICA/ICAgICAgMy4y
OTgwKy0wLjgwNTcgICAgICAgID8gbWlnaHQgYmUgMS4wOTMyeCBzbG93ZXIKICAgY3J5cHRvLXNo
YTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4yMzkxKy0wLjg3NTQg
ICAgID8gICAgICAzLjc4NjQrLTAuODE4MSAgICAgICAgPyBtaWdodCBiZSAxLjE2OTB4IHNsb3dl
cgogICBkYXRlLWZvcm1hdC10b2Z0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5
LjE1MDArLTAuNzk3NyAgICAgICAgICAgIDguOTQzMCstMS4xODM1ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDIzMnggZmFzdGVyCiAgIGRhdGUtZm9ybWF0LXhwYXJiICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDUuODI0OCstMS4xMTAyICAgICA/ICAgICAgNi43MDM3Ky01LjA0NzAgICAg
ICAgID8gbWlnaHQgYmUgMS4xNTA5eCBzbG93ZXIKICAgbWF0aC1jb3JkaWMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMy44MDI1Ky0xLjQzOTIgICAgID8gICAgICA0LjEy
MzIrLTEuNTg3MSAgICAgICAgPyBtaWdodCBiZSAxLjA4NDN4IHNsb3dlcgogICBtYXRoLXBhcnRp
YWwtc3VtcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjI5MjQrLTAuMjg5MyAg
ICAgPyAgICAgIDUuMzQ4OCstMC4yOTgyICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwNnggc2xvd2Vy
CiAgIG1hdGgtc3BlY3RyYWwtbm9ybSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMu
ODY5OSstMi42ODIwICAgICAgICAgICAgMi40NDcyKy0wLjQ0MTcgICAgICAgICAgbWlnaHQgYmUg
MS41ODE0eCBmYXN0ZXIKICAgcmVnZXhwLWRuYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNy4yODI3Ky0wLjc1ODAgICAgID8gICAgICA3LjgyOTkrLTEuODQzNiAgICAg
ICAgPyBtaWdodCBiZSAxLjA3NTF4IHNsb3dlcgogICBzdHJpbmctYmFzZTY0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA0LjQ2MDUrLTAuMzkxOCAgICAgICAgICAgIDQuMzE1
MystMC4wMzA3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMzNnggZmFzdGVyCiAgIHN0cmluZy1mYXN0
YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuNzY0NCstMC40MTA1ICAg
ICA/ICAgICAgNy41NzIzKy0xLjYwNzggICAgICAgID8gbWlnaHQgYmUgMS4xMTk0eCBzbG93ZXIK
ICAgc3RyaW5nLXRhZ2Nsb3VkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi4w
ODYxKy0xLjkxMTUgICAgID8gICAgIDEyLjExODcrLTEuMTU1NyAgICAgICAgPwogICBzdHJpbmct
dW5wYWNrLWNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI2LjUxODArLTEwLjQ3
OTkgICAgICAgICAgMjQuMjk3MistNS42Mjc1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDkxNHggZmFz
dGVyCiAgIHN0cmluZy12YWxpZGF0ZS1pbnB1dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDUuMzgxMistMC4yNjkxICAgICA/ICAgICAgNS42NjU0Ky0xLjg0NzkgICAgICAgID8gbWlnaHQg
YmUgMS4wNTI4eCBzbG93ZXIKCiAgIDxhcml0aG1ldGljPiAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDYuMDA2OCstMC42NDI5ICAgICAgICAgICAgNS44NDgxKy0wLjMwNjEg
ICAgICAgICAgbWlnaHQgYmUgMS4wMjcxeCBmYXN0ZXIKICAgPGdlb21ldHJpYz4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC45MTcxKy0wLjMyOTggICAgICAgICAgICA0
Ljg5NDUrLTAuMzMzMiAgICAgICAgICBtaWdodCBiZSAxLjAwNDZ4IGZhc3RlcgogICA8aGFybW9u
aWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjI2NjArLTAuMjIw
NCAgICAgPyAgICAgIDQuMjgxMistMC4yOTQ0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDAzNnggc2xv
d2VyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvcmlnaW5hbCAgICAgICAgICAgICB3aXRoUGFyc2VyQ2hhbmdlcyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIApMb25nU3BpZGVyOgogICAzZC1jdWJlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOTU1LjgxNjMrLTIwLjM4MDcgICAgPyAgICA5NzYu
NDExMSstMzQuMzM4NSAgICAgICA/IG1pZ2h0IGJlIDEuMDIxNXggc2xvd2VyCiAgIDNkLW1vcnBo
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4OTUuOTQyOSstMzYuOTE0
MSAgICA/ICAgMTkwMS43NTgxKy0zMi4zNjIzICAgICAgID8KICAgM2QtcmF5dHJhY2UgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgwOS4yNzIwKy0xNC4yMTUyICAgID8gICAg
ODExLjI5NjYrLTExLjAzODIgICAgICAgPwogICBhY2Nlc3MtYmluYXJ5LXRyZWVzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxMTIxLjU4MjIrLTIyLjI1OTUgICAgICAgIDExMTQuMTg3NSst
MTYuNDE0NyAgICAgICAKICAgYWNjZXNzLWZhbm5rdWNoICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDM0MC4wMzU2Ky0zNS42OTU1ICAgICAgICAgMzIyLjk3NzArLTI3LjU0NzMgICAg
ICAgICBtaWdodCBiZSAxLjA1Mjh4IGZhc3RlcgogICBhY2Nlc3MtbmJvZHkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNjkxLjU3NjcrLTE5Ljc2ODUgICAgPyAgICA2OTUuMDc0
OCstMjEuNjY3NyAgICAgICA/CiAgIGFjY2Vzcy1uc2lldmUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEwNzYuMzkwNCstMjAuMjA5NCAgICAgICAgMTA2Mi45Mjc3Ky0yOS4wNDE4
ICAgICAgICAgbWlnaHQgYmUgMS4wMTI3eCBmYXN0ZXIKICAgYml0b3BzLTNiaXQtYml0cy1pbi1i
eXRlICAgICAgICAgICAgICAgICAgICAgICAgICA0OS41NzIzKy0xLjc5ODggICAgID8gICAgIDUw
LjQ3MjcrLTIuODQ0MyAgICAgICAgPyBtaWdodCBiZSAxLjAxODJ4IHNsb3dlcgogICBiaXRvcHMt
Yml0cy1pbi1ieXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTA1LjI1NTUrLTI0LjE0
MTcgICAgICAgICAxMDUuMTI0MystMjMuMDM4MSAgICAgICAKICAgYml0b3BzLW5zaWV2ZS1iaXRz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDk4OC4xNDcwKy0xNi44MjYwICAgICAgICAg
OTczLjM3NzMrLTMxLjU2MzcgICAgICAgICBtaWdodCBiZSAxLjAxNTJ4IGZhc3RlcgogICBjb250
cm9sZmxvdy1yZWN1cnNpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTYzLjk2MzcrLTIz
LjM3OTAgICAgPyAgICA1NzEuMDkyMCstMTIuMjQ0NSAgICAgICA/IG1pZ2h0IGJlIDEuMDEyNngg
c2xvd2VyCiAgIGNyeXB0by1hZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA2ODQuMzU1OCstMTQuNTczNSAgICA/ICAgIDcxNC43MzM1Ky00Ni41NjM0ICAgICAgID8gbWln
aHQgYmUgMS4wNDQ0eCBzbG93ZXIKICAgY3J5cHRvLW1kNSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDcwNy45MTk2Ky00Ni44OTMyICAgICAgICAgNzA2LjYzODcrLTQ1Ljcx
MDEgICAgICAgCiAgIGNyeXB0by1zaGExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA3NDkuMjAxMCstNjMuOTY1NiAgICA/ICAgIDc1MS4wNTU2Ky0yNy42MDUzICAgICAgID8K
ICAgZGF0ZS1mb3JtYXQtdG9mdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY3MC40
NjE3Ky02MC43OTQxICAgICAgICAgNjUyLjgwMzMrLTI2LjgwNDcgICAgICAgICBtaWdodCBiZSAx
LjAyNzF4IGZhc3RlcgogICBkYXRlLWZvcm1hdC14cGFyYiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNzYwLjI5MzIrLTIyLjI0MDggICAgICAgICA3NTYuOTA1OCstMTQuNDI3MyAgICAg
ICAKICAgbWF0aC1jb3JkaWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY0
MS4xMDAyKy0yOC4wMDg3ICAgICAgICAgNjM5LjMwMTcrLTYuODY4OCAgICAgICAgCiAgIG1hdGgt
cGFydGlhbC1zdW1zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1OTcuMTIzMistNi4x
NTU1ICAgICA/ICAgIDYwMC4zNjYwKy04LjgzMjcgICAgICAgID8KICAgbWF0aC1zcGVjdHJhbC1u
b3JtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcwOS4xODA1Ky0xNy4yNjM4ICAgICAg
ICAgNzAxLjk3NDYrLTcuOTk0NSAgICAgICAgICBtaWdodCBiZSAxLjAxMDN4IGZhc3RlcgogICBz
dHJpbmctYmFzZTY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzg5LjIyODMr
LTM4LjY5NzUgICAgICAgICAzNzUuMDQ3OSstMTAuODMwMCAgICAgICAgIG1pZ2h0IGJlIDEuMDM3
OHggZmFzdGVyCiAgIHN0cmluZy1mYXN0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA0NDMuOTk4NSstOC4wMTY0ICAgICAgICAgIDQ0My40MTk2Ky0xMC4xNjEwICAgICAgIAog
ICBzdHJpbmctdGFnY2xvdWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQyLjk2
ODkrLTMuMjUzMyAgICAgPyAgICAyNDQuODM4NystNy41MDI1ICAgICAgICA/CgogICA8YXJpdGht
ZXRpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjkwLjYwODQrLTUuODM3
MCAgICAgICAgICA2ODkuNjI2NistMS4yMzY0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDAxNHggZmFz
dGVyCiAgIDxnZW9tZXRyaWM+ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1
NTYuNTI2OSstNC4xMzc4ICAgICAgICAgIDU1NS4zNjcxKy01Ljk5MDkgICAgICAgICAgbWlnaHQg
YmUgMS4wMDIxeCBmYXN0ZXIKICAgPGhhcm1vbmljPiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDM1My41NTYyKy0xMi44MjQ5ICAgID8gICAgMzU0LjUxMDYrLTExLjcxNzIg
ICAgICAgPyBtaWdodCBiZSAxLjAwMjd4IHNsb3dlcgoKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWwgICAgICAgICAgICAgd2l0
aFBhcnNlckNoYW5nZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKVjhTcGlkZXI6
CiAgIGNyeXB0byAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTku
Mzk0OSstMzIuMzM4MiAgICAgICAgICA3Ny4yMzE1Ky0xOS43MTgzICAgICAgICAgbWlnaHQgYmUg
MS4yODcweCBmYXN0ZXIKICAgZGVsdGFibHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEwMC40NDc1Ky0xMS4wMTc4ICAgID8gICAgMTE1LjE3NTcrLTUuNTQxNyAgICAg
ICAgPyBtaWdodCBiZSAxLjE0NjZ4IHNsb3dlcgogICBlYXJsZXktYm95ZXIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDY0LjEyNTUrLTYuNjA4MSAgICAgPyAgICAgODYuMzg0
OCstNzMuMTU5NyAgICAgICA/IG1pZ2h0IGJlIDEuMzQ3MXggc2xvd2VyCiAgIHJheXRyYWNlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDUuNDYyNystMTEuNjczNCAg
ICAgICAgICA0MS43Mjg1Ky0zLjczOTQgICAgICAgICAgbWlnaHQgYmUgMS4wODk1eCBmYXN0ZXIK
ICAgcmVnZXhwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3MS44
ODE1Ky0yLjQ5MTkgICAgID8gICAgIDcyLjcwMDArLTMuNjgwOSAgICAgICAgPyBtaWdodCBiZSAx
LjAxMTR4IHNsb3dlcgogICByaWNoYXJkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTI2Ljk2NDgrLTY0Ljg4MjggICAgICAgICAxMTYuNjcyMSstMS45ODg4ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDg4MnggZmFzdGVyCiAgIHNwbGF5ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNTMuMTI1NSstNi4zNjMzICAgICAgICAgICA1Mi4xODYw
Ky0zLjk4NzUgICAgICAgICAgbWlnaHQgYmUgMS4wMTgweCBmYXN0ZXIKCiAgIDxhcml0aG1ldGlj
PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODAuMjAwNCstNi41NzkxICAg
ICA/ICAgICA4MC4yOTY5Ky04Ljc1NTAgICAgICAgID8gbWlnaHQgYmUgMS4wMDEyeCBzbG93ZXIK
ICAgPGdlb21ldHJpYz4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3NC45
NjAxKy01LjEwNDMgICAgICAgICAgIDc0LjY4MTArLTYuNjUzNiAgICAgICAgICBtaWdodCBiZSAx
LjAwMzd4IGZhc3RlcgogICA8aGFybW9uaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDcwLjQwODQrLTUuOTQ5MiAgICAgICAgICAgNjkuNDU3NCstNS4wNzY5ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDEzN3ggZmFzdGVyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbCAgICAgICAgICAgICB3aXRoUGFy
c2VyQ2hhbmdlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApPY3RhbmU6CiAgIGVu
Y3J5cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yNDcwMCst
MC4wMDQzOCAgICA/ICAgICAwLjI0OTI4Ky0wLjAwNzg5ICAgICAgID8KICAgZGVjcnlwdCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjI5Njk4Ky0wLjA5MzkzICAg
ID8gICAgIDQuMzM0ODQrLTAuMTUzNjUgICAgICAgPwogICBkZWx0YWJsdWUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHgyICAgICAgIDAuMTkwODYrLTAuMDA1OTYgICAgPyAgICAgMC4x
OTA5NCstMC4wMDYwNyAgICAgICA/CiAgIGVhcmxleSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMC43NDExMSstMC4wMDg2NyAgICA/ICAgICAwLjc0NzM4Ky0wLjAz
NDEyICAgICAgID8KICAgYm95ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA1Ljc4MTk1Ky0wLjEwMzEwICAgID8gICAgIDUuODM2MTMrLTAuMTM2NTYgICAgICAg
PwogICBuYXZpZXItc3Rva2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgIDYu
NDAzNTMrLTAuMDUzMDggICAgPyAgICAgNi40MzI2MCstMC4xMTE2NyAgICAgICA/CiAgIHJheXRy
YWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAgMS4yNzE5MystMC4w
MzUzOSAgICA/ICAgICAxLjMwMjc1Ky0wLjA5MDQ3ICAgICAgID8gbWlnaHQgYmUgMS4wMjQyeCBz
bG93ZXIKICAgcmljaGFyZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAg
ICAwLjEyMDkxKy0wLjAwMjkwICAgICAgICAgIDAuMTE5NDYrLTAuMDA0MzMgICAgICAgICBtaWdo
dCBiZSAxLjAxMjF4IGZhc3RlcgogICBzcGxheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHgyICAgICAgIDAuNTI5NjErLTAuMDA5NjIgICAgPyAgICAgMC41ODY4MSstMC4yMjE0
NiAgICAgICA/IG1pZ2h0IGJlIDEuMTA4MHggc2xvd2VyCiAgIHJlZ2V4cCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAzNi4xOTc4MSstMC4zODA5NSAgICA/ICAgIDM2
LjQwNDI0Ky0yLjg0ODcxICAgICAgID8KICAgcGRmanMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB4MiAgICAgIDU2LjM0NTA3Ky0wLjUxNjY1ICAgICAgICAgNTUuNjUyNjgrLTEu
NjczOTggICAgICAgICBtaWdodCBiZSAxLjAxMjR4IGZhc3RlcgogICBtYW5kcmVlbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgNzMuMjg0NTUrLTEuMzA0OTAgICAgICAg
ICA3MS4yMzI3MystMi4wNTAzMiAgICAgICAgIG1pZ2h0IGJlIDEuMDI4OHggZmFzdGVyCiAgIGdi
ZW11ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICA1OS4wMDE5MCst
OC41OTkzNiAgICAgICAgIDU3LjExNzI1Ky0yLjQzOTQyICAgICAgICAgbWlnaHQgYmUgMS4wMzMw
eCBmYXN0ZXIKICAgY2xvc3VyZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLjYxMjAyKy0wLjAwNTM0ICAgICAgICAgIDAuNTk2OTgrLTAuMDEyODkgICAgICAgICBt
aWdodCBiZSAxLjAyNTJ4IGZhc3RlcgogICBqcXVlcnkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDcuODk1MjIrLTAuMjE5MjIgICAgICAgICAgNy44NDA4NystMC4x
MTczNyAgICAgICAKICAgYm94MmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4
MiAgICAgIDE4LjEwMTcyKy0wLjY4NjM3ICAgICAgICAgMTcuODM0ODUrLTAuNDUzNDEgICAgICAg
ICBtaWdodCBiZSAxLjAxNTB4IGZhc3RlcgogICB6bGliICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHgyICAgICA1NDQuNjQ3ODMrLTY2LjgyMTAwICAgICAgIDUzNi4xODQ5Nist
My4yMzMwMiAgICAgICAgIG1pZ2h0IGJlIDEuMDE1OHggZmFzdGVyCiAgIHR5cGVzY3JpcHQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgIDk5NC4xNzg3NystMTAuNTcyNTYgICAg
ICAgOTg5LjAzODUxKy0yNy4zNzk1OSAgICAgIAoKICAgPGFyaXRobWV0aWM+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTIwLjAwNDExKy0zLjk2NjU2ICAgICAgICAxMTguNzkz
MzcrLTIuMDM4NjcgICAgICAgICBtaWdodCBiZSAxLjAxMDJ4IGZhc3RlcgogICA8Z2VvbWV0cmlj
PiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguMDcwMTQrLTAuMTAxMjcg
ICAgPyAgICAgOC4wNzIxOSstMC4yMjMyNyAgICAgICA/IG1pZ2h0IGJlIDEuMDAwM3ggc2xvd2Vy
CiAgIDxoYXJtb25pYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC43
NDAzNystMC4wMDgwNyAgICA/ICAgICAwLjc0MjMxKy0wLjAyODQwICAgICAgID8gbWlnaHQgYmUg
MS4wMDI2eCBzbG93ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9yaWdpbmFsICAgICAgICAgICAgIHdpdGhQYXJzZXJDaGFuZ2VzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCktyYWtlbjoKICAgYWktYXN0YXIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMzEuNTU1Ky0xMi4xNDAgICAgICAg
ICAgIDMyOS40ODUrLTguODEyICAgICAgICAgCiAgIGF1ZGlvLWJlYXQtZGV0ZWN0aW9uICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTMzLjk0OCstNS41NzAgICAgICAgICAgICAxMzMuMDY0
Ky04LjQyNCAgICAgICAgIAogICBhdWRpby1kZnQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDI3OC45OTIrLTguNjM0ICAgICAgICAgICAgMjc0LjUwOCstNi4xMjQgICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDE2M3ggZmFzdGVyCiAgIGF1ZGlvLWZmdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDg3Ljc5MistNS43NjUgICAgICA/ICAgICAgODgu
MTEwKy01LjM0NiAgICAgICAgID8KICAgYXVkaW8tb3NjaWxsYXRvciAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyNTAuMDgwKy05LjY5NSAgICAgID8gICAgIDI1MS4yMjErLTguNjg0
ICAgICAgICAgPwogICBpbWFnaW5nLWRhcmtyb29tICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDE4MC40MTMrLTQuMzkxICAgICAgICAgICAgMTc5LjczMSstNy4zMDcgICAgICAgICAK
ICAgaW1hZ2luZy1kZXNhdHVyYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzku
MjQ0Ky00LjAwNCAgICAgID8gICAgICA4Mi4xMzgrLTQuNDEzICAgICAgICAgPyBtaWdodCBiZSAx
LjAzNjV4IHNsb3dlcgogICBpbWFnaW5nLWdhdXNzaWFuLWJsdXIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEwMS40MzkrLTMuMTYzICAgICAgPyAgICAgMTAyLjA5NistMy40NTcgICAgICAg
ICA/CiAgIGpzb24tcGFyc2UtZmluYW5jaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDQ0LjYyOCstMy4wNTcgICAgICA/ICAgICAgNDUuMDQ4Ky00LjY1NiAgICAgICAgID8KICAganNv
bi1zdHJpbmdpZnktdGluZGVyYm94ICAgICAgICAgICAgICAgICAgICAgICAgICAgNjMuMjUxKy00
LjUxNSAgICAgID8gICAgICA2NC43NTYrLTQuNDQyICAgICAgICAgPyBtaWdodCBiZSAxLjAyMzh4
IHNsb3dlcgogICBzdGFuZm9yZC1jcnlwdG8tYWVzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA5MC4zNzcrLTg5LjEyNSAgICAgICAgICAgIDYwLjc0MCstMS4xNTIgICAgICAgICAgIG1p
Z2h0IGJlIDEuNDg3OXggZmFzdGVyCiAgIHN0YW5mb3JkLWNyeXB0by1jY20gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDYyLjczOCstMTEuNzgzICAgICA/ICAgICAgNzIuNDA0Ky0zMC45
MjQgICAgICAgID8gbWlnaHQgYmUgMS4xNTQxeCBzbG93ZXIKICAgc3RhbmZvcmQtY3J5cHRvLXBi
a2RmMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxODEuMDIwKy02LjE2OSAgICAgICAgICAg
IDE4MC44NzArLTExLjgyMCAgICAgICAgCiAgIHN0YW5mb3JkLWNyeXB0by1zaGEyNTYtaXRlcmF0
aXZlICAgICAgICAgICAgICAgICAgIDU3Ljk2NCstNC4wNjAgICAgICA/ICAgICAgNjAuNzU3Ky02
LjU4MyAgICAgICAgID8gbWlnaHQgYmUgMS4wNDgyeCBzbG93ZXIKCiAgIDxhcml0aG1ldGljPiAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTM4LjgxNystNi41ODggICAgICAg
ICAgICAxMzcuNDk1Ky0zLjEyMSAgICAgICAgICAgbWlnaHQgYmUgMS4wMDk2eCBmYXN0ZXIKICAg
PGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMTMuNTQ3
Ky04LjQ3MSAgICAgICAgICAgIDExMi45NTErLTMuNTk5ICAgICAgICAgICBtaWdodCBiZSAxLjAw
NTN4IGZhc3RlcgogICA8aGFybW9uaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA5NC42OTUrLTguMTE3ICAgICAgPyAgICAgIDk0Ljc2OSstMy4zMDYgICAgICAgICA/
IG1pZ2h0IGJlIDEuMDAwOHggc2xvd2VyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbCAgICAgICAgICAgICB3aXRoUGFyc2Vy
Q2hhbmdlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApKU1JlZ3Jlc3M6CiAgIGFi
cy1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDI4MSst
MC41MjM3ICAgICAgICAgICAgMi45ODg3Ky0wLjE3MzQgICAgICAgICAgbWlnaHQgYmUgMS4wMTMy
eCBmYXN0ZXIKICAgYWRhcHQtdG8tZG91YmxlLWRpdmlkZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxOC44NDk1Ky0xLjY2MjMgICAgICAgICAgIDE4LjQzNDkrLTAuMzIxOCAgICAgICAgICBt
aWdodCBiZSAxLjAyMjV4IGZhc3RlcgogICBhbGlhc2VkLWFyZ3VtZW50cy1nZXRieXZhbCAgICAg
ICAgICAgICAgICAgICAgICAgICAxLjE2OTUrLTAuMTA0OCAgICAgICAgICAgIDEuMDQzOCstMC4x
NTYxICAgICAgICAgIG1pZ2h0IGJlIDEuMTIwNXggZmFzdGVyCiAgIGFsbG9jYXRlLWJpZy1vYmpl
Y3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMzc5MCstMC4wNjg3ICAgICA/ICAg
ICAgMi40OTU3Ky0wLjE3OTAgICAgICAgID8gbWlnaHQgYmUgMS4wNDkxeCBzbG93ZXIKICAgYXJp
dHktbWlzbWF0Y2gtaW5saW5pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4wOTY3Ky0w
LjI2MTcgICAgICAgICAgICAxLjAxMjgrLTAuMDI1MCAgICAgICAgICBtaWdodCBiZSAxLjA4Mjl4
IGZhc3RlcgogICBhcnJheS1hY2Nlc3MtcG9seW1vcnBoaWMtc3RydWN0dXJlICAgICAgICAgICAg
ICAgICA2LjYxMzcrLTAuNzY4NiAgICAgICAgICAgIDYuNTMxMistMC4yNzUzICAgICAgICAgIG1p
Z2h0IGJlIDEuMDEyNnggZmFzdGVyCiAgIGFycmF5LW5vbmFycmF5LXBvbHltb3JocGljLWFjY2Vz
cyAgICAgICAgICAgICAgICAgMzMuNjAzNSstMy41NjM2ICAgICAgICAgICAzMy4wNjcwKy00LjQ5
MzggICAgICAgICAgbWlnaHQgYmUgMS4wMTYyeCBmYXN0ZXIKICAgYXJyYXktcHJvdG90eXBlLWV2
ZXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5OS4zNTkzKy03LjE2NTcgICAgICAgICAg
IDk1Ljg4ODQrLTcuNTk0NyAgICAgICAgICBtaWdodCBiZSAxLjAzNjJ4IGZhc3RlcgogICBhcnJh
eS1wcm90b3R5cGUtZm9yRWFjaCAgICAgICAgICAgICAgICAgICAgICAgICAgIDk3LjY0NDcrLTEw
LjU5NzYgICAgICAgICAgOTQuMDk1OCstNS4wMzk1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM3N3gg
ZmFzdGVyCiAgIGFycmF5LXByb3RvdHlwZS1tYXAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxMTYuMjA3NystMy41Mjg5ICAgICAgICAgIDExNi4wNzkzKy00LjM4ODMgICAgICAgIAogICBh
cnJheS1wcm90b3R5cGUtc29tZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDk1LjkzNDMr
LTMuNDc4NSAgICAgICAgICAgOTIuOTI0MystMy41MjU2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMy
NHggZmFzdGVyCiAgIGFycmF5LXNwbGljZS1jb250aWd1b3VzICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNDUuNjI3NCstNC44MjczICAgICAhICAgICA1NC4zODU3Ky0zLjc1MzAgICAgICAgICEg
ZGVmaW5pdGVseSAxLjE5MjB4IHNsb3dlcgogICBhcnJheS13aXRoLWRvdWJsZS1hZGQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA0LjUwNjgrLTEuMzAyMCAgICAgICAgICAgIDQuMDU3NSst
MC41MDgxICAgICAgICAgIG1pZ2h0IGJlIDEuMTEwN3ggZmFzdGVyCiAgIGFycmF5LXdpdGgtZG91
YmxlLWluY3JlbWVudCAgICAgICAgICAgICAgICAgICAgICAgIDMuNjA3MystMC40MjMzICAgICA/
ICAgICAgMy43Nzg4Ky0wLjY1MDAgICAgICAgID8gbWlnaHQgYmUgMS4wNDc1eCBzbG93ZXIKICAg
YXJyYXktd2l0aC1kb3VibGUtbXVsLWFkZCAgICAgICAgICAgICAgICAgICAgICAgICAgNS4wODUx
Ky0wLjUyNTMgICAgICAgICAgICA0LjgyNzYrLTAuMTk0MiAgICAgICAgICBtaWdodCBiZSAxLjA1
MzN4IGZhc3RlcgogICBhcnJheS13aXRoLWRvdWJsZS1zdW0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzLjgxNzQrLTAuNzk3MyAgICAgICAgICAgIDMuNjc1OCstMC4zMTQxICAgICAgICAg
IG1pZ2h0IGJlIDEuMDM4NXggZmFzdGVyCiAgIGFycmF5LXdpdGgtaW50MzItYWRkLXN1YiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDguNzY1NystMy4zMjY1ICAgICAgICAgICAgOC4zMDc2Ky0z
LjY4NjggICAgICAgICAgbWlnaHQgYmUgMS4wNTUxeCBmYXN0ZXIKICAgYXJyYXktd2l0aC1pbnQz
Mi1vci1kb3VibGUtc3VtICAgICAgICAgICAgICAgICAgICAgMy42ODY1Ky0wLjIxNjUgICAgID8g
ICAgICAzLjkwMDgrLTAuMjE4NSAgICAgICAgPyBtaWdodCBiZSAxLjA1ODF4IHNsb3dlcgogICBB
cnJheUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1sYXJnZS1sb25nLWxpdmVkICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzYuMjIyNCstMS44MzE0
ICAgICA/ICAgICAzNy43ODU4Ky0xLjg0NzcgICAgICAgID8gbWlnaHQgYmUgMS4wNDMyeCBzbG93
ZXIKICAgQXJyYXlCdWZmZXItRGF0YVZpZXctYWxsb2MtbG9uZy1saXZlZCAgICAgICAgICAgICAx
NS4wMTQ4Ky0xLjg1MzMgICAgID8gICAgIDE1LjIxOTErLTMuMTQ5MyAgICAgICAgPyBtaWdodCBi
ZSAxLjAxMzZ4IHNsb3dlcgogICBBcnJheUJ1ZmZlci1JbnQzMkFycmF5LWJ5dGVPZmZzZXQgICAg
ICAgICAgICAgICAgICAzLjkzNTUrLTAuNTUyNCAgICAgPyAgICAgIDMuOTc1MCstMC40ODQyICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDEwMHggc2xvd2VyCiAgIEFycmF5QnVmZmVyLUludDhBcnJheS1h
bGxvYy1sYXJnZS1sb25nLWxpdmVkICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNDkuNTE3MistMzcuMDQzMiAgICAgICAgICAzOC4wMzg4Ky0y
LjQ3ODggICAgICAgICAgbWlnaHQgYmUgMS4zMDE4eCBmYXN0ZXIKICAgQXJyYXlCdWZmZXItSW50
OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQtYnVmZmVyICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjcuODkxNystMy45Nzc2ICAgICAgICAgICAy
NC41NTg4Ky0xLjcwMzcgICAgICAgICAgbWlnaHQgYmUgMS4xMzU3eCBmYXN0ZXIKICAgQXJyYXlC
dWZmZXItSW50OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAxNC40NzQzKy0yLjU4
NDEgICAgICAgICAgIDE0LjI4NjUrLTEuODk3MCAgICAgICAgICBtaWdodCBiZSAxLjAxMzF4IGZh
c3RlcgogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MgICAgICAgICAgICAgICAgICAgICAg
IDExLjUwNTcrLTAuNjQ1MiAgICAgICAgICAgMTEuNDU5NystMS4xNTE1ICAgICAgICAKICAgYXNt
anNfYm9vbF9idWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4wMjcwKy0x
LjMxNDkgICAgICAgICAgICA4LjE5NTArLTAuNTU0OCAgICAgICAgICBtaWdodCBiZSAxLjEwMTV4
IGZhc3RlcgogICBhc3NpZ24tY3VzdG9tLXNldHRlci1wb2x5bW9ycGhpYyAgICAgICAgICAgICAg
ICAgICAzLjAwMDUrLTAuNDMyMSAgICAgICAgICAgIDIuNzcyOCstMC4xNTQ5ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDgyMnggZmFzdGVyCiAgIGFzc2lnbi1jdXN0b20tc2V0dGVyICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQuNDIyNistMi4yODYzICAgICAgICAgICAgNC4wOTgyKy0wLjU0
NTYgICAgICAgICAgbWlnaHQgYmUgMS4wNzkyeCBmYXN0ZXIKICAgYmFzaWMtc2V0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi44OTI4Ky0wLjkzMjggICAgID8gICAg
IDE0LjM5MjgrLTIuMjg1OCAgICAgICAgPyBtaWdodCBiZSAxLjExNjN4IHNsb3dlcgogICBiaWct
aW50LW11bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjE2MTgrLTAu
NzkxOSAgICAgICAgICAgIDMuOTMyOCstMC4xNzM2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDU4Mngg
ZmFzdGVyCiAgIGJvb2xlYW4tdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMuNDY1OCstMC42MjQ3ICAgICAgICAgICAgMy4yMTA2Ky0wLjMzMzAgICAgICAgICAgbWln
aHQgYmUgMS4wNzk1eCBmYXN0ZXIKICAgYnJhbmNoLWZvbGQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMy45NzQ4Ky0wLjE2NjIgICAgID8gICAgICA0LjUzOTYrLTAuNDI2
MiAgICAgICAgPyBtaWdodCBiZSAxLjE0MjF4IHNsb3dlcgogICBieS12YWwtZ2VuZXJpYyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjA5NDgrLTIuOTM3MCAgICAgICAgICAg
IDguMTMxNistMC4yMTY5ICAgICAgICAgIG1pZ2h0IGJlIDEuMTE4NXggZmFzdGVyCiAgIGNhbGwt
c3ByZWFkLWFwcGx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMuOTg4OSstMC4z
NDMyICAgICA/ICAgICAxNC41MDAyKy0xLjcwNzEgICAgICAgID8gbWlnaHQgYmUgMS4wMzY2eCBz
bG93ZXIKICAgY2FsbC1zcHJlYWQtY2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNS40ODQwKy0wLjM0NTcgICAgID8gICAgICA1LjUxMDMrLTAuMjQ1NCAgICAgICAgPwogICBj
YXB0dXJlZC1hc3NpZ25tZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjUyMzYr
LTAuMTE1OCAgICAgICAgICAgIDAuNDg0MSstMC4wNDY3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDgx
NnggZmFzdGVyCiAgIGNhc3QtaW50LXRvLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDUuODAyNCstMC41ODc2ICAgICAgICAgICAgNS43NzM4Ky0wLjI4NzYgICAgICAgIAog
ICBjZWxsLWFyZ3VtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjYz
OTIrLTAuOTE4NCAgICAgICAgICAgIDcuMzc0MSstMS4xODEyICAgICAgICAgIG1pZ2h0IGJlIDEu
MDM1OXggZmFzdGVyCiAgIGNmZy1zaW1wbGlmeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDMuNjM5MistMS40NzkyICAgICAgICAgICAgMy4yODI1Ky0wLjIxMDYgICAgICAg
ICAgbWlnaHQgYmUgMS4xMDg3eCBmYXN0ZXIKICAgY2hhaW4tZ2V0dGVyLWFjY2VzcyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMS4xNDYyKy0wLjE5MTcgICAgID8gICAgIDExLjQxOTMr
LTAuNTQwNCAgICAgICAgPyBtaWdodCBiZSAxLjAyNDV4IHNsb3dlcgogICBjbXBlcS1vYmotdG8t
b2JqLW90aGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjAyNDArLTcuNTkyMiAgICAg
ICAgICAgMTIuNTMxOSstMi44MzAzICAgICAgICAgIG1pZ2h0IGJlIDEuMDM5M3ggZmFzdGVyCiAg
IGNvbnN0YW50LXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMTI4
MCstMC41MDEyICAgICAgICAgICAgNS4wOTMxKy0wLjM0MzkgICAgICAgIAogICBEYXRhVmlldy1j
dXN0b20tcHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgIDQ2LjA2NzkrLTUuMzg0MyAg
ICAgICAgICAgNDQuODU1MystNi4zMTAxICAgICAgICAgIG1pZ2h0IGJlIDEuMDI3MHggZmFzdGVy
CiAgIGRlbGF5LXRlYXItb2ZmLWFyZ3VtZW50cy1zdHJpY3Rtb2RlICAgICAgICAgICAgICAgMjQu
Njg0OCstMC45NzI3ICAgICAgICAgICAyMy40NzgwKy0zLjg2NTggICAgICAgICAgbWlnaHQgYmUg
MS4wNTE0eCBmYXN0ZXIKICAgZGVzdHJ1Y3R1cmluZy1hcmd1bWVudHMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNi42Mjk0Ky0xLjI1OTkgICAgID8gICAgICA2Ljg2MzArLTEuNjQxNiAgICAg
ICAgPyBtaWdodCBiZSAxLjAzNTJ4IHNsb3dlcgogICBkZXN0cnVjdHVyaW5nLXN3YXAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA1Ljc2NzYrLTAuOTI2MSAgICAgPyAgICAgIDYuNjY2
OCstMi41ODI5ICAgICAgICA/IG1pZ2h0IGJlIDEuMTU1OXggc2xvd2VyCiAgIGRpcmVjdC1hcmd1
bWVudHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMDA4NystMC4zODY3ICAg
ICAgICAgICAgMC45NzA4Ky0wLjMxNDggICAgICAgICAgbWlnaHQgYmUgMS4wMzkxeCBmYXN0ZXIK
ICAgZGl2LWJvb2xlYW4tZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4x
MDYzKy0wLjk0ODMgICAgICAgICAgICA1LjczNDUrLTAuMDc5NCAgICAgICAgICBtaWdodCBiZSAx
LjA2NDh4IGZhc3RlcgogICBkaXYtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA5LjA0MzIrLTAuMzgzMCAgICAgPyAgICAgIDkuMjg1NCstMC42NzA2ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDI2OHggc2xvd2VyCiAgIGRvdWJsZS1nZXQtYnktdmFsLW91dC1vZi1i
b3VuZHMgICAgICAgICAgICAgICAgICAgIDQuOTk5OSstMC44Mzc0ICAgICA/ICAgICAgNS4wMjY1
Ky0wLjkxMzQgICAgICAgID8KICAgZG91YmxlLXBvbGx1dGlvbi1nZXRieXZhbCAgICAgICAgICAg
ICAgICAgICAgICAgICAgOS42NDAyKy0wLjA2OTggICAgID8gICAgICA5LjY3ODArLTAuMzE4NSAg
ICAgICAgPwogICBkb3VibGUtcG9sbHV0aW9uLXB1dGJ5b2Zmc2V0ICAgICAgICAgICAgICAgICAg
ICAgICA1LjE4MjQrLTIuMTM0NSAgICAgPyAgICAgIDcuMzIwNSstNi40MTU4ICAgICAgICA/IG1p
Z2h0IGJlIDEuNDEyNnggc2xvd2VyCiAgIGRvdWJsZS10by1pbnQzMi10eXBlZC1hcnJheS1uby1p
bmxpbmUgICAgICAgICAgICAgIDMuMTcwMistMC43MTc0ICAgICA/ICAgICAgMy43NzY3Ky0xLjQ2
NjEgICAgICAgID8gbWlnaHQgYmUgMS4xOTEzeCBzbG93ZXIKICAgZG91YmxlLXRvLWludDMyLXR5
cGVkLWFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgMi4zMDAwKy0wLjEwMDAgICAgID8gICAg
ICAyLjQwMzQrLTAuMTUyOCAgICAgICAgPyBtaWdodCBiZSAxLjA0NTB4IHNsb3dlcgogICBkb3Vi
bGUtdG8tdWludDMyLXR5cGVkLWFycmF5LW5vLWlubGluZSAgICAgICAgICAgICAzLjA5MDUrLTAu
NDg2MyAgICAgPyAgICAgIDMuNDU5MystMS4wNzE2ICAgICAgICA/IG1pZ2h0IGJlIDEuMTE5M3gg
c2xvd2VyCiAgIGRvdWJsZS10by11aW50MzItdHlwZWQtYXJyYXkgICAgICAgICAgICAgICAgICAg
ICAgIDIuNzQ1MSstMC44MzA4ICAgICAgICAgICAgMi40OTU2Ky0wLjE5MTMgICAgICAgICAgbWln
aHQgYmUgMS4xMDAweCBmYXN0ZXIKICAgZWxpZGFibGUtbmV3LW9iamVjdC1kYWcgICAgICAgICAg
ICAgICAgICAgICAgICAgICA0NC41ODc2Ky0xLjk1ODUgICAgID8gICAgIDQ2LjM3MTMrLTUuODcz
NSAgICAgICAgPyBtaWdodCBiZSAxLjA0MDB4IHNsb3dlcgogICBlbGlkYWJsZS1uZXctb2JqZWN0
LXJvZmxjb3B0ZXIgICAgICAgICAgICAgICAgICAgMTY0LjAyMTMrLTIuNjM0MSAgICAgPyAgICAx
NjYuNTAzNSstMi45MzI5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE1MXggc2xvd2VyCiAgIGVsaWRh
YmxlLW5ldy1vYmplY3QtdGhlbi1jYWxsICAgICAgICAgICAgICAgICAgICAgNDMuMjU0MystMTEu
MDMzMSAgICAgICAgICA0MS40MDU1Ky02Ljk2MjYgICAgICAgICAgbWlnaHQgYmUgMS4wNDQ2eCBm
YXN0ZXIKICAgZWxpZGFibGUtbmV3LW9iamVjdC10cmVlICAgICAgICAgICAgICAgICAgICAgICAg
ICA0OC41Njg3Ky0yLjczOTcgICAgID8gICAgIDQ4Ljc1MzcrLTEuODY4NCAgICAgICAgPwogICBl
bXB0eS1zdHJpbmctcGx1cy1pbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjQ2Mzkr
LTAuMTE2OSAgICAgPyAgICAgIDUuNjYyOCstMC40Mzc3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM2
NHggc2xvd2VyCiAgIGVtc2NyaXB0ZW4tY3ViZTJoYXNoICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMzcuOTU2MistNC42NDgxICAgICA/ICAgICA0MC40MjMyKy0xMC41ODM0ICAgICAgID8g
bWlnaHQgYmUgMS4wNjUweCBzbG93ZXIKICAgZXh0ZXJuYWwtYXJndW1lbnRzLWdldGJ5dmFsICAg
ICAgICAgICAgICAgICAgICAgICAgMS40Mzc0Ky0wLjM0NDYgICAgID8gICAgICAxLjU1ODMrLTAu
NDEwOSAgICAgICAgPyBtaWdodCBiZSAxLjA4NDF4IHNsb3dlcgogICBleHRlcm5hbC1hcmd1bWVu
dHMtcHV0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgICAyLjIzNzUrLTAuMzI5NSAgICAgICAg
ICAgIDIuMTQ3NSstMC4wMzUzICAgICAgICAgIG1pZ2h0IGJlIDEuMDQxOXggZmFzdGVyCiAgIGZp
eGVkLXR5cGVkLWFycmF5LXN0b3JhZ2UtdmFyLWluZGV4ICAgICAgICAgICAgICAgIDEuNDc5Nyst
MC4wODAxICAgICA/ICAgICAgMS42MzQ3Ky0wLjI0NzEgICAgICAgID8gbWlnaHQgYmUgMS4xMDQ3
eCBzbG93ZXIKICAgZml4ZWQtdHlwZWQtYXJyYXktc3RvcmFnZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgMS40NzUwKy0xLjA1MTggICAgICAgICAgICAxLjE4MDkrLTAuMjIwMyAgICAgICAgICBt
aWdodCBiZSAxLjI0OTF4IGZhc3RlcgogICBGbG9hdDMyQXJyYXktbWF0cml4LW11bHQgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0LjM1MTMrLTAuMTg1NiAgICAgPyAgICAgIDQuMzc2OCstMC40
NDQwICAgICAgICA/CiAgIEZsb2F0MzJBcnJheS10by1GbG9hdDY0QXJyYXktc2V0ICAgICAgICAg
ICAgICAgICAgNTguNTg0MCstNy4wNTE2ICAgICA/ICAgICA2Mi4yMTY3Ky04LjI3NDIgICAgICAg
ID8gbWlnaHQgYmUgMS4wNjIweCBzbG93ZXIKICAgRmxvYXQ2NEFycmF5LWFsbG9jLWxvbmctbGl2
ZWQgICAgICAgICAgICAgICAgICAgICA3MC42ODIxKy0xLjQxOTUgICAgICAgICAgIDcwLjI4NDAr
LTEuMzMzNyAgICAgICAgCiAgIEZsb2F0NjRBcnJheS10by1JbnQxNkFycmF5LXNldCAgICAgICAg
ICAgICAgICAgICAgNzcuOTI2MystMjYuNzk1NSAgICAgICAgICA3My43NDIwKy00Ljk2ODYgICAg
ICAgICAgbWlnaHQgYmUgMS4wNTY3eCBmYXN0ZXIKICAgZm9sZC1kb3VibGUtdG8taW50ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxNC4xMzA2Ky0wLjEyOTIgICAgID8gICAgIDE0Ljc3
NTkrLTIuMTIzOSAgICAgICAgPyBtaWdodCBiZSAxLjA0NTd4IHNsb3dlcgogICBmb2xkLWdldC1i
eS1pZC10by1tdWx0aS1nZXQtYnktb2Zmc2V0LXJhcmUtaW50ICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUuMDUyMystNS4zNDgzICAgICAg
ICAgICAxMy4yNDIwKy0yLjMzMDAgICAgICAgICAgbWlnaHQgYmUgMS4xMzY3eCBmYXN0ZXIKICAg
Zm9sZC1nZXQtYnktaWQtdG8tbXVsdGktZ2V0LWJ5LW9mZnNldCAgICAgICAgICAgICAxMC41Njkz
Ky0xLjI2MTcgICAgICAgICAgIDEwLjA1MTUrLTAuOTc0MiAgICAgICAgICBtaWdodCBiZSAxLjA1
MTV4IGZhc3RlcgogICBmb2xkLW11bHRpLWdldC1ieS1vZmZzZXQtdG8tZ2V0LWJ5LW9mZnNldCAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5
LjM1MTkrLTEuMDY0MCAgICAgPyAgICAgMTAuMjUwNSstMy44MDA0ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDk2MXggc2xvd2VyCiAgIGZvbGQtbXVsdGktZ2V0LWJ5LW9mZnNldC10by1wb2x5LWdldC1i
eS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOC44NzY4Ky0xLjY0NDMgICAgID8gICAgIDEyLjM5NjgrLTUuMjc5OSAgICAgICAg
PyBtaWdodCBiZSAxLjM5NjV4IHNsb3dlcgogICBmb2xkLW11bHRpLXB1dC1ieS1vZmZzZXQtdG8t
cG9seS1wdXQtYnktb2Zmc2V0ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDguOTc3MCstMi40MzI4ICAgICAgICAgICAgOC4xODc2Ky0yLjU1
NzUgICAgICAgICAgbWlnaHQgYmUgMS4wOTY0eCBmYXN0ZXIKICAgZm9sZC1tdWx0aS1wdXQtYnkt
b2Zmc2V0LXRvLXB1dC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNi4zNjQxKy0xLjk4ODQgICAgICAgICAgICA2LjA3MTgr
LTAuODA4NSAgICAgICAgICBtaWdodCBiZSAxLjA0ODF4IGZhc3RlcgogICBmb2xkLW11bHRpLXB1
dC1ieS1vZmZzZXQtdG8tcmVwbGFjZS1vci10cmFuc2l0aW9uLXB1dC1ieS1vZmZzZXQgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi4yMzkw
Ky01LjgzODYgICAgICAgICAgIDExLjc3MjkrLTMuMzU4MiAgICAgICAgICBtaWdodCBiZSAxLjAz
OTZ4IGZhc3RlcgogICBmb2xkLXB1dC1ieS1pZC10by1tdWx0aS1wdXQtYnktb2Zmc2V0ICAgICAg
ICAgICAgIDE0LjI5MjUrLTcuNDg4MyAgICAgICAgICAgMTIuMTk2NSstMy43ODU5ICAgICAgICAg
IG1pZ2h0IGJlIDEuMTcxOXggZmFzdGVyCiAgIGZvbGQtcHV0LXN0cnVjdHVyZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDUuODg2NSstMC45OTI3ICAgICA/ICAgICAgNy4wNTE3Ky0x
LjAzOTYgICAgICAgID8gbWlnaHQgYmUgMS4xOTc5eCBzbG93ZXIKICAgZm9yLW9mLWl0ZXJhdGUt
YXJyYXktZW50cmllcyAgICAgICAgICAgICAgICAgICAgICAgNS44Mjk5Ky0wLjUyMDcgICAgID8g
ICAgICA1LjkzNDkrLTAuNDM2NyAgICAgICAgPyBtaWdodCBiZSAxLjAxODB4IHNsb3dlcgogICBm
b3Itb2YtaXRlcmF0ZS1hcnJheS1rZXlzICAgICAgICAgICAgICAgICAgICAgICAgICAyLjkwNTkr
LTAuMjI4OCAgICAgPyAgICAgIDMuODc4MistMi41NDY5ICAgICAgICA/IG1pZ2h0IGJlIDEuMzM0
Nnggc2xvd2VyCiAgIGZvci1vZi1pdGVyYXRlLWFycmF5LXZhbHVlcyAgICAgICAgICAgICAgICAg
ICAgICAgIDIuNTEzMystMC4xMzcxICAgICA/ICAgICAgMi42NDI0Ky0wLjM0OTMgICAgICAgID8g
bWlnaHQgYmUgMS4wNTE0eCBzbG93ZXIKICAgZnJvdW5kICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAyMC45NTIxKy0yLjExODUgICAgID8gICAgIDIxLjA2NzArLTEu
NjY5MSAgICAgICAgPwogICBmdGwtbGlicmFyeS1pbmxpbmluZy1kYXRhdmlldyAgICAgICAgICAg
ICAgICAgICAgIDkyLjc4MDkrLTU3LjQ3MzMgICAgICAgICAgNzIuNjE1OCstMC45MDU1ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMjc3N3ggZmFzdGVyCiAgIGZ0bC1saWJyYXJ5LWlubGluaW5nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMzIuNTc5NCstNi40MTQxICAgICA/ICAgIDE1MC40NTU3
Ky02NC45OTY0ICAgICAgID8gbWlnaHQgYmUgMS4xMzQ4eCBzbG93ZXIKICAgZnVuY3Rpb24tZG90
LWFwcGx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4yNTQ4Ky0wLjQ0NTkgICAg
ICAgICAgICAyLjEzNzcrLTAuNTEzMyAgICAgICAgICBtaWdodCBiZSAxLjA1NDh4IGZhc3Rlcgog
ICBmdW5jdGlvbi10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjgy
OTIrLTIuMDMwMCAgICAgICAgICAgIDMuMjc4MCstMC4xNzg5ICAgICAgICAgIG1pZ2h0IGJlIDEu
MTY4MnggZmFzdGVyCiAgIGZ1bmN0aW9uLXdpdGgtZXZhbCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxMTYuOTUyNCstMy43OTU3ICAgICAgICAgIDExNi42Mjk3Ky02Ljg0MzcgICAgICAg
IAogICBnY3NlLXBvbHktZ2V0LWxlc3Mtb2J2aW91cyAgICAgICAgICAgICAgICAgICAgICAgIDE3
LjMxMDIrLTEuOTA2MyAgICAgPyAgICAgMTcuNjg4NSstMi4wNTAwICAgICAgICA/IG1pZ2h0IGJl
IDEuMDIxOXggc2xvd2VyCiAgIGdjc2UtcG9seS1nZXQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMjAuNzg3NCstMS44OTc5ICAgICAgICAgICAxOS40MzUwKy0xLjM1NTIgICAg
ICAgICAgbWlnaHQgYmUgMS4wNjk2eCBmYXN0ZXIKICAgZ2NzZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4wNTY0Ky00Ljg4MDkgICAgICAgICAgICA0LjY1
NDcrLTAuNDgzNSAgICAgICAgICBtaWdodCBiZSAxLjUxNjB4IGZhc3RlcgogICBnZXQtYnktaWQt
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi45NjE3Ky0wLjE3
MjIgICAgID8gICAgICAzLjM4ODIrLTAuNjQzNCAgICAgICAgPyBtaWdodCBiZSAxLjE0NDB4IHNs
b3dlcgogICBnZXQtYnktaWQtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3
LjIzMTgrLTEuODgwOSAgICAgICAgICAgIDYuNzkwMystMS4wMzY5ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDY1MHggZmFzdGVyCiAgIGdldC1ieS1pZC1jaGFpbi1mcm9tLXRyeS1ibG9jayAgICAgICAg
ICAgICAgICAgICAgMTEuMTMyOSstMy44MDMzICAgICAgICAgICAgOS45MjI3Ky0xLjE2MjMgICAg
ICAgICAgbWlnaHQgYmUgMS4xMjIweCBmYXN0ZXIKICAgZ2V0LWJ5LWlkLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbiAgICAgICAgICAgICAgNi4yNTkzKy0zLjQzNDggICAgICAgICAgICA1LjMz
NTkrLTAuNzA3NCAgICAgICAgICBtaWdodCBiZSAxLjE3MzF4IGZhc3RlcgogICBnZXQtYnktaWQt
cHJvdG8tb3Itc2VsZiAgICAgICAgICAgICAgICAgICAgICAgICAgIDE5LjM3MTgrLTQuMTY0OCAg
ICAgPyAgICAgMjEuNDI0OSstMy4xNzA5ICAgICAgICA/IG1pZ2h0IGJlIDEuMTA2MHggc2xvd2Vy
CiAgIGdldC1ieS1pZC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2lt
cGxlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMuNzcyNCstMC41NDkyICAgICA/ICAgICAgMy45NjYyKy0xLjQ0OTkgICAgICAgID8gbWln
aHQgYmUgMS4wNTE0eCBzbG93ZXIKICAgZ2V0LWJ5LWlkLXNlbGYtb3ItcHJvdG8gICAgICAgICAg
ICAgICAgICAgICAgICAgICAxOC4zMDg0Ky0wLjc3NzIgICAgID8gICAgIDIxLjIxNDUrLTIuNjA4
MCAgICAgICAgPyBtaWdodCBiZSAxLjE1ODd4IHNsb3dlcgogICBnZXQtYnktdmFsLW91dC1vZi1i
b3VuZHMgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjUwNzgrLTIuNDg3NyAgICAgICAgICAg
IDQuNDkxNSstMS4xMjk0ICAgICAgICAgIG1pZ2h0IGJlIDEuMjI2M3ggZmFzdGVyCiAgIGdldF9j
YWxsZWVfbW9ub21vcnBoaWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMDg1OSstMC41
NDAwICAgICAgICAgICAgMy45MjQzKy0wLjEyNjMgICAgICAgICAgbWlnaHQgYmUgMS4wNDEyeCBm
YXN0ZXIKICAgZ2V0X2NhbGxlZV9wb2x5bW9ycGhpYyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNC4yNzQyKy0wLjMwMjYgICAgID8gICAgICA0Ljc0MTMrLTEuNjY1MSAgICAgICAgPyBtaWdo
dCBiZSAxLjEwOTN4IHNsb3dlcgogICBnZXR0ZXItbm8tYWN0aXZhdGlvbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA1LjU5ODArLTAuNTI4OCAgICAgPyAgICAgIDYuNDcwNystMS44Mjkz
ICAgICAgICA/IG1pZ2h0IGJlIDEuMTU1OXggc2xvd2VyCiAgIGdldHRlci1yaWNoYXJkcyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNTQuMTA2NistNDIuOTg1NyAgICAgICAgIDEy
Mi4xOTg3Ky0zLjQ3NjYgICAgICAgICAgbWlnaHQgYmUgMS4yNjExeCBmYXN0ZXIKICAgZ2V0dGVy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS41MTEyKy0wLjM1
NzQgICAgID8gICAgICA1Ljg5NTQrLTAuNTU0MCAgICAgICAgPyBtaWdodCBiZSAxLjA2OTd4IHNs
b3dlcgogICBnbG9iYWwtdmFyLWNvbnN0LWluZmVyLWZpcmUtZnJvbS1vcHQgICAgICAgICAgICAg
ICAxLjAxMzErLTAuMDg4NyAgICAgICAgICAgIDAuOTUwMCstMC4wODMwICAgICAgICAgIG1pZ2h0
IGJlIDEuMDY2NHggZmFzdGVyCiAgIGdsb2JhbC12YXItY29uc3QtaW5mZXIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDAuOTMxMCstMC4xNDUwICAgICAgICAgICAgMC45MDUyKy0wLjI5MTEg
ICAgICAgICAgbWlnaHQgYmUgMS4wMjg1eCBmYXN0ZXIKICAgSGFzaE1hcC1wdXQtZ2V0LWl0ZXJh
dGUta2V5cyAgICAgICAgICAgICAgICAgICAgICAzMC45NDYwKy01LjE0ODIgICAgID8gICAgIDQz
Ljc1OTYrLTQwLjk3MDAgICAgICAgPyBtaWdodCBiZSAxLjQxNDF4IHNsb3dlcgogICBIYXNoTWFw
LXB1dC1nZXQtaXRlcmF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwLjkwMTkrLTEuODY1
MSAgICAgPyAgICAgMzEuMjE2MistMS41OTc2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwMnggc2xv
d2VyCiAgIEhhc2hNYXAtc3RyaW5nLXB1dC1nZXQtaXRlcmF0ZSAgICAgICAgICAgICAgICAgICAg
MzUuODQ2OSstNC43MzMyICAgICA/ICAgICA1OS45ODIzKy02Ni43NDk4ICAgICAgID8gbWlnaHQg
YmUgMS42NzMzeCBzbG93ZXIKICAgaG9pc3QtbWFrZS1yb3BlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxMy40MTgxKy04LjEzNDUgICAgICAgICAgIDEwLjA1NzQrLTIuMzc5MyAg
ICAgICAgICBtaWdodCBiZSAxLjMzNDJ4IGZhc3RlcgogICBob2lzdC1wb2x5LWNoZWNrLXN0cnVj
dHVyZS1lZmZlY3RmdWwtbG9vcCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA2LjQ3OTIrLTEuMDEwNCAgICAgICAgICAgIDYuMTk2MSstMi42
MDEzICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ1N3ggZmFzdGVyCiAgIGhvaXN0LXBvbHktY2hlY2st
c3RydWN0dXJlICAgICAgICAgICAgICAgICAgICAgICAgIDQuMTcwNistMS4xNDM2ICAgICAgICAg
ICAgMy44MTY1Ky0wLjM0MTcgICAgICAgICAgbWlnaHQgYmUgMS4wOTI4eCBmYXN0ZXIKICAgaW11
bC1kb3VibGUtb25seSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC44ODk2Ky0z
LjAzMDAgICAgID8gICAgICA5LjE5NzgrLTEuNzc0MyAgICAgICAgPyBtaWdodCBiZSAxLjAzNDd4
IHNsb3dlcgogICBpbXVsLWludC1vbmx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA4Ljk5NjUrLTAuODg3NCAgICAgPyAgICAgMTAuMzk3OCstMi4wMTQxICAgICAgICA/IG1p
Z2h0IGJlIDEuMTU1OHggc2xvd2VyCiAgIGltdWwtbWl4ZWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDcuMTUxMSstMC43OTk5ICAgICA/ICAgICAgNy4zNzQ4Ky0wLjM3
MDUgICAgICAgID8gbWlnaHQgYmUgMS4wMzEzeCBzbG93ZXIKICAgaW4tZm91ci1jYXNlcyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMC42NTAyKy00LjY3NjkgICAgID8gICAg
IDI0LjI0NDUrLTQuOTg5NyAgICAgICAgPyBtaWdodCBiZSAxLjE3NDF4IHNsb3dlcgogICBpbi1v
bmUtY2FzZS1mYWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjY2MjMrLTEu
NzYwOSAgICAgPyAgICAgMTMuMzM4MystMS4wNjU3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDUzNHgg
c2xvd2VyCiAgIGluLW9uZS1jYXNlLXRydWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTMuNjQ0OCstMS4wMjg5ICAgICAgICAgICAxMi40NTU2Ky0xLjU5OTUgICAgICAgICAgbWln
aHQgYmUgMS4wOTU1eCBmYXN0ZXIKICAgaW4tdHdvLWNhc2VzICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxMy4yNDA1Ky0wLjY5MjkgICAgICAgICAgIDExLjM5MjIrLTIuMjUz
MyAgICAgICAgICBtaWdodCBiZSAxLjE2MjJ4IGZhc3RlcgogICBpbmRleGVkLXByb3BlcnRpZXMt
aW4tb2JqZWN0cyAgICAgICAgICAgICAgICAgICAgICAzLjM0MDYrLTAuMzUwMyAgICAgICAgICAg
IDMuMTIwOCstMC4xODgzICAgICAgICAgIG1pZ2h0IGJlIDEuMDcwNHggZmFzdGVyCiAgIGluZmVy
LWNsb3N1cmUtY29uc3QtdGhlbi1tb3Ytbm8taW5saW5lICAgICAgICAgICAgIDMuNTcwNSstMC4x
MjA1ICAgICA/ICAgICAgMy43MzM4Ky0wLjI1ODUgICAgICAgID8gbWlnaHQgYmUgMS4wNDU3eCBz
bG93ZXIKICAgaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLW1vdiAgICAgICAgICAgICAgICAgICAg
ICAyMi4wMDE5Ky0xLjgyMDUgICAgID8gICAgIDI0LjI2NTArLTYuMjI4MiAgICAgICAgPyBtaWdo
dCBiZSAxLjEwMjl4IHNsb3dlcgogICBpbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tcHV0LXRvLXNj
b3BlLW5vLWlubGluZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDE0LjQyNzYrLTIuODQ4MyAgICAgPyAgICAgMTUuNzcxNSstOS44NjA0ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDkzMnggc2xvd2VyCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhl
bi1wdXQtdG8tc2NvcGUgICAgICAgICAgICAgMjYuMTQ2MistMi41Mzg0ICAgICA/ICAgICAyNy4w
NDk4Ky02LjIyMTkgICAgICAgID8gbWlnaHQgYmUgMS4wMzQ2eCBzbG93ZXIKICAgaW5mZXItY2xv
c3VyZS1jb25zdC10aGVuLXJlZW50ZXItbm8taW5saW5lICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTQuMTk4OCstMy4yNDk0ICAgICA/ICAg
ICA1NS4zOTc1Ky0zLjk2ODcgICAgICAgID8gbWlnaHQgYmUgMS4wMjIxeCBzbG93ZXIKICAgaW5m
ZXItY2xvc3VyZS1jb25zdC10aGVuLXJlZW50ZXIgICAgICAgICAgICAgICAgICAyNS45MzAyKy0y
LjUyNzcgICAgID8gICAgIDI2LjIzMDgrLTMuMTgzMiAgICAgICAgPyBtaWdodCBiZSAxLjAxMTZ4
IHNsb3dlcgogICBpbmZlci1jb25zdGFudC1nbG9iYWwtcHJvcGVydHkgICAgICAgICAgICAgICAg
ICAgIDM1LjE0NjErLTEuOTk4NSAgICAgPyAgICAgMzYuMTE0MCstMy40MDI1ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDI3NXggc2xvd2VyCiAgIGluZmVyLWNvbnN0YW50LXByb3BlcnR5ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDMuMTA5NystMC40MDk4ICAgICAgICAgICAgMy4wOTI4Ky0wLjM1
NjggICAgICAgIAogICBpbmZlci1vbmUtdGltZS1jbG9zdXJlLXRlbi12YXJzICAgICAgICAgICAg
ICAgICAgICA5Ljc2MDgrLTAuNDIwOSAgICAgICAgICAgIDkuNTAwMCstMC44NDIzICAgICAgICAg
IG1pZ2h0IGJlIDEuMDI3NXggZmFzdGVyCiAgIGluZmVyLW9uZS10aW1lLWNsb3N1cmUtdHdvLXZh
cnMgICAgICAgICAgICAgICAgICAgMTEuMjA2NystMy4yNTAxICAgICA/ICAgICAxMi4xNTYyKy0x
MS4wOTY5ICAgICAgID8gbWlnaHQgYmUgMS4wODQ3eCBzbG93ZXIKICAgaW5mZXItb25lLXRpbWUt
Y2xvc3VyZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4zMTUxKy0xLjYzODUgICAgICAg
ICAgICA4Ljg0NTQrLTAuNTMxNyAgICAgICAgICBtaWdodCBiZSAxLjA1MzF4IGZhc3RlcgogICBp
bmZlci1vbmUtdGltZS1kZWVwLWNsb3N1cmUgICAgICAgICAgICAgICAgICAgICAgIDE1Ljg2OTgr
LTMuNDcxMSAgICAgICAgICAgMTQuNjE0NCstMS4zNTg2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDg1
OXggZmFzdGVyCiAgIGlubGluZS1hcmd1bWVudHMtYWNjZXNzICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEuNzMwMistMC4zMzQ3ICAgICA/ICAgICAgMS45ODM5Ky0wLjM4ODQgICAgICAgID8g
bWlnaHQgYmUgMS4xNDY2eCBzbG93ZXIKICAgaW5saW5lLWFyZ3VtZW50cy1hbGlhc2VkLWFjY2Vz
cyAgICAgICAgICAgICAgICAgICAgMi4yMjk3Ky0wLjkzNjcgICAgID8gICAgICAyLjM0MTErLTAu
OTk2MyAgICAgICAgPyBtaWdodCBiZSAxLjA0OTl4IHNsb3dlcgogICBpbmxpbmUtYXJndW1lbnRz
LWxvY2FsLWVzY2FwZSAgICAgICAgICAgICAgICAgICAgIDEyLjg1NzMrLTAuNzIwNSAgICAgICAg
ICAgMTIuNTg4MCstMS40MTM1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxNHggZmFzdGVyCiAgIGlu
bGluZS1nZXQtc2NvcGVkLXZhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNjI1MCst
MC4zMzIyICAgICA/ICAgICAgNC43NDE1Ky0wLjg1NzQgICAgICAgID8gbWlnaHQgYmUgMS4wMjUy
eCBzbG93ZXIKICAgaW5saW5lZC1wdXQtYnktaWQtdHJhbnNpdGlvbiAgICAgICAgICAgICAgICAg
ICAgICAxMS4xMzg3Ky0xLjQ2MDIgICAgID8gICAgIDExLjIwMTMrLTAuODQwNyAgICAgICAgPwog
ICBpbnQtb3Itb3RoZXItYWJzLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICA2LjEz
MjYrLTEuOTE0MiAgICAgICAgICAgIDUuNjEwNystMC42NDIzICAgICAgICAgIG1pZ2h0IGJlIDEu
MDkzMHggZmFzdGVyCiAgIGludC1vci1vdGhlci1hYnMtemVyby10aGVuLWdldC1ieS12YWwgICAg
ICAgICAgICAgMTguNzIyNSstMS40MTM2ICAgICA/ICAgICAxOS45NTg4Ky0xLjc0NzMgICAgICAg
ID8gbWlnaHQgYmUgMS4wNjYweCBzbG93ZXIKICAgaW50LW9yLW90aGVyLWFkZC10aGVuLWdldC1i
eS12YWwgICAgICAgICAgICAgICAgICAgNi4zNDMzKy0zLjE5NDMgICAgICAgICAgICA2LjE4Nzcr
LTIuMjQ4MiAgICAgICAgICBtaWdodCBiZSAxLjAyNTF4IGZhc3RlcgogICBpbnQtb3Itb3RoZXIt
YWRkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjkyOTkrLTEuMzUyOSAgICAg
PyAgICAgIDYuNTUwNystMi4zNzQ2ICAgICAgICA/IG1pZ2h0IGJlIDEuMTA0N3ggc2xvd2VyCiAg
IGludC1vci1vdGhlci1kaXYtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDQuOTc3
MistMS44MzQzICAgICAgICAgICAgNC41NTM4Ky0wLjc5ODAgICAgICAgICAgbWlnaHQgYmUgMS4w
OTMweCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLW1heC10aGVuLWdldC1ieS12YWwgICAgICAgICAg
ICAgICAgICAxMS42NDcyKy0xNi41NDcwICAgICAgICAgICA0LjU3OTArLTAuNzEzNSAgICAgICAg
ICBtaWdodCBiZSAyLjU0MzZ4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItbWluLXRoZW4tZ2V0LWJ5
LXZhbCAgICAgICAgICAgICAgICAgICA1LjA1MjQrLTAuNzI1OSAgICAgICAgICAgIDQuNzI5NSst
MC40MjY0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDY4M3ggZmFzdGVyCiAgIGludC1vci1vdGhlci1t
b2QtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDUuNjc3NSstMi45NTQyICAgICAg
ICAgICAgMy45NzI0Ky0wLjA4MzcgICAgICAgICAgbWlnaHQgYmUgMS40MjkzeCBmYXN0ZXIKICAg
aW50LW9yLW90aGVyLW11bC10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgNC44NTI0
Ky0xLjYyNTEgICAgICAgICAgICA0LjQyNzUrLTAuOTM5NyAgICAgICAgICBtaWdodCBiZSAxLjA5
NjB4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItbmVnLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAg
ICAgICAgICA2LjI5OTArLTEuNTEzNCAgICAgPyAgICAgIDYuNDczOCstMi4wMDI2ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDI3N3ggc2xvd2VyCiAgIGludC1vci1vdGhlci1uZWctemVyby10aGVuLWdl
dC1ieS12YWwgICAgICAgICAgICAgMTcuOTYxOSstMC44MDg1ICAgICA/ICAgICAxOC4xOTM3Ky0x
LjI1MDkgICAgICAgID8gbWlnaHQgYmUgMS4wMTI5eCBzbG93ZXIKICAgaW50LW9yLW90aGVyLXN1
Yi10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgNS43ODE0Ky0xLjY3NjQgICAgICAg
ICAgICA1LjMzNDIrLTIuMTE5OCAgICAgICAgICBtaWdodCBiZSAxLjA4Mzh4IGZhc3RlcgogICBp
bnQtb3Itb3RoZXItc3ViICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjk2MjAr
LTAuNzUxNyAgICAgPyAgICAgIDQuNTc1NystMS4xNzEyICAgICAgICA/IG1pZ2h0IGJlIDEuMTU0
OXggc2xvd2VyCiAgIGludC1vdmVyZmxvdy1sb2NhbCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDUuMTE3NystMS44Nzk5ICAgICA/ICAgICAgNS4xNzE4Ky0xLjg0MDEgICAgICAgID8g
bWlnaHQgYmUgMS4wMTA2eCBzbG93ZXIKICAgSW50MTZBcnJheS1hbGxvYy1sb25nLWxpdmVkICAg
ICAgICAgICAgICAgICAgICAgICA1Mi41MzY0Ky0yLjQ1NzAgICAgID8gICAgIDUyLjYzOTUrLTMu
MTU2NiAgICAgICAgPwogICBJbnQxNkFycmF5LWJ1YmJsZS1zb3J0LXdpdGgtYnl0ZUxlbmd0aCAg
ICAgICAgICAgIDIxLjM0MTErLTAuNjc1NCAgICAgICAgICAgMjAuOTIzMCstMi4zMzIwICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDIwMHggZmFzdGVyCiAgIEludDE2QXJyYXktYnViYmxlLXNvcnQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMjIuNjAzNystMi40NTQ2ICAgICAgICAgICAyMS44Mjc1
Ky0xLjY0MjYgICAgICAgICAgbWlnaHQgYmUgMS4wMzU2eCBmYXN0ZXIKICAgSW50MTZBcnJheS1s
b2FkLWludC1tdWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS42NjY3Ky0wLjA5NDggICAg
ID8gICAgICAxLjcyOTIrLTAuMTg3OSAgICAgICAgPyBtaWdodCBiZSAxLjAzNzV4IHNsb3dlcgog
ICBJbnQxNkFycmF5LXRvLUludDMyQXJyYXktc2V0ICAgICAgICAgICAgICAgICAgICAgIDY1LjA5
MzQrLTI1LjA2MjMgICAgICAgICAgNTguMzA0NSstNC42MzM1ICAgICAgICAgIG1pZ2h0IGJlIDEu
MTE2NHggZmFzdGVyCiAgIEludDMyQXJyYXktYWxsb2MtbGFyZ2UgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTQuNTI1NSstNC4wNzg3ICAgICAgICAgICAxNC40NDk4Ky0xLjQ5ODMgICAgICAg
IAogICBJbnQzMkFycmF5LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAgICAgICAgICAgIDU5
Ljg5MzErLTEuODE0NyAgICAgICAgICAgNTkuNTg4NSstMy45NjQyICAgICAgICAKICAgSW50MzJB
cnJheS1hbGxvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi45OTMwKy0wLjE3
MTEgICAgID8gICAgICAzLjEyMTArLTAuNjczMiAgICAgICAgPyBtaWdodCBiZSAxLjA0Mjh4IHNs
b3dlcgogICBJbnQzMkFycmF5LUludDhBcnJheS12aWV3LWFsbG9jICAgICAgICAgICAgICAgICAg
ICA3LjMzMzIrLTAuNzE3NSAgICAgICAgICAgIDcuMTE0NCstMC44MzcxICAgICAgICAgIG1pZ2h0
IGJlIDEuMDMwOHggZmFzdGVyCiAgIGludDUyLXNwaWxsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDcuMjAyOSstMC44OTUzICAgICAgICAgICAgNi45MDQ4Ky0wLjQxMDYg
ICAgICAgICAgbWlnaHQgYmUgMS4wNDMyeCBmYXN0ZXIKICAgSW50OEFycmF5LWFsbG9jLWxvbmct
bGl2ZWQgICAgICAgICAgICAgICAgICAgICAgICA0OC44MzM3Ky0xLjM4MzAgICAgICAgICAgIDQ4
LjE1NjErLTEuMzk1MiAgICAgICAgICBtaWdodCBiZSAxLjAxNDF4IGZhc3RlcgogICBJbnQ4QXJy
YXktbG9hZC13aXRoLWJ5dGVMZW5ndGggICAgICAgICAgICAgICAgICAgICA0LjEyMTcrLTAuOTcy
MSAgICAgICAgICAgIDMuODYwNCstMC4xMjA4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDY3N3ggZmFz
dGVyCiAgIEludDhBcnJheS1sb2FkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDQuNzA3NSstMi4zMzA1ICAgICA/ICAgICAgNC43NDYzKy0yLjA3OTYgICAgICAgID8KICAgaW50
ZWdlci1kaXZpZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi4yOTY4Ky0x
LjM5MTUgICAgID8gICAgIDEyLjk2OTUrLTEuMTMyNSAgICAgICAgPyBtaWdodCBiZSAxLjA1NDd4
IHNsb3dlcgogICBpbnRlZ2VyLW1vZHVsbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyLjQ0NDgrLTAuNTU2NiAgICAgICAgICAgIDIuMjQ2MystMC43MTg0ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDg4NHggZmFzdGVyCiAgIGxhcmdlLWludC1jYXB0dXJlZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDYuOTc3OCstMC4yMTUyICAgICA/ICAgICAgNy4wNDU1Ky0wLjYw
MDIgICAgICAgID8KICAgbGFyZ2UtaW50LW5lZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxNi40MjIyKy0wLjUyNDQgICAgID8gICAgIDE2LjgzMTcrLTIuMTQ0NCAgICAgICAg
PyBtaWdodCBiZSAxLjAyNDl4IHNsb3dlcgogICBsYXJnZS1pbnQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDE3Ljk0ODErLTUuODI5NyAgICAgICAgICAgMTYuMTMwMCst
MS42NzUwICAgICAgICAgIG1pZ2h0IGJlIDEuMTEyN3ggZmFzdGVyCiAgIGxvZ2ljYWwtbm90ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuODU4NystMi4xODM3ICAgICAg
ICAgICAgNC42MTkxKy0wLjA4MTIgICAgICAgICAgbWlnaHQgYmUgMS4yNjg0eCBmYXN0ZXIKICAg
bG90cy1vZi1maWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC45MTM4
Ky0yLjA0NjUgICAgICAgICAgIDEwLjM2MjkrLTEuNjI0OCAgICAgICAgICBtaWdodCBiZSAxLjA1
MzJ4IGZhc3RlcgogICBtYWtlLWluZGV4ZWQtc3RvcmFnZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzLjA4NDArLTAuMTQxNiAgICAgPyAgICAgIDMuNTc3OCstMS4wMDQ5ICAgICAgICA/
IG1pZ2h0IGJlIDEuMTYwMXggc2xvd2VyCiAgIG1ha2Utcm9wZS1jc2UgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDUuMTk2MystMC43MzU2ICAgICAgICAgICAgNC43NDY5Ky0w
Ljc1OTYgICAgICAgICAgbWlnaHQgYmUgMS4wOTQ3eCBmYXN0ZXIKICAgbWFyc2FnbGlhLWxhcmdl
ci1pbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MC4xMTcxKy00LjgzNzkgICAgICAg
ICAgIDM4Ljk2NDUrLTIuNDI3MSAgICAgICAgICBtaWdodCBiZSAxLjAyOTZ4IGZhc3RlcgogICBt
YXJzYWdsaWEtb3NyLWVudHJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0LjM2MTEr
LTEuMDQ4OCAgICAgPyAgICAgMjUuMTgyNystMS45Mzc5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMz
N3ggc2xvd2VyCiAgIG1heC1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDMuMzc4MistMC42MjYyICAgICAgICAgICAgMy4yMzE2Ky0wLjQxMDQgICAgICAgICAg
bWlnaHQgYmUgMS4wNDU0eCBmYXN0ZXIKICAgbWV0aG9kLW9uLW51bWJlciAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxOS42MzkzKy0xLjUxMjEgICAgICAgICAgIDE4LjU1NTgrLTEu
MjQ3NSAgICAgICAgICBtaWdodCBiZSAxLjA1ODR4IGZhc3RlcgogICBtaW4tYm9vbGVhbiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjk4ODMrLTAuMDg0NyAgICAgPyAg
ICAgIDMuMTQ4NystMC40NDI3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDUzN3ggc2xvd2VyCiAgIG1p
bnVzLWJvb2xlYW4tZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNDQ5MCst
MC4xOTU5ICAgICA/ICAgICAgMy41NTUyKy0wLjMwNzUgICAgICAgID8gbWlnaHQgYmUgMS4wMzA4
eCBzbG93ZXIKICAgbWludXMtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi42NDk1Ky0wLjA1MTYgICAgID8gICAgICAyLjk0NzgrLTAuNDE1OCAgICAgICAgPyBt
aWdodCBiZSAxLjExMjZ4IHNsb3dlcgogICBtaXNjLXN0cmljdC1lcSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDM1Ljg2MDUrLTQuMzI1OCAgICAgICAgICAgMzMuNDYwMCstMy4z
MjE5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDcxN3ggZmFzdGVyCiAgIG1vZC1ib29sZWFuLWRvdWJs
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuNzE0MCstMC41NzA4ICAgICAgICAg
ICAxMi42MDY4Ky0wLjczODUgICAgICAgIAogICBtb2QtYm9vbGVhbiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA5LjMwNjArLTAuMjM3NCAgICAgICAgICAgIDkuMjU4NCst
MC4yMTAwICAgICAgICAKICAgbXVsLWJvb2xlYW4tZG91YmxlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNC4wMjg3Ky0wLjE3OTQgICAgICAgICAgICAzLjk4NzArLTAuMTAwMyAgICAg
ICAgICBtaWdodCBiZSAxLjAxMDV4IGZhc3RlcgogICBtdWwtYm9vbGVhbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzLjQ1NTYrLTAuNDc0NCAgICAgICAgICAgIDMuMTg1
MistMC4xNDU2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDg0OXggZmFzdGVyCiAgIG5lZy1ib29sZWFu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNzA4NCstMC43NTc3ICAg
ICAgICAgICAgMy40OTM3Ky0wLjA4NTcgICAgICAgICAgbWlnaHQgYmUgMS4wNjE1eCBmYXN0ZXIK
ICAgbmVnYXRpdmUtemVyby1kaXZpZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC40
NzExKy0wLjIwMjEgICAgICAgICAgICAwLjM2NjcrLTAuMDI1MSAgICAgICAgICBtaWdodCBiZSAx
LjI4NDh4IGZhc3RlcgogICBuZWdhdGl2ZS16ZXJvLW1vZHVsbyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAwLjM3OTIrLTAuMDQ2NyAgICAgPyAgICAgIDAuNDAyMCstMC4wNTMzICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDYwMnggc2xvd2VyCiAgIG5lZ2F0aXZlLXplcm8tbmVnYXRlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzM5OCstMC4wMTg0ICAgICA/ICAgICAgMC4zNTQ0
Ky0wLjAwMzggICAgICAgID8gbWlnaHQgYmUgMS4wNDMxeCBzbG93ZXIKICAgbmVzdGVkLWZ1bmN0
aW9uLXBhcnNpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAyNC4wMTM0Ky0yLjAzODUgICAg
ID8gICAgIDMwLjcxMzUrLTE3LjIwNjUgICAgICAgPyBtaWdodCBiZSAxLjI3OTB4IHNsb3dlcgog
ICBuZXctYXJyYXktYnVmZmVyLWRlYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjk1
NjIrLTEuNjQyNSAgICAgICAgICAgIDMuMTEzNSstMC4yMTkyICAgICAgICAgIG1pZ2h0IGJlIDEu
MjcwN3ggZmFzdGVyCiAgIG5ldy1hcnJheS1idWZmZXItcHVzaCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDcuMjAwMCstMC4xMjI5ICAgICA/ICAgICAgNy44MDU1Ky0xLjE1ODEgICAgICAg
ID8gbWlnaHQgYmUgMS4wODQxeCBzbG93ZXIKICAgbmV3LWFycmF5LWRlYWQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMi42ODE5Ky0wLjY5NDIgICAgID8gICAgIDEzLjIzMjAr
LTYuMDQ2MiAgICAgICAgPyBtaWdodCBiZSAxLjA0MzR4IHNsb3dlcgogICBuZXctYXJyYXktcHVz
aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjU4MDIrLTEuMTUzNCAgICAg
ICAgICAgIDYuNDcwMCstMS4zNTI1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE3MHggZmFzdGVyCiAg
IG51bWJlci10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNzM3
NSstMC45MDgxICAgICAgICAgICAgMy4zMjI0Ky0wLjMzNjEgICAgICAgICAgbWlnaHQgYmUgMS4x
MjQ5eCBmYXN0ZXIKICAgb2JqZWN0LWNsb3N1cmUtY2FsbCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNS45MDIyKy0xLjE4NTggICAgID8gICAgICA3LjI3MDgrLTEuNTg5NyAgICAgICAg
PyBtaWdodCBiZSAxLjIzMTl4IHNsb3dlcgogICBvYmplY3QtdGVzdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzLjI4MjIrLTAuNDg3NyAgICAgPyAgICAgIDMuMjgzNSst
MC4wOTc5ICAgICAgICA/CiAgIG9idmlvdXMtc2luay1wYXRob2xvZ3ktdGFrZW4gICAgICAgICAg
ICAgICAgICAgICAxMzcuNzEyMistMy41ODU0ICAgICAgICAgIDEzNi45MDExKy00Ljg4OTcgICAg
ICAgIAogICBvYnZpb3VzLXNpbmstcGF0aG9sb2d5ICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTMyLjc5MzgrLTMuMDQ5MCAgICAgICAgICAxMzEuOTAxMistMy4wOTY0ICAgICAgICAKICAgb2J2
aW91c2x5LWVsaWRhYmxlLW5ldy1vYmplY3QgICAgICAgICAgICAgICAgICAgICAzNy4yNDE3Ky0y
LjU2NzcgICAgID8gICAgIDM4LjI3NzArLTMuNzU4MyAgICAgICAgPyBtaWdodCBiZSAxLjAyNzh4
IHNsb3dlcgogICBwbHVzLWJvb2xlYW4tYXJpdGggICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyLjY3NjkrLTAuMDM5MCAgICAgPyAgICAgIDMuMDg1NystMC40NDk5ICAgICAgICA/IG1p
Z2h0IGJlIDEuMTUyN3ggc2xvd2VyCiAgIHBsdXMtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDMuNjIwMistMC40NjI1ICAgICA/ICAgICAgMy42MzMyKy0wLjEz
MzkgICAgICAgID8KICAgcGx1cy1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMy4wMTQwKy0wLjM3MTUgICAgICAgICAgICAyLjk2ODIrLTAuMjcxOCAgICAgICAg
ICBtaWdodCBiZSAxLjAxNTR4IGZhc3RlcgogICBwb2x5LWNoYWluLWFjY2Vzcy1kaWZmZXJlbnQt
cHJvdG90eXBlcy1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMy41MDc1Ky0wLjkwNjMgICAgICAgICAgICAzLjE4MTIrLTAuNDU5
NSAgICAgICAgICBtaWdodCBiZSAxLjEwMjZ4IGZhc3RlcgogICBwb2x5LWNoYWluLWFjY2Vzcy1k
aWZmZXJlbnQtcHJvdG90eXBlcyAgICAgICAgICAgICAzLjg1NDkrLTEuODg5NyAgICAgICAgICAg
IDIuODMyNystMC4xODQxICAgICAgICAgIG1pZ2h0IGJlIDEuMzYwOXggZmFzdGVyCiAgIHBvbHkt
Y2hhaW4tYWNjZXNzLXNpbXBsZXIgICAgICAgICAgICAgICAgICAgICAgICAgIDMuOTAxMistMC45
NTM4ICAgICAgICAgICAgMy42ODgzKy0xLjU4MTMgICAgICAgICAgbWlnaHQgYmUgMS4wNTc3eCBm
YXN0ZXIKICAgcG9seS1jaGFpbi1hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMi43MjI1Ky0wLjA1MDggICAgID8gICAgICA0LjI0MTgrLTMuNjYxNiAgICAgICAgPyBtaWdo
dCBiZSAxLjU1ODF4IHNsb3dlcgogICBwb2x5LXN0cmljdGVxICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDU3LjMxNjcrLTEuMjk2NSAgICAgPyAgICAgNTguMTY0NCstNC4xMzU2
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE0OHggc2xvd2VyCiAgIHBvbHltb3JwaGljLWFycmF5LWNh
bGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuOTg2NystMC40MjQ4ICAgICAgICAgICAg
MS44OTMzKy0wLjEwMzUgICAgICAgICAgbWlnaHQgYmUgMS4wNDkzeCBmYXN0ZXIKICAgcG9seW1v
cnBoaWMtZ2V0LWJ5LWlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4zODcwKy0wLjQw
OTcgICAgICAgICAgICAzLjE1MzIrLTAuMTY1OCAgICAgICAgICBtaWdodCBiZSAxLjA3NDJ4IGZh
c3RlcgogICBwb2x5bW9ycGhpYy1wdXQtYnktaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDI4Ljg3NTIrLTEuNDg0NiAgICAgICAgICAgMjguODU5NystMi44NTE2ICAgICAgICAKICAgcG9s
eW1vcnBoaWMtc3RydWN0dXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi4wMTkwKy0y
LjUwMTEgICAgICAgICAgIDE1LjkwMTcrLTEuMjYyMiAgICAgICAgCiAgIHBvbHl2YXJpYW50LW1v
bm9tb3JwaGljLWdldC1ieS1pZCAgICAgICAgICAgICAgICAgMTAuMTM3OCstMS43MTE2ICAgICAg
ICAgICAgOS41NTk4Ky0wLjcyNjkgICAgICAgICAgbWlnaHQgYmUgMS4wNjA1eCBmYXN0ZXIKICAg
cHJvdG8tZ2V0dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS45NTQx
Ky0xLjYyMDcgICAgICAgICAgIDExLjA0NDUrLTAuODMwMyAgICAgICAgICBtaWdodCBiZSAxLjA4
MjR4IGZhc3RlcgogICBwdXQtYnktaWQtcmVwbGFjZS1hbmQtdHJhbnNpdGlvbiAgICAgICAgICAg
ICAgICAgIDExLjI0NzMrLTMuMzYyNSAgICAgICAgICAgIDkuNzg3MystMS41NDA2ICAgICAgICAg
IG1pZ2h0IGJlIDEuMTQ5MnggZmFzdGVyCiAgIHB1dC1ieS1pZC1zbGlnaHRseS1wb2x5bW9ycGhp
YyAgICAgICAgICAgICAgICAgICAgIDMuMjIwMCstMC4zMzU3ICAgICAgICAgICAgMi45ODgwKy0w
LjI4NTEgICAgICAgICAgbWlnaHQgYmUgMS4wNzc2eCBmYXN0ZXIKICAgcHV0LWJ5LWlkICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy43NzI1Ky0wLjczMzQgICAgICAg
ICAgIDEzLjcyMjErLTAuNDgzMSAgICAgICAgCiAgIHB1dC1ieS12YWwtZGlyZWN0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDAuNjIyMistMC4wNDI2ICAgICAgICAgICAgMC41OTAw
Ky0wLjA4NzYgICAgICAgICAgbWlnaHQgYmUgMS4wNTQ2eCBmYXN0ZXIKICAgcHV0LWJ5LXZhbC1s
YXJnZS1pbmRleC1ibGFuay1pbmRleGluZy10eXBlICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuOTgzMCstMC4zOTcwICAgICA/ICAgICAg
Ni4yMDY5Ky0wLjc2NDUgICAgICAgID8gbWlnaHQgYmUgMS4wMzc0eCBzbG93ZXIKICAgcHV0LWJ5
LXZhbC1tYWNoaW5lLWludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy42NDIwKy0xLjQ1
MzYgICAgICAgICAgICAyLjkzMzYrLTEuNDA2MyAgICAgICAgICBtaWdodCBiZSAxLjI0MTV4IGZh
c3RlcgogICByYXJlLW9zci1leGl0LW9uLWxvY2FsICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDE5LjE1NDErLTYuMjE0MiAgICAgICAgICAgMTguMzcwNCstMi43MjE2ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDQyN3ggZmFzdGVyCiAgIHJlZ2lzdGVyLXByZXNzdXJlLWZyb20tb3NyICAgICAgICAg
ICAgICAgICAgICAgICAgMjEuMDk4MystMS42NzQxICAgICA/ICAgICAyMy4wMDg5Ky01LjQ4NTcg
ICAgICAgID8gbWlnaHQgYmUgMS4wOTA2eCBzbG93ZXIKICAgc2V0dGVyICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS40NzQxKy0wLjM1MDEgICAgID8gICAgICA1
Ljc1MzArLTAuNDYwMiAgICAgICAgPyBtaWdodCBiZSAxLjA1MTB4IHNsb3dlcgogICBzaW1wbGUt
YWN0aXZhdGlvbi1kZW1vICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwLjQxOTcrLTMuMDQy
MCAgICAgICAgICAgMjkuNTUyNistMC44NTcxICAgICAgICAgIG1pZ2h0IGJlIDEuMDI5M3ggZmFz
dGVyCiAgIHNpbXBsZS1nZXR0ZXItYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTQuNzY3MistMC41OTA0ICAgICAgICAgICAxNC42MDMyKy0wLjk0NzcgICAgICAgICAgbWlnaHQg
YmUgMS4wMTEyeCBmYXN0ZXIKICAgc2ltcGxlLXBvbHktY2FsbC1uZXN0ZWQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOS42OTMyKy0xLjE2NzYgICAgID8gICAgIDExLjEyNDUrLTEuNDgzNyAg
ICAgICAgPyBtaWdodCBiZSAxLjE0Nzd4IHNsb3dlcgogICBzaW1wbGUtcG9seS1jYWxsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjU5ODArLTAuNTU5OCAgICAgPyAgICAgIDEu
NjYwMCstMC4zOTA1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM4OHggc2xvd2VyCiAgIHNpbi1ib29s
ZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjEuMjYwMSstMy43NDg0
ICAgICA/ICAgICAyMS40OTU3Ky00LjQzMzkgICAgICAgID8gbWlnaHQgYmUgMS4wMTExeCBzbG93
ZXIKICAgc2lua2FibGUtbmV3LW9iamVjdC1kYWcgICAgICAgICAgICAgICAgICAgICAgICAgICA3
MC45NjYyKy0zLjEwNDUgICAgID8gICAgIDcxLjkwMjArLTYuODIxMiAgICAgICAgPyBtaWdodCBi
ZSAxLjAxMzJ4IHNsb3dlcgogICBzaW5rYWJsZS1uZXctb2JqZWN0LXRha2VuICAgICAgICAgICAg
ICAgICAgICAgICAgIDU1LjkwNDErLTYuMTM5MSAgICAgPyAgICAgNzEuMDk4NystNTAuNTA0OSAg
ICAgICA/IG1pZ2h0IGJlIDEuMjcxOHggc2xvd2VyCiAgIHNpbmthYmxlLW5ldy1vYmplY3QgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMzguMjIyMystMy4zNTczICAgICA/ICAgICAzOS41
MDQyKy0yLjg4NTggICAgICAgID8gbWlnaHQgYmUgMS4wMzM1eCBzbG93ZXIKICAgc2xvdy1hcnJh
eS1wcm9maWxlLWNvbnZlcmdlbmNlICAgICAgICAgICAgICAgICAgICAgMi45OTg1Ky0wLjQ1OTYg
ICAgID8gICAgICAzLjA1ODUrLTAuNTY1NCAgICAgICAgPyBtaWdodCBiZSAxLjAyMDB4IHNsb3dl
cgogICBzbG93LWNvbnZlcmdlbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
Ljc2ODUrLTAuOTEyNCAgICAgICAgICAgIDMuMjIzMistMC41MDkzICAgICAgICAgIG1pZ2h0IGJl
IDEuMTY5MnggZmFzdGVyCiAgIHNwYXJzZS1jb25kaXRpb25hbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEuNDEwMCstMC4xODIwICAgICA/ICAgICAgMS41MDU5Ky0wLjQwNjIgICAg
ICAgID8gbWlnaHQgYmUgMS4wNjgweCBzbG93ZXIKICAgc3BsaWNlLXRvLXJlbW92ZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxNi42NDg3Ky0xLjQ0NTAgICAgID8gICAgIDE4LjMx
MjcrLTkuNTY3MSAgICAgICAgPyBtaWdodCBiZSAxLjA5OTl4IHNsb3dlcgogICBzdHJpbmctY2hh
ci1jb2RlLWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4LjAxMTYrLTEuMTM1OSAg
ICAgPyAgICAgMTguMzI1OSstMS4xMjUxICAgICAgICA/IG1pZ2h0IGJlIDEuMDE3NXggc2xvd2Vy
CiAgIHN0cmluZy1jb25jYXQtb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
MzQ0OSstMC4xOTU0ICAgICA/ICAgICAgMi40Mzg3Ky0wLjEyNTUgICAgICAgID8gbWlnaHQgYmUg
MS4wNDAweCBzbG93ZXIKICAgc3RyaW5nLWNvbmNhdC1wYWlyLW9iamVjdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgMi40MjIxKy0wLjEyNDEgICAgID8gICAgICAyLjUxNTkrLTAuMzM0MiAgICAg
ICAgPyBtaWdodCBiZSAxLjAzODh4IHNsb3dlcgogICBzdHJpbmctY29uY2F0LXBhaXItc2ltcGxl
ICAgICAgICAgICAgICAgICAgICAgICAgIDExLjI5NjQrLTEuMTMwOCAgICAgPyAgICAgMTIuMDE2
NSstMi4yMjczICAgICAgICA/IG1pZ2h0IGJlIDEuMDYzN3ggc2xvd2VyCiAgIHN0cmluZy1jb25j
YXQtc2ltcGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEuMjQyMSstMC41Njk2ICAg
ICA/ICAgICAxMi4wMDk5Ky0wLjc4MjMgICAgICAgID8gbWlnaHQgYmUgMS4wNjgzeCBzbG93ZXIK
ICAgc3RyaW5nLWNvbnMtcmVwZWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC40
MjMzKy0wLjU0NjYgICAgICAgICAgICA4LjI1NjUrLTAuNzA3OCAgICAgICAgICBtaWdodCBiZSAx
LjAyMDJ4IGZhc3RlcgogICBzdHJpbmctY29ucy10b3dlciAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA4LjAxNDMrLTAuMjg0NSAgICAgPyAgICAgIDguMjIwOSstMS4wMDEyICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDI1OHggc2xvd2VyCiAgIHN0cmluZy1lcXVhbGl0eSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTguNzA5MystMy4wMjk3ICAgICAgICAgICAxOC40MDky
Ky0xLjUxNjcgICAgICAgICAgbWlnaHQgYmUgMS4wMTYzeCBmYXN0ZXIKICAgc3RyaW5nLWdldC1i
eS12YWwtYmlnLWNoYXIgICAgICAgICAgICAgICAgICAgICAgICAgOC4wMTQwKy0wLjkyMTIgICAg
ID8gICAgICA4LjgwOTMrLTIuMjY4OCAgICAgICAgPyBtaWdodCBiZSAxLjA5OTJ4IHNsb3dlcgog
ICBzdHJpbmctZ2V0LWJ5LXZhbC1vdXQtb2YtYm91bmRzLWluc2FuZSAgICAgICAgICAgICAzLjk4
NjkrLTAuMjAyMSAgICAgICAgICAgIDMuOTIwMystMC4wOTYyICAgICAgICAgIG1pZ2h0IGJlIDEu
MDE3MHggZmFzdGVyCiAgIHN0cmluZy1nZXQtYnktdmFsLW91dC1vZi1ib3VuZHMgICAgICAgICAg
ICAgICAgICAgIDQuOTk1MSstMS4zMDAxICAgICA/ICAgICAgNS42ODkwKy0xLjMwOTcgICAgICAg
ID8gbWlnaHQgYmUgMS4xMzg5eCBzbG93ZXIKICAgc3RyaW5nLWdldC1ieS12YWwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMy45NzkwKy0yLjA0NTQgICAgICAgICAgICAzLjI2MTQr
LTAuMzI3NyAgICAgICAgICBtaWdodCBiZSAxLjIyMDB4IGZhc3RlcgogICBzdHJpbmctaGFzaCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjM5NjArLTAuMDU1MCAgICAg
ICAgICAgIDIuMzM1MystMC4xMzc4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI2MHggZmFzdGVyCiAg
IHN0cmluZy1sb25nLWlkZW50LWVxdWFsaXR5ICAgICAgICAgICAgICAgICAgICAgICAgMTcuNTcx
NystNy4xNTQ5ICAgICAgICAgICAxNi4zNDE0Ky0zLjE3MzggICAgICAgICAgbWlnaHQgYmUgMS4w
NzUzeCBmYXN0ZXIKICAgc3RyaW5nLXJlcGVhdC1hcml0aCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzMS4xNTc0Ky0yLjM0NTEgICAgICAgICAgIDMwLjY0NDUrLTEuMTc3OSAgICAgICAg
ICBtaWdodCBiZSAxLjAxNjd4IGZhc3RlcgogICBzdHJpbmctc3ViICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDY0Ljk0MjErLTIuMzk2MCAgICAgPyAgICAgNjguOTkxMyst
MTAuMDk5NyAgICAgICA/IG1pZ2h0IGJlIDEuMDYyNHggc2xvd2VyCiAgIHN0cmluZy10ZXN0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMzIzMistMC43ODYxICAgICA/
ICAgICAgMy40NTMyKy0xLjM3MDcgICAgICAgID8gbWlnaHQgYmUgMS4wMzkxeCBzbG93ZXIKICAg
c3RyaW5nLXZhci1lcXVhbGl0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOS44NDkw
Ky0yLjUxMjMgICAgICAgICAgIDI4LjUzMzMrLTEuNzg5NSAgICAgICAgICBtaWdodCBiZSAxLjA0
NjF4IGZhc3RlcgogICBzdHJ1Y3R1cmUtaG9pc3Qtb3Zlci10cmFuc2l0aW9ucyAgICAgICAgICAg
ICAgICAgICAyLjc2MjArLTAuNjkzNSAgICAgPyAgICAgIDQuNDE3MystNC41NDMxICAgICAgICA/
IG1pZ2h0IGJlIDEuNTk5M3ggc2xvd2VyCiAgIHN1YnN0cmluZy1jb25jYXQtd2VpcmQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNDQuODg5NistNS40NDQ2ICAgICAgICAgICA0Mi4zNzc4Ky0y
Ljk1MjEgICAgICAgICAgbWlnaHQgYmUgMS4wNTkzeCBmYXN0ZXIKICAgc3Vic3RyaW5nLWNvbmNh
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0My44OTcxKy02LjE4MzYgICAgICAg
ICAgIDQzLjY2MDkrLTUuNjA0NiAgICAgICAgCiAgIHN1YnN0cmluZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNTMuMTAxMystNi4zODA0ICAgICAgICAgICA1MC42NTIz
Ky0yLjA4MDkgICAgICAgICAgbWlnaHQgYmUgMS4wNDgzeCBmYXN0ZXIKICAgc3dpdGNoLWNoYXIt
Y29uc3RhbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4xNDUyKy0wLjU5MzcgICAg
ID8gICAgICAzLjYyODUrLTAuNzU5MCAgICAgICAgPyBtaWdodCBiZSAxLjE1Mzd4IHNsb3dlcgog
ICBzd2l0Y2gtY2hhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjA3
NjIrLTEuNjQxMSAgICAgPyAgICAgIDkuNTY3NistMC4yMTQ4ICAgICAgICA/IG1pZ2h0IGJlIDEu
MTg0N3ggc2xvd2VyCiAgIHN3aXRjaC1jb25zdGFudCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTAuMTYzMCstMi41MTg4ICAgICA/ICAgICAxMC40NzQzKy0xLjg1NTAgICAgICAg
ID8gbWlnaHQgYmUgMS4wMzA2eCBzbG93ZXIKICAgc3dpdGNoLXN0cmluZy1iYXNpYy1iaWctdmFy
ICAgICAgICAgICAgICAgICAgICAgICAxOS42NDgxKy0xNC40MzcwICAgICAgICAgIDE1LjE2MTcr
LTEuNTU0NSAgICAgICAgICBtaWdodCBiZSAxLjI5NTl4IGZhc3RlcgogICBzd2l0Y2gtc3RyaW5n
LWJhc2ljLWJpZyAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2LjQyNDcrLTAuODg0NyAgICAg
ICAgICAgMTUuMDE0OCstMS45MzAxICAgICAgICAgIG1pZ2h0IGJlIDEuMDkzOXggZmFzdGVyCiAg
IHN3aXRjaC1zdHJpbmctYmFzaWMtdmFyICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUuNTI0
MistMi4xMjk4ICAgICAgICAgICAxNC45Nzc4Ky0xLjQ1NzUgICAgICAgICAgbWlnaHQgYmUgMS4w
MzY1eCBmYXN0ZXIKICAgc3dpdGNoLXN0cmluZy1iYXNpYyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxNC4zMTExKy0wLjgwMzIgICAgICAgICAgIDEzLjY2MDYrLTAuNDM4NyAgICAgICAg
ICBtaWdodCBiZSAxLjA0NzZ4IGZhc3RlcgogICBzd2l0Y2gtc3RyaW5nLWJpZy1sZW5ndGgtdG93
ZXItdmFyICAgICAgICAgICAgICAgIDIxLjc4MjgrLTEuMTEzOSAgICAgPyAgICAgMjMuNTUzMyst
MC42NjY1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDgxM3ggc2xvd2VyCiAgIHN3aXRjaC1zdHJpbmct
bGVuZ3RoLXRvd2VyLXZhciAgICAgICAgICAgICAgICAgICAgMTUuNDk5NSstMS44MDg4ICAgICAg
ICAgICAxNS4zNjI1Ky0yLjE5NTMgICAgICAgIAogICBzd2l0Y2gtc3RyaW5nLWxlbmd0aC10b3dl
ciAgICAgICAgICAgICAgICAgICAgICAgIDEzLjUyODErLTEuMzQ5OCAgICAgPyAgICAgMjAuNDMy
MCstMjAuODk1OCAgICAgICA/IG1pZ2h0IGJlIDEuNTEwM3ggc2xvd2VyCiAgIHN3aXRjaC1zdHJp
bmctc2hvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQuMjM1OCstMi40NjIyICAg
ICA/ICAgICAyMC40NDUzKy0yMy44MzU2ICAgICAgID8gbWlnaHQgYmUgMS40MzYyeCBzbG93ZXIK
ICAgc3dpdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy44
MTkzKy0zLjc2NjcgICAgID8gICAgIDE0LjE0MjArLTEuODk1MSAgICAgICAgPyBtaWdodCBiZSAx
LjAyMzR4IHNsb3dlcgogICB0ZWFyLW9mZi1hcmd1bWVudHMtc2ltcGxlICAgICAgICAgICAgICAg
ICAgICAgICAgICAyLjMxODcrLTAuMTIxNyAgICAgICAgICAgIDIuMjUwNystMC4xODE5ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDMwMnggZmFzdGVyCiAgIHRlYXItb2ZmLWFyZ3VtZW50cyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDMuMzkyMCstMC4zMzAxICAgICAgICAgICAgMy4xODYz
Ky0wLjI1NTEgICAgICAgICAgbWlnaHQgYmUgMS4wNjQ2eCBmYXN0ZXIKICAgdGVtcG9yYWwtc3Ry
dWN0dXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy40OTcxKy0xLjAxMTYgICAg
ID8gICAgIDE0Ljg2MDUrLTEuNjY4MCAgICAgICAgPyBtaWdodCBiZSAxLjEwMTB4IHNsb3dlcgog
ICB0by1pbnQzMi1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1LjE1
ODkrLTAuODgwNCAgICAgICAgICAgMTQuOTg4MistMC45MDA4ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDExNHggZmFzdGVyCiAgIHVuZGVmaW5lZC1wcm9wZXJ0eS1hY2Nlc3MgICAgICAgICAgICAgICAg
ICAgICAgICAyODkuOTcxNystNS4yOTQ3ICAgICAgICAgIDI4Mi4yMTMzKy0xMi42OTg5ICAgICAg
ICAgbWlnaHQgYmUgMS4wMjc1eCBmYXN0ZXIKICAgdW5kZWZpbmVkLXRlc3QgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMy4zNzcwKy0xLjA4MDIgICAgID8gICAgICAzLjY5OTgr
LTEuMTkxOSAgICAgICAgPyBtaWdodCBiZSAxLjA5NTZ4IHNsb3dlcgogICB1bnByb2ZpbGVkLWxp
Y20gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE5LjA1NzYrLTYuMjI4NiAgICAg
ICAgICAgMTcuNjExMSstMy4wNDg4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDgyMXggZmFzdGVyCiAg
IHdlaXJkLWlubGluaW5nLWNvbnN0LXByb3AgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNzg2
NCstMC42NzE2ICAgICAgICAgICAgMi43NTA1Ky0wLjQyMzAgICAgICAgICAgbWlnaHQgYmUgMS4w
MTMweCBmYXN0ZXIKCiAgIDxhcml0aG1ldGljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTguODI2OSstMC4xOTA2ICAgICAgICAgICAxOC44MjYwKy0wLjU4NTAgICAgICAg
ICAgbWlnaHQgYmUgMS4wMDAweCBmYXN0ZXIKICAgPGdlb21ldHJpYz4gKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOC45NjE3Ky0wLjA1NjEgICAgICAgICAgICA4LjkzNTAr
LTAuMDY1MiAgICAgICAgICBtaWdodCBiZSAxLjAwMzB4IGZhc3RlcgogICA8aGFybW9uaWM+ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjYzMDIrLTAuMDgzNyAgICAg
ICAgICAgIDQuNTY3MSstMC4wNTAyICAgICAgICAgIG1pZ2h0IGJlIDEuMDEzOHggZmFzdGVyCgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
cmlnaW5hbCAgICAgICAgICAgICB3aXRoUGFyc2VyQ2hhbmdlcyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIApBbGwgYmVuY2htYXJrczoKICAgPGFyaXRobWV0aWM+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA3MC43OTE1Ky0wLjQzMTEgICAgICAgICAgIDcwLjU3
OTArLTAuNTUzMSAgICAgICAgICBtaWdodCBiZSAxLjAwMzB4IGZhc3RlcgogICA8Z2VvbWV0cmlj
PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjQwMTUrLTAuMTEzOSAg
ICAgICAgICAgMTIuMzY1NistMC4wNTI0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDAyOXggZmFzdGVy
CiAgIDxoYXJtb25pYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMu
NTI0MistMC4wMzg2ICAgICAgICAgICAgMy41MDA5Ky0wLjA2NTYgICAgICAgICAgbWlnaHQgYmUg
MS4wMDY3eCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9yaWdpbmFsICAgICAgICAgICAgIHdpdGhQYXJzZXJDaGFuZ2VzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkdlb21lYW4gb2YgcHJlZmVycmVkIG1lYW5z
OgogICA8c2NhbGVkLXJlc3VsdD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM2
Ljg2NTkrLTAuOTk1MyAgICAgICAgICAgMzYuNTk0OSstMC42MTQ4ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDA3NHggZmFzdGVyCgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246259</attachid>
            <date>2015-02-09 00:08:27 -0800</date>
            <delta_ts>2015-02-10 09:25:23 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>23970</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc5ODIwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcwIEBA
CisyMDE1LTAyLTA4ICBTYWFtIEJhcmF0aSAgPHNhYW1iYXJhdGkxQGdtYWlsLmNvbT4KKworICAg
ICAgICBBZGp1c3QgdGhlIHJhbmdlcyBvZiBiYXNpYyBibG9jayBzdGF0ZW1lbnRzIGluIEpTQydz
IGNvbnRyb2wgZmxvdyBwcm9maWxlciB0byBiZSBtdXR1YWxseSBleGNsdXNpdmUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTA5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvc2UgdGhlIGNvbnRy
b2wgZmxvdyBvZiBhIHByb2dyYW0gZm9ybXMgYmFzaWMgYmxvY2sgQSB3aXRoIHN1Y2Nlc3NvciBi
bG9jaworICAgICAgICBCLiBBJ3MgZW5kIG9mZnNldCB3aWxsIGJlIHRoZSAqc2FtZSogYXMgQidz
IHN0YXJ0IG9mZnNldCBpbiB0aGUgY3VycmVudCBhcmNoaXRlY3R1cmUgCisgICAgICAgIG9mIHRo
ZSBjb250cm9sIGZsb3cgcHJvZmlsZXIuIFRoaXMgbWFrZXMgcmVhc29uaW5nIGFib3V0IHRoZSB0
ZXh0IG9mZnNldHMgb2YKKyAgICAgICAgdGhlIGNvbnRyb2wgZmxvdyBwcm9maWxlciB1bnNvdW5k
LiBUbyBtYWtlIHJlYXNvbmluZyBhYm91dCBvZmZzZXRzIHNvdW5kLCBhbGwgCisgICAgICAgIGJh
c2ljIGJsb2NrIHJhbmdlcyBzaG91bGQgYmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgQWxsIGNhbGxz
IHRvIGVtaXRQcm9maWxlQ29udHJvbEZsb3cgCisgICAgICAgIG5vdyBwYXNzIGluIHRoZSAqc3Rh
cnQqIG9mIGEgYmFzaWMgYmxvY2sgYXMgdGhlIHRleHQgb2Zmc2V0IGFyZ3VtZW50LiBUaGlzIHNp
bXBsaWZpZXMgCisgICAgICAgIGFsbCBjYWxscyB0byBlbWl0UHJvZmlsZUNvbnRyb2xGbG93IGJl
Y2F1c2UgdGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uIGhhZCBhCisgICAgICAgIGxvdCBvZiBl
ZGdlIGNhc2VzIGZvciBnZXR0aW5nIHRoZSBkZXNpcmVkIGJhc2ljIGJsb2NrIHRleHQgYm91bmRh
cmllcy4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gaGFzIGVuc3VyZXMgdGhhdCB0aGUgYmFz
aWMgYmxvY2sgYm91bmRhcnkgb2YgYSBibG9jayBzdGF0ZW1lbnQgCisgICAgICAgIGlzIHRoZSBl
eGFjdGx5IHRoZSBibG9jaydzIG9wZW4gYW5kIGNsb3NlIGJyYWNlIG9mZnNldHMgKGluY2x1c2l2
ZSkuIEZvciBleGFtcGxlLAorICAgICAgICBpbiBpZi9mb3Ivd2hpbGUgc3RhdGVtZW50cy4KKwor
ICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9j
azo6aW5zZXJ0QmFzaWNCbG9ja0JvdW5kYXJpZXNGb3JDb250cm9sRmxvd1Byb2ZpbGVyKToKKyAg
ICAgICAgV2hlbiBjb21wdXRpbmcgYmFzaWMgYmxvY2sgYm91bmRhcmllcyBpbiBDb2RlQmxvY2ss
IHdlIGVuc3VyZSB0aGF0IGV2ZXJ5CisgICAgICAgIGJsb2NrJ3MgZW5kIG9mZnNldCBpcyBvbmUg
bGVzcyB0aGFuIGl0cyBzdWNjZXNzb3IncyBzdGFydCBvZmZzZXQgdG8KKyAgICAgICAgbWFpbnRh
aW4gdGhhdCBib3VuZGFyaWVzJyByYW5nZXMgc2hvdWxkIGJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4K
KyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6
Q29uZGl0aW9uYWxOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpJZkVsc2VOb2Rl
OjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpXaGlsZU5vZGU6OmVtaXRCeXRlY29kZSk6
CisgICAgICAgIChKU0M6OkZvck5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6OkZv
ckluTm9kZTo6ZW1pdE11bHRpTG9vcEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6Rm9yT2ZOb2Rl
OjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpDb250aW51ZU5vZGU6OmVtaXRCeXRlY29k
ZSk6CisgICAgICAgIChKU0M6OkJyZWFrTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKEpT
Qzo6UmV0dXJuTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6VGhyb3dOb2RlOjpl
bWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpUcnlOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAg
ICAgICAqIGpzYy5jcHA6CisgICAgICAgIChmdW5jdGlvbkhhc0Jhc2ljQmxvY2tFeGVjdXRlZCk6
CisgICAgICAgICogcGFyc2VyL0FTVEJ1aWxkZXIuaDoKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRl
cjo6c2V0U3RhcnRPZmZzZXQpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAo
SlNDOjpOb2RlOjpzZXRTdGFydE9mZnNldCk6CisgICAgICAgICogcGFyc2VyL1BhcnNlci5jcHA6
CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUJsb2NrU3RhdGVtZW50KToK
KyAgICAgICAgV2Ugbm93IGVuc3VyZSB0aGF0IGEgYmxvY2sgc3RhdGVtZW50J3Mgc3RhcnQgYW5k
IGVuZCBvZmZzZXQKKyAgICAgICAgYXJlIGRpcmVjdGx5IG9uIHRoZSBvcGVuaW5nIGFuZCBjbG9z
aW5nIGJyYWNlLgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VTdGF0ZW1l
bnQpOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VNZW1iZXJFeHByZXNz
aW9uKToKKyAgICAgICAgRm9yIHRoZSB2YXJpb3VzIGZ1bmN0aW9uIGNhbGwgQVNUIG5vZGVzLCB0
aGVpciBtX3Bvc2l0aW9uIG1lbWJlciAKKyAgICAgICAgdmFyaWFibGUgaXMgbm93IHRoZSBzdGFy
dCBvZiB0aGUgZW50aXJlIGZ1bmN0aW9uIGNhbGwgZXhwcmVzc2lvbiAKKyAgICAgICAgYW5kIG5v
dCBhdCB0aGUgc3RhcnQgb2YgdGhlIG9wZW4gcGFyZW4gb2YgdGhlIGFyZ3VtZW50cyBsaXN0Lgor
ICAgICAgICAqIHRlc3RzL2NvbnRyb2xGbG93UHJvZmlsZXIvYnJhY2UtbG9jYXRpb24uanM6IEFk
ZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAgICAgIChiYXopOgorICAg
ICAgICAodGVzdElmKToKKyAgICAgICAgKHRlc3RGb3JSZWd1bGFyKToKKyAgICAgICAgKHRlc3RG
b3JJbik6CisgICAgICAgICh0ZXN0Rm9yT2YpOgorICAgICAgICAodGVzdFdoaWxlKToKKyAgICAg
ICAgKiB0ZXN0cy9jb250cm9sRmxvd1Byb2ZpbGVyL2NvbmRpdGlvbmFsLWV4cHJlc3Npb24uanM6
IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAgICAgICh0ZXN0Q29u
ZGl0aW9uYWxCYXNpYyk6CisgICAgICAgICh0ZXN0Q29uZGl0aW9uYWxGdW5jdGlvbik6CisKIDIw
MTUtMDItMDggIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlbW92ZSBhIGZldyBkdXBsaWNhdGUgcHJvcGFnYXRpb24gc3RlcHMgZnJvbSB0aGUgREZH
J3MgUHJlZGljdGlvblByb3BhZ2F0aW9uIHBoYXNlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAko
cmV2aXNpb24gMTc5NzgzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTExMjcsNiArMTEyNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25IYXMKICAgICBSRUxFQVNFX0FTU0VSVChleGVjLT5hcmd1bWVudCgxKS5pc1N0
cmluZygpKTsKICAgICBTdHJpbmcgc3Vic3RyaW5nID0gZXhlYy0+YXJndW1lbnQoMSkuZ2V0U3Ry
aW5nKGV4ZWMpOwogICAgIFN0cmluZyBzb3VyY2VDb2RlVGV4dCA9IGV4ZWN1dGFibGUtPnNvdXJj
ZSgpLnRvU3RyaW5nKCk7CisgICAgUkVMRUFTRV9BU1NFUlQoc291cmNlQ29kZVRleHQuY29udGFp
bnMoc3Vic3RyaW5nKSk7CiAgICAgaW50IG9mZnNldCA9IHNvdXJjZUNvZGVUZXh0LmZpbmQoc3Vi
c3RyaW5nKSArIGV4ZWN1dGFibGUtPnNvdXJjZSgpLnN0YXJ0T2Zmc2V0KCk7CiAgICAgCiAgICAg
Ym9vbCBoYXNFeGVjdXRlZCA9IGV4ZWMtPnZtKCkuY29udHJvbEZsb3dQcm9maWxlcigpLT5oYXNC
YXNpY0Jsb2NrQXRUZXh0T2Zmc2V0QmVlbkV4ZWN1dGVkKG9mZnNldCwgZXhlY3V0YWJsZS0+c291
cmNlSUQoKSwgZXhlYy0+dm0oKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTc5NzgzKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwNTYsNyAr
NDA1Niw3IEBAIHZvaWQgQ29kZUJsb2NrOjppbnNlcnRCYXNpY0Jsb2NrQm91bmRhcmkKICAgICAg
ICAgaWYgKGkgKyAxIDwgb2Zmc2V0c0xlbmd0aCkgewogICAgICAgICAgICAgc2l6ZV90IGVuZElk
eCA9IGJ5dGVjb2RlT2Zmc2V0c1tpICsgMV07CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCh2
bSgpLT5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQoaW5zdHJ1Y3Rpb25zW2VuZElkeF0udS5vcGNv
ZGUpID09IG9wX3Byb2ZpbGVfY29udHJvbF9mbG93KTsKLSAgICAgICAgICAgIGJhc2ljQmxvY2tF
bmRPZmZzZXQgPSBpbnN0cnVjdGlvbnNbZW5kSWR4ICsgMV0udS5vcGVyYW5kOworICAgICAgICAg
ICAgYmFzaWNCbG9ja0VuZE9mZnNldCA9IGluc3RydWN0aW9uc1tlbmRJZHggKyAxXS51Lm9wZXJh
bmQgLSAxOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgYmFzaWNCbG9ja0VuZE9mZnNl
dCA9IG1fc291cmNlT2Zmc2V0ICsgbV9vd25lckV4ZWN1dGFibGUtPnNvdXJjZSgpLmxlbmd0aCgp
IC0gMTsgLy8gT2Zmc2V0IGJlZm9yZSB0aGUgY2xvc2luZyBicmFjZS4KICAgICAgICAgICAgIGJh
c2ljQmxvY2tTdGFydE9mZnNldCA9IHN0ZDo6bWluKGJhc2ljQmxvY2tTdGFydE9mZnNldCwgYmFz
aWNCbG9ja0VuZE9mZnNldCk7IC8vIFNvbWUgc3RhcnQgb2Zmc2V0cyBtYXkgYmUgYXQgdGhlIGNs
b3NpbmcgYnJhY2UsIGVuc3VyZSBpdCBpcyB0aGUgb2Zmc2V0IGJlZm9yZS4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJ
KHJldmlzaW9uIDE3OTc4MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Tm9kZXNDb2RlZ2VuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ0NCwxMiArMTQ0NCwxMiBAQCBS
ZWdpc3RlcklEKiBDb25kaXRpb25hbE5vZGU6OmVtaXRCeXRlY29kCiAgICAgZ2VuZXJhdG9yLmVt
aXRKdW1wKGFmdGVyRWxzZS5nZXQoKSk7CiAKICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGJlZm9y
ZUVsc2UuZ2V0KCkpOwotICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fZXhw
cjItPnN0YXJ0T2Zmc2V0KCkpOworICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93
KG1fZXhwcjEtPmVuZE9mZnNldCgpICsgMSk7CiAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKG5ld0Rz
dC5nZXQoKSwgbV9leHByMik7CiAKICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGFmdGVyRWxzZS5n
ZXQoKSk7CiAKLSAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX2V4cHIyLT5l
bmRPZmZzZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9leHBy
Mi0+ZW5kT2Zmc2V0KCkgKyAxKTsKIAogICAgIHJldHVybiBuZXdEc3QuZ2V0KCk7CiB9CkBAIC0x
ODk3LDEyICsxODk3LDEyIEBAIHZvaWQgSWZFbHNlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2UKICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGJlZm9yZUVsc2UuZ2V0KCkpOwogCiAgICAgaWYg
KG1fZWxzZUJsb2NrKSB7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93
KG1faWZCbG9jay0+ZW5kT2Zmc2V0KCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVD
b250cm9sRmxvdyhtX2lmQmxvY2stPmVuZE9mZnNldCgpICsgMSk7CiAgICAgICAgIGdlbmVyYXRv
ci5lbWl0Tm9kZShkc3QsIG1fZWxzZUJsb2NrKTsKICAgICB9CiAKICAgICBnZW5lcmF0b3IuZW1p
dExhYmVsKGFmdGVyRWxzZS5nZXQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJv
bEZsb3cobV9lbHNlQmxvY2sgPyBtX2Vsc2VCbG9jay0+ZW5kT2Zmc2V0KCkgOiBtX2lmQmxvY2st
PmVuZE9mZnNldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdygobV9l
bHNlQmxvY2sgPyBtX2Vsc2VCbG9jay0+ZW5kT2Zmc2V0KCkgOiBtX2lmQmxvY2stPmVuZE9mZnNl
dCgpKSArIDEpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRG9XaGls
ZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTk0OCw3ICsxOTQ4
LDcgQEAgdm9pZCBXaGlsZU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbgogCiAgICAgZ2Vu
ZXJhdG9yLmVtaXRMYWJlbChzY29wZS0+YnJlYWtUYXJnZXQoKSk7CiAKLSAgICBnZW5lcmF0b3Iu
ZW1pdFByb2ZpbGVDb250cm9sRmxvdyhlbmRPZmZzZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQ
cm9maWxlQ29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPmVuZE9mZnNldCgpICsgMSk7CiB9CiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGb3JOb2RlIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xOTgzLDcgKzE5ODMsNyBAQCB2b2lkIEZvck5vZGU6
OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyCiAgICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcCh0
b3BPZkxvb3AuZ2V0KCkpOwogCiAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzY29wZS0+YnJlYWtU
YXJnZXQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3coZW5kT2Zmc2V0
KCkpOworICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fc3RhdGVtZW50LT5l
bmRPZmZzZXQoKSArIDEpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
Rm9ySW5Ob2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjA4Niw2
ICsyMDg2LDggQEAgdm9pZCBGb3JJbk5vZGU6OmVtaXRNdWx0aUxvb3BCeXRlY29kZShCeQogICAg
IGdlbmVyYXRvci5lbWl0Tm9kZShiYXNlLmdldCgpLCBtX2V4cHIpOwogICAgIFJlZlB0cjxSZWdp
c3RlcklEPiBsb2NhbCA9IHRoaXMtPnRyeUdldEJvdW5kTG9jYWwoZ2VuZXJhdG9yKTsKIAorICAg
IGludCBwcm9maWxlclN0YXJ0T2Zmc2V0ID0gbV9zdGF0ZW1lbnQtPnN0YXJ0T2Zmc2V0KCk7Cisg
ICAgaW50IHByb2ZpbGVyRW5kT2Zmc2V0ID0gbV9zdGF0ZW1lbnQtPmVuZE9mZnNldCgpICsgMTsK
ICAgICAvLyBJbmRleGVkIHByb3BlcnR5IGxvb3AuCiAgICAgewogICAgICAgICBMYWJlbFNjb3Bl
UHRyIHNjb3BlID0gZ2VuZXJhdG9yLm5ld0xhYmVsU2NvcGUoTGFiZWxTY29wZTo6TG9vcCk7CkBA
IC0yMTA3LDEzICsyMTA5LDEzIEBAIHZvaWQgRm9ySW5Ob2RlOjplbWl0TXVsdGlMb29wQnl0ZWNv
ZGUoQnkKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRUb0luZGV4U3RyaW5nKHByb3BlcnR5TmFtZS5n
ZXQoKSwgaS5nZXQoKSk7CiAgICAgICAgIHRoaXMtPmVtaXRMb29wSGVhZGVyKGdlbmVyYXRvciwg
cHJvcGVydHlOYW1lLmdldCgpKTsKIAotICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250
cm9sRmxvdyhtX3N0YXRlbWVudC0+c3RhcnRPZmZzZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5l
bWl0UHJvZmlsZUNvbnRyb2xGbG93KHByb2ZpbGVyU3RhcnRPZmZzZXQpOwogCiAgICAgICAgIGdl
bmVyYXRvci5wdXNoSW5kZXhlZEZvckluU2NvcGUobG9jYWwuZ2V0KCksIGkuZ2V0KCkpOwogICAg
ICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX3N0YXRlbWVudCk7CiAgICAgICAgIGdlbmVy
YXRvci5wb3BJbmRleGVkRm9ySW5TY29wZShsb2NhbC5nZXQoKSk7CiAKLSAgICAgICAgZ2VuZXJh
dG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPmVuZE9mZnNldCgpKTsKKyAg
ICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cocHJvZmlsZXJFbmRPZmZzZXQp
OwogCiAgICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoc2NvcGUtPmNvbnRpbnVlVGFyZ2V0KCkp
OwogICAgICAgICBnZW5lcmF0b3IuZW1pdEluYyhpLmdldCgpKTsKQEAgLTIxNDUsMTMgKzIxNDcs
MTMgQEAgdm9pZCBGb3JJbk5vZGU6OmVtaXRNdWx0aUxvb3BCeXRlY29kZShCeQogCiAgICAgICAg
IHRoaXMtPmVtaXRMb29wSGVhZGVyKGdlbmVyYXRvciwgcHJvcGVydHlOYW1lLmdldCgpKTsKIAot
ICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3N0YXRlbWVudC0+c3Rh
cnRPZmZzZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KHBy
b2ZpbGVyU3RhcnRPZmZzZXQpOwogCiAgICAgICAgIGdlbmVyYXRvci5wdXNoU3RydWN0dXJlRm9y
SW5TY29wZShsb2NhbC5nZXQoKSwgaS5nZXQoKSwgcHJvcGVydHlOYW1lLmdldCgpLCBzdHJ1Y3R1
cmVFbnVtZXJhdG9yLmdldCgpKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKGRzdCwgbV9z
dGF0ZW1lbnQpOwogICAgICAgICBnZW5lcmF0b3IucG9wU3RydWN0dXJlRm9ySW5TY29wZShsb2Nh
bC5nZXQoKSk7CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9z
dGF0ZW1lbnQtPmVuZE9mZnNldCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29u
dHJvbEZsb3cocHJvZmlsZXJFbmRPZmZzZXQpOwogCiAgICAgICAgIGdlbmVyYXRvci5lbWl0TGFi
ZWwoc2NvcGUtPmNvbnRpbnVlVGFyZ2V0KCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdEluYyhp
LmdldCgpKTsKQEAgLTIxODIsNyArMjE4NCw3IEBAIHZvaWQgRm9ySW5Ob2RlOjplbWl0TXVsdGlM
b29wQnl0ZWNvZGUoQnkKIAogICAgICAgICB0aGlzLT5lbWl0TG9vcEhlYWRlcihnZW5lcmF0b3Is
IHByb3BlcnR5TmFtZS5nZXQoKSk7CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29u
dHJvbEZsb3cobV9zdGF0ZW1lbnQtPnN0YXJ0T2Zmc2V0KCkpOworICAgICAgICBnZW5lcmF0b3Iu
ZW1pdFByb2ZpbGVDb250cm9sRmxvdyhwcm9maWxlclN0YXJ0T2Zmc2V0KTsKIAogICAgICAgICBn
ZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX3N0YXRlbWVudCk7CiAKQEAgLTIyMDMsNyArMjIwNSw3
IEBAIHZvaWQgRm9ySW5Ob2RlOjplbWl0TXVsdGlMb29wQnl0ZWNvZGUoQnkKIAogICAgIGdlbmVy
YXRvci5lbWl0RGVidWdIb29rKFdpbGxFeGVjdXRlU3RhdGVtZW50LCBmaXJzdExpbmUoKSwgc3Rh
cnRPZmZzZXQoKSwgbGluZVN0YXJ0T2Zmc2V0KCkpOwogICAgIGdlbmVyYXRvci5lbWl0TGFiZWwo
ZW5kLmdldCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3N0YXRl
bWVudC0+ZW5kT2Zmc2V0KCkpOworICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93
KHByb2ZpbGVyRW5kT2Zmc2V0KTsKIH0KIAogdm9pZCBGb3JJbk5vZGU6OmVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCkBAIC0yMjU5LDcg
KzIyNjEsNyBAQCB2b2lkIEZvck9mTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuCiAgICAg
ICAgIGdlbmVyYXRvci5lbWl0Tm9kZShkc3QsIG1fc3RhdGVtZW50KTsKICAgICB9OwogICAgIGdl
bmVyYXRvci5lbWl0RW51bWVyYXRpb24odGhpcywgbV9leHByLCBleHRyYWN0b3IpOwotICAgIGdl
bmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fc3RhdGVtZW50LT5lbmRPZmZzZXQoKSk7
CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPmVuZE9m
ZnNldCgpICsgMSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDb250
aW51ZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMjg4LDcgKzIy
OTAsNyBAQCB2b2lkIENvbnRpbnVlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlCiAgICAgZ2Vu
ZXJhdG9yLmVtaXRQb3BTY29wZXMoZ2VuZXJhdG9yLnNjb3BlUmVnaXN0ZXIoKSwgc2NvcGUtPnNj
b3BlRGVwdGgoKSk7CiAgICAgZ2VuZXJhdG9yLmVtaXRKdW1wKHNjb3BlLT5jb250aW51ZVRhcmdl
dCgpKTsKIAotICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KGVuZE9mZnNldCgp
KTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhlbmRPZmZzZXQoKSArIDEp
OwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQnJlYWtOb2RlIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjMxNyw3ICsyMzE5LDcgQEAgdm9p
ZCBCcmVha05vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbgogICAgIGdlbmVyYXRvci5lbWl0
UG9wU2NvcGVzKGdlbmVyYXRvci5zY29wZVJlZ2lzdGVyKCksIHNjb3BlLT5zY29wZURlcHRoKCkp
OwogICAgIGdlbmVyYXRvci5lbWl0SnVtcChzY29wZS0+YnJlYWtUYXJnZXQoKSk7CiAKLSAgICBn
ZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhlbmRPZmZzZXQoKSk7CisgICAgZ2VuZXJh
dG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3coZW5kT2Zmc2V0KCkgKyAxKTsKIH0KIAogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFJldHVybk5vZGUgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIzNDIsNyArMjM0NCw3IEBAIHZvaWQgUmV0dXJuTm9kZTo6
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2UKIAogICAgIGdlbmVyYXRvci5lbWl0RGVidWdIb29rKFdp
bGxMZWF2ZUNhbGxGcmFtZSwgbGFzdExpbmUoKSwgc3RhcnRPZmZzZXQoKSwgbGluZVN0YXJ0T2Zm
c2V0KCkpOwogICAgIGdlbmVyYXRvci5lbWl0UmV0dXJuKHJldHVyblJlZ2lzdGVyLmdldCgpKTsK
LSAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhlbmRPZmZzZXQoKSk7IAorICAg
IGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KGVuZE9mZnNldCgpICsgMSk7IAogICAg
IC8vIEVtaXR0aW5nIGFuIHVucmVhY2hhYmxlIHJldHVybiBoZXJlIGlzIG5lZWRlZCBpbiBjYXNl
IHRoaXMgb3BfcHJvZmlsZV9jb250cm9sX2Zsb3cgaXMgdGhlIAogICAgIC8vIGxhc3Qgb3Bjb2Rl
IGluIGEgQ29kZUJsb2NrIGJlY2F1c2UgYSBDb2RlQmxvY2sncyBpbnN0cnVjdGlvbnMgbXVzdCBl
bmQgd2l0aCBhIHRlcm1pbmFsIG9wY29kZS4KICAgICBpZiAoZ2VuZXJhdG9yLnZtKCktPmNvbnRy
b2xGbG93UHJvZmlsZXIoKSkKQEAgLTI1NjUsNyArMjU2Nyw3IEBAIHZvaWQgVGhyb3dOb2RlOjpl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW4KICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZv
KGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CiAgICAgZ2VuZXJhdG9yLmVtaXRU
aHJvdyhleHByLmdldCgpKTsKIAotICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93
KGVuZE9mZnNldCgpKTsgCisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3coZW5k
T2Zmc2V0KCkgKyAxKTsgCiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBU
cnlOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjA1LDcg
KzI2MDcsNyBAQCB2b2lkIFRyeU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyCiAgICAg
ICAgIH0KIAogICAgICAgICBnZW5lcmF0b3IuZW1pdFB1c2hDYXRjaFNjb3BlKGdlbmVyYXRvci5z
Y29wZVJlZ2lzdGVyKCksIG1fZXhjZXB0aW9uSWRlbnQsIGV4Y2VwdGlvblJlZ2lzdGVyLmdldCgp
LCBEb250RGVsZXRlKTsKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3co
bV90cnlCbG9jay0+ZW5kT2Zmc2V0KCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVD
b250cm9sRmxvdyhtX3RyeUJsb2NrLT5lbmRPZmZzZXQoKSArIDEpOwogICAgICAgICBnZW5lcmF0
b3IuZW1pdE5vZGUoZHN0LCBtX2NhdGNoQmxvY2spOwogICAgICAgICBnZW5lcmF0b3IuZW1pdFBv
cFNjb3BlKGdlbmVyYXRvci5zY29wZVJlZ2lzdGVyKCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1p
dExhYmVsKGNhdGNoRW5kTGFiZWwuZ2V0KCkpOwpAQCAtMjYxOCwxMiArMjYyMCwxMiBAQCB2b2lk
IFRyeU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyCiAKICAgICAgICAgUmVmUHRyPExh
YmVsPiBmaW5hbGx5RW5kTGFiZWwgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKIAotICAgICAgICBp
bnQgZmluYWxseVN0YXJ0T2Zmc2V0ID0gbV9jYXRjaEJsb2NrID8gbV9jYXRjaEJsb2NrLT5lbmRP
ZmZzZXQoKSA6IG1fdHJ5QmxvY2stPmVuZE9mZnNldCgpOworICAgICAgICBpbnQgZmluYWxseVN0
YXJ0T2Zmc2V0ID0gbV9jYXRjaEJsb2NrID8gbV9jYXRjaEJsb2NrLT5lbmRPZmZzZXQoKSArIDEg
OiBtX3RyeUJsb2NrLT5lbmRPZmZzZXQoKSArIDE7CiAKICAgICAgICAgLy8gTm9ybWFsIHBhdGg6
IHJ1biB0aGUgZmluYWxseSBjb2RlLCBhbmQganVtcCB0byB0aGUgZW5kLgogICAgICAgICBnZW5l
cmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhmaW5hbGx5U3RhcnRPZmZzZXQpOwogICAgICAg
ICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX2ZpbmFsbHlCbG9jayk7Ci0gICAgICAgIGdlbmVy
YXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fZmluYWxseUJsb2NrLT5lbmRPZmZzZXQoKSk7
CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fZmluYWxseUJsb2Nr
LT5lbmRPZmZzZXQoKSArIDEpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdEp1bXAoZmluYWxseUVu
ZExhYmVsLmdldCgpKTsKIAogICAgICAgICAvLyBVbmNhdWdodCBleGNlcHRpb24gcGF0aDogaW52
b2tlIHRoZSBmaW5hbGx5IGJsb2NrLCB0aGVuIHJlLXRocm93IHRoZSBleGNlcHRpb24uCkBAIC0y
NjMzLDkgKzI2MzUsOSBAQCB2b2lkIFRyeU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
CiAgICAgICAgIGdlbmVyYXRvci5lbWl0VGhyb3codGVtcEV4Y2VwdGlvblJlZ2lzdGVyLmdldCgp
KTsKIAogICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGZpbmFsbHlFbmRMYWJlbC5nZXQoKSk7
Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fZmluYWxseUJsb2Nr
LT5lbmRPZmZzZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93
KG1fZmluYWxseUJsb2NrLT5lbmRPZmZzZXQoKSArIDEpOwogICAgIH0gZWxzZQotICAgICAgICBn
ZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX2NhdGNoQmxvY2stPmVuZE9mZnNldCgp
KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9jYXRjaEJsb2Nr
LT5lbmRPZmZzZXQoKSArIDEpOwogCiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvQVNUQnVpbGRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvQVNUQnVpbGRlci5oCShyZXZpc2lvbiAxNzk3ODMpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzEzLDYgKzcxMywx
MSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBub2RlLT5zZXRTdGFydE9mZnNldChvZmZzZXQp
OwogICAgIH0KKworICAgIHZvaWQgc2V0U3RhcnRPZmZzZXQoTm9kZSogbm9kZSwgaW50IG9mZnNl
dCkKKyAgICB7CisgICAgICAgIG5vZGUtPnNldFN0YXJ0T2Zmc2V0KG9mZnNldCk7CisgICAgfQog
ICAgIAogcHJpdmF0ZToKICAgICBzdHJ1Y3QgU2NvcGUgewpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9Ob2Rlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvTm9kZXMuaAkocmV2aXNpb24gMTc5NzgzKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9Ob2Rlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNiArMTMyLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIGludCBsaW5lU3RhcnRPZmZzZXQoKSBjb25zdCB7IHJldHVy
biBtX3Bvc2l0aW9uLmxpbmVTdGFydE9mZnNldDsgfQogICAgICAgICBjb25zdCBKU1RleHRQb3Np
dGlvbiYgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CiAgICAgICAgIHZv
aWQgc2V0RW5kT2Zmc2V0KGludCBvZmZzZXQpIHsgbV9lbmRPZmZzZXQgPSBvZmZzZXQ7IH0KKyAg
ICAgICAgdm9pZCBzZXRTdGFydE9mZnNldChpbnQgb2Zmc2V0KSB7IG1fcG9zaXRpb24ub2Zmc2V0
ID0gb2Zmc2V0OyB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIEpTVGV4dFBvc2l0aW9uIG1f
cG9zaXRpb247CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCShy
ZXZpc2lvbiAxNzk3ODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTExMTMsMjEgKzExMTMsMjQgQEAgdGVtcGxhdGUgPGNsYXNz
IFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZQogewogICAgIEFTU0VSVChtYXRjaChPUEVOQlJBQ0Up
KTsKICAgICBKU1Rva2VuTG9jYXRpb24gbG9jYXRpb24odG9rZW5Mb2NhdGlvbigpKTsKKyAgICBp
bnQgc3RhcnRPZmZzZXQgPSBtX3Rva2VuLm1fZGF0YS5vZmZzZXQ7CiAgICAgaW50IHN0YXJ0ID0g
dG9rZW5MaW5lKCk7CiAgICAgbmV4dCgpOwogICAgIGlmIChtYXRjaChDTE9TRUJSQUNFKSkgewot
ICAgICAgICB1bnNpZ25lZCBlbmRPZmZzZXQgPSBtX2xleGVyLT5jdXJyZW50T2Zmc2V0KCk7Cisg
ICAgICAgIGludCBlbmRPZmZzZXQgPSBtX3Rva2VuLm1fZGF0YS5vZmZzZXQ7CiAgICAgICAgIG5l
eHQoKTsKICAgICAgICAgVHJlZVN0YXRlbWVudCByZXN1bHQgPSBjb250ZXh0LmNyZWF0ZUJsb2Nr
U3RhdGVtZW50KGxvY2F0aW9uLCAwLCBzdGFydCwgbV9sYXN0VG9rZW5FbmRQb3NpdGlvbi5saW5l
KTsKKyAgICAgICAgY29udGV4dC5zZXRTdGFydE9mZnNldChyZXN1bHQsIHN0YXJ0T2Zmc2V0KTsK
ICAgICAgICAgY29udGV4dC5zZXRFbmRPZmZzZXQocmVzdWx0LCBlbmRPZmZzZXQpOwogICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBUcmVlU291cmNlRWxlbWVudHMgc3VidHJlZSA9
IHBhcnNlU291cmNlRWxlbWVudHMoY29udGV4dCwgRG9udENoZWNrRm9yU3RyaWN0TW9kZSk7CiAg
ICAgZmFpbElmRmFsc2Uoc3VidHJlZSwgIkNhbm5vdCBwYXJzZSB0aGUgYm9keSBvZiB0aGUgYmxv
Y2sgc3RhdGVtZW50Iik7CiAgICAgbWF0Y2hPckZhaWwoQ0xPU0VCUkFDRSwgIkV4cGVjdGVkIGEg
Y2xvc2luZyAnfScgYXQgdGhlIGVuZCBvZiBhIGJsb2NrIHN0YXRlbWVudCIpOwotICAgIHVuc2ln
bmVkIGVuZE9mZnNldCA9IG1fbGV4ZXItPmN1cnJlbnRPZmZzZXQoKTsKKyAgICBpbnQgZW5kT2Zm
c2V0ID0gbV90b2tlbi5tX2RhdGEub2Zmc2V0OwogICAgIG5leHQoKTsKICAgICBUcmVlU3RhdGVt
ZW50IHJlc3VsdCA9IGNvbnRleHQuY3JlYXRlQmxvY2tTdGF0ZW1lbnQobG9jYXRpb24sIHN1YnRy
ZWUsIHN0YXJ0LCBtX2xhc3RUb2tlbkVuZFBvc2l0aW9uLmxpbmUpOworICAgIGNvbnRleHQuc2V0
U3RhcnRPZmZzZXQocmVzdWx0LCBzdGFydE9mZnNldCk7CiAgICAgY29udGV4dC5zZXRFbmRPZmZz
ZXQocmVzdWx0LCBlbmRPZmZzZXQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0xMTQxLDkg
KzExNDQsMTEgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZQogICAg
IGludCBub25Ucml2aWFsRXhwcmVzc2lvbkNvdW50ID0gMDsKICAgICBmYWlsSWZTdGFja092ZXJm
bG93KCk7CiAgICAgVHJlZVN0YXRlbWVudCByZXN1bHQgPSAwOworICAgIGJvb2wgc2hvdWxkU2V0
RW5kT2Zmc2V0ID0gdHJ1ZTsKICAgICBzd2l0Y2ggKG1fdG9rZW4ubV90eXBlKSB7CiAgICAgY2Fz
ZSBPUEVOQlJBQ0U6CiAgICAgICAgIHJlc3VsdCA9IHBhcnNlQmxvY2tTdGF0ZW1lbnQoY29udGV4
dCk7CisgICAgICAgIHNob3VsZFNldEVuZE9mZnNldCA9IGZhbHNlOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFZBUjoKICAgICAgICAgcmVzdWx0ID0gcGFyc2VWYXJEZWNsYXJhdGlvbihjb250
ZXh0KTsKQEAgLTEyMjYsNyArMTIzMSw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4g
VHJlZVN0YXRlbWUKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgaWYgKHJlc3VsdCkKKyAg
ICBpZiAocmVzdWx0ICYmIHNob3VsZFNldEVuZE9mZnNldCkKICAgICAgICAgY29udGV4dC5zZXRF
bmRPZmZzZXQocmVzdWx0LCBtX2xhc3RUb2tlbkVuZFBvc2l0aW9uLm9mZnNldCk7CiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KQEAgLTIzMTAsNiArMjMxNSw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVl
QnVpbGRlcj4gVHJlZUV4cHJlc3MKICAgICBUcmVlRXhwcmVzc2lvbiBiYXNlID0gMDsKICAgICBK
U1RleHRQb3NpdGlvbiBleHByZXNzaW9uU3RhcnQgPSB0b2tlblN0YXJ0UG9zaXRpb24oKTsKICAg
ICBpbnQgbmV3Q291bnQgPSAwOworICAgIEpTVG9rZW5Mb2NhdGlvbiBzdGFydExvY2F0aW9uID0g
dG9rZW5Mb2NhdGlvbigpOwogICAgIEpTVG9rZW5Mb2NhdGlvbiBsb2NhdGlvbjsKICAgICB3aGls
ZSAobWF0Y2goTkVXKSkgewogICAgICAgICBuZXh0KCk7CkBAIC0yMzQ4LDcgKzIzNTQsNyBAQCB0
ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzCiAgICAgICAgICAgICAgICAg
SlNUZXh0UG9zaXRpb24gZXhwcmVzc2lvbkVuZCA9IGxhc3RUb2tlbkVuZFBvc2l0aW9uKCk7CiAg
ICAgICAgICAgICAgICAgVHJlZUFyZ3VtZW50cyBhcmd1bWVudHMgPSBwYXJzZUFyZ3VtZW50cyhj
b250ZXh0LCBBbGxvd1NwcmVhZCk7CiAgICAgICAgICAgICAgICAgZmFpbElmRmFsc2UoYXJndW1l
bnRzLCAiQ2Fubm90IHBhcnNlIGNhbGwgYXJndW1lbnRzIik7Ci0gICAgICAgICAgICAgICAgYmFz
ZSA9IGNvbnRleHQubWFrZUZ1bmN0aW9uQ2FsbE5vZGUobG9jYXRpb24sIGJhc2UsIGFyZ3VtZW50
cywgZXhwcmVzc2lvblN0YXJ0LCBleHByZXNzaW9uRW5kLCBsYXN0VG9rZW5FbmRQb3NpdGlvbigp
KTsKKyAgICAgICAgICAgICAgICBiYXNlID0gY29udGV4dC5tYWtlRnVuY3Rpb25DYWxsTm9kZShz
dGFydExvY2F0aW9uLCBiYXNlLCBhcmd1bWVudHMsIGV4cHJlc3Npb25TdGFydCwgZXhwcmVzc2lv
bkVuZCwgbGFzdFRva2VuRW5kUG9zaXRpb24oKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBtX25vbkxIU0NvdW50ID0gbm9uTEhTQ291bnQ7CiAgICAgICAgICAgICBicmVhazsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9jb250cm9sRmxvd1Byb2ZpbGVyL2JyYWNlLWxv
Y2F0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9jb250
cm9sRmxvd1Byb2ZpbGVyL2JyYWNlLWxvY2F0aW9uLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2NvbnRyb2xGbG93UHJvZmlsZXIvYnJhY2UtbG9jYXRpb24u
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3OSBAQAorbG9hZCgiLi9kcml2ZXIvZHJpdmVy
LmpzIik7CisKK2Z1bmN0aW9uIGZvbygpIHt9CitmdW5jdGlvbiBiYXIoKSB7fQorZnVuY3Rpb24g
YmF6KCkge30KK2Z1bmN0aW9uIHRlc3RJZih4KSB7CisgICAgaWYgKHggPCAxMCkgeyBmb28oKTsg
fSBlbHNlIGlmICh4IDwgMjApIHsgYmFyKCk7IH0gZWxzZSB7IGJheigpIH0KK30KKworZnVuY3Rp
b24gdGVzdEZvclJlZ3VsYXIoeCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgeDsgaSsrKSB7
IGZvbygpOyB9IGJhcigpOworfQorCitmdW5jdGlvbiB0ZXN0Rm9ySW4oeCkgeworICAgIGZvciAo
dmFyIGkgaW4geCkgeyBmb28oKTsgfSBiYXIoKTsKK30KKworZnVuY3Rpb24gdGVzdEZvck9mKHgp
IHsKKyAgICBmb3IgKHZhciBpIG9mIHgpIHsgZm9vKCk7IH0gYmFyKCk7Cit9CisKK2Z1bmN0aW9u
IHRlc3RXaGlsZSh4KSB7CisgICAgdmFyIGkgPSAwOyB3aGlsZSAoaSsrIDwgeCkgeyBmb28oKTsg
fSBiYXIoKTsKK30KKwordGVzdElmKDkpOworLy8gTm90ZSwgdGhlIGNoZWNrIHdpbGwgYmUgYWdh
aW5zdCB0aGUgYmFzaWMgYmxvY2sgdGhhdCBjb250YWlucyB0aGUgZmlyc3QgbWF0Y2hlZCBjaGFy
YWN0ZXIuIAorLy8gU28gaW4gdGhpcyBmb2xsb3dpbmcgY2FzZSwgdGhlIGJsb2NrIHRoYXQgY29u
dGFpbnMgdGhlICd7Jy4KK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAieyBm
b28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOworLy8gSW4gdGhpcyBjYXNlLCBpdCB3aWxs
IHRlc3QgdGhlIGJhc2ljIGJsb2NrIHRoYXQgY29udGFpbnMgdGhlICcgJyBjaGFyYWN0ZXIuCith
c3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZiwgIiBmb28iKSwgInNob3VsZCBoYXZl
IGV4ZWN1dGVkLiIpOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWYsICJ9IGVs
c2UgaWYiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOworYXNzZXJ0KCFoYXNCYXNpY0Jsb2Nr
RXhlY3V0ZWQodGVzdElmLCAiZWxzZSBpZiIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIp
OworYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAieyBiYXIiKSwgInNob3Vs
ZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0
ZXN0SWYsICIgYmFyIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFo
YXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAiZWxzZSB7IiksICJzaG91bGQgbm90IGhhdmUg
ZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAieyBi
YXoiKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxv
Y2tFeGVjdXRlZCh0ZXN0SWYsICIgYmF6IiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7
IAordGVzdElmKDIxKTsKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZiwgInsg
YmFyIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Js
b2NrRXhlY3V0ZWQodGVzdElmLCAiIGJhciIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIp
OyAKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAiZWxzZSB7IiksICJzaG91
bGQgaGF2ZSBleGVjdXRlZC4iKTsgCit0ZXN0SWYoMTEpOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tF
eGVjdXRlZCh0ZXN0SWYsICJ7IGJhciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNz
ZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWYsICIgYmFyIiksICJzaG91bGQgaGF2ZSBl
eGVjdXRlZC4iKTsgCisKK3Rlc3RGb3JSZWd1bGFyKDApOworYXNzZXJ0KCFoYXNCYXNpY0Jsb2Nr
RXhlY3V0ZWQodGVzdEZvclJlZ3VsYXIsICJ7IGZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQu
Iik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvclJlZ3VsYXIsICJ9IGJh
ciIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNpY0Jsb2Nr
RXhlY3V0ZWQodGVzdEZvclJlZ3VsYXIsICIgYmFyIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4i
KTsgCit0ZXN0Rm9yUmVndWxhcigxKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVz
dEZvclJlZ3VsYXIsICJ7IGZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0
KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yUmVndWxhciwgIn0gYmFyIiksICJzaG91bGQg
aGF2ZSBleGVjdXRlZC4iKTsgCisKK3Rlc3RGb3JJbih7fSk7Cithc3NlcnQoIWhhc0Jhc2ljQmxv
Y2tFeGVjdXRlZCh0ZXN0Rm9ySW4sICJ7IGZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7
IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvckluLCAifSBiYXIiKSwgInNo
b3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVk
KHRlc3RGb3JJbiwgIiBiYXIiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK3Rlc3RGb3JJ
bih7Zm9vOiAyMH0pOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9ySW4sICJ7
IGZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tF
eGVjdXRlZCh0ZXN0Rm9ySW4sICJ9IGJhciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAor
Cit0ZXN0Rm9yT2YoW10pOworYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvck9m
LCAieyBmb28iKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jh
c2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yT2YsICIgZm9vIiksICJzaG91bGQgbm90IGhhdmUgZXhl
Y3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvck9mLCAifSBi
YXIiKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNCbG9j
a0V4ZWN1dGVkKHRlc3RGb3JPZiwgIiBiYXIiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAK
K3Rlc3RGb3JPZihbMjBdKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvck9m
LCAieyBmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNpY0Js
b2NrRXhlY3V0ZWQodGVzdEZvck9mLCAifSBiYXIiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIp
OyAKKwordGVzdFdoaWxlKDApOworYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdFdo
aWxlLCAieyBmb28iKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhh
c0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0V2hpbGUsICIgZm9vIiksICJzaG91bGQgbm90IGhhdmUg
ZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdFdoaWxlLCAi
fSBiYXIiKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNC
bG9ja0V4ZWN1dGVkKHRlc3RXaGlsZSwgIiBiYXIiKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRl
ZC4iKTsgCit0ZXN0V2hpbGUoMSk7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RX
aGlsZSwgInsgZm9vIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFz
aWNCbG9ja0V4ZWN1dGVkKHRlc3RXaGlsZSwgIn0gYmFyIiksICJzaG91bGQgaGF2ZSBleGVjdXRl
ZC4iKTsgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvY29udHJvbEZsb3dQcm9m
aWxlci9jb25kaXRpb25hbC1leHByZXNzaW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9jb250cm9sRmxvd1Byb2ZpbGVyL2NvbmRpdGlvbmFsLWV4cHJlc3Np
b24uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvY29udHJv
bEZsb3dQcm9maWxlci9jb25kaXRpb25hbC1leHByZXNzaW9uLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMzcgQEAKK2xvYWQoIi4vZHJpdmVyL2RyaXZlci5qcyIpOworCitmdW5jdGlvbiBm
b28oKXsgfQorZnVuY3Rpb24gYmFyKCl7IH0KK2Z1bmN0aW9uIGJheigpeyB9CisKK2Z1bmN0aW9u
IHRlc3RDb25kaXRpb25hbEJhc2ljKHgpIHsKKyAgICByZXR1cm4geCA/IDEwIDogMjA7Cit9CisK
K2Z1bmN0aW9uIHRlc3RDb25kaXRpb25hbEZ1bmN0aW9uKHgsIHkpIHsKKyAgICB4ID8geSA/IGZv
bygpIAorICAgICAgICA6IGJheigpIAorICAgICAgICA6IGJhcigpCit9CisKK3Rlc3RDb25kaXRp
b25hbEJhc2ljKGZhbHNlKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdENvbmRp
dGlvbmFsQmFzaWMsICJ4IiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsKK2Fzc2VydChoYXNC
YXNpY0Jsb2NrRXhlY3V0ZWQodGVzdENvbmRpdGlvbmFsQmFzaWMsICIyMCIpLCAic2hvdWxkIGhh
dmUgZXhlY3V0ZWQuIik7Cithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Q29uZGl0
aW9uYWxCYXNpYywgIjEwIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQgeWV0LiIpOworCit0
ZXN0Q29uZGl0aW9uYWxCYXNpYyh0cnVlKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQo
dGVzdENvbmRpdGlvbmFsQmFzaWMsICIxMCIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7CisK
KwordGVzdENvbmRpdGlvbmFsRnVuY3Rpb24oZmFsc2UsIGZhbHNlKTsKK2Fzc2VydChoYXNCYXNp
Y0Jsb2NrRXhlY3V0ZWQodGVzdENvbmRpdGlvbmFsRnVuY3Rpb24sICJ4IiksICJzaG91bGQgaGF2
ZSBleGVjdXRlZC4iKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdENvbmRpdGlv
bmFsRnVuY3Rpb24sICJiYXIiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOworYXNzZXJ0KCFo
YXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdENvbmRpdGlvbmFsRnVuY3Rpb24sICJmb28iKSwgInNo
b3VsZCBub3QgaGF2ZSBleGVjdXRlZCB5ZXQuIik7Cithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVj
dXRlZCh0ZXN0Q29uZGl0aW9uYWxGdW5jdGlvbiwgImJheiIpLCAic2hvdWxkIG5vdCBoYXZlIGV4
ZWN1dGVkIHlldC4iKTsKKwordGVzdENvbmRpdGlvbmFsRnVuY3Rpb24odHJ1ZSwgZmFsc2UpOwor
YXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Q29uZGl0aW9uYWxGdW5jdGlvbiwgImJh
eiIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7Cithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVj
dXRlZCh0ZXN0Q29uZGl0aW9uYWxGdW5jdGlvbiwgImZvbyIpLCAic2hvdWxkIG5vdCBoYXZlIGV4
ZWN1dGVkIHlldC4iKTsKKwordGVzdENvbmRpdGlvbmFsRnVuY3Rpb24odHJ1ZSwgdHJ1ZSk7Cith
c3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RDb25kaXRpb25hbEZ1bmN0aW9uLCAiZm9v
IiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>246296</attachid>
            <date>2015-02-09 15:12:34 -0800</date>
            <delta_ts>2015-02-09 15:12:34 -0800</delta_ts>
            <desc>more perf tests</desc>
            <filename>perf.tests</filename>
            <type>application/octet-stream</type>
            <size>70795</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">Vk1zIHRlc3RlZDoKIm9yaWdpbmFsIiBhdCAvVXNlcnMvc2FhbWJhcmF0aS9XSy90ZXJuYXJ5L1dl
YktpdEJ1aWxkL1JlbGVhc2UvanNjIChyMTc5NzgzKQoid2l0aENoYW5nZXMiIGF0IC9Vc2Vycy9z
YWFtYmFyYXRpL1dLL0NsZWFuL1dlYktpdEJ1aWxkL1JlbGVhc2UvanNjIChyMTc5NzgzKQoKQ29s
bGVjdGVkIDQgc2FtcGxlcyBwZXIgYmVuY2htYXJrL1ZNLCB3aXRoIDQgVk0gaW52b2NhdGlvbnMg
cGVyIGJlbmNobWFyay4gRW1pdHRlZCBhIGNhbGwgdG8gZ2MoKSBiZXR3ZWVuIHNhbXBsZQptZWFz
dXJlbWVudHMuIFVzZWQgMSBiZW5jaG1hcmsgaXRlcmF0aW9uIHBlciBWTSBpbnZvY2F0aW9uIGZv
ciB3YXJtLXVwLiBVc2VkIHRoZSBqc2Mtc3BlY2lmaWMgcHJlY2lzZVRpbWUoKSBmdW5jdGlvbiB0
bwpnZXQgbWljcm9zZWNvbmQtbGV2ZWwgdGltaW5nLiBSZXBvcnRpbmcgYmVuY2htYXJrIGV4ZWN1
dGlvbiB0aW1lcyB3aXRoIDk1JSBjb25maWRlbmNlIGludGVydmFscyBpbiBtaWxsaXNlY29uZHMu
CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmln
aW5hbCAgICAgICAgICAgICAgICB3aXRoQ2hhbmdlcyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAoKYWJzLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMi44NzU3Ky0wLjMyNzIgICAgICAgICAgICAyLjg1NTYrLTAuMTMzMiAgICAgICAgCmFkYXB0
LXRvLWRvdWJsZS1kaXZpZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTkuMDA0OSstMC43MDY2
ICAgICAgICAgICAxOC41OTMwKy0wLjQ4OTUgICAgICAgICAgbWlnaHQgYmUgMS4wMjIyeCBmYXN0
ZXIKYWxpYXNlZC1hcmd1bWVudHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgMS4yMDQ4
Ky0wLjI4MDIgICAgID8gICAgICAyLjkxOTErLTUuNjkyMCAgICAgICAgPyBtaWdodCBiZSAyLjQy
MzB4IHNsb3dlcgphbGxvY2F0ZS1iaWctb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyLjU5NDgrLTAuNDkzMSAgICAgPyAgICAgIDIuNzQ5OSstMC44MjExICAgICAgICA/IG1pZ2h0
IGJlIDEuMDU5OHggc2xvd2VyCmFyaXR5LW1pc21hdGNoLWlubGluaW5nICAgICAgICAgICAgICAg
ICAgICAgICAgIDEuMjEwMCstMC4zMDg5ICAgICA/ICAgICAgMi4wODQyKy0zLjM5OTcgICAgICAg
ID8gbWlnaHQgYmUgMS43MjI1eCBzbG93ZXIKYXJyYXktYWNjZXNzLXBvbHltb3JwaGljLXN0cnVj
dHVyZSAgICAgICAgICAgICAgNy4zNDA3Ky0xLjMyNDcgICAgICAgICAgICA2LjM0ODMrLTAuMjE2
MiAgICAgICAgICBtaWdodCBiZSAxLjE1NjN4IGZhc3RlcgphcnJheS1ub25hcnJheS1wb2x5bW9y
aHBpYy1hY2Nlc3MgICAgICAgICAgICAgIDQwLjkxODIrLTE2Ljg5NjkgICAgICAgICAgMzcuMzYx
MSstNy45MzkxICAgICAgICAgIG1pZ2h0IGJlIDEuMDk1MnggZmFzdGVyCmFycmF5LXByb3RvdHlw
ZS1ldmVyeSAgICAgICAgICAgICAgICAgICAgICAgICAxMTEuNzQ2NSstMzAuNTkxMSAgICAgICAg
ICA5Ni42MTA4Ky0zLjg3MTUgICAgICAgICAgbWlnaHQgYmUgMS4xNTY3eCBmYXN0ZXIKYXJyYXkt
cHJvdG90eXBlLWZvckVhY2ggICAgICAgICAgICAgICAgICAgICAgIDEwOS40NjE3Ky00My41Nzg5
ICAgICAgICAgIDk1Ljc1MTMrLTQuODg3NiAgICAgICAgICBtaWdodCBiZSAxLjE0MzJ4IGZhc3Rl
cgphcnJheS1wcm90b3R5cGUtbWFwICAgICAgICAgICAgICAgICAgICAgICAgICAgMTE3LjQyNDAr
LTE1LjIxNTMgICAgPyAgICAxMTguNzk2MSstNy40OTQ0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEx
N3ggc2xvd2VyCmFycmF5LXByb3RvdHlwZS1zb21lICAgICAgICAgICAgICAgICAgICAgICAgICAx
MDEuODg5MCstNi43MDczICAgICAgICAgICA5NS42NTE4Ky04LjExMzAgICAgICAgICAgbWlnaHQg
YmUgMS4wNjUyeCBmYXN0ZXIKYXJyYXktc3BsaWNlLWNvbnRpZ3VvdXMgICAgICAgICAgICAgICAg
ICAgICAgICA0Ny4xOTk1Ky0yLjE0OTIgICAgICAgICAgIDQ2Ljk0MDIrLTMuMTQ1OSAgICAgICAg
CmFycmF5LXdpdGgtZG91YmxlLWFkZCAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMzA5Nist
MS4yNTQ4ICAgICA/ICAgICAgNC40OTczKy0xLjc1OTEgICAgICAgID8gbWlnaHQgYmUgMS4wNDM2
eCBzbG93ZXIKYXJyYXktd2l0aC1kb3VibGUtaW5jcmVtZW50ICAgICAgICAgICAgICAgICAgICAg
My41MzY1Ky0wLjI0MTQgICAgID8gICAgICAzLjcxMzYrLTAuMzc1MCAgICAgICAgPyBtaWdodCBi
ZSAxLjA1MDF4IHNsb3dlcgphcnJheS13aXRoLWRvdWJsZS1tdWwtYWRkICAgICAgICAgICAgICAg
ICAgICAgICA1LjY0NDcrLTIuMTc2OSAgICAgPyAgICAgIDguNjQyMistOC42NzI3ICAgICAgICA/
IG1pZ2h0IGJlIDEuNTMxMHggc2xvd2VyCmFycmF5LXdpdGgtZG91YmxlLXN1bSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDMuOTU0OCstMC43MDMyICAgICAgICAgICAgMy44NjY1Ky0wLjUxNzAg
ICAgICAgICAgbWlnaHQgYmUgMS4wMjI4eCBmYXN0ZXIKYXJyYXktd2l0aC1pbnQzMi1hZGQtc3Vi
ICAgICAgICAgICAgICAgICAgICAgICAgNy40ODkwKy0yLjA4MDggICAgID8gICAgICA5LjU3ODUr
LTMuMTUzNSAgICAgICAgPyBtaWdodCBiZSAxLjI3OTB4IHNsb3dlcgphcnJheS13aXRoLWludDMy
LW9yLWRvdWJsZS1zdW0gICAgICAgICAgICAgICAgICA0LjA5MTQrLTAuMzQ0MCAgICAgPyAgICAg
IDQuMTI2MCstMC44MzA1ICAgICAgICA/CkFycmF5QnVmZmVyLURhdGFWaWV3LWFsbG9jLWxhcmdl
LWxvbmctbGl2ZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzNy4wOTg3Ky0xLjYwMTkgICAgICAgICAgIDM2LjkxMDMrLTIuOTM0MSAgICAgICAgCkFycmF5
QnVmZmVyLURhdGFWaWV3LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgMTQuNjgxMCstMC45MzI5
ICAgICAgICAgICAxNC41MjY3Ky0wLjkzOTUgICAgICAgICAgbWlnaHQgYmUgMS4wMTA2eCBmYXN0
ZXIKQXJyYXlCdWZmZXItSW50MzJBcnJheS1ieXRlT2Zmc2V0ICAgICAgICAgICAgICAgMy43OTM5
Ky0wLjI0MjcgICAgICAgICAgICAzLjc0NDArLTAuMjIyNyAgICAgICAgICBtaWdodCBiZSAxLjAx
MzR4IGZhc3RlcgpBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM2LjMwMzIrLTAu
Nzc2MSAgICAgPyAgICAgMzcuNTU2MystMS4yODQ0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM0NXgg
c2xvd2VyCkFycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sb25nLWxpdmVkLWJ1ZmZlcgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0Ljg1MzIrLTEuNjk4
OCAgICAgPyAgICAgMjUuNDk4MSstMS40Mzc1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI1OXggc2xv
d2VyCkFycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgMTQuNjQ1
NCstMS4wMjgxICAgICAgICAgICAxNC4xODM4Ky0xLjIxOTYgICAgICAgICAgbWlnaHQgYmUgMS4w
MzI1eCBmYXN0ZXIKQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jICAgICAgICAgICAgICAgICAg
ICAxMi41OTY5Ky0wLjI5MTQgICAgICAgICAgIDExLjgxMDQrLTEuNTg5MSAgICAgICAgICBtaWdo
dCBiZSAxLjA2NjZ4IGZhc3Rlcgphc21qc19ib29sX2J1ZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA5LjIxNjQrLTIuMTI3MCAgICAgICAgICAgIDguNzYyNCstMS4yMjU0ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDUxOHggZmFzdGVyCmFzc2lnbi1jdXN0b20tc2V0dGVyLXBvbHltb3Jw
aGljICAgICAgICAgICAgICAgIDMuNjI3NCstMi4xNzEyICAgICAgICAgICAgMy4xODg2Ky0xLjM4
NjAgICAgICAgICAgbWlnaHQgYmUgMS4xMzc2eCBmYXN0ZXIKYXNzaWduLWN1c3RvbS1zZXR0ZXIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMy45MzA0Ky0wLjI3NDAgICAgID8gICAgICA0LjE0
MzIrLTAuODg3NSAgICAgICAgPyBtaWdodCBiZSAxLjA1NDF4IHNsb3dlcgpiYXNpYy1zZXQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjk2NTYrLTIuNjQzOCAgICAgPyAg
ICAgMTMuNDIyMistMC45NDk0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM1Mnggc2xvd2VyCmJpZy1p
bnQtbXVsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNzU0MCstMS42MDE4
ICAgICAgICAgICAgNC4wNjU3Ky0wLjUwMDggICAgICAgICAgbWlnaHQgYmUgMS4xNjkzeCBmYXN0
ZXIKYm9vbGVhbi10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4wODE4
Ky0wLjA1ODkgICAgID8gICAgICA0LjA5MzQrLTIuMjU0NSAgICAgICAgPyBtaWdodCBiZSAxLjMy
ODN4IHNsb3dlcgpicmFuY2gtZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA0LjE1NzQrLTAuNTU0NCAgICAgPyAgICAgIDQuMzAxNystMC42MDEyICAgICAgICA/IG1pZ2h0
IGJlIDEuMDM0N3ggc2xvd2VyCmJ5LXZhbC1nZW5lcmljICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDguNzkxNystMC40MjMzICAgICA/ICAgICAgOS4wNDU3Ky0xLjQ0NjcgICAgICAg
ID8gbWlnaHQgYmUgMS4wMjg5eCBzbG93ZXIKY2FsbC1zcHJlYWQtYXBwbHkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxNC44NTEwKy0xLjg4MDUgICAgICAgICAgIDE0LjgwODArLTIuODcz
NiAgICAgICAgCmNhbGwtc3ByZWFkLWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDUuNTMzNystMC4zMjE5ICAgICA/ICAgICAgNi4xNTgzKy0xLjcwMzQgICAgICAgID8gbWlnaHQg
YmUgMS4xMTI5eCBzbG93ZXIKY2FwdHVyZWQtYXNzaWdubWVudHMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMC41NTM1Ky0wLjI1NjQgICAgICAgICAgICAwLjUxNjErLTAuMDcyMiAgICAgICAg
ICBtaWdodCBiZSAxLjA3MjV4IGZhc3RlcgpjYXN0LWludC10by1kb3VibGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA2LjE1ODcrLTEuNjc4MyAgICAgPyAgICAgIDYuOTYxNystMy4yOTc0
ICAgICAgICA/IG1pZ2h0IGJlIDEuMTMwNHggc2xvd2VyCmNlbGwtYXJndW1lbnQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDcuMDM1MistMC4zMjM0ICAgICA/ICAgICAgNy40MzIx
Ky0xLjEzODEgICAgICAgID8gbWlnaHQgYmUgMS4wNTY0eCBzbG93ZXIKY2ZnLXNpbXBsaWZ5ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4xODQwKy0wLjE2MTYgICAgID8gICAg
ICAzLjM4MDIrLTAuMjU5NyAgICAgICAgPyBtaWdodCBiZSAxLjA2MTZ4IHNsb3dlcgpjaGFpbi1n
ZXR0ZXItYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjg3MTArLTIuMDc2NCAg
ICAgICAgICAgMTAuOTQ0MCstMS4zNzk0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDg0N3ggZmFzdGVy
CmNtcGVxLW9iai10by1vYmotb3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgMTMuNzQ2MCst
NC4wMDM1ICAgICA/ICAgICAxNS42OTUyKy02LjE5MDQgICAgICAgID8gbWlnaHQgYmUgMS4xNDE4
eCBzbG93ZXIKY29uc3RhbnQtdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NS41OTMzKy0wLjc1ODMgICAgID8gICAgICA2LjMxMDArLTAuNjAwMiAgICAgICAgPyBtaWdodCBi
ZSAxLjEyODF4IHNsb3dlcgpEYXRhVmlldy1jdXN0b20tcHJvcGVydGllcyAgICAgICAgICAgICAg
ICAgICAgIDQ2LjI5MDMrLTYuMDgxOCAgICAgICAgICAgNDQuMzgzNystNC42NDY5ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDQzMHggZmFzdGVyCmRlbGF5LXRlYXItb2ZmLWFyZ3VtZW50cy1zdHJpY3Rt
b2RlICAgICAgICAgICAgMjUuNDk3NystMS44NDUyICAgICAgICAgICAyNC42MTU4Ky0yLjYyNjIg
ICAgICAgICAgbWlnaHQgYmUgMS4wMzU4eCBmYXN0ZXIKZGVzdHJ1Y3R1cmluZy1hcmd1bWVudHMg
ICAgICAgICAgICAgICAgICAgICAgICAgNy4xMDMyKy0wLjk3NzUgICAgID8gICAgICA4LjExNTcr
LTYuNjc3MyAgICAgICAgPyBtaWdodCBiZSAxLjE0MjV4IHNsb3dlcgpkZXN0cnVjdHVyaW5nLXN3
YXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjE4NzArLTUuMDk0MiAgICAgICAgICAg
IDYuNTcwMSstMS40MjE0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDkzOXggZmFzdGVyCmRpcmVjdC1h
cmd1bWVudHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgIDAuODI5NSstMC4wNzAxICAg
ICAgICAgICAgMC44MjMzKy0wLjA2NTkgICAgICAgIApkaXYtYm9vbGVhbi1kb3VibGUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA1LjkzNDUrLTAuMjk1OCAgICAgICAgICAgIDUuOTE5Nyst
MC40MDM0ICAgICAgICAKZGl2LWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOS4yNjA0Ky0wLjY4NjUgICAgID8gICAgICA5LjM4MzgrLTAuNTc3MSAgICAgICAgPyBt
aWdodCBiZSAxLjAxMzN4IHNsb3dlcgpkb3VibGUtZ2V0LWJ5LXZhbC1vdXQtb2YtYm91bmRzICAg
ICAgICAgICAgICAgICA1LjIyNjcrLTEuNzk3NSAgICAgICAgICAgIDQuNTYzNistMC40NzE1ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMTQ1M3ggZmFzdGVyCmRvdWJsZS1wb2xsdXRpb24tZ2V0Ynl2YWwg
ICAgICAgICAgICAgICAgICAgICAgIDkuNjIxMSstMC4wNTkwICAgICA/ICAgICAgOS43ODc0Ky0w
LjgyMjUgICAgICAgID8gbWlnaHQgYmUgMS4wMTczeCBzbG93ZXIKZG91YmxlLXBvbGx1dGlvbi1w
dXRieW9mZnNldCAgICAgICAgICAgICAgICAgICAgNS4wOTgwKy0xLjIxMjIgICAgID8gICAgICA1
LjU0MDgrLTMuMTQ0MSAgICAgICAgPyBtaWdodCBiZSAxLjA4Njh4IHNsb3dlcgpkb3VibGUtdG8t
aW50MzItdHlwZWQtYXJyYXktbm8taW5saW5lICAgICAgICAgICAzLjIyNzIrLTEuNTU2NSAgICAg
ICAgICAgIDIuNzYzMistMC4yNTg0ICAgICAgICAgIG1pZ2h0IGJlIDEuMTY3OXggZmFzdGVyCmRv
dWJsZS10by1pbnQzMi10eXBlZC1hcnJheSAgICAgICAgICAgICAgICAgICAgIDIuNTA5NSstMC41
NTc4ICAgICA/ICAgICAgMi42MDMxKy0wLjQ1NTIgICAgICAgID8gbWlnaHQgYmUgMS4wMzczeCBz
bG93ZXIKZG91YmxlLXRvLXVpbnQzMi10eXBlZC1hcnJheS1uby1pbmxpbmUgICAgICAgICAgMi45
MDU2Ky0wLjYwMTIgICAgID8gICAgICAzLjA5NzMrLTAuNjM2NSAgICAgICAgPyBtaWdodCBiZSAx
LjA2NjB4IHNsb3dlcgpkb3VibGUtdG8tdWludDMyLXR5cGVkLWFycmF5ICAgICAgICAgICAgICAg
ICAgICAyLjQ1MTErLTAuMDM0MiAgICAgPyAgICAgIDIuNzc0OSstMC42Mjc0ICAgICAgICA/IG1p
Z2h0IGJlIDEuMTMyMXggc2xvd2VyCmVsaWRhYmxlLW5ldy1vYmplY3QtZGFnICAgICAgICAgICAg
ICAgICAgICAgICAgNDMuMjk2NCstMi4zNTU4ICAgICA/ICAgICA0NC4xOTI5Ky0zLjkwNDAgICAg
ICAgID8gbWlnaHQgYmUgMS4wMjA3eCBzbG93ZXIKZWxpZGFibGUtbmV3LW9iamVjdC1yb2ZsY29w
dGVyICAgICAgICAgICAgICAgIDE2OS4xODE3Ky03LjY0MjAgICAgID8gICAgMTcwLjIzNTgrLTcu
NzU0NiAgICAgICAgPwplbGlkYWJsZS1uZXctb2JqZWN0LXRoZW4tY2FsbCAgICAgICAgICAgICAg
ICAgIDM5LjY2MzArLTUuNDg3MSAgICAgPyAgICAgNDMuNTQyMistOC45MTc1ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDk3OHggc2xvd2VyCmVsaWRhYmxlLW5ldy1vYmplY3QtdHJlZSAgICAgICAgICAg
ICAgICAgICAgICAgNDkuNzkzMystNi43NjI1ICAgICAgICAgICA0Ny44OTI1Ky0yLjM3ODMgICAg
ICAgICAgbWlnaHQgYmUgMS4wMzk3eCBmYXN0ZXIKZW1wdHktc3RyaW5nLXBsdXMtaW50ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNS4zMzg1Ky0wLjA0MjcgICAgID8gICAgICA1Ljk4MjcrLTAu
OTUyNiAgICAgICAgPyBtaWdodCBiZSAxLjEyMDd4IHNsb3dlcgplbXNjcmlwdGVuLWN1YmUyaGFz
aCAgICAgICAgICAgICAgICAgICAgICAgICAgIDM5LjEzNzIrLTQuNzIzOCAgICAgPyAgICAgNDAu
NzIwOSstMTIuMDQwMCAgICAgICA/IG1pZ2h0IGJlIDEuMDQwNXggc2xvd2VyCmV4dGVybmFsLWFy
Z3VtZW50cy1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgIDEuODU3MCstMC45MjAyICAgICAg
ICAgICAgMS44MDkyKy0xLjAwODIgICAgICAgICAgbWlnaHQgYmUgMS4wMjY0eCBmYXN0ZXIKZXh0
ZXJuYWwtYXJndW1lbnRzLXB1dGJ5dmFsICAgICAgICAgICAgICAgICAgICAgMi4yOTc1Ky0wLjM4
NjQgICAgID8gICAgICAyLjczMjgrLTEuMjc4MyAgICAgICAgPyBtaWdodCBiZSAxLjE4OTV4IHNs
b3dlcgpmaXhlZC10eXBlZC1hcnJheS1zdG9yYWdlLXZhci1pbmRleCAgICAgICAgICAgICAyLjI3
ODQrLTEuMTY3OCAgICAgPyAgICAgIDIuMzI2MCstMi4xNDk0ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDIwOXggc2xvd2VyCmZpeGVkLXR5cGVkLWFycmF5LXN0b3JhZ2UgICAgICAgICAgICAgICAgICAg
ICAgIDEuMTA3NCstMC4yNDk5ICAgICAgICAgICAgMS4wNzM1Ky0wLjEyOTEgICAgICAgICAgbWln
aHQgYmUgMS4wMzE2eCBmYXN0ZXIKRmxvYXQzMkFycmF5LW1hdHJpeC1tdWx0ICAgICAgICAgICAg
ICAgICAgICAgICAgNC4zMzI4Ky0wLjA4NzIgICAgID8gICAgICA4LjM4MTArLTEyLjQ2MjYgICAg
ICAgPyBtaWdodCBiZSAxLjkzNDN4IHNsb3dlcgpGbG9hdDMyQXJyYXktdG8tRmxvYXQ2NEFycmF5
LXNldCAgICAgICAgICAgICAgIDY1Ljk2NTArLTI0LjQ1OTcgICAgICAgICAgNjAuMjc3OCstMy4x
MTUyICAgICAgICAgIG1pZ2h0IGJlIDEuMDk0M3ggZmFzdGVyCkZsb2F0NjRBcnJheS1hbGxvYy1s
b25nLWxpdmVkICAgICAgICAgICAgICAgICAgNzAuNzQ4MCstMS41MzMyICAgICA/ICAgICA4MC4z
MDUyKy0yOS45NjQ2ICAgICAgID8gbWlnaHQgYmUgMS4xMzUxeCBzbG93ZXIKRmxvYXQ2NEFycmF5
LXRvLUludDE2QXJyYXktc2V0ICAgICAgICAgICAgICAgICA3MS42Mjk5Ky0zLjc0MjkgICAgID8g
ICAgIDcyLjc0ODQrLTYuOTQwOCAgICAgICAgPyBtaWdodCBiZSAxLjAxNTZ4IHNsb3dlcgpmb2xk
LWRvdWJsZS10by1pbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1LjMxOTQrLTIuMjc0
OCAgICAgICAgICAgMTQuNTA5MystMS41MjM0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDU1OHggZmFz
dGVyCmZvbGQtZ2V0LWJ5LWlkLXRvLW11bHRpLWdldC1ieS1vZmZzZXQtcmFyZS1pbnQKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi45NTkwKy0zLjAxMDYg
ICAgID8gICAgIDEzLjQ5NjYrLTIuMTcwNiAgICAgICAgPyBtaWdodCBiZSAxLjA0MTV4IHNsb3dl
cgpmb2xkLWdldC1ieS1pZC10by1tdWx0aS1nZXQtYnktb2Zmc2V0ICAgICAgICAgIDEzLjc2MDkr
LTYuNzAxMiAgICAgICAgICAgMTMuMDQxNCstOS4xMDIzICAgICAgICAgIG1pZ2h0IGJlIDEuMDU1
MnggZmFzdGVyCmZvbGQtbXVsdGktZ2V0LWJ5LW9mZnNldC10by1nZXQtYnktb2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuNzg3MistMy41ODA5
ICAgICAgICAgICAxMC4zNzM1Ky0yLjY5NzAgICAgICAgICAgbWlnaHQgYmUgMS4wMzk5eCBmYXN0
ZXIKZm9sZC1tdWx0aS1nZXQtYnktb2Zmc2V0LXRvLXBvbHktZ2V0LWJ5LW9mZnNldAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjA0NzUrLTQuNjAzNCAg
ICAgICAgICAgMTAuNjYxNystMi4yNzQ5ICAgICAgICAgIG1pZ2h0IGJlIDEuMTMwMHggZmFzdGVy
CmZvbGQtbXVsdGktcHV0LWJ5LW9mZnNldC10by1wb2x5LXB1dC1ieS1vZmZzZXQKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4zMDA1Ky0wLjI3MzEgICAg
ID8gICAgIDExLjU1MzIrLTIuNzk1OCAgICAgICAgPyBtaWdodCBiZSAxLjI0MjJ4IHNsb3dlcgpm
b2xkLW11bHRpLXB1dC1ieS1vZmZzZXQtdG8tcHV0LWJ5LW9mZnNldAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjkwMjMrLTEuNDMxNCAgICAgPyAgICAg
IDYuMTAxNCstMC40MzYxICAgICAgICA/IG1pZ2h0IGJlIDEuMDMzN3ggc2xvd2VyCmZvbGQtbXVs
dGktcHV0LWJ5LW9mZnNldC10by1yZXBsYWNlLW9yLXRyYW5zaXRpb24tcHV0LWJ5LW9mZnNldAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjc5NzcrLTMu
NzkyNiAgICAgPyAgICAgMTIuMDIwMystMi42ODk3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE4OXgg
c2xvd2VyCmZvbGQtcHV0LWJ5LWlkLXRvLW11bHRpLXB1dC1ieS1vZmZzZXQgICAgICAgICAgMTEu
Nzk5MystMi40MjE1ICAgICAgICAgICAxMC43Njk3Ky0xLjQyMDQgICAgICAgICAgbWlnaHQgYmUg
MS4wOTU2eCBmYXN0ZXIKZm9sZC1wdXQtc3RydWN0dXJlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNi43Mzc3Ky0xLjYwMjEgICAgID8gICAgICA2Ljg5MTArLTAuNzE2NCAgICAgICAgPyBt
aWdodCBiZSAxLjAyMjh4IHNsb3dlcgpmb3Itb2YtaXRlcmF0ZS1hcnJheS1lbnRyaWVzICAgICAg
ICAgICAgICAgICAgICA2LjIwNjgrLTEuMTIyMiAgICAgICAgICAgIDUuNzIyMistMC40MzkxICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDg0N3ggZmFzdGVyCmZvci1vZi1pdGVyYXRlLWFycmF5LWtleXMg
ICAgICAgICAgICAgICAgICAgICAgIDMuMDM5NCstMC40NjA5ICAgICA/ICAgICAgMy4xMjAwKy0w
LjcwNDYgICAgICAgID8gbWlnaHQgYmUgMS4wMjY1eCBzbG93ZXIKZm9yLW9mLWl0ZXJhdGUtYXJy
YXktdmFsdWVzICAgICAgICAgICAgICAgICAgICAgMi41OTQxKy0wLjIwMjIgICAgICAgICAgICAy
LjU0OTcrLTAuMTAxOCAgICAgICAgICBtaWdodCBiZSAxLjAxNzR4IGZhc3Rlcgpmcm91bmQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwLjgyNTErLTIuMTMzNSAgICAg
ICAgICAgMjAuMTY1NSstMi41MTM5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMyN3ggZmFzdGVyCmZ0
bC1saWJyYXJ5LWlubGluaW5nLWRhdGF2aWV3ICAgICAgICAgICAgICAgICAgNzYuNTEyMystNS40
MDY4ICAgICA/ICAgICA3OC4xNzUwKy0zLjA4NzMgICAgICAgID8gbWlnaHQgYmUgMS4wMjE3eCBz
bG93ZXIKZnRsLWxpYnJhcnktaW5saW5pbmcgICAgICAgICAgICAgICAgICAgICAgICAgIDEzNS45
MDg2Ky02LjE0NTEgICAgICAgICAgMTMyLjI3OTIrLTQuOTkzNCAgICAgICAgICBtaWdodCBiZSAx
LjAyNzR4IGZhc3RlcgpmdW5jdGlvbi1kb3QtYXBwbHkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA0Ljc3NzMrLTcuOTc2MiAgICAgICAgICAgIDIuMjQxMSstMC44MTY1ICAgICAgICAgIG1p
Z2h0IGJlIDIuMTMxN3ggZmFzdGVyCmZ1bmN0aW9uLXRlc3QgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDMuODEwNistMS41NzIxICAgICAgICAgICAgMy40MzM4Ky0wLjYxNzYgICAg
ICAgICAgbWlnaHQgYmUgMS4xMDk3eCBmYXN0ZXIKZnVuY3Rpb24td2l0aC1ldmFsICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEyMC4wNjU1Ky0zLjk4ODYgICAgICAgICAgMTE5LjA0NzkrLTYu
Mjg5NyAgICAgICAgCmdjc2UtcG9seS1nZXQtbGVzcy1vYnZpb3VzICAgICAgICAgICAgICAgICAg
ICAgMTYuNTAyNystMS41Mjg5ICAgICA/ICAgICAxNy4xNjM4Ky0wLjg3MjggICAgICAgID8gbWln
aHQgYmUgMS4wNDAxeCBzbG93ZXIKZ2NzZS1wb2x5LWdldCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyMC4yMzM4Ky00LjAxNTMgICAgICAgICAgIDE4LjIyNzArLTAuOTA2MiAgICAg
ICAgICBtaWdodCBiZSAxLjExMDF4IGZhc3RlcgpnY3NlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0LjE0ODQrLTAuMTQxMyAgICAgPyAgICAgIDUuNDM0NSstMS42
NzAxICAgICAgICA/IG1pZ2h0IGJlIDEuMzEwMHggc2xvd2VyCmdldC1ieS1pZC1iaW1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzLjIzNTArLTAuMzY2MSAgICAgPyAgICAgIDMuNDcy
NistMS4wMzc5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDczNHggc2xvd2VyCmdldC1ieS1pZC1iaW1v
cnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDcuMTQ5MSstMS44NDY4ICAgICA/ICAgICAgOC4xMjU1
Ky0zLjIwODggICAgICAgID8gbWlnaHQgYmUgMS4xMzY2eCBzbG93ZXIKZ2V0LWJ5LWlkLWNoYWlu
LWZyb20tdHJ5LWJsb2NrICAgICAgICAgICAgICAgICAgOS43MTcwKy0wLjI3OTQgICAgID8gICAg
IDEwLjA3MzcrLTAuODQzNiAgICAgICAgPyBtaWdodCBiZSAxLjAzNjd4IHNsb3dlcgpnZXQtYnkt
aWQtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uICAgICAgICAgICA1LjA4MjkrLTAuNjEzNCAg
ICAgPyAgICAgIDUuMzAyNCstMS40MTMwICAgICAgICA/IG1pZ2h0IGJlIDEuMDQzMnggc2xvd2Vy
CmdldC1ieS1pZC1wcm90by1vci1zZWxmICAgICAgICAgICAgICAgICAgICAgICAgMTkuNjA2MSst
NC4zMjE4ICAgICAgICAgICAxNy45NzkyKy0xLjgxMTggICAgICAgICAgbWlnaHQgYmUgMS4wOTA1
eCBmYXN0ZXIKZ2V0LWJ5LWlkLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi1zaW1wbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
My44Mzg5Ky0wLjg1ODIgICAgID8gICAgICA0LjIwMTMrLTEuNDUxMCAgICAgICAgPyBtaWdodCBi
ZSAxLjA5NDR4IHNsb3dlcgpnZXQtYnktaWQtc2VsZi1vci1wcm90byAgICAgICAgICAgICAgICAg
ICAgICAgIDE4LjM4NjgrLTEuMzEyMSAgICAgICAgICAgMTguMTM3NCstMy4xMDU1ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDEzOHggZmFzdGVyCmdldC1ieS12YWwtb3V0LW9mLWJvdW5kcyAgICAgICAg
ICAgICAgICAgICAgICAgIDUuMTIxMCstMS41NDcyICAgICAgICAgICAgNC4zODM5Ky0wLjczMDEg
ICAgICAgICAgbWlnaHQgYmUgMS4xNjgxeCBmYXN0ZXIKZ2V0X2NhbGxlZV9tb25vbW9ycGhpYyAg
ICAgICAgICAgICAgICAgICAgICAgICAgMy44ODk0Ky0wLjE2MTcgICAgICAgICAgICAzLjc4Mzgr
LTAuMjMxOSAgICAgICAgICBtaWdodCBiZSAxLjAyNzl4IGZhc3RlcgpnZXRfY2FsbGVlX3BvbHlt
b3JwaGljICAgICAgICAgICAgICAgICAgICAgICAgICA0LjYxNjYrLTEuMDYwNCAgICAgPyAgICAg
IDQuNzQ0OCstMC43NjE4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3OHggc2xvd2VyCmdldHRlci1u
by1hY3RpdmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguMTMzMCstNy40ODQyICAg
ICA/ICAgICAgOC43MjA2Ky03LjgwNDIgICAgICAgID8gbWlnaHQgYmUgMS4wNzIzeCBzbG93ZXIK
Z2V0dGVyLXJpY2hhcmRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0Mi4zMjE5Ky00
MC45OTg4ICAgID8gICAgMTQ3Ljk4NTArLTQwLjAwMDkgICAgICAgPyBtaWdodCBiZSAxLjAzOTh4
IHNsb3dlcgpnZXR0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2
LjgwNTIrLTEuNTQ3NSAgICAgICAgICAgIDUuOTE4NystMC45ODM1ICAgICAgICAgIG1pZ2h0IGJl
IDEuMTQ5OHggZmFzdGVyCmdsb2JhbC12YXItY29uc3QtaW5mZXItZmlyZS1mcm9tLW9wdCAgICAg
ICAgICAgIDEuMDk3MCstMC4xOTQxICAgICAgICAgICAgMC45MjQ0Ky0wLjA5MDIgICAgICAgICAg
bWlnaHQgYmUgMS4xODY2eCBmYXN0ZXIKZ2xvYmFsLXZhci1jb25zdC1pbmZlciAgICAgICAgICAg
ICAgICAgICAgICAgICAgMS4yMDY3Ky0wLjk2MTIgICAgICAgICAgICAxLjEzMDQrLTAuODQzMCAg
ICAgICAgICBtaWdodCBiZSAxLjA2NzR4IGZhc3RlcgpIYXNoTWFwLXB1dC1nZXQtaXRlcmF0ZS1r
ZXlzICAgICAgICAgICAgICAgICAgIDMyLjQ0MjArLTcuNTE0NiAgICAgICAgICAgMzIuMTU2MCst
NC44Mjk5ICAgICAgICAKSGFzaE1hcC1wdXQtZ2V0LWl0ZXJhdGUgICAgICAgICAgICAgICAgICAg
ICAgICAzNi42MTMyKy02Ljc3MzAgICAgICAgICAgIDMxLjMzNDgrLTAuODM5OSAgICAgICAgICBt
aWdodCBiZSAxLjE2ODV4IGZhc3RlcgpIYXNoTWFwLXN0cmluZy1wdXQtZ2V0LWl0ZXJhdGUgICAg
ICAgICAgICAgICAgIDM2LjY5NjgrLTguODI0NCAgICAgPyAgICAgMzguNjc1MCstOS43MjA4ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDUzOXggc2xvd2VyCmhvaXN0LW1ha2Utcm9wZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTAuNjI2NSstMS41MjA3ICAgICA/ICAgICAxMC42NzM4Ky0x
LjYzNjQgICAgICAgID8KaG9pc3QtcG9seS1jaGVjay1zdHJ1Y3R1cmUtZWZmZWN0ZnVsLWxvb3AK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy41MTkxKy0y
LjAwNzMgICAgICAgICAgICA3LjUwNjgrLTEuMjM2NiAgICAgICAgCmhvaXN0LXBvbHktY2hlY2st
c3RydWN0dXJlICAgICAgICAgICAgICAgICAgICAgIDYuMDYxOCstMy41ODkxICAgICAgICAgICAg
NC4zMTQzKy0wLjI0MDcgICAgICAgICAgbWlnaHQgYmUgMS40MDUxeCBmYXN0ZXIKaW11bC1kb3Vi
bGUtb25seSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS44ODY5Ky00LjQzMzMgICAg
ICAgICAgICA4Ljk5OTArLTMuNTIwOSAgICAgICAgICBtaWdodCBiZSAxLjA5ODd4IGZhc3Rlcgpp
bXVsLWludC1vbmx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjE4NTErLTIu
MDM5MiAgICAgICAgICAgIDkuOTE1MistMS41Njg2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI3Mngg
ZmFzdGVyCmltdWwtbWl4ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcu
NjM5NSstMC4zNjA1ICAgICA/ICAgICAgNy45ODEzKy0wLjE4MTMgICAgICAgID8gbWlnaHQgYmUg
MS4wNDQ3eCBzbG93ZXIKaW4tZm91ci1jYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyMS4xODA1Ky0yLjQ0ODUgICAgICAgICAgIDIxLjA5NzUrLTEuNzUwNiAgICAgICAgCmlu
LW9uZS1jYXNlLWZhbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuOTM3NCstMS40
ODUzICAgICA/ICAgICAxMy4xNjIzKy0wLjkyNDAgICAgICAgID8gbWlnaHQgYmUgMS4wMTc0eCBz
bG93ZXIKaW4tb25lLWNhc2UtdHJ1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi41
MjE2Ky0zLjUzOTQgICAgID8gICAgIDEyLjc4MzgrLTEuNTg2NCAgICAgICAgPyBtaWdodCBiZSAx
LjAyMDl4IHNsb3dlcgppbi10d28tY2FzZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEzLjA1MTcrLTEuMTE5NiAgICAgPyAgICAgMTMuMzUwOCstMS44MDY2ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDIyOXggc2xvd2VyCmluZGV4ZWQtcHJvcGVydGllcy1pbi1vYmplY3RzICAgICAg
ICAgICAgICAgICAgIDMuNDkwNCstMC42MTQ1ICAgICA/ICAgICAgMy41MTg3Ky0wLjQ2NDkgICAg
ICAgID8KaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLW1vdi1uby1pbmxpbmUgICAgICAgICAgMy41
ODEwKy0wLjE0ODggICAgID8gICAgICA1LjkyMjErLTQuNTIxMCAgICAgICAgPyBtaWdodCBiZSAx
LjY1Mzd4IHNsb3dlcgppbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tbW92ICAgICAgICAgICAgICAg
ICAgIDIwLjk2NDgrLTEuMDU3NyAgICAgPyAgICAgMjEuNzc3OSstMi42NzcwICAgICAgICA/IG1p
Z2h0IGJlIDEuMDM4OHggc2xvd2VyCmluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1wdXQtdG8tc2Nv
cGUtbm8taW5saW5lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTcuMTQ0MistMTIuODM2NCAgICAgICAgICAxMy4zODYyKy0wLjkyNzUgICAgICAgICAgbWln
aHQgYmUgMS4yODA3eCBmYXN0ZXIKaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLXB1dC10by1zY29w
ZSAgICAgICAgICAyMy42NzkwKy0xLjA5ODAgICAgID8gICAgIDI2LjE3NTUrLTEuNDgyOSAgICAg
ICAgPyBtaWdodCBiZSAxLjEwNTR4IHNsb3dlcgppbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tcmVl
bnRlci1uby1pbmxpbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA1NC4xODc2Ky0yLjU5MTEgICAgID8gICAgIDU2LjQ4NjArLTYuNzM2NCAgICAgICAgPyBt
aWdodCBiZSAxLjA0MjR4IHNsb3dlcgppbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tcmVlbnRlciAg
ICAgICAgICAgICAgIDI0LjMyNTUrLTEuMzM5MCAgICAgPyAgICAgMjUuNTU3MystMi4yMzU3ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDUwNnggc2xvd2VyCmluZmVyLWNvbnN0YW50LWdsb2JhbC1wcm9w
ZXJ0eSAgICAgICAgICAgICAgICAgMzUuNjk3MSstMC44ODQyICAgICA/ICAgICAzNy41NzgwKy0x
LjIzODYgICAgICAgID8gbWlnaHQgYmUgMS4wNTI3eCBzbG93ZXIKaW5mZXItY29uc3RhbnQtcHJv
cGVydHkgICAgICAgICAgICAgICAgICAgICAgICAgMy4wMDM0Ky0wLjExMzggICAgID8gICAgICAz
LjA2ODArLTAuMTczMyAgICAgICAgPyBtaWdodCBiZSAxLjAyMTV4IHNsb3dlcgppbmZlci1vbmUt
dGltZS1jbG9zdXJlLXRlbi12YXJzICAgICAgICAgICAgICAgICA5Ljk0NDErLTEuNTIwMCAgICAg
ICAgICAgIDkuNTE0NistMC44MDk1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ1MXggZmFzdGVyCmlu
ZmVyLW9uZS10aW1lLWNsb3N1cmUtdHdvLXZhcnMgICAgICAgICAgICAgICAgIDkuMDI1OCstMC4x
OTE0ICAgICAgICAgICAgOC42OTU0Ky0wLjE4NzggICAgICAgICAgbWlnaHQgYmUgMS4wMzgweCBm
YXN0ZXIKaW5mZXItb25lLXRpbWUtY2xvc3VyZSAgICAgICAgICAgICAgICAgICAgICAgICAxMC4z
MTkyKy0zLjk1MTAgICAgICAgICAgICA5LjAwNTErLTAuMzc5MyAgICAgICAgICBtaWdodCBiZSAx
LjE0NTl4IGZhc3RlcgppbmZlci1vbmUtdGltZS1kZWVwLWNsb3N1cmUgICAgICAgICAgICAgICAg
ICAgIDE0Ljg3MjMrLTEuNjY1MyAgICAgPyAgICAgMTYuMzIxMystMi40OTI3ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDk3NHggc2xvd2VyCmlubGluZS1hcmd1bWVudHMtYWNjZXNzICAgICAgICAgICAg
ICAgICAgICAgICAgIDEuOTY1NystMC43MTYzICAgICA/ICAgICAgMy4xNjI4Ky00LjQ5MDkgICAg
ICAgID8gbWlnaHQgYmUgMS42MDkweCBzbG93ZXIKaW5saW5lLWFyZ3VtZW50cy1hbGlhc2VkLWFj
Y2VzcyAgICAgICAgICAgICAgICAgMi4wNzI4Ky0wLjIwMzEgICAgID8gICAgICAyLjkxODArLTIu
MDI5NCAgICAgICAgPyBtaWdodCBiZSAxLjQwNzh4IHNsb3dlcgppbmxpbmUtYXJndW1lbnRzLWxv
Y2FsLWVzY2FwZSAgICAgICAgICAgICAgICAgIDEyLjU4MzArLTAuNjQ2NiAgICAgICAgICAgMTIu
NTQwOCstMS4yODE3ICAgICAgICAKaW5saW5lLWdldC1zY29wZWQtdmFyICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNC42NDg1Ky0wLjI3MDQgICAgICAgICAgICA0LjQ2MzYrLTAuMTc1MiAgICAg
ICAgICBtaWdodCBiZSAxLjA0MTR4IGZhc3RlcgppbmxpbmVkLXB1dC1ieS1pZC10cmFuc2l0aW9u
ICAgICAgICAgICAgICAgICAgIDExLjA4ODcrLTIuMDA0MiAgICAgICAgICAgMTAuODA3NCstMC42
ODY4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI2MHggZmFzdGVyCmludC1vci1vdGhlci1hYnMtdGhl
bi1nZXQtYnktdmFsICAgICAgICAgICAgICAgIDYuODcwNCstMS4yODQ1ICAgICAgICAgICAgNi40
NjgwKy0yLjM0MDEgICAgICAgICAgbWlnaHQgYmUgMS4wNjIyeCBmYXN0ZXIKaW50LW9yLW90aGVy
LWFicy16ZXJvLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAyMi44MjI1Ky05LjM4NDEgICAgICAg
ICAgIDE5LjM3NDgrLTIuMTA5NyAgICAgICAgICBtaWdodCBiZSAxLjE3ODB4IGZhc3RlcgppbnQt
b3Itb3RoZXItYWRkLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICA2LjU5ODArLTIuMDQ5
MCAgICAgICAgICAgIDUuNjgzMystMS44OTM5ICAgICAgICAgIG1pZ2h0IGJlIDEuMTYxMHggZmFz
dGVyCmludC1vci1vdGhlci1hZGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuOTk5
NSstMy4wMjEzICAgICAgICAgICAgNi4zODQwKy0xLjAxNDIgICAgICAgICAgbWlnaHQgYmUgMS4w
OTY0eCBmYXN0ZXIKaW50LW9yLW90aGVyLWRpdi10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAg
ICAgNS41MTAzKy0xLjMxMDEgICAgICAgICAgICA0LjU0MDYrLTAuMzI0NSAgICAgICAgICBtaWdo
dCBiZSAxLjIxMzV4IGZhc3RlcgppbnQtb3Itb3RoZXItbWF4LXRoZW4tZ2V0LWJ5LXZhbCAgICAg
ICAgICAgICAgICA2LjkwMDgrLTEuNzI4NSAgICAgICAgICAgIDUuNDM4MSstMi44NTA1ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMjY5MHggZmFzdGVyCmludC1vci1vdGhlci1taW4tdGhlbi1nZXQtYnkt
dmFsICAgICAgICAgICAgICAgIDkuODI5NCstMTIuODM1NiAgICAgICAgICAgNC43NTkwKy0wLjQ2
OTcgICAgICAgICAgbWlnaHQgYmUgMi4wNjU0eCBmYXN0ZXIKaW50LW9yLW90aGVyLW1vZC10aGVu
LWdldC1ieS12YWwgICAgICAgICAgICAgICAgNC40NjIwKy0xLjM1OTYgICAgID8gICAgICA0LjUx
NDIrLTEuNzI2NyAgICAgICAgPyBtaWdodCBiZSAxLjAxMTd4IHNsb3dlcgppbnQtb3Itb3RoZXIt
bXVsLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICA0Ljc2NDYrLTEuNjE2NiAgICAgICAg
ICAgIDQuMjMzNCstMC4zMDgwICAgICAgICAgIG1pZ2h0IGJlIDEuMTI1NXggZmFzdGVyCmludC1v
ci1vdGhlci1uZWctdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgIDUuOTg4NSstMS42NzI5
ICAgICAgICAgICAgNS42MjkxKy0xLjQ1NDMgICAgICAgICAgbWlnaHQgYmUgMS4wNjM4eCBmYXN0
ZXIKaW50LW9yLW90aGVyLW5lZy16ZXJvLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAyMy40NTM3
Ky0xMC40MjQ0ICAgICAgICAgIDE5LjM2NjQrLTAuNzA2MiAgICAgICAgICBtaWdodCBiZSAxLjIx
MTF4IGZhc3RlcgppbnQtb3Itb3RoZXItc3ViLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAg
ICA2LjU4MjUrLTEuNzQ3NyAgICAgPyAgICAgIDkuMTQ1OSstOS4yNjk0ICAgICAgICA/IG1pZ2h0
IGJlIDEuMzg5NHggc2xvd2VyCmludC1vci1vdGhlci1zdWIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDQuMjc0NCstMC42NzY2ICAgICAgICAgICAgMy43ODU4Ky0wLjE1MjkgICAgICAg
ICAgbWlnaHQgYmUgMS4xMjkweCBmYXN0ZXIKaW50LW92ZXJmbG93LWxvY2FsICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNS41OTc1Ky0xLjEyMjEgICAgICAgICAgICA0LjczNDQrLTAuNjkz
NyAgICAgICAgICBtaWdodCBiZSAxLjE4MjN4IGZhc3RlcgpJbnQxNkFycmF5LWFsbG9jLWxvbmct
bGl2ZWQgICAgICAgICAgICAgICAgICAgIDUxLjk0MzIrLTEuOTAyOCAgICAgPyAgICAgNTIuNzkx
OSstMy4yOTY4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE2M3ggc2xvd2VyCkludDE2QXJyYXktYnVi
YmxlLXNvcnQtd2l0aC1ieXRlTGVuZ3RoICAgICAgICAgMjQuNjM2MystMTAuOTQzMiAgICAgICAg
ICAyMy4xNjc1Ky02LjkxMTggICAgICAgICAgbWlnaHQgYmUgMS4wNjM0eCBmYXN0ZXIKSW50MTZB
cnJheS1idWJibGUtc29ydCAgICAgICAgICAgICAgICAgICAgICAgICAyMy40MTEzKy0zLjg0Mjgg
ICAgICAgICAgIDIyLjMxODcrLTAuNDc0MiAgICAgICAgICBtaWdodCBiZSAxLjA0OTB4IGZhc3Rl
cgpJbnQxNkFycmF5LWxvYWQtaW50LW11bCAgICAgICAgICAgICAgICAgICAgICAgICAxLjcwNzkr
LTAuMDkxOSAgICAgPyAgICAgIDEuNzkwMCstMC4yOTExICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ4
MXggc2xvd2VyCkludDE2QXJyYXktdG8tSW50MzJBcnJheS1zZXQgICAgICAgICAgICAgICAgICAg
NTguNzUwOSstNC4wOTY4ICAgICAgICAgICA1NS41ODYzKy00LjIzNjQgICAgICAgICAgbWlnaHQg
YmUgMS4wNTY5eCBmYXN0ZXIKSW50MzJBcnJheS1hbGxvYy1sYXJnZSAgICAgICAgICAgICAgICAg
ICAgICAgICAxNS45NjY3Ky01LjIxMzMgICAgICAgICAgIDE1LjE5MTUrLTEuNjA3NSAgICAgICAg
ICBtaWdodCBiZSAxLjA1MTB4IGZhc3RlcgpJbnQzMkFycmF5LWFsbG9jLWxvbmctbGl2ZWQgICAg
ICAgICAgICAgICAgICAgIDYwLjQxMzArLTEwLjI2MTggICAgPyAgICAgNjEuMzU2MCstMi42Mjc0
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE1Nnggc2xvd2VyCkludDMyQXJyYXktYWxsb2MgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTY4MystMC4yMzgzICAgICA/ICAgICAgMy42NTMw
Ky0wLjc2OTcgICAgICAgID8gbWlnaHQgYmUgMS4yMzA3eCBzbG93ZXIKSW50MzJBcnJheS1JbnQ4
QXJyYXktdmlldy1hbGxvYyAgICAgICAgICAgICAgICAgNy40NDc3Ky0xLjA4NzMgICAgID8gICAg
ICA4LjEyMzgrLTAuNDgzMiAgICAgICAgPyBtaWdodCBiZSAxLjA5MDh4IHNsb3dlcgppbnQ1Mi1z
cGlsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjEzMDkrLTAuNzMzMCAg
ICAgPyAgICAgIDcuMTY1MystMC42OTA0ICAgICAgICA/CkludDhBcnJheS1hbGxvYy1sb25nLWxp
dmVkICAgICAgICAgICAgICAgICAgICAgNDkuOTg3MCstNS4xNDM2ICAgICA/ICAgICA1OC4yNTQz
Ky0yOS41ODA3ICAgICAgID8gbWlnaHQgYmUgMS4xNjU0eCBzbG93ZXIKSW50OEFycmF5LWxvYWQt
d2l0aC1ieXRlTGVuZ3RoICAgICAgICAgICAgICAgICAgMy44NDE3Ky0wLjEwNzkgICAgID8gICAg
ICA0LjE3NTUrLTAuOTA1MiAgICAgICAgPyBtaWdodCBiZSAxLjA4Njl4IHNsb3dlcgpJbnQ4QXJy
YXktbG9hZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjg2MDArLTAuMDc0NCAg
ICAgPyAgICAgIDQuNTk0MCstMS43MjEzICAgICAgICA/IG1pZ2h0IGJlIDEuMTkwMnggc2xvd2Vy
CmludGVnZXItZGl2aWRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuNDY5Mist
MS4yMzgxICAgICA/ICAgICAxMi43NjkzKy0wLjgyMDcgICAgICAgID8gbWlnaHQgYmUgMS4wMjQx
eCBzbG93ZXIKaW50ZWdlci1tb2R1bG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Mi4xNDQwKy0wLjE1NzUgICAgID8gICAgICAyLjQ4ODUrLTAuODczMyAgICAgICAgPyBtaWdodCBi
ZSAxLjE2MDZ4IHNsb3dlcgpsYXJnZS1pbnQtY2FwdHVyZWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA4LjE2NTYrLTMuMDQ3NCAgICAgICAgICAgIDcuMTU2NCstMC41MDYxICAgICAgICAg
IG1pZ2h0IGJlIDEuMTQxMHggZmFzdGVyCmxhcmdlLWludC1uZWcgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTkuNDE5MystNy45NDU3ICAgICAgICAgICAxNS44MTQwKy0wLjU4NTEg
ICAgICAgICAgbWlnaHQgYmUgMS4yMjgweCBmYXN0ZXIKbGFyZ2UtaW50ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxNi4xMzE3Ky0yLjI4MDkgICAgID8gICAgIDE3Ljg0NDQr
LTIuODA2OSAgICAgICAgPyBtaWdodCBiZSAxLjEwNjJ4IHNsb3dlcgpsb2dpY2FsLW5vdCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3Ljk4NTUrLTguNDAxMCAgICAgICAgICAg
IDQuNzg5NistMC41MzA0ICAgICAgICAgIG1pZ2h0IGJlIDEuNjY3M3ggZmFzdGVyCmxvdHMtb2Yt
ZmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNjE2NSstMC44MTcwICAg
ICA/ICAgICAxMC4yNTMzKy0wLjc0NTEgICAgICAgID8gbWlnaHQgYmUgMS4wNjYyeCBzbG93ZXIK
bWFrZS1pbmRleGVkLXN0b3JhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC41MzcxKy0x
LjQxOTEgICAgICAgICAgICAzLjc5MzYrLTEuMTYyMSAgICAgICAgICBtaWdodCBiZSAxLjE5NjB4
IGZhc3RlcgptYWtlLXJvcGUtY3NlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
LjQ3NjErLTAuNDQ0NiAgICAgPyAgICAgIDUuMzM3OCstMS45OTE3ICAgICAgICA/IG1pZ2h0IGJl
IDEuMTkyNXggc2xvd2VyCm1hcnNhZ2xpYS1sYXJnZXItaW50cyAgICAgICAgICAgICAgICAgICAg
ICAgICAgNDAuOTQzNistMy4yOTcxICAgICA/ICAgICA0NC43MTM0Ky0xMy40MTkxICAgICAgID8g
bWlnaHQgYmUgMS4wOTIxeCBzbG93ZXIKbWFyc2FnbGlhLW9zci1lbnRyeSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyNC45Mzc1Ky0xLjc1ODEgICAgICAgICAgIDI0LjgwMzArLTEuMjQyOCAg
ICAgICAgCm1heC1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMu
NjA0NystMS43NzQ5ICAgICAgICAgICAgMy4yMDU5Ky0wLjM5MTYgICAgICAgICAgbWlnaHQgYmUg
MS4xMjQ0eCBmYXN0ZXIKbWV0aG9kLW9uLW51bWJlciAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyMy43MDk1Ky0xMS4zMzQ4ICAgICAgICAgIDE5LjA4NzUrLTEuNzYyMyAgICAgICAgICBt
aWdodCBiZSAxLjI0MjF4IGZhc3RlcgptaW4tYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAzLjQzMTIrLTEuNDkwMiAgICAgICAgICAgIDMuMzE0NSstMC40MjA2ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDM1MnggZmFzdGVyCm1pbnVzLWJvb2xlYW4tZG91YmxlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMuNTUxOCstMC40ODIwICAgICAgICAgICAgMy40NjYzKy0w
LjEyMTggICAgICAgICAgbWlnaHQgYmUgMS4wMjQ3eCBmYXN0ZXIKbWludXMtYm9vbGVhbiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi42MjU3Ky0wLjAzMjAgICAgID8gICAgICAz
LjAwNTQrLTAuOTI5MCAgICAgICAgPyBtaWdodCBiZSAxLjE0NDZ4IHNsb3dlcgptaXNjLXN0cmlj
dC1lcSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM0LjU4MjkrLTMuMzAyNCAgICAg
PyAgICAgMzYuNDk1NSstNi44OTQwICAgICAgICA/IG1pZ2h0IGJlIDEuMDU1M3ggc2xvd2VyCm1v
ZC1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMuMjM0MystMS4x
ODc3ICAgICA/ICAgICAxNC4xNjAyKy0yLjAwODIgICAgICAgID8gbWlnaHQgYmUgMS4wNzAweCBz
bG93ZXIKbW9kLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS43
OTcwKy0yLjA0NjEgICAgICAgICAgICA5LjM1OTcrLTAuNTM5NSAgICAgICAgICBtaWdodCBiZSAx
LjA0Njd4IGZhc3RlcgptdWwtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA0LjE2NTMrLTAuNDI2MSAgICAgICAgICAgIDQuMDQ4NistMC4wNzQ2ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDI4OHggZmFzdGVyCm11bC1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDMuNDQyNSstMC41ODE0ICAgICAgICAgICAgMy4yOTUyKy0wLjM0NzMgICAg
ICAgICAgbWlnaHQgYmUgMS4wNDQ3eCBmYXN0ZXIKbmVnLWJvb2xlYW4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMy43MjM4Ky0wLjk0MDEgICAgID8gICAgICAzLjg4MzgrLTAu
NjczNiAgICAgICAgPyBtaWdodCBiZSAxLjA0MzB4IHNsb3dlcgpuZWdhdGl2ZS16ZXJvLWRpdmlk
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjQ0MDcrLTAuMTA5OSAgICAgICAgICAgIDAu
MzYxNistMC4wMjYyICAgICAgICAgIG1pZ2h0IGJlIDEuMjE4NnggZmFzdGVyCm5lZ2F0aXZlLXpl
cm8tbW9kdWxvICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzk5NystMC4wNDQyICAgICAg
ICAgICAgMC4zNzMyKy0wLjA2NzUgICAgICAgICAgbWlnaHQgYmUgMS4wNzExeCBmYXN0ZXIKbmVn
YXRpdmUtemVyby1uZWdhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zODk3Ky0wLjE0
NjEgICAgICAgICAgICAwLjM4MTgrLTAuMDcwOCAgICAgICAgICBtaWdodCBiZSAxLjAyMDh4IGZh
c3RlcgpuZXN0ZWQtZnVuY3Rpb24tcGFyc2luZyAgICAgICAgICAgICAgICAgICAgICAgIDI2LjY5
NzUrLTMuMzI4OCAgICAgICAgICAgMjYuMjI3MistMy42ODA1ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDE3OXggZmFzdGVyCm5ldy1hcnJheS1idWZmZXItZGVhZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMuODA3MCstMS4xNjYxICAgICAgICAgICAgMy4zMDE5Ky0wLjA5MjcgICAgICAgICAgbWln
aHQgYmUgMS4xNTMweCBmYXN0ZXIKbmV3LWFycmF5LWJ1ZmZlci1wdXNoICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNy4yNjE4Ky0wLjQ0MjkgICAgID8gICAgICA4LjQ0OTYrLTMuNTE4MCAgICAg
ICAgPyBtaWdodCBiZSAxLjE2MzZ4IHNsb3dlcgpuZXctYXJyYXktZGVhZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDExLjkwNDIrLTEuMjA4MCAgICAgPyAgICAgMTIuNTc2NSstMy4y
ODEyICAgICAgICA/IG1pZ2h0IGJlIDEuMDU2NXggc2xvd2VyCm5ldy1hcnJheS1wdXNoICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuMzg1MystMS45Mjk4ICAgICA/ICAgICAgNi45
MTgyKy0yLjMwMDkgICAgICAgID8gbWlnaHQgYmUgMS4wODM1eCBzbG93ZXIKbnVtYmVyLXRlc3Qg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy40MjQ5Ky0wLjcxMDcgICAgICAg
ICAgICAzLjE5NzQrLTAuMjQ4NSAgICAgICAgICBtaWdodCBiZSAxLjA3MTJ4IGZhc3RlcgpvYmpl
Y3QtY2xvc3VyZS1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2Ljc4MjArLTIuNTI5
OCAgICAgICAgICAgIDYuNDQ0MistMS44MDkwICAgICAgICAgIG1pZ2h0IGJlIDEuMDUyNHggZmFz
dGVyCm9iamVjdC10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMDIx
MystMS4wNDc1ICAgICAgICAgICAgMy4yODE1Ky0wLjAzOTEgICAgICAgICAgbWlnaHQgYmUgMS4y
MjU0eCBmYXN0ZXIKb2J2aW91cy1zaW5rLXBhdGhvbG9neS10YWtlbiAgICAgICAgICAgICAgICAg
IDEzNS4wNDY4Ky0yLjY5NDMgICAgID8gICAgMTM1LjYwMjgrLTQuMjIxNCAgICAgICAgPwpvYnZp
b3VzLXNpbmstcGF0aG9sb2d5ICAgICAgICAgICAgICAgICAgICAgICAgMTM3LjA5NTArLTguOTUy
NiAgICAgPyAgICAxNDEuMDkxNistMzAuMTYzNSAgICAgICA/IG1pZ2h0IGJlIDEuMDI5Mnggc2xv
d2VyCm9idmlvdXNseS1lbGlkYWJsZS1uZXctb2JqZWN0ICAgICAgICAgICAgICAgICAgMzYuNTI5
NSstMi4xNDM4ICAgICA/ICAgICAzOC4zNjU1Ky01Ljc3OTkgICAgICAgID8gbWlnaHQgYmUgMS4w
NTAzeCBzbG93ZXIKcGx1cy1ib29sZWFuLWFyaXRoICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMi44OTE1Ky0wLjMxMTggICAgID8gICAgICAyLjk0ODErLTAuMjc0MyAgICAgICAgPyBtaWdo
dCBiZSAxLjAxOTZ4IHNsb3dlcgpwbHVzLWJvb2xlYW4tZG91YmxlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjUzNjUrLTAuMjA2OSAgICAgPyAgICAgIDMuNjI0MystMC4yMjc2ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDI0OHggc2xvd2VyCnBsdXMtYm9vbGVhbiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIuODQwNSstMC4wNDQxICAgICA/ICAgICAgNC4xMDQ5Ky0zLjcz
OTQgICAgICAgID8gbWlnaHQgYmUgMS40NDUxeCBzbG93ZXIKcG9seS1jaGFpbi1hY2Nlc3MtZGlm
ZmVyZW50LXByb3RvdHlwZXMtc2ltcGxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDMuNDM0MystMC40OTQwICAgICA/ICAgICAgMy44MzM3Ky0xLjMxOTYg
ICAgICAgID8gbWlnaHQgYmUgMS4xMTYzeCBzbG93ZXIKcG9seS1jaGFpbi1hY2Nlc3MtZGlmZmVy
ZW50LXByb3RvdHlwZXMgICAgICAgICAgMy4wNDY1Ky0wLjg3MjIgICAgICAgICAgICAyLjg5MDAr
LTAuMDkzMCAgICAgICAgICBtaWdodCBiZSAxLjA1NDF4IGZhc3Rlcgpwb2x5LWNoYWluLWFjY2Vz
cy1zaW1wbGVyICAgICAgICAgICAgICAgICAgICAgICA0LjEzNDMrLTEuNTg2MiAgICAgPyAgICAg
IDQuMzc2NSstMS44MjE1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDU4Nnggc2xvd2VyCnBvbHktY2hh
aW4tYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuODc5MSstMC4xMzcyICAg
ICAgICAgICAgMi44Mzg2Ky0wLjExMDIgICAgICAgICAgbWlnaHQgYmUgMS4wMTQzeCBmYXN0ZXIK
cG9seS1zdHJpY3RlcSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Ni42OTI0Ky0w
Ljk0OTQgICAgICAgICAgIDU1Ljg5OTcrLTQuOTQxNCAgICAgICAgICBtaWdodCBiZSAxLjAxNDJ4
IGZhc3Rlcgpwb2x5bW9ycGhpYy1hcnJheS1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAx
LjkxMzgrLTAuMzM5OSAgICAgPyAgICAgIDEuOTUwNistMC4yMDI4ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDE5Mnggc2xvd2VyCnBvbHltb3JwaGljLWdldC1ieS1pZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDMuOTc1MCstMC4yNzQxICAgICAgICAgICAgMy43Njk3Ky0xLjgyMjcgICAgICAgICAg
bWlnaHQgYmUgMS4wNTQ1eCBmYXN0ZXIKcG9seW1vcnBoaWMtcHV0LWJ5LWlkICAgICAgICAgICAg
ICAgICAgICAgICAgICAyOS44NjU3Ky0yLjQ3NjEgICAgICAgICAgIDI4LjkzNjUrLTEuNDc3OCAg
ICAgICAgICBtaWdodCBiZSAxLjAzMjF4IGZhc3Rlcgpwb2x5bW9ycGhpYy1zdHJ1Y3R1cmUgICAg
ICAgICAgICAgICAgICAgICAgICAgIDE1Ljc1NzArLTAuNjc3OCAgICAgPyAgICAgMTYuMzY3NSst
MS4yNTgwICAgICAgICA/IG1pZ2h0IGJlIDEuMDM4N3ggc2xvd2VyCnBvbHl2YXJpYW50LW1vbm9t
b3JwaGljLWdldC1ieS1pZCAgICAgICAgICAgICAgMTAuMjUwNystNC4yMjI2ICAgICAgICAgICAg
OS4yNzg2Ky0xLjQ3MDAgICAgICAgICAgbWlnaHQgYmUgMS4xMDQ4eCBmYXN0ZXIKcHJvdG8tZ2V0
dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC42MjI0Ky01LjkyNTAgICAg
ICAgICAgIDExLjc1NDQrLTEuMDIwOSAgICAgICAgICBtaWdodCBiZSAxLjI0NDB4IGZhc3Rlcgpw
dXQtYnktaWQtcmVwbGFjZS1hbmQtdHJhbnNpdGlvbiAgICAgICAgICAgICAgIDEwLjg1NTgrLTIu
Nzg2MyAgICAgICAgICAgIDkuMTk0MCstMS40MzY3ICAgICAgICAgIG1pZ2h0IGJlIDEuMTgwN3gg
ZmFzdGVyCnB1dC1ieS1pZC1zbGlnaHRseS1wb2x5bW9ycGhpYyAgICAgICAgICAgICAgICAgIDMu
Mjc3MCstMC42MjgwICAgICA/ICAgICAgNC4xNDAzKy0yLjMyMzYgICAgICAgID8gbWlnaHQgYmUg
MS4yNjM0eCBzbG93ZXIKcHV0LWJ5LWlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxMy42MjE1Ky0xLjQ3MjEgICAgICAgICAgIDEzLjM5OTUrLTAuNzU1MyAgICAgICAgICBt
aWdodCBiZSAxLjAxNjZ4IGZhc3RlcgpwdXQtYnktdmFsLWRpcmVjdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAwLjU5NzcrLTAuMDQ4NSAgICAgPyAgICAgIDAuNjM5NystMC4wNjI0ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDcwM3ggc2xvd2VyCnB1dC1ieS12YWwtbGFyZ2UtaW5kZXgtYmxh
bmstaW5kZXhpbmctdHlwZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA1LjgzOTUrLTAuMTk1MCAgICAgPyAgICAgIDYuMDc4NystMC41MzE2ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDQxMHggc2xvd2VyCnB1dC1ieS12YWwtbWFjaGluZS1pbnQgICAgICAgICAg
ICAgICAgICAgICAgICAgIDYuNDc5NCstMTEuMDkzMCAgICAgICAgICAgMi41MzQyKy0wLjEyODUg
ICAgICAgICAgbWlnaHQgYmUgMi41NTY4eCBmYXN0ZXIKcmFyZS1vc3ItZXhpdC1vbi1sb2NhbCAg
ICAgICAgICAgICAgICAgICAgICAgICAxNy41Mjc1Ky0wLjcxMjAgICAgID8gICAgIDE4LjEwNDkr
LTIuNTU5OCAgICAgICAgPyBtaWdodCBiZSAxLjAzMjl4IHNsb3dlcgpyZWdpc3Rlci1wcmVzc3Vy
ZS1mcm9tLW9zciAgICAgICAgICAgICAgICAgICAgIDIwLjc4NjMrLTEuMTA3NyAgICAgPyAgICAg
MjEuMTQ0MystMi4zMjg0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE3Mnggc2xvd2VyCnNldHRlciAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuNjA4OCstMC4xMjIxICAg
ICA/ICAgICAgNS42NzIxKy0wLjU0MDkgICAgICAgID8gbWlnaHQgYmUgMS4wMTEzeCBzbG93ZXIK
c2ltcGxlLWFjdGl2YXRpb24tZGVtbyAgICAgICAgICAgICAgICAgICAgICAgICAyOC45MjQ2Ky0y
LjEwNTEgICAgID8gICAgIDI5LjYyMTMrLTMuMDAwOCAgICAgICAgPyBtaWdodCBiZSAxLjAyNDF4
IHNsb3dlcgpzaW1wbGUtZ2V0dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2
LjY0NTkrLTQuNjkwOCAgICAgICAgICAgMTYuMDUzMystMi4zMzg2ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDM2OXggZmFzdGVyCnNpbXBsZS1wb2x5LWNhbGwtbmVzdGVkICAgICAgICAgICAgICAgICAg
ICAgICAgMTAuMTY1MCstMi42NTUzICAgICA/ICAgICAxMS4zODQyKy0xLjc1NjAgICAgICAgID8g
bWlnaHQgYmUgMS4xMTk5eCBzbG93ZXIKc2ltcGxlLXBvbHktY2FsbCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMS41NjM1Ky0wLjM1NjkgICAgID8gICAgICAxLjk0NjUrLTEuMzczNSAg
ICAgICAgPyBtaWdodCBiZSAxLjI0NDl4IHNsb3dlcgpzaW4tYm9vbGVhbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDIwLjU5ODgrLTEuMjcwNiAgICAgICAgICAgMjAuMjk0MCst
MS4xMjQxICAgICAgICAgIG1pZ2h0IGJlIDEuMDE1MHggZmFzdGVyCnNpbmthYmxlLW5ldy1vYmpl
Y3QtZGFnICAgICAgICAgICAgICAgICAgICAgICAgNjcuMjY1MCstMi4xNzE4ICAgICAhICAgICA3
My4yNTY4Ky0yLjg5MjIgICAgICAgICEgZGVmaW5pdGVseSAxLjA4OTF4IHNsb3dlcgpzaW5rYWJs
ZS1uZXctb2JqZWN0LXRha2VuICAgICAgICAgICAgICAgICAgICAgIDU3LjMyMzUrLTUuOTI0NyAg
ICAgICAgICAgNTcuMjEwOSstMS45NDcwICAgICAgICAKc2lua2FibGUtbmV3LW9iamVjdCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzOC4zMDUyKy0xLjgzOTUgICAgID8gICAgIDQxLjQ0NTAr
LTEwLjQyNzUgICAgICAgPyBtaWdodCBiZSAxLjA4MjB4IHNsb3dlcgpzbG93LWFycmF5LXByb2Zp
bGUtY29udmVyZ2VuY2UgICAgICAgICAgICAgICAgICAzLjIyNzUrLTAuNTczMCAgICAgPyAgICAg
IDUuNTI5MCstNy44MDQ5ICAgICAgICA/IG1pZ2h0IGJlIDEuNzEzMXggc2xvd2VyCnNsb3ctY29u
dmVyZ2VuY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDg2MCstMC4xODMxICAg
ICA/ICAgICAgMy4zOTAwKy0wLjkwMjYgICAgICAgID8gbWlnaHQgYmUgMS4wOTg1eCBzbG93ZXIK
c3BhcnNlLWNvbmRpdGlvbmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4zNTA1Ky0w
LjAzNzYgICAgID8gICAgICAxLjM3MDQrLTAuMDk0MCAgICAgICAgPyBtaWdodCBiZSAxLjAxNDd4
IHNsb3dlcgpzcGxpY2UtdG8tcmVtb3ZlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2
LjA5MDIrLTEuNTc0MiAgICAgICAgICAgMTUuNjQ2MistMS4wMzQ1ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDI4NHggZmFzdGVyCnN0cmluZy1jaGFyLWNvZGUtYXQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMjAuMzIxOCstOC40Nzc4ICAgICAgICAgICAxOC44NTQ0Ky00LjIyMjMgICAgICAgICAg
bWlnaHQgYmUgMS4wNzc4eCBmYXN0ZXIKc3RyaW5nLWNvbmNhdC1vYmplY3QgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMi40MjA2Ky0wLjQxODUgICAgID8gICAgICAyLjQ5NDQrLTAuMTY4NyAg
ICAgICAgPyBtaWdodCBiZSAxLjAzMDV4IHNsb3dlcgpzdHJpbmctY29uY2F0LXBhaXItb2JqZWN0
ICAgICAgICAgICAgICAgICAgICAgICAyLjUxMzMrLTAuNTk0NCAgICAgICAgICAgIDIuNDQxNyst
MC4xNTYyICAgICAgICAgIG1pZ2h0IGJlIDEuMDI5M3ggZmFzdGVyCnN0cmluZy1jb25jYXQtcGFp
ci1zaW1wbGUgICAgICAgICAgICAgICAgICAgICAgMTMuOTY0NSstNi41NDI5ICAgICAgICAgICAx
Mi41MzYyKy0yLjk2OTkgICAgICAgICAgbWlnaHQgYmUgMS4xMTM5eCBmYXN0ZXIKc3RyaW5nLWNv
bmNhdC1zaW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS4wNzIzKy0wLjUzODUgICAg
ID8gICAgIDEyLjA4MTIrLTIuNjQ1NiAgICAgICAgPyBtaWdodCBiZSAxLjA5MTF4IHNsb3dlcgpz
dHJpbmctY29ucy1yZXBlYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3Ljc5OTkrLTAu
Mzk1MSAgICAgPyAgICAgIDguMDE0MCstMC43MzI0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3NHgg
c2xvd2VyCnN0cmluZy1jb25zLXRvd2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgu
NzU5OCstMC41ODQzICAgICA/ICAgICAgOC44NTA1Ky0wLjkzMjUgICAgICAgID8gbWlnaHQgYmUg
MS4wMTAzeCBzbG93ZXIKc3RyaW5nLWVxdWFsaXR5ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxOS40OTEwKy0yLjA2MjAgICAgICAgICAgIDE5LjIzNDgrLTEuNzI5NyAgICAgICAgICBt
aWdodCBiZSAxLjAxMzN4IGZhc3RlcgpzdHJpbmctZ2V0LWJ5LXZhbC1iaWctY2hhciAgICAgICAg
ICAgICAgICAgICAgICA5LjkxNjQrLTQuNDIyOSAgICAgICAgICAgIDkuMDkwMystMS44MTQ5ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDkwOXggZmFzdGVyCnN0cmluZy1nZXQtYnktdmFsLW91dC1vZi1i
b3VuZHMtaW5zYW5lICAgICAgICAgIDMuOTE1OSstMC4zMDY0ICAgICA/ICAgICAgNC4wNDQyKy0w
LjM1MjAgICAgICAgID8gbWlnaHQgYmUgMS4wMzI4eCBzbG93ZXIKc3RyaW5nLWdldC1ieS12YWwt
b3V0LW9mLWJvdW5kcyAgICAgICAgICAgICAgICAgNC42MjM4Ky0wLjM4MzcgICAgID8gICAgICA1
LjYxNzArLTIuODE5OCAgICAgICAgPyBtaWdodCBiZSAxLjIxNDh4IHNsb3dlcgpzdHJpbmctZ2V0
LWJ5LXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjUxMjgrLTEuNDU5NCAgICAg
PyAgICAgIDQuMTU0MistMi4xMTU2ICAgICAgICA/IG1pZ2h0IGJlIDEuMTgyNnggc2xvd2VyCnN0
cmluZy1oYXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMzQxNCstMC4x
NjE1ICAgICA/ICAgICAgMi44Mjg0Ky0xLjA2ODYgICAgICAgID8gbWlnaHQgYmUgMS4yMDgweCBz
bG93ZXIKc3RyaW5nLWxvbmctaWRlbnQtZXF1YWxpdHkgICAgICAgICAgICAgICAgICAgICAxNS4y
MDkyKy0wLjg3ODkgICAgID8gICAgIDE1LjY0OTIrLTMuMjI5MyAgICAgICAgPyBtaWdodCBiZSAx
LjAyODl4IHNsb3dlcgpzdHJpbmctcmVwZWF0LWFyaXRoICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMwLjU3NTIrLTEuNTQ5OSAgICAgPyAgICAgMzMuMjIwMCstNy4yMDc4ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDg2NXggc2xvd2VyCnN0cmluZy1zdWIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNjUuODY5NCstNC41OTk2ICAgICAgICAgICA2Mi43OTA4Ky0zLjYxMTAgICAg
ICAgICAgbWlnaHQgYmUgMS4wNDkweCBmYXN0ZXIKc3RyaW5nLXRlc3QgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMy4yMjA5Ky0wLjM5MjIgICAgID8gICAgICAzLjM0NTcrLTAu
ODg1MyAgICAgICAgPyBtaWdodCBiZSAxLjAzODd4IHNsb3dlcgpzdHJpbmctdmFyLWVxdWFsaXR5
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI5LjMwMzArLTEuNzkyMSAgICAgPyAgICAgMzAu
MDgwMystMy42NDEwICAgICAgICA/IG1pZ2h0IGJlIDEuMDI2NXggc2xvd2VyCnN0cnVjdHVyZS1o
b2lzdC1vdmVyLXRyYW5zaXRpb25zICAgICAgICAgICAgICAgIDIuNDIxNistMC4wNzE1ICAgICA/
ICAgICAgMy4wMDYyKy0xLjEwMzIgICAgICAgID8gbWlnaHQgYmUgMS4yNDE0eCBzbG93ZXIKc3Vi
c3RyaW5nLWNvbmNhdC13ZWlyZCAgICAgICAgICAgICAgICAgICAgICAgICA0MC44MDUzKy0zLjE5
NjEgICAgID8gICAgIDQyLjAyMDQrLTQuMzY0MyAgICAgICAgPyBtaWdodCBiZSAxLjAyOTh4IHNs
b3dlcgpzdWJzdHJpbmctY29uY2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQyLjU0
OTMrLTEuNTc0OCAgICAgPyAgICAgNDQuODI5MistMy44Nzc3ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDUzNnggc2xvd2VyCnN1YnN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNDkuMzU3MystMi40MjYyICAgICAgICAgICA0OC40MTQwKy0yLjY4MDIgICAgICAgICAgbWln
aHQgYmUgMS4wMTk1eCBmYXN0ZXIKc3dpdGNoLWNoYXItY29uc3RhbnQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMy4zMjczKy0wLjU4NTEgICAgID8gICAgICAzLjU1MzkrLTAuOTY4OSAgICAg
ICAgPyBtaWdodCBiZSAxLjA2ODF4IHNsb3dlcgpzd2l0Y2gtY2hhciAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA5LjkxNDcrLTQuNDcyMiAgICAgICAgICAgIDguNjI1NystMC4y
ODYwICAgICAgICAgIG1pZ2h0IGJlIDEuMTQ5NHggZmFzdGVyCnN3aXRjaC1jb25zdGFudCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuNzUxNSstMi44NzU2ICAgICA/ICAgICAxMy4y
NjQzKy04LjAyODQgICAgICAgID8gbWlnaHQgYmUgMS4yMzM3eCBzbG93ZXIKc3dpdGNoLXN0cmlu
Zy1iYXNpYy1iaWctdmFyICAgICAgICAgICAgICAgICAgICAxNS44OTg1Ky0wLjg1MzQgICAgICAg
ICAgIDE1LjExODcrLTAuNDQ4NCAgICAgICAgICBtaWdodCBiZSAxLjA1MTZ4IGZhc3Rlcgpzd2l0
Y2gtc3RyaW5nLWJhc2ljLWJpZyAgICAgICAgICAgICAgICAgICAgICAgIDE1LjM2NzUrLTEuNDg4
NCAgICAgPyAgICAgMTUuNDg3NystMi4yMDgwICAgICAgICA/CnN3aXRjaC1zdHJpbmctYmFzaWMt
dmFyICAgICAgICAgICAgICAgICAgICAgICAgMTQuNjg2MistMC42OTQ1ICAgICA/ICAgICAxNS4z
OTQ4Ky0yLjkyNDggICAgICAgID8gbWlnaHQgYmUgMS4wNDgzeCBzbG93ZXIKc3dpdGNoLXN0cmlu
Zy1iYXNpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOC40MjY5Ky0xMi4xODI1ICAgICAg
ICAgIDE0Ljg4MjkrLTEuNTE5NyAgICAgICAgICBtaWdodCBiZSAxLjIzODF4IGZhc3Rlcgpzd2l0
Y2gtc3RyaW5nLWJpZy1sZW5ndGgtdG93ZXItdmFyICAgICAgICAgICAgIDIzLjQxOTYrLTMuNTI0
NSAgICAgICAgICAgMjIuNjc1OSstMS4xOTg1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMyOHggZmFz
dGVyCnN3aXRjaC1zdHJpbmctbGVuZ3RoLXRvd2VyLXZhciAgICAgICAgICAgICAgICAgMTUuMTMx
MCstMC45MTkyICAgICAgICAgICAxNC43OTYzKy0wLjk5NjggICAgICAgICAgbWlnaHQgYmUgMS4w
MjI2eCBmYXN0ZXIKc3dpdGNoLXN0cmluZy1sZW5ndGgtdG93ZXIgICAgICAgICAgICAgICAgICAg
ICAxMy41NTA1Ky0wLjY0NTMgICAgID8gICAgIDEzLjU1MzIrLTEuNTk1OCAgICAgICAgPwpzd2l0
Y2gtc3RyaW5nLXNob3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjQzMTcrLTEuMjA4
NSAgICAgPyAgICAgMTMuNDY0NSstMC45MTYxICAgICAgICA/CnN3aXRjaCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMuODE5NSstMS44ODQzICAgICA/ICAgICAxNy42
NTk3Ky00LjQ2OTMgICAgICAgID8gbWlnaHQgYmUgMS4yNzc5eCBzbG93ZXIKdGVhci1vZmYtYXJn
dW1lbnRzLXNpbXBsZSAgICAgICAgICAgICAgICAgICAgICAgMi4zNDkyKy0wLjM3OTggICAgID8g
ICAgICAyLjUyMjUrLTAuOTE1OCAgICAgICAgPyBtaWdodCBiZSAxLjA3Mzh4IHNsb3dlcgp0ZWFy
LW9mZi1hcmd1bWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjQ0NDkrLTAuNTY0
MiAgICAgICAgICAgIDMuMTg5OSstMC4wODkxICAgICAgICAgIG1pZ2h0IGJlIDEuMDc5OXggZmFz
dGVyCnRlbXBvcmFsLXN0cnVjdHVyZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMuNzA3
NSstMC41MzgzICAgICA/ICAgICAyMS44NTE3Ky0yMC45MzM0ICAgICAgID8gbWlnaHQgYmUgMS41
OTQxeCBzbG93ZXIKdG8taW50MzItYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxNi4zMjg2Ky0wLjIxOTkgICAgID8gICAgIDE3LjM2NjgrLTguMDg0OCAgICAgICAgPyBtaWdo
dCBiZSAxLjA2MzZ4IHNsb3dlcgp1bmRlZmluZWQtcHJvcGVydHktYWNjZXNzICAgICAgICAgICAg
ICAgICAgICAgMjkxLjM3NTIrLTE2Ljc1MTIgICAgICAgICAyODcuMjg2NSstMTcuODE2NyAgICAg
ICAgIG1pZ2h0IGJlIDEuMDE0MnggZmFzdGVyCnVuZGVmaW5lZC10ZXN0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDMuMTU3OCstMC4xNjM0ICAgICA/ICAgICAgMy4zMzU4Ky0wLjYy
NTUgICAgICAgID8gbWlnaHQgYmUgMS4wNTY0eCBzbG93ZXIKdW5wcm9maWxlZC1saWNtICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxNS44MDI5Ky0wLjcxMjkgICAgID8gICAgIDE3LjA5
MDIrLTIuNTczNCAgICAgICAgPyBtaWdodCBiZSAxLjA4MTV4IHNsb3dlcgp3ZWlyZC1pbmxpbmlu
Zy1jb25zdC1wcm9wICAgICAgICAgICAgICAgICAgICAgICAyLjk1MDIrLTEuMDM2MSAgICAgICAg
ICAgIDIuNTE3OSstMC4yMDgwICAgICAgICAgIG1pZ2h0IGJlIDEuMTcxN3ggZmFzdGVyCgo8YXJp
dGhtZXRpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4Ljk5NzQrLTAuMzEw
NSAgICAgICAgICAgMTguOTc5MCstMC40NTY5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDAxMHggZmFz
dGVyCjxnZW9tZXRyaWM+ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuMTIz
OCstMC4yODEwICAgICA/ICAgICAgOS4xNzI1Ky0wLjE4NzggICAgICAgID8gbWlnaHQgYmUgMS4w
MDUzeCBzbG93ZXIKPGhhcm1vbmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNC43MjM4Ky0wLjE5MTMgICAgICAgICAgICA0LjcxMTYrLTAuMDczNCAgICAgICAgICBtaWdo
dCBiZSAxLjAwMjZ4IGZhc3RlcgoKdGVybmFyeSAkIH4vV0svQ2xlYW4vVG9vbHMvU2NyaXB0cy9y
dW4tanNjLWJlbmNobWFya3MgLS1qcy1yZWdyZXNzIG9yaWdpbmFsOi9Vc2Vycy9zYWFtYmFyYXRp
L1dLL3Rlcm5hcnkvV2ViS2l0QnVpbGQvUmVsZWFzZS9qc2Mgd2l0aENoYW5nZXM6L1VzZXJzL3Nh
YW1iYXJhdGkvV0svQ2xlYW4vV2ViS2l0QnVpbGQvUmVsZWFzZS9qc2MKMjI3Ni8yMjc2ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCkdlbmVyYXRpbmcgYmVuY2htYXJrIHJlcG9ydCBhdCAv
VXNlcnMvc2FhbWJhcmF0aS9XSy90ZXJuYXJ5L29yaWdpbmFsX3dpdGhDaGFuZ2VzX0pTUmVncmVz
c19TYWFteWpvb25fMjAxNTAyMDlfMTUwMF9yZXBvcnQudHh0CkFuZCByYXcgZGF0YSBhdCAvVXNl
cnMvc2FhbWJhcmF0aS9XSy90ZXJuYXJ5L29yaWdpbmFsX3dpdGhDaGFuZ2VzX0pTUmVncmVzc19T
YWFteWpvb25fMjAxNTAyMDlfMTUwMC5qc29uCgpCZW5jaG1hcmsgcmVwb3J0IGZvciBKU1JlZ3Jl
c3Mgb24gU2FhbXlqb29uIChNYWNCb29rUHJvMTEsMSkuCgpWTXMgdGVzdGVkOgoib3JpZ2luYWwi
IGF0IC9Vc2Vycy9zYWFtYmFyYXRpL1dLL3Rlcm5hcnkvV2ViS2l0QnVpbGQvUmVsZWFzZS9qc2Mg
KHIxNzk3ODMpCiJ3aXRoQ2hhbmdlcyIgYXQgL1VzZXJzL3NhYW1iYXJhdGkvV0svQ2xlYW4vV2Vi
S2l0QnVpbGQvUmVsZWFzZS9qc2MgKHIxNzk3ODMpCgpDb2xsZWN0ZWQgNCBzYW1wbGVzIHBlciBi
ZW5jaG1hcmsvVk0sIHdpdGggNCBWTSBpbnZvY2F0aW9ucyBwZXIgYmVuY2htYXJrLiBFbWl0dGVk
IGEgY2FsbCB0byBnYygpIGJldHdlZW4gc2FtcGxlCm1lYXN1cmVtZW50cy4gVXNlZCAxIGJlbmNo
bWFyayBpdGVyYXRpb24gcGVyIFZNIGludm9jYXRpb24gZm9yIHdhcm0tdXAuIFVzZWQgdGhlIGpz
Yy1zcGVjaWZpYyBwcmVjaXNlVGltZSgpIGZ1bmN0aW9uIHRvCmdldCBtaWNyb3NlY29uZC1sZXZl
bCB0aW1pbmcuIFJlcG9ydGluZyBiZW5jaG1hcmsgZXhlY3V0aW9uIHRpbWVzIHdpdGggOTUlIGNv
bmZpZGVuY2UgaW50ZXJ2YWxzIGluIG1pbGxpc2Vjb25kcy4KCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsICAgICAgICAgICAgICAgIHdp
dGhDaGFuZ2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgphYnMtYm9vbGVh
biAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjE2MzUrLTAuODk4NyAgICAg
PyAgICAgIDMuODgxNistMS41NDE1ICAgICAgICA/IG1pZ2h0IGJlIDEuMjI3MHggc2xvd2VyCmFk
YXB0LXRvLWRvdWJsZS1kaXZpZGUgICAgICAgICAgICAgICAgICAgICAgICAgMTguODQ0NystMS40
MzQ4ICAgICAgICAgICAxOC4yNDA1Ky0wLjgyNDkgICAgICAgICAgbWlnaHQgYmUgMS4wMzMxeCBm
YXN0ZXIKYWxpYXNlZC1hcmd1bWVudHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgMS4w
MzE4Ky0wLjA5NzggICAgID8gICAgICAxLjE4MzUrLTAuMjI0MSAgICAgICAgPyBtaWdodCBiZSAx
LjE0NzB4IHNsb3dlcgphbGxvY2F0ZS1iaWctb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyLjU5OTUrLTAuMzc3NyAgICAgICAgICAgIDIuNTgxNSstMC4yOTE5ICAgICAgICAKYXJp
dHktbWlzbWF0Y2gtaW5saW5pbmcgICAgICAgICAgICAgICAgICAgICAgICAgMS4wNjU2Ky0wLjIw
MTkgICAgICAgICAgICAxLjAxNTYrLTAuMjIyMCAgICAgICAgICBtaWdodCBiZSAxLjA0OTN4IGZh
c3RlcgphcnJheS1hY2Nlc3MtcG9seW1vcnBoaWMtc3RydWN0dXJlICAgICAgICAgICAgICA4Ljg0
MTUrLTYuODY3NyAgICAgICAgICAgIDYuNTg2NSstMC43NzM1ICAgICAgICAgIG1pZ2h0IGJlIDEu
MzQyNHggZmFzdGVyCmFycmF5LW5vbmFycmF5LXBvbHltb3JocGljLWFjY2VzcyAgICAgICAgICAg
ICAgNDMuNDg0MystMjAuODM5NiAgICAgICAgICAzNC4zMjY3Ky0zLjQzMTAgICAgICAgICAgbWln
aHQgYmUgMS4yNjY4eCBmYXN0ZXIKYXJyYXktcHJvdG90eXBlLWV2ZXJ5ICAgICAgICAgICAgICAg
ICAgICAgICAgIDEwMC4yNTc1Ky0zLjgyOTkgICAgICAgICAgIDk5LjUzMTIrLTExLjc1NzkgICAg
ICAgCmFycmF5LXByb3RvdHlwZS1mb3JFYWNoICAgICAgICAgICAgICAgICAgICAgICAgOTQuMDgy
OSstNC40MjUzICAgICA/ICAgICA5OS45ODIwKy00LjAyODcgICAgICAgID8gbWlnaHQgYmUgMS4w
NjI3eCBzbG93ZXIKYXJyYXktcHJvdG90eXBlLW1hcCAgICAgICAgICAgICAgICAgICAgICAgICAg
IDExMy43MDUwKy0zLjA0ODkgICAgID8gICAgMTE4LjM5MTcrLTcuNjczOSAgICAgICAgPyBtaWdo
dCBiZSAxLjA0MTJ4IHNsb3dlcgphcnJheS1wcm90b3R5cGUtc29tZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTAxLjYxMDIrLTI5LjA3MzggICAgICAgICAgOTUuNzkxNystNS4zOTQ5ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDYwN3ggZmFzdGVyCmFycmF5LXNwbGljZS1jb250aWd1b3VzICAgICAg
ICAgICAgICAgICAgICAgICAgNDcuNjQyOCstNC4yODQxICAgICA/ICAgICA1OC42NTM5Ky00MC44
NjA3ICAgICAgID8gbWlnaHQgYmUgMS4yMzExeCBzbG93ZXIKYXJyYXktd2l0aC1kb3VibGUtYWRk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4wNjI2Ky0wLjUwMDggICAgID8gICAgICA0LjE0
MjUrLTAuMzk0NiAgICAgICAgPyBtaWdodCBiZSAxLjAxOTd4IHNsb3dlcgphcnJheS13aXRoLWRv
dWJsZS1pbmNyZW1lbnQgICAgICAgICAgICAgICAgICAgICAzLjkyMTArLTAuNzY0MSAgICAgPyAg
ICAgIDQuMTM2NSstMS4wMTQxICAgICAgICA/IG1pZ2h0IGJlIDEuMDU1MHggc2xvd2VyCmFycmF5
LXdpdGgtZG91YmxlLW11bC1hZGQgICAgICAgICAgICAgICAgICAgICAgIDUuNDI1MCstMi4xNTk4
ICAgICAgICAgICAgNS4zMjgwKy0xLjAwNDMgICAgICAgICAgbWlnaHQgYmUgMS4wMTgyeCBmYXN0
ZXIKYXJyYXktd2l0aC1kb3VibGUtc3VtICAgICAgICAgICAgICAgICAgICAgICAgICAgMy42ODM1
Ky0wLjEwNzIgICAgID8gICAgICAzLjkyNjUrLTAuNTI4NCAgICAgICAgPyBtaWdodCBiZSAxLjA2
NjB4IHNsb3dlcgphcnJheS13aXRoLWludDMyLWFkZC1zdWIgICAgICAgICAgICAgICAgICAgICAg
ICA5LjY1MTArLTEuMTc2OCAgICAgICAgICAgIDkuMTM2MistMS42MTgwICAgICAgICAgIG1pZ2h0
IGJlIDEuMDU2M3ggZmFzdGVyCmFycmF5LXdpdGgtaW50MzItb3ItZG91YmxlLXN1bSAgICAgICAg
ICAgICAgICAgIDMuODk4MystMC41ODUwICAgICAgICAgICAgMy43NzE0Ky0wLjEzNDkgICAgICAg
ICAgbWlnaHQgYmUgMS4wMzM2eCBmYXN0ZXIKQXJyYXlCdWZmZXItRGF0YVZpZXctYWxsb2MtbGFy
Z2UtbG9uZy1saXZlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDM3LjkwNjIrLTUuNzYzOSAgICAgICAgICAgMzYuNjE5NSstMC44OTU5ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDM1MXggZmFzdGVyCkFycmF5QnVmZmVyLURhdGFWaWV3LWFsbG9jLWxvbmctbGl2
ZWQgICAgICAgICAgMTMuOTg5NystMC4yOTcxICAgICA/ICAgICAxOC45NTY1Ky0xMC42NDM3ICAg
ICAgID8gbWlnaHQgYmUgMS4zNTUweCBzbG93ZXIKQXJyYXlCdWZmZXItSW50MzJBcnJheS1ieXRl
T2Zmc2V0ICAgICAgICAgICAgICAgMy43MTE3Ky0wLjA5NTQgICAgID8gICAgICA0LjA5MDYrLTEu
MDgzNCAgICAgICAgPyBtaWdodCBiZSAxLjEwMjF4IHNsb3dlcgpBcnJheUJ1ZmZlci1JbnQ4QXJy
YXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDM4LjUxOTcrLTIuNDMxNyAgICAgPyAgICAgNDMuMDQ1MystMTkuODkx
OCAgICAgICA/IG1pZ2h0IGJlIDEuMTE3NXggc2xvd2VyCkFycmF5QnVmZmVyLUludDhBcnJheS1h
bGxvYy1sb25nLWxpdmVkLWJ1ZmZlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDI3LjE2NDIrLTExLjc0NjIgICAgICAgICAgMjYuMDMzOSstMi4wMTkwICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDQzNHggZmFzdGVyCkFycmF5QnVmZmVyLUludDhBcnJheS1hbGxv
Yy1sb25nLWxpdmVkICAgICAgICAgMTQuMzg4NystMi40NzQxICAgICAgICAgICAxNC4xMDY5Ky0w
LjYzNzMgICAgICAgICAgbWlnaHQgYmUgMS4wMjAweCBmYXN0ZXIKQXJyYXlCdWZmZXItSW50OEFy
cmF5LWFsbG9jICAgICAgICAgICAgICAgICAgICAxMS40MzYwKy0wLjkwMjMgICAgID8gICAgIDEx
LjU5OTkrLTAuNDY4NCAgICAgICAgPyBtaWdodCBiZSAxLjAxNDN4IHNsb3dlcgphc21qc19ib29s
X2J1ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjExNzQrLTAuMTU5NiAgICAg
PyAgICAgIDkuMzgzNSstMS45NTc3ICAgICAgICA/IG1pZ2h0IGJlIDEuMTU2MHggc2xvd2VyCmFz
c2lnbi1jdXN0b20tc2V0dGVyLXBvbHltb3JwaGljICAgICAgICAgICAgICAgIDMuMTQ1NSstMC44
MTQzICAgICAgICAgICAgMi45NTI2Ky0wLjQyNjkgICAgICAgICAgbWlnaHQgYmUgMS4wNjUzeCBm
YXN0ZXIKYXNzaWduLWN1c3RvbS1zZXR0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC41
NDA5Ky0yLjE3NTIgICAgICAgICAgICAzLjc3MzkrLTAuMjI1NCAgICAgICAgICBtaWdodCBiZSAx
LjIwMzJ4IGZhc3RlcgpiYXNpYy1zZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEzLjE2NDArLTEuMDE4NiAgICAgPyAgICAgMTQuNDc4MCstMy41NjY4ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDk5OHggc2xvd2VyCmJpZy1pbnQtbXVsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDQuNTc5OCstMi4zNjg4ICAgICAgICAgICAgNC4xMjA3Ky0wLjExMzYgICAg
ICAgICAgbWlnaHQgYmUgMS4xMTE0eCBmYXN0ZXIKYm9vbGVhbi10ZXN0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMy4zODYxKy0wLjgzMDUgICAgICAgICAgICAzLjI0NDErLTAu
MjIzNCAgICAgICAgICBtaWdodCBiZSAxLjA0Mzh4IGZhc3RlcgpicmFuY2gtZm9sZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjI5MzMrLTAuNTQzMiAgICAgICAgICAgIDQu
MDkyMystMC4yOTAwICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ5MXggZmFzdGVyCmJ5LXZhbC1nZW5l
cmljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNTAzNSstMS41NDA3ICAgICAg
ICAgICAgOC44NzMyKy0xLjU2ODcgICAgICAgICAgbWlnaHQgYmUgMS4wNzEweCBmYXN0ZXIKY2Fs
bC1zcHJlYWQtYXBwbHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC4yMjA1Ky0wLjcw
MTUgICAgID8gICAgIDE1LjEyNTcrLTIuNjkwMiAgICAgICAgPyBtaWdodCBiZSAxLjA2Mzd4IHNs
b3dlcgpjYWxsLXNwcmVhZC1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Ljc3
ODArLTAuMTgwMiAgICAgICAgICAgIDUuNzAwNSstMC40MzM5ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDEzNnggZmFzdGVyCmNhcHR1cmVkLWFzc2lnbm1lbnRzICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDAuNjc1MystMC41NDUxICAgICAgICAgICAgMC40ODQ3Ky0wLjAxODcgICAgICAgICAgbWln
aHQgYmUgMS4zOTMzeCBmYXN0ZXIKY2FzdC1pbnQtdG8tZG91YmxlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNi40NzQ1Ky0xLjY2ODIgICAgICAgICAgICA2LjM1OTErLTEuNzE0MSAgICAg
ICAgICBtaWdodCBiZSAxLjAxODJ4IGZhc3RlcgpjZWxsLWFyZ3VtZW50ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA3LjI1NDgrLTAuODc5MyAgICAgPyAgICAgIDcuNzc2NystMC44
NDIzICAgICAgICA/IG1pZ2h0IGJlIDEuMDcxOXggc2xvd2VyCmNmZy1zaW1wbGlmeSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNTMxNCstMS4zMTY1ICAgICAgICAgICAgMy4x
Njg5Ky0wLjE1NDQgICAgICAgICAgbWlnaHQgYmUgMS4xMTQ0eCBmYXN0ZXIKY2hhaW4tZ2V0dGVy
LWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS4wMjU4Ky0xLjE0MzcgICAgID8g
ICAgIDExLjYxNzcrLTEuNTM5NSAgICAgICAgPyBtaWdodCBiZSAxLjA1Mzd4IHNsb3dlcgpjbXBl
cS1vYmotdG8tb2JqLW90aGVyICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjU2NjIrLTQuMTQw
MCAgICAgICAgICAgMTIuNDMwNSstMS43MjQwICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwOXggZmFz
dGVyCmNvbnN0YW50LXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuNTU4
OCstMC44NTQwICAgICA/ICAgICAgNi40OTMwKy0yLjQ2MjEgICAgICAgID8gbWlnaHQgYmUgMS4x
NjgweCBzbG93ZXIKRGF0YVZpZXctY3VzdG9tLXByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAg
ICA0My41MzYzKy0yLjQ1ODAgICAgID8gICAgIDQ2LjA5ODYrLTUuODE3MyAgICAgICAgPyBtaWdo
dCBiZSAxLjA1ODl4IHNsb3dlcgpkZWxheS10ZWFyLW9mZi1hcmd1bWVudHMtc3RyaWN0bW9kZSAg
ICAgICAgICAgIDM1LjA0ODMrLTE5LjM3MTkgICAgICAgICAgMjMuNTc3NystMy41MTg5ICAgICAg
ICAgIG1pZ2h0IGJlIDEuNDg2NXggZmFzdGVyCmRlc3RydWN0dXJpbmctYXJndW1lbnRzICAgICAg
ICAgICAgICAgICAgICAgICAgIDYuNjczMCstMS40Njc4ICAgICAgICAgICAgNi42NjMyKy0xLjMx
ODIgICAgICAgIApkZXN0cnVjdHVyaW5nLXN3YXAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA1LjkyNTUrLTEuNTk1MSAgICAgPyAgICAgIDYuMDc4MCstMS40MTkwICAgICAgICA/IG1pZ2h0
IGJlIDEuMDI1N3ggc2xvd2VyCmRpcmVjdC1hcmd1bWVudHMtZ2V0Ynl2YWwgICAgICAgICAgICAg
ICAgICAgICAgIDAuOTAzNCstMC4yMDgwICAgICA/ICAgICAgMS4yNTI4Ky0wLjQ0OTYgICAgICAg
ID8gbWlnaHQgYmUgMS4zODY3eCBzbG93ZXIKZGl2LWJvb2xlYW4tZG91YmxlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNS44NDc4Ky0wLjE3NDMgICAgID8gICAgICA1Ljg3MTIrLTAuMTgw
MSAgICAgICAgPwpkaXYtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA5LjcyODgrLTEuMjU4OSAgICAgICAgICAgIDkuMjQ5MistMC42NjY3ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDUxOXggZmFzdGVyCmRvdWJsZS1nZXQtYnktdmFsLW91dC1vZi1ib3VuZHMgICAgICAg
ICAgICAgICAgIDQuNjM0NSstMC42Mzc4ICAgICA/ICAgICAgNS4xNTA3Ky0xLjc3NTQgICAgICAg
ID8gbWlnaHQgYmUgMS4xMTE0eCBzbG93ZXIKZG91YmxlLXBvbGx1dGlvbi1nZXRieXZhbCAgICAg
ICAgICAgICAgICAgICAgICAgOS44OTczKy0wLjUxMDcgICAgICAgICAgICA5LjUyNDUrLTAuMzk1
OCAgICAgICAgICBtaWdodCBiZSAxLjAzOTF4IGZhc3Rlcgpkb3VibGUtcG9sbHV0aW9uLXB1dGJ5
b2Zmc2V0ICAgICAgICAgICAgICAgICAgICA0LjkxNjcrLTEuNTk2MiAgICAgICAgICAgIDQuNDE4
OCstMC43NDk0ICAgICAgICAgIG1pZ2h0IGJlIDEuMTEyN3ggZmFzdGVyCmRvdWJsZS10by1pbnQz
Mi10eXBlZC1hcnJheS1uby1pbmxpbmUgICAgICAgICAgIDIuOTQ0OSstMC42OTMxICAgICA/ICAg
ICAgMy4yNDkwKy0wLjgyOTAgICAgICAgID8gbWlnaHQgYmUgMS4xMDMzeCBzbG93ZXIKZG91Ymxl
LXRvLWludDMyLXR5cGVkLWFycmF5ICAgICAgICAgICAgICAgICAgICAgMi4zNDQ2Ky0wLjIwOTkg
ICAgID8gICAgICAyLjYxODArLTAuOTE3NCAgICAgICAgPyBtaWdodCBiZSAxLjExNjZ4IHNsb3dl
cgpkb3VibGUtdG8tdWludDMyLXR5cGVkLWFycmF5LW5vLWlubGluZSAgICAgICAgICAzLjU3MjAr
LTAuNjUzMCAgICAgICAgICAgIDMuMjkwOSstMC44NTkzICAgICAgICAgIG1pZ2h0IGJlIDEuMDg1
NHggZmFzdGVyCmRvdWJsZS10by11aW50MzItdHlwZWQtYXJyYXkgICAgICAgICAgICAgICAgICAg
IDIuNTkyMystMC43NjA0ICAgICA/ICAgICAgMi44NDI1Ky0wLjc0NTIgICAgICAgID8gbWlnaHQg
YmUgMS4wOTY1eCBzbG93ZXIKZWxpZGFibGUtbmV3LW9iamVjdC1kYWcgICAgICAgICAgICAgICAg
ICAgICAgICA0NS4zMzAwKy0xLjA1NTEgICAgID8gICAgIDQ2Ljg1NzUrLTUuNTMzMiAgICAgICAg
PyBtaWdodCBiZSAxLjAzMzd4IHNsb3dlcgplbGlkYWJsZS1uZXctb2JqZWN0LXJvZmxjb3B0ZXIg
ICAgICAgICAgICAgICAgMTY0Ljc2NTYrLTUuMjU4NiAgICAgPyAgICAxNjYuMDQ4MistNC41NTAx
ICAgICAgICA/CmVsaWRhYmxlLW5ldy1vYmplY3QtdGhlbi1jYWxsICAgICAgICAgICAgICAgICAg
MzguMjI4NystNC4yNTMzICAgICAgICAgICAzNy41OTM0Ky0wLjU3ODQgICAgICAgICAgbWlnaHQg
YmUgMS4wMTY5eCBmYXN0ZXIKZWxpZGFibGUtbmV3LW9iamVjdC10cmVlICAgICAgICAgICAgICAg
ICAgICAgICA0Ny4wMjQzKy00LjYwNjMgICAgID8gICAgIDUxLjczMzIrLTE3LjUxNTAgICAgICAg
PyBtaWdodCBiZSAxLjEwMDF4IHNsb3dlcgplbXB0eS1zdHJpbmctcGx1cy1pbnQgICAgICAgICAg
ICAgICAgICAgICAgICAgICA1LjQzNzIrLTAuMjQwOSAgICAgPyAgICAgIDUuNTg0NSstMC4zNzI1
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3MXggc2xvd2VyCmVtc2NyaXB0ZW4tY3ViZTJoYXNoICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMzguMzg5NSstMy43NDY1ICAgICA/ICAgICA0Mi44OTc3
Ky02LjcxMjMgICAgICAgID8gbWlnaHQgYmUgMS4xMTc0eCBzbG93ZXIKZXh0ZXJuYWwtYXJndW1l
bnRzLWdldGJ5dmFsICAgICAgICAgICAgICAgICAgICAgMS4zOTY5Ky0wLjI3MzMgICAgID8gICAg
ICAxLjQ5NjMrLTAuMzk3NyAgICAgICAgPyBtaWdodCBiZSAxLjA3MTJ4IHNsb3dlcgpleHRlcm5h
bC1hcmd1bWVudHMtcHV0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAyLjM5NTErLTAuODcwMyAg
ICAgICAgICAgIDIuMjYyMystMC4zMDc0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDU4N3ggZmFzdGVy
CmZpeGVkLXR5cGVkLWFycmF5LXN0b3JhZ2UtdmFyLWluZGV4ICAgICAgICAgICAgIDEuNTk1NSst
MC4yNTM0ICAgICA/ICAgICAgMS43MjQ4Ky0wLjQ5OTEgICAgICAgID8gbWlnaHQgYmUgMS4wODEx
eCBzbG93ZXIKZml4ZWQtdHlwZWQtYXJyYXktc3RvcmFnZSAgICAgICAgICAgICAgICAgICAgICAg
MS41ODg1Ky0xLjIzMDYgICAgICAgICAgICAxLjE5MzUrLTAuNDE4MCAgICAgICAgICBtaWdodCBi
ZSAxLjMzMDl4IGZhc3RlcgpGbG9hdDMyQXJyYXktbWF0cml4LW11bHQgICAgICAgICAgICAgICAg
ICAgICAgICA0LjUwODErLTAuNjA1MyAgICAgICAgICAgIDQuNDA5OSstMC4yODkyICAgICAgICAg
IG1pZ2h0IGJlIDEuMDIyM3ggZmFzdGVyCkZsb2F0MzJBcnJheS10by1GbG9hdDY0QXJyYXktc2V0
ICAgICAgICAgICAgICAgNjEuMjMzNystMy4yNjg1ICAgICAgICAgICA2MS4wMjc0Ky00LjQwNjcg
ICAgICAgIApGbG9hdDY0QXJyYXktYWxsb2MtbG9uZy1saXZlZCAgICAgICAgICAgICAgICAgIDcw
LjcyMDQrLTMuNjM3NiAgICAgPyAgICAgNzIuMzc5NSstMi4wOTQwICAgICAgICA/IG1pZ2h0IGJl
IDEuMDIzNXggc2xvd2VyCkZsb2F0NjRBcnJheS10by1JbnQxNkFycmF5LXNldCAgICAgICAgICAg
ICAgICAgNzQuMzYwMistNi40MDUzICAgICAgICAgICA2OS41MTg3Ky02LjA0ODcgICAgICAgICAg
bWlnaHQgYmUgMS4wNjk2eCBmYXN0ZXIKZm9sZC1kb3VibGUtdG8taW50ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxNC4xNjMzKy0xLjczMzQgICAgID8gICAgIDE0LjgwNTUrLTEuNDc4MyAg
ICAgICAgPyBtaWdodCBiZSAxLjA0NTN4IHNsb3dlcgpmb2xkLWdldC1ieS1pZC10by1tdWx0aS1n
ZXQtYnktb2Zmc2V0LXJhcmUtaW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTIuNTIyOCstNC40MTI0ICAgICA/ICAgICAxMi42Mjg1Ky0xLjk4NzEgICAg
ICAgID8KZm9sZC1nZXQtYnktaWQtdG8tbXVsdGktZ2V0LWJ5LW9mZnNldCAgICAgICAgICAxMC41
NTc4Ky0wLjg0OTkgICAgID8gICAgIDEwLjc5NTcrLTAuODIwMCAgICAgICAgPyBtaWdodCBiZSAx
LjAyMjV4IHNsb3dlcgpmb2xkLW11bHRpLWdldC1ieS1vZmZzZXQtdG8tZ2V0LWJ5LW9mZnNldAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjkyNDYrLTIu
NDI0MiAgICAgICAgICAgIDkuNDk0MSstNS4yMzIzICAgICAgICAgIG1pZ2h0IGJlIDEuMTUwN3gg
ZmFzdGVyCmZvbGQtbXVsdGktZ2V0LWJ5LW9mZnNldC10by1wb2x5LWdldC1ieS1vZmZzZXQKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS42NTg3Ky0xLjI4
MTcgICAgICAgICAgICA5LjQzODgrLTIuODAyNiAgICAgICAgICBtaWdodCBiZSAxLjAyMzN4IGZh
c3Rlcgpmb2xkLW11bHRpLXB1dC1ieS1vZmZzZXQtdG8tcG9seS1wdXQtYnktb2Zmc2V0CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNTcyMCstMS4wNDYx
ICAgICAgICAgICAgOC42OTgzKy0wLjcxNDIgICAgICAgICAgbWlnaHQgYmUgMS4xMDA0eCBmYXN0
ZXIKZm9sZC1tdWx0aS1wdXQtYnktb2Zmc2V0LXRvLXB1dC1ieS1vZmZzZXQKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS41Njg3Ky0yLjE4NzggICAgICAg
ICAgICA1LjQzMDIrLTAuOTM0NiAgICAgICAgICBtaWdodCBiZSAxLjAyNTV4IGZhc3Rlcgpmb2xk
LW11bHRpLXB1dC1ieS1vZmZzZXQtdG8tcmVwbGFjZS1vci10cmFuc2l0aW9uLXB1dC1ieS1vZmZz
ZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS41MTA1
Ky0yLjU4NzkgICAgICAgICAgIDExLjEyMTkrLTMuNTE5OCAgICAgICAgICBtaWdodCBiZSAxLjAz
NDl4IGZhc3Rlcgpmb2xkLXB1dC1ieS1pZC10by1tdWx0aS1wdXQtYnktb2Zmc2V0ICAgICAgICAg
IDEyLjI5OTErLTAuOTczOSAgICAgPyAgICAgMTMuMTQ2MCstMS45NTA1ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDY4OXggc2xvd2VyCmZvbGQtcHV0LXN0cnVjdHVyZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDguNjQ0MCstNy41MTI3ICAgICAgICAgICAgNi40NDQ4Ky0wLjM4MzcgICAgICAg
ICAgbWlnaHQgYmUgMS4zNDEzeCBmYXN0ZXIKZm9yLW9mLWl0ZXJhdGUtYXJyYXktZW50cmllcyAg
ICAgICAgICAgICAgICAgICAgNS43ODU3Ky0wLjA5MzAgICAgID8gICAgICA2LjE4NDUrLTAuNzY1
NiAgICAgICAgPyBtaWdodCBiZSAxLjA2ODl4IHNsb3dlcgpmb3Itb2YtaXRlcmF0ZS1hcnJheS1r
ZXlzICAgICAgICAgICAgICAgICAgICAgICAzLjgzNzMrLTIuODU0MyAgICAgICAgICAgIDIuNzcx
NSstMC4xMzgzICAgICAgICAgIG1pZ2h0IGJlIDEuMzg0NXggZmFzdGVyCmZvci1vZi1pdGVyYXRl
LWFycmF5LXZhbHVlcyAgICAgICAgICAgICAgICAgICAgIDIuNTA3NCstMC4xNjA0ICAgICA/ICAg
ICAgMi42NzIxKy0wLjI5MDEgICAgICAgID8gbWlnaHQgYmUgMS4wNjU2eCBzbG93ZXIKZnJvdW5k
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMC42OTMyKy0zLjg3MDIg
ICAgICAgICAgIDIwLjY3NzUrLTEuOTMxMCAgICAgICAgCmZ0bC1saWJyYXJ5LWlubGluaW5nLWRh
dGF2aWV3ICAgICAgICAgICAgICAgICAgNzIuMzU0NistMy40OTEwICAgICA/ICAgICA5My41Mzcw
Ky00Ny4wNzg3ICAgICAgID8gbWlnaHQgYmUgMS4yOTI4eCBzbG93ZXIKZnRsLWxpYnJhcnktaW5s
aW5pbmcgICAgICAgICAgICAgICAgICAgICAgICAgIDE0MC40NDg5Ky0xMC4yMzYxICAgICAgICAg
MTM1LjU2NTQrLTYuMTk0NCAgICAgICAgICBtaWdodCBiZSAxLjAzNjB4IGZhc3RlcgpmdW5jdGlv
bi1kb3QtYXBwbHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjAzNTMrLTAuNjI1NyAg
ICAgPyAgICAgIDIuNTQyOCstMC45MjkxICAgICAgICA/IG1pZ2h0IGJlIDEuMjQ5NHggc2xvd2Vy
CmZ1bmN0aW9uLXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNTQxMSst
MC45NjU1ICAgICAgICAgICAgMy40MDc5Ky0wLjE3NDYgICAgICAgICAgbWlnaHQgYmUgMS4wMzkx
eCBmYXN0ZXIKZnVuY3Rpb24td2l0aC1ldmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEx
NS44NTc1Ky04LjgyNjQgICAgID8gICAgMTMxLjQ3NjErLTQxLjE4MTAgICAgICAgPyBtaWdodCBi
ZSAxLjEzNDh4IHNsb3dlcgpnY3NlLXBvbHktZ2V0LWxlc3Mtb2J2aW91cyAgICAgICAgICAgICAg
ICAgICAgIDE2LjEyOTYrLTEuMTAwOCAgICAgPyAgICAgMTcuODUxOCstNC40NDQ5ICAgICAgICA/
IG1pZ2h0IGJlIDEuMTA2OHggc2xvd2VyCmdjc2UtcG9seS1nZXQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTguNjY2MystMC43Mzg4ICAgICA/ICAgICAxOS4wNTA1Ky0zLjEwNjEg
ICAgICAgID8gbWlnaHQgYmUgMS4wMjA2eCBzbG93ZXIKZ2NzZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNS4xNDgzKy0xLjgzNjQgICAgID8gICAgICA1LjMwNjcr
LTIuNjIxMCAgICAgICAgPyBtaWdodCBiZSAxLjAzMDh4IHNsb3dlcgpnZXQtYnktaWQtYmltb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy41NTY1Ky0wLjQzNzEgICAgICAgICAgICAz
LjE2MTYrLTAuNDUyMSAgICAgICAgICBtaWdodCBiZSAxLjEyNDl4IGZhc3RlcgpnZXQtYnktaWQt
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjU4MzcrLTEuODQ5OCAgICAgPyAgICAgIDcu
NzY4NystMS44NzI1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI0NHggc2xvd2VyCmdldC1ieS1pZC1j
aGFpbi1mcm9tLXRyeS1ibG9jayAgICAgICAgICAgICAgICAgIDkuNTM0MistMC40NDYzICAgICA/
ICAgICAxMC4wMDg5Ky0wLjk1MjggICAgICAgID8gbWlnaHQgYmUgMS4wNDk4eCBzbG93ZXIKZ2V0
LWJ5LWlkLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgICAgICAgICAgNC45NDQwKy0wLjMw
NzkgICAgICAgICAgICA0LjkyODArLTAuMjEzNiAgICAgICAgCmdldC1ieS1pZC1wcm90by1vci1z
ZWxmICAgICAgICAgICAgICAgICAgICAgICAgMTguNTkwNSstMi40ODk1ICAgICA/ICAgICAyMC40
MDQ3Ky01LjIwNzAgICAgICAgID8gbWlnaHQgYmUgMS4wOTc2eCBzbG93ZXIKZ2V0LWJ5LWlkLXF1
YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy41NzMzKy0wLjQ0NzUgICAgICAg
ICAgICAzLjUwOTUrLTAuNDc3NyAgICAgICAgICBtaWdodCBiZSAxLjAxODJ4IGZhc3RlcgpnZXQt
YnktaWQtc2VsZi1vci1wcm90byAgICAgICAgICAgICAgICAgICAgICAgIDE4LjY1MTArLTEuOTM1
NiAgICAgICAgICAgMTguMzQ0NCstMy44MjY0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE2N3ggZmFz
dGVyCmdldC1ieS12YWwtb3V0LW9mLWJvdW5kcyAgICAgICAgICAgICAgICAgICAgICAgIDQuNDA5
NistMC41NjczICAgICA/ICAgICAgNS44NzAyKy0zLjI1MjUgICAgICAgID8gbWlnaHQgYmUgMS4z
MzEyeCBzbG93ZXIKZ2V0X2NhbGxlZV9tb25vbW9ycGhpYyAgICAgICAgICAgICAgICAgICAgICAg
ICAgMy43OTkwKy0wLjM2MzIgICAgID8gICAgICAzLjg4ODArLTAuMjM3NSAgICAgICAgPyBtaWdo
dCBiZSAxLjAyMzR4IHNsb3dlcgpnZXRfY2FsbGVlX3BvbHltb3JwaGljICAgICAgICAgICAgICAg
ICAgICAgICAgICA1LjI3MzkrLTIuOTczMiAgICAgICAgICAgIDQuNTUwNSstMC44Mjg3ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMTU5MHggZmFzdGVyCmdldHRlci1uby1hY3RpdmF0aW9uICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDcuMTMzNistNC42NDI1ICAgICAgICAgICAgNS42NjMyKy0wLjA4
NzcgICAgICAgICAgbWlnaHQgYmUgMS4yNTk2eCBmYXN0ZXIKZ2V0dGVyLXJpY2hhcmRzICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDEzNy45ODgwKy0zMC45MDUxICAgID8gICAgMTY1Ljg0
MDMrLTMuMDE5NCAgICAgICAgPyBtaWdodCBiZSAxLjIwMTh4IHNsb3dlcgpnZXR0ZXIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjkxODArLTEuOTQ5NyAgICAgICAg
ICAgIDUuNjgxMCstMC41MTUxICAgICAgICAgIG1pZ2h0IGJlIDEuMjE3N3ggZmFzdGVyCmdsb2Jh
bC12YXItY29uc3QtaW5mZXItZmlyZS1mcm9tLW9wdCAgICAgICAgICAgIDAuODkwMistMC4wNTQ2
ICAgICA/ICAgICAgMS4wMDYwKy0wLjEzNTAgICAgICAgID8gbWlnaHQgYmUgMS4xMzAxeCBzbG93
ZXIKZ2xvYmFsLXZhci1jb25zdC1pbmZlciAgICAgICAgICAgICAgICAgICAgICAgICAgMC44ODEz
Ky0wLjIwOTEgICAgICAgICAgICAwLjg3OTArLTAuMjE0OSAgICAgICAgCkhhc2hNYXAtcHV0LWdl
dC1pdGVyYXRlLWtleXMgICAgICAgICAgICAgICAgICAgMjguODUyNSstMS4xMjk0ICAgICA/ICAg
ICA0MS4wOTE0Ky0yOS4xMDE3ICAgICAgID8gbWlnaHQgYmUgMS40MjQyeCBzbG93ZXIKSGFzaE1h
cC1wdXQtZ2V0LWl0ZXJhdGUgICAgICAgICAgICAgICAgICAgICAgICAzMy42NzA3Ky00LjYxODUg
ICAgICAgICAgIDMxLjg2NTUrLTEuNTM0OCAgICAgICAgICBtaWdodCBiZSAxLjA1NjZ4IGZhc3Rl
cgpIYXNoTWFwLXN0cmluZy1wdXQtZ2V0LWl0ZXJhdGUgICAgICAgICAgICAgICAgIDM3Ljg2NzMr
LTYuNDU1NCAgICAgICAgICAgMzcuNzk5MSstOC4zNzc1ICAgICAgICAKaG9pc3QtbWFrZS1yb3Bl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC45NTg0Ky0zLjE2NDkgICAgICAgICAg
IDEwLjUxODcrLTEuMDY5OCAgICAgICAgICBtaWdodCBiZSAxLjA0MTh4IGZhc3Rlcgpob2lzdC1w
b2x5LWNoZWNrLXN0cnVjdHVyZS1lZmZlY3RmdWwtbG9vcAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA3LjQ5MDUrLTAuOTAwOSAgICAgICAgICAgIDYuMzc5
NSstMS4xMzgwICAgICAgICAgIG1pZ2h0IGJlIDEuMTc0MnggZmFzdGVyCmhvaXN0LXBvbHktY2hl
Y2stc3RydWN0dXJlICAgICAgICAgICAgICAgICAgICAgIDQuNTc1MCstMC4yNzI0ICAgICA/ICAg
ICAgNC45OTQ2Ky0xLjA3NDMgICAgICAgID8gbWlnaHQgYmUgMS4wOTE3eCBzbG93ZXIKaW11bC1k
b3VibGUtb25seSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy41NTk2Ky0wLjI3NTUg
ICAgID8gICAgICA4LjUzNTUrLTIuNTIzNCAgICAgICAgPyBtaWdodCBiZSAxLjEyOTF4IHNsb3dl
cgppbXVsLWludC1vbmx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjUyMjkr
LTQuNTU5NiAgICAgICAgICAgMTAuNTU3MCstMS43NDgxICAgICAgICAgIG1pZ2h0IGJlIDEuMDkx
NXggZmFzdGVyCmltdWwtbWl4ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDguODc0OCstMy42MzEwICAgICAgICAgICAgOC4zOTQ0Ky0yLjc4NDcgICAgICAgICAgbWlnaHQg
YmUgMS4wNTcyeCBmYXN0ZXIKaW4tZm91ci1jYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyMS4wOTQyKy0wLjcxNjMgICAgID8gICAgIDIxLjI4MDgrLTIuNzQ4MiAgICAgICAg
Pwppbi1vbmUtY2FzZS1mYWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0Ljk5ODQr
LTMuMDUyOSAgICAgICAgICAgMTMuMjUxNistNC4zNDc3ICAgICAgICAgIG1pZ2h0IGJlIDEuMTMx
OHggZmFzdGVyCmluLW9uZS1jYXNlLXRydWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTMuMTMzOCstMS4wMzcwICAgICA/ICAgICAxMy43MjUwKy0yLjc2MjcgICAgICAgID8gbWlnaHQg
YmUgMS4wNDUweCBzbG93ZXIKaW4tdHdvLWNhc2VzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxMy43NzIyKy01LjY5MTMgICAgID8gICAgIDE0LjA2NzArLTEuNTU5OSAgICAgICAg
PyBtaWdodCBiZSAxLjAyMTR4IHNsb3dlcgppbmRleGVkLXByb3BlcnRpZXMtaW4tb2JqZWN0cyAg
ICAgICAgICAgICAgICAgICA0LjM4NjcrLTEuODU0NiAgICAgICAgICAgIDMuMjg5MistMC4yNTc2
ICAgICAgICAgIG1pZ2h0IGJlIDEuMzMzN3ggZmFzdGVyCmluZmVyLWNsb3N1cmUtY29uc3QtdGhl
bi1tb3Ytbm8taW5saW5lICAgICAgICAgIDQuMzI3MystMS4xODkwICAgICA/ICAgICAgNC4zNjY4
Ky0yLjAzOTYgICAgICAgID8KaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLW1vdiAgICAgICAgICAg
ICAgICAgICAyMS4wNzIzKy0xLjc2MjUgICAgICAgICAgIDIwLjc1NzgrLTIuMDk2MCAgICAgICAg
ICBtaWdodCBiZSAxLjAxNTF4IGZhc3RlcgppbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tcHV0LXRv
LXNjb3BlLW5vLWlubGluZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEzLjIwNTIrLTEuNTE2MCAgICAgPyAgICAgMTcuMzY5OSstMTIuNDEwNCAgICAgICA/
IG1pZ2h0IGJlIDEuMzE1NHggc2xvd2VyCmluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1wdXQtdG8t
c2NvcGUgICAgICAgICAgMjUuODUxNCstMC43MjM1ICAgICA/ICAgICAyNi4xMzgwKy0zLjEyMTUg
ICAgICAgID8gbWlnaHQgYmUgMS4wMTExeCBzbG93ZXIKaW5mZXItY2xvc3VyZS1jb25zdC10aGVu
LXJlZW50ZXItbm8taW5saW5lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNTYuMTA3NSstMS43NjU0ICAgICAgICAgICA1NS4zMjc2Ky00LjA5NzYgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTQxeCBmYXN0ZXIKaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLXJlZW50
ZXIgICAgICAgICAgICAgICAyNS4xNjk4Ky0yLjAwMjQgICAgICAgICAgIDI1LjA5MTUrLTEuMzE2
NSAgICAgICAgCmluZmVyLWNvbnN0YW50LWdsb2JhbC1wcm9wZXJ0eSAgICAgICAgICAgICAgICAg
MzQuNjYzMSstMS44ODcxICAgICA/ICAgICAzNS4xOTg0Ky0yLjYyODQgICAgICAgID8gbWlnaHQg
YmUgMS4wMTU0eCBzbG93ZXIKaW5mZXItY29uc3RhbnQtcHJvcGVydHkgICAgICAgICAgICAgICAg
ICAgICAgICAgMy4xMzUwKy0wLjUzOTMgICAgID8gICAgICAzLjE3NTArLTAuNDk1MCAgICAgICAg
PyBtaWdodCBiZSAxLjAxMjh4IHNsb3dlcgppbmZlci1vbmUtdGltZS1jbG9zdXJlLXRlbi12YXJz
ICAgICAgICAgICAgICAgICA5Ljc3MDgrLTAuMzg3NiAgICAgICAgICAgIDkuNTQ1MistMS41MDI0
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIzNnggZmFzdGVyCmluZmVyLW9uZS10aW1lLWNsb3N1cmUt
dHdvLXZhcnMgICAgICAgICAgICAgICAgIDkuNjI5MCstMS42NzQ5ICAgICA/ICAgICAgOS44MjY0
Ky0xLjI1MjcgICAgICAgID8gbWlnaHQgYmUgMS4wMjA1eCBzbG93ZXIKaW5mZXItb25lLXRpbWUt
Y2xvc3VyZSAgICAgICAgICAgICAgICAgICAgICAgICAgOS4wOTU1Ky0xLjQ2MDcgICAgID8gICAg
ICA5LjIzNjIrLTEuMzk5MSAgICAgICAgPyBtaWdodCBiZSAxLjAxNTV4IHNsb3dlcgppbmZlci1v
bmUtdGltZS1kZWVwLWNsb3N1cmUgICAgICAgICAgICAgICAgICAgIDE0LjYxNzcrLTEuMDE0NCAg
ICAgICAgICAgMTQuNTY0OSstMC41MjExICAgICAgICAKaW5saW5lLWFyZ3VtZW50cy1hY2Nlc3Mg
ICAgICAgICAgICAgICAgICAgICAgICAgNC4yMzUwKy03LjAwMzEgICAgICAgICAgICAxLjk5MjIr
LTAuNzgzMiAgICAgICAgICBtaWdodCBiZSAyLjEyNTd4IGZhc3RlcgppbmxpbmUtYXJndW1lbnRz
LWFsaWFzZWQtYWNjZXNzICAgICAgICAgICAgICAgICAyLjcyODMrLTEuNzEzMyAgICAgICAgICAg
IDIuMzU2MCstMS4xODk1ICAgICAgICAgIG1pZ2h0IGJlIDEuMTU4MHggZmFzdGVyCmlubGluZS1h
cmd1bWVudHMtbG9jYWwtZXNjYXBlICAgICAgICAgICAgICAgICAgMTIuMjU2NystMC43MDEzICAg
ICA/ICAgICAxMi42NTIwKy0xLjUwMDEgICAgICAgID8gbWlnaHQgYmUgMS4wMzIzeCBzbG93ZXIK
aW5saW5lLWdldC1zY29wZWQtdmFyICAgICAgICAgICAgICAgICAgICAgICAgICAgNC44NjEwKy0x
LjAzOTQgICAgID8gICAgICA1LjExNjArLTEuMTY3NiAgICAgICAgPyBtaWdodCBiZSAxLjA1MjV4
IHNsb3dlcgppbmxpbmVkLXB1dC1ieS1pZC10cmFuc2l0aW9uICAgICAgICAgICAgICAgICAgIDEx
LjAwNjgrLTAuNTEwNSAgICAgPyAgICAgMTMuNjMxMistNi44NDA5ICAgICAgICA/IG1pZ2h0IGJl
IDEuMjM4NHggc2xvd2VyCmludC1vci1vdGhlci1hYnMtdGhlbi1nZXQtYnktdmFsICAgICAgICAg
ICAgICAgIDUuOTMzMistMC43NzIzICAgICA/ICAgICAgNi40MzM1Ky0xLjQyNzAgICAgICAgID8g
bWlnaHQgYmUgMS4wODQzeCBzbG93ZXIKaW50LW9yLW90aGVyLWFicy16ZXJvLXRoZW4tZ2V0LWJ5
LXZhbCAgICAgICAgICAxOC41Mzc4Ky0wLjgyNDIgICAgID8gICAgIDE4Ljc3ODQrLTIuODA4MiAg
ICAgICAgPyBtaWdodCBiZSAxLjAxMzB4IHNsb3dlcgppbnQtb3Itb3RoZXItYWRkLXRoZW4tZ2V0
LWJ5LXZhbCAgICAgICAgICAgICAgICA1LjcwNTYrLTEuOTM4MiAgICAgPyAgICAgIDcuMjIyMCst
Mi42MDQ2ICAgICAgICA/IG1pZ2h0IGJlIDEuMjY1OHggc2xvd2VyCmludC1vci1vdGhlci1hZGQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguNDA0NCstNC43Njg0ICAgICAgICAgICAg
Ni4wMDgzKy0xLjE2NjAgICAgICAgICAgbWlnaHQgYmUgMS4zOTg4eCBmYXN0ZXIKaW50LW9yLW90
aGVyLWRpdi10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgNS42MDgyKy0xLjc5NzAgICAg
ID8gICAgICA2LjE5MDkrLTIuMTMyNCAgICAgICAgPyBtaWdodCBiZSAxLjEwMzl4IHNsb3dlcgpp
bnQtb3Itb3RoZXItbWF4LXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICA1LjU4NTErLTEu
NTk0NSAgICAgPyAgICAgIDUuNjAxMystMy45NzU2ICAgICAgICA/CmludC1vci1vdGhlci1taW4t
dGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgIDYuMDk5OSstMS4wNjQ4ICAgICBeICAgICAg
NC42MjY5Ky0wLjE5NjIgICAgICAgIF4gZGVmaW5pdGVseSAxLjMxODR4IGZhc3RlcgppbnQtb3It
b3RoZXItbW9kLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICA0Ljc3MTUrLTEuMTg1OCAg
ICAgPyAgICAgIDQuNzkxMistMi4yNDk4ICAgICAgICA/CmludC1vci1vdGhlci1tdWwtdGhlbi1n
ZXQtYnktdmFsICAgICAgICAgICAgICAgIDUuMDQzMistMS4wNzM4ICAgICA/ICAgICAgNy4wMTcz
Ky0zLjQ4OTQgICAgICAgID8gbWlnaHQgYmUgMS4zOTE0eCBzbG93ZXIKaW50LW9yLW90aGVyLW5l
Zy10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgNi4xNzU4Ky0yLjAyODQgICAgICAgICAg
ICA1LjU3NDcrLTEuNjA1NSAgICAgICAgICBtaWdodCBiZSAxLjEwNzh4IGZhc3RlcgppbnQtb3It
b3RoZXItbmVnLXplcm8tdGhlbi1nZXQtYnktdmFsICAgICAgICAgIDE4LjM5NTErLTAuNTQzMiAg
ICAgPyAgICAgMTguNjU3MystMC45NTk3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE0M3ggc2xvd2Vy
CmludC1vci1vdGhlci1zdWItdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgIDYuNTQxMSst
MS41NzYyICAgICAgICAgICAgNS41ODgwKy0yLjcwNTAgICAgICAgICAgbWlnaHQgYmUgMS4xNzA2
eCBmYXN0ZXIKaW50LW9yLW90aGVyLXN1YiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NS45NTgxKy0zLjQ0MzQgICAgICAgICAgICAzLjgwNjkrLTAuNTIyNCAgICAgICAgICBtaWdodCBi
ZSAxLjU2NTF4IGZhc3RlcgppbnQtb3ZlcmZsb3ctbG9jYWwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA1LjU1NDArLTEuODc2OSAgICAgPyAgICAgIDUuOTYxNSstMi4yMzAwICAgICAgICA/
IG1pZ2h0IGJlIDEuMDczNHggc2xvd2VyCkludDE2QXJyYXktYWxsb2MtbG9uZy1saXZlZCAgICAg
ICAgICAgICAgICAgICAgNTIuNzE2NystMy4wODkzICAgICAgICAgICA1MS42NDA4Ky0zLjEyNzYg
ICAgICAgICAgbWlnaHQgYmUgMS4wMjA4eCBmYXN0ZXIKSW50MTZBcnJheS1idWJibGUtc29ydC13
aXRoLWJ5dGVMZW5ndGggICAgICAgICAyMi4xMTQ3Ky0zLjEwMTEgICAgID8gICAgIDIyLjg4NTEr
LTIuMzI4MiAgICAgICAgPyBtaWdodCBiZSAxLjAzNDh4IHNsb3dlcgpJbnQxNkFycmF5LWJ1YmJs
ZS1zb3J0ICAgICAgICAgICAgICAgICAgICAgICAgIDIyLjc2ODQrLTIuMzcxMyAgICAgICAgICAg
MjEuNzEyMystMS4wNzY5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ4NnggZmFzdGVyCkludDE2QXJy
YXktbG9hZC1pbnQtbXVsICAgICAgICAgICAgICAgICAgICAgICAgIDEuNzIzMSstMC4yMjEzICAg
ICA/ICAgICAgMS45MTgwKy0wLjU1MTcgICAgICAgID8gbWlnaHQgYmUgMS4xMTMxeCBzbG93ZXIK
SW50MTZBcnJheS10by1JbnQzMkFycmF5LXNldCAgICAgICAgICAgICAgICAgICA1Ny4yNjA5Ky0z
LjM4NTIgICAgID8gICAgIDU4LjcyMjArLTMuMjk3NCAgICAgICAgPyBtaWdodCBiZSAxLjAyNTV4
IHNsb3dlcgpJbnQzMkFycmF5LWFsbG9jLWxhcmdlICAgICAgICAgICAgICAgICAgICAgICAgIDE0
LjY1OTArLTEuNjE5MSAgICAgPyAgICAgMTQuNzAzMistMC44OTAxICAgICAgICA/CkludDMyQXJy
YXktYWxsb2MtbG9uZy1saXZlZCAgICAgICAgICAgICAgICAgICAgNTguNzg2NSstMS4yNTA3ICAg
ICA/ICAgICA2MC41NDYyKy00LjY1MTIgICAgICAgID8gbWlnaHQgYmUgMS4wMjk5eCBzbG93ZXIK
SW50MzJBcnJheS1hbGxvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4wOTk4Ky0w
LjU2NTcgICAgICAgICAgICAzLjAwNzkrLTAuMTc0NyAgICAgICAgICBtaWdodCBiZSAxLjAzMDZ4
IGZhc3RlcgpJbnQzMkFycmF5LUludDhBcnJheS12aWV3LWFsbG9jICAgICAgICAgICAgICAgICA3
LjE4MzgrLTEuMDA4NCAgICAgPyAgICAgIDcuMjM0MCstMC40MTI0ICAgICAgICA/CmludDUyLXNw
aWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMjgwMystMC43ODI4ICAg
ICA/ICAgICAgNy43NDY5Ky0wLjczMzAgICAgICAgID8gbWlnaHQgYmUgMS4wNjQxeCBzbG93ZXIK
SW50OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAgICAgICAgICA0Ny44MjQwKy0y
LjQ5NzUgICAgICAgICAgIDQ3LjYzNTcrLTIuNjY4MCAgICAgICAgCkludDhBcnJheS1sb2FkLXdp
dGgtYnl0ZUxlbmd0aCAgICAgICAgICAgICAgICAgIDMuOTk1MSstMC4yNzU4ICAgICA/ICAgICAg
NC4wNzQyKy0wLjY0MDIgICAgICAgID8gbWlnaHQgYmUgMS4wMTk4eCBzbG93ZXIKSW50OEFycmF5
LWxvYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy45NTUxKy0wLjMzODAgICAg
ID8gICAgICA0LjQwMzYrLTAuNjg2NCAgICAgICAgPyBtaWdodCBiZSAxLjExMzR4IHNsb3dlcgpp
bnRlZ2VyLWRpdmlkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjg0OTIrLTEu
MDA0NSAgICAgPyAgICAgMTIuODYwMCstMi45ODI1ICAgICAgICA/CmludGVnZXItbW9kdWxvICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMzQ2MistMS4wMTY1ICAgICA/ICAgICAg
My4zNzkyKy0yLjUzMTMgICAgICAgID8gbWlnaHQgYmUgMS40NDAzeCBzbG93ZXIKbGFyZ2UtaW50
LWNhcHR1cmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4yODMwKy0wLjcxODAgICAg
ICAgICAgICA3LjA2OTMrLTAuODYwMSAgICAgICAgICBtaWdodCBiZSAxLjAzMDJ4IGZhc3Rlcgps
YXJnZS1pbnQtbmVnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2LjcyNjkrLTIu
NTIzOCAgICAgICAgICAgMTUuNzc1OCstMS4wNzI2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDYwM3gg
ZmFzdGVyCmxhcmdlLWludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYu
MzIxNystMS45OTA0ICAgICAgICAgICAxNS42OTMwKy0xLjMwNzQgICAgICAgICAgbWlnaHQgYmUg
MS4wNDAxeCBmYXN0ZXIKbG9naWNhbC1ub3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNS4wNzI5Ky0xLjAxNzAgICAgID8gICAgICA1LjI5MzcrLTEuMjY0MSAgICAgICAgPyBt
aWdodCBiZSAxLjA0MzV4IHNsb3dlcgpsb3RzLW9mLWZpZWxkcyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA5LjU4ODArLTEuMDQ1NCAgICAgPyAgICAgMTAuMjM4MystMi4wOTMxICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDY3OHggc2xvd2VyCm1ha2UtaW5kZXhlZC1zdG9yYWdlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDQuMTYwOSstMi4wNDk5ICAgICAgICAgICAgMy4yNDI0Ky0w
LjIxOTIgICAgICAgICAgbWlnaHQgYmUgMS4yODMzeCBmYXN0ZXIKbWFrZS1yb3BlLWNzZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC41Mzc0Ky0wLjQ0NjggICAgID8gICAgICA0
LjgzNTQrLTAuMzcyNiAgICAgICAgPyBtaWdodCBiZSAxLjA2NTd4IHNsb3dlcgptYXJzYWdsaWEt
bGFyZ2VyLWludHMgICAgICAgICAgICAgICAgICAgICAgICAgIDM4LjYwNjMrLTMuNzc3OSAgICAg
PyAgICAgNDMuMTE1MistMTUuNTU2NCAgICAgICA/IG1pZ2h0IGJlIDEuMTE2OHggc2xvd2VyCm1h
cnNhZ2xpYS1vc3ItZW50cnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjcuMTQ1OSstNC4x
NjM0ICAgICAgICAgICAyNC4yMzY5Ky0yLjQ4MjIgICAgICAgICAgbWlnaHQgYmUgMS4xMjAweCBm
YXN0ZXIKbWF4LWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4x
MDczKy0wLjMzODQgICAgID8gICAgICAzLjQ0MjMrLTAuOTkzMSAgICAgICAgPyBtaWdodCBiZSAx
LjEwNzh4IHNsb3dlcgptZXRob2Qtb24tbnVtYmVyICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDE4Ljg0NDIrLTIuMDA0OCAgICAgPyAgICAgMTkuNzg1NystMi4yNjE1ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDUwMHggc2xvd2VyCm1pbi1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDMuNjYwMCstMS43NzEwICAgICAgICAgICAgMy4wNjE1Ky0wLjE0OTMgICAg
ICAgICAgbWlnaHQgYmUgMS4xOTU1eCBmYXN0ZXIKbWludXMtYm9vbGVhbi1kb3VibGUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMy41MzMzKy0wLjMzNjQgICAgID8gICAgICAzLjYxMzUrLTAu
MzA4NyAgICAgICAgPyBtaWdodCBiZSAxLjAyMjd4IHNsb3dlcgptaW51cy1ib29sZWFuICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjgzMjkrLTAuMjY2MiAgICAgICAgICAgIDIu
NjY1OCstMC4xMjA1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDYyN3ggZmFzdGVyCm1pc2Mtc3RyaWN0
LWVxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzUuMjEyNystMy4zMjM4ICAgICA/
ICAgICAzNS4yNDg4Ky0xLjQxMDggICAgICAgID8KbW9kLWJvb2xlYW4tZG91YmxlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxMi42OTUyKy0wLjUxMDQgICAgID8gICAgIDEyLjk1ODgrLTEu
NzE4OCAgICAgICAgPyBtaWdodCBiZSAxLjAyMDh4IHNsb3dlcgptb2QtYm9vbGVhbiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjMyNDgrLTAuMjM3NyAgICAgICAgICAgIDku
MjY0NCstMC40NTEyICAgICAgICAKbXVsLWJvb2xlYW4tZG91YmxlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNC4xOTk3Ky0wLjY3MjUgICAgICAgICAgICA0LjA0MTQrLTAuMTY4NyAgICAg
ICAgICBtaWdodCBiZSAxLjAzOTJ4IGZhc3RlcgptdWwtYm9vbGVhbiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzLjIzMTIrLTAuNDE5OCAgICAgPyAgICAgIDMuMzI3MistMC4y
ODk1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI5N3ggc2xvd2VyCm5lZy1ib29sZWFuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNjU3NSstMC41MjI4ICAgICA/ICAgICAgMy44
MDE0Ky0wLjI5ODQgICAgICAgID8gbWlnaHQgYmUgMS4wMzkzeCBzbG93ZXIKbmVnYXRpdmUtemVy
by1kaXZpZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC40NDkxKy0wLjEzMTYgICAgID8g
ICAgICAwLjQ1NDcrLTAuMjI3NiAgICAgICAgPyBtaWdodCBiZSAxLjAxMjV4IHNsb3dlcgpuZWdh
dGl2ZS16ZXJvLW1vZHVsbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjM4MjArLTAuMDU4
MSAgICAgPyAgICAgIDAuNDU1MCstMC4yNDE2ICAgICAgICA/IG1pZ2h0IGJlIDEuMTkxM3ggc2xv
d2VyCm5lZ2F0aXZlLXplcm8tbmVnYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzQ5
MCstMC4wNDAzICAgICA/ICAgICAgMC40MDIzKy0wLjE1NDYgICAgICAgID8gbWlnaHQgYmUgMS4x
NTI5eCBzbG93ZXIKbmVzdGVkLWZ1bmN0aW9uLXBhcnNpbmcgICAgICAgICAgICAgICAgICAgICAg
ICAyMy43MjMzKy0xLjQ4ODcgICAgID8gICAgIDI1LjU2MzcrLTEuNzU4NyAgICAgICAgPyBtaWdo
dCBiZSAxLjA3NzZ4IHNsb3dlcgpuZXctYXJyYXktYnVmZmVyLWRlYWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjI3OTgrLTAuMjY2MyAgICAgICAgICAgIDMuMjA2OCstMC4xNDQyICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDIyOHggZmFzdGVyCm5ldy1hcnJheS1idWZmZXItcHVzaCAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDcuMTMyNCstMC41Mjk3ICAgICA/ICAgICAgNy41Mjg3Ky0wLjcw
ODIgICAgICAgID8gbWlnaHQgYmUgMS4wNTU2eCBzbG93ZXIKbmV3LWFycmF5LWRlYWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxMi41NjI4Ky0yLjMwNTEgICAgICAgICAgIDExLjcw
OTIrLTAuNTgxOCAgICAgICAgICBtaWdodCBiZSAxLjA3Mjl4IGZhc3RlcgpuZXctYXJyYXktcHVz
aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjExMDQrLTAuNzI1NiAgICAgPyAg
ICAgIDYuMzE4NSstMC40MTcxICAgICAgICA/IG1pZ2h0IGJlIDEuMDM0MXggc2xvd2VyCm51bWJl
ci10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMzI0NSstMC42NTY2
ICAgICAgICAgICAgMy4yMjk3Ky0wLjIxMjkgICAgICAgICAgbWlnaHQgYmUgMS4wMjk0eCBmYXN0
ZXIKb2JqZWN0LWNsb3N1cmUtY2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi41MjY0
Ky0xLjcwMzEgICAgID8gICAgICA2LjYzODArLTIuMTc5MSAgICAgICAgPyBtaWdodCBiZSAxLjAx
NzF4IHNsb3dlcgpvYmplY3QtdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzLjA5NTkrLTAuMTM3NSAgICAgPyAgICAgIDMuMjkwMistMC40MjE2ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDYyOHggc2xvd2VyCm9idmlvdXMtc2luay1wYXRob2xvZ3ktdGFrZW4gICAgICAgICAg
ICAgICAgICAxMzcuMTM5MCstMS4zNjY4ICAgICAhICAgIDE0My43NTU1Ky0zLjU4NzcgICAgICAg
ICEgZGVmaW5pdGVseSAxLjA0ODJ4IHNsb3dlcgpvYnZpb3VzLXNpbmstcGF0aG9sb2d5ICAgICAg
ICAgICAgICAgICAgICAgICAgMTQxLjg5NDMrLTM0LjExOTUgICAgICAgICAxMzUuMzU3MystMi45
NDcwICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ4M3ggZmFzdGVyCm9idmlvdXNseS1lbGlkYWJsZS1u
ZXctb2JqZWN0ICAgICAgICAgICAgICAgICAgMzYuNDg4MSstNC40MzIzICAgICAgICAgICAzNS40
NzEwKy0xLjM2OTkgICAgICAgICAgbWlnaHQgYmUgMS4wMjg3eCBmYXN0ZXIKcGx1cy1ib29sZWFu
LWFyaXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4xNzA4Ky0wLjkxNjQgICAgID8g
ICAgICAzLjIwNTErLTAuNjgxNCAgICAgICAgPyBtaWdodCBiZSAxLjAxMDh4IHNsb3dlcgpwbHVz
LWJvb2xlYW4tZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjgzMDArLTAuNzY2
NyAgICAgICAgICAgIDMuNTU3NistMC4xOTQ0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDc2NnggZmFz
dGVyCnBsdXMtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuODA4
OSstMC4wNzc3ICAgICA/ICAgICAgMy4wMDI4Ky0wLjM1NTMgICAgICAgID8gbWlnaHQgYmUgMS4w
NjkweCBzbG93ZXIKcG9seS1jaGFpbi1hY2Nlc3MtZGlmZmVyZW50LXByb3RvdHlwZXMtc2ltcGxl
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNDAzNSst
MC41MDMyICAgICAgICAgICAgMy4xNzI0Ky0wLjA2MTggICAgICAgICAgbWlnaHQgYmUgMS4wNzI5
eCBmYXN0ZXIKcG9seS1jaGFpbi1hY2Nlc3MtZGlmZmVyZW50LXByb3RvdHlwZXMgICAgICAgICAg
My4xMjEwKy0wLjQ1MjggICAgICAgICAgICAyLjkwNzErLTAuMjQzNCAgICAgICAgICBtaWdodCBi
ZSAxLjA3MzZ4IGZhc3Rlcgpwb2x5LWNoYWluLWFjY2Vzcy1zaW1wbGVyICAgICAgICAgICAgICAg
ICAgICAgICAzLjI0MjcrLTAuMzQ4NSAgICAgPyAgICAgIDMuNDk2NistMC4zODM2ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDc4M3ggc2xvd2VyCnBvbHktY2hhaW4tYWNjZXNzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuNzc1MistMC4xNzk2ICAgICAgICAgICAgMi43NTI3Ky0wLjE3MTAg
ICAgICAgIApwb2x5LXN0cmljdGVxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU4
LjE2MTMrLTMuNzAwNiAgICAgPyAgICAgNjAuMjYzMSstNC41MjU4ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDM2MXggc2xvd2VyCnBvbHltb3JwaGljLWFycmF5LWNhbGwgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEuODQxMSstMC4xNDkyICAgICA/ICAgICAgMi4wMzg3Ky0wLjE5MzAgICAgICAgID8g
bWlnaHQgYmUgMS4xMDczeCBzbG93ZXIKcG9seW1vcnBoaWMtZ2V0LWJ5LWlkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMy4xNDU0Ky0wLjM0NzggICAgID8gICAgICA0Ljk3OTMrLTQuMTQ4OSAg
ICAgICAgPyBtaWdodCBiZSAxLjU4MzB4IHNsb3dlcgpwb2x5bW9ycGhpYy1wdXQtYnktaWQgICAg
ICAgICAgICAgICAgICAgICAgICAgIDI5LjIwOTMrLTMuOTY2NCAgICAgPyAgICAgMjkuMjE2MSst
MS45NzgyICAgICAgICA/CnBvbHltb3JwaGljLXN0cnVjdHVyZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTUuMjA3OCstMC41OTMwICAgICAgICAgICAxNC43MzAzKy0wLjQyNDUgICAgICAgICAg
bWlnaHQgYmUgMS4wMzI0eCBmYXN0ZXIKcG9seXZhcmlhbnQtbW9ub21vcnBoaWMtZ2V0LWJ5LWlk
ICAgICAgICAgICAgICAgOS4yNTY1Ky0xLjg2NTkgICAgID8gICAgIDExLjE0NTcrLTIuNjA1MSAg
ICAgICAgPyBtaWdodCBiZSAxLjIwNDF4IHNsb3dlcgpwcm90by1nZXR0ZXItYWNjZXNzICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDExLjU5OTMrLTAuNjg0NCAgICAgPyAgICAgMTIuMDAyMist
My4yNDg1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM0N3ggc2xvd2VyCnB1dC1ieS1pZC1yZXBsYWNl
LWFuZC10cmFuc2l0aW9uICAgICAgICAgICAgICAgIDguODk2OCstMC41NjEzICAgICA/ICAgICAg
OS44NTExKy0yLjE2NzAgICAgICAgID8gbWlnaHQgYmUgMS4xMDczeCBzbG93ZXIKcHV0LWJ5LWlk
LXNsaWdodGx5LXBvbHltb3JwaGljICAgICAgICAgICAgICAgICAgMy4xMjM1Ky0wLjQzNTkgICAg
ID8gICAgICAzLjIwMzIrLTAuNTcwMyAgICAgICAgPyBtaWdodCBiZSAxLjAyNTV4IHNsb3dlcgpw
dXQtYnktaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjU2ODgrLTAu
NjM3MSAgICAgPyAgICAgMTMuNzQyMSstMS4xNTY2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyOHgg
c2xvd2VyCnB1dC1ieS12YWwtZGlyZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAu
ODU2MystMC40Nzc1ICAgICAgICAgICAgMC42MDc5Ky0wLjA2MzQgICAgICAgICAgbWlnaHQgYmUg
MS40MDg2eCBmYXN0ZXIKcHV0LWJ5LXZhbC1sYXJnZS1pbmRleC1ibGFuay1pbmRleGluZy10eXBl
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuMzQ4Myst
MS4xODk3ICAgICAgICAgICAgNi4zNDIzKy0xLjQwNzMgICAgICAgIApwdXQtYnktdmFsLW1hY2hp
bmUtaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAzLjA4MjcrLTAuOTIzMiAgICAgICAgICAg
IDIuNTI3NSstMC4xMzYxICAgICAgICAgIG1pZ2h0IGJlIDEuMjE5N3ggZmFzdGVyCnJhcmUtb3Ny
LWV4aXQtb24tbG9jYWwgICAgICAgICAgICAgICAgICAgICAgICAgMjAuMTIzMistMy4xNDExICAg
ICAgICAgICAxNi43MTUyKy0wLjkxNTcgICAgICAgICAgbWlnaHQgYmUgMS4yMDM5eCBmYXN0ZXIK
cmVnaXN0ZXItcHJlc3N1cmUtZnJvbS1vc3IgICAgICAgICAgICAgICAgICAgICAzMS4xNzEwKy0y
Mi4yNzIzICAgICAgICAgIDIwLjA3NDArLTEuMTY2OCAgICAgICAgICBtaWdodCBiZSAxLjU1Mjh4
IGZhc3RlcgpzZXR0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1
LjgyNjcrLTAuOTE1NiAgICAgICAgICAgIDUuMzg4NSstMC4yNDUxICAgICAgICAgIG1pZ2h0IGJl
IDEuMDgxM3ggZmFzdGVyCnNpbXBsZS1hY3RpdmF0aW9uLWRlbW8gICAgICAgICAgICAgICAgICAg
ICAgICAgMzAuNTAyOCstMi41Nzk5ICAgICAgICAgICAyOS45NTY3Ky00LjAzNTEgICAgICAgICAg
bWlnaHQgYmUgMS4wMTgyeCBmYXN0ZXIKc2ltcGxlLWdldHRlci1hY2Nlc3MgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxNC45NDUzKy0xLjQ3MTkgICAgICAgICAgIDEzLjg4MzArLTAuOTkyNyAg
ICAgICAgICBtaWdodCBiZSAxLjA3NjV4IGZhc3RlcgpzaW1wbGUtcG9seS1jYWxsLW5lc3RlZCAg
ICAgICAgICAgICAgICAgICAgICAgIDEwLjkyOTErLTMuNTU3MiAgICAgICAgICAgMTAuNjcwNyst
MS4yODYwICAgICAgICAgIG1pZ2h0IGJlIDEuMDI0MnggZmFzdGVyCnNpbXBsZS1wb2x5LWNhbGwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNDM4NSstMC4xNzc2ICAgICA/ICAgICAg
MS44NTIwKy0wLjQ5NzQgICAgICAgID8gbWlnaHQgYmUgMS4yODc1eCBzbG93ZXIKc2luLWJvb2xl
YW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMC4xNjcxKy0yLjE4NzEgICAg
ID8gICAgIDIzLjkzMDUrLTcuODE2MSAgICAgICAgPyBtaWdodCBiZSAxLjE4NjZ4IHNsb3dlcgpz
aW5rYWJsZS1uZXctb2JqZWN0LWRhZyAgICAgICAgICAgICAgICAgICAgICAgIDY5Ljc0MTIrLTUu
ODIyMiAgICAgPyAgICAgNzIuMjE3MCstMy40MzM5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM1NXgg
c2xvd2VyCnNpbmthYmxlLW5ldy1vYmplY3QtdGFrZW4gICAgICAgICAgICAgICAgICAgICAgNTMu
NTA2MCstMi45OTAwICAgICA/ICAgICA1Ni44OTY3Ky02Ljg2OTYgICAgICAgID8gbWlnaHQgYmUg
MS4wNjM0eCBzbG93ZXIKc2lua2FibGUtbmV3LW9iamVjdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAzNy4wNTkxKy0yLjQ1MzYgICAgID8gICAgIDM5LjkwNDErLTQuNTMzOCAgICAgICAgPyBt
aWdodCBiZSAxLjA3Njh4IHNsb3dlcgpzbG93LWFycmF5LXByb2ZpbGUtY29udmVyZ2VuY2UgICAg
ICAgICAgICAgICAgICAzLjQ3NzgrLTAuNzY4MCAgICAgICAgICAgIDIuOTM3MistMC4yMzQ1ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMTg0MXggZmFzdGVyCnNsb3ctY29udmVyZ2VuY2UgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMuMjUwNSstMC4zNDIwICAgICA/ICAgICAgMy42Mjg4Ky0w
Ljg4MDYgICAgICAgID8gbWlnaHQgYmUgMS4xMTY0eCBzbG93ZXIKc3BhcnNlLWNvbmRpdGlvbmFs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS40NDcwKy0wLjI0MjEgICAgID8gICAgICAx
LjQ0ODArLTAuMTQyNyAgICAgICAgPwpzcGxpY2UtdG8tcmVtb3ZlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDE1Ljg3NDUrLTEuNTU1OCAgICAgPyAgICAgMjEuNjgwMSstMTIuMjAxNyAg
ICAgICA/IG1pZ2h0IGJlIDEuMzY1N3ggc2xvd2VyCnN0cmluZy1jaGFyLWNvZGUtYXQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTkuMTA2OCstMi40OTcwICAgICA/ICAgICAyMi4wNTQzKy0x
Mi4wMzQwICAgICAgID8gbWlnaHQgYmUgMS4xNTQzeCBzbG93ZXIKc3RyaW5nLWNvbmNhdC1vYmpl
Y3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi40NDM0Ky0wLjEwNDggICAgID8gICAgICAy
Ljc2ODUrLTAuMjUwNCAgICAgICAgPyBtaWdodCBiZSAxLjEzMzB4IHNsb3dlcgpzdHJpbmctY29u
Y2F0LXBhaXItb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAyLjU2NjIrLTAuMzY4NSAgICAg
PyAgICAgIDIuNjUwOSstMC43NDkwICAgICAgICA/IG1pZ2h0IGJlIDEuMDMzMHggc2xvd2VyCnN0
cmluZy1jb25jYXQtcGFpci1zaW1wbGUgICAgICAgICAgICAgICAgICAgICAgMTEuNzg5NystMS41
ODkyICAgICAgICAgICAxMS40ODgyKy0wLjMxOTEgICAgICAgICAgbWlnaHQgYmUgMS4wMjYyeCBm
YXN0ZXIKc3RyaW5nLWNvbmNhdC1zaW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS41
MjI1Ky0wLjEzOTMgICAgID8gICAgIDExLjkwODgrLTEuNDYyNCAgICAgICAgPyBtaWdodCBiZSAx
LjAzMzV4IHNsb3dlcgpzdHJpbmctY29ucy1yZXBlYXQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA4LjE4MzArLTAuNDMzMiAgICAgICAgICAgIDguMDA5OSstMC41OTkwICAgICAgICAgIG1p
Z2h0IGJlIDEuMDIxNnggZmFzdGVyCnN0cmluZy1jb25zLXRvd2VyICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDguNTU2MystMS45MDYxICAgICA/ICAgICAgOC45MDMzKy0wLjM4ODIgICAg
ICAgID8gbWlnaHQgYmUgMS4wNDA2eCBzbG93ZXIKc3RyaW5nLWVxdWFsaXR5ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxOC41NDk2Ky0xLjM2MDkgICAgID8gICAgIDIzLjE0NjIrLTE2
LjYyMTcgICAgICAgPyBtaWdodCBiZSAxLjI0Nzh4IHNsb3dlcgpzdHJpbmctZ2V0LWJ5LXZhbC1i
aWctY2hhciAgICAgICAgICAgICAgICAgICAgICA4Ljc5OTMrLTEuMzY4NyAgICAgICAgICAgIDgu
NTk1MCstMS43NzEwICAgICAgICAgIG1pZ2h0IGJlIDEuMDIzOHggZmFzdGVyCnN0cmluZy1nZXQt
YnktdmFsLW91dC1vZi1ib3VuZHMtaW5zYW5lICAgICAgICAgIDMuODEzOSstMC4xODA2ICAgICA/
ICAgICAgNC44MDc2Ky0yLjQzNDkgICAgICAgID8gbWlnaHQgYmUgMS4yNjA2eCBzbG93ZXIKc3Ry
aW5nLWdldC1ieS12YWwtb3V0LW9mLWJvdW5kcyAgICAgICAgICAgICAgICAgNS43MjAyKy0xLjk5
MTcgICAgICAgICAgICA0LjgxODUrLTAuOTQwNyAgICAgICAgICBtaWdodCBiZSAxLjE4NzF4IGZh
c3RlcgpzdHJpbmctZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjY2
MjArLTEuMDk4NiAgICAgICAgICAgIDMuNDU5OCstMC44NzgzICAgICAgICAgIG1pZ2h0IGJlIDEu
MDU4NHggZmFzdGVyCnN0cmluZy1oYXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIuNDQ2MSstMC4yODM0ICAgICA/ICAgICAgMy4xNTE5Ky0yLjI5NTggICAgICAgID8gbWln
aHQgYmUgMS4yODg1eCBzbG93ZXIKc3RyaW5nLWxvbmctaWRlbnQtZXF1YWxpdHkgICAgICAgICAg
ICAgICAgICAgICAxNS44NzYwKy0yLjM2OTAgICAgICAgICAgIDE1LjA3NDArLTAuODc5OSAgICAg
ICAgICBtaWdodCBiZSAxLjA1MzJ4IGZhc3RlcgpzdHJpbmctcmVwZWF0LWFyaXRoICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDMxLjQwNzMrLTEuMTkwNCAgICAgPyAgICAgMzguNzgyMistMjEu
MjQzMSAgICAgICA/IG1pZ2h0IGJlIDEuMjM0OHggc2xvd2VyCnN0cmluZy1zdWIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNjMuNTcxNSstMS4zNzI3ICAgICAgICAgICA2Mi40
MTcyKy0yLjAxNTQgICAgICAgICAgbWlnaHQgYmUgMS4wMTg1eCBmYXN0ZXIKc3RyaW5nLXRlc3Qg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi45NTM0Ky0wLjIzMjIgICAgID8g
ICAgICAzLjM3NTkrLTAuNzk5NiAgICAgICAgPyBtaWdodCBiZSAxLjE0MzB4IHNsb3dlcgpzdHJp
bmctdmFyLWVxdWFsaXR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI5LjgzMDIrLTEuNjAz
NCAgICAgPyAgICAgMzEuMDQzOCstMi4yMTYyICAgICAgICA/IG1pZ2h0IGJlIDEuMDQwN3ggc2xv
d2VyCnN0cnVjdHVyZS1ob2lzdC1vdmVyLXRyYW5zaXRpb25zICAgICAgICAgICAgICAgIDIuNzU3
MCstMC44MzQ2ICAgICA/ICAgICAgMi43NjE3Ky0wLjM0MDAgICAgICAgID8Kc3Vic3RyaW5nLWNv
bmNhdC13ZWlyZCAgICAgICAgICAgICAgICAgICAgICAgICA0Ni41NTUyKy0xNC43NzY5ICAgICAg
ICAgIDQxLjUwNTArLTMuNTUwNiAgICAgICAgICBtaWdodCBiZSAxLjEyMTd4IGZhc3RlcgpzdWJz
dHJpbmctY29uY2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQyLjA3MDYrLTEuODUy
OCAgICAgPyAgICAgNDUuMjE3MSstMy40MzM1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDc0OHggc2xv
d2VyCnN1YnN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDkuNzI3
NystMy4yMjY3ICAgICAgICAgICA0OC4yNjgwKy0yLjUxNDIgICAgICAgICAgbWlnaHQgYmUgMS4w
MzAyeCBmYXN0ZXIKc3dpdGNoLWNoYXItY29uc3RhbnQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMi45OTY1Ky0wLjQwMzIgICAgID8gICAgICAzLjI3MTgrLTAuNTQxNyAgICAgICAgPyBtaWdo
dCBiZSAxLjA5MTl4IHNsb3dlcgpzd2l0Y2gtY2hhciAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDExLjg4MjErLTEwLjY5MzYgICAgICAgICAgIDkuMDczNSstMS4wODYzICAgICAg
ICAgIG1pZ2h0IGJlIDEuMzA5NXggZmFzdGVyCnN3aXRjaC1jb25zdGFudCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTAuNzcwMistMS44NzMxICAgICAgICAgICAxMC41NjYyKy0yLjA3
NzUgICAgICAgICAgbWlnaHQgYmUgMS4wMTkzeCBmYXN0ZXIKc3dpdGNoLXN0cmluZy1iYXNpYy1i
aWctdmFyICAgICAgICAgICAgICAgICAgICAxNi41NjA1Ky0yLjMwOTEgICAgICAgICAgIDE0Ljk3
MDkrLTAuNDY0OSAgICAgICAgICBtaWdodCBiZSAxLjEwNjJ4IGZhc3Rlcgpzd2l0Y2gtc3RyaW5n
LWJhc2ljLWJpZyAgICAgICAgICAgICAgICAgICAgICAgIDE1LjU1NjgrLTMuMzQ5MiAgICAgICAg
ICAgMTQuNTM4MSstMC45MjI5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDcwMXggZmFzdGVyCnN3aXRj
aC1zdHJpbmctYmFzaWMtdmFyICAgICAgICAgICAgICAgICAgICAgICAgMTQuNDIwMistMS40Njg0
ICAgICA/ICAgICAxNS4xNjE0Ky0xLjY2MjUgICAgICAgID8gbWlnaHQgYmUgMS4wNTE0eCBzbG93
ZXIKc3dpdGNoLXN0cmluZy1iYXNpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC41OTAz
Ky0xLjM1MTYgICAgICAgICAgIDE0LjUxMDArLTEuMDEzMiAgICAgICAgCnN3aXRjaC1zdHJpbmct
YmlnLWxlbmd0aC10b3dlci12YXIgICAgICAgICAgICAgMjEuNDYzOCstMC45OTU3ICAgICAgICAg
ICAyMS4yMDk3Ky0xLjE3NDYgICAgICAgICAgbWlnaHQgYmUgMS4wMTIweCBmYXN0ZXIKc3dpdGNo
LXN0cmluZy1sZW5ndGgtdG93ZXItdmFyICAgICAgICAgICAgICAgICAxNS4wNzMzKy0wLjcyNzkg
ICAgICAgICAgIDE0Ljg1ODUrLTAuMTU1MyAgICAgICAgICBtaWdodCBiZSAxLjAxNDV4IGZhc3Rl
cgpzd2l0Y2gtc3RyaW5nLWxlbmd0aC10b3dlciAgICAgICAgICAgICAgICAgICAgIDEzLjUyMjMr
LTEuMTgzOSAgICAgPyAgICAgMTQuNDY4NSstNi4xNDc1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDcw
MHggc2xvd2VyCnN3aXRjaC1zdHJpbmctc2hvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTMuMTQzOCstMC4zNTQ0ICAgICA/ICAgICAxNS4wMjYzKy03LjkyNDAgICAgICAgID8gbWlnaHQg
YmUgMS4xNDMyeCBzbG93ZXIKc3dpdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxMy44OTc4Ky0xLjUwMjcgICAgICAgICAgIDEzLjcxMzMrLTIuNTEwMSAgICAgICAg
ICBtaWdodCBiZSAxLjAxMzV4IGZhc3Rlcgp0ZWFyLW9mZi1hcmd1bWVudHMtc2ltcGxlICAgICAg
ICAgICAgICAgICAgICAgICAyLjgwMDErLTEuODcxMiAgICAgICAgICAgIDIuMzA3MCstMC4wODMw
ICAgICAgICAgIG1pZ2h0IGJlIDEuMjEzN3ggZmFzdGVyCnRlYXItb2ZmLWFyZ3VtZW50cyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDMuMTQwOCstMC40MjU2ICAgICA/ICAgICAgMy40Mzg1
Ky0wLjY3NDEgICAgICAgID8gbWlnaHQgYmUgMS4wOTQ4eCBzbG93ZXIKdGVtcG9yYWwtc3RydWN0
dXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy44MTk4Ky0xLjE5NjkgICAgID8gICAg
IDE0LjU2NTcrLTIuMTg3NSAgICAgICAgPyBtaWdodCBiZSAxLjA1NDB4IHNsb3dlcgp0by1pbnQz
Mi1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0LjYwOTMrLTAuODQ0OCAg
ICAgPyAgICAgMTUuNTA0MystMS42OTA3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDYxM3ggc2xvd2Vy
CnVuZGVmaW5lZC1wcm9wZXJ0eS1hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAyODMuNDM0MSst
MTIuNTE2MiAgICA/ICAgIDI5My4yOTAwKy0yOC44ODA1ICAgICAgID8gbWlnaHQgYmUgMS4wMzQ4
eCBzbG93ZXIKdW5kZWZpbmVkLXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
My4xNjcyKy0wLjI2NjEgICAgID8gICAgICAzLjMwODUrLTAuNDgwNCAgICAgICAgPyBtaWdodCBi
ZSAxLjA0NDZ4IHNsb3dlcgp1bnByb2ZpbGVkLWxpY20gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDE2LjQwNDUrLTEuOTY5OCAgICAgPyAgICAgMTYuNjk5MCstMS4xODY4ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDE3OXggc2xvd2VyCndlaXJkLWlubGluaW5nLWNvbnN0LXByb3AgICAgICAg
ICAgICAgICAgICAgICAgIDIuNTY0MystMC4zNjk1ICAgICAgICAgICAgMi40NjUyKy0wLjE1MzEg
ICAgICAgICAgbWlnaHQgYmUgMS4wNDAyeCBmYXN0ZXIKCjxhcml0aG1ldGljPiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTguNjg3MCstMC4zODc4ICAgICA/ICAgICAxOS4xMDE4
Ky0wLjUzMDQgICAgICAgID8gbWlnaHQgYmUgMS4wMjIyeCBzbG93ZXIKPGdlb21ldHJpYz4gKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4wMDIzKy0wLjEzMjIgICAgID8gICAg
ICA5LjA1NjMrLTAuMTg0MSAgICAgICAgPyBtaWdodCBiZSAxLjAwNjB4IHNsb3dlcgo8aGFybW9u
aWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjY3NTIrLTAuMDYyNCAg
ICAgPyAgICAgIDQuNzE0OCstMC4wNzMxICAgICAgICA/IG1pZ2h0IGJlIDEuMDA4NXggc2xvd2Vy
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246331</attachid>
            <date>2015-02-10 09:25:23 -0800</date>
            <delta_ts>2015-02-20 17:56:00 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>29876</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc5ODYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDk2IEBA
CisyMDE1LTAyLTA5ICBTYWFtIEJhcmF0aSAgPHNhYW1iYXJhdGkxQGdtYWlsLmNvbT4KKworICAg
ICAgICBBZGp1c3QgdGhlIHJhbmdlcyBvZiBiYXNpYyBibG9jayBzdGF0ZW1lbnRzIGluIEpTQydz
IGNvbnRyb2wgZmxvdyBwcm9maWxlciB0byBiZSBtdXR1YWxseSBleGNsdXNpdmUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTA5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvc2UgdGhlIGNvbnRy
b2wgZmxvdyBvZiBhIHByb2dyYW0gZm9ybXMgYmFzaWMgYmxvY2sgQSB3aXRoIHN1Y2Nlc3NvciBi
bG9jaworICAgICAgICBCLiBBJ3MgZW5kIG9mZnNldCB3aWxsIGJlIHRoZSAqc2FtZSogYXMgQidz
IHN0YXJ0IG9mZnNldCBpbiB0aGUgY3VycmVudCBhcmNoaXRlY3R1cmUgCisgICAgICAgIG9mIHRo
ZSBjb250cm9sIGZsb3cgcHJvZmlsZXIuIFRoaXMgbWFrZXMgcmVhc29uaW5nIGFib3V0IHRoZSB0
ZXh0IG9mZnNldHMgb2YKKyAgICAgICAgdGhlIGNvbnRyb2wgZmxvdyBwcm9maWxlciB1bnNvdW5k
LiBUbyBtYWtlIHJlYXNvbmluZyBhYm91dCBvZmZzZXRzIHNvdW5kLCBhbGwgCisgICAgICAgIGJh
c2ljIGJsb2NrIHJhbmdlcyBzaG91bGQgYmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgQWxsIGNhbGxz
IHRvIGVtaXRQcm9maWxlQ29udHJvbEZsb3cgCisgICAgICAgIG5vdyBwYXNzIGluIHRoZSAqc3Rh
cnQqIG9mIGEgYmFzaWMgYmxvY2sgYXMgdGhlIHRleHQgb2Zmc2V0IGFyZ3VtZW50LiBUaGlzIHNp
bXBsaWZpZXMgCisgICAgICAgIGFsbCBjYWxscyB0byBlbWl0UHJvZmlsZUNvbnRyb2xGbG93IGJl
Y2F1c2UgdGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uIGhhZCBhCisgICAgICAgIGxvdCBvZiBl
ZGdlIGNhc2VzIGZvciBnZXR0aW5nIHRoZSBkZXNpcmVkIGJhc2ljIGJsb2NrIHRleHQgYm91bmRh
cmllcy4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gaGFzIGVuc3VyZXMgdGhhdCB0aGUgYmFz
aWMgYmxvY2sgYm91bmRhcnkgb2YgYSBibG9jayBzdGF0ZW1lbnQgCisgICAgICAgIGlzIHRoZSBl
eGFjdGx5IHRoZSBibG9jaydzIG9wZW4gYW5kIGNsb3NlIGJyYWNlIG9mZnNldHMgKGluY2x1c2l2
ZSkuIEZvciBleGFtcGxlLAorICAgICAgICBpbiBpZi9mb3Ivd2hpbGUgc3RhdGVtZW50cy4KKwor
ICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9j
azo6aW5zZXJ0QmFzaWNCbG9ja0JvdW5kYXJpZXNGb3JDb250cm9sRmxvd1Byb2ZpbGVyKToKKyAg
ICAgICAgV2hlbiBjb21wdXRpbmcgYmFzaWMgYmxvY2sgYm91bmRhcmllcyBpbiBDb2RlQmxvY2ss
IHdlIGVuc3VyZSB0aGF0IGV2ZXJ5CisgICAgICAgIGJsb2NrJ3MgZW5kIG9mZnNldCBpcyBvbmUg
bGVzcyB0aGFuIGl0cyBzdWNjZXNzb3IncyBzdGFydCBvZmZzZXQgdG8KKyAgICAgICAgbWFpbnRh
aW4gdGhhdCBib3VuZGFyaWVzJyByYW5nZXMgc2hvdWxkIGJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4K
KworICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVC
bG9jazo6aW5zZXJ0QmFzaWNCbG9ja0JvdW5kYXJpZXNGb3JDb250cm9sRmxvd1Byb2ZpbGVyKToK
KyAgICAgICAgV2hlbiBjb21wdXRpbmcgYmFzaWMgYmxvY2sgYm91bmRhcmllcyBpbiBDb2RlQmxv
Y2ssIHdlIGVuc3VyZSB0aGF0IGV2ZXJ5CisgICAgICAgIGJsb2NrJ3MgZW5kIG9mZnNldCBpcyBv
bmUgbGVzcyB0aGFuIGl0cyBzdWNjZXNzb3IncyBzdGFydCBvZmZzZXQgdG8KKyAgICAgICAgbWFp
bnRhaW4gdGhhdCBib3VuZGFyaWVzJyByYW5nZXMgc2hvdWxkIGJlIG11dHVhbGx5IGV4Y2x1c2l2
ZS4KKworICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAg
ICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcik6CisgICAgICAg
IEJlY2F1c2UgdGhlIGNvbnRyb2wgZmxvdyBwcm9maWxlciBuZWVkcyB0byBrbm93IHdoaWNoIGZ1
bmN0aW9ucworICAgICAgICBoYXZlIGV4ZWN1dGVkLCB3ZSBjYW4ndCBsYXppbHkgY3JlYXRlIGZ1
bmN0aW9ucy4gVGhpcyB3YXMgYSBidWcgCisgICAgICAgIGZyb20gYmVmb3JlIHRoYXQgd2FzIGhp
ZGRlbiBiZWNhdXNlIHRoZSBUeXBlIFByb2ZpbGVyIHdhcyBhbHdheXMgCisgICAgICAgIGVuYWJs
ZWQgd2hlbiB0aGUgY29udHJvbCBmbG93IHByb2ZpbGVyIHdhcyBlbmFibGVkIHdoZW4gcHJvZmls
aW5nIAorICAgICAgICB3YXMgdHVybmVkIG9uIGZyb20gdGhlIFdlYiBJbnNwZWN0b3IuIEJ1dCwg
SlNDIGFsbG93cyBmb3IgQ29udHJvbCAKKyAgICAgICAgRmxvdyBwcm9maWxpbmcgdG8gYmUgdHVy
bmVkIG9uIHdpdGhvdXQgVHlwZSBQcm9maWxpbmcsIHNvIHdlIG5lZWQgCisgICAgICAgIHRvIGVu
c3VyZSB0aGUgQ29udHJvbCBGbG93IHByb2ZpbGVyIGhhcyBhbGwgdGhlIGRhdGEgaXQgbmVlZHMu
CisKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpT
Qzo6Q29uZGl0aW9uYWxOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpJZkVsc2VO
b2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpXaGlsZU5vZGU6OmVtaXRCeXRlY29k
ZSk6CisgICAgICAgIChKU0M6OkZvck5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6
OkZvckluTm9kZTo6ZW1pdE11bHRpTG9vcEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6Rm9yT2ZO
b2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpUcnlOb2RlOjplbWl0Qnl0ZWNvZGUp
OgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChmdW5jdGlvbkhhc0Jhc2ljQmxvY2tFeGVj
dXRlZCk6CisgICAgICAgICogcGFyc2VyL0FTVEJ1aWxkZXIuaDoKKyAgICAgICAgKEpTQzo6QVNU
QnVpbGRlcjo6c2V0U3RhcnRPZmZzZXQpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAg
ICAgICAoSlNDOjpOb2RlOjpzZXRTdGFydE9mZnNldCk6CisgICAgICAgICogcGFyc2VyL1BhcnNl
ci5jcHA6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUJsb2NrU3RhdGVt
ZW50KToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlU3RhdGVtZW50KToK
KyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlTWVtYmVyRXhwcmVzc2lvbik6
CisgICAgICAgIEZvciB0aGUgdmFyaW91cyBmdW5jdGlvbiBjYWxsIEFTVCBub2RlcywgdGhlaXIg
bV9wb3NpdGlvbiBtZW1iZXIgCisgICAgICAgIHZhcmlhYmxlIGlzIG5vdyB0aGUgc3RhcnQgb2Yg
dGhlIGVudGlyZSBmdW5jdGlvbiBjYWxsIGV4cHJlc3Npb24gCisgICAgICAgIGFuZCBub3QgYXQg
dGhlIHN0YXJ0IG9mIHRoZSBvcGVuIHBhcmVuIG9mIHRoZSBhcmd1bWVudHMgbGlzdC4KKworICAg
ICAgICAqIHJ1bnRpbWUvQmFzaWNCbG9ja0xvY2F0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6QmFz
aWNCbG9ja0xvY2F0aW9uOjpnZXRFeGVjdXRlZFJhbmdlcyk6CisgICAgICAgICogcnVudGltZS9D
b250cm9sRmxvd1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Q29udHJvbEZsb3dQcm9maWxl
cjo6Z2V0QmFzaWNCbG9ja3NGb3JTb3VyY2VJRCk6CisgICAgICAgIEZ1bmN0aW9uIHJhbmdlcyBp
bnNlcnRlZCBhcyBnYXBzIHNob3VsZCBmb2xsb3cgdGhlIHNhbWUgY3JpdGVyaWEKKyAgICAgICAg
dGhhdCB0aGUgYnl0ZWNvZGUgZ2VuZXJhdG9yIHVzZXMgdG8gZW5zdXJlIHRoYXQgYmFzaWMgYmxv
Y2tzCisgICAgICAgIHN0YXJ0IGFuZCBlbmQgb2Zmc2V0cyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZl
LgorCisgICAgICAgICogdGVzdHMvY29udHJvbEZsb3dQcm9maWxlci9icmFjZS1sb2NhdGlvbi5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToKKyAgICAgICAgKGJheik6
CisgICAgICAgICh0ZXN0SWYpOgorICAgICAgICAodGVzdEZvclJlZ3VsYXIpOgorICAgICAgICAo
dGVzdEZvckluKToKKyAgICAgICAgKHRlc3RGb3JPZik6CisgICAgICAgICh0ZXN0V2hpbGUpOgor
ICAgICAgICAodGVzdElmTm9CcmFjZXMpOgorICAgICAgICAodGVzdEZvclJlZ3VsYXJOb0JyYWNl
cyk6CisgICAgICAgICh0ZXN0Rm9ySW5Ob0JyYWNlcyk6CisgICAgICAgICh0ZXN0Rm9yT2ZOb0Jy
YWNlcyk6CisgICAgICAgICh0ZXN0V2hpbGVOb0JyYWNlcyk6CisgICAgICAgICogdGVzdHMvY29u
dHJvbEZsb3dQcm9maWxlci9jb25kaXRpb25hbC1leHByZXNzaW9uLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAgICAoYmF6KToKKyAgICAgICAgKHRlc3RD
b25kaXRpb25hbEJhc2ljKToKKyAgICAgICAgKHRlc3RDb25kaXRpb25hbEZ1bmN0aW9uKToKKwog
MjAxNS0wMi0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIERG
RyBjYWxsIGNvZGVnZW4gc2hvdWxkIHJlc29sdmUgdGhlIGNhbGxlZSBvcGVyYW5kIGFzIGxhdGUg
YXMgcG9zc2libGUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAxNzk3ODMpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyNyw2
ICsxMTI3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkhhcwogICAg
IFJFTEVBU0VfQVNTRVJUKGV4ZWMtPmFyZ3VtZW50KDEpLmlzU3RyaW5nKCkpOwogICAgIFN0cmlu
ZyBzdWJzdHJpbmcgPSBleGVjLT5hcmd1bWVudCgxKS5nZXRTdHJpbmcoZXhlYyk7CiAgICAgU3Ry
aW5nIHNvdXJjZUNvZGVUZXh0ID0gZXhlY3V0YWJsZS0+c291cmNlKCkudG9TdHJpbmcoKTsKKyAg
ICBSRUxFQVNFX0FTU0VSVChzb3VyY2VDb2RlVGV4dC5jb250YWlucyhzdWJzdHJpbmcpKTsKICAg
ICBpbnQgb2Zmc2V0ID0gc291cmNlQ29kZVRleHQuZmluZChzdWJzdHJpbmcpICsgZXhlY3V0YWJs
ZS0+c291cmNlKCkuc3RhcnRPZmZzZXQoKTsKICAgICAKICAgICBib29sIGhhc0V4ZWN1dGVkID0g
ZXhlYy0+dm0oKS5jb250cm9sRmxvd1Byb2ZpbGVyKCktPmhhc0Jhc2ljQmxvY2tBdFRleHRPZmZz
ZXRCZWVuRXhlY3V0ZWQob2Zmc2V0LCBleGVjdXRhYmxlLT5zb3VyY2VJRCgpLCBleGVjLT52bSgp
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3Bw
CShyZXZpc2lvbiAxNzk3ODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA1Niw3ICs0MDU2LDcgQEAgdm9pZCBDb2Rl
QmxvY2s6Omluc2VydEJhc2ljQmxvY2tCb3VuZGFyaQogICAgICAgICBpZiAoaSArIDEgPCBvZmZz
ZXRzTGVuZ3RoKSB7CiAgICAgICAgICAgICBzaXplX3QgZW5kSWR4ID0gYnl0ZWNvZGVPZmZzZXRz
W2kgKyAxXTsKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHZtKCktPmludGVycHJldGVyLT5n
ZXRPcGNvZGVJRChpbnN0cnVjdGlvbnNbZW5kSWR4XS51Lm9wY29kZSkgPT0gb3BfcHJvZmlsZV9j
b250cm9sX2Zsb3cpOwotICAgICAgICAgICAgYmFzaWNCbG9ja0VuZE9mZnNldCA9IGluc3RydWN0
aW9uc1tlbmRJZHggKyAxXS51Lm9wZXJhbmQ7CisgICAgICAgICAgICBiYXNpY0Jsb2NrRW5kT2Zm
c2V0ID0gaW5zdHJ1Y3Rpb25zW2VuZElkeCArIDFdLnUub3BlcmFuZCAtIDE7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICBiYXNpY0Jsb2NrRW5kT2Zmc2V0ID0gbV9zb3VyY2VPZmZzZXQg
KyBtX293bmVyRXhlY3V0YWJsZS0+c291cmNlKCkubGVuZ3RoKCkgLSAxOyAvLyBPZmZzZXQgYmVm
b3JlIHRoZSBjbG9zaW5nIGJyYWNlLgogICAgICAgICAgICAgYmFzaWNCbG9ja1N0YXJ0T2Zmc2V0
ID0gc3RkOjptaW4oYmFzaWNCbG9ja1N0YXJ0T2Zmc2V0LCBiYXNpY0Jsb2NrRW5kT2Zmc2V0KTsg
Ly8gU29tZSBzdGFydCBvZmZzZXRzIG1heSBiZSBhdCB0aGUgY2xvc2luZyBicmFjZSwgZW5zdXJl
IGl0IGlzIHRoZSBvZmZzZXQgYmVmb3JlLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9u
IDE3OTc4MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVH
ZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjEsNyArMzYxLDcgQEAgQnl0ZWNvZGVH
ZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJgogCiAgICAgbV9zeW1ib2xUYWJsZS0+c2V0
Q2FwdHVyZUVuZCh2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChjb2RlQmxvY2stPm1fbnVtVmFycyku
b2Zmc2V0KCkpOwogCi0gICAgYm9vbCBjYW5MYXppbHlDcmVhdGVGdW5jdGlvbnMgPSAhZnVuY3Rp
b25Ob2RlLT5uZWVkc0FjdGl2YXRpb25Gb3JNb3JlVGhhblZhcmlhYmxlcygpICYmICFtX3Nob3Vs
ZEVtaXREZWJ1Z0hvb2tzICYmICFtX3ZtLT50eXBlUHJvZmlsZXIoKTsKKyAgICBib29sIGNhbkxh
emlseUNyZWF0ZUZ1bmN0aW9ucyA9ICFmdW5jdGlvbk5vZGUtPm5lZWRzQWN0aXZhdGlvbkZvck1v
cmVUaGFuVmFyaWFibGVzKCkgJiYgIW1fc2hvdWxkRW1pdERlYnVnSG9va3MgJiYgIW1fdm0tPnR5
cGVQcm9maWxlcigpICYmICFtX3ZtLT5jb250cm9sRmxvd1Byb2ZpbGVyKCk7CiAgICAgbV9maXJz
dExhenlGdW5jdGlvbiA9IGNvZGVCbG9jay0+bV9udW1WYXJzOwogICAgIGlmICghc2hvdWxkQ2Fw
dHVyZUFsbFRoZVRoaW5ncykgewogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZ1bmN0
aW9uU3RhY2suc2l6ZSgpOyArK2kpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHJldmlzaW9uIDE3OTc4MykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTQ0NCwxMiArMTQ0NCwxMiBAQCBSZWdpc3RlcklEKiBDb25kaXRpb25h
bE5vZGU6OmVtaXRCeXRlY29kCiAgICAgZ2VuZXJhdG9yLmVtaXRKdW1wKGFmdGVyRWxzZS5nZXQo
KSk7CiAKICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGJlZm9yZUVsc2UuZ2V0KCkpOwotICAgIGdl
bmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fZXhwcjItPnN0YXJ0T2Zmc2V0KCkpOwor
ICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fZXhwcjEtPmVuZE9mZnNldCgp
ICsgMSk7CiAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKG5ld0RzdC5nZXQoKSwgbV9leHByMik7CiAK
ICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGFmdGVyRWxzZS5nZXQoKSk7CiAKLSAgICBnZW5lcmF0
b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX2V4cHIyLT5lbmRPZmZzZXQoKSk7CisgICAgZ2Vu
ZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9leHByMi0+ZW5kT2Zmc2V0KCkgKyAxKTsK
IAogICAgIHJldHVybiBuZXdEc3QuZ2V0KCk7CiB9CkBAIC0xODk3LDEyICsxODk3LDEzIEBAIHZv
aWQgSWZFbHNlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2UKICAgICBnZW5lcmF0b3IuZW1p
dExhYmVsKGJlZm9yZUVsc2UuZ2V0KCkpOwogCiAgICAgaWYgKG1fZWxzZUJsb2NrKSB7Ci0gICAg
ICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1faWZCbG9jay0+ZW5kT2Zmc2V0
KCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX2lmQmxvY2st
PmVuZE9mZnNldCgpICsgKG1faWZCbG9jay0+aXNCbG9jaygpID8gMSA6IDApKTsKICAgICAgICAg
Z2VuZXJhdG9yLmVtaXROb2RlKGRzdCwgbV9lbHNlQmxvY2spOwogICAgIH0KIAogICAgIGdlbmVy
YXRvci5lbWl0TGFiZWwoYWZ0ZXJFbHNlLmdldCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdFByb2Zp
bGVDb250cm9sRmxvdyhtX2Vsc2VCbG9jayA/IG1fZWxzZUJsb2NrLT5lbmRPZmZzZXQoKSA6IG1f
aWZCbG9jay0+ZW5kT2Zmc2V0KCkpOworICAgIFN0YXRlbWVudE5vZGUqIGVuZGluZ0Jsb2NrID0g
bV9lbHNlQmxvY2sgPyBtX2Vsc2VCbG9jayA6IG1faWZCbG9jazsKKyAgICBnZW5lcmF0b3IuZW1p
dFByb2ZpbGVDb250cm9sRmxvdyhlbmRpbmdCbG9jay0+ZW5kT2Zmc2V0KCkgKyAoZW5kaW5nQmxv
Y2stPmlzQmxvY2soKSA/IDEgOiAwKSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSBEb1doaWxlTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBA
IC0xOTQ4LDcgKzE5NDksNyBAQCB2b2lkIFdoaWxlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuCiAKICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHNjb3BlLT5icmVha1RhcmdldCgpKTsKIAot
ICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KGVuZE9mZnNldCgpKTsKKyAgICBn
ZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3N0YXRlbWVudC0+ZW5kT2Zmc2V0KCkg
KyAobV9zdGF0ZW1lbnQtPmlzQmxvY2soKSA/IDEgOiAwKSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSBGb3JOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCkBAIC0xOTgzLDcgKzE5ODQsNyBAQCB2b2lkIEZvck5vZGU6OmVtaXRCeXRlY29k
ZShCeXRlY29kZUdlbmVyCiAgICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcCh0b3BPZkxvb3AuZ2V0
KCkpOwogCiAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzY29wZS0+YnJlYWtUYXJnZXQoKSk7Ci0g
ICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3coZW5kT2Zmc2V0KCkpOworICAgIGdl
bmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fc3RhdGVtZW50LT5lbmRPZmZzZXQoKSAr
IChtX3N0YXRlbWVudC0+aXNCbG9jaygpID8gMSA6IDApKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIEZvckluTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KQEAgLTIwODYsNiArMjA4Nyw4IEBAIHZvaWQgRm9ySW5Ob2RlOjplbWl0TXVsdGlM
b29wQnl0ZWNvZGUoQnkKICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoYmFzZS5nZXQoKSwgbV9leHBy
KTsKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gbG9jYWwgPSB0aGlzLT50cnlHZXRCb3VuZExvY2Fs
KGdlbmVyYXRvcik7CiAKKyAgICBpbnQgcHJvZmlsZXJTdGFydE9mZnNldCA9IG1fc3RhdGVtZW50
LT5zdGFydE9mZnNldCgpOworICAgIGludCBwcm9maWxlckVuZE9mZnNldCA9IG1fc3RhdGVtZW50
LT5lbmRPZmZzZXQoKSArIChtX3N0YXRlbWVudC0+aXNCbG9jaygpID8gMSA6IDApOwogICAgIC8v
IEluZGV4ZWQgcHJvcGVydHkgbG9vcC4KICAgICB7CiAgICAgICAgIExhYmVsU2NvcGVQdHIgc2Nv
cGUgPSBnZW5lcmF0b3IubmV3TGFiZWxTY29wZShMYWJlbFNjb3BlOjpMb29wKTsKQEAgLTIxMDcs
MTMgKzIxMTAsMTMgQEAgdm9pZCBGb3JJbk5vZGU6OmVtaXRNdWx0aUxvb3BCeXRlY29kZShCeQog
ICAgICAgICBnZW5lcmF0b3IuZW1pdFRvSW5kZXhTdHJpbmcocHJvcGVydHlOYW1lLmdldCgpLCBp
LmdldCgpKTsKICAgICAgICAgdGhpcy0+ZW1pdExvb3BIZWFkZXIoZ2VuZXJhdG9yLCBwcm9wZXJ0
eU5hbWUuZ2V0KCkpOwogCi0gICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93
KG1fc3RhdGVtZW50LT5zdGFydE9mZnNldCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9m
aWxlQ29udHJvbEZsb3cocHJvZmlsZXJTdGFydE9mZnNldCk7CiAKICAgICAgICAgZ2VuZXJhdG9y
LnB1c2hJbmRleGVkRm9ySW5TY29wZShsb2NhbC5nZXQoKSwgaS5nZXQoKSk7CiAgICAgICAgIGdl
bmVyYXRvci5lbWl0Tm9kZShkc3QsIG1fc3RhdGVtZW50KTsKICAgICAgICAgZ2VuZXJhdG9yLnBv
cEluZGV4ZWRGb3JJblNjb3BlKGxvY2FsLmdldCgpKTsKIAotICAgICAgICBnZW5lcmF0b3IuZW1p
dFByb2ZpbGVDb250cm9sRmxvdyhtX3N0YXRlbWVudC0+ZW5kT2Zmc2V0KCkpOworICAgICAgICBn
ZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhwcm9maWxlckVuZE9mZnNldCk7CiAKICAg
ICAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzY29wZS0+Y29udGludWVUYXJnZXQoKSk7CiAgICAg
ICAgIGdlbmVyYXRvci5lbWl0SW5jKGkuZ2V0KCkpOwpAQCAtMjE0NSwxMyArMjE0OCwxMyBAQCB2
b2lkIEZvckluTm9kZTo6ZW1pdE11bHRpTG9vcEJ5dGVjb2RlKEJ5CiAKICAgICAgICAgdGhpcy0+
ZW1pdExvb3BIZWFkZXIoZ2VuZXJhdG9yLCBwcm9wZXJ0eU5hbWUuZ2V0KCkpOwogCi0gICAgICAg
IGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fc3RhdGVtZW50LT5zdGFydE9mZnNl
dCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cocHJvZmlsZXJT
dGFydE9mZnNldCk7CiAKICAgICAgICAgZ2VuZXJhdG9yLnB1c2hTdHJ1Y3R1cmVGb3JJblNjb3Bl
KGxvY2FsLmdldCgpLCBpLmdldCgpLCBwcm9wZXJ0eU5hbWUuZ2V0KCksIHN0cnVjdHVyZUVudW1l
cmF0b3IuZ2V0KCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX3N0YXRlbWVu
dCk7CiAgICAgICAgIGdlbmVyYXRvci5wb3BTdHJ1Y3R1cmVGb3JJblNjb3BlKGxvY2FsLmdldCgp
KTsKIAotICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3N0YXRlbWVu
dC0+ZW5kT2Zmc2V0KCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxv
dyhwcm9maWxlckVuZE9mZnNldCk7CiAKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzY29w
ZS0+Y29udGludWVUYXJnZXQoKSk7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0SW5jKGkuZ2V0KCkp
OwpAQCAtMjE4Miw3ICsyMTg1LDcgQEAgdm9pZCBGb3JJbk5vZGU6OmVtaXRNdWx0aUxvb3BCeXRl
Y29kZShCeQogCiAgICAgICAgIHRoaXMtPmVtaXRMb29wSGVhZGVyKGdlbmVyYXRvciwgcHJvcGVy
dHlOYW1lLmdldCgpKTsKIAotICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxv
dyhtX3N0YXRlbWVudC0+c3RhcnRPZmZzZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJv
ZmlsZUNvbnRyb2xGbG93KHByb2ZpbGVyU3RhcnRPZmZzZXQpOwogCiAgICAgICAgIGdlbmVyYXRv
ci5lbWl0Tm9kZShkc3QsIG1fc3RhdGVtZW50KTsKIApAQCAtMjIwMyw3ICsyMjA2LDcgQEAgdm9p
ZCBGb3JJbk5vZGU6OmVtaXRNdWx0aUxvb3BCeXRlY29kZShCeQogCiAgICAgZ2VuZXJhdG9yLmVt
aXREZWJ1Z0hvb2soV2lsbEV4ZWN1dGVTdGF0ZW1lbnQsIGZpcnN0TGluZSgpLCBzdGFydE9mZnNl
dCgpLCBsaW5lU3RhcnRPZmZzZXQoKSk7CiAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChlbmQuZ2V0
KCkpOwotICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fc3RhdGVtZW50LT5l
bmRPZmZzZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cocHJvZmls
ZXJFbmRPZmZzZXQpOwogfQogCiB2b2lkIEZvckluTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKQEAgLTIyNTksNyArMjI2Miw3
IEBAIHZvaWQgRm9yT2ZOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW4KICAgICAgICAgZ2Vu
ZXJhdG9yLmVtaXROb2RlKGRzdCwgbV9zdGF0ZW1lbnQpOwogICAgIH07CiAgICAgZ2VuZXJhdG9y
LmVtaXRFbnVtZXJhdGlvbih0aGlzLCBtX2V4cHIsIGV4dHJhY3Rvcik7Ci0gICAgZ2VuZXJhdG9y
LmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPmVuZE9mZnNldCgpKTsKKyAgICBn
ZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3N0YXRlbWVudC0+ZW5kT2Zmc2V0KCkg
KyAobV9zdGF0ZW1lbnQtPmlzQmxvY2soKSA/IDEgOiAwKSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSBDb250aW51ZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCkBAIC0yNjA1LDcgKzI2MDgsNyBAQCB2b2lkIFRyeU5vZGU6OmVtaXRCeXRlY29k
ZShCeXRlY29kZUdlbmVyCiAgICAgICAgIH0KIAogICAgICAgICBnZW5lcmF0b3IuZW1pdFB1c2hD
YXRjaFNjb3BlKGdlbmVyYXRvci5zY29wZVJlZ2lzdGVyKCksIG1fZXhjZXB0aW9uSWRlbnQsIGV4
Y2VwdGlvblJlZ2lzdGVyLmdldCgpLCBEb250RGVsZXRlKTsKLSAgICAgICAgZ2VuZXJhdG9yLmVt
aXRQcm9maWxlQ29udHJvbEZsb3cobV90cnlCbG9jay0+ZW5kT2Zmc2V0KCkpOworICAgICAgICBn
ZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3RyeUJsb2NrLT5lbmRPZmZzZXQoKSAr
IDEpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX2NhdGNoQmxvY2spOwogICAg
ICAgICBnZW5lcmF0b3IuZW1pdFBvcFNjb3BlKGdlbmVyYXRvci5zY29wZVJlZ2lzdGVyKCkpOwog
ICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGNhdGNoRW5kTGFiZWwuZ2V0KCkpOwpAQCAtMjYx
OCwxMiArMjYyMSwxMiBAQCB2b2lkIFRyeU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
CiAKICAgICAgICAgUmVmUHRyPExhYmVsPiBmaW5hbGx5RW5kTGFiZWwgPSBnZW5lcmF0b3IubmV3
TGFiZWwoKTsKIAotICAgICAgICBpbnQgZmluYWxseVN0YXJ0T2Zmc2V0ID0gbV9jYXRjaEJsb2Nr
ID8gbV9jYXRjaEJsb2NrLT5lbmRPZmZzZXQoKSA6IG1fdHJ5QmxvY2stPmVuZE9mZnNldCgpOwor
ICAgICAgICBpbnQgZmluYWxseVN0YXJ0T2Zmc2V0ID0gbV9jYXRjaEJsb2NrID8gbV9jYXRjaEJs
b2NrLT5lbmRPZmZzZXQoKSArIDEgOiBtX3RyeUJsb2NrLT5lbmRPZmZzZXQoKSArIDE7CiAKICAg
ICAgICAgLy8gTm9ybWFsIHBhdGg6IHJ1biB0aGUgZmluYWxseSBjb2RlLCBhbmQganVtcCB0byB0
aGUgZW5kLgogICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhmaW5hbGx5
U3RhcnRPZmZzZXQpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX2ZpbmFsbHlC
bG9jayk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fZmluYWxs
eUJsb2NrLT5lbmRPZmZzZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRy
b2xGbG93KG1fZmluYWxseUJsb2NrLT5lbmRPZmZzZXQoKSArIDEpOwogICAgICAgICBnZW5lcmF0
b3IuZW1pdEp1bXAoZmluYWxseUVuZExhYmVsLmdldCgpKTsKIAogICAgICAgICAvLyBVbmNhdWdo
dCBleGNlcHRpb24gcGF0aDogaW52b2tlIHRoZSBmaW5hbGx5IGJsb2NrLCB0aGVuIHJlLXRocm93
IHRoZSBleGNlcHRpb24uCkBAIC0yNjMzLDkgKzI2MzYsOSBAQCB2b2lkIFRyeU5vZGU6OmVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyCiAgICAgICAgIGdlbmVyYXRvci5lbWl0VGhyb3codGVtcEV4
Y2VwdGlvblJlZ2lzdGVyLmdldCgpKTsKIAogICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGZp
bmFsbHlFbmRMYWJlbC5nZXQoKSk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRy
b2xGbG93KG1fZmluYWxseUJsb2NrLT5lbmRPZmZzZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5l
bWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fZmluYWxseUJsb2NrLT5lbmRPZmZzZXQoKSArIDEpOwog
ICAgIH0gZWxzZQotICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX2Nh
dGNoQmxvY2stPmVuZE9mZnNldCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29u
dHJvbEZsb3cobV9jYXRjaEJsb2NrLT5lbmRPZmZzZXQoKSArIDEpOwogCiB9CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCShyZXZpc2lvbiAxNzk3ODMp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtNzEzLDYgKzcxMywxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBub2RlLT5z
ZXRTdGFydE9mZnNldChvZmZzZXQpOwogICAgIH0KKworICAgIHZvaWQgc2V0U3RhcnRPZmZzZXQo
Tm9kZSogbm9kZSwgaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIG5vZGUtPnNldFN0YXJ0T2Zm
c2V0KG9mZnNldCk7CisgICAgfQogICAgIAogcHJpdmF0ZToKICAgICBzdHJ1Y3QgU2NvcGUgewpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAkocmV2aXNpb24gMTc5NzgzKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzIsNiArMTMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGludCBsaW5lU3RhcnRP
ZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uLmxpbmVTdGFydE9mZnNldDsgfQogICAg
ICAgICBjb25zdCBKU1RleHRQb3NpdGlvbiYgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bv
c2l0aW9uOyB9CiAgICAgICAgIHZvaWQgc2V0RW5kT2Zmc2V0KGludCBvZmZzZXQpIHsgbV9lbmRP
ZmZzZXQgPSBvZmZzZXQ7IH0KKyAgICAgICAgdm9pZCBzZXRTdGFydE9mZnNldChpbnQgb2Zmc2V0
KSB7IG1fcG9zaXRpb24ub2Zmc2V0ID0gb2Zmc2V0OyB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAg
ICAgIEpTVGV4dFBvc2l0aW9uIG1fcG9zaXRpb247CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1BhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuY3BwCShyZXZpc2lvbiAxNzk3ODMpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1BhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMTMsMjEgKzExMTMs
MjQgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZQogewogICAgIEFT
U0VSVChtYXRjaChPUEVOQlJBQ0UpKTsKICAgICBKU1Rva2VuTG9jYXRpb24gbG9jYXRpb24odG9r
ZW5Mb2NhdGlvbigpKTsKKyAgICBpbnQgc3RhcnRPZmZzZXQgPSBtX3Rva2VuLm1fZGF0YS5vZmZz
ZXQ7CiAgICAgaW50IHN0YXJ0ID0gdG9rZW5MaW5lKCk7CiAgICAgbmV4dCgpOwogICAgIGlmICht
YXRjaChDTE9TRUJSQUNFKSkgewotICAgICAgICB1bnNpZ25lZCBlbmRPZmZzZXQgPSBtX2xleGVy
LT5jdXJyZW50T2Zmc2V0KCk7CisgICAgICAgIGludCBlbmRPZmZzZXQgPSBtX3Rva2VuLm1fZGF0
YS5vZmZzZXQ7CiAgICAgICAgIG5leHQoKTsKICAgICAgICAgVHJlZVN0YXRlbWVudCByZXN1bHQg
PSBjb250ZXh0LmNyZWF0ZUJsb2NrU3RhdGVtZW50KGxvY2F0aW9uLCAwLCBzdGFydCwgbV9sYXN0
VG9rZW5FbmRQb3NpdGlvbi5saW5lKTsKKyAgICAgICAgY29udGV4dC5zZXRTdGFydE9mZnNldChy
ZXN1bHQsIHN0YXJ0T2Zmc2V0KTsKICAgICAgICAgY29udGV4dC5zZXRFbmRPZmZzZXQocmVzdWx0
LCBlbmRPZmZzZXQpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBUcmVlU291
cmNlRWxlbWVudHMgc3VidHJlZSA9IHBhcnNlU291cmNlRWxlbWVudHMoY29udGV4dCwgRG9udENo
ZWNrRm9yU3RyaWN0TW9kZSk7CiAgICAgZmFpbElmRmFsc2Uoc3VidHJlZSwgIkNhbm5vdCBwYXJz
ZSB0aGUgYm9keSBvZiB0aGUgYmxvY2sgc3RhdGVtZW50Iik7CiAgICAgbWF0Y2hPckZhaWwoQ0xP
U0VCUkFDRSwgIkV4cGVjdGVkIGEgY2xvc2luZyAnfScgYXQgdGhlIGVuZCBvZiBhIGJsb2NrIHN0
YXRlbWVudCIpOwotICAgIHVuc2lnbmVkIGVuZE9mZnNldCA9IG1fbGV4ZXItPmN1cnJlbnRPZmZz
ZXQoKTsKKyAgICBpbnQgZW5kT2Zmc2V0ID0gbV90b2tlbi5tX2RhdGEub2Zmc2V0OwogICAgIG5l
eHQoKTsKICAgICBUcmVlU3RhdGVtZW50IHJlc3VsdCA9IGNvbnRleHQuY3JlYXRlQmxvY2tTdGF0
ZW1lbnQobG9jYXRpb24sIHN1YnRyZWUsIHN0YXJ0LCBtX2xhc3RUb2tlbkVuZFBvc2l0aW9uLmxp
bmUpOworICAgIGNvbnRleHQuc2V0U3RhcnRPZmZzZXQocmVzdWx0LCBzdGFydE9mZnNldCk7CiAg
ICAgY29udGV4dC5zZXRFbmRPZmZzZXQocmVzdWx0LCBlbmRPZmZzZXQpOwogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CkBAIC0xMTQxLDkgKzExNDQsMTEgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWls
ZGVyPiBUcmVlU3RhdGVtZQogICAgIGludCBub25Ucml2aWFsRXhwcmVzc2lvbkNvdW50ID0gMDsK
ICAgICBmYWlsSWZTdGFja092ZXJmbG93KCk7CiAgICAgVHJlZVN0YXRlbWVudCByZXN1bHQgPSAw
OworICAgIGJvb2wgc2hvdWxkU2V0RW5kT2Zmc2V0ID0gdHJ1ZTsKICAgICBzd2l0Y2ggKG1fdG9r
ZW4ubV90eXBlKSB7CiAgICAgY2FzZSBPUEVOQlJBQ0U6CiAgICAgICAgIHJlc3VsdCA9IHBhcnNl
QmxvY2tTdGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAgIHNob3VsZFNldEVuZE9mZnNldCA9IGZh
bHNlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZBUjoKICAgICAgICAgcmVzdWx0ID0gcGFy
c2VWYXJEZWNsYXJhdGlvbihjb250ZXh0KTsKQEAgLTEyMjYsNyArMTIzMSw3IEBAIHRlbXBsYXRl
IDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWUKICAgICAgICAgYnJlYWs7CiAgICAgfQog
Ci0gICAgaWYgKHJlc3VsdCkKKyAgICBpZiAocmVzdWx0ICYmIHNob3VsZFNldEVuZE9mZnNldCkK
ICAgICAgICAgY29udGV4dC5zZXRFbmRPZmZzZXQocmVzdWx0LCBtX2xhc3RUb2tlbkVuZFBvc2l0
aW9uLm9mZnNldCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTIzMTAsNiArMjMxNSw3IEBA
IHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3MKICAgICBUcmVlRXhwcmVz
c2lvbiBiYXNlID0gMDsKICAgICBKU1RleHRQb3NpdGlvbiBleHByZXNzaW9uU3RhcnQgPSB0b2tl
blN0YXJ0UG9zaXRpb24oKTsKICAgICBpbnQgbmV3Q291bnQgPSAwOworICAgIEpTVG9rZW5Mb2Nh
dGlvbiBzdGFydExvY2F0aW9uID0gdG9rZW5Mb2NhdGlvbigpOwogICAgIEpTVG9rZW5Mb2NhdGlv
biBsb2NhdGlvbjsKICAgICB3aGlsZSAobWF0Y2goTkVXKSkgewogICAgICAgICBuZXh0KCk7CkBA
IC0yMzQ4LDcgKzIzNTQsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHBy
ZXNzCiAgICAgICAgICAgICAgICAgSlNUZXh0UG9zaXRpb24gZXhwcmVzc2lvbkVuZCA9IGxhc3RU
b2tlbkVuZFBvc2l0aW9uKCk7CiAgICAgICAgICAgICAgICAgVHJlZUFyZ3VtZW50cyBhcmd1bWVu
dHMgPSBwYXJzZUFyZ3VtZW50cyhjb250ZXh0LCBBbGxvd1NwcmVhZCk7CiAgICAgICAgICAgICAg
ICAgZmFpbElmRmFsc2UoYXJndW1lbnRzLCAiQ2Fubm90IHBhcnNlIGNhbGwgYXJndW1lbnRzIik7
Ci0gICAgICAgICAgICAgICAgYmFzZSA9IGNvbnRleHQubWFrZUZ1bmN0aW9uQ2FsbE5vZGUobG9j
YXRpb24sIGJhc2UsIGFyZ3VtZW50cywgZXhwcmVzc2lvblN0YXJ0LCBleHByZXNzaW9uRW5kLCBs
YXN0VG9rZW5FbmRQb3NpdGlvbigpKTsKKyAgICAgICAgICAgICAgICBiYXNlID0gY29udGV4dC5t
YWtlRnVuY3Rpb25DYWxsTm9kZShzdGFydExvY2F0aW9uLCBiYXNlLCBhcmd1bWVudHMsIGV4cHJl
c3Npb25TdGFydCwgZXhwcmVzc2lvbkVuZCwgbGFzdFRva2VuRW5kUG9zaXRpb24oKSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBtX25vbkxIU0NvdW50ID0gbm9uTEhTQ291bnQ7CiAgICAg
ICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jhc2lj
QmxvY2tMb2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQmFzaWNCbG9ja0xvY2F0aW9uLmNwcAkocmV2aXNpb24gMTc5NzgzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmFzaWNCbG9ja0xvY2F0aW9uLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjIsOCArNjIsOCBAQCBWZWN0b3I8c3RkOjpwYWlyPGludCwgaW50Pj4gQmFzaWNC
bG9ja0xvCiAgICAgICAgICAgICAgICAgbWluSWR4ID0gaWR4OwogICAgICAgICAgICAgfQogICAg
ICAgICB9Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQoR2FwKG5leHRSYW5nZVN0YXJ0LCBtaW5HYXAu
Zmlyc3QpKTsKLSAgICAgICAgbmV4dFJhbmdlU3RhcnQgPSBtaW5HYXAuc2Vjb25kOworICAgICAg
ICByZXN1bHQuYXBwZW5kKEdhcChuZXh0UmFuZ2VTdGFydCwgbWluR2FwLmZpcnN0IC0gMSkpOwor
ICAgICAgICBuZXh0UmFuZ2VTdGFydCA9IG1pbkdhcC5zZWNvbmQgKyAxOwogICAgICAgICBnYXBz
LnJlbW92ZShtaW5JZHgpOwogICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29udHJvbEZsb3dQcm9maWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxlci5jcHAJKHJldmlzaW9uIDE3OTc4
MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnRyb2xGbG93UHJvZmlsZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MSw3ICs5MSw3IEBAIFZlY3RvcjxCYXNpY0Jsb2NrUmFu
Z2U+IENvbnRyb2xGbG93UHJvZmkKICAgICAgICAgQmFzaWNCbG9ja1JhbmdlIHJhbmdlOwogICAg
ICAgICByYW5nZS5tX2hhc0V4ZWN1dGVkID0gc3RkOjpnZXQ8MD4oZnVuY3Rpb25SYW5nZSk7CiAg
ICAgICAgIHJhbmdlLm1fc3RhcnRPZmZzZXQgPSBzdGF0aWNfY2FzdDxpbnQ+KHN0ZDo6Z2V0PDE+
KGZ1bmN0aW9uUmFuZ2UpKTsKLSAgICAgICAgcmFuZ2UubV9lbmRPZmZzZXQgPSBzdGF0aWNfY2Fz
dDxpbnQ+KHN0ZDo6Z2V0PDI+KGZ1bmN0aW9uUmFuZ2UpICsgMSk7CisgICAgICAgIHJhbmdlLm1f
ZW5kT2Zmc2V0ID0gc3RhdGljX2Nhc3Q8aW50PihzdGQ6OmdldDwyPihmdW5jdGlvblJhbmdlKSk7
CiAgICAgICAgIHJlc3VsdC5hcHBlbmQocmFuZ2UpOwogICAgIH0KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2NvbnRyb2xGbG93UHJvZmlsZXIvYnJhY2UtbG9jYXRpb24uanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2NvbnRyb2xGbG93UHJv
ZmlsZXIvYnJhY2UtbG9jYXRpb24uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvY29udHJvbEZsb3dQcm9maWxlci9icmFjZS1sb2NhdGlvbi5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDE1NSBAQAorbG9hZCgiLi9kcml2ZXIvZHJpdmVyLmpzIik7CisK
K2Z1bmN0aW9uIGZvbygpIHt9CitmdW5jdGlvbiBiYXIoKSB7fQorZnVuY3Rpb24gYmF6KCkge30K
K2Z1bmN0aW9uIHRlc3RJZih4KSB7CisgICAgaWYgKHggPCAxMCkgeyBmb28oKTsgfSBlbHNlIGlm
ICh4IDwgMjApIHsgYmFyKCk7IH0gZWxzZSB7IGJheigpIH0KK30KKworZnVuY3Rpb24gdGVzdEZv
clJlZ3VsYXIoeCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgeDsgaSsrKSB7IGZvbygpOyB9
IGJhcigpOworfQorCitmdW5jdGlvbiB0ZXN0Rm9ySW4oeCkgeworICAgIGZvciAodmFyIGkgaW4g
eCkgeyBmb28oKTsgfSBiYXIoKTsKK30KKworZnVuY3Rpb24gdGVzdEZvck9mKHgpIHsKKyAgICBm
b3IgKHZhciBpIG9mIHgpIHsgZm9vKCk7IH0gYmFyKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RXaGls
ZSh4KSB7CisgICAgdmFyIGkgPSAwOyB3aGlsZSAoaSsrIDwgeCkgeyBmb28oKTsgfSBiYXIoKTsK
K30KKwordGVzdElmKDkpOworLy8gTm90ZSwgdGhlIGNoZWNrIHdpbGwgYmUgYWdhaW5zdCB0aGUg
YmFzaWMgYmxvY2sgdGhhdCBjb250YWlucyB0aGUgZmlyc3QgbWF0Y2hlZCBjaGFyYWN0ZXIuIAor
Ly8gU28gaW4gdGhpcyBmb2xsb3dpbmcgY2FzZSwgdGhlIGJsb2NrIHRoYXQgY29udGFpbnMgdGhl
ICd7Jy4KK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAieyBmb28iKSwgInNo
b3VsZCBoYXZlIGV4ZWN1dGVkLiIpOworLy8gSW4gdGhpcyBjYXNlLCBpdCB3aWxsIHRlc3QgdGhl
IGJhc2ljIGJsb2NrIHRoYXQgY29udGFpbnMgdGhlICcgJyBjaGFyYWN0ZXIuCithc3NlcnQoaGFz
QmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZiwgIiBmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVk
LiIpOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWYsICJ9IGVsc2UgaWYiKSwg
InNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOworYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQo
dGVzdElmLCAiZWxzZSBpZiIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOworYXNzZXJ0
KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAieyBiYXIiKSwgInNob3VsZCBub3QgaGF2
ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWYsICIg
YmFyIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Js
b2NrRXhlY3V0ZWQodGVzdElmLCAiZWxzZSB7IiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQu
Iik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAieyBiYXoiKSwgInNo
b3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRl
ZCh0ZXN0SWYsICIgYmF6IiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7IAordGVzdElm
KDIxKTsKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZiwgInsgYmFyIiksICJz
aG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0
ZWQodGVzdElmLCAiIGJhciIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2Vy
dChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAiZWxzZSB7IiksICJzaG91bGQgaGF2ZSBl
eGVjdXRlZC4iKTsgCit0ZXN0SWYoMTEpOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0
ZXN0SWYsICJ7IGJhciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jh
c2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWYsICIgYmFyIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4i
KTsgCisKK3Rlc3RGb3JSZWd1bGFyKDApOworYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQo
dGVzdEZvclJlZ3VsYXIsICJ7IGZvbyIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAK
K2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JSZWd1bGFyLCAifSBiYXIiKSwg
InNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1
dGVkKHRlc3RGb3JSZWd1bGFyLCAiIGJhciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAor
dGVzdEZvclJlZ3VsYXIoMSk7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JS
ZWd1bGFyLCAieyBmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNC
YXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvclJlZ3VsYXIsICJ9IGJhciIpLCAic2hvdWxkIGhhdmUg
ZXhlY3V0ZWQuIik7IAorCit0ZXN0Rm9ySW4oe30pOworYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhl
Y3V0ZWQodGVzdEZvckluLCAieyBmb28iKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsg
Cithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9ySW4sICJ9IGJhciIpLCAic2hv
dWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQo
dGVzdEZvckluLCAiIGJhciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAordGVzdEZvcklu
KHtmb286IDIwfSk7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JJbiwgInsg
Zm9vIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4
ZWN1dGVkKHRlc3RGb3JJbiwgIn0gYmFyIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCisK
K3Rlc3RGb3JPZihbXSk7Cithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yT2Ys
ICJ7IGZvbyIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFz
aWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JPZiwgIiBmb28iKSwgInNob3VsZCBub3QgaGF2ZSBleGVj
dXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yT2YsICJ9IGJh
ciIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNpY0Jsb2Nr
RXhlY3V0ZWQodGVzdEZvck9mLCAiIGJhciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAor
dGVzdEZvck9mKFsyMF0pOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yT2Ys
ICJ7IGZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxv
Y2tFeGVjdXRlZCh0ZXN0Rm9yT2YsICJ9IGJhciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7
IAorCit0ZXN0V2hpbGUoMCk7Cithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0V2hp
bGUsICJ7IGZvbyIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFz
QmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RXaGlsZSwgIiBmb28iKSwgInNob3VsZCBub3QgaGF2ZSBl
eGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0V2hpbGUsICJ9
IGJhciIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNpY0Js
b2NrRXhlY3V0ZWQodGVzdFdoaWxlLCAiIGJhciIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVk
LiIpOyAKK3Rlc3RXaGlsZSgxKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdFdo
aWxlLCAieyBmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNp
Y0Jsb2NrRXhlY3V0ZWQodGVzdFdoaWxlLCAifSBiYXIiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVk
LiIpOyAKKworCisvLyBObyBicmFjZXMgdGVzdHMuCisKK2Z1bmN0aW9uIHRlc3RJZk5vQnJhY2Vz
KHgpIHsKKyAgICBpZiAoeCA8IDEwKSBmb28oKTsgZWxzZSBpZiAoeCA8IDIwKSBiYXIoKTsgZWxz
ZSBiYXooKTsKK30KKworZnVuY3Rpb24gdGVzdEZvclJlZ3VsYXJOb0JyYWNlcyh4KSB7CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB4OyBpKyspIGZvbygpOyBiYXIoKTsKK30KKworZnVuY3Rpb24g
dGVzdEZvckluTm9CcmFjZXMoeCkgeworICAgIGZvciAodmFyIGkgaW4geCkgZm9vKCk7IGJhcigp
OworfQorCitmdW5jdGlvbiB0ZXN0Rm9yT2ZOb0JyYWNlcyh4KSB7CisgICAgZm9yICh2YXIgaSBv
ZiB4KSBmb28oKTsgYmFyKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RXaGlsZU5vQnJhY2VzKHgpIHsK
KyAgICB2YXIgaSA9IDA7IHdoaWxlIChpKysgPCB4KSBmb28oKTsgYmFyKCk7Cit9CisKK3Rlc3RJ
Zk5vQnJhY2VzKDkpOworLy8gTm90ZSwgdGhlIGNoZWNrIHdpbGwgYmUgYWdhaW5zdCB0aGUgYmFz
aWMgYmxvY2sgdGhhdCBjb250YWlucyB0aGUgZmlyc3QgbWF0Y2hlZCBjaGFyYWN0ZXIuIAorLy8g
U28gaW4gdGhpcyBmb2xsb3dpbmcgY2FzZSwgdGhlIGJsb2NrIHRoYXQgY29udGFpbnMgdGhlICd7
Jy4KK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmTm9CcmFjZXMsICJmb28iKSwg
InNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOworLy8gSW4gdGhpcyBjYXNlLCBpdCB3aWxsIHRlc3Qg
dGhlIGJhc2ljIGJsb2NrIHRoYXQgY29udGFpbnMgdGhlICcgJyBjaGFyYWN0ZXIuCithc3NlcnQo
aGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZk5vQnJhY2VzLCAiIGZvbyIpLCAic2hvdWxkIGhh
dmUgZXhlY3V0ZWQuIik7Cithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWZOb0Jy
YWNlcywgIiBlbHNlIGlmIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7Cithc3NlcnQo
IWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWZOb0JyYWNlcywgImJhciIpLCAic2hvdWxkIG5v
dCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJ
Zk5vQnJhY2VzLCAiZWxzZSIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2Vy
dCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZk5vQnJhY2VzLCAiYmF6IiksICJzaG91bGQg
bm90IGhhdmUgZXhlY3V0ZWQuIik7IAordGVzdElmTm9CcmFjZXMoMjEpOworYXNzZXJ0KCFoYXNC
YXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmTm9CcmFjZXMsICJiYXIiKSwgInNob3VsZCBub3QgaGF2
ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZk5vQnJh
Y2VzLCAiZWxzZSBiYXoiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK3Rlc3RJZk5vQnJh
Y2VzKDExKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmTm9CcmFjZXMsICIg
YmFyIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4
ZWN1dGVkKHRlc3RJZk5vQnJhY2VzLCAiYmFyIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsg
CisKK3Rlc3RGb3JSZWd1bGFyTm9CcmFjZXMoMCk7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1
dGVkKHRlc3RGb3JSZWd1bGFyTm9CcmFjZXMsICIgZm9vIiksICJzaG91bGQgaGF2ZSBleGVjdXRl
ZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yUmVndWxhck5vQnJh
Y2VzLCAiZm9vIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNC
YXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvclJlZ3VsYXJOb0JyYWNlcywgIjsgYmFyIiksICJzaG91
bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0
ZXN0Rm9yUmVndWxhck5vQnJhY2VzLCAiIGJhciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7
IAordGVzdEZvclJlZ3VsYXJOb0JyYWNlcygxKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0
ZWQodGVzdEZvclJlZ3VsYXJOb0JyYWNlcywgIiBmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVk
LiIpOyAKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvclJlZ3VsYXJOb0JyYWNl
cywgImZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorCit0ZXN0Rm9ySW5Ob0JyYWNl
cyh7fSk7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JJbk5vQnJhY2VzLCAi
IGZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2Nr
RXhlY3V0ZWQodGVzdEZvckluTm9CcmFjZXMsICJmb28iKSwgInNob3VsZCBub3QgaGF2ZSBleGVj
dXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9ySW5Ob0JyYWNl
cywgIjsgYmFyIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jh
c2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9ySW5Ob0JyYWNlcywgIiBiYXIiKSwgInNob3VsZCBoYXZl
IGV4ZWN1dGVkLiIpOyAKK3Rlc3RGb3JJbk5vQnJhY2VzKHtmb286IDIwfSk7Cithc3NlcnQoaGFz
QmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JJbk5vQnJhY2VzLCAiIGZvbyIpLCAic2hvdWxkIGhh
dmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9ySW5O
b0JyYWNlcywgImZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorCit0ZXN0Rm9yT2ZO
b0JyYWNlcyhbXSk7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JPZk5vQnJh
Y2VzLCAiIGZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNp
Y0Jsb2NrRXhlY3V0ZWQodGVzdEZvck9mTm9CcmFjZXMsICJmb28iKSwgInNob3VsZCBub3QgaGF2
ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yT2ZO
b0JyYWNlcywgIjsgYmFyIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0
KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yT2ZOb0JyYWNlcywgIiBiYXIiKSwgInNob3Vs
ZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK3Rlc3RGb3JPZk5vQnJhY2VzKFsyMF0pOworYXNzZXJ0KGhh
c0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yT2ZOb0JyYWNlcywgIiBmb28iKSwgInNob3VsZCBo
YXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvck9m
Tm9CcmFjZXMsICJmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKKwordGVzdFdoaWxl
Tm9CcmFjZXMoMCk7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RXaGlsZU5vQnJh
Y2VzLCAiIGZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNp
Y0Jsb2NrRXhlY3V0ZWQodGVzdFdoaWxlTm9CcmFjZXMsICJmb28iKSwgInNob3VsZCBub3QgaGF2
ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0V2hpbGVO
b0JyYWNlcywgIjsgYmFyIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0
KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0V2hpbGVOb0JyYWNlcywgIiBiYXIiKSwgInNob3Vs
ZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK3Rlc3RXaGlsZU5vQnJhY2VzKDEpOworYXNzZXJ0KGhhc0Jh
c2ljQmxvY2tFeGVjdXRlZCh0ZXN0V2hpbGVOb0JyYWNlcywgIiBmb28iKSwgInNob3VsZCBoYXZl
IGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdFdoaWxlTm9C
cmFjZXMsICJmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9jb250cm9sRmxvd1Byb2ZpbGVyL2NvbmRpdGlvbmFsLWV4cHJl
c3Npb24uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2NvbnRy
b2xGbG93UHJvZmlsZXIvY29uZGl0aW9uYWwtZXhwcmVzc2lvbi5qcwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9jb250cm9sRmxvd1Byb2ZpbGVyL2NvbmRpdGlv
bmFsLWV4cHJlc3Npb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNyBAQAorbG9hZCgi
Li9kcml2ZXIvZHJpdmVyLmpzIik7CisKK2Z1bmN0aW9uIGZvbygpeyB9CitmdW5jdGlvbiBiYXIo
KXsgfQorZnVuY3Rpb24gYmF6KCl7IH0KKworZnVuY3Rpb24gdGVzdENvbmRpdGlvbmFsQmFzaWMo
eCkgeworICAgIHJldHVybiB4ID8gMTAgOiAyMDsKK30KKworZnVuY3Rpb24gdGVzdENvbmRpdGlv
bmFsRnVuY3Rpb24oeCwgeSkgeworICAgIHggPyB5ID8gZm9vKCkgCisgICAgICAgIDogYmF6KCkg
CisgICAgICAgIDogYmFyKCkKK30KKwordGVzdENvbmRpdGlvbmFsQmFzaWMoZmFsc2UpOworYXNz
ZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Q29uZGl0aW9uYWxCYXNpYywgIngiKSwgInNo
b3VsZCBoYXZlIGV4ZWN1dGVkLiIpOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0
Q29uZGl0aW9uYWxCYXNpYywgIjIwIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsKK2Fzc2Vy
dCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RDb25kaXRpb25hbEJhc2ljLCAiMTAiKSwgInNo
b3VsZCBub3QgaGF2ZSBleGVjdXRlZCB5ZXQuIik7CisKK3Rlc3RDb25kaXRpb25hbEJhc2ljKHRy
dWUpOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Q29uZGl0aW9uYWxCYXNpYywg
IjEwIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsKKworCit0ZXN0Q29uZGl0aW9uYWxGdW5j
dGlvbihmYWxzZSwgZmFsc2UpOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Q29u
ZGl0aW9uYWxGdW5jdGlvbiwgIngiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOworYXNzZXJ0
KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Q29uZGl0aW9uYWxGdW5jdGlvbiwgImJhciIpLCAi
c2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7Cithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0
ZXN0Q29uZGl0aW9uYWxGdW5jdGlvbiwgImZvbyIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVk
IHlldC4iKTsKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RDb25kaXRpb25hbEZ1
bmN0aW9uLCAiYmF6IiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQgeWV0LiIpOworCit0ZXN0
Q29uZGl0aW9uYWxGdW5jdGlvbih0cnVlLCBmYWxzZSk7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4
ZWN1dGVkKHRlc3RDb25kaXRpb25hbEZ1bmN0aW9uLCAiYmF6IiksICJzaG91bGQgaGF2ZSBleGVj
dXRlZC4iKTsKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RDb25kaXRpb25hbEZ1
bmN0aW9uLCAiZm9vIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQgeWV0LiIpOworCit0ZXN0
Q29uZGl0aW9uYWxGdW5jdGlvbih0cnVlLCB0cnVlKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhl
Y3V0ZWQodGVzdENvbmRpdGlvbmFsRnVuY3Rpb24sICJmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1
dGVkLiIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247024</attachid>
            <date>2015-02-20 17:56:00 -0800</date>
            <delta_ts>2015-02-23 12:15:27 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>31305</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgwNDY4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDk0IEBA
CisyMDE1LTAyLTIwICBTYWFtIEJhcmF0aSAgPHNhYW1iYXJhdGkxQGdtYWlsLmNvbT4KKworICAg
ICAgICBBZGp1c3QgdGhlIHJhbmdlcyBvZiBiYXNpYyBibG9jayBzdGF0ZW1lbnRzIGluIEpTQydz
IGNvbnRyb2wgZmxvdyBwcm9maWxlciB0byBiZSBtdXR1YWxseSBleGNsdXNpdmUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTA5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvc2UgdGhlIGNvbnRy
b2wgZmxvdyBvZiBhIHByb2dyYW0gZm9ybXMgYmFzaWMgYmxvY2sgQSB3aXRoIHN1Y2Nlc3NvciBi
bG9jaworICAgICAgICBCLiBBJ3MgZW5kIG9mZnNldCB3aWxsIGJlIHRoZSAqc2FtZSogYXMgQidz
IHN0YXJ0IG9mZnNldCBpbiB0aGUgY3VycmVudCBhcmNoaXRlY3R1cmUgCisgICAgICAgIG9mIHRo
ZSBjb250cm9sIGZsb3cgcHJvZmlsZXIuIFRoaXMgbWFrZXMgcmVhc29uaW5nIGFib3V0IHRoZSB0
ZXh0IG9mZnNldHMgb2YKKyAgICAgICAgdGhlIGNvbnRyb2wgZmxvdyBwcm9maWxlciB1bnNvdW5k
LiBUbyBtYWtlIHJlYXNvbmluZyBhYm91dCBvZmZzZXRzIHNvdW5kLCBhbGwgCisgICAgICAgIGJh
c2ljIGJsb2NrIHJhbmdlcyBzaG91bGQgYmUgbXV0dWFsbHkgZXhjbHVzaXZlLiAgQWxsIGNhbGxz
IHRvIGVtaXRQcm9maWxlQ29udHJvbEZsb3cgCisgICAgICAgIG5vdyBwYXNzIGluIHRoZSAqc3Rh
cnQqIG9mIGEgYmFzaWMgYmxvY2sgYXMgdGhlIHRleHQgb2Zmc2V0IGFyZ3VtZW50LiBUaGlzIHNp
bXBsaWZpZXMgCisgICAgICAgIGFsbCBjYWxscyB0byBlbWl0UHJvZmlsZUNvbnRyb2xGbG93IGJl
Y2F1c2UgdGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uIGhhZCBhCisgICAgICAgIGxvdCBvZiBl
ZGdlIGNhc2VzIGZvciBnZXR0aW5nIHRoZSBkZXNpcmVkIGJhc2ljIGJsb2NrIHRleHQgYm91bmRh
cmllcy4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gaGFzIGVuc3VyZXMgdGhhdCB0aGUgYmFz
aWMgYmxvY2sgYm91bmRhcnkgb2YgYSBibG9jayBzdGF0ZW1lbnQgCisgICAgICAgIGlzIHRoZSBl
eGFjdGx5IHRoZSBibG9jaydzIG9wZW4gYW5kIGNsb3NlIGJyYWNlIG9mZnNldHMgKGluY2x1c2l2
ZSkuIEZvciBleGFtcGxlLAorICAgICAgICBpbiBpZi9mb3Ivd2hpbGUgc3RhdGVtZW50cy4KKwor
ICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9j
azo6aW5zZXJ0QmFzaWNCbG9ja0JvdW5kYXJpZXNGb3JDb250cm9sRmxvd1Byb2ZpbGVyKToKKyAg
ICAgICAgV2hlbiBjb21wdXRpbmcgYmFzaWMgYmxvY2sgYm91bmRhcmllcyBpbiBDb2RlQmxvY2ss
IHdlIGVuc3VyZSB0aGF0IGV2ZXJ5CisgICAgICAgIGJsb2NrJ3MgZW5kIG9mZnNldCBpcyBvbmUg
bGVzcyB0aGFuIGl0cyBzdWNjZXNzb3IncyBzdGFydCBvZmZzZXQgdG8KKyAgICAgICAgbWFpbnRh
aW4gdGhhdCBib3VuZGFyaWVzJyByYW5nZXMgc2hvdWxkIGJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4K
KworICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAg
IChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcik6CisgICAgICAgIEJl
Y2F1c2UgdGhlIGNvbnRyb2wgZmxvdyBwcm9maWxlciBuZWVkcyB0byBrbm93IHdoaWNoIGZ1bmN0
aW9ucworICAgICAgICBoYXZlIGV4ZWN1dGVkLCB3ZSBjYW4ndCBsYXppbHkgY3JlYXRlIGZ1bmN0
aW9ucy4gVGhpcyB3YXMgYSBidWcgCisgICAgICAgIGZyb20gYmVmb3JlIHRoYXQgd2FzIGhpZGRl
biBiZWNhdXNlIHRoZSBUeXBlIFByb2ZpbGVyIHdhcyBhbHdheXMgCisgICAgICAgIGVuYWJsZWQg
d2hlbiB0aGUgY29udHJvbCBmbG93IHByb2ZpbGVyIHdhcyBlbmFibGVkIHdoZW4gcHJvZmlsaW5n
IAorICAgICAgICB3YXMgdHVybmVkIG9uIGZyb20gdGhlIFdlYiBJbnNwZWN0b3IuIEJ1dCwgSlND
IGFsbG93cyBmb3IgQ29udHJvbCAKKyAgICAgICAgRmxvdyBwcm9maWxpbmcgdG8gYmUgdHVybmVk
IG9uIHdpdGhvdXQgVHlwZSBQcm9maWxpbmcsIHNvIHdlIG5lZWQgCisgICAgICAgIHRvIGVuc3Vy
ZSB0aGUgQ29udHJvbCBGbG93IHByb2ZpbGVyIGhhcyBhbGwgdGhlIGRhdGEgaXQgbmVlZHMuCisK
KyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6
Q29uZGl0aW9uYWxOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpJZkVsc2VOb2Rl
OjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpXaGlsZU5vZGU6OmVtaXRCeXRlY29kZSk6
CisgICAgICAgIChKU0M6OkZvck5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6OkZv
ckluTm9kZTo6ZW1pdE11bHRpTG9vcEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6Rm9yT2ZOb2Rl
OjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpUcnlOb2RlOjplbWl0Qnl0ZWNvZGUpOgor
ICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChmdW5jdGlvbkhhc0Jhc2ljQmxvY2tFeGVjdXRl
ZCk6CisgICAgICAgIFdlIG5vdyBhc3NlcnQgdGhhdCB0aGUgc3Vic3RyaW5nIGFyZ3VtZW50IGlz
IGluZGVlZCBhIHN1YnN0cmluZworICAgICAgICBvZiB0aGUgZnVuY3Rpb24gYXJndW1lbnQncyB0
ZXh0IGJlY2F1c2Ugc3VidGxlIGJ1Z3MgY291bGQgYmUKKyAgICAgICAgaW50cm9kdWNlZCBvdGhl
cndpc2UuCisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAgICAoSlNDOjpB
U1RCdWlsZGVyOjpzZXRTdGFydE9mZnNldCk6CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6Cisg
ICAgICAgIChKU0M6Ok5vZGU6OnNldFN0YXJ0T2Zmc2V0KToKKyAgICAgICAgKiBwYXJzZXIvUGFy
c2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlQmxvY2tTdGF0
ZW1lbnQpOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VTdGF0ZW1lbnQp
OgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VNZW1iZXJFeHByZXNzaW9u
KToKKyAgICAgICAgRm9yIHRoZSB2YXJpb3VzIGZ1bmN0aW9uIGNhbGwgQVNUIG5vZGVzLCB0aGVp
ciBtX3Bvc2l0aW9uIG1lbWJlciAKKyAgICAgICAgdmFyaWFibGUgaXMgbm93IHRoZSBzdGFydCBv
ZiB0aGUgZW50aXJlIGZ1bmN0aW9uIGNhbGwgZXhwcmVzc2lvbiAKKyAgICAgICAgYW5kIG5vdCBh
dCB0aGUgc3RhcnQgb2YgdGhlIG9wZW4gcGFyZW4gb2YgdGhlIGFyZ3VtZW50cyBsaXN0LgorCisg
ICAgICAgICogcnVudGltZS9CYXNpY0Jsb2NrTG9jYXRpb24uY3BwOgorICAgICAgICAoSlNDOjpC
YXNpY0Jsb2NrTG9jYXRpb246OmdldEV4ZWN1dGVkUmFuZ2VzKToKKyAgICAgICAgKiBydW50aW1l
L0NvbnRyb2xGbG93UHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpDb250cm9sRmxvd1Byb2Zp
bGVyOjpnZXRCYXNpY0Jsb2Nrc0ZvclNvdXJjZUlEKToKKyAgICAgICAgRnVuY3Rpb24gcmFuZ2Vz
IGluc2VydGVkIGFzIGdhcHMgc2hvdWxkIGZvbGxvdyB0aGUgc2FtZSBjcml0ZXJpYQorICAgICAg
ICB0aGF0IHRoZSBieXRlY29kZSBnZW5lcmF0b3IgdXNlcyB0byBlbnN1cmUgdGhhdCBiYXNpYyBi
bG9ja3MKKyAgICAgICAgc3RhcnQgYW5kIGVuZCBvZmZzZXRzIGFyZSBtdXR1YWxseSBleGNsdXNp
dmUuCisKKyAgICAgICAgKiB0ZXN0cy9jb250cm9sRmxvd1Byb2ZpbGVyL2JyYWNlLWxvY2F0aW9u
LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAgICAoYmF6
KToKKyAgICAgICAgKHRlc3RJZik6CisgICAgICAgICh0ZXN0Rm9yUmVndWxhcik6CisgICAgICAg
ICh0ZXN0Rm9ySW4pOgorICAgICAgICAodGVzdEZvck9mKToKKyAgICAgICAgKHRlc3RXaGlsZSk6
CisgICAgICAgICh0ZXN0SWZOb0JyYWNlcyk6CisgICAgICAgICh0ZXN0Rm9yUmVndWxhck5vQnJh
Y2VzKToKKyAgICAgICAgKHRlc3RGb3JJbk5vQnJhY2VzKToKKyAgICAgICAgKHRlc3RGb3JPZk5v
QnJhY2VzKToKKyAgICAgICAgKHRlc3RXaGlsZU5vQnJhY2VzKToKKyAgICAgICAgKiB0ZXN0cy9j
b250cm9sRmxvd1Byb2ZpbGVyL2NvbmRpdGlvbmFsLWV4cHJlc3Npb24uanM6IEFkZGVkLgorICAg
ICAgICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAgICAgIChiYXopOgorICAgICAgICAodGVz
dENvbmRpdGlvbmFsQmFzaWMpOgorICAgICAgICAodGVzdENvbmRpdGlvbmFsRnVuY3Rpb25DYWxs
KToKKwogMjAxNS0wMi0yMCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVmYWN0b3IgSlNXcmFwcGVyTWFwLm1tIHRvIGRlZmVyIGNyZWF0aW9uIG9mIHRoZSBPYmpD
IEpTVmFsdWUgdW50aWwgdGhlIGxhdGVzdCBwb3NzaWJsZSBtb21lbnQuCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvanNjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcAkocmV2aXNpb24gMTgwMzg4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pz
Yy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMjcsNiArMTEyNyw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25IYXMKICAgICBSRUxFQVNFX0FTU0VSVChleGVjLT5hcmd1
bWVudCgxKS5pc1N0cmluZygpKTsKICAgICBTdHJpbmcgc3Vic3RyaW5nID0gZXhlYy0+YXJndW1l
bnQoMSkuZ2V0U3RyaW5nKGV4ZWMpOwogICAgIFN0cmluZyBzb3VyY2VDb2RlVGV4dCA9IGV4ZWN1
dGFibGUtPnNvdXJjZSgpLnRvU3RyaW5nKCk7CisgICAgUkVMRUFTRV9BU1NFUlQoc291cmNlQ29k
ZVRleHQuY29udGFpbnMoc3Vic3RyaW5nKSk7CiAgICAgaW50IG9mZnNldCA9IHNvdXJjZUNvZGVU
ZXh0LmZpbmQoc3Vic3RyaW5nKSArIGV4ZWN1dGFibGUtPnNvdXJjZSgpLnN0YXJ0T2Zmc2V0KCk7
CiAgICAgCiAgICAgYm9vbCBoYXNFeGVjdXRlZCA9IGV4ZWMtPnZtKCkuY29udHJvbEZsb3dQcm9m
aWxlcigpLT5oYXNCYXNpY0Jsb2NrQXRUZXh0T2Zmc2V0QmVlbkV4ZWN1dGVkKG9mZnNldCwgZXhl
Y3V0YWJsZS0+c291cmNlSUQoKSwgZXhlYy0+dm0oKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTgwMzg4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQwNTIsNyArNDA1Miw3IEBAIHZvaWQgQ29kZUJsb2NrOjppbnNlcnRCYXNpY0Jsb2NrQm91
bmRhcmkKICAgICAgICAgaWYgKGkgKyAxIDwgb2Zmc2V0c0xlbmd0aCkgewogICAgICAgICAgICAg
c2l6ZV90IGVuZElkeCA9IGJ5dGVjb2RlT2Zmc2V0c1tpICsgMV07CiAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVCh2bSgpLT5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQoaW5zdHJ1Y3Rpb25zW2Vu
ZElkeF0udS5vcGNvZGUpID09IG9wX3Byb2ZpbGVfY29udHJvbF9mbG93KTsKLSAgICAgICAgICAg
IGJhc2ljQmxvY2tFbmRPZmZzZXQgPSBpbnN0cnVjdGlvbnNbZW5kSWR4ICsgMV0udS5vcGVyYW5k
OworICAgICAgICAgICAgYmFzaWNCbG9ja0VuZE9mZnNldCA9IGluc3RydWN0aW9uc1tlbmRJZHgg
KyAxXS51Lm9wZXJhbmQgLSAxOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgYmFzaWNC
bG9ja0VuZE9mZnNldCA9IG1fc291cmNlT2Zmc2V0ICsgbV9vd25lckV4ZWN1dGFibGUtPnNvdXJj
ZSgpLmxlbmd0aCgpIC0gMTsgLy8gT2Zmc2V0IGJlZm9yZSB0aGUgY2xvc2luZyBicmFjZS4KICAg
ICAgICAgICAgIGJhc2ljQmxvY2tTdGFydE9mZnNldCA9IHN0ZDo6bWluKGJhc2ljQmxvY2tTdGFy
dE9mZnNldCwgYmFzaWNCbG9ja0VuZE9mZnNldCk7IC8vIFNvbWUgc3RhcnQgb2Zmc2V0cyBtYXkg
YmUgYXQgdGhlIGNsb3NpbmcgYnJhY2UsIGVuc3VyZSBpdCBpcyB0aGUgb2Zmc2V0IGJlZm9yZS4K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAxODAzODgpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzI1LDcgKzMyNSw3IEBAIEJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRv
cihWTSYKIAogICAgIG1fc3ltYm9sVGFibGUtPnNldENhcHR1cmVFbmQodmlydHVhbFJlZ2lzdGVy
Rm9yTG9jYWwoY29kZUJsb2NrLT5tX251bVZhcnMpLm9mZnNldCgpKTsKIAotICAgIGJvb2wgY2Fu
TGF6aWx5Q3JlYXRlRnVuY3Rpb25zID0gIWZ1bmN0aW9uTm9kZS0+bmVlZHNBY3RpdmF0aW9uRm9y
TW9yZVRoYW5WYXJpYWJsZXMoKSAmJiAhbV9zaG91bGRFbWl0RGVidWdIb29rcyAmJiAhbV92bS0+
dHlwZVByb2ZpbGVyKCk7CisgICAgYm9vbCBjYW5MYXppbHlDcmVhdGVGdW5jdGlvbnMgPSAhZnVu
Y3Rpb25Ob2RlLT5uZWVkc0FjdGl2YXRpb25Gb3JNb3JlVGhhblZhcmlhYmxlcygpICYmICFtX3No
b3VsZEVtaXREZWJ1Z0hvb2tzICYmICFtX3ZtLT50eXBlUHJvZmlsZXIoKSAmJiAhbV92bS0+Y29u
dHJvbEZsb3dQcm9maWxlcigpOwogICAgIG1fZmlyc3RMYXp5RnVuY3Rpb24gPSBjb2RlQmxvY2st
Pm1fbnVtVmFyczsKICAgICBpZiAoIXNob3VsZENhcHR1cmVBbGxUaGVUaGluZ3MpIHsKICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmdW5jdGlvblN0YWNrLnNpemUoKTsgKytpKSB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0Nv
ZGVnZW4uY3BwCShyZXZpc2lvbiAxODAzODgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NDQsMTIgKzE0
NDQsMTIgQEAgUmVnaXN0ZXJJRCogQ29uZGl0aW9uYWxOb2RlOjplbWl0Qnl0ZWNvZAogICAgIGdl
bmVyYXRvci5lbWl0SnVtcChhZnRlckVsc2UuZ2V0KCkpOwogCiAgICAgZ2VuZXJhdG9yLmVtaXRM
YWJlbChiZWZvcmVFbHNlLmdldCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9s
RmxvdyhtX2V4cHIyLT5zdGFydE9mZnNldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVD
b250cm9sRmxvdyhtX2V4cHIxLT5lbmRPZmZzZXQoKSArIDEpOwogICAgIGdlbmVyYXRvci5lbWl0
Tm9kZShuZXdEc3QuZ2V0KCksIG1fZXhwcjIpOwogCiAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChh
ZnRlckVsc2UuZ2V0KCkpOwogCi0gICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3co
bV9leHByMi0+ZW5kT2Zmc2V0KCkpOworICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xG
bG93KG1fZXhwcjItPmVuZE9mZnNldCgpICsgMSk7CiAKICAgICByZXR1cm4gbmV3RHN0LmdldCgp
OwogfQpAQCAtMTg5NywxMiArMTg5NywxMyBAQCB2b2lkIElmRWxzZU5vZGU6OmVtaXRCeXRlY29k
ZShCeXRlY29kZUdlCiAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChiZWZvcmVFbHNlLmdldCgpKTsK
IAogICAgIGlmIChtX2Vsc2VCbG9jaykgewotICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVD
b250cm9sRmxvdyhtX2lmQmxvY2stPmVuZE9mZnNldCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVt
aXRQcm9maWxlQ29udHJvbEZsb3cobV9pZkJsb2NrLT5lbmRPZmZzZXQoKSArIChtX2lmQmxvY2st
PmlzQmxvY2soKSA/IDEgOiAwKSk7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0Tm9kZShkc3QsIG1f
ZWxzZUJsb2NrKTsKICAgICB9CiAKICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGFmdGVyRWxzZS5n
ZXQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9lbHNlQmxvY2sg
PyBtX2Vsc2VCbG9jay0+ZW5kT2Zmc2V0KCkgOiBtX2lmQmxvY2stPmVuZE9mZnNldCgpKTsKKyAg
ICBTdGF0ZW1lbnROb2RlKiBlbmRpbmdCbG9jayA9IG1fZWxzZUJsb2NrID8gbV9lbHNlQmxvY2sg
OiBtX2lmQmxvY2s7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3coZW5kaW5n
QmxvY2stPmVuZE9mZnNldCgpICsgKGVuZGluZ0Jsb2NrLT5pc0Jsb2NrKCkgPyAxIDogMCkpOwog
fQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRG9XaGlsZU5vZGUgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTk0OCw3ICsxOTQ5LDcgQEAgdm9pZCBX
aGlsZU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbgogCiAgICAgZ2VuZXJhdG9yLmVtaXRM
YWJlbChzY29wZS0+YnJlYWtUYXJnZXQoKSk7CiAKLSAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVD
b250cm9sRmxvdyhlbmRPZmZzZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJv
bEZsb3cobV9zdGF0ZW1lbnQtPmVuZE9mZnNldCgpICsgKG1fc3RhdGVtZW50LT5pc0Jsb2NrKCkg
PyAxIDogMCkpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRm9yTm9k
ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTk4Myw3ICsxOTg0
LDcgQEAgdm9pZCBGb3JOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcgogICAgICAgICBn
ZW5lcmF0b3IuZW1pdEp1bXAodG9wT2ZMb29wLmdldCgpKTsKIAogICAgIGdlbmVyYXRvci5lbWl0
TGFiZWwoc2NvcGUtPmJyZWFrVGFyZ2V0KCkpOwotICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNv
bnRyb2xGbG93KGVuZE9mZnNldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9s
RmxvdyhtX3N0YXRlbWVudC0+ZW5kT2Zmc2V0KCkgKyAobV9zdGF0ZW1lbnQtPmlzQmxvY2soKSA/
IDEgOiAwKSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGb3JJbk5v
ZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMTAwLDYgKzIxMDEs
OCBAQCB2b2lkIEZvckluTm9kZTo6ZW1pdE11bHRpTG9vcEJ5dGVjb2RlKEJ5CiAgICAgZ2VuZXJh
dG9yLmVtaXROb2RlKGJhc2UuZ2V0KCksIG1fZXhwcik7CiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+
IGxvY2FsID0gdGhpcy0+dHJ5R2V0Qm91bmRMb2NhbChnZW5lcmF0b3IpOwogCisgICAgaW50IHBy
b2ZpbGVyU3RhcnRPZmZzZXQgPSBtX3N0YXRlbWVudC0+c3RhcnRPZmZzZXQoKTsKKyAgICBpbnQg
cHJvZmlsZXJFbmRPZmZzZXQgPSBtX3N0YXRlbWVudC0+ZW5kT2Zmc2V0KCkgKyAobV9zdGF0ZW1l
bnQtPmlzQmxvY2soKSA/IDEgOiAwKTsKICAgICAvLyBJbmRleGVkIHByb3BlcnR5IGxvb3AuCiAg
ICAgewogICAgICAgICBMYWJlbFNjb3BlUHRyIHNjb3BlID0gZ2VuZXJhdG9yLm5ld0xhYmVsU2Nv
cGUoTGFiZWxTY29wZTo6TG9vcCk7CkBAIC0yMTIxLDEzICsyMTI0LDEzIEBAIHZvaWQgRm9ySW5O
b2RlOjplbWl0TXVsdGlMb29wQnl0ZWNvZGUoQnkKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRUb0lu
ZGV4U3RyaW5nKHByb3BlcnR5TmFtZS5nZXQoKSwgaS5nZXQoKSk7CiAgICAgICAgIHRoaXMtPmVt
aXRMb29wSGVhZGVyKGdlbmVyYXRvciwgcHJvcGVydHlOYW1lLmdldCgpKTsKIAotICAgICAgICBn
ZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3N0YXRlbWVudC0+c3RhcnRPZmZzZXQo
KSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KHByb2ZpbGVyU3Rh
cnRPZmZzZXQpOwogCiAgICAgICAgIGdlbmVyYXRvci5wdXNoSW5kZXhlZEZvckluU2NvcGUobG9j
YWwuZ2V0KCksIGkuZ2V0KCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX3N0
YXRlbWVudCk7CiAgICAgICAgIGdlbmVyYXRvci5wb3BJbmRleGVkRm9ySW5TY29wZShsb2NhbC5n
ZXQoKSk7CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9zdGF0
ZW1lbnQtPmVuZE9mZnNldCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJv
bEZsb3cocHJvZmlsZXJFbmRPZmZzZXQpOwogCiAgICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwo
c2NvcGUtPmNvbnRpbnVlVGFyZ2V0KCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdEluYyhpLmdl
dCgpKTsKQEAgLTIxNTksMTMgKzIxNjIsMTMgQEAgdm9pZCBGb3JJbk5vZGU6OmVtaXRNdWx0aUxv
b3BCeXRlY29kZShCeQogCiAgICAgICAgIHRoaXMtPmVtaXRMb29wSGVhZGVyKGdlbmVyYXRvciwg
cHJvcGVydHlOYW1lLmdldCgpKTsKIAotICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250
cm9sRmxvdyhtX3N0YXRlbWVudC0+c3RhcnRPZmZzZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5l
bWl0UHJvZmlsZUNvbnRyb2xGbG93KHByb2ZpbGVyU3RhcnRPZmZzZXQpOwogCiAgICAgICAgIGdl
bmVyYXRvci5wdXNoU3RydWN0dXJlRm9ySW5TY29wZShsb2NhbC5nZXQoKSwgaS5nZXQoKSwgcHJv
cGVydHlOYW1lLmdldCgpLCBzdHJ1Y3R1cmVFbnVtZXJhdG9yLmdldCgpKTsKICAgICAgICAgZ2Vu
ZXJhdG9yLmVtaXROb2RlKGRzdCwgbV9zdGF0ZW1lbnQpOwogICAgICAgICBnZW5lcmF0b3IucG9w
U3RydWN0dXJlRm9ySW5TY29wZShsb2NhbC5nZXQoKSk7CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVt
aXRQcm9maWxlQ29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPmVuZE9mZnNldCgpKTsKKyAgICAgICAg
Z2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cocHJvZmlsZXJFbmRPZmZzZXQpOwogCiAg
ICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoc2NvcGUtPmNvbnRpbnVlVGFyZ2V0KCkpOwogICAg
ICAgICBnZW5lcmF0b3IuZW1pdEluYyhpLmdldCgpKTsKQEAgLTIxOTYsNyArMjE5OSw3IEBAIHZv
aWQgRm9ySW5Ob2RlOjplbWl0TXVsdGlMb29wQnl0ZWNvZGUoQnkKIAogICAgICAgICB0aGlzLT5l
bWl0TG9vcEhlYWRlcihnZW5lcmF0b3IsIHByb3BlcnR5TmFtZS5nZXQoKSk7CiAKLSAgICAgICAg
Z2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPnN0YXJ0T2Zmc2V0
KCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhwcm9maWxlclN0
YXJ0T2Zmc2V0KTsKIAogICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX3N0YXRlbWVu
dCk7CiAKQEAgLTIyMTcsNyArMjIyMCw3IEBAIHZvaWQgRm9ySW5Ob2RlOjplbWl0TXVsdGlMb29w
Qnl0ZWNvZGUoQnkKIAogICAgIGdlbmVyYXRvci5lbWl0RGVidWdIb29rKFdpbGxFeGVjdXRlU3Rh
dGVtZW50LCBmaXJzdExpbmUoKSwgc3RhcnRPZmZzZXQoKSwgbGluZVN0YXJ0T2Zmc2V0KCkpOwog
ICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoZW5kLmdldCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdFBy
b2ZpbGVDb250cm9sRmxvdyhtX3N0YXRlbWVudC0+ZW5kT2Zmc2V0KCkpOworICAgIGdlbmVyYXRv
ci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KHByb2ZpbGVyRW5kT2Zmc2V0KTsKIH0KIAogdm9pZCBG
b3JJbk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdp
c3RlcklEKiBkc3QpCkBAIC0yMjg1LDcgKzIyODgsNyBAQCB2b2lkIEZvck9mTm9kZTo6ZW1pdEJ5
dGVjb2RlKEJ5dGVjb2RlR2VuCiAgICAgICAgIGdlbmVyYXRvci5lbWl0Tm9kZShkc3QsIG1fc3Rh
dGVtZW50KTsKICAgICB9OwogICAgIGdlbmVyYXRvci5lbWl0RW51bWVyYXRpb24odGhpcywgbV9l
eHByLCBleHRyYWN0b3IpOwotICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1f
c3RhdGVtZW50LT5lbmRPZmZzZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJv
bEZsb3cobV9zdGF0ZW1lbnQtPmVuZE9mZnNldCgpICsgKG1fc3RhdGVtZW50LT5pc0Jsb2NrKCkg
PyAxIDogMCkpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ29udGlu
dWVOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjYzMSw3ICsyNjM0
LDcgQEAgdm9pZCBUcnlOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcgogICAgICAgICB9
CiAKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXNoQ2F0Y2hTY29wZShnZW5lcmF0b3Iuc2NvcGVS
ZWdpc3RlcigpLCBtX2V4Y2VwdGlvbklkZW50LCBleGNlcHRpb25SZWdpc3Rlci5nZXQoKSwgRG9u
dERlbGV0ZSk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fdHJ5
QmxvY2stPmVuZE9mZnNldCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJv
bEZsb3cobV90cnlCbG9jay0+ZW5kT2Zmc2V0KCkgKyAxKTsKICAgICAgICAgZ2VuZXJhdG9yLmVt
aXROb2RlKGRzdCwgbV9jYXRjaEJsb2NrKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQb3BTY29w
ZShnZW5lcmF0b3Iuc2NvcGVSZWdpc3RlcigpKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRMYWJl
bChjYXRjaEVuZExhYmVsLmdldCgpKTsKQEAgLTI2NDQsMTIgKzI2NDcsMTIgQEAgdm9pZCBUcnlO
b2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcgogCiAgICAgICAgIFJlZlB0cjxMYWJlbD4g
ZmluYWxseUVuZExhYmVsID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CiAKLSAgICAgICAgaW50IGZp
bmFsbHlTdGFydE9mZnNldCA9IG1fY2F0Y2hCbG9jayA/IG1fY2F0Y2hCbG9jay0+ZW5kT2Zmc2V0
KCkgOiBtX3RyeUJsb2NrLT5lbmRPZmZzZXQoKTsKKyAgICAgICAgaW50IGZpbmFsbHlTdGFydE9m
ZnNldCA9IG1fY2F0Y2hCbG9jayA/IG1fY2F0Y2hCbG9jay0+ZW5kT2Zmc2V0KCkgKyAxIDogbV90
cnlCbG9jay0+ZW5kT2Zmc2V0KCkgKyAxOwogCiAgICAgICAgIC8vIE5vcm1hbCBwYXRoOiBydW4g
dGhlIGZpbmFsbHkgY29kZSwgYW5kIGp1bXAgdG8gdGhlIGVuZC4KICAgICAgICAgZ2VuZXJhdG9y
LmVtaXRQcm9maWxlQ29udHJvbEZsb3coZmluYWxseVN0YXJ0T2Zmc2V0KTsKICAgICAgICAgZ2Vu
ZXJhdG9yLmVtaXROb2RlKGRzdCwgbV9maW5hbGx5QmxvY2spOwotICAgICAgICBnZW5lcmF0b3Iu
ZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX2ZpbmFsbHlCbG9jay0+ZW5kT2Zmc2V0KCkpOworICAg
ICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX2ZpbmFsbHlCbG9jay0+ZW5k
T2Zmc2V0KCkgKyAxKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRKdW1wKGZpbmFsbHlFbmRMYWJl
bC5nZXQoKSk7CiAKICAgICAgICAgLy8gVW5jYXVnaHQgZXhjZXB0aW9uIHBhdGg6IGludm9rZSB0
aGUgZmluYWxseSBibG9jaywgdGhlbiByZS10aHJvdyB0aGUgZXhjZXB0aW9uLgpAQCAtMjY1OSw5
ICsyNjYyLDkgQEAgdm9pZCBUcnlOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcgogICAg
ICAgICBnZW5lcmF0b3IuZW1pdFRocm93KHRlbXBFeGNlcHRpb25SZWdpc3Rlci5nZXQoKSk7CiAK
ICAgICAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChmaW5hbGx5RW5kTGFiZWwuZ2V0KCkpOwotICAg
ICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX2ZpbmFsbHlCbG9jay0+ZW5k
T2Zmc2V0KCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX2Zp
bmFsbHlCbG9jay0+ZW5kT2Zmc2V0KCkgKyAxKTsKICAgICB9IGVsc2UKLSAgICAgICAgZ2VuZXJh
dG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9jYXRjaEJsb2NrLT5lbmRPZmZzZXQoKSk7Cisg
ICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fY2F0Y2hCbG9jay0+ZW5k
T2Zmc2V0KCkgKyAxKTsKIAogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L0FTVEJ1aWxkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L0FTVEJ1aWxkZXIuaAkocmV2aXNpb24gMTgwMzg4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9BU1RCdWlsZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTcxMyw2ICs3MTMsMTEgQEAg
cHVibGljOgogICAgIHsKICAgICAgICAgbm9kZS0+c2V0U3RhcnRPZmZzZXQob2Zmc2V0KTsKICAg
ICB9CisKKyAgICB2b2lkIHNldFN0YXJ0T2Zmc2V0KE5vZGUqIG5vZGUsIGludCBvZmZzZXQpCisg
ICAgeworICAgICAgICBub2RlLT5zZXRTdGFydE9mZnNldChvZmZzZXQpOworICAgIH0KICAgICAK
IHByaXZhdGU6CiAgICAgc3RydWN0IFNjb3BlIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvTm9kZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL05vZGVzLmgJKHJldmlzaW9uIDE4MDM4OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTm9kZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDYgKzEzMiw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBpbnQgbGluZVN0YXJ0T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9w
b3NpdGlvbi5saW5lU3RhcnRPZmZzZXQ7IH0KICAgICAgICAgY29uc3QgSlNUZXh0UG9zaXRpb24m
IHBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbjsgfQogICAgICAgICB2b2lkIHNl
dEVuZE9mZnNldChpbnQgb2Zmc2V0KSB7IG1fZW5kT2Zmc2V0ID0gb2Zmc2V0OyB9CisgICAgICAg
IHZvaWQgc2V0U3RhcnRPZmZzZXQoaW50IG9mZnNldCkgeyBtX3Bvc2l0aW9uLm9mZnNldCA9IG9m
ZnNldDsgfQogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBKU1RleHRQb3NpdGlvbiBtX3Bvc2l0
aW9uOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAkocmV2aXNp
b24gMTgwMzg4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTE1LDIxICsxMTE1LDI0IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVl
QnVpbGRlcj4gVHJlZVN0YXRlbWUKIHsKICAgICBBU1NFUlQobWF0Y2goT1BFTkJSQUNFKSk7CiAg
ICAgSlNUb2tlbkxvY2F0aW9uIGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CisgICAgaW50IHN0
YXJ0T2Zmc2V0ID0gbV90b2tlbi5tX2RhdGEub2Zmc2V0OwogICAgIGludCBzdGFydCA9IHRva2Vu
TGluZSgpOwogICAgIG5leHQoKTsKICAgICBpZiAobWF0Y2goQ0xPU0VCUkFDRSkpIHsKLSAgICAg
ICAgdW5zaWduZWQgZW5kT2Zmc2V0ID0gbV9sZXhlci0+Y3VycmVudE9mZnNldCgpOworICAgICAg
ICBpbnQgZW5kT2Zmc2V0ID0gbV90b2tlbi5tX2RhdGEub2Zmc2V0OwogICAgICAgICBuZXh0KCk7
CiAgICAgICAgIFRyZWVTdGF0ZW1lbnQgcmVzdWx0ID0gY29udGV4dC5jcmVhdGVCbG9ja1N0YXRl
bWVudChsb2NhdGlvbiwgMCwgc3RhcnQsIG1fbGFzdFRva2VuRW5kUG9zaXRpb24ubGluZSk7Cisg
ICAgICAgIGNvbnRleHQuc2V0U3RhcnRPZmZzZXQocmVzdWx0LCBzdGFydE9mZnNldCk7CiAgICAg
ICAgIGNvbnRleHQuc2V0RW5kT2Zmc2V0KHJlc3VsdCwgZW5kT2Zmc2V0KTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CiAgICAgVHJlZVNvdXJjZUVsZW1lbnRzIHN1YnRyZWUgPSBwYXJz
ZVNvdXJjZUVsZW1lbnRzKGNvbnRleHQsIERvbnRDaGVja0ZvclN0cmljdE1vZGUpOwogICAgIGZh
aWxJZkZhbHNlKHN1YnRyZWUsICJDYW5ub3QgcGFyc2UgdGhlIGJvZHkgb2YgdGhlIGJsb2NrIHN0
YXRlbWVudCIpOwogICAgIG1hdGNoT3JGYWlsKENMT1NFQlJBQ0UsICJFeHBlY3RlZCBhIGNsb3Np
bmcgJ30nIGF0IHRoZSBlbmQgb2YgYSBibG9jayBzdGF0ZW1lbnQiKTsKLSAgICB1bnNpZ25lZCBl
bmRPZmZzZXQgPSBtX2xleGVyLT5jdXJyZW50T2Zmc2V0KCk7CisgICAgaW50IGVuZE9mZnNldCA9
IG1fdG9rZW4ubV9kYXRhLm9mZnNldDsKICAgICBuZXh0KCk7CiAgICAgVHJlZVN0YXRlbWVudCBy
ZXN1bHQgPSBjb250ZXh0LmNyZWF0ZUJsb2NrU3RhdGVtZW50KGxvY2F0aW9uLCBzdWJ0cmVlLCBz
dGFydCwgbV9sYXN0VG9rZW5FbmRQb3NpdGlvbi5saW5lKTsKKyAgICBjb250ZXh0LnNldFN0YXJ0
T2Zmc2V0KHJlc3VsdCwgc3RhcnRPZmZzZXQpOwogICAgIGNvbnRleHQuc2V0RW5kT2Zmc2V0KHJl
c3VsdCwgZW5kT2Zmc2V0KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtMTE0Myw5ICsxMTQ2
LDExIEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWUKICAgICBpbnQg
bm9uVHJpdmlhbEV4cHJlc3Npb25Db3VudCA9IDA7CiAgICAgZmFpbElmU3RhY2tPdmVyZmxvdygp
OwogICAgIFRyZWVTdGF0ZW1lbnQgcmVzdWx0ID0gMDsKKyAgICBib29sIHNob3VsZFNldEVuZE9m
ZnNldCA9IHRydWU7CiAgICAgc3dpdGNoIChtX3Rva2VuLm1fdHlwZSkgewogICAgIGNhc2UgT1BF
TkJSQUNFOgogICAgICAgICByZXN1bHQgPSBwYXJzZUJsb2NrU3RhdGVtZW50KGNvbnRleHQpOwor
ICAgICAgICBzaG91bGRTZXRFbmRPZmZzZXQgPSBmYWxzZTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBWQVI6CiAgICAgICAgIHJlc3VsdCA9IHBhcnNlVmFyRGVjbGFyYXRpb24oY29udGV4dCk7
CkBAIC0xMjI4LDcgKzEyMzMsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVT
dGF0ZW1lCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGlmIChyZXN1bHQpCisgICAgaWYg
KHJlc3VsdCAmJiBzaG91bGRTZXRFbmRPZmZzZXQpCiAgICAgICAgIGNvbnRleHQuc2V0RW5kT2Zm
c2V0KHJlc3VsdCwgbV9sYXN0VG9rZW5FbmRQb3NpdGlvbi5vZmZzZXQpOwogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CkBAIC0yMzEyLDYgKzIzMTcsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxk
ZXI+IFRyZWVFeHByZXNzCiAgICAgVHJlZUV4cHJlc3Npb24gYmFzZSA9IDA7CiAgICAgSlNUZXh0
UG9zaXRpb24gZXhwcmVzc2lvblN0YXJ0ID0gdG9rZW5TdGFydFBvc2l0aW9uKCk7CiAgICAgaW50
IG5ld0NvdW50ID0gMDsKKyAgICBKU1Rva2VuTG9jYXRpb24gc3RhcnRMb2NhdGlvbiA9IHRva2Vu
TG9jYXRpb24oKTsKICAgICBKU1Rva2VuTG9jYXRpb24gbG9jYXRpb247CiAgICAgd2hpbGUgKG1h
dGNoKE5FVykpIHsKICAgICAgICAgbmV4dCgpOwpAQCAtMjM1MCw3ICsyMzU2LDcgQEAgdGVtcGxh
dGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzcwogICAgICAgICAgICAgICAgIEpTVGV4
dFBvc2l0aW9uIGV4cHJlc3Npb25FbmQgPSBsYXN0VG9rZW5FbmRQb3NpdGlvbigpOwogICAgICAg
ICAgICAgICAgIFRyZWVBcmd1bWVudHMgYXJndW1lbnRzID0gcGFyc2VBcmd1bWVudHMoY29udGV4
dCwgQWxsb3dTcHJlYWQpOwogICAgICAgICAgICAgICAgIGZhaWxJZkZhbHNlKGFyZ3VtZW50cywg
IkNhbm5vdCBwYXJzZSBjYWxsIGFyZ3VtZW50cyIpOwotICAgICAgICAgICAgICAgIGJhc2UgPSBj
b250ZXh0Lm1ha2VGdW5jdGlvbkNhbGxOb2RlKGxvY2F0aW9uLCBiYXNlLCBhcmd1bWVudHMsIGV4
cHJlc3Npb25TdGFydCwgZXhwcmVzc2lvbkVuZCwgbGFzdFRva2VuRW5kUG9zaXRpb24oKSk7Cisg
ICAgICAgICAgICAgICAgYmFzZSA9IGNvbnRleHQubWFrZUZ1bmN0aW9uQ2FsbE5vZGUoc3RhcnRM
b2NhdGlvbiwgYmFzZSwgYXJndW1lbnRzLCBleHByZXNzaW9uU3RhcnQsIGV4cHJlc3Npb25FbmQs
IGxhc3RUb2tlbkVuZFBvc2l0aW9uKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgbV9u
b25MSFNDb3VudCA9IG5vbkxIU0NvdW50OwogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CYXNpY0Jsb2NrTG9jYXRpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jhc2ljQmxvY2tMb2NhdGlvbi5j
cHAJKHJldmlzaW9uIDE4MDM4OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jh
c2ljQmxvY2tMb2NhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDggKzYyLDggQEAgVmVj
dG9yPHN0ZDo6cGFpcjxpbnQsIGludD4+IEJhc2ljQmxvY2tMbwogICAgICAgICAgICAgICAgIG1p
bklkeCA9IGlkeDsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICByZXN1bHQuYXBw
ZW5kKEdhcChuZXh0UmFuZ2VTdGFydCwgbWluR2FwLmZpcnN0KSk7Ci0gICAgICAgIG5leHRSYW5n
ZVN0YXJ0ID0gbWluR2FwLnNlY29uZDsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChHYXAobmV4dFJh
bmdlU3RhcnQsIG1pbkdhcC5maXJzdCAtIDEpKTsKKyAgICAgICAgbmV4dFJhbmdlU3RhcnQgPSBt
aW5HYXAuc2Vjb25kICsgMTsKICAgICAgICAgZ2Fwcy5yZW1vdmUobWluSWR4KTsKICAgICB9CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnRyb2xGbG93UHJvZmlsZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnRyb2xG
bG93UHJvZmlsZXIuY3BwCShyZXZpc2lvbiAxODAzODgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTEs
NyArOTEsNyBAQCBWZWN0b3I8QmFzaWNCbG9ja1JhbmdlPiBDb250cm9sRmxvd1Byb2ZpCiAgICAg
ICAgIEJhc2ljQmxvY2tSYW5nZSByYW5nZTsKICAgICAgICAgcmFuZ2UubV9oYXNFeGVjdXRlZCA9
IHN0ZDo6Z2V0PDA+KGZ1bmN0aW9uUmFuZ2UpOwogICAgICAgICByYW5nZS5tX3N0YXJ0T2Zmc2V0
ID0gc3RhdGljX2Nhc3Q8aW50PihzdGQ6OmdldDwxPihmdW5jdGlvblJhbmdlKSk7Ci0gICAgICAg
IHJhbmdlLm1fZW5kT2Zmc2V0ID0gc3RhdGljX2Nhc3Q8aW50PihzdGQ6OmdldDwyPihmdW5jdGlv
blJhbmdlKSArIDEpOworICAgICAgICByYW5nZS5tX2VuZE9mZnNldCA9IHN0YXRpY19jYXN0PGlu
dD4oc3RkOjpnZXQ8Mj4oZnVuY3Rpb25SYW5nZSkpOwogICAgICAgICByZXN1bHQuYXBwZW5kKHJh
bmdlKTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9jb250cm9s
Rmxvd1Byb2ZpbGVyL2JyYWNlLWxvY2F0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9jb250cm9sRmxvd1Byb2ZpbGVyL2JyYWNlLWxvY2F0aW9uLmpzCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2NvbnRyb2xGbG93UHJv
ZmlsZXIvYnJhY2UtbG9jYXRpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNTYgQEAK
K2xvYWQoIi4vZHJpdmVyL2RyaXZlci5qcyIpOworCitmdW5jdGlvbiBmb28oKSB7fQorZnVuY3Rp
b24gYmFyKCkge30KK2Z1bmN0aW9uIGJheigpIHt9CisKK2Z1bmN0aW9uIHRlc3RJZih4KSB7Cisg
ICAgaWYgKHggPCAxMCkgeyBmb28oKTsgfSBlbHNlIGlmICh4IDwgMjApIHsgYmFyKCk7IH0gZWxz
ZSB7IGJheigpIH0KK30KK3Rlc3RJZig5KTsKKy8vIE5vdGUsIHRoZSBjaGVjayB3aWxsIGJlIGFn
YWluc3QgdGhlIGJhc2ljIGJsb2NrIHRoYXQgY29udGFpbnMgdGhlIGZpcnN0IG1hdGNoZWQgY2hh
cmFjdGVyLiAKKy8vIFNvIGluIHRoaXMgZm9sbG93aW5nIGNhc2UsIHRoZSBibG9jayB0aGF0IGNv
bnRhaW5zIHRoZSAneycuCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZiwgInsg
Zm9vIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsKKy8vIEluIHRoaXMgY2FzZSwgaXQgd2ls
bCB0ZXN0IHRoZSBiYXNpYyBibG9jayB0aGF0IGNvbnRhaW5zIHRoZSAnICcgY2hhcmFjdGVyLgor
YXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWYsICIgZm9vIiksICJzaG91bGQgaGF2
ZSBleGVjdXRlZC4iKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAifSBl
bHNlIGlmIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsKK2Fzc2VydCghaGFzQmFzaWNCbG9j
a0V4ZWN1dGVkKHRlc3RJZiwgImVsc2UgaWYiKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4i
KTsKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZiwgInsgYmFyIiksICJzaG91
bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQo
dGVzdElmLCAiIGJhciIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCgh
aGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZiwgImVsc2UgeyIpLCAic2hvdWxkIG5vdCBoYXZl
IGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZiwgInsg
YmF6IiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Js
b2NrRXhlY3V0ZWQodGVzdElmLCAiIGJheiIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIp
OyAKK3Rlc3RJZigyMSk7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZiwgImVs
c2UgaWYgKHggPCAyMCkiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFz
QmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZiwgInsgYmFyIiksICJzaG91bGQgbm90IGhhdmUgZXhl
Y3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAiIGJhciIp
LCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhl
Y3V0ZWQodGVzdElmLCAiZWxzZSB7IiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCithc3Nl
cnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZiwgInsgYmF6IiksICJzaG91bGQgaGF2ZSBl
eGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZiwgIiBiYXoi
KSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK3Rlc3RJZigxMSk7Cithc3NlcnQoaGFzQmFz
aWNCbG9ja0V4ZWN1dGVkKHRlc3RJZiwgInsgYmFyIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4i
KTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZiwgIiBiYXIiKSwgInNob3Vs
ZCBoYXZlIGV4ZWN1dGVkLiIpOyAKKworZnVuY3Rpb24gdGVzdEZvclJlZ3VsYXIoeCkgeworICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgeDsgaSsrKSB7IGZvbygpOyB9IGJhcigpOworfQordGVzdEZv
clJlZ3VsYXIoMCk7Cithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yUmVndWxh
ciwgInsgZm9vIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNC
YXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvclJlZ3VsYXIsICJ9IGJhciIpLCAic2hvdWxkIG5vdCBo
YXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvclJl
Z3VsYXIsICIgYmFyIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCit0ZXN0Rm9yUmVndWxh
cigxKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvclJlZ3VsYXIsICJ7IGZv
byIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVj
dXRlZCh0ZXN0Rm9yUmVndWxhciwgIn0gYmFyIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsg
CisKK2Z1bmN0aW9uIHRlc3RGb3JJbih4KSB7CisgICAgZm9yICh2YXIgaSBpbiB4KSB7IGZvbygp
OyB9IGJhcigpOworfQordGVzdEZvckluKHt9KTsKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1
dGVkKHRlc3RGb3JJbiwgInsgZm9vIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7IAor
YXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvckluLCAifSBiYXIiKSwgInNob3Vs
ZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRl
c3RGb3JJbiwgIiBiYXIiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK3Rlc3RGb3JJbih7
Zm9vOiAyMH0pOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9ySW4sICJ7IGZv
byIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVj
dXRlZCh0ZXN0Rm9ySW4sICJ9IGJhciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorCitm
dW5jdGlvbiB0ZXN0Rm9yT2YoeCkgeworICAgIGZvciAodmFyIGkgb2YgeCkgeyBmb28oKTsgfSBi
YXIoKTsKK30KK3Rlc3RGb3JPZihbXSk7Cithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0
ZXN0Rm9yT2YsICJ7IGZvbyIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2Vy
dCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JPZiwgIiBmb28iKSwgInNob3VsZCBub3Qg
aGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9y
T2YsICJ9IGJhciIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNC
YXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvck9mLCAiIGJhciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0
ZWQuIik7IAordGVzdEZvck9mKFsyMF0pOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0
ZXN0Rm9yT2YsICJ7IGZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhh
c0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yT2YsICJ9IGJhciIpLCAic2hvdWxkIGhhdmUgZXhl
Y3V0ZWQuIik7IAorCitmdW5jdGlvbiB0ZXN0V2hpbGUoeCkgeworICAgIHZhciBpID0gMDsgd2hp
bGUgKGkrKyA8IHgpIHsgZm9vKCk7IH0gYmFyKCk7Cit9Cit0ZXN0V2hpbGUoMCk7Cithc3NlcnQo
IWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0V2hpbGUsICJ7IGZvbyIpLCAic2hvdWxkIG5vdCBo
YXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RXaGls
ZSwgIiBmb28iKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jh
c2ljQmxvY2tFeGVjdXRlZCh0ZXN0V2hpbGUsICJ9IGJhciIpLCAic2hvdWxkIG5vdCBoYXZlIGV4
ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdFdoaWxlLCAiIGJh
ciIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK3Rlc3RXaGlsZSgxKTsKK2Fzc2Vy
dChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdFdoaWxlLCAieyBmb28iKSwgInNob3VsZCBoYXZl
IGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdFdoaWxlLCAi
fSBiYXIiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKKworCisvLyBObyBicmFjZXMgdGVz
dHMuCisKK2Z1bmN0aW9uIHRlc3RJZk5vQnJhY2VzKHgpIHsKKyAgICBpZiAoeCA8IDEwKSBmb28o
KTsgZWxzZSBpZiAoeCA8IDIwKSBiYXIoKTsgZWxzZSBiYXooKTsKK30KK3Rlc3RJZk5vQnJhY2Vz
KDkpOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWZOb0JyYWNlcywgImZvbyIp
LCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVk
KHRlc3RJZk5vQnJhY2VzLCAiIGZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7Cithc3Nl
cnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZk5vQnJhY2VzLCAiOyBlbHNlIGlmIiksICJz
aG91bGQgaGF2ZSBleGVjdXRlZC4iKTsKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRl
c3RJZk5vQnJhY2VzLCAiIGVsc2UgaWYiKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsK
K2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZk5vQnJhY2VzLCAiIGJhciIpLCAi
c2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1
dGVkKHRlc3RJZk5vQnJhY2VzLCAiYmFyIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7
IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmTm9CcmFjZXMsICJlbHNlIGJh
eiIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFzaWNCbG9j
a0V4ZWN1dGVkKHRlc3RJZk5vQnJhY2VzLCAiYmF6IiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0
ZWQuIik7IAordGVzdElmTm9CcmFjZXMoMjEpOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRl
ZCh0ZXN0SWZOb0JyYWNlcywgImVsc2UgYmF6IiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsg
Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZk5vQnJhY2VzLCAiYmF6IiksICJz
aG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0
ZXN0SWZOb0JyYWNlcywgIjsgZWxzZSBiYXoiKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4i
KTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZk5vQnJhY2VzLCAiZWxzZSBp
ZiAoeCA8IDIwKSIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7Cithc3NlcnQoaGFzQmFzaWNC
bG9ja0V4ZWN1dGVkKHRlc3RJZk5vQnJhY2VzLCAiIGJhciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0
ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmTm9CcmFjZXMsICJi
YXIiKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCit0ZXN0SWZOb0JyYWNlcygxMSk7
Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZk5vQnJhY2VzLCAiIGJhciIpLCAi
c2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0
ZXN0SWZOb0JyYWNlcywgImJhciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorCitmdW5j
dGlvbiB0ZXN0Rm9yUmVndWxhck5vQnJhY2VzKHgpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHg7IGkrKykgZm9vKCk7IGJhcigpOworfQordGVzdEZvclJlZ3VsYXJOb0JyYWNlcygwKTsKK2Fz
c2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvclJlZ3VsYXJOb0JyYWNlcywgIiBmb28i
KSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1
dGVkKHRlc3RGb3JSZWd1bGFyTm9CcmFjZXMsICJmb28iKSwgInNob3VsZCBub3QgaGF2ZSBleGVj
dXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yUmVndWxhck5v
QnJhY2VzLCAiOyBiYXIiKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQo
aGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JSZWd1bGFyTm9CcmFjZXMsICIgYmFyIiksICJz
aG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCit0ZXN0Rm9yUmVndWxhck5vQnJhY2VzKDEpOworYXNz
ZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yUmVndWxhck5vQnJhY2VzLCAiIGZvbyIp
LCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRl
ZCh0ZXN0Rm9yUmVndWxhck5vQnJhY2VzLCAiZm9vIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4i
KTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JSZWd1bGFyTm9CcmFjZXMs
ICIgYmFyIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7IAorCitmdW5jdGlvbiB0ZXN0
Rm9ySW5Ob0JyYWNlcyh4KSB7CisgICAgZm9yICh2YXIgaSBpbiB4KSBmb28oKTsgYmFyKCk7Cit9
Cit0ZXN0Rm9ySW5Ob0JyYWNlcyh7fSk7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRl
c3RGb3JJbk5vQnJhY2VzLCAiIGZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNz
ZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvckluTm9CcmFjZXMsICJmb28iKSwgInNo
b3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRl
ZCh0ZXN0Rm9ySW5Ob0JyYWNlcywgIjsgYmFyIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQu
Iik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9ySW5Ob0JyYWNlcywgIiBi
YXIiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK3Rlc3RGb3JJbk5vQnJhY2VzKHtmb286
IDIwfSk7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JJbk5vQnJhY2VzLCAi
IGZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tF
eGVjdXRlZCh0ZXN0Rm9ySW5Ob0JyYWNlcywgImZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQu
Iik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9ySW5Ob0JyYWNlcywgIjsg
YmFyIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCisKK2Z1bmN0aW9uIHRlc3RGb3JPZk5v
QnJhY2VzKHgpIHsKKyAgICBmb3IgKHZhciBpIG9mIHgpIGZvbygpOyBiYXIoKTsKK30KK3Rlc3RG
b3JPZk5vQnJhY2VzKFtdKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvck9m
Tm9CcmFjZXMsICIgZm9vIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhh
c0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yT2ZOb0JyYWNlcywgImZvbyIpLCAic2hvdWxkIG5v
dCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RG
b3JPZk5vQnJhY2VzLCAiOyBiYXIiKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCith
c3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JPZk5vQnJhY2VzLCAiIGJhciIpLCAi
c2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAordGVzdEZvck9mTm9CcmFjZXMoWzIwXSk7Cithc3Nl
cnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JPZk5vQnJhY2VzLCAiIGZvbyIpLCAic2hv
dWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0
Rm9yT2ZOb0JyYWNlcywgImZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0
KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yT2ZOb0JyYWNlcywgIjsgYmFyIiksICJzaG91
bGQgaGF2ZSBleGVjdXRlZC4iKTsgCisKK2Z1bmN0aW9uIHRlc3RXaGlsZU5vQnJhY2VzKHgpIHsK
KyAgICB2YXIgaSA9IDA7IHdoaWxlIChpKysgPCB4KSBmb28oKTsgYmFyKCk7Cit9Cit0ZXN0V2hp
bGVOb0JyYWNlcygwKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdFdoaWxlTm9C
cmFjZXMsICIgZm9vIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jh
c2ljQmxvY2tFeGVjdXRlZCh0ZXN0V2hpbGVOb0JyYWNlcywgImZvbyIpLCAic2hvdWxkIG5vdCBo
YXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RXaGls
ZU5vQnJhY2VzLCAiOyBiYXIiKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3Nl
cnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RXaGlsZU5vQnJhY2VzLCAiIGJhciIpLCAic2hv
dWxkIGhhdmUgZXhlY3V0ZWQuIik7IAordGVzdFdoaWxlTm9CcmFjZXMoMSk7Cithc3NlcnQoaGFz
QmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RXaGlsZU5vQnJhY2VzLCAiIGZvbyIpLCAic2hvdWxkIGhh
dmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0V2hpbGVO
b0JyYWNlcywgImZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jh
c2ljQmxvY2tFeGVjdXRlZCh0ZXN0V2hpbGVOb0JyYWNlcywgIjsgYmFyIiksICJzaG91bGQgaGF2
ZSBleGVjdXRlZC4iKTsgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvY29udHJv
bEZsb3dQcm9maWxlci9jb25kaXRpb25hbC1leHByZXNzaW9uLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9jb250cm9sRmxvd1Byb2ZpbGVyL2NvbmRpdGlvbmFs
LWV4cHJlc3Npb24uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvY29udHJvbEZsb3dQcm9maWxlci9jb25kaXRpb25hbC1leHByZXNzaW9uLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDQgQEAKK2xvYWQoIi4vZHJpdmVyL2RyaXZlci5qcyIpOworCitm
dW5jdGlvbiBmb28oKXsgfQorZnVuY3Rpb24gYmFyKCl7IH0KK2Z1bmN0aW9uIGJheigpeyB9CisK
K2Z1bmN0aW9uIHRlc3RDb25kaXRpb25hbEJhc2ljKHgpIHsKKyAgICByZXR1cm4geCA/IDEwIDog
MjA7Cit9CisKKwordGVzdENvbmRpdGlvbmFsQmFzaWMoZmFsc2UpOworYXNzZXJ0KGhhc0Jhc2lj
QmxvY2tFeGVjdXRlZCh0ZXN0Q29uZGl0aW9uYWxCYXNpYywgIngiKSwgInNob3VsZCBoYXZlIGV4
ZWN1dGVkLiIpOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Q29uZGl0aW9uYWxC
YXNpYywgIjIwIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsKK2Fzc2VydCghaGFzQmFzaWNC
bG9ja0V4ZWN1dGVkKHRlc3RDb25kaXRpb25hbEJhc2ljLCAiMTAiKSwgInNob3VsZCBub3QgaGF2
ZSBleGVjdXRlZCB5ZXQuIik7CisKK3Rlc3RDb25kaXRpb25hbEJhc2ljKHRydWUpOworYXNzZXJ0
KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Q29uZGl0aW9uYWxCYXNpYywgIjEwIiksICJzaG91
bGQgaGF2ZSBleGVjdXRlZC4iKTsKKworCitmdW5jdGlvbiB0ZXN0Q29uZGl0aW9uYWxGdW5jdGlv
bkNhbGwoeCwgeSkgeworICAgIHggPyB5ID8gZm9vKCkgCisgICAgICAgIDogYmF6KCkgCisgICAg
ICAgIDogYmFyKCkKK30KK3Rlc3RDb25kaXRpb25hbEZ1bmN0aW9uQ2FsbChmYWxzZSwgZmFsc2Up
OworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Q29uZGl0aW9uYWxGdW5jdGlvbkNh
bGwsICJ4IiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2Nr
RXhlY3V0ZWQodGVzdENvbmRpdGlvbmFsRnVuY3Rpb25DYWxsLCAiPyB5IiksICJzaG91bGQgaGF2
ZSBleGVjdXRlZC4iKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdENvbmRpdGlv
bmFsRnVuY3Rpb25DYWxsLCAiYmFyIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsKK2Fzc2Vy
dChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdENvbmRpdGlvbmFsRnVuY3Rpb25DYWxsLCAiOiBi
YXIiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOworYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhl
Y3V0ZWQodGVzdENvbmRpdGlvbmFsRnVuY3Rpb25DYWxsLCAieSIpLCAic2hvdWxkIG5vdCBoYXZl
IGV4ZWN1dGVkLiIpOworYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdENvbmRpdGlv
bmFsRnVuY3Rpb25DYWxsLCAiPyBmb28iKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZCB5ZXQu
Iik7Cithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Q29uZGl0aW9uYWxGdW5jdGlv
bkNhbGwsICJmb28iKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZCB5ZXQuIik7Cithc3NlcnQo
IWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Q29uZGl0aW9uYWxGdW5jdGlvbkNhbGwsICJiYXoi
KSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZCB5ZXQuIik7CisKK3Rlc3RDb25kaXRpb25hbEZ1
bmN0aW9uQ2FsbCh0cnVlLCBmYWxzZSk7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRl
c3RDb25kaXRpb25hbEZ1bmN0aW9uQ2FsbCwgInkiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIp
OworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Q29uZGl0aW9uYWxGdW5jdGlvbkNh
bGwsICI/IGZvbyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQgLiIpOworYXNzZXJ0KGhhc0Jhc2lj
QmxvY2tFeGVjdXRlZCh0ZXN0Q29uZGl0aW9uYWxGdW5jdGlvbkNhbGwsICI6IGJheiIpLCAic2hv
dWxkIGhhdmUgZXhlY3V0ZWQuIik7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RD
b25kaXRpb25hbEZ1bmN0aW9uQ2FsbCwgImJheiIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7
Cithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Q29uZGl0aW9uYWxGdW5jdGlvbkNh
bGwsICJmb28iKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZCB5ZXQuIik7CisKK3Rlc3RDb25k
aXRpb25hbEZ1bmN0aW9uQ2FsbCh0cnVlLCB0cnVlKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhl
Y3V0ZWQodGVzdENvbmRpdGlvbmFsRnVuY3Rpb25DYWxsLCAiZm9vIiksICJzaG91bGQgaGF2ZSBl
eGVjdXRlZC4iKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247133</attachid>
            <date>2015-02-23 12:15:27 -0800</date>
            <delta_ts>2015-02-23 13:10:36 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>32042</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgwNTEwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwMCBA
QAorMjAxNS0wMi0yMyAgU2FhbSBCYXJhdGkgIDxzYWFtYmFyYXRpMUBnbWFpbC5jb20+CisKKyAg
ICAgICAgQWRqdXN0IHRoZSByYW5nZXMgb2YgYmFzaWMgYmxvY2sgc3RhdGVtZW50cyBpbiBKU0Mn
cyBjb250cm9sIGZsb3cgcHJvZmlsZXIgdG8gYmUgbXV0dWFsbHkgZXhjbHVzaXZlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDEwOTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICBTdXBwb3NlIHRoZSBjb250cm9sIGZs
b3cgb2YgYSBwcm9ncmFtIGZvcm1zIGJhc2ljIGJsb2NrIEEgd2l0aCBzdWNjZXNzb3IgYmxvY2sK
KyAgICAgICAgQi4gQSdzIGVuZCBvZmZzZXQgd2lsbCBiZSB0aGUgKnNhbWUqIGFzIEIncyBzdGFy
dCBvZmZzZXQgaW4gdGhlIGN1cnJlbnQgYXJjaGl0ZWN0dXJlIAorICAgICAgICBvZiB0aGUgY29u
dHJvbCBmbG93IHByb2ZpbGVyLiBUaGlzIG1ha2VzIHJlYXNvbmluZyBhYm91dCB0aGUgdGV4dCBv
ZmZzZXRzIG9mCisgICAgICAgIHRoZSBjb250cm9sIGZsb3cgcHJvZmlsZXIgdW5zb3VuZC4gVG8g
bWFrZSByZWFzb25pbmcgYWJvdXQgb2Zmc2V0cyBzb3VuZCwgYWxsIAorICAgICAgICBiYXNpYyBi
bG9jayByYW5nZXMgc2hvdWxkIGJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIEFsbCBjYWxscyB0byBl
bWl0UHJvZmlsZUNvbnRyb2xGbG93IAorICAgICAgICBub3cgcGFzcyBpbiB0aGUgKnN0YXJ0KiBv
ZiBhIGJhc2ljIGJsb2NrIGFzIHRoZSB0ZXh0IG9mZnNldCBhcmd1bWVudC4gVGhpcyBzaW1wbGlm
aWVzIAorICAgICAgICBhbGwgY2FsbHMgdG8gZW1pdFByb2ZpbGVDb250cm9sRmxvdyBiZWNhdXNl
IHRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbiBoYWQgYQorICAgICAgICBsb3Qgb2YgZWRnZSBj
YXNlcyBmb3IgZ2V0dGluZyB0aGUgZGVzaXJlZCBiYXNpYyBibG9jayB0ZXh0IGJvdW5kYXJpZXMu
CisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIGhhcyBlbnN1cmVzIHRoYXQgdGhlIGJhc2ljIGJs
b2NrIGJvdW5kYXJ5IG9mIGEgYmxvY2sgc3RhdGVtZW50IAorICAgICAgICBpcyB0aGUgZXhhY3Rs
eSB0aGUgYmxvY2sncyBvcGVuIGFuZCBjbG9zZSBicmFjZSBvZmZzZXRzIChpbmNsdXNpdmUpLiBG
b3IgZXhhbXBsZSwKKyAgICAgICAgaW4gaWYvZm9yL3doaWxlIHN0YXRlbWVudHMuIFRoaXMgYWxz
byBoYXMgdGhlIGNvbnNlcXVlbmNlIHRoYXQgZm9yIHN0YXRlbWVudHMgCisgICAgICAgIGxpa2Ug
ImlmIChjb25kKSBmb28oKTsiLCB0aGUgd2hpdGVzcGFjZSBwcmVjZWRpbmcgImZvbygpIiBpcyBu
b3QgcGFydCBvZiAKKyAgICAgICAgdGhlICJmb28oKSIgYmFzaWMgYmxvY2ssIGJ1dCBpbnN0ZWFk
IGlzIHBhcnQgb2YgdGhlICJpZiAoY29uZCkiIGJhc2ljIGJsb2NrLiAKKyAgICAgICAgVGhpcyBp
cyBva2F5IGJlY2F1c2UgdGhlc2UgdGV4dCBvZmZzZXRzIGFyZW4ndCBtZWFudCB0byBiZSBodW1h
biByZWFkYWJsZS4KKyAgICAgICAgSW5zdGVhZCwgdGhleSByZWZsZWN0IHRoZSB0ZXh0IG9mZnNl
dHMgb2YgSlNDJ3MgQVNUIG5vZGVzLiBUaGUgV2ViCisgICAgICAgIEluc3BlY3RvciBpcyB0aGUg
b25seSBjbGllbnQgb2YgdGhpcyBBUEkgYW5kIHRoZXNlIHRleHQgb2Zmc2V0cyBhbmQgaXQKKyAg
ICAgICAgaXMgbm90IG5lZ2F0aXZlbHkgZWZmZWN0ZWQgYnkgdGhpcyB0ZXh0IG9mZnNldCBiZWhh
dmlvci4KKworICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkNvZGVCbG9jazo6aW5zZXJ0QmFzaWNCbG9ja0JvdW5kYXJpZXNGb3JDb250cm9sRmxvd1Byb2Zp
bGVyKToKKyAgICAgICAgV2hlbiBjb21wdXRpbmcgYmFzaWMgYmxvY2sgYm91bmRhcmllcyBpbiBD
b2RlQmxvY2ssIHdlIGVuc3VyZSB0aGF0IGV2ZXJ5CisgICAgICAgIGJsb2NrJ3MgZW5kIG9mZnNl
dCBpcyBvbmUgbGVzcyB0aGFuIGl0cyBzdWNjZXNzb3IncyBzdGFydCBvZmZzZXQgdG8KKyAgICAg
ICAgbWFpbnRhaW4gdGhhdCBib3VuZGFyaWVzJyByYW5nZXMgc2hvdWxkIGJlIG11dHVhbGx5IGV4
Y2x1c2l2ZS4KKworICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6
CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcik6Cisg
ICAgICAgIEJlY2F1c2UgdGhlIGNvbnRyb2wgZmxvdyBwcm9maWxlciBuZWVkcyB0byBrbm93IHdo
aWNoIGZ1bmN0aW9ucworICAgICAgICBoYXZlIGV4ZWN1dGVkLCB3ZSBjYW4ndCBsYXppbHkgY3Jl
YXRlIGZ1bmN0aW9ucy4gVGhpcyB3YXMgYSBidWcgCisgICAgICAgIGZyb20gYmVmb3JlIHRoYXQg
d2FzIGhpZGRlbiBiZWNhdXNlIHRoZSBUeXBlIFByb2ZpbGVyIHdhcyBhbHdheXMgCisgICAgICAg
IGVuYWJsZWQgd2hlbiB0aGUgY29udHJvbCBmbG93IHByb2ZpbGVyIHdhcyBlbmFibGVkIHdoZW4g
cHJvZmlsaW5nIAorICAgICAgICB3YXMgdHVybmVkIG9uIGZyb20gdGhlIFdlYiBJbnNwZWN0b3Iu
IEJ1dCwgSlNDIGFsbG93cyBmb3IgQ29udHJvbCAKKyAgICAgICAgRmxvdyBwcm9maWxpbmcgdG8g
YmUgdHVybmVkIG9uIHdpdGhvdXQgVHlwZSBQcm9maWxpbmcsIHNvIHdlIG5lZWQgCisgICAgICAg
IHRvIGVuc3VyZSB0aGUgQ29udHJvbCBGbG93IHByb2ZpbGVyIGhhcyBhbGwgdGhlIGRhdGEgaXQg
bmVlZHMuCisKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAg
ICAgKEpTQzo6Q29uZGl0aW9uYWxOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpJ
ZkVsc2VOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpXaGlsZU5vZGU6OmVtaXRC
eXRlY29kZSk6CisgICAgICAgIChKU0M6OkZvck5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAg
IChKU0M6OkZvckluTm9kZTo6ZW1pdE11bHRpTG9vcEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6
Rm9yT2ZOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpUcnlOb2RlOjplbWl0Qnl0
ZWNvZGUpOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChmdW5jdGlvbkhhc0Jhc2ljQmxv
Y2tFeGVjdXRlZCk6CisgICAgICAgIFdlIG5vdyBhc3NlcnQgdGhhdCB0aGUgc3Vic3RyaW5nIGFy
Z3VtZW50IGlzIGluZGVlZCBhIHN1YnN0cmluZworICAgICAgICBvZiB0aGUgZnVuY3Rpb24gYXJn
dW1lbnQncyB0ZXh0IGJlY2F1c2Ugc3VidGxlIGJ1Z3MgY291bGQgYmUKKyAgICAgICAgaW50cm9k
dWNlZCBvdGhlcndpc2UuCisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAg
ICAoSlNDOjpBU1RCdWlsZGVyOjpzZXRTdGFydE9mZnNldCk6CisgICAgICAgICogcGFyc2VyL05v
ZGVzLmg6CisgICAgICAgIChKU0M6Ok5vZGU6OnNldFN0YXJ0T2Zmc2V0KToKKyAgICAgICAgKiBw
YXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNl
QmxvY2tTdGF0ZW1lbnQpOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VT
dGF0ZW1lbnQpOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VNZW1iZXJF
eHByZXNzaW9uKToKKyAgICAgICAgRm9yIHRoZSB2YXJpb3VzIGZ1bmN0aW9uIGNhbGwgQVNUIG5v
ZGVzLCB0aGVpciBtX3Bvc2l0aW9uIG1lbWJlciAKKyAgICAgICAgdmFyaWFibGUgaXMgbm93IHRo
ZSBzdGFydCBvZiB0aGUgZW50aXJlIGZ1bmN0aW9uIGNhbGwgZXhwcmVzc2lvbiAKKyAgICAgICAg
YW5kIG5vdCBhdCB0aGUgc3RhcnQgb2YgdGhlIG9wZW4gcGFyZW4gb2YgdGhlIGFyZ3VtZW50cyBs
aXN0LgorCisgICAgICAgICogcnVudGltZS9CYXNpY0Jsb2NrTG9jYXRpb24uY3BwOgorICAgICAg
ICAoSlNDOjpCYXNpY0Jsb2NrTG9jYXRpb246OmdldEV4ZWN1dGVkUmFuZ2VzKToKKyAgICAgICAg
KiBydW50aW1lL0NvbnRyb2xGbG93UHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpDb250cm9s
Rmxvd1Byb2ZpbGVyOjpnZXRCYXNpY0Jsb2Nrc0ZvclNvdXJjZUlEKToKKyAgICAgICAgRnVuY3Rp
b24gcmFuZ2VzIGluc2VydGVkIGFzIGdhcHMgc2hvdWxkIGZvbGxvdyB0aGUgc2FtZSBjcml0ZXJp
YQorICAgICAgICB0aGF0IHRoZSBieXRlY29kZSBnZW5lcmF0b3IgdXNlcyB0byBlbnN1cmUgdGhh
dCBiYXNpYyBibG9ja3MKKyAgICAgICAgc3RhcnQgYW5kIGVuZCBvZmZzZXRzIGFyZSBtdXR1YWxs
eSBleGNsdXNpdmUuCisKKyAgICAgICAgKiB0ZXN0cy9jb250cm9sRmxvd1Byb2ZpbGVyL2JyYWNl
LWxvY2F0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgIChiYXIpOgorICAg
ICAgICAoYmF6KToKKyAgICAgICAgKHRlc3RJZik6CisgICAgICAgICh0ZXN0Rm9yUmVndWxhcik6
CisgICAgICAgICh0ZXN0Rm9ySW4pOgorICAgICAgICAodGVzdEZvck9mKToKKyAgICAgICAgKHRl
c3RXaGlsZSk6CisgICAgICAgICh0ZXN0SWZOb0JyYWNlcyk6CisgICAgICAgICh0ZXN0Rm9yUmVn
dWxhck5vQnJhY2VzKToKKyAgICAgICAgKHRlc3RGb3JJbk5vQnJhY2VzKToKKyAgICAgICAgKHRl
c3RGb3JPZk5vQnJhY2VzKToKKyAgICAgICAgKHRlc3RXaGlsZU5vQnJhY2VzKToKKyAgICAgICAg
KiB0ZXN0cy9jb250cm9sRmxvd1Byb2ZpbGVyL2NvbmRpdGlvbmFsLWV4cHJlc3Npb24uanM6IEFk
ZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAgICAgIChiYXopOgorICAg
ICAgICAodGVzdENvbmRpdGlvbmFsQmFzaWMpOgorICAgICAgICAodGVzdENvbmRpdGlvbmFsRnVu
Y3Rpb25DYWxsKToKKwogMjAxNS0wMi0yMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhIGNvbW1lbnQgdG8gY2xhcmlmeSB0aGF0IHRoZSB0ZXN0IHdhcyB0
YWtlbiBmcm9tIHRoZSBidWcgcmVwb3J0LCBpbiByZXNwb25zZSB0bwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAJKHJldmlzaW9uIDE4MDUxMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTI3LDYgKzExMjcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uSGFzCiAgICAgUkVMRUFTRV9BU1NFUlQoZXhlYy0+YXJndW1l
bnQoMSkuaXNTdHJpbmcoKSk7CiAgICAgU3RyaW5nIHN1YnN0cmluZyA9IGV4ZWMtPmFyZ3VtZW50
KDEpLmdldFN0cmluZyhleGVjKTsKICAgICBTdHJpbmcgc291cmNlQ29kZVRleHQgPSBleGVjdXRh
YmxlLT5zb3VyY2UoKS50b1N0cmluZygpOworICAgIFJFTEVBU0VfQVNTRVJUKHNvdXJjZUNvZGVU
ZXh0LmNvbnRhaW5zKHN1YnN0cmluZykpOwogICAgIGludCBvZmZzZXQgPSBzb3VyY2VDb2RlVGV4
dC5maW5kKHN1YnN0cmluZykgKyBleGVjdXRhYmxlLT5zb3VyY2UoKS5zdGFydE9mZnNldCgpOwog
ICAgIAogICAgIGJvb2wgaGFzRXhlY3V0ZWQgPSBleGVjLT52bSgpLmNvbnRyb2xGbG93UHJvZmls
ZXIoKS0+aGFzQmFzaWNCbG9ja0F0VGV4dE9mZnNldEJlZW5FeGVjdXRlZChvZmZzZXQsIGV4ZWN1
dGFibGUtPnNvdXJjZUlEKCksIGV4ZWMtPnZtKCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDE4MDUxMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00MDUyLDcgKzQwNTIsNyBAQCB2b2lkIENvZGVCbG9jazo6aW5zZXJ0QmFzaWNCbG9ja0JvdW5k
YXJpCiAgICAgICAgIGlmIChpICsgMSA8IG9mZnNldHNMZW5ndGgpIHsKICAgICAgICAgICAgIHNp
emVfdCBlbmRJZHggPSBieXRlY29kZU9mZnNldHNbaSArIDFdOwogICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlQodm0oKS0+aW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKGluc3RydWN0aW9uc1tlbmRJ
ZHhdLnUub3Bjb2RlKSA9PSBvcF9wcm9maWxlX2NvbnRyb2xfZmxvdyk7Ci0gICAgICAgICAgICBi
YXNpY0Jsb2NrRW5kT2Zmc2V0ID0gaW5zdHJ1Y3Rpb25zW2VuZElkeCArIDFdLnUub3BlcmFuZDsK
KyAgICAgICAgICAgIGJhc2ljQmxvY2tFbmRPZmZzZXQgPSBpbnN0cnVjdGlvbnNbZW5kSWR4ICsg
MV0udS5vcGVyYW5kIC0gMTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGJhc2ljQmxv
Y2tFbmRPZmZzZXQgPSBtX3NvdXJjZU9mZnNldCArIG1fb3duZXJFeGVjdXRhYmxlLT5zb3VyY2Uo
KS5sZW5ndGgoKSAtIDE7IC8vIE9mZnNldCBiZWZvcmUgdGhlIGNsb3NpbmcgYnJhY2UuCiAgICAg
ICAgICAgICBiYXNpY0Jsb2NrU3RhcnRPZmZzZXQgPSBzdGQ6Om1pbihiYXNpY0Jsb2NrU3RhcnRP
ZmZzZXQsIGJhc2ljQmxvY2tFbmRPZmZzZXQpOyAvLyBTb21lIHN0YXJ0IG9mZnNldHMgbWF5IGJl
IGF0IHRoZSBjbG9zaW5nIGJyYWNlLCBlbnN1cmUgaXQgaXMgdGhlIG9mZnNldCBiZWZvcmUuCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMTgwNTEwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMzOCw3ICszMzgsNyBAQCBCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3Io
Vk0mCiAKICAgICBtX3N5bWJvbFRhYmxlLT5zZXRDYXB0dXJlRW5kKHZpcnR1YWxSZWdpc3RlckZv
ckxvY2FsKGNvZGVCbG9jay0+bV9udW1WYXJzKS5vZmZzZXQoKSk7CiAKLSAgICBib29sIGNhbkxh
emlseUNyZWF0ZUZ1bmN0aW9ucyA9ICFmdW5jdGlvbk5vZGUtPm5lZWRzQWN0aXZhdGlvbkZvck1v
cmVUaGFuVmFyaWFibGVzKCkgJiYgIW1fc2hvdWxkRW1pdERlYnVnSG9va3MgJiYgIW1fdm0tPnR5
cGVQcm9maWxlcigpOworICAgIGJvb2wgY2FuTGF6aWx5Q3JlYXRlRnVuY3Rpb25zID0gIWZ1bmN0
aW9uTm9kZS0+bmVlZHNBY3RpdmF0aW9uRm9yTW9yZVRoYW5WYXJpYWJsZXMoKSAmJiAhbV9zaG91
bGRFbWl0RGVidWdIb29rcyAmJiAhbV92bS0+dHlwZVByb2ZpbGVyKCkgJiYgIW1fdm0tPmNvbnRy
b2xGbG93UHJvZmlsZXIoKTsKICAgICBtX2ZpcnN0TGF6eUZ1bmN0aW9uID0gY29kZUJsb2NrLT5t
X251bVZhcnM7CiAgICAgaWYgKCFzaG91bGRDYXB0dXJlQWxsVGhlVGhpbmdzKSB7CiAgICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZnVuY3Rpb25TdGFjay5zaXplKCk7ICsraSkgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2Rl
Z2VuLmNwcAkocmV2aXNpb24gMTgwNTEwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDQ0LDEyICsxNDQ0
LDEyIEBAIFJlZ2lzdGVySUQqIENvbmRpdGlvbmFsTm9kZTo6ZW1pdEJ5dGVjb2QKICAgICBnZW5l
cmF0b3IuZW1pdEp1bXAoYWZ0ZXJFbHNlLmdldCgpKTsKIAogICAgIGdlbmVyYXRvci5lbWl0TGFi
ZWwoYmVmb3JlRWxzZS5nZXQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZs
b3cobV9leHByMi0+c3RhcnRPZmZzZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29u
dHJvbEZsb3cobV9leHByMS0+ZW5kT2Zmc2V0KCkgKyAxKTsKICAgICBnZW5lcmF0b3IuZW1pdE5v
ZGUobmV3RHN0LmdldCgpLCBtX2V4cHIyKTsKIAogICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoYWZ0
ZXJFbHNlLmdldCgpKTsKIAotICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1f
ZXhwcjItPmVuZE9mZnNldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxv
dyhtX2V4cHIyLT5lbmRPZmZzZXQoKSArIDEpOwogCiAgICAgcmV0dXJuIG5ld0RzdC5nZXQoKTsK
IH0KQEAgLTE4OTcsMTIgKzE4OTcsMTMgQEAgdm9pZCBJZkVsc2VOb2RlOjplbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZQogICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoYmVmb3JlRWxzZS5nZXQoKSk7CiAK
ICAgICBpZiAobV9lbHNlQmxvY2spIHsKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29u
dHJvbEZsb3cobV9pZkJsb2NrLT5lbmRPZmZzZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0
UHJvZmlsZUNvbnRyb2xGbG93KG1faWZCbG9jay0+ZW5kT2Zmc2V0KCkgKyAobV9pZkJsb2NrLT5p
c0Jsb2NrKCkgPyAxIDogMCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX2Vs
c2VCbG9jayk7CiAgICAgfQogCiAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChhZnRlckVsc2UuZ2V0
KCkpOwotICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fZWxzZUJsb2NrID8g
bV9lbHNlQmxvY2stPmVuZE9mZnNldCgpIDogbV9pZkJsb2NrLT5lbmRPZmZzZXQoKSk7CisgICAg
U3RhdGVtZW50Tm9kZSogZW5kaW5nQmxvY2sgPSBtX2Vsc2VCbG9jayA/IG1fZWxzZUJsb2NrIDog
bV9pZkJsb2NrOworICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KGVuZGluZ0Js
b2NrLT5lbmRPZmZzZXQoKSArIChlbmRpbmdCbG9jay0+aXNCbG9jaygpID8gMSA6IDApKTsKIH0K
IAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIERvV2hpbGVOb2RlIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE5NDgsNyArMTk0OSw3IEBAIHZvaWQgV2hp
bGVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW4KIAogICAgIGdlbmVyYXRvci5lbWl0TGFi
ZWwoc2NvcGUtPmJyZWFrVGFyZ2V0KCkpOwogCi0gICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29u
dHJvbEZsb3coZW5kT2Zmc2V0KCkpOworICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xG
bG93KG1fc3RhdGVtZW50LT5lbmRPZmZzZXQoKSArIChtX3N0YXRlbWVudC0+aXNCbG9jaygpID8g
MSA6IDApKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZvck5vZGUg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE5ODMsNyArMTk4NCw3
IEBAIHZvaWQgRm9yTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXIKICAgICAgICAgZ2Vu
ZXJhdG9yLmVtaXRKdW1wKHRvcE9mTG9vcC5nZXQoKSk7CiAKICAgICBnZW5lcmF0b3IuZW1pdExh
YmVsKHNjb3BlLT5icmVha1RhcmdldCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250
cm9sRmxvdyhlbmRPZmZzZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZs
b3cobV9zdGF0ZW1lbnQtPmVuZE9mZnNldCgpICsgKG1fc3RhdGVtZW50LT5pc0Jsb2NrKCkgPyAx
IDogMCkpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRm9ySW5Ob2Rl
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjEwMCw2ICsyMTAxLDgg
QEAgdm9pZCBGb3JJbk5vZGU6OmVtaXRNdWx0aUxvb3BCeXRlY29kZShCeQogICAgIGdlbmVyYXRv
ci5lbWl0Tm9kZShiYXNlLmdldCgpLCBtX2V4cHIpOwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiBs
b2NhbCA9IHRoaXMtPnRyeUdldEJvdW5kTG9jYWwoZ2VuZXJhdG9yKTsKIAorICAgIGludCBwcm9m
aWxlclN0YXJ0T2Zmc2V0ID0gbV9zdGF0ZW1lbnQtPnN0YXJ0T2Zmc2V0KCk7CisgICAgaW50IHBy
b2ZpbGVyRW5kT2Zmc2V0ID0gbV9zdGF0ZW1lbnQtPmVuZE9mZnNldCgpICsgKG1fc3RhdGVtZW50
LT5pc0Jsb2NrKCkgPyAxIDogMCk7CiAgICAgLy8gSW5kZXhlZCBwcm9wZXJ0eSBsb29wLgogICAg
IHsKICAgICAgICAgTGFiZWxTY29wZVB0ciBzY29wZSA9IGdlbmVyYXRvci5uZXdMYWJlbFNjb3Bl
KExhYmVsU2NvcGU6Okxvb3ApOwpAQCAtMjEyMSwxMyArMjEyNCwxMyBAQCB2b2lkIEZvckluTm9k
ZTo6ZW1pdE11bHRpTG9vcEJ5dGVjb2RlKEJ5CiAgICAgICAgIGdlbmVyYXRvci5lbWl0VG9JbmRl
eFN0cmluZyhwcm9wZXJ0eU5hbWUuZ2V0KCksIGkuZ2V0KCkpOwogICAgICAgICB0aGlzLT5lbWl0
TG9vcEhlYWRlcihnZW5lcmF0b3IsIHByb3BlcnR5TmFtZS5nZXQoKSk7CiAKLSAgICAgICAgZ2Vu
ZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPnN0YXJ0T2Zmc2V0KCkp
OworICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhwcm9maWxlclN0YXJ0
T2Zmc2V0KTsKIAogICAgICAgICBnZW5lcmF0b3IucHVzaEluZGV4ZWRGb3JJblNjb3BlKGxvY2Fs
LmdldCgpLCBpLmdldCgpKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKGRzdCwgbV9zdGF0
ZW1lbnQpOwogICAgICAgICBnZW5lcmF0b3IucG9wSW5kZXhlZEZvckluU2NvcGUobG9jYWwuZ2V0
KCkpOwogCi0gICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fc3RhdGVt
ZW50LT5lbmRPZmZzZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xG
bG93KHByb2ZpbGVyRW5kT2Zmc2V0KTsKIAogICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHNj
b3BlLT5jb250aW51ZVRhcmdldCgpKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRJbmMoaS5nZXQo
KSk7CkBAIC0yMTU5LDEzICsyMTYyLDEzIEBAIHZvaWQgRm9ySW5Ob2RlOjplbWl0TXVsdGlMb29w
Qnl0ZWNvZGUoQnkKIAogICAgICAgICB0aGlzLT5lbWl0TG9vcEhlYWRlcihnZW5lcmF0b3IsIHBy
b3BlcnR5TmFtZS5nZXQoKSk7CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJv
bEZsb3cobV9zdGF0ZW1lbnQtPnN0YXJ0T2Zmc2V0KCkpOworICAgICAgICBnZW5lcmF0b3IuZW1p
dFByb2ZpbGVDb250cm9sRmxvdyhwcm9maWxlclN0YXJ0T2Zmc2V0KTsKIAogICAgICAgICBnZW5l
cmF0b3IucHVzaFN0cnVjdHVyZUZvckluU2NvcGUobG9jYWwuZ2V0KCksIGkuZ2V0KCksIHByb3Bl
cnR5TmFtZS5nZXQoKSwgc3RydWN0dXJlRW51bWVyYXRvci5nZXQoKSk7CiAgICAgICAgIGdlbmVy
YXRvci5lbWl0Tm9kZShkc3QsIG1fc3RhdGVtZW50KTsKICAgICAgICAgZ2VuZXJhdG9yLnBvcFN0
cnVjdHVyZUZvckluU2NvcGUobG9jYWwuZ2V0KCkpOwogCi0gICAgICAgIGdlbmVyYXRvci5lbWl0
UHJvZmlsZUNvbnRyb2xGbG93KG1fc3RhdGVtZW50LT5lbmRPZmZzZXQoKSk7CisgICAgICAgIGdl
bmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KHByb2ZpbGVyRW5kT2Zmc2V0KTsKIAogICAg
ICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHNjb3BlLT5jb250aW51ZVRhcmdldCgpKTsKICAgICAg
ICAgZ2VuZXJhdG9yLmVtaXRJbmMoaS5nZXQoKSk7CkBAIC0yMTk2LDcgKzIxOTksNyBAQCB2b2lk
IEZvckluTm9kZTo6ZW1pdE11bHRpTG9vcEJ5dGVjb2RlKEJ5CiAKICAgICAgICAgdGhpcy0+ZW1p
dExvb3BIZWFkZXIoZ2VuZXJhdG9yLCBwcm9wZXJ0eU5hbWUuZ2V0KCkpOwogCi0gICAgICAgIGdl
bmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fc3RhdGVtZW50LT5zdGFydE9mZnNldCgp
KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cocHJvZmlsZXJTdGFy
dE9mZnNldCk7CiAKICAgICAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKGRzdCwgbV9zdGF0ZW1lbnQp
OwogCkBAIC0yMjE3LDcgKzIyMjAsNyBAQCB2b2lkIEZvckluTm9kZTo6ZW1pdE11bHRpTG9vcEJ5
dGVjb2RlKEJ5CiAKICAgICBnZW5lcmF0b3IuZW1pdERlYnVnSG9vayhXaWxsRXhlY3V0ZVN0YXRl
bWVudCwgZmlyc3RMaW5lKCksIHN0YXJ0T2Zmc2V0KCksIGxpbmVTdGFydE9mZnNldCgpKTsKICAg
ICBnZW5lcmF0b3IuZW1pdExhYmVsKGVuZC5nZXQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRQcm9m
aWxlQ29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPmVuZE9mZnNldCgpKTsKKyAgICBnZW5lcmF0b3Iu
ZW1pdFByb2ZpbGVDb250cm9sRmxvdyhwcm9maWxlckVuZE9mZnNldCk7CiB9CiAKIHZvaWQgRm9y
SW5Ob2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0
ZXJJRCogZHN0KQpAQCAtMjI4NSw3ICsyMjg4LDcgQEAgdm9pZCBGb3JPZk5vZGU6OmVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbgogICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX3N0YXRl
bWVudCk7CiAgICAgfTsKICAgICBnZW5lcmF0b3IuZW1pdEVudW1lcmF0aW9uKHRoaXMsIG1fZXhw
ciwgZXh0cmFjdG9yKTsKLSAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3N0
YXRlbWVudC0+ZW5kT2Zmc2V0KCkpOworICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xG
bG93KG1fc3RhdGVtZW50LT5lbmRPZmZzZXQoKSArIChtX3N0YXRlbWVudC0+aXNCbG9jaygpID8g
MSA6IDApKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENvbnRpbnVl
Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI2MzEsNyArMjYzNCw3
IEBAIHZvaWQgVHJ5Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXIKICAgICAgICAgfQog
CiAgICAgICAgIGdlbmVyYXRvci5lbWl0UHVzaENhdGNoU2NvcGUoZ2VuZXJhdG9yLnNjb3BlUmVn
aXN0ZXIoKSwgbV9leGNlcHRpb25JZGVudCwgZXhjZXB0aW9uUmVnaXN0ZXIuZ2V0KCksIERvbnRE
ZWxldGUpOwotICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3RyeUJs
b2NrLT5lbmRPZmZzZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xG
bG93KG1fdHJ5QmxvY2stPmVuZE9mZnNldCgpICsgMSk7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0
Tm9kZShkc3QsIG1fY2F0Y2hCbG9jayk7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0UG9wU2NvcGUo
Z2VuZXJhdG9yLnNjb3BlUmVnaXN0ZXIoKSk7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwo
Y2F0Y2hFbmRMYWJlbC5nZXQoKSk7CkBAIC0yNjQ0LDEyICsyNjQ3LDEyIEBAIHZvaWQgVHJ5Tm9k
ZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXIKIAogICAgICAgICBSZWZQdHI8TGFiZWw+IGZp
bmFsbHlFbmRMYWJlbCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOwogCi0gICAgICAgIGludCBmaW5h
bGx5U3RhcnRPZmZzZXQgPSBtX2NhdGNoQmxvY2sgPyBtX2NhdGNoQmxvY2stPmVuZE9mZnNldCgp
IDogbV90cnlCbG9jay0+ZW5kT2Zmc2V0KCk7CisgICAgICAgIGludCBmaW5hbGx5U3RhcnRPZmZz
ZXQgPSBtX2NhdGNoQmxvY2sgPyBtX2NhdGNoQmxvY2stPmVuZE9mZnNldCgpICsgMSA6IG1fdHJ5
QmxvY2stPmVuZE9mZnNldCgpICsgMTsKIAogICAgICAgICAvLyBOb3JtYWwgcGF0aDogcnVuIHRo
ZSBmaW5hbGx5IGNvZGUsIGFuZCBqdW1wIHRvIHRoZSBlbmQuCiAgICAgICAgIGdlbmVyYXRvci5l
bWl0UHJvZmlsZUNvbnRyb2xGbG93KGZpbmFsbHlTdGFydE9mZnNldCk7CiAgICAgICAgIGdlbmVy
YXRvci5lbWl0Tm9kZShkc3QsIG1fZmluYWxseUJsb2NrKTsKLSAgICAgICAgZ2VuZXJhdG9yLmVt
aXRQcm9maWxlQ29udHJvbEZsb3cobV9maW5hbGx5QmxvY2stPmVuZE9mZnNldCgpKTsKKyAgICAg
ICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9maW5hbGx5QmxvY2stPmVuZE9m
ZnNldCgpICsgMSk7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcChmaW5hbGx5RW5kTGFiZWwu
Z2V0KCkpOwogCiAgICAgICAgIC8vIFVuY2F1Z2h0IGV4Y2VwdGlvbiBwYXRoOiBpbnZva2UgdGhl
IGZpbmFsbHkgYmxvY2ssIHRoZW4gcmUtdGhyb3cgdGhlIGV4Y2VwdGlvbi4KQEAgLTI2NTksOSAr
MjY2Miw5IEBAIHZvaWQgVHJ5Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXIKICAgICAg
ICAgZ2VuZXJhdG9yLmVtaXRUaHJvdyh0ZW1wRXhjZXB0aW9uUmVnaXN0ZXIuZ2V0KCkpOwogCiAg
ICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoZmluYWxseUVuZExhYmVsLmdldCgpKTsKLSAgICAg
ICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9maW5hbGx5QmxvY2stPmVuZE9m
ZnNldCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9maW5h
bGx5QmxvY2stPmVuZE9mZnNldCgpICsgMSk7CiAgICAgfSBlbHNlCi0gICAgICAgIGdlbmVyYXRv
ci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fY2F0Y2hCbG9jay0+ZW5kT2Zmc2V0KCkpOworICAg
ICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX2NhdGNoQmxvY2stPmVuZE9m
ZnNldCgpICsgMSk7CiAKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9B
U1RCdWlsZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9B
U1RCdWlsZGVyLmgJKHJldmlzaW9uIDE4MDUxMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvQVNUQnVpbGRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03MTMsNiArNzEzLDExIEBAIHB1
YmxpYzoKICAgICB7CiAgICAgICAgIG5vZGUtPnNldFN0YXJ0T2Zmc2V0KG9mZnNldCk7CiAgICAg
fQorCisgICAgdm9pZCBzZXRTdGFydE9mZnNldChOb2RlKiBub2RlLCBpbnQgb2Zmc2V0KQorICAg
IHsKKyAgICAgICAgbm9kZS0+c2V0U3RhcnRPZmZzZXQob2Zmc2V0KTsKKyAgICB9CiAgICAgCiBw
cml2YXRlOgogICAgIHN0cnVjdCBTY29wZSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL05vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2Rlcy5oCShyZXZpc2lvbiAxODA1MTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL05vZGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMiw2ICsxMzIsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgaW50IGxpbmVTdGFydE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9z
aXRpb24ubGluZVN0YXJ0T2Zmc2V0OyB9CiAgICAgICAgIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBw
b3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0KICAgICAgICAgdm9pZCBzZXRF
bmRPZmZzZXQoaW50IG9mZnNldCkgeyBtX2VuZE9mZnNldCA9IG9mZnNldDsgfQorICAgICAgICB2
b2lkIHNldFN0YXJ0T2Zmc2V0KGludCBvZmZzZXQpIHsgbV9wb3NpdGlvbi5vZmZzZXQgPSBvZmZz
ZXQ7IH0KIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgSlNUZXh0UG9zaXRpb24gbV9wb3NpdGlv
bjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAJKHJldmlzaW9u
IDE4MDUxMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTExNSwyMSArMTExNSwyNCBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1
aWxkZXI+IFRyZWVTdGF0ZW1lCiB7CiAgICAgQVNTRVJUKG1hdGNoKE9QRU5CUkFDRSkpOwogICAg
IEpTVG9rZW5Mb2NhdGlvbiBsb2NhdGlvbih0b2tlbkxvY2F0aW9uKCkpOworICAgIGludCBzdGFy
dE9mZnNldCA9IG1fdG9rZW4ubV9kYXRhLm9mZnNldDsKICAgICBpbnQgc3RhcnQgPSB0b2tlbkxp
bmUoKTsKICAgICBuZXh0KCk7CiAgICAgaWYgKG1hdGNoKENMT1NFQlJBQ0UpKSB7Ci0gICAgICAg
IHVuc2lnbmVkIGVuZE9mZnNldCA9IG1fbGV4ZXItPmN1cnJlbnRPZmZzZXQoKTsKKyAgICAgICAg
aW50IGVuZE9mZnNldCA9IG1fdG9rZW4ubV9kYXRhLm9mZnNldDsKICAgICAgICAgbmV4dCgpOwog
ICAgICAgICBUcmVlU3RhdGVtZW50IHJlc3VsdCA9IGNvbnRleHQuY3JlYXRlQmxvY2tTdGF0ZW1l
bnQobG9jYXRpb24sIDAsIHN0YXJ0LCBtX2xhc3RUb2tlbkVuZFBvc2l0aW9uLmxpbmUpOworICAg
ICAgICBjb250ZXh0LnNldFN0YXJ0T2Zmc2V0KHJlc3VsdCwgc3RhcnRPZmZzZXQpOwogICAgICAg
ICBjb250ZXh0LnNldEVuZE9mZnNldChyZXN1bHQsIGVuZE9mZnNldCk7CiAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgfQogICAgIFRyZWVTb3VyY2VFbGVtZW50cyBzdWJ0cmVlID0gcGFyc2VT
b3VyY2VFbGVtZW50cyhjb250ZXh0LCBEb250Q2hlY2tGb3JTdHJpY3RNb2RlKTsKICAgICBmYWls
SWZGYWxzZShzdWJ0cmVlLCAiQ2Fubm90IHBhcnNlIHRoZSBib2R5IG9mIHRoZSBibG9jayBzdGF0
ZW1lbnQiKTsKICAgICBtYXRjaE9yRmFpbChDTE9TRUJSQUNFLCAiRXhwZWN0ZWQgYSBjbG9zaW5n
ICd9JyBhdCB0aGUgZW5kIG9mIGEgYmxvY2sgc3RhdGVtZW50Iik7Ci0gICAgdW5zaWduZWQgZW5k
T2Zmc2V0ID0gbV9sZXhlci0+Y3VycmVudE9mZnNldCgpOworICAgIGludCBlbmRPZmZzZXQgPSBt
X3Rva2VuLm1fZGF0YS5vZmZzZXQ7CiAgICAgbmV4dCgpOwogICAgIFRyZWVTdGF0ZW1lbnQgcmVz
dWx0ID0gY29udGV4dC5jcmVhdGVCbG9ja1N0YXRlbWVudChsb2NhdGlvbiwgc3VidHJlZSwgc3Rh
cnQsIG1fbGFzdFRva2VuRW5kUG9zaXRpb24ubGluZSk7CisgICAgY29udGV4dC5zZXRTdGFydE9m
ZnNldChyZXN1bHQsIHN0YXJ0T2Zmc2V0KTsKICAgICBjb250ZXh0LnNldEVuZE9mZnNldChyZXN1
bHQsIGVuZE9mZnNldCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTExNDMsOSArMTE0Niwx
MSBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1lCiAgICAgaW50IG5v
blRyaXZpYWxFeHByZXNzaW9uQ291bnQgPSAwOwogICAgIGZhaWxJZlN0YWNrT3ZlcmZsb3coKTsK
ICAgICBUcmVlU3RhdGVtZW50IHJlc3VsdCA9IDA7CisgICAgYm9vbCBzaG91bGRTZXRFbmRPZmZz
ZXQgPSB0cnVlOwogICAgIHN3aXRjaCAobV90b2tlbi5tX3R5cGUpIHsKICAgICBjYXNlIE9QRU5C
UkFDRToKICAgICAgICAgcmVzdWx0ID0gcGFyc2VCbG9ja1N0YXRlbWVudChjb250ZXh0KTsKKyAg
ICAgICAgc2hvdWxkU2V0RW5kT2Zmc2V0ID0gZmFsc2U7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgVkFSOgogICAgICAgICByZXN1bHQgPSBwYXJzZVZhckRlY2xhcmF0aW9uKGNvbnRleHQpOwpA
QCAtMTIyOCw3ICsxMjMzLDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3Rh
dGVtZQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBpZiAocmVzdWx0KQorICAgIGlmIChy
ZXN1bHQgJiYgc2hvdWxkU2V0RW5kT2Zmc2V0KQogICAgICAgICBjb250ZXh0LnNldEVuZE9mZnNl
dChyZXN1bHQsIG1fbGFzdFRva2VuRW5kUG9zaXRpb24ub2Zmc2V0KTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQpAQCAtMjMxMiw2ICsyMzE3LDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVy
PiBUcmVlRXhwcmVzcwogICAgIFRyZWVFeHByZXNzaW9uIGJhc2UgPSAwOwogICAgIEpTVGV4dFBv
c2l0aW9uIGV4cHJlc3Npb25TdGFydCA9IHRva2VuU3RhcnRQb3NpdGlvbigpOwogICAgIGludCBu
ZXdDb3VudCA9IDA7CisgICAgSlNUb2tlbkxvY2F0aW9uIHN0YXJ0TG9jYXRpb24gPSB0b2tlbkxv
Y2F0aW9uKCk7CiAgICAgSlNUb2tlbkxvY2F0aW9uIGxvY2F0aW9uOwogICAgIHdoaWxlIChtYXRj
aChORVcpKSB7CiAgICAgICAgIG5leHQoKTsKQEAgLTIzNTAsNyArMjM1Niw3IEBAIHRlbXBsYXRl
IDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3MKICAgICAgICAgICAgICAgICBKU1RleHRQ
b3NpdGlvbiBleHByZXNzaW9uRW5kID0gbGFzdFRva2VuRW5kUG9zaXRpb24oKTsKICAgICAgICAg
ICAgICAgICBUcmVlQXJndW1lbnRzIGFyZ3VtZW50cyA9IHBhcnNlQXJndW1lbnRzKGNvbnRleHQs
IEFsbG93U3ByZWFkKTsKICAgICAgICAgICAgICAgICBmYWlsSWZGYWxzZShhcmd1bWVudHMsICJD
YW5ub3QgcGFyc2UgY2FsbCBhcmd1bWVudHMiKTsKLSAgICAgICAgICAgICAgICBiYXNlID0gY29u
dGV4dC5tYWtlRnVuY3Rpb25DYWxsTm9kZShsb2NhdGlvbiwgYmFzZSwgYXJndW1lbnRzLCBleHBy
ZXNzaW9uU3RhcnQsIGV4cHJlc3Npb25FbmQsIGxhc3RUb2tlbkVuZFBvc2l0aW9uKCkpOworICAg
ICAgICAgICAgICAgIGJhc2UgPSBjb250ZXh0Lm1ha2VGdW5jdGlvbkNhbGxOb2RlKHN0YXJ0TG9j
YXRpb24sIGJhc2UsIGFyZ3VtZW50cywgZXhwcmVzc2lvblN0YXJ0LCBleHByZXNzaW9uRW5kLCBs
YXN0VG9rZW5FbmRQb3NpdGlvbigpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIG1fbm9u
TEhTQ291bnQgPSBub25MSFNDb3VudDsKICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmFzaWNCbG9ja0xvY2F0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CYXNpY0Jsb2NrTG9jYXRpb24uY3Bw
CShyZXZpc2lvbiAxODA1MTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CYXNp
Y0Jsb2NrTG9jYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Miw4ICs2Miw4IEBAIFZlY3Rv
cjxzdGQ6OnBhaXI8aW50LCBpbnQ+PiBCYXNpY0Jsb2NrTG8KICAgICAgICAgICAgICAgICBtaW5J
ZHggPSBpZHg7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgcmVzdWx0LmFwcGVu
ZChHYXAobmV4dFJhbmdlU3RhcnQsIG1pbkdhcC5maXJzdCkpOwotICAgICAgICBuZXh0UmFuZ2VT
dGFydCA9IG1pbkdhcC5zZWNvbmQ7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoR2FwKG5leHRSYW5n
ZVN0YXJ0LCBtaW5HYXAuZmlyc3QgLSAxKSk7CisgICAgICAgIG5leHRSYW5nZVN0YXJ0ID0gbWlu
R2FwLnNlY29uZCArIDE7CiAgICAgICAgIGdhcHMucmVtb3ZlKG1pbklkeCk7CiAgICAgfQogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db250cm9sRmxv
d1Byb2ZpbGVyLmNwcAkocmV2aXNpb24gMTgwNTEwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkxLDcg
KzkxLDcgQEAgVmVjdG9yPEJhc2ljQmxvY2tSYW5nZT4gQ29udHJvbEZsb3dQcm9maQogICAgICAg
ICBCYXNpY0Jsb2NrUmFuZ2UgcmFuZ2U7CiAgICAgICAgIHJhbmdlLm1faGFzRXhlY3V0ZWQgPSBz
dGQ6OmdldDwwPihmdW5jdGlvblJhbmdlKTsKICAgICAgICAgcmFuZ2UubV9zdGFydE9mZnNldCA9
IHN0YXRpY19jYXN0PGludD4oc3RkOjpnZXQ8MT4oZnVuY3Rpb25SYW5nZSkpOwotICAgICAgICBy
YW5nZS5tX2VuZE9mZnNldCA9IHN0YXRpY19jYXN0PGludD4oc3RkOjpnZXQ8Mj4oZnVuY3Rpb25S
YW5nZSkgKyAxKTsKKyAgICAgICAgcmFuZ2UubV9lbmRPZmZzZXQgPSBzdGF0aWNfY2FzdDxpbnQ+
KHN0ZDo6Z2V0PDI+KGZ1bmN0aW9uUmFuZ2UpKTsKICAgICAgICAgcmVzdWx0LmFwcGVuZChyYW5n
ZSk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvY29udHJvbEZs
b3dQcm9maWxlci9icmFjZS1sb2NhdGlvbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvY29udHJvbEZsb3dQcm9maWxlci9icmFjZS1sb2NhdGlvbi5qcwkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9jb250cm9sRmxvd1Byb2Zp
bGVyL2JyYWNlLWxvY2F0aW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTU5IEBACits
b2FkKCIuL2RyaXZlci9kcml2ZXIuanMiKTsKKworZnVuY3Rpb24gZm9vKCkge30KK2Z1bmN0aW9u
IGJhcigpIHt9CitmdW5jdGlvbiBiYXooKSB7fQorCitmdW5jdGlvbiB0ZXN0SWYoeCkgeworICAg
IGlmICh4IDwgMTApIHsgZm9vKCk7IH0gZWxzZSBpZiAoeCA8IDIwKSB7IGJhcigpOyB9IGVsc2Ug
eyBiYXooKSB9Cit9Cit0ZXN0SWYoOSk7CisvLyBOb3RlLCB0aGUgY2hlY2sgd2lsbCBiZSBhZ2Fp
bnN0IHRoZSBiYXNpYyBibG9jayB0aGF0IGNvbnRhaW5zIHRoZSBmaXJzdCBtYXRjaGVkIGNoYXJh
Y3Rlci4gCisvLyBTbyBpbiB0aGlzIGZvbGxvd2luZyBjYXNlLCB0aGUgYmxvY2sgdGhhdCBjb250
YWlucyB0aGUgJ3snLgorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWYsICJ7IGZv
byIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7CisvLyBJbiB0aGlzIGNhc2UsIGl0IHdpbGwg
dGVzdCB0aGUgYmFzaWMgYmxvY2sgdGhhdCBjb250YWlucyB0aGUgJyAnIGNoYXJhY3Rlci4KK2Fz
c2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmLCAiIGZvbyIpLCAic2hvdWxkIGhhdmUg
ZXhlY3V0ZWQuIik7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZiwgIn0gZWxz
ZSBpZiIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7Cithc3NlcnQoIWhhc0Jhc2ljQmxvY2tF
eGVjdXRlZCh0ZXN0SWYsICJlbHNlIGlmIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7
Cithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWYsICJ7IGJhciIpLCAic2hvdWxk
IG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRl
c3RJZiwgIiBiYXIiKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhh
c0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWYsICJlbHNlIHsiKSwgInNob3VsZCBub3QgaGF2ZSBl
eGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWYsICJ7IGJh
eiIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFzaWNCbG9j
a0V4ZWN1dGVkKHRlc3RJZiwgIiBiYXoiKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsg
Cit0ZXN0SWYoMjEpOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWYsICJlbHNl
IGlmICh4IDwgMjApIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jh
c2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWYsICJ7IGJhciIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1
dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZiwgIiBiYXIiKSwg
InNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1
dGVkKHRlc3RJZiwgImVsc2UgeyIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0
KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWYsICJ7IGJheiIpLCAic2hvdWxkIGhhdmUgZXhl
Y3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWYsICIgYmF6Iiks
ICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCit0ZXN0SWYoMTEpOworYXNzZXJ0KGhhc0Jhc2lj
QmxvY2tFeGVjdXRlZCh0ZXN0SWYsICJ7IGJhciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7
IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWYsICIgYmFyIiksICJzaG91bGQg
aGF2ZSBleGVjdXRlZC4iKTsgCisKK2Z1bmN0aW9uIHRlc3RGb3JSZWd1bGFyKHgpIHsKKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHg7IGkrKykgeyBmb28oKTsgfSBiYXIoKTsKK30KK3Rlc3RGb3JS
ZWd1bGFyKDApOworYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvclJlZ3VsYXIs
ICJ7IGZvbyIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFz
aWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JSZWd1bGFyLCAifSBiYXIiKSwgInNob3VsZCBub3QgaGF2
ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JSZWd1
bGFyLCAiIGJhciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAordGVzdEZvclJlZ3VsYXIo
MSk7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JSZWd1bGFyLCAieyBmb28i
KSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0
ZWQodGVzdEZvclJlZ3VsYXIsICJ9IGJhciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAor
CitmdW5jdGlvbiB0ZXN0Rm9ySW4oeCkgeworICAgIGZvciAodmFyIGkgaW4geCkgeyBmb28oKTsg
fSBiYXIoKTsKK30KK3Rlc3RGb3JJbih7fSk7Cithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRl
ZCh0ZXN0Rm9ySW4sICJ7IGZvbyIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fz
c2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JJbiwgIn0gYmFyIiksICJzaG91bGQg
bm90IGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0
Rm9ySW4sICIgYmFyIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCit0ZXN0Rm9ySW4oe2Zv
bzogMjB9KTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvckluLCAieyBmb28i
KSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0
ZWQodGVzdEZvckluLCAifSBiYXIiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKKworZnVu
Y3Rpb24gdGVzdEZvck9mKHgpIHsKKyAgICBmb3IgKHZhciBpIG9mIHgpIHsgZm9vKCk7IH0gYmFy
KCk7Cit9Cit0ZXN0Rm9yT2YoW10pOworYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVz
dEZvck9mLCAieyBmb28iKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQo
IWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yT2YsICIgZm9vIiksICJzaG91bGQgbm90IGhh
dmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvck9m
LCAifSBiYXIiKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFz
aWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JPZiwgIiBiYXIiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVk
LiIpOyAKK3Rlc3RGb3JPZihbMjBdKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVz
dEZvck9mLCAieyBmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydChoYXNC
YXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvck9mLCAifSBiYXIiKSwgInNob3VsZCBoYXZlIGV4ZWN1
dGVkLiIpOyAKKworZnVuY3Rpb24gdGVzdFdoaWxlKHgpIHsKKyAgICB2YXIgaSA9IDA7IHdoaWxl
IChpKysgPCB4KSB7IGZvbygpOyB9IGJhcigpOworfQordGVzdFdoaWxlKDApOworYXNzZXJ0KCFo
YXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdFdoaWxlLCAieyBmb28iKSwgInNob3VsZCBub3QgaGF2
ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0V2hpbGUs
ICIgZm9vIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNp
Y0Jsb2NrRXhlY3V0ZWQodGVzdFdoaWxlLCAifSBiYXIiKSwgInNob3VsZCBub3QgaGF2ZSBleGVj
dXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RXaGlsZSwgIiBiYXIi
KSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCit0ZXN0V2hpbGUoMSk7Cithc3NlcnQo
aGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RXaGlsZSwgInsgZm9vIiksICJzaG91bGQgaGF2ZSBl
eGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RXaGlsZSwgIn0g
YmFyIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCisKKworLy8gTm8gYnJhY2VzIHRlc3Rz
LgorCitmdW5jdGlvbiB0ZXN0SWZOb0JyYWNlcyh4KSB7CisgICAgaWYgKHggPCAxMCkgZm9vKCk7
IGVsc2UgaWYgKHggPCAyMCkgYmFyKCk7IGVsc2UgYmF6KCk7Cit9Cit0ZXN0SWZOb0JyYWNlcyg5
KTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmTm9CcmFjZXMsICJmb28iKSwg
InNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0
ZXN0SWZOb0JyYWNlcywgIiBmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOworYXNzZXJ0
KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWZOb0JyYWNlcywgIjsgZWxzZSBpZiIpLCAic2hv
dWxkIGhhdmUgZXhlY3V0ZWQuIik7Cithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0
SWZOb0JyYWNlcywgIiBlbHNlIGlmIiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7Cith
c3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWZOb0JyYWNlcywgIiBiYXIiKSwgInNo
b3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRl
ZCh0ZXN0SWZOb0JyYWNlcywgImJhciIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAK
K2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZk5vQnJhY2VzLCAiZWxzZSBiYXoi
KSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxvY2tF
eGVjdXRlZCh0ZXN0SWZOb0JyYWNlcywgImJheiIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVk
LiIpOyAKK3Rlc3RJZk5vQnJhY2VzKDIxKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQo
dGVzdElmTm9CcmFjZXMsICJlbHNlIGJheiIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAor
YXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWZOb0JyYWNlcywgImJheiIpLCAic2hv
dWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVz
dElmTm9CcmFjZXMsICI7IGVsc2UgYmF6IiksICJzaG91bGQgbm90IGhhdmUgZXhlY3V0ZWQuIik7
IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0SWZOb0JyYWNlcywgImVsc2UgaWYg
KHggPCAyMCkiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOworLy8gTm90ZSB0aGF0IHRoZSB3
aGl0ZXNwYWNlIHByZWNlZGluZyBiYXIgaXMgcGFydCBvZiB0aGUgcHJldmlvdXMgYmFzaWMgYmxv
Y2suCisvLyBBbiBpZiBzdGF0ZW1lbnQncyBpZi10cnVlIGJhc2ljIGJsb2NrIHRleHQgb2Zmc2V0
IGJlZ2lucyBhdCB0aGUgc3RhcnQgb2Zmc2V0CisvLyBvZiB0aGUgaWYtdHJ1ZSBibG9jaywgaW4g
dGhpcyBjYXNlLCBqdXN0IHRoZSBleHByZXNzaW9uICJiYXIoKSIuCithc3NlcnQoaGFzQmFzaWNC
bG9ja0V4ZWN1dGVkKHRlc3RJZk5vQnJhY2VzLCAiIGJhciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0
ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdElmTm9CcmFjZXMsICJi
YXIiKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCit0ZXN0SWZOb0JyYWNlcygxMSk7
Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RJZk5vQnJhY2VzLCAiIGJhciIpLCAi
c2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0
ZXN0SWZOb0JyYWNlcywgImJhciIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorCitmdW5j
dGlvbiB0ZXN0Rm9yUmVndWxhck5vQnJhY2VzKHgpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHg7IGkrKykgZm9vKCk7IGJhcigpOworfQordGVzdEZvclJlZ3VsYXJOb0JyYWNlcygwKTsKK2Fz
c2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvclJlZ3VsYXJOb0JyYWNlcywgIiBmb28i
KSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1
dGVkKHRlc3RGb3JSZWd1bGFyTm9CcmFjZXMsICJmb28iKSwgInNob3VsZCBub3QgaGF2ZSBleGVj
dXRlZC4iKTsgCithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yUmVndWxhck5v
QnJhY2VzLCAiOyBiYXIiKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQo
aGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JSZWd1bGFyTm9CcmFjZXMsICIgYmFyIiksICJz
aG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCit0ZXN0Rm9yUmVndWxhck5vQnJhY2VzKDEpOworYXNz
ZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yUmVndWxhck5vQnJhY2VzLCAiIGZvbyIp
LCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRl
ZCh0ZXN0Rm9yUmVndWxhck5vQnJhY2VzLCAiZm9vIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4i
KTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JSZWd1bGFyTm9CcmFjZXMs
ICIgYmFyIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCisKK2Z1bmN0aW9uIHRlc3RGb3JJ
bk5vQnJhY2VzKHgpIHsKKyAgICBmb3IgKHZhciBpIGluIHgpIGZvbygpOyBiYXIoKTsKK30KK3Rl
c3RGb3JJbk5vQnJhY2VzKHt9KTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZv
ckluTm9CcmFjZXMsICIgZm9vIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQo
IWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9ySW5Ob0JyYWNlcywgImZvbyIpLCAic2hvdWxk
IG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRl
c3RGb3JJbk5vQnJhY2VzLCAiOyBiYXIiKSwgInNob3VsZCBub3QgaGF2ZSBleGVjdXRlZC4iKTsg
Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JJbk5vQnJhY2VzLCAiIGJhciIp
LCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7IAordGVzdEZvckluTm9CcmFjZXMoe2ZvbzogMjB9
KTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvckluTm9CcmFjZXMsICIgZm9v
IiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1
dGVkKHRlc3RGb3JJbk5vQnJhY2VzLCAiZm9vIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsg
Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JJbk5vQnJhY2VzLCAiOyBiYXIi
KSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKKworZnVuY3Rpb24gdGVzdEZvck9mTm9CcmFj
ZXMoeCkgeworICAgIGZvciAodmFyIGkgb2YgeCkgZm9vKCk7IGJhcigpOworfQordGVzdEZvck9m
Tm9CcmFjZXMoW10pOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Rm9yT2ZOb0Jy
YWNlcywgIiBmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFz
aWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JPZk5vQnJhY2VzLCAiZm9vIiksICJzaG91bGQgbm90IGhh
dmUgZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvck9m
Tm9CcmFjZXMsICI7IGJhciIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2Vy
dChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvck9mTm9CcmFjZXMsICIgYmFyIiksICJzaG91
bGQgaGF2ZSBleGVjdXRlZC4iKTsgCit0ZXN0Rm9yT2ZOb0JyYWNlcyhbMjBdKTsKK2Fzc2VydCho
YXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdEZvck9mTm9CcmFjZXMsICIgZm9vIiksICJzaG91bGQg
aGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JP
Zk5vQnJhY2VzLCAiZm9vIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoaGFz
QmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RGb3JPZk5vQnJhY2VzLCAiOyBiYXIiKSwgInNob3VsZCBo
YXZlIGV4ZWN1dGVkLiIpOyAKKworZnVuY3Rpb24gdGVzdFdoaWxlTm9CcmFjZXMoeCkgeworICAg
IHZhciBpID0gMDsgd2hpbGUgKGkrKyA8IHgpIGZvbygpOyBiYXIoKTsKK30KK3Rlc3RXaGlsZU5v
QnJhY2VzKDApOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0V2hpbGVOb0JyYWNl
cywgIiBmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCghaGFzQmFzaWNC
bG9ja0V4ZWN1dGVkKHRlc3RXaGlsZU5vQnJhY2VzLCAiZm9vIiksICJzaG91bGQgbm90IGhhdmUg
ZXhlY3V0ZWQuIik7IAorYXNzZXJ0KCFoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdFdoaWxlTm9C
cmFjZXMsICI7IGJhciIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkLiIpOyAKK2Fzc2VydCho
YXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdFdoaWxlTm9CcmFjZXMsICIgYmFyIiksICJzaG91bGQg
aGF2ZSBleGVjdXRlZC4iKTsgCit0ZXN0V2hpbGVOb0JyYWNlcygxKTsKK2Fzc2VydChoYXNCYXNp
Y0Jsb2NrRXhlY3V0ZWQodGVzdFdoaWxlTm9CcmFjZXMsICIgZm9vIiksICJzaG91bGQgaGF2ZSBl
eGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RXaGlsZU5vQnJh
Y2VzLCAiZm9vIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsgCithc3NlcnQoaGFzQmFzaWNC
bG9ja0V4ZWN1dGVkKHRlc3RXaGlsZU5vQnJhY2VzLCAiOyBiYXIiKSwgInNob3VsZCBoYXZlIGV4
ZWN1dGVkLiIpOyAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9jb250cm9sRmxv
d1Byb2ZpbGVyL2NvbmRpdGlvbmFsLWV4cHJlc3Npb24uanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2NvbnRyb2xGbG93UHJvZmlsZXIvY29uZGl0aW9uYWwtZXhw
cmVzc2lvbi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9j
b250cm9sRmxvd1Byb2ZpbGVyL2NvbmRpdGlvbmFsLWV4cHJlc3Npb24uanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw0NCBAQAorbG9hZCgiLi9kcml2ZXIvZHJpdmVyLmpzIik7CisKK2Z1bmN0
aW9uIGZvbygpeyB9CitmdW5jdGlvbiBiYXIoKXsgfQorZnVuY3Rpb24gYmF6KCl7IH0KKworZnVu
Y3Rpb24gdGVzdENvbmRpdGlvbmFsQmFzaWMoeCkgeworICAgIHJldHVybiB4ID8gMTAgOiAyMDsK
K30KKworCit0ZXN0Q29uZGl0aW9uYWxCYXNpYyhmYWxzZSk7Cithc3NlcnQoaGFzQmFzaWNCbG9j
a0V4ZWN1dGVkKHRlc3RDb25kaXRpb25hbEJhc2ljLCAieCIpLCAic2hvdWxkIGhhdmUgZXhlY3V0
ZWQuIik7Cithc3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RDb25kaXRpb25hbEJhc2lj
LCAiMjAiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOworYXNzZXJ0KCFoYXNCYXNpY0Jsb2Nr
RXhlY3V0ZWQodGVzdENvbmRpdGlvbmFsQmFzaWMsICIxMCIpLCAic2hvdWxkIG5vdCBoYXZlIGV4
ZWN1dGVkIHlldC4iKTsKKwordGVzdENvbmRpdGlvbmFsQmFzaWModHJ1ZSk7Cithc3NlcnQoaGFz
QmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RDb25kaXRpb25hbEJhc2ljLCAiMTAiKSwgInNob3VsZCBo
YXZlIGV4ZWN1dGVkLiIpOworCisKK2Z1bmN0aW9uIHRlc3RDb25kaXRpb25hbEZ1bmN0aW9uQ2Fs
bCh4LCB5KSB7CisgICAgeCA/IHkgPyBmb28oKSAKKyAgICAgICAgOiBiYXooKSAKKyAgICAgICAg
OiBiYXIoKQorfQordGVzdENvbmRpdGlvbmFsRnVuY3Rpb25DYWxsKGZhbHNlLCBmYWxzZSk7Cith
c3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RDb25kaXRpb25hbEZ1bmN0aW9uQ2FsbCwg
IngiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVj
dXRlZCh0ZXN0Q29uZGl0aW9uYWxGdW5jdGlvbkNhbGwsICI/IHkiKSwgInNob3VsZCBoYXZlIGV4
ZWN1dGVkLiIpOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Q29uZGl0aW9uYWxG
dW5jdGlvbkNhbGwsICJiYXIiKSwgInNob3VsZCBoYXZlIGV4ZWN1dGVkLiIpOworYXNzZXJ0KGhh
c0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Q29uZGl0aW9uYWxGdW5jdGlvbkNhbGwsICI6IGJhciIp
LCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7Cithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRl
ZCh0ZXN0Q29uZGl0aW9uYWxGdW5jdGlvbkNhbGwsICJ5IiksICJzaG91bGQgbm90IGhhdmUgZXhl
Y3V0ZWQuIik7Cithc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZCh0ZXN0Q29uZGl0aW9uYWxG
dW5jdGlvbkNhbGwsICI/IGZvbyIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkIHlldC4iKTsK
K2Fzc2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RDb25kaXRpb25hbEZ1bmN0aW9uQ2Fs
bCwgImZvbyIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkIHlldC4iKTsKK2Fzc2VydCghaGFz
QmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RDb25kaXRpb25hbEZ1bmN0aW9uQ2FsbCwgImJheiIpLCAi
c2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkIHlldC4iKTsKKwordGVzdENvbmRpdGlvbmFsRnVuY3Rp
b25DYWxsKHRydWUsIGZhbHNlKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdENv
bmRpdGlvbmFsRnVuY3Rpb25DYWxsLCAieSIpLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQuIik7Cith
c3NlcnQoaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RDb25kaXRpb25hbEZ1bmN0aW9uQ2FsbCwg
Ij8gZm9vIiksICJzaG91bGQgaGF2ZSBleGVjdXRlZCAuIik7Cithc3NlcnQoaGFzQmFzaWNCbG9j
a0V4ZWN1dGVkKHRlc3RDb25kaXRpb25hbEZ1bmN0aW9uQ2FsbCwgIjogYmF6IiksICJzaG91bGQg
aGF2ZSBleGVjdXRlZC4iKTsKK2Fzc2VydChoYXNCYXNpY0Jsb2NrRXhlY3V0ZWQodGVzdENvbmRp
dGlvbmFsRnVuY3Rpb25DYWxsLCAiYmF6IiksICJzaG91bGQgaGF2ZSBleGVjdXRlZC4iKTsKK2Fz
c2VydCghaGFzQmFzaWNCbG9ja0V4ZWN1dGVkKHRlc3RDb25kaXRpb25hbEZ1bmN0aW9uQ2FsbCwg
ImZvbyIpLCAic2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkIHlldC4iKTsKKwordGVzdENvbmRpdGlv
bmFsRnVuY3Rpb25DYWxsKHRydWUsIHRydWUpOworYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVjdXRl
ZCh0ZXN0Q29uZGl0aW9uYWxGdW5jdGlvbkNhbGwsICJmb28iKSwgInNob3VsZCBoYXZlIGV4ZWN1
dGVkLiIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247138</attachid>
            <date>2015-02-23 13:10:36 -0800</date>
            <delta_ts>2015-02-23 14:11:08 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>30860</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgwNTExKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwMiBA
QAorMjAxNS0wMi0yMyAgU2FhbSBCYXJhdGkgIDxzYWFtYmFyYXRpMUBnbWFpbC5jb20+CisKKyAg
ICAgICAgQWRqdXN0IHRoZSByYW5nZXMgb2YgYmFzaWMgYmxvY2sgc3RhdGVtZW50cyBpbiBKU0Mn
cyBjb250cm9sIGZsb3cgcHJvZmlsZXIgdG8gYmUgbXV0dWFsbHkgZXhjbHVzaXZlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDEwOTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICBTdXBwb3NlIHRoZSBjb250cm9sIGZs
b3cgb2YgYSBwcm9ncmFtIGZvcm1zIGJhc2ljIGJsb2NrIEEgd2l0aCBzdWNjZXNzb3IgYmxvY2sK
KyAgICAgICAgQi4gQSdzIGVuZCBvZmZzZXQgd2lsbCBiZSB0aGUgKnNhbWUqIGFzIEIncyBzdGFy
dCBvZmZzZXQgaW4gdGhlIGN1cnJlbnQgYXJjaGl0ZWN0dXJlIAorICAgICAgICBvZiB0aGUgY29u
dHJvbCBmbG93IHByb2ZpbGVyLiBUaGlzIG1ha2VzIHJlYXNvbmluZyBhYm91dCB0aGUgdGV4dCBv
ZmZzZXRzIG9mCisgICAgICAgIHRoZSBjb250cm9sIGZsb3cgcHJvZmlsZXIgdW5zb3VuZC4gVG8g
bWFrZSByZWFzb25pbmcgYWJvdXQgb2Zmc2V0cyBzb3VuZCwgYWxsIAorICAgICAgICBiYXNpYyBi
bG9jayByYW5nZXMgc2hvdWxkIGJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gIEFsbCBjYWxscyB0byBl
bWl0UHJvZmlsZUNvbnRyb2xGbG93IAorICAgICAgICBub3cgcGFzcyBpbiB0aGUgKnN0YXJ0KiBv
ZiBhIGJhc2ljIGJsb2NrIGFzIHRoZSB0ZXh0IG9mZnNldCBhcmd1bWVudC4gVGhpcyBzaW1wbGlm
aWVzIAorICAgICAgICBhbGwgY2FsbHMgdG8gZW1pdFByb2ZpbGVDb250cm9sRmxvdyBiZWNhdXNl
IHRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbiBoYWQgYQorICAgICAgICBsb3Qgb2YgZWRnZSBj
YXNlcyBmb3IgZ2V0dGluZyB0aGUgZGVzaXJlZCBiYXNpYyBibG9jayB0ZXh0IGJvdW5kYXJpZXMu
CisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIGVuc3VyZXMgdGhhdCB0aGUgYmFzaWMgYmxvY2sg
Ym91bmRhcnkgb2YgYSBibG9jayBzdGF0ZW1lbnQgCisgICAgICAgIGlzIHRoZSBleGFjdGx5IHRo
ZSBibG9jaydzIG9wZW4gYW5kIGNsb3NlIGJyYWNlIG9mZnNldHMgKGluY2x1c2l2ZSkuIEZvciBl
eGFtcGxlLAorICAgICAgICBpbiBpZi9mb3Ivd2hpbGUgc3RhdGVtZW50cy4gVGhpcyBhbHNvIGhh
cyB0aGUgY29uc2VxdWVuY2UgdGhhdCBmb3Igc3RhdGVtZW50cyAKKyAgICAgICAgbGlrZSAiaWYg
KGNvbmQpIGZvbygpOyIsIHRoZSB3aGl0ZXNwYWNlIHByZWNlZGluZyAiZm9vKCkiIGlzIG5vdCBw
YXJ0IG9mIAorICAgICAgICB0aGUgImZvbygpIiBiYXNpYyBibG9jaywgYnV0IGluc3RlYWQgaXMg
cGFydCBvZiB0aGUgImlmIChjb25kKSAiIGJhc2ljIGJsb2NrLiAKKyAgICAgICAgVGhpcyBpcyBv
a2F5IGJlY2F1c2UgdGhlc2UgdGV4dCBvZmZzZXRzIGFyZW4ndCBtZWFudCB0byBiZSBodW1hbiBy
ZWFkYWJsZS4KKyAgICAgICAgSW5zdGVhZCwgdGhleSByZWZsZWN0IHRoZSB0ZXh0IG9mZnNldHMg
b2YgSlNDJ3MgQVNUIG5vZGVzLiBUaGUgV2ViIEluc3BlY3RvciAKKyAgICAgICAgaXMgdGhlIG9u
bHkgY2xpZW50IG9mIHRoaXMgQVBJIGFuZCB1c2VyIG9mIHRoZXNlIHRleHQgb2Zmc2V0cyBhbmQg
aXQgaXMgCisgICAgICAgIG5vdCBuZWdhdGl2ZWx5IGVmZmVjdGVkIGJ5IHRoaXMgbmV3IGJlaGF2
aW9yLgorCisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6
Q29kZUJsb2NrOjppbnNlcnRCYXNpY0Jsb2NrQm91bmRhcmllc0ZvckNvbnRyb2xGbG93UHJvZmls
ZXIpOgorICAgICAgICBXaGVuIGNvbXB1dGluZyBiYXNpYyBibG9jayBib3VuZGFyaWVzIGluIENv
ZGVCbG9jaywgd2UgZW5zdXJlIHRoYXQgZXZlcnkKKyAgICAgICAgYmxvY2sncyBlbmQgb2Zmc2V0
IGlzIG9uZSBsZXNzIHRoYW4gaXRzIHN1Y2Nlc3NvcidzIHN0YXJ0IG9mZnNldCB0bworICAgICAg
ICBtYWludGFpbiB0aGF0IGJvdW5kYXJpZXMnIHJhbmdlcyBzaG91bGQgYmUgbXV0dWFsbHkgZXhj
bHVzaXZlLgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoK
KyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKToKKyAg
ICAgICAgQmVjYXVzZSB0aGUgY29udHJvbCBmbG93IHByb2ZpbGVyIG5lZWRzIHRvIGtub3cgd2hp
Y2ggZnVuY3Rpb25zCisgICAgICAgIGhhdmUgZXhlY3V0ZWQsIHdlIGNhbid0IGxhemlseSBjcmVh
dGUgZnVuY3Rpb25zLiBUaGlzIHdhcyBhIGJ1ZyAKKyAgICAgICAgZnJvbSBiZWZvcmUgdGhhdCB3
YXMgaGlkZGVuIGJlY2F1c2UgdGhlIFR5cGUgUHJvZmlsZXIgd2FzIGFsd2F5cyAKKyAgICAgICAg
ZW5hYmxlZCB3aGVuIHRoZSBjb250cm9sIGZsb3cgcHJvZmlsZXIgd2FzIGVuYWJsZWQgd2hlbiBw
cm9maWxpbmcgCisgICAgICAgIHdhcyB0dXJuZWQgb24gZnJvbSB0aGUgV2ViIEluc3BlY3Rvci4g
QnV0LCBKU0MgYWxsb3dzIGZvciBDb250cm9sIAorICAgICAgICBGbG93IHByb2ZpbGluZyB0byBi
ZSB0dXJuZWQgb24gd2l0aG91dCBUeXBlIFByb2ZpbGluZywgc28gd2UgbmVlZCAKKyAgICAgICAg
dG8gZW5zdXJlIHRoZSBDb250cm9sIEZsb3cgcHJvZmlsZXIgaGFzIGFsbCB0aGUgZGF0YSBpdCBu
ZWVkcy4KKworICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAg
ICAoSlNDOjpDb25kaXRpb25hbE5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6Oklm
RWxzZU5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6OldoaWxlTm9kZTo6ZW1pdEJ5
dGVjb2RlKToKKyAgICAgICAgKEpTQzo6Rm9yTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAg
KEpTQzo6Rm9ySW5Ob2RlOjplbWl0TXVsdGlMb29wQnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpG
b3JPZk5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6OlRyeU5vZGU6OmVtaXRCeXRl
Y29kZSk6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKGZ1bmN0aW9uSGFzQmFzaWNCbG9j
a0V4ZWN1dGVkKToKKyAgICAgICAgV2Ugbm93IGFzc2VydCB0aGF0IHRoZSBzdWJzdHJpbmcgYXJn
dW1lbnQgaXMgaW5kZWVkIGEgc3Vic3RyaW5nCisgICAgICAgIG9mIHRoZSBmdW5jdGlvbiBhcmd1
bWVudCdzIHRleHQgYmVjYXVzZSBzdWJ0bGUgYnVncyBjb3VsZCBiZQorICAgICAgICBpbnRyb2R1
Y2VkIG90aGVyd2lzZS4KKworICAgICAgICAqIHBhcnNlci9BU1RCdWlsZGVyLmg6CisgICAgICAg
IChKU0M6OkFTVEJ1aWxkZXI6OnNldFN0YXJ0T2Zmc2V0KToKKyAgICAgICAgKiBwYXJzZXIvTm9k
ZXMuaDoKKyAgICAgICAgKEpTQzo6Tm9kZTo6c2V0U3RhcnRPZmZzZXQpOgorICAgICAgICAqIHBh
cnNlci9QYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VC
bG9ja1N0YXRlbWVudCk6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVN0
YXRlbWVudCk6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZU1lbWJlckV4
cHJlc3Npb24pOgorICAgICAgICBGb3IgdGhlIHZhcmlvdXMgZnVuY3Rpb24gY2FsbCBBU1Qgbm9k
ZXMsIHRoZWlyIG1fcG9zaXRpb24gbWVtYmVyIAorICAgICAgICB2YXJpYWJsZSBpcyBub3cgdGhl
IHN0YXJ0IG9mIHRoZSBlbnRpcmUgZnVuY3Rpb24gY2FsbCBleHByZXNzaW9uIAorICAgICAgICBh
bmQgbm90IGF0IHRoZSBzdGFydCBvZiB0aGUgb3BlbiBwYXJlbiBvZiB0aGUgYXJndW1lbnRzIGxp
c3QuCisKKyAgICAgICAgKiBydW50aW1lL0Jhc2ljQmxvY2tMb2NhdGlvbi5jcHA6CisgICAgICAg
IChKU0M6OkJhc2ljQmxvY2tMb2NhdGlvbjo6Z2V0RXhlY3V0ZWRSYW5nZXMpOgorICAgICAgICAq
IHJ1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OkNvbnRyb2xG
bG93UHJvZmlsZXI6OmdldEJhc2ljQmxvY2tzRm9yU291cmNlSUQpOgorICAgICAgICBGdW5jdGlv
biByYW5nZXMgaW5zZXJ0ZWQgYXMgZ2FwcyBzaG91bGQgZm9sbG93IHRoZSBzYW1lIGNyaXRlcmlh
CisgICAgICAgIHRoYXQgdGhlIGJ5dGVjb2RlIGdlbmVyYXRvciB1c2VzIHRvIGVuc3VyZSB0aGF0
IGJhc2ljIGJsb2NrcworICAgICAgICBzdGFydCBhbmQgZW5kIG9mZnNldHMgYXJlIG11dHVhbGx5
IGV4Y2x1c2l2ZS4KKworICAgICAgICAqIHRlc3RzL2NvbnRyb2xGbG93UHJvZmlsZXIvYnJhY2Ut
bG9jYXRpb24uanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAg
ICAgIChiYXopOgorICAgICAgICAodGVzdElmKToKKyAgICAgICAgKHRlc3RGb3JSZWd1bGFyKToK
KyAgICAgICAgKHRlc3RGb3JJbik6CisgICAgICAgICh0ZXN0Rm9yT2YpOgorICAgICAgICAodGVz
dFdoaWxlKToKKyAgICAgICAgKHRlc3RJZk5vQnJhY2VzKToKKyAgICAgICAgKHRlc3RGb3JSZWd1
bGFyTm9CcmFjZXMpOgorICAgICAgICAodGVzdEZvckluTm9CcmFjZXMpOgorICAgICAgICAodGVz
dEZvck9mTm9CcmFjZXMpOgorICAgICAgICAodGVzdFdoaWxlTm9CcmFjZXMpOgorICAgICAgICAq
IHRlc3RzL2NvbnRyb2xGbG93UHJvZmlsZXIvY29uZGl0aW9uYWwtZXhwcmVzc2lvbi5qczogQWRk
ZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToKKyAgICAgICAgKGJheik6CisgICAg
ICAgICh0ZXN0Q29uZGl0aW9uYWxCYXNpYyk6CisgICAgICAgICh0ZXN0Q29uZGl0aW9uYWxGdW5j
dGlvbkNhbGwpOgorICAgICAgICAqIHRlc3RzL2NvbnRyb2xGbG93UHJvZmlsZXIvZHJpdmVyL2Ry
aXZlci5qczoKKyAgICAgICAgKGNoZWNrQmFzaWNCbG9jayk6CisKIDIwMTUtMDItMjMgIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBjb21tZW50IHRvIGNs
YXJpZnkgdGhhdCB0aGUgdGVzdCB3YXMgdGFrZW4gZnJvbSB0aGUgYnVnIHJlcG9ydCwgaW4gcmVz
cG9uc2UgdG8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAxODA1MTApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyNyw2ICsx
MTI3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkhhcwogICAgIFJF
TEVBU0VfQVNTRVJUKGV4ZWMtPmFyZ3VtZW50KDEpLmlzU3RyaW5nKCkpOwogICAgIFN0cmluZyBz
dWJzdHJpbmcgPSBleGVjLT5hcmd1bWVudCgxKS5nZXRTdHJpbmcoZXhlYyk7CiAgICAgU3RyaW5n
IHNvdXJjZUNvZGVUZXh0ID0gZXhlY3V0YWJsZS0+c291cmNlKCkudG9TdHJpbmcoKTsKKyAgICBS
RUxFQVNFX0FTU0VSVChzb3VyY2VDb2RlVGV4dC5jb250YWlucyhzdWJzdHJpbmcpKTsKICAgICBp
bnQgb2Zmc2V0ID0gc291cmNlQ29kZVRleHQuZmluZChzdWJzdHJpbmcpICsgZXhlY3V0YWJsZS0+
c291cmNlKCkuc3RhcnRPZmZzZXQoKTsKICAgICAKICAgICBib29sIGhhc0V4ZWN1dGVkID0gZXhl
Yy0+dm0oKS5jb250cm9sRmxvd1Byb2ZpbGVyKCktPmhhc0Jhc2ljQmxvY2tBdFRleHRPZmZzZXRC
ZWVuRXhlY3V0ZWQob2Zmc2V0LCBleGVjdXRhYmxlLT5zb3VyY2VJRCgpLCBleGVjLT52bSgpKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShy
ZXZpc2lvbiAxODA1MTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA1Miw3ICs0MDUyLDcgQEAgdm9pZCBDb2RlQmxv
Y2s6Omluc2VydEJhc2ljQmxvY2tCb3VuZGFyaQogICAgICAgICBpZiAoaSArIDEgPCBvZmZzZXRz
TGVuZ3RoKSB7CiAgICAgICAgICAgICBzaXplX3QgZW5kSWR4ID0gYnl0ZWNvZGVPZmZzZXRzW2kg
KyAxXTsKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHZtKCktPmludGVycHJldGVyLT5nZXRP
cGNvZGVJRChpbnN0cnVjdGlvbnNbZW5kSWR4XS51Lm9wY29kZSkgPT0gb3BfcHJvZmlsZV9jb250
cm9sX2Zsb3cpOwotICAgICAgICAgICAgYmFzaWNCbG9ja0VuZE9mZnNldCA9IGluc3RydWN0aW9u
c1tlbmRJZHggKyAxXS51Lm9wZXJhbmQ7CisgICAgICAgICAgICBiYXNpY0Jsb2NrRW5kT2Zmc2V0
ID0gaW5zdHJ1Y3Rpb25zW2VuZElkeCArIDFdLnUub3BlcmFuZCAtIDE7CiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICBiYXNpY0Jsb2NrRW5kT2Zmc2V0ID0gbV9zb3VyY2VPZmZzZXQgKyBt
X293bmVyRXhlY3V0YWJsZS0+c291cmNlKCkubGVuZ3RoKCkgLSAxOyAvLyBPZmZzZXQgYmVmb3Jl
IHRoZSBjbG9zaW5nIGJyYWNlLgogICAgICAgICAgICAgYmFzaWNCbG9ja1N0YXJ0T2Zmc2V0ID0g
c3RkOjptaW4oYmFzaWNCbG9ja1N0YXJ0T2Zmc2V0LCBiYXNpY0Jsb2NrRW5kT2Zmc2V0KTsgLy8g
U29tZSBzdGFydCBvZmZzZXRzIG1heSBiZSBhdCB0aGUgY2xvc2luZyBicmFjZSwgZW5zdXJlIGl0
IGlzIHRoZSBvZmZzZXQgYmVmb3JlLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDE4
MDUxMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzgsNyArMzM4LDcgQEAgQnl0ZWNvZGVHZW5l
cmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJgogCiAgICAgbV9zeW1ib2xUYWJsZS0+c2V0Q2Fw
dHVyZUVuZCh2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChjb2RlQmxvY2stPm1fbnVtVmFycykub2Zm
c2V0KCkpOwogCi0gICAgYm9vbCBjYW5MYXppbHlDcmVhdGVGdW5jdGlvbnMgPSAhZnVuY3Rpb25O
b2RlLT5uZWVkc0FjdGl2YXRpb25Gb3JNb3JlVGhhblZhcmlhYmxlcygpICYmICFtX3Nob3VsZEVt
aXREZWJ1Z0hvb2tzICYmICFtX3ZtLT50eXBlUHJvZmlsZXIoKTsKKyAgICBib29sIGNhbkxhemls
eUNyZWF0ZUZ1bmN0aW9ucyA9ICFmdW5jdGlvbk5vZGUtPm5lZWRzQWN0aXZhdGlvbkZvck1vcmVU
aGFuVmFyaWFibGVzKCkgJiYgIW1fc2hvdWxkRW1pdERlYnVnSG9va3MgJiYgIW1fdm0tPnR5cGVQ
cm9maWxlcigpICYmICFtX3ZtLT5jb250cm9sRmxvd1Byb2ZpbGVyKCk7CiAgICAgbV9maXJzdExh
enlGdW5jdGlvbiA9IGNvZGVCbG9jay0+bV9udW1WYXJzOwogICAgIGlmICghc2hvdWxkQ2FwdHVy
ZUFsbFRoZVRoaW5ncykgewogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZ1bmN0aW9u
U3RhY2suc2l6ZSgpOyArK2kpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHJldmlzaW9uIDE4MDUxMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQ0NCwxMiArMTQ0NCwxMiBAQCBSZWdpc3RlcklEKiBDb25kaXRpb25hbE5v
ZGU6OmVtaXRCeXRlY29kCiAgICAgZ2VuZXJhdG9yLmVtaXRKdW1wKGFmdGVyRWxzZS5nZXQoKSk7
CiAKICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGJlZm9yZUVsc2UuZ2V0KCkpOwotICAgIGdlbmVy
YXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fZXhwcjItPnN0YXJ0T2Zmc2V0KCkpOworICAg
IGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fZXhwcjEtPmVuZE9mZnNldCgpICsg
MSk7CiAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKG5ld0RzdC5nZXQoKSwgbV9leHByMik7CiAKICAg
ICBnZW5lcmF0b3IuZW1pdExhYmVsKGFmdGVyRWxzZS5nZXQoKSk7CiAKLSAgICBnZW5lcmF0b3Iu
ZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX2V4cHIyLT5lbmRPZmZzZXQoKSk7CisgICAgZ2VuZXJh
dG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cobV9leHByMi0+ZW5kT2Zmc2V0KCkgKyAxKTsKIAog
ICAgIHJldHVybiBuZXdEc3QuZ2V0KCk7CiB9CkBAIC0xODk3LDEyICsxODk3LDEzIEBAIHZvaWQg
SWZFbHNlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2UKICAgICBnZW5lcmF0b3IuZW1pdExh
YmVsKGJlZm9yZUVsc2UuZ2V0KCkpOwogCiAgICAgaWYgKG1fZWxzZUJsb2NrKSB7Ci0gICAgICAg
IGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1faWZCbG9jay0+ZW5kT2Zmc2V0KCkp
OworICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX2lmQmxvY2stPmVu
ZE9mZnNldCgpICsgKG1faWZCbG9jay0+aXNCbG9jaygpID8gMSA6IDApKTsKICAgICAgICAgZ2Vu
ZXJhdG9yLmVtaXROb2RlKGRzdCwgbV9lbHNlQmxvY2spOwogICAgIH0KIAogICAgIGdlbmVyYXRv
ci5lbWl0TGFiZWwoYWZ0ZXJFbHNlLmdldCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVD
b250cm9sRmxvdyhtX2Vsc2VCbG9jayA/IG1fZWxzZUJsb2NrLT5lbmRPZmZzZXQoKSA6IG1faWZC
bG9jay0+ZW5kT2Zmc2V0KCkpOworICAgIFN0YXRlbWVudE5vZGUqIGVuZGluZ0Jsb2NrID0gbV9l
bHNlQmxvY2sgPyBtX2Vsc2VCbG9jayA6IG1faWZCbG9jazsKKyAgICBnZW5lcmF0b3IuZW1pdFBy
b2ZpbGVDb250cm9sRmxvdyhlbmRpbmdCbG9jay0+ZW5kT2Zmc2V0KCkgKyAoZW5kaW5nQmxvY2st
PmlzQmxvY2soKSA/IDEgOiAwKSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSBEb1doaWxlTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0x
OTQ4LDcgKzE5NDksNyBAQCB2b2lkIFdoaWxlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
CiAKICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHNjb3BlLT5icmVha1RhcmdldCgpKTsKIAotICAg
IGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KGVuZE9mZnNldCgpKTsKKyAgICBnZW5l
cmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3N0YXRlbWVudC0+ZW5kT2Zmc2V0KCkgKyAo
bV9zdGF0ZW1lbnQtPmlzQmxvY2soKSA/IDEgOiAwKSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBGb3JOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCkBAIC0xOTgzLDcgKzE5ODQsNyBAQCB2b2lkIEZvck5vZGU6OmVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyCiAgICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcCh0b3BPZkxvb3AuZ2V0KCkp
OwogCiAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzY29wZS0+YnJlYWtUYXJnZXQoKSk7Ci0gICAg
Z2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3coZW5kT2Zmc2V0KCkpOworICAgIGdlbmVy
YXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fc3RhdGVtZW50LT5lbmRPZmZzZXQoKSArICht
X3N0YXRlbWVudC0+aXNCbG9jaygpID8gMSA6IDApKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIEZvckluTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KQEAgLTIxMDAsNiArMjEwMSw4IEBAIHZvaWQgRm9ySW5Ob2RlOjplbWl0TXVsdGlMb29w
Qnl0ZWNvZGUoQnkKICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoYmFzZS5nZXQoKSwgbV9leHByKTsK
ICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gbG9jYWwgPSB0aGlzLT50cnlHZXRCb3VuZExvY2FsKGdl
bmVyYXRvcik7CiAKKyAgICBpbnQgcHJvZmlsZXJTdGFydE9mZnNldCA9IG1fc3RhdGVtZW50LT5z
dGFydE9mZnNldCgpOworICAgIGludCBwcm9maWxlckVuZE9mZnNldCA9IG1fc3RhdGVtZW50LT5l
bmRPZmZzZXQoKSArIChtX3N0YXRlbWVudC0+aXNCbG9jaygpID8gMSA6IDApOwogICAgIC8vIElu
ZGV4ZWQgcHJvcGVydHkgbG9vcC4KICAgICB7CiAgICAgICAgIExhYmVsU2NvcGVQdHIgc2NvcGUg
PSBnZW5lcmF0b3IubmV3TGFiZWxTY29wZShMYWJlbFNjb3BlOjpMb29wKTsKQEAgLTIxMjEsMTMg
KzIxMjQsMTMgQEAgdm9pZCBGb3JJbk5vZGU6OmVtaXRNdWx0aUxvb3BCeXRlY29kZShCeQogICAg
ICAgICBnZW5lcmF0b3IuZW1pdFRvSW5kZXhTdHJpbmcocHJvcGVydHlOYW1lLmdldCgpLCBpLmdl
dCgpKTsKICAgICAgICAgdGhpcy0+ZW1pdExvb3BIZWFkZXIoZ2VuZXJhdG9yLCBwcm9wZXJ0eU5h
bWUuZ2V0KCkpOwogCi0gICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1f
c3RhdGVtZW50LT5zdGFydE9mZnNldCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxl
Q29udHJvbEZsb3cocHJvZmlsZXJTdGFydE9mZnNldCk7CiAKICAgICAgICAgZ2VuZXJhdG9yLnB1
c2hJbmRleGVkRm9ySW5TY29wZShsb2NhbC5nZXQoKSwgaS5nZXQoKSk7CiAgICAgICAgIGdlbmVy
YXRvci5lbWl0Tm9kZShkc3QsIG1fc3RhdGVtZW50KTsKICAgICAgICAgZ2VuZXJhdG9yLnBvcElu
ZGV4ZWRGb3JJblNjb3BlKGxvY2FsLmdldCgpKTsKIAotICAgICAgICBnZW5lcmF0b3IuZW1pdFBy
b2ZpbGVDb250cm9sRmxvdyhtX3N0YXRlbWVudC0+ZW5kT2Zmc2V0KCkpOworICAgICAgICBnZW5l
cmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhwcm9maWxlckVuZE9mZnNldCk7CiAKICAgICAg
ICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzY29wZS0+Y29udGludWVUYXJnZXQoKSk7CiAgICAgICAg
IGdlbmVyYXRvci5lbWl0SW5jKGkuZ2V0KCkpOwpAQCAtMjE1OSwxMyArMjE2MiwxMyBAQCB2b2lk
IEZvckluTm9kZTo6ZW1pdE11bHRpTG9vcEJ5dGVjb2RlKEJ5CiAKICAgICAgICAgdGhpcy0+ZW1p
dExvb3BIZWFkZXIoZ2VuZXJhdG9yLCBwcm9wZXJ0eU5hbWUuZ2V0KCkpOwogCi0gICAgICAgIGdl
bmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fc3RhdGVtZW50LT5zdGFydE9mZnNldCgp
KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cocHJvZmlsZXJTdGFy
dE9mZnNldCk7CiAKICAgICAgICAgZ2VuZXJhdG9yLnB1c2hTdHJ1Y3R1cmVGb3JJblNjb3BlKGxv
Y2FsLmdldCgpLCBpLmdldCgpLCBwcm9wZXJ0eU5hbWUuZ2V0KCksIHN0cnVjdHVyZUVudW1lcmF0
b3IuZ2V0KCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX3N0YXRlbWVudCk7
CiAgICAgICAgIGdlbmVyYXRvci5wb3BTdHJ1Y3R1cmVGb3JJblNjb3BlKGxvY2FsLmdldCgpKTsK
IAotICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3N0YXRlbWVudC0+
ZW5kT2Zmc2V0KCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhw
cm9maWxlckVuZE9mZnNldCk7CiAKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzY29wZS0+
Y29udGludWVUYXJnZXQoKSk7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0SW5jKGkuZ2V0KCkpOwpA
QCAtMjE5Niw3ICsyMTk5LDcgQEAgdm9pZCBGb3JJbk5vZGU6OmVtaXRNdWx0aUxvb3BCeXRlY29k
ZShCeQogCiAgICAgICAgIHRoaXMtPmVtaXRMb29wSGVhZGVyKGdlbmVyYXRvciwgcHJvcGVydHlO
YW1lLmdldCgpKTsKIAotICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyht
X3N0YXRlbWVudC0+c3RhcnRPZmZzZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmls
ZUNvbnRyb2xGbG93KHByb2ZpbGVyU3RhcnRPZmZzZXQpOwogCiAgICAgICAgIGdlbmVyYXRvci5l
bWl0Tm9kZShkc3QsIG1fc3RhdGVtZW50KTsKIApAQCAtMjIxNyw3ICsyMjIwLDcgQEAgdm9pZCBG
b3JJbk5vZGU6OmVtaXRNdWx0aUxvb3BCeXRlY29kZShCeQogCiAgICAgZ2VuZXJhdG9yLmVtaXRE
ZWJ1Z0hvb2soV2lsbEV4ZWN1dGVTdGF0ZW1lbnQsIGZpcnN0TGluZSgpLCBzdGFydE9mZnNldCgp
LCBsaW5lU3RhcnRPZmZzZXQoKSk7CiAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChlbmQuZ2V0KCkp
OwotICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fc3RhdGVtZW50LT5lbmRP
ZmZzZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJvbEZsb3cocHJvZmlsZXJF
bmRPZmZzZXQpOwogfQogCiB2b2lkIEZvckluTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKQEAgLTIyODUsNyArMjI4OCw3IEBA
IHZvaWQgRm9yT2ZOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW4KICAgICAgICAgZ2VuZXJh
dG9yLmVtaXROb2RlKGRzdCwgbV9zdGF0ZW1lbnQpOwogICAgIH07CiAgICAgZ2VuZXJhdG9yLmVt
aXRFbnVtZXJhdGlvbih0aGlzLCBtX2V4cHIsIGV4dHJhY3Rvcik7Ci0gICAgZ2VuZXJhdG9yLmVt
aXRQcm9maWxlQ29udHJvbEZsb3cobV9zdGF0ZW1lbnQtPmVuZE9mZnNldCgpKTsKKyAgICBnZW5l
cmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3N0YXRlbWVudC0+ZW5kT2Zmc2V0KCkgKyAo
bV9zdGF0ZW1lbnQtPmlzQmxvY2soKSA/IDEgOiAwKSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBDb250aW51ZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCkBAIC0yNjMxLDcgKzI2MzQsNyBAQCB2b2lkIFRyeU5vZGU6OmVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyCiAgICAgICAgIH0KIAogICAgICAgICBnZW5lcmF0b3IuZW1pdFB1c2hDYXRj
aFNjb3BlKGdlbmVyYXRvci5zY29wZVJlZ2lzdGVyKCksIG1fZXhjZXB0aW9uSWRlbnQsIGV4Y2Vw
dGlvblJlZ2lzdGVyLmdldCgpLCBEb250RGVsZXRlKTsKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRQ
cm9maWxlQ29udHJvbEZsb3cobV90cnlCbG9jay0+ZW5kT2Zmc2V0KCkpOworICAgICAgICBnZW5l
cmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX3RyeUJsb2NrLT5lbmRPZmZzZXQoKSArIDEp
OwogICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX2NhdGNoQmxvY2spOwogICAgICAg
ICBnZW5lcmF0b3IuZW1pdFBvcFNjb3BlKGdlbmVyYXRvci5zY29wZVJlZ2lzdGVyKCkpOwogICAg
ICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGNhdGNoRW5kTGFiZWwuZ2V0KCkpOwpAQCAtMjY0NCwx
MiArMjY0NywxMiBAQCB2b2lkIFRyeU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyCiAK
ICAgICAgICAgUmVmUHRyPExhYmVsPiBmaW5hbGx5RW5kTGFiZWwgPSBnZW5lcmF0b3IubmV3TGFi
ZWwoKTsKIAotICAgICAgICBpbnQgZmluYWxseVN0YXJ0T2Zmc2V0ID0gbV9jYXRjaEJsb2NrID8g
bV9jYXRjaEJsb2NrLT5lbmRPZmZzZXQoKSA6IG1fdHJ5QmxvY2stPmVuZE9mZnNldCgpOworICAg
ICAgICBpbnQgZmluYWxseVN0YXJ0T2Zmc2V0ID0gbV9jYXRjaEJsb2NrID8gbV9jYXRjaEJsb2Nr
LT5lbmRPZmZzZXQoKSArIDEgOiBtX3RyeUJsb2NrLT5lbmRPZmZzZXQoKSArIDE7CiAKICAgICAg
ICAgLy8gTm9ybWFsIHBhdGg6IHJ1biB0aGUgZmluYWxseSBjb2RlLCBhbmQganVtcCB0byB0aGUg
ZW5kLgogICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhmaW5hbGx5U3Rh
cnRPZmZzZXQpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX2ZpbmFsbHlCbG9j
ayk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xGbG93KG1fZmluYWxseUJs
b2NrLT5lbmRPZmZzZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xG
bG93KG1fZmluYWxseUJsb2NrLT5lbmRPZmZzZXQoKSArIDEpOwogICAgICAgICBnZW5lcmF0b3Iu
ZW1pdEp1bXAoZmluYWxseUVuZExhYmVsLmdldCgpKTsKIAogICAgICAgICAvLyBVbmNhdWdodCBl
eGNlcHRpb24gcGF0aDogaW52b2tlIHRoZSBmaW5hbGx5IGJsb2NrLCB0aGVuIHJlLXRocm93IHRo
ZSBleGNlcHRpb24uCkBAIC0yNjU5LDkgKzI2NjIsOSBAQCB2b2lkIFRyeU5vZGU6OmVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyCiAgICAgICAgIGdlbmVyYXRvci5lbWl0VGhyb3codGVtcEV4Y2Vw
dGlvblJlZ2lzdGVyLmdldCgpKTsKIAogICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGZpbmFs
bHlFbmRMYWJlbC5nZXQoKSk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZUNvbnRyb2xG
bG93KG1fZmluYWxseUJsb2NrLT5lbmRPZmZzZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0
UHJvZmlsZUNvbnRyb2xGbG93KG1fZmluYWxseUJsb2NrLT5lbmRPZmZzZXQoKSArIDEpOwogICAg
IH0gZWxzZQotICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVDb250cm9sRmxvdyhtX2NhdGNo
QmxvY2stPmVuZE9mZnNldCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlQ29udHJv
bEZsb3cobV9jYXRjaEJsb2NrLT5lbmRPZmZzZXQoKSArIDEpOwogCiB9CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCShyZXZpc2lvbiAxODA1MTApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtNzEzLDYgKzcxMywxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBub2RlLT5zZXRT
dGFydE9mZnNldChvZmZzZXQpOwogICAgIH0KKworICAgIHZvaWQgc2V0U3RhcnRPZmZzZXQoTm9k
ZSogbm9kZSwgaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIG5vZGUtPnNldFN0YXJ0T2Zmc2V0
KG9mZnNldCk7CisgICAgfQogICAgIAogcHJpdmF0ZToKICAgICBzdHJ1Y3QgU2NvcGUgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAkocmV2aXNpb24gMTgwNTEwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzIsNiArMTMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGludCBsaW5lU3RhcnRPZmZz
ZXQoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uLmxpbmVTdGFydE9mZnNldDsgfQogICAgICAg
ICBjb25zdCBKU1RleHRQb3NpdGlvbiYgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0
aW9uOyB9CiAgICAgICAgIHZvaWQgc2V0RW5kT2Zmc2V0KGludCBvZmZzZXQpIHsgbV9lbmRPZmZz
ZXQgPSBvZmZzZXQ7IH0KKyAgICAgICAgdm9pZCBzZXRTdGFydE9mZnNldChpbnQgb2Zmc2V0KSB7
IG1fcG9zaXRpb24ub2Zmc2V0ID0gb2Zmc2V0OyB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAg
IEpTVGV4dFBvc2l0aW9uIG1fcG9zaXRpb247CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXIuY3BwCShyZXZpc2lvbiAxODA1MTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1BhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMTUsMjEgKzExMTUsMjQg
QEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZQogewogICAgIEFTU0VS
VChtYXRjaChPUEVOQlJBQ0UpKTsKICAgICBKU1Rva2VuTG9jYXRpb24gbG9jYXRpb24odG9rZW5M
b2NhdGlvbigpKTsKKyAgICBpbnQgc3RhcnRPZmZzZXQgPSBtX3Rva2VuLm1fZGF0YS5vZmZzZXQ7
CiAgICAgaW50IHN0YXJ0ID0gdG9rZW5MaW5lKCk7CiAgICAgbmV4dCgpOwogICAgIGlmIChtYXRj
aChDTE9TRUJSQUNFKSkgewotICAgICAgICB1bnNpZ25lZCBlbmRPZmZzZXQgPSBtX2xleGVyLT5j
dXJyZW50T2Zmc2V0KCk7CisgICAgICAgIGludCBlbmRPZmZzZXQgPSBtX3Rva2VuLm1fZGF0YS5v
ZmZzZXQ7CiAgICAgICAgIG5leHQoKTsKICAgICAgICAgVHJlZVN0YXRlbWVudCByZXN1bHQgPSBj
b250ZXh0LmNyZWF0ZUJsb2NrU3RhdGVtZW50KGxvY2F0aW9uLCAwLCBzdGFydCwgbV9sYXN0VG9r
ZW5FbmRQb3NpdGlvbi5saW5lKTsKKyAgICAgICAgY29udGV4dC5zZXRTdGFydE9mZnNldChyZXN1
bHQsIHN0YXJ0T2Zmc2V0KTsKICAgICAgICAgY29udGV4dC5zZXRFbmRPZmZzZXQocmVzdWx0LCBl
bmRPZmZzZXQpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBUcmVlU291cmNl
RWxlbWVudHMgc3VidHJlZSA9IHBhcnNlU291cmNlRWxlbWVudHMoY29udGV4dCwgRG9udENoZWNr
Rm9yU3RyaWN0TW9kZSk7CiAgICAgZmFpbElmRmFsc2Uoc3VidHJlZSwgIkNhbm5vdCBwYXJzZSB0
aGUgYm9keSBvZiB0aGUgYmxvY2sgc3RhdGVtZW50Iik7CiAgICAgbWF0Y2hPckZhaWwoQ0xPU0VC
UkFDRSwgIkV4cGVjdGVkIGEgY2xvc2luZyAnfScgYXQgdGhlIGVuZCBvZiBhIGJsb2NrIHN0YXRl
bWVudCIpOwotICAgIHVuc2lnbmVkIGVuZE9mZnNldCA9IG1fbGV4ZXItPmN1cnJlbnRPZmZzZXQo
KTsKKyAgICBpbnQgZW5kT2Zmc2V0ID0gbV90b2tlbi5tX2RhdGEub2Zmc2V0OwogICAgIG5leHQo
KTsKICAgICBUcmVlU3RhdGVtZW50IHJlc3VsdCA9IGNvbnRleHQuY3JlYXRlQmxvY2tTdGF0ZW1l
bnQobG9jYXRpb24sIHN1YnRyZWUsIHN0YXJ0LCBtX2xhc3RUb2tlbkVuZFBvc2l0aW9uLmxpbmUp
OworICAgIGNvbnRleHQuc2V0U3RhcnRPZmZzZXQocmVzdWx0LCBzdGFydE9mZnNldCk7CiAgICAg
Y29udGV4dC5zZXRFbmRPZmZzZXQocmVzdWx0LCBlbmRPZmZzZXQpOwogICAgIHJldHVybiByZXN1
bHQ7CiB9CkBAIC0xMTQzLDkgKzExNDYsMTEgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVy
PiBUcmVlU3RhdGVtZQogICAgIGludCBub25Ucml2aWFsRXhwcmVzc2lvbkNvdW50ID0gMDsKICAg
ICBmYWlsSWZTdGFja092ZXJmbG93KCk7CiAgICAgVHJlZVN0YXRlbWVudCByZXN1bHQgPSAwOwor
ICAgIGJvb2wgc2hvdWxkU2V0RW5kT2Zmc2V0ID0gdHJ1ZTsKICAgICBzd2l0Y2ggKG1fdG9rZW4u
bV90eXBlKSB7CiAgICAgY2FzZSBPUEVOQlJBQ0U6CiAgICAgICAgIHJlc3VsdCA9IHBhcnNlQmxv
Y2tTdGF0ZW1lbnQoY29udGV4dCk7CisgICAgICAgIHNob3VsZFNldEVuZE9mZnNldCA9IGZhbHNl
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZBUjoKICAgICAgICAgcmVzdWx0ID0gcGFyc2VW
YXJEZWNsYXJhdGlvbihjb250ZXh0KTsKQEAgLTEyMjgsNyArMTIzMyw3IEBAIHRlbXBsYXRlIDxj
bGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWUKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0g
ICAgaWYgKHJlc3VsdCkKKyAgICBpZiAocmVzdWx0ICYmIHNob3VsZFNldEVuZE9mZnNldCkKICAg
ICAgICAgY29udGV4dC5zZXRFbmRPZmZzZXQocmVzdWx0LCBtX2xhc3RUb2tlbkVuZFBvc2l0aW9u
Lm9mZnNldCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTIzMTIsNiArMjMxNyw3IEBAIHRl
bXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3MKICAgICBUcmVlRXhwcmVzc2lv
biBiYXNlID0gMDsKICAgICBKU1RleHRQb3NpdGlvbiBleHByZXNzaW9uU3RhcnQgPSB0b2tlblN0
YXJ0UG9zaXRpb24oKTsKICAgICBpbnQgbmV3Q291bnQgPSAwOworICAgIEpTVG9rZW5Mb2NhdGlv
biBzdGFydExvY2F0aW9uID0gdG9rZW5Mb2NhdGlvbigpOwogICAgIEpTVG9rZW5Mb2NhdGlvbiBs
b2NhdGlvbjsKICAgICB3aGlsZSAobWF0Y2goTkVXKSkgewogICAgICAgICBuZXh0KCk7CkBAIC0y
MzUwLDcgKzIzNTYsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNz
CiAgICAgICAgICAgICAgICAgSlNUZXh0UG9zaXRpb24gZXhwcmVzc2lvbkVuZCA9IGxhc3RUb2tl
bkVuZFBvc2l0aW9uKCk7CiAgICAgICAgICAgICAgICAgVHJlZUFyZ3VtZW50cyBhcmd1bWVudHMg
PSBwYXJzZUFyZ3VtZW50cyhjb250ZXh0LCBBbGxvd1NwcmVhZCk7CiAgICAgICAgICAgICAgICAg
ZmFpbElmRmFsc2UoYXJndW1lbnRzLCAiQ2Fubm90IHBhcnNlIGNhbGwgYXJndW1lbnRzIik7Ci0g
ICAgICAgICAgICAgICAgYmFzZSA9IGNvbnRleHQubWFrZUZ1bmN0aW9uQ2FsbE5vZGUobG9jYXRp
b24sIGJhc2UsIGFyZ3VtZW50cywgZXhwcmVzc2lvblN0YXJ0LCBleHByZXNzaW9uRW5kLCBsYXN0
VG9rZW5FbmRQb3NpdGlvbigpKTsKKyAgICAgICAgICAgICAgICBiYXNlID0gY29udGV4dC5tYWtl
RnVuY3Rpb25DYWxsTm9kZShzdGFydExvY2F0aW9uLCBiYXNlLCBhcmd1bWVudHMsIGV4cHJlc3Np
b25TdGFydCwgZXhwcmVzc2lvbkVuZCwgbGFzdFRva2VuRW5kUG9zaXRpb24oKSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBtX25vbkxIU0NvdW50ID0gbm9uTEhTQ291bnQ7CiAgICAgICAg
ICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jhc2ljQmxv
Y2tMb2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQmFzaWNCbG9ja0xvY2F0aW9uLmNwcAkocmV2aXNpb24gMTgwNTEwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQmFzaWNCbG9ja0xvY2F0aW9uLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjIsOCArNjIsOCBAQCBWZWN0b3I8c3RkOjpwYWlyPGludCwgaW50Pj4gQmFzaWNCbG9j
a0xvCiAgICAgICAgICAgICAgICAgbWluSWR4ID0gaWR4OwogICAgICAgICAgICAgfQogICAgICAg
ICB9Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQoR2FwKG5leHRSYW5nZVN0YXJ0LCBtaW5HYXAuZmly
c3QpKTsKLSAgICAgICAgbmV4dFJhbmdlU3RhcnQgPSBtaW5HYXAuc2Vjb25kOworICAgICAgICBy
ZXN1bHQuYXBwZW5kKEdhcChuZXh0UmFuZ2VTdGFydCwgbWluR2FwLmZpcnN0IC0gMSkpOworICAg
ICAgICBuZXh0UmFuZ2VTdGFydCA9IG1pbkdhcC5zZWNvbmQgKyAxOwogICAgICAgICBnYXBzLnJl
bW92ZShtaW5JZHgpOwogICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29udHJvbEZsb3dQcm9maWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxlci5jcHAJKHJldmlzaW9uIDE4MDUxMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnRyb2xGbG93UHJvZmlsZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC05MSw3ICs5MSw3IEBAIFZlY3RvcjxCYXNpY0Jsb2NrUmFuZ2U+
IENvbnRyb2xGbG93UHJvZmkKICAgICAgICAgQmFzaWNCbG9ja1JhbmdlIHJhbmdlOwogICAgICAg
ICByYW5nZS5tX2hhc0V4ZWN1dGVkID0gc3RkOjpnZXQ8MD4oZnVuY3Rpb25SYW5nZSk7CiAgICAg
ICAgIHJhbmdlLm1fc3RhcnRPZmZzZXQgPSBzdGF0aWNfY2FzdDxpbnQ+KHN0ZDo6Z2V0PDE+KGZ1
bmN0aW9uUmFuZ2UpKTsKLSAgICAgICAgcmFuZ2UubV9lbmRPZmZzZXQgPSBzdGF0aWNfY2FzdDxp
bnQ+KHN0ZDo6Z2V0PDI+KGZ1bmN0aW9uUmFuZ2UpICsgMSk7CisgICAgICAgIHJhbmdlLm1fZW5k
T2Zmc2V0ID0gc3RhdGljX2Nhc3Q8aW50PihzdGQ6OmdldDwyPihmdW5jdGlvblJhbmdlKSk7CiAg
ICAgICAgIHJlc3VsdC5hcHBlbmQocmFuZ2UpOwogICAgIH0KIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2NvbnRyb2xGbG93UHJvZmlsZXIvYnJhY2UtbG9jYXRpb24uanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2NvbnRyb2xGbG93UHJvZmls
ZXIvYnJhY2UtbG9jYXRpb24uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvY29udHJvbEZsb3dQcm9maWxlci9icmFjZS1sb2NhdGlvbi5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE1OSBAQAorbG9hZCgiLi9kcml2ZXIvZHJpdmVyLmpzIik7CisKK2Z1
bmN0aW9uIGZvbygpIHt9CitmdW5jdGlvbiBiYXIoKSB7fQorZnVuY3Rpb24gYmF6KCkge30KKwor
ZnVuY3Rpb24gdGVzdElmKHgpIHsKKyAgICBpZiAoeCA8IDEwKSB7IGZvbygpOyB9IGVsc2UgaWYg
KHggPCAyMCkgeyBiYXIoKTsgfSBlbHNlIHsgYmF6KCkgfQorfQordGVzdElmKDkpOworLy8gTm90
ZSwgdGhlIGNoZWNrIHdpbGwgYmUgYWdhaW5zdCB0aGUgYmFzaWMgYmxvY2sgdGhhdCBjb250YWlu
cyB0aGUgZmlyc3QgbWF0Y2hlZCBjaGFyYWN0ZXIuIAorLy8gU28gaW4gdGhpcyBmb2xsb3dpbmcg
Y2FzZSwgdGhlIGJsb2NrIHRoYXQgY29udGFpbnMgdGhlICd7Jy4KK2NoZWNrQmFzaWNCbG9jayh0
ZXN0SWYsICJ7IGZvbyIsIFNob3VsZEhhdmVFeGVjdXRlZCk7CisvLyBJbiB0aGlzIGNhc2UsIGl0
IHdpbGwgdGVzdCB0aGUgYmFzaWMgYmxvY2sgdGhhdCBjb250YWlucyB0aGUgJyAnIGNoYXJhY3Rl
ci4KK2NoZWNrQmFzaWNCbG9jayh0ZXN0SWYsICIgZm9vIiwgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsK
K2NoZWNrQmFzaWNCbG9jayh0ZXN0SWYsICJ9IGVsc2UgaWYiLCBTaG91bGRIYXZlRXhlY3V0ZWQp
OworY2hlY2tCYXNpY0Jsb2NrKHRlc3RJZiwgImVsc2UgaWYiLCBTaG91bGROb3RIYXZlRXhlY3V0
ZWQpOworY2hlY2tCYXNpY0Jsb2NrKHRlc3RJZiwgInsgYmFyIiwgU2hvdWxkTm90SGF2ZUV4ZWN1
dGVkKTsKK2NoZWNrQmFzaWNCbG9jayh0ZXN0SWYsICIgYmFyIiwgU2hvdWxkTm90SGF2ZUV4ZWN1
dGVkKTsKK2NoZWNrQmFzaWNCbG9jayh0ZXN0SWYsICJlbHNlIHsiLCBTaG91bGROb3RIYXZlRXhl
Y3V0ZWQpOworY2hlY2tCYXNpY0Jsb2NrKHRlc3RJZiwgInsgYmF6IiwgU2hvdWxkTm90SGF2ZUV4
ZWN1dGVkKTsKK2NoZWNrQmFzaWNCbG9jayh0ZXN0SWYsICIgYmF6IiwgU2hvdWxkTm90SGF2ZUV4
ZWN1dGVkKTsKK3Rlc3RJZigyMSk7CitjaGVja0Jhc2ljQmxvY2sodGVzdElmLCAiZWxzZSBpZiAo
eCA8IDIwKSIsIFNob3VsZEhhdmVFeGVjdXRlZCk7IAorY2hlY2tCYXNpY0Jsb2NrKHRlc3RJZiwg
InsgYmFyIiwgU2hvdWxkTm90SGF2ZUV4ZWN1dGVkKTsgCitjaGVja0Jhc2ljQmxvY2sodGVzdElm
LCAiIGJhciIsIFNob3VsZE5vdEhhdmVFeGVjdXRlZCk7IAorY2hlY2tCYXNpY0Jsb2NrKHRlc3RJ
ZiwgImVsc2UgeyIsIFNob3VsZEhhdmVFeGVjdXRlZCk7IAorY2hlY2tCYXNpY0Jsb2NrKHRlc3RJ
ZiwgInsgYmF6IiwgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsgCitjaGVja0Jhc2ljQmxvY2sodGVzdElm
LCAiIGJheiIsIFNob3VsZEhhdmVFeGVjdXRlZCk7IAordGVzdElmKDExKTsKK2NoZWNrQmFzaWNC
bG9jayh0ZXN0SWYsICJ7IGJhciIsIFNob3VsZEhhdmVFeGVjdXRlZCk7IAorY2hlY2tCYXNpY0Js
b2NrKHRlc3RJZiwgIiBiYXIiLCBTaG91bGRIYXZlRXhlY3V0ZWQpOyAKKworZnVuY3Rpb24gdGVz
dEZvclJlZ3VsYXIoeCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgeDsgaSsrKSB7IGZvbygp
OyB9IGJhcigpOworfQordGVzdEZvclJlZ3VsYXIoMCk7CitjaGVja0Jhc2ljQmxvY2sodGVzdEZv
clJlZ3VsYXIsICJ7IGZvbyIsIFNob3VsZE5vdEhhdmVFeGVjdXRlZCk7IAorY2hlY2tCYXNpY0Js
b2NrKHRlc3RGb3JSZWd1bGFyLCAifSBiYXIiLCBTaG91bGROb3RIYXZlRXhlY3V0ZWQpOyAKK2No
ZWNrQmFzaWNCbG9jayh0ZXN0Rm9yUmVndWxhciwgIiBiYXIiLCBTaG91bGRIYXZlRXhlY3V0ZWQp
OyAKK3Rlc3RGb3JSZWd1bGFyKDEpOworY2hlY2tCYXNpY0Jsb2NrKHRlc3RGb3JSZWd1bGFyLCAi
eyBmb28iLCBTaG91bGRIYXZlRXhlY3V0ZWQpOyAKK2NoZWNrQmFzaWNCbG9jayh0ZXN0Rm9yUmVn
dWxhciwgIn0gYmFyIiwgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsgCisKK2Z1bmN0aW9uIHRlc3RGb3JJ
bih4KSB7CisgICAgZm9yICh2YXIgaSBpbiB4KSB7IGZvbygpOyB9IGJhcigpOworfQordGVzdEZv
ckluKHt9KTsKK2NoZWNrQmFzaWNCbG9jayh0ZXN0Rm9ySW4sICJ7IGZvbyIsIFNob3VsZE5vdEhh
dmVFeGVjdXRlZCk7IAorY2hlY2tCYXNpY0Jsb2NrKHRlc3RGb3JJbiwgIn0gYmFyIiwgU2hvdWxk
Tm90SGF2ZUV4ZWN1dGVkKTsgCitjaGVja0Jhc2ljQmxvY2sodGVzdEZvckluLCAiIGJhciIsIFNo
b3VsZEhhdmVFeGVjdXRlZCk7IAordGVzdEZvckluKHtmb286IDIwfSk7CitjaGVja0Jhc2ljQmxv
Y2sodGVzdEZvckluLCAieyBmb28iLCBTaG91bGRIYXZlRXhlY3V0ZWQpOyAKK2NoZWNrQmFzaWNC
bG9jayh0ZXN0Rm9ySW4sICJ9IGJhciIsIFNob3VsZEhhdmVFeGVjdXRlZCk7IAorCitmdW5jdGlv
biB0ZXN0Rm9yT2YoeCkgeworICAgIGZvciAodmFyIGkgb2YgeCkgeyBmb28oKTsgfSBiYXIoKTsK
K30KK3Rlc3RGb3JPZihbXSk7CitjaGVja0Jhc2ljQmxvY2sodGVzdEZvck9mLCAieyBmb28iLCBT
aG91bGROb3RIYXZlRXhlY3V0ZWQpOyAKK2NoZWNrQmFzaWNCbG9jayh0ZXN0Rm9yT2YsICIgZm9v
IiwgU2hvdWxkTm90SGF2ZUV4ZWN1dGVkKTsgCitjaGVja0Jhc2ljQmxvY2sodGVzdEZvck9mLCAi
fSBiYXIiLCBTaG91bGROb3RIYXZlRXhlY3V0ZWQpOyAKK2NoZWNrQmFzaWNCbG9jayh0ZXN0Rm9y
T2YsICIgYmFyIiwgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsgCit0ZXN0Rm9yT2YoWzIwXSk7CitjaGVj
a0Jhc2ljQmxvY2sodGVzdEZvck9mLCAieyBmb28iLCBTaG91bGRIYXZlRXhlY3V0ZWQpOyAKK2No
ZWNrQmFzaWNCbG9jayh0ZXN0Rm9yT2YsICJ9IGJhciIsIFNob3VsZEhhdmVFeGVjdXRlZCk7IAor
CitmdW5jdGlvbiB0ZXN0V2hpbGUoeCkgeworICAgIHZhciBpID0gMDsgd2hpbGUgKGkrKyA8IHgp
IHsgZm9vKCk7IH0gYmFyKCk7Cit9Cit0ZXN0V2hpbGUoMCk7CitjaGVja0Jhc2ljQmxvY2sodGVz
dFdoaWxlLCAieyBmb28iLCBTaG91bGROb3RIYXZlRXhlY3V0ZWQpOyAKK2NoZWNrQmFzaWNCbG9j
ayh0ZXN0V2hpbGUsICIgZm9vIiwgU2hvdWxkTm90SGF2ZUV4ZWN1dGVkKTsgCitjaGVja0Jhc2lj
QmxvY2sodGVzdFdoaWxlLCAifSBiYXIiLCBTaG91bGROb3RIYXZlRXhlY3V0ZWQpOyAKK2NoZWNr
QmFzaWNCbG9jayh0ZXN0V2hpbGUsICIgYmFyIiwgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsgCit0ZXN0
V2hpbGUoMSk7CitjaGVja0Jhc2ljQmxvY2sodGVzdFdoaWxlLCAieyBmb28iLCBTaG91bGRIYXZl
RXhlY3V0ZWQpOyAKK2NoZWNrQmFzaWNCbG9jayh0ZXN0V2hpbGUsICJ9IGJhciIsIFNob3VsZEhh
dmVFeGVjdXRlZCk7IAorCisKKy8vIE5vIGJyYWNlcyB0ZXN0cy4KKworZnVuY3Rpb24gdGVzdElm
Tm9CcmFjZXMoeCkgeworICAgIGlmICh4IDwgMTApIGZvbygpOyBlbHNlIGlmICh4IDwgMjApIGJh
cigpOyBlbHNlIGJheigpOworfQordGVzdElmTm9CcmFjZXMoOSk7CitjaGVja0Jhc2ljQmxvY2so
dGVzdElmTm9CcmFjZXMsICJmb28iLCBTaG91bGRIYXZlRXhlY3V0ZWQpOworY2hlY2tCYXNpY0Js
b2NrKHRlc3RJZk5vQnJhY2VzLCAiIGZvbyIsIFNob3VsZEhhdmVFeGVjdXRlZCk7CitjaGVja0Jh
c2ljQmxvY2sodGVzdElmTm9CcmFjZXMsICI7IGVsc2UgaWYiLCBTaG91bGRIYXZlRXhlY3V0ZWQp
OworY2hlY2tCYXNpY0Jsb2NrKHRlc3RJZk5vQnJhY2VzLCAiIGVsc2UgaWYiLCBTaG91bGROb3RI
YXZlRXhlY3V0ZWQpOworY2hlY2tCYXNpY0Jsb2NrKHRlc3RJZk5vQnJhY2VzLCAiIGJhciIsIFNo
b3VsZE5vdEhhdmVFeGVjdXRlZCk7IAorY2hlY2tCYXNpY0Jsb2NrKHRlc3RJZk5vQnJhY2VzLCAi
YmFyIiwgU2hvdWxkTm90SGF2ZUV4ZWN1dGVkKTsgCitjaGVja0Jhc2ljQmxvY2sodGVzdElmTm9C
cmFjZXMsICJlbHNlIGJheiIsIFNob3VsZE5vdEhhdmVFeGVjdXRlZCk7IAorY2hlY2tCYXNpY0Js
b2NrKHRlc3RJZk5vQnJhY2VzLCAiYmF6IiwgU2hvdWxkTm90SGF2ZUV4ZWN1dGVkKTsgCit0ZXN0
SWZOb0JyYWNlcygyMSk7CitjaGVja0Jhc2ljQmxvY2sodGVzdElmTm9CcmFjZXMsICJlbHNlIGJh
eiIsIFNob3VsZEhhdmVFeGVjdXRlZCk7IAorY2hlY2tCYXNpY0Jsb2NrKHRlc3RJZk5vQnJhY2Vz
LCAiYmF6IiwgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsgCitjaGVja0Jhc2ljQmxvY2sodGVzdElmTm9C
cmFjZXMsICI7IGVsc2UgYmF6IiwgU2hvdWxkTm90SGF2ZUV4ZWN1dGVkKTsgCitjaGVja0Jhc2lj
QmxvY2sodGVzdElmTm9CcmFjZXMsICJlbHNlIGlmICh4IDwgMjApIiwgU2hvdWxkSGF2ZUV4ZWN1
dGVkKTsKKy8vIE5vdGUgdGhhdCB0aGUgd2hpdGVzcGFjZSBwcmVjZWRpbmcgYmFyIGlzIHBhcnQg
b2YgdGhlIHByZXZpb3VzIGJhc2ljIGJsb2NrLgorLy8gQW4gaWYgc3RhdGVtZW50J3MgaWYtdHJ1
ZSBiYXNpYyBibG9jayB0ZXh0IG9mZnNldCBiZWdpbnMgYXQgdGhlIHN0YXJ0IG9mZnNldAorLy8g
b2YgdGhlIGlmLXRydWUgYmxvY2ssIGluIHRoaXMgY2FzZSwganVzdCB0aGUgZXhwcmVzc2lvbiAi
YmFyKCkiLgorY2hlY2tCYXNpY0Jsb2NrKHRlc3RJZk5vQnJhY2VzLCAiIGJhciIsIFNob3VsZEhh
dmVFeGVjdXRlZCk7IAorY2hlY2tCYXNpY0Jsb2NrKHRlc3RJZk5vQnJhY2VzLCAiYmFyIiwgU2hv
dWxkTm90SGF2ZUV4ZWN1dGVkKTsgCit0ZXN0SWZOb0JyYWNlcygxMSk7CitjaGVja0Jhc2ljQmxv
Y2sodGVzdElmTm9CcmFjZXMsICIgYmFyIiwgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsgCitjaGVja0Jh
c2ljQmxvY2sodGVzdElmTm9CcmFjZXMsICJiYXIiLCBTaG91bGRIYXZlRXhlY3V0ZWQpOyAKKwor
ZnVuY3Rpb24gdGVzdEZvclJlZ3VsYXJOb0JyYWNlcyh4KSB7CisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCB4OyBpKyspIGZvbygpOyBiYXIoKTsKK30KK3Rlc3RGb3JSZWd1bGFyTm9CcmFjZXMoMCk7
CitjaGVja0Jhc2ljQmxvY2sodGVzdEZvclJlZ3VsYXJOb0JyYWNlcywgIiBmb28iLCBTaG91bGRI
YXZlRXhlY3V0ZWQpOyAKK2NoZWNrQmFzaWNCbG9jayh0ZXN0Rm9yUmVndWxhck5vQnJhY2VzLCAi
Zm9vIiwgU2hvdWxkTm90SGF2ZUV4ZWN1dGVkKTsgCitjaGVja0Jhc2ljQmxvY2sodGVzdEZvclJl
Z3VsYXJOb0JyYWNlcywgIjsgYmFyIiwgU2hvdWxkTm90SGF2ZUV4ZWN1dGVkKTsgCitjaGVja0Jh
c2ljQmxvY2sodGVzdEZvclJlZ3VsYXJOb0JyYWNlcywgIiBiYXIiLCBTaG91bGRIYXZlRXhlY3V0
ZWQpOyAKK3Rlc3RGb3JSZWd1bGFyTm9CcmFjZXMoMSk7CitjaGVja0Jhc2ljQmxvY2sodGVzdEZv
clJlZ3VsYXJOb0JyYWNlcywgIiBmb28iLCBTaG91bGRIYXZlRXhlY3V0ZWQpOyAKK2NoZWNrQmFz
aWNCbG9jayh0ZXN0Rm9yUmVndWxhck5vQnJhY2VzLCAiZm9vIiwgU2hvdWxkSGF2ZUV4ZWN1dGVk
KTsgCitjaGVja0Jhc2ljQmxvY2sodGVzdEZvclJlZ3VsYXJOb0JyYWNlcywgIiBiYXIiLCBTaG91
bGRIYXZlRXhlY3V0ZWQpOyAKKworZnVuY3Rpb24gdGVzdEZvckluTm9CcmFjZXMoeCkgeworICAg
IGZvciAodmFyIGkgaW4geCkgZm9vKCk7IGJhcigpOworfQordGVzdEZvckluTm9CcmFjZXMoe30p
OworY2hlY2tCYXNpY0Jsb2NrKHRlc3RGb3JJbk5vQnJhY2VzLCAiIGZvbyIsIFNob3VsZEhhdmVF
eGVjdXRlZCk7IAorY2hlY2tCYXNpY0Jsb2NrKHRlc3RGb3JJbk5vQnJhY2VzLCAiZm9vIiwgU2hv
dWxkTm90SGF2ZUV4ZWN1dGVkKTsgCitjaGVja0Jhc2ljQmxvY2sodGVzdEZvckluTm9CcmFjZXMs
ICI7IGJhciIsIFNob3VsZE5vdEhhdmVFeGVjdXRlZCk7IAorY2hlY2tCYXNpY0Jsb2NrKHRlc3RG
b3JJbk5vQnJhY2VzLCAiIGJhciIsIFNob3VsZEhhdmVFeGVjdXRlZCk7IAordGVzdEZvckluTm9C
cmFjZXMoe2ZvbzogMjB9KTsKK2NoZWNrQmFzaWNCbG9jayh0ZXN0Rm9ySW5Ob0JyYWNlcywgIiBm
b28iLCBTaG91bGRIYXZlRXhlY3V0ZWQpOyAKK2NoZWNrQmFzaWNCbG9jayh0ZXN0Rm9ySW5Ob0Jy
YWNlcywgImZvbyIsIFNob3VsZEhhdmVFeGVjdXRlZCk7IAorY2hlY2tCYXNpY0Jsb2NrKHRlc3RG
b3JJbk5vQnJhY2VzLCAiOyBiYXIiLCBTaG91bGRIYXZlRXhlY3V0ZWQpOyAKKworZnVuY3Rpb24g
dGVzdEZvck9mTm9CcmFjZXMoeCkgeworICAgIGZvciAodmFyIGkgb2YgeCkgZm9vKCk7IGJhcigp
OworfQordGVzdEZvck9mTm9CcmFjZXMoW10pOworY2hlY2tCYXNpY0Jsb2NrKHRlc3RGb3JPZk5v
QnJhY2VzLCAiIGZvbyIsIFNob3VsZEhhdmVFeGVjdXRlZCk7IAorY2hlY2tCYXNpY0Jsb2NrKHRl
c3RGb3JPZk5vQnJhY2VzLCAiZm9vIiwgU2hvdWxkTm90SGF2ZUV4ZWN1dGVkKTsgCitjaGVja0Jh
c2ljQmxvY2sodGVzdEZvck9mTm9CcmFjZXMsICI7IGJhciIsIFNob3VsZE5vdEhhdmVFeGVjdXRl
ZCk7IAorY2hlY2tCYXNpY0Jsb2NrKHRlc3RGb3JPZk5vQnJhY2VzLCAiIGJhciIsIFNob3VsZEhh
dmVFeGVjdXRlZCk7IAordGVzdEZvck9mTm9CcmFjZXMoWzIwXSk7CitjaGVja0Jhc2ljQmxvY2so
dGVzdEZvck9mTm9CcmFjZXMsICIgZm9vIiwgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsgCitjaGVja0Jh
c2ljQmxvY2sodGVzdEZvck9mTm9CcmFjZXMsICJmb28iLCBTaG91bGRIYXZlRXhlY3V0ZWQpOyAK
K2NoZWNrQmFzaWNCbG9jayh0ZXN0Rm9yT2ZOb0JyYWNlcywgIjsgYmFyIiwgU2hvdWxkSGF2ZUV4
ZWN1dGVkKTsgCisKK2Z1bmN0aW9uIHRlc3RXaGlsZU5vQnJhY2VzKHgpIHsKKyAgICB2YXIgaSA9
IDA7IHdoaWxlIChpKysgPCB4KSBmb28oKTsgYmFyKCk7Cit9Cit0ZXN0V2hpbGVOb0JyYWNlcygw
KTsKK2NoZWNrQmFzaWNCbG9jayh0ZXN0V2hpbGVOb0JyYWNlcywgIiBmb28iLCBTaG91bGRIYXZl
RXhlY3V0ZWQpOyAKK2NoZWNrQmFzaWNCbG9jayh0ZXN0V2hpbGVOb0JyYWNlcywgImZvbyIsIFNo
b3VsZE5vdEhhdmVFeGVjdXRlZCk7IAorY2hlY2tCYXNpY0Jsb2NrKHRlc3RXaGlsZU5vQnJhY2Vz
LCAiOyBiYXIiLCBTaG91bGROb3RIYXZlRXhlY3V0ZWQpOyAKK2NoZWNrQmFzaWNCbG9jayh0ZXN0
V2hpbGVOb0JyYWNlcywgIiBiYXIiLCBTaG91bGRIYXZlRXhlY3V0ZWQpOyAKK3Rlc3RXaGlsZU5v
QnJhY2VzKDEpOworY2hlY2tCYXNpY0Jsb2NrKHRlc3RXaGlsZU5vQnJhY2VzLCAiIGZvbyIsIFNo
b3VsZEhhdmVFeGVjdXRlZCk7IAorY2hlY2tCYXNpY0Jsb2NrKHRlc3RXaGlsZU5vQnJhY2VzLCAi
Zm9vIiwgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsgCitjaGVja0Jhc2ljQmxvY2sodGVzdFdoaWxlTm9C
cmFjZXMsICI7IGJhciIsIFNob3VsZEhhdmVFeGVjdXRlZCk7IApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2NvbnRyb2xGbG93UHJvZmlsZXIvY29uZGl0aW9uYWwtZXhwcmVzc2lv
bi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvY29udHJvbEZs
b3dQcm9maWxlci9jb25kaXRpb25hbC1leHByZXNzaW9uLmpzCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2NvbnRyb2xGbG93UHJvZmlsZXIvY29uZGl0aW9uYWwt
ZXhwcmVzc2lvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACitsb2FkKCIuL2Ry
aXZlci9kcml2ZXIuanMiKTsKKworZnVuY3Rpb24gZm9vKCl7IH0KK2Z1bmN0aW9uIGJhcigpeyB9
CitmdW5jdGlvbiBiYXooKXsgfQorCitmdW5jdGlvbiB0ZXN0Q29uZGl0aW9uYWxCYXNpYyh4KSB7
CisgICAgcmV0dXJuIHggPyAxMCA6IDIwOworfQorCisKK3Rlc3RDb25kaXRpb25hbEJhc2ljKGZh
bHNlKTsKK2NoZWNrQmFzaWNCbG9jayh0ZXN0Q29uZGl0aW9uYWxCYXNpYywgIngiLCBTaG91bGRI
YXZlRXhlY3V0ZWQpOworY2hlY2tCYXNpY0Jsb2NrKHRlc3RDb25kaXRpb25hbEJhc2ljLCAiMjAi
LCBTaG91bGRIYXZlRXhlY3V0ZWQpOworY2hlY2tCYXNpY0Jsb2NrKHRlc3RDb25kaXRpb25hbEJh
c2ljLCAiMTAiLCBTaG91bGROb3RIYXZlRXhlY3V0ZWQpOworCit0ZXN0Q29uZGl0aW9uYWxCYXNp
Yyh0cnVlKTsKK2NoZWNrQmFzaWNCbG9jayh0ZXN0Q29uZGl0aW9uYWxCYXNpYywgIjEwIiwgU2hv
dWxkSGF2ZUV4ZWN1dGVkKTsKKworCitmdW5jdGlvbiB0ZXN0Q29uZGl0aW9uYWxGdW5jdGlvbkNh
bGwoeCwgeSkgeworICAgIHggPyB5ID8gZm9vKCkgCisgICAgICAgIDogYmF6KCkgCisgICAgICAg
IDogYmFyKCkKK30KK3Rlc3RDb25kaXRpb25hbEZ1bmN0aW9uQ2FsbChmYWxzZSwgZmFsc2UpOwor
Y2hlY2tCYXNpY0Jsb2NrKHRlc3RDb25kaXRpb25hbEZ1bmN0aW9uQ2FsbCwgIngiLCBTaG91bGRI
YXZlRXhlY3V0ZWQpOworY2hlY2tCYXNpY0Jsb2NrKHRlc3RDb25kaXRpb25hbEZ1bmN0aW9uQ2Fs
bCwgIj8geSIsIFNob3VsZEhhdmVFeGVjdXRlZCk7CitjaGVja0Jhc2ljQmxvY2sodGVzdENvbmRp
dGlvbmFsRnVuY3Rpb25DYWxsLCAiYmFyIiwgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsKK2NoZWNrQmFz
aWNCbG9jayh0ZXN0Q29uZGl0aW9uYWxGdW5jdGlvbkNhbGwsICI6IGJhciIsIFNob3VsZEhhdmVF
eGVjdXRlZCk7CitjaGVja0Jhc2ljQmxvY2sodGVzdENvbmRpdGlvbmFsRnVuY3Rpb25DYWxsLCAi
eSIsIFNob3VsZE5vdEhhdmVFeGVjdXRlZCk7CitjaGVja0Jhc2ljQmxvY2sodGVzdENvbmRpdGlv
bmFsRnVuY3Rpb25DYWxsLCAiPyBmb28iLCBTaG91bGROb3RIYXZlRXhlY3V0ZWQpOworY2hlY2tC
YXNpY0Jsb2NrKHRlc3RDb25kaXRpb25hbEZ1bmN0aW9uQ2FsbCwgImZvbyIsIFNob3VsZE5vdEhh
dmVFeGVjdXRlZCk7CitjaGVja0Jhc2ljQmxvY2sodGVzdENvbmRpdGlvbmFsRnVuY3Rpb25DYWxs
LCAiYmF6IiwgU2hvdWxkTm90SGF2ZUV4ZWN1dGVkKTsKKwordGVzdENvbmRpdGlvbmFsRnVuY3Rp
b25DYWxsKHRydWUsIGZhbHNlKTsKK2NoZWNrQmFzaWNCbG9jayh0ZXN0Q29uZGl0aW9uYWxGdW5j
dGlvbkNhbGwsICJ5IiwgU2hvdWxkSGF2ZUV4ZWN1dGVkKTsKK2NoZWNrQmFzaWNCbG9jayh0ZXN0
Q29uZGl0aW9uYWxGdW5jdGlvbkNhbGwsICI/IGZvbyIsIFNob3VsZEhhdmVFeGVjdXRlZCk7Citj
aGVja0Jhc2ljQmxvY2sodGVzdENvbmRpdGlvbmFsRnVuY3Rpb25DYWxsLCAiOiBiYXoiLCBTaG91
bGRIYXZlRXhlY3V0ZWQpOworY2hlY2tCYXNpY0Jsb2NrKHRlc3RDb25kaXRpb25hbEZ1bmN0aW9u
Q2FsbCwgImJheiIsIFNob3VsZEhhdmVFeGVjdXRlZCk7CitjaGVja0Jhc2ljQmxvY2sodGVzdENv
bmRpdGlvbmFsRnVuY3Rpb25DYWxsLCAiZm9vIiwgU2hvdWxkTm90SGF2ZUV4ZWN1dGVkKTsKKwor
dGVzdENvbmRpdGlvbmFsRnVuY3Rpb25DYWxsKHRydWUsIHRydWUpOworY2hlY2tCYXNpY0Jsb2Nr
KHRlc3RDb25kaXRpb25hbEZ1bmN0aW9uQ2FsbCwgImZvbyIsIFNob3VsZEhhdmVFeGVjdXRlZCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvY29udHJvbEZsb3dQcm9maWxlci9k
cml2ZXIvZHJpdmVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9jb250cm9sRmxvd1Byb2ZpbGVyL2RyaXZlci9kcml2ZXIuanMJKHJldmlzaW9uIDE4MDUxMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9jb250cm9sRmxvd1Byb2ZpbGVyL2RyaXZl
ci9kcml2ZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTIsMyArMiwxMyBAQCBmdW5jdGlvbiBhc3Nl
cnQoY29uZGl0aW9uLCByZWFzb24pIHsKICAgICBpZiAoIWNvbmRpdGlvbikKICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKHJlYXNvbik7CiB9CisKK3ZhciBTaG91bGRIYXZlRXhlY3V0ZWQgPSB0cnVl
OwordmFyIFNob3VsZE5vdEhhdmVFeGVjdXRlZCA9IGZhbHNlOworCitmdW5jdGlvbiBjaGVja0Jh
c2ljQmxvY2soZnVuYywgZXhwciwgZXhwZWN0YXRpb24pIHsKKyAgICBpZiAoZXhwZWN0YXRpb24g
PT09IFNob3VsZEhhdmVFeGVjdXRlZCkKKyAgICAgICAgYXNzZXJ0KGhhc0Jhc2ljQmxvY2tFeGVj
dXRlZChmdW5jLCBleHByLCAic2hvdWxkIGhhdmUgZXhlY3V0ZWQiKSk7CisgICAgZWxzZQorICAg
ICAgICBhc3NlcnQoIWhhc0Jhc2ljQmxvY2tFeGVjdXRlZChmdW5jLCBleHByLCAic2hvdWxkIG5v
dCBoYXZlIGV4ZWN1dGVkIikpOworfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>