<?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>4249</bug_id>
          
          <creation_ts>2005-08-01 03:13:49 -0700</creation_ts>
          <short_desc>SVG JavaScript bindings are busted in latest WebCore+SVG</short_desc>
          <delta_ts>2006-05-31 20:42:22 -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>SVG</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>SVGHitList</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>5975</dependson>
          <blocked>4624</blocked>
    
    <blocked>9190</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>andersca</cc>
    
    <cc>ggaren</cc>
    
    <cc>mjs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>15623</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-08-01 03:13:49 -0700</bug_when>
    <thetext>REGRESSION: JavaScript support is busted in WebCore+SVG

JavaScript used to work fine in WebCore+SVG.  I believe this was a result of mjs JavaScriptCore 
optimizations.  (http://bugzilla.opendarwin.org/show_bug.cgi?id=4124)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15624</commentid>
    <comment_count>1</comment_count>
      <attachid>3192</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-08-01 03:15:00 -0700</bug_when>
    <thetext>Created attachment 3192
One example of a busted SVG (which used to work)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17795</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-08-28 02:49:21 -0700</bug_when>
    <thetext>Ben is working on this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25624</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-06 04:24:30 -0800</bug_when>
    <thetext>Actually, this is going to require more heavy lifting than ben will be able to give us.  Maciej or I need to re-
work the underlying WebCore javascript bindings to be autogenerated, and then make SVG use those 
autogenerated bindings as well.  With KDOM now removed from WebCore+SVG it&apos;s no longer possible for 
the SVG javascript bindings to sit on top of KDOM&apos;s bindings, but rather they need to be ported over to 
WebCore&apos;s once WebCore&apos;s bindings are fixed to be autogenerated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29342</commentid>
    <comment_count>4</comment_count>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2006-01-22 04:34:06 -0800</bug_when>
    <thetext>Adding Regression keyword.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29911</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-01-25 14:21:26 -0800</bug_when>
    <thetext>Basic DOM autobinding support has been landed. It will probably be a couple more weeks before it&apos;s ready to support SVG however.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30146</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-01-26 14:27:30 -0800</bug_when>
    <thetext>Marking as P2, and adding to the SVG HitList.  We could never ship SVG w/o some form of SVG JS bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>43947</commentid>
    <comment_count>7</comment_count>
      <attachid>8601</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-05-30 04:15:13 -0700</bug_when>
    <thetext>Created attachment 8601
First stab and turning some of these back on

This patch is not quite ready for review.  I&apos;m posting it hear for discussion purposes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44052</commentid>
    <comment_count>8</comment_count>
      <attachid>8610</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-05-30 14:58:26 -0700</bug_when>
    <thetext>Created attachment 8610
Much better patch, ready for review.

This patch also has some various style cleanups (sorry).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44122</commentid>
    <comment_count>9</comment_count>
      <attachid>8610</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-05-31 08:14:21 -0700</bug_when>
    <thetext>Comment on attachment 8610
Much better patch, ready for review.

Some comments:

-    if (@{$dataNode-&gt;parents} &gt; 1) {
-        die &quot;A class can&apos;t have more than one parent&quot;;
-    }
+    #if (@{$dataNode-&gt;parents} &gt; 1) {
+    #    die &quot;A class can&apos;t have more than one parent&quot;;
+    #}

There should be a comment explaining why this is commented out.

I think the IDL files should be LGPL</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>3192</attachid>
            <date>2005-08-01 03:15:00 -0700</date>
            <delta_ts>2005-08-01 03:15:00 -0700</delta_ts>
            <desc>One example of a busted SVG (which used to work)</desc>
            <filename>Simple Clock (JavaScript).svg</filename>
            <type>image/svg+xml</type>
            <size>2377</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4w
IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDBweCIgaGVpZ2h0
PSIyODBweCI+DQoJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAwLDEwMCkgcm90YXRlKC05MCki
Pg0KCQk8Y2lyY2xlIHI9IjEwMCIgZmlsbD0id2hpdGUiIHN0cm9rPSJibGFjayIgc3Ryb2tlLXdp
ZHRoPSIycHgiLz4NCg0KCQk8ZyBzdHlsZT0ic3Ryb2tlLWxpbmVjYXA6IHJvdW5kOyBzdHJva2U6
IGJsYWNrOyBzdHJva2Utd2lkdGg6IDJweDsiPg0KCQk8bGluZSB4MT0iMTAwIiAgeTE9IjAiICAg
IHgyPSI5MCIgICB5Mj0iMCIgIC8+DQoJCTxsaW5lIHgxPSI4NyIgICB5MT0iNTAiICAgeDI9Ijc4
IiAgIHkyPSI0NSIgLz4NCgkJPGxpbmUgeDE9IjUwIiAgIHkxPSI4NyIgICB4Mj0iNDUiICAgeTI9
Ijc4IiAvPg0KCQk8bGluZSB4MT0iMCIgICAgeTE9IjEwMCIgIHgyPSIwIiAgICB5Mj0iOTAiIC8+
DQoJCTxsaW5lIHgxPSItNTAiICB5MT0iODciICAgeDI9Ii00NSIgIHkyPSI3OCIgLz4NCgkJPGxp
bmUgeDE9Ii04NyIgIHkxPSI1MCIgICB4Mj0iLTc4IiAgeTI9IjQ1IiAvPg0KCQk8bGluZSB4MT0i
LTEwMCIgeTE9IjAiICAgIHgyPSItOTAiICB5Mj0iMCIgIC8+DQoJCTxsaW5lIHgxPSItODciICB5
MT0iLTUwIiAgeDI9Ii03OCIgIHkyPSItNDUiLz4NCgkJPGxpbmUgeDE9Ii01MCIgIHkxPSItODci
ICB4Mj0iLTQ1IiAgeTI9Ii03OCIvPg0KCQk8bGluZSB4MT0iMCIgICAgeTE9Ii0xMDAiIHgyPSIw
IiAgICB5Mj0iLTkwIi8+DQoJCTxsaW5lIHgxPSI1MCIgICB5MT0iLTg3IiAgeDI9IjQ1IiAgIHky
PSItNzgiLz4NCgkJPGxpbmUgeDE9Ijg3IiAgIHkxPSItNTAiICB4Mj0iNzgiICAgeTI9Ii00NSIv
Pg0KCQk8bGluZSBpZD0iaG91cmhhbmQiIHN0cm9rZS13aWR0aD0iOHB4IiBzdHJva2U9ImJsdWUi
ICAgeDE9IjAiIHkxPSIwIiB4Mj0iMCIgeTI9IjQwIi8+DQoJCTxsaW5lIGlkPSJtaW51dGVoYW5k
IiBzdHJva2Utd2lkdGg9IjVweCIgc3Ryb2tlPSJncmVlbiIgeDE9IjAiIHkxPSIwIiB4Mj0iMCIg
eTI9IjY1Ii8+DQoJCTxsaW5lIGlkPSJzZWNvbmRoYW5kIiBzdHJva2Utd2lkdGg9IjJweCIgc3Ry
b2tlPSJyZWQiIHgxPSIwIiB5MT0iMCIgeDI9IjAiIHkyPSI5MCIvPg0KCQk8L2c+DQoJPC9nPg0K
ICA8dGV4dCBpZD0iZGF0ZXRleHQiIHg9IjEwIiB5PSIyNTAiPnRlc3Q8L3RleHQ+DQoNCgk8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJCXZhciBzSGFuZCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdzZWNvbmRoYW5kJyk7DQoJCXZhciBtSGFuZCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdtaW51dGVoYW5kJyk7DQoJCXZhciBoSGFuZCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdob3VyaGFuZCcpOw0KCQl2YXIgZGlnaXRhbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdkYXRldGV4dCcpOw0KCQkNCgkJZnVuY3Rpb24gdXBkYXRlU2Vjb25kcygpIHsNCgkJCXZhciBh
bmdsZSA9IChuZXcgRGF0ZSgpKS5nZXRTZWNvbmRzKCkgKiBNYXRoLlBJLzMwOw0KDQoJCQlpZiAo
YW5nbGUgPT0gMCkNCgkJCQl1cGRhdGVNaW51dGVzKCk7DQoNCgkJCXNIYW5kLnNldEF0dHJpYnV0
ZSgneDInLCA5MCAqIE1hdGguY29zKGFuZ2xlKSk7DQoJCQlzSGFuZC5zZXRBdHRyaWJ1dGUoJ3ky
JywgOTAgKiBNYXRoLnNpbihhbmdsZSkpOw0KDQoJCQl2YXIgZCA9IChuZXcgRGF0ZSgpKS50b1VU
Q1N0cmluZygpOw0KCSAgICAgICAgZGlnaXRhbC5maXJzdENoaWxkLmRhdGEgPSBkOw0KCQl9DQoN
CgkJZnVuY3Rpb24gdXBkYXRlTWludXRlcygpIHsNCgkJCXZhciBhbmdsZSA9IChuZXcgRGF0ZSgp
KS5nZXRNaW51dGVzKCkgKiBNYXRoLlBJLzMwOw0KDQoJCQlpZiAoYW5nbGUgPT0gMCkNCgkJCQl1
cGRhdGVIb3VycygpOw0KDQoJCQltSGFuZC5zZXRBdHRyaWJ1dGUoJ3gyJywgNjUgKiBNYXRoLmNv
cyhhbmdsZSkpOw0KCQkJbUhhbmQuc2V0QXR0cmlidXRlKCd5MicsIDY1ICogTWF0aC5zaW4oYW5n
bGUpKTsNCgkJfQ0KDQoJCWZ1bmN0aW9uIHVwZGF0ZUhvdXJzKCkgew0KCQkJdmFyIGFuZ2xlID0g
KG5ldyBEYXRlKCkpLmdldEhvdXJzKCkgKiBNYXRoLlBJLzY7DQoJCQloSGFuZC5zZXRBdHRyaWJ1
dGUoJ3gyJywgNDAgKiBNYXRoLmNvcyhhbmdsZSkpOw0KCQkJaEhhbmQuc2V0QXR0cmlidXRlKCd5
MicsIDQwICogTWF0aC5zaW4oYW5nbGUpKTsNCgkJfQ0KCQl1cGRhdGVTZWNvbmRzKCk7DQoJCXVw
ZGF0ZU1pbnV0ZXMoKTsNCgkJdXBkYXRlSG91cnMoKTsNCgkJc2V0SW50ZXJ2YWwoJ3VwZGF0ZVNl
Y29uZHMoKScsIDEwMDApOw0KDQoJPC9zY3JpcHQ+DQo8L3N2Zz4NCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8601</attachid>
            <date>2006-05-30 04:15:13 -0700</date>
            <delta_ts>2006-05-30 14:58:26 -0700</delta_ts>
            <desc>First stab and turning some of these back on</desc>
            <filename>stab.patch</filename>
            <type>text/plain</type>
            <size>145611</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IHBsYXRmb3JtL0NvbG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vQ29sb3IuaAko
cmV2aXNpb24gMTQ2MTkpCisrKyBwbGF0Zm9ybS9Db2xvci5oCSh3b3JraW5nIGNvcHkpCkBAIC00
Myw3ICs0Myw3IEBACiBjbGFzcyBTdHJpbmc7CiBjbGFzcyBDb2xvcjsKIAotdHlwZWRlZiB1bnNp
Z25lZCBpbnQgUkdCQTMyOyAgICAgICAgICAgICAgICAgICAgICAvLyBSR0JBIHF1YWRydXBsZXQK
K3R5cGVkZWYgdW5zaWduZWQgUkdCQTMyOyAgICAgICAgLy8gUkdCQSBxdWFkcnVwbGV0CiAKIFJH
QkEzMiBtYWtlUkdCKGludCByLCBpbnQgZywgaW50IGIpOwogUkdCQTMyIG1ha2VSR0JBKGludCBy
LCBpbnQgZywgaW50IGIsIGludCBhKTsKSW5kZXg6IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCShyZXZpc2lvbiAxNDYxOSkKKysrIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYsNyArMTE2LDcgQEAKICAgICBteSAkZGF0YU5vZGUg
PSBzaGlmdDsKICAgICByZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVn
YWN5UGFyZW50In0gaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFy
ZW50In07CiAgICAgcmV0dXJuICJLSlM6OkRPTU9iamVjdCIgaWYgQHskZGF0YU5vZGUtPnBhcmVu
dHN9IGVxIDA7Ci0gICAgcmV0dXJuICJKUyIgLiAkZGF0YU5vZGUtPnBhcmVudHMoMCk7CisgICAg
cmV0dXJuICJKUyIgLiAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJl
bnRzKDApKTsKIH0KIAogc3ViIEdldExlZ2FjeUhlYWRlckluY2x1ZGVzCkBAIC0xNDUsNyArMTQ1
LDcgQEAKIAogc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogewotICAgIG15ICR0eXBlID0gc2hpZnQ7
CisgICAgbXkgJHR5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOwogICAg
IAogICAgICMgV2hlbiB3ZSdyZSBmaW5pc2hlZCB3aXRoIHRoZSBvbmUtZmlsZS1wZXItY2xhc3Mg
CiAgICAgIyByZW9yZ2FuaXphdGlvbiwgd2UgZG9uJ3QgbmVlZCB0aGVzZSBzcGVjaWFsIGNhc2Vz
LgpAQCAtMTg4LDkgKzE4OCw5IEBACiAgICAgCiAgICAgIyBGSVhNRTogRm9yIFNWRyB3ZSBuZWVk
IHRvIHN1cHBvcnQgbW9yZSB0aGFuIG9uZSBwYXJlbnQKICAgICAjIEJ1dCBubyBtb3JlIHRoYW4g
b25lIHBhcmVudCBjYW4gYmUgImNvbmNyZXRlIgotICAgIGlmIChAeyRkYXRhTm9kZS0+cGFyZW50
c30gPiAxKSB7Ci0gICAgICAgIGRpZSAiQSBjbGFzcyBjYW4ndCBoYXZlIG1vcmUgdGhhbiBvbmUg
cGFyZW50IjsKLSAgICB9CisgICAgI2lmIChAeyRkYXRhTm9kZS0+cGFyZW50c30gPiAxKSB7Cisg
ICAgIyAgICBkaWUgIkEgY2xhc3MgY2FuJ3QgaGF2ZSBtb3JlIHRoYW4gb25lIHBhcmVudCI7Cisg
ICAgI30KICAgICAKICAgICBteSAkaGFzTGVnYWN5UGFyZW50ID0gJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In07CiAgICAgbXkgJGhhc1JlYWxQYXJlbnQgPSBA
eyRkYXRhTm9kZS0+cGFyZW50c30gPiAwOwpAQCAtNzAxLDcgKzcwMSw3IEBACiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGNhc2UgIiAuIHVjZmlyc3QoJG5hbWUpIC4gIkF0dHJOdW06
XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiAkbmFtZShl
eGVjKTtcbiIpOwogICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlID1+
IC9Db25zdHJ1Y3RvciQvKSB7Ci0gICAgICAgIG15ICRjb25zdHJ1Y3RvclR5cGUgPSAkYXR0cmli
dXRlLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgIG15ICRjb25zdHJ1Y3RvclR5cGUgPSAkY29k
ZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKICAg
ICAgICAgJGNvbnN0cnVjdG9yVHlwZSA9fiBzL0NvbnN0cnVjdG9yJC8vOwogCiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGNhc2UgIiAuICRuYW1lIC4gIkNvbnN0cnVjdG9yQXR0ck51
bTpcbiIpOwpAQCAtODc2LDcgKzg3Niw3IEBACiB7CiAgIG15ICRzaWduYXR1cmUgPSBzaGlmdDsK
ICAgCi0gIG15ICR0eXBlID0gJHNpZ25hdHVyZS0+dHlwZTsKKyAgICBteSAkdHlwZSA9ICRjb2Rl
R2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkc2lnbmF0dXJlLT50eXBlKTsKICAgCiAgIGlmICgkdHlw
ZSBlcSAiYm9vbGVhbiIpIHsKICAgICByZXR1cm4gImJvb2wiOwpAQCAtODkwLDQwICs4OTAsMzIg
QEAKICAgICB9IAogICB9IGVsc2lmICgkdHlwZSBlcSAibG9uZyIpIHsKICAgICByZXR1cm4gImlu
dCI7Ci0gIH0gZWxzaWYgKCR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCIpIHsKLSAgICByZXR1cm4g
InVuc2lnbmVkIHNob3J0IjsKLSAgfSBlbHNpZiAoJHR5cGUgZXEgImZsb2F0IikgewotICAgIHJl
dHVybiAiZmxvYXQiOworICAgIH0gZWxzaWYgKCR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCIgb3Ig
JHR5cGUgZXEgImZsb2F0IikgeworICAgICAgICByZXR1cm4gJHR5cGU7CiAgIH0gZWxzaWYgKCR0
eXBlIGVxICJBdG9taWNTdHJpbmciKSB7CiAgICAgcmV0dXJuICJBdG9taWNTdHJpbmciOwogICB9
IGVsc2lmICgkdHlwZSBlcSAiRE9NU3RyaW5nIikgewogICAgIHJldHVybiAiU3RyaW5nIjsKLSAg
fSBlbHNpZiAoJHR5cGUgZXEgIk5vZGUiIG9yCi0gICAgICAgICAgICR0eXBlIGVxICJFbGVtZW50
IiBvcgotICAgICAgICAgICAkdHlwZSBlcSAiQXR0ciIgb3IKLSAgICAgICAgICAgJHR5cGUgZXEg
IkRvY3VtZW50VHlwZSIgb3IKLSAgICAgICAgICAgJHR5cGUgZXEgIlJhbmdlIiBvcgotICAgICAg
ICAgICAkdHlwZSBlcSAiWFBhdGhOU1Jlc29sdmVyIiBvcgotICAgICAgICAgICAkdHlwZSBlcSAi
WFBhdGhSZXN1bHQiKSB7Ci0gICAgcmV0dXJuICIke3R5cGV9KiI7CiAgIH0gZWxzaWYgKCR0eXBl
IGVxICJOb2RlRmlsdGVyIikgewogICAgICAgcmV0dXJuICJQYXNzUmVmUHRyPCR7dHlwZX0+IjsK
ICAgfSBlbHNpZiAoJHR5cGUgZXEgIkNvbXBhcmVIb3ciKSB7CiAgICAgcmV0dXJuICJSYW5nZTo6
Q29tcGFyZUhvdyI7CiAgIH0gZWxzaWYgKCR0eXBlIGVxICJFdmVudFRhcmdldCIpIHsKICAgICBy
ZXR1cm4gIkV2ZW50VGFyZ2V0Tm9kZSoiOwotICB9IGVsc2lmICgkdHlwZSBlcSAiRE9NV2luZG93
IikgewotICAgIHJldHVybiAiRE9NV2luZG93KiI7Ci0gIH0gZWxzZSB7Ci0gICAgZGllICJEb24n
dCBrbm93IHRoZSBuYXRpdmUgdHlwZSBvZiAkdHlwZSI7CisgICAgfSBlbHNpZiAoJHR5cGUgZXEg
IlNWR1JlY3QiKSB7CisgICAgICAgIHJldHVybiAiRmxvYXRSZWN0IjsKKyAgICB9IGVsc2lmICgk
dHlwZSBlcSAiU1ZHUG9pbnQiKSB7CisgICAgICAgIHJldHVybiAiRmxvYXRQb2ludCI7CiAgIH0K
KyAgICAjIERlZmF1bHQsIGFzc3VtZSBuYXRpdmUgdHlwZSBpcyBhIHBvaW50ZXIgd2l0aCBzYW1l
IHR5cGUgbmFtZSBhcyBpZGwgdHlwZQorICAgIHJldHVybiAiJHt0eXBlfSoiOwogfQogCiBzdWIg
VHlwZUNhbkZhaWxDb252ZXJzaW9uCiB7CiAgIG15ICRzaWduYXR1cmUgPSBzaGlmdDsKICAgCi0g
IG15ICR0eXBlID0gJHNpZ25hdHVyZS0+dHlwZTsKKyAgbXkgJHR5cGUgPSAkY29kZUdlbmVyYXRv
ci0+U3RyaXBNb2R1bGUoJHNpZ25hdHVyZS0+dHlwZSk7CiAKICAgaWYgKCR0eXBlIGVxICJib29s
ZWFuIikgewogICAgIHJldHVybiAwOwpAQCAtOTMyLDcgKzkyNCw3IEBACiAgIH0gZWxzaWYgKCR0
eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCIpIHsKICAgICByZXR1cm4gMDsgIyBvciBjYW4gaXQ/CiAg
IH0gZWxzaWYgKCR0eXBlIGVxICJDb21wYXJlSG93IikgewotICAgIHJldHVybiAwOyAjIG9yIGNh
biBpdD8KKyAgICByZXR1cm4gMDsgIyBvciBjYW4gaXQ/tgogICB9IGVsc2lmICgkdHlwZSBlcSAi
ZmxvYXQiKSB7CiAgICAgcmV0dXJuIDA7CiAgIH0gZWxzaWYgKCR0eXBlIGVxICJBdHRyIikgewpA
QCAtOTQ5LDcgKzk0MSwxMCBAQAogICAgICAgICAgICAkdHlwZSBlcSAiRE9NV2luZG93IiBvcgog
ICAgICAgICAgICAkdHlwZSBlcSAiWFBhdGhFdmFsdWF0b3IiIG9yCiAgICAgICAgICAgICR0eXBl
IGVxICJYUGF0aE5TUmVzb2x2ZXIiIG9yCi0gICAgICAgICAgICR0eXBlIGVxICJYUGF0aFJlc3Vs
dCIpIHsKKyAgICAgICAgICAgJHR5cGUgZXEgIlhQYXRoUmVzdWx0IiBvcgorICAgICAgICAgICAk
dHlwZSBlcSAiU1ZHTWF0cml4IiBvcgorICAgICAgICAgICAkdHlwZSBlcSAiU1ZHUmVjdCIgb3IK
KyAgICAgICAgICAgJHR5cGUgZXEgIlNWR0VsZW1lbnQiKSB7CiAgICAgICByZXR1cm4gMDsKICAg
fSBlbHNlIHsKICAgICBkaWUgIkRvbid0IGtub3cgd2hldGhlciBhIEpTIHZhbHVlIGNhbiBmYWls
IGNvbnZlcnNpb24gdG8gdHlwZSAkdHlwZS4iCkBAIC05NjMsNyArOTU4LDcgQEAKICAgbXkgJG9r
UGFyYW0gPSBzaGlmdDsKICAgbXkgJG1heWJlT2tQYXJhbSA9ICRva1BhcmFtID8gIiwgJHtva1Bh
cmFtfSIgOiAiIjsKICAgCi0gIG15ICR0eXBlID0gJHNpZ25hdHVyZS0+dHlwZTsKKyAgICBteSAk
dHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkc2lnbmF0dXJlLT50eXBlKTsKIAog
ICBpZiAoJHR5cGUgZXEgImJvb2xlYW4iKSB7CiAgICAgbXkgJGNvbnYgPSAkc2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29udmVydFVuZGVmaW5lZFRvVHJ1ZSJ9OwpAQCAtOTcyLDkg
Kzk2Nyw5IEBACiAgICAgfSBlbHNlIHsKICAgICByZXR1cm4gIiR2YWx1ZS0+dG9Cb29sZWFuKGV4
ZWMpIjsKICAgICB9Ci0gIH0gZWxzaWYgKCR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIiBvciAkdHlw
ZSBlcSAibG9uZyIpIHsKLSAgICByZXR1cm4gIiR2YWx1ZS0+dG9JbnQzMihleGVjKSI7Ci0gIH0g
ZWxzaWYgKCR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCIpIHsKKyAgICB9IGVsc2lmICgkdHlwZSBl
cSAidW5zaWduZWQgbG9uZyIgb3IKKyAgICAgICAgICAgICAkdHlwZSBlcSAibG9uZyIgb3IKKyAg
ICAgICAgICAgICAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiKSB7CiAgICAgcmV0dXJuICIkdmFs
dWUtPnRvSW50MzIoZXhlYykiOwogICB9IGVsc2lmICgkdHlwZSBlcSAiQ29tcGFyZUhvdyIpIHsK
ICAgICByZXR1cm4gInN0YXRpY19jYXN0PFJhbmdlOjpDb21wYXJlSG93PigkdmFsdWUtPnRvSW50
MzIoZXhlYykpIjsKQEAgLTEwMDksMTQgKzEwMDQsMTYgQEAKICAgfSBlbHNpZiAoJHR5cGUgZXEg
IkRPTVdpbmRvdyIpIHsKICAgICAkaW1wbEluY2x1ZGVzeyJranNfd2luZG93LmgifSA9IDE7CiAg
ICAgcmV0dXJuICJ0b0RPTVdpbmRvdygkdmFsdWUpIjsgCi0gIH0gZWxzaWYgKCR0eXBlIGVxICJS
YW5nZSIgb3IKLSAgICAgICAgICAgJHR5cGUgZXEgIlhQYXRoTlNSZXNvbHZlciIgb3IKLSAgICAg
ICAgICAgJHR5cGUgZXEgIlhQYXRoUmVzdWx0IikgeworICAgIH0gZWxzaWYgKCR0eXBlIGVxICJT
VkdSZWN0IikgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU1NWR1JlY3QuaCJ9ID0gMTsKKyAg
ICAgICAgcmV0dXJuICJ0b0Zsb2F0UmVjdCgkdmFsdWUpIjsKKyAgICB9IGVsc2lmICgkdHlwZSBl
cSAiU1ZHUG9pbnQiKSB7CisgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTU1ZHUG9pbnQuaCJ9ID0g
MTsKKyAgICAgICAgcmV0dXJuICJ0b0Zsb2F0UG9pbnQoJHZhbHVlKSI7CisgICAgfQorICAgICMg
RGVmYXVsdCwgYXNzdW1lIGF1dG9nZW5lcmF0ZWQgdHlwZSBjb252ZXJzaW9uIHJvdXRpbmVzCiAg
ICAgJGltcGxJbmNsdWRlc3siSlMkdHlwZS5oIn0gPSAxOwogICAgIHJldHVybiAidG8kdHlwZSgk
dmFsdWUpIjsKLSAgfSBlbHNlIHsKLSAgICBkaWUgIkRvbid0IGtub3cgaG93IHRvIGNvbnZlcnQg
YSBKUyB2YWx1ZSBvZiB0eXBlICR0eXBlLiIKLSAgfQogfQogCiBzdWIgTmF0aXZlVG9KU1ZhbHVl
CkBAIC0xMDI0LDcgKzEwMjEsNyBAQAogICAgIG15ICRzaWduYXR1cmUgPSBzaGlmdDsKICAgICBt
eSAkdmFsdWUgPSBzaGlmdDsKICAgICAKLSAgICBteSAkdHlwZSA9ICRzaWduYXR1cmUtPnR5cGU7
CisgICAgbXkgJHR5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJHNpZ25hdHVyZS0+
dHlwZSk7CiAgICAgCiAgICAgaWYgKCR0eXBlIGVxICJib29sZWFuIikgewogICAgICAgICByZXR1
cm4gImpzQm9vbGVhbigkdmFsdWUpIjsKQEAgLTExMjMsMTIgKzExMjAsMTYgQEAKICAgICAgICAg
JGltcGxJbmNsdWRlc3sia2pzX2h0bWwuaCJ9ID0gMTsKICAgICAgICAgJGltcGxJbmNsdWRlc3si
SFRNTENvbGxlY3Rpb24uaCJ9ID0gMTsKICAgICAgICAgcmV0dXJuICJnZXRIVE1MQ29sbGVjdGlv
bihleGVjLCAkdmFsdWUuZ2V0KCkpIjsKLSAgICB9IGVsc2UgeworICAgIH0gZWxzaWYgKCR0eXBl
IGVxICJTVkdSZWN0IiBvcgorICAgICAgICAgICAgICR0eXBlIGVxICJTVkdQb2ludCIgb3IKKyAg
ICAgICAgICAgICAkdHlwZSBlcSAiU1ZHTnVtYmVyIikgewogICAgICAgICAkaW1wbEluY2x1ZGVz
eyJKUyR0eXBlLmgifSA9IDE7Ci0gICAgICAgIHJldHVybiAidG9KUyhleGVjLCAkdmFsdWUpIjsK
KyAgICAgICAgcmV0dXJuICJnZXRKUyR0eXBlKGV4ZWMsICR2YWx1ZSkiOwogICAgIH0KICAgICAK
LSAgICBkaWUgKCIkdmFsdWUgIiAuICRzaWduYXR1cmUtPnR5cGUpOworICAgICMgRGVmYXVsdCwg
aW5jbHVkZSBoZWFkZXIgd2l0aCBzYW1lIG5hbWUuCisgICAgJGltcGxJbmNsdWRlc3siSlMkdHlw
ZS5oIn0gPSAxOworICAgIHJldHVybiAidG9KUyhleGVjLCAkdmFsdWUpIjsKIH0KIAogIyBJbnRl
cm5hbCBIZWxwZXIKSW5kZXg6IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHJldmlzaW9uIDE0
NjE5KQorKysgYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCSh3b3JraW5nIGNvcHkp
CkBAIC01Nyw2ICs1NywxNCBAQAogICByZXR1cm4gJHJlZmVyZW5jZTsKIH0KIAorc3ViIFN0cmlw
TW9kdWxlKCQpCit7CisJbXkgJG9iamVjdCA9IHNoaWZ0OworCW15ICRuYW1lID0gc2hpZnQ7CisJ
JG5hbWUgPX4gcy9bYS16QS1aMC05XSo6Oi8vOworCXJldHVybiAkbmFtZTsKK30KKwogc3ViIFBy
b2Nlc3NEb2N1bWVudAogewogICBteSAkb2JqZWN0ID0gc2hpZnQ7CkBAIC05NywxMCArMTA1LDcg
QEAKICAgIyBJdCBnZXRzIHRyaWNraWVyIGZvciBpZS4gdGhlICdQbGF0Zm9ybU1vdXNlRXZlbnQn
IGludGVyZmFjZSwgd2hvc2UgcGFyZW50IGlzCiAgICMgdGhlICdVSUV2ZW50JyBpbnRlcmZhY2Us
IHdob3NlIHBhcmVudCBpcyB0aGUgJ0V2ZW50JyBpbnRlcmZhY2UuIFJldHVybiBpdC4KICAgbXkg
JG9iamVjdCA9IHNoaWZ0OwotCi0gIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKLSAgJGludGVyZmFj
ZSA9fiBzL1thLXpBLVowLTldKjo6Ly87ICMgU3RyaXAgbW9kdWxlLgotCisgIG15ICRpbnRlcmZh
Y2UgPSBTdHJpcE1vZHVsZShzaGlmdCk7CiAgIG15ICR0b3BCYXNlQ2xhc3MgPSAiIjsKICAgCiAg
ICMgTG9vcCB1bnRpbCB3ZSBmb3VuZCB0aGUgdG9wIG1vc3QgYmFzZSBjbGFzcyBmb3IgJ2ludGVy
ZmFjZScKQEAgLTEzNSw4ICsxNDAsNyBAQAogCiAgICAgICAgICAgIyBFeGNlcHRpb246IEZvciB0
aGUgRE9NICdOb2RlJyBpcyBvdXIgdG9wbW9zdCBiYXNlY2xhc3MsIG5vdCBFdmVudFRhcmdldC4K
ICAgICAgICAgICBpZigoJHBhcmVudHNNYXggPiAwKSBhbmQgKCRwYXJlbnRzWzBdIG5lICJldmVu
dHM6OkV2ZW50VGFyZ2V0IikpIHsKLSAgICAgICAgICAgICRpbnRlcmZhY2UgPSAkcGFyZW50c1sw
XTsKLSAgICAgICAgICAgICRpbnRlcmZhY2UgPX4gcy9bYS16QS1aMC05XSo6Oi8vOyAjIFN0cmlw
IG1vZHVsZTsKKyAgICAgICAgICAgICRpbnRlcmZhY2UgPSBTdHJpcE1vZHVsZSgkcGFyZW50c1sw
XSk7CiAgICAgICAgICAgfSBlbHNpZighJGNsYXNzLT5ub0RQdHJGbGFnKSB7ICMgSW5jbHVkZSAn
bW9kdWxlJyAuLi4KICAgICAgICAgICAgICR0b3BCYXNlQ2xhc3MgPSAkZG9jdW1lbnQtPm1vZHVs
ZSAuICI6OiIgLiAkY2xhc3MtPm5hbWU7CiAgICAgICAgICAgfQpAQCAtMTU1LDEwICsxNTksNyBA
QAogewogICAjIERldGVybWluZSB3aGV0ZXIgYSBnaXZlbiBpbnRlcmZhY2UgaGFzIGFueSB3cml0
ZWFibGUgYXR0cmlidXRlcy4uLgogICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0KLSAgbXkgJGludGVy
ZmFjZSA9IHNoaWZ0OwotICAkaW50ZXJmYWNlID1+IHMvW2EtekEtWjAtOV0qOjovLzsgIyBTdHJp
cCBtb2R1bGUuCi0KKyAgbXkgJGludGVyZmFjZSA9IFN0cmlwTW9kdWxlKHNoaWZ0KTsKICAgbXkg
JGhhc1dyaXRlYWJsZUF0dHJpYnV0ZXMgPSAwOwogICAKICAgIyBTdGVwICMxOiBGaW5kIHRoZSBJ
REwgZmlsZSBhc3NvY2lhdGVkIHdpdGggJ2ludGVyZmFjZScKQEAgLTMwMiw4ICszMDMsNyBAQAog
ICAgIG15ICRjbGFzcyA9ICRfOwogCiAgICAgZm9yZWFjaChAeyRjbGFzcy0+cGFyZW50c30pIHsK
LSAgICAgIG15ICRjYWNoZUhhbmRsZSA9ICRfOwotICAgICAgJGNhY2hlSGFuZGxlID1+IHMvW2Et
ekEtWjAtOV0qOjovLzsgIyBTdHJpcCBtb2R1bGUuCisgICAgICBteSAkY2FjaGVIYW5kbGUgPSBT
dHJpcE1vZHVsZSgkXyk7CiAKICAgICAgIGlmKCRjYWNoZUhhbmRsZSBlcSAkaW50ZXJmYWNlKSB7
CiAgICAgICAgIG15ICRpZGVudGlmaWVyID0gJGRvY3VtZW50LT5tb2R1bGUgLiAiOjoiIC4gJGNs
YXNzLT5uYW1lOwpJbmRleDogRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBEZXJp
dmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxNDYxOSkKKysrIERlcml2ZWRTb3VyY2VzLm1ha2UJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDggQEAKICAgICAkKFdlYkNvcmUpL2h0bWwgXAog
ICAgICQoV2ViQ29yZSkvcGFnZSBcCiAgICAgJChXZWJDb3JlKS94cGF0aCBcCisgICAgJChXZWJD
b3JlKS9rc3ZnMi9zdmcgXAorICAgICQoV2ViQ29yZSkva3N2ZzIvYmluZGluZ3MvanMgXAogIwog
CiAuUEhPTlkgOiBhbGwKQEAgLTExOCw2ICsxMjAsMTcgQEAKICAgICBKU05vdGF0aW9uLmggXAog
ICAgIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggXAogICAgIEpTUmFuZ2UuaCBcCisgICAgSlNT
VkdBbmdsZS5oIFwKKyAgICBKU1NWR0FuaW1hdGVkTGVuZ3RoLmggXAorICAgIEpTU1ZHQ29sb3Iu
aCBcCisgICAgSlNTVkdEb2N1bWVudC5oIFwKKyAgICBKU1NWR0VsZW1lbnQuaCBcCisgICAgSlNT
VkdMZW5ndGguaCBcCisgICAgSlNTVkdNYXRyaXguaCBcCisgICAgSlNTVkdQb2ludFRhYmxlLmNw
cCBcCisgICAgSlNTVkdSZWN0VGFibGUuY3BwIFwKKyAgICBKU1NWR1NWR0VsZW1lbnQuaCBcCisg
ICAgSlNTVkdUcmFuc2Zvcm0uaCBcCiAgICAgSlNUZXh0LmggXAogICAgIEpTVUlFdmVudC5oIFwK
ICAgICBKU1hQYXRoRXZhbHVhdG9yLmggXApAQCAtMjc0LDQgKzI4Nyw0IEBACiAjCiAKIEpTJS5o
IDogJS5pZGwgJChKU19CSU5ESU5HU19TQ1JJUFRTKQotCXBlcmwgLUkkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdz
LnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVMpIiAtLWdlbmVyYXRvciBKUyAtLWluY2x1
ZGUgZG9tIC0taW5jbHVkZSBodG1sIC0taW5jbHVkZSB4cGF0aCAtLW91dHB1dGRpciAgLiAkPAor
CXBlcmwgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJChXZWJDb3JlKS9iaW5kaW5ncy9z
Y3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVMp
IiAtLWdlbmVyYXRvciBKUyAtLWluY2x1ZGUgZG9tIC0taW5jbHVkZSBodG1sIC0taW5jbHVkZSB4
cGF0aCAtLWluY2x1ZGUga3N2ZzIvc3ZnIC0tb3V0cHV0ZGlyICAuICQ8CkluZGV4OiBXZWJDb3Jl
K1NWRy9SR0JDb2xvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUrU1ZHL1JHQkNvbG9yLmgJKHJl
dmlzaW9uIDE0NjE5KQorKysgV2ViQ29yZStTVkcvUkdCQ29sb3IuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1NSArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFz
IFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIw
MDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo
ZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
Ci0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMw
NywgVVNBLgotKi8KLQotI2lmbmRlZiBLRE9NX1JHQkNvbG9ySW1wbF9ICi0jZGVmaW5lIEtET01f
UkdCQ29sb3JJbXBsX0gKLSNpZiBTVkdfU1VQUE9SVAotCi0jaW5jbHVkZSAiU2hhcmVkLmgiCi0K
LSNpbmNsdWRlICJDb2xvci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZQotewotICAgIGNsYXNzIFN0
cmluZzsKLSAgICBjbGFzcyBDU1NQcmltaXRpdmVWYWx1ZTsKLSAgICBjbGFzcyBSR0JDb2xvciA6
IHB1YmxpYyBTaGFyZWQ8UkdCQ29sb3I+Ci0gICAgewotICAgIHB1YmxpYzoKLSAgICAgICAgUkdC
Q29sb3IoY29uc3QgUkdCQTMyICZjb2xvcik7Ci0gICAgICAgIFJHQkNvbG9yKGNvbnN0IENvbG9y
ICZjb2xvcik7Ci0gICAgICAgIHZpcnR1YWwgflJHQkNvbG9yKCk7Ci0KLSAgICAgICAgLy8gJ1JH
QkNvbG9yJyBmdW5jdGlvbnMKLSAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUgKnJlZCgpIGNvbnN0
OwotICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSAqZ3JlZW4oKSBjb25zdDsKLSAgICAgICAgQ1NT
UHJpbWl0aXZlVmFsdWUgKmJsdWUoKSBjb25zdDsKLQotICAgIHByb3RlY3RlZDoKLSAgICAgICAg
Q29sb3IgbV9jb2xvcjsKLSAgICB9OwotfTsKLQotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0jZW5k
aWYKLQotLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZStTVkcvUkdCQ29sb3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUrU1ZHL1JHQkNvbG9yLmNwcAkocmV2aXNpb24gMTQ2MTkpCisr
KyBXZWJDb3JlK1NWRy9SR0JDb2xvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNjUgKzAsMCBA
QAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3
aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxi
dWlzQGtkZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QK
LQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot
ICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQ
bGFjZSAtIFN1aXRlIDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgIlJHQkNvbG9y
LmgiCi0jaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1SR0JDb2xvcjo6UkdCQ29sb3IoY29uc3QgUkdCQTMyICZjb2xvcikKLSAgICA6IFNoYXJl
ZDxSR0JDb2xvcj4oKQotICAgICwgbV9jb2xvcihjb2xvcikKLXsKLX0KLQotUkdCQ29sb3I6OlJH
QkNvbG9yKGNvbnN0IENvbG9yICZjb2xvcikKLSAgICA6IFNoYXJlZDxSR0JDb2xvcj4oKQotICAg
ICwgbV9jb2xvcihjb2xvcikKLXsKLX0KLQotUkdCQ29sb3I6On5SR0JDb2xvcigpCi17Ci19Ci0K
LUNTU1ByaW1pdGl2ZVZhbHVlICpSR0JDb2xvcjo6cmVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
bmV3IENTU1ByaW1pdGl2ZVZhbHVlKGZsb2F0KG1fY29sb3IuYWxwaGEoKSA/IG1fY29sb3IucmVk
KCkgOiAwKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19ESU1FTlNJT04pOwotfQotCi1DU1NQcmlt
aXRpdmVWYWx1ZSAqUkdCQ29sb3I6OmdyZWVuKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbmV3IENT
U1ByaW1pdGl2ZVZhbHVlKGZsb2F0KG1fY29sb3IuYWxwaGEoKSA/IG1fY29sb3IuZ3JlZW4oKSA6
IDApLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RJTUVOU0lPTik7Ci19Ci0KLUNTU1ByaW1pdGl2
ZVZhbHVlICpSR0JDb2xvcjo6Ymx1ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG5ldyBDU1NQcmlt
aXRpdmVWYWx1ZShmbG9hdChtX2NvbG9yLmFscGhhKCkgPyBtX2NvbG9yLmJsdWUoKSA6IDApLCBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RJTUVOU0lPTik7Ci19Ci0KLX0KLQotLy8gdmltOnRzPTQ6
bm9ldAotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0KSW5kZXg6IFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDE0NjE5KQorKysgV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC03NTAsNiArNzUwLDQwIEBACiAJCUE4MjNBNzVDMDlCNkU1
MzkwMEI2MDY0MSAvKiBHcmFwaGljc0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgyM0E3NUIwOUI2RTUzOTAwQjYwNjQxIC8qIEdyYXBo
aWNzQ29udGV4dC5jcHAgKi87IH07CiAJCUE4MjZFOEFFMEExQThGMjMwMENEMUJCNiAvKiBKU0hU
TUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MjZFOEFDMEExQThGMjMwMENEMUJCNiAvKiBKU0hUTUxPcHRp
b25FbGVtZW50Q29uc3RydWN0b3IuaCAqLzsgfTsKIAkJQTgyNkVDNDgwQTFCMENCRTAwQ0QxQkI2
IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODI2RThBRDBBMUE4RjIzMDBDRDFCQjYgLyog
SlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmNwcCAqLzsgfTsKKwkJQTgzM0I0QkEwQTI3
MzExRDAwRDU3NjY0IC8qIEpTU1ZHRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNCNEI4MEEyNzMxMUQwMEQ1NzY2NCAvKiBKU1NWR0Rv
Y3VtZW50LmggKi87IH07CisJCUE4MzNCNEJCMEEyNzMxMUQwMEQ1NzY2NCAvKiBKU1NWR0RvY3Vt
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
MzNCNEI5MEEyNzMxMUQwMEQ1NzY2NCAvKiBKU1NWR0RvY3VtZW50LmNwcCAqLzsgfTsKKwkJQTgz
M0I5OTQwQTJCNzdENTAwRDU3NjY0IC8qIFNWR0RvY3VtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0I5OTMwQTJCNzdENTAwRDU3NjY0
IC8qIFNWR0RvY3VtZW50LmlkbCAqLzsgfTsKKwkJQTgzM0I5RUMwQTJCN0Q1MTAwRDU3NjY0IC8q
IFNWR0V4Y2VwdGlvbi5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4MzNCOUVCMEEyQjdENTEwMEQ1NzY2NCAvKiBTVkdFeGNlcHRpb24uaWRsICov
OyB9OworCQlBODMzQkE3RjBBMkJBM0Q0MDBENTc2NjQgLyogSlNTVkdSZWN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQkE3NTBBMkJBM0Q0MDBE
NTc2NjQgLyogSlNTVkdSZWN0LmggKi87IH07CisJCUE4MzNCQTgxMEEyQkEzRDQwMEQ1NzY2NCAv
KiBKU1NWR1JlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTgzM0JBNzcwQTJCQTNENDAwRDU3NjY0IC8qIEpTU1ZHUmVjdC5jcHAgKi87IH07CisJ
CUE4MzNCQTgyMEEyQkEzRDQwMEQ1NzY2NCAvKiBKU1NWR051bWJlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0JBNzgwQTJCQTNENDAwRDU3NjY0
IC8qIEpTU1ZHTnVtYmVyLmggKi87IH07CisJCUE4MzNCQTg1MEEyQkEzRDQwMEQ1NzY2NCAvKiBK
U1NWR1BvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBODMzQkE3QjBBMkJBM0Q0MDBENTc2NjQgLyogSlNTVkdQb2ludC5oICovOyB9OworCQlBODMz
QkE4NjBBMkJBM0Q0MDBENTc2NjQgLyogSlNTVkdQb2ludC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQkE3QzBBMkJBM0Q0MDBENTc2NjQgLyog
SlNTVkdQb2ludC5jcHAgKi87IH07CisJCUE4MzNCQTg3MEEyQkEzRDQwMEQ1NzY2NCAvKiBKU1NW
R051bWJlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBODMzQkE3RDBBMkJBM0Q0MDBENTc2NjQgLyogSlNTVkdOdW1iZXIuY3BwICovOyB9OworCQlB
ODMzQkVBMzBBMkMzMjkzMDBENTc2NjQgLyogU1ZHTGVuZ3RoLmlkbCBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0JFOUYwQTJDMzI5MzAwRDU3NjY0
IC8qIFNWR0xlbmd0aC5pZGwgKi87IH07CisJCUE4MzNCRUE0MEEyQzMyOTMwMEQ1NzY2NCAvKiBT
VkdSZWN0LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTgzM0JFQTAwQTJDMzI5MzAwRDU3NjY0IC8qIFNWR1JlY3QuaWRsICovOyB9OworCQlBODMz
QkVBNTBBMkMzMjkzMDBENTc2NjQgLyogU1ZHUG9pbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQkVBMTBBMkMzMjkzMDBENTc2NjQgLyog
U1ZHUG9pbnQuaWRsICovOyB9OworCQlBODMzQkVBNjBBMkMzMjkzMDBENTc2NjQgLyogU1ZHTnVt
YmVyLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTgzM0JFQTIwQTJDMzI5MzAwRDU3NjY0IC8qIFNWR051bWJlci5pZGwgKi87IH07CisJCUE4MzNC
RUM5MEEyQzMzRTgwMEQ1NzY2NCAvKiBTVkdDb2xvci5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNCRUM4MEEyQzMzRTgwMEQ1NzY2NCAvKiBT
VkdDb2xvci5pZGwgKi87IH07CisJCUE4MzNCRURFMEEyQzM0NEIwMEQ1NzY2NCAvKiBTVkdNYXRy
aXguaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
ODMzQkVERDBBMkMzNDRCMDBENTc2NjQgLyogU1ZHTWF0cml4LmlkbCAqLzsgfTsKKwkJQTgzM0JG
MUEwQTJDM0E5NTAwRDU3NjY0IC8qIEpTU1ZHTWF0cml4LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQkYxNjBBMkMzQTk1MDBENTc2NjQgLyogSlNT
VkdNYXRyaXguaCAqLzsgfTsKKwkJQTgzM0JGMUIwQTJDM0E5NTAwRDU3NjY0IC8qIEpTU1ZHTWF0
cml4LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
MzNCRjE3MEEyQzNBOTUwMEQ1NzY2NCAvKiBKU1NWR01hdHJpeC5jcHAgKi87IH07CisJCUE4MzNC
RjFDMEEyQzNBOTUwMEQ1NzY2NCAvKiBKU1NWR0NvbG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQkYxODBBMkMzQTk1MDBENTc2NjQgLyogSlNT
VkdDb2xvci5oICovOyB9OworCQlBODMzQkYxRDBBMkMzQTk1MDBENTc2NjQgLyogSlNTVkdDb2xv
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMz
QkYxOTBBMkMzQTk1MDBENTc2NjQgLyogSlNTVkdDb2xvci5jcHAgKi87IH07CisJCUE4MzNDMDkw
MEEyQzRGM0YwMEQ1NzY2NCAvKiBKU1NWR1NWR0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0MwOEUwQTJDNEYzRjAwRDU3NjY0IC8q
IEpTU1ZHU1ZHRWxlbWVudC5jcHAgKi87IH07CisJCUE4MzNDMDkxMEEyQzRGM0YwMEQ1NzY2NCAv
KiBKU1NWR1NWR0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4MzNDMDhGMEEyQzRGM0YwMEQ1NzY2NCAvKiBKU1NWR1NWR0VsZW1lbnQuaCAq
LzsgfTsKKwkJQTgzM0MwQUEwQTJDNEZFQzAwRDU3NjY0IC8qIFNWR0FuZ2xlLmlkbCBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0MwQTgwQTJDNEZF
QzAwRDU3NjY0IC8qIFNWR0FuZ2xlLmlkbCAqLzsgfTsKKwkJQTgzM0MwQUIwQTJDNEZFQzAwRDU3
NjY0IC8qIFNWR1RyYW5zZm9ybS5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4MzNDMEE5MEEyQzRGRUMwMEQ1NzY2NCAvKiBTVkdUcmFuc2Zvcm0u
aWRsICovOyB9OworCQlBODMzQzBGNzBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzBFRDBB
MkM1MTMzMDBENTc2NjQgLyogSlNTVkdFbGVtZW50LmggKi87IH07CisJCUE4MzNDMEY4MEEyQzUx
MzMwMEQ1NzY2NCAvKiBKU1NWR0FuaW1hdGVkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzBFRTBBMkM1MTMzMDBENTc2NjQgLyogSlNT
VkdBbmltYXRlZExlbmd0aC5oICovOyB9OworCQlBODMzQzBGOTBBMkM1MTMzMDBENTc2NjQgLyog
SlNTVkdUcmFuc2Zvcm0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTgzM0MwRUYwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHVHJhbnNmb3JtLmNwcCAq
LzsgfTsKKwkJQTgzM0MwRkEwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHQW5nbGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDMEYwMEEyQzUxMzMw
MEQ1NzY2NCAvKiBKU1NWR0FuZ2xlLmggKi87IH07CisJCUE4MzNDMEZCMEEyQzUxMzMwMEQ1NzY2
NCAvKiBKU1NWR0FuaW1hdGVkTGVuZ3RoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDMEYxMEEyQzUxMzMwMEQ1NzY2NCAvKiBKU1NWR0FuaW1h
dGVkTGVuZ3RoLmNwcCAqLzsgfTsKKwkJQTgzM0MwRkMwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZH
QW5nbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTgzM0MwRjIwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHQW5nbGUuY3BwICovOyB9OworCQlBODMz
QzBGRDBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDMEYzMEEyQzUxMzMwMEQ1NzY2NCAv
KiBKU1NWR0VsZW1lbnQuY3BwICovOyB9OworCQlBODMzQzBGRTBBMkM1MTMzMDBENTc2NjQgLyog
SlNTVkdMZW5ndGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTgzM0MwRjQwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHTGVuZ3RoLmNwcCAqLzsgfTsK
KwkJQTgzM0MwRkYwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHTGVuZ3RoLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzBGNTBBMkM1MTMzMDBENTc2
NjQgLyogSlNTVkdMZW5ndGguaCAqLzsgfTsKKwkJQTgzM0MxMDAwQTJDNTEzMzAwRDU3NjY0IC8q
IEpTU1ZHVHJhbnNmb3JtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBODMzQzBGNjBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdUcmFuc2Zvcm0uaCAqLzsg
fTsKIAkJQTg2NjI5Q0YwOURBMkI0NzAwOTYzM0E1IC8qIEpTVUlFdmVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg2NjI5QzkwOURBMkI0NzAwOTYz
M0E1IC8qIEpTVUlFdmVudC5oICovOyB9OwogCQlBODY2MjlEMDA5REEyQjQ4MDA5NjMzQTUgLyog
SlNVSUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4NjYyOUNBMDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJRXZlbnQuY3BwICovOyB9OwogCQlB
ODY2MjlEMTA5REEyQjQ4MDA5NjMzQTUgLyogSlNNb3VzZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODY2MjlDQjA5REEyQjQ3MDA5NjMzQTUg
LyogSlNNb3VzZUV2ZW50LmggKi87IH07CkBAIC0xMTQ0LDggKzExNzgsNiBAQAogCQlBODhBRDUw
QzA5NTI0OEYwMDAxREQxOTYgLyogU1ZHWm9vbUFuZFBhbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4RUMwODk3MDFGNDAwQkE1MTE0IC8qIFNW
R1pvb21BbmRQYW4uaCAqLzsgfTsKIAkJQTg4QUQ1MEQwOTUyNDhGMDAwMUREMTk2IC8qIGtzdmcu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOEVE
MDg5NzAxRjQwMEJBNTExNCAvKiBrc3ZnLmggKi87IH07CiAJCUE4OEFENTE3MDk1MjQ5OUYwMDFE
RDE5NiAvKiBET01MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBODg0MjgzRDA5MzA4QzFDMDBCNkQ0NjEgLyogRE9NTGlzdC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUE4OEFENTE4MDk1MjQ5OUYw
MDFERDE5NiAvKiBSR0JDb2xvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTg4NDI4M0UwOTMwOEMxQzAwQjZENDYxIC8qIFJHQkNvbG9yLmggKi87IH07
Ci0JCUE4OEFENTFCMDk1MjQ5OUYwMDFERDE5NiAvKiBSR0JDb2xvci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODg0MjgzRjA5MzA4QzFDMDBCNkQ0
NjEgLyogUkdCQ29sb3IuY3BwICovOyB9OwogCQlBODhBRDUxQzA5NTI0OTlGMDAxREQxOTYgLyog
U1ZHRWxlbWVudEZhY3RvcnlXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4ODQyODM5MDkzMDhDMUMwMEI2RDQ2MSAvKiBTVkdFbGVtZW50
RmFjdG9yeVdyYXBwZXIuY3BwICovOyB9OwogCQlBODhBRDUxRDA5NTI0OTlGMDAxREQxOTYgLyog
WExpbmtOYW1lc1dyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThDMzJEOTYwOTNEOEVBNDAwMEI5Q0FDIC8qIFhMaW5rTmFtZXNXcmFwcGVy
LmNwcCAqLzsgfTsKIAkJQTg4QUQ1MUUwOTUyNDk5RjAwMUREMTk2IC8qIFNWR05hbWVzV3JhcHBl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODg0
MjgzODA5MzA4QzFDMDBCNkQ0NjEgLyogU1ZHTmFtZXNXcmFwcGVyLmNwcCAqLzsgfTsKQEAgLTIz
OTYsNiArMjQyOCw0MCBAQAogCQlBODI2RThBRDBBMUE4RjIzMDBDRDFCQjYgLyogSlNIVE1MT3B0
aW9uRWxlbWVudENvbnN0cnVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBODJGQzMzQjA4Q0JCMDdDMDBFRkVFMjMgLyogU1ZHQ3Vyc29yRWxl
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNWR0N1cnNvckVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4MkZDMzNDMDhDQkIwN0MwMEVGRUUyMyAvKiBTVkdDdXJz
b3JFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU1ZHQ3Vyc29yRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OworCQlBODMzQjRCODBBMjczMTFEMDBENTc2
NjQgLyogSlNTVkdEb2N1bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNTVkdEb2N1bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQjRCOTBB
MjczMTFEMDBENTc2NjQgLyogSlNTVkdEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdEb2N1bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUE4MzNCOTkzMEEyQjc3RDUwMEQ1NzY2NCAvKiBTVkdEb2N1bWVudC5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0RvY3VtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTgzM0I5RUIwQTJCN0Q1MTAwRDU3NjY0IC8qIFNWR0V4Y2VwdGlvbi5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0V4Y2VwdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUE4MzNCQTc1MEEyQkEzRDQwMEQ1NzY2NCAvKiBKU1NWR1JlY3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHUmVjdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBODMzQkE3NzBBMkJBM0Q0MDBENTc2NjQgLyogSlNTVkdSZWN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR1JlY3QuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQkE3ODBBMkJBM0Q0MDBENTc2NjQg
LyogSlNTVkdOdW1iZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZH
TnVtYmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MzNCQTdCMEEyQkEzRDQw
MEQ1NzY2NCAvKiBKU1NWR1BvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1NWR1BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MzNCQTdDMEEy
QkEzRDQwMEQ1NzY2NCAvKiBKU1NWR1BvaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1NWR1BvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTgzM0JBN0QwQTJCQTNENDAwRDU3NjY0IC8qIEpTU1ZHTnVtYmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR051bWJlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUE4MzNCRTlGMEEyQzMyOTMwMEQ1NzY2NCAvKiBTVkdMZW5ndGgu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdMZW5ndGguaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBODMzQkVBMDBBMkMzMjkzMDBENTc2NjQgLyogU1ZHUmVjdC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR1JlY3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBODMzQkVBMTBBMkMzMjkzMDBENTc2NjQgLyogU1ZHUG9pbnQuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBTVkdQb2ludC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUE4MzNCRUEyMEEyQzMyOTMwMEQ1NzY2NCAvKiBTVkdOdW1iZXIuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBTVkdOdW1iZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBODMzQkVDODBBMkMzM0U4MDBENTc2NjQgLyogU1ZHQ29sb3IuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBTVkdDb2xvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUE4MzNCRUREMEEyQzM0NEIwMEQ1NzY2NCAvKiBTVkdNYXRyaXguaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBTVkdNYXRyaXguaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
ODMzQkYxNjBBMkMzQTk1MDBENTc2NjQgLyogSlNTVkdNYXRyaXguaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHTWF0cml4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUE4MzNCRjE3MEEyQzNBOTUwMEQ1NzY2NCAvKiBKU1NWR01hdHJpeC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdNYXRyaXguY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQkYxODBBMkMzQTk1MDBENTc2NjQgLyogSlNTVkdD
b2xvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdDb2xvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQkYxOTBBMkMzQTk1MDBENTc2NjQgLyog
SlNTVkdDb2xvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNT
VkdDb2xvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MzNDMDhFMEEyQzRG
M0YwMEQ1NzY2NCAvKiBKU1NWR1NWR0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTU1ZHU1ZHRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUE4MzNDMDhGMEEyQzRGM0YwMEQ1NzY2NCAvKiBKU1NWR1NWR0VsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHU1ZHRWxlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzBBODBBMkM0RkVDMDBENTc2NjQgLyogU1ZH
QW5nbGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdBbmdsZS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MzNDMEE5MEEyQzRGRUMwMEQ1NzY2NCAvKiBTVkdUcmFu
c2Zvcm0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdUcmFuc2Zvcm0uaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzBFRDBBMkM1MTMzMDBENTc2NjQgLyogSlNT
VkdFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR0VsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgzM0MwRUUwQTJDNTEzMzAwRDU3
NjY0IC8qIEpTU1ZHQW5pbWF0ZWRMZW5ndGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTU1ZHQW5pbWF0ZWRMZW5ndGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTgzM0MwRUYwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHVHJhbnNmb3JtLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR1RyYW5zZm9ybS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MzNDMEYwMEEyQzUxMzMwMEQ1NzY2NCAvKiBKU1NW
R0FuZ2xlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR0FuZ2xlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MzNDMEYxMEEyQzUxMzMwMEQ1NzY2NCAv
KiBKU1NWR0FuaW1hdGVkTGVuZ3RoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1NWR0FuaW1hdGVkTGVuZ3RoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQTgzM0MwRjIwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHQW5nbGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHQW5nbGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBODMzQzBGMzBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdFbGVt
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR0VsZW1l
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzBGNDBBMkM1MTMzMDBE
NTc2NjQgLyogSlNTVkdMZW5ndGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTU1ZHTGVuZ3RoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgz
M0MwRjUwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHTGVuZ3RoLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1NWR0xlbmd0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBODMzQzBGNjBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdUcmFuc2Zvcm0uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHVHJhbnNmb3JtLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4NUQ3QTJGMDg3OUVCQTkwMDZBOTE3MiAvKiBRdWFydHpDb3Jl
LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gUXVhcnR6Q29yZS5mcmFtZXdvcms7IHBhdGgg
PSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9RdWFydHpDb3JlLmZyYW1ld29yazsgc291cmNl
VHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJQTg1RDdBOEMwODc5RUM2NDAwNkE5MTcyIC8qIEtX
UVdNYXRyaXguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gS1dRV01hdHJpeC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBODVEN0E4RDA4NzlFQzY0MDA2QTkxNzIgLyog
S1dRV01hdHJpeC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBLV1FXTWF0cml4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMjQ2OCw4ICsyNTM0LDYgQEAKIAkJQTg4NDI4MzgwOTMw
OEMxQzAwQjZENDYxIC8qIFNWR05hbWVzV3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR05hbWVzV3JhcHBlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlB
ODg0MjgzOTA5MzA4QzFDMDBCNkQ0NjEgLyogU1ZHRWxlbWVudEZhY3RvcnlXcmFwcGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZH
RWxlbWVudEZhY3RvcnlXcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4ODQyODNEMDkzMDhDMUMwMEI2RDQ2MSAvKiBE
T01MaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRE9NTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNU
YWJzID0gMDsgfTsKLQkJQTg4NDI4M0UwOTMwOEMxQzAwQjZENDYxIC8qIFJHQkNvbG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUkdCQ29sb3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
Ci0JCUE4ODQyODNGMDkzMDhDMUMwMEI2RDQ2MSAvKiBSR0JDb2xvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJHQkNvbG9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJ
CUE4OTBERjFCMDkzMDk3NDgwMDUxM0Y4OCAvKiBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNW
R1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBODkwREYxQzA5MzA5NzQ4MDA1MTNGODgg
LyogU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxl
RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwogCQlBODkwREYxRDA5MzA5NzQ4MDA1MTNGODggLyogU1ZHU3R5bGVkTG9jYXRh
YmxlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0zNTU4LDYgKzM2MjIsMjQgQEAK
IAkJCQk2NURGMzFFQzA5RDFDQzYwMDAwQkUzMjUgLyogSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24u
aCAqLywKIAkJCQk2NURGMzFFRDA5RDFDQzYwMDAwQkUzMjUgLyogSlNSYW5nZS5jcHAgKi8sCiAJ
CQkJNjVERjMxRUUwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUmFuZ2UuaCAqLywKKwkJCQlBODMzQzBG
MjBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdBbmdsZS5jcHAgKi8sCisJCQkJQTgzM0MwRjAwQTJD
NTEzMzAwRDU3NjY0IC8qIEpTU1ZHQW5nbGUuaCAqLywKKwkJCQlBODMzQzBGMTBBMkM1MTMzMDBE
NTc2NjQgLyogSlNTVkdBbmltYXRlZExlbmd0aC5jcHAgKi8sCisJCQkJQTgzM0MwRUUwQTJDNTEz
MzAwRDU3NjY0IC8qIEpTU1ZHQW5pbWF0ZWRMZW5ndGguaCAqLywKKwkJCQlBODMzQkYxOTBBMkMz
QTk1MDBENTc2NjQgLyogSlNTVkdDb2xvci5jcHAgKi8sCisJCQkJQTgzM0JGMTgwQTJDM0E5NTAw
RDU3NjY0IC8qIEpTU1ZHQ29sb3IuaCAqLywKKwkJCQlBODMzQjRCOTBBMjczMTFEMDBENTc2NjQg
LyogSlNTVkdEb2N1bWVudC5jcHAgKi8sCisJCQkJQTgzM0I0QjgwQTI3MzExRDAwRDU3NjY0IC8q
IEpTU1ZHRG9jdW1lbnQuaCAqLywKKwkJCQlBODMzQzBGMzBBMkM1MTMzMDBENTc2NjQgLyogSlNT
VkdFbGVtZW50LmNwcCAqLywKKwkJCQlBODMzQzBFRDBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdF
bGVtZW50LmggKi8sCisJCQkJQTgzM0MwRjQwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHTGVuZ3Ro
LmNwcCAqLywKKwkJCQlBODMzQzBGNTBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdMZW5ndGguaCAq
LywKKwkJCQlBODMzQkYxNzBBMkMzQTk1MDBENTc2NjQgLyogSlNTVkdNYXRyaXguY3BwICovLAor
CQkJCUE4MzNCRjE2MEEyQzNBOTUwMEQ1NzY2NCAvKiBKU1NWR01hdHJpeC5oICovLAorCQkJCUE4
MzNDMDhFMEEyQzRGM0YwMEQ1NzY2NCAvKiBKU1NWR1NWR0VsZW1lbnQuY3BwICovLAorCQkJCUE4
MzNDMDhGMEEyQzRGM0YwMEQ1NzY2NCAvKiBKU1NWR1NWR0VsZW1lbnQuaCAqLywKKwkJCQlBODMz
QzBFRjBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdUcmFuc2Zvcm0uY3BwICovLAorCQkJCUE4MzND
MEY2MEEyQzUxMzMwMEQ1NzY2NCAvKiBKU1NWR1RyYW5zZm9ybS5oICovLAogCQkJCTY1REYzMUVG
MDlEMUNDNjAwMDBCRTMyNSAvKiBKU1RleHQuY3BwICovLAogCQkJCTY1REYzMUYwMDlEMUNDNjAw
MDBCRTMyNSAvKiBKU1RleHQuaCAqLywKIAkJCQlBODY2MjlDQTA5REEyQjQ3MDA5NjMzQTUgLyog
SlNVSUV2ZW50LmNwcCAqLywKQEAgLTQwNjAsNiArNDE0Miw3IEBACiAJCUE4MTIyQzdCMDhENTY0
QjAwMDg0NEZBMyAvKiBiaW5kaW5ncyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCisJCQkJQTgzM0JBMUYwQTJCQTAyQjAwRDU3NjY0IC8qIGpzICovLAogCQkJCUE4
MTIyQzdDMDhENTY0QjAwMDg0NEZBMyAvKiBpZGwgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGJpbmRp
bmdzOwpAQCAtNDE5OSwxMiArNDI4MiwyMyBAQAogCQkJcGF0aCA9IHN2ZzsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUE4MzNCQTFGMEEyQkEwMkIwMEQ1NzY2NCAvKiBqcyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQTgzM0JBN0Qw
QTJCQTNENDAwRDU3NjY0IC8qIEpTU1ZHTnVtYmVyLmNwcCAqLywKKwkJCQlBODMzQkE3ODBBMkJB
M0Q0MDBENTc2NjQgLyogSlNTVkdOdW1iZXIuaCAqLywKKwkJCQlBODMzQkE3QzBBMkJBM0Q0MDBE
NTc2NjQgLyogSlNTVkdQb2ludC5jcHAgKi8sCisJCQkJQTgzM0JBN0IwQTJCQTNENDAwRDU3NjY0
IC8qIEpTU1ZHUG9pbnQuaCAqLywKKwkJCQlBODMzQkE3NzBBMkJBM0Q0MDBENTc2NjQgLyogSlNT
VkdSZWN0LmNwcCAqLywKKwkJCQlBODMzQkE3NTBBMkJBM0Q0MDBENTc2NjQgLyogSlNTVkdSZWN0
LmggKi8sCisJCQkpOworCQkJcGF0aCA9IGpzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
KwkJfTsKIAkJQThDMEY2REMwODk3MDFGMTAwQkE1MTE0IC8qIFdlYkNvcmUrU1ZHICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlBODg0MjgzRDA5MzA4QzFD
MDBCNkQ0NjEgLyogRE9NTGlzdC5oICovLAotCQkJCUE4ODQyODNGMDkzMDhDMUMwMEI2RDQ2MSAv
KiBSR0JDb2xvci5jcHAgKi8sCi0JCQkJQTg4NDI4M0UwOTMwOEMxQzAwQjZENDYxIC8qIFJHQkNv
bG9yLmggKi8sCiAJCQkJQTg4NDI4MzkwOTMwOEMxQzAwQjZENDYxIC8qIFNWR0VsZW1lbnRGYWN0
b3J5V3JhcHBlci5jcHAgKi8sCiAJCQkJQTg4NDI4MzgwOTMwOEMxQzAwQjZENDYxIC8qIFNWR05h
bWVzV3JhcHBlci5jcHAgKi8sCiAJCQkJQThDMzJEOTYwOTNEOEVBNDAwMEI5Q0FDIC8qIFhMaW5r
TmFtZXNXcmFwcGVyLmNwcCAqLywKQEAgLTQyODMsMTIgKzQzNzcsMTEgQEAKIAkJQThDMEY3RkMw
ODk3MDFGMzAwQkE1MTE0IC8qIHN2ZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCi0JCQkJODExNjg5NUQwOUYyQTRBMDAwNzcyQ0EwIC8qIFNWR1RSZWZFbGVtZW50
LmNwcCAqLywKLQkJCQk4MTE2ODk1RTA5RjJBNEEwMDA3NzJDQTAgLyogU1ZHVFJlZkVsZW1lbnQu
aCAqLywKIAkJCQlBOEMwRjdGRjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQUVsZW1lbnQuY3BwICov
LAogCQkJCUE4QzBGODAwMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBRWxlbWVudC5oICovLAogCQkJ
CUE4QzBGODAxMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmdsZS5jcHAgKi8sCiAJCQkJQThDMEY4
MDIwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuZ2xlLmggKi8sCisJCQkJQTgzM0MwQTgwQTJDNEZF
QzAwRDU3NjY0IC8qIFNWR0FuZ2xlLmlkbCAqLywKIAkJCQlBOEMwRjgwMzA4OTcwMUYzMDBCQTUx
MTQgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAgKi8sCiAJCQkJQThDMEY4MDQwODk3MDFG
MzAwQkE1MTE0IC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCAqLywKIAkJCQlBOEMwRjgwNTA4
OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZWRBbmdsZS5jcHAgKi8sCkBAIC00MzM1LDYgKzQ0
MjgsNyBAQAogCQkJCUE4QzBGODJFMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdDbGlwUGF0aEVsZW1l
bnQuaCAqLywKIAkJCQlBOEMwRjgyRjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQ29sb3IuY3BwICov
LAogCQkJCUE4QzBGODMwMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdDb2xvci5oICovLAorCQkJCUE4
MzNCRUM4MEEyQzMzRTgwMEQ1NzY2NCAvKiBTVkdDb2xvci5pZGwgKi8sCiAJCQkJQThDMEY4MzEw
ODk3MDFGMzAwQkE1MTE0IC8qIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNw
cCAqLywKIAkJCQlBOEMwRjgzMjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQ29tcG9uZW50VHJhbnNm
ZXJGdW5jdGlvbkVsZW1lbnQuaCAqLywKIAkJCQlBODJGQzMzQzA4Q0JCMDdDMDBFRkVFMjMgLyog
U1ZHQ3Vyc29yRWxlbWVudC5jcHAgKi8sCkBAIC00MzQ1LDYgKzQ0MzksNyBAQAogCQkJCUE4QzBG
ODM2MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdEZXNjRWxlbWVudC5oICovLAogCQkJCUE4QzBGODM3
MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdEb2N1bWVudC5jcHAgKi8sCiAJCQkJQThDMEY4MzgwODk3
MDFGMzAwQkE1MTE0IC8qIFNWR0RvY3VtZW50LmggKi8sCisJCQkJQTgzM0I5OTMwQTJCNzdENTAw
RDU3NjY0IC8qIFNWR0RvY3VtZW50LmlkbCAqLywKIAkJCQlBOEMwRjgzOTA4OTcwMUYzMDBCQTUx
MTQgLyogU1ZHRE9NSW1wbGVtZW50YXRpb24uY3BwICovLAogCQkJCUE4QzBGODNBMDg5NzAxRjMw
MEJBNTExNCAvKiBTVkdET01JbXBsZW1lbnRhdGlvbi5oICovLAogCQkJCUE4QzBGODNCMDg5NzAx
RjMwMEJBNTExNCAvKiBTVkdFbGVtZW50LmNwcCAqLywKQEAgLTQzNTUsNiArNDQ1MCw3IEBACiAJ
CQkJQThDMEY4NDAwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaCAq
LywKIAkJCQlBOEMwRjg0MTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxsaXBzZUVsZW1lbnQuY3Bw
ICovLAogCQkJCUE4QzBGODQyMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdFbGxpcHNlRWxlbWVudC5o
ICovLAorCQkJCUE4MzNCOUVCMEEyQjdENTEwMEQ1NzY2NCAvKiBTVkdFeGNlcHRpb24uaWRsICov
LAogCQkJCUE4QzBGODQ1MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkLmNwcCAqLywKIAkJCQlBOEMwRjg0NjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZC5oICovLAogCQkJCUE4QzBGODQ3MDg5NzAxRjMwMEJBNTExNCAv
KiBTVkdGRUJsZW5kRWxlbWVudC5jcHAgKi8sCkBAIC00NDIzLDYgKzQ1MTksNyBAQAogCQkJCUE4
QzBGODc2MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdMYW5nU3BhY2UuaCAqLywKIAkJCQlBOEMwRjg3
NzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHTGVuZ3RoLmNwcCAqLywKIAkJCQlBOEMwRjg3ODA4OTcw
MUYzMDBCQTUxMTQgLyogU1ZHTGVuZ3RoLmggKi8sCisJCQkJQTgzM0JFOUYwQTJDMzI5MzAwRDU3
NjY0IC8qIFNWR0xlbmd0aC5pZGwgKi8sCiAJCQkJQThDMEY4NzkwODk3MDFGMzAwQkE1MTE0IC8q
IFNWR0xlbmd0aExpc3QuY3BwICovLAogCQkJCUE4QzBGODdBMDg5NzAxRjMwMEJBNTExNCAvKiBT
VkdMZW5ndGhMaXN0LmggKi8sCiAJCQkJQThDMEY4N0IwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0xp
bmVhckdyYWRpZW50RWxlbWVudC5jcHAgKi8sCkBAIC00NDM4LDggKzQ1MzUsMTAgQEAKIAkJCQlB
ODE2NTVFMzA5NkJDMTM5MDA2MDEwNTggLyogU1ZHTWFza0VsZW1lbnQuaCAqLywKIAkJCQlBOEMw
Rjg4NDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHTWF0cml4LmNwcCAqLywKIAkJCQlBOEMwRjg4NTA4
OTcwMUYzMDBCQTUxMTQgLyogU1ZHTWF0cml4LmggKi8sCisJCQkJQTgzM0JFREQwQTJDMzQ0QjAw
RDU3NjY0IC8qIFNWR01hdHJpeC5pZGwgKi8sCiAJCQkJQThDMEY4ODYwODk3MDFGMzAwQkE1MTE0
IC8qIFNWR051bWJlci5jcHAgKi8sCiAJCQkJQThDMEY4ODcwODk3MDFGMzAwQkE1MTE0IC8qIFNW
R051bWJlci5oICovLAorCQkJCUE4MzNCRUEyMEEyQzMyOTMwMEQ1NzY2NCAvKiBTVkdOdW1iZXIu
aWRsICovLAogCQkJCUE4QzBGODg4MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdOdW1iZXJMaXN0LmNw
cCAqLywKIAkJCQlBOEMwRjg4OTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHTnVtYmVyTGlzdC5oICov
LAogCQkJCUE4QzBGODhBMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYWludC5jcHAgKi8sCkBAIC00
NDQ4LDYgKzQ1NDcsOCBAQAogCQkJCUE4QzBGODhEMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRo
RWxlbWVudC5oICovLAogCQkJCUE4QzBGODhFMDg5NzAxRjMwMEJBNTExNCAvKiBzdmdwYXRocGFy
c2VyLmNwcCAqLywKIAkJCQlBOEMwRjg4RjA4OTcwMUYzMDBCQTUxMTQgLyogc3ZncGF0aHBhcnNl
ci5oICovLAorCQkJCUE4QzBGODlDMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoU2VnLmNwcCAq
LywKKwkJCQlBOEMwRjg5RDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHUGF0aFNlZy5oICovLAogCQkJ
CUE4QzBGODkwMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoU2VnQXJjLmNwcCAqLywKIAkJCQlB
OEMwRjg5MTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHUGF0aFNlZ0FyYy5oICovLAogCQkJCUE4QzBG
ODkyMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoU2VnQ2xvc2VQYXRoLmNwcCAqLywKQEAgLTQ0
NjAsMTIgKzQ1NjEsMTAgQEAKIAkJCQlBOEMwRjg5OTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWMuaCAqLywKIAkJCQlBOEMwRjg5QTA4OTcwMUYzMDBCQTUxMTQg
LyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGguY3BwICovLAogCQkJCUE4QzBGODlC
MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aC5oICov
LAotCQkJCUE4QzBGODlDMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoU2VnLmNwcCAqLywKLQkJ
CQlBOEMwRjg5RDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHUGF0aFNlZy5oICovLAotCQkJCUE4QzBG
ODlFMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbC5jcHAgKi8s
Ci0JCQkJQThDMEY4OUYwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9u
dGFsLmggKi8sCiAJCQkJQThDMEY4QTAwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1BhdGhTZWdMaW5l
dG8uY3BwICovLAogCQkJCUE4QzBGOEExMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoU2VnTGlu
ZXRvLmggKi8sCisJCQkJQThDMEY4OUUwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1BhdGhTZWdMaW5l
dG9Ib3Jpem9udGFsLmNwcCAqLywKKwkJCQlBOEMwRjg5RjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZH
UGF0aFNlZ0xpbmV0b0hvcml6b250YWwuaCAqLywKIAkJCQlBOEMwRjhBMjA4OTcwMUYzMDBCQTUx
MTQgLyogU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsLmNwcCAqLywKIAkJCQlBOEMwRjhBMzA4OTcw
MUY0MDBCQTUxMTQgLyogU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsLmggKi8sCiAJCQkJQThDMEY4
QTQwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1BhdGhTZWdMaXN0LmNwcCAqLywKQEAgLTQ0NzYsNiAr
NDU3NSw3IEBACiAJCQkJQThDMEY4QTkwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1BhdHRlcm5FbGVt
ZW50LmggKi8sCiAJCQkJQThDMEY4QUEwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1BvaW50LmNwcCAq
LywKIAkJCQlBOEMwRjhBQjA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUG9pbnQuaCAqLywKKwkJCQlB
ODMzQkVBMTBBMkMzMjkzMDBENTc2NjQgLyogU1ZHUG9pbnQuaWRsICovLAogCQkJCUE4QzBGOEFD
MDg5NzAxRjQwMEJBNTExNCAvKiBTVkdQb2ludExpc3QuY3BwICovLAogCQkJCUE4QzBGOEFEMDg5
NzAxRjQwMEJBNTExNCAvKiBTVkdQb2ludExpc3QuaCAqLywKIAkJCQlBOEMwRjhBRTA4OTcwMUY0
MDBCQTUxMTQgLyogU1ZHUG9seUVsZW1lbnQuY3BwICovLApAQCAtNDQ4OCwxMCArNDU4OCwxMSBA
QAogCQkJCUE4QzBGOEI1MDg5NzAxRjQwMEJBNTExNCAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
LmggKi8sCiAJCQkJQThDMEY4QjYwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1JhZGlhbEdyYWRpZW50
RWxlbWVudC5jcHAgKi8sCiAJCQkJQThDMEY4QjcwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5oICovLAotCQkJCUE4QzBGOEI4MDg5NzAxRjQwMEJBNTExNCAvKiBT
VkdSZWN0RWxlbWVudC5jcHAgKi8sCi0JCQkJQThDMEY4QjkwODk3MDFGNDAwQkE1MTE0IC8qIFNW
R1JlY3RFbGVtZW50LmggKi8sCiAJCQkJQThDMEY4QkEwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1Jl
Y3QuY3BwICovLAogCQkJCUE4QzBGOEJCMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdSZWN0LmggKi8s
CisJCQkJQTgzM0JFQTAwQTJDMzI5MzAwRDU3NjY0IC8qIFNWR1JlY3QuaWRsICovLAorCQkJCUE4
QzBGOEI4MDg5NzAxRjQwMEJBNTExNCAvKiBTVkdSZWN0RWxlbWVudC5jcHAgKi8sCisJCQkJQThD
MEY4QjkwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1JlY3RFbGVtZW50LmggKi8sCiAJCQkJQThDMEY4
QkMwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1NjcmlwdEVsZW1lbnQuY3BwICovLAogCQkJCUE4QzBG
OEJEMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdTY3JpcHRFbGVtZW50LmggKi8sCiAJCQkJQThDMEY4
QkUwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1NldEVsZW1lbnQuY3BwICovLApAQCAtNDUyNywxMiAr
NDYyOCwxNSBAQAogCQkJCUE4QzBGOERBMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdUZXh0UG9zaXRp
b25pbmdFbGVtZW50LmggKi8sCiAJCQkJQThDMEY4REIwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1Rp
dGxlRWxlbWVudC5jcHAgKi8sCiAJCQkJQThDMEY4REMwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1Rp
dGxlRWxlbWVudC5oICovLAotCQkJCUE4QzBGOEREMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdUcmFu
c2Zvcm1hYmxlLmNwcCAqLywKLQkJCQlBOEMwRjhERTA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHVHJh
bnNmb3JtYWJsZS5oICovLAogCQkJCUE4QzBGOERGMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdUcmFu
c2Zvcm0uY3BwICovLAogCQkJCUE4QzBGOEUwMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdUcmFuc2Zv
cm0uaCAqLywKKwkJCQlBODMzQzBBOTBBMkM0RkVDMDBENTc2NjQgLyogU1ZHVHJhbnNmb3JtLmlk
bCAqLywKKwkJCQlBOEMwRjhERDA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHVHJhbnNmb3JtYWJsZS5j
cHAgKi8sCisJCQkJQThDMEY4REUwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1RyYW5zZm9ybWFibGUu
aCAqLywKIAkJCQlBOEMwRjhFMTA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHVHJhbnNmb3JtTGlzdC5j
cHAgKi8sCiAJCQkJQThDMEY4RTIwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1RyYW5zZm9ybUxpc3Qu
aCAqLywKKwkJCQk4MTE2ODk1RDA5RjJBNEEwMDA3NzJDQTAgLyogU1ZHVFJlZkVsZW1lbnQuY3Bw
ICovLAorCQkJCTgxMTY4OTVFMDlGMkE0QTAwMDc3MkNBMCAvKiBTVkdUUmVmRWxlbWVudC5oICov
LAogCQkJCUE4QzBGOEUzMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdUU3BhbkVsZW1lbnQuY3BwICov
LAogCQkJCUE4QzBGOEU0MDg5NzAxRjQwMEJBNTExNCAvKiBTVkdUU3BhbkVsZW1lbnQuaCAqLywK
IAkJCQlBOEMwRjhFNTA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHVVJJUmVmZXJlbmNlLmNwcCAqLywK
QEAgLTU1NTksNyArNTY2Myw2IEBACiAJCQkJQTg4QUQ1MEMwOTUyNDhGMDAwMUREMTk2IC8qIFNW
R1pvb21BbmRQYW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFENTBEMDk1MjQ4RjAwMDFERDE5
NiAvKiBrc3ZnLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDUxNzA5NTI0OTlGMDAxREQxOTYg
LyogRE9NTGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTg4QUQ1MTgwOTUyNDk5RjAwMUREMTk2
IC8qIFJHQkNvbG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTUyRTdBQTA5NkFBMTFCMDAwNkYy
NDggLyogV2ViQ29yZUZyYW1lTmFtZXNwYWNlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxNjU1
RDQwOTZCQkVBQzAwNjAxMDU4IC8qIEtDYW52YXNNYXNrZXJRdWFydHouaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4MTY1NUU1MDk2QkMxMzkwMDYwMTA1OCAvKiBTVkdNYXNrRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCkBAIC02MDczLDYgKzYxNzYsMTggQEAKIAkJCQlBOEQwNjRGQzBBMjNDMENDMDA1
RTcyMDMgLyogSlNIVE1MRm9ybUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUREN0NERjI1
MEEyM0NGOTgwMDA2OTkyOCAvKiBDU1NVbmtub3duUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QThEMDZCMzkwQTI2NURDRDAwNUU3MjAzIC8qIEhUTUxOYW1lcy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQTgzM0I0QkEwQTI3MzExRDAwRDU3NjY0IC8qIEpTU1ZHRG9jdW1lbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUE4MzNCQTdGMEEyQkEzRDQwMEQ1NzY2NCAvKiBKU1NWR1JlY3QuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUE4MzNCQTgyMEEyQkEzRDQwMEQ1NzY2NCAvKiBKU1NWR051bWJlci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQTgzM0JBODUwQTJCQTNENDAwRDU3NjY0IC8qIEpTU1ZHUG9pbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCUE4MzNCRjFBMEEyQzNBOTUwMEQ1NzY2NCAvKiBKU1NWR01h
dHJpeC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTgzM0JGMUMwQTJDM0E5NTAwRDU3NjY0IC8qIEpT
U1ZHQ29sb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4MzNDMDkxMEEyQzRGM0YwMEQ1NzY2NCAv
KiBKU1NWR1NWR0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4MzNDMEY3MEEyQzUxMzMw
MEQ1NzY2NCAvKiBKU1NWR0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4MzNDMEY4MEEy
QzUxMzMwMEQ1NzY2NCAvKiBKU1NWR0FuaW1hdGVkTGVuZ3RoLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlBODMzQzBGQTBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdBbmdsZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQTgzM0MwRkYwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHTGVuZ3RoLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlBODMzQzEwMDBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdUcmFuc2Zvcm0uaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtNjE2Niw2ICs2MjgxLDE2IEBACiAJCQkJQThEMDY0RjAwQTIzQkZF
QTAwNUU3MjAzIC8qIEhUTUxGb3JtRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAogCQkJCUE4
RDA2NTFEMEEyM0MxRkUwMDVFNzIwMyAvKiBDU1NSdWxlTGlzdC5pZGwgaW4gUmVzb3VyY2VzICov
LAogCQkJCUE4RDA2NTFFMEEyM0MxRkUwMDVFNzIwMyAvKiBDU1NWYWx1ZUxpc3QuaWRsIGluIFJl
c291cmNlcyAqLywKKwkJCQlBODMzQjk5NDBBMkI3N0Q1MDBENTc2NjQgLyogU1ZHRG9jdW1lbnQu
aWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQjlFQzBBMkI3RDUxMDBENTc2NjQgLyogU1ZH
RXhjZXB0aW9uLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgzM0JFQTMwQTJDMzI5MzAwRDU3
NjY0IC8qIFNWR0xlbmd0aC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNCRUE0MEEyQzMy
OTMwMEQ1NzY2NCAvKiBTVkdSZWN0LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgzM0JFQTUw
QTJDMzI5MzAwRDU3NjY0IC8qIFNWR1BvaW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgz
M0JFQTYwQTJDMzI5MzAwRDU3NjY0IC8qIFNWR051bWJlci5pZGwgaW4gUmVzb3VyY2VzICovLAor
CQkJCUE4MzNCRUM5MEEyQzMzRTgwMEQ1NzY2NCAvKiBTVkdDb2xvci5pZGwgaW4gUmVzb3VyY2Vz
ICovLAorCQkJCUE4MzNCRURFMEEyQzM0NEIwMEQ1NzY2NCAvKiBTVkdNYXRyaXguaWRsIGluIFJl
c291cmNlcyAqLywKKwkJCQlBODMzQzBBQTBBMkM0RkVDMDBENTc2NjQgLyogU1ZHQW5nbGUuaWRs
IGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzBBQjBBMkM0RkVDMDBENTc2NjQgLyogU1ZHVHJh
bnNmb3JtLmlkbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC02NDIxLDcgKzY1NDYsNiBAQAogCQkJCUE4
OEFENTA3MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdVc2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4OEFENTA5MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdWaWV3RWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBODhBRDUwQjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHWm9vbUFuZFBh
bi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODhBRDUxQjA5NTI0OTlGMDAxREQxOTYgLyogUkdC
Q29sb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ1MUMwOTUyNDk5RjAwMUREMTk2IC8q
IFNWR0VsZW1lbnRGYWN0b3J5V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODhBRDUx
RDA5NTI0OTlGMDAxREQxOTYgLyogWExpbmtOYW1lc1dyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTg4QUQ1MUUwOTUyNDk5RjAwMUREMTk2IC8qIFNWR05hbWVzV3JhcHBlci5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTY4OTQsNiArNzAxOCwxOCBAQAogCQkJCUE4RDA2NEZCMEEyM0MwQ0Mw
MDVFNzIwMyAvKiBKU0hUTUxGb3JtRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEQw
NjVBRTBBMjQ0NkNEMDA1RTcyMDMgLyogSlNIVE1MRm9ybUVsZW1lbnRDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQThEMDZCM0EwQTI2NURDRDAwNUU3MjAzIC8qIEhUTUxOYW1lcy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlBODMzQjRCQjBBMjczMTFEMDBENTc2NjQgLyogSlNTVkdEb2N1
bWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBODMzQkE4MTBBMkJBM0Q0MDBENTc2NjQgLyog
SlNTVkdSZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4MzNCQTg2MEEyQkEzRDQwMEQ1NzY2
NCAvKiBKU1NWR1BvaW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4MzNCQTg3MEEyQkEzRDQw
MEQ1NzY2NCAvKiBKU1NWR051bWJlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBODMzQkYxQjBB
MkMzQTk1MDBENTc2NjQgLyogSlNTVkdNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTgz
M0JGMUQwQTJDM0E5NTAwRDU3NjY0IC8qIEpTU1ZHQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJQTgzM0MwOTAwQTJDNEYzRjAwRDU3NjY0IC8qIEpTU1ZHU1ZHRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlBODMzQzBGOTBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdUcmFuc2Zvcm0u
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTgzM0MwRkIwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZH
QW5pbWF0ZWRMZW5ndGguY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTgzM0MwRkMwQTJDNTEzMzAw
RDU3NjY0IC8qIEpTU1ZHQW5nbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTgzM0MwRkQwQTJD
NTEzMzAwRDU3NjY0IC8qIEpTU1ZHRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBODMz
QzBGRTBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdMZW5ndGguY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07Cklu
ZGV4OiBrY2FudmFzL0tDYW52YXNNYXRyaXguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvS0Nh
bnZhc01hdHJpeC5jcHAJKHJldmlzaW9uIDE0NjE5KQorKysga2NhbnZhcy9LQ2FudmFzTWF0cml4
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2lmIFNWR19TVVBQT1JUCiAj
aW5jbHVkZSAiS0NhbnZhc01hdHJpeC5oIgogCisjaW5jbHVkZSAia3N2Zy5oIiAvLyBmb3IgU1ZH
X0lOVkFMSURfVkFMVUVfRVJSCiAjaW5jbHVkZSAiS0NhbnZhc1BhdGguaCIKICNpbmNsdWRlICJL
V1FXTWF0cml4LmgiCiAjaW5jbHVkZSA8bWF0aC5oPgpAQCAtMzQsOCArMzUsOCBAQAogCiAvLyBL
Q2FudmFzTWF0cml4CiBLQ2FudmFzTWF0cml4OjpLQ2FudmFzTWF0cml4KCkKKyAgICA6IG1fbW9k
ZShPUFNfUFJFTVVMKQogewotICAgIG1fbW9kZSA9IE9QU19QUkVNVUw7CiB9CiAKIEtDYW52YXNN
YXRyaXg6OktDYW52YXNNYXRyaXgoY29uc3QgUU1hdHJpeCAmcW1hdHJpeCkKQEAgLTIxNCwxMiAr
MjE1LDE2IEBACiAgICAgcmV0dXJuICp0aGlzOwogfQogCi1LQ2FudmFzTWF0cml4ICZLQ2FudmFz
TWF0cml4Ojpyb3RhdGVGcm9tVmVjdG9yKGRvdWJsZSB4LCBkb3VibGUgeSkKK0tDYW52YXNNYXRy
aXggJktDYW52YXNNYXRyaXg6OnJvdGF0ZUZyb21WZWN0b3IoZG91YmxlIHgsIGRvdWJsZSB5LCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBpZiAoeCA9PSAwIHx8IHkgPT0gMCkgeworICAgICAg
ICBlYyA9IFNWR19JTlZBTElEX1ZBTFVFX0VSUjsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAg
IH0KKyAgICAKICAgICBpZihtX21vZGUgPT0gT1BTX1BSRU1VTCkKICAgICAgICAgbV9tYXRyaXgu
cm90YXRlKGF0YW4yKHksIHgpIC8gZGVnMnJhZCk7Ci0gICAgZWxzZQotICAgIHsKKyAgICBlbHNl
IHsKICAgICAgICAgUU1hdHJpeCB0ZW1wOwogICAgICAgICB0ZW1wLnJvdGF0ZShhdGFuMih5LCB4
KSAvIGRlZzJyYWQpOwogICAgICAgICBtX21hdHJpeCAqPSB0ZW1wOwpJbmRleDoga2NhbnZhcy9L
Q2FudmFzTWF0cml4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9LQ2FudmFzTWF0cml4LmgJKHJl
dmlzaW9uIDE0NjE5KQorKysga2NhbnZhcy9LQ2FudmFzTWF0cml4LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDYgKzI4LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit0eXBlZGVmIGludCBF
eGNlcHRpb25Db2RlOworCiBlbnVtIEtDTWF0cml4T3BlcmF0aW9uTW9kZSB7CiAgICAgT1BTX1BS
RU1VTCA9IDEsIC8vIERlZmF1bHQgbW9kZSAoc3ZnIGNvbXBhdGlibGUpCiAgICAgT1BTX1BPU1RN
VUwgPSAyCkBAIC04MCw3ICs4Miw3IEBACiAgICAgS0NhbnZhc01hdHJpeCAmc2NhbGUoZG91Ymxl
IHNjYWxlRmFjdG9yWCwgZG91YmxlIHNjYWxlRmFjdG9yWSk7CiAKICAgICBLQ2FudmFzTWF0cml4
ICZyb3RhdGUoZG91YmxlIGFuZ2xlKTsKLSAgICBLQ2FudmFzTWF0cml4ICZyb3RhdGVGcm9tVmVj
dG9yKGRvdWJsZSB4LCBkb3VibGUgeSk7CisgICAgS0NhbnZhc01hdHJpeCAmcm90YXRlRnJvbVZl
Y3Rvcihkb3VibGUgeCwgZG91YmxlIHksIEV4Y2VwdGlvbkNvZGUmIGVjID0gMCk7CiAKICAgICBL
Q2FudmFzTWF0cml4ICZmbGlwWCgpOwogICAgIEtDYW52YXNNYXRyaXggJmZsaXBZKCk7CkluZGV4
OiBDaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDYyMSkKKysr
IENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDE1NSBAQAogMjAwNi0wNS0zMCAg
RXJpYyBTZWlkZWwgIDxlcmljQGVzZWlkZWwuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdBUk5JTkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1Ig
Q0hBTkdFRAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtOgorICAgICAgICAqIGtjYW52YXMvS0NhbnZhc01hdHJpeC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpLQ2FudmFzTWF0cml4OjpLQ2FudmFzTWF0cml4KToKKyAgICAgICAgKFdlYkNv
cmU6OktDYW52YXNNYXRyaXg6OnJvdGF0ZUZyb21WZWN0b3IpOgorICAgICAgICAqIGtjYW52YXMv
S0NhbnZhc01hdHJpeC5oOgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5n
bGUuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQW5p
bWF0ZWRMZW5ndGguaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2lkbC9z
dmcvU1ZHQ29sb3IuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2lkbC9z
dmcvU1ZHRG9jdW1lbnQuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2lk
bC9zdmcvU1ZHRWxlbWVudC5pZGw6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvYmluZGluZ3Mv
aWRsL3N2Zy9TVkdMZW5ndGguaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdz
L2lkbC9zdmcvU1ZHTWF0cml4LmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5n
cy9pZGwvc3ZnL1NWR051bWJlci5pZGw6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvYmluZGlu
Z3MvaWRsL3N2Zy9TVkdQb2ludC5pZGw6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvYmluZGlu
Z3MvaWRsL3N2Zy9TVkdSZWN0LmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5n
cy9pZGwvc3ZnL1NWR1NWR0VsZW1lbnQuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL2Jp
bmRpbmdzL2lkbC9zdmcvU1ZHVHJhbnNmb3JtLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3Zn
Mi9iaW5kaW5ncy9pZGwvc3ZnL2tkb21kZWZzLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3Zn
Mi9iaW5kaW5ncy9qczogQWRkZWQuCisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvanMvSlNTVkdO
dW1iZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgIChXZWJDb3Jl
OjpKU1NWR051bWJlcjo6fkpTU1ZHTnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHTnVt
YmVyOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdOdW1iZXI6
OmdldFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEpTU1ZHTnVtYmVyKToKKyAgICAgICAg
KiBrc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR051bWJlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkpTU1ZHTnVtYmVyOjpKU1NWR051bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR051
bWJlcjo6Y2xhc3NJbmZvKToKKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR1BvaW50
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6SlNT
VkdQb2ludDo6fkpTU1ZHUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdQb2ludDo6Z2V0
T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUG9pbnQ6OmdldFZhbHVl
UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0SlNTVkdQb2ludCk6CisgICAgICAgIChX
ZWJDb3JlOjp0b0Zsb2F0UG9pbnQpOgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2pzL0pTU1ZH
UG9pbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU1NWR1BvaW50OjpKU1NWR1BvaW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUG9pbnQ6OmNsYXNzSW5mbyk6CisgICAgICAgIChX
ZWJDb3JlOjpKU1NWR1BvaW50OjopOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdQb2ludDo6aW1w
bCk6CisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvanMvSlNTVkdSZWN0LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdSZWN0Ojp+SlNTVkdS
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUmVjdDo6Z2V0T3duUHJvcGVydHlTbG90KToK
KyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUmVjdDo6Z2V0VmFsdWVQcm9wZXJ0eSk6CisgICAgICAg
IChXZWJDb3JlOjpnZXRKU1NWR1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6dG9GbG9hdFJlY3Qp
OgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHUmVjdC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkpTU1ZHUmVjdDo6SlNTVkdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
U1ZHUmVjdDo6Y2xhc3NJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUmVjdDo6KToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTU1ZHUmVjdDo6aW1wbCk6CisgICAgICAgICoga3N2ZzIvY3NzL1NW
R0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU1ZHVmFs
dWUpOgorICAgICAgICAqIGtzdmcyL2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkpOgorICAgICAg
ICAqIGtzdmcyL2V2ZW50cy9TVkdab29tRXZlbnQuY3BwOgorICAgICAgICAoU1ZHWm9vbUV2ZW50
OjpTVkdab29tRXZlbnQpOgorICAgICAgICAoU1ZHWm9vbUV2ZW50Ojp6b29tUmVjdFNjcmVlbik6
CisgICAgICAgIChTVkdab29tRXZlbnQ6OnByZXZpb3VzVHJhbnNsYXRlKToKKyAgICAgICAgKFNW
R1pvb21FdmVudDo6bmV3VHJhbnNsYXRlKToKKyAgICAgICAgKiBrc3ZnMi9ldmVudHMvU1ZHWm9v
bUV2ZW50Lmg6CisgICAgICAgICoga3N2ZzIva3N2Zy5oOgorICAgICAgICAoV2ViQ29yZTo6KToK
KyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHQW5nbGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBrc3Zn
Mi9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHA6CisgICAgICAgIChTVkdBbmltYXRlQ29s
b3JFbGVtZW50OjpoYW5kbGVUaW1lckV2ZW50KToKKyAgICAgICAgKFNWR0FuaW1hdGVDb2xvckVs
ZW1lbnQ6OmNsYW1wQ29sb3IpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNm
b3JtRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlVHJhbnNmb3JtRWxl
bWVudDo6U1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpoYW5kbGVUaW1lckV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpwYXJzZVRyYW5z
Zm9ybVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50
OjpjYWxjdWxhdGVSb3RhdGlvbkZyb21NYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OmluaXRpYWxNYXRyaXgpOgorICAgICAgICAqIGtzdmcyL3N2
Zy9TVkdBbmltYXRlZExlbmd0aC5pZGw6IEFkZGVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdD
b2xvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdDb2xvcjo6U1ZHQ29sb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQ29sb3I6OnJnYkNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Nv
bG9yOjpzZXRSR0JDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdDb2xvcjo6c2V0UkdCQ29s
b3JJQ0NDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdDb2xvcjo6c2V0Q29sb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQ29sb3I6OmNvbG9yKToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZH
Q29sb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NvbG9yOjopOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQ29sb3I6OnNldFJHQkNvbG9yKToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHQ29sb3Iu
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuaWRsOiBBZGRlZC4K
KyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGtz
dmcyL3N2Zy9TVkdFdmVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdFeGNl
cHRpb24uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHTGVuZ3RoLmlkbDogQWRk
ZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0xvY2F0YWJsZS5jcHA6CisgICAgICAgIChTVkdM
b2NhdGFibGU6OmdldEJCb3gpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdMb2NhdGFibGUuaDoK
KyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHTWF0cml4LmNwcDoKKyAgICAgICAgKFNWR01hdHJpeDo6
aW52ZXJzZSk6CisgICAgICAgIChTVkdNYXRyaXg6OnJvdGF0ZUZyb21WZWN0b3IpOgorICAgICAg
ICAqIGtzdmcyL3N2Zy9TVkdNYXRyaXguaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHTWF0cml4
LmlkbDogQWRkZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR051bWJlci5pZGw6IEFkZGVkLgor
ICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQYXRoRWxlbWVudDo6Z2V0UG9pbnRBdExlbmd0aCk6CisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR1BhdGhFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1BvaW50LmlkbDogQWRk
ZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1JlY3QuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBr
c3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVt
ZW50Ojp2aWV3cG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpjdXJyZW50
VHJhbnNsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OnVuc3VzcGVuZFJl
ZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpnZXRJbnRlcnNlY3Rpb25M
aXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmdldEVuY2xvc3VyZUxpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6Y2hlY2tJbnRlcnNlY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6Y2hlY2tFbmNsb3N1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHTnVtYmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR1BvaW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR1JlY3QpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdT
VkdFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudC5jcHA6Cisg
ICAgICAgIChTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50OjpnZXRCQm94KToKKyAgICAgICAgKiBr
c3ZnMi9zdmcvU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2
Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHA6CisgICAgICAgIChTVkdTdHlsZWRU
cmFuc2Zvcm1hYmxlRWxlbWVudDo6Z2V0QkJveCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1N0
eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1RleHRD
b250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldFN0
YXJ0UG9zaXRpb25PZkNoYXIpOgorICAgICAgICAoU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRF
bmRQb3NpdGlvbk9mQ2hhcik6CisgICAgICAgIChTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldEV4
dGVudE9mQ2hhcik6CisgICAgICAgIChTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1B
dFBvc2l0aW9uKToKKyAgICAgICAgKFNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaDoK
KyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHVGV4dEVsZW1lbnQ6OmdldEJCb3gpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdUZXh0
RWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm0uaDoKKyAgICAgICAg
KiBrc3ZnMi9zdmcvU1ZHVHJhbnNmb3JtLmlkbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Q29sb3IuaDoKKyAgICAgICAgKiBXZWJDb3JlK1NWRy9SR0JDb2xvci5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogV2ViQ29yZStTVkcvUkdCQ29sb3IuaDogUmVtb3ZlZC4KKworMjAwNi0wNS0zMCAg
RXJpYyBTZWlkZWwgIDxlcmljQGVzZWlkZWwuY29tPgorCiAgICAgICAgIFJldmlld2VkIGJ5IGFu
ZGVyc2NhLgogCiAgICAgICAgIFNtYWxsIGFtb3VudCBvZiBzdmctcmVsYXRlZCBjb2RlIGNsZWFu
dXAuCkluZGV4OiBrc3ZnMi9zdmcvU1ZHTnVtYmVyLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9z
dmcvU1ZHTnVtYmVyLmlkbAkocmV2aXNpb24gMTQ2MTkpCisrKyBrc3ZnMi9zdmcvU1ZHTnVtYmVy
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDMyIEBACi1tb2R1bGUgc3ZnCi17CisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBr
ZGUub3JnPgorICogICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KK21v
ZHVsZSBzdmcgewogICBpbnRlcmZhY2UgU1ZHTnVtYmVyIHsgCi0gICAgICAgICAgICAgYXR0cmli
dXRlIGZsb2F0IHZhbHVlOwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01F
eGNlcHRpb24gb24gc2V0dGluZworICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgdmFsdWUKKyAgICAg
ICAgICAgIHNldHRlciByYWlzZXMgRE9NRXhjZXB0aW9uOwogICB9OwogfTsKSW5kZXg6IGtzdmcy
L3N2Zy9TVkdFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdFeGNlcHRp
b24uaWRsCShyZXZpc2lvbiAxNDYxOSkKKysrIGtzdmcyL3N2Zy9TVkdFeGNlcHRpb24uaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsMzEgQEAKLW1vZHVsZSBzdmcKLXsKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+
CisgKiAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAq
IENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCittb2R1bGUg
c3ZnIHsKIAlpbnRlcmZhY2UgU1ZHRXhjZXB0aW9uIHsKIAkJcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIHNob3J0IGNvZGU7CiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTdHlsZWRMb2NhdGFibGVF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1N0eWxlZExvY2F0YWJsZUVsZW1l
bnQuaAkocmV2aXNpb24gMTQ2MTkpCisrKyBrc3ZnMi9zdmcvU1ZHU3R5bGVkTG9jYXRhYmxlRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw5ICsyNyw4IEBACiAjaW5jbHVkZSAiU1ZHU3R5
bGVkRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0xvY2F0YWJsZS5oIgogCi1uYW1lc3BhY2UgV2Vi
Q29yZQotewotICAgIGNsYXNzIFNWR1JlY3Q7CituYW1lc3BhY2UgV2ViQ29yZSB7CisKICAgICBj
bGFzcyBTVkdNYXRyaXg7CiAgICAgY2xhc3MgU1ZHRWxlbWVudDsKICAgICBjbGFzcyBTVkdTdHls
ZWRMb2NhdGFibGVFbGVtZW50IDogcHVibGljIFNWR1N0eWxlZEVsZW1lbnQsIHB1YmxpYyBTVkdM
b2NhdGFibGUKQEAgLTQ0LDcgKzQzLDcgQEAKICAgICAgICAgdmlydHVhbCBTVkdFbGVtZW50ICpu
ZWFyZXN0Vmlld3BvcnRFbGVtZW50KCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgU1ZHRWxlbWVu
dCAqZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdDsKIAotICAgICAgICB2aXJ0dWFsIFNW
R1JlY3QgKmdldEJCb3goKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBGbG9hdFJlY3QgZ2V0QkJv
eCgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeCAqZ2V0Q1RNKCkgY29uc3Q7CiAg
ICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4ICpnZXRTY3JlZW5DVE0oKSBjb25zdDsKICAgICAgICAg
dmlydHVhbCBTVkdNYXRyaXggKmdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50ICplbGVt
ZW50KSBjb25zdDsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTVkdFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuaAkocmV2aXNpb24gMTQ2MTkpCisrKyBrc3ZnMi9z
dmcvU1ZHU1ZHRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxNCArMzQsNyBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUKIHsKICAgICBjbGFzcyBEb2N1bWVudFB0cjsKLX07Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlCi17Ci0gICAgY2xhc3MgU1ZHUmVjdDsKICAgICBjbGFzcyBTVkdBbmdsZTsKLSAg
ICBjbGFzcyBTVkdQb2ludDsKLSAgICBjbGFzcyBTVkdOdW1iZXI7CiAgICAgY2xhc3MgU1ZHTGVu
Z3RoOwogICAgIGNsYXNzIFNWR01hdHJpeDsKICAgICBjbGFzcyBTVkdUcmFuc2Zvcm07CkBAIC01
NSw3ICs0OCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHWm9v
bUFuZFBhbgogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1NWR0VsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR1NWR0Vs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwg
flNWR1NWR0VsZW1lbnQoKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTVkcoKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CkBAIC03NCw3ICs2Nyw3IEBACiAgICAgICAgIEF0b21pY1N0cmluZyBj
b250ZW50U3R5bGVUeXBlKCkgY29uc3Q7CiAgICAgICAgIHZvaWQgc2V0Q29udGVudFN0eWxlVHlw
ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUpOwogCi0gICAgICAgIFNWR1JlY3QgKnZpZXdwb3J0
KCkgY29uc3Q7CisgICAgICAgIEZsb2F0UmVjdCB2aWV3cG9ydCgpIGNvbnN0OwogCiAgICAgICAg
IGZsb2F0IHBpeGVsVW5pdFRvTWlsbGltZXRlclgoKSBjb25zdDsKICAgICAgICAgZmxvYXQgcGl4
ZWxVbml0VG9NaWxsaW1ldGVyWSgpIGNvbnN0OwpAQCAtODksMjUgKzgyLDI1IEBACiAgICAgICAg
IGZsb2F0IGN1cnJlbnRTY2FsZSgpIGNvbnN0OwogICAgICAgICB2b2lkIHNldEN1cnJlbnRTY2Fs
ZShmbG9hdCBzY2FsZSk7CiAKLSAgICAgICAgU1ZHUG9pbnQgKmN1cnJlbnRUcmFuc2xhdGUoKSBj
b25zdDsKKyAgICAgICAgRmxvYXRQb2ludCBjdXJyZW50VHJhbnNsYXRlKCkgY29uc3Q7CiAKICAg
ICAgICAgdW5zaWduZWQgbG9uZyBzdXNwZW5kUmVkcmF3KHVuc2lnbmVkIGxvbmcgbWF4X3dhaXRf
bWlsbGlzZWNvbmRzKTsKLSAgICAgICAgdm9pZCB1bnN1c3BlbmRSZWRyYXcodW5zaWduZWQgbG9u
ZyBzdXNwZW5kX2hhbmRsZV9pZCk7CisgICAgICAgIHZvaWQgdW5zdXNwZW5kUmVkcmF3KHVuc2ln
bmVkIGxvbmcgc3VzcGVuZF9oYW5kbGVfaWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgdm9p
ZCB1bnN1c3BlbmRSZWRyYXdBbGwoKTsKICAgICAgICAgdm9pZCBmb3JjZVJlZHJhdygpOwogCi0g
ICAgICAgIE5vZGVMaXN0ICpnZXRJbnRlcnNlY3Rpb25MaXN0KFNWR1JlY3QgKnJlY3QsIFNWR0Vs
ZW1lbnQgKnJlZmVyZW5jZUVsZW1lbnQpOwotICAgICAgICBOb2RlTGlzdCAqZ2V0RW5jbG9zdXJl
TGlzdChTVkdSZWN0ICpyZWN0LCBTVkdFbGVtZW50ICpyZWZlcmVuY2VFbGVtZW50KTsKLSAgICAg
ICAgYm9vbCBjaGVja0ludGVyc2VjdGlvbihTVkdFbGVtZW50ICplbGVtZW50LCBTVkdSZWN0ICpy
ZWN0KTsKLSAgICAgICAgYm9vbCBjaGVja0VuY2xvc3VyZShTVkdFbGVtZW50ICplbGVtZW50LCBT
VkdSZWN0ICpyZWN0KTsKKyAgICAgICAgTm9kZUxpc3QqIGdldEludGVyc2VjdGlvbkxpc3QoY29u
c3QgRmxvYXRSZWN0JiwgU1ZHRWxlbWVudCAqcmVmZXJlbmNlRWxlbWVudCk7CisgICAgICAgIE5v
ZGVMaXN0KiBnZXRFbmNsb3N1cmVMaXN0KGNvbnN0IEZsb2F0UmVjdCYsIFNWR0VsZW1lbnQgKnJl
ZmVyZW5jZUVsZW1lbnQpOworICAgICAgICBib29sIGNoZWNrSW50ZXJzZWN0aW9uKFNWR0VsZW1l
bnQqLCBjb25zdCBGbG9hdFJlY3QmKTsKKyAgICAgICAgYm9vbCBjaGVja0VuY2xvc3VyZShTVkdF
bGVtZW50KiwgY29uc3QgRmxvYXRSZWN0Jik7CiAgICAgICAgIHZvaWQgZGVzZWxlY3RBbGwoKTsK
IAotICAgICAgICBzdGF0aWMgU1ZHTnVtYmVyICpjcmVhdGVTVkdOdW1iZXIoKTsKKyAgICAgICAg
c3RhdGljIGZsb2F0IGNyZWF0ZVNWR051bWJlcigpOwogICAgICAgICBzdGF0aWMgU1ZHTGVuZ3Ro
ICpjcmVhdGVTVkdMZW5ndGgoKTsKICAgICAgICAgc3RhdGljIFNWR0FuZ2xlICpjcmVhdGVTVkdB
bmdsZSgpOwotICAgICAgICBzdGF0aWMgU1ZHUG9pbnQgKmNyZWF0ZVNWR1BvaW50KGNvbnN0IElu
dFBvaW50ICZwID0gSW50UG9pbnQoKSk7CisgICAgICAgIHN0YXRpYyBGbG9hdFBvaW50IGNyZWF0
ZVNWR1BvaW50KGNvbnN0IEludFBvaW50ICZwID0gSW50UG9pbnQoKSk7CiAgICAgICAgIHN0YXRp
YyBTVkdNYXRyaXggKmNyZWF0ZVNWR01hdHJpeCgpOwotICAgICAgICBzdGF0aWMgU1ZHUmVjdCAq
Y3JlYXRlU1ZHUmVjdCgpOworICAgICAgICBzdGF0aWMgRmxvYXRSZWN0IGNyZWF0ZVNWR1JlY3Qo
KTsKICAgICAgICAgc3RhdGljIFNWR1RyYW5zZm9ybSAqY3JlYXRlU1ZHVHJhbnNmb3JtKCk7CiAg
ICAgICAgIHN0YXRpYyBTVkdUcmFuc2Zvcm0gKmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgo
U1ZHTWF0cml4ICptYXRyaXgpOwogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHTWF0cml4LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0ga3N2ZzIvc3ZnL1NWR01hdHJpeC5oCShyZXZpc2lvbiAxNDYyMSkKKysrIGtzdmcy
L3N2Zy9TVkdNYXRyaXguaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsOCBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZQogeworICAgIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CisKICAgICBj
bGFzcyBTVkdNYXRyaXggOiBwdWJsaWMgU2hhcmVkPFNWR01hdHJpeD4KICAgICB7IAogICAgIHB1
YmxpYzoKQEAgLTU4LDcgKzYwLDcgQEAKIAogICAgICAgICB2b2lkIGNvcHkoY29uc3QgU1ZHTWF0
cml4Kik7CiAKLSAgICAgICAgU1ZHTWF0cml4KiBpbnZlcnNlKCk7CisgICAgICAgIFNWR01hdHJp
eCogaW52ZXJzZShFeGNlcHRpb25Db2RlJik7CiAKICAgICAgICAgLy8gUHJlLW11bHRpcGxpZWQg
b3BlcmF0aW9ucywgYXMgcGVyIHRoZSBzcGVjcy4KICAgICAgICAgU1ZHTWF0cml4KiBtdWx0aXBs
eShjb25zdCBTVkdNYXRyaXgqKTsKQEAgLTY2LDcgKzY4LDcgQEAKICAgICAgICAgU1ZHTWF0cml4
KiBzY2FsZShkb3VibGUgc2NhbGVGYWN0b3IpOwogICAgICAgICBTVkdNYXRyaXgqIHNjYWxlTm9u
VW5pZm9ybShkb3VibGUgc2NhbGVGYWN0b3JYLCBkb3VibGUgc2NhbGVGYWN0b3JZKTsKICAgICAg
ICAgU1ZHTWF0cml4KiByb3RhdGUoZG91YmxlIGFuZ2xlKTsKLSAgICAgICAgU1ZHTWF0cml4KiBy
b3RhdGVGcm9tVmVjdG9yKGRvdWJsZSB4LCBkb3VibGUgeSk7CisgICAgICAgIFNWR01hdHJpeCog
cm90YXRlRnJvbVZlY3Rvcihkb3VibGUgeCwgZG91YmxlIHksIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICAgICAgU1ZHTWF0cml4KiBmbGlwWCgpOwogICAgICAgICBTVkdNYXRyaXgqIGZsaXBZKCk7CiAg
ICAgICAgIFNWR01hdHJpeCogc2tld1goZG91YmxlIGFuZ2xlKTsKSW5kZXg6IGtzdmcyL3N2Zy9T
VkdBbmdsZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0FuZ2xlLmlkbAkocmV2aXNp
b24gMTQ2MTkpCisrKyBrc3ZnMi9zdmcvU1ZHQW5nbGUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsMzEgQEAKLW1vZHVsZSBzdmcKLXsKKy8qCisgKiBDb3B5cmlnaHQoQykgMjAwNCwgMjAw
NSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAqICAgICAgICAgICAgICAg
MjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICogQ29weXJpZ2h0KEMpIDIwMDYg
QXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICooSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK21vZHVsZSBzdmcgewogICBpbnRlcmZhY2UgU1ZH
QW5nbGUgeyAKICAgICAvLyBBbmdsZSBVbml0IFR5cGVzCiAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgU1ZHX0FOR0xFVFlQRV9VTktOT1dOICAgICA9IDA7CkBAIC03LDEzICszMywxNSBAQAogICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19BTkdMRVRZUEVfREVHICAgICAgICAgPSAyOwogICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19BTkdMRVRZUEVfUkFEICAgICAgICAgPSAzOwogICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19BTkdMRVRZUEVfR1JBRCAgICAgICAgPSA0OworICAg
ICAgICAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgdW5pdFR5cGU7Ci0g
ICAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0ICAgICAgICAgIHZhbHVlOwotICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZwotICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBmbG9hdCAgICAgICAgICB2YWx1ZUluU3BlY2lmaWVkVW5pdHM7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCi0g
ICAgICAgICAgICAgYXR0cmlidXRlIGNvcmU6OkRPTVN0cmluZyAgICAgIHZhbHVlQXNTdHJpbmc7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0
aW5nCisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCAgICAgICAgICB2YWx1ZQorICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhc2lzZXMgRE9NRXhjZXB0aW9uOworICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgICAgICAgICAgdmFsdWVJblNwZWNpZmllZFVuaXRz
CisgICAgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFzaXNlcyBET01FeGNlcHRpb247Cisg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBjb3JlOjpET01TdHJpbmcgICAgICB2YWx1ZUFzU3Ry
aW5nCisgICAgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFzaXNlcyBET01FeGNlcHRpb247
CisgICAgICAgIAogICAgIHZvaWQgbmV3VmFsdWVTcGVjaWZpZWRVbml0cyAoIGluIHVuc2lnbmVk
IHNob3J0IHVuaXRUeXBlLCBpbiBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMgKTsKICAgICB2
b2lkIGNvbnZlcnRUb1NwZWNpZmllZFVuaXRzICggaW4gdW5zaWduZWQgc2hvcnQgdW5pdFR5cGUg
KTsKICAgfTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAJKHJldmlzaW9u
IDE0NjE5KQorKysga3N2ZzIvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MCwxMSArNTAsMTAgQEAKIHZvaWQgU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudDo6
aGFuZGxlVGltZXJFdmVudChkb3VibGUgdGltZVBlcmNlbnRhZ2UpCiB7CiAgICAgLy8gU3RhcnQg
Y29uZGl0aW9uLgotICAgIGlmKCFtX2Nvbm5lY3RlZCkKLSAgICB7CisgICAgaWYgKCFtX2Nvbm5l
Y3RlZCkgewogICAgICAgICAvLyBTYXZlIGluaXRpYWwgY29sb3IuLi4gKG5lZWRlZCBmb3IgZmls
bD0icmVtb3ZlIiBvciBhZGRpdHZlPSJzdW0iKQogICAgICAgICBSZWZQdHI8U1ZHQ29sb3I+IHRl
bXAgPSBuZXcgU1ZHQ29sb3IoKTsKLSAgICAgICAgdGVtcC0+c2V0UkdCQ29sb3IodGFyZ2V0QXR0
cmlidXRlKCkuaW1wbCgpKTsKKyAgICAgICAgdGVtcC0+c2V0UkdCQ29sb3IodGFyZ2V0QXR0cmli
dXRlKCkpOwogCiAgICAgICAgIG1faW5pdGlhbENvbG9yID0gdGVtcC0+Y29sb3IoKTsKIApAQCAt
NjUsNyArNjQsNyBAQAogICAgICAgICAgICAgY2FzZSBGUk9NX1RPX0FOSU1BVElPTjoKICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICBTdHJpbmcgdG9Db2xvclN0cmluZyhtX3RvKTsKLSAg
ICAgICAgICAgICAgICBtX3RvQ29sb3ItPnNldFJHQkNvbG9yKHRvQ29sb3JTdHJpbmcuaW1wbCgp
KTsKKyAgICAgICAgICAgICAgICBtX3RvQ29sb3ItPnNldFJHQkNvbG9yKHRvQ29sb3JTdHJpbmcp
OwogICAgIAogICAgICAgICAgICAgICAgIFN0cmluZyBmcm9tQ29sb3JTdHJpbmc7CiAgICAgICAg
ICAgICAgICAgaWYoIW1fZnJvbS5pc0VtcHR5KCkpIC8vIGZyb20tdG8gYW5pbWF0aW9uCkBAIC03
Myw3ICs3Miw3IEBACiAgICAgICAgICAgICAgICAgZWxzZSAvLyB0byBhbmltYXRpb24KICAgICAg
ICAgICAgICAgICAgICAgZnJvbUNvbG9yU3RyaW5nID0gbV9pbml0aWFsQ29sb3IubmFtZSgpOwog
ICAgIAotICAgICAgICAgICAgICAgIG1fZnJvbUNvbG9yLT5zZXRSR0JDb2xvcihmcm9tQ29sb3JT
dHJpbmcuaW1wbCgpKTsgICAgCisgICAgICAgICAgICAgICAgbV9mcm9tQ29sb3ItPnNldFJHQkNv
bG9yKGZyb21Db2xvclN0cmluZyk7ICAgIAogCiAgICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRl
IGNvbG9yIGRpZmZlcmVuY2VzLCBvbmNlLgogICAgICAgICAgICAgICAgIENvbG9yIHFUbyA9IG1f
dG9Db2xvci0+Y29sb3IoKTsKQEAgLTg5LDcgKzg4LDcgQEAKICAgICAgICAgICAgIGNhc2UgRlJP
TV9CWV9BTklNQVRJT046CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgU3RyaW5nIGJ5
Q29sb3JTdHJpbmcobV9ieSk7Ci0gICAgICAgICAgICAgICAgbV90b0NvbG9yLT5zZXRSR0JDb2xv
cihieUNvbG9yU3RyaW5nLmltcGwoKSk7CisgICAgICAgICAgICAgICAgbV90b0NvbG9yLT5zZXRS
R0JDb2xvcihieUNvbG9yU3RyaW5nKTsKIAogICAgICAgICAgICAgICAgIFN0cmluZyBmcm9tQ29s
b3JTdHJpbmc7CiAgICAgICAgICAgICAKQEAgLTk4LDcgKzk3LDcgQEAKICAgICAgICAgICAgICAg
ICBlbHNlIC8vIGJ5IGFuaW1hdGlvbgogICAgICAgICAgICAgICAgICAgICBmcm9tQ29sb3JTdHJp
bmcgPSBtX2luaXRpYWxDb2xvci5uYW1lKCk7CiAKLSAgICAgICAgICAgICAgICBtX2Zyb21Db2xv
ci0+c2V0UkdCQ29sb3IoZnJvbUNvbG9yU3RyaW5nLmltcGwoKSk7CisgICAgICAgICAgICAgICAg
bV9mcm9tQ29sb3ItPnNldFJHQkNvbG9yKGZyb21Db2xvclN0cmluZyk7CiAKICAgICAgICAgICAg
ICAgICBDb2xvciBxQnkgPSBtX3RvQ29sb3ItPmNvbG9yKCk7CiAgICAgICAgICAgICAgICAgQ29s
b3IgcUZyb20gPSBtX2Zyb21Db2xvci0+Y29sb3IoKTsKQEAgLTExMSw3ICsxMTAsNyBAQAogICAg
ICAgICAgICAgICAgIENvbG9yIHFUbyA9IGNsYW1wQ29sb3IociwgZywgYik7CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICBTdHJpbmcgdG9Db2xvclN0cmluZyhxVG8ubmFtZSgpKTsKLSAg
ICAgICAgICAgICAgICBtX3RvQ29sb3ItPnNldFJHQkNvbG9yKHRvQ29sb3JTdHJpbmcuaW1wbCgp
KTsKKyAgICAgICAgICAgICAgICBtX3RvQ29sb3ItPnNldFJHQkNvbG9yKHRvQ29sb3JTdHJpbmcp
OwogICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgbV9yZWREaWZmID0gcVRvLnJlZCgpIC0g
cUZyb20ucmVkKCk7CiAgICAgICAgICAgICAgICAgbV9ncmVlbkRpZmYgPSBxVG8uZ3JlZW4oKSAt
IHFGcm9tLmdyZWVuKCk7CkBAIC0xNDEsOCArMTQwLDcgQEAKICAgICBpbnQgciA9IDAsIGcgPSAw
LCBiID0gMDsKICAgICBpZigobV9yZWREaWZmICE9IDAgfHwgbV9ncmVlbkRpZmYgIT0gMCB8fCBt
X2JsdWVEaWZmICE9IDApICYmICFtX3ZhbHVlcykKICAgICAgICAgY2FsY3VsYXRlQ29sb3IodGlt
ZVBlcmNlbnRhZ2UsIHIsIGcsIGIpOwotICAgIGVsc2UgaWYobV92YWx1ZXMpCi0gICAgeworICAg
IGVsc2UgaWYgKG1fdmFsdWVzKSB7CiAgICAgICAgIGludCBpdGVtQnlQZXJjZW50YWdlID0gY2Fs
Y3VsYXRlQ3VycmVudFZhbHVlSXRlbSh0aW1lUGVyY2VudGFnZSk7CiAKICAgICAgICAgaWYoaXRl
bUJ5UGVyY2VudGFnZSA9PSAtMSkKQEAgLTE1NSwxMSArMTUzLDkgQEAKICAgICAgICAgICAgIFN0
cmluZyB2YWx1ZTIgPSBTdHJpbmcobV92YWx1ZXMtPmdldEl0ZW0oaXRlbUJ5UGVyY2VudGFnZSAr
IDEpKTsKIAogICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHIvZy9iIHNoaWZ0aW5nIHZhbHVlcy4u
LgotICAgICAgICAgICAgaWYoIXZhbHVlMS5pc0VtcHR5KCkgJiYgIXZhbHVlMi5pc0VtcHR5KCkp
Ci0gICAgICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXZhbHVlMS5pc0VtcHR5KCkgJiYgIXZh
bHVlMi5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBib29sIGFwcGx5ID0gZmFsc2U7Ci0g
ICAgICAgICAgICAgICAgaWYobV9yZWREaWZmICE9IDAgfHwgbV9ncmVlbkRpZmYgIT0gMCB8fCBt
X2JsdWVEaWZmICE9IDApCi0gICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICht
X3JlZERpZmYgIT0gMCB8fCBtX2dyZWVuRGlmZiAhPSAwIHx8IG1fYmx1ZURpZmYgIT0gMCkgewog
ICAgICAgICAgICAgICAgICAgICByID0gbV90b0NvbG9yLT5jb2xvcigpLnJlZCgpOwogICAgICAg
ICAgICAgICAgICAgICBnID0gbV90b0NvbG9yLT5jb2xvcigpLmdyZWVuKCk7CiAgICAgICAgICAg
ICAgICAgICAgIGIgPSBtX3RvQ29sb3ItPmNvbG9yKCkuYmx1ZSgpOwpAQCAtMTY4LDEwICsxNjQs
MTAgQEAKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBTdHJpbmcgdG9Db2xv
clN0cmluZyh2YWx1ZTIpOwotICAgICAgICAgICAgICAgIG1fdG9Db2xvci0+c2V0UkdCQ29sb3Io
dG9Db2xvclN0cmluZy5pbXBsKCkpOworICAgICAgICAgICAgICAgIG1fdG9Db2xvci0+c2V0UkdC
Q29sb3IodG9Db2xvclN0cmluZyk7CiAgICAgCiAgICAgICAgICAgICAgICAgU3RyaW5nIGZyb21D
b2xvclN0cmluZyh2YWx1ZTEpOwotICAgICAgICAgICAgICAgIG1fZnJvbUNvbG9yLT5zZXRSR0JD
b2xvcihmcm9tQ29sb3JTdHJpbmcuaW1wbCgpKTsgICAgCisgICAgICAgICAgICAgICAgbV9mcm9t
Q29sb3ItPnNldFJHQkNvbG9yKGZyb21Db2xvclN0cmluZyk7ICAgIAogCiAgICAgICAgICAgICAg
ICAgQ29sb3IgcVRvID0gbV90b0NvbG9yLT5jb2xvcigpOwogICAgICAgICAgICAgICAgIENvbG9y
IHFGcm9tID0gbV9mcm9tQ29sb3ItPmNvbG9yKCk7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHU3R5bGVk
VHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdTdHls
ZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE0NjE5KQorKysga3N2ZzIvc3Zn
L1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEz
LDcgKzExMyw3IEBACiAgICAgcmV0dXJuIFNWR1RyYW5zZm9ybWFibGU6OmZhcnRoZXN0Vmlld3Bv
cnRFbGVtZW50KHRoaXMpOwogfQogCi1TVkdSZWN0ICpTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxl
bWVudDo6Z2V0QkJveCgpIGNvbnN0CitGbG9hdFJlY3QgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVs
ZW1lbnQ6OmdldEJCb3goKSBjb25zdAogewogICAgIHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjpn
ZXRCQm94KHRoaXMpOwogfQpJbmRleDoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxNDYxOSkKKysrIGtzdmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE5ICs0MCwxOCBAQAogCiAjaW5jbHVk
ZSA8bWF0aC5oPgogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwogU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6
OlNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50ICpkb2MpCiA6IFNWR0FuaW1hdGlvbkVsZW1lbnQodGFnTmFtZSwgZG9jKQorICAg
ICwgbV9jdXJyZW50SXRlbSgtMSkKKyAgICAsIG1fdHlwZShTVkdfVFJBTlNGT1JNX1VOS05PV04p
CisgICAgLCBtX3JvdGF0ZVNwZWNpYWxDYXNlKGZhbHNlKQorICAgICwgbV90b1JvdGF0ZVNwZWNp
YWxDYXNlKGZhbHNlKQorICAgICwgbV9mcm9tUm90YXRlU3BlY2lhbENhc2UoZmFsc2UpCiB7Ci0g
ICAgbV90eXBlID0gU1ZHX1RSQU5TRk9STV9VTktOT1dOOwotCi0gICAgbV9jdXJyZW50SXRlbSA9
IC0xOwotCi0gICAgbV9yb3RhdGVTcGVjaWFsQ2FzZSA9IGZhbHNlOwotICAgIG1fdG9Sb3RhdGVT
cGVjaWFsQ2FzZSA9IGZhbHNlOwotICAgIG1fZnJvbVJvdGF0ZVNwZWNpYWxDYXNlID0gZmFsc2U7
CiB9CiAKIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50Ojp+U1ZHQW5pbWF0ZVRyYW5zZm9ybUVs
ZW1lbnQoKQpAQCAtNzMsMzMgKzcyLDI3IEBACiAgICAgICAgICAgICBtX3R5cGUgPSBTVkdfVFJB
TlNGT1JNX1NLRVdYOwogICAgICAgICBlbHNlIGlmICh2YWx1ZSA9PSAic2tld1kiKQogICAgICAg
ICAgICAgbV90eXBlID0gU1ZHX1RSQU5TRk9STV9TS0VXWTsKLSAgICB9IGVsc2UgeworICAgIH0g
ZWxzZQogICAgICAgICBTVkdBbmltYXRpb25FbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShh
dHRyKTsKICAgICB9Ci19CiAKIHZvaWQgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OmhhbmRs
ZVRpbWVyRXZlbnQoZG91YmxlIHRpbWVQZXJjZW50YWdlKQogewogICAgIC8vIFN0YXJ0IGNvbmRp
dGlvbi4KLSAgICBpZighbV9jb25uZWN0ZWQpCi0gICAgeworICAgIGlmICghbV9jb25uZWN0ZWQp
IHsKICAgICAgICAgbV9pbml0aWFsVHJhbnNmb3JtID0gMDsKICAgICAgICAgCiAgICAgICAgIC8v
IFNhdmUgaW5pdGlhbCB0cmFuc2Zvcm0uLi4gKG5lZWRlZCBmb3IgZmlsbD0icmVtb3ZlIiBvciBh
ZGRpdHZlPSJzdW0iKQotICAgICAgICBpZih0YXJnZXRFbGVtZW50KCktPmlzU3R5bGVkVHJhbnNm
b3JtYWJsZSgpKQotICAgICAgICB7CisgICAgICAgIGlmICh0YXJnZXRFbGVtZW50KCktPmlzU3R5
bGVkVHJhbnNmb3JtYWJsZSgpKSB7CiAgICAgICAgICAgICBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxl
RWxlbWVudCAqdHJhbnNmb3JtID0gc3RhdGljX2Nhc3Q8U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVs
ZW1lbnQgKj4odGFyZ2V0RWxlbWVudCgpKTsKICAgICAgICAgICAgIFJlZlB0cjxTVkdUcmFuc2Zv
cm1MaXN0PiB0cmFuc2Zvcm1MaXN0ID0gdHJhbnNmb3JtLT50cmFuc2Zvcm0oKS0+YmFzZVZhbCgp
OwotICAgICAgICAgICAgaWYgKHRyYW5zZm9ybUxpc3QpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgZm9yKHVuc2lnbmVkIGxvbmcgaSA9IDA7IGkgPCB0cmFuc2Zvcm1MaXN0LT5udW1i
ZXJPZkl0ZW1zKCk7IGkrKykKLSAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICBpZiAodHJh
bnNmb3JtTGlzdCkgeworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgbG9uZyBpID0gMDsg
aSA8IHRyYW5zZm9ybUxpc3QtPm51bWJlck9mSXRlbXMoKTsgaSsrKSB7CiAgICAgICAgICAgICAg
ICAgICAgIFNWR1RyYW5zZm9ybSAqdmFsdWUgPSB0cmFuc2Zvcm1MaXN0LT5nZXRJdGVtKGkpOwog
ICAgICAgICAgICAgICAgICAgICBpZighdmFsdWUpCiAgICAgICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBp
Zih2YWx1ZS0+dHlwZSgpID09IG1fdHlwZSkKLSAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICBpZiAodmFsdWUtPnR5cGUoKSA9PSBtX3R5cGUpIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgIG1faW5pdGlhbFRyYW5zZm9ybSA9IHZhbHVlOwogICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTE4MSw4ICsxNzQsNyBA
QAogICAgIFFXTWF0cml4IHFUb01hdHJpeCwgcUZyb21NYXRyaXg7CiAgICAgZG91YmxlIHVzZVRp
bWVQZXJjZW50YWdlID0gdGltZVBlcmNlbnRhZ2U7CiAKLSAgICBpZihtX3ZhbHVlcykKLSAgICB7
CisgICAgaWYgKG1fdmFsdWVzKSB7CiAgICAgICAgIGludCBpdGVtQnlQZXJjZW50YWdlID0gY2Fs
Y3VsYXRlQ3VycmVudFZhbHVlSXRlbSh0aW1lUGVyY2VudGFnZSk7CiAKICAgICAgICAgaWYoaXRl
bUJ5UGVyY2VudGFnZSA9PSAtMSkKQEAgLTE5NSwxMSArMTg3LDkgQEAKICAgICAgICAgICAgIFN0
cmluZyB2YWx1ZTIgPSBTdHJpbmcobV92YWx1ZXMtPmdldEl0ZW0oaXRlbUJ5UGVyY2VudGFnZSAr
IDEpKTsKIAogICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIG5ldyBmcm9tL3RvIHRyYW5zZm9ybSB2
YWx1ZXMuLi4KLSAgICAgICAgICAgIGlmKCF2YWx1ZTEuaXNFbXB0eSgpICYmICF2YWx1ZTIuaXNF
bXB0eSgpKQotICAgICAgICAgICAgeworICAgICAgICAgICAgaWYgKCF2YWx1ZTEuaXNFbXB0eSgp
ICYmICF2YWx1ZTIuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgYm9vbCBhcHBseSA9IGZh
bHNlOwotICAgICAgICAgICAgICAgIGlmKG1fdG9UcmFuc2Zvcm0gJiYgbV9mcm9tVHJhbnNmb3Jt
KQotICAgICAgICAgICAgICAgIHsgICAgCisgICAgICAgICAgICAgICAgaWYgKG1fdG9UcmFuc2Zv
cm0gJiYgbV9mcm9tVHJhbnNmb3JtKSB7ICAgIAogICAgICAgICAgICAgICAgICAgICBxVG9NYXRy
aXggPSBtX3RvVHJhbnNmb3JtLT5tYXRyaXgoKS0+cW1hdHJpeCgpOwogICAgICAgICAgICAgICAg
ICAgICBxRnJvbU1hdHJpeCA9IG1fZnJvbVRyYW5zZm9ybS0+bWF0cml4KCktPnFtYXRyaXgoKTsK
ICAgICAgICAgICAgICAgICAgICAgCkBAIC0yMzEsOCArMjIxLDcgQEAKIAogICAgIGlmKCFtX3Ry
YW5zZm9ybU1hdHJpeCkKICAgICAgICAgbV90cmFuc2Zvcm1NYXRyaXggPSBuZXcgU1ZHTWF0cml4
KCk7Ci0gICAgZWxzZQotICAgIHsKKyAgICBlbHNlIHsKICAgICAgICAgbV90cmFuc2Zvcm1NYXRy
aXgtPnJlc2V0KCk7CiAKICAgICAgICAgaWYoaXNBY2N1bXVsYXRlZCgpICYmIHJlcGVhdGlvbnMo
KSAhPSAwLjAgJiYgbV9sYXN0TWF0cml4KQpAQCAtMzI5LDggKzMxOCw3IEBACiAgICAgICAgIG1f
ZnJvbVRyYW5zZm9ybSA9IDA7CiAgICAgICAgIG1faW5pdGlhbFRyYW5zZm9ybSA9IDA7CiAKLSAg
ICAgICAgaWYoIWlzRnJvemVuKCkpCi0gICAgICAgIHsKKyAgICAgICAgaWYgKCFpc0Zyb3plbigp
KSB7CiAgICAgICAgICAgICBTVkdNYXRyaXggKmluaXRpYWwgPSBpbml0aWFsTWF0cml4KCk7CiAg
ICAgICAgICAgICBpZihpbml0aWFsKQogICAgICAgICAgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4
ID0gaW5pdGlhbDsKQEAgLTM1NSwxMiArMzQzLDEwIEBACiAgICAgICAgIGNhc2UgU1ZHX1RSQU5T
Rk9STV9UUkFOU0xBVEU6CiAgICAgICAgIHsKICAgICAgICAgICAgIGRvdWJsZSB0eCA9IDAuMCwg
dHkgPSAwLjA7Ci0gICAgICAgICAgICBpZihjb21tYVBvcyAhPSAtIDEpCi0gICAgICAgICAgICB7
CisgICAgICAgICAgICBpZiAoY29tbWFQb3MgIT0gLSAxKSB7CiAgICAgICAgICAgICAgICAgdHgg
PSBwYXJzZS5taWQoMCwgY29tbWFQb3MpLnRvRG91YmxlKCk7CiAgICAgICAgICAgICAgICAgdHkg
PSBwYXJzZS5taWQoY29tbWFQb3MgKyAxKS50b0RvdWJsZSgpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgZWxzZSAKKyAgICAgICAgICAgIH0gZWxzZSAKICAgICAgICAgICAgICAgICB0eCA9
IHBhcnNlLnRvRG91YmxlKCk7CiAKICAgICAgICAgICAgIHBhcnNlZFRyYW5zZm9ybS0+c2V0VHJh
bnNsYXRlKHR4LCB0eSk7CkBAIC0zNjksMTMgKzM1NSwxMCBAQAogICAgICAgICBjYXNlIFNWR19U
UkFOU0ZPUk1fU0NBTEU6CiAgICAgICAgIHsKICAgICAgICAgICAgIGRvdWJsZSBzeCA9IDEuMCwg
c3kgPSAxLjA7Ci0gICAgICAgICAgICBpZihjb21tYVBvcyAhPSAtIDEpCi0gICAgICAgICAgICB7
CisgICAgICAgICAgICBpZiAoY29tbWFQb3MgIT0gLSAxKSB7CiAgICAgICAgICAgICAgICAgc3gg
PSBwYXJzZS5taWQoMCwgY29tbWFQb3MpLnRvRG91YmxlKCk7CiAgICAgICAgICAgICAgICAgc3kg
PSBwYXJzZS5taWQoY29tbWFQb3MgKyAxKS50b0RvdWJsZSgpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgeworICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICBzeCA9IHBhcnNlLnRvRG91YmxlKCk7CiAgICAgICAgICAgICAgICAgc3kgPSBz
eDsKICAgICAgICAgICAgIH0KQEAgLTM4NiwxMyArMzY5LDExIEBACiAgICAgICAgIGNhc2UgU1ZH
X1RSQU5TRk9STV9ST1RBVEU6CiAgICAgICAgIHsKICAgICAgICAgICAgIGRvdWJsZSBhbmdsZSA9
IDAsIGN4ID0gMCwgY3kgPSAwOwotICAgICAgICAgICAgaWYoY29tbWFQb3MgIT0gLSAxKQotICAg
ICAgICAgICAgeworICAgICAgICAgICAgaWYgKGNvbW1hUG9zICE9IC0gMSkgewogICAgICAgICAg
ICAgICAgIGFuZ2xlID0gcGFyc2UubWlkKDAsIGNvbW1hUG9zKS50b0RvdWJsZSgpOyAvLyBUT0RP
OiBwcm9iYWJseSBuZWVkcyBpdCdzIG93biAnYW5nbGUnIHBhcnNlcgogICAgIAogICAgICAgICAg
ICAgICAgIGludCBjb21tYVBvc1R3byA9IHBhcnNlLmZpbmQoJywnLCBjb21tYVBvcyArIDEpOyAv
LyBJbiBjYXNlIHRocmVlIHZhbHVlcyBhcmUgcGFzc2VkLi4uCi0gICAgICAgICAgICAgICAgaWYo
Y29tbWFQb3NUd28gIT0gLTEpCi0gICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlm
IChjb21tYVBvc1R3byAhPSAtMSkgewogICAgICAgICAgICAgICAgICAgICBjeCA9IHBhcnNlLm1p
ZChjb21tYVBvcyArIDEsIGNvbW1hUG9zVHdvIC0gY29tbWFQb3MgLSAxKS50b0RvdWJsZSgpOwog
ICAgICAgICAgICAgICAgICAgICBjeSA9IHBhcnNlLm1pZChjb21tYVBvc1R3byArIDEpLnRvRG91
YmxlKCk7CiAgICAgICAgICAgICAgICAgfQpAQCAtNDA3LDEzICszODgsMTAgQEAKICAgICAgICAg
ICAgIC8vICAgIHRoZSBjeC9jeSB2YWx1ZXMsIHdoaWxlIGtlZXBpbmcgdGhpcyB1YmVyLW9wdGlt
aXplZCB3YXkgb2YgaGFuZGxpbmcgPGFuaW1hdGVUcmFuc2Zvcm0+IQogICAgICAgICAgICAgbV9y
b3RhdGVTcGVjaWFsQ2FzZSA9IGZhbHNlOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZihh
bmdsZSA9PSAwLjApCi0gICAgICAgICAgICB7CisgICAgICAgICAgICBpZiAoYW5nbGUgPT0gMC4w
KSB7CiAgICAgICAgICAgICAgICAgYW5nbGUgPSBhbmdsZSArIDEuMDsKICAgICAgICAgICAgICAg
ICBtX3JvdGF0ZVNwZWNpYWxDYXNlID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGVsc2UgaWYoYW5nbGUgPT0gMzYwLjApCi0gICAgICAgICAgICB7CisgICAgICAgICAgICB9IGVs
c2UgaWYgKGFuZ2xlID09IDM2MC4wKSB7CiAgICAgICAgICAgICAgICAgYW5nbGUgPSBhbmdsZSAt
IDEuMDsKICAgICAgICAgICAgICAgICBtX3JvdGF0ZVNwZWNpYWxDYXNlID0gdHJ1ZTsKICAgICAg
ICAgICAgIH0KQEAgLTQ5MCw2ICs0NjgsOCBAQAogICAgIHJldHVybiBtX3RyYW5zZm9ybU1hdHJp
eC5nZXQoKTsKIH0KIAorfQorCiAvLyB2aW06dHM9NDpub2V0CiAjZW5kaWYgLy8gU1ZHX1NVUFBP
UlQKIApJbmRleDoga3N2ZzIvc3ZnL1NWR0xvY2F0YWJsZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcy
L3N2Zy9TVkdMb2NhdGFibGUuaAkocmV2aXNpb24gMTQ2MTkpCisrKyBrc3ZnMi9zdmcvU1ZHTG9j
YXRhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwLDEzICsyMCwxMiBAQAogICAgIEJvc3Rvbiwg
TUEgMDIxMTEtMTMwNywgVVNBLgogKi8KIAotI2lmbmRlZiBLU1ZHX1NWR0xvY2F0YWJsZUltcGxf
SAotI2RlZmluZSBLU1ZHX1NWR0xvY2F0YWJsZUltcGxfSAorI2lmbmRlZiBTVkdMb2NhdGFibGVf
SAorI2RlZmluZSBTVkdMb2NhdGFibGVfSAogI2lmIFNWR19TVVBQT1JUCiAKLW5hbWVzcGFjZSBX
ZWJDb3JlCi17Ci0gICAgY2xhc3MgU1ZHUmVjdDsKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBj
bGFzcyBGbG9hdFJlY3Q7CiAgICAgY2xhc3MgU1ZHTWF0cml4OwogICAgIGNsYXNzIFNWR0VsZW1l
bnQ7CiAgICAgY2xhc3MgU1ZHU3R5bGVkRWxlbWVudDsKQEAgLTQwLDE3ICszOSwxNyBAQAogICAg
ICAgICB2aXJ0dWFsIFNWR0VsZW1lbnQgKm5lYXJlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdCA9
IDA7CiAgICAgICAgIHZpcnR1YWwgU1ZHRWxlbWVudCAqZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQo
KSBjb25zdCA9IDA7CiAKLSAgICAgICAgdmlydHVhbCBTVkdSZWN0ICpnZXRCQm94KCkgY29uc3Qg
PSAwOworICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBnZXRCQm94KCkgY29uc3QgPSAwOwogICAg
ICAgICB2aXJ0dWFsIFNWR01hdHJpeCAqZ2V0Q1RNKCkgY29uc3QgPSAwOwogICAgICAgICB2aXJ0
dWFsIFNWR01hdHJpeCAqZ2V0U2NyZWVuQ1RNKCkgY29uc3QgPSAwOwotICAgICAgICB2aXJ0dWFs
IFNWR01hdHJpeCAqZ2V0VHJhbnNmb3JtVG9FbGVtZW50KFNWR0VsZW1lbnQgKmVsZW1lbnQpIGNv
bnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBTVkdNYXRyaXgqIGdldFRyYW5zZm9ybVRvRWxlbWVu
dChTVkdFbGVtZW50KikgY29uc3QgPSAwOwogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBzdGF0
aWMgU1ZHRWxlbWVudCAqbmVhcmVzdFZpZXdwb3J0RWxlbWVudChjb25zdCBTVkdTdHlsZWRFbGVt
ZW50ICplbGVtZW50KTsKLSAgICAgICAgc3RhdGljIFNWR0VsZW1lbnQgKmZhcnRoZXN0Vmlld3Bv
cnRFbGVtZW50KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmVsZW1lbnQpOwotICAgICAgICBzdGF0
aWMgU1ZHUmVjdCAqZ2V0QkJveChjb25zdCBTVkdTdHlsZWRFbGVtZW50ICplbGVtZW50KTsKLSAg
ICAgICAgc3RhdGljIFNWR01hdHJpeCAqZ2V0Q1RNKGNvbnN0IFNWR0VsZW1lbnQgKmVsZW1lbnQp
OwotICAgICAgICBzdGF0aWMgU1ZHTWF0cml4ICpnZXRTY3JlZW5DVE0oY29uc3QgU1ZHRWxlbWVu
dCAqZWxlbWVudCk7CisgICAgICAgIHN0YXRpYyBTVkdFbGVtZW50KiBuZWFyZXN0Vmlld3BvcnRF
bGVtZW50KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqKTsKKyAgICAgICAgc3RhdGljIFNWR0VsZW1l
bnQqIGZhcnRoZXN0Vmlld3BvcnRFbGVtZW50KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqKTsKKyAg
ICAgICAgc3RhdGljIEZsb2F0UmVjdCBnZXRCQm94KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqKTsK
KyAgICAgICAgc3RhdGljIFNWR01hdHJpeCogZ2V0Q1RNKGNvbnN0IFNWR0VsZW1lbnQqKTsKKyAg
ICAgICAgc3RhdGljIFNWR01hdHJpeCogZ2V0U2NyZWVuQ1RNKGNvbnN0IFNWR0VsZW1lbnQqKTsK
ICAgICB9OwogfTsKIApJbmRleDoga3N2ZzIvc3ZnL1NWR1BvaW50LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBrc3ZnMi9zdmcvU1ZHUG9pbnQuaWRsCShyZXZpc2lvbiAxNDYxOSkKKysrIGtzdmcyL3N2Zy9T
VkdQb2ludC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzEsMzYgQEAKLW1vZHVsZSBzdmcK
LXsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3
aWxkZm94QGtkZS5vcmc+CisgKiAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1
aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCittb2R1bGUgc3ZnIHsKICAgaW50ZXJmYWNlIFNWR1BvaW50IHsgCi0gICAgICAgICAg
ICAgYXR0cmlidXRlIGZsb2F0IHg7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2Vz
IERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCi0gICAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0IHk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0
aW5nCisgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB4CisgICAgICAgICAgICBzZXR0ZXIgcmFpc2Vz
IERPTUV4Y2VwdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIGZsb2F0IHkKKyAgICAgICAgICAgIHNl
dHRlciByYWlzZXMgRE9NRXhjZXB0aW9uOwogICAgIFNWR1BvaW50IG1hdHJpeFRyYW5zZm9ybSAo
IGluIFNWR01hdHJpeCBtYXRyaXggKTsKICAgfTsKIH07CkluZGV4OiBrc3ZnMi9zdmcvU1ZHVHJh
bnNmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpJbmRleDoga3N2ZzIvc3ZnL1NWR0NvbG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0ga3N2ZzIvc3ZnL1NWR0NvbG9yLmgJKHJldmlzaW9uIDE0NjIxKQorKysga3N2ZzIvc3Zn
L1NWR0NvbG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDI0ICszMSwzMiBAQAogbmFtZXNwYWNl
IFdlYkNvcmUKIHsKICAgICBjbGFzcyBSR0JDb2xvcjsKLSAgICBjbGFzcyBTdHJpbmdJbXBsOwor
ICAgIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKICAgICBjbGFzcyBTVkdDb2xvciA6IHB1
YmxpYyBDU1NWYWx1ZQogICAgIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFNWR0NvbG9yKCk7Ci0g
ICAgICAgIFNWR0NvbG9yKFN0cmluZ0ltcGwqIHJnYkNvbG9yKTsKKyAgICAgICAgU1ZHQ29sb3Io
Y29uc3QgU3RyaW5nJiByZ2JDb2xvcik7CiAgICAgICAgIFNWR0NvbG9yKHVuc2lnbmVkIHNob3J0
IGNvbG9yVHlwZSk7CiAgICAgICAgIHZpcnR1YWwgflNWR0NvbG9yKCk7CiAKKyAgICAgICAgZW51
bSBTVkdDb2xvclR5cGUgeworICAgICAgICAgICAgU1ZHX0NPTE9SVFlQRV9VTktOT1dOICAgICAg
ICAgICAgICAgICAgID0gMCwKKyAgICAgICAgICAgIFNWR19DT0xPUlRZUEVfUkdCQ09MT1IgICAg
ICAgICAgICAgICAgICA9IDEsCisgICAgICAgICAgICBTVkdfQ09MT1JUWVBFX1JHQkNPTE9SX0lD
Q0NPTE9SICAgICAgICAgPSAyLAorICAgICAgICAgICAgU1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09M
T1IgICAgICAgICAgICAgID0gMworICAgICAgICB9OworCiAgICAgICAgIC8vICdTVkdDb2xvcicg
ZnVuY3Rpb25zCiAgICAgICAgIHVuc2lnbmVkIHNob3J0IGNvbG9yVHlwZSgpIGNvbnN0OwogCi0g
ICAgICAgIFJHQkNvbG9yKiByZ2JDb2xvcigpIGNvbnN0OworICAgICAgICB1bnNpZ25lZCByZ2JD
b2xvcigpIGNvbnN0OwogCi0gICAgICAgIHZvaWQgc2V0UkdCQ29sb3IoU3RyaW5nSW1wbCogcmdi
Q29sb3IpOwotICAgICAgICB2b2lkIHNldFJHQkNvbG9ySUNDQ29sb3IoU3RyaW5nSW1wbCogcmdi
Q29sb3IsIFN0cmluZ0ltcGwqIGljY0NvbG9yKTsKLSAgICAgICAgdm9pZCBzZXRDb2xvcih1bnNp
Z25lZCBzaG9ydCBjb2xvclR5cGUsIFN0cmluZ0ltcGwqIHJnYkNvbG9yLCBTdHJpbmdJbXBsKiBp
Y2NDb2xvcik7CisgICAgICAgIHZvaWQgc2V0UkdCQ29sb3IoY29uc3QgU3RyaW5nJiByZ2JDb2xv
cikgeyBFeGNlcHRpb25Db2RlIGlnbm9yZWQgPSAwOyBzZXRSR0JDb2xvcihyZ2JDb2xvciwgaWdu
b3JlZCk7IH0KKyAgICAgICAgdm9pZCBzZXRSR0JDb2xvcihjb25zdCBTdHJpbmcmIHJnYkNvbG9y
LCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgc2V0UkdCQ29sb3JJQ0NDb2xvcihjb25z
dCBTdHJpbmcmIHJnYkNvbG9yLCBjb25zdCBTdHJpbmcmIGljY0NvbG9yLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgICAgIHZvaWQgc2V0Q29sb3IodW5zaWduZWQgc2hvcnQgY29sb3JUeXBlLCBjb25z
dCBTdHJpbmcmIHJnYkNvbG9yLCBjb25zdCBTdHJpbmcmIGljY0NvbG9yLCBFeGNlcHRpb25Db2Rl
Jik7CiAKICAgICAgICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0OwogCkBAIC01Niw3
ICs2NCw3IEBACiAgICAgICAgIGNvbnN0IENvbG9yJiBjb2xvcigpIGNvbnN0OwogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgQ29sb3IgbV9xQ29sb3I7CisgICAgICAgIENvbG9yIG1fY29sb3I7CiAg
ICAgICAgIHVuc2lnbmVkIHNob3J0IG1fY29sb3JUeXBlOwogICAgICAgICBTdHJpbmcgbV9yZ2JD
b2xvcjsKICAgICB9OwpJbmRleDoga3N2ZzIvc3ZnL1NWR01hdHJpeC5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga3N2ZzIvc3ZnL1NWR01hdHJpeC5pZGwJKHJldmlzaW9uIDE0NjE5KQorKysga3N2ZzIvc3Zn
L1NWR01hdHJpeC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTggKzEsNDQgQEAKLW1vZHVsZSBz
dmcKLXsKKy8qCisgKiBDb3B5cmlnaHQoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4g
PHdpbGRmb3hAa2RlLm9yZz4KKyAqICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8
YnVpc0BrZGUub3JnPgorICogQ29weXJpZ2h0KEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICooSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKK21vZHVsZSBzdmcgewogICBpbnRlcmZhY2UgU1ZHTWF0cml4IHsgCi0gICAgICAgICAg
ICAgYXR0cmlidXRlIGZsb2F0IGE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2Vz
IERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCi0gICAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0IGI7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0
aW5nCi0gICAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0IGM7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCi0gLy8gICAgICAgICAgICBh
dHRyaWJ1dGUgZmxvYXQgZDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlzZXMgRE9N
RXhjZXB0aW9uIG9uIHNldHRpbmcKLSAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgZTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcK
LSAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgZjsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKKyAgICAgICAgYXR0cmlidXRlIGZs
b2F0IGEKKyAgICAgICAgICAgIHNldHRlciByYWlzZXMgRE9NRXhjZXB0aW9uOworICAgICAgICBh
dHRyaWJ1dGUgZmxvYXQgYgorICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyBET01FeGNlcHRpb247
CisgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCBjCisgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIERP
TUV4Y2VwdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIGZsb2F0IGQKKyAgICAgICAgICAgIHNldHRl
ciByYWlzZXMgRE9NRXhjZXB0aW9uOworICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgZQorICAgICAg
ICAgICAgc2V0dGVyIHJhaXNlcyBET01FeGNlcHRpb247CisgICAgICAgIGF0dHJpYnV0ZSBmbG9h
dCBmCisgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIERPTUV4Y2VwdGlvbjsKICAgICBTVkdNYXRy
aXggbXVsdGlwbHkgKCBpbiBTVkdNYXRyaXggc2Vjb25kTWF0cml4ICk7CiAgICAgU1ZHTWF0cml4
IGludmVyc2UgKCAgKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIFNWR0V4Y2VwdGlvbiAp
OwpJbmRleDoga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybS5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIv
c3ZnL1NWR1RyYW5zZm9ybS5pZGwJKHJldmlzaW9uIDE0NjE5KQorKysga3N2ZzIvc3ZnL1NWR1Ry
YW5zZm9ybS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSwzMSBAQAotbW9kdWxlIHN2Zwot
eworLyoKKyAqIENvcHlyaWdodChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2ls
ZGZveEBrZGUub3JnPgorICogICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlz
QGtkZS5vcmc+CisgKiBDb3B5cmlnaHQoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyhJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKihJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworbW9kdWxlIHN2ZyB7CiAgIGludGVyZmFjZSBTVkdUcmFuc2Zvcm0geyAKICAgICAvLyBUcmFu
c2Zvcm0gVHlwZXMKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfVFJBTlNGT1JNX1VOS05P
V04gICA9IDA7CkBAIC05LDkgKzM1LDExIEBACiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZH
X1RSQU5TRk9STV9ST1RBVEUgICAgPSA0OwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19U
UkFOU0ZPUk1fU0tFV1ggICAgID0gNTsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfVFJB
TlNGT1JNX1NLRVdZICAgICA9IDY7CisgICAgICAgIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBzaG9ydCB0eXBlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdNYXRyaXggbWF0
cml4OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBhbmdsZTsKKyAgICAgICAgCiAgICAg
dm9pZCBzZXRNYXRyaXggKCBpbiBTVkdNYXRyaXggbWF0cml4ICk7CiAgICAgdm9pZCBzZXRUcmFu
c2xhdGUgKCBpbiBmbG9hdCB0eCwgaW4gZmxvYXQgdHkgKTsKICAgICB2b2lkIHNldFNjYWxlICgg
aW4gZmxvYXQgc3gsIGluIGZsb2F0IHN5ICk7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHTWF0cml4LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHTWF0cml4LmNwcAkocmV2aXNpb24gMTQ2MjEp
CisrKyBrc3ZnMi9zdmcvU1ZHTWF0cml4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDggKzEy
MiwxMCBAQAogICAgIHJldHVybiB0aGlzOwogfQogCi1TVkdNYXRyaXgqIFNWR01hdHJpeDo6aW52
ZXJzZSgpCitTVkdNYXRyaXgqIFNWR01hdHJpeDo6aW52ZXJzZShFeGNlcHRpb25Db2RlJiBlYykK
IHsKKyAgICBpZiAoIW1fbWF0LmlzSW52ZXJ0aWJsZSgpKQorICAgICAgICBlYyA9IFNWR19NQVRS
SVhfTk9UX0lOVkVSVEFCTEU7CiAgICAgbV9tYXQgPSBtX21hdC5pbnZlcnQoKTsKICAgICByZXR1
cm4gdGhpczsKIH0KQEAgLTIzMSw4ICsyMzMsMTIgQEAKICAgICByZXR1cm4gdGhpczsKIH0KIAot
U1ZHTWF0cml4KiBTVkdNYXRyaXg6OnJvdGF0ZUZyb21WZWN0b3IoZG91YmxlIHgsIGRvdWJsZSB5
KQorU1ZHTWF0cml4KiBTVkdNYXRyaXg6OnJvdGF0ZUZyb21WZWN0b3IoZG91YmxlIHgsIGRvdWJs
ZSB5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBpZiAoeCA9PSAwIHx8IHkgPT0gMCkgewor
ICAgICAgICBlYyA9IFNWR19JTlZBTElEX1ZBTFVFX0VSUjsKKyAgICAgICAgcmV0dXJuIHRoaXM7
CisgICAgfQogICAgIG1fbWF0LnJvdGF0ZShTVkdBbmdsZTo6dG9kZWcoYXRhbjIoeSwgeCkpKTsK
ICAgICByZXR1cm4gdGhpczsKIH0KSW5kZXg6IGtzdmcyL3N2Zy9TVkdFdmVudC5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0V2ZW50LmlkbAkocmV2aXNpb24gMTQ2MTkpCisrKyBrc3Zn
Mi9zdmcvU1ZHRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMzAgQEAKLW1vZHVs
ZSBzdmcKLXsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJt
YW5uIDx3aWxkZm94QGtkZS5vcmc+CisgKiAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1
aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwg
SW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCittb2R1bGUgc3ZnIHsKICAgaW50ZXJmYWNlIFNWR0V2ZW50IDogZXZlbnRz
OjpFdmVudCB7fTsKIH07CkluZGV4OiBrc3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MTkpCisrKyBr
c3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZQogewotICAgIGNsYXNzIFNWR1BvaW50OwogICAgIGNsYXNz
IFNWR1BhdGhTZWc7CiAgICAgY2xhc3MgU1ZHUGF0aFNlZ0FyY0FiczsKICAgICBjbGFzcyBTVkdQ
YXRoU2VnQXJjUmVsOwpAQCAtNzAsNyArNjksNyBAQAogCiAgICAgICAgIFNWR0FuaW1hdGVkTnVt
YmVyICpwYXRoTGVuZ3RoKCkgY29uc3Q7CiAgICAgICAgIGRvdWJsZSBnZXRUb3RhbExlbmd0aCgp
OwotICAgICAgICBTVkdQb2ludCAqZ2V0UG9pbnRBdExlbmd0aChkb3VibGUgZGlzdGFuY2UpOwor
ICAgICAgICBGbG9hdFBvaW50IGdldFBvaW50QXRMZW5ndGgoZG91YmxlIGRpc3RhbmNlKTsKICAg
ICAgICAgdW5zaWduZWQgbG9uZyBnZXRQYXRoU2VnQXRMZW5ndGgoZG91YmxlIGRpc3RhbmNlKTsK
IAogICAgICAgICBTVkdQYXRoU2VnQ2xvc2VQYXRoICpjcmVhdGVTVkdQYXRoU2VnQ2xvc2VQYXRo
KCk7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNDYxOSkKKysrIGtzdmcyL3N2Zy9TVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQAogICAgIHJldHVybiBTVkdMb2NhdGFibGU6OmZh
cnRoZXN0Vmlld3BvcnRFbGVtZW50KHRoaXMpOwogfQogCi1TVkdSZWN0ICpTVkdTdHlsZWRMb2Nh
dGFibGVFbGVtZW50OjpnZXRCQm94KCkgY29uc3QKK0Zsb2F0UmVjdCBTVkdTdHlsZWRMb2NhdGFi
bGVFbGVtZW50OjpnZXRCQm94KCkgY29uc3QKIHsKICAgICByZXR1cm4gU1ZHTG9jYXRhYmxlOjpn
ZXRCQm94KHRoaXMpOwogfQpJbmRleDoga3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmgJKHJldmlzaW9uIDE0NjE5KQorKysg
a3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcg
QEAKICAgICAgICAgdmlydHVhbCBTVkdFbGVtZW50ICpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KCkg
Y29uc3Q7CiAgICAgICAgIHZpcnR1YWwgU1ZHRWxlbWVudCAqZmFydGhlc3RWaWV3cG9ydEVsZW1l
bnQoKSBjb25zdDsKIAotICAgICAgICB2aXJ0dWFsIFNWR1JlY3QgKmdldEJCb3goKSBjb25zdDsK
KyAgICAgICAgdmlydHVhbCBGbG9hdFJlY3QgZ2V0QkJveCgpIGNvbnN0OwogICAgICAgICB2aXJ0
dWFsIFNWR01hdHJpeCAqZ2V0Q1RNKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4
ICpnZXRTY3JlZW5DVE0oKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBTVkdNYXRyaXggKmdldFRy
YW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50ICplbGVtZW50KSBjb25zdCB7IHJldHVybiAwOyB9
CkluZGV4OiBrc3ZnMi9zdmcvU1ZHUmVjdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NW
R1JlY3QuaWRsCShyZXZpc2lvbiAxNDYxOSkKKysrIGtzdmcyL3N2Zy9TVkdSZWN0LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMSwxMyArMSwzOSBAQAotbW9kdWxlIHN2ZwoteworLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4K
KyAqICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICog
Q29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK21vZHVsZSBz
dmcgewogICBpbnRlcmZhY2UgU1ZHUmVjdCB7IAotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9h
dCB4OwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24g
c2V0dGluZwotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB5OwotICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZwotICAgICAgICAgICAg
IGF0dHJpYnV0ZSBmbG9hdCB3aWR0aDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlz
ZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKLSAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQg
aGVpZ2h0OwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24g
b24gc2V0dGluZworICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeAorICAgICAgICAgICAgc2V0dGVy
IHJhaXNlcyBET01FeGNlcHRpb247CisgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB5CisgICAgICAg
ICAgICBzZXR0ZXIgcmFpc2VzIERPTUV4Y2VwdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIGZsb2F0
IHdpZHRoCisgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIERPTUV4Y2VwdGlvbjsKKyAgICAgICAg
YXR0cmlidXRlIGZsb2F0IGhlaWdodAorICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyBET01FeGNl
cHRpb247CiAgIH07CiB9OwpJbmRleDoga3N2ZzIvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE0NjE5KQorKysga3N2ZzIvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTY3LDE5ICs2NywxOSBAQAogICAgIHJldHVybiAwLjsKIH0KIAotU1ZH
UG9pbnQgKlNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0U3RhcnRQb3NpdGlvbk9mQ2hhcih1bnNp
Z25lZCBsb25nIGNoYXJudW0pIGNvbnN0CitGbG9hdFBvaW50IFNWR1RleHRDb250ZW50RWxlbWVu
dDo6Z2V0U3RhcnRQb3NpdGlvbk9mQ2hhcih1bnNpZ25lZCBsb25nIGNoYXJudW0pIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIEZsb2F0UG9pbnQoKTsKIH0KIAotU1ZHUG9pbnQg
KlNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0RW5kUG9zaXRpb25PZkNoYXIodW5zaWduZWQgbG9u
ZyBjaGFybnVtKSBjb25zdAorRmxvYXRQb2ludCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldEVu
ZFBvc2l0aW9uT2ZDaGFyKHVuc2lnbmVkIGxvbmcgY2hhcm51bSkgY29uc3QKIHsKLSAgICByZXR1
cm4gMDsKKyAgICByZXR1cm4gRmxvYXRQb2ludCgpOwogfQogCi1TVkdSZWN0ICpTVkdUZXh0Q29u
dGVudEVsZW1lbnQ6OmdldEV4dGVudE9mQ2hhcih1bnNpZ25lZCBsb25nIGNoYXJudW0pIGNvbnN0
CitGbG9hdFJlY3QgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRFeHRlbnRPZkNoYXIodW5zaWdu
ZWQgbG9uZyBjaGFybnVtKSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBGbG9h
dFJlY3QoKTsKIH0KIAogZmxvYXQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRSb3RhdGlvbk9m
Q2hhcih1bnNpZ25lZCBsb25nIGNoYXJudW0pIGNvbnN0CkBAIC04Nyw3ICs4Nyw3IEBACiAgICAg
cmV0dXJuIDAuOwogfQogCi1sb25nIFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Q2hhck51bUF0
UG9zaXRpb24oU1ZHUG9pbnQgKnBvaW50KSBjb25zdAorbG9uZyBTVkdUZXh0Q29udGVudEVsZW1l
bnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KSBjb25zdAog
ewogICAgIHJldHVybiAwOwogfQpAQCAtMTAyLDkgKzEwMiwxMiBAQAogICAgIC8vICAgIHgoKS0+
YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmltcGwoKSk7CiAgICAgLy9lbHNlCiAg
ICAgewotICAgICAgICBpZihTVkdUZXN0czo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpIHJl
dHVybjsKLSAgICAgICAgaWYoU1ZHTGFuZ1NwYWNlOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRy
KSkgcmV0dXJuOwotICAgICAgICBpZihTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOworICAgICAgICBpZiAoU1ZHVGVzdHM6OnBh
cnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBp
ZiAoU1ZHTGFuZ1NwYWNlOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgaWYgKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKGF0dHIpKQorICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIFNW
R1N0eWxlZEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOwogICAgIH0KSW5kZXg6
IGtzdmcyL3N2Zy9TVkdMb2NhdGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdM
b2NhdGFibGUuY3BwCShyZXZpc2lvbiAxNDYxOSkKKysrIGtzdmcyL3N2Zy9TVkdMb2NhdGFibGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NSwyMSArNzUsMTYgQEAKIAogLy8gU3BlYzoKIC8vIGh0
dHA6Ly93d3cudzMub3JnL1RSLzIwMDUvV0QtU1ZHTW9iaWxlMTItMjAwNTA0MTMvc3ZndWRvbS5o
dG1sI3N2Zzo6U1ZHTG9jYXRhYmxlCi1TVkdSZWN0ICpTVkdMb2NhdGFibGU6OmdldEJCb3goY29u
c3QgU1ZHU3R5bGVkRWxlbWVudCAqZSkKK0Zsb2F0UmVjdCBTVkdMb2NhdGFibGU6OmdldEJCb3go
Y29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqZSkKIHsKLSAgICBTVkdSZWN0ICpyZWN0ID0gMDsKKyAg
ICBGbG9hdFJlY3QgYmJveFJlY3Q7CiAKLSAgICBpZihlICYmIGUtPnJlbmRlcmVyKCkpCi0gICAg
ewotICAgICAgICBGbG9hdFJlY3QgYmJveFJlY3QgPSBlLT5yZW5kZXJlcigpLT5yZWxhdGl2ZUJC
b3goZmFsc2UpOwotICAgICAgICByZWN0ID0gbmV3IFNWR1JlY3QoMCk7Ci0gICAgICAgIHJlY3Qt
PnNldFgoYmJveFJlY3QueCgpKTsKLSAgICAgICAgcmVjdC0+c2V0WShiYm94UmVjdC55KCkpOwot
ICAgICAgICByZWN0LT5zZXRXaWR0aChiYm94UmVjdC53aWR0aCgpIC0gMSk7Ci0gICAgICAgIHJl
Y3QtPnNldEhlaWdodChiYm94UmVjdC5oZWlnaHQoKSAtIDEpOworICAgIGlmIChlICYmIGUtPnJl
bmRlcmVyKCkpIHsKKyAgICAgICAgYmJveFJlY3QgPSBlLT5yZW5kZXJlcigpLT5yZWxhdGl2ZUJC
b3goZmFsc2UpOworICAgICAgICBiYm94UmVjdC5zZXRTaXplKGJib3hSZWN0LnNpemUoKSAtIEZs
b2F0U2l6ZSgxLCAxKSk7IC8vIEZJWE1FOiBXaHkgLTEgaGVyZT8KICAgICB9CiAKLSAgICByZXR1
cm4gcmVjdDsKKyAgICByZXR1cm4gYmJveFJlY3Q7CiB9CiAKIFNWR01hdHJpeCAqU1ZHTG9jYXRh
YmxlOjpnZXRDVE0oY29uc3QgU1ZHRWxlbWVudCAqZWxlbWVudCkKSW5kZXg6IGtzdmcyL3N2Zy9T
VkdDb2xvci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0NvbG9yLmlkbAkocmV2aXNp
b24gMTQ2MTkpCisrKyBrc3ZnMi9zdmcvU1ZHQ29sb3IuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDE0ICsxLDQyIEBACi1tb2R1bGUgc3ZnCi17CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgorICogICAgICAgICAgICAg
ICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIw
MDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9kdWxlIHN2ZyB7CiAgIGludGVyZmFj
ZSBTVkdDb2xvciA6IGNzczo6Q1NTVmFsdWUgeyAKICAgICAvLyBDb2xvciBUeXBlcwogICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFNWR19DT0xPUlRZUEVfVU5LTk9XTiAgICAgICAgICAgPSAwOwog
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19DT0xPUlRZUEVfUkdCQ09MT1IgICAgICAgICAg
PSAxOwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19DT0xPUlRZUEVfUkdCQ09MT1JfSUND
Q09MT1IgPSAyOwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19DT0xPUlRZUEVfQ1VSUkVO
VENPTE9SICAgICAgPSAzOworICAgICAgICAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgc2hvcnQgY29sb3JUeXBlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBjc3M6OlJHQkNvbG9y
ICByZ2JDb2xvcjsKICAgICAvL3JlYWRvbmx5IGF0dHJpYnV0ZSBTVkdJQ0NDb2xvciAgICBpY2ND
b2xvcjsKKyAgICAgICAgCiAgICAgdm9pZCAgICAgICAgc2V0UkdCQ29sb3IgKCBpbiBjb3JlOjpE
T01TdHJpbmcgcmdiQ29sb3IgKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIFNWR0V4Y2Vw
dGlvbiApOwogICAgIHZvaWQgICAgICAgIHNldFJHQkNvbG9ySUNDQ29sb3IgKCBpbiBjb3JlOjpE
T01TdHJpbmcgcmdiQ29sb3IsIGluIGNvcmU6OkRPTVN0cmluZyBpY2NDb2xvciApCkluZGV4OiBr
c3ZnMi9zdmcvU1ZHQ29sb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdDb2xvci5j
cHAJKHJldmlzaW9uIDE0NjE5KQorKysga3N2ZzIvc3ZnL1NWR0NvbG9yLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjUsMjYgKzI1LDI4IEBACiAjaW5jbHVkZSAiU1ZHQ29sb3IuaCIKIAogI2luY2x1
ZGUgIkRlcHJlY2F0ZWRTdHJpbmdMaXN0LmgiCi0jaW5jbHVkZSAiUkdCQ29sb3IuaCIKICNpbmNs
dWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgImtzdmcuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1TVkdDb2xvcjo6U1ZHQ29sb3IoKSA6IENTU1ZhbHVlKCkKK1NWR0Nv
bG9yOjpTVkdDb2xvcigpCisgICAgOiBDU1NWYWx1ZSgpCisgICAgLCBtX2NvbG9yVHlwZShTVkdf
Q09MT1JUWVBFX1VOS05PV04pCiB7Ci0gICAgbV9jb2xvclR5cGUgPSBTVkdfQ09MT1JUWVBFX1VO
S05PV047CiB9CiAKLVNWR0NvbG9yOjpTVkdDb2xvcihTdHJpbmdJbXBsKiByZ2JDb2xvcikgOiBD
U1NWYWx1ZSgpCitTVkdDb2xvcjo6U1ZHQ29sb3IoY29uc3QgU3RyaW5nJiByZ2JDb2xvcikKKyAg
ICA6IENTU1ZhbHVlKCkKKyAgICAsIG1fY29sb3JUeXBlKFNWR19DT0xPUlRZUEVfUkdCQ09MT1Ip
CiB7Ci0gICAgbV9jb2xvclR5cGUgPSBTVkdfQ09MT1JUWVBFX1JHQkNPTE9SOwogICAgIHNldFJH
QkNvbG9yKHJnYkNvbG9yKTsKIH0KIAotU1ZHQ29sb3I6OlNWR0NvbG9yKHVuc2lnbmVkIHNob3J0
IGNvbG9yVHlwZSkgOiBDU1NWYWx1ZSgpCitTVkdDb2xvcjo6U1ZHQ29sb3IodW5zaWduZWQgc2hv
cnQgY29sb3JUeXBlKQorICAgIDogQ1NTVmFsdWUoKQorICAgICwgbV9jb2xvclR5cGUoY29sb3JU
eXBlKQogewotICAgIG1fY29sb3JUeXBlID0gY29sb3JUeXBlOwogfQogCiBTVkdDb2xvcjo6flNW
R0NvbG9yKCkKQEAgLTU2LDkgKzU4LDkgQEAKICAgICByZXR1cm4gbV9jb2xvclR5cGU7CiB9CiAK
LVJHQkNvbG9yICpTVkdDb2xvcjo6cmdiQ29sb3IoKSBjb25zdAordW5zaWduZWQgU1ZHQ29sb3I6
OnJnYkNvbG9yKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbmV3IFJHQkNvbG9yKG1fcUNvbG9yKTsK
KyAgICByZXR1cm4gbV9jb2xvci5yZ2IoKTsKIH0KIAogI2lmIDAKQEAgLTIxNSwxMiArMjE3LDE0
IEBACiB9OwogI2VuZGlmCiAKLXZvaWQgU1ZHQ29sb3I6OnNldFJHQkNvbG9yKFN0cmluZ0ltcGwq
IHJnYkNvbG9yKQordm9pZCBTVkdDb2xvcjo6c2V0UkdCQ29sb3IoY29uc3QgU3RyaW5nJiByZ2JD
b2xvciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgbV9yZ2JDb2xvciA9IHJnYkNvbG9yOwog
Ci0gICAgaWYgKG1fcmdiQ29sb3IuaXNOdWxsKCkpCisgICAgaWYgKG1fcmdiQ29sb3IuaXNOdWxs
KCkpIHsKKyAgICAgICAgZWMgPSBTVkdfSU5WQUxJRF9WQUxVRV9FUlI7CiAgICAgICAgIHJldHVy
bjsKKyAgICB9CiAKICAgICBEZXByZWNhdGVkU3RyaW5nIHBhcnNlID0gbV9yZ2JDb2xvci5kZXBy
ZWNhdGVkU3RyaW5nKCkuc3RyaXBXaGl0ZVNwYWNlKCk7CiAgICAgaWYgKHBhcnNlLnN0YXJ0c1dp
dGgoInJnYigiKSkgewpAQCAtMjMxLDM3ICsyMzUsMzggQEAKICAgICAKICAgICAgICAgaWYgKHIu
Y29udGFpbnMoIiUiKSkgewogICAgICAgICAgICAgciA9IHIubGVmdChyLmxlbmd0aCgpIC0gMSk7
Ci0gICAgICAgICAgICByID0gRGVwcmVjYXRlZFN0cmluZzo6bnVtYmVyKGludCgoZG91YmxlKDI1
NSAqIHIudG9Eb3VibGUoKSkgLyAxMDAuMCkpKTsKKyAgICAgICAgICAgIHIgPSBEZXByZWNhdGVk
U3RyaW5nOjpudW1iZXIoaW50KCgoMjU1LjAgKiByLnRvRG91YmxlKCkpIC8gMTAwLjApKSk7CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAoZy5jb250YWlucygiJSIpKSB7CiAgICAgICAgICAgICBn
ID0gZy5sZWZ0KGcubGVuZ3RoKCkgLSAxKTsKLSAgICAgICAgICAgIGcgPSBEZXByZWNhdGVkU3Ry
aW5nOjpudW1iZXIoaW50KChkb3VibGUoMjU1ICogZy50b0RvdWJsZSgpKSAvIDEwMC4wKSkpOwor
ICAgICAgICAgICAgZyA9IERlcHJlY2F0ZWRTdHJpbmc6Om51bWJlcihpbnQoKCgyNTUuMCAqIGcu
dG9Eb3VibGUoKSkgLyAxMDAuMCkpKTsKICAgICAgICAgfQogICAgIAogICAgICAgICBpZiAoYi5j
b250YWlucygiJSIpKSB7CiAgICAgICAgICAgICBiID0gYi5sZWZ0KGIubGVuZ3RoKCkgLSAxKTsK
LSAgICAgICAgICAgIGIgPSBEZXByZWNhdGVkU3RyaW5nOjpudW1iZXIoaW50KChkb3VibGUoMjU1
ICogYi50b0RvdWJsZSgpKSAvIDEwMC4wKSkpOworICAgICAgICAgICAgYiA9IERlcHJlY2F0ZWRT
dHJpbmc6Om51bWJlcihpbnQoKCgyNTUuMCAqIGIudG9Eb3VibGUoKSkgLyAxMDAuMCkpKTsKICAg
ICAgICAgfQogCi0gICAgICAgIG1fcUNvbG9yID0gQ29sb3Ioci50b0ludCgpLCBnLnRvSW50KCks
IGIudG9JbnQoKSk7CisgICAgICAgIG1fY29sb3IgPSBDb2xvcihyLnRvSW50KCksIGcudG9JbnQo
KSwgYi50b0ludCgpKTsKICAgICB9IGVsc2UgewogICAgICAgICBTdHJpbmcgY29sb3JOYW1lID0g
bV9yZ2JDb2xvci5sb3dlcigpOwotICAgICAgICBEZXByZWNhdGVkU3RyaW5nIG5hbWUgPSBjb2xv
ck5hbWUuZGVwcmVjYXRlZFN0cmluZygpOwogLy8gICAgICAgIGludCBjb2wgPSBXZWJDb3JlOjpn
ZXRWYWx1ZUlEKG5hbWUuYXNjaWkoKSwgbmFtZS5sZW5ndGgoKSk7CiAvLyAgICAgICAgaWYgKGNv
bCA9PSAwKQotICAgICAgICAgICAgbV9xQ29sb3IgPSBDb2xvcihuYW1lKTsKKyAgICAgICAgICAg
IG1fY29sb3IgPSBDb2xvcihjb2xvck5hbWUpOwogLy8gICAgICAgIGVsc2UKLS8vICAgICAgICAg
ICAgbV9xQ29sb3IgPSBjbWFwW2NvbCAtIFNWR0NTU19WQUxfQUxJQ0VCTFVFXTsKKy8vICAgICAg
ICAgICAgbV9jb2xvciA9IGNtYXBbY29sIC0gU1ZHQ1NTX1ZBTF9BTElDRUJMVUVdOwogICAgIH0K
KyAgICBpZiAoIW1fY29sb3IuaXNWYWxpZCgpKQorICAgICAgICBlYyA9IFNWR19JTlZBTElEX1ZB
TFVFX0VSUjsKIH0KIAotdm9pZCBTVkdDb2xvcjo6c2V0UkdCQ29sb3JJQ0NDb2xvcihTdHJpbmdJ
bXBsKiAvKiByZ2JDb2xvciAqLywgU3RyaW5nSW1wbCogLyogaWNjQ29sb3IgKi8pCit2b2lkIFNW
R0NvbG9yOjpzZXRSR0JDb2xvcklDQ0NvbG9yKGNvbnN0IFN0cmluZyYgLyogcmdiQ29sb3IgKi8s
IGNvbnN0IFN0cmluZyYgLyogaWNjQ29sb3IgKi8sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAg
IC8vIFRPRE86IGltcGxlbWVudCBtZSEKIH0KIAotdm9pZCBTVkdDb2xvcjo6c2V0Q29sb3IodW5z
aWduZWQgc2hvcnQgY29sb3JUeXBlLCBTdHJpbmdJbXBsKiAvKiByZ2JDb2xvciAqLyAsIFN0cmlu
Z0ltcGwqIC8qIGljY0NvbG9yICovKQordm9pZCBTVkdDb2xvcjo6c2V0Q29sb3IodW5zaWduZWQg
c2hvcnQgY29sb3JUeXBlLCBjb25zdCBTdHJpbmcmIC8qIHJnYkNvbG9yICovICwgY29uc3QgU3Ry
aW5nJiAvKiBpY2NDb2xvciAqLywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gVE9ETzog
aW1wbGVtZW50IG1lIQogICAgIG1fY29sb3JUeXBlID0gY29sb3JUeXBlOwpAQCAtMjc3LDcgKzI4
Miw3IEBACiAKIGNvbnN0IENvbG9yJiBTVkdDb2xvcjo6Y29sb3IoKSBjb25zdAogewotICAgIHJl
dHVybiBtX3FDb2xvcjsKKyAgICByZXR1cm4gbV9jb2xvcjsKIH0KIAogfQpJbmRleDoga3N2ZzIv
c3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdU
ZXh0Q29udGVudEVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MTkpCisrKyBrc3ZnMi9zdmcvU1ZHVGV4
dENvbnRlbnRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEwICsyOSw3IEBACiAjaW5j
bHVkZSAiU1ZHTGFuZ1NwYWNlLmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZC5oIgogCi1uYW1lc3BhY2UgV2ViQ29yZQotewotICAgIGNsYXNzIFNWR1JlY3Q7Ci0gICAg
Y2xhc3MgU1ZHUG9pbnQ7CituYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgU1ZHQW5pbWF0
ZWRMZW5ndGg7CiAgICAgY2xhc3MgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjsKIApAQCAtNDIsNyAr
MzksNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNW
R1RleHRDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCAqZG9jKTsKKyAgICAgICAgU1ZHVGV4dENvbnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdUZXh0Q29udGVudEVsZW1lbnQo
KTsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1
cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQpAQCAtNTQsMTQgKzUxLDE0IEBACiAgICAgICAgIGxv
bmcgZ2V0TnVtYmVyT2ZDaGFycygpIGNvbnN0OwogICAgICAgICBmbG9hdCBnZXRDb21wdXRlZFRl
eHRMZW5ndGgoKSBjb25zdDsKICAgICAgICAgZmxvYXQgZ2V0U3ViU3RyaW5nTGVuZ3RoKHVuc2ln
bmVkIGxvbmcgY2hhcm51bSwgdW5zaWduZWQgbG9uZyBuY2hhcnMpIGNvbnN0OwotICAgICAgICBT
VkdQb2ludCAqZ2V0U3RhcnRQb3NpdGlvbk9mQ2hhcih1bnNpZ25lZCBsb25nIGNoYXJudW0pIGNv
bnN0OwotICAgICAgICBTVkdQb2ludCAqZ2V0RW5kUG9zaXRpb25PZkNoYXIodW5zaWduZWQgbG9u
ZyBjaGFybnVtKSBjb25zdDsKLSAgICAgICAgU1ZHUmVjdCAqZ2V0RXh0ZW50T2ZDaGFyKHVuc2ln
bmVkIGxvbmcgY2hhcm51bSkgY29uc3Q7CisgICAgICAgIEZsb2F0UG9pbnQgZ2V0U3RhcnRQb3Np
dGlvbk9mQ2hhcih1bnNpZ25lZCBsb25nIGNoYXJudW0pIGNvbnN0OworICAgICAgICBGbG9hdFBv
aW50IGdldEVuZFBvc2l0aW9uT2ZDaGFyKHVuc2lnbmVkIGxvbmcgY2hhcm51bSkgY29uc3Q7Cisg
ICAgICAgIEZsb2F0UmVjdCBnZXRFeHRlbnRPZkNoYXIodW5zaWduZWQgbG9uZyBjaGFybnVtKSBj
b25zdDsKICAgICAgICAgZmxvYXQgZ2V0Um90YXRpb25PZkNoYXIodW5zaWduZWQgbG9uZyBjaGFy
bnVtKSBjb25zdDsKLSAgICAgICAgbG9uZyBnZXRDaGFyTnVtQXRQb3NpdGlvbihTVkdQb2ludCAq
cG9pbnQpIGNvbnN0OworICAgICAgICBsb25nIGdldENoYXJOdW1BdFBvc2l0aW9uKGNvbnN0IEZs
b2F0UG9pbnQmKSBjb25zdDsKICAgICAgICAgdm9pZCBzZWxlY3RTdWJTdHJpbmcodW5zaWduZWQg
bG9uZyBjaGFybnVtLCB1bnNpZ25lZCBsb25nIG5jaGFycykgY29uc3Q7CiAKLSAgICAgICAgdmly
dHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSAqYXR0cik7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUq
KTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIG11dGFibGUgUmVmUHRyPFNWR0FuaW1hdGVkTGVu
Z3RoPiBtX3RleHRMZW5ndGg7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJs
ZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJs
ZUVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MTkpCisrKyBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNm
b3JtYWJsZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQAogICAgICAg
ICB2aXJ0dWFsIFNWR0VsZW1lbnQgKm5lYXJlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdDsKICAg
ICAgICAgdmlydHVhbCBTVkdFbGVtZW50ICpmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0
OwogCi0gICAgICAgIHZpcnR1YWwgU1ZHUmVjdCAqZ2V0QkJveCgpIGNvbnN0OworICAgICAgICB2
aXJ0dWFsIEZsb2F0UmVjdCBnZXRCQm94KCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgU1ZHTWF0
cml4ICpnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHRWxlbWVudCAqZWxlbWVudCkgY29uc3Q7CiAK
ICAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0
ZSAqYXR0cik7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtzdmcyL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAJKHJldmlzaW9uIDE0NjE5KQorKysga3N2
ZzIvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNiBA
QAogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVk
ZSAiU1ZHUmVjdC5oIgotI2luY2x1ZGUgIlNWR1BvaW50LmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxl
bWVudC5oIgogI2luY2x1ZGUgIlNWR1BhdGhTZWdBcmMuaCIKICNpbmNsdWRlICJTVkdQYXRoU2Vn
TGlzdC5oIgpAQCAtNzQsMjAgKzczLDIwIEBACiAgICAgcmV0dXJuIDA7CiB9CiAKLVNWR1BvaW50
ICpTVkdQYXRoRWxlbWVudDo6Z2V0UG9pbnRBdExlbmd0aChkb3VibGUgLypkaXN0YW5jZSovKQor
RmxvYXRQb2ludCBTVkdQYXRoRWxlbWVudDo6Z2V0UG9pbnRBdExlbmd0aChkb3VibGUgLypkaXN0
YW5jZSovKQogewotICAgIFNWR1BvaW50ICpyZXQgPSBTVkdTVkdFbGVtZW50OjpjcmVhdGVTVkdQ
b2ludCgpOwotICAgIC8qZG91YmxlIHRvdGFsRGlzdGFuY2UgPSBnZXRUb3RhbExlbmd0aCgpOwor
ICAgIC8qCisgICAgZG91YmxlIHRvdGFsRGlzdGFuY2UgPSBnZXRUb3RhbExlbmd0aCgpOwogICAg
IFQyUDo6QmV6aWVyUGF0aCAqcGF0aCA9IG93bmVyRG9jKCktPmNhbnZhcygpLT50b0JlemllclBh
dGgobV9pdGVtKTsKLSAgICBpZihwYXRoKQotICAgIHsKKyAgICBpZiAocGF0aCkgewogICAgICAg
ICBUMlA6OlBvaW50IHA7CiAgICAgICAgIHBhdGgtPnBvaW50VGFuZ2VudE5vcm1hbEF0KGRpc3Rh
bmNlIC8gdG90YWxEaXN0YW5jZSwgJnApOwogICAgICAgICByZXQtPnNldFgocC54KCkpOwogICAg
ICAgICByZXQtPnNldFkocC55KCkpOwotICAgIH0qLworICAgIH0KKyAgICAqLwogCi0gICAgcmV0
dXJuIHJldDsKKyAgICByZXR1cm4gRmxvYXRQb2ludCgpOwogfQogCiB1bnNpZ25lZCBsb25nIFNW
R1BhdGhFbGVtZW50OjpnZXRQYXRoU2VnQXRMZW5ndGgoZG91YmxlKQpJbmRleDoga3N2ZzIvc3Zn
L1NWR1RleHRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHVGV4dEVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxNDYxOSkKKysrIGtzdmcyL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTk4LDcgKzk4LDcgQEAKICAgICByZXR1cm4gU1ZHVHJhbnNmb3Jt
YWJsZTo6ZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQodGhpcyk7CiB9CiAKLVNWR1JlY3QgKlNWR1Rl
eHRFbGVtZW50OjpnZXRCQm94KCkgY29uc3QKK0Zsb2F0UmVjdCBTVkdUZXh0RWxlbWVudDo6Z2V0
QkJveCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFNWR1RyYW5zZm9ybWFibGU6OmdldEJCb3godGhp
cyk7CiB9CkluZGV4OiBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtz
dmcyL3N2Zy9TVkdEb2N1bWVudC5pZGwJKHJldmlzaW9uIDE0NjAwKQorKysga3N2ZzIvc3ZnL1NW
R0RvY3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNCArMSw0MCBAQAotbW9kdWxlIHN2
ZwotewotICBpbnRlcmZhY2UgU1ZHRG9jdW1lbnQgOiAKLSAgICAgICAgICAgICAgICBjb3JlOjpE
b2N1bWVudCB7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVy
bWFubiA8d2lsZGZveEBrZGUub3JnPgorICogICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBC
dWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIs
IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
Q09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworbW9kdWxlIHN2ZyB7CisgICAgaW50ZXJmYWNlIFNWR0RvY3VtZW50IDog
Y29yZTo6RG9jdW1lbnQgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBjb3JlOjpET01TdHJpbmcg
ICAgdGl0bGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGNvcmU6OkRPTVN0cmluZyAgICAgcmVm
ZXJyZXI7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGNvcmU6OkRPTVN0cmluZyAgICAgIGRvbWFp
bjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgY29yZTo6RE9NU3RyaW5nICAgICAgVVJMOwotICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdTVkdFbGVtZW50IHJvb3RFbGVtZW50OworICAgICAgICAv
L3JlYWRvbmx5IGF0dHJpYnV0ZSBTVkdTVkdFbGVtZW50ICAgICAgcm9vdEVsZW1lbnQ7IC8vIEZJ
WE1FOiBTVkdTVkdFbGVtZW50IGlzIG5vdCB5ZXQgZ2VuZXJhdGVkIGR1ZSB0byBkZXBlbmRlbmNp
ZXMuCiAKIAkvLyBPdmVyd3JpdGUgdGhlIG9uZSBpbiBldmVudHM6OkRvY3VtZW50RXZlbnQKLQll
dmVudHM6OkV2ZW50IGNyZWF0ZUV2ZW50KGluIGNvcmU6OkRPTVN0cmluZyBldmVudFR5cGUpIFty
YWlzZXMoY29yZTo6RE9NRXhjZXB0aW9uKV07CisgICAgICAgIGV2ZW50czo6RXZlbnQgY3JlYXRl
RXZlbnQoaW4gY29yZTo6RE9NU3RyaW5nIGV2ZW50VHlwZSkKKyAgICAgICAgICAgIHJhaXNlcyhj
b3JlOjpET01FeGNlcHRpb24pOwogICB9OwogfTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTVkdFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAJKHJldmlz
aW9uIDE0NjE5KQorKysga3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCiAj
aW5jbHVkZSAiU1ZHTWF0cml4LmgiCiAjaW5jbHVkZSAiU1ZHTnVtYmVyLmgiCi0jaW5jbHVkZSAi
U1ZHUG9pbnQuaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJTVkdab29t
RXZlbnQuaCIKICNpbmNsdWRlICJrc3ZnLmgiCkBAIC0xMjAsOSArMTE5LDggQEAKICAgICBzZXRB
dHRyaWJ1dGUoU1ZHTmFtZXM6OmNvbnRlbnRTdHlsZVR5cGVBdHRyLCB0eXBlKTsKIH0KIAotU1ZH
UmVjdCAqU1ZHU1ZHRWxlbWVudDo6dmlld3BvcnQoKSBjb25zdAorRmxvYXRSZWN0IFNWR1NWR0Vs
ZW1lbnQ6OnZpZXdwb3J0KCkgY29uc3QKIHsKLSAgICBTVkdSZWN0ICpyZXQgPSBjcmVhdGVTVkdS
ZWN0KCk7CiAgICAgZG91YmxlIF94ID0geCgpLT5iYXNlVmFsKCktPnZhbHVlKCk7CiAgICAgZG91
YmxlIF95ID0geSgpLT5iYXNlVmFsKCktPnZhbHVlKCk7CiAgICAgZG91YmxlIHcgPSB3aWR0aCgp
LT5iYXNlVmFsKCktPnZhbHVlKCk7CkBAIC0xMzAsMTEgKzEyOCw3IEBACiAgICAgUmVmUHRyPFNW
R01hdHJpeD4gdmlld0JveCA9IHZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0odywgaCk7CiAgICAgdmll
d0JveC0+cW1hdHJpeCgpLm1hcChfeCwgX3ksICZfeCwgJl95KTsKICAgICB2aWV3Qm94LT5xbWF0
cml4KCkubWFwKHcsIGgsICZ3LCAmaCk7Ci0gICAgcmV0LT5zZXRYKF94KTsKLSAgICByZXQtPnNl
dFkoX3kpOwotICAgIHJldC0+c2V0V2lkdGgodyk7Ci0gICAgcmV0LT5zZXRIZWlnaHQoaCk7Ci0g
ICAgcmV0dXJuIHJldDsKKyAgICByZXR1cm4gRmxvYXRSZWN0KF94LCBfeSwgdywgaCk7CiB9CiAK
IGZsb2F0IFNWR1NWR0VsZW1lbnQ6OnBpeGVsVW5pdFRvTWlsbGltZXRlclgoKSBjb25zdApAQCAt
MjAxLDEwICsxOTUsMTAgQEAKIC8vICAgIH0KIH0KIAotU1ZHUG9pbnQgKlNWR1NWR0VsZW1lbnQ6
OmN1cnJlbnRUcmFuc2xhdGUoKSBjb25zdAorRmxvYXRQb2ludCBTVkdTVkdFbGVtZW50OjpjdXJy
ZW50VHJhbnNsYXRlKCkgY29uc3QKIHsKICAgICAvL2lmKCFjYW52YXMoKSkKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBGbG9hdFBvaW50KCk7CiAKICAgICAvL3JldHVybiBjcmVh
dGVTVkdQb2ludChjYW52YXNWaWV3KCktPnBhbigpKTsKIH0KQEAgLTI2OSw4ICsyNjMsOSBAQAog
ICAgIHJldHVybiAwOwogfQogCi12b2lkIFNWR1NWR0VsZW1lbnQ6OnVuc3VzcGVuZFJlZHJhdyh1
bnNpZ25lZCBsb25nIC8qIHN1c3BlbmRfaGFuZGxlX2lkICovKQordm9pZCBTVkdTVkdFbGVtZW50
Ojp1bnN1c3BlbmRSZWRyYXcodW5zaWduZWQgbG9uZyAvKiBzdXNwZW5kX2hhbmRsZV9pZCAqLywg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgLy8gaWYgc3VzcGVuZF9oYW5kbGVfaWQgaXMgbm90
IGZvdW5kLCB0aHJvdyBleGNlcHRpb24KICAgICAvLyBUT0RPCiB9CiAKQEAgLTI4NCwzOSArMjc5
LDMxIEBACiAgICAgLy8gVE9ETwogfQogCi1Ob2RlTGlzdCAqU1ZHU1ZHRWxlbWVudDo6Z2V0SW50
ZXJzZWN0aW9uTGlzdChTVkdSZWN0ICpyZWN0LCBTVkdFbGVtZW50ICopCitOb2RlTGlzdCAqU1ZH
U1ZHRWxlbWVudDo6Z2V0SW50ZXJzZWN0aW9uTGlzdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIFNW
R0VsZW1lbnQqKQogewogICAgIC8vTm9kZUxpc3QgKmxpc3Q7CiAgICAgLy8gVE9ETwogICAgIHJl
dHVybiAwOwogfQogCi1Ob2RlTGlzdCAqU1ZHU1ZHRWxlbWVudDo6Z2V0RW5jbG9zdXJlTGlzdChT
VkdSZWN0ICpyZWN0LCBTVkdFbGVtZW50ICopCitOb2RlTGlzdCAqU1ZHU1ZHRWxlbWVudDo6Z2V0
RW5jbG9zdXJlTGlzdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIFNWR0VsZW1lbnQqKQogewogICAg
IC8vIFRPRE8KICAgICByZXR1cm4gMDsKIH0KIAotYm9vbCBTVkdTVkdFbGVtZW50OjpjaGVja0lu
dGVyc2VjdGlvbihTVkdFbGVtZW50ICplbGVtZW50LCBTVkdSZWN0ICpyZWN0KQorYm9vbCBTVkdT
VkdFbGVtZW50OjpjaGVja0ludGVyc2VjdGlvbihTVkdFbGVtZW50KiBlbGVtZW50LCBjb25zdCBG
bG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgLy8gVE9ETyA6IHRha2UgaW50byBhY2NvdW50IHBvaW50
ZXItZXZlbnRzPwotICAgIFJlZlB0cjxTVkdSZWN0PiBiYm94ID0gZ2V0QkJveCgpOwotICAgIAot
ICAgIEZsb2F0UmVjdCByKHJlY3QtPngoKSwgcmVjdC0+eSgpLCByZWN0LT53aWR0aCgpLCByZWN0
LT5oZWlnaHQoKSk7Ci0gICAgRmxvYXRSZWN0IHIyKGJib3gtPngoKSwgYmJveC0+eSgpLCBiYm94
LT53aWR0aCgpLCBiYm94LT5oZWlnaHQoKSk7Ci0gICAgCi0gICAgcmV0dXJuIHIuaW50ZXJzZWN0
cyhyMik7CisgICAgLy8gRklYTUU6IFdoeSBpcyBlbGVtZW50IGlnbm9yZWQ/PworICAgIHJldHVy
biByZWN0LmludGVyc2VjdHMoZ2V0QkJveCgpKTsKIH0KIAotYm9vbCBTVkdTVkdFbGVtZW50Ojpj
aGVja0VuY2xvc3VyZShTVkdFbGVtZW50ICplbGVtZW50LCBTVkdSZWN0ICpyZWN0KQorYm9vbCBT
VkdTVkdFbGVtZW50OjpjaGVja0VuY2xvc3VyZShTVkdFbGVtZW50KiBlbGVtZW50LCBjb25zdCBG
bG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgLy8gVE9ETyA6IHRha2UgaW50byBhY2NvdW50IHBvaW50
ZXItZXZlbnRzPwotICAgIFJlZlB0cjxTVkdSZWN0PiBiYm94ID0gZ2V0QkJveCgpOwotICAgIAot
ICAgIEZsb2F0UmVjdCByKHJlY3QtPngoKSwgcmVjdC0+eSgpLCByZWN0LT53aWR0aCgpLCByZWN0
LT5oZWlnaHQoKSk7Ci0gICAgRmxvYXRSZWN0IHIyKGJib3gtPngoKSwgYmJveC0+eSgpLCBiYm94
LT53aWR0aCgpLCBiYm94LT5oZWlnaHQoKSk7Ci0gICAgCi0gICAgcmV0dXJuIHIuY29udGFpbnMo
cjIpOworICAgIC8vIEZJWE1FOiBXaHkgaXMgZWxlbWVudCBpZ25vcmVkPz8KKyAgICByZXR1cm4g
cmVjdC5jb250YWlucyhnZXRCQm94KCkpOwogfQogCiB2b2lkIFNWR1NWR0VsZW1lbnQ6OmRlc2Vs
ZWN0QWxsKCkKQEAgLTMyNCw5ICszMTEsOSBAQAogICAgIC8vIFRPRE8KIH0KIAotU1ZHTnVtYmVy
ICpTVkdTVkdFbGVtZW50OjpjcmVhdGVTVkdOdW1iZXIoKQorZmxvYXQgU1ZHU1ZHRWxlbWVudDo6
Y3JlYXRlU1ZHTnVtYmVyKCkKIHsKLSAgICByZXR1cm4gbmV3IFNWR051bWJlcigwKTsKKyAgICBy
ZXR1cm4gMDsKIH0KIAogU1ZHTGVuZ3RoICpTVkdTVkdFbGVtZW50OjpjcmVhdGVTVkdMZW5ndGgo
KQpAQCAtMzM5LDkgKzMyNiw5IEBACiAgICAgcmV0dXJuIG5ldyBTVkdBbmdsZSgwKTsKIH0KIAot
U1ZHUG9pbnQgKlNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR1BvaW50KGNvbnN0IEludFBvaW50ICZw
KQorRmxvYXRQb2ludCBTVkdTVkdFbGVtZW50OjpjcmVhdGVTVkdQb2ludChjb25zdCBJbnRQb2lu
dCAmcCkKIHsKLSAgICByZXR1cm4gbmV3IFNWR1BvaW50KHApOworICAgIHJldHVybiBGbG9hdFBv
aW50KHApOwogfQogCiBTVkdNYXRyaXggKlNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR01hdHJpeCgp
CkBAIC0zNDksOSArMzM2LDkgQEAKICAgICByZXR1cm4gbmV3IFNWR01hdHJpeCgpOwogfQogCi1T
VkdSZWN0ICpTVkdTVkdFbGVtZW50OjpjcmVhdGVTVkdSZWN0KCkKK0Zsb2F0UmVjdCBTVkdTVkdF
bGVtZW50OjpjcmVhdGVTVkdSZWN0KCkKIHsKLSAgICByZXR1cm4gbmV3IFNWR1JlY3QoMCk7Cisg
ICAgcmV0dXJuIEZsb2F0UmVjdCgpOwogfQogCiBTVkdUcmFuc2Zvcm0gKlNWR1NWR0VsZW1lbnQ6
OmNyZWF0ZVNWR1RyYW5zZm9ybSgpCkluZGV4OiBrc3ZnMi9rc3ZnLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a3N2ZzIva3N2Zy5oCShyZXZpc2lvbiAxNDYxOSkKKysrIGtzdmcyL2tzdmcuaAkod29ya2luZyBj
b3B5KQpAQCAtNjMsMTQgKzYzLDYgQEAKICAgICAgICAgU1ZHX0FOR0xFVFlQRV9HUkFEICAgICAg
ICAgICAgPSA0CiAgICAgfTsKIAotICAgIGVudW0gU1ZHQ29sb3JUeXBlCi0gICAgewotICAgICAg
ICBTVkdfQ09MT1JUWVBFX1VOS05PV04gICAgICAgICAgICAgICAgPSAwLAotICAgICAgICBTVkdf
Q09MT1JUWVBFX1JHQkNPTE9SICAgICAgICAgICAgICAgID0gMSwKLSAgICAgICAgU1ZHX0NPTE9S
VFlQRV9SR0JDT0xPUl9JQ0NDT0xPUiAgICAgICAgPSAyLAotICAgICAgICBTVkdfQ09MT1JUWVBF
X0NVUlJFTlRDT0xPUiAgICAgICAgICAgID0gMwotICAgIH07Ci0KICAgICBlbnVtIFNWR1VuaXRU
eXBlcwogICAgIHsKICAgICAgICAgU1ZHX1VOSVRfVFlQRV9VTktOT1dOICAgICAgICAgICAgICAg
ID0gMCwKQEAgLTg4LDEzICs4MCw3IEBACiAgICAgICAgIFJFTkRFUklOR19JTlRFTlRfQUJTT0xV
VEVfQ09MT1JJTUVUUklDICAgID0gNQogICAgIH07CiAKLSAgICBlbnVtIFNWR0NTU1J1bGVUeXBl
Ci0gICAgewotICAgICAgICBDT0xPUl9QUk9GSUxFX1JVTEUgPSA3Ci0gICAgfTsKLQotICAgIGVu
dW0gU1ZHVHJhbnNmb3JtVHlwZQotICAgIHsKKyAgICBlbnVtIFNWR1RyYW5zZm9ybVR5cGUgewog
ICAgICAgICBTVkdfVFJBTlNGT1JNX1VOS05PV04gICAgICAgID0gMCwKICAgICAgICAgU1ZHX1RS
QU5TRk9STV9NQVRSSVggICAgICAgID0gMSwKICAgICAgICAgU1ZHX1RSQU5TRk9STV9UUkFOU0xB
VEUgICAgICAgID0gMiwKQEAgLTEwNCw2ICs5MCwxMSBAQAogICAgICAgICBTVkdfVFJBTlNGT1JN
X1NLRVdZICAgICAgICAgICAgPSA2CiAgICAgfTsKIAorICAgIGVudW0gU1ZHQ1NTUnVsZVR5cGUK
KyAgICB7CisgICAgICAgIENPTE9SX1BST0ZJTEVfUlVMRSA9IDcKKyAgICB9OworCiAgICAgZW51
bSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVHlwZQogICAgIHsKICAgICAgICAgU1ZHX1BSRVNFUlZF
QVNQRUNUUkFUSU9fVU5LTk9XTiAgICAgICAgPSAwLApJbmRleDoga3N2ZzIvZXZlbnRzL1NWR1pv
b21FdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvZXZlbnRzL1NWR1pvb21FdmVudC5jcHAJ
KHJldmlzaW9uIDE0NjE5KQorKysga3N2ZzIvZXZlbnRzL1NWR1pvb21FdmVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIyLDI1ICsyMiwyMyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaWYg
U1ZHX1NVUFBPUlQKLSNpbmNsdWRlICJTVkdSZWN0LmgiCi0jaW5jbHVkZSAiU1ZHUG9pbnQuaCIK
ICNpbmNsdWRlICJTVkdab29tRXZlbnQuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IFNWR1pvb21FdmVudDo6U1ZHWm9vbUV2ZW50KCkKKyAgICA6IG1fbmV3U2NhbGUoMC4wKQorICAg
ICwgbV9wcmV2aW91c1NjYWxlKDAuMCkKIHsKLSAgICBtX25ld1NjYWxlID0gMC4wOwotICAgIG1f
cHJldmlvdXNTY2FsZSA9IDAuMDsKIH0KIAogU1ZHWm9vbUV2ZW50Ojp+U1ZHWm9vbUV2ZW50KCkK
IHsKIH0KIAotU1ZHUmVjdCAqU1ZHWm9vbUV2ZW50Ojp6b29tUmVjdFNjcmVlbigpIGNvbnN0CitG
bG9hdFJlY3QgU1ZHWm9vbUV2ZW50Ojp6b29tUmVjdFNjcmVlbigpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fem9vbVJlY3RTY3JlZW4uZ2V0KCk7CisgICAgcmV0dXJuIG1fem9vbVJlY3RTY3JlZW47
CiB9CiAKIGZsb2F0IFNWR1pvb21FdmVudDo6cHJldmlvdXNTY2FsZSgpIGNvbnN0CkBAIC01Myw5
ICs1MSw5IEBACiAgICAgbV9wcmV2aW91c1NjYWxlID0gc2NhbGU7CiB9CiAKLVNWR1BvaW50ICpT
Vkdab29tRXZlbnQ6OnByZXZpb3VzVHJhbnNsYXRlKCkgY29uc3QKK0Zsb2F0UG9pbnQgU1ZHWm9v
bUV2ZW50OjpwcmV2aW91c1RyYW5zbGF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJldmlv
dXNUcmFuc2xhdGUuZ2V0KCk7CisgICAgcmV0dXJuIG1fcHJldmlvdXNUcmFuc2xhdGU7CiB9CiAK
IGZsb2F0IFNWR1pvb21FdmVudDo6bmV3U2NhbGUoKSBjb25zdApAQCAtNjgsOSArNjYsOSBAQAog
ICAgIG1fbmV3U2NhbGUgPSBzY2FsZTsKIH0KIAotU1ZHUG9pbnQgKlNWR1pvb21FdmVudDo6bmV3
VHJhbnNsYXRlKCkgY29uc3QKK0Zsb2F0UG9pbnQgU1ZHWm9vbUV2ZW50OjpuZXdUcmFuc2xhdGUo
KSBjb25zdAogewotICAgIHJldHVybiBtX25ld1RyYW5zbGF0ZS5nZXQoKTsKKyAgICByZXR1cm4g
bV9uZXdUcmFuc2xhdGU7CiB9CiAKIC8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IGtzdmcyL2V2ZW50
cy9TVkdab29tRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9ldmVudHMvU1ZHWm9vbUV2ZW50
LmgJKHJldmlzaW9uIDE0NjE5KQorKysga3N2ZzIvZXZlbnRzL1NWR1pvb21FdmVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMCwxNiArMjAsMTUgQEAKICAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcs
IFVTQS4KICovCiAKLSNpZm5kZWYgS0RPTV9TVkdab29tRXZlbnRJbXBsX0gKLSNkZWZpbmUgS0RP
TV9TVkdab29tRXZlbnRJbXBsX0gKKyNpZm5kZWYgU1ZHWm9vbUV2ZW50X0gKKyNkZWZpbmUgU1ZH
Wm9vbUV2ZW50X0gKICNpZiBTVkdfU1VQUE9SVAogCiAjaW5jbHVkZSAiZG9tMl9ldmVudHNpbXBs
LmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKIAotbmFt
ZXNwYWNlIFdlYkNvcmUKLXsKLSAgICBjbGFzcyBTVkdSZWN0OwotICAgIGNsYXNzIFNWR1BvaW50
OwogICAgIGNsYXNzIFNWR1pvb21FdmVudCA6IHB1YmxpYyBVSUV2ZW50CiAgICAgewogICAgIHB1
YmxpYzoKQEAgLTM3LDI2ICszNiwyNiBAQAogICAgICAgICB2aXJ0dWFsIH5TVkdab29tRXZlbnQo
KTsKIAogICAgICAgICAvLyAnU1ZHWm9vbUV2ZW50JyBmdW5jdGlvbnMKLSAgICAgICAgU1ZHUmVj
dCAqem9vbVJlY3RTY3JlZW4oKSBjb25zdDsKKyAgICAgICAgRmxvYXRSZWN0IHpvb21SZWN0U2Ny
ZWVuKCkgY29uc3Q7CiAKICAgICAgICAgZmxvYXQgcHJldmlvdXNTY2FsZSgpIGNvbnN0OwotICAg
ICAgICB2b2lkIHNldFByZXZpb3VzU2NhbGUoZmxvYXQgc2NhbGUpOworICAgICAgICB2b2lkIHNl
dFByZXZpb3VzU2NhbGUoZmxvYXQpOwogCi0gICAgICAgIFNWR1BvaW50ICpwcmV2aW91c1RyYW5z
bGF0ZSgpIGNvbnN0OworICAgICAgICBGbG9hdFBvaW50IHByZXZpb3VzVHJhbnNsYXRlKCkgY29u
c3Q7CiAKICAgICAgICAgZmxvYXQgbmV3U2NhbGUoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRO
ZXdTY2FsZShmbG9hdCBzY2FsZSk7CisgICAgICAgIHZvaWQgc2V0TmV3U2NhbGUoZmxvYXQpOwog
Ci0gICAgICAgIFNWR1BvaW50ICpuZXdUcmFuc2xhdGUoKSBjb25zdDsKKyAgICAgICAgRmxvYXRQ
b2ludCBuZXdUcmFuc2xhdGUoKSBjb25zdDsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGZsb2F0
IG1fbmV3U2NhbGU7CiAgICAgICAgIGZsb2F0IG1fcHJldmlvdXNTY2FsZTsKICAgICAgICAgCi0g
ICAgICAgIFJlZlB0cjxTVkdSZWN0PiBtX3pvb21SZWN0U2NyZWVuOworICAgICAgICBGbG9hdFJl
Y3QgbV96b29tUmVjdFNjcmVlbjsKICAgICAgICAgCi0gICAgICAgIFJlZlB0cjxTVkdQb2ludD4g
bV9uZXdUcmFuc2xhdGU7Ci0gICAgICAgIFJlZlB0cjxTVkdQb2ludD4gbV9wcmV2aW91c1RyYW5z
bGF0ZTsKKyAgICAgICAgRmxvYXRQb2ludCBtX25ld1RyYW5zbGF0ZTsKKyAgICAgICAgRmxvYXRQ
b2ludCBtX3ByZXZpb3VzVHJhbnNsYXRlOwogICAgIH07CiB9OwogCkluZGV4OiBrc3ZnMi9jc3Mv
U1ZHQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9jc3MvU1ZHQ1NTUGFyc2VyLmNw
cAkocmV2aXNpb24gMTQ2MTkpCisrKyBrc3ZnMi9jc3MvU1ZHQ1NTUGFyc2VyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjUwLDcgKzI1MCw3IEBACiAgICAgICAgICAgIChpZCA+PSBTVkdDU1NfVkFM
X0FMSUNFQkxVRSAmJiBpZCA8PSBTVkdDU1NfVkFMX1lFTExPV0dSRUVOKSkKICAgICAgICAgICAg
IHBhcnNlZFZhbHVlID0gbmV3IFNWR0NvbG9yKGRvbVN0cmluZyh2YWx1ZS0+c3RyaW5nKS5pbXBs
KCkpOwogICAgICAgICBlbHNlIGlmIChpZCA9PSBTVkdDU1NfVkFMX0NVUlJFTlRDT0xPUikKLSAg
ICAgICAgICAgIHBhcnNlZFZhbHVlID0gbmV3IFNWR0NvbG9yKFNWR19DT0xPUlRZUEVfQ1VSUkVO
VENPTE9SKTsKKyAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gbmV3IFNWR0NvbG9yKFNWR0NvbG9y
OjpTVkdfQ09MT1JUWVBFX0NVUlJFTlRDT0xPUik7CiAgICAgICAgIGVsc2UgLy8gVE9ETyA6IHN2
Z2NvbG9yIChpY2NDb2xvcikKICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gcGFyc2VTVkdDb2xv
cigpOwogCkluZGV4OiBrc3ZnMi9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0ga3N2ZzIvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiAxNDYxOSkK
KysrIGtzdmcyL2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjY5LDcgKzY2OSw3IEBACiAgICAgICAgICAgICAgICAgaWYgKCFjKQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpZCwgdmFsdWUpOwog
Ci0gICAgICAgICAgICAgICAgaWYgKGMtPmNvbG9yVHlwZSgpID09IFNWR19DT0xPUlRZUEVfQ1VS
UkVOVENPTE9SKQorICAgICAgICAgICAgICAgIGlmIChjLT5jb2xvclR5cGUoKSA9PSBTVkdDb2xv
cjo6U1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IpCiAgICAgICAgICAgICAgICAgICAgIGNvbCA9
IHN0eWxlLT5jb2xvcigpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAg
ICAgY29sID0gYy0+Y29sb3IoKTsKQEAgLTcwNiw3ICs3MDYsNyBAQAogICAgICAgICAgICAgICAg
IGlmICghYykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1N0eWxlU2VsZWN0b3I6OmFw
cGx5UHJvcGVydHkoaWQsIHZhbHVlKTsKIAotICAgICAgICAgICAgICAgIGlmIChjLT5jb2xvclR5
cGUoKSA9PSBTVkdfQ09MT1JUWVBFX0NVUlJFTlRDT0xPUikKKyAgICAgICAgICAgICAgICBpZiAo
Yy0+Y29sb3JUeXBlKCkgPT0gU1ZHQ29sb3I6OlNWR19DT0xPUlRZUEVfQ1VSUkVOVENPTE9SKQog
ICAgICAgICAgICAgICAgICAgICBjb2wgPSBzdHlsZS0+Y29sb3IoKTsKICAgICAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIGNvbCA9IGMtPmNvbG9yKCk7CkluZGV4OiBrc3Zn
Mi9iaW5kaW5ncy9pZGwvc3ZnL1NWR051bWJlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvYmlu
ZGluZ3MvaWRsL3N2Zy9TVkdOdW1iZXIuaWRsCShyZXZpc2lvbiAxNDYxOSkKKysrIGtzdmcyL2Jp
bmRpbmdzL2lkbC9zdmcvU1ZHTnVtYmVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICswLDAg
QEAKLW1vZHVsZSBzdmcKLXsKLSAgaW50ZXJmYWNlIFNWR051bWJlciB7IAotICAgICAgICAgICAg
IGF0dHJpYnV0ZSBmbG9hdCB2YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlz
ZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKLSAgfTsKLX07CkluZGV4OiBrc3ZnMi9iaW5kaW5n
cy9pZGwvc3ZnL1NWR1BvaW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9iaW5kaW5ncy9pZGwv
c3ZnL1NWR1BvaW50LmlkbAkocmV2aXNpb24gMTQ2MTkpCisrKyBrc3ZnMi9iaW5kaW5ncy9pZGwv
c3ZnL1NWR1BvaW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi1tb2R1bGUg
c3ZnCi17Ci0gIGludGVyZmFjZSBTVkdQb2ludCB7IAotICAgICAgICAgICAgIGF0dHJpYnV0ZSBm
bG9hdCB4OwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24g
b24gc2V0dGluZwotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB5OwotICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZwotICAgIFNWR1Bv
aW50IG1hdHJpeFRyYW5zZm9ybSAoIGluIFNWR01hdHJpeCBtYXRyaXggKTsKLSAgfTsKLX07Cklu
ZGV4OiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR01hdHJpeC5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdNYXRyaXguaWRsCShyZXZpc2lvbiAxNDYxOSkKKysr
IGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHTWF0cml4LmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MSwzMCArMCwwIEBACi1tb2R1bGUgc3ZnCi17Ci0gIGludGVyZmFjZSBTVkdNYXRyaXggeyAKLSAg
ICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgYTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAv
LyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKLSAgICAgICAgICAgICBhdHRyaWJ1dGUg
ZmxvYXQgYjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9u
IG9uIHNldHRpbmcKLSAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgYzsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKLSAvLyAgICAg
ICAgICAgIGF0dHJpYnV0ZSBmbG9hdCBkOwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJh
aXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZwotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9h
dCBlOwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24g
c2V0dGluZwotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCBmOwotICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZwotICAgIFNWR01hdHJp
eCBtdWx0aXBseSAoIGluIFNWR01hdHJpeCBzZWNvbmRNYXRyaXggKTsKLSAgICBTVkdNYXRyaXgg
aW52ZXJzZSAoICApCi0gICAgICAgICAgICAgICAgICAgIHJhaXNlcyggU1ZHRXhjZXB0aW9uICk7
Ci0gICAgU1ZHTWF0cml4IHRyYW5zbGF0ZSAoIGluIGZsb2F0IHgsIGluIGZsb2F0IHkgKTsKLSAg
ICBTVkdNYXRyaXggc2NhbGUgKCBpbiBmbG9hdCBzY2FsZUZhY3RvciApOwotICAgIFNWR01hdHJp
eCBzY2FsZU5vblVuaWZvcm0gKCBpbiBmbG9hdCBzY2FsZUZhY3RvclgsIGluIGZsb2F0IHNjYWxl
RmFjdG9yWSApOwotICAgIFNWR01hdHJpeCByb3RhdGUgKCBpbiBmbG9hdCBhbmdsZSApOwotICAg
IFNWR01hdHJpeCByb3RhdGVGcm9tVmVjdG9yICggaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSApCi0g
ICAgICAgICAgICAgICAgICAgIHJhaXNlcyggU1ZHRXhjZXB0aW9uICk7Ci0gICAgU1ZHTWF0cml4
IGZsaXBYICggICk7Ci0gICAgU1ZHTWF0cml4IGZsaXBZICggICk7Ci0gICAgU1ZHTWF0cml4IHNr
ZXdYICggaW4gZmxvYXQgYW5nbGUgKTsKLSAgICBTVkdNYXRyaXggc2tld1kgKCBpbiBmbG9hdCBh
bmdsZSApOwotICB9OwotfTsKSW5kZXg6IGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHVHJhbnNm
b3JtLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR1RyYW5zZm9y
bS5pZGwJKHJldmlzaW9uIDE0NjE5KQorKysga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdUcmFu
c2Zvcm0uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIyICswLDAgQEAKLW1vZHVsZSBzdmcKLXsK
LSAgaW50ZXJmYWNlIFNWR1RyYW5zZm9ybSB7IAotICAgIC8vIFRyYW5zZm9ybSBUeXBlcwotICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19UUkFOU0ZPUk1fVU5LTk9XTiAgID0gMDsKLSAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfVFJBTlNGT1JNX01BVFJJWCAgICA9IDE7Ci0gICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgU1ZHX1RSQU5TRk9STV9UUkFOU0xBVEUgPSAyOwotICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IFNWR19UUkFOU0ZPUk1fU0NBTEUgICAgID0gMzsKLSAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBTVkdfVFJBTlNGT1JNX1JPVEFURSAgICA9IDQ7Ci0gICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgU1ZHX1RSQU5TRk9STV9TS0VXWCAgICAgPSA1OwotICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IFNWR19UUkFOU0ZPUk1fU0tFV1kgICAgID0gNjsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgc2hvcnQgdHlwZTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHTWF0
cml4IG1hdHJpeDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgYW5nbGU7Ci0gICAgdm9p
ZCBzZXRNYXRyaXggKCBpbiBTVkdNYXRyaXggbWF0cml4ICk7Ci0gICAgdm9pZCBzZXRUcmFuc2xh
dGUgKCBpbiBmbG9hdCB0eCwgaW4gZmxvYXQgdHkgKTsKLSAgICB2b2lkIHNldFNjYWxlICggaW4g
ZmxvYXQgc3gsIGluIGZsb2F0IHN5ICk7Ci0gICAgdm9pZCBzZXRSb3RhdGUgKCBpbiBmbG9hdCBh
bmdsZSwgaW4gZmxvYXQgY3gsIGluIGZsb2F0IGN5ICk7Ci0gICAgdm9pZCBzZXRTa2V3WCAoIGlu
IGZsb2F0IGFuZ2xlICk7Ci0gICAgdm9pZCBzZXRTa2V3WSAoIGluIGZsb2F0IGFuZ2xlICk7Ci0g
IH07Ci19OwpJbmRleDoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdEb2N1bWVudC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0ga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdEb2N1bWVudC5pZGwJKHJldmlz
aW9uIDE0NjE5KQorKysga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdEb2N1bWVudC5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTEsMTQgKzAsMCBAQAotbW9kdWxlIHN2ZwotewotICBpbnRlcmZhY2Ug
U1ZHRG9jdW1lbnQgOiAKLSAgICAgICAgICAgICAgICBjb3JlOjpEb2N1bWVudCB7Ci0gICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGNvcmU6OkRPTVN0cmluZyAgICB0aXRsZTsKLSAgICByZWFkb25seSBh
dHRyaWJ1dGUgY29yZTo6RE9NU3RyaW5nICAgICByZWZlcnJlcjsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgY29yZTo6RE9NU3RyaW5nICAgICAgZG9tYWluOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBjb3JlOjpET01TdHJpbmcgICAgICBVUkw7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1NW
R0VsZW1lbnQgcm9vdEVsZW1lbnQ7Ci0KLQkvLyBPdmVyd3JpdGUgdGhlIG9uZSBpbiBldmVudHM6
OkRvY3VtZW50RXZlbnQKLQlldmVudHM6OkV2ZW50IGNyZWF0ZUV2ZW50KGluIGNvcmU6OkRPTVN0
cmluZyBldmVudFR5cGUpIFtyYWlzZXMoY29yZTo6RE9NRXhjZXB0aW9uKV07Ci0gIH07Ci19OwpJ
bmRleDoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0ga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5pZGwJKHJl
dmlzaW9uIDE0NjE5KQorKysga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmltYXRlZExlbmd0
aC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMCwwIEBACi1tb2R1bGUgc3ZnCi17Ci0gIGlu
dGVyZmFjZSBTVkdBbmltYXRlZExlbmd0aCB7IAotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdM
ZW5ndGggYmFzZVZhbDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHTGVuZ3RoIGFuaW1WYWw7
Ci0gIH07Ci19OwpJbmRleDoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdTVkdFbGVtZW50Lmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR1NWR0VsZW1lbnQuaWRs
CShyZXZpc2lvbiAxNDYxOSkKKysrIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHU1ZHRWxlbWVu
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNTkgKzAsMCBAQAotbW9kdWxlIHN2ZwotewotICAv
LyBUT0RPOiBubyBjc3M6OlZpZXdDU1MgYXZhaWxhYmxlIGluIGtkb20hCi0gIC8vIFRPRE86IEZp
eCBTVkdTVkdFbGVtZW50IGluaGVyaXRhbmNlIChjc3M6OkRvY3VtZW50Q1NTKSEgCi0gIGludGVy
ZmFjZSBTVkdTVkdFbGVtZW50IDogCi0gICAgICAgICAgICAgICAgU1ZHRWxlbWVudCwKLSAgICAg
ICAgICAgICAgICBTVkdUZXN0cywKLSAgICAgICAgICAgICAgICBTVkdMYW5nU3BhY2UsCi0gICAg
ICAgICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKLSAgICAgICAgICAgICAg
ICBTVkdTdHlsYWJsZSwKLSAgICAgICAgICAgICAgICBTVkdMb2NhdGFibGUsCi0gICAgICAgICAg
ICAgICAgU1ZHRml0VG9WaWV3Qm94LAotICAgICAgICAgICAgICAgIFNWR1pvb21BbmRQYW4sCi0g
ICAgICAgICAgICAgICAgZXZlbnRzOjpEb2N1bWVudEV2ZW50IHsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggeDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRMZW5ndGggeTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGgg
d2lkdGg7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIGhlaWdodDsK
LSAgICAgICAgICAgICBhdHRyaWJ1dGUgY29yZTo6RE9NU3RyaW5nICAgICAgICAgY29udGVudFNj
cmlwdFR5cGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlv
biBvbiBzZXR0aW5nCi0gICAgICAgICAgICAgYXR0cmlidXRlIGNvcmU6OkRPTVN0cmluZyAgICAg
ICAgIGNvbnRlbnRTdHlsZVR5cGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2Vz
IERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1JlY3Qg
ICAgICAgICAgIHZpZXdwb3J0OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBwaXhlbFVu
aXRUb01pbGxpbWV0ZXJYOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBwaXhlbFVuaXRU
b01pbGxpbWV0ZXJZOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBzY3JlZW5QaXhlbFRv
TWlsbGltZXRlclg7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0IHNjcmVlblBpeGVsVG9N
aWxsaW1ldGVyWTsKLSAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiB1c2VDdXJyZW50Vmll
dzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNl
dHRpbmcKLS8vIFRPRE8gICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1ZpZXdTcGVjIGN1cnJlbnRW
aWV3OwotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCBjdXJyZW50U2NhbGU7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCi0gICAg
cmVhZG9ubHkgYXR0cmlidXRlIFNWR1BvaW50IGN1cnJlbnRUcmFuc2xhdGU7Ci0gICAgdW5zaWdu
ZWQgbG9uZyBzdXNwZW5kUmVkcmF3ICggaW4gdW5zaWduZWQgbG9uZyBtYXhfd2FpdF9taWxsaXNl
Y29uZHMgKTsKLSAgICB2b2lkICAgICAgICAgIHVuc3VzcGVuZFJlZHJhdyAoIGluIHVuc2lnbmVk
IGxvbmcgc3VzcGVuZF9oYW5kbGVfaWQgKQotICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERP
TUV4Y2VwdGlvbiApOwotICAgIHZvaWQgICAgICAgICAgdW5zdXNwZW5kUmVkcmF3QWxsICggICk7
Ci0gICAgdm9pZCAgICAgICAgICBmb3JjZVJlZHJhdyAoICApOwotICAgIHZvaWQgICAgICAgICAg
cGF1c2VBbmltYXRpb25zICggICk7Ci0gICAgdm9pZCAgICAgICAgICB1bnBhdXNlQW5pbWF0aW9u
cyAoICApOwotICAgIGJvb2xlYW4gICAgICAgYW5pbWF0aW9uc1BhdXNlZCAoICApOwotICAgIGZs
b2F0ICAgICAgICAgZ2V0Q3VycmVudFRpbWUgKCAgKTsKLSAgICB2b2lkICAgICAgICAgIHNldEN1
cnJlbnRUaW1lICggaW4gZmxvYXQgc2Vjb25kcyApOwotICAgIGNvcmU6Ok5vZGVMaXN0ICAgICAg
Z2V0SW50ZXJzZWN0aW9uTGlzdCAoIGluIFNWR1JlY3QgcmVjdCwgaW4gU1ZHRWxlbWVudCByZWZl
cmVuY2VFbGVtZW50ICk7Ci0gICAgY29yZTo6Tm9kZUxpc3QgICAgICBnZXRFbmNsb3N1cmVMaXN0
ICggaW4gU1ZHUmVjdCByZWN0LCBpbiBTVkdFbGVtZW50IHJlZmVyZW5jZUVsZW1lbnQgKTsKLSAg
ICBib29sZWFuICAgICAgIGNoZWNrSW50ZXJzZWN0aW9uICggaW4gU1ZHRWxlbWVudCBlbGVtZW50
LCBpbiBTVkdSZWN0IHJlY3QgKTsKLSAgICBib29sZWFuICAgICAgIGNoZWNrRW5jbG9zdXJlICgg
aW4gU1ZHRWxlbWVudCBlbGVtZW50LCBpbiBTVkdSZWN0IHJlY3QgKTsKLSAgICB2b2lkICAgICAg
ICAgIGRlc2VsZWN0QWxsICggICk7Ci0gICAgU1ZHTnVtYmVyICAgICAgICAgICAgICBjcmVhdGVT
VkdOdW1iZXIgKCAgKTsKLSAgICBTVkdMZW5ndGggICAgICAgICAgICAgIGNyZWF0ZVNWR0xlbmd0
aCAoICApOwotICAgIFNWR0FuZ2xlICAgICAgICAgICAgICAgY3JlYXRlU1ZHQW5nbGUgKCAgKTsK
LSAgICBTVkdQb2ludCAgICAgICAgICAgICAgIGNyZWF0ZVNWR1BvaW50ICggICk7Ci0gICAgU1ZH
TWF0cml4ICAgICAgICAgICAgICBjcmVhdGVTVkdNYXRyaXggKCAgKTsKLSAgICBTVkdSZWN0ICAg
ICAgICAgICAgICAgIGNyZWF0ZVNWR1JlY3QgKCAgKTsKLSAgICBTVkdUcmFuc2Zvcm0gICAgICAg
ICAgIGNyZWF0ZVNWR1RyYW5zZm9ybSAoICApOwotICAgIFNWR1RyYW5zZm9ybSAgICAgY3JlYXRl
U1ZHVHJhbnNmb3JtRnJvbU1hdHJpeCAoIGluIFNWR01hdHJpeCBtYXRyaXggKTsKLS8vIFRPRE8g
ICAgY29yZTo6RWxlbWVudCAgICAgICAgIGdldEVsZW1lbnRCeUlkICggaW4gY29yZTo6RE9NU3Ry
aW5nIGVsZW1lbnRJZCApOwotICB9OwotfTsKSW5kZXg6IGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcv
a2RvbWRlZnMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcva2RvbWRl
ZnMuaWRsCShyZXZpc2lvbiAxNDYxOSkKKysrIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcva2RvbWRl
ZnMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xICswLDAgQEAKLW1vZHVsZSBzdmcgW25zIEtTVkdd
OwpJbmRleDoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdMZW5ndGguaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHTGVuZ3RoLmlkbAkocmV2aXNpb24gMTQ2MTkp
CisrKyBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0xlbmd0aC5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTEsMjYgKzAsMCBAQAotbW9kdWxlIHN2ZwotewotICBpbnRlcmZhY2UgU1ZHTGVuZ3RoIHsg
Ci0gICAgLy8gTGVuZ3RoIFVuaXQgVHlwZXMKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
TEVOR1RIVFlQRV9VTktOT1dOICAgID0gMDsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
TEVOR1RIVFlQRV9OVU1CRVIgICAgID0gMTsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
TEVOR1RIVFlQRV9QRVJDRU5UQUdFID0gMjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
TEVOR1RIVFlQRV9FTVMgICAgICAgID0gMzsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
TEVOR1RIVFlQRV9FWFMgICAgICAgID0gNDsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
TEVOR1RIVFlQRV9QWCAgICAgICAgID0gNTsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
TEVOR1RIVFlQRV9DTSAgICAgICAgID0gNjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
TEVOR1RIVFlQRV9NTSAgICAgICAgID0gNzsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
TEVOR1RIVFlQRV9JTiAgICAgICAgID0gODsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
TEVOR1RIVFlQRV9QVCAgICAgICAgID0gOTsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
TEVOR1RIVFlQRV9QQyAgICAgICAgID0gMTA7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIHNob3J0IHVuaXRUeXBlOwotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCAgICAgICAg
ICB2YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9u
IG9uIHNldHRpbmcKLSAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgICAgICAgICAgdmFsdWVJ
blNwZWNpZmllZFVuaXRzOwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01F
eGNlcHRpb24gb24gc2V0dGluZwotICAgICAgICAgICAgIGF0dHJpYnV0ZSBjb3JlOjpET01TdHJp
bmcgICAgICB2YWx1ZUFzU3RyaW5nOwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNl
cyBET01FeGNlcHRpb24gb24gc2V0dGluZwotICAgIHZvaWQgbmV3VmFsdWVTcGVjaWZpZWRVbml0
cyAoIGluIHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBpbiBmbG9hdCB2YWx1ZUluU3BlY2lmaWVk
VW5pdHMgKTsKLSAgICB2b2lkIGNvbnZlcnRUb1NwZWNpZmllZFVuaXRzICggaW4gdW5zaWduZWQg
c2hvcnQgdW5pdFR5cGUgKTsKLSAgfTsKLX07CkluZGV4OiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3Zn
L1NWR0FuZ2xlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0Fu
Z2xlLmlkbAkocmV2aXNpb24gMTQ2MTkpCisrKyBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0Fu
Z2xlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSwyMCArMCwwIEBACi1tb2R1bGUgc3ZnCi17Ci0g
IGludGVyZmFjZSBTVkdBbmdsZSB7IAotICAgIC8vIEFuZ2xlIFVuaXQgVHlwZXMKLSAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX1VOS05PV04gICAgID0gMDsKLSAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEID0gMTsKLSAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX0RFRyAgICAgICAgID0gMjsKLSAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX1JBRCAgICAgICAgID0gMzsKLSAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX0dSQUQgICAgICAgID0gNDsKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgdW5pdFR5cGU7Ci0gICAgICAgICAgICAgYXR0
cmlidXRlIGZsb2F0ICAgICAgICAgIHZhbHVlOwotICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZwotICAgICAgICAgICAgIGF0dHJpYnV0ZSBm
bG9hdCAgICAgICAgICB2YWx1ZUluU3BlY2lmaWVkVW5pdHM7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCi0gICAgICAgICAgICAgYXR0
cmlidXRlIGNvcmU6OkRPTVN0cmluZyAgICAgIHZhbHVlQXNTdHJpbmc7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCi0gICAgdm9pZCBu
ZXdWYWx1ZVNwZWNpZmllZFVuaXRzICggaW4gdW5zaWduZWQgc2hvcnQgdW5pdFR5cGUsIGluIGZs
b2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cyApOwotICAgIHZvaWQgY29udmVydFRvU3BlY2lmaWVk
VW5pdHMgKCBpbiB1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSApOwotICB9OwotfTsKSW5kZXg6IGtz
dmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIv
YmluZGluZ3MvaWRsL3N2Zy9TVkdFbGVtZW50LmlkbAkocmV2aXNpb24gMTQ2MTkpCisrKyBrc3Zn
Mi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0VsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEy
ICswLDAgQEAKLW1vZHVsZSBzdmcKLXsKLSAgaW50ZXJmYWNlIFNWR0VsZW1lbnQgOiBjb3JlOjpF
bGVtZW50IHsKLS8vIE5PVEU6IHVzaW5nIGdldElkIGJlY2F1c2UgaWQgYWxyZWFkeSBpbiB1c2Ug
aW4gTm9kZQotICAgIGF0dHJpYnV0ZSBjb3JlOjpET01TdHJpbmcgZ2V0SWQ7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCi0gICAgYXR0
cmlidXRlIGNvcmU6OkRPTVN0cmluZyB4bWxiYXNlOwotICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZwotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTVkdTVkdFbGVtZW50IG93bmVyU1ZHRWxlbWVudDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUg
U1ZHRWxlbWVudCB2aWV3cG9ydEVsZW1lbnQ7Ci0gIH07Ci19OwpJbmRleDoga3N2ZzIvYmluZGlu
Z3MvaWRsL3N2Zy9TVkdSZWN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9iaW5kaW5ncy9pZGwv
c3ZnL1NWR1JlY3QuaWRsCShyZXZpc2lvbiAxNDYxOSkKKysrIGtzdmcyL2JpbmRpbmdzL2lkbC9z
dmcvU1ZHUmVjdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTMgKzAsMCBAQAotbW9kdWxlIHN2
ZwotewotICBpbnRlcmZhY2UgU1ZHUmVjdCB7IAotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9h
dCB4OwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24g
c2V0dGluZwotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB5OwotICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZwotICAgICAgICAgICAg
IGF0dHJpYnV0ZSBmbG9hdCB3aWR0aDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlz
ZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKLSAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQg
aGVpZ2h0OwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24g
b24gc2V0dGluZwotICB9OwotfTsKSW5kZXg6IGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQ29s
b3IuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQ29sb3IuaWRs
CShyZXZpc2lvbiAxNDYxOSkKKysrIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQ29sb3IuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE5ICswLDAgQEAKLW1vZHVsZSBzdmcKLXsKLSAgaW50ZXJm
YWNlIFNWR0NvbG9yIDogY3NzOjpDU1NWYWx1ZSB7IAotICAgIC8vIENvbG9yIFR5cGVzCi0gICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0NPTE9SVFlQRV9VTktOT1dOICAgICAgICAgICA9IDA7
Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUiAgICAgICAg
ICA9IDE7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUl9J
Q0NDT0xPUiA9IDI7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0NPTE9SVFlQRV9DVVJS
RU5UQ09MT1IgICAgICA9IDM7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0
IGNvbG9yVHlwZTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgY3NzOjpSR0JDb2xvciAgcmdiQ29s
b3I7Ci0gICAgLy9yZWFkb25seSBhdHRyaWJ1dGUgU1ZHSUNDQ29sb3IgICAgaWNjQ29sb3I7Ci0g
ICAgdm9pZCAgICAgICAgc2V0UkdCQ29sb3IgKCBpbiBjb3JlOjpET01TdHJpbmcgcmdiQ29sb3Ig
KQotICAgICAgICAgICAgICAgICAgICByYWlzZXMoIFNWR0V4Y2VwdGlvbiApOwotICAgIHZvaWQg
ICAgICAgIHNldFJHQkNvbG9ySUNDQ29sb3IgKCBpbiBjb3JlOjpET01TdHJpbmcgcmdiQ29sb3Is
IGluIGNvcmU6OkRPTVN0cmluZyBpY2NDb2xvciApCi0gICAgICAgICAgICAgICAgICAgIHJhaXNl
cyggU1ZHRXhjZXB0aW9uICk7Ci0gICAgdm9pZCAgICAgICAgc2V0Q29sb3IgKCBpbiB1bnNpZ25l
ZCBzaG9ydCBjb2xvclR5cGUsIGluIGNvcmU6OkRPTVN0cmluZyByZ2JDb2xvciwgaW4gY29yZTo6
RE9NU3RyaW5nIGljY0NvbG9yICkKLSAgICAgICAgICAgICAgICAgICAgcmFpc2VzKCBTVkdFeGNl
cHRpb24gKTsKLSAgfTsKLX07CkluZGV4OiBrc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR1JlY3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBrc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR1JlY3QuaAkocmV2aXNpb24gMCkK
KysrIGtzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHUmVjdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEpTU1ZHUmVjdF9ICisjZGVmaW5l
IEpTU1ZHUmVjdF9ICisKKyNpbmNsdWRlICJranNfYmluZGluZy5oIgorI2luY2x1ZGUgIkZsb2F0
UmVjdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTU1ZHUmVjdCA6IHB1Ymxp
YyBLSlM6OkRPTU9iamVjdCB7CitwdWJsaWM6CisgICAgSlNTVkdSZWN0KEtKUzo6RXhlY1N0YXRl
KiwgY29uc3QgRmxvYXRSZWN0JiByKSA6IG1fcmVjdChyKSB7IH0KKyAgICB+SlNTVkdSZWN0KCk7
CisgICAgCisgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChLSlM6OkV4ZWNTdGF0
ZSosIGNvbnN0IEtKUzo6SWRlbnRpZmllciYsIEtKUzo6UHJvcGVydHlTbG90Jik7CisgICAgSlNW
YWx1ZSogZ2V0VmFsdWVQcm9wZXJ0eShLSlM6OkV4ZWNTdGF0ZSosIGludCB0b2tlbikgY29uc3Q7
CisgICAgLy8gbm8gcHV0IC0gYWxsIHJlYWQtb25seQorICAgIAorICAgIHZpcnR1YWwgY29uc3Qg
S0pTOjpDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZpbmZvOyB9CisgICAg
c3RhdGljIGNvbnN0IEtKUzo6Q2xhc3NJbmZvIGluZm87CisgICAgZW51bSB7IFJlY3RYLCBSZWN0
WSwgUmVjdFdpZHRoLCBSZWN0SGVpZ2h0IH07CisgICAgCisgICAgRmxvYXRSZWN0IGltcGwoKSB7
IHJldHVybiBtX3JlY3Q7IH0KKyAgICAKK3ByaXZhdGU6CisgICAgRmxvYXRSZWN0IG1fcmVjdDsK
K307CisKK0tKUzo6SlNWYWx1ZSogZ2V0SlNTVkdSZWN0KEtKUzo6RXhlY1N0YXRlKiwgY29uc3Qg
RmxvYXRSZWN0Jik7CitGbG9hdFJlY3QgdG9GbG9hdFJlY3QoS0pTOjpKU1ZhbHVlKik7CisKK30K
KworI2VuZGlmCkluZGV4OiBrc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR051bWJlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0ga3N2ZzIvYmluZGluZ3MvanMvSlNTVkdOdW1iZXIuY3BwCShyZXZpc2lvbiAwKQor
Kysga3N2ZzIvYmluZGluZ3MvanMvSlNTVkdOdW1iZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSlNTVkdOdW1iZXIuaCIKKwordXNpbmcgbmFtZXNwYWNlIEtKUzsKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjb25zdCBDbGFzc0luZm8gSlNTVkdOdW1iZXI6OmluZm8gPSB7ICJTVkdO
dW1iZXIiLCAwLCAwLCAwIH07CisKK0pTU1ZHTnVtYmVyOjp+SlNTVkdOdW1iZXIoKQoreworfQor
Citib29sIEpTU1ZHTnVtYmVyOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAg
ICBpZiAocHJvcGVydHlOYW1lID09ICJ2YWx1ZSIpIHsKKyAgICAgICAgc2xvdC5zZXRDdXN0b20o
dGhpcywgZ2V0VmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJu
IERPTU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
Cit9CisKK0pTVmFsdWUqIEpTU1ZHTnVtYmVyOjpnZXRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiBvcmlnaW5hbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBj
b25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgSlNTVkdOdW1iZXIqIHRoaXNPYmogPSBz
dGF0aWNfY2FzdDxKU1NWR051bWJlcio+KHNsb3Quc2xvdEJhc2UoKSk7CisgICAgaWYgKHByb3Bl
cnR5TmFtZSA9PSAidmFsdWUiKQorICAgICAgICByZXR1cm4ganNOdW1iZXIodGhpc09iai0+bV92
YWx1ZSk7CisgICAgcmV0dXJuIDA7Cit9CisKK0pTVmFsdWUqIGdldEpTU1ZHTnVtYmVyKEV4ZWNT
dGF0ZSogZXhlYywgZmxvYXQgdikKK3sKKyAgICByZXR1cm4gbmV3IEpTU1ZHTnVtYmVyKGV4ZWMs
IHYpOworfQorCit9CkluZGV4OiBrc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR1BvaW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBrc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR1BvaW50LmNwcAkocmV2aXNpb24gMCkK
KysrIGtzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHUG9pbnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSlNTVkdQb2ludC5oIgorCisjaW5jbHVkZSAiSlNTVkdQb2ludFRhYmxlLmNwcCIKKwor
dXNpbmcgbmFtZXNwYWNlIEtKUzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25zdCBDbGFz
c0luZm8gSlNTVkdQb2ludDo6aW5mbyA9IHsgIlNWR1BvaW50IiwgMCwgJkpTU1ZHUG9pbnRUYWJs
ZSwgMCB9OworLyoKK0BiZWdpbiBKU1NWR1BvaW50VGFibGUgNAorICB4ICAgICAgICAgV2ViQ29y
ZTo6SlNTVkdQb2ludDo6UG9pbnRYICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKKyAgeSAgICAg
ICAgIFdlYkNvcmU6OkpTU1ZHUG9pbnQ6OlBvaW50WSAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5
CitAZW5kCisqLworCitKU1NWR1BvaW50Ojp+SlNTVkdQb2ludCgpCit7Cit9CisKK2Jvb2wgSlNT
VkdQb2ludDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgcmV0dXJuIGdl
dFN0YXRpY1ZhbHVlU2xvdDxKU1NWR1BvaW50LCBET01PYmplY3Q+KGV4ZWMsICAmSlNTVkdQb2lu
dFRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitKU1ZhbHVlKiBKU1NWR1Bv
aW50OjpnZXRWYWx1ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdAor
eworICAgIHN3aXRjaCAodG9rZW4pIHsKKyAgICBjYXNlIFBvaW50WDoKKyAgICAgICAgcmV0dXJu
IGpzTnVtYmVyKG1fcG9pbnQueCgpKTsKKyAgICBjYXNlIFBvaW50WToKKyAgICAgICAgcmV0dXJu
IGpzTnVtYmVyKG1fcG9pbnQueSgpKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gMDsK
KyAgICB9Cit9CisKK0pTVmFsdWUqIGdldEpTU1ZHUG9pbnQoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBGbG9hdFBvaW50JiBwKQoreworICAgIHJldHVybiBuZXcgSlNTVkdQb2ludChleGVjLCBwKTsK
K30KKworRmxvYXRQb2ludCB0b0Zsb2F0UG9pbnQoSlNWYWx1ZSogdmFsKQoreworICAgIHJldHVy
biB2YWwtPmlzT2JqZWN0KCZKU1NWR1BvaW50OjppbmZvKSA/IHN0YXRpY19jYXN0PEpTU1ZHUG9p
bnQqPih2YWwpLT5pbXBsKCkgOiBGbG9hdFBvaW50KCk7Cit9CisKK30KSW5kZXg6IGtzdmcyL2Jp
bmRpbmdzL2pzL0pTU1ZHTnVtYmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvYmluZGluZ3MvanMv
SlNTVkdOdW1iZXIuaAkocmV2aXNpb24gMCkKKysrIGtzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHTnVt
YmVyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgSlNTVkdOdW1iZXJfSAorI2RlZmluZSBKU1NWR051bWJlcl9ICisKKyNpbmNsdWRl
ICJranNfYmluZGluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTU1ZHTnVt
YmVyIDogcHVibGljIEtKUzo6RE9NT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBKU1NWR051bWJlcihL
SlM6OkV4ZWNTdGF0ZSosIGZsb2F0IHYpIDogbV92YWx1ZSh2KSB7IH0KKyAgICB+SlNTVkdOdW1i
ZXIoKTsKKyAgICAKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEtKUzo6RXhl
Y1N0YXRlKiwgY29uc3QgS0pTOjpJZGVudGlmaWVyJiwgS0pTOjpQcm9wZXJ0eVNsb3QmKTsKKyAg
ICBzdGF0aWMgSlNWYWx1ZSogZ2V0VmFsdWUoS0pTOjpFeGVjU3RhdGUqLCBLSlM6OkpTT2JqZWN0
KiBvcmlnaW5hbE9iamVjdCwgY29uc3QgS0pTOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNv
bnN0IEtKUzo6UHJvcGVydHlTbG90JiBzbG90KTsKKyAgICAvLyBubyBwdXQgLSBhbGwgcmVhZC1v
bmx5CisgICAgCisgICAgdmlydHVhbCBjb25zdCBLSlM6OkNsYXNzSW5mbyogY2xhc3NJbmZvKCkg
Y29uc3QgeyByZXR1cm4gJmluZm87IH0KKyAgICBzdGF0aWMgY29uc3QgS0pTOjpDbGFzc0luZm8g
aW5mbzsKK3ByaXZhdGU6CisgICAgZmxvYXQgbV92YWx1ZTsKK307CisKK0tKUzo6SlNWYWx1ZSog
Z2V0SlNTVkdOdW1iZXIoS0pTOjpFeGVjU3RhdGUqLCBmbG9hdCk7CisKK30KKworI2VuZGlmCklu
ZGV4OiBrc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR1JlY3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcy
L2JpbmRpbmdzL2pzL0pTU1ZHUmVjdC5jcHAJKHJldmlzaW9uIDApCisrKyBrc3ZnMi9iaW5kaW5n
cy9qcy9KU1NWR1JlY3QuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDgwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNTVkdSZWN0Lmgi
CisKKyNpbmNsdWRlICJKU1NWR1JlY3RUYWJsZS5jcHAiCisKK3VzaW5nIG5hbWVzcGFjZSBLSlM7
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgQ2xhc3NJbmZvIEpTU1ZHUmVjdDo6aW5m
byA9IHsgIlNWR1JlY3QiLCAwLCAmSlNTVkdSZWN0VGFibGUsIDAgfTsKKy8qCitAYmVnaW4gSlNT
VkdSZWN0VGFibGUgNAorICB4ICAgICAgICAgV2ViQ29yZTo6SlNTVkdSZWN0OjpSZWN0WCAgICAg
ICAgICAgRG9udERlbGV0ZXxSZWFkT25seQorICB5ICAgICAgICAgV2ViQ29yZTo6SlNTVkdSZWN0
OjpSZWN0WSAgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQorICB3aWR0aCAgICAgV2ViQ29y
ZTo6SlNTVkdSZWN0OjpSZWN0V2lkdGggICAgICAgRG9udERlbGV0ZXxSZWFkT25seQorICBoZWln
aHQgICAgV2ViQ29yZTo6SlNTVkdSZWN0OjpSZWN0SGVpZ2h0ICAgICAgRG9udERlbGV0ZXxSZWFk
T25seQorQGVuZAorKi8KKworSlNTVkdSZWN0Ojp+SlNTVkdSZWN0KCkKK3sKK30KKworYm9vbCBK
U1NWR1JlY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIHJldHVybiBn
ZXRTdGF0aWNWYWx1ZVNsb3Q8SlNTVkdSZWN0LCBET01PYmplY3Q+KGV4ZWMsICAmSlNTVkdSZWN0
VGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK0pTVmFsdWUqIEpTU1ZHUmVj
dDo6Z2V0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29uc3QKK3sK
KyAgICBzd2l0Y2ggKHRva2VuKSB7CisgICAgY2FzZSBSZWN0WDoKKyAgICAgICAgcmV0dXJuIGpz
TnVtYmVyKG1fcmVjdC54KCkpOworICAgIGNhc2UgUmVjdFk6CisgICAgICAgIHJldHVybiBqc051
bWJlcihtX3JlY3QueSgpKTsKKyAgICBjYXNlIFJlY3RXaWR0aDoKKyAgICAgICAgcmV0dXJuIGpz
TnVtYmVyKG1fcmVjdC53aWR0aCgpKTsKKyAgICBjYXNlIFJlY3RIZWlnaHQ6CisgICAgICAgIHJl
dHVybiBqc051bWJlcihtX3JlY3QuaGVpZ2h0KCkpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJl
dHVybiAwOworICAgIH0KK30KKworSlNWYWx1ZSogZ2V0SlNTVkdSZWN0KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgRmxvYXRSZWN0JiByKQoreworICAgIHJldHVybiBuZXcgSlNTVkdSZWN0KGV4ZWMs
IHIpOworfQorCitGbG9hdFJlY3QgdG9GbG9hdFJlY3QoSlNWYWx1ZSogdmFsKQoreworICAgIHJl
dHVybiB2YWwtPmlzT2JqZWN0KCZKU1NWR1JlY3Q6OmluZm8pID8gc3RhdGljX2Nhc3Q8SlNTVkdS
ZWN0Kj4odmFsKS0+aW1wbCgpIDogRmxvYXRSZWN0KCk7Cit9CisKK30KSW5kZXg6IGtzdmcyL2Jp
bmRpbmdzL2pzL0pTU1ZHUG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9iaW5kaW5ncy9qcy9K
U1NWR1BvaW50LmgJKHJldmlzaW9uIDApCisrKyBrc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR1BvaW50
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgSlNTVkdQb2ludF9ICisjZGVmaW5lIEpTU1ZHUG9pbnRfSAorCisjaW5jbHVkZSAia2pz
X2JpbmRpbmcuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgSlNTVkdQb2ludCA6IHB1YmxpYyBLSlM6OkRPTU9iamVjdCB7CitwdWJsaWM6
CisgICAgSlNTVkdQb2ludChLSlM6OkV4ZWNTdGF0ZSosIGNvbnN0IEZsb2F0UG9pbnQmIHApIDog
bV9wb2ludChwKSB7IH0KKyAgICB+SlNTVkdQb2ludCgpOworICAgIAorICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoS0pTOjpFeGVjU3RhdGUqLCBjb25zdCBLSlM6OklkZW50aWZp
ZXImLCBLSlM6OlByb3BlcnR5U2xvdCYpOworICAgIEpTVmFsdWUqIGdldFZhbHVlUHJvcGVydHko
S0pTOjpFeGVjU3RhdGUqLCBpbnQgdG9rZW4pIGNvbnN0OworICAgIC8vIG5vIHB1dCAtIGFsbCBy
ZWFkLW9ubHkKKyAgICAKKyAgICB2aXJ0dWFsIGNvbnN0IEtKUzo6Q2xhc3NJbmZvKiBjbGFzc0lu
Zm8oKSBjb25zdCB7IHJldHVybiAmaW5mbzsgfQorICAgIHN0YXRpYyBjb25zdCBLSlM6OkNsYXNz
SW5mbyBpbmZvOworICAgIGVudW0geyBQb2ludFgsIFBvaW50WSB9OworICAgIAorICAgIEZsb2F0
UG9pbnQgaW1wbCgpIHsgcmV0dXJuIG1fcG9pbnQ7IH0KKyAgICAKK3ByaXZhdGU6CisgICAgRmxv
YXRQb2ludCBtX3BvaW50OworfTsKKworS0pTOjpKU1ZhbHVlKiBnZXRKU1NWR1BvaW50KEtKUzo6
RXhlY1N0YXRlKiwgY29uc3QgRmxvYXRQb2ludCYpOworRmxvYXRQb2ludCB0b0Zsb2F0UG9pbnQo
S0pTOjpKU1ZhbHVlKik7CisgIAorfQorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8610</attachid>
            <date>2006-05-30 14:58:26 -0700</date>
            <delta_ts>2006-05-31 08:14:21 -0700</delta_ts>
            <desc>Much better patch, ready for review.</desc>
            <filename>final.patch</filename>
            <type>text/plain</type>
            <size>338584</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IHBsYXRmb3JtL0NvbG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vQ29sb3IuaAko
cmV2aXNpb24gMTQ2MjIpCisrKyBwbGF0Zm9ybS9Db2xvci5oCSh3b3JraW5nIGNvcHkpCkBAIC00
Myw3ICs0Myw3IEBACiBjbGFzcyBTdHJpbmc7CiBjbGFzcyBDb2xvcjsKIAotdHlwZWRlZiB1bnNp
Z25lZCBpbnQgUkdCQTMyOyAgICAgICAgICAgICAgICAgICAgICAvLyBSR0JBIHF1YWRydXBsZXQK
K3R5cGVkZWYgdW5zaWduZWQgUkdCQTMyOyAgICAgICAgLy8gUkdCQSBxdWFkcnVwbGV0CiAKIFJH
QkEzMiBtYWtlUkdCKGludCByLCBpbnQgZywgaW50IGIpOwogUkdCQTMyIG1ha2VSR0JBKGludCBy
LCBpbnQgZywgaW50IGIsIGludCBhKTsKSW5kZXg6IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCShyZXZpc2lvbiAxNDYyMikKKysrIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYsNyArMTE2LDcgQEAKICAgICBteSAkZGF0YU5vZGUg
PSBzaGlmdDsKICAgICByZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVn
YWN5UGFyZW50In0gaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFy
ZW50In07CiAgICAgcmV0dXJuICJLSlM6OkRPTU9iamVjdCIgaWYgQHskZGF0YU5vZGUtPnBhcmVu
dHN9IGVxIDA7Ci0gICAgcmV0dXJuICJKUyIgLiAkZGF0YU5vZGUtPnBhcmVudHMoMCk7CisgICAg
cmV0dXJuICJKUyIgLiAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJl
bnRzKDApKTsKIH0KIAogc3ViIEdldExlZ2FjeUhlYWRlckluY2x1ZGVzCkBAIC0xNDUsNyArMTQ1
LDcgQEAKIAogc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogewotICAgIG15ICR0eXBlID0gc2hpZnQ7
CisgICAgbXkgJHR5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOwogICAg
IAogICAgICMgV2hlbiB3ZSdyZSBmaW5pc2hlZCB3aXRoIHRoZSBvbmUtZmlsZS1wZXItY2xhc3Mg
CiAgICAgIyByZW9yZ2FuaXphdGlvbiwgd2UgZG9uJ3QgbmVlZCB0aGVzZSBzcGVjaWFsIGNhc2Vz
LgpAQCAtMTg4LDkgKzE4OCw5IEBACiAgICAgCiAgICAgIyBGSVhNRTogRm9yIFNWRyB3ZSBuZWVk
IHRvIHN1cHBvcnQgbW9yZSB0aGFuIG9uZSBwYXJlbnQKICAgICAjIEJ1dCBubyBtb3JlIHRoYW4g
b25lIHBhcmVudCBjYW4gYmUgImNvbmNyZXRlIgotICAgIGlmIChAeyRkYXRhTm9kZS0+cGFyZW50
c30gPiAxKSB7Ci0gICAgICAgIGRpZSAiQSBjbGFzcyBjYW4ndCBoYXZlIG1vcmUgdGhhbiBvbmUg
cGFyZW50IjsKLSAgICB9CisgICAgI2lmIChAeyRkYXRhTm9kZS0+cGFyZW50c30gPiAxKSB7Cisg
ICAgIyAgICBkaWUgIkEgY2xhc3MgY2FuJ3QgaGF2ZSBtb3JlIHRoYW4gb25lIHBhcmVudCI7Cisg
ICAgI30KICAgICAKICAgICBteSAkaGFzTGVnYWN5UGFyZW50ID0gJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In07CiAgICAgbXkgJGhhc1JlYWxQYXJlbnQgPSBA
eyRkYXRhTm9kZS0+cGFyZW50c30gPiAwOwpAQCAtMzU4LDYgKzM1OCw4IEBACiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGltcGxDbGFzc05hbWUqIGltcGwoKSBjb25zdCB7IHJl
dHVybiBtX2ltcGwuZ2V0KCk7IH1cbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
cHJpdmF0ZTpcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIFJlZlB0cjwk
aW1wbENsYXNzTmFtZT4gbV9pbXBsO1xuIik7CisgICAgfSBlbHNpZiAoJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIifSkgeworICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXBsKCkgY29uc3Q7XG4i
KTsKICAgICB9CiAgIAogICAgICMgSW5kZXggZ2V0dGVyCkBAIC0zNzYsOCArMzc4LDExIEBACiAg
ICAgCiAgICAgaWYgKCEkaGFzUGFyZW50KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICJLSlM6OkpTVmFsdWUqIHRvSlMoS0pTOjpFeGVjU3RhdGUqLCAkaW1wbENsYXNzTmFtZSopO1xu
Iik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIkaW1wbENsYXNzTmFtZSogdG8ke2lu
dGVyZmFjZU5hbWV9KEtKUzo6SlNWYWx1ZSopO1xuXG4iKTsKICAgICB9CisgICAgaWYgKCEkaGFz
UGFyZW50IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlTmF0aXZl
Q29udmVydGVyIn0pIHsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiRpbXBsQ2xhc3NO
YW1lKiB0byR7aW50ZXJmYWNlTmFtZX0oS0pTOjpKU1ZhbHVlKik7XG4iKTsKKyAgICB9CisgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIlxuIik7CiAgICAgCiAgICAgIyBBZGQgcHJvdG90eXBlIGRl
Y2xhcmF0aW9uIC0tIGNvZGUgYWRvcHRlZCBmcm9tIHRoZSBLSlNfREVGSU5FX1BST1RPVFlQRSBh
bmQgS0pTX0RFRklORV9QUk9UT1RZUEVfV0lUSF9QUk9UT1RZUEUgbWFjcm9zCiAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgImNsYXNzICR7Y2xhc3NOYW1lfVByb3RvIDogcHVibGljIEtKUzo6SlNP
YmplY3Qge1xuIik7CkBAIC03MDEsNyArNzA2LDcgQEAKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgY2FzZSAiIC4gdWNmaXJzdCgkbmFtZSkgLiAiQXR0ck51bTpcbiIpOwogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuICRuYW1lKGV4ZWMpO1xuIik7CiAg
ICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgPX4gL0NvbnN0cnVjdG9y
JC8pIHsKLSAgICAgICAgbXkgJGNvbnN0cnVjdG9yVHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+dHlwZTsKKyAgICAgICAgbXkgJGNvbnN0cnVjdG9yVHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5T
dHJpcE1vZHVsZSgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUpOwogICAgICAgICAkY29uc3Ry
dWN0b3JUeXBlID1+IHMvQ29uc3RydWN0b3IkLy87CiAKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgY2FzZSAiIC4gJG5hbWUgLiAiQ29uc3RydWN0b3JBdHRyTnVtOlxuIik7CkBAIC04
NjQsNyArODY5LDMwIEBACiAgIH0KICAgICAKICAgaWYgKCEkaGFzUGFyZW50KSB7Ci0gICAgcHVz
aChAaW1wbENvbnRlbnQsIHRvRnVuY3Rpb25zRm9yKCRjbGFzc05hbWUsICRpbXBsQ2xhc3NOYW1l
LCAkaW50ZXJmYWNlTmFtZSkpOworICAgIG15ICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworS0pT
OjpKU1ZhbHVlKiB0b0pTKEtKUzo6RXhlY1N0YXRlKiBleGVjLCAkaW1wbENsYXNzTmFtZSogb2Jq
KQoreworICAgIHJldHVybiBLSlM6OmNhY2hlRE9NT2JqZWN0PCRpbXBsQ2xhc3NOYW1lLCAkY2xh
c3NOYW1lPihleGVjLCBvYmopOworfQorRU9GCisgICAgcHVzaChAaW1wbENvbnRlbnQsICRpbXBs
Q29udGVudCk7CisgICB9CisKKyAgIGlmICghJGhhc1BhcmVudCB8fCAkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciJ9KSB7CisgICAgbXkgJGlt
cGxDb250ZW50ID0gPDwgIkVPRiI7CiskaW1wbENsYXNzTmFtZSogdG8ke2ludGVyZmFjZU5hbWV9
KEtKUzo6SlNWYWx1ZSogdmFsKQoreworICAgIHJldHVybiB2YWwtPmlzT2JqZWN0KCYke2NsYXNz
TmFtZX06OmluZm8pID8gc3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+KHZhbCktPmltcGwoKSA6IDA7
Cit9CitFT0YKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgJGltcGxDb250ZW50KTsKKyAgfQorICAK
KyAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlTmF0aXZlQ29u
dmVydGVyIn0gJiYgJGhhc1BhcmVudCkgeworICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4kaW1w
bENsYXNzTmFtZSogJHtjbGFzc05hbWV9OjppbXBsKCkgY29uc3RcbiIpOworICAgIHB1c2goQGlt
cGxDb250ZW50LCAie1xuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIHN0
YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4oJHtwYXJlbnRDbGFzc05hbWV9OjppbXBsKCkpO1xu
Iik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG4iKTsKICAgfQogCiAgIHB1c2goQGltcGxD
b250ZW50LCAiXG59XG4iKTsKQEAgLTg3Niw3ICs5MDQsNyBAQAogewogICBteSAkc2lnbmF0dXJl
ID0gc2hpZnQ7CiAgIAotICBteSAkdHlwZSA9ICRzaWduYXR1cmUtPnR5cGU7CisgICAgbXkgJHR5
cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJHNpZ25hdHVyZS0+dHlwZSk7CiAgIAog
ICBpZiAoJHR5cGUgZXEgImJvb2xlYW4iKSB7CiAgICAgcmV0dXJuICJib29sIjsKQEAgLTg5MCw0
MCArOTE4LDMyIEBACiAgICAgfSAKICAgfSBlbHNpZiAoJHR5cGUgZXEgImxvbmciKSB7CiAgICAg
cmV0dXJuICJpbnQiOwotICB9IGVsc2lmICgkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiKSB7Ci0g
ICAgcmV0dXJuICJ1bnNpZ25lZCBzaG9ydCI7Ci0gIH0gZWxzaWYgKCR0eXBlIGVxICJmbG9hdCIp
IHsKLSAgICByZXR1cm4gImZsb2F0IjsKKyAgICB9IGVsc2lmICgkdHlwZSBlcSAidW5zaWduZWQg
c2hvcnQiIG9yICR0eXBlIGVxICJmbG9hdCIpIHsKKyAgICAgICAgcmV0dXJuICR0eXBlOwogICB9
IGVsc2lmICgkdHlwZSBlcSAiQXRvbWljU3RyaW5nIikgewogICAgIHJldHVybiAiQXRvbWljU3Ry
aW5nIjsKICAgfSBlbHNpZiAoJHR5cGUgZXEgIkRPTVN0cmluZyIpIHsKICAgICByZXR1cm4gIlN0
cmluZyI7Ci0gIH0gZWxzaWYgKCR0eXBlIGVxICJOb2RlIiBvcgotICAgICAgICAgICAkdHlwZSBl
cSAiRWxlbWVudCIgb3IKLSAgICAgICAgICAgJHR5cGUgZXEgIkF0dHIiIG9yCi0gICAgICAgICAg
ICR0eXBlIGVxICJEb2N1bWVudFR5cGUiIG9yCi0gICAgICAgICAgICR0eXBlIGVxICJSYW5nZSIg
b3IKLSAgICAgICAgICAgJHR5cGUgZXEgIlhQYXRoTlNSZXNvbHZlciIgb3IKLSAgICAgICAgICAg
JHR5cGUgZXEgIlhQYXRoUmVzdWx0IikgewotICAgIHJldHVybiAiJHt0eXBlfSoiOwogICB9IGVs
c2lmICgkdHlwZSBlcSAiTm9kZUZpbHRlciIpIHsKICAgICAgIHJldHVybiAiUGFzc1JlZlB0cjwk
e3R5cGV9PiI7CiAgIH0gZWxzaWYgKCR0eXBlIGVxICJDb21wYXJlSG93IikgewogICAgIHJldHVy
biAiUmFuZ2U6OkNvbXBhcmVIb3ciOwogICB9IGVsc2lmICgkdHlwZSBlcSAiRXZlbnRUYXJnZXQi
KSB7CiAgICAgcmV0dXJuICJFdmVudFRhcmdldE5vZGUqIjsKLSAgfSBlbHNpZiAoJHR5cGUgZXEg
IkRPTVdpbmRvdyIpIHsKLSAgICByZXR1cm4gIkRPTVdpbmRvdyoiOwotICB9IGVsc2UgewotICAg
IGRpZSAiRG9uJ3Qga25vdyB0aGUgbmF0aXZlIHR5cGUgb2YgJHR5cGUiOworICAgIH0gZWxzaWYg
KCR0eXBlIGVxICJTVkdSZWN0IikgeworICAgICAgICByZXR1cm4gIkZsb2F0UmVjdCI7CisgICAg
fSBlbHNpZiAoJHR5cGUgZXEgIlNWR1BvaW50IikgeworICAgICAgICByZXR1cm4gIkZsb2F0UG9p
bnQiOwogICB9CisgICAgIyBEZWZhdWx0LCBhc3N1bWUgbmF0aXZlIHR5cGUgaXMgYSBwb2ludGVy
IHdpdGggc2FtZSB0eXBlIG5hbWUgYXMgaWRsIHR5cGUKKyAgICByZXR1cm4gIiR7dHlwZX0qIjsK
IH0KIAogc3ViIFR5cGVDYW5GYWlsQ29udmVyc2lvbgogewogICBteSAkc2lnbmF0dXJlID0gc2hp
ZnQ7CiAgIAotICBteSAkdHlwZSA9ICRzaWduYXR1cmUtPnR5cGU7CisgIG15ICR0eXBlID0gJGNv
ZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRzaWduYXR1cmUtPnR5cGUpOwogCiAgIGlmICgkdHlw
ZSBlcSAiYm9vbGVhbiIpIHsKICAgICByZXR1cm4gMDsKQEAgLTk0OSw3ICs5NjksMTAgQEAKICAg
ICAgICAgICAgJHR5cGUgZXEgIkRPTVdpbmRvdyIgb3IKICAgICAgICAgICAgJHR5cGUgZXEgIlhQ
YXRoRXZhbHVhdG9yIiBvcgogICAgICAgICAgICAkdHlwZSBlcSAiWFBhdGhOU1Jlc29sdmVyIiBv
cgotICAgICAgICAgICAkdHlwZSBlcSAiWFBhdGhSZXN1bHQiKSB7CisgICAgICAgICAgICR0eXBl
IGVxICJYUGF0aFJlc3VsdCIgb3IKKyAgICAgICAgICAgJHR5cGUgZXEgIlNWR01hdHJpeCIgb3IK
KyAgICAgICAgICAgJHR5cGUgZXEgIlNWR1JlY3QiIG9yCisgICAgICAgICAgICR0eXBlIGVxICJT
VkdFbGVtZW50IikgewogICAgICAgcmV0dXJuIDA7CiAgIH0gZWxzZSB7CiAgICAgZGllICJEb24n
dCBrbm93IHdoZXRoZXIgYSBKUyB2YWx1ZSBjYW4gZmFpbCBjb252ZXJzaW9uIHRvIHR5cGUgJHR5
cGUuIgpAQCAtOTYzLDcgKzk4Niw3IEBACiAgIG15ICRva1BhcmFtID0gc2hpZnQ7CiAgIG15ICRt
YXliZU9rUGFyYW0gPSAkb2tQYXJhbSA/ICIsICR7b2tQYXJhbX0iIDogIiI7CiAgIAotICBteSAk
dHlwZSA9ICRzaWduYXR1cmUtPnR5cGU7CisgICAgbXkgJHR5cGUgPSAkY29kZUdlbmVyYXRvci0+
U3RyaXBNb2R1bGUoJHNpZ25hdHVyZS0+dHlwZSk7CiAKICAgaWYgKCR0eXBlIGVxICJib29sZWFu
IikgewogICAgIG15ICRjb252ID0gJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNv
bnZlcnRVbmRlZmluZWRUb1RydWUifTsKQEAgLTk3Miw5ICs5OTUsOSBAQAogICAgIH0gZWxzZSB7
CiAgICAgcmV0dXJuICIkdmFsdWUtPnRvQm9vbGVhbihleGVjKSI7CiAgICAgfQotICB9IGVsc2lm
ICgkdHlwZSBlcSAidW5zaWduZWQgbG9uZyIgb3IgJHR5cGUgZXEgImxvbmciKSB7Ci0gICAgcmV0
dXJuICIkdmFsdWUtPnRvSW50MzIoZXhlYykiOwotICB9IGVsc2lmICgkdHlwZSBlcSAidW5zaWdu
ZWQgc2hvcnQiKSB7CisgICAgfSBlbHNpZiAoJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciIG9yCisg
ICAgICAgICAgICAgJHR5cGUgZXEgImxvbmciIG9yCisgICAgICAgICAgICAgJHR5cGUgZXEgInVu
c2lnbmVkIHNob3J0IikgewogICAgIHJldHVybiAiJHZhbHVlLT50b0ludDMyKGV4ZWMpIjsKICAg
fSBlbHNpZiAoJHR5cGUgZXEgIkNvbXBhcmVIb3ciKSB7CiAgICAgcmV0dXJuICJzdGF0aWNfY2Fz
dDxSYW5nZTo6Q29tcGFyZUhvdz4oJHZhbHVlLT50b0ludDMyKGV4ZWMpKSI7CkBAIC0xMDA5LDE0
ICsxMDMyLDE2IEBACiAgIH0gZWxzaWYgKCR0eXBlIGVxICJET01XaW5kb3ciKSB7CiAgICAgJGlt
cGxJbmNsdWRlc3sia2pzX3dpbmRvdy5oIn0gPSAxOwogICAgIHJldHVybiAidG9ET01XaW5kb3co
JHZhbHVlKSI7IAotICB9IGVsc2lmICgkdHlwZSBlcSAiUmFuZ2UiIG9yCi0gICAgICAgICAgICR0
eXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIiIG9yCi0gICAgICAgICAgICR0eXBlIGVxICJYUGF0aFJl
c3VsdCIpIHsKKyAgICB9IGVsc2lmICgkdHlwZSBlcSAiU1ZHUmVjdCIpIHsKKyAgICAgICAgJGlt
cGxJbmNsdWRlc3siSlNTVkdSZWN0LmgifSA9IDE7CisgICAgICAgIHJldHVybiAidG9GbG9hdFJl
Y3QoJHZhbHVlKSI7CisgICAgfSBlbHNpZiAoJHR5cGUgZXEgIlNWR1BvaW50IikgeworICAgICAg
ICAkaW1wbEluY2x1ZGVzeyJKU1NWR1BvaW50LmgifSA9IDE7CisgICAgICAgIHJldHVybiAidG9G
bG9hdFBvaW50KCR2YWx1ZSkiOworICAgIH0KKyAgICAjIERlZmF1bHQsIGFzc3VtZSBhdXRvZ2Vu
ZXJhdGVkIHR5cGUgY29udmVyc2lvbiByb3V0aW5lcwogICAgICRpbXBsSW5jbHVkZXN7IkpTJHR5
cGUuaCJ9ID0gMTsKICAgICByZXR1cm4gInRvJHR5cGUoJHZhbHVlKSI7Ci0gIH0gZWxzZSB7Ci0g
ICAgZGllICJEb24ndCBrbm93IGhvdyB0byBjb252ZXJ0IGEgSlMgdmFsdWUgb2YgdHlwZSAkdHlw
ZS4iCi0gIH0KIH0KIAogc3ViIE5hdGl2ZVRvSlNWYWx1ZQpAQCAtMTAyNCw3ICsxMDQ5LDcgQEAK
ICAgICBteSAkc2lnbmF0dXJlID0gc2hpZnQ7CiAgICAgbXkgJHZhbHVlID0gc2hpZnQ7CiAgICAg
Ci0gICAgbXkgJHR5cGUgPSAkc2lnbmF0dXJlLT50eXBlOworICAgIG15ICR0eXBlID0gJGNvZGVH
ZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRzaWduYXR1cmUtPnR5cGUpOwogICAgIAogICAgIGlmICgk
dHlwZSBlcSAiYm9vbGVhbiIpIHsKICAgICAgICAgcmV0dXJuICJqc0Jvb2xlYW4oJHZhbHVlKSI7
CkBAIC0xMTIzLDEyICsxMTQ4LDE3IEBACiAgICAgICAgICRpbXBsSW5jbHVkZXN7Imtqc19odG1s
LmgifSA9IDE7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkhUTUxDb2xsZWN0aW9uLmgifSA9IDE7
CiAgICAgICAgIHJldHVybiAiZ2V0SFRNTENvbGxlY3Rpb24oZXhlYywgJHZhbHVlLmdldCgpKSI7
Ci0gICAgfSBlbHNlIHsKKyAgICB9IGVsc2lmICgkdHlwZSBlcSAiU1ZHUmVjdCIgb3IKKyAgICAg
ICAgICAgICAkdHlwZSBlcSAiU1ZHUG9pbnQiIG9yCisgICAgICAgICAgICAgJHR5cGUgZXEgIlNW
R051bWJlciIpIHsKICAgICAgICAgJGltcGxJbmNsdWRlc3siSlMkdHlwZS5oIn0gPSAxOwotICAg
ICAgICByZXR1cm4gInRvSlMoZXhlYywgJHZhbHVlKSI7CisgICAgICAgIHJldHVybiAiZ2V0SlMk
dHlwZShleGVjLCAkdmFsdWUpIjsKICAgICB9CiAgICAgCi0gICAgZGllICgiJHZhbHVlICIgLiAk
c2lnbmF0dXJlLT50eXBlKTsKKyAgICAjIERlZmF1bHQsIGluY2x1ZGUgaGVhZGVyIHdpdGggc2Ft
ZSBuYW1lLgorICAgICRpbXBsSW5jbHVkZXN7IkpTJHR5cGUuaCJ9ID0gMTsKKyAgICAkaW1wbElu
Y2x1ZGVzeyIkdHlwZS5oIn0gPSAxOworICAgIHJldHVybiAidG9KUyhleGVjLCAkdmFsdWUpIjsK
IH0KIAogIyBJbnRlcm5hbCBIZWxwZXIKQEAgLTEzOTgsMjQgKzE0MjgsNCBAQAogICAgIHJldHVy
biAkaW1wbENvbnRlbnQ7CiB9CiAKLXN1YiB0b0Z1bmN0aW9uc0ZvcgotewotICAgIG15ICRjbGFz
c05hbWUgPSBzaGlmdDsKLSAgICBteSAkaW1wbENsYXNzTmFtZSA9IHNoaWZ0OwotICAgIG15ICRp
bnRlcmZhY2VOYW1lID0gc2hpZnQ7Ci0KLW15ICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOwotS0pT
OjpKU1ZhbHVlKiB0b0pTKEtKUzo6RXhlY1N0YXRlKiBleGVjLCAkaW1wbENsYXNzTmFtZSogb2Jq
KQotewotICAgIHJldHVybiBLSlM6OmNhY2hlRE9NT2JqZWN0PCRpbXBsQ2xhc3NOYW1lLCAkY2xh
c3NOYW1lPihleGVjLCBvYmopOwotfQotJGltcGxDbGFzc05hbWUqIHRvJHtpbnRlcmZhY2VOYW1l
fShLSlM6OkpTVmFsdWUqIHZhbCkKLXsKLSAgICByZXR1cm4gdmFsLT5pc09iamVjdCgmJHtjbGFz
c05hbWV9OjppbmZvKSA/IHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPih2YWwpLT5pbXBsKCkgOiAw
OwotfQotRU9GCi0KLSAgICByZXR1cm4gJGltcGxDb250ZW50OwotfQotCiAxOwpJbmRleDogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvci5wbQkocmV2aXNpb24gMTQ2MjIpCisrKyBiaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3IucG0JKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDE0IEBACiAg
IHJldHVybiAkcmVmZXJlbmNlOwogfQogCitzdWIgU3RyaXBNb2R1bGUoJCkKK3sKKwlteSAkb2Jq
ZWN0ID0gc2hpZnQ7CisJbXkgJG5hbWUgPSBzaGlmdDsKKwkkbmFtZSA9fiBzL1thLXpBLVowLTld
Kjo6Ly87CisJcmV0dXJuICRuYW1lOworfQorCiBzdWIgUHJvY2Vzc0RvY3VtZW50CiB7CiAgIG15
ICRvYmplY3QgPSBzaGlmdDsKQEAgLTk3LDEwICsxMDUsNyBAQAogICAjIEl0IGdldHMgdHJpY2tp
ZXIgZm9yIGllLiB0aGUgJ1BsYXRmb3JtTW91c2VFdmVudCcgaW50ZXJmYWNlLCB3aG9zZSBwYXJl
bnQgaXMKICAgIyB0aGUgJ1VJRXZlbnQnIGludGVyZmFjZSwgd2hvc2UgcGFyZW50IGlzIHRoZSAn
RXZlbnQnIGludGVyZmFjZS4gUmV0dXJuIGl0LgogICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0KLSAg
bXkgJGludGVyZmFjZSA9IHNoaWZ0OwotICAkaW50ZXJmYWNlID1+IHMvW2EtekEtWjAtOV0qOjov
LzsgIyBTdHJpcCBtb2R1bGUuCi0KKyAgbXkgJGludGVyZmFjZSA9IFN0cmlwTW9kdWxlKHNoaWZ0
KTsKICAgbXkgJHRvcEJhc2VDbGFzcyA9ICIiOwogICAKICAgIyBMb29wIHVudGlsIHdlIGZvdW5k
IHRoZSB0b3AgbW9zdCBiYXNlIGNsYXNzIGZvciAnaW50ZXJmYWNlJwpAQCAtMTM1LDggKzE0MCw3
IEBACiAKICAgICAgICAgICAjIEV4Y2VwdGlvbjogRm9yIHRoZSBET00gJ05vZGUnIGlzIG91ciB0
b3Btb3N0IGJhc2VjbGFzcywgbm90IEV2ZW50VGFyZ2V0LgogICAgICAgICAgIGlmKCgkcGFyZW50
c01heCA+IDApIGFuZCAoJHBhcmVudHNbMF0gbmUgImV2ZW50czo6RXZlbnRUYXJnZXQiKSkgewot
ICAgICAgICAgICAgJGludGVyZmFjZSA9ICRwYXJlbnRzWzBdOwotICAgICAgICAgICAgJGludGVy
ZmFjZSA9fiBzL1thLXpBLVowLTldKjo6Ly87ICMgU3RyaXAgbW9kdWxlOworICAgICAgICAgICAg
JGludGVyZmFjZSA9IFN0cmlwTW9kdWxlKCRwYXJlbnRzWzBdKTsKICAgICAgICAgICB9IGVsc2lm
KCEkY2xhc3MtPm5vRFB0ckZsYWcpIHsgIyBJbmNsdWRlICdtb2R1bGUnIC4uLgogICAgICAgICAg
ICAgJHRvcEJhc2VDbGFzcyA9ICRkb2N1bWVudC0+bW9kdWxlIC4gIjo6IiAuICRjbGFzcy0+bmFt
ZTsKICAgICAgICAgICB9CkBAIC0xNTUsMTAgKzE1OSw3IEBACiB7CiAgICMgRGV0ZXJtaW5lIHdo
ZXRlciBhIGdpdmVuIGludGVyZmFjZSBoYXMgYW55IHdyaXRlYWJsZSBhdHRyaWJ1dGVzLi4uCiAg
IG15ICRvYmplY3QgPSBzaGlmdDsKLQotICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7Ci0gICRpbnRl
cmZhY2UgPX4gcy9bYS16QS1aMC05XSo6Oi8vOyAjIFN0cmlwIG1vZHVsZS4KLQorICBteSAkaW50
ZXJmYWNlID0gU3RyaXBNb2R1bGUoc2hpZnQpOwogICBteSAkaGFzV3JpdGVhYmxlQXR0cmlidXRl
cyA9IDA7CiAgIAogICAjIFN0ZXAgIzE6IEZpbmQgdGhlIElETCBmaWxlIGFzc29jaWF0ZWQgd2l0
aCAnaW50ZXJmYWNlJwpAQCAtMzAyLDggKzMwMyw3IEBACiAgICAgbXkgJGNsYXNzID0gJF87CiAK
ICAgICBmb3JlYWNoKEB7JGNsYXNzLT5wYXJlbnRzfSkgewotICAgICAgbXkgJGNhY2hlSGFuZGxl
ID0gJF87Ci0gICAgICAkY2FjaGVIYW5kbGUgPX4gcy9bYS16QS1aMC05XSo6Oi8vOyAjIFN0cmlw
IG1vZHVsZS4KKyAgICAgIG15ICRjYWNoZUhhbmRsZSA9IFN0cmlwTW9kdWxlKCRfKTsKIAogICAg
ICAgaWYoJGNhY2hlSGFuZGxlIGVxICRpbnRlcmZhY2UpIHsKICAgICAgICAgbXkgJGlkZW50aWZp
ZXIgPSAkZG9jdW1lbnQtPm1vZHVsZSAuICI6OiIgLiAkY2xhc3MtPm5hbWU7CkluZGV4OiBiaW5k
aW5ncy9qcy9KU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBiaW5k
aW5ncy9qcy9KU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAkocmV2aXNpb24gMTQ2MjIpCisr
KyBiaW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAkod29ya2luZyBjb3B5
KQpAQCAtMjksNyArMjksNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgSFRN
TEVsZW1lbnQ7Ci0gICAgS0pTOjpET01Ob2RlKiBjcmVhdGVKU1dyYXBwZXIoS0pTOjpFeGVjU3Rh
dGUqLCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50Pik7CisgICAgS0pTOjpET01Ob2RlKiBjcmVhdGVK
U0hUTUxXcmFwcGVyKEtKUzo6RXhlY1N0YXRlKiwgUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4pOwog
CiB9CiAKSW5kZXg6IGJpbmRpbmdzL2pzL2tqc19kb20uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGJpbmRp
bmdzL2pzL2tqc19kb20uY3BwCShyZXZpc2lvbiAxNDYyMikKKysrIGJpbmRpbmdzL2pzL2tqc19k
b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSwxMCBAQAogI2luY2x1ZGUgImtqc190
cmF2ZXJzYWwuaCIKICNpbmNsdWRlICJranNfd2luZG93LmgiCiAKKyNpZiBTVkdfU1VQUE9SVAor
I2luY2x1ZGUgIkpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisjaW5jbHVkZSAiU1ZHRWxl
bWVudC5oIgorI2VuZGlmCiAKICNpZiBfX0FQUExFX18KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9ydW50aW1lX29iamVjdC5oPgpAQCAtOTY4LDcgKzk3MiwxMSBAQAogICBzd2l0Y2ggKG4tPm5v
ZGVUeXBlKCkpIHsKICAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkVMRU1FTlRfTk9ERToKICAgICAg
IGlmIChuLT5pc0hUTUxFbGVtZW50KCkpCi0gICAgICAgIHJldCA9IGNyZWF0ZUpTV3JhcHBlcihl
eGVjLCBzdGF0aWNfcG9pbnRlcl9jYXN0PFdlYkNvcmU6OkhUTUxFbGVtZW50Pihub2RlKSk7Cisg
ICAgICAgIHJldCA9IGNyZWF0ZUpTSFRNTFdyYXBwZXIoZXhlYywgc3RhdGljX3BvaW50ZXJfY2Fz
dDxXZWJDb3JlOjpIVE1MRWxlbWVudD4obm9kZSkpOworI2lmIFNWR19TVVBQT1JUCisgICAgICBl
bHNlIGlmIChuLT5pc1NWR0VsZW1lbnQoKSkKKyAgICAgICAgcmV0ID0gY3JlYXRlSlNTVkdXcmFw
cGVyKGV4ZWMsIHN0YXRpY19wb2ludGVyX2Nhc3Q8V2ViQ29yZTo6U1ZHRWxlbWVudD4obm9kZSkp
OworI2VuZGlmCiAgICAgICBlbHNlCiAgICAgICAgIHJldCA9IG5ldyBKU0VsZW1lbnQoZXhlYywg
c3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pKTsKICAgICAgIGJyZWFrOwpAQCAtMTEzMiw3ICsxMTQw
LDQgQEAKICAgcmV0dXJuIERPTU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiB9CiAKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotCiB9IC8vIG5hbWVz
cGFjZQpJbmRleDogYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBiaW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3Bw
CShyZXZpc2lvbiAxNDYyMikKKysrIGJpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRXcmFwcGVyRmFj
dG9yeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw3ICsxNzUsNyBAQAogRk9SX0VBQ0hfVEFH
KENSRUFURV9XUkFQUEVSX0ZVTkNUSU9OKQogI3VuZGVmIENSRUFURV9XUkFQUEVSX0ZVTkNUSU9O
CiAKLURPTU5vZGUqIGNyZWF0ZUpTV3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCitET01Ob2RlKiBjcmVhdGVKU0hUTUxXcmFwcGVyKEV4ZWNT
dGF0ZSogZXhlYywgUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKIHsKICAgICBzdGF0
aWMgSGFzaE1hcDxXZWJDb3JlOjpBdG9taWNTdHJpbmdJbXBsKiwgQ3JlYXRlSFRNTEVsZW1lbnRX
cmFwcGVyRnVuY3Rpb24+IG1hcDsKICAgICBpZiAobWFwLmlzRW1wdHkoKSkgewpJbmRleDogRGVy
aXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBEZXJpdmVkU291cmNlcy5tYWtlCShyZXZp
c2lvbiAxNDYyMikKKysrIERlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDYgKzMyLDggQEAKICAgICAkKFdlYkNvcmUpL2h0bWwgXAogICAgICQoV2ViQ29yZSkvcGFnZSBc
CiAgICAgJChXZWJDb3JlKS94cGF0aCBcCisgICAgJChXZWJDb3JlKS9rc3ZnMi9zdmcgXAorICAg
ICQoV2ViQ29yZSkva3N2ZzIvYmluZGluZ3MvanMgXAogIwogCiAuUEhPTlkgOiBhbGwKQEAgLTEx
OCw2ICsxMjAsMTcgQEAKICAgICBKU05vdGF0aW9uLmggXAogICAgIEpTUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLmggXAogICAgIEpTUmFuZ2UuaCBcCisgICAgSlNTVkdBbmdsZS5oIFwKKyAgICBKU1NW
R0FuaW1hdGVkTGVuZ3RoLmggXAorICAgIEpTU1ZHQ29sb3IuaCBcCisgICAgSlNTVkdEb2N1bWVu
dC5oIFwKKyAgICBKU1NWR0VsZW1lbnQuaCBcCisgICAgSlNTVkdMZW5ndGguaCBcCisgICAgSlNT
VkdNYXRyaXguaCBcCisgICAgSlNTVkdQb2ludFRhYmxlLmNwcCBcCisgICAgSlNTVkdSZWN0VGFi
bGUuY3BwIFwKKyAgICBKU1NWR1NWR0VsZW1lbnQuaCBcCisgICAgSlNTVkdUcmFuc2Zvcm0uaCBc
CiAgICAgSlNUZXh0LmggXAogICAgIEpTVUlFdmVudC5oIFwKICAgICBKU1hQYXRoRXZhbHVhdG9y
LmggXApAQCAtMTMyLDYgKzE0NSw3IEBACiAgICAgSFRNTE5hbWVzLmNwcCBcCiAgICAgVXNlckFn
ZW50U3R5bGVTaGVldHMuaCBcCiAgICAgWExpbmtOYW1lcy5jcHAgXAorICAgIFhNTE5hbWVzLmNw
cCBcCiAgICAgWFBhdGhHcmFtbWFyLmNwcCBcCiAgICAga2pzX2Nzcy5sdXQuaCBcCiAgICAga2pz
X2RvbS5sdXQuaCBcCkBAIC0yMzIsNyArMjQ2LDEwIEBACiBYTGlua05hbWVzLmNwcCA6IGtzdmcy
L3NjcmlwdHMvbWFrZV9uYW1lcy5wbCBrc3ZnMi9taXNjL3hsaW5rYXR0cnMuaW4KIAkkPCAtLWF0
dHJzICQoV2ViQ29yZSkva3N2ZzIvbWlzYy94bGlua2F0dHJzLmluIFwKICAgICAgICAgICAgIC0t
bmFtZXNwYWNlIFhMaW5rIC0tY3BwTmFtZXNwYWNlIFdlYkNvcmUgLS1uYW1lc3BhY2VVUkkgImh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIC0tb3V0cHV0IC4KLQl0b3VjaCAkKFdlYkNvcmUp
L1dlYkNvcmUrU1ZHL1hMaW5rTmFtZXNXcmFwcGVyLmNwcAorICAgICAgICAgICAgCitYTUxOYW1l
cy5jcHAgOiBrc3ZnMi9zY3JpcHRzL21ha2VfbmFtZXMucGwgeG1sL3htbGF0dHJzLmluCisJJDwg
LS1hdHRycyAkKFdlYkNvcmUpL3htbC94bWxhdHRycy5pbiBcCisgICAgICAgICAgICAtLW5hbWVz
cGFjZSBYTUwgLS1jcHBOYW1lc3BhY2UgV2ViQ29yZSAtLW5hbWVzcGFjZVVSSSAiaHR0cDovL3d3
dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiAtLW91dHB1dCAuCiAKICMgU1ZHIENTUyBwcm9w
ZXJ0eSBuYW1lcyBhbmQgdmFsdWUga2V5d29yZHMKIApAQCAtMjU1LDYgKzI3Miw5IEBACiBYTGlu
a05hbWVzLmNwcCA6CiAJZWNobyA+IFhMaW5rTmFtZXMuY3BwCiAJCitYTUxOYW1lcy5jcHAgOgor
CWVjaG8gPiBYTUxOYW1lcy5jcHAKKwkKIGtzdmdjc3Nwcm9wZXJ0aWVzLmggOgogCWVjaG8gPiBr
c3ZnY3NzcHJvcGVydGllcy5oCiAKQEAgLTI3NCw0ICsyOTQsNCBAQAogIwogCiBKUyUuaCA6ICUu
aWRsICQoSlNfQklORElOR1NfU0NSSVBUUykKLQlwZXJsIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9z
Y3JpcHRzICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAt
LWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTKSIgLS1nZW5lcmF0b3IgSlMgLS1pbmNsdWRlIGRv
bSAtLWluY2x1ZGUgaHRtbCAtLWluY2x1ZGUgeHBhdGggLS1vdXRwdXRkaXIgIC4gJDwKKwlwZXJs
IC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTKSIgLS1n
ZW5lcmF0b3IgSlMgLS1pbmNsdWRlIGRvbSAtLWluY2x1ZGUgaHRtbCAtLWluY2x1ZGUgeHBhdGgg
LS1pbmNsdWRlIGtzdmcyL3N2ZyAtLW91dHB1dGRpciAgLiAkPApJbmRleDogcmVuZGVyaW5nL1Jl
bmRlckZsb3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVyRmxvdy5oCShyZXZpc2lv
biAxNDYyMikKKysrIHJlbmRlcmluZy9SZW5kZXJGbG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTQx
LDcgKzQxLDcgQEAKIGNsYXNzIFJlbmRlckZsb3cgOiBwdWJsaWMgUmVuZGVyQ29udGFpbmVyCiB7
CiBwdWJsaWM6Ci0gICAgUmVuZGVyRmxvdyhXZWJDb3JlOjpOb2RlKiBub2RlKQorICAgIFJlbmRl
ckZsb3coTm9kZSogbm9kZSkKICAgICAgIDogUmVuZGVyQ29udGFpbmVyKG5vZGUpLCBtX2xpbmVI
ZWlnaHQoLTEpCiAgICAgeyBtX2NvbnRpbnVhdGlvbiA9IDA7IG1fZmlyc3RMaW5lQm94ID0gMDsg
bV9sYXN0TGluZUJveCA9IDA7fQogCkBAIC01Myw3ICs1Myw3IEBACiAgICAgdmlydHVhbCB2b2lk
IGFkZENoaWxkVG9GbG93KFJlbmRlck9iamVjdCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVm
b3JlQ2hpbGQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0ICpu
ZXdDaGlsZCwgUmVuZGVyT2JqZWN0ICpiZWZvcmVDaGlsZCA9IDApOwogCi0gICAgc3RhdGljIFJl
bmRlckZsb3cqIGNyZWF0ZUFub255bW91c0Zsb3coV2ViQ29yZTo6RG9jdW1lbnQqIGRvYywgUmVu
ZGVyU3R5bGUqIHN0eWxlKTsKKyAgICBzdGF0aWMgUmVuZGVyRmxvdyogY3JlYXRlQW5vbnltb3Vz
RmxvdyhEb2N1bWVudCogZG9jLCBSZW5kZXJTdHlsZSogc3R5bGUpOwogCiAgICAgdm9pZCBleHRy
YWN0TGluZUJveChJbmxpbmVGbG93Qm94KiBsaW5lQm94KTsKICAgICB2b2lkIGF0dGFjaExpbmVC
b3goSW5saW5lRmxvd0JveCogbGluZUJveCk7CkluZGV4OiByZW5kZXJpbmcvUmVuZGVySW5saW5l
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCShyZXZpc2lvbiAxNDYy
MikKKysrIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyAr
MzYsNyBAQAogY2xhc3MgUmVuZGVySW5saW5lIDogcHVibGljIFJlbmRlckZsb3cKIHsKIHB1Ymxp
YzoKLSAgICBSZW5kZXJJbmxpbmUoV2ViQ29yZTo6Tm9kZSogbm9kZSk7CisgICAgUmVuZGVySW5s
aW5lKE5vZGUqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJJbmxpbmUoKTsKIAogICAgIHZpcnR1YWwg
Y29uc3QgY2hhciAqcmVuZGVyTmFtZSgpIGNvbnN0OwpAQCAtNTMsNyArNTMsNyBAQAogICAgIHZv
aWQgc3BsaXRGbG93KFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQsIFJlbmRlckJsb2NrKiBuZXdC
bG9ja0JveCwKICAgICAgICAgICAgICAgICAgICBSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5k
ZXJGbG93KiBvbGRDb250KTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U3R5bGUoUmVuZGVy
U3R5bGUqIF9zdHlsZSk7CisgICAgdmlydHVhbCB2b2lkIHNldFN0eWxlKFJlbmRlclN0eWxlKik7
CiAKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkge30gLy8gRG8gbm90aGluZyBmb3IgbGF5b3V0
KCkKICAgICAKSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJCb3guaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5k
ZXJpbmcvUmVuZGVyQm94LmgJKHJldmlzaW9uIDE0NjIyKQorKysgcmVuZGVyaW5nL1JlbmRlckJv
eC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMiArMzcsMTIgQEAKIGNsYXNzIFJlbmRlckJveCA6
IHB1YmxpYyBSZW5kZXJPYmplY3QKIHsKIHB1YmxpYzoKLSAgICBSZW5kZXJCb3goV2ViQ29yZTo6
Tm9kZSogbm9kZSk7CisgICAgUmVuZGVyQm94KE5vZGUqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJC
b3goKTsKIAogICAgIHZpcnR1YWwgY29uc3QgY2hhciAqcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0
dXJuICJSZW5kZXJCb3giOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U3R5bGUoUmVuZGVyU3R5
bGUgKnN0eWxlKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3R5bGUoUmVuZGVyU3R5bGUqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiBpLCBpbnQgX3R4LCBpbnQgX3R5KTsKICAg
ICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoTm9kZUluZm8mIGksIGludCBfeCwgaW50IF95LCBp
bnQgX3R4LCBpbnQgX3R5LCBIaXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rpb24pOwogCkBAIC05Nyw3
ICs5Nyw3IEBACiAgICAgLy8gdGhlIHJlcGxhY2VkIFJlbmRlck9iamVjdCB0byBxdWlja2x5IGRl
dGVybWluZSB3aGF0IGxpbmUgaXQgaXMgY29udGFpbmVkIG9uIGFuZCB0byBlYXNpbHkKICAgICAv
LyBpdGVyYXRlIG92ZXIgc3RydWN0dXJlcyBvbiB0aGUgbGluZS4KICAgICB2aXJ0dWFsIElubGlu
ZUJveCogaW5saW5lQm94V3JhcHBlcigpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzZXRJbmxp
bmVCb3hXcmFwcGVyKElubGluZUJveCogYik7CisgICAgdmlydHVhbCB2b2lkIHNldElubGluZUJv
eFdyYXBwZXIoSW5saW5lQm94Kik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUxpbmVCb3hXcmFw
cGVyKCk7CiAgICAgCiAgICAgdmlydHVhbCBpbnQgbG93ZXN0UG9zaXRpb24oYm9vbCBpbmNsdWRl
T3ZlcmZsb3dJbnRlcmlvcj10cnVlLCBib29sIGluY2x1ZGVTZWxmPXRydWUpIGNvbnN0OwpJbmRl
eDogcmVuZGVyaW5nL1JlbmRlckJSLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlckJS
LmgJKHJldmlzaW9uIDE0NjIyKQorKysgcmVuZGVyaW5nL1JlbmRlckJSLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM3LDcgKzM3LDcgQEAKIGNsYXNzIFJlbmRlckJSIDogcHVibGljIFJlbmRlclRleHQK
IHsKIHB1YmxpYzoKLSAgICBSZW5kZXJCUihXZWJDb3JlOjpOb2RlKiBub2RlKTsKKyAgICBSZW5k
ZXJCUihOb2RlKik7CiAgICAgdmlydHVhbCB+UmVuZGVyQlIoKTsKIAogICAgIHZpcnR1YWwgY29u
c3QgY2hhciAqcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJCUiI7IH0KSW5kZXg6
IHJlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcv
UmVuZGVyVGFibGVTZWN0aW9uLmgJKHJldmlzaW9uIDE0NjIyKQorKysgcmVuZGVyaW5nL1JlbmRl
clRhYmxlU2VjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMSArMzYsMTEgQEAKIGNsYXNz
IFJlbmRlclRhYmxlU2VjdGlvbiA6IHB1YmxpYyBSZW5kZXJDb250YWluZXIKIHsKIHB1YmxpYzoK
LSAgICBSZW5kZXJUYWJsZVNlY3Rpb24oV2ViQ29yZTo6Tm9kZSogbm9kZSk7CisgICAgUmVuZGVy
VGFibGVTZWN0aW9uKE5vZGUqKTsKICAgICB+UmVuZGVyVGFibGVTZWN0aW9uKCk7CiAgICAgdmly
dHVhbCB2b2lkIGRlc3Ryb3koKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRTdHlsZShSZW5kZXJT
dHlsZSAqc3R5bGUpOworICAgIHZpcnR1YWwgdm9pZCBzZXRTdHlsZShSZW5kZXJTdHlsZSopOwog
CiAgICAgdmlydHVhbCBjb25zdCBjaGFyICpyZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJl
bmRlclRhYmxlU2VjdGlvbiI7IH0KIApJbmRleDogcmVuZGVyaW5nL1JlbmRlckNvbnRhaW5lci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9SZW5kZXJDb250YWluZXIuaAkocmV2aXNpb24gMTQ2
MjIpCisrKyByZW5kZXJpbmcvUmVuZGVyQ29udGFpbmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1
LDcgKzM1LDcgQEAKIGNsYXNzIFJlbmRlckNvbnRhaW5lciA6IHB1YmxpYyBSZW5kZXJCb3gKIHsK
IHB1YmxpYzoKLSAgICBSZW5kZXJDb250YWluZXIoV2ViQ29yZTo6Tm9kZSogbm9kZSk7CisgICAg
UmVuZGVyQ29udGFpbmVyKE5vZGUqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJDb250YWluZXIoKTsK
IAogICAgIFJlbmRlck9iamVjdCAqZmlyc3RDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3Q7
IH0KSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCShyZXZpc2lvbiAxNDYyMikKKysrIHJlbmRlcmlu
Zy9SZW5kZXJGbGV4aWJsZUJveC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiBj
bGFzcyBSZW5kZXJGbGV4aWJsZUJveCA6IHB1YmxpYyBSZW5kZXJCbG9jawogewogcHVibGljOgot
ICAgIFJlbmRlckZsZXhpYmxlQm94KFdlYkNvcmU6Ok5vZGUqIG5vZGUpOworICAgIFJlbmRlckZs
ZXhpYmxlQm94KE5vZGUqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJGbGV4aWJsZUJveCgpOwogCiAg
ICAgdmlydHVhbCB2b2lkIGNhbGNNaW5NYXhXaWR0aCgpOwpJbmRleDogcmVuZGVyaW5nL1JlbmRl
clRleHRGcmFnbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9SZW5kZXJUZXh0RnJhZ21l
bnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyByZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDggKzM2LDggQEAKIGNsYXNzIFJlbmRlclRleHRGcmFnbWVu
dCA6IHB1YmxpYyBSZW5kZXJUZXh0CiB7CiBwdWJsaWM6Ci0gICAgUmVuZGVyVGV4dEZyYWdtZW50
KFdlYkNvcmU6Ok5vZGUqLCBXZWJDb3JlOjpTdHJpbmdJbXBsKiwgaW50IHN0YXJ0T2Zmc2V0LCBp
bnQgbGVuZ3RoLCBSZW5kZXJPYmplY3QqIGZpcnN0TGV0dGVyID0gMCk7Ci0gICAgUmVuZGVyVGV4
dEZyYWdtZW50KFdlYkNvcmU6Ok5vZGUqLCBXZWJDb3JlOjpTdHJpbmdJbXBsKik7CisgICAgUmVu
ZGVyVGV4dEZyYWdtZW50KE5vZGUqLCBTdHJpbmdJbXBsKiwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQg
bGVuZ3RoLCBSZW5kZXJPYmplY3QqIGZpcnN0TGV0dGVyID0gMCk7CisgICAgUmVuZGVyVGV4dEZy
YWdtZW50KE5vZGUqLCBTdHJpbmdJbXBsKik7CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzVGV4
dEZyYWdtZW50KCkgY29uc3Q7CiAgICAgCkBAIC00NywxMyArNDcsMTMgQEAKICAgICB1bnNpZ25l
ZCBlbmQoKSBjb25zdCB7IHJldHVybiBtX2VuZDsgfQogICAgIFJlbmRlck9iamVjdCogZmlyc3RM
ZXR0ZXIoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0TGV0dGVyOyB9CiAgICAgCi0gICAgV2ViQ29y
ZTo6U3RyaW5nSW1wbCogY29udGVudFN0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fZ2VuZXJhdGVk
Q29udGVudFN0ci5nZXQoKTsgfQotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTdHJp
bmdJbXBsPiBvcmlnaW5hbFN0cmluZygpIGNvbnN0OworICAgIFN0cmluZ0ltcGwqIGNvbnRlbnRT
dHJpbmcoKSBjb25zdCB7IHJldHVybiBtX2dlbmVyYXRlZENvbnRlbnRTdHIuZ2V0KCk7IH0KKyAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gb3JpZ2luYWxTdHJpbmcoKSBjb25zdDsK
ICAgICAKIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9zdGFydDsKICAgICB1bnNpZ25lZCBtX2Vu
ZDsKLSAgICBSZWZQdHI8V2ViQ29yZTo6U3RyaW5nSW1wbD4gbV9nZW5lcmF0ZWRDb250ZW50U3Ry
OworICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBtX2dlbmVyYXRlZENvbnRlbnRTdHI7CiAgICAgUmVu
ZGVyT2JqZWN0KiBtX2ZpcnN0TGV0dGVyOwogfTsKIApJbmRleDogcmVuZGVyaW5nL1JlbmRlckNh
bnZhcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9SZW5kZXJDYW52YXMuaAkocmV2aXNpb24g
MTQ2MjIpCisrKyByZW5kZXJpbmcvUmVuZGVyQ2FudmFzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDcgKzMyLDcgQEAKIAogY2xhc3MgUmVuZGVyQ2FudmFzIDogcHVibGljIFJlbmRlckJsb2NrIHsK
IHB1YmxpYzoKLSAgICBSZW5kZXJDYW52YXMoV2ViQ29yZTo6Tm9kZSogbm9kZSwgRnJhbWVWaWV3
ICp2aWV3KTsKKyAgICBSZW5kZXJDYW52YXMoTm9kZSosIEZyYW1lVmlldyopOwogICAgIHZpcnR1
YWwgflJlbmRlckNhbnZhcygpOwogCiAgICAgdmlydHVhbCBjb25zdCBjaGFyICpyZW5kZXJOYW1l
KCkgY29uc3QgeyByZXR1cm4gIlJlbmRlckNhbnZhcyI7IH0KSW5kZXg6IGRvbS9Eb2N1bWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMTQ2MjIpCisrKyBk
b20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEyLDcgKzEyMTIsNyBAQAogICAg
IC8vIFNWR0xvYWQgZXZlbnQsIGJ1dCB3ZSBkb24ndCBpbXBsZW1lbnQgdGhvc2UgeWV0LiAgVGhp
cyBpcyBjbG9zZSBlbm91Z2gKICAgICAvLyBmb3Igbm93LiAgSW4gc29tZSBjYXNlcyB3ZSBzaG91
bGQgaGF2ZSBmaXJlZCBlYXJsaWVyLgogICAgIGlmIChzdmdFeHRlbnNpb25zKCkpCi0gICAgICAg
IGFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+dGltZVNjaGVkdWxlcigpLT5zdGFydEFuaW1hdGlvbnMo
KTsKKyAgICAgICAgYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT5zdGFydEFuaW1hdGlvbnMoKTsKICNl
bmRpZgogfQogCkluZGV4OiBkb20vU3R5bGVkRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9T
dHlsZWRFbGVtZW50LmgJKHJldmlzaW9uIDE0NjIyKQorKysgZG9tL1N0eWxlZEVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogY2xhc3MgU3R5bGVkRWxlbWVudCA6IHB1
YmxpYyBFbGVtZW50CiB7CiBwdWJsaWM6Ci0gICAgU3R5bGVkRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCAqZG9jKTsKKyAgICBTdHlsZWRFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIHZpcnR1YWwgflN0eWxlZEVsZW1lbnQo
KTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1N0eWxlZEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CkluZGV4OiBkb20vRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9FbGVtZW50LmgJ
KHJldmlzaW9uIDE0NjIyKQorKysgZG9tL0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIs
NyArNDIsNyBAQAogICAgIGZyaWVuZCBjbGFzcyBOb2RlOwogICAgIGZyaWVuZCBjbGFzcyBDU1NT
dHlsZVNlbGVjdG9yOwogcHVibGljOgotICAgIEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKICAgICB+RWxlbWVudCgpOwogCiAgICAgLy8gVXNlZCB0byBxdWlja2x5
IGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCBhbiBlbGVtZW50IGhhcyBhIGdpdmVuIENTUyBjbGFz
cy4KSW5kZXg6IFdlYkNvcmUrU1ZHL1JHQkNvbG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZStT
VkcvUkdCQ29sb3IuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBXZWJDb3JlK1NWRy9SR0JDb2xvci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0gICAgQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgotICAgICAgICAg
ICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgotCi0gICAgVGhpcyBm
aWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0g
ICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAg
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9z
dG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwotCi0jaWZuZGVmIEtET01fUkdCQ29sb3JJbXBs
X0gKLSNkZWZpbmUgS0RPTV9SR0JDb2xvckltcGxfSAotI2lmIFNWR19TVVBQT1JUCi0KLSNpbmNs
dWRlICJTaGFyZWQuaCIKLQotI2luY2x1ZGUgIkNvbG9yLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
Ci17Ci0gICAgY2xhc3MgU3RyaW5nOwotICAgIGNsYXNzIENTU1ByaW1pdGl2ZVZhbHVlOwotICAg
IGNsYXNzIFJHQkNvbG9yIDogcHVibGljIFNoYXJlZDxSR0JDb2xvcj4KLSAgICB7Ci0gICAgcHVi
bGljOgotICAgICAgICBSR0JDb2xvcihjb25zdCBSR0JBMzIgJmNvbG9yKTsKLSAgICAgICAgUkdC
Q29sb3IoY29uc3QgQ29sb3IgJmNvbG9yKTsKLSAgICAgICAgdmlydHVhbCB+UkdCQ29sb3IoKTsK
LQotICAgICAgICAvLyAnUkdCQ29sb3InIGZ1bmN0aW9ucwotICAgICAgICBDU1NQcmltaXRpdmVW
YWx1ZSAqcmVkKCkgY29uc3Q7Ci0gICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlICpncmVlbigpIGNv
bnN0OwotICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSAqYmx1ZSgpIGNvbnN0OwotCi0gICAgcHJv
dGVjdGVkOgotICAgICAgICBDb2xvciBtX2NvbG9yOwotICAgIH07Ci19OwotCi0jZW5kaWYgLy8g
U1ZHX1NVUFBPUlQKLSNlbmRpZgotCi0vLyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlK1NW
Ry9TVkdFbGVtZW50RmFjdG9yeVdyYXBwZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUrU1ZH
L1NWR0VsZW1lbnRGYWN0b3J5V3JhcHBlci5jcHAJKHJldmlzaW9uIDE0NjIyKQorKysgV2ViQ29y
ZStTVkcvU1ZHRWxlbWVudEZhY3RvcnlXcmFwcGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw0
ICswLDAgQEAKLSNpZiBTVkdfU1VQUE9SVAotLy8gQWRkZWQgdGhpcyBjb21tZW50IHRvIHRvdWNo
IHRoZSB3cmFwcGVyIHNvIGl0IHJlYnVpbGRzLgotI2luY2x1ZGUgIlNWR0VsZW1lbnRGYWN0b3J5
LmNwcCIKLSNlbmRpZiAvL1NWR19TVVBQT1JUClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJ
bmRleDogV2ViQ29yZStTVkcvU1ZHTmFtZXNXcmFwcGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlK1NWRy9TVkdOYW1lc1dyYXBwZXIuY3BwCShyZXZpc2lvbiAxNDYyMikKKysrIFdlYkNvcmUr
U1ZHL1NWR05hbWVzV3JhcHBlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMCwwIEBACi0j
aWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlICJTVkdOYW1lcy5jcHAiCi0jZW5kaWYgLy8gU1ZHX1NV
UFBPUlQKSW5kZXg6IFdlYkNvcmUrU1ZHL1JHQkNvbG9yLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlK1NWRy9SR0JDb2xvci5jcHAJKHJldmlzaW9uIDE0NjIyKQorKysgV2ViQ29yZStTVkcvUkdC
Q29sb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDY1ICswLDAgQEAKLS8qCi0gICAgQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgot
ICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgotCi0g
ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KLSAgICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAs
Ci0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlICJSR0JDb2xvci5oIgotI2luY2x1ZGUgIkNT
U1ByaW1pdGl2ZVZhbHVlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUkdCQ29sb3I6OlJH
QkNvbG9yKGNvbnN0IFJHQkEzMiAmY29sb3IpCi0gICAgOiBTaGFyZWQ8UkdCQ29sb3I+KCkKLSAg
ICAsIG1fY29sb3IoY29sb3IpCi17Ci19Ci0KLVJHQkNvbG9yOjpSR0JDb2xvcihjb25zdCBDb2xv
ciAmY29sb3IpCi0gICAgOiBTaGFyZWQ8UkdCQ29sb3I+KCkKLSAgICAsIG1fY29sb3IoY29sb3Ip
Ci17Ci19Ci0KLVJHQkNvbG9yOjp+UkdCQ29sb3IoKQotewotfQotCi1DU1NQcmltaXRpdmVWYWx1
ZSAqUkdCQ29sb3I6OnJlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVW
YWx1ZShmbG9hdChtX2NvbG9yLmFscGhhKCkgPyBtX2NvbG9yLnJlZCgpIDogMCksIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfRElNRU5TSU9OKTsKLX0KLQotQ1NTUHJpbWl0aXZlVmFsdWUgKlJHQkNv
bG9yOjpncmVlbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShm
bG9hdChtX2NvbG9yLmFscGhhKCkgPyBtX2NvbG9yLmdyZWVuKCkgOiAwKSwgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19ESU1FTlNJT04pOwotfQotCi1DU1NQcmltaXRpdmVWYWx1ZSAqUkdCQ29sb3I6
OmJsdWUoKSBjb25zdAotewotICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoZmxvYXQo
bV9jb2xvci5hbHBoYSgpID8gbV9jb2xvci5ibHVlKCkgOiAwKSwgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19ESU1FTlNJT04pOwotfQotCi19Ci0KLS8vIHZpbTp0cz00Om5vZXQKLSNlbmRpZiAvLyBT
VkdfU1VQUE9SVAotCkluZGV4OiBXZWJDb3JlK1NWRy9YTGlua05hbWVzV3JhcHBlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZStTVkcvWExpbmtOYW1lc1dyYXBwZXIuY3BwCShyZXZpc2lvbiAx
NDYyMikKKysrIFdlYkNvcmUrU1ZHL1hMaW5rTmFtZXNXcmFwcGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSwzICswLDAgQEAKLSNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgIlhMaW5rTmFtZXMu
Y3BwIgotI2VuZGlmIC8vIFNWR19TVVBQT1JUCkluZGV4OiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAxNDYyMikKKysrIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtNzUwLDYgKzc1MCwxNDMgQEAKIAkJQTgyM0E3NUMwOUI2RTUz
OTAwQjYwNjQxIC8qIEdyYXBoaWNzQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODIzQTc1QjA5QjZFNTM5MDBCNjA2NDEgLyogR3JhcGhp
Y3NDb250ZXh0LmNwcCAqLzsgfTsKIAkJQTgyNkU4QUUwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTSFRN
TE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTgyNkU4QUMwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTSFRNTE9wdGlv
bkVsZW1lbnRDb25zdHJ1Y3Rvci5oICovOyB9OwogCQlBODI2RUM0ODBBMUIwQ0JFMDBDRDFCQjYg
LyogSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MjZFOEFEMEExQThGMjMwMENEMUJCNiAvKiBK
U0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuY3BwICovOyB9OworCQlBODMzQjRCQTBBMjcz
MTFEMDBENTc2NjQgLyogSlNTVkdEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0I0QjgwQTI3MzExRDAwRDU3NjY0IC8qIEpTU1ZHRG9j
dW1lbnQuaCAqLzsgfTsKKwkJQTgzM0I0QkIwQTI3MzExRDAwRDU3NjY0IC8qIEpTU1ZHRG9jdW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgz
M0I0QjkwQTI3MzExRDAwRDU3NjY0IC8qIEpTU1ZHRG9jdW1lbnQuY3BwICovOyB9OworCQlBODMz
QkE3RjBBMkJBM0Q0MDBENTc2NjQgLyogSlNTVkdSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQkE3NTBBMkJBM0Q0MDBENTc2NjQgLyogSlNT
VkdSZWN0LmggKi87IH07CisJCUE4MzNCQTgxMEEyQkEzRDQwMEQ1NzY2NCAvKiBKU1NWR1JlY3Qu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0JB
NzcwQTJCQTNENDAwRDU3NjY0IC8qIEpTU1ZHUmVjdC5jcHAgKi87IH07CisJCUE4MzNCQTgyMEEy
QkEzRDQwMEQ1NzY2NCAvKiBKU1NWR051bWJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0JBNzgwQTJCQTNENDAwRDU3NjY0IC8qIEpTU1ZHTnVt
YmVyLmggKi87IH07CisJCUE4MzNCQTg1MEEyQkEzRDQwMEQ1NzY2NCAvKiBKU1NWR1BvaW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQkE3QjBB
MkJBM0Q0MDBENTc2NjQgLyogSlNTVkdQb2ludC5oICovOyB9OworCQlBODMzQkE4NjBBMkJBM0Q0
MDBENTc2NjQgLyogSlNTVkdQb2ludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODMzQkE3QzBBMkJBM0Q0MDBENTc2NjQgLyogSlNTVkdQb2ludC5j
cHAgKi87IH07CisJCUE4MzNCQTg3MEEyQkEzRDQwMEQ1NzY2NCAvKiBKU1NWR051bWJlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQkE3RDBB
MkJBM0Q0MDBENTc2NjQgLyogSlNTVkdOdW1iZXIuY3BwICovOyB9OworCQlBODMzQkYxQTBBMkMz
QTk1MDBENTc2NjQgLyogSlNTVkdNYXRyaXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNCRjE2MEEyQzNBOTUwMEQ1NzY2NCAvKiBKU1NWR01hdHJp
eC5oICovOyB9OworCQlBODMzQkYxQjBBMkMzQTk1MDBENTc2NjQgLyogSlNTVkdNYXRyaXguY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0JGMTcw
QTJDM0E5NTAwRDU3NjY0IC8qIEpTU1ZHTWF0cml4LmNwcCAqLzsgfTsKKwkJQTgzM0JGMUMwQTJD
M0E5NTAwRDU3NjY0IC8qIEpTU1ZHQ29sb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNCRjE4MEEyQzNBOTUwMEQ1NzY2NCAvKiBKU1NWR0NvbG9y
LmggKi87IH07CisJCUE4MzNCRjFEMEEyQzNBOTUwMEQ1NzY2NCAvKiBKU1NWR0NvbG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNCRjE5MEEy
QzNBOTUwMEQ1NzY2NCAvKiBKU1NWR0NvbG9yLmNwcCAqLzsgfTsKKwkJQTgzM0MwOTAwQTJDNEYz
RjAwRDU3NjY0IC8qIEpTU1ZHU1ZHRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzA4RTBBMkM0RjNGMDBENTc2NjQgLyogSlNTVkdT
VkdFbGVtZW50LmNwcCAqLzsgfTsKKwkJQTgzM0MwOTEwQTJDNEYzRjAwRDU3NjY0IC8qIEpTU1ZH
U1ZHRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTgzM0MwOEYwQTJDNEYzRjAwRDU3NjY0IC8qIEpTU1ZHU1ZHRWxlbWVudC5oICovOyB9Owor
CQlBODMzQzBGNzBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzBFRDBBMkM1MTMzMDBENTc2
NjQgLyogSlNTVkdFbGVtZW50LmggKi87IH07CisJCUE4MzNDMEY4MEEyQzUxMzMwMEQ1NzY2NCAv
KiBKU1NWR0FuaW1hdGVkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBODMzQzBFRTBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdBbmltYXRlZExl
bmd0aC5oICovOyB9OworCQlBODMzQzBGOTBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdUcmFuc2Zv
cm0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgz
M0MwRUYwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHVHJhbnNmb3JtLmNwcCAqLzsgfTsKKwkJQTgz
M0MwRkEwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHQW5nbGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDMEYwMEEyQzUxMzMwMEQ1NzY2NCAvKiBK
U1NWR0FuZ2xlLmggKi87IH07CisJCUE4MzNDMEZCMEEyQzUxMzMwMEQ1NzY2NCAvKiBKU1NWR0Fu
aW1hdGVkTGVuZ3RoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4MzNDMEYxMEEyQzUxMzMwMEQ1NzY2NCAvKiBKU1NWR0FuaW1hdGVkTGVuZ3RoLmNw
cCAqLzsgfTsKKwkJQTgzM0MwRkMwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHQW5nbGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0MwRjIwQTJD
NTEzMzAwRDU3NjY0IC8qIEpTU1ZHQW5nbGUuY3BwICovOyB9OworCQlBODMzQzBGRDBBMkM1MTMz
MDBENTc2NjQgLyogSlNTVkdFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDMEYzMEEyQzUxMzMwMEQ1NzY2NCAvKiBKU1NWR0VsZW1l
bnQuY3BwICovOyB9OworCQlBODMzQzBGRTBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdMZW5ndGgu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0Mw
RjQwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHTGVuZ3RoLmNwcCAqLzsgfTsKKwkJQTgzM0MwRkYw
QTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzBGNTBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdM
ZW5ndGguaCAqLzsgfTsKKwkJQTgzM0MxMDAwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHVHJhbnNm
b3JtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMz
QzBGNjBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdUcmFuc2Zvcm0uaCAqLzsgfTsKKwkJQTgzM0M2
RDgwQTJDRUE3NzAwRDU3NjY0IC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzZENjBBMkNFQTc3
MDBENTc2NjQgLyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCAqLzsgfTsKKwkJQTgzM0M2
RDkwQTJDRUE3NzAwRDU3NjY0IC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDNkQ3MEEyQ0VB
NzcwMEQ1NzY2NCAvKiBKU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgKi87IH07CisJCUE4
MzNDN0NBMEEyQ0YwNkIwMEQ1NzY2NCAvKiBTVkdOYW1lcy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTY1ODFFODA5RDE1MDhEMDAwRTYxRDcgLyog
U1ZHTmFtZXMuY3BwICovOyB9OworCQlBODMzQzdDQzBBMkNGMDc0MDBENTc2NjQgLyogWExpbmtO
YW1lcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
NTY1ODFFQTA5RDE1MDhEMDAwRTYxRDcgLyogWExpbmtOYW1lcy5jcHAgKi87IH07CisJCUE4MzND
ODBDMEEyQ0YyNTYwMEQ1NzY2NCAvKiBYTUxOYW1lcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzgwQTBBMkNGMjU2MDBENTc2NjQgLyogWE1M
TmFtZXMuY3BwICovOyB9OworCQlBODMzQzgwRDBBMkNGMjU2MDBENTc2NjQgLyogWE1MTmFtZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDODBC
MEEyQ0YyNTYwMEQ1NzY2NCAvKiBYTUxOYW1lcy5oICovOyB9OworCQlBODMzQzg1MjBBMkNGNTI4
MDBENTc2NjQgLyogU1ZHRWxlbWVudEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2NTgxRTYwOUQxNTA4RDAwMEU2MUQ3IC8qIFNWR0Vs
ZW1lbnRGYWN0b3J5LmNwcCAqLzsgfTsKKwkJQTgzM0M5QUIwQTJDRjY4ODAwRDU3NjY0IC8qIEdl
dFNWR0RvY3VtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTgzM0M5NDEwQTJDRjY4NzAwRDU3NjY0IC8qIEdldFNWR0RvY3VtZW50LmlkbCAq
LzsgfTsKKwkJQTgzM0M5QUMwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0FFbGVtZW50LmlkbCBpbiBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5NDIwQTJD
RjY4NzAwRDU3NjY0IC8qIFNWR0FFbGVtZW50LmlkbCAqLzsgfTsKKwkJQTgzM0M5QUQwQTJDRjY4
ODAwRDU3NjY0IC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk0MzBBMkNGNjg3MDBENTc2NjQg
LyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5pZGwgKi87IH07CisJCUE4MzNDOUFFMEEyQ0Y2ODgw
MEQ1NzY2NCAvKiBTVkdBbmltYXRlZEFuZ2xlLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5NDQwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0Fu
aW1hdGVkQW5nbGUuaWRsICovOyB9OworCQlBODMzQzlBRjBBMkNGNjg4MDBENTc2NjQgLyogU1ZH
QW5pbWF0ZWRCb29sZWFuLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTgzM0M5NDUwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0FuaW1hdGVkQm9vbGVh
bi5pZGwgKi87IH07CisJCUE4MzNDOUIwMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZEVu
dW1lcmF0aW9uLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTgzM0M5NDYwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0FuaW1hdGVkRW51bWVyYXRpb24u
aWRsICovOyB9OworCQlBODMzQzlCMTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRJbnRl
Z2VyLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTgzM0M5NDcwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0FuaW1hdGVkSW50ZWdlci5pZGwgKi87IH07
CisJCUE4MzNDOUIyMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZExlbmd0aExpc3QuaWRs
IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk0
ODBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmlkbCAqLzsgfTsKKwkJ
QTgzM0M5QjMwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0FuaW1hdGVkTnVtYmVyLmlkbCBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5NDkwQTJDRjY4
NzAwRDU3NjY0IC8qIFNWR0FuaW1hdGVkTnVtYmVyLmlkbCAqLzsgfTsKKwkJQTgzM0M5QjQwQTJD
RjY4ODAwRDU3NjY0IC8qIFNWR0FuaW1hdGVkTnVtYmVyTGlzdC5pZGwgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOTRBMEEyQ0Y2ODcwMEQ1NzY2
NCAvKiBTVkdBbmltYXRlZE51bWJlckxpc3QuaWRsICovOyB9OworCQlBODMzQzlCNTBBMkNGNjg4
MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0YS5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOTRCMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBT
VkdBbmltYXRlZFBhdGhEYXRhLmlkbCAqLzsgfTsKKwkJQTgzM0M5QjYwQTJDRjY4ODAwRDU3NjY0
IC8qIFNWR0FuaW1hdGVkUG9pbnRzLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5NEMwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0FuaW1hdGVk
UG9pbnRzLmlkbCAqLzsgfTsKKwkJQTgzM0M5QjcwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0FuaW1h
dGVkUHJlc2VydmVBc3BlY3RSYXRpby5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOTREMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW8uaWRsICovOyB9OworCQlBODMzQzlCODBBMkNGNjg4MDBENTc2
NjQgLyogU1ZHQW5pbWF0ZWRSZWN0LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5NEUwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0FuaW1hdGVk
UmVjdC5pZGwgKi87IH07CisJCUE4MzNDOUI5MEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdBbmltYXRl
ZFN0cmluZy5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4MzNDOTRGMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZFN0cmluZy5pZGwgKi87
IH07CisJCUE4MzNDOUJBMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3QuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
ODMzQzk1MDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmlkbCAq
LzsgfTsKKwkJQTgzM0M5QkIwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0FuaW1hdGVFbGVtZW50Lmlk
bCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5
NTEwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0FuaW1hdGVFbGVtZW50LmlkbCAqLzsgfTsKKwkJQTgz
M0M5QkMwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmlkbCBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5NTIw
QTJDRjY4NzAwRDU3NjY0IC8qIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmlkbCAqLzsgfTsK
KwkJQTgzM0M5QkQwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0FuaW1hdGlvbkVsZW1lbnQuaWRsIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk1MzBB
MkNGNjg3MDBENTc2NjQgLyogU1ZHQW5pbWF0aW9uRWxlbWVudC5pZGwgKi87IH07CisJCUE4MzND
OUJFMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdDaXJjbGVFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5NTQwQTJDRjY4NzAwRDU3
NjY0IC8qIFNWR0NpcmNsZUVsZW1lbnQuaWRsICovOyB9OworCQlBODMzQzlCRjBBMkNGNjg4MDBE
NTc2NjQgLyogU1ZHQ2xpcFBhdGhFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5NTUwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0Ns
aXBQYXRoRWxlbWVudC5pZGwgKi87IH07CisJCUE4MzNDOUMwMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBT
VkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOTU2MEEyQ0Y2ODcwMEQ1NzY2NCAv
KiBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5pZGwgKi87IH07CisJCUE4MzND
OUMxMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdDdXJzb3JFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5NTcwQTJDRjY4NzAwRDU3
NjY0IC8qIFNWR0N1cnNvckVsZW1lbnQuaWRsICovOyB9OworCQlBODMzQzlDMjBBMkNGNjg4MDBE
NTc2NjQgLyogU1ZHRGVmc0VsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk1ODBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRGVmc0Vs
ZW1lbnQuaWRsICovOyB9OworCQlBODMzQzlDMzBBMkNGNjg4MDBENTc2NjQgLyogU1ZHRGVzY0Vs
ZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBODMzQzk1OTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRGVzY0VsZW1lbnQuaWRsICovOyB9Owor
CQlBODMzQzlDNDBBMkNGNjg4MDBENTc2NjQgLyogU1ZHRE9NSW1wbGVtZW50YXRpb24uaWRsIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk1QTBB
MkNGNjg3MDBENTc2NjQgLyogU1ZHRE9NSW1wbGVtZW50YXRpb24uaWRsICovOyB9OworCQlBODMz
QzlDNTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHRWxlbWVudEluc3RhbmNlLmlkbCBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5NUIwQTJDRjY4NzAw
RDU3NjY0IC8qIFNWR0VsZW1lbnRJbnN0YW5jZS5pZGwgKi87IH07CisJCUE4MzNDOUM2MEEyQ0Y2
ODgwMEQ1NzY2NCAvKiBTVkdFbGVtZW50SW5zdGFuY2VMaXN0LmlkbCBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5NUMwQTJDRjY4NzAwRDU3NjY0
IC8qIFNWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaWRsICovOyB9OworCQlBODMzQzlDNzBBMkNGNjg4
MDBENTc2NjQgLyogU1ZHRWxsaXBzZUVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk1RDBBMkNGNjg3MDBENTc2NjQgLyogU1ZH
RWxsaXBzZUVsZW1lbnQuaWRsICovOyB9OworCQlBODMzQzlDODBBMkNGNjg4MDBENTc2NjQgLyog
U1ZHRXZlbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODMzQzk1RTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRXZlbnQuaWRsICovOyB9OworCQlB
ODMzQzlDOTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHRXhjZXB0aW9uLmlkbCBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5NUYwQTJDRjY4NzAwRDU3
NjY0IC8qIFNWR0V4Y2VwdGlvbi5pZGwgKi87IH07CisJCUE4MzNDOUNBMEEyQ0Y2ODgwMEQ1NzY2
NCAvKiBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5NjAwQTJDRjY4NzAwRDU3NjY0IC8q
IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaWRsICovOyB9OworCQlBODMzQzlDQjBBMkNG
Njg4MDBENTc2NjQgLyogU1ZHRkVCbGVuZEVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk2MTBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHRkVCbGVuZEVsZW1lbnQuaWRsICovOyB9OworCQlBODMzQzlDQzBBMkNGNjg4MDBENTc2NjQg
LyogU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk2MjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRkVD
b2xvck1hdHJpeEVsZW1lbnQuaWRsICovOyB9OworCQlBODMzQzlDRDBBMkNGNjg4MDBENTc2NjQg
LyogU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk2MzBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaWRsICovOyB9OworCQlBODMzQzlDRTBBMkNG
Njg4MDBENTc2NjQgLyogU1ZHRkVDb21wb3NpdGVFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5NjQwQTJDRjY4NzAwRDU3NjY0
IC8qIFNWR0ZFQ29tcG9zaXRlRWxlbWVudC5pZGwgKi87IH07CisJCUE4MzNDOUNGMEEyQ0Y2ODgw
MEQ1NzY2NCAvKiBTVkdGRUZsb29kRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOTY1MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdG
RUZsb29kRWxlbWVudC5pZGwgKi87IH07CisJCUE4MzNDOUQwMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBT
VkdGRUZ1bmNBRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4MzNDOTY2MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdGRUZ1bmNBRWxlbWVu
dC5pZGwgKi87IH07CisJCUE4MzNDOUQxMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdGRUZ1bmNCRWxl
bWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4MzNDOTY3MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdGRUZ1bmNCRWxlbWVudC5pZGwgKi87IH07
CisJCUE4MzNDOUQyMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdGRUZ1bmNHRWxlbWVudC5pZGwgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOTY4MEEy
Q0Y2ODcwMEQ1NzY2NCAvKiBTVkdGRUZ1bmNHRWxlbWVudC5pZGwgKi87IH07CisJCUE4MzNDOUQz
MEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdGRUZ1bmNSRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOTY5MEEyQ0Y2ODcwMEQ1NzY2
NCAvKiBTVkdGRUZ1bmNSRWxlbWVudC5pZGwgKi87IH07CisJCUE4MzNDOUQ0MEEyQ0Y2ODgwMEQ1
NzY2NCAvKiBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk2QTBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmlkbCAqLzsgfTsKKwkJQTgzM0M5RDUwQTJDRjY4ODAw
RDU3NjY0IC8qIFNWR0ZFSW1hZ2VFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5NkIwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0ZF
SW1hZ2VFbGVtZW50LmlkbCAqLzsgfTsKKwkJQTgzM0M5RDYwQTJDRjY4ODAwRDU3NjY0IC8qIFNW
R0ZFTWVyZ2VFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTgzM0M5NkMwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0ZFTWVyZ2VFbGVtZW50
LmlkbCAqLzsgfTsKKwkJQTgzM0M5RDcwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0ZFTWVyZ2VOb2Rl
RWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4MzNDOTZEMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdGRU1lcmdlTm9kZUVsZW1lbnQuaWRs
ICovOyB9OworCQlBODMzQzlEODBBMkNGNjg4MDBENTc2NjQgLyogU1ZHRkVPZmZzZXRFbGVtZW50
LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgz
M0M5NkUwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0ZFT2Zmc2V0RWxlbWVudC5pZGwgKi87IH07CisJ
CUE4MzNDOUQ5MEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdGRVRpbGVFbGVtZW50LmlkbCBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5NkYwQTJDRjY4
NzAwRDU3NjY0IC8qIFNWR0ZFVGlsZUVsZW1lbnQuaWRsICovOyB9OworCQlBODMzQzlEQTBBMkNG
Njg4MDBENTc2NjQgLyogU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOTcwMEEyQ0Y2ODcwMEQ1NzY2
NCAvKiBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmlkbCAqLzsgfTsKKwkJQTgzM0M5REIwQTJDRjY4
ODAwRDU3NjY0IC8qIFNWR0ZpbHRlckVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk3MTBBMkNGNjg3MDBENTc2NjQgLyogU1ZH
RmlsdGVyRWxlbWVudC5pZGwgKi87IH07CisJCUE4MzNDOURDMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaWRsIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk3MjBBMkNGNjg3MDBENTc2NjQg
LyogU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmlkbCAqLzsgfTsKKwkJQTgz
M0M5REQwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0ZpdFRvVmlld0JveC5pZGwgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOTczMEEyQ0Y2ODcwMEQ1
NzY2NCAvKiBTVkdGaXRUb1ZpZXdCb3guaWRsICovOyB9OworCQlBODMzQzlERTBBMkNGNjg4MDBE
NTc2NjQgLyogU1ZHR0VsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk3NDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHR0VsZW1lbnQu
aWRsICovOyB9OworCQlBODMzQzlERjBBMkNGNjg4MDBENTc2NjQgLyogU1ZHR3JhZGllbnRFbGVt
ZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTgzM0M5NzUwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0dyYWRpZW50RWxlbWVudC5pZGwgKi87IH07
CisJCUE4MzNDOUUwMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdJQ0NDb2xvci5pZGwgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOTc2MEEyQ0Y2ODcw
MEQ1NzY2NCAvKiBTVkdJQ0NDb2xvci5pZGwgKi87IH07CisJCUE4MzNDOUUxMEEyQ0Y2ODgwMEQ1
NzY2NCAvKiBTVkdJbWFnZUVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk3NzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHSW1hZ2VF
bGVtZW50LmlkbCAqLzsgfTsKKwkJQTgzM0M5RTIwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0xhbmdT
cGFjZS5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4MzNDOTc4MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdMYW5nU3BhY2UuaWRsICovOyB9OworCQlB
ODMzQzlFMzBBMkNGNjg4MDBENTc2NjQgLyogU1ZHTGVuZ3RoTGlzdC5pZGwgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOTc5MEEyQ0Y2ODcwMEQ1
NzY2NCAvKiBTVkdMZW5ndGhMaXN0LmlkbCAqLzsgfTsKKwkJQTgzM0M5RTQwQTJDRjY4ODAwRDU3
NjY0IC8qIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOTdBMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBT
VkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaWRsICovOyB9OworCQlBODMzQzlFNTBBMkNGNjg4MDBE
NTc2NjQgLyogU1ZHTGluZUVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk3QjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHTGluZUVs
ZW1lbnQuaWRsICovOyB9OworCQlBODMzQzlFNjBBMkNGNjg4MDBENTc2NjQgLyogU1ZHTG9jYXRh
YmxlLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTgzM0M5N0MwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0xvY2F0YWJsZS5pZGwgKi87IH07CisJCUE4
MzNDOUU3MEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdNYXJrZXJFbGVtZW50LmlkbCBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5N0QwQTJDRjY4NzAw
RDU3NjY0IC8qIFNWR01hcmtlckVsZW1lbnQuaWRsICovOyB9OworCQlBODMzQzlFODBBMkNGNjg4
MDBENTc2NjQgLyogU1ZHTnVtYmVyTGlzdC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOTdFMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdOdW1i
ZXJMaXN0LmlkbCAqLzsgfTsKKwkJQTgzM0M5RTkwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1BhaW50
LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgz
M0M5N0YwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhaW50LmlkbCAqLzsgfTsKKwkJQTgzM0M5RUEw
QTJDRjY4ODAwRDU3NjY0IC8qIFNWR1BhdGhFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5ODAwQTJDRjY4NzAwRDU3NjY0IC8q
IFNWR1BhdGhFbGVtZW50LmlkbCAqLzsgfTsKKwkJQTgzM0M5RUIwQTJDRjY4ODAwRDU3NjY0IC8q
IFNWR1BhdGhTZWcuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBODMzQzk4MTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZy5pZGwgKi87IH07
CisJCUE4MzNDOUVDMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdQYXRoU2VnQXJjLmlkbCBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5ODIwQTJDRjY4
NzAwRDU3NjY0IC8qIFNWR1BhdGhTZWdBcmMuaWRsICovOyB9OworCQlBODMzQzlFRDBBMkNGNjg4
MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOTgzMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBT
VkdQYXRoU2VnQ2xvc2VQYXRoLmlkbCAqLzsgfTsKKwkJQTgzM0M5RUUwQTJDRjY4ODAwRDU3NjY0
IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWMuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk4NDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0
aFNlZ0N1cnZldG9DdWJpYy5pZGwgKi87IH07CisJCUE4MzNDOUVGMEEyQ0Y2ODgwMEQ1NzY2NCAv
KiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5ODUwQTJDRjY4NzAwRDU3NjY0IC8qIFNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGguaWRsICovOyB9OworCQlBODMzQzlGMDBBMkNGNjg4
MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWMuaWRsIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk4NjBBMkNGNjg3MDBENTc2
NjQgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWMuaWRsICovOyB9OworCQlBODMzQzlGMTBB
MkNGNjg4MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGguaWRsIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk4NzBB
MkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGguaWRsICov
OyB9OworCQlBODMzQzlGMjBBMkNGNjg4MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0xpbmV0by5pZGwg
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOTg4
MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRoU2VnTGluZXRvLmlkbCAqLzsgfTsKKwkJQTgzM0M5
RjMwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsLmlkbCBpbiBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5ODkwQTJD
RjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsLmlkbCAqLzsgfTsKKwkJ
QTgzM0M5RjQwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbC5pZGwg
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOThB
MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRoU2VnTGluZXRvVmVydGljYWwuaWRsICovOyB9Owor
CQlBODMzQzlGNTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0xpc3QuaWRsIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk4QjBBMkNGNjg3
MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0xpc3QuaWRsICovOyB9OworCQlBODMzQzlGNjBBMkNGNjg4
MDBENTc2NjQgLyogU1ZHUGF0aFNlZ01vdmV0by5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOThDMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQ
YXRoU2VnTW92ZXRvLmlkbCAqLzsgfTsKKwkJQTgzM0M5RjcwQTJDRjY4ODAwRDU3NjY0IC8qIFNW
R1BhdHRlcm5FbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTgzM0M5OEQwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdHRlcm5FbGVtZW50
LmlkbCAqLzsgfTsKKwkJQTgzM0M5RjgwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1BvaW50TGlzdC5p
ZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzND
OThFMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQb2ludExpc3QuaWRsICovOyB9OworCQlBODMzQzlG
OTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHUG9seWdvbkVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk4RjBBMkNGNjg3MDBENTc2
NjQgLyogU1ZHUG9seWdvbkVsZW1lbnQuaWRsICovOyB9OworCQlBODMzQzlGQTBBMkNGNjg4MDBE
NTc2NjQgLyogU1ZHUG9seWxpbmVFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5OTAwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1Bv
bHlsaW5lRWxlbWVudC5pZGwgKi87IH07CisJCUE4MzNDOUZCMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5OTEwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW8uaWRsICovOyB9OworCQlBODMzQzlGQzBBMkNGNjg4MDBENTc2NjQgLyogU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5OTIwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1JhZGlhbEdy
YWRpZW50RWxlbWVudC5pZGwgKi87IH07CisJCUE4MzNDOUZEMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBT
VkdSZWN0RWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4MzNDOTkzMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdSZWN0RWxlbWVudC5pZGwg
Ki87IH07CisJCUE4MzNDOUZFMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdSZW5kZXJpbmdJbnRlbnQu
aWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMz
Qzk5NDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUmVuZGVyaW5nSW50ZW50LmlkbCAqLzsgfTsKKwkJ
QTgzM0M5RkYwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1NjcmlwdEVsZW1lbnQuaWRsIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk5NTBBMkNGNjg3
MDBENTc2NjQgLyogU1ZHU2NyaXB0RWxlbWVudC5pZGwgKi87IH07CisJCUE4MzNDQTAwMEEyQ0Y2
ODgwMEQ1NzY2NCAvKiBTVkdTZXRFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5OTYwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1Nl
dEVsZW1lbnQuaWRsICovOyB9OworCQlBODMzQ0EwMTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHU3Rv
cEVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODMzQzk5NzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHU3RvcEVsZW1lbnQuaWRsICovOyB9
OworCQlBODMzQ0EwMjBBMkNGNjg4MDBENTc2NjQgLyogU1ZHU3RyaW5nTGlzdC5pZGwgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOTk4MEEyQ0Y2
ODcwMEQ1NzY2NCAvKiBTVkdTdHJpbmdMaXN0LmlkbCAqLzsgfTsKKwkJQTgzM0NBMDMwQTJDRjY4
ODAwRDU3NjY0IC8qIFNWR1N0eWxhYmxlLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5OTkwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1N0eWxh
YmxlLmlkbCAqLzsgfTsKKwkJQTgzM0NBMDQwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1N0eWxlRWxl
bWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4MzNDOTlBMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdTdHlsZUVsZW1lbnQuaWRsICovOyB9Owor
CQlBODMzQ0EwNTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHU3dpdGNoRWxlbWVudC5pZGwgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOTlCMEEyQ0Y2
ODcwMEQ1NzY2NCAvKiBTVkdTd2l0Y2hFbGVtZW50LmlkbCAqLzsgfTsKKwkJQTgzM0NBMDYwQTJD
RjY4ODAwRDU3NjY0IC8qIFNWR1N5bWJvbEVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk5QzBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHU3ltYm9sRWxlbWVudC5pZGwgKi87IH07CisJCUE4MzNDQTA3MEEyQ0Y2ODgwMEQ1NzY2NCAv
KiBTVkdUZXN0cy5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4MzNDOTlEMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdUZXN0cy5pZGwgKi87IH07CisJ
CUE4MzNDQTA4MEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdUZXh0Q29udGVudEVsZW1lbnQuaWRsIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzk5RTBB
MkNGNjg3MDBENTc2NjQgLyogU1ZHVGV4dENvbnRlbnRFbGVtZW50LmlkbCAqLzsgfTsKKwkJQTgz
M0NBMDkwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1RleHRFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5OUYwQTJDRjY4NzAwRDU3
NjY0IC8qIFNWR1RleHRFbGVtZW50LmlkbCAqLzsgfTsKKwkJQTgzM0NBMEEwQTJDRjY4ODAwRDU3
NjY0IC8qIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzlBMDBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5pZGwgKi87IH07CisJCUE4MzNDQTBCMEEyQ0Y2ODgw
MEQ1NzY2NCAvKiBTVkdUaXRsZUVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzlBMTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHVGl0
bGVFbGVtZW50LmlkbCAqLzsgfTsKKwkJQTgzM0NBMEMwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1Ry
YW5zZm9ybWFibGUuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBODMzQzlBMjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHVHJhbnNmb3JtYWJsZS5pZGwg
Ki87IH07CisJCUE4MzNDQTBEMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdUcmFuc2Zvcm1MaXN0Lmlk
bCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5
QTMwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1RyYW5zZm9ybUxpc3QuaWRsICovOyB9OworCQlBODMz
Q0EwRTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHVFNwYW5FbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5QTQwQTJDRjY4NzAwRDU3
NjY0IC8qIFNWR1RTcGFuRWxlbWVudC5pZGwgKi87IH07CisJCUE4MzNDQTBGMEEyQ0Y2ODgwMEQ1
NzY2NCAvKiBTVkdVbml0VHlwZXMuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODMzQzlBNTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHVW5pdFR5cGVz
LmlkbCAqLzsgfTsKKwkJQTgzM0NBMTAwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1VSSVJlZmVyZW5j
ZS5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
MzNDOUE2MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdVUklSZWZlcmVuY2UuaWRsICovOyB9OworCQlB
ODMzQ0ExMTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHVXNlRWxlbWVudC5pZGwgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDOUE3MEEyQ0Y2ODcwMEQ1
NzY2NCAvKiBTVkdVc2VFbGVtZW50LmlkbCAqLzsgfTsKKwkJQTgzM0NBMTIwQTJDRjY4ODAwRDU3
NjY0IC8qIFNWR1ZpZXdFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTgzM0M5QTgwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1ZpZXdFbGVt
ZW50LmlkbCAqLzsgfTsKKwkJQTgzM0NBMTMwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1pvb21BbmRQ
YW4uaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
ODMzQzlBOTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHWm9vbUFuZFBhbi5pZGwgKi87IH07CisJCUE4
MzNDQTE0MEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdab29tRXZlbnQuaWRsIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzlBQTBBMkNGNjg3MDBENTc2
NjQgLyogU1ZHWm9vbUV2ZW50LmlkbCAqLzsgfTsKIAkJQTg2NjI5Q0YwOURBMkI0NzAwOTYzM0E1
IC8qIEpTVUlFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTg2NjI5QzkwOURBMkI0NzAwOTYzM0E1IC8qIEpTVUlFdmVudC5oICovOyB9OwogCQlB
ODY2MjlEMDA5REEyQjQ4MDA5NjMzQTUgLyogSlNVSUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NjYyOUNBMDlEQTJCNDcwMDk2MzNBNSAv
KiBKU1VJRXZlbnQuY3BwICovOyB9OwogCQlBODY2MjlEMTA5REEyQjQ4MDA5NjMzQTUgLyogSlNN
b3VzZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBODY2MjlDQjA5REEyQjQ3MDA5NjMzQTUgLyogSlNNb3VzZUV2ZW50LmggKi87IH07CkBAIC0x
MTQ0LDExICsxMjgxLDYgQEAKIAkJQTg4QUQ1MEMwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1pvb21B
bmRQYW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
QzBGOEVDMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdab29tQW5kUGFuLmggKi87IH07CiAJCUE4OEFE
NTBEMDk1MjQ4RjAwMDFERDE5NiAvKiBrc3ZnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjhFRDA4OTcwMUY0MDBCQTUxMTQgLyoga3N2Zy5oICov
OyB9OwogCQlBODhBRDUxNzA5NTI0OTlGMDAxREQxOTYgLyogRE9NTGlzdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg4NDI4M0QwOTMwOEMxQzAwQjZE
NDYxIC8qIERPTUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQlBODhBRDUxODA5NTI0OTlGMDAxREQxOTYgLyogUkdCQ29sb3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4ODQyODNFMDkzMDhDMUMw
MEI2RDQ2MSAvKiBSR0JDb2xvci5oICovOyB9OwotCQlBODhBRDUxQjA5NTI0OTlGMDAxREQxOTYg
LyogUkdCQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTg4NDI4M0YwOTMwOEMxQzAwQjZENDYxIC8qIFJHQkNvbG9yLmNwcCAqLzsgfTsKLQkJ
QTg4QUQ1MUMwOTUyNDk5RjAwMUREMTk2IC8qIFNWR0VsZW1lbnRGYWN0b3J5V3JhcHBlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODg0MjgzOTA5
MzA4QzFDMDBCNkQ0NjEgLyogU1ZHRWxlbWVudEZhY3RvcnlXcmFwcGVyLmNwcCAqLzsgfTsKLQkJ
QTg4QUQ1MUQwOTUyNDk5RjAwMUREMTk2IC8qIFhMaW5rTmFtZXNXcmFwcGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzMyRDk2MDkzRDhFQTQw
MDBCOUNBQyAvKiBYTGlua05hbWVzV3JhcHBlci5jcHAgKi87IH07Ci0JCUE4OEFENTFFMDk1MjQ5
OUYwMDFERDE5NiAvKiBTVkdOYW1lc1dyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg4NDI4MzgwOTMwOEMxQzAwQjZENDYxIC8qIFNWR05h
bWVzV3JhcHBlci5jcHAgKi87IH07CiAJCUE4OEFENTJGMDk1MjRCOTIwMDFERDE5NiAvKiBRdWFy
dHpDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4NUQ3QTJGMDg3OUVCQTkwMDZBOTE3MiAvKiBRdWFydHpDb3JlLmZyYW1ld29y
ayAqLzsgfTsKIAkJQTg4QUQ1QUEwOTUyNTEzMTAwMUREMTk2IC8qIFNWR0NTU1N0eWxlU2VsZWN0
b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThD
MEY2RkIwODk3MDFGMTAwQkE1MTE0IC8qIFNWR0NTU1N0eWxlU2VsZWN0b3IuY3BwICovOyB9Owog
CQlBOEM0QTdGRDA5RDU2MzI3MDAwM0FDOEQgLyogU3R5bGVkRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDNEE3RUIwOUQ1NjMyNzAwMDNB
QzhEIC8qIFN0eWxlZEVsZW1lbnQuaCAqLzsgfTsKQEAgLTExOTcsMTEgKzEzMjksOCBAQAogCQlB
OEQwNUZBODBBMjNCMzAxMDA1RTcyMDMgLyogSlNDU1NSdWxlTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThEMDVGQTYwQTIzQjMwMTAwNUU3MjAz
IC8qIEpTQ1NTUnVsZUxpc3QuaCAqLzsgfTsKIAkJQThEMDVGQUIwQTIzQjMwRjAwNUU3MjAzIC8q
IEpTQ1NTVmFsdWVMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4RDA1RkE5MEEyM0IzMEYwMDVFNzIwMyAvKiBKU0NTU1ZhbHVlTGlzdC5jcHAg
Ki87IH07CiAJCUE4RDA1RkFDMEEyM0IzMEYwMDVFNzIwMyAvKiBKU0NTU1ZhbHVlTGlzdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThEMDVGQUEwQTIz
QjMwRjAwNUU3MjAzIC8qIEpTQ1NTVmFsdWVMaXN0LmggKi87IH07Ci0JCUE4RDA2NEYwMEEyM0JG
RUEwMDVFNzIwMyAvKiBIVE1MRm9ybUVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEQwNjRFRjBBMjNCRkVBMDA1RTcyMDMgLyogSFRN
TEZvcm1FbGVtZW50LmlkbCAqLzsgfTsKIAkJQThEMDY0RkIwQTIzQzBDQzAwNUU3MjAzIC8qIEpT
SFRNTEZvcm1FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4RDA2NEY5MEEyM0MwQ0MwMDVFNzIwMyAvKiBKU0hUTUxGb3JtRWxlbWVudC5j
cHAgKi87IH07CiAJCUE4RDA2NEZDMEEyM0MwQ0MwMDVFNzIwMyAvKiBKU0hUTUxGb3JtRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThEMDY0
RkEwQTIzQzBDQzAwNUU3MjAzIC8qIEpTSFRNTEZvcm1FbGVtZW50LmggKi87IH07Ci0JCUE4RDA2
NTFEMEEyM0MxRkUwMDVFNzIwMyAvKiBDU1NSdWxlTGlzdC5pZGwgaW4gUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RDA2NTFCMEEyM0MxRkUwMDVFNzIwMyAv
KiBDU1NSdWxlTGlzdC5pZGwgKi87IH07Ci0JCUE4RDA2NTFFMEEyM0MxRkUwMDVFNzIwMyAvKiBD
U1NWYWx1ZUxpc3QuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEQwNjUxQzBBMjNDMUZFMDA1RTcyMDMgLyogQ1NTVmFsdWVMaXN0LmlkbCAqLzsg
fTsKIAkJQThEMDY1QUUwQTI0NDZDRDAwNUU3MjAzIC8qIEpTSFRNTEZvcm1FbGVtZW50Q3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RDA2
NUFEMEEyNDQ2Q0QwMDVFNzIwMyAvKiBKU0hUTUxGb3JtRWxlbWVudEN1c3RvbS5jcHAgKi87IH07
CiAJCUE4RDA2QjM5MEEyNjVEQ0QwMDVFNzIwMyAvKiBIVE1MTmFtZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RDA2QjM3MEEyNjVEQ0QwMDVFNzIw
MyAvKiBIVE1MTmFtZXMuaCAqLzsgfTsKIAkJQThEMDZCM0EwQTI2NURDRDAwNUU3MjAzIC8qIEhU
TUxOYW1lcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOEQwNkIzODBBMjY1RENEMDA1RTcyMDMgLyogSFRNTE5hbWVzLmNwcCAqLzsgfTsKQEAgLTIy
MTgsMTI1ICsyMzQ3LDYgQEAKIAkJQTgwRTdFOTYwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTEJ1
dHRvbkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
SFRNTEJ1dHRvbkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODEw
RTM5MzA4QTQxNjBGMDAzMzNEOTggLyogS0NhbnZhc1RyZWVEZWJ1Zy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtDYW52YXNUcmVlRGVidWcuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJ
CUE4MTBFMzk0MDhBNDE2MEYwMDMzM0Q5OCAvKiBLQ2FudmFzVHJlZURlYnVnLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS0NhbnZhc1Ry
ZWVEZWJ1Zy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwotCQlBODEyMkM3RTA4RDU2NEIwMDA4NDRGQTMgLyogR2V0U1ZHRG9jdW1lbnQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2V0U1ZHRG9jdW1l
bnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0g
MDsgfTsKLQkJQTgxMjJDN0YwOEQ1NjRCMDAwODQ0RkEzIC8qIGtkb21kZWZzLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGtkb21kZWZzLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQzgw
MDhENTY0QjAwMDg0NEZBMyAvKiBTVkdBRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBTVkdBRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkM4MTA4RDU2NEIwMDA4
NDRGQTMgLyogU1ZHQW5nbGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gU1ZHQW5nbGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDODIwOEQ1NjRCMDAwODQ0RkEzIC8qIFNWR0FuaW1h
dGVDb2xvckVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkM4MzA4RDU2NEIwMDA4NDRGQTMg
LyogU1ZHQW5pbWF0ZWRBbmdsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBTVkdBbmltYXRlZEFuZ2xlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQzg0MDhENTY0QjAwMDg0NEZBMyAv
KiBTVkdBbmltYXRlZEJvb2xlYW4uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gU1ZHQW5pbWF0ZWRCb29sZWFuLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQzg1MDhENTY0QjAwMDg0NEZB
MyAvKiBTVkdBbmltYXRlZEVudW1lcmF0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFNWR0FuaW1hdGVkRW51bWVyYXRpb24uaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDODYwOEQ1
NjRCMDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkSW50ZWdlci5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdBbmltYXRlZEludGVnZXIuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDODcw
OEQ1NjRCMDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkTGVuZ3RoLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0FuaW1hdGVkTGVuZ3RoLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQzg4
MDhENTY0QjAwMDg0NEZBMyAvKiBTVkdBbmltYXRlZExlbmd0aExpc3QuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0J
CUE4MTIyQzg5MDhENTY0QjAwMDg0NEZBMyAvKiBTVkdBbmltYXRlZE51bWJlci5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdBbmltYXRlZE51bWJlci5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9Owot
CQlBODEyMkM4QTA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0FuaW1hdGVkTnVtYmVy
TGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMg
PSAwOyB9OwotCQlBODEyMkM4QjA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0
YS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdBbmltYXRl
ZFBhdGhEYXRhLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07Ci0JCUE4MTIyQzhDMDhENTY0QjAwMDg0NEZBMyAvKiBTVkdBbmltYXRlZFBv
aW50cy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdBbmlt
YXRlZFBvaW50cy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwotCQlBODEyMkM4RDA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkM4RTA4RDU2
NEIwMDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRSZWN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFNWR0FuaW1hdGVkUmVjdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkM4RjA4RDU2NEIw
MDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDOTAwOEQ1NjRC
MDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJ
QTgxMjJDOTEwOEQ1NjRCMDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVFbGVtZW50LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0FuaW1hdGVFbGVtZW50LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0J
CUE4MTIyQzkyMDhENTY0QjAwMDg0NEZBMyAvKiBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdBbmltYXRlVHJh
bnNmb3JtRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkM5MzA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHQW5pbWF0
aW9uRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBT
VkdBbmltYXRpb25FbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQzk0MDhENTY0QjAwMDg0NEZBMyAvKiBTVkdD
aXJjbGVFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFNWR0NpcmNsZUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDOTUwOEQ1NjRCMDAwODQ0RkEzIC8qIFNWR0Ns
aXBQYXRoRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBTVkdDbGlwUGF0aEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDOTYwOEQ1NjRCMDAwODQ0RkEzIC8qIFNW
R0NvbG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0Nv
bG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07Ci0JCUE4MTIyQzk3MDhENTY0QjAwMDg0NEZBMyAvKiBTVkdDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkM5ODA4
RDU2NEIwMDA4NDRGQTMgLyogU1ZHQ3Vyc29yRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdDdXJzb3JFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQzk5MDhE
NTY0QjAwMDg0NEZBMyAvKiBTVkdEZWZzRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBTVkdEZWZzRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkM5QTA4RDU2NEIw
MDA4NDRGQTMgLyogU1ZHRGVzY0VsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gU1ZHRGVzY0VsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDOUIwOEQ1NjRCMDAwODQ0
RkEzIC8qIFNWR0RvY3VtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFNWR0RvY3VtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQzlDMDhENTY0QjAwMDg0NEZBMyAvKiBTVkdE
T01JbXBsZW1lbnRhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBTVkdET01JbXBsZW1lbnRhdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkM5RDA4RDU2NEIwMDA4NDRGQTMg
LyogU1ZHRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBTVkdFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1
c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQzlFMDhENTY0QjAwMDg0NEZBMyAvKiBTVkdFbGVtZW50
SW5zdGFuY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZH
RWxlbWVudEluc3RhbmNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQzlGMDhENTY0QjAwMDg0NEZBMyAvKiBTVkdFbGVt
ZW50SW5zdGFuY2VMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFNWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDQTAwOEQ1NjRCMDAwODQ0RkEz
IC8qIFNWR0VsbGlwc2VFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNWR0VsbGlwc2VFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQ0ExMDhENTY0QjAwMDg0NEZB
MyAvKiBTVkdFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBTVkdFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwotCQlBODEyMkNBMjA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHRXhjZXB0aW9u
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0V4Y2VwdGlv
bi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwotCQlBODEyMkNBMzA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQ0E0MDhENTY0QjAwMDg0NEZBMyAv
KiBTVkdGRUJsZW5kRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBTVkdGRUJsZW5kRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkNBNTA4RDU2NEIwMDA4NDRGQTMg
LyogU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDQTYwOEQ1
NjRCMDAwODQ0RkEzIC8qIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJF
bGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07Ci0JCUE4MTIyQ0E3MDhENTY0QjAwMDg0NEZBMyAvKiBTVkdGRUNvbXBvc2l0ZUVs
ZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHRkVD
b21wb3NpdGVFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQ0E4MDhENTY0QjAwMDg0NEZBMyAvKiBTVkdGRUZs
b29kRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBT
VkdGRUZsb29kRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkNBOTA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHRkVG
dW5jQUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
U1ZHRkVGdW5jQUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDQUEwOEQ1NjRCMDAwODQ0RkEzIC8qIFNWR0ZF
RnVuY0JFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFNWR0ZFRnVuY0JFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQ0FCMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdG
RUZ1bmNHRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBTVkdGRUZ1bmNHRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkNBQzA4RDU2NEIxMDA4NDRGQTMgLyogU1ZH
RkVGdW5jUkVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gU1ZHRkVGdW5jUkVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDQUQwOEQ1NjRCMTAwODQ0RkEzIC8qIFNW
R0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDQUUwOEQ1NjRC
MTAwODQ0RkEzIC8qIFNWR0ZFSW1hZ2VFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFNWR0ZFSW1hZ2VFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQ0FGMDhENTY0
QjEwMDg0NEZBMyAvKiBTVkdGRU1lcmdlRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBTVkdGRU1lcmdlRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkNCMDA4RDU2
NEIxMDA4NDRGQTMgLyogU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0ZFTWVyZ2VOb2RlRWxlbWVudC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEy
MkNCMTA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHRkVPZmZzZXRFbGVtZW50LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0ZFT2Zmc2V0RWxlbWVudC5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlB
ODEyMkNCMjA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHRkVUaWxlRWxlbWVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdGRVRpbGVFbGVtZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4
MTIyQ0IzMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0ZFVHVyYnVsZW5jZUVsZW1l
bnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0g
MDsgfTsKLQkJQTgxMjJDQjQwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR0ZpbHRlckVsZW1lbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHRmlsdGVyRWxlbWVu
dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwotCQlBODEyMkNCNTA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHRmlsdGVyUHJpbWl0aXZlU3Rh
bmRhcmRBdHRyaWJ1dGVzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkNCNjA4
RDU2NEIxMDA4NDRGQTMgLyogU1ZHRml0VG9WaWV3Qm94LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0ZpdFRvVmlld0JveC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkNCNzA4RDU2
NEIxMDA4NDRGQTMgLyogU1ZHR0VsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gU1ZHR0VsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDQjgwOEQ1NjRCMTAwODQ0RkEz
IC8qIFNWR0dyYWRpZW50RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBTVkdHcmFkaWVudEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDQjkwOEQ1NjRCMTAwODQ0
RkEzIC8qIFNWR0lDQ0NvbG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFNWR0lDQ0NvbG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQ0JBMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdJ
bWFnZUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
U1ZHSW1hZ2VFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQ0JCMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdMYW5n
U3BhY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHTGFu
Z1NwYWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07Ci0JCUE4MTIyQ0JDMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdMZW5ndGguaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHTGVuZ3RoLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4
MTIyQ0JEMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdMZW5ndGhMaXN0LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0xlbmd0aExpc3QuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDQkUw
OEQ1NjRCMTAwODQ0RkEzIC8qIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKLQkJQTgxMjJDQkYwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR0xpbmVFbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0xpbmVFbGVtZW50LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0J
CUE4MTIyQ0MwMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdMb2NhdGFibGUuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHTG9jYXRhYmxlLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQ0Mx
MDhENTY0QjEwMDg0NEZBMyAvKiBTVkdNYXJrZXJFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR01hcmtlckVsZW1lbnQuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDQzIw
OEQ1NjRCMTAwODQ0RkEzIC8qIFNWR01hdHJpeC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBTVkdNYXRyaXguaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDQzMwOEQ1NjRCMTAwODQ0RkEz
IC8qIFNWR051bWJlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBTVkdOdW1iZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDQzQwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR051bWJlckxp
c3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHTnVtYmVy
TGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMg
PSAwOyB9OwotCQlBODEyMkNDNTA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHUGFpbnQuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHUGFpbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJD
QzYwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1BhdGhFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR1BhdGhFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQ0M3MDhE
NTY0QjEwMDg0NEZBMyAvKiBTVkdQYXRoU2VnLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFNWR1BhdGhTZWcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDQzgwOEQ1NjRCMTAwODQ0RkEz
IC8qIFNWR1BhdGhTZWdBcmMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gU1ZHUGF0aFNlZ0FyYy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkNDOTA4RDU2NEIxMDA4NDRGQTMgLyogU1ZH
UGF0aFNlZ0Nsb3NlUGF0aC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBTVkdQYXRoU2VnQ2xvc2VQYXRoLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQ0NBMDhENTY0QjEwMDg0NEZBMyAv
KiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWMuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDQ0IwOEQ1NjRC
MTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGguaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290
aC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwotCQlBODEyMkNDQzA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFk
cmF0aWMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDQ0QwOEQ1NjRCMTAwODQ0RkEzIC8qIFNW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0J
CUE4MTIyQ0NFMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdQYXRoU2VnTGluZXRvLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR1BhdGhTZWdMaW5ldG8uaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJ
QTgxMjJDQ0YwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRX
aWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR1BhdGhTZWdMaW5l
dG9Ib3Jpem9udGFsLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1
c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQ0QwMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdQYXRoU2Vn
TGluZXRvVmVydGljYWwuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQ0QxMDhENTY0QjEwMDg0NEZB
MyAvKiBTVkdQYXRoU2VnTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBTVkdQYXRoU2VnTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkNEMjA4RDU2NEIxMDA4NDRGQTMgLyog
U1ZHUGF0aFNlZ01vdmV0by5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBTVkdQYXRoU2VnTW92ZXRvLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQ0QzMDhENTY0QjEwMDg0NEZBMyAvKiBT
VkdQYXR0ZXJuRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBTVkdQYXR0ZXJuRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkNENDA4RDU2NEIxMDA4NDRGQTMgLyog
U1ZHUG9pbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZH
UG9pbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKLQkJQTgxMjJDRDUwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1BvaW50TGlzdC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdQb2ludExpc3QuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
LQkJQTgxMjJDRDYwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1BvbHlnb25FbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR1BvbHlnb25FbGVtZW50Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
Ci0JCUE4MTIyQ0Q3MDhENTY0QjEwMDg0NEZBMyAvKiBTVkdQb2x5bGluZUVsZW1lbnQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHUG9seWxpbmVFbGVtZW50
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7
IH07Ci0JCUE4MTIyQ0Q4MDhENTY0QjEwMDg0NEZBMyAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW8uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDRDkwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1JhZGlhbEdy
YWRpZW50RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDREEwOEQ1NjRCMTAwODQ0RkEz
IC8qIFNWR1JlY3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
U1ZHUmVjdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwotCQlBODEyMkNEQjA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHUmVjdEVsZW1lbnQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHUmVjdEVsZW1l
bnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0g
MDsgfTsKLQkJQTgxMjJDREMwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1JlbmRlcmluZ0ludGVudC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdSZW5kZXJpbmdJ
bnRlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKLQkJQTgxMjJDREQwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1NjcmlwdEVsZW1lbnQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHU2NyaXB0RWxl
bWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMg
PSAwOyB9OwotCQlBODEyMkNERTA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHU2V0RWxlbWVudC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdTZXRFbGVtZW50Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
Ci0JCUE4MTIyQ0RGMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdTdG9wRWxlbWVudC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdTdG9wRWxlbWVudC5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlB
ODEyMkNFMDA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHU3RyaW5nTGlzdC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdTdHJpbmdMaXN0LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQ0Ux
MDhENTY0QjEwMDg0NEZBMyAvKiBTVkdTdHlsYWJsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBTVkdTdHlsYWJsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkNFMjA4RDU2NEIxMDA4
NDRGQTMgLyogU1ZHU3R5bGVFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFNWR1N0eWxlRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkNFMzA4RDU2NEIxMDA4NDRG
QTMgLyogU1ZHU1ZHRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBTVkdTVkdFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQ0U0MDhENTY0QjEwMDg0NEZBMyAvKiBT
VkdTd2l0Y2hFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFNWR1N3aXRjaEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDRTUwOEQ1NjRCMTAwODQ0RkEzIC8qIFNW
R1N5bWJvbEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gU1ZHU3ltYm9sRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBODEyMkNFNjA4RDU2NEIxMDA4NDRGQTMgLyogU1ZH
VGVzdHMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHVGVz
dHMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0g
MDsgfTsKLQkJQTgxMjJDRTcwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1RleHRDb250ZW50RWxlbWVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdUZXh0Q29u
dGVudEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDRTgwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1RleHRFbGVt
ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR1RleHRF
bGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07Ci0JCUE4MTIyQ0U5MDhENTY0QjEwMDg0NEZBMyAvKiBTVkdUZXh0UG9zaXRpb25p
bmdFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNW
R1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDRUEwOEQ1NjRCMTAwODQ0RkEzIC8q
IFNWR1RpdGxlRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBTVkdUaXRsZUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDRUIwOEQ1NjRCMTAwODQ0RkEzIC8qIFNW
R1RyYW5zZm9ybS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBT
VkdUcmFuc2Zvcm0uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDRUMwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1RyYW5zZm9y
bWFibGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHVHJh
bnNmb3JtYWJsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwotCQlBODEyMkNFRDA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHVHJhbnNmb3Jt
TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdUcmFu
c2Zvcm1MaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07Ci0JCUE4MTIyQ0VFMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdUU3BhbkVsZW1l
bnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHVFNwYW5F
bGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07Ci0JCUE4MTIyQ0VGMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdVbml0VHlwZXMuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHVW5pdFR5cGVzLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
Ci0JCUE4MTIyQ0YwMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdVUklSZWZlcmVuY2UuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHVVJJUmVmZXJlbmNlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0J
CUE4MTIyQ0YxMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdVc2VFbGVtZW50LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR1VzZUVsZW1lbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJD
RjIwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1ZpZXdFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR1ZpZXdFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4MTIyQ0YzMDhE
NTY0QjEwMDg0NEZBMyAvKiBTVkdab29tQW5kUGFuLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFNWR1pvb21BbmRQYW4uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQTgxMjJDRjQwOEQ1NjRCMTAw
ODQ0RkEzIC8qIFNWR1pvb21FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBTVkdab29tRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQTgxMzY5QUUwOTczNzRGNTAwRDc0NDYzIC8q
IEhUTUxJc0luZGV4RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SFRNTElzSW5kZXhFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MTM2
OUFGMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MSXNJbmRleEVsZW1lbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxJc0luZGV4RWxlbWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MTM2OUIwMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1M
SW5wdXRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MSW5w
dXRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzk2LDYgKzI0MDYs
MTUyIEBACiAJCUE4MjZFOEFEMEExQThGMjMwMENEMUJCNiAvKiBKU0hUTUxPcHRpb25FbGVtZW50
Q29uc3RydWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
SFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE4MkZDMzNCMDhDQkIwN0MwMEVGRUUyMyAvKiBTVkdDdXJzb3JFbGVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQ3Vyc29y
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKIAkJQTgyRkMzM0MwOENCQjA3QzAwRUZFRTIzIC8qIFNWR0N1cnNvckVsZW1lbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTVkdDdXJzb3JFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07CisJCUE4MzNCNEI4MEEyNzMxMUQwMEQ1NzY2NCAvKiBKU1NW
R0RvY3VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR0RvY3Vt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MzNCNEI5MEEyNzMxMUQwMEQ1
NzY2NCAvKiBKU1NWR0RvY3VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1NWR0RvY3VtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QTgzM0I5OTMwQTJCNzdENTAwRDU3NjY0IC8qIFNWR0RvY3VtZW50LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gU1ZHRG9jdW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBODMzQkE3NTBBMkJBM0Q0MDBENTc2NjQgLyogSlNTVkdSZWN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR1JlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQTgzM0JBNzcwQTJCQTNENDAwRDU3NjY0IC8qIEpTU1ZHUmVjdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdSZWN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTgzM0JBNzgwQTJCQTNENDAwRDU3NjY0IC8qIEpTU1ZHTnVtYmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR051bWJlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQkE3QjBBMkJBM0Q0MDBENTc2NjQgLyogSlNT
VkdQb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdQb2ludC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQkE3QzBBMkJBM0Q0MDBENTc2NjQg
LyogSlNTVkdQb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNTVkdQb2ludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MzNCQTdEMEEy
QkEzRDQwMEQ1NzY2NCAvKiBKU1NWR051bWJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNTVkdOdW1iZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBODMzQkU5RjBBMkMzMjkzMDBENTc2NjQgLyogU1ZHTGVuZ3RoLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gU1ZHTGVuZ3RoLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTgzM0JFQTAwQTJDMzI5MzAwRDU3NjY0IC8qIFNWR1JlY3QuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBTVkdSZWN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgz
M0JFQTEwQTJDMzI5MzAwRDU3NjY0IC8qIFNWR1BvaW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gU1ZHUG9pbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQkVB
MjBBMkMzMjkzMDBENTc2NjQgLyogU1ZHTnVtYmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gU1ZHTnVtYmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgzM0JFQzgw
QTJDMzNFODAwRDU3NjY0IC8qIFNWR0NvbG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
U1ZHQ29sb3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQkVERDBBMkMz
NDRCMDBENTc2NjQgLyogU1ZHTWF0cml4LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZH
TWF0cml4LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgzM0JGMTYwQTJDM0E5
NTAwRDU3NjY0IC8qIEpTU1ZHTWF0cml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1NWR01hdHJpeC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQkYx
NzBBMkMzQTk1MDBENTc2NjQgLyogSlNTVkdNYXRyaXguY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHTWF0cml4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTgzM0JGMTgwQTJDM0E5NTAwRDU3NjY0IC8qIEpTU1ZHQ29sb3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHQ29sb3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQTgzM0JGMTkwQTJDM0E5NTAwRDU3NjY0IC8qIEpTU1ZHQ29sb3IuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHQ29sb3IuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzA4RTBBMkM0RjNGMDBENTc2NjQgLyog
SlNTVkdTVkdFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1NWR1NWR0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMz
QzA4RjBBMkM0RjNGMDBENTc2NjQgLyogSlNTVkdTVkdFbGVtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR1NWR0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTgzM0MwQTgwQTJDNEZFQzAwRDU3NjY0IC8qIFNWR0FuZ2xlLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHQW5nbGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBODMzQzBBOTBBMkM0RkVDMDBENTc2NjQgLyogU1ZHVHJhbnNmb3JtLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHVHJhbnNmb3JtLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTgzM0MwRUQwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHRWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdFbGVtZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MzNDMEVFMEEyQzUxMzMwMEQ1NzY2NCAvKiBKU1NWR0Fu
aW1hdGVkTGVuZ3RoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR0Fu
aW1hdGVkTGVuZ3RoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MzNDMEVGMEEy
QzUxMzMwMEQ1NzY2NCAvKiBKU1NWR1RyYW5zZm9ybS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdUcmFuc2Zvcm0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBODMzQzBGMDBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdBbmdsZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdBbmdsZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBODMzQzBGMTBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdBbmltYXRl
ZExlbmd0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdB
bmltYXRlZExlbmd0aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MzNDMEYy
MEEyQzUxMzMwMEQ1NzY2NCAvKiBKU1NWR0FuZ2xlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1NWR0FuZ2xlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQTgzM0MwRjMwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHRWxlbWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdFbGVtZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgzM0MwRjQwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZH
TGVuZ3RoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR0xl
bmd0aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MzNDMEY1MEEyQzUxMzMw
MEQ1NzY2NCAvKiBKU1NWR0xlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNTVkdMZW5ndGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgzM0MwRjYw
QTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHVHJhbnNmb3JtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1NWR1RyYW5zZm9ybS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBODMzQzVFNzBBMkNDQkE0MDBENTc2NjQgLyogU1ZHRWxlbWVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFNWR0VsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBODMzQzZENjBBMkNFQTc3MDBENTc2NjQgLyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3Rv
cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHRWxlbWVudFdyYXBw
ZXJGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MzNDNkQ3MEEyQ0VB
NzcwMEQ1NzY2NCAvKiBKU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzc0NDBBMkNFQzhGMDBENTc2NjQg
LyogU1ZHU1ZHRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR1NWR0VsZW1l
bnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzdGNjBBMkNGMUQ4MDBE
NTc2NjQgLyogeG1sYXR0cnMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IHhtbGF0dHJzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzgwQTBBMkNGMjU2MDBENTc2NjQg
LyogWE1MTmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhN
TE5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgzM0M4MEIwQTJDRjI1
NjAwRDU3NjY0IC8qIFhNTE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBYTUxOYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk0MTBBMkNG
Njg3MDBENTc2NjQgLyogR2V0U1ZHRG9jdW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUg
PSBHZXRTVkdEb2N1bWVudC5pZGw7IHBhdGggPSBzdmcvR2V0U1ZHRG9jdW1lbnQuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk0MjBBMkNGNjg3MDBENTc2NjQgLyogU1ZH
QUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdBRWxlbWVudC5pZGw7IHBh
dGggPSBzdmcvU1ZHQUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
ODMzQzk0MzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaWRsOyBwYXRoID0g
c3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBODMzQzk0NDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRBbmdsZS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR0FuaW1hdGVkQW5nbGUuaWRsOyBwYXRoID0gc3ZnL1NW
R0FuaW1hdGVkQW5nbGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk0
NTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRCb29sZWFuLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBuYW1lID0gU1ZHQW5pbWF0ZWRCb29sZWFuLmlkbDsgcGF0aCA9IHN2Zy9TVkdBbmltYXRl
ZEJvb2xlYW4uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk0NjBBMkNG
Njg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgbmFtZSA9IFNWR0FuaW1hdGVkRW51bWVyYXRpb24uaWRsOyBwYXRoID0gc3ZnL1NWR0FuaW1h
dGVkRW51bWVyYXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk0
NzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRJbnRlZ2VyLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBuYW1lID0gU1ZHQW5pbWF0ZWRJbnRlZ2VyLmlkbDsgcGF0aCA9IHN2Zy9TVkdBbmltYXRl
ZEludGVnZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk0ODBBMkNG
Njg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmlkbDsgcGF0aCA9IHN2Zy9TVkdBbmltYXRl
ZExlbmd0aExpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk0OTBB
MkNGNjg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWROdW1iZXIuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IG5hbWUgPSBTVkdBbmltYXRlZE51bWJlci5pZGw7IHBhdGggPSBzdmcvU1ZHQW5pbWF0ZWROdW1i
ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk0QTBBMkNGNjg3MDBE
NTc2NjQgLyogU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmlkbDsgcGF0aCA9IHN2Zy9TVkdBbmltYXRlZE51bWJl
ckxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk0QjBBMkNGNjg3
MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0YS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFt
ZSA9IFNWR0FuaW1hdGVkUGF0aERhdGEuaWRsOyBwYXRoID0gc3ZnL1NWR0FuaW1hdGVkUGF0aERh
dGEuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk0QzBBMkNGNjg3MDBE
NTc2NjQgLyogU1ZHQW5pbWF0ZWRQb2ludHMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBT
VkdBbmltYXRlZFBvaW50cy5pZGw7IHBhdGggPSBzdmcvU1ZHQW5pbWF0ZWRQb2ludHMuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk0RDBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbDsgcGF0aCA9IHN2Zy9TVkdBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBODMzQzk0RTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRSZWN0LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBuYW1lID0gU1ZHQW5pbWF0ZWRSZWN0LmlkbDsgcGF0aCA9IHN2Zy9TVkdBbmlt
YXRlZFJlY3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk0RjBBMkNG
Njg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5h
bWUgPSBTVkdBbmltYXRlZFN0cmluZy5pZGw7IHBhdGggPSBzdmcvU1ZHQW5pbWF0ZWRTdHJpbmcu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk1MDBBMkNGNjg3MDBENTc2
NjQgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmlkbDsgcGF0aCA9IHN2Zy9TVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk1MTBB
MkNGNjg3MDBENTc2NjQgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IG5hbWUgPSBTVkdBbmltYXRlRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHQW5pbWF0ZUVsZW1l
bnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk1MjBBMkNGNjg3MDBE
NTc2NjQgLyogU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IG5hbWUgPSBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHQW5p
bWF0ZVRyYW5zZm9ybUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
ODMzQzk1MzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQW5pbWF0aW9uRWxlbWVudC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgbmFtZSA9IFNWR0FuaW1hdGlvbkVsZW1lbnQuaWRsOyBwYXRoID0gc3ZnL1NW
R0FuaW1hdGlvbkVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMz
Qzk1NDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQ2lyY2xlRWxlbWVudC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgbmFtZSA9IFNWR0NpcmNsZUVsZW1lbnQuaWRsOyBwYXRoID0gc3ZnL1NWR0NpcmNsZUVs
ZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk1NTBBMkNGNjg3
MDBENTc2NjQgLyogU1ZHQ2xpcFBhdGhFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gU1ZHQ2xpcFBhdGhFbGVtZW50LmlkbDsgcGF0aCA9IHN2Zy9TVkdDbGlwUGF0aEVsZW1lbnQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk1NjBBMkNGNjg3MDBENTc2
NjQgLyogU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5pZGw7IHBh
dGggPSBzdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk1NzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQ3Vy
c29yRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR0N1cnNvckVsZW1lbnQu
aWRsOyBwYXRoID0gc3ZnL1NWR0N1cnNvckVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBODMzQzk1ODBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRGVmc0VsZW1lbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdEZWZzRWxlbWVudC5pZGw7IHBhdGggPSBzdmcv
U1ZHRGVmc0VsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk1
OTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRGVzY0VsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IG5hbWUgPSBTVkdEZXNjRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHRGVzY0VsZW1lbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk1QTBBMkNGNjg3MDBENTc2NjQg
LyogU1ZHRE9NSW1wbGVtZW50YXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdE
T01JbXBsZW1lbnRhdGlvbi5pZGw7IHBhdGggPSBzdmcvU1ZHRE9NSW1wbGVtZW50YXRpb24uaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk1QjBBMkNGNjg3MDBENTc2NjQg
LyogU1ZHRWxlbWVudEluc3RhbmNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHRWxl
bWVudEluc3RhbmNlLmlkbDsgcGF0aCA9IHN2Zy9TVkdFbGVtZW50SW5zdGFuY2UuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk1QzBBMkNGNjg3MDBENTc2NjQgLyogU1ZH
RWxlbWVudEluc3RhbmNlTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR0VsZW1l
bnRJbnN0YW5jZUxpc3QuaWRsOyBwYXRoID0gc3ZnL1NWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk1RDBBMkNGNjg3MDBENTc2NjQg
LyogU1ZHRWxsaXBzZUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdFbGxp
cHNlRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk1RTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRXZl
bnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdFdmVudC5pZGw7IHBhdGggPSBzdmcv
U1ZHRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk1RjBBMkNG
Njg3MDBENTc2NjQgLyogU1ZHRXhjZXB0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0g
U1ZHRXhjZXB0aW9uLmlkbDsgcGF0aCA9IHN2Zy9TVkdFeGNlcHRpb24uaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBODMzQzk2MDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQuaWRsOyBwYXRoID0gc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk2MTBBMkNG
Njg3MDBENTc2NjQgLyogU1ZHRkVCbGVuZEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5h
bWUgPSBTVkdGRUJsZW5kRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHRkVCbGVuZEVsZW1lbnQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk2MjBBMkNGNjg3MDBENTc2
NjQgLyogU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUg
PSBTVkdGRUNvbG9yTWF0cml4RWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHRkVDb2xvck1hdHJp
eEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk2MzBBMkNG
Njg3MDBENTc2NjQgLyogU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IG5hbWUgPSBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5pZGw7IHBhdGgg
PSBzdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBODMzQzk2NDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRkVDb21wb3NpdGVF
bGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHRkVDb21wb3NpdGVFbGVtZW50
LmlkbDsgcGF0aCA9IHN2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBODMzQzk2NTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRkVGbG9vZEVs
ZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdGRUZsb29kRWxlbWVudC5pZGw7
IHBhdGggPSBzdmcvU1ZHRkVGbG9vZEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBODMzQzk2NjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRkVGdW5jQUVsZW1lbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdGRUZ1bmNBRWxlbWVudC5pZGw7IHBhdGggPSBz
dmcvU1ZHRkVGdW5jQUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
ODMzQzk2NzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRkVGdW5jQkVsZW1lbnQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IG5hbWUgPSBTVkdGRUZ1bmNCRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHRkVG
dW5jQkVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk2ODBB
MkNGNjg3MDBENTc2NjQgLyogU1ZHRkVGdW5jR0VsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IG5hbWUgPSBTVkdGRUZ1bmNHRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHRkVGdW5jR0VsZW1l
bnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk2OTBBMkNGNjg3MDBE
NTc2NjQgLyogU1ZHRkVGdW5jUkVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBT
VkdGRUZ1bmNSRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk2QTBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZH
RkVHYXVzc2lhbkJsdXJFbGVtZW50LmlkbDsgcGF0aCA9IHN2Zy9TVkdGRUdhdXNzaWFuQmx1ckVs
ZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk2QjBBMkNGNjg3
MDBENTc2NjQgLyogU1ZHRkVJbWFnZUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUg
PSBTVkdGRUltYWdlRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk2QzBBMkNGNjg3MDBENTc2NjQg
LyogU1ZHRkVNZXJnZUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdGRU1l
cmdlRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHRkVNZXJnZUVsZW1lbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk2RDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRkVN
ZXJnZU5vZGVFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHRkVNZXJnZU5v
ZGVFbGVtZW50LmlkbDsgcGF0aCA9IHN2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk2RTBBMkNGNjg3MDBENTc2NjQgLyogU1ZH
RkVPZmZzZXRFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHRkVPZmZzZXRF
bGVtZW50LmlkbDsgcGF0aCA9IHN2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBODMzQzk2RjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRkVUaWxl
RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR0ZFVGlsZUVsZW1lbnQuaWRs
OyBwYXRoID0gc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBODMzQzk3MDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRkVUdXJidWxlbmNlRWxlbWVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaWRs
OyBwYXRoID0gc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBODMzQzk3MTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRmlsdGVyRWxlbWVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR0ZpbHRlckVsZW1lbnQuaWRsOyBwYXRo
ID0gc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBODMzQzk3MjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzLmlkbDsgcGF0aCA9IHN2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk3
MzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRml0VG9WaWV3Qm94LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gU1ZHRml0VG9WaWV3Qm94LmlkbDsgcGF0aCA9IHN2Zy9TVkdGaXRUb1ZpZXdCb3gu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk3NDBBMkNGNjg3MDBENTc2
NjQgLyogU1ZHR0VsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdHRWxlbWVu
dC5pZGw7IHBhdGggPSBzdmcvU1ZHR0VsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBODMzQzk3NTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHR3JhZGllbnRFbGVtZW50Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHR3JhZGllbnRFbGVtZW50LmlkbDsgcGF0aCA9
IHN2Zy9TVkdHcmFkaWVudEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBODMzQzk3NjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHSUNDQ29sb3IuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBTVkdJQ0NDb2xvci5pZGw7IHBhdGggPSBzdmcvU1ZHSUNDQ29sb3IuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk3NzBBMkNGNjg3MDBENTc2NjQg
LyogU1ZHSW1hZ2VFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHSW1hZ2VF
bGVtZW50LmlkbDsgcGF0aCA9IHN2Zy9TVkdJbWFnZUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBODMzQzk3ODBBMkNGNjg3MDBENTc2NjQgLyogU1ZHTGFuZ1NwYWNl
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHTGFuZ1NwYWNlLmlkbDsgcGF0aCA9IHN2
Zy9TVkdMYW5nU3BhY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk3
OTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHTGVuZ3RoTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
bmFtZSA9IFNWR0xlbmd0aExpc3QuaWRsOyBwYXRoID0gc3ZnL1NWR0xlbmd0aExpc3QuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk3QTBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZH
TGluZWFyR3JhZGllbnRFbGVtZW50LmlkbDsgcGF0aCA9IHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk3QjBBMkNGNjg3
MDBENTc2NjQgLyogU1ZHTGluZUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBT
VkdMaW5lRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHTGluZUVsZW1lbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk3QzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHTG9j
YXRhYmxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHTG9jYXRhYmxlLmlkbDsgcGF0
aCA9IHN2Zy9TVkdMb2NhdGFibGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
ODMzQzk3RDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHTWFya2VyRWxlbWVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgbmFtZSA9IFNWR01hcmtlckVsZW1lbnQuaWRsOyBwYXRoID0gc3ZnL1NWR01hcmtl
ckVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk3RTBBMkNG
Njg3MDBENTc2NjQgLyogU1ZHTnVtYmVyTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9
IFNWR051bWJlckxpc3QuaWRsOyBwYXRoID0gc3ZnL1NWR051bWJlckxpc3QuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk3RjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGFp
bnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdQYWludC5pZGw7IHBhdGggPSBzdmcv
U1ZHUGFpbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk4MDBBMkNG
Njg3MDBENTc2NjQgLyogU1ZHUGF0aEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUg
PSBTVkdQYXRoRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHUGF0aEVsZW1lbnQuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk4MTBBMkNGNjg3MDBENTc2NjQgLyogU1ZH
UGF0aFNlZy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1BhdGhTZWcuaWRsOyBwYXRo
ID0gc3ZnL1NWR1BhdGhTZWcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMz
Qzk4MjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0FyYy5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgbmFtZSA9IFNWR1BhdGhTZWdBcmMuaWRsOyBwYXRoID0gc3ZnL1NWR1BhdGhTZWdBcmMuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk4MzBBMkNGNjg3MDBENTc2NjQg
LyogU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1Bh
dGhTZWdDbG9zZVBhdGguaWRsOyBwYXRoID0gc3ZnL1NWR1BhdGhTZWdDbG9zZVBhdGguaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk4NDBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpYy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWMuaWRsOyBwYXRoID0gc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWMu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk4NTBBMkNGNjg3MDBENTc2
NjQgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
bmFtZSA9IFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGguaWRsOyBwYXRoID0gc3ZnL1NWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGguaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBODMzQzk4NjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWMu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpYy5p
ZGw7IHBhdGggPSBzdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWMuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBODMzQzk4NzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNl
Z0N1cnZldG9RdWFkcmF0aWNTbW9vdGguaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdQ
YXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aC5pZGw7IHBhdGggPSBzdmcvU1ZHUGF0aFNlZ0N1
cnZldG9RdWFkcmF0aWNTbW9vdGguaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
ODMzQzk4ODBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0xpbmV0by5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgbmFtZSA9IFNWR1BhdGhTZWdMaW5ldG8uaWRsOyBwYXRoID0gc3ZnL1NWR1BhdGhT
ZWdMaW5ldG8uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk4OTBBMkNG
Njg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWwuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbC5pZGw7IHBhdGggPSBzdmcv
U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWwuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBODMzQzk4QTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2Fs
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsLmlk
bDsgcGF0aCA9IHN2Zy9TVkdQYXRoU2VnTGluZXRvVmVydGljYWwuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBODMzQzk4QjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0xp
c3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdQYXRoU2VnTGlzdC5pZGw7IHBhdGgg
PSBzdmcvU1ZHUGF0aFNlZ0xpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
ODMzQzk4QzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZ01vdmV0by5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgbmFtZSA9IFNWR1BhdGhTZWdNb3ZldG8uaWRsOyBwYXRoID0gc3ZnL1NWR1BhdGhT
ZWdNb3ZldG8uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk4RDBBMkNG
Njg3MDBENTc2NjQgLyogU1ZHUGF0dGVybkVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5h
bWUgPSBTVkdQYXR0ZXJuRWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHUGF0dGVybkVsZW1lbnQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk4RTBBMkNGNjg3MDBENTc2
NjQgLyogU1ZHUG9pbnRMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUG9pbnRM
aXN0LmlkbDsgcGF0aCA9IHN2Zy9TVkdQb2ludExpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBODMzQzk4RjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUG9seWdvbkVsZW1lbnQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdQb2x5Z29uRWxlbWVudC5pZGw7IHBhdGgg
PSBzdmcvU1ZHUG9seWdvbkVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBODMzQzk5MDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUG9seWxpbmVFbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUG9seWxpbmVFbGVtZW50LmlkbDsgcGF0aCA9IHN2Zy9T
VkdQb2x5bGluZUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMz
Qzk5MTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgbmFtZSA9IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaWRsOyBwYXRoID0gc3Zn
L1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBODMzQzk5MjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmlkbDsg
cGF0aCA9IHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBODMzQzk5MzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUmVjdEVsZW1lbnQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdSZWN0RWxlbWVudC5pZGw7IHBhdGggPSBz
dmcvU1ZHUmVjdEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMz
Qzk5NDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUmVuZGVyaW5nSW50ZW50LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBuYW1lID0gU1ZHUmVuZGVyaW5nSW50ZW50LmlkbDsgcGF0aCA9IHN2Zy9TVkdSZW5k
ZXJpbmdJbnRlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk5NTBB
MkNGNjg3MDBENTc2NjQgLyogU1ZHU2NyaXB0RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
bmFtZSA9IFNWR1NjcmlwdEVsZW1lbnQuaWRsOyBwYXRoID0gc3ZnL1NWR1NjcmlwdEVsZW1lbnQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk5NjBBMkNGNjg3MDBENTc2
NjQgLyogU1ZHU2V0RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1NldEVs
ZW1lbnQuaWRsOyBwYXRoID0gc3ZnL1NWR1NldEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBODMzQzk5NzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHU3RvcEVsZW1lbnQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdTdG9wRWxlbWVudC5pZGw7IHBhdGggPSBz
dmcvU1ZHU3RvcEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMz
Qzk5ODBBMkNGNjg3MDBENTc2NjQgLyogU1ZHU3RyaW5nTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgbmFtZSA9IFNWR1N0cmluZ0xpc3QuaWRsOyBwYXRoID0gc3ZnL1NWR1N0cmluZ0xpc3QuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk5OTBBMkNGNjg3MDBENTc2NjQg
LyogU1ZHU3R5bGFibGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdTdHlsYWJsZS5p
ZGw7IHBhdGggPSBzdmcvU1ZHU3R5bGFibGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBODMzQzk5QTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHU3R5bGVFbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHU3R5bGVFbGVtZW50LmlkbDsgcGF0aCA9IHN2Zy9TVkdT
dHlsZUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk5QjBB
MkNGNjg3MDBENTc2NjQgLyogU1ZHU3dpdGNoRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
bmFtZSA9IFNWR1N3aXRjaEVsZW1lbnQuaWRsOyBwYXRoID0gc3ZnL1NWR1N3aXRjaEVsZW1lbnQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk5QzBBMkNGNjg3MDBENTc2
NjQgLyogU1ZHU3ltYm9sRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1N5
bWJvbEVsZW1lbnQuaWRsOyBwYXRoID0gc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk5RDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHVGVz
dHMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTVkdUZXN0cy5pZGw7IHBhdGggPSBzdmcv
U1ZHVGVzdHMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk5RTBBMkNG
Njg3MDBENTc2NjQgLyogU1ZHVGV4dENvbnRlbnRFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gU1ZHVGV4dENvbnRlbnRFbGVtZW50LmlkbDsgcGF0aCA9IHN2Zy9TVkdUZXh0Q29u
dGVudEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzk5RjBB
MkNGNjg3MDBENTc2NjQgLyogU1ZHVGV4dEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5h
bWUgPSBTVkdUZXh0RWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHVGV4dEVsZW1lbnQuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzlBMDBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNW
R1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaWRsOyBwYXRoID0gc3ZnL1NWR1RleHRQb3NpdGlvbmlu
Z0VsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzlBMTBBMkNG
Njg3MDBENTc2NjQgLyogU1ZHVGl0bGVFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gU1ZHVGl0bGVFbGVtZW50LmlkbDsgcGF0aCA9IHN2Zy9TVkdUaXRsZUVsZW1lbnQuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzlBMjBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHVHJhbnNmb3JtYWJsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1RyYW5zZm9y
bWFibGUuaWRsOyBwYXRoID0gc3ZnL1NWR1RyYW5zZm9ybWFibGUuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBODMzQzlBMzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHVHJhbnNmb3Jt
TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1RyYW5zZm9ybUxpc3QuaWRsOyBw
YXRoID0gc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBODMzQzlBNDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHVFNwYW5FbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHVFNwYW5FbGVtZW50LmlkbDsgcGF0aCA9IHN2Zy9TVkdU
U3BhbkVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzlBNTBB
MkNGNjg3MDBENTc2NjQgLyogU1ZHVW5pdFR5cGVzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gU1ZHVW5pdFR5cGVzLmlkbDsgcGF0aCA9IHN2Zy9TVkdVbml0VHlwZXMuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzlBNjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHVVJJ
UmVmZXJlbmNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU1ZHVVJJUmVmZXJlbmNlLmlk
bDsgcGF0aCA9IHN2Zy9TVkdVUklSZWZlcmVuY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBODMzQzlBNzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHVXNlRWxlbWVudC5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1VzZUVsZW1lbnQuaWRsOyBwYXRoID0gc3ZnL1NWR1Vz
ZUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzlBODBBMkNG
Njg3MDBENTc2NjQgLyogU1ZHVmlld0VsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUg
PSBTVkdWaWV3RWxlbWVudC5pZGw7IHBhdGggPSBzdmcvU1ZHVmlld0VsZW1lbnQuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODMzQzlBOTBBMkNGNjg3MDBENTc2NjQgLyogU1ZH
Wm9vbUFuZFBhbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNWR1pvb21BbmRQYW4uaWRs
OyBwYXRoID0gc3ZnL1NWR1pvb21BbmRQYW4uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBODMzQzlBQTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHWm9vbUV2ZW50LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBuYW1lID0gU1ZHWm9vbUV2ZW50LmlkbDsgcGF0aCA9IHN2Zy9TVkdab29tRXZl
bnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODVEN0EyRjA4NzlFQkE5MDA2
QTkxNzIgLyogUXVhcnR6Q29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IFF1YXJ0ekNv
cmUuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvUXVhcnR6Q29y
ZS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJCUE4NUQ3QThDMDg3
OUVDNjQwMDZBOTE3MiAvKiBLV1FXTWF0cml4LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEtXUVdNYXRyaXguY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQTg1RDdBOEQw
ODc5RUM2NDAwNkE5MTcyIC8qIEtXUVdNYXRyaXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS1dRV01hdHJpeC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTI0NjUsMTEgKzI2MjEs
NyBAQAogCQlBODcxREZERjBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclJlcGxhY2VkLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4NzFERkUwMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJX
aWRnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcldpZGdldC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODcxREZFMTBBMTUzNzZCMDBCMTJBNjgg
LyogUmVuZGVyV2lkZ2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW5kZXJXaWRnZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODg0Mjgz
ODA5MzA4QzFDMDBCNkQ0NjEgLyogU1ZHTmFtZXNXcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHTmFtZXNXcmFwcGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
Ci0JCUE4ODQyODM5MDkzMDhDMUMwMEI2RDQ2MSAvKiBTVkdFbGVtZW50RmFjdG9yeVdyYXBwZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTVkdFbGVtZW50RmFjdG9yeVdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQTg4NDI4M0QwOTMwOEMxQzAwQjZENDYx
IC8qIERPTUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01MaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwotCQlBODg0MjgzRTA5MzA4QzFDMDBCNkQ0NjEgLyogUkdCQ29sb3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRX
aWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSR0JD
b2xvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0g
MDsgfTsKLQkJQTg4NDI4M0YwOTMwOEMxQzAwQjZENDYxIC8qIFJHQkNvbG9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUkdCQ29sb3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKIAkJQTg5MERGMUIwOTMwOTc0ODAwNTEzRjg4IC8qIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4OTBERjFDMDkzMDk3NDgwMDUx
M0Y4OCAvKiBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1N0eWxlZFRyYW5zZm9y
bWFibGVFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1
c2VzVGFicyA9IDA7IH07CiAJCUE4OTBERjFEMDkzMDk3NDgwMDUxM0Y4OCAvKiBTVkdTdHlsZWRM
b2NhdGFibGVFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTI4MDYsNyArMjk1OCw2
IEBACiAJCUE4QzMyOTY2MDkzQkI3QjIwMDBCOUNBQyAvKiBTVkdGRVBvaW50TGlnaHRFbGVtZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
RkVQb2ludExpZ2h0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMzI5NjcwOTNCQjdCMjAwMEI5Q0FDIC8qIFNWR0ZF
UG9pbnRMaWdodEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTVkdGRVBvaW50TGlnaHRFbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QzMyRDg5
MDkzRDhCRkEwMDBCOUNBQyAvKiB4bGlua2F0dHJzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0geGxpbmthdHRycy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzMyRDk2MDkzRDhFQTQwMDBCOUNB
QyAvKiBYTGlua05hbWVzV3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhMaW5rTmFtZXNXcmFwcGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QzRBN0VC
MDlENTYzMjcwMDAzQUM4RCAvKiBTdHlsZWRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTdHlsZWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE4QzRBN0VDMDlENTYzMjcwMDAzQUM4RCAvKiBTdHlsZWRFbGVtZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZWRFbGVtZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThDNEE3RUUwOUQ1NjMyNzAwMDNBQzhEIC8qIE5vZGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5vZGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzU1OCw2ICszNzA5LDI0IEBACiAJCQkJNjVERjMx
RUMwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggKi8sCiAJCQkJ
NjVERjMxRUQwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUmFuZ2UuY3BwICovLAogCQkJCTY1REYzMUVF
MDlEMUNDNjAwMDBCRTMyNSAvKiBKU1JhbmdlLmggKi8sCisJCQkJQTgzM0MwRjIwQTJDNTEzMzAw
RDU3NjY0IC8qIEpTU1ZHQW5nbGUuY3BwICovLAorCQkJCUE4MzNDMEYwMEEyQzUxMzMwMEQ1NzY2
NCAvKiBKU1NWR0FuZ2xlLmggKi8sCisJCQkJQTgzM0MwRjEwQTJDNTEzMzAwRDU3NjY0IC8qIEpT
U1ZHQW5pbWF0ZWRMZW5ndGguY3BwICovLAorCQkJCUE4MzNDMEVFMEEyQzUxMzMwMEQ1NzY2NCAv
KiBKU1NWR0FuaW1hdGVkTGVuZ3RoLmggKi8sCisJCQkJQTgzM0JGMTkwQTJDM0E5NTAwRDU3NjY0
IC8qIEpTU1ZHQ29sb3IuY3BwICovLAorCQkJCUE4MzNCRjE4MEEyQzNBOTUwMEQ1NzY2NCAvKiBK
U1NWR0NvbG9yLmggKi8sCisJCQkJQTgzM0I0QjkwQTI3MzExRDAwRDU3NjY0IC8qIEpTU1ZHRG9j
dW1lbnQuY3BwICovLAorCQkJCUE4MzNCNEI4MEEyNzMxMUQwMEQ1NzY2NCAvKiBKU1NWR0RvY3Vt
ZW50LmggKi8sCisJCQkJQTgzM0MwRjMwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHRWxlbWVudC5j
cHAgKi8sCisJCQkJQTgzM0MwRUQwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHRWxlbWVudC5oICov
LAorCQkJCUE4MzNDMEY0MEEyQzUxMzMwMEQ1NzY2NCAvKiBKU1NWR0xlbmd0aC5jcHAgKi8sCisJ
CQkJQTgzM0MwRjUwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHTGVuZ3RoLmggKi8sCisJCQkJQTgz
M0JGMTcwQTJDM0E5NTAwRDU3NjY0IC8qIEpTU1ZHTWF0cml4LmNwcCAqLywKKwkJCQlBODMzQkYx
NjBBMkMzQTk1MDBENTc2NjQgLyogSlNTVkdNYXRyaXguaCAqLywKKwkJCQlBODMzQzA4RTBBMkM0
RjNGMDBENTc2NjQgLyogSlNTVkdTVkdFbGVtZW50LmNwcCAqLywKKwkJCQlBODMzQzA4RjBBMkM0
RjNGMDBENTc2NjQgLyogSlNTVkdTVkdFbGVtZW50LmggKi8sCisJCQkJQTgzM0MwRUYwQTJDNTEz
MzAwRDU3NjY0IC8qIEpTU1ZHVHJhbnNmb3JtLmNwcCAqLywKKwkJCQlBODMzQzBGNjBBMkM1MTMz
MDBENTc2NjQgLyogSlNTVkdUcmFuc2Zvcm0uaCAqLywKIAkJCQk2NURGMzFFRjA5RDFDQzYwMDAw
QkUzMjUgLyogSlNUZXh0LmNwcCAqLywKIAkJCQk2NURGMzFGMDA5RDFDQzYwMDAwQkUzMjUgLyog
SlNUZXh0LmggKi8sCiAJCQkJQTg2NjI5Q0EwOURBMkI0NzAwOTYzM0E1IC8qIEpTVUlFdmVudC5j
cHAgKi8sCkBAIC0zNTk5LDYgKzM3NjgsOCBAQAogCQkJCTY1NjU4MUFGMDlEMTRFRTYwMDBFNjFE
NyAvKiBVc2VyQWdlbnRTdHlsZVNoZWV0c0RhdGEuY3BwICovLAogCQkJCTY1NjU4MUVBMDlEMTUw
OEQwMDBFNjFENyAvKiBYTGlua05hbWVzLmNwcCAqLywKIAkJCQk2NTY1ODFFQjA5RDE1MDhEMDAw
RTYxRDcgLyogWExpbmtOYW1lcy5oICovLAorCQkJCUE4MzNDODBBMEEyQ0YyNTYwMEQ1NzY2NCAv
KiBYTUxOYW1lcy5jcHAgKi8sCisJCQkJQTgzM0M4MEIwQTJDRjI1NjAwRDU3NjY0IC8qIFhNTE5h
bWVzLmggKi8sCiAJCQkJMUE3NjI5RDMwQTA3NDI1MTAwOTg5RjVCIC8qIFhQYXRoR3JhbW1hci5j
cHAgKi8sCiAJCQkJMUE3NjI5RDQwQTA3NDI1MTAwOTg5RjVCIC8qIFhQYXRoR3JhbW1hci5oICov
LAogCQkJKTsKQEAgLTQwNjAsNiArNDIzMSw3IEBACiAJCUE4MTIyQzdCMDhENTY0QjAwMDg0NEZB
MyAvKiBiaW5kaW5ncyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJQTgzM0JBMUYwQTJCQTAyQjAwRDU3NjY0IC8qIGpzICovLAogCQkJCUE4MTIyQzdDMDhE
NTY0QjAwMDg0NEZBMyAvKiBpZGwgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGJpbmRpbmdzOwpAQCAt
NDA2OCwxNDYgKzQyNDAsMTM1IEBACiAJCUE4MTIyQzdDMDhENTY0QjAwMDg0NEZBMyAvKiBpZGwg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUE4MTIyQzdE
MDhENTY0QjAwMDg0NEZBMyAvKiBzdmcgKi8sCisJCQkJQTgzM0M5NDEwQTJDRjY4NzAwRDU3NjY0
IC8qIEdldFNWR0RvY3VtZW50LmlkbCAqLywKKwkJCQlBODMzQzk0MjBBMkNGNjg3MDBENTc2NjQg
LyogU1ZHQUVsZW1lbnQuaWRsICovLAorCQkJCUE4MzNDOTQzMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBT
VkdBbmltYXRlQ29sb3JFbGVtZW50LmlkbCAqLywKKwkJCQlBODMzQzk0NDBBMkNGNjg3MDBENTc2
NjQgLyogU1ZHQW5pbWF0ZWRBbmdsZS5pZGwgKi8sCisJCQkJQTgzM0M5NDUwQTJDRjY4NzAwRDU3
NjY0IC8qIFNWR0FuaW1hdGVkQm9vbGVhbi5pZGwgKi8sCisJCQkJQTgzM0M5NDYwQTJDRjY4NzAw
RDU3NjY0IC8qIFNWR0FuaW1hdGVkRW51bWVyYXRpb24uaWRsICovLAorCQkJCUE4MzNDOTQ3MEEy
Q0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZEludGVnZXIuaWRsICovLAorCQkJCUE4MzNDOTQ4
MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZExlbmd0aExpc3QuaWRsICovLAorCQkJCUE4
MzNDOTQ5MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZE51bWJlci5pZGwgKi8sCisJCQkJ
QTgzM0M5NEEwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0FuaW1hdGVkTnVtYmVyTGlzdC5pZGwgKi8s
CisJCQkJQTgzM0M5NEIwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0FuaW1hdGVkUGF0aERhdGEuaWRs
ICovLAorCQkJCUE4MzNDOTRDMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZFBvaW50cy5p
ZGwgKi8sCisJCQkJQTgzM0M5NEQwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpby5pZGwgKi8sCisJCQkJQTgzM0M5NEUwQTJDRjY4NzAwRDU3NjY0IC8qIFNW
R0FuaW1hdGVkUmVjdC5pZGwgKi8sCisJCQkJQTgzM0M5NEYwQTJDRjY4NzAwRDU3NjY0IC8qIFNW
R0FuaW1hdGVkU3RyaW5nLmlkbCAqLywKKwkJCQlBODMzQzk1MDBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmlkbCAqLywKKwkJCQlBODMzQzk1MTBBMkNGNjg3MDBE
NTc2NjQgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuaWRsICovLAorCQkJCUE4MzNDOTUyMEEyQ0Y2ODcw
MEQ1NzY2NCAvKiBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5pZGwgKi8sCisJCQkJQTgzM0M5
NTMwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0FuaW1hdGlvbkVsZW1lbnQuaWRsICovLAorCQkJCUE4
MzNDOTU0MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdDaXJjbGVFbGVtZW50LmlkbCAqLywKKwkJCQlB
ODMzQzk1NTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQ2xpcFBhdGhFbGVtZW50LmlkbCAqLywKKwkJ
CQlBODMzQzk1NjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlv
bkVsZW1lbnQuaWRsICovLAorCQkJCUE4MzNDOTU3MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdDdXJz
b3JFbGVtZW50LmlkbCAqLywKKwkJCQlBODMzQzk1ODBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRGVm
c0VsZW1lbnQuaWRsICovLAorCQkJCUE4MzNDOTU5MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdEZXNj
RWxlbWVudC5pZGwgKi8sCisJCQkJQTgzM0M5NUEwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0RPTUlt
cGxlbWVudGF0aW9uLmlkbCAqLywKKwkJCQlBODMzQzk1QjBBMkNGNjg3MDBENTc2NjQgLyogU1ZH
RWxlbWVudEluc3RhbmNlLmlkbCAqLywKKwkJCQlBODMzQzk1QzBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHRWxlbWVudEluc3RhbmNlTGlzdC5pZGwgKi8sCisJCQkJQTgzM0M5NUQwQTJDRjY4NzAwRDU3
NjY0IC8qIFNWR0VsbGlwc2VFbGVtZW50LmlkbCAqLywKKwkJCQlBODMzQzk1RTBBMkNGNjg3MDBE
NTc2NjQgLyogU1ZHRXZlbnQuaWRsICovLAorCQkJCUE4MzNDOTVGMEEyQ0Y2ODcwMEQ1NzY2NCAv
KiBTVkdFeGNlcHRpb24uaWRsICovLAorCQkJCUE4MzNDOTYwMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmlkbCAqLywKKwkJCQlBODMzQzk2MTBBMkNGNjg3
MDBENTc2NjQgLyogU1ZHRkVCbGVuZEVsZW1lbnQuaWRsICovLAorCQkJCUE4MzNDOTYyMEEyQ0Y2
ODcwMEQ1NzY2NCAvKiBTVkdGRUNvbG9yTWF0cml4RWxlbWVudC5pZGwgKi8sCisJCQkJQTgzM0M5
NjMwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmlkbCAq
LywKKwkJCQlBODMzQzk2NDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRkVDb21wb3NpdGVFbGVtZW50
LmlkbCAqLywKKwkJCQlBODMzQzk2NTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRkVGbG9vZEVsZW1l
bnQuaWRsICovLAorCQkJCUE4MzNDOTY2MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdGRUZ1bmNBRWxl
bWVudC5pZGwgKi8sCisJCQkJQTgzM0M5NjcwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0ZFRnVuY0JF
bGVtZW50LmlkbCAqLywKKwkJCQlBODMzQzk2ODBBMkNGNjg3MDBENTc2NjQgLyogU1ZHRkVGdW5j
R0VsZW1lbnQuaWRsICovLAorCQkJCUE4MzNDOTY5MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdGRUZ1
bmNSRWxlbWVudC5pZGwgKi8sCisJCQkJQTgzM0M5NkEwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0ZF
R2F1c3NpYW5CbHVyRWxlbWVudC5pZGwgKi8sCisJCQkJQTgzM0M5NkIwQTJDRjY4NzAwRDU3NjY0
IC8qIFNWR0ZFSW1hZ2VFbGVtZW50LmlkbCAqLywKKwkJCQlBODMzQzk2QzBBMkNGNjg3MDBENTc2
NjQgLyogU1ZHRkVNZXJnZUVsZW1lbnQuaWRsICovLAorCQkJCUE4MzNDOTZEMEEyQ0Y2ODcwMEQ1
NzY2NCAvKiBTVkdGRU1lcmdlTm9kZUVsZW1lbnQuaWRsICovLAorCQkJCUE4MzNDOTZFMEEyQ0Y2
ODcwMEQ1NzY2NCAvKiBTVkdGRU9mZnNldEVsZW1lbnQuaWRsICovLAorCQkJCUE4MzNDOTZGMEEy
Q0Y2ODcwMEQ1NzY2NCAvKiBTVkdGRVRpbGVFbGVtZW50LmlkbCAqLywKKwkJCQlBODMzQzk3MDBB
MkNGNjg3MDBENTc2NjQgLyogU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5pZGwgKi8sCisJCQkJQTgz
M0M5NzEwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0ZpbHRlckVsZW1lbnQuaWRsICovLAorCQkJCUE4
MzNDOTcyMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMuaWRsICovLAorCQkJCUE4MzNDOTczMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdGaXRUb1Zp
ZXdCb3guaWRsICovLAorCQkJCUE4MzNDOTc0MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdHRWxlbWVu
dC5pZGwgKi8sCisJCQkJQTgzM0M5NzUwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0dyYWRpZW50RWxl
bWVudC5pZGwgKi8sCisJCQkJQTgzM0M5NzYwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0lDQ0NvbG9y
LmlkbCAqLywKKwkJCQlBODMzQzk3NzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHSW1hZ2VFbGVtZW50
LmlkbCAqLywKKwkJCQlBODMzQzk3ODBBMkNGNjg3MDBENTc2NjQgLyogU1ZHTGFuZ1NwYWNlLmlk
bCAqLywKKwkJCQlBODMzQzk3OTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHTGVuZ3RoTGlzdC5pZGwg
Ki8sCisJCQkJQTgzM0M5N0EwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0xpbmVhckdyYWRpZW50RWxl
bWVudC5pZGwgKi8sCisJCQkJQTgzM0M5N0IwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR0xpbmVFbGVt
ZW50LmlkbCAqLywKKwkJCQlBODMzQzk3QzBBMkNGNjg3MDBENTc2NjQgLyogU1ZHTG9jYXRhYmxl
LmlkbCAqLywKKwkJCQlBODMzQzk3RDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHTWFya2VyRWxlbWVu
dC5pZGwgKi8sCisJCQkJQTgzM0M5N0UwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR051bWJlckxpc3Qu
aWRsICovLAorCQkJCUE4MzNDOTdGMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYWludC5pZGwgKi8s
CisJCQkJQTgzM0M5ODAwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhFbGVtZW50LmlkbCAqLywK
KwkJCQlBODMzQzk4MTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZy5pZGwgKi8sCisJCQkJ
QTgzM0M5ODIwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhTZWdBcmMuaWRsICovLAorCQkJCUE4
MzNDOTgzMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRoU2VnQ2xvc2VQYXRoLmlkbCAqLywKKwkJ
CQlBODMzQzk4NDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpYy5pZGwg
Ki8sCisJCQkJQTgzM0M5ODUwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWNTbW9vdGguaWRsICovLAorCQkJCUE4MzNDOTg2MEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpYy5pZGwgKi8sCisJCQkJQTgzM0M5ODcwQTJDRjY4NzAwRDU3NjY0
IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoLmlkbCAqLywKKwkJCQlBODMzQzk4
ODBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0xpbmV0by5pZGwgKi8sCisJCQkJQTgzM0M5
ODkwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsLmlkbCAqLywK
KwkJCQlBODMzQzk4QTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2Fs
LmlkbCAqLywKKwkJCQlBODMzQzk4QjBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0xpc3Qu
aWRsICovLAorCQkJCUE4MzNDOThDMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQYXRoU2VnTW92ZXRv
LmlkbCAqLywKKwkJCQlBODMzQzk4RDBBMkNGNjg3MDBENTc2NjQgLyogU1ZHUGF0dGVybkVsZW1l
bnQuaWRsICovLAorCQkJCUE4MzNDOThFMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQb2ludExpc3Qu
aWRsICovLAorCQkJCUE4MzNDOThGMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdQb2x5Z29uRWxlbWVu
dC5pZGwgKi8sCisJCQkJQTgzM0M5OTAwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1BvbHlsaW5lRWxl
bWVudC5pZGwgKi8sCisJCQkJQTgzM0M5OTEwQTJDRjY4NzAwRDU3NjY0IC8qIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW8uaWRsICovLAorCQkJCUE4MzNDOTkyMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBTVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQuaWRsICovLAorCQkJCUE4MzNDOTkzMEEyQ0Y2ODcwMEQ1NzY2
NCAvKiBTVkdSZWN0RWxlbWVudC5pZGwgKi8sCisJCQkJQTgzM0M5OTQwQTJDRjY4NzAwRDU3NjY0
IC8qIFNWR1JlbmRlcmluZ0ludGVudC5pZGwgKi8sCisJCQkJQTgzM0M5OTUwQTJDRjY4NzAwRDU3
NjY0IC8qIFNWR1NjcmlwdEVsZW1lbnQuaWRsICovLAorCQkJCUE4MzNDOTk2MEEyQ0Y2ODcwMEQ1
NzY2NCAvKiBTVkdTZXRFbGVtZW50LmlkbCAqLywKKwkJCQlBODMzQzk5NzBBMkNGNjg3MDBENTc2
NjQgLyogU1ZHU3RvcEVsZW1lbnQuaWRsICovLAorCQkJCUE4MzNDOTk4MEEyQ0Y2ODcwMEQ1NzY2
NCAvKiBTVkdTdHJpbmdMaXN0LmlkbCAqLywKKwkJCQlBODMzQzk5OTBBMkNGNjg3MDBENTc2NjQg
LyogU1ZHU3R5bGFibGUuaWRsICovLAorCQkJCUE4MzNDOTlBMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBT
VkdTdHlsZUVsZW1lbnQuaWRsICovLAorCQkJCUE4MzNDOTlCMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBT
VkdTd2l0Y2hFbGVtZW50LmlkbCAqLywKKwkJCQlBODMzQzk5QzBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHU3ltYm9sRWxlbWVudC5pZGwgKi8sCisJCQkJQTgzM0M5OUQwQTJDRjY4NzAwRDU3NjY0IC8q
IFNWR1Rlc3RzLmlkbCAqLywKKwkJCQlBODMzQzk5RTBBMkNGNjg3MDBENTc2NjQgLyogU1ZHVGV4
dENvbnRlbnRFbGVtZW50LmlkbCAqLywKKwkJCQlBODMzQzk5RjBBMkNGNjg3MDBENTc2NjQgLyog
U1ZHVGV4dEVsZW1lbnQuaWRsICovLAorCQkJCUE4MzNDOUEwMEEyQ0Y2ODcwMEQ1NzY2NCAvKiBT
VkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmlkbCAqLywKKwkJCQlBODMzQzlBMTBBMkNGNjg3MDBE
NTc2NjQgLyogU1ZHVGl0bGVFbGVtZW50LmlkbCAqLywKKwkJCQlBODMzQzlBMjBBMkNGNjg3MDBE
NTc2NjQgLyogU1ZHVHJhbnNmb3JtYWJsZS5pZGwgKi8sCisJCQkJQTgzM0M5QTMwQTJDRjY4NzAw
RDU3NjY0IC8qIFNWR1RyYW5zZm9ybUxpc3QuaWRsICovLAorCQkJCUE4MzNDOUE0MEEyQ0Y2ODcw
MEQ1NzY2NCAvKiBTVkdUU3BhbkVsZW1lbnQuaWRsICovLAorCQkJCUE4MzNDOUE1MEEyQ0Y2ODcw
MEQ1NzY2NCAvKiBTVkdVbml0VHlwZXMuaWRsICovLAorCQkJCUE4MzNDOUE2MEEyQ0Y2ODcwMEQ1
NzY2NCAvKiBTVkdVUklSZWZlcmVuY2UuaWRsICovLAorCQkJCUE4MzNDOUE3MEEyQ0Y2ODcwMEQ1
NzY2NCAvKiBTVkdVc2VFbGVtZW50LmlkbCAqLywKKwkJCQlBODMzQzlBODBBMkNGNjg3MDBENTc2
NjQgLyogU1ZHVmlld0VsZW1lbnQuaWRsICovLAorCQkJCUE4MzNDOUE5MEEyQ0Y2ODcwMEQ1NzY2
NCAvKiBTVkdab29tQW5kUGFuLmlkbCAqLywKKwkJCQlBODMzQzlBQTBBMkNGNjg3MDBENTc2NjQg
LyogU1ZHWm9vbUV2ZW50LmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gaWRsOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJQTgxMjJDN0QwOEQ1NjRCMDAwODQ0RkEzIC8qIHN2
ZyAqLyA9IHsKKwkJQTgzM0JBMUYwQTJCQTAyQjAwRDU3NjY0IC8qIGpzICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlBODEyMkM3RTA4RDU2NEIwMDA4NDRG
QTMgLyogR2V0U1ZHRG9jdW1lbnQuaWRsICovLAotCQkJCUE4MTIyQzdGMDhENTY0QjAwMDg0NEZB
MyAvKiBrZG9tZGVmcy5pZGwgKi8sCi0JCQkJQTgxMjJDODAwOEQ1NjRCMDAwODQ0RkEzIC8qIFNW
R0FFbGVtZW50LmlkbCAqLywKLQkJCQlBODEyMkM4MTA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHQW5n
bGUuaWRsICovLAotCQkJCUE4MTIyQzgyMDhENTY0QjAwMDg0NEZBMyAvKiBTVkdBbmltYXRlQ29s
b3JFbGVtZW50LmlkbCAqLywKLQkJCQlBODEyMkM4MzA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHQW5p
bWF0ZWRBbmdsZS5pZGwgKi8sCi0JCQkJQTgxMjJDODQwOEQ1NjRCMDAwODQ0RkEzIC8qIFNWR0Fu
aW1hdGVkQm9vbGVhbi5pZGwgKi8sCi0JCQkJQTgxMjJDODUwOEQ1NjRCMDAwODQ0RkEzIC8qIFNW
R0FuaW1hdGVkRW51bWVyYXRpb24uaWRsICovLAotCQkJCUE4MTIyQzg2MDhENTY0QjAwMDg0NEZB
MyAvKiBTVkdBbmltYXRlZEludGVnZXIuaWRsICovLAotCQkJCUE4MTIyQzg3MDhENTY0QjAwMDg0
NEZBMyAvKiBTVkdBbmltYXRlZExlbmd0aC5pZGwgKi8sCi0JCQkJQTgxMjJDODgwOEQ1NjRCMDAw
ODQ0RkEzIC8qIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5pZGwgKi8sCi0JCQkJQTgxMjJDODkwOEQ1
NjRCMDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkTnVtYmVyLmlkbCAqLywKLQkJCQlBODEyMkM4QTA4
RDU2NEIwMDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmlkbCAqLywKLQkJCQlBODEy
MkM4QjA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0YS5pZGwgKi8sCi0JCQkJ
QTgxMjJDOEMwOEQ1NjRCMDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkUG9pbnRzLmlkbCAqLywKLQkJ
CQlBODEyMkM4RDA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJh
dGlvLmlkbCAqLywKLQkJCQlBODEyMkM4RTA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRS
ZWN0LmlkbCAqLywKLQkJCQlBODEyMkM4RjA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRT
dHJpbmcuaWRsICovLAotCQkJCUE4MTIyQzkwMDhENTY0QjAwMDg0NEZBMyAvKiBTVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3QuaWRsICovLAotCQkJCUE4MTIyQzkxMDhENTY0QjAwMDg0NEZBMyAvKiBT
VkdBbmltYXRlRWxlbWVudC5pZGwgKi8sCi0JCQkJQTgxMjJDOTIwOEQ1NjRCMDAwODQ0RkEzIC8q
IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmlkbCAqLywKLQkJCQlBODEyMkM5MzA4RDU2NEIw
MDA4NDRGQTMgLyogU1ZHQW5pbWF0aW9uRWxlbWVudC5pZGwgKi8sCi0JCQkJQTgxMjJDOTQwOEQ1
NjRCMDAwODQ0RkEzIC8qIFNWR0NpcmNsZUVsZW1lbnQuaWRsICovLAotCQkJCUE4MTIyQzk1MDhE
NTY0QjAwMDg0NEZBMyAvKiBTVkdDbGlwUGF0aEVsZW1lbnQuaWRsICovLAotCQkJCUE4MTIyQzk2
MDhENTY0QjAwMDg0NEZBMyAvKiBTVkdDb2xvci5pZGwgKi8sCi0JCQkJQTgxMjJDOTcwOEQ1NjRC
MDAwODQ0RkEzIC8qIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmlkbCAqLywK
LQkJCQlBODEyMkM5ODA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHQ3Vyc29yRWxlbWVudC5pZGwgKi8s
Ci0JCQkJQTgxMjJDOTkwOEQ1NjRCMDAwODQ0RkEzIC8qIFNWR0RlZnNFbGVtZW50LmlkbCAqLywK
LQkJCQlBODEyMkM5QTA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHRGVzY0VsZW1lbnQuaWRsICovLAot
CQkJCUE4MTIyQzlCMDhENTY0QjAwMDg0NEZBMyAvKiBTVkdEb2N1bWVudC5pZGwgKi8sCi0JCQkJ
QTgxMjJDOUMwOEQ1NjRCMDAwODQ0RkEzIC8qIFNWR0RPTUltcGxlbWVudGF0aW9uLmlkbCAqLywK
LQkJCQlBODEyMkM5RDA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHRWxlbWVudC5pZGwgKi8sCi0JCQkJ
QTgxMjJDOUUwOEQ1NjRCMDAwODQ0RkEzIC8qIFNWR0VsZW1lbnRJbnN0YW5jZS5pZGwgKi8sCi0J
CQkJQTgxMjJDOUYwOEQ1NjRCMDAwODQ0RkEzIC8qIFNWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaWRs
ICovLAotCQkJCUE4MTIyQ0EwMDhENTY0QjAwMDg0NEZBMyAvKiBTVkdFbGxpcHNlRWxlbWVudC5p
ZGwgKi8sCi0JCQkJQTgxMjJDQTEwOEQ1NjRCMDAwODQ0RkEzIC8qIFNWR0V2ZW50LmlkbCAqLywK
LQkJCQlBODEyMkNBMjA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHRXhjZXB0aW9uLmlkbCAqLywKLQkJ
CQlBODEyMkNBMzA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZC5pZGwgKi8sCi0JCQkJQTgxMjJDQTQwOEQ1NjRCMDAwODQ0RkEzIC8qIFNWR0ZFQmxlbmRFbGVt
ZW50LmlkbCAqLywKLQkJCQlBODEyMkNBNTA4RDU2NEIwMDA4NDRGQTMgLyogU1ZHRkVDb2xvck1h
dHJpeEVsZW1lbnQuaWRsICovLAotCQkJCUE4MTIyQ0E2MDhENTY0QjAwMDg0NEZBMyAvKiBTVkdG
RUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5pZGwgKi8sCi0JCQkJQTgxMjJDQTcwOEQ1NjRCMDAw
ODQ0RkEzIC8qIFNWR0ZFQ29tcG9zaXRlRWxlbWVudC5pZGwgKi8sCi0JCQkJQTgxMjJDQTgwOEQ1
NjRCMDAwODQ0RkEzIC8qIFNWR0ZFRmxvb2RFbGVtZW50LmlkbCAqLywKLQkJCQlBODEyMkNBOTA4
RDU2NEIwMDA4NDRGQTMgLyogU1ZHRkVGdW5jQUVsZW1lbnQuaWRsICovLAotCQkJCUE4MTIyQ0FB
MDhENTY0QjAwMDg0NEZBMyAvKiBTVkdGRUZ1bmNCRWxlbWVudC5pZGwgKi8sCi0JCQkJQTgxMjJD
QUIwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR0ZFRnVuY0dFbGVtZW50LmlkbCAqLywKLQkJCQlBODEy
MkNBQzA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHRkVGdW5jUkVsZW1lbnQuaWRsICovLAotCQkJCUE4
MTIyQ0FEMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaWRsICov
LAotCQkJCUE4MTIyQ0FFMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdGRUltYWdlRWxlbWVudC5pZGwg
Ki8sCi0JCQkJQTgxMjJDQUYwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR0ZFTWVyZ2VFbGVtZW50Lmlk
bCAqLywKLQkJCQlBODEyMkNCMDA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHRkVNZXJnZU5vZGVFbGVt
ZW50LmlkbCAqLywKLQkJCQlBODEyMkNCMTA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHRkVPZmZzZXRF
bGVtZW50LmlkbCAqLywKLQkJCQlBODEyMkNCMjA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHRkVUaWxl
RWxlbWVudC5pZGwgKi8sCi0JCQkJQTgxMjJDQjMwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR0ZFVHVy
YnVsZW5jZUVsZW1lbnQuaWRsICovLAotCQkJCUE4MTIyQ0I0MDhENTY0QjEwMDg0NEZBMyAvKiBT
VkdGaWx0ZXJFbGVtZW50LmlkbCAqLywKLQkJCQlBODEyMkNCNTA4RDU2NEIxMDA4NDRGQTMgLyog
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmlkbCAqLywKLQkJCQlBODEyMkNC
NjA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHRml0VG9WaWV3Qm94LmlkbCAqLywKLQkJCQlBODEyMkNC
NzA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHR0VsZW1lbnQuaWRsICovLAotCQkJCUE4MTIyQ0I4MDhE
NTY0QjEwMDg0NEZBMyAvKiBTVkdHcmFkaWVudEVsZW1lbnQuaWRsICovLAotCQkJCUE4MTIyQ0I5
MDhENTY0QjEwMDg0NEZBMyAvKiBTVkdJQ0NDb2xvci5pZGwgKi8sCi0JCQkJQTgxMjJDQkEwOEQ1
NjRCMTAwODQ0RkEzIC8qIFNWR0ltYWdlRWxlbWVudC5pZGwgKi8sCi0JCQkJQTgxMjJDQkIwOEQ1
NjRCMTAwODQ0RkEzIC8qIFNWR0xhbmdTcGFjZS5pZGwgKi8sCi0JCQkJQTgxMjJDQkMwOEQ1NjRC
MTAwODQ0RkEzIC8qIFNWR0xlbmd0aC5pZGwgKi8sCi0JCQkJQTgxMjJDQkQwOEQ1NjRCMTAwODQ0
RkEzIC8qIFNWR0xlbmd0aExpc3QuaWRsICovLAotCQkJCUE4MTIyQ0JFMDhENTY0QjEwMDg0NEZB
MyAvKiBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaWRsICovLAotCQkJCUE4MTIyQ0JGMDhENTY0
QjEwMDg0NEZBMyAvKiBTVkdMaW5lRWxlbWVudC5pZGwgKi8sCi0JCQkJQTgxMjJDQzAwOEQ1NjRC
MTAwODQ0RkEzIC8qIFNWR0xvY2F0YWJsZS5pZGwgKi8sCi0JCQkJQTgxMjJDQzEwOEQ1NjRCMTAw
ODQ0RkEzIC8qIFNWR01hcmtlckVsZW1lbnQuaWRsICovLAotCQkJCUE4MTIyQ0MyMDhENTY0QjEw
MDg0NEZBMyAvKiBTVkdNYXRyaXguaWRsICovLAotCQkJCUE4MTIyQ0MzMDhENTY0QjEwMDg0NEZB
MyAvKiBTVkdOdW1iZXIuaWRsICovLAotCQkJCUE4MTIyQ0M0MDhENTY0QjEwMDg0NEZBMyAvKiBT
VkdOdW1iZXJMaXN0LmlkbCAqLywKLQkJCQlBODEyMkNDNTA4RDU2NEIxMDA4NDRGQTMgLyogU1ZH
UGFpbnQuaWRsICovLAotCQkJCUE4MTIyQ0M2MDhENTY0QjEwMDg0NEZBMyAvKiBTVkdQYXRoRWxl
bWVudC5pZGwgKi8sCi0JCQkJQTgxMjJDQzcwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1BhdGhTZWcu
aWRsICovLAotCQkJCUE4MTIyQ0M4MDhENTY0QjEwMDg0NEZBMyAvKiBTVkdQYXRoU2VnQXJjLmlk
bCAqLywKLQkJCQlBODEyMkNDOTA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHUGF0aFNlZ0Nsb3NlUGF0
aC5pZGwgKi8sCi0JCQkJQTgxMjJDQ0EwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWMuaWRsICovLAotCQkJCUE4MTIyQ0NCMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdQYXRo
U2VnQ3VydmV0b0N1YmljU21vb3RoLmlkbCAqLywKLQkJCQlBODEyMkNDQzA4RDU2NEIxMDA4NDRG
QTMgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWMuaWRsICovLAotCQkJCUE4MTIyQ0NEMDhE
NTY0QjEwMDg0NEZBMyAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aC5pZGwgKi8s
Ci0JCQkJQTgxMjJDQ0UwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdMaW5ldG8uaWRsICov
LAotCQkJCUE4MTIyQ0NGMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdQYXRoU2VnTGluZXRvSG9yaXpv
bnRhbC5pZGwgKi8sCi0JCQkJQTgxMjJDRDAwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdM
aW5ldG9WZXJ0aWNhbC5pZGwgKi8sCi0JCQkJQTgxMjJDRDEwOEQ1NjRCMTAwODQ0RkEzIC8qIFNW
R1BhdGhTZWdMaXN0LmlkbCAqLywKLQkJCQlBODEyMkNEMjA4RDU2NEIxMDA4NDRGQTMgLyogU1ZH
UGF0aFNlZ01vdmV0by5pZGwgKi8sCi0JCQkJQTgxMjJDRDMwOEQ1NjRCMTAwODQ0RkEzIC8qIFNW
R1BhdHRlcm5FbGVtZW50LmlkbCAqLywKLQkJCQlBODEyMkNENDA4RDU2NEIxMDA4NDRGQTMgLyog
U1ZHUG9pbnQuaWRsICovLAotCQkJCUE4MTIyQ0Q1MDhENTY0QjEwMDg0NEZBMyAvKiBTVkdQb2lu
dExpc3QuaWRsICovLAotCQkJCUE4MTIyQ0Q2MDhENTY0QjEwMDg0NEZBMyAvKiBTVkdQb2x5Z29u
RWxlbWVudC5pZGwgKi8sCi0JCQkJQTgxMjJDRDcwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1BvbHls
aW5lRWxlbWVudC5pZGwgKi8sCi0JCQkJQTgxMjJDRDgwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW8uaWRsICovLAotCQkJCUE4MTIyQ0Q5MDhENTY0QjEwMDg0NEZBMyAv
KiBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaWRsICovLAotCQkJCUE4MTIyQ0RBMDhENTY0QjEw
MDg0NEZBMyAvKiBTVkdSZWN0LmlkbCAqLywKLQkJCQlBODEyMkNEQjA4RDU2NEIxMDA4NDRGQTMg
LyogU1ZHUmVjdEVsZW1lbnQuaWRsICovLAotCQkJCUE4MTIyQ0RDMDhENTY0QjEwMDg0NEZBMyAv
KiBTVkdSZW5kZXJpbmdJbnRlbnQuaWRsICovLAotCQkJCUE4MTIyQ0REMDhENTY0QjEwMDg0NEZB
MyAvKiBTVkdTY3JpcHRFbGVtZW50LmlkbCAqLywKLQkJCQlBODEyMkNERTA4RDU2NEIxMDA4NDRG
QTMgLyogU1ZHU2V0RWxlbWVudC5pZGwgKi8sCi0JCQkJQTgxMjJDREYwOEQ1NjRCMTAwODQ0RkEz
IC8qIFNWR1N0b3BFbGVtZW50LmlkbCAqLywKLQkJCQlBODEyMkNFMDA4RDU2NEIxMDA4NDRGQTMg
LyogU1ZHU3RyaW5nTGlzdC5pZGwgKi8sCi0JCQkJQTgxMjJDRTEwOEQ1NjRCMTAwODQ0RkEzIC8q
IFNWR1N0eWxhYmxlLmlkbCAqLywKLQkJCQlBODEyMkNFMjA4RDU2NEIxMDA4NDRGQTMgLyogU1ZH
U3R5bGVFbGVtZW50LmlkbCAqLywKLQkJCQlBODEyMkNFMzA4RDU2NEIxMDA4NDRGQTMgLyogU1ZH
U1ZHRWxlbWVudC5pZGwgKi8sCi0JCQkJQTgxMjJDRTQwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1N3
aXRjaEVsZW1lbnQuaWRsICovLAotCQkJCUE4MTIyQ0U1MDhENTY0QjEwMDg0NEZBMyAvKiBTVkdT
eW1ib2xFbGVtZW50LmlkbCAqLywKLQkJCQlBODEyMkNFNjA4RDU2NEIxMDA4NDRGQTMgLyogU1ZH
VGVzdHMuaWRsICovLAotCQkJCUE4MTIyQ0U3MDhENTY0QjEwMDg0NEZBMyAvKiBTVkdUZXh0Q29u
dGVudEVsZW1lbnQuaWRsICovLAotCQkJCUE4MTIyQ0U4MDhENTY0QjEwMDg0NEZBMyAvKiBTVkdU
ZXh0RWxlbWVudC5pZGwgKi8sCi0JCQkJQTgxMjJDRTkwOEQ1NjRCMTAwODQ0RkEzIC8qIFNWR1Rl
eHRQb3NpdGlvbmluZ0VsZW1lbnQuaWRsICovLAotCQkJCUE4MTIyQ0VBMDhENTY0QjEwMDg0NEZB
MyAvKiBTVkdUaXRsZUVsZW1lbnQuaWRsICovLAotCQkJCUE4MTIyQ0VCMDhENTY0QjEwMDg0NEZB
MyAvKiBTVkdUcmFuc2Zvcm0uaWRsICovLAotCQkJCUE4MTIyQ0VDMDhENTY0QjEwMDg0NEZBMyAv
KiBTVkdUcmFuc2Zvcm1hYmxlLmlkbCAqLywKLQkJCQlBODEyMkNFRDA4RDU2NEIxMDA4NDRGQTMg
LyogU1ZHVHJhbnNmb3JtTGlzdC5pZGwgKi8sCi0JCQkJQTgxMjJDRUUwOEQ1NjRCMTAwODQ0RkEz
IC8qIFNWR1RTcGFuRWxlbWVudC5pZGwgKi8sCi0JCQkJQTgxMjJDRUYwOEQ1NjRCMTAwODQ0RkEz
IC8qIFNWR1VuaXRUeXBlcy5pZGwgKi8sCi0JCQkJQTgxMjJDRjAwOEQ1NjRCMTAwODQ0RkEzIC8q
IFNWR1VSSVJlZmVyZW5jZS5pZGwgKi8sCi0JCQkJQTgxMjJDRjEwOEQ1NjRCMTAwODQ0RkEzIC8q
IFNWR1VzZUVsZW1lbnQuaWRsICovLAotCQkJCUE4MTIyQ0YyMDhENTY0QjEwMDg0NEZBMyAvKiBT
VkdWaWV3RWxlbWVudC5pZGwgKi8sCi0JCQkJQTgxMjJDRjMwOEQ1NjRCMTAwODQ0RkEzIC8qIFNW
R1pvb21BbmRQYW4uaWRsICovLAotCQkJCUE4MTIyQ0Y0MDhENTY0QjEwMDg0NEZBMyAvKiBTVkda
b29tRXZlbnQuaWRsICovLAorCQkJCUE4MzNDNkQ3MEEyQ0VBNzcwMEQ1NzY2NCAvKiBKU1NWR0Vs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgKi8sCisJCQkJQTgzM0M2RDYwQTJDRUE3NzAwRDU3NjY0
IC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggKi8sCisJCQkJQTgzM0JBN0QwQTJCQTNE
NDAwRDU3NjY0IC8qIEpTU1ZHTnVtYmVyLmNwcCAqLywKKwkJCQlBODMzQkE3ODBBMkJBM0Q0MDBE
NTc2NjQgLyogSlNTVkdOdW1iZXIuaCAqLywKKwkJCQlBODMzQkE3QzBBMkJBM0Q0MDBENTc2NjQg
LyogSlNTVkdQb2ludC5jcHAgKi8sCisJCQkJQTgzM0JBN0IwQTJCQTNENDAwRDU3NjY0IC8qIEpT
U1ZHUG9pbnQuaCAqLywKKwkJCQlBODMzQkE3NzBBMkJBM0Q0MDBENTc2NjQgLyogSlNTVkdSZWN0
LmNwcCAqLywKKwkJCQlBODMzQkE3NTBBMkJBM0Q0MDBENTc2NjQgLyogSlNTVkdSZWN0LmggKi8s
CiAJCQkpOwotCQkJcGF0aCA9IHN2ZzsKKwkJCXBhdGggPSBqczsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CiAJCX07CiAJCUE4QzBGNkRDMDg5NzAxRjEwMEJBNTExNCAvKiBXZWJDb3JlK1NW
RyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQTg4NDI4
M0QwOTMwOEMxQzAwQjZENDYxIC8qIERPTUxpc3QuaCAqLywKLQkJCQlBODg0MjgzRjA5MzA4QzFD
MDBCNkQ0NjEgLyogUkdCQ29sb3IuY3BwICovLAotCQkJCUE4ODQyODNFMDkzMDhDMUMwMEI2RDQ2
MSAvKiBSR0JDb2xvci5oICovLAotCQkJCUE4ODQyODM5MDkzMDhDMUMwMEI2RDQ2MSAvKiBTVkdF
bGVtZW50RmFjdG9yeVdyYXBwZXIuY3BwICovLAotCQkJCUE4ODQyODM4MDkzMDhDMUMwMEI2RDQ2
MSAvKiBTVkdOYW1lc1dyYXBwZXIuY3BwICovLAotCQkJCUE4QzMyRDk2MDkzRDhFQTQwMDBCOUNB
QyAvKiBYTGlua05hbWVzV3JhcHBlci5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9ICJXZWJDb3Jl
K1NWRyI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNDI4MywxMiArNDQ0NCwxMSBA
QAogCQlBOEMwRjdGQzA4OTcwMUYzMDBCQTUxMTQgLyogc3ZnICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk4MTE2ODk1RDA5RjJBNEEwMDA3NzJDQTAgLyog
U1ZHVFJlZkVsZW1lbnQuY3BwICovLAotCQkJCTgxMTY4OTVFMDlGMkE0QTAwMDc3MkNBMCAvKiBT
VkdUUmVmRWxlbWVudC5oICovLAogCQkJCUE4QzBGN0ZGMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdB
RWxlbWVudC5jcHAgKi8sCiAJCQkJQThDMEY4MDAwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FFbGVt
ZW50LmggKi8sCiAJCQkJQThDMEY4MDEwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuZ2xlLmNwcCAq
LywKIAkJCQlBOEMwRjgwMjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5nbGUuaCAqLywKKwkJCQlB
ODMzQzBBODBBMkM0RkVDMDBENTc2NjQgLyogU1ZHQW5nbGUuaWRsICovLAogCQkJCUE4QzBGODAz
MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCAqLywKIAkJCQlB
OEMwRjgwNDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oICovLAog
CQkJCUE4QzBGODA1MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRlZEFuZ2xlLmNwcCAqLywK
QEAgLTQzMzUsNiArNDQ5NSw3IEBACiAJCQkJQThDMEY4MkUwODk3MDFGMzAwQkE1MTE0IC8qIFNW
R0NsaXBQYXRoRWxlbWVudC5oICovLAogCQkJCUE4QzBGODJGMDg5NzAxRjMwMEJBNTExNCAvKiBT
VkdDb2xvci5jcHAgKi8sCiAJCQkJQThDMEY4MzAwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0NvbG9y
LmggKi8sCisJCQkJQTgzM0JFQzgwQTJDMzNFODAwRDU3NjY0IC8qIFNWR0NvbG9yLmlkbCAqLywK
IAkJCQlBOEMwRjgzMTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5j
dGlvbkVsZW1lbnQuY3BwICovLAogCQkJCUE4QzBGODMyMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oICovLAogCQkJCUE4MkZDMzNDMDhDQkIw
N0MwMEVGRUUyMyAvKiBTVkdDdXJzb3JFbGVtZW50LmNwcCAqLywKQEAgLTQzNDUsMTAgKzQ1MDYs
MTIgQEAKIAkJCQlBOEMwRjgzNjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRGVzY0VsZW1lbnQuaCAq
LywKIAkJCQlBOEMwRjgzNzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRG9jdW1lbnQuY3BwICovLAog
CQkJCUE4QzBGODM4MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdEb2N1bWVudC5oICovLAorCQkJCUE4
MzNCOTkzMEEyQjc3RDUwMEQ1NzY2NCAvKiBTVkdEb2N1bWVudC5pZGwgKi8sCiAJCQkJQThDMEY4
MzkwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0RPTUltcGxlbWVudGF0aW9uLmNwcCAqLywKIAkJCQlB
OEMwRjgzQTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRE9NSW1wbGVtZW50YXRpb24uaCAqLywKIAkJ
CQlBOEMwRjgzQjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxlbWVudC5jcHAgKi8sCiAJCQkJQThD
MEY4M0MwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0VsZW1lbnQuaCAqLywKKwkJCQlBODMzQzVFNzBB
MkNDQkE0MDBENTc2NjQgLyogU1ZHRWxlbWVudC5pZGwgKi8sCiAJCQkJQThDMEY4M0QwODk3MDFG
MzAwQkE1MTE0IC8qIFNWR0VsZW1lbnRJbnN0YW5jZS5jcHAgKi8sCiAJCQkJQThDMEY4M0UwODk3
MDFGMzAwQkE1MTE0IC8qIFNWR0VsZW1lbnRJbnN0YW5jZS5oICovLAogCQkJCUE4QzBGODNGMDg5
NzAxRjMwMEJBNTExNCAvKiBTVkdFbGVtZW50SW5zdGFuY2VMaXN0LmNwcCAqLywKQEAgLTQ0MjMs
NiArNDU4Niw3IEBACiAJCQkJQThDMEY4NzYwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0xhbmdTcGFj
ZS5oICovLAogCQkJCUE4QzBGODc3MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdMZW5ndGguY3BwICov
LAogCQkJCUE4QzBGODc4MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdMZW5ndGguaCAqLywKKwkJCQlB
ODMzQkU5RjBBMkMzMjkzMDBENTc2NjQgLyogU1ZHTGVuZ3RoLmlkbCAqLywKIAkJCQlBOEMwRjg3
OTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHTGVuZ3RoTGlzdC5jcHAgKi8sCiAJCQkJQThDMEY4N0Ew
ODk3MDFGMzAwQkE1MTE0IC8qIFNWR0xlbmd0aExpc3QuaCAqLywKIAkJCQlBOEMwRjg3QjA4OTcw
MUYzMDBCQTUxMTQgLyogU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcCAqLywKQEAgLTQ0Mzgs
OCArNDYwMiwxMCBAQAogCQkJCUE4MTY1NUUzMDk2QkMxMzkwMDYwMTA1OCAvKiBTVkdNYXNrRWxl
bWVudC5oICovLAogCQkJCUE4QzBGODg0MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdNYXRyaXguY3Bw
ICovLAogCQkJCUE4QzBGODg1MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdNYXRyaXguaCAqLywKKwkJ
CQlBODMzQkVERDBBMkMzNDRCMDBENTc2NjQgLyogU1ZHTWF0cml4LmlkbCAqLywKIAkJCQlBOEMw
Rjg4NjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHTnVtYmVyLmNwcCAqLywKIAkJCQlBOEMwRjg4NzA4
OTcwMUYzMDBCQTUxMTQgLyogU1ZHTnVtYmVyLmggKi8sCisJCQkJQTgzM0JFQTIwQTJDMzI5MzAw
RDU3NjY0IC8qIFNWR051bWJlci5pZGwgKi8sCiAJCQkJQThDMEY4ODgwODk3MDFGMzAwQkE1MTE0
IC8qIFNWR051bWJlckxpc3QuY3BwICovLAogCQkJCUE4QzBGODg5MDg5NzAxRjMwMEJBNTExNCAv
KiBTVkdOdW1iZXJMaXN0LmggKi8sCiAJCQkJQThDMEY4OEEwODk3MDFGMzAwQkE1MTE0IC8qIFNW
R1BhaW50LmNwcCAqLywKQEAgLTQ0NDgsNiArNDYxNCw4IEBACiAJCQkJQThDMEY4OEQwODk3MDFG
MzAwQkE1MTE0IC8qIFNWR1BhdGhFbGVtZW50LmggKi8sCiAJCQkJQThDMEY4OEUwODk3MDFGMzAw
QkE1MTE0IC8qIHN2Z3BhdGhwYXJzZXIuY3BwICovLAogCQkJCUE4QzBGODhGMDg5NzAxRjMwMEJB
NTExNCAvKiBzdmdwYXRocGFyc2VyLmggKi8sCisJCQkJQThDMEY4OUMwODk3MDFGMzAwQkE1MTE0
IC8qIFNWR1BhdGhTZWcuY3BwICovLAorCQkJCUE4QzBGODlEMDg5NzAxRjMwMEJBNTExNCAvKiBT
VkdQYXRoU2VnLmggKi8sCiAJCQkJQThDMEY4OTAwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1BhdGhT
ZWdBcmMuY3BwICovLAogCQkJCUE4QzBGODkxMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoU2Vn
QXJjLmggKi8sCiAJCQkJQThDMEY4OTIwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1BhdGhTZWdDbG9z
ZVBhdGguY3BwICovLApAQCAtNDQ2MCwxMiArNDYyOCwxMCBAQAogCQkJCUE4QzBGODk5MDg5NzAx
RjMwMEJBNTExNCAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpYy5oICovLAogCQkJCUE4QzBG
ODlBMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aC5j
cHAgKi8sCiAJCQkJQThDMEY4OUIwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1BhdGhTZWdDdXJ2ZXRv
UXVhZHJhdGljU21vb3RoLmggKi8sCi0JCQkJQThDMEY4OUMwODk3MDFGMzAwQkE1MTE0IC8qIFNW
R1BhdGhTZWcuY3BwICovLAotCQkJCUE4QzBGODlEMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRo
U2VnLmggKi8sCi0JCQkJQThDMEY4OUUwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1BhdGhTZWdMaW5l
dG9Ib3Jpem9udGFsLmNwcCAqLywKLQkJCQlBOEMwRjg5RjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZH
UGF0aFNlZ0xpbmV0b0hvcml6b250YWwuaCAqLywKIAkJCQlBOEMwRjhBMDA4OTcwMUYzMDBCQTUx
MTQgLyogU1ZHUGF0aFNlZ0xpbmV0by5jcHAgKi8sCiAJCQkJQThDMEY4QTEwODk3MDFGMzAwQkE1
MTE0IC8qIFNWR1BhdGhTZWdMaW5ldG8uaCAqLywKKwkJCQlBOEMwRjg5RTA4OTcwMUYzMDBCQTUx
MTQgLyogU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWwuY3BwICovLAorCQkJCUE4QzBGODlGMDg5
NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbC5oICovLAogCQkJCUE4
QzBGOEEyMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoU2VnTGluZXRvVmVydGljYWwuY3BwICov
LAogCQkJCUE4QzBGOEEzMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdQYXRoU2VnTGluZXRvVmVydGlj
YWwuaCAqLywKIAkJCQlBOEMwRjhBNDA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUGF0aFNlZ0xpc3Qu
Y3BwICovLApAQCAtNDQ3Niw2ICs0NjQyLDcgQEAKIAkJCQlBOEMwRjhBOTA4OTcwMUY0MDBCQTUx
MTQgLyogU1ZHUGF0dGVybkVsZW1lbnQuaCAqLywKIAkJCQlBOEMwRjhBQTA4OTcwMUY0MDBCQTUx
MTQgLyogU1ZHUG9pbnQuY3BwICovLAogCQkJCUE4QzBGOEFCMDg5NzAxRjQwMEJBNTExNCAvKiBT
VkdQb2ludC5oICovLAorCQkJCUE4MzNCRUExMEEyQzMyOTMwMEQ1NzY2NCAvKiBTVkdQb2ludC5p
ZGwgKi8sCiAJCQkJQThDMEY4QUMwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1BvaW50TGlzdC5jcHAg
Ki8sCiAJCQkJQThDMEY4QUQwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1BvaW50TGlzdC5oICovLAog
CQkJCUE4QzBGOEFFMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdQb2x5RWxlbWVudC5jcHAgKi8sCkBA
IC00NDg4LDEwICs0NjU1LDExIEBACiAJCQkJQThDMEY4QjUwODk3MDFGNDAwQkE1MTE0IC8qIFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8uaCAqLywKIAkJCQlBOEMwRjhCNjA4OTcwMUY0MDBCQTUxMTQg
LyogU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcCAqLywKIAkJCQlBOEMwRjhCNzA4OTcwMUY0
MDBCQTUxMTQgLyogU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmggKi8sCi0JCQkJQThDMEY4Qjgw
ODk3MDFGNDAwQkE1MTE0IC8qIFNWR1JlY3RFbGVtZW50LmNwcCAqLywKLQkJCQlBOEMwRjhCOTA4
OTcwMUY0MDBCQTUxMTQgLyogU1ZHUmVjdEVsZW1lbnQuaCAqLywKIAkJCQlBOEMwRjhCQTA4OTcw
MUY0MDBCQTUxMTQgLyogU1ZHUmVjdC5jcHAgKi8sCiAJCQkJQThDMEY4QkIwODk3MDFGNDAwQkE1
MTE0IC8qIFNWR1JlY3QuaCAqLywKKwkJCQlBODMzQkVBMDBBMkMzMjkzMDBENTc2NjQgLyogU1ZH
UmVjdC5pZGwgKi8sCisJCQkJQThDMEY4QjgwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1JlY3RFbGVt
ZW50LmNwcCAqLywKKwkJCQlBOEMwRjhCOTA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHUmVjdEVsZW1l
bnQuaCAqLywKIAkJCQlBOEMwRjhCQzA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHU2NyaXB0RWxlbWVu
dC5jcHAgKi8sCiAJCQkJQThDMEY4QkQwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1NjcmlwdEVsZW1l
bnQuaCAqLywKIAkJCQlBOEMwRjhCRTA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHU2V0RWxlbWVudC5j
cHAgKi8sCkBAIC00NTEwLDYgKzQ2NzgsNyBAQAogCQkJCUE4OTBERjFCMDkzMDk3NDgwMDUxM0Y4
OCAvKiBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5oICovLAogCQkJCUE4QzBGOEM4MDg5
NzAxRjQwMEJBNTExNCAvKiBTVkdTdHlsZUVsZW1lbnQuY3BwICovLAogCQkJCUE4QzBGOEM5MDg5
NzAxRjQwMEJBNTExNCAvKiBTVkdTdHlsZUVsZW1lbnQuaCAqLywKKwkJCQlBODMzQzc0NDBBMkNF
QzhGMDBENTc2NjQgLyogU1ZHU1ZHRWxlbWVudC5pZGwgKi8sCiAJCQkJQThDMEY4Q0EwODk3MDFG
NDAwQkE1MTE0IC8qIFNWR1NWR0VsZW1lbnQuY3BwICovLAogCQkJCUE4QzBGOENCMDg5NzAxRjQw
MEJBNTExNCAvKiBTVkdTVkdFbGVtZW50LmggKi8sCiAJCQkJQThDMEY4Q0MwODk3MDFGNDAwQkE1
MTE0IC8qIFNWR1N3aXRjaEVsZW1lbnQuY3BwICovLApAQCAtNDUyNywxMiArNDY5NiwxNSBAQAog
CQkJCUE4QzBGOERBMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50
LmggKi8sCiAJCQkJQThDMEY4REIwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1RpdGxlRWxlbWVudC5j
cHAgKi8sCiAJCQkJQThDMEY4REMwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1RpdGxlRWxlbWVudC5o
ICovLAotCQkJCUE4QzBGOEREMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdUcmFuc2Zvcm1hYmxlLmNw
cCAqLywKLQkJCQlBOEMwRjhERTA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHVHJhbnNmb3JtYWJsZS5o
ICovLAogCQkJCUE4QzBGOERGMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdUcmFuc2Zvcm0uY3BwICov
LAogCQkJCUE4QzBGOEUwMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdUcmFuc2Zvcm0uaCAqLywKKwkJ
CQlBODMzQzBBOTBBMkM0RkVDMDBENTc2NjQgLyogU1ZHVHJhbnNmb3JtLmlkbCAqLywKKwkJCQlB
OEMwRjhERDA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHVHJhbnNmb3JtYWJsZS5jcHAgKi8sCisJCQkJ
QThDMEY4REUwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1RyYW5zZm9ybWFibGUuaCAqLywKIAkJCQlB
OEMwRjhFMTA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHVHJhbnNmb3JtTGlzdC5jcHAgKi8sCiAJCQkJ
QThDMEY4RTIwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1RyYW5zZm9ybUxpc3QuaCAqLywKKwkJCQk4
MTE2ODk1RDA5RjJBNEEwMDA3NzJDQTAgLyogU1ZHVFJlZkVsZW1lbnQuY3BwICovLAorCQkJCTgx
MTY4OTVFMDlGMkE0QTAwMDc3MkNBMCAvKiBTVkdUUmVmRWxlbWVudC5oICovLAogCQkJCUE4QzBG
OEUzMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdUU3BhbkVsZW1lbnQuY3BwICovLAogCQkJCUE4QzBG
OEU0MDg5NzAxRjQwMEJBNTExNCAvKiBTVkdUU3BhbkVsZW1lbnQuaCAqLywKIAkJCQlBOEMwRjhF
NTA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHVVJJUmVmZXJlbmNlLmNwcCAqLywKQEAgLTQ5MTMsNiAr
NTA4NSw3IEBACiAJCUUxRjA0MjQzMDk4MzkzODkwMDY2OTRFQSAvKiB4bWwgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUE4MzNDN0Y2MEEyQ0YxRDgwMEQ1
NzY2NCAvKiB4bWxhdHRycy5pbiAqLywKIAkJCQlFMUYwNDI0NDA5ODM5Mzg5MDA2Njk0RUEgLyog
eG1saHR0cHJlcXVlc3QuY3BwICovLAogCQkJCUUxRjA0MjQ1MDk4MzkzODkwMDY2OTRFQSAvKiB4
bWxodHRwcmVxdWVzdC5oICovLAogCQkJCUJDMDZGMjQ5MDZEMThBN0UwMDRBNkZBMyAvKiBYU0xT
dHlsZVNoZWV0LmNwcCAqLywKQEAgLTU1NTksNyArNTczMiw2IEBACiAJCQkJQTg4QUQ1MEMwOTUy
NDhGMDAwMUREMTk2IC8qIFNWR1pvb21BbmRQYW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFE
NTBEMDk1MjQ4RjAwMDFERDE5NiAvKiBrc3ZnLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDUx
NzA5NTI0OTlGMDAxREQxOTYgLyogRE9NTGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTg4QUQ1
MTgwOTUyNDk5RjAwMUREMTk2IC8qIFJHQkNvbG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTUy
RTdBQTA5NkFBMTFCMDAwNkYyNDggLyogV2ViQ29yZUZyYW1lTmFtZXNwYWNlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTgxNjU1RDQwOTZCQkVBQzAwNjAxMDU4IC8qIEtDYW52YXNNYXNrZXJRdWFy
dHouaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTY1NUU1MDk2QkMxMzkwMDYwMTA1OCAvKiBTVkdN
YXNrRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC02MDczLDYgKzYyNDUsMjAgQEAKIAkJCQlB
OEQwNjRGQzBBMjNDMENDMDA1RTcyMDMgLyogSlNIVE1MRm9ybUVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUREN0NERjI1MEEyM0NGOTgwMDA2OTkyOCAvKiBDU1NVbmtub3duUnVsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQThEMDZCMzkwQTI2NURDRDAwNUU3MjAzIC8qIEhUTUxOYW1lcy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQTgzM0I0QkEwQTI3MzExRDAwRDU3NjY0IC8qIEpTU1ZHRG9j
dW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4MzNCQTdGMEEyQkEzRDQwMEQ1NzY2NCAvKiBK
U1NWR1JlY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4MzNCQTgyMEEyQkEzRDQwMEQ1NzY2NCAv
KiBKU1NWR051bWJlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTgzM0JBODUwQTJCQTNENDAwRDU3
NjY0IC8qIEpTU1ZHUG9pbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4MzNCRjFBMEEyQzNBOTUw
MEQ1NzY2NCAvKiBKU1NWR01hdHJpeC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTgzM0JGMUMwQTJD
M0E5NTAwRDU3NjY0IC8qIEpTU1ZHQ29sb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4MzNDMDkx
MEEyQzRGM0YwMEQ1NzY2NCAvKiBKU1NWR1NWR0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUE4MzNDMEY3MEEyQzUxMzMwMEQ1NzY2NCAvKiBKU1NWR0VsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUE4MzNDMEY4MEEyQzUxMzMwMEQ1NzY2NCAvKiBKU1NWR0FuaW1hdGVkTGVuZ3RoLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlBODMzQzBGQTBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdBbmds
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTgzM0MwRkYwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZH
TGVuZ3RoLmggaW4gSGVhZGVycyAqLywKKwkJCQlBODMzQzEwMDBBMkM1MTMzMDBENTc2NjQgLyog
SlNTVkdUcmFuc2Zvcm0uaCBpbiBIZWFkZXJzICovLAorCQkJCUE4MzNDNkQ4MEEyQ0VBNzcwMEQ1
NzY2NCAvKiBKU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QTgzM0M4MEQwQTJDRjI1NjAwRDU3NjY0IC8qIFhNTE5hbWVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTYxNjMsOSArNjM0OSwxMTIgQEAKIAkJCQlBN0I5N0I4MjA5NzlDM0ExMDAwRThFQjEgLyogV0tM
aW5lYXJUcmFuc2ZlckZpbHRlci5jaWtlcm5lbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJQTdCOTdC
ODUwOTc5QzNBMTAwMEU4RUIxIC8qIFdLVGFibGVUcmFuc2ZlckZpbHRlci5jaWtlcm5lbCBpbiBS
ZXNvdXJjZXMgKi8sCiAJCQkJQTc2MzhBOTIwOTk1OTJDMzAwMDdFMTRGIC8qIFdLRGlzcGxhY2Vt
ZW50TWFwRmlsdGVyLmNpa2VybmVsIGluIFJlc291cmNlcyAqLywKLQkJCQlBOEQwNjRGMDBBMjNC
RkVBMDA1RTcyMDMgLyogSFRNTEZvcm1FbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJ
QThEMDY1MUQwQTIzQzFGRTAwNUU3MjAzIC8qIENTU1J1bGVMaXN0LmlkbCBpbiBSZXNvdXJjZXMg
Ki8sCi0JCQkJQThEMDY1MUUwQTIzQzFGRTAwNUU3MjAzIC8qIENTU1ZhbHVlTGlzdC5pZGwgaW4g
UmVzb3VyY2VzICovLAorCQkJCUE4MzNDOUFCMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBHZXRTVkdEb2N1
bWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDOUFDMEEyQ0Y2ODgwMEQ1NzY2NCAv
KiBTVkdBRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDOUFEMEEyQ0Y2ODgw
MEQ1NzY2NCAvKiBTVkdBbmltYXRlQ29sb3JFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJ
CQkJQTgzM0M5QUUwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0FuaW1hdGVkQW5nbGUuaWRsIGluIFJl
c291cmNlcyAqLywKKwkJCQlBODMzQzlBRjBBMkNGNjg4MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRC
b29sZWFuLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgzM0M5QjAwQTJDRjY4ODAwRDU3NjY0
IC8qIFNWR0FuaW1hdGVkRW51bWVyYXRpb24uaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMz
QzlCMTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRJbnRlZ2VyLmlkbCBpbiBSZXNvdXJj
ZXMgKi8sCisJCQkJQTgzM0M5QjIwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0FuaW1hdGVkTGVuZ3Ro
TGlzdC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDOUIzMEEyQ0Y2ODgwMEQ1NzY2NCAv
KiBTVkdBbmltYXRlZE51bWJlci5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDOUI0MEEy
Q0Y2ODgwMEQ1NzY2NCAvKiBTVkdBbmltYXRlZE51bWJlckxpc3QuaWRsIGluIFJlc291cmNlcyAq
LywKKwkJCQlBODMzQzlCNTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0YS5p
ZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDOUI2MEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdB
bmltYXRlZFBvaW50cy5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDOUI3MEEyQ0Y2ODgw
MEQ1NzY2NCAvKiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaWRsIGluIFJlc291cmNl
cyAqLywKKwkJCQlBODMzQzlCODBBMkNGNjg4MDBENTc2NjQgLyogU1ZHQW5pbWF0ZWRSZWN0Lmlk
bCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgzM0M5QjkwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0Fu
aW1hdGVkU3RyaW5nLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgzM0M5QkEwQTJDRjY4ODAw
RDU3NjY0IC8qIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5pZGwgaW4gUmVzb3VyY2VzICovLAor
CQkJCUE4MzNDOUJCMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdBbmltYXRlRWxlbWVudC5pZGwgaW4g
UmVzb3VyY2VzICovLAorCQkJCUE4MzNDOUJDMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdBbmltYXRl
VHJhbnNmb3JtRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDOUJEMEEyQ0Y2
ODgwMEQ1NzY2NCAvKiBTVkdBbmltYXRpb25FbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJ
CQkJQTgzM0M5QkUwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0NpcmNsZUVsZW1lbnQuaWRsIGluIFJl
c291cmNlcyAqLywKKwkJCQlBODMzQzlCRjBBMkNGNjg4MDBENTc2NjQgLyogU1ZHQ2xpcFBhdGhF
bGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgzM0M5QzAwQTJDRjY4ODAwRDU3NjY0
IC8qIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMg
Ki8sCisJCQkJQTgzM0M5QzEwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0N1cnNvckVsZW1lbnQuaWRs
IGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzlDMjBBMkNGNjg4MDBENTc2NjQgLyogU1ZHRGVm
c0VsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzlDMzBBMkNGNjg4MDBENTc2
NjQgLyogU1ZHRGVzY0VsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzlDNDBB
MkNGNjg4MDBENTc2NjQgLyogU1ZHRE9NSW1wbGVtZW50YXRpb24uaWRsIGluIFJlc291cmNlcyAq
LywKKwkJCQlBODMzQzlDNTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHRWxlbWVudEluc3RhbmNlLmlk
bCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgzM0M5QzYwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0Vs
ZW1lbnRJbnN0YW5jZUxpc3QuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzlDNzBBMkNG
Njg4MDBENTc2NjQgLyogU1ZHRWxsaXBzZUVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKKwkJ
CQlBODMzQzlDODBBMkNGNjg4MDBENTc2NjQgLyogU1ZHRXZlbnQuaWRsIGluIFJlc291cmNlcyAq
LywKKwkJCQlBODMzQzlDOTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHRXhjZXB0aW9uLmlkbCBpbiBS
ZXNvdXJjZXMgKi8sCisJCQkJQTgzM0M5Q0EwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzlDQjBBMkNG
Njg4MDBENTc2NjQgLyogU1ZHRkVCbGVuZEVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKKwkJ
CQlBODMzQzlDQzBBMkNGNjg4MDBENTc2NjQgLyogU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaWRs
IGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzlDRDBBMkNGNjg4MDBENTc2NjQgLyogU1ZHRkVD
b21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzlD
RTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHRkVDb21wb3NpdGVFbGVtZW50LmlkbCBpbiBSZXNvdXJj
ZXMgKi8sCisJCQkJQTgzM0M5Q0YwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0ZFRmxvb2RFbGVtZW50
LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgzM0M5RDAwQTJDRjY4ODAwRDU3NjY0IC8qIFNW
R0ZFRnVuY0FFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgzM0M5RDEwQTJDRjY4
ODAwRDU3NjY0IC8qIFNWR0ZFRnVuY0JFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJ
QTgzM0M5RDIwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0ZFRnVuY0dFbGVtZW50LmlkbCBpbiBSZXNv
dXJjZXMgKi8sCisJCQkJQTgzM0M5RDMwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0ZFRnVuY1JFbGVt
ZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgzM0M5RDQwQTJDRjY4ODAwRDU3NjY0IC8q
IFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzND
OUQ1MEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdGRUltYWdlRWxlbWVudC5pZGwgaW4gUmVzb3VyY2Vz
ICovLAorCQkJCUE4MzNDOUQ2MEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdGRU1lcmdlRWxlbWVudC5p
ZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDOUQ3MEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdG
RU1lcmdlTm9kZUVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzlEODBBMkNG
Njg4MDBENTc2NjQgLyogU1ZHRkVPZmZzZXRFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJ
CQkJQTgzM0M5RDkwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0ZFVGlsZUVsZW1lbnQuaWRsIGluIFJl
c291cmNlcyAqLywKKwkJCQlBODMzQzlEQTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHRkVUdXJidWxl
bmNlRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDOURCMEEyQ0Y2ODgwMEQ1
NzY2NCAvKiBTVkdGaWx0ZXJFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgzM0M5
REMwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDOUREMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBT
VkdGaXRUb1ZpZXdCb3guaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzlERTBBMkNGNjg4
MDBENTc2NjQgLyogU1ZHR0VsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzlE
RjBBMkNGNjg4MDBENTc2NjQgLyogU1ZHR3JhZGllbnRFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMg
Ki8sCisJCQkJQTgzM0M5RTAwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0lDQ0NvbG9yLmlkbCBpbiBS
ZXNvdXJjZXMgKi8sCisJCQkJQTgzM0M5RTEwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR0ltYWdlRWxl
bWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDOUUyMEEyQ0Y2ODgwMEQ1NzY2NCAv
KiBTVkdMYW5nU3BhY2UuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzlFMzBBMkNGNjg4
MDBENTc2NjQgLyogU1ZHTGVuZ3RoTGlzdC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzND
OUU0MEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaWRsIGluIFJl
c291cmNlcyAqLywKKwkJCQlBODMzQzlFNTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHTGluZUVsZW1l
bnQuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzlFNjBBMkNGNjg4MDBENTc2NjQgLyog
U1ZHTG9jYXRhYmxlLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgzM0M5RTcwQTJDRjY4ODAw
RDU3NjY0IC8qIFNWR01hcmtlckVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMz
QzlFODBBMkNGNjg4MDBENTc2NjQgLyogU1ZHTnVtYmVyTGlzdC5pZGwgaW4gUmVzb3VyY2VzICov
LAorCQkJCUE4MzNDOUU5MEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdQYWludC5pZGwgaW4gUmVzb3Vy
Y2VzICovLAorCQkJCUE4MzNDOUVBMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdQYXRoRWxlbWVudC5p
ZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDOUVCMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdQ
YXRoU2VnLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgzM0M5RUMwQTJDRjY4ODAwRDU3NjY0
IC8qIFNWR1BhdGhTZWdBcmMuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzlFRDBBMkNG
Njg4MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5pZGwgaW4gUmVzb3VyY2VzICovLAor
CQkJCUE4MzNDOUVFMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljLmlk
bCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgzM0M5RUYwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGguaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzlG
MDBBMkNGNjg4MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWMuaWRsIGluIFJl
c291cmNlcyAqLywKKwkJCQlBODMzQzlGMTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0N1
cnZldG9RdWFkcmF0aWNTbW9vdGguaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzlGMjBB
MkNGNjg4MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0xpbmV0by5pZGwgaW4gUmVzb3VyY2VzICovLAor
CQkJCUE4MzNDOUYzMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRh
bC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDOUY0MEEyQ0Y2ODgwMEQ1NzY2NCAvKiBT
VkdQYXRoU2VnTGluZXRvVmVydGljYWwuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzlG
NTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHUGF0aFNlZ0xpc3QuaWRsIGluIFJlc291cmNlcyAqLywK
KwkJCQlBODMzQzlGNjBBMkNGNjg4MDBENTc2NjQgLyogU1ZHUGF0aFNlZ01vdmV0by5pZGwgaW4g
UmVzb3VyY2VzICovLAorCQkJCUE4MzNDOUY3MEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdQYXR0ZXJu
RWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDOUY4MEEyQ0Y2ODgwMEQ1NzY2
NCAvKiBTVkdQb2ludExpc3QuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzlGOTBBMkNG
Njg4MDBENTc2NjQgLyogU1ZHUG9seWdvbkVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKKwkJ
CQlBODMzQzlGQTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHUG9seWxpbmVFbGVtZW50LmlkbCBpbiBS
ZXNvdXJjZXMgKi8sCisJCQkJQTgzM0M5RkIwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW8uaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQzlGQzBBMkNGNjg4MDBE
NTc2NjQgLyogU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJ
CQkJQTgzM0M5RkQwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1JlY3RFbGVtZW50LmlkbCBpbiBSZXNv
dXJjZXMgKi8sCisJCQkJQTgzM0M5RkUwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1JlbmRlcmluZ0lu
dGVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDOUZGMEEyQ0Y2ODgwMEQ1NzY2NCAv
KiBTVkdTY3JpcHRFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgzM0NBMDAwQTJD
RjY4ODAwRDU3NjY0IC8qIFNWR1NldEVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlB
ODMzQ0EwMTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHU3RvcEVsZW1lbnQuaWRsIGluIFJlc291cmNl
cyAqLywKKwkJCQlBODMzQ0EwMjBBMkNGNjg4MDBENTc2NjQgLyogU1ZHU3RyaW5nTGlzdC5pZGwg
aW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDQTAzMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdTdHls
YWJsZS5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDQTA0MEEyQ0Y2ODgwMEQ1NzY2NCAv
KiBTVkdTdHlsZUVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQ0EwNTBBMkNG
Njg4MDBENTc2NjQgLyogU1ZHU3dpdGNoRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJ
CUE4MzNDQTA2MEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdTeW1ib2xFbGVtZW50LmlkbCBpbiBSZXNv
dXJjZXMgKi8sCisJCQkJQTgzM0NBMDcwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1Rlc3RzLmlkbCBp
biBSZXNvdXJjZXMgKi8sCisJCQkJQTgzM0NBMDgwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1RleHRD
b250ZW50RWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDQTA5MEEyQ0Y2ODgw
MEQ1NzY2NCAvKiBTVkdUZXh0RWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzND
QTBBMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmlkbCBpbiBS
ZXNvdXJjZXMgKi8sCisJCQkJQTgzM0NBMEIwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1RpdGxlRWxl
bWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDQTBDMEEyQ0Y2ODgwMEQ1NzY2NCAv
KiBTVkdUcmFuc2Zvcm1hYmxlLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgzM0NBMEQwQTJD
RjY4ODAwRDU3NjY0IC8qIFNWR1RyYW5zZm9ybUxpc3QuaWRsIGluIFJlc291cmNlcyAqLywKKwkJ
CQlBODMzQ0EwRTBBMkNGNjg4MDBENTc2NjQgLyogU1ZHVFNwYW5FbGVtZW50LmlkbCBpbiBSZXNv
dXJjZXMgKi8sCisJCQkJQTgzM0NBMEYwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1VuaXRUeXBlcy5p
ZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDQTEwMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdV
UklSZWZlcmVuY2UuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODMzQ0ExMTBBMkNGNjg4MDBE
NTc2NjQgLyogU1ZHVXNlRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MzNDQTEy
MEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdWaWV3RWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAor
CQkJCUE4MzNDQTEzMEEyQ0Y2ODgwMEQ1NzY2NCAvKiBTVkdab29tQW5kUGFuLmlkbCBpbiBSZXNv
dXJjZXMgKi8sCisJCQkJQTgzM0NBMTQwQTJDRjY4ODAwRDU3NjY0IC8qIFNWR1pvb21FdmVudC5p
ZGwgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNjQyMSwxMCArNjcxMCw2IEBACiAJCQkJQTg4QUQ1MDcw
OTUyNDhGMDAwMUREMTk2IC8qIFNWR1VzZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTg4QUQ1MDkwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1ZpZXdFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4OEFENTBCMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdab29tQW5kUGFuLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCUE4OEFENTFCMDk1MjQ5OUYwMDFERDE5NiAvKiBSR0JDb2xvci5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlBODhBRDUxQzA5NTI0OTlGMDAxREQxOTYgLyogU1ZHRWxl
bWVudEZhY3RvcnlXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4OEFENTFEMDk1MjQ5
OUYwMDFERDE5NiAvKiBYTGlua05hbWVzV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlB
ODhBRDUxRTA5NTI0OTlGMDAxREQxOTYgLyogU1ZHTmFtZXNXcmFwcGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4OEFENUFBMDk1MjUxMzEwMDFERDE5NiAvKiBTVkdDU1NTdHlsZVNlbGVjdG9y
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1NTJFN0FCMDk2QUExMUIwMDA2RjI0OCAvKiBXZWJD
b3JlRnJhbWVOYW1lc3BhY2VzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgxNjU1RDUwOTZCQkVB
QzAwNjAxMDU4IC8qIEtDYW52YXNNYXNrZXJRdWFydHoubW0gaW4gU291cmNlcyAqLywKQEAgLTY4
OTQsNiArNzE3OSwyMyBAQAogCQkJCUE4RDA2NEZCMEEyM0MwQ0MwMDVFNzIwMyAvKiBKU0hUTUxG
b3JtRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEQwNjVBRTBBMjQ0NkNEMDA1RTcy
MDMgLyogSlNIVE1MRm9ybUVsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThE
MDZCM0EwQTI2NURDRDAwNUU3MjAzIC8qIEhUTUxOYW1lcy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlBODMzQjRCQjBBMjczMTFEMDBENTc2NjQgLyogSlNTVkdEb2N1bWVudC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlBODMzQkE4MTBBMkJBM0Q0MDBENTc2NjQgLyogSlNTVkdSZWN0LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUE4MzNCQTg2MEEyQkEzRDQwMEQ1NzY2NCAvKiBKU1NWR1BvaW50LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUE4MzNCQTg3MEEyQkEzRDQwMEQ1NzY2NCAvKiBKU1NWR051
bWJlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBODMzQkYxQjBBMkMzQTk1MDBENTc2NjQgLyog
SlNTVkdNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTgzM0JGMUQwQTJDM0E5NTAwRDU3
NjY0IC8qIEpTU1ZHQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTgzM0MwOTAwQTJDNEYz
RjAwRDU3NjY0IC8qIEpTU1ZHU1ZHRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBODMz
QzBGOTBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdUcmFuc2Zvcm0uY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQTgzM0MwRkIwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHQW5pbWF0ZWRMZW5ndGguY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQTgzM0MwRkMwQTJDNTEzMzAwRDU3NjY0IC8qIEpTU1ZHQW5n
bGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTgzM0MwRkQwQTJDNTEzMzAwRDU3NjY0IC8qIEpT
U1ZHRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBODMzQzBGRTBBMkM1MTMzMDBENTc2
NjQgLyogSlNTVkdMZW5ndGguY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTgzM0M2RDkwQTJDRUE3
NzAwRDU3NjY0IC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUE4MzNDN0NBMEEyQ0YwNkIwMEQ1NzY2NCAvKiBTVkdOYW1lcy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlBODMzQzdDQzBBMkNGMDc0MDBENTc2NjQgLyogWExpbmtOYW1lcy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlBODMzQzgwQzBBMkNGMjU2MDBENTc2NjQgLyogWE1MTmFtZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQTgzM0M4NTIwQTJDRjUyODAwRDU3NjY0IC8qIFNWR0VsZW1l
bnRGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIENoYW5nZUxvZwkocmV2aXNpb24gMTQ2MzQpCisrKyBDaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwzNDEgQEAKKzIwMDYtMDUtMzAgIEVyaWMgU2VpZGVsICA8ZXJpY0Blc2Vp
ZGVsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgZmlyc3QtY3V0IFNWRyBKUyBiaW5kaW5ncyBhdXRvZ2VuZXJhdGlvbi4KKyAgICAgICAg
U1ZHU1ZHRWxlbWVudCBhbmQgdmFyaW91cyBvdGhlciBzdXBwb3J0IGNsYXNzZXMgYXJlIGdlbmVy
YXRlZC4KKyAgICAgICAgVmFyaW91cyBzbWFsbCBzdHlsZSBmaXhlcy4KKworICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogV2ViQ29yZStTVkcvUkdCQ29sb3IuY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYkNvcmUrU1ZHL1JHQkNvbG9yLmg6IFJlbW92ZWQuCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVKU0hUTUxXcmFwcGVyKTogcmVuYW1lZCBmcm9tIGNyZWF0ZUpTV3JhcHBlcgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL2tqc19kb20uY3BwOgorICAgICAgICAoS0pTOjpET01Ob2RlOjpET01O
b2RlKToKKyAgICAgICAgKEtKUzo6RE9NTm9kZTo6dG9Cb29sZWFuKToKKyAgICAgICAgKEtKUzo6
RE9NTm9kZTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKEtKUzo6RE9NTm9kZTo6Z2V0
VmFsdWVQcm9wZXJ0eSk6CisgICAgICAgIChLSlM6OkRPTU5vZGU6OnB1dCk6CisgICAgICAgIChL
SlM6OkRPTU5vZGU6OnB1dFZhbHVlUHJvcGVydHkpOgorICAgICAgICAoS0pTOjpET01Ob2RlOjp0
b1ByaW1pdGl2ZSk6CisgICAgICAgIChLSlM6OkRPTU5vZGU6OnRvU3RyaW5nKToKKyAgICAgICAg
KEtKUzo6RE9NTm9kZVByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rpb24pOgorICAgICAgICAoS0pTOjp0
b0V2ZW50VGFyZ2V0Tm9kZSk6CisgICAgICAgIChLSlM6OkRPTUV2ZW50VGFyZ2V0Tm9kZTo6Z2V0
T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKEtKUzo6RE9NRXZlbnRUYXJnZXROb2RlOjpnZXRW
YWx1ZVByb3BlcnR5KToKKyAgICAgICAgKEtKUzo6RE9NRXZlbnRUYXJnZXROb2RlOjpwdXQpOgor
ICAgICAgICAoS0pTOjpET01FdmVudFRhcmdldE5vZGU6OnB1dFZhbHVlUHJvcGVydHkpOgorICAg
ICAgICAoS0pTOjpET01FdmVudFRhcmdldE5vZGU6OnNldExpc3RlbmVyKToKKyAgICAgICAgKEtK
Uzo6RE9NRXZlbnRUYXJnZXROb2RlOjpnZXRMaXN0ZW5lcik6CisgICAgICAgIChLSlM6OkRPTUV2
ZW50VGFyZ2V0Tm9kZTo6cHVzaEV2ZW50SGFuZGxlclNjb3BlKToKKyAgICAgICAgKEtKUzo6RE9N
RXZlbnRUYXJnZXROb2RlUHJvdG9GdW5jOjpjYWxsQXNGdW5jdGlvbik6CisgICAgICAgIChLSlM6
OkRPTU5vZGVMaXN0Ojp0b1ByaW1pdGl2ZSk6CisgICAgICAgIChLSlM6OkRPTU5vZGVMaXN0Ojpn
ZXRWYWx1ZVByb3BlcnR5KToKKyAgICAgICAgKEtKUzo6RE9NTm9kZUxpc3Q6OmluZGV4R2V0dGVy
KToKKyAgICAgICAgKEtKUzo6RE9NTm9kZUxpc3Q6Om5hbWVHZXR0ZXIpOgorICAgICAgICAoS0pT
OjpET01Ob2RlTGlzdDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKEtKUzo6RE9NTm9k
ZUxpc3Q6OmNhbGxBc0Z1bmN0aW9uKToKKyAgICAgICAgKEtKUzo6RE9NTm9kZUxpc3RGdW5jOjpj
YWxsQXNGdW5jdGlvbik6CisgICAgICAgIChLSlM6OnRvRWxlbWVudCk6CisgICAgICAgIChLSlM6
OnRvRG9jdW1lbnRUeXBlKToKKyAgICAgICAgKEtKUzo6RE9NTmFtZWROb2RlTWFwOjpET01OYW1l
ZE5vZGVNYXApOgorICAgICAgICAoS0pTOjpET01OYW1lZE5vZGVNYXA6On5ET01OYW1lZE5vZGVN
YXApOgorICAgICAgICAoS0pTOjpET01OYW1lZE5vZGVNYXA6Omxlbmd0aEdldHRlcik6CisgICAg
ICAgIChLSlM6OkRPTU5hbWVkTm9kZU1hcDo6aW5kZXhHZXR0ZXIpOgorICAgICAgICAoS0pTOjpE
T01OYW1lZE5vZGVNYXA6Om5hbWVHZXR0ZXIpOgorICAgICAgICAoS0pTOjpET01OYW1lZE5vZGVN
YXBQcm90b0Z1bmM6OmNhbGxBc0Z1bmN0aW9uKToKKyAgICAgICAgKEtKUzo6dG9KUyk6CisgICAg
ICAgIChLSlM6OmNoZWNrTm9kZVNlY3VyaXR5KToKKyAgICAgICAgKEtKUzo6Z2V0UnVudGltZU9i
amVjdCk6CisgICAgICAgIChLSlM6OkRPTUV4Y2VwdGlvbkNvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QpOgorICAgICAgICAoS0pTOjpET01FeGNlcHRpb25Db25zdHJ1Y3Rvcjo6Z2V0VmFs
dWVQcm9wZXJ0eSk6CisgICAgICAgIChLSlM6OmdldERPTUV4Y2VwdGlvbkNvbnN0cnVjdG9yKToK
KyAgICAgICAgKEtKUzo6RE9NTmFtZWROb2Rlc0NvbGxlY3Rpb246OkRPTU5hbWVkTm9kZXNDb2xs
ZWN0aW9uKToKKyAgICAgICAgKEtKUzo6RE9NTmFtZWROb2Rlc0NvbGxlY3Rpb246Omxlbmd0aEdl
dHRlcik6CisgICAgICAgIChLSlM6OkRPTU5hbWVkTm9kZXNDb2xsZWN0aW9uOjppbmRleEdldHRl
cik6CisgICAgICAgIChLSlM6OkRPTU5hbWVkTm9kZXNDb2xsZWN0aW9uOjpnZXRPd25Qcm9wZXJ0
eVNsb3QpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmltcGxpY2l0Q2xv
c2UpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogZG9tL1N0eWxlZEVsZW1l
bnQuaDoKKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0FuZ2xlLmlkbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0FuaW1hdGVkTGVuZ3Ro
LmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0NvbG9y
LmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0RvY3Vt
ZW50LmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0Vs
ZW1lbnQuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZH
TGVuZ3RoLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NW
R01hdHJpeC5pZGw6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9T
VkdOdW1iZXIuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcv
U1ZHUG9pbnQuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcv
U1ZHUmVjdC5pZGw6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9T
VkdTVkdFbGVtZW50LmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9pZGwv
c3ZnL1NWR1RyYW5zZm9ybS5pZGw6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvYmluZGluZ3Mv
aWRsL3N2Zy9rZG9tZGVmcy5pZGw6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvYmluZGluZ3Mv
anM6IEFkZGVkLgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHTnVtYmVyLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdOdW1i
ZXI6On5KU1NWR051bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR051bWJlcjo6Z2V0T3du
UHJvcGVydHlTbG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHTnVtYmVyOjpnZXRWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpnZXRKU1NWR051bWJlcik6CisgICAgICAgICoga3N2ZzIvYmlu
ZGluZ3MvanMvSlNTVkdOdW1iZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU1NWR051
bWJlcjo6SlNTVkdOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdOdW1iZXI6OmNsYXNz
SW5mbyk6CisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvanMvSlNTVkdQb2ludC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUG9pbnQ6On5K
U1NWR1BvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUG9pbnQ6OmdldE93blByb3BlcnR5
U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR1BvaW50OjpnZXRWYWx1ZVByb3BlcnR5KToK
KyAgICAgICAgKFdlYkNvcmU6OmdldEpTU1ZHUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6dG9G
bG9hdFBvaW50KToKKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR1BvaW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdQb2ludDo6SlNTVkdQb2ludCk6CisgICAgICAg
IChXZWJDb3JlOjpKU1NWR1BvaW50OjpjbGFzc0luZm8pOgorICAgICAgICAoV2ViQ29yZTo6SlNT
VkdQb2ludDo6KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUG9pbnQ6OmltcGwpOgorICAgICAg
ICAqIGtzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHUmVjdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUmVjdDo6fkpTU1ZHUmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpKU1NWR1JlY3Q6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChX
ZWJDb3JlOjpKU1NWR1JlY3Q6OmdldFZhbHVlUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6
Z2V0SlNTVkdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvRmxvYXRSZWN0KToKKyAgICAgICAg
KiBrc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR1JlY3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpKU1NWR1JlY3Q6OkpTU1ZHUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR1JlY3Q6OmNs
YXNzSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR1JlY3Q6Oik6CisgICAgICAgIChXZWJD
b3JlOjpKU1NWR1JlY3Q6OmltcGwpOgorICAgICAgICAqIGtzdmcyL2Nzcy9TVkdDU1NQYXJzZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVNWR1ZhbHVlKToKKyAgICAg
ICAgKiBrc3ZnMi9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KToKKyAgICAgICAgKiBrc3ZnMi9l
dmVudHMvU1ZHWm9vbUV2ZW50LmNwcDoKKyAgICAgICAgKFNWR1pvb21FdmVudDo6U1ZHWm9vbUV2
ZW50KToKKyAgICAgICAgKFNWR1pvb21FdmVudDo6em9vbVJlY3RTY3JlZW4pOgorICAgICAgICAo
U1ZHWm9vbUV2ZW50OjpwcmV2aW91c1RyYW5zbGF0ZSk6CisgICAgICAgIChTVkdab29tRXZlbnQ6
Om5ld1RyYW5zbGF0ZSk6CisgICAgICAgICoga3N2ZzIvZXZlbnRzL1NWR1pvb21FdmVudC5oOgor
ICAgICAgICAqIGtzdmcyL2tzdmcuaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgICog
a3N2ZzIvbWlzYy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpTVkdEb2N1bWVudEV4dGVuc2lvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRG9jdW1lbnRFeHRlbnNpb25zOjp+U1ZHRG9jdW1lbnRFeHRlbnNpb25zKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0RvY3VtZW50RXh0ZW5zaW9uczo6YWRkVGltZUNvbnRhaW5l
cik6CisgICAgICAgIChXZWJDb3JlOjpTVkdEb2N1bWVudEV4dGVuc2lvbnM6OnJlbW92ZVRpbWVD
b250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpzdGFy
dEFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpw
YXVzZUFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRG9jdW1lbnRFeHRlbnNpb25z
Ojp1bnBhdXNlQW5pbWF0aW9ucyk6CisgICAgICAgICoga3N2ZzIvbWlzYy9TVkdEb2N1bWVudEV4
dGVuc2lvbnMuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHQUVsZW1lbnQuaDoKKyAgICAgICAg
KiBrc3ZnMi9zdmcvU1ZHQW5nbGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjopOgor
ICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmdsZS5pZGw6IEFkZGVkLgorICAgICAgICAqIGtzdmcy
L3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVDb2xvckVsZW1lbnQ6OlNWR0FuaW1hdGVDb2xvckVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudDo6aGFuZGxlVGltZXJFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlQ29sb3JFbGVtZW50OjpjbGFtcENvbG9yKToKKyAgICAgICAg
KiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2
Zy9TVkdBbmltYXRlRWxlbWVudC5jcHA6CisgICAgICAgIChTVkdBbmltYXRlRWxlbWVudDo6U1ZH
QW5pbWF0ZUVsZW1lbnQpOgorICAgICAgICAoU1ZHQW5pbWF0ZUVsZW1lbnQ6OmhhbmRsZVRpbWVy
RXZlbnQpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oOgorICAgICAg
ICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudDo6U1ZHQW5pbWF0ZVRyYW5zZm9ybUVs
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OnBh
cnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVUcmFuc2Zv
cm1FbGVtZW50OjpoYW5kbGVUaW1lckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVUcmFuc2Zvcm1FbGVtZW50OjpwYXJzZVRyYW5zZm9ybVZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpjYWxjdWxhdGVSb3RhdGlvbkZyb21NYXRy
aXgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OmluaXRp
YWxNYXRyaXgpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVu
dC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5pZGw6IEFkZGVkLgor
ICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFNW
R0FuaW1hdGlvbkVsZW1lbnQ6OmNsb3NlUmVuZGVyZXIpOgorICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdBbmltYXRpb25FbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0NpcmNsZUVsZW1l
bnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50Lmg6CisgICAgICAg
ICoga3N2ZzIvc3ZnL1NWR0NvbG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NvbG9yOjpT
VkdDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdDb2xvcjo6cmdiQ29sb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQ29sb3I6OnNldFJHQkNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0NvbG9yOjpzZXRSR0JDb2xvcklDQ0NvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NvbG9y
OjpzZXRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdDb2xvcjo6Y29sb3IpOgorICAgICAg
ICAqIGtzdmcyL3N2Zy9TVkdDb2xvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ29sb3I6Oik6
CisgICAgICAgIChXZWJDb3JlOjpTVkdDb2xvcjo6c2V0UkdCQ29sb3IpOgorICAgICAgICAqIGtz
dmcyL3N2Zy9TVkdDb2xvci5pZGw6IEFkZGVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdD
dXJzb3JFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0RlZnNFbGVtZW50Lmg6Cisg
ICAgICAgICoga3N2ZzIvc3ZnL1NWR0Rlc2NFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR0RvY3VtZW50LmlkbDogQWRkZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6U1ZHRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdFbGVtZW50Ojppc1N1cHBvcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdFbGVtZW50OjppZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50OjpzZXRJZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50Ojp4bWxiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0VsZW1lbnQ6OnNldFhtbGJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6
b3duZXJTVkdFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OnZpZXdwb3J0
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50Ojp0cnlHZXRBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6dHJ5R2V0QXR0cmlidXRlTlMpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcik6Cisg
ICAgICAgICoga3N2ZzIvc3ZnL1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZH
RWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdFbGxpcHNlRWxlbWVu
dC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdFdmVudC5pZGw6IEFkZGVkLgorICAgICAgICAq
IGtzdmcyL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdG
RUNvbG9yTWF0cml4RWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGRUNvbXBvbmVu
dFRyYW5zZmVyRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGRUNvbXBvc2l0ZUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50
Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oOgorICAg
ICAgICAqIGtzdmcyL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2
Zy9TVkdGRUZ1bmNBRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGRUZ1bmNCRWxl
bWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5oOgorICAgICAg
ICAqIGtzdmcyL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVJbWFn
ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9z
dmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFT2Zm
c2V0RWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50
Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaDoK
KyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50Lmg6CisgICAgICAgICog
a3N2ZzIvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVU
dXJidWxlbmNlRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGaWx0ZXJFbGVtZW50
Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcy5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oOgor
ICAgICAgICAqIGtzdmcyL3N2Zy9TVkdHRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHSGVscGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0hlbHBlcjo6UGVyY2VudGFnZU9mVmlld3BvcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHSGVscGVyOjpQYXJzZVNlcGVyYXRlZExpc3QpOgorICAgICAgICAq
IGtzdmcyL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHTGVu
Z3RoLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6Oik6CisgICAgICAgICoga3N2ZzIv
c3ZnL1NWR0xlbmd0aC5pZGw6IEFkZGVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdMaW5lRWxl
bWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaDoK
KyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmNwcDoKKyAgICAgICAgKFNWR0xvY2F0
YWJsZTo6Z2V0QkJveCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0xvY2F0YWJsZS5oOgorICAg
ICAgICAqIGtzdmcyL3N2Zy9TVkdNYXJrZXJFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR01hc2tFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR01hdHJpeC5jcHA6Cisg
ICAgICAgIChTVkdNYXRyaXg6OmludmVyc2UpOgorICAgICAgICAoU1ZHTWF0cml4Ojpyb3RhdGVG
cm9tVmVjdG9yKToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHTWF0cml4Lmg6CisgICAgICAgICog
a3N2ZzIvc3ZnL1NWR01hdHJpeC5pZGw6IEFkZGVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdO
dW1iZXIuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OmdldFBvaW50QXRMZW5ndGgpOgor
ICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQYXRoRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2
Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXR0ZXJuRWxl
bWVudDo6eCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXR0ZXJuRWxlbWVudDo6eSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQYXR0ZXJuRWxlbWVudDo6d2lkdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0dGVybkVsZW1lbnQ6OmhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXR0
ZXJuRWxlbWVudDo6cHVzaEF0dHJpYnV0ZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UGF0dGVybkVsZW1lbnQ6OmZpbGxBdHRyaWJ1dGVzRnJvbVJlZmVyZW5jZVBhdHRlcm4pOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUGF0dGVybkVsZW1lbnQ6OmRyYXdQYXR0ZXJuQ29udGVudEludG9U
aWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdHRlcm5FbGVtZW50Ojpub3RpZnlDbGllbnRz
VG9SZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdHRlcm5FbGVtZW50Ojpub3RpZnlB
dHRyaWJ1dGVDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0dGVybkVsZW1lbnQ6OmNh
bnZhc1Jlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdHRlcm5FbGVtZW50OjpnZXRD
VE0pOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oOgorICAgICAgICAq
IGtzdmcyL3N2Zy9TVkdQb2ludC5pZGw6IEFkZGVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQ
b2x5RWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5oOgor
ICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3Zn
Mi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NW
R1JlY3QuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUmVjdEVsZW1lbnQuaDoK
KyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdTVkdFbGVtZW50OjpTVkdTVkdFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NW
R0VsZW1lbnQ6On5TVkdTVkdFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1l
bnQ6OnZpZXdwb3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmN1cnJlbnRU
cmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6dW5zdXNwZW5kUmVk
cmF3KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmdldEludGVyc2VjdGlvbkxp
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6Z2V0RW5jbG9zdXJlTGlzdCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpjaGVja0ludGVyc2VjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpjaGVja0VuY2xvc3VyZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpjcmVhdGVTVkdOdW1iZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdF
bGVtZW50OjpwYXVzZUFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVu
dDo6dW5wYXVzZUFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6
YW5pbWF0aW9uc1BhdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpnZXRD
dXJyZW50VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpzZXRDdXJyZW50
VGltZSk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1NWR0VsZW1lbnQ6OnRpbWVTY2hlZHVsZXIpOgorICAgICAgICAqIGtzdmcyL3N2
Zy9TVkdTVkdFbGVtZW50LmlkbDogQWRkZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1Njcmlw
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHU2V0RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdTZXRFbGVtZW50OjpTVkdTZXRFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1NldEVsZW1lbnQ6OmhhbmRsZVRpbWVyRXZlbnQpOgorICAgICAgICAqIGtzdmcy
L3N2Zy9TVkdTZXRFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1N0b3BFbGVtZW50
Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1N0eWxlRWxlbWVudC5oOgorICAgICAgICAqIGtz
dmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1N0eWxl
ZExvY2F0YWJsZUVsZW1lbnQuY3BwOgorICAgICAgICAoU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVu
dDo6Z2V0QkJveCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1N0eWxlZExvY2F0YWJsZUVsZW1l
bnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQu
Y3BwOgorICAgICAgICAoU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OmdldEJCb3gpOgor
ICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5oOgorICAg
ICAgICAqIGtzdmcyL3N2Zy9TVkdTd2l0Y2hFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR1N5bWJvbEVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHVFJlZkVsZW1lbnQu
aDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHVFNwYW5FbGVtZW50Lmg6CisgICAgICAgICoga3N2
ZzIvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChTVkdUZXh0Q29udGVu
dEVsZW1lbnQ6OmdldFN0YXJ0UG9zaXRpb25PZkNoYXIpOgorICAgICAgICAoU1ZHVGV4dENvbnRl
bnRFbGVtZW50OjpnZXRFbmRQb3NpdGlvbk9mQ2hhcik6CisgICAgICAgIChTVkdUZXh0Q29udGVu
dEVsZW1lbnQ6OmdldEV4dGVudE9mQ2hhcik6CisgICAgICAgIChTVkdUZXh0Q29udGVudEVsZW1l
bnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKToKKyAgICAgICAgKFNWR1RleHRDb250ZW50RWxlbWVu
dDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdUZXh0Q29u
dGVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dEVsZW1lbnQ6OmdldEJCb3gpOgorICAgICAgICAqIGtz
dmcyL3N2Zy9TVkdUZXh0RWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdUZXh0UG9z
aXRpb25pbmdFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1RpdGxlRWxlbWVudC5o
OgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm0uaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1RyYW5zZm9ybTo6KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHVHJhbnNmb3JtLmlkbDog
QWRkZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1VzZUVsZW1lbnQuaDoKKyAgICAgICAgKiBr
c3ZnMi9zdmcvU1ZHVmlld0VsZW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lOjpGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6
cGF1c2VUaW1lb3V0cyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6cmVzdW1lVGltZW91dHMp
OgorICAgICAgICAqIHBsYXRmb3JtL0NvbG9yLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJSLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94OjpyZW5kZXJOYW1lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQ2Fu
dmFzLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDYW52YXM6OnZpZXcpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJDb250YWluZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
RmxleGlibGVCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvdy5oOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyRmxvdzo6UmVuZGVyRmxvdyk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlcklubGluZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24u
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUZXh0RnJhZ21lbnQ6OmNvbnRlbnRTdHJpbmcpOgorICAgICAgICAqIHht
bC94bWxhdHRycy5pbjogQWRkZWQuCisKIDIwMDYtMDUtMzAgIFNhbSBXZWluaWcgIDxzYW0ud2Vp
bmlnQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWosIGxhbmRlZCBieSBC
ZXRoLgpAQCAtMjksNiArMzY3LDE1NiBAQAogCiAyMDA2LTA1LTMwICBFcmljIFNlaWRlbCAgPGVy
aWNAZXNlaWRlbC5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNFUyBBRERFRCBPUiBDSEFOR0VECisKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3Iu
cG06CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAg
ICAgICoga2NhbnZhcy9LQ2FudmFzTWF0cml4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktDYW52
YXNNYXRyaXg6OktDYW52YXNNYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6S0NhbnZhc01hdHJp
eDo6cm90YXRlRnJvbVZlY3Rvcik6CisgICAgICAgICoga2NhbnZhcy9LQ2FudmFzTWF0cml4Lmg6
CisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmdsZS5pZGw6IFJlbW92ZWQu
CisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5pZGw6
IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdDb2xvci5pZGw6
IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdEb2N1bWVudC5p
ZGw6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdFbGVtZW50
LmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0xlbmd0
aC5pZGw6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdNYXRy
aXguaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHTnVt
YmVyLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR1Bv
aW50LmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR1Jl
Y3QuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHU1ZH
RWxlbWVudC5pZGw6IFJlbW92ZWQuCisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9T
VkdUcmFuc2Zvcm0uaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2lkbC9z
dmcva2RvbWRlZnMuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2pzOiBB
ZGRlZC4KKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR051bWJlci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHTnVtYmVyOjp+
SlNTVkdOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdOdW1iZXI6OmdldE93blByb3Bl
cnR5U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR051bWJlcjo6Z2V0VmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6Z2V0SlNTVkdOdW1iZXIpOgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdz
L2pzL0pTU1ZHTnVtYmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdOdW1iZXI6
OkpTU1ZHTnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHTnVtYmVyOjpjbGFzc0luZm8p
OgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHUG9pbnQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR1BvaW50Ojp+SlNTVkdQ
b2ludCk6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR1BvaW50OjpnZXRPd25Qcm9wZXJ0eVNsb3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdQb2ludDo6Z2V0VmFsdWVQcm9wZXJ0eSk6CisgICAg
ICAgIChXZWJDb3JlOjpnZXRKU1NWR1BvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OnRvRmxvYXRQ
b2ludCk6CisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvanMvSlNTVkdQb2ludC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUG9pbnQ6OkpTU1ZHUG9pbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNTVkdQb2ludDo6Y2xhc3NJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHUG9p
bnQ6Oik6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR1BvaW50OjppbXBsKToKKyAgICAgICAgKiBr
c3ZnMi9iaW5kaW5ncy9qcy9KU1NWR1JlY3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Oik6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR1JlY3Q6On5KU1NWR1JlY3QpOgorICAgICAgICAo
V2ViQ29yZTo6SlNTVkdSZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNTVkdSZWN0OjpnZXRWYWx1ZVByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OmdldEpT
U1ZHUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjp0b0Zsb2F0UmVjdCk6CisgICAgICAgICoga3N2
ZzIvYmluZGluZ3MvanMvSlNTVkdSZWN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNT
VkdSZWN0OjpKU1NWR1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdSZWN0OjpjbGFzc0lu
Zm8pOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdSZWN0OjopOgorICAgICAgICAoV2ViQ29yZTo6
SlNTVkdSZWN0OjppbXBsKToKKyAgICAgICAgKiBrc3ZnMi9jc3MvU1ZHQ1NTUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VTVkdWYWx1ZSk6CisgICAgICAgICog
a3N2ZzIvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSk6CisgICAgICAgICoga3N2ZzIvZXZlbnRz
L1NWR1pvb21FdmVudC5jcHA6CisgICAgICAgIChTVkdab29tRXZlbnQ6OlNWR1pvb21FdmVudCk6
CisgICAgICAgIChTVkdab29tRXZlbnQ6Onpvb21SZWN0U2NyZWVuKToKKyAgICAgICAgKFNWR1pv
b21FdmVudDo6cHJldmlvdXNUcmFuc2xhdGUpOgorICAgICAgICAoU1ZHWm9vbUV2ZW50OjpuZXdU
cmFuc2xhdGUpOgorICAgICAgICAqIGtzdmcyL2V2ZW50cy9TVkdab29tRXZlbnQuaDoKKyAgICAg
ICAgKiBrc3ZnMi9rc3ZnLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAqIGtzdmcy
L3N2Zy9TVkdBbmdsZS5pZGw6IEFkZGVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdBbmltYXRl
Q29sb3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ6OmhhbmRs
ZVRpbWVyRXZlbnQpOgorICAgICAgICAoU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudDo6Y2xhbXBDb2xv
cik6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpTVkdBbmltYXRl
VHJhbnNmb3JtRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OmhhbmRsZVRpbWVyRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OnBhcnNlVHJhbnNmb3JtVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OmNhbGN1bGF0ZVJvdGF0
aW9uRnJvbU1hdHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlVHJhbnNmb3JtRWxl
bWVudDo6aW5pdGlhbE1hdHJpeCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkTGVu
Z3RoLmlkbDogQWRkZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0NvbG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0NvbG9yOjpTVkdDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdD
b2xvcjo6cmdiQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ29sb3I6OnNldFJHQkNvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NvbG9yOjpzZXRSR0JDb2xvcklDQ0NvbG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0NvbG9yOjpzZXRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpT
VkdDb2xvcjo6Y29sb3IpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdDb2xvci5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQ29sb3I6Oik6CisgICAgICAgIChXZWJDb3JlOjpTVkdDb2xvcjo6c2V0
UkdCQ29sb3IpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdDb2xvci5pZGw6IEFkZGVkLgorICAg
ICAgICAqIGtzdmcyL3N2Zy9TVkdEb2N1bWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGtzdmcy
L3N2Zy9TVkdFbGVtZW50LmlkbDogQWRkZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0V2ZW50
LmlkbDogQWRkZWQuCisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0V4Y2VwdGlvbi5pZGw6IEFkZGVk
LgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdMZW5ndGguaWRsOiBBZGRlZC4KKyAgICAgICAgKiBr
c3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmNwcDoKKyAgICAgICAgKFNWR0xvY2F0YWJsZTo6Z2V0QkJv
eCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0xvY2F0YWJsZS5oOgorICAgICAgICAqIGtzdmcy
L3N2Zy9TVkdNYXRyaXguY3BwOgorICAgICAgICAoU1ZHTWF0cml4OjppbnZlcnNlKToKKyAgICAg
ICAgKFNWR01hdHJpeDo6cm90YXRlRnJvbVZlY3Rvcik6CisgICAgICAgICoga3N2ZzIvc3ZnL1NW
R01hdHJpeC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdNYXRyaXguaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBrc3ZnMi9zdmcvU1ZHTnVtYmVyLmlkbDogQWRkZWQuCisgICAgICAgICoga3N2ZzIv
c3ZnL1NWR1BhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50
OjpnZXRQb2ludEF0TGVuZ3RoKToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnQu
aDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUG9pbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBr
c3ZnMi9zdmcvU1ZHUmVjdC5pZGw6IEFkZGVkLgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTVkdF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OnZpZXdwb3J0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmN1cnJlbnRUcmFuc2xhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6dW5zdXNwZW5kUmVkcmF3KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmdldEludGVyc2VjdGlvbkxpc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6Z2V0RW5jbG9zdXJlTGlzdCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdTVkdFbGVtZW50OjpjaGVja0ludGVyc2VjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdTVkdFbGVtZW50OjpjaGVja0VuY2xvc3VyZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdT
VkdFbGVtZW50OjpjcmVhdGVTVkdOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxl
bWVudDo6Y3JlYXRlU1ZHUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6
Y3JlYXRlU1ZHUmVjdCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuaDoKKyAg
ICAgICAgKiBrc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGtz
dmcyL3N2Zy9TVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFNWR1N0eWxl
ZExvY2F0YWJsZUVsZW1lbnQ6OmdldEJCb3gpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTdHls
ZWRMb2NhdGFibGVFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5z
Zm9ybWFibGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVt
ZW50OjpnZXRCQm94KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJs
ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0U3RhcnRQb3NpdGlvbk9mQ2hh
cik6CisgICAgICAgIChTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldEVuZFBvc2l0aW9uT2ZDaGFy
KToKKyAgICAgICAgKFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0RXh0ZW50T2ZDaGFyKToKKyAg
ICAgICAgKFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Q2hhck51bUF0UG9zaXRpb24pOgorICAg
ICAgICAoU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAg
ICAgICoga3N2ZzIvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oOgorICAgICAgICAqIGtzdmcy
L3N2Zy9TVkdUZXh0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0RWxlbWVu
dDo6Z2V0QkJveCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50Lmg6CisgICAg
ICAgICoga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybS5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdU
cmFuc2Zvcm0uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Db2xvci5oOgorICAgICAg
ICAqIFdlYkNvcmUrU1ZHL1JHQkNvbG9yLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJDb3Jl
K1NWRy9SR0JDb2xvci5oOiBSZW1vdmVkLgorCisyMDA2LTA1LTMwICBFcmljIFNlaWRlbCAgPGVy
aWNAZXNlaWRlbC5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgYW5kZXJzY2EuCiAKICAgICAg
ICAgU21hbGwgYW1vdW50IG9mIHN2Zy1yZWxhdGVkIGNvZGUgY2xlYW51cC4KSW5kZXg6IGtzdmcy
L3N2Zy9TVkdOdW1iZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdOdW1iZXIuaWRs
CShyZXZpc2lvbiAxNDYxOSkKKysrIGtzdmcyL3N2Zy9TVkdOdW1iZXIuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDcgKzEsMzIgQEAKLW1vZHVsZSBzdmcKLXsKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CisgKiAgICAg
ICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworbW9kdWxlIHN2ZyB7CiAgIGlu
dGVyZmFjZSBTVkdOdW1iZXIgeyAKLSAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgdmFsdWU7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0
aW5nCisgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB2YWx1ZQorICAgICAgICAgICAgc2V0dGVyIHJh
aXNlcyBET01FeGNlcHRpb247CiAgIH07CiB9OwpJbmRleDoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVU
cmFuc2Zvcm1FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50LmgJKHJldmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR0FuaW1hdGVU
cmFuc2Zvcm1FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKICAgICBj
bGFzcyBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudCA6IHB1YmxpYyBTVkdBbmltYXRpb25FbGVt
ZW50CiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAg
IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudCgpOwogCiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUg
KmF0dHIpOwpJbmRleDoga3N2ZzIvc3ZnL1NWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudC5oCShyZXZpc2lv
biAxNDYyMikKKysrIGtzdmcyL3N2Zy9TVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDE1ICsyNywxNCBAQAogI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQu
aCIKICNpbmNsdWRlICJTVkdMb2NhdGFibGUuaCIKIAotbmFtZXNwYWNlIFdlYkNvcmUKLXsKLSAg
ICBjbGFzcyBTVkdSZWN0OworbmFtZXNwYWNlIFdlYkNvcmUgeworCiAgICAgY2xhc3MgU1ZHTWF0
cml4OwogICAgIGNsYXNzIFNWR0VsZW1lbnQ7CiAgICAgY2xhc3MgU1ZHU3R5bGVkTG9jYXRhYmxl
RWxlbWVudCA6IHB1YmxpYyBTVkdTdHlsZWRFbGVtZW50LCBwdWJsaWMgU1ZHTG9jYXRhYmxlCiAg
ICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCAqZG9jKTsKKyAgICAgICAgU1ZHU3R5
bGVkTG9jYXRhYmxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAg
ICAgICAgdmlydHVhbCB+U1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudCgpOwogICAgICAgICAKICAg
ICAgICAgdmlydHVhbCBib29sIGlzU3R5bGVkTG9jYXRhYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQpAQCAtNDQsNyArNDMsNyBAQAogICAgICAgICB2aXJ0dWFsIFNWR0VsZW1lbnQgKm5lYXJl
c3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBTVkdFbGVtZW50ICpm
YXJ0aGVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgU1ZHUmVj
dCAqZ2V0QkJveCgpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBnZXRCQm94KCkg
Y29uc3Q7CiAgICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4ICpnZXRDVE0oKSBjb25zdDsKICAgICAg
ICAgdmlydHVhbCBTVkdNYXRyaXggKmdldFNjcmVlbkNUTSgpIGNvbnN0OwogICAgICAgICB2aXJ0
dWFsIFNWR01hdHJpeCAqZ2V0VHJhbnNmb3JtVG9FbGVtZW50KFNWR0VsZW1lbnQgKmVsZW1lbnQp
IGNvbnN0OwpJbmRleDoga3N2ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGtzdmcyL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIp
CisrKyBrc3ZnMi9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTM2LDcgKzM2LDcgQEAKICAgICBjbGFzcyBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQgOiBwdWJsaWMg
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzCiAgICAgewogICAgIHB1YmxpYzoK
LSAgICAgICAgU1ZHRkVDb21wb3NpdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50ICpkb2MpOworICAgICAgICBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR0ZFQ29tcG9z
aXRlRWxlbWVudCgpOwogCiAgICAgICAgIC8vICdTVkdGRUNvbXBvc2l0ZUVsZW1lbnQnIGZ1bmN0
aW9ucwpJbmRleDoga3N2ZzIvc3ZnL1NWR1N0b3BFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2
ZzIvc3ZnL1NWR1N0b3BFbGVtZW50LmgJKHJldmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NW
R1N0b3BFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKICAgICBjbGFz
cyBTVkdTdG9wRWxlbWVudCA6IHB1YmxpYyBTVkdTdHlsZWRFbGVtZW50CiAgICAgewogICAgIHB1
YmxpYzoKLSAgICAgICAgU1ZHU3RvcEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR1N0b3BFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdTdG9wRWxlbWVudCgpOwog
ICAgICAgICAKICAgICAgICAgdmlydHVhbCBib29sIGlzR3JhZGllbnRTdG9wKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQpJbmRleDoga3N2ZzIvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQu
aAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKICAgICBjbGFzcyBTVkdGRURp
ZmZ1c2VMaWdodGluZ0VsZW1lbnQgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzCiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHRkVEaWZmdXNlTGlnaHRp
bmdFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpOwor
ICAgICAgICBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dCgpOwogCiAgICAgICAgIC8vICdTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQnIGZ1bmN0aW9u
cwpJbmRleDoga3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9z
dmcvU1ZHU1ZHRWxlbWVudC5oCShyZXZpc2lvbiAxNDYyMikKKysrIGtzdmcyL3N2Zy9TVkdTVkdF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwLDggKzIwLDggQEAKICAgICBCb3N0b24sIE1B
IDAyMTExLTEzMDcsIFVTQS4KICovCiAKLSNpZm5kZWYgS1NWR19TVkdTVkdFbGVtZW50SW1wbF9I
Ci0jZGVmaW5lIEtTVkdfU1ZHU1ZHRWxlbWVudEltcGxfSAorI2lmbmRlZiBTVkdTVkdFbGVtZW50
X0gKKyNkZWZpbmUgU1ZHU1ZHRWxlbWVudF9ICiAjaWYgU1ZHX1NVUFBPUlQKIAogI2luY2x1ZGUg
IlNWR1Rlc3RzLmgiCkBAIC0zNCwxNCArMzQsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUKIHsKICAg
ICBjbGFzcyBEb2N1bWVudFB0cjsKLX07Ci0KLW5hbWVzcGFjZSBXZWJDb3JlCi17Ci0gICAgY2xh
c3MgU1ZHUmVjdDsKICAgICBjbGFzcyBTVkdBbmdsZTsKLSAgICBjbGFzcyBTVkdQb2ludDsKLSAg
ICBjbGFzcyBTVkdOdW1iZXI7CiAgICAgY2xhc3MgU1ZHTGVuZ3RoOwogICAgIGNsYXNzIFNWR01h
dHJpeDsKICAgICBjbGFzcyBTVkdUcmFuc2Zvcm07CkBAIC01NSw3ICs0OCw3IEBACiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHWm9vbUFuZFBhbgogICAgIHsKICAgICBw
dWJsaWM6Ci0gICAgICAgIFNWR1NWR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR1NWR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR1NWR0VsZW1lbnQoKTsKIAog
ICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTVkcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC03
NCw3ICs2Nyw3IEBACiAgICAgICAgIEF0b21pY1N0cmluZyBjb250ZW50U3R5bGVUeXBlKCkgY29u
c3Q7CiAgICAgICAgIHZvaWQgc2V0Q29udGVudFN0eWxlVHlwZShjb25zdCBBdG9taWNTdHJpbmcm
IHR5cGUpOwogCi0gICAgICAgIFNWR1JlY3QgKnZpZXdwb3J0KCkgY29uc3Q7CisgICAgICAgIEZs
b2F0UmVjdCB2aWV3cG9ydCgpIGNvbnN0OwogCiAgICAgICAgIGZsb2F0IHBpeGVsVW5pdFRvTWls
bGltZXRlclgoKSBjb25zdDsKICAgICAgICAgZmxvYXQgcGl4ZWxVbml0VG9NaWxsaW1ldGVyWSgp
IGNvbnN0OwpAQCAtODksMjUgKzgyLDM0IEBACiAgICAgICAgIGZsb2F0IGN1cnJlbnRTY2FsZSgp
IGNvbnN0OwogICAgICAgICB2b2lkIHNldEN1cnJlbnRTY2FsZShmbG9hdCBzY2FsZSk7CiAKLSAg
ICAgICAgU1ZHUG9pbnQgKmN1cnJlbnRUcmFuc2xhdGUoKSBjb25zdDsKKyAgICAgICAgRmxvYXRQ
b2ludCBjdXJyZW50VHJhbnNsYXRlKCkgY29uc3Q7CisgICAgICAgIAorICAgICAgICBUaW1lU2No
ZWR1bGVyKiB0aW1lU2NoZWR1bGVyKCkgeyByZXR1cm4gbV90aW1lU2NoZWR1bGVyOyB9CisgICAg
ICAgIAorICAgICAgICB2b2lkIHBhdXNlQW5pbWF0aW9ucygpOworICAgICAgICB2b2lkIHVucGF1
c2VBbmltYXRpb25zKCk7CisgICAgICAgIGJvb2wgYW5pbWF0aW9uc1BhdXNlZCgpIGNvbnN0Owor
CisgICAgICAgIGZsb2F0IGdldEN1cnJlbnRUaW1lKCkgY29uc3Q7CisgICAgICAgIHZvaWQgc2V0
Q3VycmVudFRpbWUoZmxvYXQgc2Vjb25kcyk7CiAKICAgICAgICAgdW5zaWduZWQgbG9uZyBzdXNw
ZW5kUmVkcmF3KHVuc2lnbmVkIGxvbmcgbWF4X3dhaXRfbWlsbGlzZWNvbmRzKTsKLSAgICAgICAg
dm9pZCB1bnN1c3BlbmRSZWRyYXcodW5zaWduZWQgbG9uZyBzdXNwZW5kX2hhbmRsZV9pZCk7Cisg
ICAgICAgIHZvaWQgdW5zdXNwZW5kUmVkcmF3KHVuc2lnbmVkIGxvbmcgc3VzcGVuZF9oYW5kbGVf
aWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgdm9pZCB1bnN1c3BlbmRSZWRyYXdBbGwoKTsK
ICAgICAgICAgdm9pZCBmb3JjZVJlZHJhdygpOwogCi0gICAgICAgIE5vZGVMaXN0ICpnZXRJbnRl
cnNlY3Rpb25MaXN0KFNWR1JlY3QgKnJlY3QsIFNWR0VsZW1lbnQgKnJlZmVyZW5jZUVsZW1lbnQp
OwotICAgICAgICBOb2RlTGlzdCAqZ2V0RW5jbG9zdXJlTGlzdChTVkdSZWN0ICpyZWN0LCBTVkdF
bGVtZW50ICpyZWZlcmVuY2VFbGVtZW50KTsKLSAgICAgICAgYm9vbCBjaGVja0ludGVyc2VjdGlv
bihTVkdFbGVtZW50ICplbGVtZW50LCBTVkdSZWN0ICpyZWN0KTsKLSAgICAgICAgYm9vbCBjaGVj
a0VuY2xvc3VyZShTVkdFbGVtZW50ICplbGVtZW50LCBTVkdSZWN0ICpyZWN0KTsKKyAgICAgICAg
Tm9kZUxpc3QqIGdldEludGVyc2VjdGlvbkxpc3QoY29uc3QgRmxvYXRSZWN0JiwgU1ZHRWxlbWVu
dCAqcmVmZXJlbmNlRWxlbWVudCk7CisgICAgICAgIE5vZGVMaXN0KiBnZXRFbmNsb3N1cmVMaXN0
KGNvbnN0IEZsb2F0UmVjdCYsIFNWR0VsZW1lbnQgKnJlZmVyZW5jZUVsZW1lbnQpOworICAgICAg
ICBib29sIGNoZWNrSW50ZXJzZWN0aW9uKFNWR0VsZW1lbnQqLCBjb25zdCBGbG9hdFJlY3QmKTsK
KyAgICAgICAgYm9vbCBjaGVja0VuY2xvc3VyZShTVkdFbGVtZW50KiwgY29uc3QgRmxvYXRSZWN0
Jik7CiAgICAgICAgIHZvaWQgZGVzZWxlY3RBbGwoKTsKIAotICAgICAgICBzdGF0aWMgU1ZHTnVt
YmVyICpjcmVhdGVTVkdOdW1iZXIoKTsKKyAgICAgICAgc3RhdGljIGZsb2F0IGNyZWF0ZVNWR051
bWJlcigpOwogICAgICAgICBzdGF0aWMgU1ZHTGVuZ3RoICpjcmVhdGVTVkdMZW5ndGgoKTsKICAg
ICAgICAgc3RhdGljIFNWR0FuZ2xlICpjcmVhdGVTVkdBbmdsZSgpOwotICAgICAgICBzdGF0aWMg
U1ZHUG9pbnQgKmNyZWF0ZVNWR1BvaW50KGNvbnN0IEludFBvaW50ICZwID0gSW50UG9pbnQoKSk7
CisgICAgICAgIHN0YXRpYyBGbG9hdFBvaW50IGNyZWF0ZVNWR1BvaW50KGNvbnN0IEludFBvaW50
ICZwID0gSW50UG9pbnQoKSk7CiAgICAgICAgIHN0YXRpYyBTVkdNYXRyaXggKmNyZWF0ZVNWR01h
dHJpeCgpOwotICAgICAgICBzdGF0aWMgU1ZHUmVjdCAqY3JlYXRlU1ZHUmVjdCgpOworICAgICAg
ICBzdGF0aWMgRmxvYXRSZWN0IGNyZWF0ZVNWR1JlY3QoKTsKICAgICAgICAgc3RhdGljIFNWR1Ry
YW5zZm9ybSAqY3JlYXRlU1ZHVHJhbnNmb3JtKCk7CiAgICAgICAgIHN0YXRpYyBTVkdUcmFuc2Zv
cm0gKmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoU1ZHTWF0cml4ICptYXRyaXgpOwogCkBA
IC0xMzIsNiArMTM0LDcgQEAKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8U1ZHQW5pbWF0ZWRMZW5n
dGg+IG1faGVpZ2h0OwogCiAgICAgICAgIGJvb2wgbV91c2VDdXJyZW50VmlldzsKKyAgICAgICAg
VGltZVNjaGVkdWxlciogbV90aW1lU2NoZWR1bGVyOwogICAgIH07CiB9OwogCkluZGV4OiBrc3Zn
Mi9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdTY3Jp
cHRFbGVtZW50LmgJKHJldmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR1NjcmlwdEVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKICAgICB7
CiAgICAgcHVibGljOgotICAgICAgICBTVkdTY3JpcHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpOworICAgICAgICBTVkdTY3JpcHRFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdTY3Jp
cHRFbGVtZW50KCk7CiAKICAgICAgICAgLy8gJ1NWR1NjcmlwdEVsZW1lbnQnIGZ1bmN0aW9ucwpJ
bmRleDoga3N2ZzIvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIv
c3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmgJKHJldmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NW
R0ZFRnVuY0dFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICAgICBj
bGFzcyBTVkdGRUZ1bmNHRWxlbWVudCA6IHB1YmxpYyBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0
aW9uRWxlbWVudAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0ZFRnVuY0dFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpOworICAgICAgICBT
VkdGRUZ1bmNHRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAg
ICAgdmlydHVhbCB+U1ZHRkVGdW5jR0VsZW1lbnQoKTsKICAgICB9OwogfTsKSW5kZXg6IGtzdmcy
L3N2Zy9TVkdNYXRyaXguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHTWF0cml4LmgJKHJl
dmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR01hdHJpeC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw2ICszMCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlCiB7CisgICAgdHlwZWRlZiBpbnQg
RXhjZXB0aW9uQ29kZTsKKwogICAgIGNsYXNzIFNWR01hdHJpeCA6IHB1YmxpYyBTaGFyZWQ8U1ZH
TWF0cml4PgogICAgIHsgCiAgICAgcHVibGljOgpAQCAtNTgsNyArNjAsNyBAQAogCiAgICAgICAg
IHZvaWQgY29weShjb25zdCBTVkdNYXRyaXgqKTsKIAotICAgICAgICBTVkdNYXRyaXgqIGludmVy
c2UoKTsKKyAgICAgICAgU1ZHTWF0cml4KiBpbnZlcnNlKEV4Y2VwdGlvbkNvZGUmKTsKIAogICAg
ICAgICAvLyBQcmUtbXVsdGlwbGllZCBvcGVyYXRpb25zLCBhcyBwZXIgdGhlIHNwZWNzLgogICAg
ICAgICBTVkdNYXRyaXgqIG11bHRpcGx5KGNvbnN0IFNWR01hdHJpeCopOwpAQCAtNjYsNyArNjgs
NyBAQAogICAgICAgICBTVkdNYXRyaXgqIHNjYWxlKGRvdWJsZSBzY2FsZUZhY3Rvcik7CiAgICAg
ICAgIFNWR01hdHJpeCogc2NhbGVOb25Vbmlmb3JtKGRvdWJsZSBzY2FsZUZhY3RvclgsIGRvdWJs
ZSBzY2FsZUZhY3RvclkpOwogICAgICAgICBTVkdNYXRyaXgqIHJvdGF0ZShkb3VibGUgYW5nbGUp
OwotICAgICAgICBTVkdNYXRyaXgqIHJvdGF0ZUZyb21WZWN0b3IoZG91YmxlIHgsIGRvdWJsZSB5
KTsKKyAgICAgICAgU1ZHTWF0cml4KiByb3RhdGVGcm9tVmVjdG9yKGRvdWJsZSB4LCBkb3VibGUg
eSwgRXhjZXB0aW9uQ29kZSYpOwogICAgICAgICBTVkdNYXRyaXgqIGZsaXBYKCk7CiAgICAgICAg
IFNWR01hdHJpeCogZmxpcFkoKTsKICAgICAgICAgU1ZHTWF0cml4KiBza2V3WChkb3VibGUgYW5n
bGUpOwpJbmRleDoga3N2ZzIvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGtzdmcyL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3Zn
Mi9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcg
QEAKICAgICBjbGFzcyBTVkdQb2x5bGluZUVsZW1lbnQgOiAgcHVibGljIFNWR1BvbHlFbGVtZW50
CiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHUG9seWxpbmVFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpOworICAgICAgICBTVkdQb2x5bGlu
ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1
YWwgflNWR1BvbHlsaW5lRWxlbWVudCgpOwogCiAgICAgICAgIHZpcnR1YWwgS0NhbnZhc1BhdGgq
IHRvUGF0aERhdGEoKSBjb25zdDsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdNYXNrRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdNYXNrRWxlbWVudC5oCShyZXZpc2lvbiAxNDYyMikK
KysrIGtzdmcyL3N2Zy9TVkdNYXNrRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0
NCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQKICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdNYXNr
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCAqZG9jKTsKKyAg
ICAgICAgU1ZHTWFza0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAg
ICAgICAgIHZpcnR1YWwgflNWR01hc2tFbGVtZW50KCk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBp
c1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogCkluZGV4OiBr
c3ZnMi9zdmcvU1ZHQW5nbGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdBbmdsZS5p
ZGwJKHJldmlzaW9uIDE0NjE5KQorKysga3N2ZzIvc3ZnL1NWR0FuZ2xlLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDMxIEBACi1tb2R1bGUgc3ZnCi17CisvKgorICogQ29weXJpZ2h0KEMp
IDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CisgKiAgICAg
ICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdo
dChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCittb2R1bGUgc3ZnIHsKICAgaW50
ZXJmYWNlIFNWR0FuZ2xlIHsgCiAgICAgLy8gQW5nbGUgVW5pdCBUeXBlcwogICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFNWR19BTkdMRVRZUEVfVU5LTk9XTiAgICAgPSAwOwpAQCAtNywxMyArMzMs
MTUgQEAKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX0RFRyAgICAgICAg
ID0gMjsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX1JBRCAgICAgICAg
ID0gMzsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX0dSQUQgICAgICAg
ID0gNDsKKyAgICAgICAgCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHVu
aXRUeXBlOwotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCAgICAgICAgICB2YWx1ZTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcK
LSAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgICAgICAgICAgdmFsdWVJblNwZWNpZmllZFVu
aXRzOwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24g
c2V0dGluZwotICAgICAgICAgICAgIGF0dHJpYnV0ZSBjb3JlOjpET01TdHJpbmcgICAgICB2YWx1
ZUFzU3RyaW5nOwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRp
b24gb24gc2V0dGluZworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgICAgICAgICAg
dmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYXNpc2VzIERPTUV4Y2VwdGlv
bjsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0ICAgICAgICAgIHZhbHVlSW5TcGVj
aWZpZWRVbml0cworICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhc2lzZXMgRE9NRXhj
ZXB0aW9uOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgY29yZTo6RE9NU3RyaW5nICAgICAg
dmFsdWVBc1N0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhc2lzZXMgRE9N
RXhjZXB0aW9uOworICAgICAgICAKICAgICB2b2lkIG5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMgKCBp
biB1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSwgaW4gZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRz
ICk7CiAgICAgdm9pZCBjb252ZXJ0VG9TcGVjaWZpZWRVbml0cyAoIGluIHVuc2lnbmVkIHNob3J0
IHVuaXRUeXBlICk7CiAgIH07CkluZGV4OiBrc3ZnMi9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuaAkocmV2aXNpb24gMTQ2
MjIpCisrKyBrc3ZnMi9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzUsNyArMzUsNyBAQAogICAgIGNsYXNzIFNWR0ZFQmxlbmRFbGVtZW50IDogcHVibGljIFNWR0Zp
bHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcwogICAgIHsKICAgICBwdWJsaWM6Ci0gICAg
ICAgIFNWR0ZFQmxlbmRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50ICpkb2MpOworICAgICAgICBTVkdGRUJsZW5kRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRkVCbGVuZEVsZW1lbnQoKTsKIAog
ICAgICAgICAvLyAnU1ZHRkVCbGVuZEVsZW1lbnQnIGZ1bmN0aW9ucwpJbmRleDoga3N2ZzIvc3Zn
L1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdB
bmltYXRlQ29sb3JFbGVtZW50LmNwcAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZH
QW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDIwICsyNywxOSBA
QAogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCIKKyNpbmNsdWRlICJTVkdTVkdFbGVtZW50
LmgiCiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworbmFtZXNwYWNlIFdlYkNvcmUgewogCiBT
VkdBbmltYXRlQ29sb3JFbGVtZW50OjpTVkdBbmltYXRlQ29sb3JFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpCiA6IFNWR0FuaW1hdGlvbkVsZW1lbnQo
dGFnTmFtZSwgZG9jKQorICAgICwgbV90b0NvbG9yKG5ldyBTVkdDb2xvcigpKQorICAgICwgbV9m
cm9tQ29sb3IobmV3IFNWR0NvbG9yKCkpCisgICAgLCBtX2N1cnJlbnRJdGVtKC0xKQorICAgICwg
bV9yZWREaWZmKDApCisgICAgLCBtX2dyZWVuRGlmZigwKQorICAgICwgbV9ibHVlRGlmZigwKQog
ewotICAgIG1fdG9Db2xvciA9IG5ldyBTVkdDb2xvcigpOwotICAgIG1fZnJvbUNvbG9yID0gbmV3
IFNWR0NvbG9yKCk7Ci0KLSAgICBtX3JlZERpZmYgPSAwOwotICAgIG1fZ3JlZW5EaWZmID0gMDsK
LSAgICBtX2JsdWVEaWZmID0gMDsKLQotICAgIG1fY3VycmVudEl0ZW0gPSAtMTsKIH0KIAogU1ZH
QW5pbWF0ZUNvbG9yRWxlbWVudDo6flNWR0FuaW1hdGVDb2xvckVsZW1lbnQoKQpAQCAtNTAsMTEg
KzQ5LDEwIEBACiB2b2lkIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ6OmhhbmRsZVRpbWVyRXZlbnQo
ZG91YmxlIHRpbWVQZXJjZW50YWdlKQogewogICAgIC8vIFN0YXJ0IGNvbmRpdGlvbi4KLSAgICBp
ZighbV9jb25uZWN0ZWQpCi0gICAgeworICAgIGlmICghbV9jb25uZWN0ZWQpIHsKICAgICAgICAg
Ly8gU2F2ZSBpbml0aWFsIGNvbG9yLi4uIChuZWVkZWQgZm9yIGZpbGw9InJlbW92ZSIgb3IgYWRk
aXR2ZT0ic3VtIikKICAgICAgICAgUmVmUHRyPFNWR0NvbG9yPiB0ZW1wID0gbmV3IFNWR0NvbG9y
KCk7Ci0gICAgICAgIHRlbXAtPnNldFJHQkNvbG9yKHRhcmdldEF0dHJpYnV0ZSgpLmltcGwoKSk7
CisgICAgICAgIHRlbXAtPnNldFJHQkNvbG9yKHRhcmdldEF0dHJpYnV0ZSgpKTsKIAogICAgICAg
ICBtX2luaXRpYWxDb2xvciA9IHRlbXAtPmNvbG9yKCk7CiAKQEAgLTY1LDcgKzYzLDcgQEAKICAg
ICAgICAgICAgIGNhc2UgRlJPTV9UT19BTklNQVRJT046CiAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgU3RyaW5nIHRvQ29sb3JTdHJpbmcobV90byk7Ci0gICAgICAgICAgICAgICAgbV90
b0NvbG9yLT5zZXRSR0JDb2xvcih0b0NvbG9yU3RyaW5nLmltcGwoKSk7CisgICAgICAgICAgICAg
ICAgbV90b0NvbG9yLT5zZXRSR0JDb2xvcih0b0NvbG9yU3RyaW5nKTsKICAgICAKICAgICAgICAg
ICAgICAgICBTdHJpbmcgZnJvbUNvbG9yU3RyaW5nOwogICAgICAgICAgICAgICAgIGlmKCFtX2Zy
b20uaXNFbXB0eSgpKSAvLyBmcm9tLXRvIGFuaW1hdGlvbgpAQCAtNzMsNyArNzEsNyBAQAogICAg
ICAgICAgICAgICAgIGVsc2UgLy8gdG8gYW5pbWF0aW9uCiAgICAgICAgICAgICAgICAgICAgIGZy
b21Db2xvclN0cmluZyA9IG1faW5pdGlhbENvbG9yLm5hbWUoKTsKICAgICAKLSAgICAgICAgICAg
ICAgICBtX2Zyb21Db2xvci0+c2V0UkdCQ29sb3IoZnJvbUNvbG9yU3RyaW5nLmltcGwoKSk7ICAg
IAorICAgICAgICAgICAgICAgIG1fZnJvbUNvbG9yLT5zZXRSR0JDb2xvcihmcm9tQ29sb3JTdHJp
bmcpOyAgICAKIAogICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBjb2xvciBkaWZmZXJlbmNl
cywgb25jZS4KICAgICAgICAgICAgICAgICBDb2xvciBxVG8gPSBtX3RvQ29sb3ItPmNvbG9yKCk7
CkBAIC04OSw3ICs4Nyw3IEBACiAgICAgICAgICAgICBjYXNlIEZST01fQllfQU5JTUFUSU9OOgog
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIFN0cmluZyBieUNvbG9yU3RyaW5nKG1fYnkp
OwotICAgICAgICAgICAgICAgIG1fdG9Db2xvci0+c2V0UkdCQ29sb3IoYnlDb2xvclN0cmluZy5p
bXBsKCkpOworICAgICAgICAgICAgICAgIG1fdG9Db2xvci0+c2V0UkdCQ29sb3IoYnlDb2xvclN0
cmluZyk7CiAKICAgICAgICAgICAgICAgICBTdHJpbmcgZnJvbUNvbG9yU3RyaW5nOwogICAgICAg
ICAgICAgCkBAIC05OCw3ICs5Niw3IEBACiAgICAgICAgICAgICAgICAgZWxzZSAvLyBieSBhbmlt
YXRpb24KICAgICAgICAgICAgICAgICAgICAgZnJvbUNvbG9yU3RyaW5nID0gbV9pbml0aWFsQ29s
b3IubmFtZSgpOwogCi0gICAgICAgICAgICAgICAgbV9mcm9tQ29sb3ItPnNldFJHQkNvbG9yKGZy
b21Db2xvclN0cmluZy5pbXBsKCkpOworICAgICAgICAgICAgICAgIG1fZnJvbUNvbG9yLT5zZXRS
R0JDb2xvcihmcm9tQ29sb3JTdHJpbmcpOwogCiAgICAgICAgICAgICAgICAgQ29sb3IgcUJ5ID0g
bV90b0NvbG9yLT5jb2xvcigpOwogICAgICAgICAgICAgICAgIENvbG9yIHFGcm9tID0gbV9mcm9t
Q29sb3ItPmNvbG9yKCk7CkBAIC0xMTEsNyArMTA5LDcgQEAKICAgICAgICAgICAgICAgICBDb2xv
ciBxVG8gPSBjbGFtcENvbG9yKHIsIGcsIGIpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgU3RyaW5nIHRvQ29sb3JTdHJpbmcocVRvLm5hbWUoKSk7Ci0gICAgICAgICAgICAgICAgbV90
b0NvbG9yLT5zZXRSR0JDb2xvcih0b0NvbG9yU3RyaW5nLmltcGwoKSk7CisgICAgICAgICAgICAg
ICAgbV90b0NvbG9yLT5zZXRSR0JDb2xvcih0b0NvbG9yU3RyaW5nKTsKICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgIG1fcmVkRGlmZiA9IHFUby5yZWQoKSAtIHFGcm9tLnJlZCgpOwogICAg
ICAgICAgICAgICAgIG1fZ3JlZW5EaWZmID0gcVRvLmdyZWVuKCkgLSBxRnJvbS5ncmVlbigpOwpA
QCAtMTI4LDcgKzEyNiw3IEBACiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBk
b2N1bWVudCgpLT5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPnRpbWVTY2hlZHVsZXIoKS0+Y29ubmVj
dEludGVydmFsVGltZXIodGhpcyk7CisgICAgICAgIG93bmVyU1ZHRWxlbWVudCgpLT50aW1lU2No
ZWR1bGVyKCktPmNvbm5lY3RJbnRlcnZhbFRpbWVyKHRoaXMpOwogICAgICAgICBtX2Nvbm5lY3Rl
ZCA9IHRydWU7CiAKICAgICAgICAgcmV0dXJuOwpAQCAtMTQxLDggKzEzOSw3IEBACiAgICAgaW50
IHIgPSAwLCBnID0gMCwgYiA9IDA7CiAgICAgaWYoKG1fcmVkRGlmZiAhPSAwIHx8IG1fZ3JlZW5E
aWZmICE9IDAgfHwgbV9ibHVlRGlmZiAhPSAwKSAmJiAhbV92YWx1ZXMpCiAgICAgICAgIGNhbGN1
bGF0ZUNvbG9yKHRpbWVQZXJjZW50YWdlLCByLCBnLCBiKTsKLSAgICBlbHNlIGlmKG1fdmFsdWVz
KQotICAgIHsKKyAgICBlbHNlIGlmIChtX3ZhbHVlcykgewogICAgICAgICBpbnQgaXRlbUJ5UGVy
Y2VudGFnZSA9IGNhbGN1bGF0ZUN1cnJlbnRWYWx1ZUl0ZW0odGltZVBlcmNlbnRhZ2UpOwogCiAg
ICAgICAgIGlmKGl0ZW1CeVBlcmNlbnRhZ2UgPT0gLTEpCkBAIC0xNTUsMTEgKzE1Miw5IEBACiAg
ICAgICAgICAgICBTdHJpbmcgdmFsdWUyID0gU3RyaW5nKG1fdmFsdWVzLT5nZXRJdGVtKGl0ZW1C
eVBlcmNlbnRhZ2UgKyAxKSk7CiAKICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSByL2cvYiBzaGlm
dGluZyB2YWx1ZXMuLi4KLSAgICAgICAgICAgIGlmKCF2YWx1ZTEuaXNFbXB0eSgpICYmICF2YWx1
ZTIuaXNFbXB0eSgpKQotICAgICAgICAgICAgeworICAgICAgICAgICAgaWYgKCF2YWx1ZTEuaXNF
bXB0eSgpICYmICF2YWx1ZTIuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgYm9vbCBhcHBs
eSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGlmKG1fcmVkRGlmZiAhPSAwIHx8IG1fZ3JlZW5E
aWZmICE9IDAgfHwgbV9ibHVlRGlmZiAhPSAwKQotICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBpZiAobV9yZWREaWZmICE9IDAgfHwgbV9ncmVlbkRpZmYgIT0gMCB8fCBtX2JsdWVE
aWZmICE9IDApIHsKICAgICAgICAgICAgICAgICAgICAgciA9IG1fdG9Db2xvci0+Y29sb3IoKS5y
ZWQoKTsKICAgICAgICAgICAgICAgICAgICAgZyA9IG1fdG9Db2xvci0+Y29sb3IoKS5ncmVlbigp
OwogICAgICAgICAgICAgICAgICAgICBiID0gbV90b0NvbG9yLT5jb2xvcigpLmJsdWUoKTsKQEAg
LTE2OCwxMCArMTYzLDEwIEBACiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAg
U3RyaW5nIHRvQ29sb3JTdHJpbmcodmFsdWUyKTsKLSAgICAgICAgICAgICAgICBtX3RvQ29sb3It
PnNldFJHQkNvbG9yKHRvQ29sb3JTdHJpbmcuaW1wbCgpKTsKKyAgICAgICAgICAgICAgICBtX3Rv
Q29sb3ItPnNldFJHQkNvbG9yKHRvQ29sb3JTdHJpbmcpOwogICAgIAogICAgICAgICAgICAgICAg
IFN0cmluZyBmcm9tQ29sb3JTdHJpbmcodmFsdWUxKTsKLSAgICAgICAgICAgICAgICBtX2Zyb21D
b2xvci0+c2V0UkdCQ29sb3IoZnJvbUNvbG9yU3RyaW5nLmltcGwoKSk7ICAgIAorICAgICAgICAg
ICAgICAgIG1fZnJvbUNvbG9yLT5zZXRSR0JDb2xvcihmcm9tQ29sb3JTdHJpbmcpOyAgICAKIAog
ICAgICAgICAgICAgICAgIENvbG9yIHFUbyA9IG1fdG9Db2xvci0+Y29sb3IoKTsKICAgICAgICAg
ICAgICAgICBDb2xvciBxRnJvbSA9IG1fZnJvbUNvbG9yLT5jb2xvcigpOwpAQCAtMjExLDE2ICsy
MDYsMTQgQEAKICAgICBtX2N1cnJlbnRDb2xvciA9IGNsYW1wQ29sb3IociwgZywgYik7CiAgICAg
CiAgICAgLy8gRW5kIGNvbmRpdGlvbi4KLSAgICBpZih0aW1lUGVyY2VudGFnZSA9PSAxLjApCi0g
ICAgewotICAgICAgICBpZigobV9yZXBlYXRDb3VudCA+IDAgJiYgbV9yZXBlYXRpb25zIDwgbV9y
ZXBlYXRDb3VudCAtIDEpIHx8IGlzSW5kZWZpbml0ZShtX3JlcGVhdENvdW50KSkKLSAgICAgICAg
eworICAgIGlmICh0aW1lUGVyY2VudGFnZSA9PSAxLjApIHsKKyAgICAgICAgaWYgKChtX3JlcGVh
dENvdW50ID4gMCAmJiBtX3JlcGVhdGlvbnMgPCBtX3JlcGVhdENvdW50IC0gMSkgfHwgaXNJbmRl
ZmluaXRlKG1fcmVwZWF0Q291bnQpKSB7CiAgICAgICAgICAgICBtX2xhc3RDb2xvciA9IG1fY3Vy
cmVudENvbG9yOwogICAgICAgICAgICAgbV9yZXBlYXRpb25zKys7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIAotICAgICAgICBkb2N1bWVudCgpLT5hY2Nlc3NTVkdFeHRlbnNpb25z
KCktPnRpbWVTY2hlZHVsZXIoKS0+ZGlzY29ubmVjdEludGVydmFsVGltZXIodGhpcyk7CisgICAg
ICAgIG93bmVyU1ZHRWxlbWVudCgpLT50aW1lU2NoZWR1bGVyKCktPmRpc2Nvbm5lY3RJbnRlcnZh
bFRpbWVyKHRoaXMpOwogICAgICAgICBtX2Nvbm5lY3RlZCA9IGZhbHNlOwogCiAgICAgICAgIC8v
IFJlc2V0Li4uCkBAIC0yNjksNiArMjYyLDggQEAKICAgICByZXR1cm4gbV9pbml0aWFsQ29sb3I7
CiB9CiAKK30KKwogLy8gdmltOnRzPTQ6bm9ldAogI2VuZGlmIC8vIFNWR19TVVBQT1JUCiAKSW5k
ZXg6IGtzdmcyL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIv
c3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcv
U1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxNiArMjMsMTggQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAogI2luY2x1ZGUgIlNWR0FuaW1h
dGVFbGVtZW50LmgiCisKICNpbmNsdWRlICJLU1ZHVGltZVNjaGVkdWxlci5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCisjaW5jbHVk
ZSAiU1ZHU1ZHRWxlbWVudC5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogU1ZHQW5p
bWF0ZUVsZW1lbnQ6OlNWR0FuaW1hdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50ICpkb2MpCiA6IFNWR0FuaW1hdGlvbkVsZW1lbnQodGFnTmFtZSwgZG9jKQor
ICAgICwgbV9jdXJyZW50SXRlbSgtMSkKIHsKLSAgICBtX2N1cnJlbnRJdGVtID0gLTE7CiB9CiAK
IFNWR0FuaW1hdGVFbGVtZW50Ojp+U1ZHQW5pbWF0ZUVsZW1lbnQoKQpAQCAtNDIsOCArNDQsNyBA
QAogdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6aGFuZGxlVGltZXJFdmVudChkb3VibGUgdGltZVBl
cmNlbnRhZ2UpCiB7CiAgICAgLy8gU3RhcnQgY29uZGl0aW9uLgotICAgIGlmKCFtX2Nvbm5lY3Rl
ZCkKLSAgICB7CisgICAgaWYgKCFtX2Nvbm5lY3RlZCkgewogICAgICAgICAvLyBTYXZlIGluaXRp
YWwgYXR0cmlidXRlIHZhbHVlLi4uCiAgICAgICAgIFN0cmluZyBhdHRyKHRhcmdldEF0dHJpYnV0
ZSgpKTsKICAgICAgICAgbV9zYXZlZFRvID0gYXR0ci5kZXByZWNhdGVkU3RyaW5nKCk7CkBAIC0x
MTgsNyArMTE5LDcgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGRvY3Vt
ZW50KCktPmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+dGltZVNjaGVkdWxlcigpLT5jb25uZWN0SW50
ZXJ2YWxUaW1lcih0aGlzKTsKKyAgICAgICAgb3duZXJTVkdFbGVtZW50KCktPnRpbWVTY2hlZHVs
ZXIoKS0+Y29ubmVjdEludGVydmFsVGltZXIodGhpcyk7CiAgICAgICAgIG1fY29ubmVjdGVkID0g
dHJ1ZTsKIAogICAgICAgICByZXR1cm47CkBAIC0xODMsMjYgKzE4NCwyMiBAQAogICAgICAgICB9
Ki8KICAgICB9CiAgICAgCi0gICAgaWYoIWlzRnJvemVuKCkgJiYgdGltZVBlcmNlbnRhZ2UgPT0g
MS4wKQotICAgIHsKKyAgICBpZiAoIWlzRnJvemVuKCkgJiYgdGltZVBlcmNlbnRhZ2UgPT0gMS4w
KSB7CiAgICAgfQogCi0gICAgaWYoaXNBY2N1bXVsYXRlZCgpICYmIHJlcGVhdGlvbnMoKSAhPSAw
LjApCi0gICAgeworICAgIGlmIChpc0FjY3VtdWxhdGVkKCkgJiYgcmVwZWF0aW9ucygpICE9IDAu
MCkgewogICAgIH0KIAogICAgIC8vIENvbW1pdCBjaGFuZ2VzIQogICAgIAogICAgIC8vIEVuZCBj
b25kaXRpb24uCi0gICAgaWYodGltZVBlcmNlbnRhZ2UgPT0gMS4wKQotICAgIHsKLSAgICAgICAg
aWYoKG1fcmVwZWF0Q291bnQgPiAwICYmIG1fcmVwZWF0aW9ucyA8IG1fcmVwZWF0Q291bnQgLSAx
KSB8fCBpc0luZGVmaW5pdGUobV9yZXBlYXRDb3VudCkpCi0gICAgICAgIHsKKyAgICBpZiAodGlt
ZVBlcmNlbnRhZ2UgPT0gMS4wKSB7CisgICAgICAgIGlmICgobV9yZXBlYXRDb3VudCA+IDAgJiYg
bV9yZXBlYXRpb25zIDwgbV9yZXBlYXRDb3VudCAtIDEpIHx8IGlzSW5kZWZpbml0ZShtX3JlcGVh
dENvdW50KSkgewogICAgICAgICAgICAgbV9yZXBlYXRpb25zKys7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIAotICAgICAgICBkb2N1bWVudCgpLT5hY2Nlc3NTVkdFeHRlbnNpb25z
KCktPnRpbWVTY2hlZHVsZXIoKS0+ZGlzY29ubmVjdEludGVydmFsVGltZXIodGhpcyk7CisgICAg
ICAgIG93bmVyU1ZHRWxlbWVudCgpLT50aW1lU2NoZWR1bGVyKCktPmRpc2Nvbm5lY3RJbnRlcnZh
bFRpbWVyKHRoaXMpOwogICAgICAgICBtX2Nvbm5lY3RlZCA9IGZhbHNlOwogCiAgICAgICAgIC8v
IFJlc2V0Li4uCkluZGV4OiBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFi
bGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDcgKzExMyw3IEBACiAgICAgcmV0
dXJuIFNWR1RyYW5zZm9ybWFibGU6OmZhcnRoZXN0Vmlld3BvcnRFbGVtZW50KHRoaXMpOwogfQog
Ci1TVkdSZWN0ICpTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6Z2V0QkJveCgpIGNvbnN0
CitGbG9hdFJlY3QgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OmdldEJCb3goKSBjb25z
dAogewogICAgIHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjpnZXRCQm94KHRoaXMpOwogfQpJbmRl
eDoga3N2ZzIvc3ZnL1NWR1NldEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9T
VkdTZXRFbGVtZW50LmNwcAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHU2V0RWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDkgQEAKICNpbmNsdWRlICJLU1ZH
VGltZVNjaGVkdWxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRG9j
dW1lbnRFeHRlbnNpb25zLmgiCisjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgogCi11c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKK25hbWVzcGFjZSBXZWJDb3JlIHsKIAogU1ZHU2V0RWxlbWVudDo6
U1ZHU2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCAqZG9j
KQogOiBTVkdBbmltYXRpb25FbGVtZW50KHRhZ05hbWUsIGRvYykKQEAgLTQyLDcgKzQzLDcgQEAK
IHsKICAgICAvLyBTdGFydCBjb25kaXRpb24uCiAgICAgaWYgKCFtX2Nvbm5lY3RlZCkgeyAgICAK
LSAgICAgICAgZG9jdW1lbnQoKS0+YWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT50aW1lU2NoZWR1bGVy
KCktPmNvbm5lY3RJbnRlcnZhbFRpbWVyKHRoaXMpOworICAgICAgICBvd25lclNWR0VsZW1lbnQo
KS0+dGltZVNjaGVkdWxlcigpLT5jb25uZWN0SW50ZXJ2YWxUaW1lcih0aGlzKTsKICAgICAgICAg
bV9jb25uZWN0ZWQgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNTIsOCArNTMs
NyBAQAogICAgICAgICB0aW1lUGVyY2VudGFnZSA9IDEuMDsKIAogICAgIC8vIENvbW1pdCBjaGFu
Z2Ugbm93Li4uCi0gICAgaWYobV9zYXZlZFRvLmlzRW1wdHkoKSkKLSAgICB7CisgICAgaWYgKG1f
c2F2ZWRUby5pc0VtcHR5KCkpIHsKICAgICAgICAgU3RyaW5nIGF0dHIodGFyZ2V0QXR0cmlidXRl
KCkpOwogICAgICAgICBtX3NhdmVkVG8gPSBhdHRyLmRlcHJlY2F0ZWRTdHJpbmcoKTsKICAgICAg
ICAgc2V0VGFyZ2V0QXR0cmlidXRlKFN0cmluZyhtX3RvKS5pbXBsKCkpOwpAQCAtNjEsNyArNjEs
NyBAQAogCiAgICAgLy8gRW5kIGNvbmRpdGlvbi4KICAgICBpZiAodGltZVBlcmNlbnRhZ2UgPT0g
MS4wKSB7Ci0gICAgICAgIGRvY3VtZW50KCktPmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+dGltZVNj
aGVkdWxlcigpLT5kaXNjb25uZWN0SW50ZXJ2YWxUaW1lcih0aGlzKTsKKyAgICAgICAgb3duZXJT
VkdFbGVtZW50KCktPnRpbWVTY2hlZHVsZXIoKS0+ZGlzY29ubmVjdEludGVydmFsVGltZXIodGhp
cyk7CiAgICAgICAgIG1fY29ubmVjdGVkID0gZmFsc2U7CiAKICAgICAgICAgaWYgKCFpc0Zyb3pl
bigpKQpAQCAtNzEsNiArNzEsOCBAQAogICAgIH0KIH0KIAorfQorCiAvLyB2aW06dHM9NDpub2V0
CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKIApJbmRleDoga3N2ZzIvc3ZnL1NWR0NsaXBQYXRoRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAkocmV2
aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQwLDcgKzQwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKICAgICB7CiAgICAgcHVibGlj
OgotICAgICAgICBTVkdDbGlwUGF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR0NsaXBQYXRoRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHQ2xpcFBhdGhFbGVt
ZW50KCk7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsg
cmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KSW5kZXg6IGtzdmcyL3N2Zy9TVkdBbmltYXRl
VHJhbnNmb3JtRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGVU
cmFuc2Zvcm1FbGVtZW50LmNwcAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHQW5p
bWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywyMiArMzcsMjIg
QEAKICNpbmNsdWRlICJLU1ZHVGltZVNjaGVkdWxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCisjaW5jbHVkZSAiU1ZHU1ZHRWxl
bWVudC5oIgogCiAjaW5jbHVkZSA8bWF0aC5oPgogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwogU1ZHQW5pbWF0
ZVRyYW5zZm9ybUVsZW1lbnQ6OlNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpCiA6IFNWR0FuaW1hdGlvbkVsZW1lbnQo
dGFnTmFtZSwgZG9jKQorICAgICwgbV9jdXJyZW50SXRlbSgtMSkKKyAgICAsIG1fdHlwZShTVkdf
VFJBTlNGT1JNX1VOS05PV04pCisgICAgLCBtX3JvdGF0ZVNwZWNpYWxDYXNlKGZhbHNlKQorICAg
ICwgbV90b1JvdGF0ZVNwZWNpYWxDYXNlKGZhbHNlKQorICAgICwgbV9mcm9tUm90YXRlU3BlY2lh
bENhc2UoZmFsc2UpCiB7Ci0gICAgbV90eXBlID0gU1ZHX1RSQU5TRk9STV9VTktOT1dOOwotCi0g
ICAgbV9jdXJyZW50SXRlbSA9IC0xOwotCi0gICAgbV9yb3RhdGVTcGVjaWFsQ2FzZSA9IGZhbHNl
OwotICAgIG1fdG9Sb3RhdGVTcGVjaWFsQ2FzZSA9IGZhbHNlOwotICAgIG1fZnJvbVJvdGF0ZVNw
ZWNpYWxDYXNlID0gZmFsc2U7CiB9CiAKIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50Ojp+U1ZH
QW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQoKQpAQCAtNzMsMzMgKzczLDI3IEBACiAgICAgICAgICAg
ICBtX3R5cGUgPSBTVkdfVFJBTlNGT1JNX1NLRVdYOwogICAgICAgICBlbHNlIGlmICh2YWx1ZSA9
PSAic2tld1kiKQogICAgICAgICAgICAgbV90eXBlID0gU1ZHX1RSQU5TRk9STV9TS0VXWTsKLSAg
ICB9IGVsc2UgeworICAgIH0gZWxzZQogICAgICAgICBTVkdBbmltYXRpb25FbGVtZW50OjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKICAgICB9Ci19CiAKIHZvaWQgU1ZHQW5pbWF0ZVRyYW5z
Zm9ybUVsZW1lbnQ6OmhhbmRsZVRpbWVyRXZlbnQoZG91YmxlIHRpbWVQZXJjZW50YWdlKQogewog
ICAgIC8vIFN0YXJ0IGNvbmRpdGlvbi4KLSAgICBpZighbV9jb25uZWN0ZWQpCi0gICAgeworICAg
IGlmICghbV9jb25uZWN0ZWQpIHsKICAgICAgICAgbV9pbml0aWFsVHJhbnNmb3JtID0gMDsKICAg
ICAgICAgCiAgICAgICAgIC8vIFNhdmUgaW5pdGlhbCB0cmFuc2Zvcm0uLi4gKG5lZWRlZCBmb3Ig
ZmlsbD0icmVtb3ZlIiBvciBhZGRpdHZlPSJzdW0iKQotICAgICAgICBpZih0YXJnZXRFbGVtZW50
KCktPmlzU3R5bGVkVHJhbnNmb3JtYWJsZSgpKQotICAgICAgICB7CisgICAgICAgIGlmICh0YXJn
ZXRFbGVtZW50KCktPmlzU3R5bGVkVHJhbnNmb3JtYWJsZSgpKSB7CiAgICAgICAgICAgICBTVkdT
dHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudCAqdHJhbnNmb3JtID0gc3RhdGljX2Nhc3Q8U1ZHU3R5
bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQgKj4odGFyZ2V0RWxlbWVudCgpKTsKICAgICAgICAgICAg
IFJlZlB0cjxTVkdUcmFuc2Zvcm1MaXN0PiB0cmFuc2Zvcm1MaXN0ID0gdHJhbnNmb3JtLT50cmFu
c2Zvcm0oKS0+YmFzZVZhbCgpOwotICAgICAgICAgICAgaWYgKHRyYW5zZm9ybUxpc3QpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZm9yKHVuc2lnbmVkIGxvbmcgaSA9IDA7IGkgPCB0
cmFuc2Zvcm1MaXN0LT5udW1iZXJPZkl0ZW1zKCk7IGkrKykKLSAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICBpZiAodHJhbnNmb3JtTGlzdCkgeworICAgICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgbG9uZyBpID0gMDsgaSA8IHRyYW5zZm9ybUxpc3QtPm51bWJlck9mSXRlbXMoKTsgaSsr
KSB7CiAgICAgICAgICAgICAgICAgICAgIFNWR1RyYW5zZm9ybSAqdmFsdWUgPSB0cmFuc2Zvcm1M
aXN0LT5nZXRJdGVtKGkpOwogICAgICAgICAgICAgICAgICAgICBpZighdmFsdWUpCiAgICAgICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgICAgICBpZih2YWx1ZS0+dHlwZSgpID09IG1fdHlwZSkKLSAgICAgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUtPnR5cGUoKSA9PSBtX3R5
cGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIG1faW5pdGlhbFRyYW5zZm9ybSA9IHZhbHVl
OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0K
QEAgLTE2OCw3ICsxNjIsNyBAQAogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIAot
ICAgICAgICBkb2N1bWVudCgpLT5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPnRpbWVTY2hlZHVsZXIo
KS0+Y29ubmVjdEludGVydmFsVGltZXIodGhpcyk7CisgICAgICAgIG93bmVyU1ZHRWxlbWVudCgp
LT50aW1lU2NoZWR1bGVyKCktPmNvbm5lY3RJbnRlcnZhbFRpbWVyKHRoaXMpOwogICAgICAgICBt
X2Nvbm5lY3RlZCA9IHRydWU7CiAKICAgICAgICAgcmV0dXJuOwpAQCAtMTgxLDggKzE3NSw3IEBA
CiAgICAgUVdNYXRyaXggcVRvTWF0cml4LCBxRnJvbU1hdHJpeDsKICAgICBkb3VibGUgdXNlVGlt
ZVBlcmNlbnRhZ2UgPSB0aW1lUGVyY2VudGFnZTsKIAotICAgIGlmKG1fdmFsdWVzKQotICAgIHsK
KyAgICBpZiAobV92YWx1ZXMpIHsKICAgICAgICAgaW50IGl0ZW1CeVBlcmNlbnRhZ2UgPSBjYWxj
dWxhdGVDdXJyZW50VmFsdWVJdGVtKHRpbWVQZXJjZW50YWdlKTsKIAogICAgICAgICBpZihpdGVt
QnlQZXJjZW50YWdlID09IC0xKQpAQCAtMTk1LDExICsxODgsOSBAQAogICAgICAgICAgICAgU3Ry
aW5nIHZhbHVlMiA9IFN0cmluZyhtX3ZhbHVlcy0+Z2V0SXRlbShpdGVtQnlQZXJjZW50YWdlICsg
MSkpOwogCiAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgbmV3IGZyb20vdG8gdHJhbnNmb3JtIHZh
bHVlcy4uLgotICAgICAgICAgICAgaWYoIXZhbHVlMS5pc0VtcHR5KCkgJiYgIXZhbHVlMi5pc0Vt
cHR5KCkpCi0gICAgICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXZhbHVlMS5pc0VtcHR5KCkg
JiYgIXZhbHVlMi5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBib29sIGFwcGx5ID0gZmFs
c2U7Ci0gICAgICAgICAgICAgICAgaWYobV90b1RyYW5zZm9ybSAmJiBtX2Zyb21UcmFuc2Zvcm0p
Ci0gICAgICAgICAgICAgICAgeyAgICAKKyAgICAgICAgICAgICAgICBpZiAobV90b1RyYW5zZm9y
bSAmJiBtX2Zyb21UcmFuc2Zvcm0pIHsgICAgCiAgICAgICAgICAgICAgICAgICAgIHFUb01hdHJp
eCA9IG1fdG9UcmFuc2Zvcm0tPm1hdHJpeCgpLT5xbWF0cml4KCk7CiAgICAgICAgICAgICAgICAg
ICAgIHFGcm9tTWF0cml4ID0gbV9mcm9tVHJhbnNmb3JtLT5tYXRyaXgoKS0+cW1hdHJpeCgpOwog
ICAgICAgICAgICAgICAgICAgICAKQEAgLTIzMSw4ICsyMjIsNyBAQAogCiAgICAgaWYoIW1fdHJh
bnNmb3JtTWF0cml4KQogICAgICAgICBtX3RyYW5zZm9ybU1hdHJpeCA9IG5ldyBTVkdNYXRyaXgo
KTsKLSAgICBlbHNlCi0gICAgeworICAgIGVsc2UgewogICAgICAgICBtX3RyYW5zZm9ybU1hdHJp
eC0+cmVzZXQoKTsKIAogICAgICAgICBpZihpc0FjY3VtdWxhdGVkKCkgJiYgcmVwZWF0aW9ucygp
ICE9IDAuMCAmJiBtX2xhc3RNYXRyaXgpCkBAIC0zMjAsNyArMzEwLDcgQEAKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGRvY3VtZW50KCktPmFjY2Vzc1NWR0V4dGVu
c2lvbnMoKS0+dGltZVNjaGVkdWxlcigpLT5kaXNjb25uZWN0SW50ZXJ2YWxUaW1lcih0aGlzKTsK
KyAgICAgICAgb3duZXJTVkdFbGVtZW50KCktPnRpbWVTY2hlZHVsZXIoKS0+ZGlzY29ubmVjdElu
dGVydmFsVGltZXIodGhpcyk7CiAgICAgICAgIG1fY29ubmVjdGVkID0gZmFsc2U7CiAKICAgICAg
ICAgLy8gUmVzZXQuLi4KQEAgLTMyOSw4ICszMTksNyBAQAogICAgICAgICBtX2Zyb21UcmFuc2Zv
cm0gPSAwOwogICAgICAgICBtX2luaXRpYWxUcmFuc2Zvcm0gPSAwOwogCi0gICAgICAgIGlmKCFp
c0Zyb3plbigpKQotICAgICAgICB7CisgICAgICAgIGlmICghaXNGcm96ZW4oKSkgewogICAgICAg
ICAgICAgU1ZHTWF0cml4ICppbml0aWFsID0gaW5pdGlhbE1hdHJpeCgpOwogICAgICAgICAgICAg
aWYoaW5pdGlhbCkKICAgICAgICAgICAgICAgICBtX3RyYW5zZm9ybU1hdHJpeCA9IGluaXRpYWw7
CkBAIC0zNTUsMTIgKzM0NCwxMCBAQAogICAgICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fVFJBTlNM
QVRFOgogICAgICAgICB7CiAgICAgICAgICAgICBkb3VibGUgdHggPSAwLjAsIHR5ID0gMC4wOwot
ICAgICAgICAgICAgaWYoY29tbWFQb3MgIT0gLSAxKQotICAgICAgICAgICAgeworICAgICAgICAg
ICAgaWYgKGNvbW1hUG9zICE9IC0gMSkgewogICAgICAgICAgICAgICAgIHR4ID0gcGFyc2UubWlk
KDAsIGNvbW1hUG9zKS50b0RvdWJsZSgpOwogICAgICAgICAgICAgICAgIHR5ID0gcGFyc2UubWlk
KGNvbW1hUG9zICsgMSkudG9Eb3VibGUoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVs
c2UgCisgICAgICAgICAgICB9IGVsc2UgCiAgICAgICAgICAgICAgICAgdHggPSBwYXJzZS50b0Rv
dWJsZSgpOwogCiAgICAgICAgICAgICBwYXJzZWRUcmFuc2Zvcm0tPnNldFRyYW5zbGF0ZSh0eCwg
dHkpOwpAQCAtMzY5LDEzICszNTYsMTAgQEAKICAgICAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1ND
QUxFOgogICAgICAgICB7CiAgICAgICAgICAgICBkb3VibGUgc3ggPSAxLjAsIHN5ID0gMS4wOwot
ICAgICAgICAgICAgaWYoY29tbWFQb3MgIT0gLSAxKQotICAgICAgICAgICAgeworICAgICAgICAg
ICAgaWYgKGNvbW1hUG9zICE9IC0gMSkgewogICAgICAgICAgICAgICAgIHN4ID0gcGFyc2UubWlk
KDAsIGNvbW1hUG9zKS50b0RvdWJsZSgpOwogICAgICAgICAgICAgICAgIHN5ID0gcGFyc2UubWlk
KGNvbW1hUG9zICsgMSkudG9Eb3VibGUoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHsKKyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAg
c3ggPSBwYXJzZS50b0RvdWJsZSgpOwogICAgICAgICAgICAgICAgIHN5ID0gc3g7CiAgICAgICAg
ICAgICB9CkBAIC0zODYsMTMgKzM3MCwxMSBAQAogICAgICAgICBjYXNlIFNWR19UUkFOU0ZPUk1f
Uk9UQVRFOgogICAgICAgICB7CiAgICAgICAgICAgICBkb3VibGUgYW5nbGUgPSAwLCBjeCA9IDAs
IGN5ID0gMDsKLSAgICAgICAgICAgIGlmKGNvbW1hUG9zICE9IC0gMSkKLSAgICAgICAgICAgIHsK
KyAgICAgICAgICAgIGlmIChjb21tYVBvcyAhPSAtIDEpIHsKICAgICAgICAgICAgICAgICBhbmds
ZSA9IHBhcnNlLm1pZCgwLCBjb21tYVBvcykudG9Eb3VibGUoKTsgLy8gVE9ETzogcHJvYmFibHkg
bmVlZHMgaXQncyBvd24gJ2FuZ2xlJyBwYXJzZXIKICAgICAKICAgICAgICAgICAgICAgICBpbnQg
Y29tbWFQb3NUd28gPSBwYXJzZS5maW5kKCcsJywgY29tbWFQb3MgKyAxKTsgLy8gSW4gY2FzZSB0
aHJlZSB2YWx1ZXMgYXJlIHBhc3NlZC4uLgotICAgICAgICAgICAgICAgIGlmKGNvbW1hUG9zVHdv
ICE9IC0xKQotICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoY29tbWFQb3NU
d28gIT0gLTEpIHsKICAgICAgICAgICAgICAgICAgICAgY3ggPSBwYXJzZS5taWQoY29tbWFQb3Mg
KyAxLCBjb21tYVBvc1R3byAtIGNvbW1hUG9zIC0gMSkudG9Eb3VibGUoKTsKICAgICAgICAgICAg
ICAgICAgICAgY3kgPSBwYXJzZS5taWQoY29tbWFQb3NUd28gKyAxKS50b0RvdWJsZSgpOwogICAg
ICAgICAgICAgICAgIH0KQEAgLTQwNywxMyArMzg5LDEwIEBACiAgICAgICAgICAgICAvLyAgICB0
aGUgY3gvY3kgdmFsdWVzLCB3aGlsZSBrZWVwaW5nIHRoaXMgdWJlci1vcHRpbWl6ZWQgd2F5IG9m
IGhhbmRsaW5nIDxhbmltYXRlVHJhbnNmb3JtPiEKICAgICAgICAgICAgIG1fcm90YXRlU3BlY2lh
bENhc2UgPSBmYWxzZTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYoYW5nbGUgPT0gMC4w
KQotICAgICAgICAgICAgeworICAgICAgICAgICAgaWYgKGFuZ2xlID09IDAuMCkgewogICAgICAg
ICAgICAgICAgIGFuZ2xlID0gYW5nbGUgKyAxLjA7CiAgICAgICAgICAgICAgICAgbV9yb3RhdGVT
cGVjaWFsQ2FzZSA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmKGFu
Z2xlID09IDM2MC4wKQotICAgICAgICAgICAgeworICAgICAgICAgICAgfSBlbHNlIGlmIChhbmds
ZSA9PSAzNjAuMCkgewogICAgICAgICAgICAgICAgIGFuZ2xlID0gYW5nbGUgLSAxLjA7CiAgICAg
ICAgICAgICAgICAgbV9yb3RhdGVTcGVjaWFsQ2FzZSA9IHRydWU7CiAgICAgICAgICAgICB9CkBA
IC00OTAsNiArNDY5LDggQEAKICAgICByZXR1cm4gbV90cmFuc2Zvcm1NYXRyaXguZ2V0KCk7CiB9
CiAKK30KKwogLy8gdmltOnRzPTQ6bm9ldAogI2VuZGlmIC8vIFNWR19TVVBQT1JUCiAKSW5kZXg6
IGtzdmcyL3N2Zy9TVkdMb2NhdGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHTG9j
YXRhYmxlLmgJKHJldmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR0xvY2F0YWJsZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMCwxMyArMjAsMTIgQEAKICAgICBCb3N0b24sIE1BIDAyMTExLTEz
MDcsIFVTQS4KICovCiAKLSNpZm5kZWYgS1NWR19TVkdMb2NhdGFibGVJbXBsX0gKLSNkZWZpbmUg
S1NWR19TVkdMb2NhdGFibGVJbXBsX0gKKyNpZm5kZWYgU1ZHTG9jYXRhYmxlX0gKKyNkZWZpbmUg
U1ZHTG9jYXRhYmxlX0gKICNpZiBTVkdfU1VQUE9SVAogCi1uYW1lc3BhY2UgV2ViQ29yZQotewot
ICAgIGNsYXNzIFNWR1JlY3Q7CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgRmxvYXRS
ZWN0OwogICAgIGNsYXNzIFNWR01hdHJpeDsKICAgICBjbGFzcyBTVkdFbGVtZW50OwogICAgIGNs
YXNzIFNWR1N0eWxlZEVsZW1lbnQ7CkBAIC00MCwxNyArMzksMTcgQEAKICAgICAgICAgdmlydHVh
bCBTVkdFbGVtZW50ICpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KCkgY29uc3QgPSAwOwogICAgICAg
ICB2aXJ0dWFsIFNWR0VsZW1lbnQgKmZhcnRoZXN0Vmlld3BvcnRFbGVtZW50KCkgY29uc3QgPSAw
OwogCi0gICAgICAgIHZpcnR1YWwgU1ZHUmVjdCAqZ2V0QkJveCgpIGNvbnN0ID0gMDsKKyAgICAg
ICAgdmlydHVhbCBGbG9hdFJlY3QgZ2V0QkJveCgpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVh
bCBTVkdNYXRyaXggKmdldENUTSgpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCBTVkdNYXRy
aXggKmdldFNjcmVlbkNUTSgpIGNvbnN0ID0gMDsKLSAgICAgICAgdmlydHVhbCBTVkdNYXRyaXgg
KmdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50ICplbGVtZW50KSBjb25zdCA9IDA7Cisg
ICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4KiBnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHRWxlbWVu
dCopIGNvbnN0ID0gMDsKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgc3RhdGljIFNWR0VsZW1l
bnQgKm5lYXJlc3RWaWV3cG9ydEVsZW1lbnQoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqZWxlbWVu
dCk7Ci0gICAgICAgIHN0YXRpYyBTVkdFbGVtZW50ICpmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudChj
b25zdCBTVkdTdHlsZWRFbGVtZW50ICplbGVtZW50KTsKLSAgICAgICAgc3RhdGljIFNWR1JlY3Qg
KmdldEJCb3goY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqZWxlbWVudCk7Ci0gICAgICAgIHN0YXRp
YyBTVkdNYXRyaXggKmdldENUTShjb25zdCBTVkdFbGVtZW50ICplbGVtZW50KTsKLSAgICAgICAg
c3RhdGljIFNWR01hdHJpeCAqZ2V0U2NyZWVuQ1RNKGNvbnN0IFNWR0VsZW1lbnQgKmVsZW1lbnQp
OworICAgICAgICBzdGF0aWMgU1ZHRWxlbWVudCogbmVhcmVzdFZpZXdwb3J0RWxlbWVudChjb25z
dCBTVkdTdHlsZWRFbGVtZW50Kik7CisgICAgICAgIHN0YXRpYyBTVkdFbGVtZW50KiBmYXJ0aGVz
dFZpZXdwb3J0RWxlbWVudChjb25zdCBTVkdTdHlsZWRFbGVtZW50Kik7CisgICAgICAgIHN0YXRp
YyBGbG9hdFJlY3QgZ2V0QkJveChjb25zdCBTVkdTdHlsZWRFbGVtZW50Kik7CisgICAgICAgIHN0
YXRpYyBTVkdNYXRyaXgqIGdldENUTShjb25zdCBTVkdFbGVtZW50Kik7CisgICAgICAgIHN0YXRp
YyBTVkdNYXRyaXgqIGdldFNjcmVlbkNUTShjb25zdCBTVkdFbGVtZW50Kik7CiAgICAgfTsKIH07
CiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtzdmcyL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oCShyZXZpc2lvbiAxNDYyMikK
KysrIGtzdmcyL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiw3ICszNiw3IEBACiAgICAgY2xhc3MgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQgOiBwdWJs
aWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzCiAgICAgewogICAgIHB1Ymxp
YzoKLSAgICAgICAgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdG
RUNvbG9yTWF0cml4RWxlbWVudCgpOwogCiAgICAgICAgIC8vICdTVkdGRUNvbG9yTWF0cml4RWxl
bWVudCcgZnVuY3Rpb25zCkluZGV4OiBrc3ZnMi9zdmcvU1ZHUG9pbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtzdmcyL3N2Zy9TVkdQb2ludC5pZGwJKHJldmlzaW9uIDE0NjE5KQorKysga3N2ZzIvc3Zn
L1NWR1BvaW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMSwzNiBAQAotbW9kdWxlIHN2
ZwoteworLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4g
PHdpbGRmb3hAa2RlLm9yZz4KKyAqICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8
YnVpc0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKK21vZHVsZSBzdmcgewogICBpbnRlcmZhY2UgU1ZHUG9pbnQgeyAKLSAgICAgICAg
ICAgICBhdHRyaWJ1dGUgZmxvYXQgeDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlz
ZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKLSAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQg
eTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNl
dHRpbmcKKyAgICAgICAgYXR0cmlidXRlIGZsb2F0IHgKKyAgICAgICAgICAgIHNldHRlciByYWlz
ZXMgRE9NRXhjZXB0aW9uOworICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeQorICAgICAgICAgICAg
c2V0dGVyIHJhaXNlcyBET01FeGNlcHRpb247CiAgICAgU1ZHUG9pbnQgbWF0cml4VHJhbnNmb3Jt
ICggaW4gU1ZHTWF0cml4IG1hdHJpeCApOwogICB9OwogfTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdU
cmFuc2Zvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHVHJhbnNmb3JtLmgJKHJldmlz
aW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNSw2ICszNSwxNiBAQAogICAgICAgICBTVkdUcmFuc2Zvcm0oKTsKICAgICAgICAgdmlydHVh
bCB+U1ZHVHJhbnNmb3JtKCk7CiAKKyAgICAgICAgZW51bSBTVkdUcmFuc2Zvcm1UeXBlIHsKKyAg
ICAgICAgICAgIFNWR19UUkFOU0ZPUk1fVU5LTk9XTiAgICAgICAgICAgPSAwLAorICAgICAgICAg
ICAgU1ZHX1RSQU5TRk9STV9NQVRSSVggICAgICAgICAgICA9IDEsCisgICAgICAgICAgICBTVkdf
VFJBTlNGT1JNX1RSQU5TTEFURSAgICAgICAgID0gMiwKKyAgICAgICAgICAgIFNWR19UUkFOU0ZP
Uk1fU0NBTEUgICAgICAgICAgICAgPSAzLAorICAgICAgICAgICAgU1ZHX1RSQU5TRk9STV9ST1RB
VEUgICAgICAgICAgICA9IDQsCisgICAgICAgICAgICBTVkdfVFJBTlNGT1JNX1NLRVdYICAgICAg
ICAgICAgID0gNSwKKyAgICAgICAgICAgIFNWR19UUkFOU0ZPUk1fU0tFV1kgICAgICAgICAgICAg
PSA2CisgICAgICAgIH07CisgICAgICAgIAogICAgICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlKCkg
Y29uc3Q7CiAKICAgICAgICAgU1ZHTWF0cml4KiBtYXRyaXgoKSBjb25zdDsKSW5kZXg6IGtzdmcy
L3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1N3aXRj
aEVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHU3dpdGNoRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAogICAgIHsK
ICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1N3aXRjaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR1N3aXRjaEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR1N3aXRj
aEVsZW1lbnQoKTsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29u
c3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQpJbmRleDoga3N2ZzIvc3ZnL1NWR0Nv
bG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0NvbG9yLmgJKHJldmlzaW9uIDE0NjIy
KQorKysga3N2ZzIvc3ZnL1NWR0NvbG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDI0ICszMSwz
MiBAQAogbmFtZXNwYWNlIFdlYkNvcmUKIHsKICAgICBjbGFzcyBSR0JDb2xvcjsKLSAgICBjbGFz
cyBTdHJpbmdJbXBsOworICAgIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKICAgICBjbGFz
cyBTVkdDb2xvciA6IHB1YmxpYyBDU1NWYWx1ZQogICAgIHsKICAgICBwdWJsaWM6CiAgICAgICAg
IFNWR0NvbG9yKCk7Ci0gICAgICAgIFNWR0NvbG9yKFN0cmluZ0ltcGwqIHJnYkNvbG9yKTsKKyAg
ICAgICAgU1ZHQ29sb3IoY29uc3QgU3RyaW5nJiByZ2JDb2xvcik7CiAgICAgICAgIFNWR0NvbG9y
KHVuc2lnbmVkIHNob3J0IGNvbG9yVHlwZSk7CiAgICAgICAgIHZpcnR1YWwgflNWR0NvbG9yKCk7
CiAKKyAgICAgICAgZW51bSBTVkdDb2xvclR5cGUgeworICAgICAgICAgICAgU1ZHX0NPTE9SVFlQ
RV9VTktOT1dOICAgICAgICAgICAgICAgICAgID0gMCwKKyAgICAgICAgICAgIFNWR19DT0xPUlRZ
UEVfUkdCQ09MT1IgICAgICAgICAgICAgICAgICA9IDEsCisgICAgICAgICAgICBTVkdfQ09MT1JU
WVBFX1JHQkNPTE9SX0lDQ0NPTE9SICAgICAgICAgPSAyLAorICAgICAgICAgICAgU1ZHX0NPTE9S
VFlQRV9DVVJSRU5UQ09MT1IgICAgICAgICAgICAgID0gMworICAgICAgICB9OworCiAgICAgICAg
IC8vICdTVkdDb2xvcicgZnVuY3Rpb25zCiAgICAgICAgIHVuc2lnbmVkIHNob3J0IGNvbG9yVHlw
ZSgpIGNvbnN0OwogCi0gICAgICAgIFJHQkNvbG9yKiByZ2JDb2xvcigpIGNvbnN0OworICAgICAg
ICB1bnNpZ25lZCByZ2JDb2xvcigpIGNvbnN0OwogCi0gICAgICAgIHZvaWQgc2V0UkdCQ29sb3Io
U3RyaW5nSW1wbCogcmdiQ29sb3IpOwotICAgICAgICB2b2lkIHNldFJHQkNvbG9ySUNDQ29sb3Io
U3RyaW5nSW1wbCogcmdiQ29sb3IsIFN0cmluZ0ltcGwqIGljY0NvbG9yKTsKLSAgICAgICAgdm9p
ZCBzZXRDb2xvcih1bnNpZ25lZCBzaG9ydCBjb2xvclR5cGUsIFN0cmluZ0ltcGwqIHJnYkNvbG9y
LCBTdHJpbmdJbXBsKiBpY2NDb2xvcik7CisgICAgICAgIHZvaWQgc2V0UkdCQ29sb3IoY29uc3Qg
U3RyaW5nJiByZ2JDb2xvcikgeyBFeGNlcHRpb25Db2RlIGlnbm9yZWQgPSAwOyBzZXRSR0JDb2xv
cihyZ2JDb2xvciwgaWdub3JlZCk7IH0KKyAgICAgICAgdm9pZCBzZXRSR0JDb2xvcihjb25zdCBT
dHJpbmcmIHJnYkNvbG9yLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgc2V0UkdCQ29s
b3JJQ0NDb2xvcihjb25zdCBTdHJpbmcmIHJnYkNvbG9yLCBjb25zdCBTdHJpbmcmIGljY0NvbG9y
LCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgc2V0Q29sb3IodW5zaWduZWQgc2hvcnQg
Y29sb3JUeXBlLCBjb25zdCBTdHJpbmcmIHJnYkNvbG9yLCBjb25zdCBTdHJpbmcmIGljY0NvbG9y
LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICAgICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNv
bnN0OwogCkBAIC01Niw3ICs2NCw3IEBACiAgICAgICAgIGNvbnN0IENvbG9yJiBjb2xvcigpIGNv
bnN0OwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQ29sb3IgbV9xQ29sb3I7CisgICAgICAgIENv
bG9yIG1fY29sb3I7CiAgICAgICAgIHVuc2lnbmVkIHNob3J0IG1fY29sb3JUeXBlOwogICAgICAg
ICBTdHJpbmcgbV9yZ2JDb2xvcjsKICAgICB9OwpJbmRleDoga3N2ZzIvc3ZnL1NWR1N5bWJvbEVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCShyZXZp
c2lvbiAxNDYyMikKKysrIGtzdmcyL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM3LDcgKzM3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1
YmxpYyBTVkdGaXRUb1ZpZXdCb3gKICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdTeW1i
b2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpOwor
ICAgICAgICBTVkdTeW1ib2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OwogICAgICAgICB2aXJ0dWFsIH5TVkdTeW1ib2xFbGVtZW50KCk7CiAKICAgICAgICAgdmlydHVh
bCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSAqYXR0cik7CkluZGV4
OiBrc3ZnMi9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcv
U1ZHRkVGdW5jQkVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHRkVG
dW5jQkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogICAgIGNsYXNz
IFNWR0ZFRnVuY0JFbGVtZW50IDogcHVibGljIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25F
bGVtZW50CiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHRkVGdW5jQkVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR0ZF
RnVuY0JFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2
aXJ0dWFsIH5TVkdGRUZ1bmNCRWxlbWVudCgpOwogICAgIH07CiB9OwpJbmRleDoga3N2ZzIvc3Zn
L1NWR01hdHJpeC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR01hdHJpeC5pZGwJKHJl
dmlzaW9uIDE0NjE5KQorKysga3N2ZzIvc3ZnL1NWR01hdHJpeC5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTEsMTggKzEsNDQgQEAKLW1vZHVsZSBzdmcKLXsKKy8qCisgKiBDb3B5cmlnaHQoQykgMjAw
NCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAqICAgICAgICAg
ICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICogQ29weXJpZ2h0KEMp
IDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICooSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK21vZHVsZSBzdmcgewogICBpbnRlcmZh
Y2UgU1ZHTWF0cml4IHsgCi0gICAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0IGE7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCi0gICAg
ICAgICAgICAgYXR0cmlidXRlIGZsb2F0IGI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8g
cmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCi0gICAgICAgICAgICAgYXR0cmlidXRlIGZs
b2F0IGM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBv
biBzZXR0aW5nCi0gLy8gICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgZDsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKLSAgICAgICAg
ICAgICBhdHRyaWJ1dGUgZmxvYXQgZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlz
ZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKLSAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQg
ZjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNl
dHRpbmcKKyAgICAgICAgYXR0cmlidXRlIGZsb2F0IGEKKyAgICAgICAgICAgIHNldHRlciByYWlz
ZXMgRE9NRXhjZXB0aW9uOworICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgYgorICAgICAgICAgICAg
c2V0dGVyIHJhaXNlcyBET01FeGNlcHRpb247CisgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCBjCisg
ICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIERPTUV4Y2VwdGlvbjsKKyAgICAgICAgYXR0cmlidXRl
IGZsb2F0IGQKKyAgICAgICAgICAgIHNldHRlciByYWlzZXMgRE9NRXhjZXB0aW9uOworICAgICAg
ICBhdHRyaWJ1dGUgZmxvYXQgZQorICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyBET01FeGNlcHRp
b247CisgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCBmCisgICAgICAgICAgICBzZXR0ZXIgcmFpc2Vz
IERPTUV4Y2VwdGlvbjsKICAgICBTVkdNYXRyaXggbXVsdGlwbHkgKCBpbiBTVkdNYXRyaXggc2Vj
b25kTWF0cml4ICk7CiAgICAgU1ZHTWF0cml4IGludmVyc2UgKCAgKQogICAgICAgICAgICAgICAg
ICAgICByYWlzZXMoIFNWR0V4Y2VwdGlvbiApOwpJbmRleDoga3N2ZzIvc3ZnL1NWR1RyYW5zZm9y
bS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybS5pZGwJKHJldmlzaW9u
IDE0NjE5KQorKysga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybS5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSwzMSBAQAotbW9kdWxlIHN2ZwoteworLyoKKyAqIENvcHlyaWdodChDKSAyMDA0LCAy
MDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgorICogICAgICAgICAgICAg
ICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQoQykgMjAw
NiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyhJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKihJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9kdWxlIHN2ZyB7CiAgIGludGVyZmFjZSBT
VkdUcmFuc2Zvcm0geyAKICAgICAvLyBUcmFuc2Zvcm0gVHlwZXMKICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBTVkdfVFJBTlNGT1JNX1VOS05PV04gICA9IDA7CkBAIC05LDkgKzM1LDExIEBACiAg
ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1RSQU5TRk9STV9ST1RBVEUgICAgPSA0OwogICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19UUkFOU0ZPUk1fU0tFV1ggICAgID0gNTsKICAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfVFJBTlNGT1JNX1NLRVdZICAgICA9IDY7CisgICAgICAg
IAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCB0eXBlOwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBTVkdNYXRyaXggbWF0cml4OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBm
bG9hdCBhbmdsZTsKKyAgICAgICAgCiAgICAgdm9pZCBzZXRNYXRyaXggKCBpbiBTVkdNYXRyaXgg
bWF0cml4ICk7CiAgICAgdm9pZCBzZXRUcmFuc2xhdGUgKCBpbiBmbG9hdCB0eCwgaW4gZmxvYXQg
dHkgKTsKICAgICB2b2lkIHNldFNjYWxlICggaW4gZmxvYXQgc3gsIGluIGZsb2F0IHN5ICk7Cklu
ZGV4OiBrc3ZnMi9zdmcvU1ZHTWF0cml4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZH
TWF0cml4LmNwcAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHTWF0cml4LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTIyLDggKzEyMiwxMCBAQAogICAgIHJldHVybiB0aGlzOwogfQog
Ci1TVkdNYXRyaXgqIFNWR01hdHJpeDo6aW52ZXJzZSgpCitTVkdNYXRyaXgqIFNWR01hdHJpeDo6
aW52ZXJzZShFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBpZiAoIW1fbWF0LmlzSW52ZXJ0aWJs
ZSgpKQorICAgICAgICBlYyA9IFNWR19NQVRSSVhfTk9UX0lOVkVSVEFCTEU7CiAgICAgbV9tYXQg
PSBtX21hdC5pbnZlcnQoKTsKICAgICByZXR1cm4gdGhpczsKIH0KQEAgLTIzMSw4ICsyMzMsMTIg
QEAKICAgICByZXR1cm4gdGhpczsKIH0KIAotU1ZHTWF0cml4KiBTVkdNYXRyaXg6OnJvdGF0ZUZy
b21WZWN0b3IoZG91YmxlIHgsIGRvdWJsZSB5KQorU1ZHTWF0cml4KiBTVkdNYXRyaXg6OnJvdGF0
ZUZyb21WZWN0b3IoZG91YmxlIHgsIGRvdWJsZSB5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAg
ICBpZiAoeCA9PSAwIHx8IHkgPT0gMCkgeworICAgICAgICBlYyA9IFNWR19JTlZBTElEX1ZBTFVF
X0VSUjsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQogICAgIG1fbWF0LnJvdGF0ZShTVkdB
bmdsZTo6dG9kZWcoYXRhbjIoeSwgeCkpKTsKICAgICByZXR1cm4gdGhpczsKIH0KSW5kZXg6IGtz
dmcyL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdG
RUZ1bmNSRWxlbWVudC5oCShyZXZpc2lvbiAxNDYyMikKKysrIGtzdmcyL3N2Zy9TVkdGRUZ1bmNS
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAgICAgY2xhc3MgU1ZH
RkVGdW5jUkVsZW1lbnQgOiBwdWJsaWMgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1l
bnQKICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdGRUZ1bmNSRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCAqZG9jKTsKKyAgICAgICAgU1ZHRkVGdW5j
UkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1
YWwgflNWR0ZFRnVuY1JFbGVtZW50KCk7CiAgICAgfTsKIH07CkluZGV4OiBrc3ZnMi9zdmcvU1ZH
RXZlbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdFdmVudC5pZGwJKHJldmlzaW9u
IDE0NjE5KQorKysga3N2ZzIvc3ZnL1NWR0V2ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw0
ICsxLDMwIEBACi1tb2R1bGUgc3ZnCi17CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgorICogICAgICAgICAgICAgICAy
MDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYg
QXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9kdWxlIHN2ZyB7CiAgIGludGVyZmFjZSBT
VkdFdmVudCA6IGV2ZW50czo6RXZlbnQge307CiB9OwpJbmRleDoga3N2ZzIvc3ZnL1NWR1BhdGhF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1BhdGhFbGVtZW50LmgJKHJldmlz
aW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR1BhdGhFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDcgKzMzLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUKIHsKLSAgICBjbGFzcyBTVkdQ
b2ludDsKICAgICBjbGFzcyBTVkdQYXRoU2VnOwogICAgIGNsYXNzIFNWR1BhdGhTZWdBcmNBYnM7
CiAgICAgY2xhc3MgU1ZHUGF0aFNlZ0FyY1JlbDsKQEAgLTYzLDE0ICs2MiwxNCBAQAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdQYXRoUGFyc2VyCiAgICAgewogICAg
IHB1YmxpYzoKLSAgICAgICAgU1ZHUGF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR1BhdGhFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdQYXRoRWxlbWVudCgp
OwogICAgICAgICAKICAgICAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVy
biBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CiAKICAgICAgICAgU1ZHQW5pbWF0ZWROdW1iZXIgKnBh
dGhMZW5ndGgoKSBjb25zdDsKICAgICAgICAgZG91YmxlIGdldFRvdGFsTGVuZ3RoKCk7Ci0gICAg
ICAgIFNWR1BvaW50ICpnZXRQb2ludEF0TGVuZ3RoKGRvdWJsZSBkaXN0YW5jZSk7CisgICAgICAg
IEZsb2F0UG9pbnQgZ2V0UG9pbnRBdExlbmd0aChkb3VibGUgZGlzdGFuY2UpOwogICAgICAgICB1
bnNpZ25lZCBsb25nIGdldFBhdGhTZWdBdExlbmd0aChkb3VibGUgZGlzdGFuY2UpOwogCiAgICAg
ICAgIFNWR1BhdGhTZWdDbG9zZVBhdGggKmNyZWF0ZVNWR1BhdGhTZWdDbG9zZVBhdGgoKTsKSW5k
ZXg6IGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3Zn
L1NWR1N0eWxlZEVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHU3R5
bGVkRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBACiAgICAgY2xhc3Mg
U1ZHU3R5bGVkRWxlbWVudCA6IHB1YmxpYyBTVkdFbGVtZW50CiAgICAgewogICAgIHB1YmxpYzoK
LSAgICAgICAgU1ZHU3R5bGVkRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCAqZG9jKTsKKyAgICAgICAgU1ZHU3R5bGVkRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHU3R5bGVkRWxlbWVudCgpOwog
ICAgICAgICAKICAgICAgICAgdmlydHVhbCBib29sIGlzU3R5bGVkKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQpJbmRleDoga3N2ZzIvc3ZnL1NWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50LmNwcAkocmV2
aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAKICAgICByZXR1cm4gU1ZHTG9jYXRhYmxl
OjpmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudCh0aGlzKTsKIH0KIAotU1ZHUmVjdCAqU1ZHU3R5bGVk
TG9jYXRhYmxlRWxlbWVudDo6Z2V0QkJveCgpIGNvbnN0CitGbG9hdFJlY3QgU1ZHU3R5bGVkTG9j
YXRhYmxlRWxlbWVudDo6Z2V0QkJveCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFNWR0xvY2F0YWJs
ZTo6Z2V0QkJveCh0aGlzKTsKIH0KSW5kZXg6IGtzdmcyL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1l
bnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAgICAgY2xhc3MgU1ZHVGV4
dFBvc2l0aW9uaW5nRWxlbWVudCA6IHB1YmxpYyBTVkdUZXh0Q29udGVudEVsZW1lbnQKICAgICB7
CiAgICAgcHVibGljOgotICAgICAgICBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpOworICAgICAgICBTVkdUZXh0UG9z
aXRpb25pbmdFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAg
ICB2aXJ0dWFsIH5TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50KCk7CiAKICAgICAgICAgLy8gJ1NW
R1RleHRQb3NpdGlvbmluZ0VsZW1lbnQnIGZ1bmN0aW9ucwpJbmRleDoga3N2ZzIvc3ZnL1NWR1Rl
eHRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmgJKHJl
dmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMzLDcgKzMzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJs
aWMgU1ZHVHJhbnNmb3JtYWJsZQogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1RleHRF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpOworICAg
ICAgICBTVkdUZXh0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAg
ICAgICAgdmlydHVhbCB+U1ZHVGV4dEVsZW1lbnQoKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQg
cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKTsKQEAgLTQyLDcgKzQy
LDcgQEAKICAgICAgICAgdmlydHVhbCBTVkdFbGVtZW50ICpuZWFyZXN0Vmlld3BvcnRFbGVtZW50
KCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgU1ZHRWxlbWVudCAqZmFydGhlc3RWaWV3cG9ydEVs
ZW1lbnQoKSBjb25zdDsKIAotICAgICAgICB2aXJ0dWFsIFNWR1JlY3QgKmdldEJCb3goKSBjb25z
dDsKKyAgICAgICAgdmlydHVhbCBGbG9hdFJlY3QgZ2V0QkJveCgpIGNvbnN0OwogICAgICAgICB2
aXJ0dWFsIFNWR01hdHJpeCAqZ2V0Q1RNKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgU1ZHTWF0
cml4ICpnZXRTY3JlZW5DVE0oKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBTVkdNYXRyaXggKmdl
dFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50ICplbGVtZW50KSBjb25zdCB7IHJldHVybiAw
OyB9CkluZGV4OiBrc3ZnMi9zdmcvU1ZHTGluZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3Zn
Mi9zdmcvU1ZHTGluZUVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZH
TGluZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
CiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHTGluZUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR0xpbmVFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdM
aW5lRWxlbWVudCgpOwogICAgICAgICAKICAgICAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBj
b25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CkluZGV4OiBrc3ZnMi9zdmcvU1ZH
UmVjdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1JlY3QuaWRsCShyZXZpc2lvbiAx
NDYxOSkKKysrIGtzdmcyL3N2Zy9TVkdSZWN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMyAr
MSwzOSBAQAotbW9kdWxlIHN2ZwoteworLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBO
aWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAqICAgICAgICAgICAgICAgMjAw
NCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFw
cGxlIENvbXB1dGVyLCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK21vZHVsZSBzdmcgewogICBpbnRlcmZhY2UgU1ZH
UmVjdCB7IAotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB4OwotICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZwotICAgICAgICAgICAg
IGF0dHJpYnV0ZSBmbG9hdCB5OwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBE
T01FeGNlcHRpb24gb24gc2V0dGluZwotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB3aWR0
aDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNl
dHRpbmcKLSAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgaGVpZ2h0OwotICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZworICAgICAgICBh
dHRyaWJ1dGUgZmxvYXQgeAorICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyBET01FeGNlcHRpb247
CisgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB5CisgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIERP
TUV4Y2VwdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIGZsb2F0IHdpZHRoCisgICAgICAgICAgICBz
ZXR0ZXIgcmFpc2VzIERPTUV4Y2VwdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIGZsb2F0IGhlaWdo
dAorICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyBET01FeGNlcHRpb247CiAgIH07CiB9OwpJbmRl
eDoga3N2ZzIvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NW
R1ZpZXdFbGVtZW50LmgJKHJldmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR1ZpZXdFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdWJsaWMgU1ZHWm9vbUFuZFBhbgogICAgIHsKICAgICBwdWJsaWM6Ci0g
ICAgICAgIFNWR1ZpZXdFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50ICpkb2MpOworICAgICAgICBTVkdWaWV3RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHVmlld0VsZW1lbnQoKTsKIAogICAgICAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRy
KTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBrc3ZnMi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgJKHJldmlzaW9uIDE0NjIy
KQorKysga3N2ZzIvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw3ICszMiw3IEBACiAgICAgY2xhc3MgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50IDog
cHVibGljIFNWR0dyYWRpZW50RWxlbWVudAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNW
R1JhZGlhbEdyYWRpZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCAqZG9jKTsKKyAgICAgICAgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQoKTsKIAogICAgICAgICAvLyAnU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50JyBmdW5j
dGlvbnMKSW5kZXg6IGtzdmcyL3N2Zy9TVkdUUmVmRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtz
dmcyL3N2Zy9TVkdUUmVmRWxlbWVudC5oCShyZXZpc2lvbiAxNDYyMikKKysrIGtzdmcyL3N2Zy9T
VkdUUmVmRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBACiAgICAgY2xh
c3MgU1ZHVFJlZkVsZW1lbnQgOiBwdWJsaWMgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCwgcHVi
bGljIFNWR1VSSVJlZmVyZW5jZQogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1RSZWZF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpOworICAg
ICAgICBTVkdUUmVmRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAg
ICAgICAgdmlydHVhbCB+U1ZHVFJlZkVsZW1lbnQoKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQg
YXR0cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqIGF0dHIsIGJvb2wgcHJlc2VydmVEZWNscyk7Cklu
ZGV4OiBrc3ZnMi9zdmcvU1ZHSGVscGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZH
SGVscGVyLmNwcAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHSGVscGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzQsNDIgKzM0LDM1IEBACiAjaW5jbHVkZSAia3N2Zy5oIgogI2lu
Y2x1ZGUgPG1hdGguaD4KIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogCituYW1lc3BhY2UgV2ViQ29yZSB7CisKIGZsb2F0IFNWR0hlbHBlcjo6UGVyY2Vu
dGFnZU9mVmlld3BvcnQoZmxvYXQgdmFsdWUsIGNvbnN0IFNWR0VsZW1lbnQgKnZpZXdwb3J0RWxl
bWVudCwgTGVuZ3RoTW9kZSBtb2RlKQogewogICAgIGZsb2F0IHdpZHRoID0gMCwgaGVpZ2h0ID0g
MDsKICAgICBpZighdmlld3BvcnRFbGVtZW50KQogICAgICAgICByZXR1cm4gMC4wOwogIAotICAg
IGlmKHZpZXdwb3J0RWxlbWVudC0+aXNTVkcoKSkKLSAgICB7CisgICAgaWYgKHZpZXdwb3J0RWxl
bWVudC0+aXNTVkcoKSkgewogICAgICAgICBjb25zdCBTVkdTVkdFbGVtZW50ICpzdmcgPSBzdGF0
aWNfY2FzdDxjb25zdCBTVkdTVkdFbGVtZW50ICo+KHZpZXdwb3J0RWxlbWVudCk7Ci0gICAgICAg
IGlmKHN2Zy0+aGFzQXR0cmlidXRlKFNWR05hbWVzOjp2aWV3Qm94QXR0cikpCi0gICAgICAgIHsK
KyAgICAgICAgaWYgKHN2Zy0+aGFzQXR0cmlidXRlKFNWR05hbWVzOjp2aWV3Qm94QXR0cikpIHsK
ICAgICAgICAgICAgIHdpZHRoID0gc3ZnLT52aWV3Qm94KCktPmJhc2VWYWwoKS0+d2lkdGgoKTsK
ICAgICAgICAgICAgIGhlaWdodCA9IHN2Zy0+dmlld0JveCgpLT5iYXNlVmFsKCktPmhlaWdodCgp
OwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYoc3ZnLT53aWR0aCgpLT5iYXNlVmFsKCktPnVu
aXRUeXBlKCkgPT0gU1ZHX0xFTkdUSFRZUEVfUEVSQ0VOVEFHRSB8fAotICAgICAgICAgICAgICAg
IHN2Zy0+aGVpZ2h0KCktPmJhc2VWYWwoKS0+dW5pdFR5cGUoKSA9PSBTVkdfTEVOR1RIVFlQRV9Q
RVJDRU5UQUdFKQotICAgICAgICB7CisgICAgICAgIH0gZWxzZSBpZiAoc3ZnLT53aWR0aCgpLT5i
YXNlVmFsKCktPnVuaXRUeXBlKCkgPT0gU1ZHTGVuZ3RoOjpTVkdfTEVOR1RIVFlQRV9QRVJDRU5U
QUdFIHx8CisgICAgICAgICAgICAgICAgc3ZnLT5oZWlnaHQoKS0+YmFzZVZhbCgpLT51bml0VHlw
ZSgpID09IFNWR0xlbmd0aDo6U1ZHX0xFTkdUSFRZUEVfUEVSQ0VOVEFHRSkgewogICAgICAgICAg
ICAgLy8gVE9ETzogU2hvdWxkbid0IHcvaCBiZSBtdWx0aXBsaWVkIHdpdGggdGhlIHBlcmNlbnRh
Z2UgdmFsdWVzPyEKICAgICAgICAgICAgIC8vIEFGQUlLLCB0aGlzIGFzc3VtZXMgd2lkdGggJiBo
ZWlnaHQgPT0gMTAwJSwgUm9iPz8KICAgICAgICAgICAgIERvY3VtZW50ICpkb2MgPSBzdmctPmRv
Y3VtZW50KCk7Ci0gICAgICAgICAgICBpZihkb2MtPmRvY3VtZW50RWxlbWVudCgpID09IHN2ZykK
LSAgICAgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChkb2MtPmRvY3VtZW50RWxlbWVudCgpID09
IHN2ZykgewogICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gYXNrIHRoZSBjYW52YXMgZm9y
IHRoZSBmdWxsICJjYW52YXMgc2l6ZSIuLi4KICAgICAgICAgICAgICAgICBSZW5kZXJDYW52YXMg
KmNhbnZhcyA9IHN0YXRpY19jYXN0PFJlbmRlckNhbnZhcyAqPihkb2MtPnJlbmRlcmVyKCkpOwot
ICAgICAgICAgICAgICAgIGlmKGNhbnZhcykKLSAgICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgaWYgKGNhbnZhcykgewogICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IGNhbnZhcy0+
dmlldygpLT52aXNpYmxlV2lkdGgoKTsgLy8gVE9ETzogcmVjaGVjayEKICAgICAgICAgICAgICAg
ICAgICAgaGVpZ2h0ID0gY2FudmFzLT52aWV3KCktPnZpc2libGVIZWlnaHQoKTsgLy8gVE9ETzog
cmVjaGVjayEKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICAgICAgZWxzZQotICAgICAgICB7CisgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB3aWR0
aCA9IHN2Zy0+d2lkdGgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpOwogICAgICAgICAgICAgaGVpZ2h0
ID0gc3ZnLT5oZWlnaHQoKS0+YmFzZVZhbCgpLT52YWx1ZSgpOwogICAgICAgICB9CkBAIC05NCw4
ICs4Nyw3IEBACiAgICAgCiAgICAgRGVwcmVjYXRlZFN0cmluZ0xpc3Q6OkNvbnN0SXRlcmF0b3Ig
aXQgPSBzdWJzdHJpbmdzLmJlZ2luKCk7CiAgICAgRGVwcmVjYXRlZFN0cmluZ0xpc3Q6OkNvbnN0
SXRlcmF0b3IgZW5kID0gc3Vic3RyaW5ncy5lbmQoKTsKLSAgICBmb3IoOyBpdCAhPSBlbmQ7ICsr
aXQpCi0gICAgeworICAgIGZvcig7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBTdHJpbmdJ
bXBsICpzdHJpbmcgPSBuZXcgU3RyaW5nSW1wbCgqaXQpOwogICAgICAgICBzdHJpbmctPnJlZigp
OwogCkBAIC0xMDMsNiArOTUsOCBAQAogICAgIH0KIH0KIAorfQorCiAvLyB2aW06dHM9NDpub2V0
CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKIApJbmRleDoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgJKHJldmlz
aW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDcgKzMxLDcgQEAKICAgICBjbGFzcyBTVkdBbmltYXRlRWxlbWVudCA6IHB1Ymxp
YyBTVkdBbmltYXRpb25FbGVtZW50CiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHQW5p
bWF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7
CisgICAgICAgIFNWR0FuaW1hdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlRWxlbWVudCgpOwogCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVUaW1lckV2ZW50KGRvdWJsZSB0aW1lUGVyY2VudGFnZSk7CkluZGV4
OiBrc3ZnMi9zdmcvU1ZHRGVmc0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZH
RGVmc0VsZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHRGVmc0VsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCiAgICAgewog
ICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHRGVmc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR0RlZnNFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdEZWZzRWxlbWVu
dCgpOwogICAgICAgICAKICAgICAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJl
dHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CkluZGV4OiBrc3ZnMi9zdmcvU1ZHRkVUdXJidWxl
bmNlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVt
ZW50LmgJKHJldmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgIGNsYXNzIFNWR0ZFVHVy
YnVsZW5jZUVsZW1lbnQgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzCiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHRkVUdXJidWxlbmNlRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCAqZG9jKTsKKyAgICAgICAgU1ZH
RkVUdXJidWxlbmNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAg
ICAgICAgdmlydHVhbCB+U1ZHRkVUdXJidWxlbmNlRWxlbWVudCgpOwogCiAgICAgICAgIC8vICdT
VkdGRVR1cmJ1bGVuY2VFbGVtZW50JyBmdW5jdGlvbnMKSW5kZXg6IGtzdmcyL3N2Zy9TVkdQYXR0
ZXJuRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVtZW50
LmNwcAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsOCArMTc1LDcgQEAKICAgICAKICAgICBLUmVuZGVyaW5n
UGFpbnRTZXJ2ZXJQYXR0ZXJuICpyZWZQYXR0ZXJuID0gc3RhdGljX2Nhc3Q8S1JlbmRlcmluZ1Bh
aW50U2VydmVyUGF0dGVybiAqPihyZWZTZXJ2ZXIpOwogICAgIAotICAgIGlmKCFoYXNBdHRyaWJ1
dGUoU1ZHTmFtZXM6OnBhdHRlcm5Vbml0c0F0dHIpKQotICAgIHsKKyAgICBpZiAoIWhhc0F0dHJp
YnV0ZShTVkdOYW1lczo6cGF0dGVyblVuaXRzQXR0cikpIHsKICAgICAgICAgY29uc3QgQXRvbWlj
U3RyaW5nJiB2YWx1ZSA9IHRhcmdldC0+Z2V0QXR0cmlidXRlKFNWR05hbWVzOjpwYXR0ZXJuVW5p
dHNBdHRyKTsKICAgICAgICAgaWYodmFsdWUgPT0gInVzZXJTcGFjZU9uVXNlIikKICAgICAgICAg
ICAgIHBhdHRlcm5Vbml0cygpLT5zZXRCYXNlVmFsKFNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05V
U0UpOwpAQCAtMTg0LDggKzE4Myw3IEBACiAgICAgICAgICAgICBwYXR0ZXJuVW5pdHMoKS0+c2V0
QmFzZVZhbChTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YKTsKICAgICB9CiAgICAgCi0g
ICAgaWYoIWhhc0F0dHJpYnV0ZShTVkdOYW1lczo6cGF0dGVybkNvbnRlbnRVbml0c0F0dHIpKQot
ICAgIHsKKyAgICBpZiAoIWhhc0F0dHJpYnV0ZShTVkdOYW1lczo6cGF0dGVybkNvbnRlbnRVbml0
c0F0dHIpKSB7CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUgPSB0YXJnZXQtPmdl
dEF0dHJpYnV0ZShTVkdOYW1lczo6cGF0dGVybkNvbnRlbnRVbml0c0F0dHIpOwogICAgICAgICBp
Zih2YWx1ZSA9PSAidXNlclNwYWNlT25Vc2UiKQogICAgICAgICAgICAgcGF0dGVybkNvbnRlbnRV
bml0cygpLT5zZXRCYXNlVmFsKFNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UpOwpAQCAtMjA2
LDEyICsyMDQsMTEgQEAKICAgICBib29sIGJib3ggPSAocGF0dGVyblVuaXRzKCktPmJhc2VWYWwo
KSA9PSBTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YKTsKIAogICAgIGNvbnN0IFNWR1N0
eWxlZEVsZW1lbnQgKnNhdmVkQ29udGV4dCA9IDA7Ci0gICAgaWYoYmJveCkKLSAgICB7Ci0gICAg
ICAgIGlmKHdpZHRoKCktPmJhc2VWYWwoKS0+dW5pdFR5cGUoKSAhPSBTVkdfTEVOR1RIVFlQRV9Q
RVJDRU5UQUdFKQotICAgICAgICAgICAgd2lkdGgoKS0+YmFzZVZhbCgpLT5uZXdWYWx1ZVNwZWNp
ZmllZFVuaXRzKFNWR19MRU5HVEhUWVBFX1BFUkNFTlRBR0UsIHdpZHRoKCktPmJhc2VWYWwoKS0+
dmFsdWUoKSAqIDEwMC4pOwotICAgICAgICBpZihoZWlnaHQoKS0+YmFzZVZhbCgpLT51bml0VHlw
ZSgpICE9IFNWR19MRU5HVEhUWVBFX1BFUkNFTlRBR0UpCi0gICAgICAgICAgICBoZWlnaHQoKS0+
YmFzZVZhbCgpLT5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKFNWR19MRU5HVEhUWVBFX1BFUkNFTlRB
R0UsIGhlaWdodCgpLT5iYXNlVmFsKCktPnZhbHVlKCkgKiAxMDAuKTsKKyAgICBpZiAoYmJveCkg
eworICAgICAgICBpZiAod2lkdGgoKS0+YmFzZVZhbCgpLT51bml0VHlwZSgpICE9IFNWR0xlbmd0
aDo6U1ZHX0xFTkdUSFRZUEVfUEVSQ0VOVEFHRSkKKyAgICAgICAgICAgIHdpZHRoKCktPmJhc2VW
YWwoKS0+bmV3VmFsdWVTcGVjaWZpZWRVbml0cyhTVkdMZW5ndGg6OlNWR19MRU5HVEhUWVBFX1BF
UkNFTlRBR0UsIHdpZHRoKCktPmJhc2VWYWwoKS0+dmFsdWUoKSAqIDEwMC4pOworICAgICAgICBp
ZiAoaGVpZ2h0KCktPmJhc2VWYWwoKS0+dW5pdFR5cGUoKSAhPSBTVkdMZW5ndGg6OlNWR19MRU5H
VEhUWVBFX1BFUkNFTlRBR0UpCisgICAgICAgICAgICBoZWlnaHQoKS0+YmFzZVZhbCgpLT5uZXdW
YWx1ZVNwZWNpZmllZFVuaXRzKFNWR0xlbmd0aDo6U1ZHX0xFTkdUSFRZUEVfUEVSQ0VOVEFHRSwg
aGVpZ2h0KCktPmJhc2VWYWwoKS0+dmFsdWUoKSAqIDEwMC4pOwogICAgICAgICBpZihhY3RpdmVF
bGVtZW50KQogICAgICAgICAgICAgc2F2ZWRDb250ZXh0ID0gY29uc3RfY2FzdDxTVkdQYXR0ZXJu
RWxlbWVudCAqPih0aGlzKS0+cHVzaEF0dHJpYnV0ZUNvbnRleHQoYWN0aXZlRWxlbWVudCk7CiAg
ICAgfQpJbmRleDoga3N2ZzIvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0ga3N2ZzIvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAJKHJldmlzaW9uIDE0NjIy
KQorKysga3N2ZzIvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY3LDE5ICs2NywxOSBAQAogICAgIHJldHVybiAwLjsKIH0KIAotU1ZHUG9pbnQgKlNWR1Rl
eHRDb250ZW50RWxlbWVudDo6Z2V0U3RhcnRQb3NpdGlvbk9mQ2hhcih1bnNpZ25lZCBsb25nIGNo
YXJudW0pIGNvbnN0CitGbG9hdFBvaW50IFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0U3RhcnRQ
b3NpdGlvbk9mQ2hhcih1bnNpZ25lZCBsb25nIGNoYXJudW0pIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IDA7CisgICAgcmV0dXJuIEZsb2F0UG9pbnQoKTsKIH0KIAotU1ZHUG9pbnQgKlNWR1RleHRDb250
ZW50RWxlbWVudDo6Z2V0RW5kUG9zaXRpb25PZkNoYXIodW5zaWduZWQgbG9uZyBjaGFybnVtKSBj
b25zdAorRmxvYXRQb2ludCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldEVuZFBvc2l0aW9uT2ZD
aGFyKHVuc2lnbmVkIGxvbmcgY2hhcm51bSkgY29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAgICBy
ZXR1cm4gRmxvYXRQb2ludCgpOwogfQogCi1TVkdSZWN0ICpTVkdUZXh0Q29udGVudEVsZW1lbnQ6
OmdldEV4dGVudE9mQ2hhcih1bnNpZ25lZCBsb25nIGNoYXJudW0pIGNvbnN0CitGbG9hdFJlY3Qg
U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRFeHRlbnRPZkNoYXIodW5zaWduZWQgbG9uZyBjaGFy
bnVtKSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBGbG9hdFJlY3QoKTsKIH0K
IAogZmxvYXQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRSb3RhdGlvbk9mQ2hhcih1bnNpZ25l
ZCBsb25nIGNoYXJudW0pIGNvbnN0CkBAIC04Nyw3ICs4Nyw3IEBACiAgICAgcmV0dXJuIDAuOwog
fQogCi1sb25nIFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Q2hhck51bUF0UG9zaXRpb24oU1ZH
UG9pbnQgKnBvaW50KSBjb25zdAorbG9uZyBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJO
dW1BdFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KSBjb25zdAogewogICAgIHJldHVy
biAwOwogfQpAQCAtMTAyLDkgKzEwMiwxMiBAQAogICAgIC8vICAgIHgoKS0+YmFzZVZhbCgpLT5z
ZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmltcGwoKSk7CiAgICAgLy9lbHNlCiAgICAgewotICAgICAg
ICBpZihTVkdUZXN0czo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKLSAgICAg
ICAgaWYoU1ZHTGFuZ1NwYWNlOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwot
ICAgICAgICBpZihTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZShhdHRyKSkgcmV0dXJuOworICAgICAgICBpZiAoU1ZHVGVzdHM6OnBhcnNlTWFwcGVkQXR0
cmlidXRlKGF0dHIpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoU1ZHTGFuZ1Nw
YWNlOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgaWYgKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlTWFwcGVkQXR0cmli
dXRlKGF0dHIpKQorICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIFNWR1N0eWxlZEVsZW1l
bnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOwogICAgIH0KSW5kZXg6IGtzdmcyL3N2Zy9T
VkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcy
L3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oCShyZXZpc2lvbiAxNDYy
MikKKysrIGtzdmcyL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiAgICAgY2xhc3MgU1ZHQ29tcG9uZW50VHJh
bnNmZXJGdW5jdGlvbkVsZW1lbnQgOiBwdWJsaWMgU1ZHRWxlbWVudAogICAgIHsKICAgICBwdWJs
aWM6Ci0gICAgICAgIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpOworICAgICAgICBTVkdDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
KTsKICAgICAgICAgdmlydHVhbCB+U1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQo
KTsKIAogICAgICAgICAvLyAnU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQnIGZ1
bmN0aW9ucwpJbmRleDoga3N2ZzIvc3ZnL1NWR0FFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2
ZzIvc3ZnL1NWR0FFbGVtZW50LmgJKHJldmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR0FF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAogICAgIHsK
ICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0FFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50ICpkb2MpOworICAgICAgICBTVkdBRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHQUVsZW1lbnQoKTsKIAog
ICAgICAgICAvLyAnU1ZHQUVsZW1lbnQnIGZ1bmN0aW9ucwpJbmRleDoga3N2ZzIvc3ZnL1NWR0Zv
cmVpZ25PYmplY3RFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0ZvcmVpZ25P
YmplY3RFbGVtZW50LmgJKHJldmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR0ZvcmVpZ25P
YmplY3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1VSSVJlZmVyZW5jZQogICAgIHsKICAg
ICBwdWJsaWM6Ci0gICAgICAgIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpOworICAgICAgICBTVkdGb3JlaWduT2JqZWN0
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVh
bCB+U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQoKTsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQpJbmRl
eDoga3N2ZzIvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcv
U1ZHTWFya2VyRWxlbWVudC5oCShyZXZpc2lvbiAxNDYyMikKKysrIGtzdmcyL3N2Zy9TVkdNYXJr
ZXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdGaXRUb1ZpZXdCb3gKICAgICB7CiAgICAg
cHVibGljOgotICAgICAgICBTVkdNYXJrZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50ICpkb2MpOworICAgICAgICBTVkdNYXJrZXJFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdNYXJrZXJFbGVt
ZW50KCk7CiAKICAgICAgICAgLy8gJ1NWR01hcmtlckVsZW1lbnQnIGZ1bmN0aW9ucwpJbmRleDog
a3N2ZzIvc3ZnL1NWR1BvbHlFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1Bv
bHlFbGVtZW50LmgJKHJldmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR1BvbHlFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVibGljIFNWR1BvbHlQYXJzZXIKICAgICB7CiAgICAgcHVibGljOgotICAg
ICAgICBTVkdQb2x5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCAqZG9jKTsKKyAgICAgICAgU1ZHUG9seUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR1BvbHlFbGVtZW50KCk7CiAgICAgICAgIAog
ICAgICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjpp
c1ZhbGlkKCk7IH0KSW5kZXg6IGtzdmcyL3N2Zy9TVkdVc2VFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga3N2ZzIvc3ZnL1NWR1VzZUVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9z
dmcvU1ZHVXNlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBACiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVVJJUmVmZXJlbmNlCiAgICAgewog
ICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHVXNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCAqZG9jKTsKKyAgICAgICAgU1ZHVXNlRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHVXNlRWxlbWVudCgp
OwogICAgICAgICAKICAgICAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVy
biBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CkluZGV4OiBrc3ZnMi9zdmcvU1ZHTGVuZ3RoLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0xlbmd0aC5oCShyZXZpc2lvbiAxNDYyMikKKysrIGtz
dmcyL3N2Zy9TVkdMZW5ndGguaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsMjAgQEAKICAg
ICAgICAgU1ZHTGVuZ3RoKGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQsIExlbmd0aE1v
ZGUgbW9kZSA9IExNX1VOS05PV04sIGNvbnN0IFNWR0VsZW1lbnQgKnZpZXdwb3J0ID0gMCk7CiAg
ICAgICAgIHZpcnR1YWwgflNWR0xlbmd0aCgpOwogCisgICAgICAgIGVudW0gU1ZHTGVuZ3RoVHlw
ZSB7CisgICAgICAgICAgICBTVkdfTEVOR1RIVFlQRV9VTktOT1dOICAgICAgICAgID0gMCwKKyAg
ICAgICAgICAgIFNWR19MRU5HVEhUWVBFX05VTUJFUiAgICAgICAgICAgPSAxLAorICAgICAgICAg
ICAgU1ZHX0xFTkdUSFRZUEVfUEVSQ0VOVEFHRSAgICAgICA9IDIsCisgICAgICAgICAgICBTVkdf
TEVOR1RIVFlQRV9FTVMgICAgICAgICAgICAgID0gMywKKyAgICAgICAgICAgIFNWR19MRU5HVEhU
WVBFX0VYUyAgICAgICAgICAgICAgPSA0LAorICAgICAgICAgICAgU1ZHX0xFTkdUSFRZUEVfUFgg
ICAgICAgICAgICAgICA9IDUsCisgICAgICAgICAgICBTVkdfTEVOR1RIVFlQRV9DTSAgICAgICAg
ICAgICAgID0gNiwKKyAgICAgICAgICAgIFNWR19MRU5HVEhUWVBFX01NICAgICAgICAgICAgICAg
PSA3LAorICAgICAgICAgICAgU1ZHX0xFTkdUSFRZUEVfSU4gICAgICAgICAgICAgICA9IDgsCisg
ICAgICAgICAgICBTVkdfTEVOR1RIVFlQRV9QVCAgICAgICAgICAgICAgID0gOSwKKyAgICAgICAg
ICAgIFNWR19MRU5HVEhUWVBFX1BDICAgICAgICAgICAgICAgPSAxMAorICAgICAgICB9OworCiAg
ICAgICAgIC8vICdTVkdMZW5ndGgnIGZ1bmN0aW9ucwogICAgICAgICB1bnNpZ25lZCBzaG9ydCB1
bml0VHlwZSgpIGNvbnN0OwogCkBAIC01Nyw3ICs3MSw3IEBACiAKICAgICAgICAgLy8gSGVscGVy
cwogICAgICAgICBib29sIGJib3hSZWxhdGl2ZSgpIGNvbnN0OwotICAgICAgICB2b2lkIHNldEJi
b3hSZWxhdGl2ZShib29sIHJlbGF0aXZlKTsKKyAgICAgICAgdm9pZCBzZXRCYm94UmVsYXRpdmUo
Ym9vbCk7CiAKICAgICAgICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCgpIGNvbnN0
OwogICAgICAgICB2b2lkIHNldENvbnRleHQoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4
dCk7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNDYyMikKKysr
IGtzdmcyL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzk2
LDcgKzM5Niw3IEBACiAKIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6Y2xvc2VSZW5kZXJlcigp
CiB7Ci0gICAgZG9jdW1lbnQoKS0+YWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT50aW1lU2NoZWR1bGVy
KCktPmFkZFRpbWVyKHRoaXMsIGxyb3VuZChnZXRTdGFydFRpbWUoKSkpOworICAgIG93bmVyU1ZH
RWxlbWVudCgpLT50aW1lU2NoZWR1bGVyKCktPmFkZFRpbWVyKHRoaXMsIGxyb3VuZChnZXRTdGFy
dFRpbWUoKSkpOwogICAgIFNWR0VsZW1lbnQ6OmNsb3NlUmVuZGVyZXIoKTsKIH0KIApJbmRleDog
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9z
dmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oCShyZXZpc2lvbiAxNDYyMikKKysrIGtzdmcyL3N2
Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcg
QEAKICAgICBjbGFzcyBTVkdBbmltYXRlQ29sb3JFbGVtZW50IDogcHVibGljIFNWR0FuaW1hdGlv
bkVsZW1lbnQKICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdBbmltYXRlQ29sb3JFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpOworICAgICAg
ICBTVkdBbmltYXRlQ29sb3JFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OwogICAgICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlQ29sb3JFbGVtZW50KCk7CiAKICAgICAgICAg
dmlydHVhbCB2b2lkIGhhbmRsZVRpbWVyRXZlbnQoZG91YmxlIHRpbWVQZXJjZW50YWdlKTsKQEAg
LTUyLDcgKzUyLDkgQEAKICAgICAgICAgUmVmUHRyPFNWR0NvbG9yPiBtX2Zyb21Db2xvcjsKIAog
ICAgICAgICBpbnQgbV9jdXJyZW50SXRlbTsKLSAgICAgICAgaW50IG1fcmVkRGlmZiwgbV9ncmVl
bkRpZmYsIG1fYmx1ZURpZmY7CisgICAgICAgIGludCBtX3JlZERpZmY7CisgICAgICAgIGludCBt
X2dyZWVuRGlmZjsKKyAgICAgICAgaW50IG1fYmx1ZURpZmY7CiAgICAgfTsKIH07CiAKSW5kZXg6
IGtzdmcyL3N2Zy9TVkdEZXNjRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdE
ZXNjRWxlbWVudC5oCShyZXZpc2lvbiAxNDYyMikKKysrIGtzdmcyL3N2Zy9TVkdEZXNjRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVibGljIFNWR0xhbmdTcGFjZQogICAgIHsKICAgICBwdWJsaWM6Ci0gICAg
ICAgIFNWR0Rlc2NFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
ICpkb2MpOworICAgICAgICBTVkdEZXNjRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRGVzY0VsZW1lbnQoKTsKIAogICAgICAgICBT
dHJpbmdJbXBsICpkZXNjcmlwdGlvbigpIGNvbnN0OwpJbmRleDoga3N2ZzIvc3ZnL1NWR0ZFTWVy
Z2VOb2RlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdGRU1lcmdlTm9kZUVs
ZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKICAgICBjbGFzcyBTVkdGRU1l
cmdlTm9kZUVsZW1lbnQgOiBwdWJsaWMgU1ZHRWxlbWVudAogICAgIHsKICAgICBwdWJsaWM6Ci0g
ICAgICAgIFNWR0ZFTWVyZ2VOb2RlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCAqZG9jKTsKKyAgICAgICAgU1ZHRkVNZXJnZU5vZGVFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdGRU1lcmdlTm9k
ZUVsZW1lbnQoKTsKIAogICAgICAgICAvLyBEZXJpdmVkIGZyb206ICdFbGVtZW50JwpJbmRleDog
a3N2ZzIvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a3N2ZzIvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgJKHJldmlzaW9uIDE0NjIy
KQorKysga3N2ZzIvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM0LDcgKzM0LDcgQEAKICAgICBjbGFzcyBTVkdGRUNvbXBvbmVudFRyYW5zZmVy
RWxlbWVudCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMKICAg
ICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCAqZG9jKTsKKyAgICAgICAgU1ZH
RkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50KCk7CiAK
ICAgICAgICAgLy8gJ1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50JyBmdW5jdGlvbnMKSW5k
ZXg6IGtzdmcyL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3Zn
L1NWR0ZpbHRlckVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHRmls
dGVyRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBACiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0ZpbHRlckVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR0ZpbHRlckVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwg
flNWR0ZpbHRlckVsZW1lbnQoKTsKIAogICAgICAgICB2aXJ0dWFsIEtDYW52YXNGaWx0ZXIgKmNh
bnZhc1Jlc291cmNlKCk7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcy5oCShyZXZpc2lvbiAxNDYyMikKKysrIGtzdmcyL3N2Zy9TVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzQs
NyArMzQsNyBAQAogICAgIGNsYXNzIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cyA6IHB1YmxpYyBTVkdTdHlsZWRFbGVtZW50CiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAg
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50ICpkb2MpOworICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXMoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAg
IHZpcnR1YWwgflNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcygpOwogICAgICAg
ICAKICAgICAgICAgdmlydHVhbCBib29sIGlzRmlsdGVyRWZmZWN0KCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQpJbmRleDoga3N2ZzIvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtzdmcyL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBr
c3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQw
LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIEtDYW52YXNS
ZXNvdXJjZUxpc3RlbmVyCiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHR3JhZGllbnRF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpOworICAg
ICAgICBTVkdHcmFkaWVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
CiAgICAgICAgIHZpcnR1YWwgflNWR0dyYWRpZW50RWxlbWVudCgpOwogCiAgICAgICAgIC8vICdT
VkdHcmFkaWVudEVsZW1lbnQnIGZ1bmN0aW9ucwpJbmRleDoga3N2ZzIvc3ZnL1NWR0VsbGlwc2VF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgJKHJl
dmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM4LDcgKzM4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAogICAgIHsKICAgICBwdWJsaWM6
Ci0gICAgICAgIFNWR0VsbGlwc2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50ICpkb2MpOworICAgICAgICBTVkdFbGxpcHNlRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRWxsaXBzZUVsZW1lbnQo
KTsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1
cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQpJbmRleDoga3N2ZzIvc3ZnL1NWR0VsZW1lbnQuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdFbGVtZW50LmlkbAkocmV2aXNpb24gMTQ2MTkp
CisrKyBrc3ZnMi9zdmcvU1ZHRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTEgKzEs
MzYgQEAKLW1vZHVsZSBzdmcKLXsKLSAgaW50ZXJmYWNlIFNWR0VsZW1lbnQgOiBjb3JlOjpFbGVt
ZW50IHsKLS8vIE5PVEU6IHVzaW5nIGdldElkIGJlY2F1c2UgaWQgYWxyZWFkeSBpbiB1c2UgaW4g
Tm9kZQotICAgIGF0dHJpYnV0ZSBjb3JlOjpET01TdHJpbmcgZ2V0SWQ7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCi0gICAgYXR0cmli
dXRlIGNvcmU6OkRPTVN0cmluZyB4bWxiYXNlOwotICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZworLyoKKyAqIENvcHlyaWdodChDKSAyMDA0
LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgorICogICAgICAgICAg
ICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodChDKSAy
MDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCittb2R1bGUgc3ZnIHsKKyAgICBpbnRlcmZh
Y2UgW0dlbmVyYXRlTmF0aXZlQ29udmVydGVyXSBTVkdFbGVtZW50IDogY29yZTo6RWxlbWVudCB7
CisgICAgICAgIGF0dHJpYnV0ZSBjb3JlOjpET01TdHJpbmcgaWQKKyAgICAgICAgICAgIHNldHRl
ciByYWlzZXMgRE9NRXhjZXB0aW9uOworICAgICAgICBhdHRyaWJ1dGUgY29yZTo6RE9NU3RyaW5n
IHhtbGJhc2UKKyAgICAgICAgICAgIHNldHRlciByYWlzZXMgRE9NRXhjZXB0aW9uOwogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdTVkdFbGVtZW50IG93bmVyU1ZHRWxlbWVudDsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgU1ZHRWxlbWVudCB2aWV3cG9ydEVsZW1lbnQ7CiAgIH07CkluZGV4OiBr
c3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHTG9j
YXRhYmxlLmNwcAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzUsMjEgKzc1LDE2IEBACiAKIC8vIFNwZWM6CiAvLyBodHRw
Oi8vd3d3LnczLm9yZy9UUi8yMDA1L1dELVNWR01vYmlsZTEyLTIwMDUwNDEzL3N2Z3Vkb20uaHRt
bCNzdmc6OlNWR0xvY2F0YWJsZQotU1ZHUmVjdCAqU1ZHTG9jYXRhYmxlOjpnZXRCQm94KGNvbnN0
IFNWR1N0eWxlZEVsZW1lbnQgKmUpCitGbG9hdFJlY3QgU1ZHTG9jYXRhYmxlOjpnZXRCQm94KGNv
bnN0IFNWR1N0eWxlZEVsZW1lbnQgKmUpCiB7Ci0gICAgU1ZHUmVjdCAqcmVjdCA9IDA7CisgICAg
RmxvYXRSZWN0IGJib3hSZWN0OwogCi0gICAgaWYoZSAmJiBlLT5yZW5kZXJlcigpKQotICAgIHsK
LSAgICAgICAgRmxvYXRSZWN0IGJib3hSZWN0ID0gZS0+cmVuZGVyZXIoKS0+cmVsYXRpdmVCQm94
KGZhbHNlKTsKLSAgICAgICAgcmVjdCA9IG5ldyBTVkdSZWN0KDApOwotICAgICAgICByZWN0LT5z
ZXRYKGJib3hSZWN0LngoKSk7Ci0gICAgICAgIHJlY3QtPnNldFkoYmJveFJlY3QueSgpKTsKLSAg
ICAgICAgcmVjdC0+c2V0V2lkdGgoYmJveFJlY3Qud2lkdGgoKSAtIDEpOwotICAgICAgICByZWN0
LT5zZXRIZWlnaHQoYmJveFJlY3QuaGVpZ2h0KCkgLSAxKTsKKyAgICBpZiAoZSAmJiBlLT5yZW5k
ZXJlcigpKSB7CisgICAgICAgIGJib3hSZWN0ID0gZS0+cmVuZGVyZXIoKS0+cmVsYXRpdmVCQm94
KGZhbHNlKTsKKyAgICAgICAgYmJveFJlY3Quc2V0U2l6ZShiYm94UmVjdC5zaXplKCkgLSBGbG9h
dFNpemUoMSwgMSkpOyAvLyBGSVhNRTogV2h5IC0xIGhlcmU/CiAgICAgfQogCi0gICAgcmV0dXJu
IHJlY3Q7CisgICAgcmV0dXJuIGJib3hSZWN0OwogfQogCiBTVkdNYXRyaXggKlNWR0xvY2F0YWJs
ZTo6Z2V0Q1RNKGNvbnN0IFNWR0VsZW1lbnQgKmVsZW1lbnQpCkluZGV4OiBrc3ZnMi9zdmcvU1ZH
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0VsZW1lbnQuY3BwCShyZXZp
c2lvbiAxNDYyMikKKysrIGtzdmcyL3N2Zy9TVkdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjQsMjQgKzI0LDI3IEBACiAjaWYgU1ZHX1NVUFBPUlQKICNpbmNsdWRlICJTVkdFbGVtZW50
LmgiCiAKKyNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiU1ZHRE9N
SW1wbGVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCIKICNp
bmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnQuaCIKLSNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJYTUxOYW1lcy5oIgogI2luY2x1ZGUgImtzdmcuaCIK
LSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2luY2x1ZGUgIkF0dHIuaCIKLSNpbmNsdWRl
ICJTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogdXNpbmcgbmFtZXNwYWNlIEV2ZW50TmFtZXM7CiAKLVNW
R0VsZW1lbnQ6OlNWR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQgKmRvYykgOiBTdHlsZWRFbGVtZW50KHRhZ05hbWUsIGRvYyksIG1fY2xvc2VkKGZhbHNlKQor
U1ZHRWxlbWVudDo6U1ZHRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCogZG9jKQorICAgIDogU3R5bGVkRWxlbWVudCh0YWdOYW1lLCBkb2MpCisgICAgLCBtX2Ns
b3NlZChmYWxzZSkKIHsKIH0KIApAQCAtNTcsMTEgKzYwLDMwIEBACiAgICAgcmV0dXJuIERPTUlt
cGxlbWVudGF0aW9uOjppbnN0YW5jZSgpLT5oYXNGZWF0dXJlKGZlYXR1cmUsIHZlcnNpb24pOwog
fQogCitTdHJpbmcgU1ZHRWxlbWVudDo6aWQoKSBjb25zdAoreworICAgIHJldHVybiBnZXRBdHRy
aWJ1dGUoaWRBdHRyKTsKK30KKwordm9pZCBTVkdFbGVtZW50OjpzZXRJZChjb25zdCBTdHJpbmcm
IHZhbHVlKQoreworICAgIHNldEF0dHJpYnV0ZShpZEF0dHIsIHZhbHVlKTsKK30KKworU3RyaW5n
IFNWR0VsZW1lbnQ6OnhtbGJhc2UoKSBjb25zdAoreworICAgIHJldHVybiBnZXRBdHRyaWJ1dGUo
WE1MTmFtZXM6OmJhc2VBdHRyKTsKK30KKwordm9pZCBTVkdFbGVtZW50OjpzZXRYbWxiYXNlKGNv
bnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgc2V0QXR0cmlidXRlKFhNTE5hbWVzOjpiYXNlQXR0
ciwgdmFsdWUpOworfQorCiBTVkdTVkdFbGVtZW50ICpTVkdFbGVtZW50Ojpvd25lclNWR0VsZW1l
bnQoKSBjb25zdAogewogICAgIE5vZGUgKm4gPSBwYXJlbnROb2RlKCk7Ci0gICAgd2hpbGUobikK
LSAgICB7CisgICAgd2hpbGUobikgewogICAgICAgICBpZihuLT5ub2RlVHlwZSgpID09IEVMRU1F
TlRfTk9ERSAmJiBuLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpzdmdUYWcpKQogICAgICAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFNWR1NWR0VsZW1lbnQgKj4obik7CiAKSW5kZXg6IGtzdmcyL3N2
Zy9TVkdGRUxpZ2h0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdGRUxpZ2h0
RWxlbWVudC5oCShyZXZpc2lvbiAxNDYyMikKKysrIGtzdmcyL3N2Zy9TVkdGRUxpZ2h0RWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiAgICAgY2xhc3MgU1ZHRkVMaWdo
dEVsZW1lbnQgOiBwdWJsaWMgU1ZHRWxlbWVudAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAg
IFNWR0ZFTGlnaHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
ICpkb2MpOworICAgICAgICBTVkdGRUxpZ2h0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRkVMaWdodEVsZW1lbnQoKTsKICAgICAg
ICAgCiAgICAgICAgIC8vICdTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCcgZnVu
Y3Rpb25zCkluZGV4OiBrc3ZnMi9zdmcvU1ZHQ29sb3IuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcy
L3N2Zy9TVkdDb2xvci5pZGwJKHJldmlzaW9uIDE0NjE5KQorKysga3N2ZzIvc3ZnL1NWR0NvbG9y
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNCArMSw0MiBAQAotbW9kdWxlIHN2ZwoteworLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hA
a2RlLm9yZz4KKyAqICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUu
b3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
K21vZHVsZSBzdmcgewogICBpbnRlcmZhY2UgU1ZHQ29sb3IgOiBjc3M6OkNTU1ZhbHVlIHsgCiAg
ICAgLy8gQ29sb3IgVHlwZXMKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQ09MT1JUWVBF
X1VOS05PV04gICAgICAgICAgID0gMDsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQ09M
T1JUWVBFX1JHQkNPTE9SICAgICAgICAgID0gMTsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBT
VkdfQ09MT1JUWVBFX1JHQkNPTE9SX0lDQ0NPTE9SID0gMjsKICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBTVkdfQ09MT1JUWVBFX0NVUlJFTlRDT0xPUiAgICAgID0gMzsKKyAgICAgICAgCiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNvbG9yVHlwZTsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgY3NzOjpSR0JDb2xvciAgcmdiQ29sb3I7CiAgICAgLy9yZWFkb25seSBhdHRy
aWJ1dGUgU1ZHSUNDQ29sb3IgICAgaWNjQ29sb3I7CisgICAgICAgIAogICAgIHZvaWQgICAgICAg
IHNldFJHQkNvbG9yICggaW4gY29yZTo6RE9NU3RyaW5nIHJnYkNvbG9yICkKICAgICAgICAgICAg
ICAgICAgICAgcmFpc2VzKCBTVkdFeGNlcHRpb24gKTsKICAgICB2b2lkICAgICAgICBzZXRSR0JD
b2xvcklDQ0NvbG9yICggaW4gY29yZTo6RE9NU3RyaW5nIHJnYkNvbG9yLCBpbiBjb3JlOjpET01T
dHJpbmcgaWNjQ29sb3IgKQpJbmRleDoga3N2ZzIvc3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oCShyZXZp
c2lvbiAxNDYyMikKKysrIGtzdmcyL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKICAgICBjbGFzcyBTVkdGRVBvaW50TGlnaHRFbGVt
ZW50IDogcHVibGljIFNWR0ZFTGlnaHRFbGVtZW50CiAgICAgewogICAgICAgICBwdWJsaWM6Ci0g
ICAgICAgIFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR0ZFUG9pbnRM
aWdodEVsZW1lbnQoKTsKICAgICAgICAgdmlydHVhbCBLQ0xpZ2h0U291cmNlICpsaWdodFNvdXJj
ZSgpIGNvbnN0OwogICAgIH07CkluZGV4OiBrc3ZnMi9zdmcvU1ZHUmVjdEVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHUmVjdEVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIpCisr
KyBrc3ZnMi9zdmcvU1ZHUmVjdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgs
NyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkCiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHUmVjdEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAg
IFNWR1JlY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAg
ICB2aXJ0dWFsIH5TVkdSZWN0RWxlbWVudCgpOwogICAgICAgICAKICAgICAgICAgdmlydHVhbCBi
b29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CkluZGV4
OiBrc3ZnMi9zdmcvU1ZHQ29sb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdDb2xv
ci5jcHAJKHJldmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR0NvbG9yLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjUsMjYgKzI1LDI4IEBACiAjaW5jbHVkZSAiU1ZHQ29sb3IuaCIKIAogI2lu
Y2x1ZGUgIkRlcHJlY2F0ZWRTdHJpbmdMaXN0LmgiCi0jaW5jbHVkZSAiUkdCQ29sb3IuaCIKICNp
bmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgImtzdmcuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1TVkdDb2xvcjo6U1ZHQ29sb3IoKSA6IENTU1ZhbHVlKCkKK1NW
R0NvbG9yOjpTVkdDb2xvcigpCisgICAgOiBDU1NWYWx1ZSgpCisgICAgLCBtX2NvbG9yVHlwZShT
VkdfQ09MT1JUWVBFX1VOS05PV04pCiB7Ci0gICAgbV9jb2xvclR5cGUgPSBTVkdfQ09MT1JUWVBF
X1VOS05PV047CiB9CiAKLVNWR0NvbG9yOjpTVkdDb2xvcihTdHJpbmdJbXBsKiByZ2JDb2xvcikg
OiBDU1NWYWx1ZSgpCitTVkdDb2xvcjo6U1ZHQ29sb3IoY29uc3QgU3RyaW5nJiByZ2JDb2xvcikK
KyAgICA6IENTU1ZhbHVlKCkKKyAgICAsIG1fY29sb3JUeXBlKFNWR19DT0xPUlRZUEVfUkdCQ09M
T1IpCiB7Ci0gICAgbV9jb2xvclR5cGUgPSBTVkdfQ09MT1JUWVBFX1JHQkNPTE9SOwogICAgIHNl
dFJHQkNvbG9yKHJnYkNvbG9yKTsKIH0KIAotU1ZHQ29sb3I6OlNWR0NvbG9yKHVuc2lnbmVkIHNo
b3J0IGNvbG9yVHlwZSkgOiBDU1NWYWx1ZSgpCitTVkdDb2xvcjo6U1ZHQ29sb3IodW5zaWduZWQg
c2hvcnQgY29sb3JUeXBlKQorICAgIDogQ1NTVmFsdWUoKQorICAgICwgbV9jb2xvclR5cGUoY29s
b3JUeXBlKQogewotICAgIG1fY29sb3JUeXBlID0gY29sb3JUeXBlOwogfQogCiBTVkdDb2xvcjo6
flNWR0NvbG9yKCkKQEAgLTU2LDkgKzU4LDkgQEAKICAgICByZXR1cm4gbV9jb2xvclR5cGU7CiB9
CiAKLVJHQkNvbG9yICpTVkdDb2xvcjo6cmdiQ29sb3IoKSBjb25zdAordW5zaWduZWQgU1ZHQ29s
b3I6OnJnYkNvbG9yKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbmV3IFJHQkNvbG9yKG1fcUNvbG9y
KTsKKyAgICByZXR1cm4gbV9jb2xvci5yZ2IoKTsKIH0KIAogI2lmIDAKQEAgLTIxNSwxMiArMjE3
LDE0IEBACiB9OwogI2VuZGlmCiAKLXZvaWQgU1ZHQ29sb3I6OnNldFJHQkNvbG9yKFN0cmluZ0lt
cGwqIHJnYkNvbG9yKQordm9pZCBTVkdDb2xvcjo6c2V0UkdCQ29sb3IoY29uc3QgU3RyaW5nJiBy
Z2JDb2xvciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgbV9yZ2JDb2xvciA9IHJnYkNvbG9y
OwogCi0gICAgaWYgKG1fcmdiQ29sb3IuaXNOdWxsKCkpCisgICAgaWYgKG1fcmdiQ29sb3IuaXNO
dWxsKCkpIHsKKyAgICAgICAgZWMgPSBTVkdfSU5WQUxJRF9WQUxVRV9FUlI7CiAgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKICAgICBEZXByZWNhdGVkU3RyaW5nIHBhcnNlID0gbV9yZ2JDb2xvci5k
ZXByZWNhdGVkU3RyaW5nKCkuc3RyaXBXaGl0ZVNwYWNlKCk7CiAgICAgaWYgKHBhcnNlLnN0YXJ0
c1dpdGgoInJnYigiKSkgewpAQCAtMjMxLDM3ICsyMzUsMzggQEAKICAgICAKICAgICAgICAgaWYg
KHIuY29udGFpbnMoIiUiKSkgewogICAgICAgICAgICAgciA9IHIubGVmdChyLmxlbmd0aCgpIC0g
MSk7Ci0gICAgICAgICAgICByID0gRGVwcmVjYXRlZFN0cmluZzo6bnVtYmVyKGludCgoZG91Ymxl
KDI1NSAqIHIudG9Eb3VibGUoKSkgLyAxMDAuMCkpKTsKKyAgICAgICAgICAgIHIgPSBEZXByZWNh
dGVkU3RyaW5nOjpudW1iZXIoaW50KCgoMjU1LjAgKiByLnRvRG91YmxlKCkpIC8gMTAwLjApKSk7
CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoZy5jb250YWlucygiJSIpKSB7CiAgICAgICAgICAg
ICBnID0gZy5sZWZ0KGcubGVuZ3RoKCkgLSAxKTsKLSAgICAgICAgICAgIGcgPSBEZXByZWNhdGVk
U3RyaW5nOjpudW1iZXIoaW50KChkb3VibGUoMjU1ICogZy50b0RvdWJsZSgpKSAvIDEwMC4wKSkp
OworICAgICAgICAgICAgZyA9IERlcHJlY2F0ZWRTdHJpbmc6Om51bWJlcihpbnQoKCgyNTUuMCAq
IGcudG9Eb3VibGUoKSkgLyAxMDAuMCkpKTsKICAgICAgICAgfQogICAgIAogICAgICAgICBpZiAo
Yi5jb250YWlucygiJSIpKSB7CiAgICAgICAgICAgICBiID0gYi5sZWZ0KGIubGVuZ3RoKCkgLSAx
KTsKLSAgICAgICAgICAgIGIgPSBEZXByZWNhdGVkU3RyaW5nOjpudW1iZXIoaW50KChkb3VibGUo
MjU1ICogYi50b0RvdWJsZSgpKSAvIDEwMC4wKSkpOworICAgICAgICAgICAgYiA9IERlcHJlY2F0
ZWRTdHJpbmc6Om51bWJlcihpbnQoKCgyNTUuMCAqIGIudG9Eb3VibGUoKSkgLyAxMDAuMCkpKTsK
ICAgICAgICAgfQogCi0gICAgICAgIG1fcUNvbG9yID0gQ29sb3Ioci50b0ludCgpLCBnLnRvSW50
KCksIGIudG9JbnQoKSk7CisgICAgICAgIG1fY29sb3IgPSBDb2xvcihyLnRvSW50KCksIGcudG9J
bnQoKSwgYi50b0ludCgpKTsKICAgICB9IGVsc2UgewogICAgICAgICBTdHJpbmcgY29sb3JOYW1l
ID0gbV9yZ2JDb2xvci5sb3dlcigpOwotICAgICAgICBEZXByZWNhdGVkU3RyaW5nIG5hbWUgPSBj
b2xvck5hbWUuZGVwcmVjYXRlZFN0cmluZygpOwogLy8gICAgICAgIGludCBjb2wgPSBXZWJDb3Jl
OjpnZXRWYWx1ZUlEKG5hbWUuYXNjaWkoKSwgbmFtZS5sZW5ndGgoKSk7CiAvLyAgICAgICAgaWYg
KGNvbCA9PSAwKQotICAgICAgICAgICAgbV9xQ29sb3IgPSBDb2xvcihuYW1lKTsKKyAgICAgICAg
ICAgIG1fY29sb3IgPSBDb2xvcihjb2xvck5hbWUpOwogLy8gICAgICAgIGVsc2UKLS8vICAgICAg
ICAgICAgbV9xQ29sb3IgPSBjbWFwW2NvbCAtIFNWR0NTU19WQUxfQUxJQ0VCTFVFXTsKKy8vICAg
ICAgICAgICAgbV9jb2xvciA9IGNtYXBbY29sIC0gU1ZHQ1NTX1ZBTF9BTElDRUJMVUVdOwogICAg
IH0KKyAgICBpZiAoIW1fY29sb3IuaXNWYWxpZCgpKQorICAgICAgICBlYyA9IFNWR19JTlZBTElE
X1ZBTFVFX0VSUjsKIH0KIAotdm9pZCBTVkdDb2xvcjo6c2V0UkdCQ29sb3JJQ0NDb2xvcihTdHJp
bmdJbXBsKiAvKiByZ2JDb2xvciAqLywgU3RyaW5nSW1wbCogLyogaWNjQ29sb3IgKi8pCit2b2lk
IFNWR0NvbG9yOjpzZXRSR0JDb2xvcklDQ0NvbG9yKGNvbnN0IFN0cmluZyYgLyogcmdiQ29sb3Ig
Ki8sIGNvbnN0IFN0cmluZyYgLyogaWNjQ29sb3IgKi8sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewog
ICAgIC8vIFRPRE86IGltcGxlbWVudCBtZSEKIH0KIAotdm9pZCBTVkdDb2xvcjo6c2V0Q29sb3Io
dW5zaWduZWQgc2hvcnQgY29sb3JUeXBlLCBTdHJpbmdJbXBsKiAvKiByZ2JDb2xvciAqLyAsIFN0
cmluZ0ltcGwqIC8qIGljY0NvbG9yICovKQordm9pZCBTVkdDb2xvcjo6c2V0Q29sb3IodW5zaWdu
ZWQgc2hvcnQgY29sb3JUeXBlLCBjb25zdCBTdHJpbmcmIC8qIHJnYkNvbG9yICovICwgY29uc3Qg
U3RyaW5nJiAvKiBpY2NDb2xvciAqLywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gVE9E
TzogaW1wbGVtZW50IG1lIQogICAgIG1fY29sb3JUeXBlID0gY29sb3JUeXBlOwpAQCAtMjc3LDcg
KzI4Miw3IEBACiAKIGNvbnN0IENvbG9yJiBTVkdDb2xvcjo6Y29sb3IoKSBjb25zdAogewotICAg
IHJldHVybiBtX3FDb2xvcjsKKyAgICByZXR1cm4gbV9jb2xvcjsKIH0KIAogfQpJbmRleDoga3N2
ZzIvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0ZF
RnVuY0FFbGVtZW50LmgJKHJldmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR0ZFRnVuY0FF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICAgICBjbGFzcyBTVkdG
RUZ1bmNBRWxlbWVudCA6IHB1YmxpYyBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVu
dAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0ZFRnVuY0FFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpOworICAgICAgICBTVkdGRUZ1bmNB
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVh
bCB+U1ZHRkVGdW5jQUVsZW1lbnQoKTsKICAgICB9OwogfTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdG
RVRpbGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQu
aAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHRkVUaWxlRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAgICAgY2xhc3MgU1ZHRkVUaWxlRWxlbWVudCA6
IHB1YmxpYyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMKICAgICB7CiAgICAg
cHVibGljOgotICAgICAgICBTVkdGRVRpbGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50ICpkb2MpOworICAgICAgICBTVkdGRVRpbGVFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdGRVRpbGVFbGVt
ZW50KCk7CiAKICAgICAgICAgLy8gJ1NWR0ZFVGlsZUVsZW1lbnQnIGZ1bmN0aW9ucwpJbmRleDog
a3N2ZzIvc3ZnL1NWR0FuZ2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0FuZ2xlLmgJ
KHJldmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR0FuZ2xlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDkgKzM2LDE3IEBACiAgICAgICAgIFNWR0FuZ2xlKGNvbnN0IFNWR1N0eWxlZEVsZW1l
bnQgKmNvbnRleHQpOwogICAgICAgICB2aXJ0dWFsIH5TVkdBbmdsZSgpOwogCisgICAgICAgIGVu
dW0gU1ZHQW5nbGVUeXBlIHsKKyAgICAgICAgICAgIFNWR19BTkdMRVRZUEVfVU5LTk9XTiAgICAg
ICAgICAgPSAwLAorICAgICAgICAgICAgU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRCAgICAgICA9
IDEsCisgICAgICAgICAgICBTVkdfQU5HTEVUWVBFX0RFRyAgICAgICAgICAgICAgID0gMiwKKyAg
ICAgICAgICAgIFNWR19BTkdMRVRZUEVfUkFEICAgICAgICAgICAgICAgPSAzLAorICAgICAgICAg
ICAgU1ZHX0FOR0xFVFlQRV9HUkFEICAgICAgICAgICAgICA9IDQKKyAgICAgICAgfTsKKwogICAg
ICAgICB1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSgpIGNvbnN0OwogCi0gICAgICAgIHZvaWQgc2V0
VmFsdWUoZmxvYXQgdmFsdWUpOworICAgICAgICB2b2lkIHNldFZhbHVlKGZsb2F0KTsKICAgICAg
ICAgZmxvYXQgdmFsdWUoKSBjb25zdDsgCiAKICAgICAgICAgdm9pZCBzZXRWYWx1ZUluU3BlY2lm
aWVkVW5pdHMoZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKQEAgLTU4LDcgKzY2LDcgQEAK
ICAgICAgICAgc3RhdGljIGRvdWJsZSBzaG9ydGVzdEFyY0Jpc2VjdG9yKGRvdWJsZSBhbmdsZTEs
IGRvdWJsZSBhbmdsZTIpOwogCiAgICAgICAgIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRl
eHQoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRDb250ZXh0KGNvbnN0IFNWR1N0eWxlZEVsZW1l
bnQgKmNvbnRleHQpOworICAgICAgICB2b2lkIHNldENvbnRleHQoY29uc3QgU1ZHU3R5bGVkRWxl
bWVudCopOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdW5zaWduZWQgc2hvcnQgbV91bml0VHlw
ZTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBrc3ZnMi9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmgJKHJldmlzaW9uIDE0NjIyKQorKysg
a3N2ZzIvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwx
MCArMjksNyBAQAogI2luY2x1ZGUgIlNWR0xhbmdTcGFjZS5oIgogI2luY2x1ZGUgIlNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKIAotbmFtZXNwYWNlIFdlYkNvcmUKLXsKLSAgICBjbGFz
cyBTVkdSZWN0OwotICAgIGNsYXNzIFNWR1BvaW50OworbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IGNsYXNzIFNWR0FuaW1hdGVkTGVuZ3RoOwogICAgIGNsYXNzIFNWR0FuaW1hdGVkRW51bWVyYXRp
b247CiAKQEAgLTQyLDcgKzM5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKICAgICB7CiAgICAgcHVi
bGljOgotICAgICAgICBTVkdUZXh0Q29udGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR1RleHRDb250ZW50RWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHVGV4
dENvbnRlbnRFbGVtZW50KCk7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxp
ZCgpIGNvbnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KQEAgLTU0LDE0ICs1MSwx
NCBAQAogICAgICAgICBsb25nIGdldE51bWJlck9mQ2hhcnMoKSBjb25zdDsKICAgICAgICAgZmxv
YXQgZ2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCkgY29uc3Q7CiAgICAgICAgIGZsb2F0IGdldFN1YlN0
cmluZ0xlbmd0aCh1bnNpZ25lZCBsb25nIGNoYXJudW0sIHVuc2lnbmVkIGxvbmcgbmNoYXJzKSBj
b25zdDsKLSAgICAgICAgU1ZHUG9pbnQgKmdldFN0YXJ0UG9zaXRpb25PZkNoYXIodW5zaWduZWQg
bG9uZyBjaGFybnVtKSBjb25zdDsKLSAgICAgICAgU1ZHUG9pbnQgKmdldEVuZFBvc2l0aW9uT2ZD
aGFyKHVuc2lnbmVkIGxvbmcgY2hhcm51bSkgY29uc3Q7Ci0gICAgICAgIFNWR1JlY3QgKmdldEV4
dGVudE9mQ2hhcih1bnNpZ25lZCBsb25nIGNoYXJudW0pIGNvbnN0OworICAgICAgICBGbG9hdFBv
aW50IGdldFN0YXJ0UG9zaXRpb25PZkNoYXIodW5zaWduZWQgbG9uZyBjaGFybnVtKSBjb25zdDsK
KyAgICAgICAgRmxvYXRQb2ludCBnZXRFbmRQb3NpdGlvbk9mQ2hhcih1bnNpZ25lZCBsb25nIGNo
YXJudW0pIGNvbnN0OworICAgICAgICBGbG9hdFJlY3QgZ2V0RXh0ZW50T2ZDaGFyKHVuc2lnbmVk
IGxvbmcgY2hhcm51bSkgY29uc3Q7CiAgICAgICAgIGZsb2F0IGdldFJvdGF0aW9uT2ZDaGFyKHVu
c2lnbmVkIGxvbmcgY2hhcm51bSkgY29uc3Q7Ci0gICAgICAgIGxvbmcgZ2V0Q2hhck51bUF0UG9z
aXRpb24oU1ZHUG9pbnQgKnBvaW50KSBjb25zdDsKKyAgICAgICAgbG9uZyBnZXRDaGFyTnVtQXRQ
b3NpdGlvbihjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7CiAgICAgICAgIHZvaWQgc2VsZWN0U3Vi
U3RyaW5nKHVuc2lnbmVkIGxvbmcgY2hhcm51bSwgdW5zaWduZWQgbG9uZyBuY2hhcnMpIGNvbnN0
OwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRy
aWJ1dGUgKmF0dHIpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUo
TWFwcGVkQXR0cmlidXRlKik7CiAKICAgICBwcml2YXRlOgogICAgICAgICBtdXRhYmxlIFJlZlB0
cjxTVkdBbmltYXRlZExlbmd0aD4gbV90ZXh0TGVuZ3RoOwpJbmRleDoga3N2ZzIvc3ZnL1NWR0lt
YWdlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAko
cmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVibGljIFNWR1VSSVJlZmVyZW5jZQogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0lt
YWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCAqZG9jKTsK
KyAgICAgICAgU1ZHSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OwogICAgICAgICB2aXJ0dWFsIH5TVkdJbWFnZUVsZW1lbnQoKTsKICAgICAgICAgCiAgICAgICAg
IHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQo
KTsgfQpJbmRleDoga3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmgJKHJl
dmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAKICAgICBjbGFzcyBTVkdTdHlsZWRU
cmFuc2Zvcm1hYmxlRWxlbWVudCA6IHB1YmxpYyBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50LCBw
dWJsaWMgU1ZHVHJhbnNmb3JtYWJsZQogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1N0
eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50ICpkb2MpOworICAgICAgICBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHU3R5bGVk
VHJhbnNmb3JtYWJsZUVsZW1lbnQoKTsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgYm9vbCBp
c1N0eWxlZFRyYW5zZm9ybWFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC01OSw3ICs1
OSw3IEBACiAgICAgICAgIHZpcnR1YWwgU1ZHRWxlbWVudCAqbmVhcmVzdFZpZXdwb3J0RWxlbWVu
dCgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIFNWR0VsZW1lbnQgKmZhcnRoZXN0Vmlld3BvcnRF
bGVtZW50KCkgY29uc3Q7CiAKLSAgICAgICAgdmlydHVhbCBTVkdSZWN0ICpnZXRCQm94KCkgY29u
c3Q7CisgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IGdldEJCb3goKSBjb25zdDsKICAgICAgICAg
dmlydHVhbCBTVkdNYXRyaXggKmdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50ICplbGVt
ZW50KSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUo
TWFwcGVkQXR0cmlidXRlICphdHRyKTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdQYXRoRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkocmV2aXNpb24g
MTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdIZWxw
ZXIuaCIKICNpbmNsdWRlICJTVkdSZWN0LmgiCi0jaW5jbHVkZSAiU1ZHUG9pbnQuaCIKICNpbmNs
dWRlICJTVkdTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZ0FyYy5oIgogI2luY2x1
ZGUgIlNWR1BhdGhTZWdMaXN0LmgiCkBAIC03NCwyMCArNzMsMjAgQEAKICAgICByZXR1cm4gMDsK
IH0KIAotU1ZHUG9pbnQgKlNWR1BhdGhFbGVtZW50OjpnZXRQb2ludEF0TGVuZ3RoKGRvdWJsZSAv
KmRpc3RhbmNlKi8pCitGbG9hdFBvaW50IFNWR1BhdGhFbGVtZW50OjpnZXRQb2ludEF0TGVuZ3Ro
KGRvdWJsZSAvKmRpc3RhbmNlKi8pCiB7Ci0gICAgU1ZHUG9pbnQgKnJldCA9IFNWR1NWR0VsZW1l
bnQ6OmNyZWF0ZVNWR1BvaW50KCk7Ci0gICAgLypkb3VibGUgdG90YWxEaXN0YW5jZSA9IGdldFRv
dGFsTGVuZ3RoKCk7CisgICAgLyoKKyAgICBkb3VibGUgdG90YWxEaXN0YW5jZSA9IGdldFRvdGFs
TGVuZ3RoKCk7CiAgICAgVDJQOjpCZXppZXJQYXRoICpwYXRoID0gb3duZXJEb2MoKS0+Y2FudmFz
KCktPnRvQmV6aWVyUGF0aChtX2l0ZW0pOwotICAgIGlmKHBhdGgpCi0gICAgeworICAgIGlmIChw
YXRoKSB7CiAgICAgICAgIFQyUDo6UG9pbnQgcDsKICAgICAgICAgcGF0aC0+cG9pbnRUYW5nZW50
Tm9ybWFsQXQoZGlzdGFuY2UgLyB0b3RhbERpc3RhbmNlLCAmcCk7CiAgICAgICAgIHJldC0+c2V0
WChwLngoKSk7CiAgICAgICAgIHJldC0+c2V0WShwLnkoKSk7Ci0gICAgfSovCisgICAgfQorICAg
ICovCiAKLSAgICByZXR1cm4gcmV0OworICAgIHJldHVybiBGbG9hdFBvaW50KCk7CiB9CiAKIHVu
c2lnbmVkIGxvbmcgU1ZHUGF0aEVsZW1lbnQ6OmdldFBhdGhTZWdBdExlbmd0aChkb3VibGUpCklu
ZGV4OiBrc3ZnMi9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a3N2ZzIvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oCShyZXZpc2lvbiAxNDYyMikKKysr
IGtzdmcyL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzUsNyArMzUsNyBAQAogICAgIGNsYXNzIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudCA6IHB1Ymxp
YyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMKICAgICB7CiAgICAgcHVibGlj
OgotICAgICAgICBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZH
RkVHYXVzc2lhbkJsdXJFbGVtZW50KCk7CiAKICAgICAgICAgLy8gJ1NWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudCcgZnVuY3Rpb25zCkluZGV4OiBrc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE0NjIy
KQorKysga3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgs
NyArOTgsNyBAQAogICAgIHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjpmYXJ0aGVzdFZpZXdwb3J0
RWxlbWVudCh0aGlzKTsKIH0KIAotU1ZHUmVjdCAqU1ZHVGV4dEVsZW1lbnQ6OmdldEJCb3goKSBj
b25zdAorRmxvYXRSZWN0IFNWR1RleHRFbGVtZW50OjpnZXRCQm94KCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gU1ZHVHJhbnNmb3JtYWJsZTo6Z2V0QkJveCh0aGlzKTsKIH0KSW5kZXg6IGtzdmcyL3N2
Zy9TVkdBbmltYXRpb25FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0FuaW1h
dGlvbkVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHQW5pbWF0aW9u
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC04NSw3ICs4NSw3IEBACiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0FuaW1hdGlvbkVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR0FuaW1h
dGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZp
cnR1YWwgflNWR0FuaW1hdGlvbkVsZW1lbnQoKTsKIAogICAgICAgICAvLyAnU1ZHQW5pbWF0aW9u
RWxlbWVudCcgZnVuY3Rpb25zCkluZGV4OiBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdEb2N1bWVudC5pZGwJKHJldmlzaW9uIDE0NjAwKQorKysg
a3N2ZzIvc3ZnL1NWR0RvY3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNCArMSw0MCBA
QAotbW9kdWxlIHN2ZwotewotICBpbnRlcmZhY2UgU1ZHRG9jdW1lbnQgOiAKLSAgICAgICAgICAg
ICAgICBjb3JlOjpEb2N1bWVudCB7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5p
a29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgorICogICAgICAgICAgICAgICAyMDA0
LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBw
bGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9kdWxlIHN2ZyB7CisgICAgaW50ZXJmYWNlIFNW
R0RvY3VtZW50IDogY29yZTo6RG9jdW1lbnQgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBjb3Jl
OjpET01TdHJpbmcgICAgdGl0bGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGNvcmU6OkRPTVN0
cmluZyAgICAgcmVmZXJyZXI7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGNvcmU6OkRPTVN0cmlu
ZyAgICAgIGRvbWFpbjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgY29yZTo6RE9NU3RyaW5nICAg
ICAgVVJMOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdTVkdFbGVtZW50IHJvb3RFbGVtZW50
OworICAgICAgICAvL3JlYWRvbmx5IGF0dHJpYnV0ZSBTVkdTVkdFbGVtZW50ICAgICAgcm9vdEVs
ZW1lbnQ7IC8vIEZJWE1FOiBTVkdTVkdFbGVtZW50IGlzIG5vdCB5ZXQgZ2VuZXJhdGVkIGR1ZSB0
byBkZXBlbmRlbmNpZXMuCiAKIAkvLyBPdmVyd3JpdGUgdGhlIG9uZSBpbiBldmVudHM6OkRvY3Vt
ZW50RXZlbnQKLQlldmVudHM6OkV2ZW50IGNyZWF0ZUV2ZW50KGluIGNvcmU6OkRPTVN0cmluZyBl
dmVudFR5cGUpIFtyYWlzZXMoY29yZTo6RE9NRXhjZXB0aW9uKV07CisgICAgICAgIGV2ZW50czo6
RXZlbnQgY3JlYXRlRXZlbnQoaW4gY29yZTo6RE9NU3RyaW5nIGV2ZW50VHlwZSkKKyAgICAgICAg
ICAgIHJhaXNlcyhjb3JlOjpET01FeGNlcHRpb24pOwogICB9OwogfTsKSW5kZXg6IGtzdmcyL3N2
Zy9TVkdUU3BhbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHVFNwYW5FbGVt
ZW50LmgJKHJldmlzaW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR1RTcGFuRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAgICAgY2xhc3MgU1ZHVFNwYW5FbGVtZW50
IDogcHVibGljIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQKICAgICB7CiAgICAgcHVibGljOgot
ICAgICAgICBTVkdUU3BhbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQgKmRvYyk7CisgICAgICAgIFNWR1RTcGFuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHVFNwYW5FbGVtZW50KCk7CiAgICAg
ICAgICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRl
clN0eWxlICpzdHlsZSkgeyByZXR1cm4gU3R5bGVkRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChz
dHlsZSk7IH0KSW5kZXg6IGtzdmcyL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgJKHJldmlzaW9u
IDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMiw3ICszMiw3IEBACiAgICAgY2xhc3MgU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50IDogcHVibGljIFNWR0dyYWRpZW50RWxlbWVudAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAg
ICAgIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCAqZG9jKTsKKyAgICAgICAgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnQoKTsKIAogICAgICAgICAvLyAnU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50
JyBmdW5jdGlvbnMKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBrc3ZnMi9zdmcvU1ZHU3R5bGVFbGVtZW50LmgJKHJldmlzaW9uIDE0NjIyKQorKysga3N2
ZzIvc3ZnL1NWR1N0eWxlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBA
CiAgICAgY2xhc3MgU1ZHU3R5bGVFbGVtZW50IDogcHVibGljIFNWR0VsZW1lbnQKICAgICB7CiAg
ICAgcHVibGljOgotICAgICAgICBTVkdTdHlsZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR1N0eWxlRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHU3R5bGVFbGVt
ZW50KCk7CiAKICAgICAgICAgLy8gRGVyaXZlZCBmcm9tOiAnRWxlbWVudCcKSW5kZXg6IGtzdmcy
L3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0NpcmNs
ZUVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHQ2lyY2xlRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBACiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAogICAgIHsK
ICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0NpcmNsZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR0NpcmNsZUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR0NpcmNs
ZUVsZW1lbnQoKTsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29u
c3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQpJbmRleDoga3N2ZzIvc3ZnL1NWR0ZF
RGlzdGFudExpZ2h0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdGRURpc3Rh
bnRMaWdodEVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHRkVEaXN0
YW50TGlnaHRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKICAgICBj
bGFzcyBTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQgOiBwdWJsaWMgU1ZHRkVMaWdodEVsZW1lbnQK
ICAgICB7IAogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpOworICAgICAgICBTVkdG
RURpc3RhbnRMaWdodEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAg
ICAgICAgIHZpcnR1YWwgflNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudCgpOwogICAgICAgICB2aXJ0
dWFsIEtDTGlnaHRTb3VyY2UgKmxpZ2h0U291cmNlKCkgY29uc3Q7CiAgICAgfTsKSW5kZXg6IGtz
dmcyL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0N1
cnNvckVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHQ3Vyc29yRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBACiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwdWJsaWMgQ2FjaGVkT2JqZWN0Q2xpZW50CiAgICAgewogICAgIHB1
YmxpYzoKLSAgICAgICAgU1ZHQ3Vyc29yRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCAqZG9jKTsKKyAgICAgICAgU1ZHQ3Vyc29yRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHQ3Vyc29yRWxlbWVu
dCgpOwogICAgICAgICAKICAgICAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJl
dHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CkluZGV4OiBrc3ZnMi9zdmcvU1ZHRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdFbGVtZW50LmgJKHJldmlzaW9uIDE0NjIyKQor
Kysga3N2ZzIvc3ZnL1NWR0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTEgKzM3LDE2
IEBACiAgICAgY2xhc3MgU1ZHRWxlbWVudCA6IHB1YmxpYyBTdHlsZWRFbGVtZW50CiAgICAgewog
ICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCAqZG9jKTsKKyAgICAgICAgU1ZHRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRWxlbWVudCgpOwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNTVkdFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAg
ICAgICB2aXJ0dWFsIGJvb2wgaXNTdXBwb3J0ZWQoU3RyaW5nSW1wbCAqZmVhdHVyZSwgU3RyaW5n
SW1wbCAqdmVyc2lvbikgY29uc3Q7CiAKKyAgICAgICAgU3RyaW5nIGlkKCkgY29uc3Q7CisgICAg
ICAgIHZvaWQgc2V0SWQoY29uc3QgU3RyaW5nJik7CisgICAgICAgIFN0cmluZyB4bWxiYXNlKCkg
Y29uc3Q7CisgICAgICAgIHZvaWQgc2V0WG1sYmFzZShjb25zdCBTdHJpbmcmKTsKKwogICAgICAg
ICBTVkdTVkdFbGVtZW50ICpvd25lclNWR0VsZW1lbnQoKSBjb25zdDsKICAgICAgICAgU1ZHRWxl
bWVudCAqdmlld3BvcnRFbGVtZW50KCkgY29uc3Q7CiAKQEAgLTUxLDcgKzU2LDcgQEAKICAgICAg
ICAgQXRvbWljU3RyaW5nIHRyeUdldEF0dHJpYnV0ZU5TKGNvbnN0IFN0cmluZyYgbmFtZXNwYWNl
VVJJLCBjb25zdCBTdHJpbmcmIGxvY2FsTmFtZSwgQXRvbWljU3RyaW5nIGRlZmF1bHRWYWx1ZSA9
IEF0b21pY1N0cmluZygpKSBjb25zdDsKIAogICAgICAgICAvLyBJbnRlcm5hbAotICAgICAgICB2
aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0
ZSopOwogCiAgICAgICAgIC8vIFRvIGJlIGltcGxlbWVudGVkIGJ5IGFueSBlbGVtZW50IHdoaWNo
IGNhbiBlc3RhYmxpc2ggbmV3IHZpZXdwb3J0cy4uLgogICAgICAgICB2aXJ0dWFsIERlcHJlY2F0
ZWRTdHJpbmcgYWRqdXN0Vmlld3BvcnRDbGlwcGluZygpIGNvbnN0IHsgcmV0dXJuIERlcHJlY2F0
ZWRTdHJpbmc6Om51bGw7IH0KSW5kZXg6IGtzdmcyL3N2Zy9TVkdTVkdFbGVtZW50LmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudC5pZGwJKHJldmlzaW9uIDE0NjE5KQor
Kysga3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xMiwyNSAr
MTIsMjcgQEAKICAgICAgICAgICAgICAgICBTVkdGaXRUb1ZpZXdCb3gsCiAgICAgICAgICAgICAg
ICAgU1ZHWm9vbUFuZFBhbiwKICAgICAgICAgICAgICAgICBldmVudHM6OkRvY3VtZW50RXZlbnQg
eworICAgIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB4OwogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB5OwogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB3aWR0aDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUg
U1ZHQW5pbWF0ZWRMZW5ndGggaGVpZ2h0OwotICAgICAgICAgICAgIGF0dHJpYnV0ZSBjb3JlOjpE
T01TdHJpbmcgICAgICAgICBjb250ZW50U2NyaXB0VHlwZTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKLSAgICAgICAgICAgICBhdHRy
aWJ1dGUgY29yZTo6RE9NU3RyaW5nICAgICAgICAgY29udGVudFN0eWxlVHlwZTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKKyAgICAg
ICAgICAgICBhdHRyaWJ1dGUgY29yZTo6RE9NU3RyaW5nICAgICAgICAgY29udGVudFNjcmlwdFR5
cGUKKyAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyBET01FeGNlcHRpb247CisgICAg
ICAgICAgICAgYXR0cmlidXRlIGNvcmU6OkRPTVN0cmluZyAgICAgICAgIGNvbnRlbnRTdHlsZVR5
cGUKKyAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyBET01FeGNlcHRpb247CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFNWR1JlY3QgICAgICAgICAgIHZpZXdwb3J0OwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBmbG9hdCBwaXhlbFVuaXRUb01pbGxpbWV0ZXJYOwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBmbG9hdCBwaXhlbFVuaXRUb01pbGxpbWV0ZXJZOwogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBmbG9hdCBzY3JlZW5QaXhlbFRvTWlsbGltZXRlclg7CiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGZsb2F0IHNjcmVlblBpeGVsVG9NaWxsaW1ldGVyWTsKLSAgICAgICAgICAgICBhdHRy
aWJ1dGUgYm9vbGVhbiB1c2VDdXJyZW50VmlldzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAv
LyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKKyAgICAgICAgICAgICBhdHRyaWJ1dGUg
Ym9vbGVhbiB1c2VDdXJyZW50VmlldworICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2Vz
IERPTUV4Y2VwdGlvbjsKIC8vIFRPRE8gICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1ZpZXdTcGVj
IGN1cnJlbnRWaWV3OwotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCBjdXJyZW50U2NhbGU7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0
aW5nCisgICAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0IGN1cnJlbnRTY2FsZQorICAgICAgICAg
ICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIERPTUV4Y2VwdGlvbjsKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgU1ZHUG9pbnQgY3VycmVudFRyYW5zbGF0ZTsKKyAgICAKICAgICB1bnNpZ25lZCBsb25n
IHN1c3BlbmRSZWRyYXcgKCBpbiB1bnNpZ25lZCBsb25nIG1heF93YWl0X21pbGxpc2Vjb25kcyAp
OwogICAgIHZvaWQgICAgICAgICAgdW5zdXNwZW5kUmVkcmF3ICggaW4gdW5zaWduZWQgbG9uZyBz
dXNwZW5kX2hhbmRsZV9pZCApCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlcyggRE9NRXhjZXB0
aW9uICk7CkBAIC00Niw2ICs0OCw3IEBACiAgICAgYm9vbGVhbiAgICAgICBjaGVja0ludGVyc2Vj
dGlvbiAoIGluIFNWR0VsZW1lbnQgZWxlbWVudCwgaW4gU1ZHUmVjdCByZWN0ICk7CiAgICAgYm9v
bGVhbiAgICAgICBjaGVja0VuY2xvc3VyZSAoIGluIFNWR0VsZW1lbnQgZWxlbWVudCwgaW4gU1ZH
UmVjdCByZWN0ICk7CiAgICAgdm9pZCAgICAgICAgICBkZXNlbGVjdEFsbCAoICApOworICAgIAog
ICAgIFNWR051bWJlciAgICAgICAgICAgICAgY3JlYXRlU1ZHTnVtYmVyICggICk7CiAgICAgU1ZH
TGVuZ3RoICAgICAgICAgICAgICBjcmVhdGVTVkdMZW5ndGggKCAgKTsKICAgICBTVkdBbmdsZSAg
ICAgICAgICAgICAgIGNyZWF0ZVNWR0FuZ2xlICggICk7CkBAIC01NCw2ICs1Nyw3IEBACiAgICAg
U1ZHUmVjdCAgICAgICAgICAgICAgICBjcmVhdGVTVkdSZWN0ICggICk7CiAgICAgU1ZHVHJhbnNm
b3JtICAgICAgICAgICBjcmVhdGVTVkdUcmFuc2Zvcm0gKCAgKTsKICAgICBTVkdUcmFuc2Zvcm0g
ICAgIGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXggKCBpbiBTVkdNYXRyaXggbWF0cml4ICk7
CisgICAgCiAvLyBUT0RPICAgIGNvcmU6OkVsZW1lbnQgICAgICAgICBnZXRFbGVtZW50QnlJZCAo
IGluIGNvcmU6OkRPTVN0cmluZyBlbGVtZW50SWQgKTsKICAgfTsKIH07CkluZGV4OiBrc3ZnMi9z
dmcvU1ZHU1ZHRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1NWR0VsZW1l
bnQuY3BwCShyZXZpc2lvbiAxNDYyMikKKysrIGtzdmcyL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIlNWR0RvY3VtZW50RXh0
ZW5zaW9ucy5oIgogI2luY2x1ZGUgIlNWR01hdHJpeC5oIgogI2luY2x1ZGUgIlNWR051bWJlci5o
IgotI2luY2x1ZGUgIlNWR1BvaW50LmgiCiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtLmgiCiAjaW5j
bHVkZSAiU1ZHWm9vbUV2ZW50LmgiCiAjaW5jbHVkZSAia3N2Zy5oIgpAQCAtNTMsMTUgKzUyLDIw
IEBACiB1c2luZyBuYW1lc3BhY2UgRXZlbnROYW1lczsKIAogU1ZHU1ZHRWxlbWVudDo6U1ZHU1ZH
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCAqZG9jKQotOiBT
VkdTdHlsZWRMb2NhdGFibGVFbGVtZW50KHRhZ05hbWUsIGRvYyksIFNWR1Rlc3RzKCksIFNWR0xh
bmdTcGFjZSgpLAotICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKCksIFNWR0ZpdFRvVmll
d0JveCgpLAotICBTVkdab29tQW5kUGFuKCkKKyAgICA6IFNWR1N0eWxlZExvY2F0YWJsZUVsZW1l
bnQodGFnTmFtZSwgZG9jKQorICAgICwgU1ZHVGVzdHMoKQorICAgICwgU1ZHTGFuZ1NwYWNlKCkK
KyAgICAsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQoKQorICAgICwgU1ZHRml0VG9WaWV3
Qm94KCkKKyAgICAsIFNWR1pvb21BbmRQYW4oKQorICAgICwgbV91c2VDdXJyZW50VmlldyhmYWxz
ZSkKKyAgICAsIG1fdGltZVNjaGVkdWxlcihuZXcgVGltZVNjaGVkdWxlcihkb2MpKQogewotICAg
IG1fdXNlQ3VycmVudFZpZXcgPSBmYWxzZTsKIH0KIAogU1ZHU1ZHRWxlbWVudDo6flNWR1NWR0Vs
ZW1lbnQoKQogeworICAgIGRlbGV0ZSBtX3RpbWVTY2hlZHVsZXI7CiB9CiAKIFNWR0FuaW1hdGVk
TGVuZ3RoICpTVkdTVkdFbGVtZW50Ojp4KCkgY29uc3QKQEAgLTEyMCw5ICsxMjQsOCBAQAogICAg
IHNldEF0dHJpYnV0ZShTVkdOYW1lczo6Y29udGVudFN0eWxlVHlwZUF0dHIsIHR5cGUpOwogfQog
Ci1TVkdSZWN0ICpTVkdTVkdFbGVtZW50Ojp2aWV3cG9ydCgpIGNvbnN0CitGbG9hdFJlY3QgU1ZH
U1ZHRWxlbWVudDo6dmlld3BvcnQoKSBjb25zdAogewotICAgIFNWR1JlY3QgKnJldCA9IGNyZWF0
ZVNWR1JlY3QoKTsKICAgICBkb3VibGUgX3ggPSB4KCktPmJhc2VWYWwoKS0+dmFsdWUoKTsKICAg
ICBkb3VibGUgX3kgPSB5KCktPmJhc2VWYWwoKS0+dmFsdWUoKTsKICAgICBkb3VibGUgdyA9IHdp
ZHRoKCktPmJhc2VWYWwoKS0+dmFsdWUoKTsKQEAgLTEzMCwxMSArMTMzLDcgQEAKICAgICBSZWZQ
dHI8U1ZHTWF0cml4PiB2aWV3Qm94ID0gdmlld0JveFRvVmlld1RyYW5zZm9ybSh3LCBoKTsKICAg
ICB2aWV3Qm94LT5xbWF0cml4KCkubWFwKF94LCBfeSwgJl94LCAmX3kpOwogICAgIHZpZXdCb3gt
PnFtYXRyaXgoKS5tYXAodywgaCwgJncsICZoKTsKLSAgICByZXQtPnNldFgoX3gpOwotICAgIHJl
dC0+c2V0WShfeSk7Ci0gICAgcmV0LT5zZXRXaWR0aCh3KTsKLSAgICByZXQtPnNldEhlaWdodCho
KTsKLSAgICByZXR1cm4gcmV0OworICAgIHJldHVybiBGbG9hdFJlY3QoX3gsIF95LCB3LCBoKTsK
IH0KIAogZmxvYXQgU1ZHU1ZHRWxlbWVudDo6cGl4ZWxVbml0VG9NaWxsaW1ldGVyWCgpIGNvbnN0
CkBAIC0yMDEsMTAgKzIwMCwxMCBAQAogLy8gICAgfQogfQogCi1TVkdQb2ludCAqU1ZHU1ZHRWxl
bWVudDo6Y3VycmVudFRyYW5zbGF0ZSgpIGNvbnN0CitGbG9hdFBvaW50IFNWR1NWR0VsZW1lbnQ6
OmN1cnJlbnRUcmFuc2xhdGUoKSBjb25zdAogewogICAgIC8vaWYoIWNhbnZhcygpKQotICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIEZsb2F0UG9pbnQoKTsKIAogICAgIC8vcmV0dXJu
IGNyZWF0ZVNWR1BvaW50KGNhbnZhc1ZpZXcoKS0+cGFuKCkpOwogfQpAQCAtMjY5LDggKzI2OCw5
IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgU1ZHU1ZHRWxlbWVudDo6dW5zdXNwZW5kUmVk
cmF3KHVuc2lnbmVkIGxvbmcgLyogc3VzcGVuZF9oYW5kbGVfaWQgKi8pCit2b2lkIFNWR1NWR0Vs
ZW1lbnQ6OnVuc3VzcGVuZFJlZHJhdyh1bnNpZ25lZCBsb25nIC8qIHN1c3BlbmRfaGFuZGxlX2lk
ICovLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICAvLyBpZiBzdXNwZW5kX2hhbmRsZV9pZCBp
cyBub3QgZm91bmQsIHRocm93IGV4Y2VwdGlvbgogICAgIC8vIFRPRE8KIH0KIApAQCAtMjg0LDM5
ICsyODQsMzEgQEAKICAgICAvLyBUT0RPCiB9CiAKLU5vZGVMaXN0ICpTVkdTVkdFbGVtZW50Ojpn
ZXRJbnRlcnNlY3Rpb25MaXN0KFNWR1JlY3QgKnJlY3QsIFNWR0VsZW1lbnQgKikKK05vZGVMaXN0
ICpTVkdTVkdFbGVtZW50OjpnZXRJbnRlcnNlY3Rpb25MaXN0KGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCwgU1ZHRWxlbWVudCopCiB7CiAgICAgLy9Ob2RlTGlzdCAqbGlzdDsKICAgICAvLyBUT0RPCiAg
ICAgcmV0dXJuIDA7CiB9CiAKLU5vZGVMaXN0ICpTVkdTVkdFbGVtZW50OjpnZXRFbmNsb3N1cmVM
aXN0KFNWR1JlY3QgKnJlY3QsIFNWR0VsZW1lbnQgKikKK05vZGVMaXN0ICpTVkdTVkdFbGVtZW50
OjpnZXRFbmNsb3N1cmVMaXN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgU1ZHRWxlbWVudCopCiB7
CiAgICAgLy8gVE9ETwogICAgIHJldHVybiAwOwogfQogCi1ib29sIFNWR1NWR0VsZW1lbnQ6OmNo
ZWNrSW50ZXJzZWN0aW9uKFNWR0VsZW1lbnQgKmVsZW1lbnQsIFNWR1JlY3QgKnJlY3QpCitib29s
IFNWR1NWR0VsZW1lbnQ6OmNoZWNrSW50ZXJzZWN0aW9uKFNWR0VsZW1lbnQqIGVsZW1lbnQsIGNv
bnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICAvLyBUT0RPIDogdGFrZSBpbnRvIGFjY291bnQg
cG9pbnRlci1ldmVudHM/Ci0gICAgUmVmUHRyPFNWR1JlY3Q+IGJib3ggPSBnZXRCQm94KCk7Ci0g
ICAgCi0gICAgRmxvYXRSZWN0IHIocmVjdC0+eCgpLCByZWN0LT55KCksIHJlY3QtPndpZHRoKCks
IHJlY3QtPmhlaWdodCgpKTsKLSAgICBGbG9hdFJlY3QgcjIoYmJveC0+eCgpLCBiYm94LT55KCks
IGJib3gtPndpZHRoKCksIGJib3gtPmhlaWdodCgpKTsKLSAgICAKLSAgICByZXR1cm4gci5pbnRl
cnNlY3RzKHIyKTsKKyAgICAvLyBGSVhNRTogV2h5IGlzIGVsZW1lbnQgaWdub3JlZD8/CisgICAg
cmV0dXJuIHJlY3QuaW50ZXJzZWN0cyhnZXRCQm94KCkpOwogfQogCi1ib29sIFNWR1NWR0VsZW1l
bnQ6OmNoZWNrRW5jbG9zdXJlKFNWR0VsZW1lbnQgKmVsZW1lbnQsIFNWR1JlY3QgKnJlY3QpCiti
b29sIFNWR1NWR0VsZW1lbnQ6OmNoZWNrRW5jbG9zdXJlKFNWR0VsZW1lbnQqIGVsZW1lbnQsIGNv
bnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICAvLyBUT0RPIDogdGFrZSBpbnRvIGFjY291bnQg
cG9pbnRlci1ldmVudHM/Ci0gICAgUmVmUHRyPFNWR1JlY3Q+IGJib3ggPSBnZXRCQm94KCk7Ci0g
ICAgCi0gICAgRmxvYXRSZWN0IHIocmVjdC0+eCgpLCByZWN0LT55KCksIHJlY3QtPndpZHRoKCks
IHJlY3QtPmhlaWdodCgpKTsKLSAgICBGbG9hdFJlY3QgcjIoYmJveC0+eCgpLCBiYm94LT55KCks
IGJib3gtPndpZHRoKCksIGJib3gtPmhlaWdodCgpKTsKLSAgICAKLSAgICByZXR1cm4gci5jb250
YWlucyhyMik7CisgICAgLy8gRklYTUU6IFdoeSBpcyBlbGVtZW50IGlnbm9yZWQ/PworICAgIHJl
dHVybiByZWN0LmNvbnRhaW5zKGdldEJCb3goKSk7CiB9CiAKIHZvaWQgU1ZHU1ZHRWxlbWVudDo6
ZGVzZWxlY3RBbGwoKQpAQCAtMzI0LDkgKzMxNiw5IEBACiAgICAgLy8gVE9ETwogfQogCi1TVkdO
dW1iZXIgKlNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR051bWJlcigpCitmbG9hdCBTVkdTVkdFbGVt
ZW50OjpjcmVhdGVTVkdOdW1iZXIoKQogewotICAgIHJldHVybiBuZXcgU1ZHTnVtYmVyKDApOwor
ICAgIHJldHVybiAwOwogfQogCiBTVkdMZW5ndGggKlNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR0xl
bmd0aCgpCkBAIC0zMzksOSArMzMxLDkgQEAKICAgICByZXR1cm4gbmV3IFNWR0FuZ2xlKDApOwog
fQogCi1TVkdQb2ludCAqU1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHUG9pbnQoY29uc3QgSW50UG9p
bnQgJnApCitGbG9hdFBvaW50IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR1BvaW50KGNvbnN0IElu
dFBvaW50ICZwKQogewotICAgIHJldHVybiBuZXcgU1ZHUG9pbnQocCk7CisgICAgcmV0dXJuIEZs
b2F0UG9pbnQocCk7CiB9CiAKIFNWR01hdHJpeCAqU1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHTWF0
cml4KCkKQEAgLTM0OSw5ICszNDEsOSBAQAogICAgIHJldHVybiBuZXcgU1ZHTWF0cml4KCk7CiB9
CiAKLVNWR1JlY3QgKlNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR1JlY3QoKQorRmxvYXRSZWN0IFNW
R1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR1JlY3QoKQogewotICAgIHJldHVybiBuZXcgU1ZHUmVjdCgw
KTsKKyAgICByZXR1cm4gRmxvYXRSZWN0KCk7CiB9CiAKIFNWR1RyYW5zZm9ybSAqU1ZHU1ZHRWxl
bWVudDo6Y3JlYXRlU1ZHVHJhbnNmb3JtKCkKQEAgLTQyNCw2ICs0MTYsMzMgQEAKICAgICAvL2Nh
bnZhc1ZpZXcoKS0+ZW5hYmxlWm9vbUFuZFBhbih6b29tQW5kUGFuID09IFNWR19aT09NQU5EUEFO
X01BR05JRlkpOwogfQogCit2b2lkIFNWR1NWR0VsZW1lbnQ6OnBhdXNlQW5pbWF0aW9ucygpCit7
CisgICAgaWYgKCFtX3RpbWVTY2hlZHVsZXItPmFuaW1hdGlvbnNQYXVzZWQoKSkKKyAgICAgICAg
bV90aW1lU2NoZWR1bGVyLT50b2dnbGVBbmltYXRpb25zKCk7Cit9CisKK3ZvaWQgU1ZHU1ZHRWxl
bWVudDo6dW5wYXVzZUFuaW1hdGlvbnMoKQoreworICAgIGlmIChtX3RpbWVTY2hlZHVsZXItPmFu
aW1hdGlvbnNQYXVzZWQoKSkKKyAgICAgICAgbV90aW1lU2NoZWR1bGVyLT50b2dnbGVBbmltYXRp
b25zKCk7Cit9CisKK2Jvb2wgU1ZHU1ZHRWxlbWVudDo6YW5pbWF0aW9uc1BhdXNlZCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fdGltZVNjaGVkdWxlci0+YW5pbWF0aW9uc1BhdXNlZCgpOworfQor
CitmbG9hdCBTVkdTVkdFbGVtZW50OjpnZXRDdXJyZW50VGltZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fdGltZVNjaGVkdWxlci0+ZWxhcHNlZCgpOworfQorCit2b2lkIFNWR1NWR0VsZW1lbnQ6
OnNldEN1cnJlbnRUaW1lKGZsb2F0IC8qIHNlY29uZHMgKi8pCit7CisgICAgLy8gVE9ETworfQor
CiB9CiAKIC8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTZXRFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1NldEVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIp
CisrKyBrc3ZnMi9zdmcvU1ZHU2V0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICsz
MSw3IEBACiAgICAgY2xhc3MgU1ZHU2V0RWxlbWVudCA6IHB1YmxpYyBTVkdBbmltYXRpb25FbGVt
ZW50CiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHU2V0RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCAqZG9jKTsKKyAgICAgICAgU1ZHU2V0RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZH
U2V0RWxlbWVudCgpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVUaW1lckV2ZW50KGRv
dWJsZSB0aW1lUGVyY2VudGFnZSk7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuaAkocmV2aXNpb24g
MTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMzQsNyArMzQsNyBAQAogICAgIGNsYXNzIFNWR0ZFRmxvb2RFbGVtZW50IDogcHVibGljIFNW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcwogICAgIHsKICAgICBwdWJsaWM6Ci0g
ICAgICAgIFNWR0ZFRmxvb2RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50ICpkb2MpOworICAgICAgICBTVkdGRUZsb29kRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRkVGbG9vZEVsZW1lbnQoKTsK
IAogICAgICAgICAvLyAnU1ZHRkVGbG9vZEVsZW1lbnQnIGZ1bmN0aW9ucwpJbmRleDoga3N2ZzIv
c3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9z
dmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oCShyZXZpc2lvbiAxNDYyMikKKysrIGtz
dmcyL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDcgKzM1LDcgQEAKICAgICBjbGFzcyBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50IDog
cHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcwogICAgIHsKICAgICBw
dWJsaWM6Ci0gICAgICAgIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR0ZFU3BlY3VsYXJM
aWdodGluZ0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAg
IHZpcnR1YWwgflNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQoKTsKICAgICAgICAgCiAgICAg
ICAgIC8vICdTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQnIGZ1bmN0aW9ucwpJbmRleDoga3N2
ZzIvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdUaXRs
ZUVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHVGl0bGVFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVibGljIFNWR0xhbmdTcGFjZQogICAgIHsKICAgICBwdWJsaWM6Ci0gICAg
ICAgIFNWR1RpdGxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCAqZG9jKTsKKyAgICAgICAgU1ZHVGl0bGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOwogCiAgICAgICAgIFN0cmluZyB0aXRsZSgpIGNvbnN0OwogCkluZGV4OiBrc3Zn
Mi9zdmcvU1ZHR0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHR0VsZW1lbnQu
aAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHR0VsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxp
YyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCiAgICAgewogICAgIHB1YmxpYzoKLSAgICAg
ICAgU1ZHR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRv
Yyk7CisgICAgICAgIFNWR0dFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OwogICAgICAgICB2aXJ0dWFsIH5TVkdHRWxlbWVudCgpOwogICAgICAgICAKICAgICAgICAgdmly
dHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9
CkBAIC01MSw3ICs1MSw3IEBACiAgICAgY2xhc3MgU1ZHRHVtbXlFbGVtZW50IDogcHVibGljIFNW
R0dFbGVtZW50CiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHRHVtbXlFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpOworICAgICAgICBTVkdE
dW1teUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZp
cnR1YWwgflNWR0R1bW15RWxlbWVudCgpOwogCiAgICAgICAgIC8vIERlcml2ZWQgZnJvbTogJ0Vs
ZW1lbnQnCkluZGV4OiBrc3ZnMi9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga3N2ZzIvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5oCShyZXZpc2lvbiAxNDYyMikKKysrIGtz
dmcyL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUs
NyBAQAogICAgIGNsYXNzIFNWR0ZFT2Zmc2V0RWxlbWVudCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMKICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdG
RU9mZnNldEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRv
Yyk7CisgICAgICAgIFNWR0ZFT2Zmc2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRkVPZmZzZXRFbGVtZW50KCk7CiAKICAgICAg
ICAgLy8gJ1NWR0ZFT2Zmc2V0RWxlbWVudCcgZnVuY3Rpb25zCkluZGV4OiBrc3ZnMi9zdmcvU1ZH
RkVNZXJnZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRkVNZXJnZUVsZW1l
bnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAogICAgIGNsYXNzIFNWR0ZFTWVyZ2VFbGVt
ZW50IDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcwogICAgIHsK
ICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0ZFTWVyZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpOworICAgICAgICBTVkdGRU1lcmdlRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRkVN
ZXJnZUVsZW1lbnQoKTsKIAogICAgICAgICB2aXJ0dWFsIEtDYW52YXNGRU1lcmdlICpmaWx0ZXJF
ZmZlY3QoKSBjb25zdDsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCShyZXZpc2lvbiAxNDYyMikK
KysrIGtzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3
ICs1MCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIEtDYW52
YXNSZXNvdXJjZUxpc3RlbmVyCiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHUGF0dGVy
bkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7Cisg
ICAgICAgIFNWR1BhdHRlcm5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OwogICAgICAgICB2aXJ0dWFsIH5TVkdQYXR0ZXJuRWxlbWVudCgpOwogICAgICAgICAKICAgICAg
ICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxp
ZCgpOyB9CkluZGV4OiBrc3ZnMi9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBrc3ZnMi9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3Zn
Mi9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBA
QAogICAgIGNsYXNzIFNWR1BvbHlnb25FbGVtZW50IDogICAgcHVibGljIFNWR1BvbHlFbGVtZW50
CiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHUG9seWdvbkVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRvYyk7CisgICAgICAgIFNWR1BvbHlnb25F
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFs
IH5TVkdQb2x5Z29uRWxlbWVudCgpOwogCiAgICAgICAgIHZpcnR1YWwgS0NhbnZhc1BhdGgqIHRv
UGF0aERhdGEoKSBjb25zdDsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmgJKHJldmlz
aW9uIDE0NjIyKQorKysga3N2ZzIvc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAgICAgY2xhc3MgU1ZHRkVTcG90TGlnaHRFbGVtZW50
IDogcHVibGljIFNWR0ZFTGlnaHRFbGVtZW50CiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAg
U1ZHRkVTcG90TGlnaHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50ICpkb2MpOworICAgICAgICBTVkdGRVNwb3RMaWdodEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR0ZFU3BvdExpZ2h0RWxlbWVu
dCgpOwogICAgICAgICB2aXJ0dWFsIEtDTGlnaHRTb3VyY2UgKmxpZ2h0U291cmNlKCkgY29uc3Q7
CiAgICAgfTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtzdmcyL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCShyZXZpc2lvbiAxNDYyMikKKysrIGtz
dmcyL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3
IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIENhY2hlZE9iamVj
dENsaWVudAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0ZFSW1hZ2VFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpOworICAgICAgICBTVkdG
RUltYWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAg
dmlydHVhbCB+U1ZHRkVJbWFnZUVsZW1lbnQoKTsKIAogICAgICAgICAvLyAnU1ZHRkVJbWFnZUVs
ZW1lbnQnIGZ1bmN0aW9ucwpJbmRleDoga3N2ZzIva3N2Zy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcy
L2tzdmcuaAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9rc3ZnLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM5LDM4ICszOSw2IEBACiAgICAgICAgIFNWR19NQVRSSVhfTk9UX0lOVkVSVEFCTEUgICAg
PSAzCiAgICAgfTsKIAotICAgIGVudW0gU1ZHTGVuZ3RoVHlwZQotICAgIHsKLSAgICAgICAgU1ZH
X0xFTkdUSFRZUEVfVU5LTk9XTiAgICAgICAgPSAwLAotICAgICAgICBTVkdfTEVOR1RIVFlQRV9O
VU1CRVIgICAgICAgID0gMSwKLSAgICAgICAgU1ZHX0xFTkdUSFRZUEVfUEVSQ0VOVEFHRSAgICA9
IDIsCi0gICAgICAgIFNWR19MRU5HVEhUWVBFX0VNUyAgICAgICAgICAgID0gMywKLSAgICAgICAg
U1ZHX0xFTkdUSFRZUEVfRVhTICAgICAgICAgICAgPSA0LAotICAgICAgICBTVkdfTEVOR1RIVFlQ
RV9QWCAgICAgICAgICAgID0gNSwKLSAgICAgICAgU1ZHX0xFTkdUSFRZUEVfQ00gICAgICAgICAg
ICA9IDYsCi0gICAgICAgIFNWR19MRU5HVEhUWVBFX01NICAgICAgICAgICAgPSA3LAotICAgICAg
ICBTVkdfTEVOR1RIVFlQRV9JTiAgICAgICAgICAgID0gOCwKLSAgICAgICAgU1ZHX0xFTkdUSFRZ
UEVfUFQgICAgICAgICAgICA9IDksCi0gICAgICAgIFNWR19MRU5HVEhUWVBFX1BDICAgICAgICAg
ICAgPSAxMAotICAgIH07Ci0KLSAgICBlbnVtIFNWR0FuZ2xlVHlwZQotICAgIHsKLSAgICAgICAg
U1ZHX0FOR0xFVFlQRV9VTktOT1dOICAgICAgICA9IDAsCi0gICAgICAgIFNWR19BTkdMRVRZUEVf
VU5TUEVDSUZJRUQgICAgPSAxLAotICAgICAgICBTVkdfQU5HTEVUWVBFX0RFRyAgICAgICAgICAg
ID0gMiwKLSAgICAgICAgU1ZHX0FOR0xFVFlQRV9SQUQgICAgICAgICAgICA9IDMsCi0gICAgICAg
IFNWR19BTkdMRVRZUEVfR1JBRCAgICAgICAgICAgID0gNAotICAgIH07Ci0KLSAgICBlbnVtIFNW
R0NvbG9yVHlwZQotICAgIHsKLSAgICAgICAgU1ZHX0NPTE9SVFlQRV9VTktOT1dOICAgICAgICAg
ICAgICAgID0gMCwKLSAgICAgICAgU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUiAgICAgICAgICAgICAg
ICA9IDEsCi0gICAgICAgIFNWR19DT0xPUlRZUEVfUkdCQ09MT1JfSUNDQ09MT1IgICAgICAgID0g
MiwKLSAgICAgICAgU1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IgICAgICAgICAgICA9IDMKLSAg
ICB9OwotCiAgICAgZW51bSBTVkdVbml0VHlwZXMKICAgICB7CiAgICAgICAgIFNWR19VTklUX1RZ
UEVfVU5LTk9XTiAgICAgICAgICAgICAgICA9IDAsCkBAIC04OCwxMyArNTYsNyBAQAogICAgICAg
ICBSRU5ERVJJTkdfSU5URU5UX0FCU09MVVRFX0NPTE9SSU1FVFJJQyAgICA9IDUKICAgICB9Owog
Ci0gICAgZW51bSBTVkdDU1NSdWxlVHlwZQotICAgIHsKLSAgICAgICAgQ09MT1JfUFJPRklMRV9S
VUxFID0gNwotICAgIH07Ci0KLSAgICBlbnVtIFNWR1RyYW5zZm9ybVR5cGUKLSAgICB7CisgICAg
ZW51bSBTVkdUcmFuc2Zvcm1UeXBlIHsKICAgICAgICAgU1ZHX1RSQU5TRk9STV9VTktOT1dOICAg
ICAgICA9IDAsCiAgICAgICAgIFNWR19UUkFOU0ZPUk1fTUFUUklYICAgICAgICA9IDEsCiAgICAg
ICAgIFNWR19UUkFOU0ZPUk1fVFJBTlNMQVRFICAgICAgICA9IDIsCkBAIC0xMDQsNiArNjYsMTEg
QEAKICAgICAgICAgU1ZHX1RSQU5TRk9STV9TS0VXWSAgICAgICAgICAgID0gNgogICAgIH07CiAK
KyAgICBlbnVtIFNWR0NTU1J1bGVUeXBlCisgICAgeworICAgICAgICBDT0xPUl9QUk9GSUxFX1JV
TEUgPSA3CisgICAgfTsKKwogICAgIGVudW0gU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1R5cGUKICAg
ICB7CiAgICAgICAgIFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1VOS05PV04gICAgICAgID0gMCwK
SW5kZXg6IGtzdmcyL2V2ZW50cy9TVkdab29tRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcy
L2V2ZW50cy9TVkdab29tRXZlbnQuY3BwCShyZXZpc2lvbiAxNDYyMikKKysrIGtzdmcyL2V2ZW50
cy9TVkdab29tRXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwyNSArMjIsMjMgQEAKIAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSAiU1ZHUmVjdC5o
IgotI2luY2x1ZGUgIlNWR1BvaW50LmgiCiAjaW5jbHVkZSAiU1ZHWm9vbUV2ZW50LmgiCiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBTVkdab29tRXZlbnQ6OlNWR1pvb21FdmVudCgpCisg
ICAgOiBtX25ld1NjYWxlKDAuMCkKKyAgICAsIG1fcHJldmlvdXNTY2FsZSgwLjApCiB7Ci0gICAg
bV9uZXdTY2FsZSA9IDAuMDsKLSAgICBtX3ByZXZpb3VzU2NhbGUgPSAwLjA7CiB9CiAKIFNWR1pv
b21FdmVudDo6flNWR1pvb21FdmVudCgpCiB7CiB9CiAKLVNWR1JlY3QgKlNWR1pvb21FdmVudDo6
em9vbVJlY3RTY3JlZW4oKSBjb25zdAorRmxvYXRSZWN0IFNWR1pvb21FdmVudDo6em9vbVJlY3RT
Y3JlZW4oKSBjb25zdAogewotICAgIHJldHVybiBtX3pvb21SZWN0U2NyZWVuLmdldCgpOworICAg
IHJldHVybiBtX3pvb21SZWN0U2NyZWVuOwogfQogCiBmbG9hdCBTVkdab29tRXZlbnQ6OnByZXZp
b3VzU2NhbGUoKSBjb25zdApAQCAtNTMsOSArNTEsOSBAQAogICAgIG1fcHJldmlvdXNTY2FsZSA9
IHNjYWxlOwogfQogCi1TVkdQb2ludCAqU1ZHWm9vbUV2ZW50OjpwcmV2aW91c1RyYW5zbGF0ZSgp
IGNvbnN0CitGbG9hdFBvaW50IFNWR1pvb21FdmVudDo6cHJldmlvdXNUcmFuc2xhdGUoKSBjb25z
dAogewotICAgIHJldHVybiBtX3ByZXZpb3VzVHJhbnNsYXRlLmdldCgpOworICAgIHJldHVybiBt
X3ByZXZpb3VzVHJhbnNsYXRlOwogfQogCiBmbG9hdCBTVkdab29tRXZlbnQ6Om5ld1NjYWxlKCkg
Y29uc3QKQEAgLTY4LDkgKzY2LDkgQEAKICAgICBtX25ld1NjYWxlID0gc2NhbGU7CiB9CiAKLVNW
R1BvaW50ICpTVkdab29tRXZlbnQ6Om5ld1RyYW5zbGF0ZSgpIGNvbnN0CitGbG9hdFBvaW50IFNW
R1pvb21FdmVudDo6bmV3VHJhbnNsYXRlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9uZXdUcmFu
c2xhdGUuZ2V0KCk7CisgICAgcmV0dXJuIG1fbmV3VHJhbnNsYXRlOwogfQogCiAvLyB2aW06dHM9
NDpub2V0CkluZGV4OiBrc3ZnMi9ldmVudHMvU1ZHWm9vbUV2ZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a3N2ZzIvZXZlbnRzL1NWR1pvb21FdmVudC5oCShyZXZpc2lvbiAxNDYyMikKKysrIGtzdmcyL2V2
ZW50cy9TVkdab29tRXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjAsMTYgKzIwLDE1IEBACiAg
ICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiAqLwogCi0jaWZuZGVmIEtET01fU1ZHWm9v
bUV2ZW50SW1wbF9ICi0jZGVmaW5lIEtET01fU1ZHWm9vbUV2ZW50SW1wbF9ICisjaWZuZGVmIFNW
R1pvb21FdmVudF9ICisjZGVmaW5lIFNWR1pvb21FdmVudF9ICiAjaWYgU1ZHX1NVUFBPUlQKIAog
I2luY2x1ZGUgImRvbTJfZXZlbnRzaW1wbC5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLW5hbWVzcGFjZSBXZWJDb3JlCi17Ci0gICAgY2xhc3MgU1ZH
UmVjdDsKLSAgICBjbGFzcyBTVkdQb2ludDsKICAgICBjbGFzcyBTVkdab29tRXZlbnQgOiBwdWJs
aWMgVUlFdmVudAogICAgIHsKICAgICBwdWJsaWM6CkBAIC0zNywyNiArMzYsMjYgQEAKICAgICAg
ICAgdmlydHVhbCB+U1ZHWm9vbUV2ZW50KCk7CiAKICAgICAgICAgLy8gJ1NWR1pvb21FdmVudCcg
ZnVuY3Rpb25zCi0gICAgICAgIFNWR1JlY3QgKnpvb21SZWN0U2NyZWVuKCkgY29uc3Q7CisgICAg
ICAgIEZsb2F0UmVjdCB6b29tUmVjdFNjcmVlbigpIGNvbnN0OwogCiAgICAgICAgIGZsb2F0IHBy
ZXZpb3VzU2NhbGUoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRQcmV2aW91c1NjYWxlKGZsb2F0
IHNjYWxlKTsKKyAgICAgICAgdm9pZCBzZXRQcmV2aW91c1NjYWxlKGZsb2F0KTsKIAotICAgICAg
ICBTVkdQb2ludCAqcHJldmlvdXNUcmFuc2xhdGUoKSBjb25zdDsKKyAgICAgICAgRmxvYXRQb2lu
dCBwcmV2aW91c1RyYW5zbGF0ZSgpIGNvbnN0OwogCiAgICAgICAgIGZsb2F0IG5ld1NjYWxlKCkg
Y29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0TmV3U2NhbGUoZmxvYXQgc2NhbGUpOworICAgICAgICB2
b2lkIHNldE5ld1NjYWxlKGZsb2F0KTsKIAotICAgICAgICBTVkdQb2ludCAqbmV3VHJhbnNsYXRl
KCkgY29uc3Q7CisgICAgICAgIEZsb2F0UG9pbnQgbmV3VHJhbnNsYXRlKCkgY29uc3Q7CiAKICAg
ICBwcml2YXRlOgogICAgICAgICBmbG9hdCBtX25ld1NjYWxlOwogICAgICAgICBmbG9hdCBtX3By
ZXZpb3VzU2NhbGU7CiAgICAgICAgIAotICAgICAgICBSZWZQdHI8U1ZHUmVjdD4gbV96b29tUmVj
dFNjcmVlbjsKKyAgICAgICAgRmxvYXRSZWN0IG1fem9vbVJlY3RTY3JlZW47CiAgICAgICAgIAot
ICAgICAgICBSZWZQdHI8U1ZHUG9pbnQ+IG1fbmV3VHJhbnNsYXRlOwotICAgICAgICBSZWZQdHI8
U1ZHUG9pbnQ+IG1fcHJldmlvdXNUcmFuc2xhdGU7CisgICAgICAgIEZsb2F0UG9pbnQgbV9uZXdU
cmFuc2xhdGU7CisgICAgICAgIEZsb2F0UG9pbnQgbV9wcmV2aW91c1RyYW5zbGF0ZTsKICAgICB9
OwogfTsKIApJbmRleDoga3N2ZzIvY3NzL1NWR0NTU1BhcnNlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a3N2ZzIvY3NzL1NWR0NTU1BhcnNlci5jcHAJKHJldmlzaW9uIDE0NjIyKQorKysga3N2ZzIvY3Nz
L1NWR0NTU1BhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1MCw3ICsyNTAsNyBAQAogICAg
ICAgICAgICAoaWQgPj0gU1ZHQ1NTX1ZBTF9BTElDRUJMVUUgJiYgaWQgPD0gU1ZHQ1NTX1ZBTF9Z
RUxMT1dHUkVFTikpCiAgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IG5ldyBTVkdDb2xvcihkb21T
dHJpbmcodmFsdWUtPnN0cmluZykuaW1wbCgpKTsKICAgICAgICAgZWxzZSBpZiAoaWQgPT0gU1ZH
Q1NTX1ZBTF9DVVJSRU5UQ09MT1IpCi0gICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IG5ldyBTVkdD
b2xvcihTVkdfQ09MT1JUWVBFX0NVUlJFTlRDT0xPUik7CisgICAgICAgICAgICBwYXJzZWRWYWx1
ZSA9IG5ldyBTVkdDb2xvcihTVkdDb2xvcjo6U1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IpOwog
ICAgICAgICBlbHNlIC8vIFRPRE8gOiBzdmdjb2xvciAoaWNjQ29sb3IpCiAgICAgICAgICAgICBw
YXJzZWRWYWx1ZSA9IHBhcnNlU1ZHQ29sb3IoKTsKIApJbmRleDoga3N2ZzIvY3NzL1NWR0NTU1N0
eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL2Nzcy9TVkdDU1NTdHlsZVNlbGVj
dG9yLmNwcAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2OSw3ICs2NjksNyBAQAogICAgICAgICAgICAgICAg
IGlmICghYykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1N0eWxlU2VsZWN0b3I6OmFw
cGx5UHJvcGVydHkoaWQsIHZhbHVlKTsKIAotICAgICAgICAgICAgICAgIGlmIChjLT5jb2xvclR5
cGUoKSA9PSBTVkdfQ09MT1JUWVBFX0NVUlJFTlRDT0xPUikKKyAgICAgICAgICAgICAgICBpZiAo
Yy0+Y29sb3JUeXBlKCkgPT0gU1ZHQ29sb3I6OlNWR19DT0xPUlRZUEVfQ1VSUkVOVENPTE9SKQog
ICAgICAgICAgICAgICAgICAgICBjb2wgPSBzdHlsZS0+Y29sb3IoKTsKICAgICAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIGNvbCA9IGMtPmNvbG9yKCk7CkBAIC03MDYsNyAr
NzA2LDcgQEAKICAgICAgICAgICAgICAgICBpZiAoIWMpCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGlkLCB2YWx1ZSk7CiAKLSAgICAg
ICAgICAgICAgICBpZiAoYy0+Y29sb3JUeXBlKCkgPT0gU1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09M
T1IpCisgICAgICAgICAgICAgICAgaWYgKGMtPmNvbG9yVHlwZSgpID09IFNWR0NvbG9yOjpTVkdf
Q09MT1JUWVBFX0NVUlJFTlRDT0xPUikKICAgICAgICAgICAgICAgICAgICAgY29sID0gc3R5bGUt
PmNvbG9yKCk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBjb2wg
PSBjLT5jb2xvcigpOwpJbmRleDoga3N2ZzIvbWlzYy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGtzdmcyL21pc2MvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcAkocmV2
aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9taXNjL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDE4ICsyOCwxNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5j
bHVkZSAiS1NWR1RpbWVTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJranNfcHJveHkuaCIKKyNpbmNs
dWRlICJTVkdTVkdFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU1ZHRG9jdW1l
bnRFeHRlbnNpb25zOjpTVkdEb2N1bWVudEV4dGVuc2lvbnMoRG9jdW1lbnQgKmRvYykKICAgICA6
IG1fZG9jKGRvYykKLSAgICAsIG1fdGltZVNjaGVkdWxlcihuZXcgVGltZVNjaGVkdWxlcihkb2Mp
KQogewogfQogCiBTVkdEb2N1bWVudEV4dGVuc2lvbnM6On5TVkdEb2N1bWVudEV4dGVuc2lvbnMo
KQogewotICAgIGRlbGV0ZSBtX3RpbWVTY2hlZHVsZXI7CiB9CiAKIFBhc3NSZWZQdHI8RXZlbnRM
aXN0ZW5lcj4gU1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpjcmVhdGVTVkdFdmVudExpc3RlbmVyKGNv
bnN0IFN0cmluZyYgZnVuY3Rpb25OYW1lLCBjb25zdCBTdHJpbmcmIGNvZGUsIE5vZGUgKm5vZGUp
CkBAIC01MCwzMSArNDksMzkgQEAKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBTVkdEb2N1bWVu
dEV4dGVuc2lvbnM6OnBhdXNlQW5pbWF0aW9ucygpCit2b2lkIFNWR0RvY3VtZW50RXh0ZW5zaW9u
czo6YWRkVGltZUNvbnRhaW5lcihTVkdTVkdFbGVtZW50KiBlbGVtZW50KQogewotICAgIGlmICgh
bV90aW1lU2NoZWR1bGVyLT5hbmltYXRpb25zUGF1c2VkKCkpCi0gICAgICAgIG1fdGltZVNjaGVk
dWxlci0+dG9nZ2xlQW5pbWF0aW9ucygpOworICAgIG1fdGltZUNvbnRhaW5lcnMuYWRkKGVsZW1l
bnQpOwogfQogCi12b2lkIFNWR0RvY3VtZW50RXh0ZW5zaW9uczo6dW5wYXVzZUFuaW1hdGlvbnMo
KQordm9pZCBTVkdEb2N1bWVudEV4dGVuc2lvbnM6OnJlbW92ZVRpbWVDb250YWluZXIoU1ZHU1ZH
RWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBpZiAobV90aW1lU2NoZWR1bGVyLT5hbmltYXRpb25z
UGF1c2VkKCkpCi0gICAgICAgIG1fdGltZVNjaGVkdWxlci0+dG9nZ2xlQW5pbWF0aW9ucygpOwor
ICAgIEFTU0VSVChtX3RpbWVDb250YWluZXJzLmNvbnRhaW5zKGVsZW1lbnQpKTsKKyAgICBtX3Rp
bWVDb250YWluZXJzLnJlbW92ZShlbGVtZW50KTsKIH0KIAotYm9vbCBTVkdEb2N1bWVudEV4dGVu
c2lvbnM6OmFuaW1hdGlvbnNQYXVzZWQoKSBjb25zdAordm9pZCBTVkdEb2N1bWVudEV4dGVuc2lv
bnM6OnN0YXJ0QW5pbWF0aW9ucygpCiB7Ci0gICAgcmV0dXJuIG1fdGltZVNjaGVkdWxlci0+YW5p
bWF0aW9uc1BhdXNlZCgpOworICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IGV2ZXJ5ICJUaW1lIENv
bnRhaW5lciIgd2lsbCBuZWVkIGEgd2F5IHRvIGxhdGNoIG9uIHRvIHNvbWUgZ2xvYmFsIHRpbWVy
CisgICAgLy8gc3RhcnRpbmcgYW5pbWF0aW9ucyBmb3IgYSBkb2N1bWVudCB3aWxsIGRvIHRoaXMg
ImxhdGNoaW5nIgorICAgIAorICAgIEhhc2hTZXQ8U1ZHU1ZHRWxlbWVudCo+OjppdGVyYXRvciBl
bmQgPSBtX3RpbWVDb250YWluZXJzLmJlZ2luKCk7CisgICAgZm9yIChIYXNoU2V0PFNWR1NWR0Vs
ZW1lbnQqPjo6aXRlcmF0b3IgaXRyID0gbV90aW1lQ29udGFpbmVycy5iZWdpbigpOyBpdHIgIT0g
ZW5kOyArK2l0cikKKyAgICAgICAgKCppdHIpLT50aW1lU2NoZWR1bGVyKCktPnN0YXJ0QW5pbWF0
aW9ucygpOwogfQogCi1mbG9hdCBTVkdEb2N1bWVudEV4dGVuc2lvbnM6OmdldEN1cnJlbnRUaW1l
KCkgY29uc3QKK3ZvaWQgU1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpwYXVzZUFuaW1hdGlvbnMoKQog
ewotICAgIHJldHVybiBtX3RpbWVTY2hlZHVsZXItPmVsYXBzZWQoKTsKKyAgICBIYXNoU2V0PFNW
R1NWR0VsZW1lbnQqPjo6aXRlcmF0b3IgZW5kID0gbV90aW1lQ29udGFpbmVycy5iZWdpbigpOwor
ICAgIGZvciAoSGFzaFNldDxTVkdTVkdFbGVtZW50Kj46Oml0ZXJhdG9yIGl0ciA9IG1fdGltZUNv
bnRhaW5lcnMuYmVnaW4oKTsgaXRyICE9IGVuZDsgKytpdHIpCisgICAgICAgICgqaXRyKS0+cGF1
c2VBbmltYXRpb25zKCk7CiB9CiAKLXZvaWQgU1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpzZXRDdXJy
ZW50VGltZShmbG9hdCAvKiBzZWNvbmRzICovKQordm9pZCBTVkdEb2N1bWVudEV4dGVuc2lvbnM6
OnVucGF1c2VBbmltYXRpb25zKCkKIHsKLSAgICAvLyBUT0RPCisgICAgSGFzaFNldDxTVkdTVkdF
bGVtZW50Kj46Oml0ZXJhdG9yIGVuZCA9IG1fdGltZUNvbnRhaW5lcnMuYmVnaW4oKTsKKyAgICBm
b3IgKEhhc2hTZXQ8U1ZHU1ZHRWxlbWVudCo+OjppdGVyYXRvciBpdHIgPSBtX3RpbWVDb250YWlu
ZXJzLmJlZ2luKCk7IGl0ciAhPSBlbmQ7ICsraXRyKQorICAgICAgICAoKml0ciktPnVucGF1c2VB
bmltYXRpb25zKCk7CiB9CiAKIH0KSW5kZXg6IGtzdmcyL21pc2MvU1ZHRG9jdW1lbnRFeHRlbnNp
b25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvbWlzYy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuaAko
cmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9taXNjL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaWYgU1ZHX1NVUFBPUlQKIAogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC0zMiw2ICszMyw3IEBACiBjbGFzcyBFdmVudExpc3RlbmVyOwogY2xh
c3MgTm9kZTsKIGNsYXNzIFN0cmluZzsKK2NsYXNzIFNWR1NWR0VsZW1lbnQ7CiBjbGFzcyBUaW1l
U2NoZWR1bGVyOwogCiBjbGFzcyBTVkdEb2N1bWVudEV4dGVuc2lvbnMgewpAQCAtNDEsMTggKzQz
LDE2IEBACiAgICAgCiAgICAgUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBjcmVhdGVTVkdFdmVu
dExpc3RlbmVyKGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1lLCBjb25zdCBTdHJpbmcmIGNvZGUs
IE5vZGUqKTsKIAotICAgIFRpbWVTY2hlZHVsZXIqIHRpbWVTY2hlZHVsZXIoKSBjb25zdCB7IHJl
dHVybiBtX3RpbWVTY2hlZHVsZXI7IH0KKyAgICB2b2lkIGFkZFRpbWVDb250YWluZXIoU1ZHU1ZH
RWxlbWVudCopOworICAgIHZvaWQgcmVtb3ZlVGltZUNvbnRhaW5lcihTVkdTVkdFbGVtZW50Kik7
CiAgICAgCisgICAgdm9pZCBzdGFydEFuaW1hdGlvbnMoKTsKICAgICB2b2lkIHBhdXNlQW5pbWF0
aW9ucygpOwogICAgIHZvaWQgdW5wYXVzZUFuaW1hdGlvbnMoKTsKLSAgICBib29sIGFuaW1hdGlv
bnNQYXVzZWQoKSBjb25zdDsKLQotICAgIGZsb2F0IGdldEN1cnJlbnRUaW1lKCkgY29uc3Q7Ci0g
ICAgdm9pZCBzZXRDdXJyZW50VGltZShmbG9hdCBzZWNvbmRzKTsKIAogcHJpdmF0ZToKICAgICBE
b2N1bWVudCogbV9kb2M7IC8vIHdlYWsgcmVmZXJlbmNlCi0gICAgVGltZVNjaGVkdWxlciogbV90
aW1lU2NoZWR1bGVyOworICAgIEhhc2hTZXQ8U1ZHU1ZHRWxlbWVudCo+IG1fdGltZUNvbnRhaW5l
cnM7IC8vIEZvciBTVkcgMS4yIHN1cHBvcnQgdGhpcyB3aWxsIG5lZWQgdG8gYmUgbWFkZSBtb3Jl
IGdlbmVyYWwuCiAKICAgICBTVkdEb2N1bWVudEV4dGVuc2lvbnMoY29uc3QgU1ZHRG9jdW1lbnRF
eHRlbnNpb25zJik7CiAgICAgU1ZHRG9jdW1lbnRFeHRlbnNpb25zJiBvcGVyYXRvcj0oY29uc3Qg
U1ZHRG9jdW1lbnRFeHRlbnNpb25zJik7CkluZGV4OiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NW
R051bWJlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdOdW1i
ZXIuaWRsCShyZXZpc2lvbiAxNDYyMikKKysrIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHTnVt
YmVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICswLDAgQEAKLW1vZHVsZSBzdmcKLXsKLSAg
aW50ZXJmYWNlIFNWR051bWJlciB7IAotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB2YWx1
ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNl
dHRpbmcKLSAgfTsKLX07CkluZGV4OiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR1BvaW50Lmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR1BvaW50LmlkbAkocmV2
aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR1BvaW50LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi1tb2R1bGUgc3ZnCi17Ci0gIGludGVyZmFjZSBT
VkdQb2ludCB7IAotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB4OwotICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZwotICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBmbG9hdCB5OwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNl
cyBET01FeGNlcHRpb24gb24gc2V0dGluZwotICAgIFNWR1BvaW50IG1hdHJpeFRyYW5zZm9ybSAo
IGluIFNWR01hdHJpeCBtYXRyaXggKTsKLSAgfTsKLX07CkluZGV4OiBrc3ZnMi9iaW5kaW5ncy9p
ZGwvc3ZnL1NWR01hdHJpeC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvYmluZGluZ3MvaWRsL3N2
Zy9TVkdNYXRyaXguaWRsCShyZXZpc2lvbiAxNDYyMikKKysrIGtzdmcyL2JpbmRpbmdzL2lkbC9z
dmcvU1ZHTWF0cml4LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSwzMCArMCwwIEBACi1tb2R1bGUg
c3ZnCi17Ci0gIGludGVyZmFjZSBTVkdNYXRyaXggeyAKLSAgICAgICAgICAgICBhdHRyaWJ1dGUg
ZmxvYXQgYTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9u
IG9uIHNldHRpbmcKLSAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgYjsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKLSAgICAgICAg
ICAgICBhdHRyaWJ1dGUgZmxvYXQgYzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlz
ZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKLSAvLyAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9h
dCBkOwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24g
c2V0dGluZwotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCBlOwotICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZwotICAgICAgICAgICAg
IGF0dHJpYnV0ZSBmbG9hdCBmOwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBE
T01FeGNlcHRpb24gb24gc2V0dGluZwotICAgIFNWR01hdHJpeCBtdWx0aXBseSAoIGluIFNWR01h
dHJpeCBzZWNvbmRNYXRyaXggKTsKLSAgICBTVkdNYXRyaXggaW52ZXJzZSAoICApCi0gICAgICAg
ICAgICAgICAgICAgIHJhaXNlcyggU1ZHRXhjZXB0aW9uICk7Ci0gICAgU1ZHTWF0cml4IHRyYW5z
bGF0ZSAoIGluIGZsb2F0IHgsIGluIGZsb2F0IHkgKTsKLSAgICBTVkdNYXRyaXggc2NhbGUgKCBp
biBmbG9hdCBzY2FsZUZhY3RvciApOwotICAgIFNWR01hdHJpeCBzY2FsZU5vblVuaWZvcm0gKCBp
biBmbG9hdCBzY2FsZUZhY3RvclgsIGluIGZsb2F0IHNjYWxlRmFjdG9yWSApOwotICAgIFNWR01h
dHJpeCByb3RhdGUgKCBpbiBmbG9hdCBhbmdsZSApOwotICAgIFNWR01hdHJpeCByb3RhdGVGcm9t
VmVjdG9yICggaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSApCi0gICAgICAgICAgICAgICAgICAgIHJh
aXNlcyggU1ZHRXhjZXB0aW9uICk7Ci0gICAgU1ZHTWF0cml4IGZsaXBYICggICk7Ci0gICAgU1ZH
TWF0cml4IGZsaXBZICggICk7Ci0gICAgU1ZHTWF0cml4IHNrZXdYICggaW4gZmxvYXQgYW5nbGUg
KTsKLSAgICBTVkdNYXRyaXggc2tld1kgKCBpbiBmbG9hdCBhbmdsZSApOwotICB9OwotfTsKSW5k
ZXg6IGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHVHJhbnNmb3JtLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR1RyYW5zZm9ybS5pZGwJKHJldmlzaW9uIDE0NjIy
KQorKysga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdUcmFuc2Zvcm0uaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDIyICswLDAgQEAKLW1vZHVsZSBzdmcKLXsKLSAgaW50ZXJmYWNlIFNWR1RyYW5z
Zm9ybSB7IAotICAgIC8vIFRyYW5zZm9ybSBUeXBlcwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IFNWR19UUkFOU0ZPUk1fVU5LTk9XTiAgID0gMDsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBT
VkdfVFJBTlNGT1JNX01BVFJJWCAgICA9IDE7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZH
X1RSQU5TRk9STV9UUkFOU0xBVEUgPSAyOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19U
UkFOU0ZPUk1fU0NBTEUgICAgID0gMzsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfVFJB
TlNGT1JNX1JPVEFURSAgICA9IDQ7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1RSQU5T
Rk9STV9TS0VXWCAgICAgPSA1OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19UUkFOU0ZP
Uk1fU0tFV1kgICAgID0gNjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQg
dHlwZTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHTWF0cml4IG1hdHJpeDsKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgZmxvYXQgYW5nbGU7Ci0gICAgdm9pZCBzZXRNYXRyaXggKCBpbiBTVkdN
YXRyaXggbWF0cml4ICk7Ci0gICAgdm9pZCBzZXRUcmFuc2xhdGUgKCBpbiBmbG9hdCB0eCwgaW4g
ZmxvYXQgdHkgKTsKLSAgICB2b2lkIHNldFNjYWxlICggaW4gZmxvYXQgc3gsIGluIGZsb2F0IHN5
ICk7Ci0gICAgdm9pZCBzZXRSb3RhdGUgKCBpbiBmbG9hdCBhbmdsZSwgaW4gZmxvYXQgY3gsIGlu
IGZsb2F0IGN5ICk7Ci0gICAgdm9pZCBzZXRTa2V3WCAoIGluIGZsb2F0IGFuZ2xlICk7Ci0gICAg
dm9pZCBzZXRTa2V3WSAoIGluIGZsb2F0IGFuZ2xlICk7Ci0gIH07Ci19OwpJbmRleDoga3N2ZzIv
YmluZGluZ3MvaWRsL3N2Zy9TVkdEb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvYmlu
ZGluZ3MvaWRsL3N2Zy9TVkdEb2N1bWVudC5pZGwJKHJldmlzaW9uIDE0NjIyKQorKysga3N2ZzIv
YmluZGluZ3MvaWRsL3N2Zy9TVkdEb2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTQg
KzAsMCBAQAotbW9kdWxlIHN2ZwotewotICBpbnRlcmZhY2UgU1ZHRG9jdW1lbnQgOiAKLSAgICAg
ICAgICAgICAgICBjb3JlOjpEb2N1bWVudCB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGNvcmU6
OkRPTVN0cmluZyAgICB0aXRsZTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgY29yZTo6RE9NU3Ry
aW5nICAgICByZWZlcnJlcjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgY29yZTo6RE9NU3RyaW5n
ICAgICAgZG9tYWluOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBjb3JlOjpET01TdHJpbmcgICAg
ICBVUkw7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1NWR0VsZW1lbnQgcm9vdEVsZW1lbnQ7
Ci0KLQkvLyBPdmVyd3JpdGUgdGhlIG9uZSBpbiBldmVudHM6OkRvY3VtZW50RXZlbnQKLQlldmVu
dHM6OkV2ZW50IGNyZWF0ZUV2ZW50KGluIGNvcmU6OkRPTVN0cmluZyBldmVudFR5cGUpIFtyYWlz
ZXMoY29yZTo6RE9NRXhjZXB0aW9uKV07Ci0gIH07Ci19OwpJbmRleDoga3N2ZzIvYmluZGluZ3Mv
aWRsL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvYmluZGlu
Z3MvaWRsL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5pZGwJKHJldmlzaW9uIDE0NjIyKQorKysga3N2
ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTEsNyArMCwwIEBACi1tb2R1bGUgc3ZnCi17Ci0gIGludGVyZmFjZSBTVkdBbmltYXRlZExl
bmd0aCB7IAotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdMZW5ndGggYmFzZVZhbDsKLSAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHTGVuZ3RoIGFuaW1WYWw7Ci0gIH07Ci19OwpJbmRleDoga3N2
ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdTVkdFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3Zn
Mi9iaW5kaW5ncy9pZGwvc3ZnL1NWR1NWR0VsZW1lbnQuaWRsCShyZXZpc2lvbiAxNDYyMikKKysr
IGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHU1ZHRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTEsNTkgKzAsMCBAQAotbW9kdWxlIHN2ZwotewotICAvLyBUT0RPOiBubyBjc3M6OlZpZXdD
U1MgYXZhaWxhYmxlIGluIGtkb20hCi0gIC8vIFRPRE86IEZpeCBTVkdTVkdFbGVtZW50IGluaGVy
aXRhbmNlIChjc3M6OkRvY3VtZW50Q1NTKSEgCi0gIGludGVyZmFjZSBTVkdTVkdFbGVtZW50IDog
Ci0gICAgICAgICAgICAgICAgU1ZHRWxlbWVudCwKLSAgICAgICAgICAgICAgICBTVkdUZXN0cywK
LSAgICAgICAgICAgICAgICBTVkdMYW5nU3BhY2UsCi0gICAgICAgICAgICAgICAgU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZCwKLSAgICAgICAgICAgICAgICBTVkdTdHlsYWJsZSwKLSAgICAg
ICAgICAgICAgICBTVkdMb2NhdGFibGUsCi0gICAgICAgICAgICAgICAgU1ZHRml0VG9WaWV3Qm94
LAotICAgICAgICAgICAgICAgIFNWR1pvb21BbmRQYW4sCi0gICAgICAgICAgICAgICAgZXZlbnRz
OjpEb2N1bWVudEV2ZW50IHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5n
dGggeDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggeTsKLSAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggd2lkdGg7Ci0gICAgcmVhZG9ubHkg
YXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIGhlaWdodDsKLSAgICAgICAgICAgICBhdHRyaWJ1
dGUgY29yZTo6RE9NU3RyaW5nICAgICAgICAgY29udGVudFNjcmlwdFR5cGU7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCi0gICAgICAg
ICAgICAgYXR0cmlidXRlIGNvcmU6OkRPTVN0cmluZyAgICAgICAgIGNvbnRlbnRTdHlsZVR5cGU7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0
aW5nCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1JlY3QgICAgICAgICAgIHZpZXdwb3J0Owot
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBwaXhlbFVuaXRUb01pbGxpbWV0ZXJYOwotICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBwaXhlbFVuaXRUb01pbGxpbWV0ZXJZOwotICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBzY3JlZW5QaXhlbFRvTWlsbGltZXRlclg7Ci0gICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGZsb2F0IHNjcmVlblBpeGVsVG9NaWxsaW1ldGVyWTsKLSAgICAgICAg
ICAgICBhdHRyaWJ1dGUgYm9vbGVhbiB1c2VDdXJyZW50VmlldzsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKLS8vIFRPRE8gICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR1ZpZXdTcGVjIGN1cnJlbnRWaWV3OwotICAgICAgICAgICAgIGF0
dHJpYnV0ZSBmbG9hdCBjdXJyZW50U2NhbGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8g
cmFpc2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFNW
R1BvaW50IGN1cnJlbnRUcmFuc2xhdGU7Ci0gICAgdW5zaWduZWQgbG9uZyBzdXNwZW5kUmVkcmF3
ICggaW4gdW5zaWduZWQgbG9uZyBtYXhfd2FpdF9taWxsaXNlY29uZHMgKTsKLSAgICB2b2lkICAg
ICAgICAgIHVuc3VzcGVuZFJlZHJhdyAoIGluIHVuc2lnbmVkIGxvbmcgc3VzcGVuZF9oYW5kbGVf
aWQgKQotICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERPTUV4Y2VwdGlvbiApOwotICAgIHZv
aWQgICAgICAgICAgdW5zdXNwZW5kUmVkcmF3QWxsICggICk7Ci0gICAgdm9pZCAgICAgICAgICBm
b3JjZVJlZHJhdyAoICApOwotICAgIHZvaWQgICAgICAgICAgcGF1c2VBbmltYXRpb25zICggICk7
Ci0gICAgdm9pZCAgICAgICAgICB1bnBhdXNlQW5pbWF0aW9ucyAoICApOwotICAgIGJvb2xlYW4g
ICAgICAgYW5pbWF0aW9uc1BhdXNlZCAoICApOwotICAgIGZsb2F0ICAgICAgICAgZ2V0Q3VycmVu
dFRpbWUgKCAgKTsKLSAgICB2b2lkICAgICAgICAgIHNldEN1cnJlbnRUaW1lICggaW4gZmxvYXQg
c2Vjb25kcyApOwotICAgIGNvcmU6Ok5vZGVMaXN0ICAgICAgZ2V0SW50ZXJzZWN0aW9uTGlzdCAo
IGluIFNWR1JlY3QgcmVjdCwgaW4gU1ZHRWxlbWVudCByZWZlcmVuY2VFbGVtZW50ICk7Ci0gICAg
Y29yZTo6Tm9kZUxpc3QgICAgICBnZXRFbmNsb3N1cmVMaXN0ICggaW4gU1ZHUmVjdCByZWN0LCBp
biBTVkdFbGVtZW50IHJlZmVyZW5jZUVsZW1lbnQgKTsKLSAgICBib29sZWFuICAgICAgIGNoZWNr
SW50ZXJzZWN0aW9uICggaW4gU1ZHRWxlbWVudCBlbGVtZW50LCBpbiBTVkdSZWN0IHJlY3QgKTsK
LSAgICBib29sZWFuICAgICAgIGNoZWNrRW5jbG9zdXJlICggaW4gU1ZHRWxlbWVudCBlbGVtZW50
LCBpbiBTVkdSZWN0IHJlY3QgKTsKLSAgICB2b2lkICAgICAgICAgIGRlc2VsZWN0QWxsICggICk7
Ci0gICAgU1ZHTnVtYmVyICAgICAgICAgICAgICBjcmVhdGVTVkdOdW1iZXIgKCAgKTsKLSAgICBT
VkdMZW5ndGggICAgICAgICAgICAgIGNyZWF0ZVNWR0xlbmd0aCAoICApOwotICAgIFNWR0FuZ2xl
ICAgICAgICAgICAgICAgY3JlYXRlU1ZHQW5nbGUgKCAgKTsKLSAgICBTVkdQb2ludCAgICAgICAg
ICAgICAgIGNyZWF0ZVNWR1BvaW50ICggICk7Ci0gICAgU1ZHTWF0cml4ICAgICAgICAgICAgICBj
cmVhdGVTVkdNYXRyaXggKCAgKTsKLSAgICBTVkdSZWN0ICAgICAgICAgICAgICAgIGNyZWF0ZVNW
R1JlY3QgKCAgKTsKLSAgICBTVkdUcmFuc2Zvcm0gICAgICAgICAgIGNyZWF0ZVNWR1RyYW5zZm9y
bSAoICApOwotICAgIFNWR1RyYW5zZm9ybSAgICAgY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJp
eCAoIGluIFNWR01hdHJpeCBtYXRyaXggKTsKLS8vIFRPRE8gICAgY29yZTo6RWxlbWVudCAgICAg
ICAgIGdldEVsZW1lbnRCeUlkICggaW4gY29yZTo6RE9NU3RyaW5nIGVsZW1lbnRJZCApOwotICB9
OwotfTsKSW5kZXg6IGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcva2RvbWRlZnMuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcva2RvbWRlZnMuaWRsCShyZXZpc2lvbiAxNDYy
MikKKysrIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcva2RvbWRlZnMuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0xICswLDAgQEAKLW1vZHVsZSBzdmcgW25zIEtTVkddOwpJbmRleDoga3N2ZzIvYmluZGlu
Z3MvaWRsL3N2Zy9TVkdMZW5ndGguaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL2JpbmRpbmdzL2lk
bC9zdmcvU1ZHTGVuZ3RoLmlkbAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9iaW5kaW5ncy9p
ZGwvc3ZnL1NWR0xlbmd0aC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjYgKzAsMCBAQAotbW9k
dWxlIHN2ZwotewotICBpbnRlcmZhY2UgU1ZHTGVuZ3RoIHsgCi0gICAgLy8gTGVuZ3RoIFVuaXQg
VHlwZXMKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQRV9VTktOT1dOICAg
ID0gMDsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQRV9OVU1CRVIgICAg
ID0gMTsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQRV9QRVJDRU5UQUdF
ID0gMjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQRV9FTVMgICAgICAg
ID0gMzsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQRV9FWFMgICAgICAg
ID0gNDsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQRV9QWCAgICAgICAg
ID0gNTsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQRV9DTSAgICAgICAg
ID0gNjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQRV9NTSAgICAgICAg
ID0gNzsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQRV9JTiAgICAgICAg
ID0gODsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQRV9QVCAgICAgICAg
ID0gOTsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQRV9QQyAgICAgICAg
ID0gMTA7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlOwot
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCAgICAgICAgICB2YWx1ZTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNldHRpbmcKLSAgICAgICAg
ICAgICBhdHRyaWJ1dGUgZmxvYXQgICAgICAgICAgdmFsdWVJblNwZWNpZmllZFVuaXRzOwotICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZwot
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBjb3JlOjpET01TdHJpbmcgICAgICB2YWx1ZUFzU3RyaW5n
OwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0
dGluZwotICAgIHZvaWQgbmV3VmFsdWVTcGVjaWZpZWRVbml0cyAoIGluIHVuc2lnbmVkIHNob3J0
IHVuaXRUeXBlLCBpbiBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMgKTsKLSAgICB2b2lkIGNv
bnZlcnRUb1NwZWNpZmllZFVuaXRzICggaW4gdW5zaWduZWQgc2hvcnQgdW5pdFR5cGUgKTsKLSAg
fTsKLX07CkluZGV4OiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0FuZ2xlLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0FuZ2xlLmlkbAkocmV2aXNpb24gMTQ2
MjIpCisrKyBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0FuZ2xlLmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMSwyMCArMCwwIEBACi1tb2R1bGUgc3ZnCi17Ci0gIGludGVyZmFjZSBTVkdBbmdsZSB7
IAotICAgIC8vIEFuZ2xlIFVuaXQgVHlwZXMKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
QU5HTEVUWVBFX1VOS05PV04gICAgID0gMDsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
QU5HTEVUWVBFX1VOU1BFQ0lGSUVEID0gMTsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
QU5HTEVUWVBFX0RFRyAgICAgICAgID0gMjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
QU5HTEVUWVBFX1JBRCAgICAgICAgID0gMzsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
QU5HTEVUWVBFX0dSQUQgICAgICAgID0gNDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgc2hvcnQgdW5pdFR5cGU7Ci0gICAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0ICAgICAgICAg
IHZhbHVlOwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24g
b24gc2V0dGluZwotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCAgICAgICAgICB2YWx1ZUlu
U3BlY2lmaWVkVW5pdHM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2VzIERPTUV4
Y2VwdGlvbiBvbiBzZXR0aW5nCi0gICAgICAgICAgICAgYXR0cmlidXRlIGNvcmU6OkRPTVN0cmlu
ZyAgICAgIHZhbHVlQXNTdHJpbmc7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2Vz
IERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCi0gICAgdm9pZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRz
ICggaW4gdW5zaWduZWQgc2hvcnQgdW5pdFR5cGUsIGluIGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRV
bml0cyApOwotICAgIHZvaWQgY29udmVydFRvU3BlY2lmaWVkVW5pdHMgKCBpbiB1bnNpZ25lZCBz
aG9ydCB1bml0VHlwZSApOwotICB9OwotfTsKSW5kZXg6IGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcv
U1ZHRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdF
bGVtZW50LmlkbAkocmV2aXNpb24gMTQ2MjIpCisrKyBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NW
R0VsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyICswLDAgQEAKLW1vZHVsZSBzdmcK
LXsKLSAgaW50ZXJmYWNlIFNWR0VsZW1lbnQgOiBjb3JlOjpFbGVtZW50IHsKLS8vIE5PVEU6IHVz
aW5nIGdldElkIGJlY2F1c2UgaWQgYWxyZWFkeSBpbiB1c2UgaW4gTm9kZQotICAgIGF0dHJpYnV0
ZSBjb3JlOjpET01TdHJpbmcgZ2V0SWQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFp
c2VzIERPTUV4Y2VwdGlvbiBvbiBzZXR0aW5nCi0gICAgYXR0cmlidXRlIGNvcmU6OkRPTVN0cmlu
ZyB4bWxiYXNlOwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRp
b24gb24gc2V0dGluZwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdTVkdFbGVtZW50IG93bmVy
U1ZHRWxlbWVudDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHRWxlbWVudCB2aWV3cG9ydEVs
ZW1lbnQ7Ci0gIH07Ci19OwpJbmRleDoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdSZWN0Lmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR1JlY3QuaWRsCShyZXZp
c2lvbiAxNDYyMikKKysrIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHUmVjdC5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMTMgKzAsMCBAQAotbW9kdWxlIHN2ZwotewotICBpbnRlcmZhY2UgU1ZH
UmVjdCB7IAotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB4OwotICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZwotICAgICAgICAgICAg
IGF0dHJpYnV0ZSBmbG9hdCB5OwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhaXNlcyBE
T01FeGNlcHRpb24gb24gc2V0dGluZwotICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB3aWR0
aDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyByYWlzZXMgRE9NRXhjZXB0aW9uIG9uIHNl
dHRpbmcKLSAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgaGVpZ2h0OwotICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIHJhaXNlcyBET01FeGNlcHRpb24gb24gc2V0dGluZwotICB9OwotfTsK
SW5kZXg6IGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQ29sb3IuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQ29sb3IuaWRsCShyZXZpc2lvbiAxNDYyMikKKysr
IGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHQ29sb3IuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDE5ICswLDAgQEAKLW1vZHVsZSBzdmcKLXsKLSAgaW50ZXJmYWNlIFNWR0NvbG9yIDogY3NzOjpD
U1NWYWx1ZSB7IAotICAgIC8vIENvbG9yIFR5cGVzCi0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
U1ZHX0NPTE9SVFlQRV9VTktOT1dOICAgICAgICAgICA9IDA7Ci0gICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUiAgICAgICAgICA9IDE7Ci0gICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUl9JQ0NDT0xPUiA9IDI7Ci0gICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgU1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IgICAgICA9IDM7Ci0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNvbG9yVHlwZTsKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgY3NzOjpSR0JDb2xvciAgcmdiQ29sb3I7Ci0gICAgLy9yZWFkb25seSBh
dHRyaWJ1dGUgU1ZHSUNDQ29sb3IgICAgaWNjQ29sb3I7Ci0gICAgdm9pZCAgICAgICAgc2V0UkdC
Q29sb3IgKCBpbiBjb3JlOjpET01TdHJpbmcgcmdiQ29sb3IgKQotICAgICAgICAgICAgICAgICAg
ICByYWlzZXMoIFNWR0V4Y2VwdGlvbiApOwotICAgIHZvaWQgICAgICAgIHNldFJHQkNvbG9ySUND
Q29sb3IgKCBpbiBjb3JlOjpET01TdHJpbmcgcmdiQ29sb3IsIGluIGNvcmU6OkRPTVN0cmluZyBp
Y2NDb2xvciApCi0gICAgICAgICAgICAgICAgICAgIHJhaXNlcyggU1ZHRXhjZXB0aW9uICk7Ci0g
ICAgdm9pZCAgICAgICAgc2V0Q29sb3IgKCBpbiB1bnNpZ25lZCBzaG9ydCBjb2xvclR5cGUsIGlu
IGNvcmU6OkRPTVN0cmluZyByZ2JDb2xvciwgaW4gY29yZTo6RE9NU3RyaW5nIGljY0NvbG9yICkK
LSAgICAgICAgICAgICAgICAgICAgcmFpc2VzKCBTVkdFeGNlcHRpb24gKTsKLSAgfTsKLX07Cklu
ZGV4OiBrc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR1JlY3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9i
aW5kaW5ncy9qcy9KU1NWR1JlY3QuaAkocmV2aXNpb24gMCkKKysrIGtzdmcyL2JpbmRpbmdzL2pz
L0pTU1ZHUmVjdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIEpTU1ZHUmVjdF9ICisjZGVmaW5lIEpTU1ZHUmVjdF9ICisKKyNpbmNs
dWRlICJranNfYmluZGluZy5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIEpTU1ZHUmVjdCA6IHB1YmxpYyBLSlM6OkRPTU9iamVjdCB7Citw
dWJsaWM6CisgICAgSlNTVkdSZWN0KEtKUzo6RXhlY1N0YXRlKiwgY29uc3QgRmxvYXRSZWN0JiBy
KSA6IG1fcmVjdChyKSB7IH0KKyAgICB+SlNTVkdSZWN0KCk7CisgICAgCisgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChLSlM6OkV4ZWNTdGF0ZSosIGNvbnN0IEtKUzo6SWRlbnRp
ZmllciYsIEtKUzo6UHJvcGVydHlTbG90Jik7CisgICAgSlNWYWx1ZSogZ2V0VmFsdWVQcm9wZXJ0
eShLSlM6OkV4ZWNTdGF0ZSosIGludCB0b2tlbikgY29uc3Q7CisgICAgLy8gbm8gcHV0IC0gYWxs
IHJlYWQtb25seQorICAgIAorICAgIHZpcnR1YWwgY29uc3QgS0pTOjpDbGFzc0luZm8qIGNsYXNz
SW5mbygpIGNvbnN0IHsgcmV0dXJuICZpbmZvOyB9CisgICAgc3RhdGljIGNvbnN0IEtKUzo6Q2xh
c3NJbmZvIGluZm87CisgICAgZW51bSB7IFJlY3RYLCBSZWN0WSwgUmVjdFdpZHRoLCBSZWN0SGVp
Z2h0IH07CisgICAgCisgICAgRmxvYXRSZWN0IGltcGwoKSB7IHJldHVybiBtX3JlY3Q7IH0KKyAg
ICAKK3ByaXZhdGU6CisgICAgRmxvYXRSZWN0IG1fcmVjdDsKK307CisKK0tKUzo6SlNWYWx1ZSog
Z2V0SlNTVkdSZWN0KEtKUzo6RXhlY1N0YXRlKiwgY29uc3QgRmxvYXRSZWN0Jik7CitGbG9hdFJl
Y3QgdG9GbG9hdFJlY3QoS0pTOjpKU1ZhbHVlKik7CisKK30KKworI2VuZGlmCkluZGV4OiBrc3Zn
Mi9iaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga3N2ZzIvYmluZGluZ3MvanMvSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCShyZXZp
c2lvbiAwKQorKysga3N2ZzIvYmluZGluZ3MvanMvSlNTVkdFbGVtZW50V3JhcHBlckZhY3Rvcnku
Y3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY0IEBACisvKgorICogIENvcHlyaWdodCAoQykg
MjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdy
aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxl
IFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5o
IgorCisjaW5jbHVkZSAiSlNTVkdTVkdFbGVtZW50LmgiCisKKyNpbmNsdWRlICJTVkdOYW1lcy5o
IgorCisjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgorCit1c2luZyBuYW1lc3BhY2UgS0pTOwor
CisvLyBGSVhNRTogRXZlbnR1YWxseSB0aGlzIGZpbGUgc2hvdWxkIGJlIGF1dG9nZW5lcmF0ZWQs
IGp1c3QgbGlrZSBTVkdOYW1lcywgU1ZHRWxlbWVudEZhY3RvcnksIGV0Yy4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgU1ZHTmFtZXM7CisKK3R5cGVkZWYgRE9NTm9k
ZSogKCpDcmVhdGVTVkdFbGVtZW50V3JhcHBlckZ1bmN0aW9uKShFeGVjU3RhdGUqLCBQYXNzUmVm
UHRyPFNWR0VsZW1lbnQ+KTsKKworI2RlZmluZSBGT1JfRUFDSF9UQUcobWFjcm8pIFwKKyAgICBt
YWNybyhzdmcsIFNWRykgXAorICAgIC8vIGVuZCBvZiBtYWNybworCisjZGVmaW5lIENSRUFURV9X
UkFQUEVSX0ZVTkNUSU9OKHRhZywgbmFtZSkgXAorc3RhdGljIERPTU5vZGUqIGNyZWF0ZSMjbmFt
ZSMjV3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8U1ZHRWxlbWVudD4gZWxlbWVu
dCkgXAoreyBcCisgICAgcmV0dXJuIG5ldyBKU1NWRyMjbmFtZSMjRWxlbWVudChleGVjLCBzdGF0
aWNfY2FzdDxTVkcjI25hbWUjI0VsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7IFwKK30KK0ZPUl9F
QUNIX1RBRyhDUkVBVEVfV1JBUFBFUl9GVU5DVElPTikKKyN1bmRlZiBDUkVBVEVfV1JBUFBFUl9G
VU5DVElPTgorCitET01Ob2RlKiBjcmVhdGVKU1NWR1dyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBQ
YXNzUmVmUHRyPFNWR0VsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgc3RhdGljIEhhc2hNYXA8V2Vi
Q29yZTo6QXRvbWljU3RyaW5nSW1wbCosIENyZWF0ZVNWR0VsZW1lbnRXcmFwcGVyRnVuY3Rpb24+
IG1hcDsKKyAgICBpZiAobWFwLmlzRW1wdHkoKSkgeworI2RlZmluZSBBRERfVE9fSEFTSF9NQVAo
dGFnLCBuYW1lKSBtYXAuc2V0KHRhZyMjVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlIyNu
YW1lIyNXcmFwcGVyKTsKK0ZPUl9FQUNIX1RBRyhBRERfVE9fSEFTSF9NQVApCisjdW5kZWYgQURE
X1RPX0hBU0hfTUFQCisgICAgfQorICAgIENyZWF0ZVNWR0VsZW1lbnRXcmFwcGVyRnVuY3Rpb24g
Y3JlYXRlV3JhcHBlckZ1bmN0aW9uID0gbWFwLmdldChlbGVtZW50LT5sb2NhbE5hbWUoKS5pbXBs
KCkpOworICAgIGlmIChjcmVhdGVXcmFwcGVyRnVuY3Rpb24pCisgICAgICAgIHJldHVybiBjcmVh
dGVXcmFwcGVyRnVuY3Rpb24oZXhlYywgZWxlbWVudCk7CisgICAgcmV0dXJuIG5ldyBKU1NWR0Vs
ZW1lbnQoZXhlYywgZWxlbWVudC5nZXQoKSk7Cit9CisKK30KSW5kZXg6IGtzdmcyL2JpbmRpbmdz
L2pzL0pTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvYmlu
ZGluZ3MvanMvSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaAkocmV2aXNpb24gMCkKKysrIGtz
dmcyL2JpbmRpbmdzL2pzL0pTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1
dGVyLCBJbmMuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMz
MCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisgKi8KKworI2lmbmRlZiBKU1NWR0VMRU1F
TlRXUkFQUEVSRkFDVE9SWV9ICisjZGVmaW5lIEpTU1ZHRUxFTUVOVFdSQVBQRVJGQUNUT1JZX0gK
KworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBLSlMgeworICAgIGNsYXNz
IERPTU5vZGU7CisgICAgY2xhc3MgRXhlY1N0YXRlOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisgICAgY2xhc3MgU1ZHRWxlbWVudDsKKyAgICBLSlM6OkRPTU5vZGUqIGNyZWF0ZUpTU1ZHV3Jh
cHBlcihLSlM6OkV4ZWNTdGF0ZSosIFBhc3NSZWZQdHI8U1ZHRWxlbWVudD4pOworfQorCisjZW5k
aWYKSW5kZXg6IGtzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHTnVtYmVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBrc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR051bWJlci5jcHAJKHJldmlzaW9uIDApCisrKyBrc3Zn
Mi9iaW5kaW5ncy9qcy9KU1NWR051bWJlci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJK
U1NWR051bWJlci5oIgorCit1c2luZyBuYW1lc3BhY2UgS0pTOworCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NvbnN0IENsYXNzSW5mbyBKU1NWR051bWJlcjo6aW5mbyA9IHsgIlNWR051bWJlciIs
IDAsIDAsIDAgfTsKKworSlNTVkdOdW1iZXI6On5KU1NWR051bWJlcigpCit7Cit9CisKK2Jvb2wg
SlNTVkdOdW1iZXI6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIGlmIChw
cm9wZXJ0eU5hbWUgPT0gInZhbHVlIikgeworICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBn
ZXRWYWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gRE9NT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKwor
SlNWYWx1ZSogSlNTVkdOdW1iZXI6OmdldFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IG9yaWdpbmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFBy
b3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU1NWR051bWJlciogdGhpc09iaiA9IHN0YXRpY19j
YXN0PEpTU1ZHTnVtYmVyKj4oc2xvdC5zbG90QmFzZSgpKTsKKyAgICBpZiAocHJvcGVydHlOYW1l
ID09ICJ2YWx1ZSIpCisgICAgICAgIHJldHVybiBqc051bWJlcih0aGlzT2JqLT5tX3ZhbHVlKTsK
KyAgICByZXR1cm4gMDsKK30KKworSlNWYWx1ZSogZ2V0SlNTVkdOdW1iZXIoRXhlY1N0YXRlKiBl
eGVjLCBmbG9hdCB2KQoreworICAgIHJldHVybiBuZXcgSlNTVkdOdW1iZXIoZXhlYywgdik7Cit9
CisKK30KSW5kZXg6IGtzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHUG9pbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHUG9pbnQuY3BwCShyZXZpc2lvbiAwKQorKysga3N2
ZzIvYmluZGluZ3MvanMvSlNTVkdQb2ludC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJK
U1NWR1BvaW50LmgiCisKKyNpbmNsdWRlICJKU1NWR1BvaW50VGFibGUuY3BwIgorCit1c2luZyBu
YW1lc3BhY2UgS0pTOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IENsYXNzSW5mbyBK
U1NWR1BvaW50OjppbmZvID0geyAiU1ZHUG9pbnQiLCAwLCAmSlNTVkdQb2ludFRhYmxlLCAwIH07
CisvKgorQGJlZ2luIEpTU1ZHUG9pbnRUYWJsZSA0CisgIHggICAgICAgICBXZWJDb3JlOjpKU1NW
R1BvaW50OjpQb2ludFggICAgICAgRG9udERlbGV0ZXxSZWFkT25seQorICB5ICAgICAgICAgV2Vi
Q29yZTo6SlNTVkdQb2ludDo6UG9pbnRZICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKK0BlbmQK
KyovCisKK0pTU1ZHUG9pbnQ6On5KU1NWR1BvaW50KCkKK3sKK30KKworYm9vbCBKU1NWR1BvaW50
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0U3RhdGlj
VmFsdWVTbG90PEpTU1ZHUG9pbnQsIERPTU9iamVjdD4oZXhlYywgICZKU1NWR1BvaW50VGFibGUs
IHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK0pTVmFsdWUqIEpTU1ZHUG9pbnQ6Omdl
dFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNvbnN0Cit7CisgICAg
c3dpdGNoICh0b2tlbikgeworICAgIGNhc2UgUG9pbnRYOgorICAgICAgICByZXR1cm4ganNOdW1i
ZXIobV9wb2ludC54KCkpOworICAgIGNhc2UgUG9pbnRZOgorICAgICAgICByZXR1cm4ganNOdW1i
ZXIobV9wb2ludC55KCkpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0K
K30KKworSlNWYWx1ZSogZ2V0SlNTVkdQb2ludChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEZsb2F0
UG9pbnQmIHApCit7CisgICAgcmV0dXJuIG5ldyBKU1NWR1BvaW50KGV4ZWMsIHApOworfQorCitG
bG9hdFBvaW50IHRvRmxvYXRQb2ludChKU1ZhbHVlKiB2YWwpCit7CisgICAgcmV0dXJuIHZhbC0+
aXNPYmplY3QoJkpTU1ZHUG9pbnQ6OmluZm8pID8gc3RhdGljX2Nhc3Q8SlNTVkdQb2ludCo+KHZh
bCktPmltcGwoKSA6IEZsb2F0UG9pbnQoKTsKK30KKworfQpJbmRleDoga3N2ZzIvYmluZGluZ3Mv
anMvSlNTVkdOdW1iZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9iaW5kaW5ncy9qcy9KU1NWR051
bWJlci5oCShyZXZpc2lvbiAwKQorKysga3N2ZzIvYmluZGluZ3MvanMvSlNTVkdOdW1iZXIuaAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBB
cHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBKU1NWR051bWJlcl9ICisjZGVmaW5lIEpTU1ZHTnVtYmVyX0gKKworI2luY2x1ZGUgImtqc19i
aW5kaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSlNTVkdOdW1iZXIgOiBw
dWJsaWMgS0pTOjpET01PYmplY3QgeworcHVibGljOgorICAgIEpTU1ZHTnVtYmVyKEtKUzo6RXhl
Y1N0YXRlKiwgZmxvYXQgdikgOiBtX3ZhbHVlKHYpIHsgfQorICAgIH5KU1NWR051bWJlcigpOwor
ICAgIAorICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoS0pTOjpFeGVjU3RhdGUq
LCBjb25zdCBLSlM6OklkZW50aWZpZXImLCBLSlM6OlByb3BlcnR5U2xvdCYpOworICAgIHN0YXRp
YyBKU1ZhbHVlKiBnZXRWYWx1ZShLSlM6OkV4ZWNTdGF0ZSosIEtKUzo6SlNPYmplY3QqIG9yaWdp
bmFsT2JqZWN0LCBjb25zdCBLSlM6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgS0pT
OjpQcm9wZXJ0eVNsb3QmIHNsb3QpOworICAgIC8vIG5vIHB1dCAtIGFsbCByZWFkLW9ubHkKKyAg
ICAKKyAgICB2aXJ0dWFsIGNvbnN0IEtKUzo6Q2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7
IHJldHVybiAmaW5mbzsgfQorICAgIHN0YXRpYyBjb25zdCBLSlM6OkNsYXNzSW5mbyBpbmZvOwor
cHJpdmF0ZToKKyAgICBmbG9hdCBtX3ZhbHVlOworfTsKKworS0pTOjpKU1ZhbHVlKiBnZXRKU1NW
R051bWJlcihLSlM6OkV4ZWNTdGF0ZSosIGZsb2F0KTsKKworfQorCisjZW5kaWYKSW5kZXg6IGtz
dmcyL2JpbmRpbmdzL2pzL0pTU1ZHUmVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvYmluZGlu
Z3MvanMvSlNTVkdSZWN0LmNwcAkocmV2aXNpb24gMCkKKysrIGtzdmcyL2JpbmRpbmdzL2pzL0pT
U1ZHUmVjdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1NWR1JlY3QuaCIKKworI2lu
Y2x1ZGUgIkpTU1ZHUmVjdFRhYmxlLmNwcCIKKwordXNpbmcgbmFtZXNwYWNlIEtKUzsKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjb25zdCBDbGFzc0luZm8gSlNTVkdSZWN0OjppbmZvID0geyAi
U1ZHUmVjdCIsIDAsICZKU1NWR1JlY3RUYWJsZSwgMCB9OworLyoKK0BiZWdpbiBKU1NWR1JlY3RU
YWJsZSA0CisgIHggICAgICAgICBXZWJDb3JlOjpKU1NWR1JlY3Q6OlJlY3RYICAgICAgICAgICBE
b250RGVsZXRlfFJlYWRPbmx5CisgIHkgICAgICAgICBXZWJDb3JlOjpKU1NWR1JlY3Q6OlJlY3RZ
ICAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5CisgIHdpZHRoICAgICBXZWJDb3JlOjpKU1NW
R1JlY3Q6OlJlY3RXaWR0aCAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5CisgIGhlaWdodCAgICBX
ZWJDb3JlOjpKU1NWR1JlY3Q6OlJlY3RIZWlnaHQgICAgICBEb250RGVsZXRlfFJlYWRPbmx5CitA
ZW5kCisqLworCitKU1NWR1JlY3Q6On5KU1NWR1JlY3QoKQoreworfQorCitib29sIEpTU1ZHUmVj
dDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgcmV0dXJuIGdldFN0YXRp
Y1ZhbHVlU2xvdDxKU1NWR1JlY3QsIERPTU9iamVjdD4oZXhlYywgICZKU1NWR1JlY3RUYWJsZSwg
dGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworSlNWYWx1ZSogSlNTVkdSZWN0OjpnZXRW
YWx1ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdAoreworICAgIHN3
aXRjaCAodG9rZW4pIHsKKyAgICBjYXNlIFJlY3RYOgorICAgICAgICByZXR1cm4ganNOdW1iZXIo
bV9yZWN0LngoKSk7CisgICAgY2FzZSBSZWN0WToKKyAgICAgICAgcmV0dXJuIGpzTnVtYmVyKG1f
cmVjdC55KCkpOworICAgIGNhc2UgUmVjdFdpZHRoOgorICAgICAgICByZXR1cm4ganNOdW1iZXIo
bV9yZWN0LndpZHRoKCkpOworICAgIGNhc2UgUmVjdEhlaWdodDoKKyAgICAgICAgcmV0dXJuIGpz
TnVtYmVyKG1fcmVjdC5oZWlnaHQoKSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgfQorfQorCitKU1ZhbHVlKiBnZXRKU1NWR1JlY3QoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBGbG9hdFJlY3QmIHIpCit7CisgICAgcmV0dXJuIG5ldyBKU1NWR1JlY3QoZXhlYywgcik7Cit9
CisKK0Zsb2F0UmVjdCB0b0Zsb2F0UmVjdChKU1ZhbHVlKiB2YWwpCit7CisgICAgcmV0dXJuIHZh
bC0+aXNPYmplY3QoJkpTU1ZHUmVjdDo6aW5mbykgPyBzdGF0aWNfY2FzdDxKU1NWR1JlY3QqPih2
YWwpLT5pbXBsKCkgOiBGbG9hdFJlY3QoKTsKK30KKworfQpJbmRleDoga3N2ZzIvYmluZGluZ3Mv
anMvSlNTVkdQb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHUG9p
bnQuaAkocmV2aXNpb24gMCkKKysrIGtzdmcyL2JpbmRpbmdzL2pzL0pTU1ZHUG9pbnQuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBs
ZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBK
U1NWR1BvaW50X0gKKyNkZWZpbmUgSlNTVkdQb2ludF9ICisKKyNpbmNsdWRlICJranNfYmluZGlu
Zy5oIgorI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBKU1NWR1BvaW50IDogcHVibGljIEtKUzo6RE9NT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBK
U1NWR1BvaW50KEtKUzo6RXhlY1N0YXRlKiwgY29uc3QgRmxvYXRQb2ludCYgcCkgOiBtX3BvaW50
KHApIHsgfQorICAgIH5KU1NWR1BvaW50KCk7CisgICAgCisgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChLSlM6OkV4ZWNTdGF0ZSosIGNvbnN0IEtKUzo6SWRlbnRpZmllciYsIEtK
Uzo6UHJvcGVydHlTbG90Jik7CisgICAgSlNWYWx1ZSogZ2V0VmFsdWVQcm9wZXJ0eShLSlM6OkV4
ZWNTdGF0ZSosIGludCB0b2tlbikgY29uc3Q7CisgICAgLy8gbm8gcHV0IC0gYWxsIHJlYWQtb25s
eQorICAgIAorICAgIHZpcnR1YWwgY29uc3QgS0pTOjpDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNv
bnN0IHsgcmV0dXJuICZpbmZvOyB9CisgICAgc3RhdGljIGNvbnN0IEtKUzo6Q2xhc3NJbmZvIGlu
Zm87CisgICAgZW51bSB7IFBvaW50WCwgUG9pbnRZIH07CisgICAgCisgICAgRmxvYXRQb2ludCBp
bXBsKCkgeyByZXR1cm4gbV9wb2ludDsgfQorICAgIAorcHJpdmF0ZToKKyAgICBGbG9hdFBvaW50
IG1fcG9pbnQ7Cit9OworCitLSlM6OkpTVmFsdWUqIGdldEpTU1ZHUG9pbnQoS0pTOjpFeGVjU3Rh
dGUqLCBjb25zdCBGbG9hdFBvaW50Jik7CitGbG9hdFBvaW50IHRvRmxvYXRQb2ludChLSlM6OkpT
VmFsdWUqKTsKKyAgCit9CisKKyNlbmRpZgpJbmRleDogeG1sL3htbGF0dHJzLmluCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIHhtbC94bWxhdHRycy5pbgkocmV2aXNpb24gMCkKKysrIHhtbC94bWxhdHRycy5pbgko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorYmFzZQpJbmRleDogcGFnZS9GcmFtZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gcGFnZS9GcmFtZS5jcHAJKHJldmlzaW9uIDE0NjIyKQorKysgcGFnZS9GcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDYgKzgxLDcgQEAKICNpZiBTVkdfU1VQUE9SVAog
I2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiWExpbmtOYW1lcy5oIgorI2luY2x1ZGUg
IlhNTE5hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCiAjaW5jbHVk
ZSAiU1ZHRE9NSW1wbGVtZW50YXRpb24uaCIKICNlbmRpZgpAQCAtMTUzLDYgKzE1NCw3IEBACiAj
aWYgU1ZHX1NVUFBPUlQKICAgICBTVkdOYW1lczo6aW5pdCgpOwogICAgIFhMaW5rTmFtZXM6Omlu
aXQoKTsKKyAgICBYTUxOYW1lczo6aW5pdCgpOwogI2VuZGlmCiAKICAgICAvLyBGSVhNRTogRnJh
bWVzIHdlcmUgb3JpZ2luYWxseSBjcmVhdGVkIHdpdGggYSByZWZjb3VudCBvZiAxLCBsZWF2ZSB0
aGlzCg==
</data>
<flag name="review"
          id="2472"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>