<?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>112430</bug_id>
          
          <creation_ts>2013-03-15 04:36:51 -0700</creation_ts>
          <short_desc>[V8] Generate specialized callbacks for the main world</short_desc>
          <delta_ts>2013-03-25 09:52:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>113013</dependson>
    
    <dependson>113017</dependson>
          <blocked>110874</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Marja Hölttä">marja</reporter>
          <assigned_to name="Marja Hölttä">marja</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dcarney</cc>
    
    <cc>dgrogan</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jsbell</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>855893</commentid>
    <comment_count>0</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-03-15 04:36:51 -0700</bug_when>
    <thetext>The patch in bug 111417 added specialized getters and setters; next I&apos;ll add specialized callbacks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860715</commentid>
    <comment_count>1</comment_count>
      <attachid>194343</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-03-21 14:41:24 -0700</bug_when>
    <thetext>Created attachment 194343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860721</commentid>
    <comment_count>2</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-03-21 14:45:13 -0700</bug_when>
    <thetext>Some metrics from running the bindings perf tests:

Better:
first-child 8%
get-element-by-tag-name 11%
id-setter 13%
set-attribute 15%
typed-array-construct-from-array 13%

No change:
others

Worse:
-</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860733</commentid>
    <comment_count>3</comment_count>
      <attachid>194343</attachid>
    <who name="">jochen</who>
    <bug_when>2013-03-21 14:48:11 -0700</bug_when>
    <thetext>Comment on attachment 194343
Patch

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:3032
&gt; +          $methodForMainWorld = &quot;${interfaceName}V8Internal::${name}MethodCallbackForMainWorld&quot;;

nit. 4 spaces</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860778</commentid>
    <comment_count>4</comment_count>
      <attachid>194358</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-03-21 15:16:19 -0700</bug_when>
    <thetext>Created attachment 194358
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860808</commentid>
    <comment_count>5</comment_count>
      <attachid>194358</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-21 15:54:51 -0700</bug_when>
    <thetext>Comment on attachment 194358
Patch

Clearing flags on attachment: 194358

Committed r146534: &lt;http://trac.webkit.org/changeset/146534&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860809</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-21 15:54:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860916</commentid>
    <comment_count>7</comment_count>
      <attachid>194358</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-21 17:22:28 -0700</bug_when>
    <thetext>Comment on attachment 194358
Patch

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

&gt; Source/WebCore/ChangeLog:15
&gt; +        No new tests (updated existing binding tests).

Please add tests for DOM attributes/methods that have [V8PerWorldBindings].

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:2068
&gt; +    my ($parameterCheckString, $paramIndex, %replacements) = GenerateParametersCheck($function, $interfaceName, &quot;&quot;);

Nit: &quot;&quot; is not needed.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:2582
&gt; +    if ($function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;V8PerWorldBindings&quot;}) {
&gt; +        push(@implContent, &quot;    if (currentWorldType == MainWorld) {\n&quot;);
&gt; +        push(@implContent, &quot;        ${conditional}$template-&gt;Set(v8::String::NewSymbol(\&quot;$name\&quot;), v8::FunctionTemplate::New(${interfaceName}V8Internal::${name}MethodCallbackForMainWorld, v8Undefined(), ${signature})$property_attributes);\n&quot;);
&gt; +        push(@implContent, &quot;    } else {\n&quot;);
&gt; +        push(@implContent, &quot;        ${conditional}$template-&gt;Set(v8::String::NewSymbol(\&quot;$name\&quot;), v8::FunctionTemplate::New(${interfaceName}V8Internal::${name}MethodCallback, v8Undefined(), ${signature})$property_attributes);\n&quot;);
&gt; +        push(@implContent, &quot;    }\n&quot;);
&gt; +    } else {
&gt; +        push(@implContent, &quot;    ${conditional}$template-&gt;Set(v8::String::NewSymbol(\&quot;$name\&quot;), v8::FunctionTemplate::New(${interfaceName}V8Internal::${name}MethodCallback, v8Undefined(), ${signature})$property_attributes);\n&quot;);
&gt; +    }

I&apos;d guess that this change is premature. You need to first support [V8PerWorldBindings] for &quot;NonStandard&quot; methods (e.g. per-context methods) before making the change. Otherwise, once you add [V8PerWorldBindings] to NonStandard methods, the compile will fail because there is no xxxMethodCallbackForMainWorld.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:2927
&gt; +        GenerateFunction($function, $interface, &quot;&quot;);

Nit: &quot;&quot; is not needed.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:2934
&gt; +                GenerateOverloadedFunction($function, $interface, &quot;&quot;);

Ditto.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:2939
&gt; +            GenerateFunctionCallback($function, $interface, &quot;&quot;);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860995</commentid>
    <comment_count>8</comment_count>
      <attachid>194358</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-03-21 19:17:52 -0700</bug_when>
    <thetext>Comment on attachment 194358
Patch

Wow, the IDL change looks massive.
Should we start from some minimal set of hottest functions and see the result before going further?
Also, numbers on some existing (non-micro) benchmarks would be nice to have. 
That is especially because this change is intrusive to IDL files, which everyone sees and cares about the readability.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860997</commentid>
    <comment_count>9</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-21 19:22:55 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 194358 [details])
&gt; Wow, the IDL change looks massive.
&gt; Should we start from some minimal set of hottest functions and see the result before going further?
&gt; Also, numbers on some existing (non-micro) benchmarks would be nice to have. 
&gt; That is especially because this change is intrusive to IDL files, which everyone sees and cares about the readability.

Sounds reasonable to me. Let&apos;s start from performance-sensitive attributes/methods.

(If we want to enable the feature in a per-interface basis, we can add [V8PerWorldBindings] to an interface instead of adding [V8PerWorldBindings] to all attributes/methods of the interface. (Though I don&apos;t think that per-interface is a good idea.))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861188</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-22 01:01:33 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 113017</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862088</commentid>
    <comment_count>11</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-03-22 19:40:05 -0700</bug_when>
    <thetext>This was reverted because it regressed chrome sizes. So I can take your comments into account.

Kentaro: Do we have data on what are the hottest functions in the real world? I wouldn&apos;t want to optimize for Dromaeo.

I don&apos;t see the cleanliness of the IDL files as a big problem, taking into account the ugliness difference of &quot;before&quot; and &quot;after&quot; states; there are quite a many of custom IDL attributes as is.

However, if you want to keep IDL cleaner I can add the &quot;specialize all setters + getters + callbacks of this class&quot; interface level attribute. I think specializing everything in Node, Element and Document is a reasonable first step.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862091</commentid>
    <comment_count>12</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-03-22 19:46:56 -0700</bug_when>
    <thetext>I meant: I can take your comments into account *in the new version I&apos;ll try to commit*. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862092</commentid>
    <comment_count>13</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-22 19:48:28 -0700</bug_when>
    <thetext>&gt; Kentaro: Do we have data on what are the hottest functions in the real world? I wouldn&apos;t want to optimize for Dromaeo.

I think we can choose hot attributes/methods based on our sixth sense with some data. Let me suggest the list later.

&gt; This was reverted because it regressed chrome sizes. So I can take your comments into account.

How much? Does this imply that it is not allowed to generate two callbacks for all attributes/methods in Node, Element and Document? If that is the case, it implies that we cannot anyway take the approach of per-interface [V8PerWorldBindings].

(Actually I was surprised that [V8PerWorldBindings] has so big impact on the chrome size. Does the size increase make sense to you?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862093</commentid>
    <comment_count>14</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-22 19:53:22 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; Kentaro: Do we have data on what are the hottest functions in the real world? I wouldn&apos;t want to optimize for Dromaeo.
&gt; 
&gt; I think we can choose hot attributes/methods based on our sixth sense with some data. Let me suggest the list later.

Although I completely agree that we shouldn&apos;t stick to Dromaeo, as a first step, how about choosing only attributes/methods used in Dromaeo? It would be a good idea to observe how much performance gain we can see in perf bots and how much binary increase we will hit by duplicating callbacks, to consider what we should do next.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862094</commentid>
    <comment_count>15</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-03-22 19:56:01 -0700</bug_when>
    <thetext>It only increased the size for ~ 60 K which was as expected, so %-wise it&apos;s not too big of a increase, it just happened to push the Chrome size above the notify-perf-sheriffs threshold and I had forgotten to notify them first :)

So I think we can specialize everything in Node, Document and Element and it shouldn&apos;t be too much.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862102</commentid>
    <comment_count>16</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-22 20:17:57 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; It only increased the size for ~ 60 K which was as expected, so %-wise it&apos;s not too big of a increase, it just happened to push the Chrome size above the notify-perf-sheriffs threshold and I had forgotten to notify them first :)
&gt; 
&gt; So I think we can specialize everything in Node, Document and Element and it shouldn&apos;t be too much.

Thanks for the clarification.

Then how about supporting both per-interface [V8PerWorldBindings] and per-attribute/method [V8PerWorldBindings] ([Conditional] is already doing the same thing) ? We can use per-interface [V8PerWorldBindings] for Node, Document and Element. WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862104</commentid>
    <comment_count>17</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-03-22 20:23:39 -0700</bug_when>
    <thetext>So, my primary opinion is:

Let&apos;s keep it as is, the IDL is not considerably uglier than it is now.

However, if you say that won&apos;t do, my secondary opinion is:

I&apos;ll add a per-interface V8PerWorldBindings (and keep the per-attribute/callback version there too), and specialize everything in Node, Element and Document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862113</commentid>
    <comment_count>18</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-22 20:41:54 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; So, my primary opinion is:
&gt; 
&gt; Let&apos;s keep it as is, the IDL is not considerably uglier than it is now.
&gt; 
&gt; However, if you say that won&apos;t do, my secondary opinion is:
&gt; 
&gt; I&apos;ll add a per-interface V8PerWorldBindings (and keep the per-attribute/callback version there too), and specialize everything in Node, Element and Document.

hmm, I re-considered about it:

- As morrita mentioned, we don&apos;t want to mess up IDL files than is necessary. IDL files are shared with other ports.

- We don&apos;t want to increase binary size for duplicating attributes/methods that are rarely used in a real world. 60 KB increase might be large for mobile builds. For example, regarding Document, I don&apos;t think createEntityReference, importNode, 
createElementNS, createAttributeNS, getElementsByTagNameNS, createExpression, getOverrideStyle, evaluate etc are not used frequently.

In that sense, per-interface [V8PerWorldBindings] wouldn&apos;t be a good idea. My opinion is:

- First, let&apos;s add [V8PerWorldBindings] to attributes/methods used in Dromaeo and see performance &amp; memory impacts on build bots including mobile builds.

- After confirming it works as expected, let&apos;s add [V8PerWorldBindings] to more attributes/methods with some reasoning (sixth sense). This would be a relatively easy work.

At least I might want to avoid adding [V8PerWorldBindings] to whatever attributes/methods without any reasoning (since it increases the binary size wastefully). WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862116</commentid>
    <comment_count>19</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-22 20:43:29 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; I don&apos;t think createEntityReference, importNode, 
&gt; createElementNS, createAttributeNS, getElementsByTagNameNS, createExpression, getOverrideStyle, evaluate etc are not used frequently.

s/are not used frequently/are used frequently/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862830</commentid>
    <comment_count>20</comment_count>
      <attachid>194870</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-03-25 09:25:25 -0700</bug_when>
    <thetext>Created attachment 194870
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862835</commentid>
    <comment_count>21</comment_count>
      <attachid>194870</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-25 09:27:15 -0700</bug_when>
    <thetext>Comment on attachment 194870
Patch

We discussed offline. LGTM!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862861</commentid>
    <comment_count>22</comment_count>
      <attachid>194870</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-25 09:51:57 -0700</bug_when>
    <thetext>Comment on attachment 194870
Patch

Clearing flags on attachment: 194870

Committed r146785: &lt;http://trac.webkit.org/changeset/146785&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862862</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-25 09:52:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194343</attachid>
            <date>2013-03-21 14:41:24 -0700</date>
            <delta_ts>2013-03-21 15:16:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112430-20130321223712.patch</filename>
            <type>text/plain</type>
            <size>53926</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRlMDU1OGZiYTM5Mzg2
NjMyNTE1MzA2YWQyM2U0ZDBjYjJhNjNmMC4uYzJmODMzMzFjZjljNjI4NzM2ODk1NDI3ODJhOTgx
ZDFmNzM0Yzk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAzLTIxICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIEdlbmVyYXRl
IHNwZWNpYWxpemVkIGNhbGxiYWNrcyBmb3IgdGhlIG1haW4gd29ybGQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQzMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBuZXcgc3BlY2lhbGl6ZWQgYmlu
ZGluZ3Mgd2lsbCBiZSBmYXN0ZXIsIGJlY2F1c2UgdGhleSBkb24ndCBuZWVkIHRvCisgICAgICAg
IGRvIHRoZSAibWFpbiB3b3JsZCwgaXNvbGF0ZWQgd29ybGQgb3IgYSB3b3JrZXIiIGNoZWNrLCBi
dXQgY2FuIHJpZ2h0CisgICAgICAgIGF3YXkgYXNzdW1lIHRoYXQgd2UncmUgaW4gdGhlIG1haW4g
d29ybGQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBnZW5lcmF0ZXMgbWFpbiB3b3JsZCBiaW5kaW5n
cyBmb3IgZ2V0dGVycyBhbmQgc2V0dGVycyBvZiBOb2RlLAorICAgICAgICBFbGVtZW50IGFuZCBE
b2N1bWVudC4KKworICAgICAgICBObyBuZXcgdGVzdHMgKHVwZGF0ZWQgZXhpc3RpbmcgYmluZGlu
ZyB0ZXN0cykuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bToKKyAgICAgICAgKEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9uKToKKyAgICAgICAgKEdlbmVy
YXRlRnVuY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChHZW5lcmF0ZUZ1bmN0aW9uKToKKyAgICAg
ICAgKEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrKToKKyAgICAgICAgKEdlbmVyYXRlU2luZ2xlQ29u
c3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgIChHZW5lcmF0ZU5vblN0YW5kYXJkRnVuY3Rpb24p
OgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUZ1
bmN0aW9uQ2FsbFN0cmluZyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
RmxvYXQ2NEFycmF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRU
YXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdFR5cGVkZWZzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L1Y4RE9NQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERP
TUNvbmZpZ3VyYXRpb246OmJhdGNoQ29uZmlndXJlQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4RE9NQ29uZmlndXJhdGlvbjo6Y29uZmlndXJlVGVtcGxhdGUpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L1Y4RE9NQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoQmF0Y2hlZE1ldGhvZCk6
CisgICAgICAgIChWOERPTUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5p
ZGw6CisgICAgICAgICogZG9tL0VsZW1lbnQuaWRsOgorICAgICAgICAqIGRvbS9Ob2RlLmlkbDoK
KwogMjAxMy0wMy0yMCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAg
IEhUTUxOYW1lcyBzaG91bGQgY29uc3RydWN0IHN0cmluZ3MgYXQgY29tcGlsZSB0aW1lCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmlu
ZGV4IDA3MTdmNGNmMmM5YzQ2Yjg0ZWVkNTgzYTZlMWFkZWZlNDM2MWFkOGYuLmRlMzQ5M2Y0NWFl
YTEzZDRlZDgzZTM0OTdlOWMwZGFmODYxMDA1NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0xNTU2LDYgKzE1NTYsNyBA
QCBzdWIgR2VuZXJhdGVPdmVybG9hZGVkRnVuY3Rpb24KIHsKICAgICBteSAkZnVuY3Rpb24gPSBz
aGlmdDsKICAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisgICAgbXkgJGZvck1haW5Xb3JsZFN1
ZmZpeCA9IHNoaWZ0OwogICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFtZTsK
IAogICAgICMgR2VuZXJhdGUgY29kZSBmb3IgY2hvb3NpbmcgdGhlIGNvcnJlY3Qgb3ZlcmxvYWQg
dG8gY2FsbC4gT3ZlcmxvYWRzIGFyZQpAQCAtMTU2OSw3ICsxNTcwLDcgQEAgc3ViIEdlbmVyYXRl
T3ZlcmxvYWRlZEZ1bmN0aW9uCiAgICAgbXkgJGxlYXN0TnVtTWFuZGF0b3J5UGFyYW1zID0gMjU1
OwogICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiI2lmICR7Y29uZGl0aW9uYWxTdHJp
bmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICBwdXNoKEBpbXBsQ29udGVudElu
dGVybmFscywgPDxFTkQpOwotc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiAke25hbWV9TWV0
aG9kKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+ICR7bmFtZX1NZXRob2Qke2Zvck1haW5Xb3JsZFN1ZmZpeH0oY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKIHsKIEVORAogICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCBHZW5lcmF0
ZUZlYXR1cmVPYnNlcnZhdGlvbigkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IlY4TWVhc3VyZUFzIn0pKTsKQEAgLTE1NzksNyArMTU4MCw3IEBAIEVORAogICAgICAg
ICAkbGVhc3ROdW1NYW5kYXRvcnlQYXJhbXMgPSAkbnVtTWFuZGF0b3J5UGFyYW1zIGlmICgkbnVt
TWFuZGF0b3J5UGFyYW1zIDwgJGxlYXN0TnVtTWFuZGF0b3J5UGFyYW1zKTsKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgaWYgKCRwYXJhbWV0ZXJzQ2hlY2spXG4iKTsK
ICAgICAgICAgbXkgJG92ZXJsb2FkZWRJbmRleFN0cmluZyA9ICRvdmVybG9hZC0+e292ZXJsb2Fk
SW5kZXh9OwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAgICAgICAgcmV0
dXJuICR7bmFtZX0ke292ZXJsb2FkZWRJbmRleFN0cmluZ31NZXRob2QoYXJncyk7XG4iKTsKKyAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgICAgIHJldHVybiAke25hbWV9
JHtvdmVybG9hZGVkSW5kZXhTdHJpbmd9TWV0aG9kJHtmb3JNYWluV29ybGRTdWZmaXh9KGFyZ3Mp
O1xuIik7CiAgICAgfQogICAgIGlmICgkbGVhc3ROdW1NYW5kYXRvcnlQYXJhbXMgPj0gMSkgewog
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAgICBpZiAoYXJncy5MZW5ndGgo
KSA8ICRsZWFzdE51bU1hbmRhdG9yeVBhcmFtcylcbiIpOwpAQCAtMTU5Niw2ICsxNTk3LDcgQEAg
c3ViIEdlbmVyYXRlRnVuY3Rpb25DYWxsYmFjawogewogICAgIG15ICRmdW5jdGlvbiA9IHNoaWZ0
OwogICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICBteSAkZm9yTWFpbldvcmxkU3VmZml4
ID0gc2hpZnQ7CiAKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CiAg
ICAgbXkgJHY4SW50ZXJmYWNlTmFtZSA9ICJWOCRpbnRlcmZhY2VOYW1lIjsKQEAgLTE2MDQsMTQg
KzE2MDYsMTQgQEAgc3ViIEdlbmVyYXRlRnVuY3Rpb25DYWxsYmFjawogICAgIG15ICRjb25kaXRp
b25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRm
dW5jdGlvbi0+c2lnbmF0dXJlKTsKICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiNp
ZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAg
cHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsIDw8RU5EKTsKLXN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gJHtuYW1lfU1ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Mp
CitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+ICR7bmFtZX1NZXRob2RDYWxsYmFjayR7Zm9y
TWFpbldvcmxkU3VmZml4fShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogRU5ECiAgICAg
cHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsIEdlbmVyYXRlRmVhdHVyZU9ic2VydmF0aW9uKCRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhNZWFzdXJlQXMifSkp
OwogICAgIGlmIChIYXNDdXN0b21NZXRob2QoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcykpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAg
cmV0dXJuICR7djhJbnRlcmZhY2VOYW1lfTo6JHtuYW1lfU1ldGhvZEN1c3RvbShhcmdzKTtcbiIp
OwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAg
IHJldHVybiAke2ludGVyZmFjZU5hbWV9VjhJbnRlcm5hbDo6JHtuYW1lfU1ldGhvZChhcmdzKTtc
biIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAgICByZXR1cm4gJHtp
bnRlcmZhY2VOYW1lfVY4SW50ZXJuYWw6OiR7bmFtZX1NZXRob2Qke2Zvck1haW5Xb3JsZFN1ZmZp
eH0oYXJncyk7XG4iKTsKICAgICB9CiAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICJ9
XG5cbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiI2VuZGlmIC8vICR7Y29u
ZGl0aW9uYWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKQEAgLTE2MjEsNiAr
MTYyMyw3IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9uCiB7CiAgICAgbXkgJGZ1bmN0aW9uID0gc2hp
ZnQ7CiAgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworICAgIG15ICRmb3JNYWluV29ybGRTdWZm
aXggPSBzaGlmdDsKIAogICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFtZTsK
ICAgICBteSAkdjhJbnRlcmZhY2VOYW1lID0gIlY4JGludGVyZmFjZU5hbWUiOwpAQCAtMTYzOCw3
ICsxNjQxLDcgQEAgc3ViIEdlbmVyYXRlRnVuY3Rpb24KIAogICAgIG15ICRjb25kaXRpb25hbFN0
cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRmdW5jdGlv
bi0+c2lnbmF0dXJlKTsKICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiNpZiAke2Nv
bmRpdGlvbmFsU3RyaW5nfVxuXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7Ci0gICAgcHVzaChA
aW1wbENvbnRlbnRJbnRlcm5hbHMsICJzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+ICR7bmFt
ZX1NZXRob2QoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncylcbiIpOworICAgIHB1c2goQGltcGxD
b250ZW50SW50ZXJuYWxzLCAic3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiAke25hbWV9TWV0
aG9kJHtmb3JNYWluV29ybGRTdWZmaXh9KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpXG4iKTsK
ICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIntcbiIpOwogCiAgICAgaWYgKCRuYW1l
IGVxICJhZGRFdmVudExpc3RlbmVyIiB8fCAkbmFtZSBlcSAicmVtb3ZlRXZlbnRMaXN0ZW5lciIp
IHsKQEAgLTE3MzUsMTEgKzE3MzgsMTEgQEAgRU5ECiBFTkQKICAgICB9CiAKLSAgICBteSAoJHBh
cmFtZXRlckNoZWNrU3RyaW5nLCAkcGFyYW1JbmRleCwgJXJlcGxhY2VtZW50cykgPSBHZW5lcmF0
ZVBhcmFtZXRlcnNDaGVjaygkZnVuY3Rpb24sICRpbnRlcmZhY2VOYW1lKTsKKyAgICBteSAoJHBh
cmFtZXRlckNoZWNrU3RyaW5nLCAkcGFyYW1JbmRleCwgJXJlcGxhY2VtZW50cykgPSBHZW5lcmF0
ZVBhcmFtZXRlcnNDaGVjaygkZnVuY3Rpb24sICRpbnRlcmZhY2VOYW1lLCAkZm9yTWFpbldvcmxk
U3VmZml4KTsKICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgJHBhcmFtZXRlckNoZWNr
U3RyaW5nKTsKIAogICAgICMgQnVpbGQgdGhlIGZ1bmN0aW9uIGNhbGwgc3RyaW5nLgotICAgIHB1
c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbFN0cmluZygkZnVu
Y3Rpb24sICRwYXJhbUluZGV4LCAiICAgICIsICRpbnRlcmZhY2VOYW1lLCAlcmVwbGFjZW1lbnRz
KSk7CisgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsIEdlbmVyYXRlRnVuY3Rpb25DYWxs
U3RyaW5nKCRmdW5jdGlvbiwgJHBhcmFtSW5kZXgsICIgICAgIiwgJGludGVyZmFjZU5hbWUsICRm
b3JNYWluV29ybGRTdWZmaXgsICVyZXBsYWNlbWVudHMpKTsKIAogICAgIGlmICgkcmFpc2VzRXhj
ZXB0aW9ucykgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAgICB9XG4i
KTsKQEAgLTE4MjMsNiArMTgyNiw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogewog
ICAgIG15ICRmdW5jdGlvbiA9IHNoaWZ0OwogICAgIG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7
CisgICAgbXkgJGZvck1haW5Xb3JsZFN1ZmZpeCA9IHNoaWZ0OwogCiAgICAgbXkgJHBhcmFtZXRl
ckNoZWNrU3RyaW5nID0gIiI7CiAgICAgbXkgJHBhcmFtSW5kZXggPSAwOwpAQCAtMTgzOCw3ICsx
ODQyLDcgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAgIG15ICRvcHRpb25h
bCA9ICRwYXJhbWV0ZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPcHRpb25hbCJ9OwogICAgICAg
ICBpZiAoJG9wdGlvbmFsICYmICRvcHRpb25hbCBuZSAiRGVmYXVsdElzVW5kZWZpbmVkIiAmJiAk
b3B0aW9uYWwgbmUgIkRlZmF1bHRJc051bGxTdHJpbmciICYmICRuYXRpdmVUeXBlIG5lICJEaWN0
aW9uYXJ5IiAmJiAhJHBhcmFtZXRlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxiYWNrIn0p
IHsKICAgICAgICAgICAgICRwYXJhbWV0ZXJDaGVja1N0cmluZyAuPSAiICAgIGlmIChhcmdzLkxl
bmd0aCgpIDw9ICRwYXJhbUluZGV4KSB7XG4iOwotICAgICAgICAgICAgbXkgJGZ1bmN0aW9uQ2Fs
bCA9IEdlbmVyYXRlRnVuY3Rpb25DYWxsU3RyaW5nKCRmdW5jdGlvbiwgJHBhcmFtSW5kZXgsICIg
ICAgIiB4IDIsICRpbnRlcmZhY2VOYW1lLCAlcmVwbGFjZW1lbnRzKTsKKyAgICAgICAgICAgIG15
ICRmdW5jdGlvbkNhbGwgPSBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbFN0cmluZygkZnVuY3Rpb24sICRw
YXJhbUluZGV4LCAiICAgICIgeCAyLCAkaW50ZXJmYWNlTmFtZSwgJGZvck1haW5Xb3JsZFN1ZmZp
eCwgJXJlcGxhY2VtZW50cyk7CiAgICAgICAgICAgICAkcGFyYW1ldGVyQ2hlY2tTdHJpbmcgLj0g
JGZ1bmN0aW9uQ2FsbDsKICAgICAgICAgICAgICRwYXJhbWV0ZXJDaGVja1N0cmluZyAuPSAiICAg
IH1cbiI7CiAgICAgICAgIH0KQEAgLTIwNjEsNyArMjA2NSw3IEBAIEVORAogCiAgICAgIyBGSVhN
RTogQ3VycmVudGx5IFtDb25zdHJ1Y3RvciguLi4pXSBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBbT3B0
aW9uYWxdIGFyZ3VtZW50cy4KICAgICAjIEl0IGp1c3Qgc3VwcG9ydHMgW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gb3IgW09wdGlvbmFsPURlZmF1bHRJc051bGxTdHJpbmddLgotICAgIG15
ICgkcGFyYW1ldGVyQ2hlY2tTdHJpbmcsICRwYXJhbUluZGV4LCAlcmVwbGFjZW1lbnRzKSA9IEdl
bmVyYXRlUGFyYW1ldGVyc0NoZWNrKCRmdW5jdGlvbiwgJGludGVyZmFjZU5hbWUpOworICAgIG15
ICgkcGFyYW1ldGVyQ2hlY2tTdHJpbmcsICRwYXJhbUluZGV4LCAlcmVwbGFjZW1lbnRzKSA9IEdl
bmVyYXRlUGFyYW1ldGVyc0NoZWNrKCRmdW5jdGlvbiwgJGludGVyZmFjZU5hbWUsICIiKTsKICAg
ICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgJHBhcmFtZXRlckNoZWNrU3RyaW5nKTsKIAog
ICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbFdpdGgifSAmJiAk
aW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbFdpdGgifSBlcSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCIpIHsKQEAgLTI1NjcsNyArMjU3MSwxNSBAQCBFTkQKIAogICAgIG15ICRj
b25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3Ry
aW5nKCRmdW5jdGlvbi0+c2lnbmF0dXJlKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAk
e2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwotICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICR7Y29uZGl0aW9uYWx9JHRlbXBsYXRlLT5TZXQodjg6OlN0cmlu
Zzo6TmV3U3ltYm9sKFwiJG5hbWVcIiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoJHtpbnRl
cmZhY2VOYW1lfVY4SW50ZXJuYWw6OiR7bmFtZX1NZXRob2RDYWxsYmFjaywgdjhVbmRlZmluZWQo
KSwgJHtzaWduYXR1cmV9KSRwcm9wZXJ0eV9hdHRyaWJ1dGVzKTtcbiIpOworICAgIGlmICgkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4UGVyV29ybGRCaW5kaW5n
cyJ9KSB7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChjdXJyZW50V29ybGRU
eXBlID09IE1haW5Xb3JsZCkge1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICAgICAke2NvbmRpdGlvbmFsfSR0ZW1wbGF0ZS0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbChc
IiRuYW1lXCIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KCR7aW50ZXJmYWNlTmFtZX1WOElu
dGVybmFsOjoke25hbWV9TWV0aG9kQ2FsbGJhY2tGb3JNYWluV29ybGQsIHY4VW5kZWZpbmVkKCks
ICR7c2lnbmF0dXJlfSkkcHJvcGVydHlfYXR0cmlidXRlcyk7XG4iKTsKKyAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgfSBlbHNlIHtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgJHtjb25kaXRpb25hbH0kdGVtcGxhdGUtPlNldCh2ODo6U3RyaW5nOjpOZXdT
eW1ib2woXCIkbmFtZVwiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldygke2ludGVyZmFjZU5h
bWV9VjhJbnRlcm5hbDo6JHtuYW1lfU1ldGhvZENhbGxiYWNrLCB2OFVuZGVmaW5lZCgpLCAke3Np
Z25hdHVyZX0pJHByb3BlcnR5X2F0dHJpYnV0ZXMpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIH1cbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICR7Y29uZGl0aW9uYWx9JHRlbXBsYXRlLT5TZXQodjg6OlN0cmluZzo6TmV3U3lt
Ym9sKFwiJG5hbWVcIiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoJHtpbnRlcmZhY2VOYW1l
fVY4SW50ZXJuYWw6OiR7bmFtZX1NZXRob2RDYWxsYmFjaywgdjhVbmRlZmluZWQoKSwgJHtzaWdu
YXR1cmV9KSRwcm9wZXJ0eV9hdHRyaWJ1dGVzKTtcbiIpOworICAgIH0KICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiNlbmRpZiAvLyAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlv
bmFsU3RyaW5nOwogfQogCkBAIC0yOTEyLDEyICsyOTI0LDIyIEBAIEVORAogICAgIG15ICRuZWVk
c0RvbWFpblNhZmVGdW5jdGlvblNldHRlciA9IDA7CiAgICAgIyBHZW5lcmF0ZSBtZXRob2RzIGZv
ciBmdW5jdGlvbnMuCiAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+ZnVu
Y3Rpb25zfSkgewotICAgICAgICBHZW5lcmF0ZUZ1bmN0aW9uKCRmdW5jdGlvbiwgJGludGVyZmFj
ZSk7CisgICAgICAgIEdlbmVyYXRlRnVuY3Rpb24oJGZ1bmN0aW9uLCAkaW50ZXJmYWNlLCAiIik7
CisgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IlY4UGVyV29ybGRCaW5kaW5ncyJ9KSB7CisgICAgICAgICAgICBHZW5lcmF0ZUZ1bmN0aW9uKCRm
dW5jdGlvbiwgJGludGVyZmFjZSwgIkZvck1haW5Xb3JsZCIpOworICAgICAgICB9CisKICAgICAg
ICAgaWYgKCRmdW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9ID09IEB7JGZ1bmN0aW9uLT57b3Zlcmxv
YWRzfX0pIHsKICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSA+IDEp
IHsKLSAgICAgICAgICAgICAgICBHZW5lcmF0ZU92ZXJsb2FkZWRGdW5jdGlvbigkZnVuY3Rpb24s
ICRpbnRlcmZhY2UpOworICAgICAgICAgICAgICAgIEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9u
KCRmdW5jdGlvbiwgJGludGVyZmFjZSwgIiIpOworICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4UGVyV29ybGRCaW5kaW5ncyJ9
KSB7CisgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9uKCRmdW5j
dGlvbiwgJGludGVyZmFjZSwgIkZvck1haW5Xb3JsZCIpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIEdlbmVyYXRlRnVuY3Rpb25DYWxsYmFjaygkZnVuY3Rp
b24sICRpbnRlcmZhY2UsICIiKTsKKyAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4UGVyV29ybGRCaW5kaW5ncyJ9KSB7CisgICAgICAg
ICAgICAgICAgR2VuZXJhdGVGdW5jdGlvbkNhbGxiYWNrKCRmdW5jdGlvbiwgJGludGVyZmFjZSwg
IkZvck1haW5Xb3JsZCIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgR2VuZXJhdGVGdW5j
dGlvbkNhbGxiYWNrKCRmdW5jdGlvbiwgJGludGVyZmFjZSk7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgZXEgIml0ZW0iKSB7CkBAIC0zMDA1LDEw
ICszMDI3LDE0IEBAIEVORAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJzdGF0aWMg
Y29uc3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVkTWV0aG9kICR7djhJbnRlcmZhY2VOYW1l
fU1ldGhvZHNbXSA9IHtcbiIpOwogICAgICAgICB9CiAgICAgICAgIG15ICRuYW1lID0gJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPm5hbWU7CisgICAgICAgIG15ICRtZXRob2RGb3JNYWluV29ybGQgPSAi
MCI7CisgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IlY4UGVyV29ybGRCaW5kaW5ncyJ9KSB7CisgICAgICAgICAgJG1ldGhvZEZvck1haW5Xb3Js
ZCA9ICIke2ludGVyZmFjZU5hbWV9VjhJbnRlcm5hbDo6JHtuYW1lfU1ldGhvZENhbGxiYWNrRm9y
TWFpbldvcmxkIjsKKyAgICAgICAgfQogICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAk
Y29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkZnVuY3Rpb24tPnNpZ25h
dHVyZSk7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJp
bmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCA8PEVORCk7Ci0gICAgeyIkbmFtZSIsICR7aW50ZXJmYWNlTmFtZX1WOEludGVybmFsOjoke25h
bWV9TWV0aG9kQ2FsbGJhY2t9LAorICAgIHsiJG5hbWUiLCAke2ludGVyZmFjZU5hbWV9VjhJbnRl
cm5hbDo6JHtuYW1lfU1ldGhvZENhbGxiYWNrLCAke21ldGhvZEZvck1haW5Xb3JsZH19LAogRU5E
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxT
dHJpbmc7CiAgICAgICAgICRudW1fY2FsbGJhY2tzKys7CkBAIC0zODQ4LDYgKzM4NzQsNyBAQCBz
dWIgR2VuZXJhdGVGdW5jdGlvbkNhbGxTdHJpbmcKICAgICBteSAkbnVtYmVyT2ZQYXJhbWV0ZXJz
ID0gc2hpZnQ7CiAgICAgbXkgJGluZGVudCA9IHNoaWZ0OwogICAgIG15ICRpbnRlcmZhY2VOYW1l
ID0gc2hpZnQ7CisgICAgbXkgJGZvck1haW5Xb3JsZFN1ZmZpeCA9IHNoaWZ0OwogICAgIG15ICVy
ZXBsYWNlbWVudHMgPSBAXzsKIAogICAgIG15ICRuYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUt
Pm5hbWU7CkBAIC0zOTUwLDkgKzM5NzcsOSBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbkNhbGxTdHJp
bmcKICAgICAgICAgbXkgJHN2Z05hdGl2ZVR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlw
ZU5lZWRpbmdUZWFyT2ZmKCRyZXR1cm5UeXBlKTsKICAgICAgICAgIyBGSVhNRTogVXBkYXRlIGZv
ciBhbGwgU2NyaXB0V3JhcHBhYmxlcy4KICAgICAgICAgaWYgKElzRE9NTm9kZVR5cGUoJGludGVy
ZmFjZU5hbWUpKSB7Ci0gICAgICAgICAgICAkcmVzdWx0IC49ICRpbmRlbnQgLiAicmV0dXJuIHRv
VjhGYXN0KFdURjo6Z2V0UHRyKCR7c3ZnTmF0aXZlVHlwZX06OmNyZWF0ZSgkcmV0dXJuKSksIGFy
Z3MsIGltcCk7XG4iOworICAgICAgICAgICAgJHJlc3VsdCAuPSAkaW5kZW50IC4gInJldHVybiB0
b1Y4RmFzdCR7Zm9yTWFpbldvcmxkU3VmZml4fShXVEY6OmdldFB0cigke3N2Z05hdGl2ZVR5cGV9
OjpjcmVhdGUoJHJldHVybikpLCBhcmdzLCBpbXApO1xuIjsKICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICRyZXN1bHQgLj0gJGluZGVudCAuICJyZXR1cm4gdG9WOChXVEY6OmdldFB0cigk
e3N2Z05hdGl2ZVR5cGV9OjpjcmVhdGUoJHJldHVybikpLCBhcmdzLkhvbGRlcigpLCBhcmdzLkdl
dElzb2xhdGUoKSk7XG4iOworICAgICAgICAgICAgJHJlc3VsdCAuPSAkaW5kZW50IC4gInJldHVy
biB0b1Y4JHtmb3JNYWluV29ybGRTdWZmaXh9KFdURjo6Z2V0UHRyKCR7c3ZnTmF0aXZlVHlwZX06
OmNyZWF0ZSgkcmV0dXJuKSksIGFyZ3MuSG9sZGVyKCksIGFyZ3MuR2V0SXNvbGF0ZSgpKTtcbiI7
CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICAgfQpAQCAtMzk2Nyw5ICsz
OTk0LDkgQEAgc3ViIEdlbmVyYXRlRnVuY3Rpb25DYWxsU3RyaW5nCiAgICAgbXkgJG5hdGl2ZVZh
bHVlOwogICAgICMgRklYTUU6IFVwZGF0ZSBmb3IgYWxsIFNjcmlwdFdyYXBwYWJsZXMuCiAgICAg
aWYgKElzRE9NTm9kZVR5cGUoJGludGVyZmFjZU5hbWUpKSB7Ci0gICAgICAgICRuYXRpdmVWYWx1
ZSA9IE5hdGl2ZVRvSlNWYWx1ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZSwgJHJldHVybiwgImFyZ3Mu
SG9sZGVyKCkiLCAiYXJncy5HZXRJc29sYXRlKCkiLCAiYXJncyIsICJpbXAiLCAiUmV0dXJuVW5z
YWZlSGFuZGxlIiwgIiIpOworICAgICAgICAkbmF0aXZlVmFsdWUgPSBOYXRpdmVUb0pTVmFsdWUo
JGZ1bmN0aW9uLT5zaWduYXR1cmUsICRyZXR1cm4sICJhcmdzLkhvbGRlcigpIiwgImFyZ3MuR2V0
SXNvbGF0ZSgpIiwgImFyZ3MiLCAiaW1wIiwgIlJldHVyblVuc2FmZUhhbmRsZSIsICRmb3JNYWlu
V29ybGRTdWZmaXgpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgICRuYXRpdmVWYWx1ZSA9IE5hdGl2
ZVRvSlNWYWx1ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZSwgJHJldHVybiwgImFyZ3MuSG9sZGVyKCki
LCAiYXJncy5HZXRJc29sYXRlKCkiLCAwLCAwLCAiUmV0dXJuVW5zYWZlSGFuZGxlIiwgIiIpOwor
ICAgICAgICAkbmF0aXZlVmFsdWUgPSBOYXRpdmVUb0pTVmFsdWUoJGZ1bmN0aW9uLT5zaWduYXR1
cmUsICRyZXR1cm4sICJhcmdzLkhvbGRlcigpIiwgImFyZ3MuR2V0SXNvbGF0ZSgpIiwgMCwgMCwg
IlJldHVyblVuc2FmZUhhbmRsZSIsICRmb3JNYWluV29ybGRTdWZmaXgpOwogICAgIH0KIAogICAg
ICRyZXN1bHQgLj0gJGluZGVudCAuICJyZXR1cm4gIiAuICRuYXRpdmVWYWx1ZSAuICI7XG4iOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4Rmxv
YXQ2NEFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OEZsb2F0NjRBcnJheS5jcHAKaW5kZXggYWEwMmY5MDY5NjdlMmM2YjIwMDAzNzgxODgwNTQ0Y2Yz
NTVhOGQwNS4uMDRjN2FhNmI1YTdkMzY2ZTY2MTA3NmIzZjE1YWU5NTM0YWZiZTY0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFy
cmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhG
bG9hdDY0QXJyYXkuY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiB3cmFwKEZsb2F0NjRBcnJheSogaW1wbCwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlv
bkMKIH0KIAogc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZE1ldGhvZCBW
OEZsb2F0NjRBcnJheU1ldGhvZHNbXSA9IHsKLSAgICB7InNldCIsIEZsb2F0NjRBcnJheVY4SW50
ZXJuYWw6OnNldE1ldGhvZENhbGxiYWNrfSwKKyAgICB7InNldCIsIEZsb2F0NjRBcnJheVY4SW50
ZXJuYWw6OnNldE1ldGhvZENhbGxiYWNrLCAwfSwKIH07CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOEZsb2F0NjRBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKaW5kZXggNDQ3ZGZh
ZmE4ODU1ZGI0Njc1ODllZDEwOGIwYjA0NGU2YzFkMTNhMy4uZTk5ZWRhNjUwYTdiNzUzMzhlMDA0
ZDUzYjA1N2JjZjZmNDQ2MWViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIu
Y3BwCkBAIC04OCw3ICs4OCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYW5vdGhl
ckZ1bmN0aW9uTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYKIH0gLy8gbmFtZXNw
YWNlIFRlc3RDdXN0b21OYW1lZEdldHRlclY4SW50ZXJuYWwKIAogc3RhdGljIGNvbnN0IFY4RE9N
Q29uZmlndXJhdGlvbjo6QmF0Y2hlZE1ldGhvZCBWOFRlc3RDdXN0b21OYW1lZEdldHRlck1ldGhv
ZHNbXSA9IHsKLSAgICB7ImFub3RoZXJGdW5jdGlvbiIsIFRlc3RDdXN0b21OYW1lZEdldHRlclY4
SW50ZXJuYWw6OmFub3RoZXJGdW5jdGlvbk1ldGhvZENhbGxiYWNrfSwKKyAgICB7ImFub3RoZXJG
dW5jdGlvbiIsIFRlc3RDdXN0b21OYW1lZEdldHRlclY4SW50ZXJuYWw6OmFub3RoZXJGdW5jdGlv
bk1ldGhvZENhbGxiYWNrLCAwfSwKIH07CiAKIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVu
Y3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJUZW1wbGF0ZSh2
ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZGVzYywgdjg6Oklzb2xhdGUqIGlz
b2xhdGUsIFdyYXBwZXJXb3JsZFR5cGUgY3VycmVudFdvcmxkVHlwZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRU
YXJnZXQuY3BwCmluZGV4IDBjOGVhMWFlOGZlYzU1ZjQyZDU5YWY5OTMwMTQyNGVjOGRmN2ZiMGMu
LjZjNzU5MTU0MThmNzRmMzc4MjY0NjYyMWZhMzk5OTc3NWU5ZGE1YmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2
ZW50VGFyZ2V0LmNwcApAQCAtMTU0LDkgKzE1NCw5IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gZGlzcGF0Y2hFdmVudE1ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
CiB9IC8vIG5hbWVzcGFjZSBUZXN0RXZlbnRUYXJnZXRWOEludGVybmFsCiAKIHN0YXRpYyBjb25z
dCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRNZXRob2QgVjhUZXN0RXZlbnRUYXJnZXRNZXRo
b2RzW10gPSB7Ci0gICAgeyJpdGVtIiwgVGVzdEV2ZW50VGFyZ2V0VjhJbnRlcm5hbDo6aXRlbU1l
dGhvZENhbGxiYWNrfSwKLSAgICB7ImFkZEV2ZW50TGlzdGVuZXIiLCBUZXN0RXZlbnRUYXJnZXRW
OEludGVybmFsOjphZGRFdmVudExpc3RlbmVyTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsicmVtb3Zl
RXZlbnRMaXN0ZW5lciIsIFRlc3RFdmVudFRhcmdldFY4SW50ZXJuYWw6OnJlbW92ZUV2ZW50TGlz
dGVuZXJNZXRob2RDYWxsYmFja30sCisgICAgeyJpdGVtIiwgVGVzdEV2ZW50VGFyZ2V0VjhJbnRl
cm5hbDo6aXRlbU1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7ImFkZEV2ZW50TGlzdGVuZXIiLCBU
ZXN0RXZlbnRUYXJnZXRWOEludGVybmFsOjphZGRFdmVudExpc3RlbmVyTWV0aG9kQ2FsbGJhY2ss
IDB9LAorICAgIHsicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIFRlc3RFdmVudFRhcmdldFY4SW50ZXJu
YWw6OnJlbW92ZUV2ZW50TGlzdGVuZXJNZXRob2RDYWxsYmFjaywgMH0sCiB9OwogCiBzdGF0aWMg
djg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdEV2ZW50
VGFyZ2V0VGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2Ms
IHY4OjpJc29sYXRlKiBpc29sYXRlLCBXcmFwcGVyV29ybGRUeXBlIGN1cnJlbnRXb3JsZFR5cGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RJbnRlcmZhY2UuY3BwCmluZGV4IDdkYWU1OGE3MTY5ZjFjNDEwYjNiZjgzNmIzODJh
YTcxZmQ5MjY1YzUuLjM3NjRkZjhjMmYxMDhmNzA1NzNhYzkzMTBlZmZkYTZlOGM3MzIzM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJ
bnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RJbnRlcmZhY2UuY3BwCkBAIC0zODMsMTAgKzM4MywxMCBAQCBzdGF0aWMgY29uc3Qg
VjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVkQXR0cmlidXRlIFY4VGVzdEludGVyZmFjZUF0dHJz
W10gPSB7CiAKIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRNZXRob2Qg
VjhUZXN0SW50ZXJmYWNlTWV0aG9kc1tdID0gewogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwg
RU5BQkxFKENvbmRpdGlvbjEyKQotICAgIHsic3VwcGxlbWVudGFsTWV0aG9kMSIsIFRlc3RJbnRl
cmZhY2VWOEludGVybmFsOjpzdXBwbGVtZW50YWxNZXRob2QxTWV0aG9kQ2FsbGJhY2t9LAorICAg
IHsic3VwcGxlbWVudGFsTWV0aG9kMSIsIFRlc3RJbnRlcmZhY2VWOEludGVybmFsOjpzdXBwbGVt
ZW50YWxNZXRob2QxTWV0aG9kQ2FsbGJhY2ssIDB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRp
dGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgeyJzdXBwbGVtZW50YWxNZXRob2Qz
IiwgVGVzdEludGVyZmFjZVY4SW50ZXJuYWw6OnN1cHBsZW1lbnRhbE1ldGhvZDNNZXRob2RDYWxs
YmFja30sCisgICAgeyJzdXBwbGVtZW50YWxNZXRob2QzIiwgVGVzdEludGVyZmFjZVY4SW50ZXJu
YWw6OnN1cHBsZW1lbnRhbE1ldGhvZDNNZXRob2RDYWxsYmFjaywgMH0sCiAjZW5kaWYKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAppbmRleCBiMWZm
MjNjYzQ4ZTBiNGEzOTkyMjhjYjAxMGY0ZDZhYzllYTg5ODViLi41MDYyMDE3OWQ3YmNmMTJmZjQ3
NzE5N2ZkOWEwMWQ1MzMxNThmYzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuY3BwCkBAIC04OSw3ICs4OSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gbWV0aG9kTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIH0g
Ly8gbmFtZXNwYWNlIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVjhJbnRlcm5hbAogCiBzdGF0
aWMgY29uc3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVkTWV0aG9kIFY4VGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXJNZXRob2RzW10gPSB7Ci0gICAgeyJtZXRob2QiLCBUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lclY4SW50ZXJuYWw6Om1ldGhvZE1ldGhvZENhbGxiYWNrfSwKKyAgICB7Im1l
dGhvZCIsIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVjhJbnRlcm5hbDo6bWV0aG9kTWV0aG9k
Q2FsbGJhY2ssIDB9LAogfTsKIAogc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRl
bXBsYXRlPiBDb25maWd1cmVWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVGVtcGxhdGUodjg6
OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2MsIHY4OjpJc29sYXRlKiBpc29s
YXRlLCBXcmFwcGVyV29ybGRUeXBlIGN1cnJlbnRXb3JsZFR5cGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IGFm
N2ExMDJiNWFiZWRlMzA5MjI1YWFhOTFiN2E1YWE0MTBiYzk3NWYuLjk5ODZmZWU4MmRiZWVlMzg5
NWMwMGFkMmMwMWEyNzhhMzgyNDY4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC0zMjUxLDU3ICszMjUxLDU3
IEBAIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRBdHRyaWJ1dGUgVjhU
ZXN0T2JqQXR0cnNbXSA9IHsKIH07CiAKIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246
OkJhdGNoZWRNZXRob2QgVjhUZXN0T2JqTWV0aG9kc1tdID0gewotICAgIHsidm9pZE1ldGhvZCIs
IFRlc3RPYmpWOEludGVybmFsOjp2b2lkTWV0aG9kTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsibG9u
Z01ldGhvZCIsIFRlc3RPYmpWOEludGVybmFsOjpsb25nTWV0aG9kTWV0aG9kQ2FsbGJhY2t9LAot
ICAgIHsib2JqTWV0aG9kIiwgVGVzdE9ialY4SW50ZXJuYWw6Om9iak1ldGhvZE1ldGhvZENhbGxi
YWNrfSwKLSAgICB7Im1ldGhvZFJldHVybmluZ1NlcXVlbmNlIiwgVGVzdE9ialY4SW50ZXJuYWw6
Om1ldGhvZFJldHVybmluZ1NlcXVlbmNlTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsic2VyaWFsaXpl
ZFZhbHVlIiwgVGVzdE9ialY4SW50ZXJuYWw6OnNlcmlhbGl6ZWRWYWx1ZU1ldGhvZENhbGxiYWNr
fSwKLSAgICB7Im9wdGlvbnNPYmplY3QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6b3B0aW9uc09iamVj
dE1ldGhvZENhbGxiYWNrfSwKLSAgICB7Im1ldGhvZFdpdGhFeGNlcHRpb24iLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6bWV0aG9kV2l0aEV4Y2VwdGlvbk1ldGhvZENhbGxiYWNrfSwKLSAgICB7ImN1c3Rv
bU1ldGhvZCIsIFRlc3RPYmpWOEludGVybmFsOjpjdXN0b21NZXRob2RNZXRob2RDYWxsYmFja30s
Ci0gICAgeyJjdXN0b21NZXRob2RXaXRoQXJncyIsIFRlc3RPYmpWOEludGVybmFsOjpjdXN0b21N
ZXRob2RXaXRoQXJnc01ldGhvZENhbGxiYWNrfSwKLSAgICB7ImFkZEV2ZW50TGlzdGVuZXIiLCBU
ZXN0T2JqVjhJbnRlcm5hbDo6YWRkRXZlbnRMaXN0ZW5lck1ldGhvZENhbGxiYWNrfSwKLSAgICB7
InJlbW92ZUV2ZW50TGlzdGVuZXIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6cmVtb3ZlRXZlbnRMaXN0
ZW5lck1ldGhvZENhbGxiYWNrfSwKLSAgICB7IndpdGhTY3JpcHRTdGF0ZVZvaWQiLCBUZXN0T2Jq
VjhJbnRlcm5hbDo6d2l0aFNjcmlwdFN0YXRlVm9pZE1ldGhvZENhbGxiYWNrfSwKLSAgICB7Indp
dGhTY3JpcHRTdGF0ZU9iaiIsIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0U3RhdGVPYmpN
ZXRob2RDYWxsYmFja30sCi0gICAgeyJ3aXRoU2NyaXB0U3RhdGVWb2lkRXhjZXB0aW9uIiwgVGVz
dE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRTdGF0ZVZvaWRFeGNlcHRpb25NZXRob2RDYWxsYmFj
a30sCi0gICAgeyJ3aXRoU2NyaXB0U3RhdGVPYmpFeGNlcHRpb24iLCBUZXN0T2JqVjhJbnRlcm5h
bDo6d2l0aFNjcmlwdFN0YXRlT2JqRXhjZXB0aW9uTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsid2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQiLCBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRNZXRob2RDYWxsYmFja30sCi0gICAgeyJ3aXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEFuZFNjcmlwdFN0YXRlIiwgVGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVNZXRob2RDYWxsYmFja30sCi0gICAgeyJ3aXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlT2JqRXhjZXB0aW9uIiwgVGVzdE9ialY4
SW50ZXJuYWw6OndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVPYmpFeGNl
cHRpb25NZXRob2RDYWxsYmFja30sCi0gICAgeyJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZFNjcmlwdFN0YXRlV2l0aFNwYWNlcyIsIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc01ldGhvZENhbGxiYWNrfSwKLSAg
ICB7IndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2siLCBUZXN0T2JqVjhJbnRlcm5hbDo6
d2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja01ldGhvZENhbGxiYWNrfSwKLSAgICB7Im1l
dGhvZFdpdGhPcHRpb25hbEFyZyIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoT3B0aW9u
YWxBcmdNZXRob2RDYWxsYmFja30sCi0gICAgeyJtZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRP
cHRpb25hbEFyZyIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdB
bmRPcHRpb25hbEFyZ01ldGhvZENhbGxiYWNrfSwKLSAgICB7Im1ldGhvZFdpdGhOb25PcHRpb25h
bEFyZ0FuZFR3b09wdGlvbmFsQXJncyIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoTm9u
T3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3NNZXRob2RDYWxsYmFja30sCi0gICAgeyJtZXRo
b2RXaXRoT3B0aW9uYWxTdHJpbmciLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aE9wdGlv
bmFsU3RyaW5nTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsibWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5n
SXNVbmRlZmluZWQiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5n
SXNVbmRlZmluZWRNZXRob2RDYWxsYmFja30sCi0gICAgeyJtZXRob2RXaXRoT3B0aW9uYWxTdHJp
bmdJc051bGxTdHJpbmciLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aE9wdGlvbmFsU3Ry
aW5nSXNOdWxsU3RyaW5nTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsibWV0aG9kV2l0aENhbGxiYWNr
QXJnIiwgVGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhDYWxsYmFja0FyZ01ldGhvZENhbGxi
YWNrfSwKLSAgICB7Im1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnIiwgVGVz
dE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnTWV0
aG9kQ2FsbGJhY2t9LAotICAgIHsibWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmciLCBU
ZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmdNZXRob2RD
YWxsYmFja30sCi0gICAgeyJtZXRob2RXaXRoRW5mb3JjZVJhbmdlSW50MzIiLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6bWV0aG9kV2l0aEVuZm9yY2VSYW5nZUludDMyTWV0aG9kQ2FsbGJhY2t9LAotICAg
IHsibWV0aG9kV2l0aEVuZm9yY2VSYW5nZVVJbnQzMiIsIFRlc3RPYmpWOEludGVybmFsOjptZXRo
b2RXaXRoRW5mb3JjZVJhbmdlVUludDMyTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsibWV0aG9kV2l0
aEVuZm9yY2VSYW5nZUludDY0IiwgVGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhFbmZvcmNl
UmFuZ2VJbnQ2NE1ldGhvZENhbGxiYWNrfSwKLSAgICB7Im1ldGhvZFdpdGhFbmZvcmNlUmFuZ2VV
SW50NjQiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aEVuZm9yY2VSYW5nZVVJbnQ2NE1l
dGhvZENhbGxiYWNrfSwKKyAgICB7InZvaWRNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6dm9p
ZE1ldGhvZE1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7ImxvbmdNZXRob2QiLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6bG9uZ01ldGhvZE1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7Im9iak1ldGhvZCIs
IFRlc3RPYmpWOEludGVybmFsOjpvYmpNZXRob2RNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJt
ZXRob2RSZXR1cm5pbmdTZXF1ZW5jZSIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RSZXR1cm5p
bmdTZXF1ZW5jZU1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7InNlcmlhbGl6ZWRWYWx1ZSIsIFRl
c3RPYmpWOEludGVybmFsOjpzZXJpYWxpemVkVmFsdWVNZXRob2RDYWxsYmFjaywgMH0sCisgICAg
eyJvcHRpb25zT2JqZWN0IiwgVGVzdE9ialY4SW50ZXJuYWw6Om9wdGlvbnNPYmplY3RNZXRob2RD
YWxsYmFjaywgMH0sCisgICAgeyJtZXRob2RXaXRoRXhjZXB0aW9uIiwgVGVzdE9ialY4SW50ZXJu
YWw6Om1ldGhvZFdpdGhFeGNlcHRpb25NZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJjdXN0b21N
ZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6Y3VzdG9tTWV0aG9kTWV0aG9kQ2FsbGJhY2ssIDB9
LAorICAgIHsiY3VzdG9tTWV0aG9kV2l0aEFyZ3MiLCBUZXN0T2JqVjhJbnRlcm5hbDo6Y3VzdG9t
TWV0aG9kV2l0aEFyZ3NNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJhZGRFdmVudExpc3RlbmVy
IiwgVGVzdE9ialY4SW50ZXJuYWw6OmFkZEV2ZW50TGlzdGVuZXJNZXRob2RDYWxsYmFjaywgMH0s
CisgICAgeyJyZW1vdmVFdmVudExpc3RlbmVyIiwgVGVzdE9ialY4SW50ZXJuYWw6OnJlbW92ZUV2
ZW50TGlzdGVuZXJNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJ3aXRoU2NyaXB0U3RhdGVWb2lk
IiwgVGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRTdGF0ZVZvaWRNZXRob2RDYWxsYmFjaywg
MH0sCisgICAgeyJ3aXRoU2NyaXB0U3RhdGVPYmoiLCBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNj
cmlwdFN0YXRlT2JqTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsid2l0aFNjcmlwdFN0YXRlVm9p
ZEV4Y2VwdGlvbiIsIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0U3RhdGVWb2lkRXhjZXB0
aW9uTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsid2l0aFNjcmlwdFN0YXRlT2JqRXhjZXB0aW9u
IiwgVGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRTdGF0ZU9iakV4Y2VwdGlvbk1ldGhvZENh
bGxiYWNrLCAwfSwKKyAgICB7IndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0IiwgVGVzdE9ialY4
SW50ZXJuYWw6OndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0TWV0aG9kQ2FsbGJhY2ssIDB9LAor
ICAgIHsid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZSIsIFRlc3RPYmpW
OEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlTWV0aG9k
Q2FsbGJhY2ssIDB9LAorICAgIHsid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRT
dGF0ZU9iakV4Y2VwdGlvbiIsIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEFuZFNjcmlwdFN0YXRlT2JqRXhjZXB0aW9uTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAg
IHsid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXMiLCBU
ZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0
ZVdpdGhTcGFjZXNNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJ3aXRoU2NyaXB0QXJndW1lbnRz
QW5kQ2FsbFN0YWNrIiwgVGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRBcmd1bWVudHNBbmRD
YWxsU3RhY2tNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJtZXRob2RXaXRoT3B0aW9uYWxBcmci
LCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aE9wdGlvbmFsQXJnTWV0aG9kQ2FsbGJhY2ss
IDB9LAorICAgIHsibWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmciLCBUZXN0
T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmdNZXRo
b2RDYWxsYmFjaywgMH0sCisgICAgeyJtZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRp
b25hbEFyZ3MiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5k
VHdvT3B0aW9uYWxBcmdzTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsibWV0aG9kV2l0aE9wdGlv
bmFsU3RyaW5nIiwgVGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ01l
dGhvZENhbGxiYWNrLCAwfSwKKyAgICB7Im1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzVW5kZWZp
bmVkIiwgVGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzVW5kZWZp
bmVkTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsibWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNO
dWxsU3RyaW5nIiwgVGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lz
TnVsbFN0cmluZ01ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7Im1ldGhvZFdpdGhDYWxsYmFja0Fy
ZyIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoQ2FsbGJhY2tBcmdNZXRob2RDYWxsYmFj
aywgMH0sCisgICAgeyJtZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0FyZyIsIFRl
c3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0FyZ01l
dGhvZENhbGxiYWNrLCAwfSwKKyAgICB7Im1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJn
IiwgVGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnTWV0
aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsibWV0aG9kV2l0aEVuZm9yY2VSYW5nZUludDMyIiwgVGVz
dE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhFbmZvcmNlUmFuZ2VJbnQzMk1ldGhvZENhbGxiYWNr
LCAwfSwKKyAgICB7Im1ldGhvZFdpdGhFbmZvcmNlUmFuZ2VVSW50MzIiLCBUZXN0T2JqVjhJbnRl
cm5hbDo6bWV0aG9kV2l0aEVuZm9yY2VSYW5nZVVJbnQzMk1ldGhvZENhbGxiYWNrLCAwfSwKKyAg
ICB7Im1ldGhvZFdpdGhFbmZvcmNlUmFuZ2VJbnQ2NCIsIFRlc3RPYmpWOEludGVybmFsOjptZXRo
b2RXaXRoRW5mb3JjZVJhbmdlSW50NjRNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJtZXRob2RX
aXRoRW5mb3JjZVJhbmdlVUludDY0IiwgVGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhFbmZv
cmNlUmFuZ2VVSW50NjRNZXRob2RDYWxsYmFjaywgMH0sCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEp
Ci0gICAgeyJjb25kaXRpb25hbE1ldGhvZDEiLCBUZXN0T2JqVjhJbnRlcm5hbDo6Y29uZGl0aW9u
YWxNZXRob2QxTWV0aG9kQ2FsbGJhY2t9LAorICAgIHsiY29uZGl0aW9uYWxNZXRob2QxIiwgVGVz
dE9ialY4SW50ZXJuYWw6OmNvbmRpdGlvbmFsTWV0aG9kMU1ldGhvZENhbGxiYWNrLCAwfSwKICNl
bmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikKLSAgICB7
ImNvbmRpdGlvbmFsTWV0aG9kMiIsIFRlc3RPYmpWOEludGVybmFsOjpjb25kaXRpb25hbE1ldGhv
ZDJNZXRob2RDYWxsYmFja30sCisgICAgeyJjb25kaXRpb25hbE1ldGhvZDIiLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6Y29uZGl0aW9uYWxNZXRob2QyTWV0aG9kQ2FsbGJhY2ssIDB9LAogI2VuZGlmCiAj
aWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQotICAgIHsiY29uZGl0
aW9uYWxNZXRob2QzIiwgVGVzdE9ialY4SW50ZXJuYWw6OmNvbmRpdGlvbmFsTWV0aG9kM01ldGhv
ZENhbGxiYWNrfSwKKyAgICB7ImNvbmRpdGlvbmFsTWV0aG9kMyIsIFRlc3RPYmpWOEludGVybmFs
Ojpjb25kaXRpb25hbE1ldGhvZDNNZXRob2RDYWxsYmFjaywgMH0sCiAjZW5kaWYKLSAgICB7Im92
ZXJsb2FkZWRNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6b3ZlcmxvYWRlZE1ldGhvZE1ldGhv
ZENhbGxiYWNrfSwKLSAgICB7ImNsYXNzTWV0aG9kV2l0aENsYW1wIiwgVGVzdE9ialY4SW50ZXJu
YWw6OmNsYXNzTWV0aG9kV2l0aENsYW1wTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsiZ2V0U1ZHRG9j
dW1lbnQiLCBUZXN0T2JqVjhJbnRlcm5hbDo6Z2V0U1ZHRG9jdW1lbnRNZXRob2RDYWxsYmFja30s
Ci0gICAgeyJtdXRhYmxlUG9pbnRGdW5jdGlvbiIsIFRlc3RPYmpWOEludGVybmFsOjptdXRhYmxl
UG9pbnRGdW5jdGlvbk1ldGhvZENhbGxiYWNrfSwKLSAgICB7ImltbXV0YWJsZVBvaW50RnVuY3Rp
b24iLCBUZXN0T2JqVjhJbnRlcm5hbDo6aW1tdXRhYmxlUG9pbnRGdW5jdGlvbk1ldGhvZENhbGxi
YWNrfSwKLSAgICB7Im9yYW5nZSIsIFRlc3RPYmpWOEludGVybmFsOjpvcmFuZ2VNZXRob2RDYWxs
YmFja30sCi0gICAgeyJzdHJpY3RGdW5jdGlvbiIsIFRlc3RPYmpWOEludGVybmFsOjpzdHJpY3RG
dW5jdGlvbk1ldGhvZENhbGxiYWNrfSwKLSAgICB7InZhcmlhZGljU3RyaW5nTWV0aG9kIiwgVGVz
dE9ialY4SW50ZXJuYWw6OnZhcmlhZGljU3RyaW5nTWV0aG9kTWV0aG9kQ2FsbGJhY2t9LAotICAg
IHsidmFyaWFkaWNEb3VibGVNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6dmFyaWFkaWNEb3Vi
bGVNZXRob2RNZXRob2RDYWxsYmFja30sCisgICAgeyJvdmVybG9hZGVkTWV0aG9kIiwgVGVzdE9i
alY4SW50ZXJuYWw6Om92ZXJsb2FkZWRNZXRob2RNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJj
bGFzc01ldGhvZFdpdGhDbGFtcCIsIFRlc3RPYmpWOEludGVybmFsOjpjbGFzc01ldGhvZFdpdGhD
bGFtcE1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7ImdldFNWR0RvY3VtZW50IiwgVGVzdE9ialY4
SW50ZXJuYWw6OmdldFNWR0RvY3VtZW50TWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsibXV0YWJs
ZVBvaW50RnVuY3Rpb24iLCBUZXN0T2JqVjhJbnRlcm5hbDo6bXV0YWJsZVBvaW50RnVuY3Rpb25N
ZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJpbW11dGFibGVQb2ludEZ1bmN0aW9uIiwgVGVzdE9i
alY4SW50ZXJuYWw6OmltbXV0YWJsZVBvaW50RnVuY3Rpb25NZXRob2RDYWxsYmFjaywgMH0sCisg
ICAgeyJvcmFuZ2UiLCBUZXN0T2JqVjhJbnRlcm5hbDo6b3JhbmdlTWV0aG9kQ2FsbGJhY2ssIDB9
LAorICAgIHsic3RyaWN0RnVuY3Rpb24iLCBUZXN0T2JqVjhJbnRlcm5hbDo6c3RyaWN0RnVuY3Rp
b25NZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJ2YXJpYWRpY1N0cmluZ01ldGhvZCIsIFRlc3RP
YmpWOEludGVybmFsOjp2YXJpYWRpY1N0cmluZ01ldGhvZE1ldGhvZENhbGxiYWNrLCAwfSwKKyAg
ICB7InZhcmlhZGljRG91YmxlTWV0aG9kIiwgVGVzdE9ialY4SW50ZXJuYWw6OnZhcmlhZGljRG91
YmxlTWV0aG9kTWV0aG9kQ2FsbGJhY2ssIDB9LAogfTsKIAogc3RhdGljIGNvbnN0IFY4RE9NQ29u
ZmlndXJhdGlvbjo6QmF0Y2hlZENvbnN0YW50IFY4VGVzdE9iakNvbnN0c1tdID0gewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcApp
bmRleCAwM2QwMDgxMDkwNjYwMzMxNjEyM2IwNDM4YzIzMTM4YWRiMmEyMGY1Li4yMTMwNjc5MWZm
NTRlNzQ1ZTljNjU3NmZkNzcwYjQ4NGIzNmEyMGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcApAQCAtMjkzLDggKzI5Myw4
IEBAIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRBdHRyaWJ1dGUgVjhU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50CiB9OwogCiBzdGF0aWMgY29uc3QgVjhET01Db25m
aWd1cmF0aW9uOjpCYXRjaGVkTWV0aG9kIFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZU1ldGhvZHNbXSA9IHsKLSAgICB7ImFjY2VwdFRyYW5zZmVyTGlzdCIsIFRlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWOEludGVybmFsOjphY2NlcHRUcmFuc2Zlckxpc3RNZXRo
b2RDYWxsYmFja30sCi0gICAgeyJtdWx0aVRyYW5zZmVyTGlzdCIsIFRlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VWOEludGVybmFsOjptdWx0aVRyYW5zZmVyTGlzdE1ldGhvZENhbGxi
YWNrfSwKKyAgICB7ImFjY2VwdFRyYW5zZmVyTGlzdCIsIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VWOEludGVybmFsOjphY2NlcHRUcmFuc2Zlckxpc3RNZXRob2RDYWxsYmFjaywg
MH0sCisgICAgeyJtdWx0aVRyYW5zZmVyTGlzdCIsIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VWOEludGVybmFsOjptdWx0aVRyYW5zZmVyTGlzdE1ldGhvZENhbGxiYWNrLCAwfSwK
IH07CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2U6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0VHlwZWRlZnMuY3BwCmluZGV4IDVmNjUwYjgwZGE0MGFmMjU2YTlmZjk1ZGZhNjRlNDdh
NWMzM2NkYTguLmFjYTllN2Y0MWQyZjFmODMxMmFhNTQxMjhhNDlkOGE1YjU4NzBlOGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RUeXBl
ZGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdFR5cGVkZWZzLmNwcApAQCAtNTE0LDEyICs1MTQsMTIgQEAgc3RhdGljIGNvbnN0IFY4RE9N
Q29uZmlndXJhdGlvbjo6QmF0Y2hlZEF0dHJpYnV0ZSBWOFRlc3RUeXBlZGVmc0F0dHJzW10gPSB7
CiB9OwogCiBzdGF0aWMgY29uc3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVkTWV0aG9kIFY4
VGVzdFR5cGVkZWZzTWV0aG9kc1tdID0gewotICAgIHsiZnVuYyIsIFRlc3RUeXBlZGVmc1Y4SW50
ZXJuYWw6OmZ1bmNNZXRob2RDYWxsYmFja30sCi0gICAgeyJtdWx0aVRyYW5zZmVyTGlzdCIsIFRl
c3RUeXBlZGVmc1Y4SW50ZXJuYWw6Om11bHRpVHJhbnNmZXJMaXN0TWV0aG9kQ2FsbGJhY2t9LAot
ICAgIHsic2V0U2hhZG93IiwgVGVzdFR5cGVkZWZzVjhJbnRlcm5hbDo6c2V0U2hhZG93TWV0aG9k
Q2FsbGJhY2t9LAotICAgIHsiZnVuY1dpdGhDbGFtcCIsIFRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6
OmZ1bmNXaXRoQ2xhbXBNZXRob2RDYWxsYmFja30sCi0gICAgeyJpbW11dGFibGVQb2ludEZ1bmN0
aW9uIiwgVGVzdFR5cGVkZWZzVjhJbnRlcm5hbDo6aW1tdXRhYmxlUG9pbnRGdW5jdGlvbk1ldGhv
ZENhbGxiYWNrfSwKLSAgICB7Im1ldGhvZFdpdGhFeGNlcHRpb24iLCBUZXN0VHlwZWRlZnNWOElu
dGVybmFsOjptZXRob2RXaXRoRXhjZXB0aW9uTWV0aG9kQ2FsbGJhY2t9LAorICAgIHsiZnVuYyIs
IFRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6OmZ1bmNNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJt
dWx0aVRyYW5zZmVyTGlzdCIsIFRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6Om11bHRpVHJhbnNmZXJM
aXN0TWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsic2V0U2hhZG93IiwgVGVzdFR5cGVkZWZzVjhJ
bnRlcm5hbDo6c2V0U2hhZG93TWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsiZnVuY1dpdGhDbGFt
cCIsIFRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6OmZ1bmNXaXRoQ2xhbXBNZXRob2RDYWxsYmFjaywg
MH0sCisgICAgeyJpbW11dGFibGVQb2ludEZ1bmN0aW9uIiwgVGVzdFR5cGVkZWZzVjhJbnRlcm5h
bDo6aW1tdXRhYmxlUG9pbnRGdW5jdGlvbk1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7Im1ldGhv
ZFdpdGhFeGNlcHRpb24iLCBUZXN0VHlwZWRlZnNWOEludGVybmFsOjptZXRob2RXaXRoRXhjZXB0
aW9uTWV0aG9kQ2FsbGJhY2ssIDB9LAogfTsKIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4VGVz
dFR5cGVkZWZzOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTUNvbmZpZ3VyYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01Db25maWd1cmF0aW9uLmNw
cAppbmRleCA1NjFjYWJkODJiNGNiMzQ2MzRlMTIwMWM1OGRhZTUwZWRmZTQ5YTQwLi42NTRmODI1
ZGY1ODMzNmU1OTVmNDE4ZWViY2VlNmU0OTU0NTU0YTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOERPTUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4RE9NQ29uZmlndXJhdGlvbi5jcHAKQEAgLTQ4LDEwICs0OCwxNCBA
QCB2b2lkIFY4RE9NQ29uZmlndXJhdGlvbjo6YmF0Y2hDb25maWd1cmVDb25zdGFudHModjg6Okhh
bmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZQogICAgIH0KIH0KIAotdm9pZCBWOERPTUNvbmZpZ3Vy
YXRpb246OmJhdGNoQ29uZmlndXJlQ2FsbGJhY2tzKHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBs
YXRlPiBwcm90b3R5cGUsIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gc2lnbmF0dXJlLCB2ODo6
UHJvcGVydHlBdHRyaWJ1dGUgYXR0cmlidXRlcywgY29uc3QgQmF0Y2hlZE1ldGhvZCogY2FsbGJh
Y2tzLCBzaXplX3QgY2FsbGJhY2tDb3VudCwgdjg6Oklzb2xhdGUqKQordm9pZCBWOERPTUNvbmZp
Z3VyYXRpb246OmJhdGNoQ29uZmlndXJlQ2FsbGJhY2tzKHY4OjpIYW5kbGU8djg6Ok9iamVjdFRl
bXBsYXRlPiBwcm90b3R5cGUsIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gc2lnbmF0dXJlLCB2
ODo6UHJvcGVydHlBdHRyaWJ1dGUgYXR0cmlidXRlcywgY29uc3QgQmF0Y2hlZE1ldGhvZCogY2Fs
bGJhY2tzLCBzaXplX3QgY2FsbGJhY2tDb3VudCwgdjg6Oklzb2xhdGUqLCBXcmFwcGVyV29ybGRU
eXBlIGN1cnJlbnRXb3JsZFR5cGUpCiB7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjYWxs
YmFja0NvdW50OyArK2kpCi0gICAgICAgIHByb3RvdHlwZS0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5
bWJvbChjYWxsYmFja3NbaV0ubmFtZSksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoY2FsbGJh
Y2tzW2ldLmNhbGxiYWNrLCB2OFVuZGVmaW5lZCgpLCBzaWduYXR1cmUpLCBhdHRyaWJ1dGVzKTsK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNhbGxiYWNrQ291bnQ7ICsraSkgeworICAgICAg
ICB2ODo6SW52b2NhdGlvbkNhbGxiYWNrIGNhbGxiYWNrID0gY2FsbGJhY2tzW2ldLmNhbGxiYWNr
OworICAgICAgICBpZiAoY3VycmVudFdvcmxkVHlwZSA9PSBNYWluV29ybGQgJiYgY2FsbGJhY2tz
W2ldLmNhbGxiYWNrRm9yTWFpbldvcmxkKQorICAgICAgICAgICAgY2FsbGJhY2sgPSBjYWxsYmFj
a3NbaV0uY2FsbGJhY2tGb3JNYWluV29ybGQ7CisgICAgICAgIHByb3RvdHlwZS0+U2V0KHY4OjpT
dHJpbmc6Ok5ld1N5bWJvbChjYWxsYmFja3NbaV0ubmFtZSksIHY4OjpGdW5jdGlvblRlbXBsYXRl
OjpOZXcoY2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksIHNpZ25hdHVyZSksIGF0dHJpYnV0ZXMpOwor
ICAgIH0KIH0KIAogdjg6OkxvY2FsPHY4OjpTaWduYXR1cmU+IFY4RE9NQ29uZmlndXJhdGlvbjo6
Y29uZmlndXJlVGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGZ1
bmN0aW9uRGVzY3JpcHRvciwgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgdjg6OlBlcnNpc3Rl
bnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IHBhcmVudENsYXNzLApAQCAtNzMsNyArNzcsNyBAQCB2
ODo6TG9jYWw8djg6OlNpZ25hdHVyZT4gVjhET01Db25maWd1cmF0aW9uOjpjb25maWd1cmVUZW1w
bGF0ZSh2ODo6UGVyc2lzdGVudDx2OAogICAgICAgICBiYXRjaENvbmZpZ3VyZUF0dHJpYnV0ZXMo
aW5zdGFuY2UsIGZ1bmN0aW9uRGVzY3JpcHRvci0+UHJvdG90eXBlVGVtcGxhdGUoKSwgYXR0cmli
dXRlcywgYXR0cmlidXRlQ291bnQsIGlzb2xhdGUsIGN1cnJlbnRXb3JsZFR5cGUpOwogICAgIHY4
OjpMb2NhbDx2ODo6U2lnbmF0dXJlPiBkZWZhdWx0U2lnbmF0dXJlID0gdjg6OlNpZ25hdHVyZTo6
TmV3KGZ1bmN0aW9uRGVzY3JpcHRvcik7CiAgICAgaWYgKGNhbGxiYWNrQ291bnQpCi0gICAgICAg
IGJhdGNoQ29uZmlndXJlQ2FsbGJhY2tzKGZ1bmN0aW9uRGVzY3JpcHRvci0+UHJvdG90eXBlVGVt
cGxhdGUoKSwgZGVmYXVsdFNpZ25hdHVyZSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmli
dXRlPih2ODo6RG9udERlbGV0ZSksIGNhbGxiYWNrcywgY2FsbGJhY2tDb3VudCwgaXNvbGF0ZSk7
CisgICAgICAgIGJhdGNoQ29uZmlndXJlQ2FsbGJhY2tzKGZ1bmN0aW9uRGVzY3JpcHRvci0+UHJv
dG90eXBlVGVtcGxhdGUoKSwgZGVmYXVsdFNpZ25hdHVyZSwgc3RhdGljX2Nhc3Q8djg6OlByb3Bl
cnR5QXR0cmlidXRlPih2ODo6RG9udERlbGV0ZSksIGNhbGxiYWNrcywgY2FsbGJhY2tDb3VudCwg
aXNvbGF0ZSwgY3VycmVudFdvcmxkVHlwZSk7CiAgICAgcmV0dXJuIGRlZmF1bHRTaWduYXR1cmU7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NQ29uZmln
dXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01Db25maWd1cmF0aW9u
LmgKaW5kZXggZTk1YjE1ODZjNDY1M2YzNzI4YjUyYzA4YmYyMWU5NWM1ZDc2NWZhYi4uODJmYWNl
OTM1ZWE0ZTM1NWZmOTNkNmY4YjY0OGNjYzk3MGJiOWU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhET01Db25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhET01Db25maWd1cmF0aW9uLmgKQEAgLTEwMSw5ICsxMDEsMTAgQEAg
cHVibGljOgogICAgIHN0cnVjdCBCYXRjaGVkTWV0aG9kIHsKICAgICAgICAgY29uc3QgY2hhciog
Y29uc3QgbmFtZTsKICAgICAgICAgdjg6Okludm9jYXRpb25DYWxsYmFjayBjYWxsYmFjazsKKyAg
ICAgICAgdjg6Okludm9jYXRpb25DYWxsYmFjayBjYWxsYmFja0Zvck1haW5Xb3JsZDsKICAgICB9
OwogCi0gICAgc3RhdGljIHZvaWQgYmF0Y2hDb25maWd1cmVDYWxsYmFja3Modjg6OkhhbmRsZTx2
ODo6T2JqZWN0VGVtcGxhdGU+LCB2ODo6SGFuZGxlPHY4OjpTaWduYXR1cmU+LCB2ODo6UHJvcGVy
dHlBdHRyaWJ1dGUsIGNvbnN0IEJhdGNoZWRNZXRob2QqLCBzaXplX3QgY2FsbGJhY2tDb3VudCwg
djg6Oklzb2xhdGUqKTsKKyAgICBzdGF0aWMgdm9pZCBiYXRjaENvbmZpZ3VyZUNhbGxiYWNrcyh2
ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4sIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4s
IHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZSwgY29uc3QgQmF0Y2hlZE1ldGhvZCosIHNpemVfdCBjYWxs
YmFja0NvdW50LCB2ODo6SXNvbGF0ZSosIFdyYXBwZXJXb3JsZFR5cGUpOwogCiAgICAgc3RhdGlj
IHY4OjpMb2NhbDx2ODo6U2lnbmF0dXJlPiBjb25maWd1cmVUZW1wbGF0ZSh2ODo6UGVyc2lzdGVu
dDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4sIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBwYXJlbnRDbGFzcywgc2l6ZV90IGZpZWxk
Q291bnQsIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUqLCBzaXplX3QgYXR0cmlidXRlQ291bnQsIGNv
bnN0IEJhdGNoZWRNZXRob2QqLCBzaXplX3QgY2FsbGJhY2tDb3VudCwgdjg6Oklzb2xhdGUqLCBX
cmFwcGVyV29ybGRUeXBlKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAppbmRleCBjOWRmMzc0
MDE5NWQyMTI0OGViN2RlMGYyMjMzZWRhNjA5OWI2N2JhLi40OWJmNzdlNmU5Y2MzODkwZjUzZmU5
OGIzZDE4ZDExZmE3MGJjOWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKQEAgLTI5LDM2ICsy
OSwzNiBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01JbXBsZW1lbnRhdGlvbiBpbXBsZW1l
bnRhdGlvbjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBkb2N1bWVudEVsZW1lbnQ7
CiAKLSAgICBbUmV0dXJuTmV3T2JqZWN0XSBFbGVtZW50IGNyZWF0ZUVsZW1lbnQoaW4gW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcg
dGFnTmFtZSkKKyAgICBbUmV0dXJuTmV3T2JqZWN0LCBWOFBlcldvcmxkQmluZGluZ3NdIEVsZW1l
bnQgY3JlYXRlRWxlbWVudChpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0YWdOYW1lKQogICAgICAgICByYWlzZXMgKERPTUV4
Y2VwdGlvbik7Ci0gICAgRG9jdW1lbnRGcmFnbWVudCAgIGNyZWF0ZURvY3VtZW50RnJhZ21lbnQo
KTsKLSAgICBbUmV0dXJuTmV3T2JqZWN0XSBUZXh0IGNyZWF0ZVRleHROb2RlKGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBkYXRhKTsKLSAgICBbUmV0dXJuTmV3T2Jq
ZWN0XSBDb21tZW50IGNyZWF0ZUNvbW1lbnQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gRE9NU3RyaW5nIGRhdGEpOwotICAgIFtSZXR1cm5OZXdPYmplY3RdIENEQVRBU2VjdGlvbiBj
cmVhdGVDREFUQVNlY3Rpb24oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3Ry
aW5nIGRhdGEpCisgICAgW1Y4UGVyV29ybGRCaW5kaW5nc10gRG9jdW1lbnRGcmFnbWVudCAgIGNy
ZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKKyAgICBbUmV0dXJuTmV3T2JqZWN0LCBWOFBlcldvcmxk
QmluZGluZ3NdIFRleHQgY3JlYXRlVGV4dE5vZGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gRE9NU3RyaW5nIGRhdGEpOworICAgIFtSZXR1cm5OZXdPYmplY3QsIFY4UGVyV29ybGRC
aW5kaW5nc10gQ29tbWVudCBjcmVhdGVDb21tZW50KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIERPTVN0cmluZyBkYXRhKTsKKyAgICBbUmV0dXJuTmV3T2JqZWN0LCBWOFBlcldvcmxk
QmluZGluZ3NdIENEQVRBU2VjdGlvbiBjcmVhdGVDREFUQVNlY3Rpb24oaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGRhdGEpCiAgICAgICAgIHJhaXNlcyhET01FeGNl
cHRpb24pOwotICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJldHVybk5ld09iamVj
dF0gUHJvY2Vzc2luZ0luc3RydWN0aW9uIGNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgdGFyZ2V0LAorICAgIFtPYmpD
TGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJldHVybk5ld09iamVjdCwgVjhQZXJXb3JsZEJpbmRp
bmdzXSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0YXJnZXQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJp
bmcgZGF0YSkKICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgIFtSZXR1cm5OZXdP
YmplY3RdIEF0dHIgY3JlYXRlQXR0cmlidXRlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIERPTVN0cmluZyBuYW1lKQorICAgIFtSZXR1cm5OZXdPYmplY3QsIFY4UGVyV29ybGRCaW5k
aW5nc10gQXR0ciBjcmVhdGVBdHRyaWJ1dGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gRE9NU3RyaW5nIG5hbWUpCiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICBb
UmV0dXJuTmV3T2JqZWN0XSBFbnRpdHlSZWZlcmVuY2UgY3JlYXRlRW50aXR5UmVmZXJlbmNlKGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lKQorICAgIFtSZXR1
cm5OZXdPYmplY3QsIFY4UGVyV29ybGRCaW5kaW5nc10gRW50aXR5UmVmZXJlbmNlIGNyZWF0ZUVu
dGl0eVJlZmVyZW5jZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcg
bmFtZSkKICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgTm9kZUxpc3QgICAgICAg
ICAgIGdldEVsZW1lbnRzQnlUYWdOYW1lKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IERPTVN0cmluZyB0YWduYW1lKTsKKyAgICBbVjhQZXJXb3JsZEJpbmRpbmdzXSBOb2RlTGlzdCBn
ZXRFbGVtZW50c0J5VGFnTmFtZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01T
dHJpbmcgdGFnbmFtZSk7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgogCi0g
ICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmV0dXJuTmV3T2JqZWN0XSBOb2RlIGlt
cG9ydE5vZGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9kZSBpbXBvcnRlZE5v
ZGUsCisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmV0dXJuTmV3T2JqZWN0LCBW
OFBlcldvcmxkQmluZGluZ3NdIE5vZGUgaW1wb3J0Tm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBOb2RlIGltcG9ydGVkTm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIGRlZXApCiAgICAgICAg
IHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJz
LCBSZXR1cm5OZXdPYmplY3RdIEVsZW1lbnQgY3JlYXRlRWxlbWVudE5TKGluIFtUcmVhdE51bGxB
cz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWVz
cGFjZVVSSSwKKyAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSZXR1cm5OZXdPYmpl
Y3QsIFY4UGVyV29ybGRCaW5kaW5nc10gRWxlbWVudCBjcmVhdGVFbGVtZW50TlMoaW4gW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcg
bmFtZXNwYWNlVVJJLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUpCiAgICAgICAgIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSZXR1cm5OZXdP
YmplY3RdIEF0dHIgY3JlYXRlQXR0cmlidXRlTlMoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcs
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAorICAg
IFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJldHVybk5ld09iamVjdCwgVjhQZXJXb3Js
ZEJpbmRpbmdzXSBBdHRyIGNyZWF0ZUF0dHJpYnV0ZU5TKGluIFtUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9N
U3RyaW5nIHF1YWxpZmllZE5hbWUpCiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAg
ICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFn
TmFtZU5TKGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKKyAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJh
bWV0ZXJzLCBWOFBlcldvcmxkQmluZGluZ3NdIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1l
TlMoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9N
U3RyaW5nIGxvY2FsTmFtZSk7Ci0gICAgRWxlbWVudCAgICAgICAgICAgIGdldEVsZW1lbnRCeUlk
KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBlbGVtZW50SWQpOwor
ICAgIFtWOFBlcldvcmxkQmluZGluZ3NdIEVsZW1lbnQgICAgICAgICAgICBnZXRFbGVtZW50QnlJ
ZChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZWxlbWVudElkKTsK
IAogICAgIC8vIERPTSBMZXZlbCAzIENvcmUKIApAQCAtNzAsNyArNzAsNyBAQAogICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBib29sZWFuIHhtbFN0YW5kYWxvbmUKICAgICAgICAgICAgICAgICBzZXR0
ZXIgcmFpc2VzIChET01FeGNlcHRpb24pOwogCi0gICAgTm9kZSAgICAgICAgICAgICAgIGFkb3B0
Tm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlIHNvdXJjZSkKKyAgICBb
VjhQZXJXb3JsZEJpbmRpbmdzXSBOb2RlIGFkb3B0Tm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBOb2RlIHNvdXJjZSkKICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwog
CiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZF
X0MgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSAmJiBMQU5HVUFHRV9HT0JKRUNUCkBAIC04
NSwyMSArODUsMjEgQEAKIAogICAgIC8vIERPTSBMZXZlbCAyIEV2ZW50cyAoRG9jdW1lbnRFdmVu
dHMgaW50ZXJmYWNlKQogCi0gICAgRXZlbnQgICAgICAgICAgICAgIGNyZWF0ZUV2ZW50KGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBldmVudFR5cGUpCisgICAgW1Y4
UGVyV29ybGRCaW5kaW5nc10gRXZlbnQgICAgICAgICAgICAgIGNyZWF0ZUV2ZW50KGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBldmVudFR5cGUpCiAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgLy8gRE9NIExldmVsIDIgVHJhbnZlcnNhbCBhbmQg
UmFuZ2UgKERvY3VtZW50UmFuZ2UgaW50ZXJmYWNlKQogCi0gICAgUmFuZ2UgICAgICAgICAgICAg
IGNyZWF0ZVJhbmdlKCk7CisgICAgW1Y4UGVyV29ybGRCaW5kaW5nc10gUmFuZ2UgICAgICAgICAg
ICAgIGNyZWF0ZVJhbmdlKCk7CiAKICAgICAvLyBET00gTGV2ZWwgMiBUcmFudmVyc2FsIGFuZCBS
YW5nZSAoRG9jdW1lbnRUcmF2ZXJzYWwgaW50ZXJmYWNlKQogCi0gICAgW09iakNMZWdhY3lVbm5h
bWVkUGFyYW1ldGVyc10gTm9kZUl0ZXJhdG9yIGNyZWF0ZU5vZGVJdGVyYXRvcihpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlIHJvb3QsCisgICAgW09iakNMZWdhY3lVbm5hbWVk
UGFyYW1ldGVycywgVjhQZXJXb3JsZEJpbmRpbmdzXSBOb2RlSXRlcmF0b3IgY3JlYXRlTm9kZUl0
ZXJhdG9yKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgcm9vdCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIE5vZGVGaWx0ZXIgZmlsdGVyLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQogICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBUcmVlV2Fs
a2VyIGNyZWF0ZVRyZWVXYWxrZXIoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9k
ZSByb290LAorICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFY4UGVyV29ybGRCaW5k
aW5nc10gVHJlZVdhbGtlciBjcmVhdGVUcmVlV2Fsa2VyKGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIE5vZGUgcm9vdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgbG9u
ZyB3aGF0VG9TaG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlRmlsdGVyIGZpbHRlciwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQpA
QCAtMTE1LDE1ICsxMTUsMTUgQEAKIAogICAgIC8vIERPTSBMZXZlbCAyIFN0eWxlIChEb2N1bWVu
dENTUyBpbnRlcmZhY2UpCiAKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBDU1NT
dHlsZURlY2xhcmF0aW9uIGdldE92ZXJyaWRlU3R5bGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gRWxlbWVudCBlbGVtZW50LAorICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRl
cnMsIFY4UGVyV29ybGRCaW5kaW5nc10gQ1NTU3R5bGVEZWNsYXJhdGlvbiBnZXRPdmVycmlkZVN0
eWxlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIEVsZW1lbnQgZWxlbWVudCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHBzZXVkb0VsZW1lbnQpOwog
CiAgICAgLy8gRE9NIExldmVsIDMgWFBhdGggKFhQYXRoRXZhbHVhdG9yIGludGVyZmFjZSkKLSAg
ICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBYUGF0aEV4cHJlc3Npb24gY3JlYXRlRXhw
cmVzc2lvbihpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZXhwcmVz
c2lvbiwKKyAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBWOFBlcldvcmxkQmluZGlu
Z3NdIFhQYXRoRXhwcmVzc2lvbiBjcmVhdGVFeHByZXNzaW9uKGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIERPTVN0cmluZyBleHByZXNzaW9uLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIFhQYXRoTlNSZXNvbHZlciByZXNvbHZlcikKICAgICAgICAgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7Ci0gICAgWFBhdGhOU1Jlc29sdmVyICAgIGNyZWF0ZU5TUmVzb2x2ZXIoaW4gTm9kZSBu
b2RlUmVzb2x2ZXIpOwotICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFY4Q3VzdG9t
XSBYUGF0aFJlc3VsdCBldmFsdWF0ZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
T01TdHJpbmcgZXhwcmVzc2lvbiwKKyAgICBbVjhQZXJXb3JsZEJpbmRpbmdzXSBYUGF0aE5TUmVz
b2x2ZXIgICAgY3JlYXRlTlNSZXNvbHZlcihpbiBOb2RlIG5vZGVSZXNvbHZlcik7CisgICAgW09i
akNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgVjhDdXN0b20sIFY4UGVyV29ybGRCaW5kaW5nc10g
WFBhdGhSZXN1bHQgZXZhbHVhdGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9N
U3RyaW5nIGV4cHJlc3Npb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgY29udGV4
dE5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFhQYXRoTlNSZXNvbHZlciByZXNvbHZl
ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgc2hvcnQgdHlwZSwKQEAgLTE0
Nyw3ICsxNDcsNyBAQAogICAgIGJvb2xlYW4gICAgICAgICAgICBxdWVyeUNvbW1hbmRJbmRldGVy
bShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgY29tbWFuZCk7CiAg
ICAgYm9vbGVhbiAgICAgICAgICAgIHF1ZXJ5Q29tbWFuZFN0YXRlKGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBjb21tYW5kKTsKICAgICBib29sZWFuICAgICAgICAg
ICAgcXVlcnlDb21tYW5kU3VwcG9ydGVkKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IERPTVN0cmluZyBjb21tYW5kKTsKLSAgICBET01TdHJpbmcgICAgICAgICAgcXVlcnlDb21tYW5k
VmFsdWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGNvbW1hbmQp
OworICAgIFtWOFBlcldvcmxkQmluZGluZ3NdIERPTVN0cmluZyBxdWVyeUNvbW1hbmRWYWx1ZShp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgY29tbWFuZCk7CiAKICAg
ICAvLyBNb3ZlZCBkb3duIGZyb20gSFRNTERvY3VtZW50CiAKQEAgLTE3NiwxMCArMTc2LDEwIEBA
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIGFuY2hvcnM7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYXN0TW9kaWZpZWQ7CiAKLSAgICBOb2RlTGlzdCBn
ZXRFbGVtZW50c0J5TmFtZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJp
bmcgZWxlbWVudE5hbWUpOworICAgIFtWOFBlcldvcmxkQmluZGluZ3NdIE5vZGVMaXN0IGdldEVs
ZW1lbnRzQnlOYW1lKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBl
bGVtZW50TmFtZSk7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9NSUNST0RBVEEpICYmIEVOQUJMRV9N
SUNST0RBVEEKLSAgICBOb2RlTGlzdCBnZXRJdGVtcyhpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmlu
ZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nLCBPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIERPTVN0cmluZyB0eXBlTmFtZXMpOworICAgIFtWOFBlcldvcmxkQmluZGluZ3NdIE5vZGVM
aXN0IGdldEl0ZW1zKGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFz
PU51bGxTdHJpbmcsIE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHR5cGVO
YW1lcyk7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFO
R1VBR0VfSkFWQVNDUklQVApAQCAtMTkyLDE0ICsxOTIsMTQgQEAKICAgICBbVHJlYXRSZXR1cm5l
ZE51bGxTdHJpbmdBcz1VbmRlZmluZWRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZGVm
YXVsdENoYXJzZXQ7CiAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9VW5kZWZpbmVkXSBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlYWR5U3RhdGU7CiAKLSAgICBFbGVtZW50ICAg
ICAgICAgICAgZWxlbWVudEZyb21Qb2ludChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBsb25nIHgsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgeSk7Ci0gICAgUmFuZ2UgICAgICAgICAg
ICAgIGNhcmV0UmFuZ2VGcm9tUG9pbnQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
bG9uZyB4LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHkpOworICAgIFtWOFBlcldvcmxkQmlu
ZGluZ3NdIEVsZW1lbnQgZWxlbWVudEZyb21Qb2ludChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBsb25nIHgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHkpOworICAg
IFtWOFBlcldvcmxkQmluZGluZ3NdIFJhbmdlIGNhcmV0UmFuZ2VGcm9tUG9pbnQoaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyB4LCAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGxvbmcgeSk7CiAKICAgICAvLyBNb3ppbGxhIGV4dGVuc2lvbnMKICNpZiBkZWZpbmVkKExB
TkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICBET01TZWxlY3Rp
b24gICAgICAgZ2V0U2VsZWN0aW9uKCk7CisgICAgW1Y4UGVyV29ybGRCaW5kaW5nc10gRE9NU2Vs
ZWN0aW9uIGdldFNlbGVjdGlvbigpOwogI2VuZGlmCiAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3Ry
aW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBjaGFyYWN0ZXJTZXQ7CiAK
QEAgLTIzNCwxNCArMjM0LDE0IEBACiAjZW5kaWYKIAogICAgIC8vIEhUTUwgNQotICAgIE5vZGVM
aXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gRE9NU3RyaW5nIHRhZ25hbWUpOworICAgIFtWOFBlcldvcmxkQmluZGluZ3NdIE5vZGVMaXN0
IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
RE9NU3RyaW5nIHRhZ25hbWUpOwogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBj
b21wYXRNb2RlOwogCiAgICAgLy8gTm9kZVNlbGVjdG9yIC0gU2VsZWN0b3IgQVBJCi0gICAgRWxl
bWVudCBxdWVyeVNlbGVjdG9yKGluIERPTVN0cmluZyBzZWxlY3RvcnMpCisgICAgW1Y4UGVyV29y
bGRCaW5kaW5nc10gRWxlbWVudCBxdWVyeVNlbGVjdG9yKGluIERPTVN0cmluZyBzZWxlY3RvcnMp
CiAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgIE5vZGVMaXN0IHF1ZXJ5U2VsZWN0
b3JBbGwoaW4gRE9NU3RyaW5nIHNlbGVjdG9ycykKKyAgICBbVjhQZXJXb3JsZEJpbmRpbmdzXSBO
b2RlTGlzdCBxdWVyeVNlbGVjdG9yQWxsKGluIERPTVN0cmluZyBzZWxlY3RvcnMpCiAgICAgICAg
IHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAjaWYgZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9B
UEkpICYmIEVOQUJMRV9GVUxMU0NSRUVOX0FQSQpAQCAtMzQ1LDcgKzM0NSw3IEBACiAjZW5kaWYK
IAogI2lmIGRlZmluZWQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJiYgRU5BQkxFX1RPVUNIX0VWRU5U
UwotICAgIFtSZXR1cm5OZXdPYmplY3QsIFY4RW5hYmxlZEF0UnVudGltZT10b3VjaF0gVG91Y2gg
Y3JlYXRlVG91Y2goaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NV2luZG93IHdp
bmRvdywKKyAgICBbUmV0dXJuTmV3T2JqZWN0LCBWOEVuYWJsZWRBdFJ1bnRpbWU9dG91Y2gsIFY4
UGVyV29ybGRCaW5kaW5nc10gVG91Y2ggY3JlYXRlVG91Y2goaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gRE9NV2luZG93IHdpbmRvdywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gRXZlbnRUYXJnZXQgdGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25n
IGlkZW50aWZpZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgcGFnZVgsCkBA
IC0zNjIsMTAgKzM2MiwxMCBAQAogI2VuZGlmCiAKICNpZiBkZWZpbmVkKEVOQUJMRV9DVVNUT01f
RUxFTUVOVFMpICYmIEVOQUJMRV9DVVNUT01fRUxFTUVOVFMKLSAgICBbVjhFbmFibGVkQXRSdW50
aW1lPWN1c3RvbURPTUVsZW1lbnRzLCBDb25kaXRpb25hbD1DVVNUT01fRUxFTUVOVFMsIEltcGxl
bWVudGVkQXM9cmVnaXN0ZXJFbGVtZW50LCBDYWxsV2l0aD1TY3JpcHRTdGF0ZV0KKyAgICBbVjhF
bmFibGVkQXRSdW50aW1lPWN1c3RvbURPTUVsZW1lbnRzLCBDb25kaXRpb25hbD1DVVNUT01fRUxF
TUVOVFMsIEltcGxlbWVudGVkQXM9cmVnaXN0ZXJFbGVtZW50LCBDYWxsV2l0aD1TY3JpcHRTdGF0
ZSwgVjhQZXJXb3JsZEJpbmRpbmdzXQogICAgIEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3RvciB3ZWJr
aXRSZWdpc3RlcihpbiBET01TdHJpbmcgbmFtZSwgaW4gW09wdGlvbmFsXSBEaWN0aW9uYXJ5IG9w
dGlvbnMpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgIFtSZXR1cm5OZXdPYmplY3RdIEVsZW1l
bnQgY3JlYXRlRWxlbWVudChpbiBET01TdHJpbmcgbG9jYWxOYW1lLCBpbiBbVHJlYXROdWxsQXM9
TnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGVFeHRlbnNpb24pIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKLSAgICBbUmV0dXJuTmV3T2JqZWN0XSBFbGVtZW50IGNyZWF0ZUVsZW1lbnROUyhpbiBbVHJl
YXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwgaW4gRE9NU3RyaW5n
IHF1YWxpZmllZE5hbWUsCisgICAgW1JldHVybk5ld09iamVjdCwgVjhQZXJXb3JsZEJpbmRpbmdz
XSBFbGVtZW50IGNyZWF0ZUVsZW1lbnQoaW4gRE9NU3RyaW5nIGxvY2FsTmFtZSwgaW4gW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyB0eXBlRXh0ZW5zaW9uKSByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CisgICAgW1JldHVybk5ld09iamVjdCwgVjhQZXJXb3JsZEJpbmRpbmdzXSBFbGVt
ZW50IGNyZWF0ZUVsZW1lbnROUyhpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5n
IG5hbWVzcGFjZVVSSSwgaW4gRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJp
bmddIERPTVN0cmluZyB0eXBlRXh0ZW5zaW9uKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCmluZGV4IDc4Yjk0OTc4YTM2MDNjNzU5NzkyNDI4Mzc3
NmM5YTdmNzA1MDEyYjMuLjQwMzExOTg5MTJkZmFkZmYyZDFlMTFjYjY5NGZmOTg1M2M4YmY3ODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5pZGwKQEAgLTM0LDEyICszNCwxMiBAQAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IERPTVN0cmluZyB2YWx1ZSkKICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9p
ZCByZW1vdmVBdHRyaWJ1dGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3Ry
aW5nIG5hbWUpOwotICAgIEF0dHIgZ2V0QXR0cmlidXRlTm9kZShpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZSk7Ci0gICAgQXR0ciBzZXRBdHRyaWJ1dGVOb2Rl
KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIEF0dHIgbmV3QXR0cikKKyAgICBbVjhQ
ZXJXb3JsZEJpbmRpbmdzXSBBdHRyIGdldEF0dHJpYnV0ZU5vZGUoaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWUpOworICAgIFtWOFBlcldvcmxkQmluZGluZ3Nd
IEF0dHIgc2V0QXR0cmlidXRlTm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBB
dHRyIG5ld0F0dHIpCiAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgIEF0dHIgcmVt
b3ZlQXR0cmlidXRlTm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBBdHRyIG9s
ZEF0dHIpCisgICAgW1Y4UGVyV29ybGRCaW5kaW5nc10gQXR0ciByZW1vdmVBdHRyaWJ1dGVOb2Rl
KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIEF0dHIgb2xkQXR0cikKICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWUo
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWUpOworICAgIFtW
OFBlcldvcmxkQmluZGluZ3NdIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lKTsKIAogI2lmICFkZWZpbmVk
KExBTkdVQUdFX09CSkVDVElWRV9DKQogICAgIC8vIEZvciBPYmpDIHRoaXMgaXMgZGVmaW5lZCBv
biBOb2RlIGZvciBsZWdhY3kgc3VwcG9ydC4KQEAgLTU3LDExICs1NywxMSBAQAogICAgICAgICBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2
b2lkIHJlbW92ZUF0dHJpYnV0ZU5TKGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJp
bmcgbmFtZXNwYWNlVVJJLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gRE9NU3RyaW5nIGxvY2FsTmFtZSk7Ci0gICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1l
dGVyc10gTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWVOUyhpbiBbVHJlYXROdWxsQXM9TnVs
bFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lc3BhY2VV
UkksCisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgVjhQZXJXb3JsZEJpbmRpbmdz
XSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKGluIFtUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBsb2NhbE5hbWUpOwotICAgIFtP
YmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIEF0dHIgZ2V0QXR0cmlidXRlTm9kZU5TKGluIFtU
cmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3Ry
aW5nIG5hbWVzcGFjZVVSSSwKKyAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBWOFBl
cldvcmxkQmluZGluZ3NdIEF0dHIgZ2V0QXR0cmlidXRlTm9kZU5TKGluIFtUcmVhdE51bGxBcz1O
dWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWVzcGFj
ZVVSSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbG9jYWxOYW1lKTsKLSAgICBBdHRy
IHNldEF0dHJpYnV0ZU5vZGVOUyhpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBBdHRy
IG5ld0F0dHIpCisgICAgW1Y4UGVyV29ybGRCaW5kaW5nc10gQXR0ciBzZXRBdHRyaWJ1dGVOb2Rl
TlMoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gQXR0ciBuZXdBdHRyKQogICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICBib29sZWFuIGhhc0F0dHJpYnV0ZShpbiBET01T
dHJpbmcgbmFtZSk7CiAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gYm9vbGVhbiBo
YXNBdHRyaWJ1dGVOUyhpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCkBAIC05Niw3ICs5Niw3IEBACiAg
ICAgdm9pZCBzY3JvbGxCeVBhZ2VzKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxv
bmcgcGFnZXMpOwogCiAgICAgLy8gSFRNTCA1Ci0gICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeUNs
YXNzTmFtZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZSk7
CisgICAgW1Y4UGVyV29ybGRCaW5kaW5nc10gTm9kZUxpc3QgZ2V0RWxlbWVudHNCeUNsYXNzTmFt
ZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZSk7CiAKICAg
ICBbUmVmbGVjdD1jbGFzcywgVjhQZXJXb3JsZEJpbmRpbmdzXSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGNsYXNzTmFtZTsKICAgICBbVjhQZXJXb3JsZEJpbmRpbmdzXSByZWFkb25seSBhdHRyaWJ1dGUg
RE9NVG9rZW5MaXN0IGNsYXNzTGlzdDsKQEAgLTEwNiw5ICsxMDYsOSBAQAogI2VuZGlmCiAKICAg
ICAvLyBOb2RlU2VsZWN0b3IgLSBTZWxlY3RvciBBUEkKLSAgICBFbGVtZW50IHF1ZXJ5U2VsZWN0
b3IoaW4gRE9NU3RyaW5nIHNlbGVjdG9ycykKKyAgICBbVjhQZXJXb3JsZEJpbmRpbmdzXSBFbGVt
ZW50IHF1ZXJ5U2VsZWN0b3IoaW4gRE9NU3RyaW5nIHNlbGVjdG9ycykKICAgICAgICAgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7Ci0gICAgTm9kZUxpc3QgcXVlcnlTZWxlY3RvckFsbChpbiBET01TdHJp
bmcgc2VsZWN0b3JzKQorICAgIFtWOFBlcldvcmxkQmluZGluZ3NdIE5vZGVMaXN0IHF1ZXJ5U2Vs
ZWN0b3JBbGwoaW4gRE9NU3RyaW5nIHNlbGVjdG9ycykKICAgICAgICAgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAKICAgICAvLyBXZWJLaXQgZXh0ZW5zaW9uLCBwZW5kaW5nIHNwZWNpZmljYXRpb24u
CkBAIC0xMjUsNyArMTI1LDcgQEAKICAgICAvLyBTaGFkb3dBd2FyZSBBUEkKICNpZiBkZWZpbmVk
KEVOQUJMRV9TSEFET1dfRE9NKSAmJiBFTkFCTEVfU0hBRE9XX0RPTSAmJiBkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKICAgICBbUmVmbGVjdD1wc2V1
ZG8sIFY4RW5hYmxlZEF0UnVudGltZT1zaGFkb3dET00sIEltcGxlbWVudGVkQXM9cHNldWRvLCBW
OFBlcldvcmxkQmluZGluZ3NdIGF0dHJpYnV0ZSBET01TdHJpbmcgd2Via2l0UHNldWRvOwotICAg
IFtWOEVuYWJsZWRBdFJ1bnRpbWU9c2hhZG93RE9NLCBJbXBsZW1lbnRlZEFzPWNyZWF0ZVNoYWRv
d1Jvb3RdIFNoYWRvd1Jvb3Qgd2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpIHJhaXNlcyhET01FeGNl
cHRpb24pOworICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9c2hhZG93RE9NLCBJbXBsZW1lbnRlZEFz
PWNyZWF0ZVNoYWRvd1Jvb3QsIFY4UGVyV29ybGRCaW5kaW5nc10gU2hhZG93Um9vdCB3ZWJraXRD
cmVhdGVTaGFkb3dSb290KCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgW1Y4RW5hYmxlZEF0
UnVudGltZT1zaGFkb3dET00sIEltcGxlbWVudGVkQXM9c2hhZG93Um9vdCwgVjhQZXJXb3JsZEJp
bmRpbmdzXSByZWFkb25seSBhdHRyaWJ1dGUgU2hhZG93Um9vdCB3ZWJraXRTaGFkb3dSb290Owog
I2VuZGlmCiAKQEAgLTEzNSw4ICsxMzUsOCBAQAogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZB
U0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCiAgICAgLy8gQ1NTT00gVmlldyBNb2R1bGUg
QVBJCi0gICAgQ2xpZW50UmVjdExpc3QgZ2V0Q2xpZW50UmVjdHMoKTsKLSAgICBDbGllbnRSZWN0
IGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgIFtWOFBlcldvcmxkQmluZGluZ3NdIENsaWVu
dFJlY3RMaXN0IGdldENsaWVudFJlY3RzKCk7CisgICAgW1Y4UGVyV29ybGRCaW5kaW5nc10gQ2xp
ZW50UmVjdCBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChM
QU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlk
bAppbmRleCA2YjVkNDkzZTdiZDliNTMxN2RiN2RiNTBlNTg3MTI3MTBkM2MwZTQ4Li5mZTk3NTY3
ZjRhOTAwNzkzNjE0YTQyOTMxY2ViNzlkMWUzOGNlN2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCkBAIC03
Niw3ICs3Niw3IEBACiAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgYm9vbGVh
biAgICAgICAgICAgIGhhc0NoaWxkTm9kZXMoKTsKLSAgICBOb2RlICAgICAgICAgICAgICAgY2xv
bmVOb2RlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gZGVlcCk7Cisg
ICAgW1Y4UGVyV29ybGRCaW5kaW5nc10gTm9kZSAgICAgICAgICAgICAgIGNsb25lTm9kZShpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGRlZXApOwogICAgIHZvaWQgICAg
ICAgICAgICAgICBub3JtYWxpemUoKTsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVs
IDI6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194358</attachid>
            <date>2013-03-21 15:16:19 -0700</date>
            <delta_ts>2013-03-25 09:25:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112430-20130321231206.patch</filename>
            <type>text/plain</type>
            <size>53929</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRlMDU1OGZiYTM5Mzg2
NjMyNTE1MzA2YWQyM2U0ZDBjYjJhNjNmMC4uZDY2ZGNlODcyZDg3NGI1YWJkNWFhZmFmMDMzNzc4
YTlmY2I5ZmU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAzLTIxICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIEdlbmVyYXRl
IHNwZWNpYWxpemVkIGNhbGxiYWNrcyBmb3IgdGhlIG1haW4gd29ybGQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQzMAorCisgICAgICAgIFJldmll
d2VkIGJ5IEpvY2hlbiBFaXNpbmdlci4KKworICAgICAgICBUaGUgbmV3IHNwZWNpYWxpemVkIGJp
bmRpbmdzIHdpbGwgYmUgZmFzdGVyLCBiZWNhdXNlIHRoZXkgZG9uJ3QgbmVlZCB0bworICAgICAg
ICBkbyB0aGUgIm1haW4gd29ybGQsIGlzb2xhdGVkIHdvcmxkIG9yIGEgd29ya2VyIiBjaGVjaywg
YnV0IGNhbiByaWdodAorICAgICAgICBhd2F5IGFzc3VtZSB0aGF0IHdlJ3JlIGluIHRoZSBtYWlu
IHdvcmxkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZ2VuZXJhdGVzIG1haW4gd29ybGQgYmluZGlu
Z3MgZm9yIGdldHRlcnMgYW5kIHNldHRlcnMgb2YgTm9kZSwKKyAgICAgICAgRWxlbWVudCBhbmQg
RG9jdW1lbnQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzICh1cGRhdGVkIGV4aXN0aW5nIGJpbmRp
bmcgdGVzdHMpLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG06CisgICAgICAgIChHZW5lcmF0ZU92ZXJsb2FkZWRGdW5jdGlvbik6CisgICAgICAgIChHZW5l
cmF0ZUZ1bmN0aW9uQ2FsbGJhY2spOgorICAgICAgICAoR2VuZXJhdGVGdW5jdGlvbik6CisgICAg
ICAgIChHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayk6CisgICAgICAgIChHZW5lcmF0ZVNpbmdsZUNv
bnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAoR2VuZXJhdGVOb25TdGFuZGFyZEZ1bmN0aW9u
KToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2VuZXJhdGVG
dW5jdGlvbkNhbGxTdHJpbmcpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OEZsb2F0NjRBcnJheS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50
VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RUeXBlZGVmcy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBi
aW5kaW5ncy92OC9WOERPTUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhE
T01Db25maWd1cmF0aW9uOjpiYXRjaENvbmZpZ3VyZUNhbGxiYWNrcyk6CisgICAgICAgIChXZWJD
b3JlOjpWOERPTUNvbmZpZ3VyYXRpb246OmNvbmZpZ3VyZVRlbXBsYXRlKToKKyAgICAgICAgKiBi
aW5kaW5ncy92OC9WOERPTUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKEJhdGNoZWRNZXRob2Qp
OgorICAgICAgICAoVjhET01Db25maWd1cmF0aW9uKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aWRsOgorICAgICAgICAqIGRvbS9FbGVtZW50LmlkbDoKKyAgICAgICAgKiBkb20vTm9kZS5pZGw6
CisKIDIwMTMtMDMtMjAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBIVE1MTmFtZXMgc2hvdWxkIGNvbnN0cnVjdCBzdHJpbmdzIGF0IGNvbXBpbGUgdGltZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpp
bmRleCAwNzE3ZjRjZjJjOWM0NmI4NGVlZDU4M2E2ZTFhZGVmZTQzNjFhZDhmLi40OTE1Yzk3ZjAx
YTJkYzQ3M2E3YTAwOTQ1YzFkMjE2OGRmZDk3NDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMTU1Niw2ICsxNTU2LDcg
QEAgc3ViIEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9uCiB7CiAgICAgbXkgJGZ1bmN0aW9uID0g
c2hpZnQ7CiAgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworICAgIG15ICRmb3JNYWluV29ybGRT
dWZmaXggPSBzaGlmdDsKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7
CiAKICAgICAjIEdlbmVyYXRlIGNvZGUgZm9yIGNob29zaW5nIHRoZSBjb3JyZWN0IG92ZXJsb2Fk
IHRvIGNhbGwuIE92ZXJsb2FkcyBhcmUKQEAgLTE1NjksNyArMTU3MCw3IEBAIHN1YiBHZW5lcmF0
ZU92ZXJsb2FkZWRGdW5jdGlvbgogICAgIG15ICRsZWFzdE51bU1hbmRhdG9yeVBhcmFtcyA9IDI1
NTsKICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiNpZiAke2NvbmRpdGlvbmFsU3Ry
aW5nfVxuXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgcHVzaChAaW1wbENvbnRlbnRJ
bnRlcm5hbHMsIDw8RU5EKTsKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtuYW1lfU1l
dGhvZChjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiAke25hbWV9TWV0aG9kJHtmb3JNYWluV29ybGRTdWZmaXh9KGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MpCiB7CiBFTkQKICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgR2VuZXJh
dGVGZWF0dXJlT2JzZXJ2YXRpb24oJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJWOE1lYXN1cmVBcyJ9KSk7CkBAIC0xNTc5LDcgKzE1ODAsNyBAQCBFTkQKICAgICAg
ICAgJGxlYXN0TnVtTWFuZGF0b3J5UGFyYW1zID0gJG51bU1hbmRhdG9yeVBhcmFtcyBpZiAoJG51
bU1hbmRhdG9yeVBhcmFtcyA8ICRsZWFzdE51bU1hbmRhdG9yeVBhcmFtcyk7CiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgIGlmICgkcGFyYW1ldGVyc0NoZWNrKVxuIik7
CiAgICAgICAgIG15ICRvdmVybG9hZGVkSW5kZXhTdHJpbmcgPSAkb3ZlcmxvYWQtPntvdmVybG9h
ZEluZGV4fTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgICAgIHJl
dHVybiAke25hbWV9JHtvdmVybG9hZGVkSW5kZXhTdHJpbmd9TWV0aG9kKGFyZ3MpO1xuIik7Cisg
ICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgICAgICByZXR1cm4gJHtuYW1l
fSR7b3ZlcmxvYWRlZEluZGV4U3RyaW5nfU1ldGhvZCR7Zm9yTWFpbldvcmxkU3VmZml4fShhcmdz
KTtcbiIpOwogICAgIH0KICAgICBpZiAoJGxlYXN0TnVtTWFuZGF0b3J5UGFyYW1zID49IDEpIHsK
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgaWYgKGFyZ3MuTGVuZ3Ro
KCkgPCAkbGVhc3ROdW1NYW5kYXRvcnlQYXJhbXMpXG4iKTsKQEAgLTE1OTYsNiArMTU5Nyw3IEBA
IHN1YiBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbGJhY2sKIHsKICAgICBteSAkZnVuY3Rpb24gPSBzaGlm
dDsKICAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisgICAgbXkgJGZvck1haW5Xb3JsZFN1ZmZp
eCA9IHNoaWZ0OwogCiAgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOwog
ICAgIG15ICR2OEludGVyZmFjZU5hbWUgPSAiVjgkaW50ZXJmYWNlTmFtZSI7CkBAIC0xNjA0LDE0
ICsxNjA2LDE0IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbGJhY2sKICAgICBteSAkY29uZGl0
aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygk
ZnVuY3Rpb24tPnNpZ25hdHVyZSk7CiAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIj
aWYgJHtjb25kaXRpb25hbFN0cmluZ31cblxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAg
IHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCA8PEVORCk7Ci1zdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+ICR7bmFtZX1NZXRob2RDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
KQorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiAke25hbWV9TWV0aG9kQ2FsbGJhY2ske2Zv
ck1haW5Xb3JsZFN1ZmZpeH0oY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKIEVORAogICAg
IHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCBHZW5lcmF0ZUZlYXR1cmVPYnNlcnZhdGlvbigk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4TWVhc3VyZUFzIn0p
KTsKICAgICBpZiAoSGFzQ3VzdG9tTWV0aG9kKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMpKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAg
IHJldHVybiAke3Y4SW50ZXJmYWNlTmFtZX06OiR7bmFtZX1NZXRob2RDdXN0b20oYXJncyk7XG4i
KTsKICAgICB9IGVsc2UgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAg
ICByZXR1cm4gJHtpbnRlcmZhY2VOYW1lfVY4SW50ZXJuYWw6OiR7bmFtZX1NZXRob2QoYXJncyk7
XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgcmV0dXJuICR7
aW50ZXJmYWNlTmFtZX1WOEludGVybmFsOjoke25hbWV9TWV0aG9kJHtmb3JNYWluV29ybGRTdWZm
aXh9KGFyZ3MpO1xuIik7CiAgICAgfQogICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAi
fVxuXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiNlbmRpZiAvLyAke2Nv
bmRpdGlvbmFsU3RyaW5nfVxuXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CkBAIC0xNjIxLDYg
KzE2MjMsNyBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbgogewogICAgIG15ICRmdW5jdGlvbiA9IHNo
aWZ0OwogICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICBteSAkZm9yTWFpbldvcmxkU3Vm
Zml4ID0gc2hpZnQ7CiAKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7
CiAgICAgbXkgJHY4SW50ZXJmYWNlTmFtZSA9ICJWOCRpbnRlcmZhY2VOYW1lIjsKQEAgLTE2Mzgs
NyArMTY0MSw3IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9uCiAKICAgICBteSAkY29uZGl0aW9uYWxT
dHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkZnVuY3Rp
b24tPnNpZ25hdHVyZSk7CiAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIjaWYgJHtj
b25kaXRpb25hbFN0cmluZ31cblxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwotICAgIHB1c2go
QGltcGxDb250ZW50SW50ZXJuYWxzLCAic3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiAke25h
bWV9TWV0aG9kKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpXG4iKTsKKyAgICBwdXNoKEBpbXBs
Q29udGVudEludGVybmFscywgInN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtuYW1lfU1l
dGhvZCR7Zm9yTWFpbldvcmxkU3VmZml4fShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKVxuIik7
CiAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICJ7XG4iKTsKIAogICAgIGlmICgkbmFt
ZSBlcSAiYWRkRXZlbnRMaXN0ZW5lciIgfHwgJG5hbWUgZXEgInJlbW92ZUV2ZW50TGlzdGVuZXIi
KSB7CkBAIC0xNzM1LDExICsxNzM4LDExIEBAIEVORAogRU5ECiAgICAgfQogCi0gICAgbXkgKCRw
YXJhbWV0ZXJDaGVja1N0cmluZywgJHBhcmFtSW5kZXgsICVyZXBsYWNlbWVudHMpID0gR2VuZXJh
dGVQYXJhbWV0ZXJzQ2hlY2soJGZ1bmN0aW9uLCAkaW50ZXJmYWNlTmFtZSk7CisgICAgbXkgKCRw
YXJhbWV0ZXJDaGVja1N0cmluZywgJHBhcmFtSW5kZXgsICVyZXBsYWNlbWVudHMpID0gR2VuZXJh
dGVQYXJhbWV0ZXJzQ2hlY2soJGZ1bmN0aW9uLCAkaW50ZXJmYWNlTmFtZSwgJGZvck1haW5Xb3Js
ZFN1ZmZpeCk7CiAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICRwYXJhbWV0ZXJDaGVj
a1N0cmluZyk7CiAKICAgICAjIEJ1aWxkIHRoZSBmdW5jdGlvbiBjYWxsIHN0cmluZy4KLSAgICBw
dXNoKEBpbXBsQ29udGVudEludGVybmFscywgR2VuZXJhdGVGdW5jdGlvbkNhbGxTdHJpbmcoJGZ1
bmN0aW9uLCAkcGFyYW1JbmRleCwgIiAgICAiLCAkaW50ZXJmYWNlTmFtZSwgJXJlcGxhY2VtZW50
cykpOworICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCBHZW5lcmF0ZUZ1bmN0aW9uQ2Fs
bFN0cmluZygkZnVuY3Rpb24sICRwYXJhbUluZGV4LCAiICAgICIsICRpbnRlcmZhY2VOYW1lLCAk
Zm9yTWFpbldvcmxkU3VmZml4LCAlcmVwbGFjZW1lbnRzKSk7CiAKICAgICBpZiAoJHJhaXNlc0V4
Y2VwdGlvbnMpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgfVxu
Iik7CkBAIC0xODIzLDYgKzE4MjYsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKIHsK
ICAgICBteSAkZnVuY3Rpb24gPSBzaGlmdDsKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9IHNoaWZ0
OworICAgIG15ICRmb3JNYWluV29ybGRTdWZmaXggPSBzaGlmdDsKIAogICAgIG15ICRwYXJhbWV0
ZXJDaGVja1N0cmluZyA9ICIiOwogICAgIG15ICRwYXJhbUluZGV4ID0gMDsKQEAgLTE4MzgsNyAr
MTg0Miw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogICAgICAgICBteSAkb3B0aW9u
YWwgPSAkcGFyYW1ldGVyLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT3B0aW9uYWwifTsKICAgICAg
ICAgaWYgKCRvcHRpb25hbCAmJiAkb3B0aW9uYWwgbmUgIkRlZmF1bHRJc1VuZGVmaW5lZCIgJiYg
JG9wdGlvbmFsIG5lICJEZWZhdWx0SXNOdWxsU3RyaW5nIiAmJiAkbmF0aXZlVHlwZSBuZSAiRGlj
dGlvbmFyeSIgJiYgISRwYXJhbWV0ZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsYmFjayJ9
KSB7CiAgICAgICAgICAgICAkcGFyYW1ldGVyQ2hlY2tTdHJpbmcgLj0gIiAgICBpZiAoYXJncy5M
ZW5ndGgoKSA8PSAkcGFyYW1JbmRleCkge1xuIjsKLSAgICAgICAgICAgIG15ICRmdW5jdGlvbkNh
bGwgPSBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbFN0cmluZygkZnVuY3Rpb24sICRwYXJhbUluZGV4LCAi
ICAgICIgeCAyLCAkaW50ZXJmYWNlTmFtZSwgJXJlcGxhY2VtZW50cyk7CisgICAgICAgICAgICBt
eSAkZnVuY3Rpb25DYWxsID0gR2VuZXJhdGVGdW5jdGlvbkNhbGxTdHJpbmcoJGZ1bmN0aW9uLCAk
cGFyYW1JbmRleCwgIiAgICAiIHggMiwgJGludGVyZmFjZU5hbWUsICRmb3JNYWluV29ybGRTdWZm
aXgsICVyZXBsYWNlbWVudHMpOwogICAgICAgICAgICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49
ICRmdW5jdGlvbkNhbGw7CiAgICAgICAgICAgICAkcGFyYW1ldGVyQ2hlY2tTdHJpbmcgLj0gIiAg
ICB9XG4iOwogICAgICAgICB9CkBAIC0yMDYxLDcgKzIwNjUsNyBAQCBFTkQKIAogICAgICMgRklY
TUU6IEN1cnJlbnRseSBbQ29uc3RydWN0b3IoLi4uKV0gZG9lcyBub3QgeWV0IHN1cHBvcnQgW09w
dGlvbmFsXSBhcmd1bWVudHMuCiAgICAgIyBJdCBqdXN0IHN1cHBvcnRzIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIG9yIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXS4KLSAgICBt
eSAoJHBhcmFtZXRlckNoZWNrU3RyaW5nLCAkcGFyYW1JbmRleCwgJXJlcGxhY2VtZW50cykgPSBH
ZW5lcmF0ZVBhcmFtZXRlcnNDaGVjaygkZnVuY3Rpb24sICRpbnRlcmZhY2VOYW1lKTsKKyAgICBt
eSAoJHBhcmFtZXRlckNoZWNrU3RyaW5nLCAkcGFyYW1JbmRleCwgJXJlcGxhY2VtZW50cykgPSBH
ZW5lcmF0ZVBhcmFtZXRlcnNDaGVjaygkZnVuY3Rpb24sICRpbnRlcmZhY2VOYW1lLCAiIik7CiAg
ICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICRwYXJhbWV0ZXJDaGVja1N0cmluZyk7CiAK
ICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxXaXRoIn0gJiYg
JGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxXaXRoIn0gZXEgIlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQiKSB7CkBAIC0yNTY3LDcgKzI1NzEsMTUgQEAgRU5ECiAKICAgICBteSAk
Y29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0
cmluZygkZnVuY3Rpb24tPnNpZ25hdHVyZSk7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYg
JHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKLSAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAke2NvbmRpdGlvbmFsfSR0ZW1wbGF0ZS0+U2V0KHY4OjpTdHJp
bmc6Ok5ld1N5bWJvbChcIiRuYW1lXCIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KCR7aW50
ZXJmYWNlTmFtZX1WOEludGVybmFsOjoke25hbWV9TWV0aG9kQ2FsbGJhY2ssIHY4VW5kZWZpbmVk
KCksICR7c2lnbmF0dXJlfSkkcHJvcGVydHlfYXR0cmlidXRlcyk7XG4iKTsKKyAgICBpZiAoJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOFBlcldvcmxkQmluZGlu
Z3MifSkgeworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoY3VycmVudFdvcmxk
VHlwZSA9PSBNYWluV29ybGQpIHtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAgICAgJHtjb25kaXRpb25hbH0kdGVtcGxhdGUtPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2wo
XCIkbmFtZVwiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldygke2ludGVyZmFjZU5hbWV9VjhJ
bnRlcm5hbDo6JHtuYW1lfU1ldGhvZENhbGxiYWNrRm9yTWFpbldvcmxkLCB2OFVuZGVmaW5lZCgp
LCAke3NpZ25hdHVyZX0pJHByb3BlcnR5X2F0dHJpYnV0ZXMpO1xuIik7CisgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIH0gZWxzZSB7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgICR7Y29uZGl0aW9uYWx9JHRlbXBsYXRlLT5TZXQodjg6OlN0cmluZzo6TmV3
U3ltYm9sKFwiJG5hbWVcIiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoJHtpbnRlcmZhY2VO
YW1lfVY4SW50ZXJuYWw6OiR7bmFtZX1NZXRob2RDYWxsYmFjaywgdjhVbmRlZmluZWQoKSwgJHtz
aWduYXR1cmV9KSRwcm9wZXJ0eV9hdHRyaWJ1dGVzKTtcbiIpOworICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICB9XG4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAke2NvbmRpdGlvbmFsfSR0ZW1wbGF0ZS0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5
bWJvbChcIiRuYW1lXCIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KCR7aW50ZXJmYWNlTmFt
ZX1WOEludGVybmFsOjoke25hbWV9TWV0aG9kQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksICR7c2ln
bmF0dXJlfSkkcHJvcGVydHlfYXR0cmlidXRlcyk7XG4iKTsKKyAgICB9CiAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIjZW5kaWYgLy8gJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRp
b25hbFN0cmluZzsKIH0KIApAQCAtMjkxMiwxMiArMjkyNCwyMiBAQCBFTkQKICAgICBteSAkbmVl
ZHNEb21haW5TYWZlRnVuY3Rpb25TZXR0ZXIgPSAwOwogICAgICMgR2VuZXJhdGUgbWV0aG9kcyBm
b3IgZnVuY3Rpb25zLgogICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2UtPmZ1
bmN0aW9uc30pIHsKLSAgICAgICAgR2VuZXJhdGVGdW5jdGlvbigkZnVuY3Rpb24sICRpbnRlcmZh
Y2UpOworICAgICAgICBHZW5lcmF0ZUZ1bmN0aW9uKCRmdW5jdGlvbiwgJGludGVyZmFjZSwgIiIp
OworICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJWOFBlcldvcmxkQmluZGluZ3MifSkgeworICAgICAgICAgICAgR2VuZXJhdGVGdW5jdGlvbigk
ZnVuY3Rpb24sICRpbnRlcmZhY2UsICJGb3JNYWluV29ybGQiKTsKKyAgICAgICAgfQorCiAgICAg
ICAgIGlmICgkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSA9PSBAeyRmdW5jdGlvbi0+e292ZXJs
b2Fkc319KSB7CiAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gPiAx
KSB7Ci0gICAgICAgICAgICAgICAgR2VuZXJhdGVPdmVybG9hZGVkRnVuY3Rpb24oJGZ1bmN0aW9u
LCAkaW50ZXJmYWNlKTsKKyAgICAgICAgICAgICAgICBHZW5lcmF0ZU92ZXJsb2FkZWRGdW5jdGlv
bigkZnVuY3Rpb24sICRpbnRlcmZhY2UsICIiKTsKKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOFBlcldvcmxkQmluZGluZ3Mi
fSkgeworICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZU92ZXJsb2FkZWRGdW5jdGlvbigkZnVu
Y3Rpb24sICRpbnRlcmZhY2UsICJGb3JNYWluV29ybGQiKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbGJhY2soJGZ1bmN0
aW9uLCAkaW50ZXJmYWNlLCAiIik7CisgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOFBlcldvcmxkQmluZGluZ3MifSkgeworICAgICAg
ICAgICAgICAgIEdlbmVyYXRlRnVuY3Rpb25DYWxsYmFjaygkZnVuY3Rpb24sICRpbnRlcmZhY2Us
ICJGb3JNYWluV29ybGQiKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEdlbmVyYXRlRnVu
Y3Rpb25DYWxsYmFjaygkZnVuY3Rpb24sICRpbnRlcmZhY2UpOwogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIGVxICJpdGVtIikgewpAQCAtMzAwNSwx
MCArMzAyNywxNCBAQCBFTkQKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAic3RhdGlj
IGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZE1ldGhvZCAke3Y4SW50ZXJmYWNlTmFt
ZX1NZXRob2RzW10gPSB7XG4iKTsKICAgICAgICAgfQogICAgICAgICBteSAkbmFtZSA9ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5uYW1lOworICAgICAgICBteSAkbWV0aG9kRm9yTWFpbldvcmxkID0g
IjAiOworICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJWOFBlcldvcmxkQmluZGluZ3MifSkgeworICAgICAgICAgICAgJG1ldGhvZEZvck1haW5X
b3JsZCA9ICIke2ludGVyZmFjZU5hbWV9VjhJbnRlcm5hbDo6JHtuYW1lfU1ldGhvZENhbGxiYWNr
Rm9yTWFpbldvcmxkIjsKKyAgICAgICAgfQogICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcg
PSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkZnVuY3Rpb24tPnNp
Z25hdHVyZSk7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7Y29uZGl0aW9uYWxT
dHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCA8PEVORCk7Ci0gICAgeyIkbmFtZSIsICR7aW50ZXJmYWNlTmFtZX1WOEludGVybmFsOjok
e25hbWV9TWV0aG9kQ2FsbGJhY2t9LAorICAgIHsiJG5hbWUiLCAke2ludGVyZmFjZU5hbWV9VjhJ
bnRlcm5hbDo6JHtuYW1lfU1ldGhvZENhbGxiYWNrLCAke21ldGhvZEZvck1haW5Xb3JsZH19LAog
RU5ECiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9u
YWxTdHJpbmc7CiAgICAgICAgICRudW1fY2FsbGJhY2tzKys7CkBAIC0zODQ4LDYgKzM4NzQsNyBA
QCBzdWIgR2VuZXJhdGVGdW5jdGlvbkNhbGxTdHJpbmcKICAgICBteSAkbnVtYmVyT2ZQYXJhbWV0
ZXJzID0gc2hpZnQ7CiAgICAgbXkgJGluZGVudCA9IHNoaWZ0OwogICAgIG15ICRpbnRlcmZhY2VO
YW1lID0gc2hpZnQ7CisgICAgbXkgJGZvck1haW5Xb3JsZFN1ZmZpeCA9IHNoaWZ0OwogICAgIG15
ICVyZXBsYWNlbWVudHMgPSBAXzsKIAogICAgIG15ICRuYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPm5hbWU7CkBAIC0zOTUwLDkgKzM5NzcsOSBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbkNhbGxT
dHJpbmcKICAgICAgICAgbXkgJHN2Z05hdGl2ZVR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZH
VHlwZU5lZWRpbmdUZWFyT2ZmKCRyZXR1cm5UeXBlKTsKICAgICAgICAgIyBGSVhNRTogVXBkYXRl
IGZvciBhbGwgU2NyaXB0V3JhcHBhYmxlcy4KICAgICAgICAgaWYgKElzRE9NTm9kZVR5cGUoJGlu
dGVyZmFjZU5hbWUpKSB7Ci0gICAgICAgICAgICAkcmVzdWx0IC49ICRpbmRlbnQgLiAicmV0dXJu
IHRvVjhGYXN0KFdURjo6Z2V0UHRyKCR7c3ZnTmF0aXZlVHlwZX06OmNyZWF0ZSgkcmV0dXJuKSks
IGFyZ3MsIGltcCk7XG4iOworICAgICAgICAgICAgJHJlc3VsdCAuPSAkaW5kZW50IC4gInJldHVy
biB0b1Y4RmFzdCR7Zm9yTWFpbldvcmxkU3VmZml4fShXVEY6OmdldFB0cigke3N2Z05hdGl2ZVR5
cGV9OjpjcmVhdGUoJHJldHVybikpLCBhcmdzLCBpbXApO1xuIjsKICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICRyZXN1bHQgLj0gJGluZGVudCAuICJyZXR1cm4gdG9WOChXVEY6OmdldFB0
cigke3N2Z05hdGl2ZVR5cGV9OjpjcmVhdGUoJHJldHVybikpLCBhcmdzLkhvbGRlcigpLCBhcmdz
LkdldElzb2xhdGUoKSk7XG4iOworICAgICAgICAgICAgJHJlc3VsdCAuPSAkaW5kZW50IC4gInJl
dHVybiB0b1Y4JHtmb3JNYWluV29ybGRTdWZmaXh9KFdURjo6Z2V0UHRyKCR7c3ZnTmF0aXZlVHlw
ZX06OmNyZWF0ZSgkcmV0dXJuKSksIGFyZ3MuSG9sZGVyKCksIGFyZ3MuR2V0SXNvbGF0ZSgpKTtc
biI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICAgfQpAQCAtMzk2Nyw5
ICszOTk0LDkgQEAgc3ViIEdlbmVyYXRlRnVuY3Rpb25DYWxsU3RyaW5nCiAgICAgbXkgJG5hdGl2
ZVZhbHVlOwogICAgICMgRklYTUU6IFVwZGF0ZSBmb3IgYWxsIFNjcmlwdFdyYXBwYWJsZXMuCiAg
ICAgaWYgKElzRE9NTm9kZVR5cGUoJGludGVyZmFjZU5hbWUpKSB7Ci0gICAgICAgICRuYXRpdmVW
YWx1ZSA9IE5hdGl2ZVRvSlNWYWx1ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZSwgJHJldHVybiwgImFy
Z3MuSG9sZGVyKCkiLCAiYXJncy5HZXRJc29sYXRlKCkiLCAiYXJncyIsICJpbXAiLCAiUmV0dXJu
VW5zYWZlSGFuZGxlIiwgIiIpOworICAgICAgICAkbmF0aXZlVmFsdWUgPSBOYXRpdmVUb0pTVmFs
dWUoJGZ1bmN0aW9uLT5zaWduYXR1cmUsICRyZXR1cm4sICJhcmdzLkhvbGRlcigpIiwgImFyZ3Mu
R2V0SXNvbGF0ZSgpIiwgImFyZ3MiLCAiaW1wIiwgIlJldHVyblVuc2FmZUhhbmRsZSIsICRmb3JN
YWluV29ybGRTdWZmaXgpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgICRuYXRpdmVWYWx1ZSA9IE5h
dGl2ZVRvSlNWYWx1ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZSwgJHJldHVybiwgImFyZ3MuSG9sZGVy
KCkiLCAiYXJncy5HZXRJc29sYXRlKCkiLCAwLCAwLCAiUmV0dXJuVW5zYWZlSGFuZGxlIiwgIiIp
OworICAgICAgICAkbmF0aXZlVmFsdWUgPSBOYXRpdmVUb0pTVmFsdWUoJGZ1bmN0aW9uLT5zaWdu
YXR1cmUsICRyZXR1cm4sICJhcmdzLkhvbGRlcigpIiwgImFyZ3MuR2V0SXNvbGF0ZSgpIiwgMCwg
MCwgIlJldHVyblVuc2FmZUhhbmRsZSIsICRmb3JNYWluV29ybGRTdWZmaXgpOwogICAgIH0KIAog
ICAgICRyZXN1bHQgLj0gJGluZGVudCAuICJyZXR1cm4gIiAuICRuYXRpdmVWYWx1ZSAuICI7XG4i
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
RmxvYXQ2NEFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOEZsb2F0NjRBcnJheS5jcHAKaW5kZXggYWEwMmY5MDY5NjdlMmM2YjIwMDAzNzgxODgwNTQ0
Y2YzNTVhOGQwNS4uMDRjN2FhNmI1YTdkMzY2ZTY2MTA3NmIzZjE1YWU5NTM0YWZiZTY0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2
NEFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhGbG9hdDY0QXJyYXkuY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiB3cmFwKEZsb2F0NjRBcnJheSogaW1wbCwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVh
dGlvbkMKIH0KIAogc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZE1ldGhv
ZCBWOEZsb2F0NjRBcnJheU1ldGhvZHNbXSA9IHsKLSAgICB7InNldCIsIEZsb2F0NjRBcnJheVY4
SW50ZXJuYWw6OnNldE1ldGhvZENhbGxiYWNrfSwKKyAgICB7InNldCIsIEZsb2F0NjRBcnJheVY4
SW50ZXJuYWw6OnNldE1ldGhvZENhbGxiYWNrLCAwfSwKIH07CiAKIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBWOEZsb2F0NjRBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKaW5kZXggNDQ3
ZGZhZmE4ODU1ZGI0Njc1ODllZDEwOGIwYjA0NGU2YzFkMTNhMy4uZTk5ZWRhNjUwYTdiNzUzMzhl
MDA0ZDUzYjA1N2JjZjZmNDQ2MWViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIuY3BwCkBAIC04OCw3ICs4OCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYW5v
dGhlckZ1bmN0aW9uTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYKIH0gLy8gbmFt
ZXNwYWNlIFRlc3RDdXN0b21OYW1lZEdldHRlclY4SW50ZXJuYWwKIAogc3RhdGljIGNvbnN0IFY4
RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZE1ldGhvZCBWOFRlc3RDdXN0b21OYW1lZEdldHRlck1l
dGhvZHNbXSA9IHsKLSAgICB7ImFub3RoZXJGdW5jdGlvbiIsIFRlc3RDdXN0b21OYW1lZEdldHRl
clY4SW50ZXJuYWw6OmFub3RoZXJGdW5jdGlvbk1ldGhvZENhbGxiYWNrfSwKKyAgICB7ImFub3Ro
ZXJGdW5jdGlvbiIsIFRlc3RDdXN0b21OYW1lZEdldHRlclY4SW50ZXJuYWw6OmFub3RoZXJGdW5j
dGlvbk1ldGhvZENhbGxiYWNrLCAwfSwKIH07CiAKIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6
RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJUZW1wbGF0
ZSh2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZGVzYywgdjg6Oklzb2xhdGUq
IGlzb2xhdGUsIFdyYXBwZXJXb3JsZFR5cGUgY3VycmVudFdvcmxkVHlwZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdl
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZl
bnRUYXJnZXQuY3BwCmluZGV4IDBjOGVhMWFlOGZlYzU1ZjQyZDU5YWY5OTMwMTQyNGVjOGRmN2Zi
MGMuLjZjNzU5MTU0MThmNzRmMzc4MjY0NjYyMWZhMzk5OTc3NWU5ZGE1YmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdl
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEV2ZW50VGFyZ2V0LmNwcApAQCAtMTU0LDkgKzE1NCw5IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gZGlzcGF0Y2hFdmVudE1ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyCiB9IC8vIG5hbWVzcGFjZSBUZXN0RXZlbnRUYXJnZXRWOEludGVybmFsCiAKIHN0YXRpYyBj
b25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRNZXRob2QgVjhUZXN0RXZlbnRUYXJnZXRN
ZXRob2RzW10gPSB7Ci0gICAgeyJpdGVtIiwgVGVzdEV2ZW50VGFyZ2V0VjhJbnRlcm5hbDo6aXRl
bU1ldGhvZENhbGxiYWNrfSwKLSAgICB7ImFkZEV2ZW50TGlzdGVuZXIiLCBUZXN0RXZlbnRUYXJn
ZXRWOEludGVybmFsOjphZGRFdmVudExpc3RlbmVyTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsicmVt
b3ZlRXZlbnRMaXN0ZW5lciIsIFRlc3RFdmVudFRhcmdldFY4SW50ZXJuYWw6OnJlbW92ZUV2ZW50
TGlzdGVuZXJNZXRob2RDYWxsYmFja30sCisgICAgeyJpdGVtIiwgVGVzdEV2ZW50VGFyZ2V0VjhJ
bnRlcm5hbDo6aXRlbU1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7ImFkZEV2ZW50TGlzdGVuZXIi
LCBUZXN0RXZlbnRUYXJnZXRWOEludGVybmFsOjphZGRFdmVudExpc3RlbmVyTWV0aG9kQ2FsbGJh
Y2ssIDB9LAorICAgIHsicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIFRlc3RFdmVudFRhcmdldFY4SW50
ZXJuYWw6OnJlbW92ZUV2ZW50TGlzdGVuZXJNZXRob2RDYWxsYmFjaywgMH0sCiB9OwogCiBzdGF0
aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdEV2
ZW50VGFyZ2V0VGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRl
c2MsIHY4OjpJc29sYXRlKiBpc29sYXRlLCBXcmFwcGVyV29ybGRUeXBlIGN1cnJlbnRXb3JsZFR5
cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCmluZGV4IDdkYWU1OGE3MTY5ZjFjNDEwYjNiZjgzNmIz
ODJhYTcxZmQ5MjY1YzUuLjM3NjRkZjhjMmYxMDhmNzA1NzNhYzkzMTBlZmZkYTZlOGM3MzIzM2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCkBAIC0zODMsMTAgKzM4MywxMCBAQCBzdGF0aWMgY29u
c3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVkQXR0cmlidXRlIFY4VGVzdEludGVyZmFjZUF0
dHJzW10gPSB7CiAKIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRNZXRo
b2QgVjhUZXN0SW50ZXJmYWNlTWV0aG9kc1tdID0gewogI2lmIEVOQUJMRShDb25kaXRpb24xMSkg
fHwgRU5BQkxFKENvbmRpdGlvbjEyKQotICAgIHsic3VwcGxlbWVudGFsTWV0aG9kMSIsIFRlc3RJ
bnRlcmZhY2VWOEludGVybmFsOjpzdXBwbGVtZW50YWxNZXRob2QxTWV0aG9kQ2FsbGJhY2t9LAor
ICAgIHsic3VwcGxlbWVudGFsTWV0aG9kMSIsIFRlc3RJbnRlcmZhY2VWOEludGVybmFsOjpzdXBw
bGVtZW50YWxNZXRob2QxTWV0aG9kQ2FsbGJhY2ssIDB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENv
bmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgeyJzdXBwbGVtZW50YWxNZXRo
b2QzIiwgVGVzdEludGVyZmFjZVY4SW50ZXJuYWw6OnN1cHBsZW1lbnRhbE1ldGhvZDNNZXRob2RD
YWxsYmFja30sCisgICAgeyJzdXBwbGVtZW50YWxNZXRob2QzIiwgVGVzdEludGVyZmFjZVY4SW50
ZXJuYWw6OnN1cHBsZW1lbnRhbE1ldGhvZDNNZXRob2RDYWxsYmFjaywgMH0sCiAjZW5kaWYKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAppbmRleCBi
MWZmMjNjYzQ4ZTBiNGEzOTkyMjhjYjAxMGY0ZDZhYzllYTg5ODViLi41MDYyMDE3OWQ3YmNmMTJm
ZjQ3NzE5N2ZkOWEwMWQ1MzMxNThmYzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuY3BwCkBAIC04OSw3ICs4OSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gbWV0aG9kTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
IH0gLy8gbmFtZXNwYWNlIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVjhJbnRlcm5hbAogCiBz
dGF0aWMgY29uc3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVkTWV0aG9kIFY4VGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXJNZXRob2RzW10gPSB7Ci0gICAgeyJtZXRob2QiLCBUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lclY4SW50ZXJuYWw6Om1ldGhvZE1ldGhvZENhbGxiYWNrfSwKKyAgICB7
Im1ldGhvZCIsIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVjhJbnRlcm5hbDo6bWV0aG9kTWV0
aG9kQ2FsbGJhY2ssIDB9LAogfTsKIAogc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlv
blRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVGVtcGxhdGUo
djg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2MsIHY4OjpJc29sYXRlKiBp
c29sYXRlLCBXcmFwcGVyV29ybGRUeXBlIGN1cnJlbnRXb3JsZFR5cGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4
IGFmN2ExMDJiNWFiZWRlMzA5MjI1YWFhOTFiN2E1YWE0MTBiYzk3NWYuLjk5ODZmZWU4MmRiZWVl
Mzg5NWMwMGFkMmMwMWEyNzhhMzgyNDY4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC0zMjUxLDU3ICszMjUx
LDU3IEBAIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRBdHRyaWJ1dGUg
VjhUZXN0T2JqQXR0cnNbXSA9IHsKIH07CiAKIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRp
b246OkJhdGNoZWRNZXRob2QgVjhUZXN0T2JqTWV0aG9kc1tdID0gewotICAgIHsidm9pZE1ldGhv
ZCIsIFRlc3RPYmpWOEludGVybmFsOjp2b2lkTWV0aG9kTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsi
bG9uZ01ldGhvZCIsIFRlc3RPYmpWOEludGVybmFsOjpsb25nTWV0aG9kTWV0aG9kQ2FsbGJhY2t9
LAotICAgIHsib2JqTWV0aG9kIiwgVGVzdE9ialY4SW50ZXJuYWw6Om9iak1ldGhvZE1ldGhvZENh
bGxiYWNrfSwKLSAgICB7Im1ldGhvZFJldHVybmluZ1NlcXVlbmNlIiwgVGVzdE9ialY4SW50ZXJu
YWw6Om1ldGhvZFJldHVybmluZ1NlcXVlbmNlTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsic2VyaWFs
aXplZFZhbHVlIiwgVGVzdE9ialY4SW50ZXJuYWw6OnNlcmlhbGl6ZWRWYWx1ZU1ldGhvZENhbGxi
YWNrfSwKLSAgICB7Im9wdGlvbnNPYmplY3QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6b3B0aW9uc09i
amVjdE1ldGhvZENhbGxiYWNrfSwKLSAgICB7Im1ldGhvZFdpdGhFeGNlcHRpb24iLCBUZXN0T2Jq
VjhJbnRlcm5hbDo6bWV0aG9kV2l0aEV4Y2VwdGlvbk1ldGhvZENhbGxiYWNrfSwKLSAgICB7ImN1
c3RvbU1ldGhvZCIsIFRlc3RPYmpWOEludGVybmFsOjpjdXN0b21NZXRob2RNZXRob2RDYWxsYmFj
a30sCi0gICAgeyJjdXN0b21NZXRob2RXaXRoQXJncyIsIFRlc3RPYmpWOEludGVybmFsOjpjdXN0
b21NZXRob2RXaXRoQXJnc01ldGhvZENhbGxiYWNrfSwKLSAgICB7ImFkZEV2ZW50TGlzdGVuZXIi
LCBUZXN0T2JqVjhJbnRlcm5hbDo6YWRkRXZlbnRMaXN0ZW5lck1ldGhvZENhbGxiYWNrfSwKLSAg
ICB7InJlbW92ZUV2ZW50TGlzdGVuZXIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6cmVtb3ZlRXZlbnRM
aXN0ZW5lck1ldGhvZENhbGxiYWNrfSwKLSAgICB7IndpdGhTY3JpcHRTdGF0ZVZvaWQiLCBUZXN0
T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdFN0YXRlVm9pZE1ldGhvZENhbGxiYWNrfSwKLSAgICB7
IndpdGhTY3JpcHRTdGF0ZU9iaiIsIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0U3RhdGVP
YmpNZXRob2RDYWxsYmFja30sCi0gICAgeyJ3aXRoU2NyaXB0U3RhdGVWb2lkRXhjZXB0aW9uIiwg
VGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRTdGF0ZVZvaWRFeGNlcHRpb25NZXRob2RDYWxs
YmFja30sCi0gICAgeyJ3aXRoU2NyaXB0U3RhdGVPYmpFeGNlcHRpb24iLCBUZXN0T2JqVjhJbnRl
cm5hbDo6d2l0aFNjcmlwdFN0YXRlT2JqRXhjZXB0aW9uTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsi
d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQiLCBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRNZXRob2RDYWxsYmFja30sCi0gICAgeyJ3aXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlIiwgVGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVNZXRob2RDYWxsYmFja30sCi0gICAgeyJ3aXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlT2JqRXhjZXB0aW9uIiwgVGVzdE9i
alY4SW50ZXJuYWw6OndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVPYmpF
eGNlcHRpb25NZXRob2RDYWxsYmFja30sCi0gICAgeyJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlcyIsIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc01ldGhvZENhbGxiYWNrfSwK
LSAgICB7IndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2siLCBUZXN0T2JqVjhJbnRlcm5h
bDo6d2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja01ldGhvZENhbGxiYWNrfSwKLSAgICB7
Im1ldGhvZFdpdGhPcHRpb25hbEFyZyIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoT3B0
aW9uYWxBcmdNZXRob2RDYWxsYmFja30sCi0gICAgeyJtZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdB
bmRPcHRpb25hbEFyZyIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoTm9uT3B0aW9uYWxB
cmdBbmRPcHRpb25hbEFyZ01ldGhvZENhbGxiYWNrfSwKLSAgICB7Im1ldGhvZFdpdGhOb25PcHRp
b25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRo
Tm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3NNZXRob2RDYWxsYmFja30sCi0gICAgeyJt
ZXRob2RXaXRoT3B0aW9uYWxTdHJpbmciLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aE9w
dGlvbmFsU3RyaW5nTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsibWV0aG9kV2l0aE9wdGlvbmFsU3Ry
aW5nSXNVbmRlZmluZWQiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aE9wdGlvbmFsU3Ry
aW5nSXNVbmRlZmluZWRNZXRob2RDYWxsYmFja30sCi0gICAgeyJtZXRob2RXaXRoT3B0aW9uYWxT
dHJpbmdJc051bGxTdHJpbmciLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aE9wdGlvbmFs
U3RyaW5nSXNOdWxsU3RyaW5nTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsibWV0aG9kV2l0aENhbGxi
YWNrQXJnIiwgVGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhDYWxsYmFja0FyZ01ldGhvZENh
bGxiYWNrfSwKLSAgICB7Im1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnIiwg
VGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJn
TWV0aG9kQ2FsbGJhY2t9LAotICAgIHsibWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmci
LCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmdNZXRo
b2RDYWxsYmFja30sCi0gICAgeyJtZXRob2RXaXRoRW5mb3JjZVJhbmdlSW50MzIiLCBUZXN0T2Jq
VjhJbnRlcm5hbDo6bWV0aG9kV2l0aEVuZm9yY2VSYW5nZUludDMyTWV0aG9kQ2FsbGJhY2t9LAot
ICAgIHsibWV0aG9kV2l0aEVuZm9yY2VSYW5nZVVJbnQzMiIsIFRlc3RPYmpWOEludGVybmFsOjpt
ZXRob2RXaXRoRW5mb3JjZVJhbmdlVUludDMyTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsibWV0aG9k
V2l0aEVuZm9yY2VSYW5nZUludDY0IiwgVGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhFbmZv
cmNlUmFuZ2VJbnQ2NE1ldGhvZENhbGxiYWNrfSwKLSAgICB7Im1ldGhvZFdpdGhFbmZvcmNlUmFu
Z2VVSW50NjQiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aEVuZm9yY2VSYW5nZVVJbnQ2
NE1ldGhvZENhbGxiYWNrfSwKKyAgICB7InZvaWRNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6
dm9pZE1ldGhvZE1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7ImxvbmdNZXRob2QiLCBUZXN0T2Jq
VjhJbnRlcm5hbDo6bG9uZ01ldGhvZE1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7Im9iak1ldGhv
ZCIsIFRlc3RPYmpWOEludGVybmFsOjpvYmpNZXRob2RNZXRob2RDYWxsYmFjaywgMH0sCisgICAg
eyJtZXRob2RSZXR1cm5pbmdTZXF1ZW5jZSIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RSZXR1
cm5pbmdTZXF1ZW5jZU1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7InNlcmlhbGl6ZWRWYWx1ZSIs
IFRlc3RPYmpWOEludGVybmFsOjpzZXJpYWxpemVkVmFsdWVNZXRob2RDYWxsYmFjaywgMH0sCisg
ICAgeyJvcHRpb25zT2JqZWN0IiwgVGVzdE9ialY4SW50ZXJuYWw6Om9wdGlvbnNPYmplY3RNZXRo
b2RDYWxsYmFjaywgMH0sCisgICAgeyJtZXRob2RXaXRoRXhjZXB0aW9uIiwgVGVzdE9ialY4SW50
ZXJuYWw6Om1ldGhvZFdpdGhFeGNlcHRpb25NZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJjdXN0
b21NZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6Y3VzdG9tTWV0aG9kTWV0aG9kQ2FsbGJhY2ss
IDB9LAorICAgIHsiY3VzdG9tTWV0aG9kV2l0aEFyZ3MiLCBUZXN0T2JqVjhJbnRlcm5hbDo6Y3Vz
dG9tTWV0aG9kV2l0aEFyZ3NNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJhZGRFdmVudExpc3Rl
bmVyIiwgVGVzdE9ialY4SW50ZXJuYWw6OmFkZEV2ZW50TGlzdGVuZXJNZXRob2RDYWxsYmFjaywg
MH0sCisgICAgeyJyZW1vdmVFdmVudExpc3RlbmVyIiwgVGVzdE9ialY4SW50ZXJuYWw6OnJlbW92
ZUV2ZW50TGlzdGVuZXJNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJ3aXRoU2NyaXB0U3RhdGVW
b2lkIiwgVGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRTdGF0ZVZvaWRNZXRob2RDYWxsYmFj
aywgMH0sCisgICAgeyJ3aXRoU2NyaXB0U3RhdGVPYmoiLCBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0
aFNjcmlwdFN0YXRlT2JqTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsid2l0aFNjcmlwdFN0YXRl
Vm9pZEV4Y2VwdGlvbiIsIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0U3RhdGVWb2lkRXhj
ZXB0aW9uTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsid2l0aFNjcmlwdFN0YXRlT2JqRXhjZXB0
aW9uIiwgVGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRTdGF0ZU9iakV4Y2VwdGlvbk1ldGhv
ZENhbGxiYWNrLCAwfSwKKyAgICB7IndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0IiwgVGVzdE9i
alY4SW50ZXJuYWw6OndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0TWV0aG9kQ2FsbGJhY2ssIDB9
LAorICAgIHsid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZSIsIFRlc3RP
YmpWOEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlTWV0
aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3Jp
cHRTdGF0ZU9iakV4Y2VwdGlvbiIsIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlT2JqRXhjZXB0aW9uTWV0aG9kQ2FsbGJhY2ssIDB9LAor
ICAgIHsid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXMi
LCBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRT
dGF0ZVdpdGhTcGFjZXNNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJ3aXRoU2NyaXB0QXJndW1l
bnRzQW5kQ2FsbFN0YWNrIiwgVGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRBcmd1bWVudHNB
bmRDYWxsU3RhY2tNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJtZXRob2RXaXRoT3B0aW9uYWxB
cmciLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aE9wdGlvbmFsQXJnTWV0aG9kQ2FsbGJh
Y2ssIDB9LAorICAgIHsibWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmciLCBU
ZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmdN
ZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJtZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29P
cHRpb25hbEFyZ3MiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJn
QW5kVHdvT3B0aW9uYWxBcmdzTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsibWV0aG9kV2l0aE9w
dGlvbmFsU3RyaW5nIiwgVGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhPcHRpb25hbFN0cmlu
Z01ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7Im1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzVW5k
ZWZpbmVkIiwgVGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzVW5k
ZWZpbmVkTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsibWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5n
SXNOdWxsU3RyaW5nIiwgVGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhPcHRpb25hbFN0cmlu
Z0lzTnVsbFN0cmluZ01ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7Im1ldGhvZFdpdGhDYWxsYmFj
a0FyZyIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoQ2FsbGJhY2tBcmdNZXRob2RDYWxs
YmFjaywgMH0sCisgICAgeyJtZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0FyZyIs
IFRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0Fy
Z01ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7Im1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFs
QXJnIiwgVGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJn
TWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsibWV0aG9kV2l0aEVuZm9yY2VSYW5nZUludDMyIiwg
VGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhFbmZvcmNlUmFuZ2VJbnQzMk1ldGhvZENhbGxi
YWNrLCAwfSwKKyAgICB7Im1ldGhvZFdpdGhFbmZvcmNlUmFuZ2VVSW50MzIiLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6bWV0aG9kV2l0aEVuZm9yY2VSYW5nZVVJbnQzMk1ldGhvZENhbGxiYWNrLCAwfSwK
KyAgICB7Im1ldGhvZFdpdGhFbmZvcmNlUmFuZ2VJbnQ2NCIsIFRlc3RPYmpWOEludGVybmFsOjpt
ZXRob2RXaXRoRW5mb3JjZVJhbmdlSW50NjRNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJtZXRo
b2RXaXRoRW5mb3JjZVJhbmdlVUludDY0IiwgVGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhF
bmZvcmNlUmFuZ2VVSW50NjRNZXRob2RDYWxsYmFjaywgMH0sCiAjaWYgRU5BQkxFKENvbmRpdGlv
bjEpCi0gICAgeyJjb25kaXRpb25hbE1ldGhvZDEiLCBUZXN0T2JqVjhJbnRlcm5hbDo6Y29uZGl0
aW9uYWxNZXRob2QxTWV0aG9kQ2FsbGJhY2t9LAorICAgIHsiY29uZGl0aW9uYWxNZXRob2QxIiwg
VGVzdE9ialY4SW50ZXJuYWw6OmNvbmRpdGlvbmFsTWV0aG9kMU1ldGhvZENhbGxiYWNrLCAwfSwK
ICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikKLSAg
ICB7ImNvbmRpdGlvbmFsTWV0aG9kMiIsIFRlc3RPYmpWOEludGVybmFsOjpjb25kaXRpb25hbE1l
dGhvZDJNZXRob2RDYWxsYmFja30sCisgICAgeyJjb25kaXRpb25hbE1ldGhvZDIiLCBUZXN0T2Jq
VjhJbnRlcm5hbDo6Y29uZGl0aW9uYWxNZXRob2QyTWV0aG9kQ2FsbGJhY2ssIDB9LAogI2VuZGlm
CiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQotICAgIHsiY29u
ZGl0aW9uYWxNZXRob2QzIiwgVGVzdE9ialY4SW50ZXJuYWw6OmNvbmRpdGlvbmFsTWV0aG9kM01l
dGhvZENhbGxiYWNrfSwKKyAgICB7ImNvbmRpdGlvbmFsTWV0aG9kMyIsIFRlc3RPYmpWOEludGVy
bmFsOjpjb25kaXRpb25hbE1ldGhvZDNNZXRob2RDYWxsYmFjaywgMH0sCiAjZW5kaWYKLSAgICB7
Im92ZXJsb2FkZWRNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6b3ZlcmxvYWRlZE1ldGhvZE1l
dGhvZENhbGxiYWNrfSwKLSAgICB7ImNsYXNzTWV0aG9kV2l0aENsYW1wIiwgVGVzdE9ialY4SW50
ZXJuYWw6OmNsYXNzTWV0aG9kV2l0aENsYW1wTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsiZ2V0U1ZH
RG9jdW1lbnQiLCBUZXN0T2JqVjhJbnRlcm5hbDo6Z2V0U1ZHRG9jdW1lbnRNZXRob2RDYWxsYmFj
a30sCi0gICAgeyJtdXRhYmxlUG9pbnRGdW5jdGlvbiIsIFRlc3RPYmpWOEludGVybmFsOjptdXRh
YmxlUG9pbnRGdW5jdGlvbk1ldGhvZENhbGxiYWNrfSwKLSAgICB7ImltbXV0YWJsZVBvaW50RnVu
Y3Rpb24iLCBUZXN0T2JqVjhJbnRlcm5hbDo6aW1tdXRhYmxlUG9pbnRGdW5jdGlvbk1ldGhvZENh
bGxiYWNrfSwKLSAgICB7Im9yYW5nZSIsIFRlc3RPYmpWOEludGVybmFsOjpvcmFuZ2VNZXRob2RD
YWxsYmFja30sCi0gICAgeyJzdHJpY3RGdW5jdGlvbiIsIFRlc3RPYmpWOEludGVybmFsOjpzdHJp
Y3RGdW5jdGlvbk1ldGhvZENhbGxiYWNrfSwKLSAgICB7InZhcmlhZGljU3RyaW5nTWV0aG9kIiwg
VGVzdE9ialY4SW50ZXJuYWw6OnZhcmlhZGljU3RyaW5nTWV0aG9kTWV0aG9kQ2FsbGJhY2t9LAot
ICAgIHsidmFyaWFkaWNEb3VibGVNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6dmFyaWFkaWNE
b3VibGVNZXRob2RNZXRob2RDYWxsYmFja30sCisgICAgeyJvdmVybG9hZGVkTWV0aG9kIiwgVGVz
dE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRNZXRob2RNZXRob2RDYWxsYmFjaywgMH0sCisgICAg
eyJjbGFzc01ldGhvZFdpdGhDbGFtcCIsIFRlc3RPYmpWOEludGVybmFsOjpjbGFzc01ldGhvZFdp
dGhDbGFtcE1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7ImdldFNWR0RvY3VtZW50IiwgVGVzdE9i
alY4SW50ZXJuYWw6OmdldFNWR0RvY3VtZW50TWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsibXV0
YWJsZVBvaW50RnVuY3Rpb24iLCBUZXN0T2JqVjhJbnRlcm5hbDo6bXV0YWJsZVBvaW50RnVuY3Rp
b25NZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJpbW11dGFibGVQb2ludEZ1bmN0aW9uIiwgVGVz
dE9ialY4SW50ZXJuYWw6OmltbXV0YWJsZVBvaW50RnVuY3Rpb25NZXRob2RDYWxsYmFjaywgMH0s
CisgICAgeyJvcmFuZ2UiLCBUZXN0T2JqVjhJbnRlcm5hbDo6b3JhbmdlTWV0aG9kQ2FsbGJhY2ss
IDB9LAorICAgIHsic3RyaWN0RnVuY3Rpb24iLCBUZXN0T2JqVjhJbnRlcm5hbDo6c3RyaWN0RnVu
Y3Rpb25NZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJ2YXJpYWRpY1N0cmluZ01ldGhvZCIsIFRl
c3RPYmpWOEludGVybmFsOjp2YXJpYWRpY1N0cmluZ01ldGhvZE1ldGhvZENhbGxiYWNrLCAwfSwK
KyAgICB7InZhcmlhZGljRG91YmxlTWV0aG9kIiwgVGVzdE9ialY4SW50ZXJuYWw6OnZhcmlhZGlj
RG91YmxlTWV0aG9kTWV0aG9kQ2FsbGJhY2ssIDB9LAogfTsKIAogc3RhdGljIGNvbnN0IFY4RE9N
Q29uZmlndXJhdGlvbjo6QmF0Y2hlZENvbnN0YW50IFY4VGVzdE9iakNvbnN0c1tdID0gewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNw
cAppbmRleCAwM2QwMDgxMDkwNjYwMzMxNjEyM2IwNDM4YzIzMTM4YWRiMmEyMGY1Li4yMTMwNjc5
MWZmNTRlNzQ1ZTljNjU3NmZkNzcwYjQ4NGIzNmEyMGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcApAQCAtMjkzLDggKzI5
Myw4IEBAIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRBdHRyaWJ1dGUg
VjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50CiB9OwogCiBzdGF0aWMgY29uc3QgVjhET01D
b25maWd1cmF0aW9uOjpCYXRjaGVkTWV0aG9kIFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZU1ldGhvZHNbXSA9IHsKLSAgICB7ImFjY2VwdFRyYW5zZmVyTGlzdCIsIFRlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWOEludGVybmFsOjphY2NlcHRUcmFuc2Zlckxpc3RN
ZXRob2RDYWxsYmFja30sCi0gICAgeyJtdWx0aVRyYW5zZmVyTGlzdCIsIFRlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VWOEludGVybmFsOjptdWx0aVRyYW5zZmVyTGlzdE1ldGhvZENh
bGxiYWNrfSwKKyAgICB7ImFjY2VwdFRyYW5zZmVyTGlzdCIsIFRlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VWOEludGVybmFsOjphY2NlcHRUcmFuc2Zlckxpc3RNZXRob2RDYWxsYmFj
aywgMH0sCisgICAgeyJtdWx0aVRyYW5zZmVyTGlzdCIsIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VWOEludGVybmFsOjptdWx0aVRyYW5zZmVyTGlzdE1ldGhvZENhbGxiYWNrLCAw
fSwKIH07CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2U6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0VHlwZWRlZnMuY3BwCmluZGV4IDVmNjUwYjgwZGE0MGFmMjU2YTlmZjk1ZGZhNjRl
NDdhNWMzM2NkYTguLmFjYTllN2Y0MWQyZjFmODMxMmFhNTQxMjhhNDlkOGE1YjU4NzBlOGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RU
eXBlZGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdFR5cGVkZWZzLmNwcApAQCAtNTE0LDEyICs1MTQsMTIgQEAgc3RhdGljIGNvbnN0IFY4
RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZEF0dHJpYnV0ZSBWOFRlc3RUeXBlZGVmc0F0dHJzW10g
PSB7CiB9OwogCiBzdGF0aWMgY29uc3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVkTWV0aG9k
IFY4VGVzdFR5cGVkZWZzTWV0aG9kc1tdID0gewotICAgIHsiZnVuYyIsIFRlc3RUeXBlZGVmc1Y4
SW50ZXJuYWw6OmZ1bmNNZXRob2RDYWxsYmFja30sCi0gICAgeyJtdWx0aVRyYW5zZmVyTGlzdCIs
IFRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6Om11bHRpVHJhbnNmZXJMaXN0TWV0aG9kQ2FsbGJhY2t9
LAotICAgIHsic2V0U2hhZG93IiwgVGVzdFR5cGVkZWZzVjhJbnRlcm5hbDo6c2V0U2hhZG93TWV0
aG9kQ2FsbGJhY2t9LAotICAgIHsiZnVuY1dpdGhDbGFtcCIsIFRlc3RUeXBlZGVmc1Y4SW50ZXJu
YWw6OmZ1bmNXaXRoQ2xhbXBNZXRob2RDYWxsYmFja30sCi0gICAgeyJpbW11dGFibGVQb2ludEZ1
bmN0aW9uIiwgVGVzdFR5cGVkZWZzVjhJbnRlcm5hbDo6aW1tdXRhYmxlUG9pbnRGdW5jdGlvbk1l
dGhvZENhbGxiYWNrfSwKLSAgICB7Im1ldGhvZFdpdGhFeGNlcHRpb24iLCBUZXN0VHlwZWRlZnNW
OEludGVybmFsOjptZXRob2RXaXRoRXhjZXB0aW9uTWV0aG9kQ2FsbGJhY2t9LAorICAgIHsiZnVu
YyIsIFRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6OmZ1bmNNZXRob2RDYWxsYmFjaywgMH0sCisgICAg
eyJtdWx0aVRyYW5zZmVyTGlzdCIsIFRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6Om11bHRpVHJhbnNm
ZXJMaXN0TWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsic2V0U2hhZG93IiwgVGVzdFR5cGVkZWZz
VjhJbnRlcm5hbDo6c2V0U2hhZG93TWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsiZnVuY1dpdGhD
bGFtcCIsIFRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6OmZ1bmNXaXRoQ2xhbXBNZXRob2RDYWxsYmFj
aywgMH0sCisgICAgeyJpbW11dGFibGVQb2ludEZ1bmN0aW9uIiwgVGVzdFR5cGVkZWZzVjhJbnRl
cm5hbDo6aW1tdXRhYmxlUG9pbnRGdW5jdGlvbk1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7Im1l
dGhvZFdpdGhFeGNlcHRpb24iLCBUZXN0VHlwZWRlZnNWOEludGVybmFsOjptZXRob2RXaXRoRXhj
ZXB0aW9uTWV0aG9kQ2FsbGJhY2ssIDB9LAogfTsKIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
VGVzdFR5cGVkZWZzOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTUNvbmZpZ3Vy
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01Db25maWd1cmF0aW9u
LmNwcAppbmRleCA1NjFjYWJkODJiNGNiMzQ2MzRlMTIwMWM1OGRhZTUwZWRmZTQ5YTQwLi42NTRm
ODI1ZGY1ODMzNmU1OTVmNDE4ZWViY2VlNmU0OTU0NTU0YTEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NQ29uZmlndXJhdGlvbi5jcHAKQEAgLTQ4LDEwICs0OCwx
NCBAQCB2b2lkIFY4RE9NQ29uZmlndXJhdGlvbjo6YmF0Y2hDb25maWd1cmVDb25zdGFudHModjg6
OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZQogICAgIH0KIH0KIAotdm9pZCBWOERPTUNvbmZp
Z3VyYXRpb246OmJhdGNoQ29uZmlndXJlQ2FsbGJhY2tzKHY4OjpIYW5kbGU8djg6Ok9iamVjdFRl
bXBsYXRlPiBwcm90b3R5cGUsIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gc2lnbmF0dXJlLCB2
ODo6UHJvcGVydHlBdHRyaWJ1dGUgYXR0cmlidXRlcywgY29uc3QgQmF0Y2hlZE1ldGhvZCogY2Fs
bGJhY2tzLCBzaXplX3QgY2FsbGJhY2tDb3VudCwgdjg6Oklzb2xhdGUqKQordm9pZCBWOERPTUNv
bmZpZ3VyYXRpb246OmJhdGNoQ29uZmlndXJlQ2FsbGJhY2tzKHY4OjpIYW5kbGU8djg6Ok9iamVj
dFRlbXBsYXRlPiBwcm90b3R5cGUsIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gc2lnbmF0dXJl
LCB2ODo6UHJvcGVydHlBdHRyaWJ1dGUgYXR0cmlidXRlcywgY29uc3QgQmF0Y2hlZE1ldGhvZCog
Y2FsbGJhY2tzLCBzaXplX3QgY2FsbGJhY2tDb3VudCwgdjg6Oklzb2xhdGUqLCBXcmFwcGVyV29y
bGRUeXBlIGN1cnJlbnRXb3JsZFR5cGUpCiB7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBj
YWxsYmFja0NvdW50OyArK2kpCi0gICAgICAgIHByb3RvdHlwZS0+U2V0KHY4OjpTdHJpbmc6Ok5l
d1N5bWJvbChjYWxsYmFja3NbaV0ubmFtZSksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoY2Fs
bGJhY2tzW2ldLmNhbGxiYWNrLCB2OFVuZGVmaW5lZCgpLCBzaWduYXR1cmUpLCBhdHRyaWJ1dGVz
KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNhbGxiYWNrQ291bnQ7ICsraSkgeworICAg
ICAgICB2ODo6SW52b2NhdGlvbkNhbGxiYWNrIGNhbGxiYWNrID0gY2FsbGJhY2tzW2ldLmNhbGxi
YWNrOworICAgICAgICBpZiAoY3VycmVudFdvcmxkVHlwZSA9PSBNYWluV29ybGQgJiYgY2FsbGJh
Y2tzW2ldLmNhbGxiYWNrRm9yTWFpbldvcmxkKQorICAgICAgICAgICAgY2FsbGJhY2sgPSBjYWxs
YmFja3NbaV0uY2FsbGJhY2tGb3JNYWluV29ybGQ7CisgICAgICAgIHByb3RvdHlwZS0+U2V0KHY4
OjpTdHJpbmc6Ok5ld1N5bWJvbChjYWxsYmFja3NbaV0ubmFtZSksIHY4OjpGdW5jdGlvblRlbXBs
YXRlOjpOZXcoY2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksIHNpZ25hdHVyZSksIGF0dHJpYnV0ZXMp
OworICAgIH0KIH0KIAogdjg6OkxvY2FsPHY4OjpTaWduYXR1cmU+IFY4RE9NQ29uZmlndXJhdGlv
bjo6Y29uZmlndXJlVGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+
IGZ1bmN0aW9uRGVzY3JpcHRvciwgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgdjg6OlBlcnNp
c3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IHBhcmVudENsYXNzLApAQCAtNzMsNyArNzcsNyBA
QCB2ODo6TG9jYWw8djg6OlNpZ25hdHVyZT4gVjhET01Db25maWd1cmF0aW9uOjpjb25maWd1cmVU
ZW1wbGF0ZSh2ODo6UGVyc2lzdGVudDx2OAogICAgICAgICBiYXRjaENvbmZpZ3VyZUF0dHJpYnV0
ZXMoaW5zdGFuY2UsIGZ1bmN0aW9uRGVzY3JpcHRvci0+UHJvdG90eXBlVGVtcGxhdGUoKSwgYXR0
cmlidXRlcywgYXR0cmlidXRlQ291bnQsIGlzb2xhdGUsIGN1cnJlbnRXb3JsZFR5cGUpOwogICAg
IHY4OjpMb2NhbDx2ODo6U2lnbmF0dXJlPiBkZWZhdWx0U2lnbmF0dXJlID0gdjg6OlNpZ25hdHVy
ZTo6TmV3KGZ1bmN0aW9uRGVzY3JpcHRvcik7CiAgICAgaWYgKGNhbGxiYWNrQ291bnQpCi0gICAg
ICAgIGJhdGNoQ29uZmlndXJlQ2FsbGJhY2tzKGZ1bmN0aW9uRGVzY3JpcHRvci0+UHJvdG90eXBl
VGVtcGxhdGUoKSwgZGVmYXVsdFNpZ25hdHVyZSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0
cmlidXRlPih2ODo6RG9udERlbGV0ZSksIGNhbGxiYWNrcywgY2FsbGJhY2tDb3VudCwgaXNvbGF0
ZSk7CisgICAgICAgIGJhdGNoQ29uZmlndXJlQ2FsbGJhY2tzKGZ1bmN0aW9uRGVzY3JpcHRvci0+
UHJvdG90eXBlVGVtcGxhdGUoKSwgZGVmYXVsdFNpZ25hdHVyZSwgc3RhdGljX2Nhc3Q8djg6OlBy
b3BlcnR5QXR0cmlidXRlPih2ODo6RG9udERlbGV0ZSksIGNhbGxiYWNrcywgY2FsbGJhY2tDb3Vu
dCwgaXNvbGF0ZSwgY3VycmVudFdvcmxkVHlwZSk7CiAgICAgcmV0dXJuIGRlZmF1bHRTaWduYXR1
cmU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NQ29u
ZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01Db25maWd1cmF0
aW9uLmgKaW5kZXggZTk1YjE1ODZjNDY1M2YzNzI4YjUyYzA4YmYyMWU5NWM1ZDc2NWZhYi4uODJm
YWNlOTM1ZWE0ZTM1NWZmOTNkNmY4YjY0OGNjYzk3MGJiOWU0ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01Db25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhET01Db25maWd1cmF0aW9uLmgKQEAgLTEwMSw5ICsxMDEsMTAg
QEAgcHVibGljOgogICAgIHN0cnVjdCBCYXRjaGVkTWV0aG9kIHsKICAgICAgICAgY29uc3QgY2hh
ciogY29uc3QgbmFtZTsKICAgICAgICAgdjg6Okludm9jYXRpb25DYWxsYmFjayBjYWxsYmFjazsK
KyAgICAgICAgdjg6Okludm9jYXRpb25DYWxsYmFjayBjYWxsYmFja0Zvck1haW5Xb3JsZDsKICAg
ICB9OwogCi0gICAgc3RhdGljIHZvaWQgYmF0Y2hDb25maWd1cmVDYWxsYmFja3Modjg6OkhhbmRs
ZTx2ODo6T2JqZWN0VGVtcGxhdGU+LCB2ODo6SGFuZGxlPHY4OjpTaWduYXR1cmU+LCB2ODo6UHJv
cGVydHlBdHRyaWJ1dGUsIGNvbnN0IEJhdGNoZWRNZXRob2QqLCBzaXplX3QgY2FsbGJhY2tDb3Vu
dCwgdjg6Oklzb2xhdGUqKTsKKyAgICBzdGF0aWMgdm9pZCBiYXRjaENvbmZpZ3VyZUNhbGxiYWNr
cyh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4sIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVy
ZT4sIHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZSwgY29uc3QgQmF0Y2hlZE1ldGhvZCosIHNpemVfdCBj
YWxsYmFja0NvdW50LCB2ODo6SXNvbGF0ZSosIFdyYXBwZXJXb3JsZFR5cGUpOwogCiAgICAgc3Rh
dGljIHY4OjpMb2NhbDx2ODo6U2lnbmF0dXJlPiBjb25maWd1cmVUZW1wbGF0ZSh2ODo6UGVyc2lz
dGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4sIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIHY4
OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBwYXJlbnRDbGFzcywgc2l6ZV90IGZp
ZWxkQ291bnQsIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUqLCBzaXplX3QgYXR0cmlidXRlQ291bnQs
IGNvbnN0IEJhdGNoZWRNZXRob2QqLCBzaXplX3QgY2FsbGJhY2tDb3VudCwgdjg6Oklzb2xhdGUq
LCBXcmFwcGVyV29ybGRUeXBlKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAppbmRleCBjOWRm
Mzc0MDE5NWQyMTI0OGViN2RlMGYyMjMzZWRhNjA5OWI2N2JhLi40OWJmNzdlNmU5Y2MzODkwZjUz
ZmU5OGIzZDE4ZDExZmE3MGJjOWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKQEAgLTI5LDM2
ICsyOSwzNiBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01JbXBsZW1lbnRhdGlvbiBpbXBs
ZW1lbnRhdGlvbjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBkb2N1bWVudEVsZW1l
bnQ7CiAKLSAgICBbUmV0dXJuTmV3T2JqZWN0XSBFbGVtZW50IGNyZWF0ZUVsZW1lbnQoaW4gW1Ry
ZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJp
bmcgdGFnTmFtZSkKKyAgICBbUmV0dXJuTmV3T2JqZWN0LCBWOFBlcldvcmxkQmluZGluZ3NdIEVs
ZW1lbnQgY3JlYXRlRWxlbWVudChpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0YWdOYW1lKQogICAgICAgICByYWlzZXMgKERP
TUV4Y2VwdGlvbik7Ci0gICAgRG9jdW1lbnRGcmFnbWVudCAgIGNyZWF0ZURvY3VtZW50RnJhZ21l
bnQoKTsKLSAgICBbUmV0dXJuTmV3T2JqZWN0XSBUZXh0IGNyZWF0ZVRleHROb2RlKGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBkYXRhKTsKLSAgICBbUmV0dXJuTmV3
T2JqZWN0XSBDb21tZW50IGNyZWF0ZUNvbW1lbnQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gRE9NU3RyaW5nIGRhdGEpOwotICAgIFtSZXR1cm5OZXdPYmplY3RdIENEQVRBU2VjdGlv
biBjcmVhdGVDREFUQVNlY3Rpb24oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9N
U3RyaW5nIGRhdGEpCisgICAgW1Y4UGVyV29ybGRCaW5kaW5nc10gRG9jdW1lbnRGcmFnbWVudCAg
IGNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKKyAgICBbUmV0dXJuTmV3T2JqZWN0LCBWOFBlcldv
cmxkQmluZGluZ3NdIFRleHQgY3JlYXRlVGV4dE5vZGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gRE9NU3RyaW5nIGRhdGEpOworICAgIFtSZXR1cm5OZXdPYmplY3QsIFY4UGVyV29y
bGRCaW5kaW5nc10gQ29tbWVudCBjcmVhdGVDb21tZW50KGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIERPTVN0cmluZyBkYXRhKTsKKyAgICBbUmV0dXJuTmV3T2JqZWN0LCBWOFBlcldv
cmxkQmluZGluZ3NdIENEQVRBU2VjdGlvbiBjcmVhdGVDREFUQVNlY3Rpb24oaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGRhdGEpCiAgICAgICAgIHJhaXNlcyhET01F
eGNlcHRpb24pOwotICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJldHVybk5ld09i
amVjdF0gUHJvY2Vzc2luZ0luc3RydWN0aW9uIGNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgdGFyZ2V0LAorICAgIFtP
YmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJldHVybk5ld09iamVjdCwgVjhQZXJXb3JsZEJp
bmRpbmdzXSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9u
KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0YXJnZXQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01T
dHJpbmcgZGF0YSkKICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgIFtSZXR1cm5O
ZXdPYmplY3RdIEF0dHIgY3JlYXRlQXR0cmlidXRlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIERPTVN0cmluZyBuYW1lKQorICAgIFtSZXR1cm5OZXdPYmplY3QsIFY4UGVyV29ybGRC
aW5kaW5nc10gQXR0ciBjcmVhdGVBdHRyaWJ1dGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gRE9NU3RyaW5nIG5hbWUpCiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAg
ICBbUmV0dXJuTmV3T2JqZWN0XSBFbnRpdHlSZWZlcmVuY2UgY3JlYXRlRW50aXR5UmVmZXJlbmNl
KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lKQorICAgIFtS
ZXR1cm5OZXdPYmplY3QsIFY4UGVyV29ybGRCaW5kaW5nc10gRW50aXR5UmVmZXJlbmNlIGNyZWF0
ZUVudGl0eVJlZmVyZW5jZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJp
bmcgbmFtZSkKICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgTm9kZUxpc3QgICAg
ICAgICAgIGdldEVsZW1lbnRzQnlUYWdOYW1lKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIERPTVN0cmluZyB0YWduYW1lKTsKKyAgICBbVjhQZXJXb3JsZEJpbmRpbmdzXSBOb2RlTGlz
dCBnZXRFbGVtZW50c0J5VGFnTmFtZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
T01TdHJpbmcgdGFnbmFtZSk7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgog
Ci0gICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmV0dXJuTmV3T2JqZWN0XSBOb2Rl
IGltcG9ydE5vZGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9kZSBpbXBvcnRl
ZE5vZGUsCisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmV0dXJuTmV3T2JqZWN0
LCBWOFBlcldvcmxkQmluZGluZ3NdIE5vZGUgaW1wb3J0Tm9kZShpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBOb2RlIGltcG9ydGVkTm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIGRlZXApCiAgICAg
ICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0
ZXJzLCBSZXR1cm5OZXdPYmplY3RdIEVsZW1lbnQgY3JlYXRlRWxlbWVudE5TKGluIFtUcmVhdE51
bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5h
bWVzcGFjZVVSSSwKKyAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSZXR1cm5OZXdP
YmplY3QsIFY4UGVyV29ybGRCaW5kaW5nc10gRWxlbWVudCBjcmVhdGVFbGVtZW50TlMoaW4gW1Ry
ZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJp
bmcgbmFtZXNwYWNlVVJJLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUpCiAgICAgICAgIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSZXR1cm5O
ZXdPYmplY3RdIEF0dHIgY3JlYXRlQXR0cmlidXRlTlMoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJp
bmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAor
ICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJldHVybk5ld09iamVjdCwgVjhQZXJX
b3JsZEJpbmRpbmdzXSBBdHRyIGNyZWF0ZUF0dHJpYnV0ZU5TKGluIFtUcmVhdE51bGxBcz1OdWxs
U3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWVzcGFjZVVS
SSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
RE9NU3RyaW5nIHF1YWxpZmllZE5hbWUpCiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
LSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5
VGFnTmFtZU5TKGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKKyAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQ
YXJhbWV0ZXJzLCBWOFBlcldvcmxkQmluZGluZ3NdIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdO
YW1lTlMoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
RE9NU3RyaW5nIGxvY2FsTmFtZSk7Ci0gICAgRWxlbWVudCAgICAgICAgICAgIGdldEVsZW1lbnRC
eUlkKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBlbGVtZW50SWQp
OworICAgIFtWOFBlcldvcmxkQmluZGluZ3NdIEVsZW1lbnQgICAgICAgICAgICBnZXRFbGVtZW50
QnlJZChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZWxlbWVudElk
KTsKIAogICAgIC8vIERPTSBMZXZlbCAzIENvcmUKIApAQCAtNzAsNyArNzAsNyBAQAogICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIHhtbFN0YW5kYWxvbmUKICAgICAgICAgICAgICAgICBz
ZXR0ZXIgcmFpc2VzIChET01FeGNlcHRpb24pOwogCi0gICAgTm9kZSAgICAgICAgICAgICAgIGFk
b3B0Tm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlIHNvdXJjZSkKKyAg
ICBbVjhQZXJXb3JsZEJpbmRpbmdzXSBOb2RlIGFkb3B0Tm9kZShpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBOb2RlIHNvdXJjZSkKICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24p
OwogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNU
SVZFX0MgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSAmJiBMQU5HVUFHRV9HT0JKRUNUCkBA
IC04NSwyMSArODUsMjEgQEAKIAogICAgIC8vIERPTSBMZXZlbCAyIEV2ZW50cyAoRG9jdW1lbnRF
dmVudHMgaW50ZXJmYWNlKQogCi0gICAgRXZlbnQgICAgICAgICAgICAgIGNyZWF0ZUV2ZW50KGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBldmVudFR5cGUpCisgICAg
W1Y4UGVyV29ybGRCaW5kaW5nc10gRXZlbnQgICAgICAgICAgICAgIGNyZWF0ZUV2ZW50KGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBldmVudFR5cGUpCiAgICAgICAg
IHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgLy8gRE9NIExldmVsIDIgVHJhbnZlcnNhbCBh
bmQgUmFuZ2UgKERvY3VtZW50UmFuZ2UgaW50ZXJmYWNlKQogCi0gICAgUmFuZ2UgICAgICAgICAg
ICAgIGNyZWF0ZVJhbmdlKCk7CisgICAgW1Y4UGVyV29ybGRCaW5kaW5nc10gUmFuZ2UgICAgICAg
ICAgICAgIGNyZWF0ZVJhbmdlKCk7CiAKICAgICAvLyBET00gTGV2ZWwgMiBUcmFudmVyc2FsIGFu
ZCBSYW5nZSAoRG9jdW1lbnRUcmF2ZXJzYWwgaW50ZXJmYWNlKQogCi0gICAgW09iakNMZWdhY3lV
bm5hbWVkUGFyYW1ldGVyc10gTm9kZUl0ZXJhdG9yIGNyZWF0ZU5vZGVJdGVyYXRvcihpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlIHJvb3QsCisgICAgW09iakNMZWdhY3lVbm5h
bWVkUGFyYW1ldGVycywgVjhQZXJXb3JsZEJpbmRpbmdzXSBOb2RlSXRlcmF0b3IgY3JlYXRlTm9k
ZUl0ZXJhdG9yKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgcm9vdCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGVGaWx0ZXIgZmlsdGVyLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQogICAgICAgICByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBUcmVl
V2Fsa2VyIGNyZWF0ZVRyZWVXYWxrZXIoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
Tm9kZSByb290LAorICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFY4UGVyV29ybGRC
aW5kaW5nc10gVHJlZVdhbGtlciBjcmVhdGVUcmVlV2Fsa2VyKGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIE5vZGUgcm9vdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlRmlsdGVyIGZpbHRl
ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVuY2Vz
KQpAQCAtMTE1LDE1ICsxMTUsMTUgQEAKIAogICAgIC8vIERPTSBMZXZlbCAyIFN0eWxlIChEb2N1
bWVudENTUyBpbnRlcmZhY2UpCiAKLSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBD
U1NTdHlsZURlY2xhcmF0aW9uIGdldE92ZXJyaWRlU3R5bGUoaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gRWxlbWVudCBlbGVtZW50LAorICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFt
ZXRlcnMsIFY4UGVyV29ybGRCaW5kaW5nc10gQ1NTU3R5bGVEZWNsYXJhdGlvbiBnZXRPdmVycmlk
ZVN0eWxlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIEVsZW1lbnQgZWxlbWVudCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHBzZXVkb0VsZW1lbnQp
OwogCiAgICAgLy8gRE9NIExldmVsIDMgWFBhdGggKFhQYXRoRXZhbHVhdG9yIGludGVyZmFjZSkK
LSAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBYUGF0aEV4cHJlc3Npb24gY3JlYXRl
RXhwcmVzc2lvbihpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZXhw
cmVzc2lvbiwKKyAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBWOFBlcldvcmxkQmlu
ZGluZ3NdIFhQYXRoRXhwcmVzc2lvbiBjcmVhdGVFeHByZXNzaW9uKGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBleHByZXNzaW9uLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIFhQYXRoTlNSZXNvbHZlciByZXNvbHZlcikKICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7Ci0gICAgWFBhdGhOU1Jlc29sdmVyICAgIGNyZWF0ZU5TUmVzb2x2ZXIoaW4gTm9k
ZSBub2RlUmVzb2x2ZXIpOwotICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFY4Q3Vz
dG9tXSBYUGF0aFJlc3VsdCBldmFsdWF0ZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBET01TdHJpbmcgZXhwcmVzc2lvbiwKKyAgICBbVjhQZXJXb3JsZEJpbmRpbmdzXSBYUGF0aE5T
UmVzb2x2ZXIgICAgY3JlYXRlTlNSZXNvbHZlcihpbiBOb2RlIG5vZGVSZXNvbHZlcik7CisgICAg
W09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgVjhDdXN0b20sIFY4UGVyV29ybGRCaW5kaW5n
c10gWFBhdGhSZXN1bHQgZXZhbHVhdGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
RE9NU3RyaW5nIGV4cHJlc3Npb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgY29u
dGV4dE5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFhQYXRoTlNSZXNvbHZlciByZXNv
bHZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgc2hvcnQgdHlwZSwKQEAg
LTE0Nyw3ICsxNDcsNyBAQAogICAgIGJvb2xlYW4gICAgICAgICAgICBxdWVyeUNvbW1hbmRJbmRl
dGVybShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgY29tbWFuZCk7
CiAgICAgYm9vbGVhbiAgICAgICAgICAgIHF1ZXJ5Q29tbWFuZFN0YXRlKGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBjb21tYW5kKTsKICAgICBib29sZWFuICAgICAg
ICAgICAgcXVlcnlDb21tYW5kU3VwcG9ydGVkKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIERPTVN0cmluZyBjb21tYW5kKTsKLSAgICBET01TdHJpbmcgICAgICAgICAgcXVlcnlDb21t
YW5kVmFsdWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGNvbW1h
bmQpOworICAgIFtWOFBlcldvcmxkQmluZGluZ3NdIERPTVN0cmluZyBxdWVyeUNvbW1hbmRWYWx1
ZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgY29tbWFuZCk7CiAK
ICAgICAvLyBNb3ZlZCBkb3duIGZyb20gSFRNTERvY3VtZW50CiAKQEAgLTE3NiwxMCArMTc2LDEw
IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIGFuY2hvcnM7CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYXN0TW9kaWZpZWQ7CiAKLSAgICBOb2RlTGlz
dCBnZXRFbGVtZW50c0J5TmFtZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01T
dHJpbmcgZWxlbWVudE5hbWUpOworICAgIFtWOFBlcldvcmxkQmluZGluZ3NdIE5vZGVMaXN0IGdl
dEVsZW1lbnRzQnlOYW1lKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmlu
ZyBlbGVtZW50TmFtZSk7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9NSUNST0RBVEEpICYmIEVOQUJM
RV9NSUNST0RBVEEKLSAgICBOb2RlTGlzdCBnZXRJdGVtcyhpbiBbVHJlYXROdWxsQXM9TnVsbFN0
cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nLCBPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIERPTVN0cmluZyB0eXBlTmFtZXMpOworICAgIFtWOFBlcldvcmxkQmluZGluZ3NdIE5v
ZGVMaXN0IGdldEl0ZW1zKGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5l
ZEFzPU51bGxTdHJpbmcsIE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHR5
cGVOYW1lcyk7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYg
TEFOR1VBR0VfSkFWQVNDUklQVApAQCAtMTkyLDE0ICsxOTIsMTQgQEAKICAgICBbVHJlYXRSZXR1
cm5lZE51bGxTdHJpbmdBcz1VbmRlZmluZWRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
ZGVmYXVsdENoYXJzZXQ7CiAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9VW5kZWZpbmVk
XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlYWR5U3RhdGU7CiAKLSAgICBFbGVtZW50
ICAgICAgICAgICAgZWxlbWVudEZyb21Qb2ludChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBsb25nIHgsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgeSk7Ci0gICAgUmFuZ2UgICAgICAg
ICAgICAgIGNhcmV0UmFuZ2VGcm9tUG9pbnQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gbG9uZyB4LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHkpOworICAgIFtWOFBlcldvcmxk
QmluZGluZ3NdIEVsZW1lbnQgZWxlbWVudEZyb21Qb2ludChpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBsb25nIHgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHkpOwor
ICAgIFtWOFBlcldvcmxkQmluZGluZ3NdIFJhbmdlIGNhcmV0UmFuZ2VGcm9tUG9pbnQoaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyB4LCAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGxvbmcgeSk7CiAKICAgICAvLyBNb3ppbGxhIGV4dGVuc2lvbnMKICNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICBET01TZWxl
Y3Rpb24gICAgICAgZ2V0U2VsZWN0aW9uKCk7CisgICAgW1Y4UGVyV29ybGRCaW5kaW5nc10gRE9N
U2VsZWN0aW9uIGdldFNlbGVjdGlvbigpOwogI2VuZGlmCiAgICAgW1RyZWF0UmV0dXJuZWROdWxs
U3RyaW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBjaGFyYWN0ZXJTZXQ7
CiAKQEAgLTIzNCwxNCArMjM0LDE0IEBACiAjZW5kaWYKIAogICAgIC8vIEhUTUwgNQotICAgIE5v
ZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gRE9NU3RyaW5nIHRhZ25hbWUpOworICAgIFtWOFBlcldvcmxkQmluZGluZ3NdIE5vZGVM
aXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gRE9NU3RyaW5nIHRhZ25hbWUpOwogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBjb21wYXRNb2RlOwogCiAgICAgLy8gTm9kZVNlbGVjdG9yIC0gU2VsZWN0b3IgQVBJCi0gICAg
RWxlbWVudCBxdWVyeVNlbGVjdG9yKGluIERPTVN0cmluZyBzZWxlY3RvcnMpCisgICAgW1Y4UGVy
V29ybGRCaW5kaW5nc10gRWxlbWVudCBxdWVyeVNlbGVjdG9yKGluIERPTVN0cmluZyBzZWxlY3Rv
cnMpCiAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgIE5vZGVMaXN0IHF1ZXJ5U2Vs
ZWN0b3JBbGwoaW4gRE9NU3RyaW5nIHNlbGVjdG9ycykKKyAgICBbVjhQZXJXb3JsZEJpbmRpbmdz
XSBOb2RlTGlzdCBxdWVyeVNlbGVjdG9yQWxsKGluIERPTVN0cmluZyBzZWxlY3RvcnMpCiAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAjaWYgZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpICYmIEVOQUJMRV9GVUxMU0NSRUVOX0FQSQpAQCAtMzQ1LDcgKzM0NSw3IEBACiAjZW5k
aWYKIAogI2lmIGRlZmluZWQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJiYgRU5BQkxFX1RPVUNIX0VW
RU5UUwotICAgIFtSZXR1cm5OZXdPYmplY3QsIFY4RW5hYmxlZEF0UnVudGltZT10b3VjaF0gVG91
Y2ggY3JlYXRlVG91Y2goaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NV2luZG93
IHdpbmRvdywKKyAgICBbUmV0dXJuTmV3T2JqZWN0LCBWOEVuYWJsZWRBdFJ1bnRpbWU9dG91Y2gs
IFY4UGVyV29ybGRCaW5kaW5nc10gVG91Y2ggY3JlYXRlVG91Y2goaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gRE9NV2luZG93IHdpbmRvdywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gRXZlbnRUYXJnZXQgdGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBs
b25nIGlkZW50aWZpZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgcGFnZVgs
CkBAIC0zNjIsMTAgKzM2MiwxMCBAQAogI2VuZGlmCiAKICNpZiBkZWZpbmVkKEVOQUJMRV9DVVNU
T01fRUxFTUVOVFMpICYmIEVOQUJMRV9DVVNUT01fRUxFTUVOVFMKLSAgICBbVjhFbmFibGVkQXRS
dW50aW1lPWN1c3RvbURPTUVsZW1lbnRzLCBDb25kaXRpb25hbD1DVVNUT01fRUxFTUVOVFMsIElt
cGxlbWVudGVkQXM9cmVnaXN0ZXJFbGVtZW50LCBDYWxsV2l0aD1TY3JpcHRTdGF0ZV0KKyAgICBb
VjhFbmFibGVkQXRSdW50aW1lPWN1c3RvbURPTUVsZW1lbnRzLCBDb25kaXRpb25hbD1DVVNUT01f
RUxFTUVOVFMsIEltcGxlbWVudGVkQXM9cmVnaXN0ZXJFbGVtZW50LCBDYWxsV2l0aD1TY3JpcHRT
dGF0ZSwgVjhQZXJXb3JsZEJpbmRpbmdzXQogICAgIEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3RvciB3
ZWJraXRSZWdpc3RlcihpbiBET01TdHJpbmcgbmFtZSwgaW4gW09wdGlvbmFsXSBEaWN0aW9uYXJ5
IG9wdGlvbnMpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgIFtSZXR1cm5OZXdPYmplY3RdIEVs
ZW1lbnQgY3JlYXRlRWxlbWVudChpbiBET01TdHJpbmcgbG9jYWxOYW1lLCBpbiBbVHJlYXROdWxs
QXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGVFeHRlbnNpb24pIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKLSAgICBbUmV0dXJuTmV3T2JqZWN0XSBFbGVtZW50IGNyZWF0ZUVsZW1lbnROUyhpbiBb
VHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwgaW4gRE9NU3Ry
aW5nIHF1YWxpZmllZE5hbWUsCisgICAgW1JldHVybk5ld09iamVjdCwgVjhQZXJXb3JsZEJpbmRp
bmdzXSBFbGVtZW50IGNyZWF0ZUVsZW1lbnQoaW4gRE9NU3RyaW5nIGxvY2FsTmFtZSwgaW4gW1Ry
ZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyB0eXBlRXh0ZW5zaW9uKSByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CisgICAgW1JldHVybk5ld09iamVjdCwgVjhQZXJXb3JsZEJpbmRpbmdzXSBF
bGVtZW50IGNyZWF0ZUVsZW1lbnROUyhpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3Ry
aW5nIG5hbWVzcGFjZVVSSSwgaW4gRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW1RyZWF0TnVsbEFzPU51bGxT
dHJpbmddIERPTVN0cmluZyB0eXBlRXh0ZW5zaW9uKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCmluZGV4IDc4Yjk0OTc4YTM2MDNjNzU5NzkyNDI4
Mzc3NmM5YTdmNzA1MDEyYjMuLjQwMzExOTg5MTJkZmFkZmYyZDFlMTFjYjY5NGZmOTg1M2M4YmY3
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKQEAgLTM0LDEyICszNCwxMiBAQAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIERPTVN0cmluZyB2YWx1ZSkKICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAg
dm9pZCByZW1vdmVBdHRyaWJ1dGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9N
U3RyaW5nIG5hbWUpOwotICAgIEF0dHIgZ2V0QXR0cmlidXRlTm9kZShpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZSk7Ci0gICAgQXR0ciBzZXRBdHRyaWJ1dGVO
b2RlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIEF0dHIgbmV3QXR0cikKKyAgICBb
VjhQZXJXb3JsZEJpbmRpbmdzXSBBdHRyIGdldEF0dHJpYnV0ZU5vZGUoaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWUpOworICAgIFtWOFBlcldvcmxkQmluZGlu
Z3NdIEF0dHIgc2V0QXR0cmlidXRlTm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBBdHRyIG5ld0F0dHIpCiAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgIEF0dHIg
cmVtb3ZlQXR0cmlidXRlTm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBBdHRy
IG9sZEF0dHIpCisgICAgW1Y4UGVyV29ybGRCaW5kaW5nc10gQXR0ciByZW1vdmVBdHRyaWJ1dGVO
b2RlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIEF0dHIgb2xkQXR0cikKICAgICAg
ICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05h
bWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWUpOworICAg
IFtWOFBlcldvcmxkQmluZGluZ3NdIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lKTsKIAogI2lmICFkZWZp
bmVkKExBTkdVQUdFX09CSkVDVElWRV9DKQogICAgIC8vIEZvciBPYmpDIHRoaXMgaXMgZGVmaW5l
ZCBvbiBOb2RlIGZvciBsZWdhY3kgc3VwcG9ydC4KQEAgLTU3LDExICs1NywxMSBAQAogICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJz
XSB2b2lkIHJlbW92ZUF0dHJpYnV0ZU5TKGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01T
dHJpbmcgbmFtZXNwYWNlVVJJLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gRE9NU3RyaW5nIGxvY2FsTmFtZSk7Ci0gICAgW09iakNMZWdhY3lVbm5hbWVkUGFy
YW1ldGVyc10gTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWVOUyhpbiBbVHJlYXROdWxsQXM9
TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lc3Bh
Y2VVUkksCisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgVjhQZXJXb3JsZEJpbmRp
bmdzXSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKGluIFtUcmVhdE51bGxBcz1OdWxs
U3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWVzcGFjZVVS
SSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBsb2NhbE5hbWUpOwotICAg
IFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIEF0dHIgZ2V0QXR0cmlidXRlTm9kZU5TKGlu
IFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9N
U3RyaW5nIG5hbWVzcGFjZVVSSSwKKyAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBW
OFBlcldvcmxkQmluZGluZ3NdIEF0dHIgZ2V0QXR0cmlidXRlTm9kZU5TKGluIFtUcmVhdE51bGxB
cz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWVz
cGFjZVVSSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbG9jYWxOYW1lKTsKLSAgICBB
dHRyIHNldEF0dHJpYnV0ZU5vZGVOUyhpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBB
dHRyIG5ld0F0dHIpCisgICAgW1Y4UGVyV29ybGRCaW5kaW5nc10gQXR0ciBzZXRBdHRyaWJ1dGVO
b2RlTlMoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gQXR0ciBuZXdBdHRyKQogICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICBib29sZWFuIGhhc0F0dHJpYnV0ZShpbiBE
T01TdHJpbmcgbmFtZSk7CiAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gYm9vbGVh
biBoYXNBdHRyaWJ1dGVOUyhpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCkBAIC05Niw3ICs5Niw3IEBA
CiAgICAgdm9pZCBzY3JvbGxCeVBhZ2VzKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGxvbmcgcGFnZXMpOwogCiAgICAgLy8gSFRNTCA1Ci0gICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNC
eUNsYXNzTmFtZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFt
ZSk7CisgICAgW1Y4UGVyV29ybGRCaW5kaW5nc10gTm9kZUxpc3QgZ2V0RWxlbWVudHNCeUNsYXNz
TmFtZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZSk7CiAK
ICAgICBbUmVmbGVjdD1jbGFzcywgVjhQZXJXb3JsZEJpbmRpbmdzXSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGNsYXNzTmFtZTsKICAgICBbVjhQZXJXb3JsZEJpbmRpbmdzXSByZWFkb25seSBhdHRyaWJ1
dGUgRE9NVG9rZW5MaXN0IGNsYXNzTGlzdDsKQEAgLTEwNiw5ICsxMDYsOSBAQAogI2VuZGlmCiAK
ICAgICAvLyBOb2RlU2VsZWN0b3IgLSBTZWxlY3RvciBBUEkKLSAgICBFbGVtZW50IHF1ZXJ5U2Vs
ZWN0b3IoaW4gRE9NU3RyaW5nIHNlbGVjdG9ycykKKyAgICBbVjhQZXJXb3JsZEJpbmRpbmdzXSBF
bGVtZW50IHF1ZXJ5U2VsZWN0b3IoaW4gRE9NU3RyaW5nIHNlbGVjdG9ycykKICAgICAgICAgcmFp
c2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgTm9kZUxpc3QgcXVlcnlTZWxlY3RvckFsbChpbiBET01T
dHJpbmcgc2VsZWN0b3JzKQorICAgIFtWOFBlcldvcmxkQmluZGluZ3NdIE5vZGVMaXN0IHF1ZXJ5
U2VsZWN0b3JBbGwoaW4gRE9NU3RyaW5nIHNlbGVjdG9ycykKICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKICAgICAvLyBXZWJLaXQgZXh0ZW5zaW9uLCBwZW5kaW5nIHNwZWNpZmljYXRp
b24uCkBAIC0xMjUsNyArMTI1LDcgQEAKICAgICAvLyBTaGFkb3dBd2FyZSBBUEkKICNpZiBkZWZp
bmVkKEVOQUJMRV9TSEFET1dfRE9NKSAmJiBFTkFCTEVfU0hBRE9XX0RPTSAmJiBkZWZpbmVkKExB
TkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKICAgICBbUmVmbGVjdD1w
c2V1ZG8sIFY4RW5hYmxlZEF0UnVudGltZT1zaGFkb3dET00sIEltcGxlbWVudGVkQXM9cHNldWRv
LCBWOFBlcldvcmxkQmluZGluZ3NdIGF0dHJpYnV0ZSBET01TdHJpbmcgd2Via2l0UHNldWRvOwot
ICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9c2hhZG93RE9NLCBJbXBsZW1lbnRlZEFzPWNyZWF0ZVNo
YWRvd1Jvb3RdIFNoYWRvd1Jvb3Qgd2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpIHJhaXNlcyhET01F
eGNlcHRpb24pOworICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9c2hhZG93RE9NLCBJbXBsZW1lbnRl
ZEFzPWNyZWF0ZVNoYWRvd1Jvb3QsIFY4UGVyV29ybGRCaW5kaW5nc10gU2hhZG93Um9vdCB3ZWJr
aXRDcmVhdGVTaGFkb3dSb290KCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgW1Y4RW5hYmxl
ZEF0UnVudGltZT1zaGFkb3dET00sIEltcGxlbWVudGVkQXM9c2hhZG93Um9vdCwgVjhQZXJXb3Js
ZEJpbmRpbmdzXSByZWFkb25seSBhdHRyaWJ1dGUgU2hhZG93Um9vdCB3ZWJraXRTaGFkb3dSb290
OwogI2VuZGlmCiAKQEAgLTEzNSw4ICsxMzUsOCBAQAogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCiAgICAgLy8gQ1NTT00gVmlldyBNb2R1
bGUgQVBJCi0gICAgQ2xpZW50UmVjdExpc3QgZ2V0Q2xpZW50UmVjdHMoKTsKLSAgICBDbGllbnRS
ZWN0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgIFtWOFBlcldvcmxkQmluZGluZ3NdIENs
aWVudFJlY3RMaXN0IGdldENsaWVudFJlY3RzKCk7CisgICAgW1Y4UGVyV29ybGRCaW5kaW5nc10g
Q2xpZW50UmVjdCBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICNlbmRpZgogCiAjaWYgZGVmaW5l
ZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmlkbAppbmRleCA2YjVkNDkzZTdiZDliNTMxN2RiN2RiNTBlNTg3MTI3MTBkM2MwZTQ4Li5mZTk3
NTY3ZjRhOTAwNzkzNjE0YTQyOTMxY2ViNzlkMWUzOGNlN2M3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCkBA
IC03Niw3ICs3Niw3IEBACiAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgYm9v
bGVhbiAgICAgICAgICAgIGhhc0NoaWxkTm9kZXMoKTsKLSAgICBOb2RlICAgICAgICAgICAgICAg
Y2xvbmVOb2RlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gZGVlcCk7
CisgICAgW1Y4UGVyV29ybGRCaW5kaW5nc10gTm9kZSAgICAgICAgICAgICAgIGNsb25lTm9kZShp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGRlZXApOwogICAgIHZvaWQg
ICAgICAgICAgICAgICBub3JtYWxpemUoKTsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExl
dmVsIDI6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194870</attachid>
            <date>2013-03-25 09:25:25 -0700</date>
            <delta_ts>2013-03-25 09:51:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112430-20130325172108.patch</filename>
            <type>text/plain</type>
            <size>55001</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDFkZGY5YWJlMTAwYzYw
MTFkMzNhOWM4YThkMjRhNzAyYzkxZjliZC4uNTg3OTA3MWM0ZmYzM2IzZTc0NmUzZjg2ZjM3Yjc5
NWY5ZWE3ZTE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDEzLTAzLTI1ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIEdlbmVyYXRl
IHNwZWNpYWxpemVkIGNhbGxiYWNrcyBmb3IgdGhlIG1haW4gd29ybGQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQzMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBuZXcgc3BlY2lhbGl6ZWQgYmlu
ZGluZ3Mgd2lsbCBiZSBmYXN0ZXIsIGJlY2F1c2UgdGhleSBkb24ndCBuZWVkIHRvCisgICAgICAg
IGRvIHRoZSAibWFpbiB3b3JsZCwgaXNvbGF0ZWQgd29ybGQgb3IgYSB3b3JrZXIiIGNoZWNrLCBi
dXQgY2FuIHJpZ2h0CisgICAgICAgIGF3YXkgYXNzdW1lIHRoYXQgd2UncmUgaW4gdGhlIG1haW4g
d29ybGQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBnZW5lcmF0ZXMgbWFpbiB3b3JsZCBiaW5kaW5n
cyBmb3IgZ2V0dGVycyBhbmQgc2V0dGVycyBmb3IgYQorICAgICAgICBzbWFsbCBhbW91bnQgb2Yg
ZnJlcXVlbnRseSB1c2VkIGZ1bmN0aW9ucyAvIGZ1bmN0aW9ucyB1c2VkIGJ5IERyb21hZW8uCisK
KyAgICAgICAgQWRkZWQgdGVzdHMgdG8gVGVzdE9iai5pZGwgYW5kIHVwZGF0ZWQgYmluZGluZ3Mg
dGVzdHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToK
KyAgICAgICAgKEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9uKToKKyAgICAgICAgKEdlbmVyYXRl
RnVuY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChHZW5lcmF0ZUZ1bmN0aW9uKToKKyAgICAgICAg
KEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrKToKKyAgICAgICAgKEdlbmVyYXRlU2luZ2xlQ29uc3Ry
dWN0b3JDYWxsYmFjayk6CisgICAgICAgIChHZW5lcmF0ZU5vblN0YW5kYXJkRnVuY3Rpb24pOgor
ICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUZ1bmN0
aW9uQ2FsbFN0cmluZyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmou
aWRsOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9i
ai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6cGVyV29ybGRSZWFk
T25seUF0dHJpYnV0ZUF0dHJHZXR0ZXIpOgorICAgICAgICAoVGVzdE9ialY4SW50ZXJuYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnBlcldvcmxkUmVhZE9ubHlBdHRy
aWJ1dGVBdHRyR2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50
ZXJuYWw6OnBlcldvcmxkUmVhZE9ubHlBdHRyaWJ1dGVBdHRyR2V0dGVyRm9yTWFpbldvcmxkKToK
KyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpwZXJXb3JsZFJlYWRPbmx5QXR0
cmlidXRlQXR0ckdldHRlckNhbGxiYWNrRm9yTWFpbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6
OlRlc3RPYmpWOEludGVybmFsOjpwZXJXb3JsZEF0dHJpYnV0ZUF0dHJHZXR0ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnBlcldvcmxkQXR0cmlidXRlQXR0ckdldHRl
ckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpwZXJXb3Js
ZEF0dHJpYnV0ZUF0dHJHZXR0ZXJGb3JNYWluV29ybGQpOgorICAgICAgICAoV2ViQ29yZTo6VGVz
dE9ialY4SW50ZXJuYWw6OnBlcldvcmxkQXR0cmlidXRlQXR0ckdldHRlckNhbGxiYWNrRm9yTWFp
bldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpwZXJXb3JsZEF0
dHJpYnV0ZUF0dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OnBlcldvcmxkQXR0cmlidXRlQXR0clNldHRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OlRlc3RPYmpWOEludGVybmFsOjpwZXJXb3JsZEF0dHJpYnV0ZUF0dHJTZXR0ZXJGb3JNYWluV29y
bGQpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnBlcldvcmxkQXR0cmli
dXRlQXR0clNldHRlckNhbGxiYWNrRm9yTWFpbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
c3RPYmpWOEludGVybmFsOjpwZXJXb3JsZE1ldGhvZE1ldGhvZCk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXN0T2JqVjhJbnRlcm5hbDo6cGVyV29ybGRNZXRob2RNZXRob2RGb3JNYWluV29ybGQpOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnBlcldvcmxkTWV0aG9kTWV0aG9k
Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnBlcldvcmxk
TWV0aG9kTWV0aG9kQ2FsbGJhY2tGb3JNYWluV29ybGQpOgorICAgICAgICAoV2ViQ29yZTo6VGVz
dE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRQZXJXb3JsZE1ldGhvZDFNZXRob2QpOgorICAgICAg
ICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRQZXJXb3JsZE1ldGhvZDFN
ZXRob2RGb3JNYWluV29ybGQpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
Om92ZXJsb2FkZWRQZXJXb3JsZE1ldGhvZDJNZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6VGVz
dE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRQZXJXb3JsZE1ldGhvZDJNZXRob2RGb3JNYWluV29y
bGQpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRQZXJX
b3JsZE1ldGhvZE1ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6
b3ZlcmxvYWRlZFBlcldvcmxkTWV0aG9kTWV0aG9kRm9yTWFpbldvcmxkKToKKyAgICAgICAgKFdl
YkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvdmVybG9hZGVkUGVyV29ybGRNZXRob2RNZXRob2RD
YWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6b3ZlcmxvYWRl
ZFBlcldvcmxkTWV0aG9kTWV0aG9kQ2FsbGJhY2tGb3JNYWluV29ybGQpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0VHlwZWRlZnMuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01Db25maWd1cmF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlY4RE9NQ29uZmlndXJhdGlvbjo6YmF0Y2hDb25maWd1cmVDYWxs
YmFja3MpOgorICAgICAgICAoV2ViQ29yZTo6VjhET01Db25maWd1cmF0aW9uOjpjb25maWd1cmVU
ZW1wbGF0ZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01Db25maWd1cmF0aW9uLmg6Cisg
ICAgICAgIChCYXRjaGVkTWV0aG9kKToKKyAgICAgICAgKFY4RE9NQ29uZmlndXJhdGlvbik6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgKiBkb20vRWxlbWVudC5pZGw6Cisg
ICAgICAgICogZG9tL05vZGUuaWRsOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwog
MjAxMy0wMy0yNSAgQWxlYyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgU3VwcG9ydCBRdW90YSBBUEkgaW4gV29ya2VycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCAzZTEyMTFlYmUyNjI2OGMw
MzNkMGFiMmU1ZWRiZmUyNmRkOWRjMDMxLi5lM2Q4MjU0NzQxZDNlZjRlY2M5OTk2OWIyOWIwZGNk
NDk4OGZmYjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JWOC5wbQpAQCAtMTU3Nyw2ICsxNTc3LDcgQEAgc3ViIEdlbmVyYXRlT3Zlcmxv
YWRlZEZ1bmN0aW9uCiB7CiAgICAgbXkgJGZ1bmN0aW9uID0gc2hpZnQ7CiAgICAgbXkgJGludGVy
ZmFjZSA9IHNoaWZ0OworICAgIG15ICRmb3JNYWluV29ybGRTdWZmaXggPSBzaGlmdDsKICAgICBt
eSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CiAKICAgICAjIEdlbmVyYXRlIGNv
ZGUgZm9yIGNob29zaW5nIHRoZSBjb3JyZWN0IG92ZXJsb2FkIHRvIGNhbGwuIE92ZXJsb2FkcyBh
cmUKQEAgLTE1ODYsMTEgKzE1ODcsMTIgQEAgc3ViIEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9u
CiAgICAgIyBkZWNsYXJhdGlvbiBpbiB0aGUgSURMLgogCiAgICAgbXkgJG5hbWUgPSAkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+bmFtZTsKKwogICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2Rl
R2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRmdW5jdGlvbi0+c2lnbmF0dXJl
KTsKICAgICBteSAkbGVhc3ROdW1NYW5kYXRvcnlQYXJhbXMgPSAyNTU7CiAgICAgcHVzaChAaW1w
bENvbnRlbnRJbnRlcm5hbHMsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cblxuIikgaWYgJGNv
bmRpdGlvbmFsU3RyaW5nOwogICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCA8PEVORCk7
Ci1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+ICR7bmFtZX1NZXRob2QoY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtuYW1lfU1ldGhv
ZCR7Zm9yTWFpbldvcmxkU3VmZml4fShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogRU5E
CiAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsIEdlbmVyYXRlRmVhdHVyZU9ic2VydmF0
aW9uKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhNZWFzdXJl
QXMifSkpOwpAQCAtMTYwMCw3ICsxNjAyLDcgQEAgRU5ECiAgICAgICAgICRsZWFzdE51bU1hbmRh
dG9yeVBhcmFtcyA9ICRudW1NYW5kYXRvcnlQYXJhbXMgaWYgKCRudW1NYW5kYXRvcnlQYXJhbXMg
PCAkbGVhc3ROdW1NYW5kYXRvcnlQYXJhbXMpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudElu
dGVybmFscywgIiAgICBpZiAoJHBhcmFtZXRlcnNDaGVjaylcbiIpOwogICAgICAgICBteSAkb3Zl
cmxvYWRlZEluZGV4U3RyaW5nID0gJG92ZXJsb2FkLT57b3ZlcmxvYWRJbmRleH07Ci0gICAgICAg
IHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgICAgICByZXR1cm4gJHtuYW1lfSR7b3Zl
cmxvYWRlZEluZGV4U3RyaW5nfU1ldGhvZChhcmdzKTtcbiIpOworICAgICAgICBwdXNoKEBpbXBs
Q29udGVudEludGVybmFscywgIiAgICAgICAgcmV0dXJuICR7bmFtZX0ke292ZXJsb2FkZWRJbmRl
eFN0cmluZ31NZXRob2Qke2Zvck1haW5Xb3JsZFN1ZmZpeH0oYXJncyk7XG4iKTsKICAgICB9CiAg
ICAgaWYgKCRsZWFzdE51bU1hbmRhdG9yeVBhcmFtcyA+PSAxKSB7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50SW50ZXJuYWxzLCAiICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgJGxlYXN0TnVtTWFu
ZGF0b3J5UGFyYW1zKVxuIik7CkBAIC0xNjE3LDYgKzE2MTksNyBAQCBzdWIgR2VuZXJhdGVGdW5j
dGlvbkNhbGxiYWNrCiB7CiAgICAgbXkgJGZ1bmN0aW9uID0gc2hpZnQ7CiAgICAgbXkgJGludGVy
ZmFjZSA9IHNoaWZ0OworICAgIG15ICRmb3JNYWluV29ybGRTdWZmaXggPSBzaGlmdDsKIAogICAg
IG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKICAgICBteSAkdjhJbnRlcmZh
Y2VOYW1lID0gIlY4JGludGVyZmFjZU5hbWUiOwpAQCAtMTYyNSwxNCArMTYyOCwxNCBAQCBzdWIg
R2VuZXJhdGVGdW5jdGlvbkNhbGxiYWNrCiAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNv
ZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGZ1bmN0aW9uLT5zaWduYXR1
cmUpOwogICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiI2lmICR7Y29uZGl0aW9uYWxT
dHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICBwdXNoKEBpbXBsQ29udGVu
dEludGVybmFscywgPDxFTkQpOwotc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiAke25hbWV9
TWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3N0YXRpYyB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gJHtuYW1lfU1ldGhvZENhbGxiYWNrJHtmb3JNYWluV29ybGRTdWZmaXh9
KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiBFTkQKICAgICBwdXNoKEBpbXBsQ29udGVu
dEludGVybmFscywgR2VuZXJhdGVGZWF0dXJlT2JzZXJ2YXRpb24oJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOE1lYXN1cmVBcyJ9KSk7CiAgICAgaWYgKEhhc0N1
c3RvbU1ldGhvZCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKSkgewog
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAgICByZXR1cm4gJHt2OEludGVy
ZmFjZU5hbWV9Ojoke25hbWV9TWV0aG9kQ3VzdG9tKGFyZ3MpO1xuIik7CiAgICAgfSBlbHNlIHsK
LSAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgcmV0dXJuICR7aW50ZXJm
YWNlTmFtZX1WOEludGVybmFsOjoke25hbWV9TWV0aG9kKGFyZ3MpO1xuIik7CisgICAgICAgIHB1
c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgIHJldHVybiAke2ludGVyZmFjZU5hbWV9VjhJ
bnRlcm5hbDo6JHtuYW1lfU1ldGhvZCR7Zm9yTWFpbldvcmxkU3VmZml4fShhcmdzKTtcbiIpOwog
ICAgIH0KICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIn1cblxuIik7CiAgICAgcHVz
aChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIjZW5kaWYgLy8gJHtjb25kaXRpb25hbFN0cmluZ31c
blxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwpAQCAtMTY0Miw2ICsxNjQ1LDcgQEAgc3ViIEdl
bmVyYXRlRnVuY3Rpb24KIHsKICAgICBteSAkZnVuY3Rpb24gPSBzaGlmdDsKICAgICBteSAkaW50
ZXJmYWNlID0gc2hpZnQ7CisgICAgbXkgJGZvck1haW5Xb3JsZFN1ZmZpeCA9IHNoaWZ0OwogCiAg
ICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOwogICAgIG15ICR2OEludGVy
ZmFjZU5hbWUgPSAiVjgkaW50ZXJmYWNlTmFtZSI7CkBAIC0xNjU5LDcgKzE2NjMsNyBAQCBzdWIg
R2VuZXJhdGVGdW5jdGlvbgogCiAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5l
cmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGZ1bmN0aW9uLT5zaWduYXR1cmUpOwog
ICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9
XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKLSAgICBwdXNoKEBpbXBsQ29udGVudEludGVy
bmFscywgInN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtuYW1lfU1ldGhvZChjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzKVxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMs
ICJzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+ICR7bmFtZX1NZXRob2Qke2Zvck1haW5Xb3Js
ZFN1ZmZpeH0oY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncylcbiIpOwogICAgIHB1c2goQGltcGxD
b250ZW50SW50ZXJuYWxzLCAie1xuIik7CiAKICAgICBpZiAoJG5hbWUgZXEgImFkZEV2ZW50TGlz
dGVuZXIiIHx8ICRuYW1lIGVxICJyZW1vdmVFdmVudExpc3RlbmVyIikgewpAQCAtMTc1OCwxMSAr
MTc2MiwxMSBAQCBFTkQKIEVORAogICAgIH0KIAotICAgIG15ICgkcGFyYW1ldGVyQ2hlY2tTdHJp
bmcsICRwYXJhbUluZGV4LCAlcmVwbGFjZW1lbnRzKSA9IEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNr
KCRmdW5jdGlvbiwgJGludGVyZmFjZU5hbWUpOworICAgIG15ICgkcGFyYW1ldGVyQ2hlY2tTdHJp
bmcsICRwYXJhbUluZGV4LCAlcmVwbGFjZW1lbnRzKSA9IEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNr
KCRmdW5jdGlvbiwgJGludGVyZmFjZU5hbWUsICRmb3JNYWluV29ybGRTdWZmaXgpOwogICAgIHB1
c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAkcGFyYW1ldGVyQ2hlY2tTdHJpbmcpOwogCiAgICAg
IyBCdWlsZCB0aGUgZnVuY3Rpb24gY2FsbCBzdHJpbmcuCi0gICAgcHVzaChAaW1wbENvbnRlbnRJ
bnRlcm5hbHMsIEdlbmVyYXRlRnVuY3Rpb25DYWxsU3RyaW5nKCRmdW5jdGlvbiwgJHBhcmFtSW5k
ZXgsICIgICAgIiwgJGludGVyZmFjZU5hbWUsICVyZXBsYWNlbWVudHMpKTsKKyAgICBwdXNoKEBp
bXBsQ29udGVudEludGVybmFscywgR2VuZXJhdGVGdW5jdGlvbkNhbGxTdHJpbmcoJGZ1bmN0aW9u
LCAkcGFyYW1JbmRleCwgIiAgICAiLCAkaW50ZXJmYWNlTmFtZSwgJGZvck1haW5Xb3JsZFN1ZmZp
eCwgJXJlcGxhY2VtZW50cykpOwogCiAgICAgaWYgKCRyYWlzZXNFeGNlcHRpb25zKSB7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgIH1cbiIpOwpAQCAtMTg0Niw2ICsx
ODUwLDcgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiB7CiAgICAgbXkgJGZ1bmN0aW9u
ID0gc2hpZnQ7CiAgICAgbXkgJGludGVyZmFjZU5hbWUgPSBzaGlmdDsKKyAgICBteSAkZm9yTWFp
bldvcmxkU3VmZml4ID0gc2hpZnQ7CiAKICAgICBteSAkcGFyYW1ldGVyQ2hlY2tTdHJpbmcgPSAi
IjsKICAgICBteSAkcGFyYW1JbmRleCA9IDA7CkBAIC0xODYxLDcgKzE4NjYsNyBAQCBzdWIgR2Vu
ZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKICAgICAgICAgbXkgJG9wdGlvbmFsID0gJHBhcmFtZXRlci0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9wdGlvbmFsIn07CiAgICAgICAgIGlmICgkb3B0aW9uYWwg
JiYgJG9wdGlvbmFsIG5lICJEZWZhdWx0SXNVbmRlZmluZWQiICYmICRvcHRpb25hbCBuZSAiRGVm
YXVsdElzTnVsbFN0cmluZyIgJiYgJG5hdGl2ZVR5cGUgbmUgIkRpY3Rpb25hcnkiICYmICEkcGFy
YW1ldGVyLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbGJhY2sifSkgewogICAgICAgICAgICAg
JHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPD0gJHBhcmFt
SW5kZXgpIHtcbiI7Ci0gICAgICAgICAgICBteSAkZnVuY3Rpb25DYWxsID0gR2VuZXJhdGVGdW5j
dGlvbkNhbGxTdHJpbmcoJGZ1bmN0aW9uLCAkcGFyYW1JbmRleCwgIiAgICAiIHggMiwgJGludGVy
ZmFjZU5hbWUsICVyZXBsYWNlbWVudHMpOworICAgICAgICAgICAgbXkgJGZ1bmN0aW9uQ2FsbCA9
IEdlbmVyYXRlRnVuY3Rpb25DYWxsU3RyaW5nKCRmdW5jdGlvbiwgJHBhcmFtSW5kZXgsICIgICAg
IiB4IDIsICRpbnRlcmZhY2VOYW1lLCAkZm9yTWFpbldvcmxkU3VmZml4LCAlcmVwbGFjZW1lbnRz
KTsKICAgICAgICAgICAgICRwYXJhbWV0ZXJDaGVja1N0cmluZyAuPSAkZnVuY3Rpb25DYWxsOwog
ICAgICAgICAgICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAgfVxuIjsKICAgICAgICAg
fQpAQCAtMjA4NCw3ICsyMDg5LDcgQEAgRU5ECiAKICAgICAjIEZJWE1FOiBDdXJyZW50bHkgW0Nv
bnN0cnVjdG9yKC4uLildIGRvZXMgbm90IHlldCBzdXBwb3J0IFtPcHRpb25hbF0gYXJndW1lbnRz
LgogICAgICMgSXQganVzdCBzdXBwb3J0cyBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBv
ciBbT3B0aW9uYWw9RGVmYXVsdElzTnVsbFN0cmluZ10uCi0gICAgbXkgKCRwYXJhbWV0ZXJDaGVj
a1N0cmluZywgJHBhcmFtSW5kZXgsICVyZXBsYWNlbWVudHMpID0gR2VuZXJhdGVQYXJhbWV0ZXJz
Q2hlY2soJGZ1bmN0aW9uLCAkaW50ZXJmYWNlTmFtZSk7CisgICAgbXkgKCRwYXJhbWV0ZXJDaGVj
a1N0cmluZywgJHBhcmFtSW5kZXgsICVyZXBsYWNlbWVudHMpID0gR2VuZXJhdGVQYXJhbWV0ZXJz
Q2hlY2soJGZ1bmN0aW9uLCAkaW50ZXJmYWNlTmFtZSwgIiIpOwogICAgIHB1c2goQGltcGxDb250
ZW50SW50ZXJuYWxzLCAkcGFyYW1ldGVyQ2hlY2tTdHJpbmcpOwogCiAgICAgaWYgKCRpbnRlcmZh
Y2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsV2l0aCJ9ICYmICRpbnRlcmZhY2UtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDYWxsV2l0aCJ9IGVxICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Iikg
ewpAQCAtMjU5MCw3ICsyNTk1LDE1IEBAIEVORAogCiAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5n
ID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGZ1bmN0aW9uLT5z
aWduYXR1cmUpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJp
bmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgJHtjb25kaXRpb25hbH0kdGVtcGxhdGUtPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woXCIk
bmFtZVwiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldygke2ludGVyZmFjZU5hbWV9VjhJbnRl
cm5hbDo6JHtuYW1lfU1ldGhvZENhbGxiYWNrLCB2OFVuZGVmaW5lZCgpLCAke3NpZ25hdHVyZX0p
JHByb3BlcnR5X2F0dHJpYnV0ZXMpO1xuIik7CisgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhQZXJXb3JsZEJpbmRpbmdzIn0pIHsKKyAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGN1cnJlbnRXb3JsZFR5cGUgPT0gTWFpbldvcmxk
KSB7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgICR7Y29uZGl0aW9u
YWx9JHRlbXBsYXRlLT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKFwiJG5hbWVcIiksIHY4OjpG
dW5jdGlvblRlbXBsYXRlOjpOZXcoJHtpbnRlcmZhY2VOYW1lfVY4SW50ZXJuYWw6OiR7bmFtZX1N
ZXRob2RDYWxsYmFja0Zvck1haW5Xb3JsZCwgdjhVbmRlZmluZWQoKSwgJHtzaWduYXR1cmV9KSRw
cm9wZXJ0eV9hdHRyaWJ1dGVzKTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICB9IGVsc2Uge1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAke2Nv
bmRpdGlvbmFsfSR0ZW1wbGF0ZS0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbChcIiRuYW1lXCIp
LCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KCR7aW50ZXJmYWNlTmFtZX1WOEludGVybmFsOjok
e25hbWV9TWV0aG9kQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksICR7c2lnbmF0dXJlfSkkcHJvcGVy
dHlfYXR0cmlidXRlcyk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxu
Iik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjb25k
aXRpb25hbH0kdGVtcGxhdGUtPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woXCIkbmFtZVwiKSwg
djg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldygke2ludGVyZmFjZU5hbWV9VjhJbnRlcm5hbDo6JHtu
YW1lfU1ldGhvZENhbGxiYWNrLCB2OFVuZGVmaW5lZCgpLCAke3NpZ25hdHVyZX0pJHByb3BlcnR5
X2F0dHJpYnV0ZXMpO1xuIik7CisgICAgfQogICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlm
IC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiB9CiAK
QEAgLTI5MzUsMTIgKzI5NDgsMjEgQEAgRU5ECiAgICAgbXkgJG5lZWRzRG9tYWluU2FmZUZ1bmN0
aW9uU2V0dGVyID0gMDsKICAgICAjIEdlbmVyYXRlIG1ldGhvZHMgZm9yIGZ1bmN0aW9ucy4KICAg
ICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9KSB7Ci0gICAg
ICAgIEdlbmVyYXRlRnVuY3Rpb24oJGZ1bmN0aW9uLCAkaW50ZXJmYWNlKTsKKyAgICAgICAgR2Vu
ZXJhdGVGdW5jdGlvbigkZnVuY3Rpb24sICRpbnRlcmZhY2UsICIiKTsKKyAgICAgICAgaWYgKCRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhQZXJXb3JsZEJpbmRp
bmdzIn0pIHsKKyAgICAgICAgICAgIEdlbmVyYXRlRnVuY3Rpb24oJGZ1bmN0aW9uLCAkaW50ZXJm
YWNlLCAiRm9yTWFpbldvcmxkIik7CisgICAgICAgIH0KICAgICAgICAgaWYgKCRmdW5jdGlvbi0+
e292ZXJsb2FkSW5kZXh9ID09IEB7JGZ1bmN0aW9uLT57b3ZlcmxvYWRzfX0pIHsKICAgICAgICAg
ICAgIGlmICgkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSA+IDEpIHsKLSAgICAgICAgICAgICAg
ICBHZW5lcmF0ZU92ZXJsb2FkZWRGdW5jdGlvbigkZnVuY3Rpb24sICRpbnRlcmZhY2UpOworICAg
ICAgICAgICAgICAgIEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9uKCRmdW5jdGlvbiwgJGludGVy
ZmFjZSwgIiIpOworICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IlY4UGVyV29ybGRCaW5kaW5ncyJ9KSB7CisgICAgICAgICAgICAg
ICAgICAgIEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9uKCRmdW5jdGlvbiwgJGludGVyZmFjZSwg
IkZvck1haW5Xb3JsZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIEdlbmVyYXRlRnVuY3Rpb25DYWxsYmFjaygkZnVuY3Rpb24sICRpbnRlcmZhY2UsICIi
KTsKKyAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IlY4UGVyV29ybGRCaW5kaW5ncyJ9KSB7CisgICAgICAgICAgICAgICAgR2VuZXJhdGVG
dW5jdGlvbkNhbGxiYWNrKCRmdW5jdGlvbiwgJGludGVyZmFjZSwgIkZvck1haW5Xb3JsZCIpOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgR2VuZXJhdGVGdW5jdGlvbkNhbGxiYWNrKCRmdW5j
dGlvbiwgJGludGVyZmFjZSk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPm5hbWUgZXEgIml0ZW0iKSB7CkBAIC0zMDI4LDEwICszMDUwLDE0IEBAIEVORAog
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJzdGF0aWMgY29uc3QgVjhET01Db25maWd1
cmF0aW9uOjpCYXRjaGVkTWV0aG9kICR7djhJbnRlcmZhY2VOYW1lfU1ldGhvZHNbXSA9IHtcbiIp
OwogICAgICAgICB9CiAgICAgICAgIG15ICRuYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5h
bWU7CisgICAgICAgIG15ICRtZXRob2RGb3JNYWluV29ybGQgPSAiMCI7CisgICAgICAgIGlmICgk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4UGVyV29ybGRCaW5k
aW5ncyJ9KSB7CisgICAgICAgICAgICAkbWV0aG9kRm9yTWFpbldvcmxkID0gIiR7aW50ZXJmYWNl
TmFtZX1WOEludGVybmFsOjoke25hbWV9TWV0aG9kQ2FsbGJhY2tGb3JNYWluV29ybGQiOworICAg
ICAgICB9CiAgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5H
ZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRmdW5jdGlvbi0+c2lnbmF0dXJlKTsKICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25k
aXRpb25hbFN0cmluZzsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLSAgICB7
IiRuYW1lIiwgJHtpbnRlcmZhY2VOYW1lfVY4SW50ZXJuYWw6OiR7bmFtZX1NZXRob2RDYWxsYmFj
a30sCisgICAgeyIkbmFtZSIsICR7aW50ZXJmYWNlTmFtZX1WOEludGVybmFsOjoke25hbWV9TWV0
aG9kQ2FsbGJhY2ssICR7bWV0aG9kRm9yTWFpbldvcmxkfX0sCiBFTkQKICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAg
JG51bV9jYWxsYmFja3MrKzsKQEAgLTM4NzEsNiArMzg5Nyw3IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0
aW9uQ2FsbFN0cmluZwogICAgIG15ICRudW1iZXJPZlBhcmFtZXRlcnMgPSBzaGlmdDsKICAgICBt
eSAkaW5kZW50ID0gc2hpZnQ7CiAgICAgbXkgJGludGVyZmFjZU5hbWUgPSBzaGlmdDsKKyAgICBt
eSAkZm9yTWFpbldvcmxkU3VmZml4ID0gc2hpZnQ7CiAgICAgbXkgJXJlcGxhY2VtZW50cyA9IEBf
OwogCiAgICAgbXkgJG5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKQEAgLTM5NzMs
OSArNDAwMCw5IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbFN0cmluZwogICAgICAgICBteSAk
c3ZnTmF0aXZlVHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRTVkdUeXBlTmVlZGluZ1RlYXJPZmYo
JHJldHVyblR5cGUpOwogICAgICAgICAjIEZJWE1FOiBVcGRhdGUgZm9yIGFsbCBTY3JpcHRXcmFw
cGFibGVzLgogICAgICAgICBpZiAoSXNET01Ob2RlVHlwZSgkaW50ZXJmYWNlTmFtZSkpIHsKLSAg
ICAgICAgICAgICRyZXN1bHQgLj0gJGluZGVudCAuICJyZXR1cm4gdG9WOEZhc3QoV1RGOjpnZXRQ
dHIoJHtzdmdOYXRpdmVUeXBlfTo6Y3JlYXRlKCRyZXR1cm4pKSwgYXJncywgaW1wKTtcbiI7Cisg
ICAgICAgICAgICAkcmVzdWx0IC49ICRpbmRlbnQgLiAicmV0dXJuIHRvVjhGYXN0JHtmb3JNYWlu
V29ybGRTdWZmaXh9KFdURjo6Z2V0UHRyKCR7c3ZnTmF0aXZlVHlwZX06OmNyZWF0ZSgkcmV0dXJu
KSksIGFyZ3MsIGltcCk7XG4iOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgJHJlc3Vs
dCAuPSAkaW5kZW50IC4gInJldHVybiB0b1Y4KFdURjo6Z2V0UHRyKCR7c3ZnTmF0aXZlVHlwZX06
OmNyZWF0ZSgkcmV0dXJuKSksIGFyZ3MuSG9sZGVyKCksIGFyZ3MuR2V0SXNvbGF0ZSgpKTtcbiI7
CisgICAgICAgICAgICAkcmVzdWx0IC49ICRpbmRlbnQgLiAicmV0dXJuIHRvVjgke2Zvck1haW5X
b3JsZFN1ZmZpeH0oV1RGOjpnZXRQdHIoJHtzdmdOYXRpdmVUeXBlfTo6Y3JlYXRlKCRyZXR1cm4p
KSwgYXJncy5Ib2xkZXIoKSwgYXJncy5HZXRJc29sYXRlKCkpO1xuIjsKICAgICAgICAgfQogICAg
ICAgICByZXR1cm4gJHJlc3VsdDsKICAgICB9CkBAIC0zOTkwLDkgKzQwMTcsOSBAQCBzdWIgR2Vu
ZXJhdGVGdW5jdGlvbkNhbGxTdHJpbmcKICAgICBteSAkbmF0aXZlVmFsdWU7CiAgICAgIyBGSVhN
RTogVXBkYXRlIGZvciBhbGwgU2NyaXB0V3JhcHBhYmxlcy4KICAgICBpZiAoSXNET01Ob2RlVHlw
ZSgkaW50ZXJmYWNlTmFtZSkpIHsKLSAgICAgICAgJG5hdGl2ZVZhbHVlID0gTmF0aXZlVG9KU1Zh
bHVlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLCAkcmV0dXJuLCAiYXJncy5Ib2xkZXIoKSIsICJhcmdz
LkdldElzb2xhdGUoKSIsICJhcmdzIiwgImltcCIsICJSZXR1cm5VbnNhZmVIYW5kbGUiLCAiIik7
CisgICAgICAgICRuYXRpdmVWYWx1ZSA9IE5hdGl2ZVRvSlNWYWx1ZSgkZnVuY3Rpb24tPnNpZ25h
dHVyZSwgJHJldHVybiwgImFyZ3MuSG9sZGVyKCkiLCAiYXJncy5HZXRJc29sYXRlKCkiLCAiYXJn
cyIsICJpbXAiLCAiUmV0dXJuVW5zYWZlSGFuZGxlIiwgJGZvck1haW5Xb3JsZFN1ZmZpeCk7CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgJG5hdGl2ZVZhbHVlID0gTmF0aXZlVG9KU1ZhbHVlKCRmdW5j
dGlvbi0+c2lnbmF0dXJlLCAkcmV0dXJuLCAiYXJncy5Ib2xkZXIoKSIsICJhcmdzLkdldElzb2xh
dGUoKSIsIDAsIDAsICJSZXR1cm5VbnNhZmVIYW5kbGUiLCAiIik7CisgICAgICAgICRuYXRpdmVW
YWx1ZSA9IE5hdGl2ZVRvSlNWYWx1ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZSwgJHJldHVybiwgImFy
Z3MuSG9sZGVyKCkiLCAiYXJncy5HZXRJc29sYXRlKCkiLCAwLCAwLCAiUmV0dXJuVW5zYWZlSGFu
ZGxlIiwgJGZvck1haW5Xb3JsZFN1ZmZpeCk7CiAgICAgfQogCiAgICAgJHJlc3VsdCAuPSAkaW5k
ZW50IC4gInJldHVybiAiIC4gJG5hdGl2ZVZhbHVlIC4gIjtcbiI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggMmUyNjcwYjU0OTY4
MTBkM2VlMjkyN2JmODM2Y2RkNDQ4ZWJhM2RlMi4uOThkZWVkNGEwMWFkNzVmZTExNWFjZDUxMTM4
NDY2MjVjYmRkY2FmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9UZXN0T2JqLmlkbApAQCAtMjk2LDQgKzI5NiwxMiBAQCBlbnVtIFRlc3RFbnVtVHlwZSB7
ICIiLCAiRW51bVZhbHVlMSIsICJFbnVtVmFsdWUyIiwgIkVudW1WYWx1ZTMiIH07CiAKICAgICBh
dHRyaWJ1dGUgbG9uZz8gbnVsbGFibGVTdHJpbmdWYWx1ZQogICAgICAgICBnZXR0ZXIgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CisKKyNpZiBkZWZpbmVkKFRFU1RJTkdfVjgpCisgICAgW1Y4UGVyV29y
bGRCaW5kaW5nc10gcmVhZG9ubHkgYXR0cmlidXRlIFRlc3RPYmogcGVyV29ybGRSZWFkT25seUF0
dHJpYnV0ZTsKKyAgICBbVjhQZXJXb3JsZEJpbmRpbmdzXSBhdHRyaWJ1dGUgVGVzdE9iaiBwZXJX
b3JsZEF0dHJpYnV0ZTsKKyAgICBbVjhQZXJXb3JsZEJpbmRpbmdzXSB2b2lkIHBlcldvcmxkTWV0
aG9kKCk7CisgICAgW1Y4UGVyV29ybGRCaW5kaW5nc10gdm9pZCBvdmVybG9hZGVkUGVyV29ybGRN
ZXRob2QoaW4gbG9uZyBsb25nQXJnKTsKKyAgICBbVjhQZXJXb3JsZEJpbmRpbmdzXSB2b2lkIG92
ZXJsb2FkZWRQZXJXb3JsZE1ldGhvZChpbiBET01TdHJpbmcgc3RyQXJnLCBpbiBsb25nIGxvbmdB
cmcpOworI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5jcHAKaW5kZXggYWEwMmY5MDY5NjdlMmM2
YjIwMDAzNzgxODgwNTQ0Y2YzNTVhOGQwNS4uMDRjN2FhNmI1YTdkMzY2ZTY2MTA3NmIzZjE1YWU5
NTM0YWZiZTY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwKEZsb2F0NjRBcnJheSogaW1wbCwgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiBjcmVhdGlvbkMKIH0KIAogc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJhdGlv
bjo6QmF0Y2hlZE1ldGhvZCBWOEZsb2F0NjRBcnJheU1ldGhvZHNbXSA9IHsKLSAgICB7InNldCIs
IEZsb2F0NjRBcnJheVY4SW50ZXJuYWw6OnNldE1ldGhvZENhbGxiYWNrfSwKKyAgICB7InNldCIs
IEZsb2F0NjRBcnJheVY4SW50ZXJuYWw6OnNldE1ldGhvZENhbGxiYWNrLCAwfSwKIH07CiAKIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOEZsb2F0NjRBcnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRl
ci5jcHAKaW5kZXggNDQ3ZGZhZmE4ODU1ZGI0Njc1ODllZDEwOGIwYjA0NGU2YzFkMTNhMy4uZTk5
ZWRhNjUwYTdiNzUzMzhlMDA0ZDUzYjA1N2JjZjZmNDQ2MWViYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCkBAIC04OCw3ICs4OCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gYW5vdGhlckZ1bmN0aW9uTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYKIH0gLy8gbmFtZXNwYWNlIFRlc3RDdXN0b21OYW1lZEdldHRlclY4SW50ZXJuYWwKIAog
c3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZE1ldGhvZCBWOFRlc3RDdXN0
b21OYW1lZEdldHRlck1ldGhvZHNbXSA9IHsKLSAgICB7ImFub3RoZXJGdW5jdGlvbiIsIFRlc3RD
dXN0b21OYW1lZEdldHRlclY4SW50ZXJuYWw6OmFub3RoZXJGdW5jdGlvbk1ldGhvZENhbGxiYWNr
fSwKKyAgICB7ImFub3RoZXJGdW5jdGlvbiIsIFRlc3RDdXN0b21OYW1lZEdldHRlclY4SW50ZXJu
YWw6OmFub3RoZXJGdW5jdGlvbk1ldGhvZENhbGxiYWNrLCAwfSwKIH07CiAKIHN0YXRpYyB2ODo6
UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXJUZW1wbGF0ZSh2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZGVz
Yywgdjg6Oklzb2xhdGUqIGlzb2xhdGUsIFdyYXBwZXJXb3JsZFR5cGUgY3VycmVudFdvcmxkVHlw
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RFdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuY3BwCmluZGV4IDBjOGVhMWFlOGZlYzU1ZjQyZDU5YWY5
OTMwMTQyNGVjOGRmN2ZiMGMuLjZjNzU5MTU0MThmNzRmMzc4MjY0NjYyMWZhMzk5OTc3NWU5ZGE1
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RFdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcApAQCAtMTU0LDkgKzE1NCw5IEBAIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZGlzcGF0Y2hFdmVudE1ldGhvZENhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyCiB9IC8vIG5hbWVzcGFjZSBUZXN0RXZlbnRUYXJnZXRWOEludGVy
bmFsCiAKIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRNZXRob2QgVjhU
ZXN0RXZlbnRUYXJnZXRNZXRob2RzW10gPSB7Ci0gICAgeyJpdGVtIiwgVGVzdEV2ZW50VGFyZ2V0
VjhJbnRlcm5hbDo6aXRlbU1ldGhvZENhbGxiYWNrfSwKLSAgICB7ImFkZEV2ZW50TGlzdGVuZXIi
LCBUZXN0RXZlbnRUYXJnZXRWOEludGVybmFsOjphZGRFdmVudExpc3RlbmVyTWV0aG9kQ2FsbGJh
Y2t9LAotICAgIHsicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIFRlc3RFdmVudFRhcmdldFY4SW50ZXJu
YWw6OnJlbW92ZUV2ZW50TGlzdGVuZXJNZXRob2RDYWxsYmFja30sCisgICAgeyJpdGVtIiwgVGVz
dEV2ZW50VGFyZ2V0VjhJbnRlcm5hbDo6aXRlbU1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7ImFk
ZEV2ZW50TGlzdGVuZXIiLCBUZXN0RXZlbnRUYXJnZXRWOEludGVybmFsOjphZGRFdmVudExpc3Rl
bmVyTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIFRlc3RF
dmVudFRhcmdldFY4SW50ZXJuYWw6OnJlbW92ZUV2ZW50TGlzdGVuZXJNZXRob2RDYWxsYmFjaywg
MH0sCiB9OwogCiBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENv
bmZpZ3VyZVY4VGVzdEV2ZW50VGFyZ2V0VGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0
aW9uVGVtcGxhdGU+IGRlc2MsIHY4OjpJc29sYXRlKiBpc29sYXRlLCBXcmFwcGVyV29ybGRUeXBl
IGN1cnJlbnRXb3JsZFR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCmluZGV4IDdkYWU1OGE3MTY5
ZjFjNDEwYjNiZjgzNmIzODJhYTcxZmQ5MjY1YzUuLjM3NjRkZjhjMmYxMDhmNzA1NzNhYzkzMTBl
ZmZkYTZlOGM3MzIzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCkBAIC0zODMsMTAgKzM4Mywx
MCBAQCBzdGF0aWMgY29uc3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVkQXR0cmlidXRlIFY4
VGVzdEludGVyZmFjZUF0dHJzW10gPSB7CiAKIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRp
b246OkJhdGNoZWRNZXRob2QgVjhUZXN0SW50ZXJmYWNlTWV0aG9kc1tdID0gewogI2lmIEVOQUJM
RShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotICAgIHsic3VwcGxlbWVudGFs
TWV0aG9kMSIsIFRlc3RJbnRlcmZhY2VWOEludGVybmFsOjpzdXBwbGVtZW50YWxNZXRob2QxTWV0
aG9kQ2FsbGJhY2t9LAorICAgIHsic3VwcGxlbWVudGFsTWV0aG9kMSIsIFRlc3RJbnRlcmZhY2VW
OEludGVybmFsOjpzdXBwbGVtZW50YWxNZXRob2QxTWV0aG9kQ2FsbGJhY2ssIDB9LAogI2VuZGlm
CiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgeyJz
dXBwbGVtZW50YWxNZXRob2QzIiwgVGVzdEludGVyZmFjZVY4SW50ZXJuYWw6OnN1cHBsZW1lbnRh
bE1ldGhvZDNNZXRob2RDYWxsYmFja30sCisgICAgeyJzdXBwbGVtZW50YWxNZXRob2QzIiwgVGVz
dEludGVyZmFjZVY4SW50ZXJuYWw6OnN1cHBsZW1lbnRhbE1ldGhvZDNNZXRob2RDYWxsYmFjaywg
MH0sCiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmNwcAppbmRleCBiMWZmMjNjYzQ4ZTBiNGEzOTkyMjhjYjAxMGY0ZDZhYzllYTg5ODViLi41
MDYyMDE3OWQ3YmNmMTJmZjQ3NzE5N2ZkOWEwMWQ1MzMxNThmYzExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBAIC04OSw3ICs4OSw3IEBAIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9kTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKIH0gLy8gbmFtZXNwYWNlIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
VjhJbnRlcm5hbAogCiBzdGF0aWMgY29uc3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVkTWV0
aG9kIFY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJNZXRob2RzW10gPSB7Ci0gICAgeyJtZXRo
b2QiLCBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclY4SW50ZXJuYWw6Om1ldGhvZE1ldGhvZENh
bGxiYWNrfSwKKyAgICB7Im1ldGhvZCIsIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVjhJbnRl
cm5hbDo6bWV0aG9kTWV0aG9kQ2FsbGJhY2ssIDB9LAogfTsKIAogc3RhdGljIHY4OjpQZXJzaXN0
ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyVGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2Ms
IHY4OjpJc29sYXRlKiBpc29sYXRlLCBXcmFwcGVyV29ybGRUeXBlIGN1cnJlbnRXb3JsZFR5cGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RPYmouY3BwCmluZGV4IGFmN2ExMDJiNWFiZWRlMzA5MjI1YWFhOTFiN2E1YWE0MTBiYzk3NWYu
LmQwYzhhNWRmZDlhN2RmNGQyNWI5ZmNhNTVhNzAzOTJkZDhjNzRjYzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBA
IC0xNzUwLDYgKzE3NTAsOTAgQEAgc3RhdGljIHZvaWQgbnVsbGFibGVTdHJpbmdWYWx1ZUF0dHJT
ZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjgKICAgICBUZXN0T2Jq
VjhJbnRlcm5hbDo6bnVsbGFibGVTdHJpbmdWYWx1ZUF0dHJTZXR0ZXIobmFtZSwgdmFsdWUsIGlu
Zm8pOwogfQogCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHBlcldvcmxkUmVhZE9ubHlB
dHRyaWJ1dGVBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6
QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9O
YXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgUmVmUHRyPFRlc3RPYmo+IHJlc3VsdCA9IGltcC0+
cGVyV29ybGRSZWFkT25seUF0dHJpYnV0ZSgpOworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3
cmFwcGVyID0gcmVzdWx0LmdldCgpID8gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KERPTURhdGFTdG9y
ZTo6Z2V0V3JhcHBlcihyZXN1bHQuZ2V0KCksIGluZm8uR2V0SXNvbGF0ZSgpKSkgOiB2OFVuZGVm
aW5lZCgpOworICAgIGlmICh3cmFwcGVyLklzRW1wdHkoKSkgeworICAgICAgICB3cmFwcGVyID0g
dG9WOChyZXN1bHQuZ2V0KCksIGluZm8uSG9sZGVyKCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAg
ICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKKyAgICAgICAgICAgIFY4SGlkZGVuUHJvcGVy
dHlOYW1lOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZShpbmZvLkhvbGRlcigpLCAicGVyV29ybGRS
ZWFkT25seUF0dHJpYnV0ZSIsIHdyYXBwZXIpOworICAgIH0KKyAgICByZXR1cm4gd3JhcHBlcjsK
K30KKworc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBwZXJXb3JsZFJlYWRPbmx5QXR0cmli
dXRlQXR0ckdldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2
ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIHJldHVybiBUZXN0T2JqVjhJbnRlcm5hbDo6
cGVyV29ybGRSZWFkT25seUF0dHJpYnV0ZUF0dHJHZXR0ZXIobmFtZSwgaW5mbyk7Cit9CisKK3N0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcGVyV29ybGRSZWFkT25seUF0dHJpYnV0ZUF0dHJH
ZXR0ZXJGb3JNYWluV29ybGQodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpB
Y2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05h
dGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBSZWZQdHI8VGVzdE9iaj4gcmVzdWx0ID0gaW1wLT5w
ZXJXb3JsZFJlYWRPbmx5QXR0cmlidXRlKCk7CisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdy
YXBwZXIgPSByZXN1bHQuZ2V0KCkgPyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oRE9NRGF0YVN0b3Jl
OjpnZXRXcmFwcGVyKHJlc3VsdC5nZXQoKSwgaW5mby5HZXRJc29sYXRlKCkpKSA6IHY4VW5kZWZp
bmVkKCk7CisgICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKSB7CisgICAgICAgIHdyYXBwZXIgPSB0
b1Y4KHJlc3VsdC5nZXQoKSwgaW5mby5Ib2xkZXIoKSwgaW5mby5HZXRJc29sYXRlKCkpOworICAg
ICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQorICAgICAgICAgICAgVjhIaWRkZW5Qcm9wZXJ0
eU5hbWU6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKGluZm8uSG9sZGVyKCksICJwZXJXb3JsZFJl
YWRPbmx5QXR0cmlidXRlIiwgd3JhcHBlcik7CisgICAgfQorICAgIHJldHVybiB3cmFwcGVyOwor
fQorCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHBlcldvcmxkUmVhZE9ubHlBdHRyaWJ1
dGVBdHRyR2V0dGVyQ2FsbGJhY2tGb3JNYWluV29ybGQodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5h
bWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgcmV0dXJuIFRlc3RPYmpW
OEludGVybmFsOjpwZXJXb3JsZFJlYWRPbmx5QXR0cmlidXRlQXR0ckdldHRlckZvck1haW5Xb3Js
ZChuYW1lLCBpbmZvKTsKK30KKworc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBwZXJXb3Js
ZEF0dHJpYnV0ZUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4
OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0
b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICByZXR1cm4gdG9WOEZhc3QoaW1wLT5wZXJXb3Js
ZEF0dHJpYnV0ZSgpLCBpbmZvLCBpbXApOworfQorCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHBlcldvcmxkQXR0cmlidXRlQXR0ckdldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIHJldHVybiBU
ZXN0T2JqVjhJbnRlcm5hbDo6cGVyV29ybGRBdHRyaWJ1dGVBdHRyR2V0dGVyKG5hbWUsIGluZm8p
OworfQorCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHBlcldvcmxkQXR0cmlidXRlQXR0
ckdldHRlckZvck1haW5Xb3JsZCh2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6
OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRv
TmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJldHVybiB0b1Y4RmFzdEZvck1haW5Xb3JsZChp
bXAtPnBlcldvcmxkQXR0cmlidXRlKCksIGluZm8sIGltcCk7Cit9CisKK3N0YXRpYyB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gcGVyV29ybGRBdHRyaWJ1dGVBdHRyR2V0dGVyQ2FsbGJhY2tGb3JNYWlu
V29ybGQodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8m
IGluZm8pCit7CisgICAgcmV0dXJuIFRlc3RPYmpWOEludGVybmFsOjpwZXJXb3JsZEF0dHJpYnV0
ZUF0dHJHZXR0ZXJGb3JNYWluV29ybGQobmFtZSwgaW5mbyk7Cit9CisKK3N0YXRpYyB2b2lkIHBl
cldvcmxkQXR0cmlidXRlQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6
OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7
CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsK
KyAgICBUZXN0T2JqKiB2ID0gVjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSwgaW5mby5HZXRJ
c29sYXRlKCksIHdvcmxkVHlwZShpbmZvLkdldElzb2xhdGUoKSkpID8gVjhUZXN0T2JqOjp0b05h
dGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKSkgOiAwOworICAgIGltcC0+
c2V0UGVyV29ybGRBdHRyaWJ1dGUoV1RGOjpnZXRQdHIodikpOworICAgIHJldHVybjsKK30KKwor
c3RhdGljIHZvaWQgcGVyV29ybGRBdHRyaWJ1dGVBdHRyU2V0dGVyQ2FsbGJhY2sodjg6OkxvY2Fs
PHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6
QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIFRlc3RPYmpWOEludGVybmFsOjpwZXJXb3JsZEF0
dHJpYnV0ZUF0dHJTZXR0ZXIobmFtZSwgdmFsdWUsIGluZm8pOworfQorCitzdGF0aWMgdm9pZCBw
ZXJXb3JsZEF0dHJpYnV0ZUF0dHJTZXR0ZXJGb3JNYWluV29ybGQodjg6OkxvY2FsPHY4OjpTdHJp
bmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJ
bmZvJiBpbmZvKQoreworICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5m
by5Ib2xkZXIoKSk7CisgICAgVGVzdE9iaiogdiA9IFY4VGVzdE9iajo6SGFzSW5zdGFuY2UodmFs
dWUsIGluZm8uR2V0SXNvbGF0ZSgpLCB3b3JsZFR5cGUoaW5mby5HZXRJc29sYXRlKCkpKSA/IFY4
VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpIDog
MDsKKyAgICBpbXAtPnNldFBlcldvcmxkQXR0cmlidXRlKFdURjo6Z2V0UHRyKHYpKTsKKyAgICBy
ZXR1cm47Cit9CisKK3N0YXRpYyB2b2lkIHBlcldvcmxkQXR0cmlidXRlQXR0clNldHRlckNhbGxi
YWNrRm9yTWFpbldvcmxkKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6
OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBUZXN0
T2JqVjhJbnRlcm5hbDo6cGVyV29ybGRBdHRyaWJ1dGVBdHRyU2V0dGVyRm9yTWFpbldvcmxkKG5h
bWUsIHZhbHVlLCBpbmZvKTsKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBUZXN0
T2JqQ29uc3RydWN0b3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4
OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGRhdGEg
PSBpbmZvLkRhdGEoKTsKQEAgLTMwODAsNiArMzE2NCwxMDQgQEAgc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiB2YXJpYWRpY05vZGVNZXRob2RNZXRob2RDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnQKICAgICByZXR1cm4gVGVzdE9ialY4SW50ZXJuYWw6OnZhcmlhZGljTm9kZU1ldGhvZE1l
dGhvZChhcmdzKTsKIH0KIAorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBwZXJXb3JsZE1l
dGhvZE1ldGhvZChjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIFRlc3RPYmoqIGlt
cCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgaW1wLT5wZXJXb3Js
ZE1ldGhvZCgpOworICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOworfQorCitzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IHBlcldvcmxkTWV0aG9kTWV0aG9kRm9yTWFpbldvcmxkKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05h
dGl2ZShhcmdzLkhvbGRlcigpKTsKKyAgICBpbXAtPnBlcldvcmxkTWV0aG9kKCk7CisgICAgcmV0
dXJuIHY4VW5kZWZpbmVkKCk7Cit9CisKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcGVy
V29ybGRNZXRob2RNZXRob2RDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQorewor
ICAgIHJldHVybiBUZXN0T2JqVjhJbnRlcm5hbDo6cGVyV29ybGRNZXRob2RNZXRob2QoYXJncyk7
Cit9CisKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcGVyV29ybGRNZXRob2RNZXRob2RD
YWxsYmFja0Zvck1haW5Xb3JsZChjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIHJl
dHVybiBUZXN0T2JqVjhJbnRlcm5hbDo6cGVyV29ybGRNZXRob2RNZXRob2RGb3JNYWluV29ybGQo
YXJncyk7Cit9CisKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRlZFBlcldv
cmxkTWV0aG9kMU1ldGhvZChjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIGlmIChh
cmdzLkxlbmd0aCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOworICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgVjhUUllDQVRDSChpbnQsIGxvbmdBcmcsIHRv
SW50MzIoYXJnc1swXSkpOworICAgIGltcC0+b3ZlcmxvYWRlZFBlcldvcmxkTWV0aG9kKGxvbmdB
cmcpOworICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOworfQorCitzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IG92ZXJsb2FkZWRQZXJXb3JsZE1ldGhvZDFNZXRob2RGb3JNYWluV29ybGQoY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCisg
ICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVy
KCkpOworICAgIFY4VFJZQ0FUQ0goaW50LCBsb25nQXJnLCB0b0ludDMyKGFyZ3NbMF0pKTsKKyAg
ICBpbXAtPm92ZXJsb2FkZWRQZXJXb3JsZE1ldGhvZChsb25nQXJnKTsKKyAgICByZXR1cm4gdjhV
bmRlZmluZWQoKTsKK30KKworc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVk
UGVyV29ybGRNZXRob2QyTWV0aG9kKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAg
aWYgKGFyZ3MuTGVuZ3RoKCkgPCAyKQorICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0
T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKKyAgICBWOFRSWUNBVENIX0ZPUl9WOFNUUklO
R1JFU09VUkNFKFY4U3RyaW5nUmVzb3VyY2U8Piwgc3RyQXJnLCBhcmdzWzBdKTsKKyAgICBWOFRS
WUNBVENIKGludCwgbG9uZ0FyZywgdG9JbnQzMihhcmdzWzFdKSk7CisgICAgaW1wLT5vdmVybG9h
ZGVkUGVyV29ybGRNZXRob2Qoc3RyQXJnLCBsb25nQXJnKTsKKyAgICByZXR1cm4gdjhVbmRlZmlu
ZWQoKTsKK30KKworc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVkUGVyV29y
bGRNZXRob2QyTWV0aG9kRm9yTWFpbldvcmxkKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7
CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAyKQorICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CisgICAgVGVzdE9iaiogaW1wID0g
VjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKKyAgICBWOFRSWUNBVENIX0ZPUl9W
OFNUUklOR1JFU09VUkNFKFY4U3RyaW5nUmVzb3VyY2U8Piwgc3RyQXJnLCBhcmdzWzBdKTsKKyAg
ICBWOFRSWUNBVENIKGludCwgbG9uZ0FyZywgdG9JbnQzMihhcmdzWzFdKSk7CisgICAgaW1wLT5v
dmVybG9hZGVkUGVyV29ybGRNZXRob2Qoc3RyQXJnLCBsb25nQXJnKTsKKyAgICByZXR1cm4gdjhV
bmRlZmluZWQoKTsKK30KKworc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVk
UGVyV29ybGRNZXRob2RNZXRob2QoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBp
ZiAoYXJncy5MZW5ndGgoKSA9PSAxKQorICAgICAgICByZXR1cm4gb3ZlcmxvYWRlZFBlcldvcmxk
TWV0aG9kMU1ldGhvZChhcmdzKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA9PSAyKQorICAgICAg
ICByZXR1cm4gb3ZlcmxvYWRlZFBlcldvcmxkTWV0aG9kMk1ldGhvZChhcmdzKTsKKyAgICBpZiAo
YXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoMCwg
YXJncy5HZXRJc29sYXRlKCkpOworfQorCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG92
ZXJsb2FkZWRQZXJXb3JsZE1ldGhvZE1ldGhvZEZvck1haW5Xb3JsZChjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQoreworICAgIGlmIChhcmdzLkxlbmd0aCgpID09IDEpCisgICAgICAgIHJldHVy
biBvdmVybG9hZGVkUGVyV29ybGRNZXRob2QxTWV0aG9kRm9yTWFpbldvcmxkKGFyZ3MpOworICAg
IGlmIChhcmdzLkxlbmd0aCgpID09IDIpCisgICAgICAgIHJldHVybiBvdmVybG9hZGVkUGVyV29y
bGRNZXRob2QyTWV0aG9kRm9yTWFpbldvcmxkKGFyZ3MpOworICAgIGlmIChhcmdzLkxlbmd0aCgp
IDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5H
ZXRJc29sYXRlKCkpOworICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigwLCBhcmdzLkdldElzb2xh
dGUoKSk7Cit9CisKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRlZFBlcldv
cmxkTWV0aG9kTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAg
ICByZXR1cm4gVGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRQZXJXb3JsZE1ldGhvZE1ldGhv
ZChhcmdzKTsKK30KKworc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVkUGVy
V29ybGRNZXRob2RNZXRob2RDYWxsYmFja0Zvck1haW5Xb3JsZChjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzKQoreworICAgIHJldHVybiBUZXN0T2JqVjhJbnRlcm5hbDo6b3ZlcmxvYWRlZFBlcldv
cmxkTWV0aG9kTWV0aG9kRm9yTWFpbldvcmxkKGFyZ3MpOworfQorCiBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGNvbnN0cnVjdG9yKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAg
ICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQpAQCAtMzI0OCw2MCArMzQzMCw2NiBAQCBzdGF0aWMg
Y29uc3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVkQXR0cmlidXRlIFY4VGVzdE9iakF0dHJz
W10gPSB7CiAgICAgeyJudWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSIsIFRlc3RPYmpWOElu
dGVybmFsOjpudWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZUF0dHJHZXR0ZXJDYWxsYmFjaywg
VGVzdE9ialY4SW50ZXJuYWw6Om51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlQXR0clNldHRl
ckNhbGxiYWNrLCAwLCAwLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3ND
b250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4o
djg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ251bGxh
YmxlU3RyaW5nVmFsdWUnIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKICAgICB7Im51
bGxhYmxlU3RyaW5nVmFsdWUiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bnVsbGFibGVTdHJpbmdWYWx1
ZUF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6Om51bGxhYmxlU3RyaW5nVmFs
dWVBdHRyU2V0dGVyQ2FsbGJhY2ssIDAsIDAsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8
djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5
QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIC8vIEF0dHJp
YnV0ZSAncGVyV29ybGRSZWFkT25seUF0dHJpYnV0ZScgKFR5cGU6ICdyZWFkb25seSBhdHRyaWJ1
dGUnIEV4dEF0dHI6ICdWOFBlcldvcmxkQmluZGluZ3MnKQorICAgIHsicGVyV29ybGRSZWFkT25s
eUF0dHJpYnV0ZSIsIFRlc3RPYmpWOEludGVybmFsOjpwZXJXb3JsZFJlYWRPbmx5QXR0cmlidXRl
QXR0ckdldHRlckNhbGxiYWNrLCAwLCBUZXN0T2JqVjhJbnRlcm5hbDo6cGVyV29ybGRSZWFkT25s
eUF0dHJpYnV0ZUF0dHJHZXR0ZXJDYWxsYmFja0Zvck1haW5Xb3JsZCwgMCwgMCAvKiBubyBkYXRh
ICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNf
Y2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAq
L30sCisgICAgLy8gQXR0cmlidXRlICdwZXJXb3JsZEF0dHJpYnV0ZScgKFR5cGU6ICdhdHRyaWJ1
dGUnIEV4dEF0dHI6ICdWOFBlcldvcmxkQmluZGluZ3MnKQorICAgIHsicGVyV29ybGRBdHRyaWJ1
dGUiLCBUZXN0T2JqVjhJbnRlcm5hbDo6cGVyV29ybGRBdHRyaWJ1dGVBdHRyR2V0dGVyQ2FsbGJh
Y2ssIFRlc3RPYmpWOEludGVybmFsOjpwZXJXb3JsZEF0dHJpYnV0ZUF0dHJTZXR0ZXJDYWxsYmFj
aywgVGVzdE9ialY4SW50ZXJuYWw6OnBlcldvcmxkQXR0cmlidXRlQXR0ckdldHRlckNhbGxiYWNr
Rm9yTWFpbldvcmxkLCBUZXN0T2JqVjhJbnRlcm5hbDo6cGVyV29ybGRBdHRyaWJ1dGVBdHRyU2V0
dGVyQ2FsbGJhY2tGb3JNYWluV29ybGQsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6
OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0
cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogfTsKIAogc3RhdGljIGNv
bnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZE1ldGhvZCBWOFRlc3RPYmpNZXRob2RzW10g
PSB7Ci0gICAgeyJ2b2lkTWV0aG9kIiwgVGVzdE9ialY4SW50ZXJuYWw6OnZvaWRNZXRob2RNZXRo
b2RDYWxsYmFja30sCi0gICAgeyJsb25nTWV0aG9kIiwgVGVzdE9ialY4SW50ZXJuYWw6OmxvbmdN
ZXRob2RNZXRob2RDYWxsYmFja30sCi0gICAgeyJvYmpNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5h
bDo6b2JqTWV0aG9kTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsibWV0aG9kUmV0dXJuaW5nU2VxdWVu
Y2UiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kUmV0dXJuaW5nU2VxdWVuY2VNZXRob2RDYWxs
YmFja30sCi0gICAgeyJzZXJpYWxpemVkVmFsdWUiLCBUZXN0T2JqVjhJbnRlcm5hbDo6c2VyaWFs
aXplZFZhbHVlTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsib3B0aW9uc09iamVjdCIsIFRlc3RPYmpW
OEludGVybmFsOjpvcHRpb25zT2JqZWN0TWV0aG9kQ2FsbGJhY2t9LAotICAgIHsibWV0aG9kV2l0
aEV4Y2VwdGlvbiIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoRXhjZXB0aW9uTWV0aG9k
Q2FsbGJhY2t9LAotICAgIHsiY3VzdG9tTWV0aG9kIiwgVGVzdE9ialY4SW50ZXJuYWw6OmN1c3Rv
bU1ldGhvZE1ldGhvZENhbGxiYWNrfSwKLSAgICB7ImN1c3RvbU1ldGhvZFdpdGhBcmdzIiwgVGVz
dE9ialY4SW50ZXJuYWw6OmN1c3RvbU1ldGhvZFdpdGhBcmdzTWV0aG9kQ2FsbGJhY2t9LAotICAg
IHsiYWRkRXZlbnRMaXN0ZW5lciIsIFRlc3RPYmpWOEludGVybmFsOjphZGRFdmVudExpc3RlbmVy
TWV0aG9kQ2FsbGJhY2t9LAotICAgIHsicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIFRlc3RPYmpWOElu
dGVybmFsOjpyZW1vdmVFdmVudExpc3RlbmVyTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsid2l0aFNj
cmlwdFN0YXRlVm9pZCIsIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0U3RhdGVWb2lkTWV0
aG9kQ2FsbGJhY2t9LAotICAgIHsid2l0aFNjcmlwdFN0YXRlT2JqIiwgVGVzdE9ialY4SW50ZXJu
YWw6OndpdGhTY3JpcHRTdGF0ZU9iak1ldGhvZENhbGxiYWNrfSwKLSAgICB7IndpdGhTY3JpcHRT
dGF0ZVZvaWRFeGNlcHRpb24iLCBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdFN0YXRlVm9p
ZEV4Y2VwdGlvbk1ldGhvZENhbGxiYWNrfSwKLSAgICB7IndpdGhTY3JpcHRTdGF0ZU9iakV4Y2Vw
dGlvbiIsIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0U3RhdGVPYmpFeGNlcHRpb25NZXRo
b2RDYWxsYmFja30sCi0gICAgeyJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCIsIFRlc3RPYmpW
OEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dE1ldGhvZENhbGxiYWNrfSwKLSAg
ICB7IndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGUiLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZU1ldGhvZENh
bGxiYWNrfSwKLSAgICB7IndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVP
YmpFeGNlcHRpb24iLCBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRTY3JpcHRTdGF0ZU9iakV4Y2VwdGlvbk1ldGhvZENhbGxiYWNrfSwKLSAgICB7IndpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzIiwgVGVzdE9ialY4
SW50ZXJuYWw6OndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3Bh
Y2VzTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsid2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFj
ayIsIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrTWV0
aG9kQ2FsbGJhY2t9LAotICAgIHsibWV0aG9kV2l0aE9wdGlvbmFsQXJnIiwgVGVzdE9ialY4SW50
ZXJuYWw6Om1ldGhvZFdpdGhPcHRpb25hbEFyZ01ldGhvZENhbGxiYWNrfSwKLSAgICB7Im1ldGhv
ZFdpdGhOb25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnIiwgVGVzdE9ialY4SW50ZXJuYWw6Om1l
dGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnTWV0aG9kQ2FsbGJhY2t9LAotICAg
IHsibWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzIiwgVGVzdE9ialY4
SW50ZXJuYWw6Om1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJnc01ldGhv
ZENhbGxiYWNrfSwKLSAgICB7Im1ldGhvZFdpdGhPcHRpb25hbFN0cmluZyIsIFRlc3RPYmpWOElu
dGVybmFsOjptZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdNZXRob2RDYWxsYmFja30sCi0gICAgeyJt
ZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc1VuZGVmaW5lZCIsIFRlc3RPYmpWOEludGVybmFsOjpt
ZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc1VuZGVmaW5lZE1ldGhvZENhbGxiYWNrfSwKLSAgICB7
Im1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzTnVsbFN0cmluZyIsIFRlc3RPYmpWOEludGVybmFs
OjptZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc051bGxTdHJpbmdNZXRob2RDYWxsYmFja30sCi0g
ICAgeyJtZXRob2RXaXRoQ2FsbGJhY2tBcmciLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0
aENhbGxiYWNrQXJnTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsibWV0aG9kV2l0aE5vbkNhbGxiYWNr
QXJnQW5kQ2FsbGJhY2tBcmciLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aE5vbkNhbGxi
YWNrQXJnQW5kQ2FsbGJhY2tBcmdNZXRob2RDYWxsYmFja30sCi0gICAgeyJtZXRob2RXaXRoQ2Fs
bGJhY2tBbmRPcHRpb25hbEFyZyIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoQ2FsbGJh
Y2tBbmRPcHRpb25hbEFyZ01ldGhvZENhbGxiYWNrfSwKLSAgICB7Im1ldGhvZFdpdGhFbmZvcmNl
UmFuZ2VJbnQzMiIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoRW5mb3JjZVJhbmdlSW50
MzJNZXRob2RDYWxsYmFja30sCi0gICAgeyJtZXRob2RXaXRoRW5mb3JjZVJhbmdlVUludDMyIiwg
VGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhFbmZvcmNlUmFuZ2VVSW50MzJNZXRob2RDYWxs
YmFja30sCi0gICAgeyJtZXRob2RXaXRoRW5mb3JjZVJhbmdlSW50NjQiLCBUZXN0T2JqVjhJbnRl
cm5hbDo6bWV0aG9kV2l0aEVuZm9yY2VSYW5nZUludDY0TWV0aG9kQ2FsbGJhY2t9LAotICAgIHsi
bWV0aG9kV2l0aEVuZm9yY2VSYW5nZVVJbnQ2NCIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RX
aXRoRW5mb3JjZVJhbmdlVUludDY0TWV0aG9kQ2FsbGJhY2t9LAorICAgIHsidm9pZE1ldGhvZCIs
IFRlc3RPYmpWOEludGVybmFsOjp2b2lkTWV0aG9kTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsi
bG9uZ01ldGhvZCIsIFRlc3RPYmpWOEludGVybmFsOjpsb25nTWV0aG9kTWV0aG9kQ2FsbGJhY2ss
IDB9LAorICAgIHsib2JqTWV0aG9kIiwgVGVzdE9ialY4SW50ZXJuYWw6Om9iak1ldGhvZE1ldGhv
ZENhbGxiYWNrLCAwfSwKKyAgICB7Im1ldGhvZFJldHVybmluZ1NlcXVlbmNlIiwgVGVzdE9ialY4
SW50ZXJuYWw6Om1ldGhvZFJldHVybmluZ1NlcXVlbmNlTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAg
IHsic2VyaWFsaXplZFZhbHVlIiwgVGVzdE9ialY4SW50ZXJuYWw6OnNlcmlhbGl6ZWRWYWx1ZU1l
dGhvZENhbGxiYWNrLCAwfSwKKyAgICB7Im9wdGlvbnNPYmplY3QiLCBUZXN0T2JqVjhJbnRlcm5h
bDo6b3B0aW9uc09iamVjdE1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7Im1ldGhvZFdpdGhFeGNl
cHRpb24iLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aEV4Y2VwdGlvbk1ldGhvZENhbGxi
YWNrLCAwfSwKKyAgICB7ImN1c3RvbU1ldGhvZCIsIFRlc3RPYmpWOEludGVybmFsOjpjdXN0b21N
ZXRob2RNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJjdXN0b21NZXRob2RXaXRoQXJncyIsIFRl
c3RPYmpWOEludGVybmFsOjpjdXN0b21NZXRob2RXaXRoQXJnc01ldGhvZENhbGxiYWNrLCAwfSwK
KyAgICB7ImFkZEV2ZW50TGlzdGVuZXIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6YWRkRXZlbnRMaXN0
ZW5lck1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7InJlbW92ZUV2ZW50TGlzdGVuZXIiLCBUZXN0
T2JqVjhJbnRlcm5hbDo6cmVtb3ZlRXZlbnRMaXN0ZW5lck1ldGhvZENhbGxiYWNrLCAwfSwKKyAg
ICB7IndpdGhTY3JpcHRTdGF0ZVZvaWQiLCBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdFN0
YXRlVm9pZE1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7IndpdGhTY3JpcHRTdGF0ZU9iaiIsIFRl
c3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0U3RhdGVPYmpNZXRob2RDYWxsYmFjaywgMH0sCisg
ICAgeyJ3aXRoU2NyaXB0U3RhdGVWb2lkRXhjZXB0aW9uIiwgVGVzdE9ialY4SW50ZXJuYWw6Ondp
dGhTY3JpcHRTdGF0ZVZvaWRFeGNlcHRpb25NZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJ3aXRo
U2NyaXB0U3RhdGVPYmpFeGNlcHRpb24iLCBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdFN0
YXRlT2JqRXhjZXB0aW9uTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsid2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQiLCBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZFNjcmlwdFN0YXRlIiwgVGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJ3aXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlT2JqRXhjZXB0aW9uIiwgVGVzdE9ialY4SW50ZXJu
YWw6OndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVPYmpFeGNlcHRpb25N
ZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNj
cmlwdFN0YXRlV2l0aFNwYWNlcyIsIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc01ldGhvZENhbGxiYWNrLCAwfSwKKyAg
ICB7IndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2siLCBUZXN0T2JqVjhJbnRlcm5hbDo6
d2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja01ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7
Im1ldGhvZFdpdGhPcHRpb25hbEFyZyIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoT3B0
aW9uYWxBcmdNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJtZXRob2RXaXRoTm9uT3B0aW9uYWxB
cmdBbmRPcHRpb25hbEFyZyIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoTm9uT3B0aW9u
YWxBcmdBbmRPcHRpb25hbEFyZ01ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7Im1ldGhvZFdpdGhO
b25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyIsIFRlc3RPYmpWOEludGVybmFsOjptZXRo
b2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3NNZXRob2RDYWxsYmFjaywgMH0s
CisgICAgeyJtZXRob2RXaXRoT3B0aW9uYWxTdHJpbmciLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0
aG9kV2l0aE9wdGlvbmFsU3RyaW5nTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsibWV0aG9kV2l0
aE9wdGlvbmFsU3RyaW5nSXNVbmRlZmluZWQiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0
aE9wdGlvbmFsU3RyaW5nSXNVbmRlZmluZWRNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJtZXRo
b2RXaXRoT3B0aW9uYWxTdHJpbmdJc051bGxTdHJpbmciLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0
aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNOdWxsU3RyaW5nTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAg
IHsibWV0aG9kV2l0aENhbGxiYWNrQXJnIiwgVGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhD
YWxsYmFja0FyZ01ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7Im1ldGhvZFdpdGhOb25DYWxsYmFj
a0FyZ0FuZENhbGxiYWNrQXJnIiwgVGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhOb25DYWxs
YmFja0FyZ0FuZENhbGxiYWNrQXJnTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsibWV0aG9kV2l0
aENhbGxiYWNrQW5kT3B0aW9uYWxBcmciLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aENh
bGxiYWNrQW5kT3B0aW9uYWxBcmdNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJtZXRob2RXaXRo
RW5mb3JjZVJhbmdlSW50MzIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aEVuZm9yY2VS
YW5nZUludDMyTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsibWV0aG9kV2l0aEVuZm9yY2VSYW5n
ZVVJbnQzMiIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoRW5mb3JjZVJhbmdlVUludDMy
TWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsibWV0aG9kV2l0aEVuZm9yY2VSYW5nZUludDY0Iiwg
VGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhFbmZvcmNlUmFuZ2VJbnQ2NE1ldGhvZENhbGxi
YWNrLCAwfSwKKyAgICB7Im1ldGhvZFdpdGhFbmZvcmNlUmFuZ2VVSW50NjQiLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6bWV0aG9kV2l0aEVuZm9yY2VSYW5nZVVJbnQ2NE1ldGhvZENhbGxiYWNrLCAwfSwK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKLSAgICB7ImNvbmRpdGlvbmFsTWV0aG9kMSIsIFRlc3RP
YmpWOEludGVybmFsOjpjb25kaXRpb25hbE1ldGhvZDFNZXRob2RDYWxsYmFja30sCisgICAgeyJj
b25kaXRpb25hbE1ldGhvZDEiLCBUZXN0T2JqVjhJbnRlcm5hbDo6Y29uZGl0aW9uYWxNZXRob2Qx
TWV0aG9kQ2FsbGJhY2ssIDB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVO
QUJMRShDb25kaXRpb24yKQotICAgIHsiY29uZGl0aW9uYWxNZXRob2QyIiwgVGVzdE9ialY4SW50
ZXJuYWw6OmNvbmRpdGlvbmFsTWV0aG9kMk1ldGhvZENhbGxiYWNrfSwKKyAgICB7ImNvbmRpdGlv
bmFsTWV0aG9kMiIsIFRlc3RPYmpWOEludGVybmFsOjpjb25kaXRpb25hbE1ldGhvZDJNZXRob2RD
YWxsYmFjaywgMH0sCiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjIpCi0gICAgeyJjb25kaXRpb25hbE1ldGhvZDMiLCBUZXN0T2JqVjhJbnRlcm5hbDo6
Y29uZGl0aW9uYWxNZXRob2QzTWV0aG9kQ2FsbGJhY2t9LAorICAgIHsiY29uZGl0aW9uYWxNZXRo
b2QzIiwgVGVzdE9ialY4SW50ZXJuYWw6OmNvbmRpdGlvbmFsTWV0aG9kM01ldGhvZENhbGxiYWNr
LCAwfSwKICNlbmRpZgotICAgIHsib3ZlcmxvYWRlZE1ldGhvZCIsIFRlc3RPYmpWOEludGVybmFs
OjpvdmVybG9hZGVkTWV0aG9kTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsiY2xhc3NNZXRob2RXaXRo
Q2xhbXAiLCBUZXN0T2JqVjhJbnRlcm5hbDo6Y2xhc3NNZXRob2RXaXRoQ2xhbXBNZXRob2RDYWxs
YmFja30sCi0gICAgeyJnZXRTVkdEb2N1bWVudCIsIFRlc3RPYmpWOEludGVybmFsOjpnZXRTVkdE
b2N1bWVudE1ldGhvZENhbGxiYWNrfSwKLSAgICB7Im11dGFibGVQb2ludEZ1bmN0aW9uIiwgVGVz
dE9ialY4SW50ZXJuYWw6Om11dGFibGVQb2ludEZ1bmN0aW9uTWV0aG9kQ2FsbGJhY2t9LAotICAg
IHsiaW1tdXRhYmxlUG9pbnRGdW5jdGlvbiIsIFRlc3RPYmpWOEludGVybmFsOjppbW11dGFibGVQ
b2ludEZ1bmN0aW9uTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsib3JhbmdlIiwgVGVzdE9ialY4SW50
ZXJuYWw6Om9yYW5nZU1ldGhvZENhbGxiYWNrfSwKLSAgICB7InN0cmljdEZ1bmN0aW9uIiwgVGVz
dE9ialY4SW50ZXJuYWw6OnN0cmljdEZ1bmN0aW9uTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsidmFy
aWFkaWNTdHJpbmdNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6dmFyaWFkaWNTdHJpbmdNZXRo
b2RNZXRob2RDYWxsYmFja30sCi0gICAgeyJ2YXJpYWRpY0RvdWJsZU1ldGhvZCIsIFRlc3RPYmpW
OEludGVybmFsOjp2YXJpYWRpY0RvdWJsZU1ldGhvZE1ldGhvZENhbGxiYWNrfSwKKyAgICB7Im92
ZXJsb2FkZWRNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6b3ZlcmxvYWRlZE1ldGhvZE1ldGhv
ZENhbGxiYWNrLCAwfSwKKyAgICB7ImNsYXNzTWV0aG9kV2l0aENsYW1wIiwgVGVzdE9ialY4SW50
ZXJuYWw6OmNsYXNzTWV0aG9kV2l0aENsYW1wTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsiZ2V0
U1ZHRG9jdW1lbnQiLCBUZXN0T2JqVjhJbnRlcm5hbDo6Z2V0U1ZHRG9jdW1lbnRNZXRob2RDYWxs
YmFjaywgMH0sCisgICAgeyJtdXRhYmxlUG9pbnRGdW5jdGlvbiIsIFRlc3RPYmpWOEludGVybmFs
OjptdXRhYmxlUG9pbnRGdW5jdGlvbk1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7ImltbXV0YWJs
ZVBvaW50RnVuY3Rpb24iLCBUZXN0T2JqVjhJbnRlcm5hbDo6aW1tdXRhYmxlUG9pbnRGdW5jdGlv
bk1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7Im9yYW5nZSIsIFRlc3RPYmpWOEludGVybmFsOjpv
cmFuZ2VNZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJzdHJpY3RGdW5jdGlvbiIsIFRlc3RPYmpW
OEludGVybmFsOjpzdHJpY3RGdW5jdGlvbk1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7InZhcmlh
ZGljU3RyaW5nTWV0aG9kIiwgVGVzdE9ialY4SW50ZXJuYWw6OnZhcmlhZGljU3RyaW5nTWV0aG9k
TWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsidmFyaWFkaWNEb3VibGVNZXRob2QiLCBUZXN0T2Jq
VjhJbnRlcm5hbDo6dmFyaWFkaWNEb3VibGVNZXRob2RNZXRob2RDYWxsYmFjaywgMH0sCisgICAg
eyJwZXJXb3JsZE1ldGhvZCIsIFRlc3RPYmpWOEludGVybmFsOjpwZXJXb3JsZE1ldGhvZE1ldGhv
ZENhbGxiYWNrLCBUZXN0T2JqVjhJbnRlcm5hbDo6cGVyV29ybGRNZXRob2RNZXRob2RDYWxsYmFj
a0Zvck1haW5Xb3JsZH0sCisgICAgeyJvdmVybG9hZGVkUGVyV29ybGRNZXRob2QiLCBUZXN0T2Jq
VjhJbnRlcm5hbDo6b3ZlcmxvYWRlZFBlcldvcmxkTWV0aG9kTWV0aG9kQ2FsbGJhY2ssIFRlc3RP
YmpWOEludGVybmFsOjpvdmVybG9hZGVkUGVyV29ybGRNZXRob2RNZXRob2RDYWxsYmFja0Zvck1h
aW5Xb3JsZH0sCiB9OwogCiBzdGF0aWMgY29uc3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVk
Q29uc3RhbnQgVjhUZXN0T2JqQ29uc3RzW10gPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IDAzZDAwODEwOTA2NjAz
MzE2MTIzYjA0MzhjMjMxMzhhZGIyYTIwZjUuLjIxMzA2NzkxZmY1NGU3NDVlOWM2NTc2ZmQ3NzBi
NDg0YjM2YTIwZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC0yOTMsOCArMjkzLDggQEAgc3RhdGljIGNvbnN0IFY4
RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZEF0dHJpYnV0ZSBWOFRlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnQKIH07CiAKIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRN
ZXRob2QgVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlTWV0aG9kc1tdID0gewot
ICAgIHsiYWNjZXB0VHJhbnNmZXJMaXN0IiwgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZVY4SW50ZXJuYWw6OmFjY2VwdFRyYW5zZmVyTGlzdE1ldGhvZENhbGxiYWNrfSwKLSAgICB7
Im11bHRpVHJhbnNmZXJMaXN0IiwgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVY4
SW50ZXJuYWw6Om11bHRpVHJhbnNmZXJMaXN0TWV0aG9kQ2FsbGJhY2t9LAorICAgIHsiYWNjZXB0
VHJhbnNmZXJMaXN0IiwgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVY4SW50ZXJu
YWw6OmFjY2VwdFRyYW5zZmVyTGlzdE1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7Im11bHRpVHJh
bnNmZXJMaXN0IiwgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVY4SW50ZXJuYWw6
Om11bHRpVHJhbnNmZXJMaXN0TWV0aG9kQ2FsbGJhY2ssIDB9LAogfTsKIAogdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Y29uc3RydWN0
b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFR5cGVkZWZzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RUeXBlZGVmcy5jcHAK
aW5kZXggNWY2NTBiODBkYTQwYWYyNTZhOWZmOTVkZmE2NGU0N2E1YzMzY2RhOC4uYWNhOWU3ZjQx
ZDJmMWY4MzEyYWE1NDEyOGE0OWQ4YTViNTg3MGU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFR5cGVkZWZzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0VHlwZWRlZnMuY3BwCkBA
IC01MTQsMTIgKzUxNCwxMiBAQCBzdGF0aWMgY29uc3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRj
aGVkQXR0cmlidXRlIFY4VGVzdFR5cGVkZWZzQXR0cnNbXSA9IHsKIH07CiAKIHN0YXRpYyBjb25z
dCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRNZXRob2QgVjhUZXN0VHlwZWRlZnNNZXRob2Rz
W10gPSB7Ci0gICAgeyJmdW5jIiwgVGVzdFR5cGVkZWZzVjhJbnRlcm5hbDo6ZnVuY01ldGhvZENh
bGxiYWNrfSwKLSAgICB7Im11bHRpVHJhbnNmZXJMaXN0IiwgVGVzdFR5cGVkZWZzVjhJbnRlcm5h
bDo6bXVsdGlUcmFuc2Zlckxpc3RNZXRob2RDYWxsYmFja30sCi0gICAgeyJzZXRTaGFkb3ciLCBU
ZXN0VHlwZWRlZnNWOEludGVybmFsOjpzZXRTaGFkb3dNZXRob2RDYWxsYmFja30sCi0gICAgeyJm
dW5jV2l0aENsYW1wIiwgVGVzdFR5cGVkZWZzVjhJbnRlcm5hbDo6ZnVuY1dpdGhDbGFtcE1ldGhv
ZENhbGxiYWNrfSwKLSAgICB7ImltbXV0YWJsZVBvaW50RnVuY3Rpb24iLCBUZXN0VHlwZWRlZnNW
OEludGVybmFsOjppbW11dGFibGVQb2ludEZ1bmN0aW9uTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsi
bWV0aG9kV2l0aEV4Y2VwdGlvbiIsIFRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6Om1ldGhvZFdpdGhF
eGNlcHRpb25NZXRob2RDYWxsYmFja30sCisgICAgeyJmdW5jIiwgVGVzdFR5cGVkZWZzVjhJbnRl
cm5hbDo6ZnVuY01ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7Im11bHRpVHJhbnNmZXJMaXN0Iiwg
VGVzdFR5cGVkZWZzVjhJbnRlcm5hbDo6bXVsdGlUcmFuc2Zlckxpc3RNZXRob2RDYWxsYmFjaywg
MH0sCisgICAgeyJzZXRTaGFkb3ciLCBUZXN0VHlwZWRlZnNWOEludGVybmFsOjpzZXRTaGFkb3dN
ZXRob2RDYWxsYmFjaywgMH0sCisgICAgeyJmdW5jV2l0aENsYW1wIiwgVGVzdFR5cGVkZWZzVjhJ
bnRlcm5hbDo6ZnVuY1dpdGhDbGFtcE1ldGhvZENhbGxiYWNrLCAwfSwKKyAgICB7ImltbXV0YWJs
ZVBvaW50RnVuY3Rpb24iLCBUZXN0VHlwZWRlZnNWOEludGVybmFsOjppbW11dGFibGVQb2ludEZ1
bmN0aW9uTWV0aG9kQ2FsbGJhY2ssIDB9LAorICAgIHsibWV0aG9kV2l0aEV4Y2VwdGlvbiIsIFRl
c3RUeXBlZGVmc1Y4SW50ZXJuYWw6Om1ldGhvZFdpdGhFeGNlcHRpb25NZXRob2RDYWxsYmFjaywg
MH0sCiB9OwogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhUZXN0VHlwZWRlZnM6OmNvbnN0cnVj
dG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOERPTUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IDU2MWNhYmQ4MmI0
Y2IzNDYzNGUxMjAxYzU4ZGFlNTBlZGZlNDlhNDAuLjY1NGY4MjVkZjU4MzM2ZTU5NWY0MThlZWJj
ZWU2ZTQ5NTQ1NTRhMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
RE9NQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhE
T01Db25maWd1cmF0aW9uLmNwcApAQCAtNDgsMTAgKzQ4LDE0IEBAIHZvaWQgVjhET01Db25maWd1
cmF0aW9uOjpiYXRjaENvbmZpZ3VyZUNvbnN0YW50cyh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRl
bXBsYXRlCiAgICAgfQogfQogCi12b2lkIFY4RE9NQ29uZmlndXJhdGlvbjo6YmF0Y2hDb25maWd1
cmVDYWxsYmFja3Modjg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+IHByb3RvdHlwZSwgdjg6
OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBzaWduYXR1cmUsIHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZSBh
dHRyaWJ1dGVzLCBjb25zdCBCYXRjaGVkTWV0aG9kKiBjYWxsYmFja3MsIHNpemVfdCBjYWxsYmFj
a0NvdW50LCB2ODo6SXNvbGF0ZSopCit2b2lkIFY4RE9NQ29uZmlndXJhdGlvbjo6YmF0Y2hDb25m
aWd1cmVDYWxsYmFja3Modjg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+IHByb3RvdHlwZSwg
djg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBzaWduYXR1cmUsIHY4OjpQcm9wZXJ0eUF0dHJpYnV0
ZSBhdHRyaWJ1dGVzLCBjb25zdCBCYXRjaGVkTWV0aG9kKiBjYWxsYmFja3MsIHNpemVfdCBjYWxs
YmFja0NvdW50LCB2ODo6SXNvbGF0ZSosIFdyYXBwZXJXb3JsZFR5cGUgY3VycmVudFdvcmxkVHlw
ZSkKIHsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNhbGxiYWNrQ291bnQ7ICsraSkKLSAg
ICAgICAgcHJvdG90eXBlLT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKGNhbGxiYWNrc1tpXS5u
YW1lKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhjYWxsYmFja3NbaV0uY2FsbGJhY2ssIHY4
VW5kZWZpbmVkKCksIHNpZ25hdHVyZSksIGF0dHJpYnV0ZXMpOworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgY2FsbGJhY2tDb3VudDsgKytpKSB7CisgICAgICAgIHY4OjpJbnZvY2F0aW9uQ2Fs
bGJhY2sgY2FsbGJhY2sgPSBjYWxsYmFja3NbaV0uY2FsbGJhY2s7CisgICAgICAgIGlmIChjdXJy
ZW50V29ybGRUeXBlID09IE1haW5Xb3JsZCAmJiBjYWxsYmFja3NbaV0uY2FsbGJhY2tGb3JNYWlu
V29ybGQpCisgICAgICAgICAgICBjYWxsYmFjayA9IGNhbGxiYWNrc1tpXS5jYWxsYmFja0Zvck1h
aW5Xb3JsZDsKKyAgICAgICAgcHJvdG90eXBlLT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKGNh
bGxiYWNrc1tpXS5uYW1lKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhjYWxsYmFjaywgdjhV
bmRlZmluZWQoKSwgc2lnbmF0dXJlKSwgYXR0cmlidXRlcyk7CisgICAgfQogfQogCiB2ODo6TG9j
YWw8djg6OlNpZ25hdHVyZT4gVjhET01Db25maWd1cmF0aW9uOjpjb25maWd1cmVUZW1wbGF0ZSh2
ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZnVuY3Rpb25EZXNjcmlwdG9yLCBj
b25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1w
bGF0ZT4gcGFyZW50Q2xhc3MsCkBAIC03Myw3ICs3Nyw3IEBAIHY4OjpMb2NhbDx2ODo6U2lnbmF0
dXJlPiBWOERPTUNvbmZpZ3VyYXRpb246OmNvbmZpZ3VyZVRlbXBsYXRlKHY4OjpQZXJzaXN0ZW50
PHY4CiAgICAgICAgIGJhdGNoQ29uZmlndXJlQXR0cmlidXRlcyhpbnN0YW5jZSwgZnVuY3Rpb25E
ZXNjcmlwdG9yLT5Qcm90b3R5cGVUZW1wbGF0ZSgpLCBhdHRyaWJ1dGVzLCBhdHRyaWJ1dGVDb3Vu
dCwgaXNvbGF0ZSwgY3VycmVudFdvcmxkVHlwZSk7CiAgICAgdjg6OkxvY2FsPHY4OjpTaWduYXR1
cmU+IGRlZmF1bHRTaWduYXR1cmUgPSB2ODo6U2lnbmF0dXJlOjpOZXcoZnVuY3Rpb25EZXNjcmlw
dG9yKTsKICAgICBpZiAoY2FsbGJhY2tDb3VudCkKLSAgICAgICAgYmF0Y2hDb25maWd1cmVDYWxs
YmFja3MoZnVuY3Rpb25EZXNjcmlwdG9yLT5Qcm90b3R5cGVUZW1wbGF0ZSgpLCBkZWZhdWx0U2ln
bmF0dXJlLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpEb250RGVsZXRl
KSwgY2FsbGJhY2tzLCBjYWxsYmFja0NvdW50LCBpc29sYXRlKTsKKyAgICAgICAgYmF0Y2hDb25m
aWd1cmVDYWxsYmFja3MoZnVuY3Rpb25EZXNjcmlwdG9yLT5Qcm90b3R5cGVUZW1wbGF0ZSgpLCBk
ZWZhdWx0U2lnbmF0dXJlLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpE
b250RGVsZXRlKSwgY2FsbGJhY2tzLCBjYWxsYmFja0NvdW50LCBpc29sYXRlLCBjdXJyZW50V29y
bGRUeXBlKTsKICAgICByZXR1cm4gZGVmYXVsdFNpZ25hdHVyZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01Db25maWd1cmF0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTUNvbmZpZ3VyYXRpb24uaAppbmRleCBlOTViMTU4NmM0
NjUzZjM3MjhiNTJjMDhiZjIxZTk1YzVkNzY1ZmFiLi44MmZhY2U5MzVlYTRlMzU1ZmY5M2Q2Zjhi
NjQ4Y2NjOTcwYmI5ZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OERPTUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERP
TUNvbmZpZ3VyYXRpb24uaApAQCAtMTAxLDkgKzEwMSwxMCBAQCBwdWJsaWM6CiAgICAgc3RydWN0
IEJhdGNoZWRNZXRob2QgewogICAgICAgICBjb25zdCBjaGFyKiBjb25zdCBuYW1lOwogICAgICAg
ICB2ODo6SW52b2NhdGlvbkNhbGxiYWNrIGNhbGxiYWNrOworICAgICAgICB2ODo6SW52b2NhdGlv
bkNhbGxiYWNrIGNhbGxiYWNrRm9yTWFpbldvcmxkOwogICAgIH07CiAKLSAgICBzdGF0aWMgdm9p
ZCBiYXRjaENvbmZpZ3VyZUNhbGxiYWNrcyh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4s
IHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4sIHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZSwgY29uc3Qg
QmF0Y2hlZE1ldGhvZCosIHNpemVfdCBjYWxsYmFja0NvdW50LCB2ODo6SXNvbGF0ZSopOworICAg
IHN0YXRpYyB2b2lkIGJhdGNoQ29uZmlndXJlQ2FsbGJhY2tzKHY4OjpIYW5kbGU8djg6Ok9iamVj
dFRlbXBsYXRlPiwgdjg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiwgdjg6OlByb3BlcnR5QXR0cmli
dXRlLCBjb25zdCBCYXRjaGVkTWV0aG9kKiwgc2l6ZV90IGNhbGxiYWNrQ291bnQsIHY4OjpJc29s
YXRlKiwgV3JhcHBlcldvcmxkVHlwZSk7CiAKICAgICBzdGF0aWMgdjg6OkxvY2FsPHY4OjpTaWdu
YXR1cmU+IGNvbmZpZ3VyZVRlbXBsYXRlKHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBs
YXRlPiwgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0
aW9uVGVtcGxhdGU+IHBhcmVudENsYXNzLCBzaXplX3QgZmllbGRDb3VudCwgY29uc3QgQmF0Y2hl
ZEF0dHJpYnV0ZSosIHNpemVfdCBhdHRyaWJ1dGVDb3VudCwgY29uc3QgQmF0Y2hlZE1ldGhvZCos
IHNpemVfdCBjYWxsYmFja0NvdW50LCB2ODo6SXNvbGF0ZSosIFdyYXBwZXJXb3JsZFR5cGUpOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IGU1MzhkNzUwYWZiMGYwM2JhZTJhNjliMDFm
MzViNDVhYzg1NGMzZTAuLjM5MWE1ZWRjMWRhZTA2NDNkNTczNDkyMzJkYzRhOGMyYzdkN2ZhNDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbApAQCAtMjksMTEgKzI5LDExIEBACiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTUltcGxlbWVudGF0aW9uIGltcGxlbWVudGF0aW9uOwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBFbGVtZW50IGRvY3VtZW50RWxlbWVudDsKIAotICAgIFtSZXR1cm5OZXdP
YmplY3QsIFY4RGVsaXZlckN1c3RvbUVsZW1lbnRDYWxsYmFja3NdCisgICAgW1JldHVybk5ld09i
amVjdCwgVjhEZWxpdmVyQ3VzdG9tRWxlbWVudENhbGxiYWNrcywgVjhQZXJXb3JsZEJpbmRpbmdz
XQogICAgIEVsZW1lbnQgY3JlYXRlRWxlbWVudChpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0YWdOYW1lKQogICAgICAgICBy
YWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgRG9jdW1lbnRGcmFnbWVudCAgIGNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQoKTsKLSAgICBbUmV0dXJuTmV3T2JqZWN0XSBUZXh0IGNyZWF0ZVRleHROb2Rl
KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBkYXRhKTsKKyAgICBb
UmV0dXJuTmV3T2JqZWN0LCBWOFBlcldvcmxkQmluZGluZ3NdIFRleHQgY3JlYXRlVGV4dE5vZGUo
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGRhdGEpOwogICAgIFtS
ZXR1cm5OZXdPYmplY3RdIENvbW1lbnQgY3JlYXRlQ29tbWVudChpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBET01TdHJpbmcgZGF0YSk7CiAgICAgW1JldHVybk5ld09iamVjdF0gQ0RB
VEFTZWN0aW9uIGNyZWF0ZUNEQVRBU2VjdGlvbihpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBET01TdHJpbmcgZGF0YSkKICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CkBAIC00
NCw3ICs0NCw3IEBACiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICBbUmV0dXJu
TmV3T2JqZWN0XSBFbnRpdHlSZWZlcmVuY2UgY3JlYXRlRW50aXR5UmVmZXJlbmNlKGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lKQogICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLSAgICBOb2RlTGlzdCAgICAgICAgICAgZ2V0RWxlbWVudHNCeVRhZ05h
bWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHRhZ25hbWUpOwor
ICAgIFtWOFBlcldvcmxkQmluZGluZ3NdIE5vZGVMaXN0ICAgICAgICAgICBnZXRFbGVtZW50c0J5
VGFnTmFtZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgdGFnbmFt
ZSk7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgogCkBAIC02MSw3ICs2MSw3
IEBACiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICBbT2JqQ0xlZ2FjeVVubmFt
ZWRQYXJhbWV0ZXJzXSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKGluIFtUcmVhdE51
bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5h
bWVzcGFjZVVSSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBsb2NhbE5h
bWUpOwotICAgIEVsZW1lbnQgICAgICAgICAgICBnZXRFbGVtZW50QnlJZChpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZWxlbWVudElkKTsKKyAgICBbVjhQZXJXb3Js
ZEJpbmRpbmdzXSBFbGVtZW50ICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQoaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGVsZW1lbnRJZCk7CiAKICAgICAvLyBET00g
TGV2ZWwgMyBDb3JlCiAKQEAgLTE3OSw3ICsxNzksNyBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBIVE1MQ29sbGVjdGlvbiBhbmNob3JzOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgbGFzdE1vZGlmaWVkOwogCi0gICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeU5hbWUoaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGVsZW1lbnROYW1lKTsKKyAgICBb
VjhQZXJXb3JsZEJpbmRpbmdzXSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5TmFtZShpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZWxlbWVudE5hbWUpOwogCiAjaWYgZGVm
aW5lZChFTkFCTEVfTUlDUk9EQVRBKSAmJiBFTkFCTEVfTUlDUk9EQVRBCiAgICAgTm9kZUxpc3Qg
Z2V0SXRlbXMoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVs
bFN0cmluZywgT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgdHlwZU5hbWVz
KTsKQEAgLTM2Nyw3ICszNjcsNyBAQAogI2lmIGRlZmluZWQoRU5BQkxFX0NVU1RPTV9FTEVNRU5U
UykgJiYgRU5BQkxFX0NVU1RPTV9FTEVNRU5UUwogICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9Y3Vz
dG9tRE9NRWxlbWVudHMsIENvbmRpdGlvbmFsPUNVU1RPTV9FTEVNRU5UUywgSW1wbGVtZW50ZWRB
cz1yZWdpc3RlckVsZW1lbnQsIENhbGxXaXRoPVNjcmlwdFN0YXRlLCBWOERlbGl2ZXJDdXN0b21F
bGVtZW50Q2FsbGJhY2tzXQogICAgIEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3RvciB3ZWJraXRSZWdp
c3RlcihpbiBET01TdHJpbmcgbmFtZSwgaW4gW09wdGlvbmFsXSBEaWN0aW9uYXJ5IG9wdGlvbnMp
IHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgIFtSZXR1cm5OZXdPYmplY3QsIFY4RGVsaXZlckN1
c3RvbUVsZW1lbnRDYWxsYmFja3NdCisgICAgW1JldHVybk5ld09iamVjdCwgVjhEZWxpdmVyQ3Vz
dG9tRWxlbWVudENhbGxiYWNrcywgVjhQZXJXb3JsZEJpbmRpbmdzXQogICAgIEVsZW1lbnQgY3Jl
YXRlRWxlbWVudChpbiBET01TdHJpbmcgbG9jYWxOYW1lLCBpbiBbVHJlYXROdWxsQXM9TnVsbFN0
cmluZ10gRE9NU3RyaW5nIHR5cGVFeHRlbnNpb24pIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAg
ICBbUmV0dXJuTmV3T2JqZWN0LCBWOERlbGl2ZXJDdXN0b21FbGVtZW50Q2FsbGJhY2tzXQogICAg
IEVsZW1lbnQgY3JlYXRlRWxlbWVudE5TKGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01T
dHJpbmcgbmFtZXNwYWNlVVJJLCBpbiBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmlkbAppbmRleCA2ZTBjODg1Y2YyMGUyNmEwZTQ0Y2EyYjRhOTFmYTdiMDE0MTU3NTEz
Li4zODgwNmRhZTdiNjEzMTg5NjljNWQ1NjM1YjllYjlkMzFiMGI3YjM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuaWRsCkBAIC0zOSw3ICszOSw3IEBACiAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24p
OwogICAgIEF0dHIgcmVtb3ZlQXR0cmlidXRlTm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBBdHRyIG9sZEF0dHIpCiAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAg
IE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIERPTVN0cmluZyBuYW1lKTsKKyAgICBbVjhQZXJXb3JsZEJpbmRpbmdzXSBOb2RlTGlz
dCBnZXRFbGVtZW50c0J5VGFnTmFtZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
T01TdHJpbmcgbmFtZSk7CiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykKICAg
ICAvLyBGb3IgT2JqQyB0aGlzIGlzIGRlZmluZWQgb24gTm9kZSBmb3IgbGVnYWN5IHN1cHBvcnQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5pZGwKaW5kZXggZWU3NGY1OTc2ZjkwYWUwMDcxZmQ4YmMxZmI5ZDFhMDRlNTI3
YjI4Mi4uNWRkZmJlYzQ2MDI0ZWFhY2I5ZmQ5ZTdjZWJiODkzMjc4N2I2ODFiMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmlkbApAQCAtNjQsMTkgKzY0LDE5IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOFBl
cldvcmxkQmluZGluZ3NdIE5vZGUgICAgICAgICAgICAgbmV4dFNpYmxpbmc7CiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtWOFBlcldvcmxkQmluZGluZ3NdIERvY3VtZW50ICAgICAgICAgb3duZXJE
b2N1bWVudDsKIAotICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIEN1c3RvbV0gTm9k
ZSBpbnNlcnRCZWZvcmUoaW4gW0N1c3RvbVJldHVybl0gTm9kZSBuZXdDaGlsZCwKKyAgICBbT2Jq
Q0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBDdXN0b20sIFY4UGVyV29ybGRCaW5kaW5nc10gTm9k
ZSBpbnNlcnRCZWZvcmUoaW4gW0N1c3RvbVJldHVybl0gTm9kZSBuZXdDaGlsZCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIE5v
ZGUgcmVmQ2hpbGQpCiAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIFtPYmpDTGVn
YWN5VW5uYW1lZFBhcmFtZXRlcnMsIEN1c3RvbV0gTm9kZSByZXBsYWNlQ2hpbGQoaW4gTm9kZSBu
ZXdDaGlsZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtDdXN0b21SZXR1cm5dIE5vZGUgb2xkQ2hpbGQpCiAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOwotICAgIFtDdXN0b21dIE5vZGUgICAgICAgICAgICAgICByZW1v
dmVDaGlsZChpbiBbQ3VzdG9tUmV0dXJuXSBOb2RlIG9sZENoaWxkKQorICAgIFtDdXN0b20sIFY4
UGVyV29ybGRCaW5kaW5nc10gTm9kZSByZW1vdmVDaGlsZChpbiBbQ3VzdG9tUmV0dXJuXSBOb2Rl
IG9sZENoaWxkKQogICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICBbQ3VzdG9tXSBO
b2RlICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQoaW4gW0N1c3RvbVJldHVybl0gTm9kZSBuZXdD
aGlsZCkKKyAgICBbQ3VzdG9tLCBWOFBlcldvcmxkQmluZGluZ3NdIE5vZGUgYXBwZW5kQ2hpbGQo
aW4gW0N1c3RvbVJldHVybl0gTm9kZSBuZXdDaGlsZCkKICAgICAgICAgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAKICAgICBib29sZWFuICAgICAgICAgICAgaGFzQ2hpbGROb2RlcygpOwotICAgIFtW
OERlbGl2ZXJDdXN0b21FbGVtZW50Q2FsbGJhY2tzXQorICAgIFtWOERlbGl2ZXJDdXN0b21FbGVt
ZW50Q2FsbGJhY2tzLCBWOFBlcldvcmxkQmluZGluZ3NdCiAgICAgTm9kZSAgICAgICAgICAgICAg
IGNsb25lTm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGRlZXAp
OwogICAgIHZvaWQgICAgICAgICAgICAgICBub3JtYWxpemUoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsCmluZGV4IDk1ZmY3NTBiZWI2Y2M4YjllNmQ0NjNjYTgwMTE1NDlmODcxYWQ4OWYu
LmQwNmFmZTBjYzcyNzQyMDY4NTZlNDg3ZTE3NWE5ZmRjMTg2N2UzNjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwKQEAgLTE0Nyw4ICsxNDcsOCBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTdHlsZU1lZGlhIHN0eWxlTWVkaWE7CiAKICAgICAvLyBET00gTGV2ZWwgMiBTdHlsZSBJbnRl
cmZhY2UKLSAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGdldENvbXB1dGVkU3R5bGUoaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRWxlbWVudCBlbGVtZW50LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJl
YXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9N
U3RyaW5nIHBzZXVkb0VsZW1lbnQpOworICAgIFtWOFBlcldvcmxkQmluZGluZ3NdIENTU1N0eWxl
RGVjbGFyYXRpb24gZ2V0Q29tcHV0ZWRTdHlsZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBFbGVtZW50IGVsZW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBU
cmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
T01TdHJpbmcgcHNldWRvRWxlbWVudCk7CiAKICAgICAvLyBXZWJLaXQgZXh0ZW5zaW9ucwogI2lm
IGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>