<?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>231318</bug_id>
          
          <creation_ts>2021-10-06 12:10:23 -0700</creation_ts>
          <short_desc>Remove &quot;using namespace XPath;&quot; from XPathGrammar.cpp</short_desc>
          <delta_ts>2021-10-18 17:49:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1801242</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-06 12:10:23 -0700</bug_when>
    <thetext>Remove &quot;using namespace XPath;&quot; from XPathGrammar.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801243</commentid>
    <comment_count>1</comment_count>
      <attachid>440408</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-06 12:11:37 -0700</bug_when>
    <thetext>Created attachment 440408
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801274</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-10-06 12:58:16 -0700</bug_when>
    <thetext>Oh, got it. Didn’t know we had checked in the yacc output! Sorry for trouble I caused while &quot;helping&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801282</commentid>
    <comment_count>3</comment_count>
      <attachid>440422</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-06 13:04:54 -0700</bug_when>
    <thetext>Created attachment 440422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801297</commentid>
    <comment_count>4</comment_count>
      <attachid>440422</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-10-06 13:23:10 -0700</bug_when>
    <thetext>Comment on attachment 440422
Patch

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

&gt; Source/WebCore/xml/XPathGrammar.cpp:-2160
&gt; -  IGNORE_CLANG_WARNINGS_BEGIN(&quot;unreachable-code&quot;)
&gt;    if (/*CONSTCOND*/ 0)
&gt;       goto yyerrorlab;
&gt; -  IGNORE_CLANG_WARNINGS_END

I think we need to re-add this change? Since it’s a WebKit-specific macro, it’s unlikely this was generated by Bison.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801301</commentid>
    <comment_count>5</comment_count>
      <attachid>440429</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-06 13:25:31 -0700</bug_when>
    <thetext>Created attachment 440429
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801302</commentid>
    <comment_count>6</comment_count>
      <attachid>440430</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-06 13:26:13 -0700</bug_when>
    <thetext>Created attachment 440430
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801334</commentid>
    <comment_count>7</comment_count>
      <attachid>440430</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-10-06 14:00:13 -0700</bug_when>
    <thetext>Comment on attachment 440430
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        I did this by editing XPathGrammar.y and re-running bison.
&gt; +        We have the output of bison checked in to our repo to not have bison as a build dependency of WebKit.

Maybe we should record that &quot;ignore warnings&quot; step somewhere</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801442</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-06 17:27:05 -0700</bug_when>
    <thetext>I&apos;m not sure if the ignore warnings step is still needed.  It seems to have built fine without it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801463</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-10-06 18:12:23 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #8)
&gt; I&apos;m not sure if the ignore warnings step is still needed.  It seems to have
&gt; built fine without it.

Could use git to research when it was done, by who, to see if that makes logical sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802601</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-11 07:13:42 -0700</bug_when>
    <thetext>Apparently I added the original pragma that ignored that warning in https://trac.webkit.org/changeset/209883/webkit and I don&apos;t remember why.  Perhaps it was to make EWS green.  EWS is green now so I don&apos;t think it&apos;s needed any more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803904</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-13 12:11:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/84210320&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805775</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-18 16:46:07 -0700</bug_when>
    <thetext>commit-queue failed to commit attachment 440430 to WebKit repository. To retry, please set cq+ flag again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805810</commentid>
    <comment_count>13</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-18 17:49:51 -0700</bug_when>
    <thetext>I used svn to allow tabs rather than rewrite the generated source.
http://trac.webkit.org/r284420</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440408</attachid>
            <date>2021-10-06 12:11:37 -0700</date>
            <delta_ts>2021-10-06 13:04:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231318-20211006121136.patch</filename>
            <type>text/plain</type>
            <size>76858</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2U5OTY5NWQwZDA5Njcw
NTQwMDdiMDg2ZmJjYWUwZGMzMDFmOTAzYy4uZTZkNzdiOTU2YjFiZjZkYzZjZGRlNzZjMjY4NjVk
ZjdkMDRjN2Y2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTEwLTA2ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3Zl
ICJ1c2luZyBuYW1lc3BhY2UgWFBhdGg7IiBmcm9tIFhQYXRoR3JhbW1hci5jcHAKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTMxOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEkgZGlkIHRoaXMgYnkgZWRp
dGluZyBYUGF0aEdyYW1tYXIueSBhbmQgcmUtcnVubmluZyBiaXNvbi4KKyAgICAgICAgV2UgaGF2
ZSB0aGUgb3V0cHV0IG9mIGJpc29uIGNoZWNrZWQgaW4gdG8gb3VyIHJlcG8gdG8gbm90IGhhdmUg
Ymlzb24gYXMgYSBidWlsZCBkZXBlbmRlbmN5IG9mIFdlYktpdC4KKworICAgICAgICAqIHhtbC9Y
UGF0aEdyYW1tYXIuY3BwOgorICAgICAgICAoeHBhdGh5eWxleCk6CisgICAgICAgICh4cGF0aHl5
ZXJyb3IpOgorICAgICAgICAoeXlzeW50YXhfZXJyb3IpOgorICAgICAgICAqIHhtbC9YUGF0aEdy
YW1tYXIueToKKyAgICAgICAgKiB4bWwvWFBhdGhSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WFBhdGhSZXN1bHQ6OlhQYXRoUmVzdWx0KToKKwogMjAyMS0xMC0wNiAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYXIgZ2x5cGggY2FjaGUgaW4gSW5s
aW5lQ29udGVudDo6Y2xlYXJBbmREZXRhY2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YUGF0aEdyYW1tYXIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoR3JhbW1hci5jcHAK
aW5kZXggMGQ0ODg2N2E5OGY2ZTQzMTI4MmYzMjA0ZGU1MGQ2ZjIwOTQwMzc0My4uODU3NmVhNjdi
MTM3MWY4ZjA1OGUzZmU4YWNkMzUzODIzNjE0Y2Q5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUveG1sL1hQYXRoR3JhbW1hci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoR3Jh
bW1hci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKiBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIHVzaW5n
IHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKLSAgIGJpc29uIC1kIC1wIHhwYXRoeXkgWFBhdGhHcmFt
bWFyLnkgLW8gWFBhdGhHcmFtbWFyLmNwcCAKKyAgIGJpc29uIC1kIC1wIHhwYXRoeXkgWFBhdGhH
cmFtbWFyLnkgLW8gWFBhdGhHcmFtbWFyLmNwcAogICovCiAKIC8qIEEgQmlzb24gcGFyc2VyLCBt
YWRlIGJ5IEdOVSBCaXNvbiAyLjMuICAqLwpAQCAtMTI2LDggKzEyNiw5IEBACiAKIAogCisKIC8q
IENvcHkgdGhlIGZpcnN0IHBhcnQgb2YgdXNlciBkZWNsYXJhdGlvbnMuICAqLwotI2xpbmUgMjgg
IldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMjggIlhQYXRoR3JhbW1hci55Igog
CiAKICNpbmNsdWRlICJjb25maWcuaCIKQEAgLTEzOCw3ICsxMzksNiBAQAogI2luY2x1ZGUgIlhQ
YXRoU3RlcC5oIgogI2luY2x1ZGUgIlhQYXRoVmFyaWFibGVSZWZlcmVuY2UuaCIKIAotCiAjaWYg
Q09NUElMRVIoTVNWQykKIC8vIFNlZSBodHRwczovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9s
aWJyYXJ5LzF3ZWE1endlLmFzcHgKICNwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0NzAxKQpAQCAt
MTUyLDggKzE1Miw2IEBACiAjZGVmaW5lIFlZREVCVUcgMAogI2RlZmluZSBZWU1BWERFUFRIIDEw
MDAwCiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNwYWNlIFhQYXRoOwog
CiAKIC8qIEVuYWJsaW5nIHRyYWNlcy4gICovCkBAIC0xNzYsNyArMTc0LDcgQEAgdXNpbmcgbmFt
ZXNwYWNlIFhQYXRoOwogCiAjaWYgISBkZWZpbmVkIFlZU1RZUEUgJiYgISBkZWZpbmVkIFlZU1RZ
UEVfSVNfREVDTEFSRUQKIHR5cGVkZWYgdW5pb24gWVlTVFlQRQotI2xpbmUgNjAgIldlYkNvcmUv
eG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgNTcgIlhQYXRoR3JhbW1hci55IgogeyAKICAgICBX
ZWJDb3JlOjpYUGF0aDo6TnVtZXJpY09wOjpPcGNvZGUgbnVtZXJpY09wY29kZTsKICAgICBXZWJD
b3JlOjpYUGF0aDo6RXFUZXN0T3A6Ok9wY29kZSBlcXVhbGl0eVRlc3RPcGNvZGU7CkBAIC0xODks
OCArMTg3LDggQEAgdHlwZWRlZiB1bmlvbiBZWVNUWVBFCiAgICAgV2ViQ29yZTo6WFBhdGg6OkV4
cHJlc3Npb24qIGV4cHJlc3Npb247CiB9CiAvKiBMaW5lIDE5MyBvZiB5YWNjLmMuICAqLwotI2xp
bmUgMTkwICIuL1hQYXRoR3JhbW1hci5jcHAiCi0gICAgWVlTVFlQRTsKKyNsaW5lIDE4NyAiWFBh
dGhHcmFtbWFyLmNwcCIKKwlZWVNUWVBFOwogIyBkZWZpbmUgeXlzdHlwZSBZWVNUWVBFIC8qIG9i
c29sZXNjZW50OyB3aWxsIGJlIHdpdGhkcmF3biAqLwogIyBkZWZpbmUgWVlTVFlQRV9JU19ERUNM
QVJFRCAxCiAjIGRlZmluZSBZWVNUWVBFX0lTX1RSSVZJQUwgMQpAQCAtMTk5LDE2ICsxOTcsMTYg
QEAgdHlwZWRlZiB1bmlvbiBZWVNUWVBFCiAKIAogLyogQ29weSB0aGUgc2Vjb25kIHBhcnQgb2Yg
dXNlciBkZWNsYXJhdGlvbnMuICAqLwotI2xpbmUgMTA0ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1t
YXIueSIKKyNsaW5lIDEwMSAiWFBhdGhHcmFtbWFyLnkiCiAKIAotc3RhdGljIGludCB4cGF0aHl5
bGV4KFlZU1RZUEUqIHl5bHZhbCwgUGFyc2VyJiBwYXJzZXIpIHsgcmV0dXJuIHBhcnNlci5sZXgo
Knl5bHZhbCk7IH0KLXN0YXRpYyB2b2lkIHhwYXRoeXllcnJvcihQYXJzZXImLCBjb25zdCBjaGFy
KikgeyB9CitzdGF0aWMgaW50IHhwYXRoeXlsZXgoWVlTVFlQRSogeXlsdmFsLCBXZWJDb3JlOjpY
UGF0aDo6UGFyc2VyJiBwYXJzZXIpIHsgcmV0dXJuIHBhcnNlci5sZXgoKnl5bHZhbCk7IH0KK3N0
YXRpYyB2b2lkIHhwYXRoeXllcnJvcihXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiwgY29uc3QgY2hh
ciopIHsgfQogCiAKIAogLyogTGluZSAyMTYgb2YgeWFjYy5jLiAgKi8KLSNsaW5lIDIwOSAiLi9Y
UGF0aEdyYW1tYXIuY3BwIgorI2xpbmUgMjA2ICJYUGF0aEdyYW1tYXIuY3BwIgogCiAjaWZkZWYg
c2hvcnQKICMgdW5kZWYgc2hvcnQKQEAgLTM0MCw3ICszMzgsNyBAQCBZWUlEIChpKQogIyAgZW5k
aWYKICMgIGlmIChkZWZpbmVkIF9fY3BsdXNwbHVzICYmICEgZGVmaW5lZCBfU1RETElCX0ggXAog
ICAgICAgICYmICEgKChkZWZpbmVkIFlZTUFMTE9DIHx8IGRlZmluZWQgbWFsbG9jKSBcCi0gICAg
ICAgICAmJiAoZGVmaW5lZCBZWUZSRUUgfHwgZGVmaW5lZCBmcmVlKSkpCisJICAgICAmJiAoZGVm
aW5lZCBZWUZSRUUgfHwgZGVmaW5lZCBmcmVlKSkpCiAjICAgaW5jbHVkZSA8c3RkbGliLmg+IC8q
IElORlJJTkdFUyBPTiBVU0VSIE5BTUUgU1BBQ0UgKi8KICMgICBpZm5kZWYgX1NURExJQl9ICiAj
ICAgIGRlZmluZSBfU1RETElCX0ggMQpAQCAtMzY2LDcgKzM2NCw3IEBAIHZvaWQgZnJlZSAodm9p
ZCAqKTsgLyogSU5GUklOR0VTIE9OIFVTRVIgTkFNRSBTUEFDRSAqLwogCiAjaWYgKCEgZGVmaW5l
ZCB5eW92ZXJmbG93IFwKICAgICAgJiYgKCEgZGVmaW5lZCBfX2NwbHVzcGx1cyBcCi0gICAgIHx8
IChkZWZpbmVkIFlZU1RZUEVfSVNfVFJJVklBTCAmJiBZWVNUWVBFX0lTX1RSSVZJQUwpKSkKKwkg
fHwgKGRlZmluZWQgWVlTVFlQRV9JU19UUklWSUFMICYmIFlZU1RZUEVfSVNfVFJJVklBTCkpKQog
CiAvKiBBIHR5cGUgdGhhdCBpcyBwcm9wZXJseSBhbGlnbmVkIGZvciBhbnkgc3RhY2sgbWVtYmVy
LiAgKi8KIHVuaW9uIHl5YWxsb2MKQEAgLTM5MSwxMyArMzg5LDEzIEBAIHVuaW9uIHl5YWxsb2MK
ICMgICBkZWZpbmUgWVlDT1BZKFRvLCBGcm9tLCBDb3VudCkgXAogICAgICAgX19idWlsdGluX21l
bWNweSAoVG8sIEZyb20sIChDb3VudCkgKiBzaXplb2YgKCooRnJvbSkpKQogIyAgZWxzZQotIyAg
IGRlZmluZSBZWUNPUFkoVG8sIEZyb20sIENvdW50KSAgICAgICAgXAotICAgICAgZG8gICAgICAg
ICAgICAgICAgICAgIFwKLSAgICB7ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICBZWVNJWkVf
VCB5eWk7ICAgICAgICAgICAgICAgIFwKLSAgICAgIGZvciAoeXlpID0gMDsgeXlpIDwgKENvdW50
KTsgeXlpKyspICAgIFwKLSAgICAgICAgKFRvKVt5eWldID0gKEZyb20pW3l5aV07ICAgICAgICBc
Ci0gICAgfSAgICAgICAgICAgICAgICAgICAgXAorIyAgIGRlZmluZSBZWUNPUFkoVG8sIEZyb20s
IENvdW50KQkJXAorICAgICAgZG8JCQkJCVwKKwl7CQkJCQlcCisJICBZWVNJWkVfVCB5eWk7CQkJ
CVwKKwkgIGZvciAoeXlpID0gMDsgeXlpIDwgKENvdW50KTsgeXlpKyspCVwKKwkgICAgKFRvKVt5
eWldID0gKEZyb20pW3l5aV07CQlcCisJfQkJCQkJXAogICAgICAgd2hpbGUgKFlZSUQgKDApKQog
IyAgZW5kaWYKICMgZW5kaWYKQEAgLTQwNywxNSArNDA1LDE1IEBAIHVuaW9uIHl5YWxsb2MKICAg
IGVsZW1lbnRzIGluIHRoZSBzdGFjaywgYW5kIFlZUFRSIGdpdmVzIHRoZSBuZXcgbG9jYXRpb24g
b2YgdGhlCiAgICBzdGFjay4gIEFkdmFuY2UgWVlQVFIgdG8gYSBwcm9wZXJseSBhbGlnbmVkIGxv
Y2F0aW9uIGZvciB0aGUgbmV4dAogICAgc3RhY2suICAqLwotIyBkZWZpbmUgWVlTVEFDS19SRUxP
Q0FURShTdGFjaykgICAgICAgICAgICAgICAgICAgIFwKLSAgICBkbyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgWVlTSVpFX1QgeXluZXdieXRlczsgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgWVlDT1BZICgmeXlwdHItPlN0YWNrLCBTdGFjaywgeXlzaXplKTsgICAgICAgICAg
ICAgICAgXAotICAgIFN0YWNrID0gJnl5cHRyLT5TdGFjazsgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgeXluZXdieXRlcyA9IHl5c3RhY2tzaXplICogc2l6ZW9mICgqU3RhY2spICsgWVlT
VEFDS19HQVBfTUFYSU1VTTsgXAotICAgIHl5cHRyICs9IHl5bmV3Ynl0ZXMgLyBzaXplb2YgKCp5
eXB0cik7ICAgICAgICAgICAgICAgIFwKLSAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisjIGRlZmluZSBZWVNUQUNLX1JFTE9DQVRFKFN0YWNrKQkJCQkJXAorICAg
IGRvCQkJCQkJCQkJXAorICAgICAgewkJCQkJCQkJCVwKKwlZWVNJWkVfVCB5eW5ld2J5dGVzOwkJ
CQkJCVwKKwlZWUNPUFkgKCZ5eXB0ci0+U3RhY2ssIFN0YWNrLCB5eXNpemUpOwkJCQlcCisJU3Rh
Y2sgPSAmeXlwdHItPlN0YWNrOwkJCQkJCVwKKwl5eW5ld2J5dGVzID0geXlzdGFja3NpemUgKiBz
aXplb2YgKCpTdGFjaykgKyBZWVNUQUNLX0dBUF9NQVhJTVVNOyBcCisJeXlwdHIgKz0geXluZXdi
eXRlcyAvIHNpemVvZiAoKnl5cHRyKTsJCQkJXAorICAgICAgfQkJCQkJCQkJCVwKICAgICB3aGls
ZSAoWVlJRCAoMCkpCiAKICNlbmRpZgpAQCAtNDM4LDcgKzQzNiw3IEBAIHVuaW9uIHl5YWxsb2MK
ICNkZWZpbmUgWVlVTkRFRlRPSyAgMgogI2RlZmluZSBZWU1BWFVUT0sgICAyNzgKIAotI2RlZmlu
ZSBZWVRSQU5TTEFURShZWVgpICAgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBZWVRS
QU5TTEFURShZWVgpCQkJCQkJXAogICAoKHVuc2lnbmVkIGludCkgKFlZWCkgPD0gWVlNQVhVVE9L
ID8geXl0cmFuc2xhdGVbWVlYXSA6IFlZVU5ERUZUT0spCiAKIC8qIFlZVFJBTlNMQVRFW1lZTEVY
XSAtLSBCaXNvbiBzeW1ib2wgbnVtYmVyIGNvcnJlc3BvbmRpbmcgdG8gWVlMRVguICAqLwpAQCAt
NTE1LDEzICs1MTMsMTMgQEAgc3RhdGljIGNvbnN0IHl5dHlwZV9pbnQ4IHl5cmhzW10gPQogLyog
WVlSTElORVtZWU5dIC0tIHNvdXJjZSBsaW5lIHdoZXJlIHJ1bGUgbnVtYmVyIFlZTiB3YXMgZGVm
aW5lZC4gICovCiBzdGF0aWMgY29uc3QgeXl0eXBlX3VpbnQxNiB5eXJsaW5lW10gPQogewotICAg
ICAgIDAsICAgMTE0LCAgIDExNCwgICAxMjEsICAgMTI1LCAgIDEzMSwgICAxMzUsICAgMTQwLCAg
IDE0NSwgICAxNTMsCi0gICAgIDE1OSwgICAxNjUsICAgMTc0LCAgIDE4NCwgICAyMDIsICAgMjEz
LCAgIDIzMSwgICAyMzUsICAgMjM3LCAgIDI0NCwKLSAgICAgMjQ5LCAgIDI1NCwgICAyNTksICAg
MjY0LCAgIDI3MywgICAyNzcsICAgMjgxLCAgIDI4NywgICAyOTUsICAgMzAyLAotICAgICAzMDks
ICAgMzE0LCAgIDMyMSwgICAzMjcsICAgMzMyLCAgIDMzOCwgICAzNDQsICAgMzQ4LCAgIDM1Niwg
ICAzNjcsCi0gICAgIDM3MywgICAzODEsICAgMzg1LCAgIDM4NywgICAzOTQsICAgMzk5LCAgIDQw
MSwgICA0MDcsICAgNDE2LCAgIDQxOCwKLSAgICAgNDI2LCAgIDQyOCwgICA0MzUsICAgNDM3LCAg
IDQ0NCwgICA0NDYsICAgNDUzLCAgIDQ1NSwgICA0NjIsICAgNDY0LAotICAgICA0NjksICAgNDc2
LCAgIDQ3OCwgICA0ODUsICAgNDg3CisgICAgICAgMCwgICAxMTEsICAgMTExLCAgIDExOCwgICAx
MjIsICAgMTI4LCAgIDEzMiwgICAxMzcsICAgMTQyLCAgIDE1MCwKKyAgICAgMTU2LCAgIDE2Miwg
ICAxNzEsICAgMTgxLCAgIDE5OSwgICAyMTAsICAgMjI4LCAgIDIzMiwgICAyMzQsICAgMjQxLAor
ICAgICAyNDYsICAgMjUxLCAgIDI1NiwgICAyNjEsICAgMjcwLCAgIDI3NCwgICAyNzgsICAgMjg0
LCAgIDI5MiwgICAyOTksCisgICAgIDMwNiwgICAzMTEsICAgMzE4LCAgIDMyNCwgICAzMjksICAg
MzM1LCAgIDM0MSwgICAzNDUsICAgMzUzLCAgIDM2NCwKKyAgICAgMzcwLCAgIDM3OCwgICAzODIs
ICAgMzg0LCAgIDM5MSwgICAzOTYsICAgMzk4LCAgIDQwNCwgICA0MTMsICAgNDE1LAorICAgICA0
MjMsICAgNDI1LCAgIDQzMiwgICA0MzQsICAgNDQxLCAgIDQ0MywgICA0NTAsICAgNDUyLCAgIDQ1
OSwgICA0NjEsCisgICAgIDQ2NiwgICA0NzMsICAgNDc1LCAgIDQ4MiwgICA0ODQKIH07CiAjZW5k
aWYKIApAQCAtNTMzLDcgKzUzMSw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCB5eXRuYW1l
W10gPQogICAiJGVuZCIsICJlcnJvciIsICIkdW5kZWZpbmVkIiwgIk1VTE9QIiwgIlJFTE9QIiwg
IkVRT1AiLCAiTUlOVVMiLAogICAiUExVUyIsICJBTkQiLCAiT1IiLCAiRlVOQ1RJT05OQU1FIiwg
IkxJVEVSQUwiLCAiTkFNRVRFU1QiLCAiTlVNQkVSIiwKICAgIk5PREVUWVBFIiwgIlZBUklBQkxF
UkVGRVJFTkNFIiwgIkFYSVNOQU1FIiwgIkNPTU1FTlQiLCAiRE9URE9UIiwgIlBJIiwKLSAgIk5P
REUiLCAiU0xBU0hTTEFTSCIsICJURVhUIiwgIlhQQVRIX0VSUk9SIiwgIicvJyIsICInQCciLCAi
JygnIiwgIicpJyIsCisgICJOT0RFIiwgIlNMQVNIU0xBU0giLCAiVEVYVF8iLCAiWFBBVEhfRVJS
T1IiLCAiJy8nIiwgIidAJyIsICInKCciLCAiJyknIiwKICAgIidbJyIsICInXSciLCAiJy4nIiwg
IicsJyIsICInfCciLCAiJGFjY2VwdCIsICJUb3AiLCAiRXhwciIsCiAgICJMb2NhdGlvblBhdGgi
LCAiQWJzb2x1dGVMb2NhdGlvblBhdGgiLCAiUmVsYXRpdmVMb2NhdGlvblBhdGgiLCAiU3RlcCIs
CiAgICJBeGlzU3BlY2lmaWVyIiwgIk5vZGVUZXN0IiwgIk9wdGlvbmFsUHJlZGljYXRlTGlzdCIs
ICJQcmVkaWNhdGVMaXN0IiwKQEAgLTY5MCw0NCArNjg4LDQ0IEBAIHN0YXRpYyBjb25zdCB5eXR5
cGVfdWludDggeXlzdG9zW10gPQogICAgICAgNTAKIH07CiAKLSNkZWZpbmUgeXllcnJvayAgICAg
ICAgKHl5ZXJyc3RhdHVzID0gMCkKLSNkZWZpbmUgeXljbGVhcmluICAgICh5eWNoYXIgPSBZWUVN
UFRZKQotI2RlZmluZSBZWUVNUFRZICAgICAgICAoLTIpCi0jZGVmaW5lIFlZRU9GICAgICAgICAw
CisjZGVmaW5lIHl5ZXJyb2sJCSh5eWVycnN0YXR1cyA9IDApCisjZGVmaW5lIHl5Y2xlYXJpbgko
eXljaGFyID0gWVlFTVBUWSkKKyNkZWZpbmUgWVlFTVBUWQkJKC0yKQorI2RlZmluZSBZWUVPRgkJ
MAogCi0jZGVmaW5lIFlZQUNDRVBUICAgIGdvdG8geXlhY2NlcHRsYWIKLSNkZWZpbmUgWVlBQk9S
VCAgICAgICAgZ290byB5eWFib3J0bGFiCi0jZGVmaW5lIFlZRVJST1IgICAgICAgIGdvdG8geXll
cnJvcmxhYgorI2RlZmluZSBZWUFDQ0VQVAlnb3RvIHl5YWNjZXB0bGFiCisjZGVmaW5lIFlZQUJP
UlQJCWdvdG8geXlhYm9ydGxhYgorI2RlZmluZSBZWUVSUk9SCQlnb3RvIHl5ZXJyb3JsYWIKIAog
CiAvKiBMaWtlIFlZRVJST1IgZXhjZXB0IGRvIGNhbGwgeXllcnJvci4gIFRoaXMgcmVtYWlucyBo
ZXJlIHRlbXBvcmFyaWx5CiAgICB0byBlYXNlIHRoZSB0cmFuc2l0aW9uIHRvIHRoZSBuZXcgbWVh
bmluZyBvZiBZWUVSUk9SLCBmb3IgR0NDLgogICAgT25jZSBHQ0MgdmVyc2lvbiAyIGhhcyBzdXBw
bGFudGVkIHZlcnNpb24gMSwgdGhpcyBjYW4gZ28uICAqLwogCi0jZGVmaW5lIFlZRkFJTCAgICAg
ICAgZ290byB5eWVycmxhYgorI2RlZmluZSBZWUZBSUwJCWdvdG8geXllcnJsYWIKIAogI2RlZmlu
ZSBZWVJFQ09WRVJJTkcoKSAgKCEheXllcnJzdGF0dXMpCiAKLSNkZWZpbmUgWVlCQUNLVVAoVG9r
ZW4sIFZhbHVlKSAgICAgICAgICAgICAgICAgICAgXAotZG8gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgaWYgKHl5Y2hhciA9PSBZWUVNUFRZICYmIHl5bGVuID09IDEpICAgICAg
ICAgICAgICAgIFwKLSAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
ICB5eWNoYXIgPSAoVG9rZW4pOyAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIHl5bHZh
bCA9IChWYWx1ZSk7ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgeXl0b2tlbiA9IFlZ
VFJBTlNMQVRFICh5eWNoYXIpOyAgICAgICAgICAgICAgICBcCi0gICAgICBZWVBPUFNUQUNLICgx
KTsgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICBnb3RvIHl5YmFja3VwOyAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIFlZQkFDS1VQKFRva2VuLCBWYWx1ZSkJ
CQkJCVwKK2RvCQkJCQkJCQlcCisgIGlmICh5eWNoYXIgPT0gWVlFTVBUWSAmJiB5eWxlbiA9PSAx
KQkJCQlcCisgICAgewkJCQkJCQkJXAorICAgICAgeXljaGFyID0gKFRva2VuKTsJCQkJCQlcCisg
ICAgICB5eWx2YWwgPSAoVmFsdWUpOwkJCQkJCVwKKyAgICAgIHl5dG9rZW4gPSBZWVRSQU5TTEFU
RSAoeXljaGFyKTsJCQkJXAorICAgICAgWVlQT1BTVEFDSyAoMSk7CQkJCQkJXAorICAgICAgZ290
byB5eWJhY2t1cDsJCQkJCQlcCisgICAgfQkJCQkJCQkJXAorICBlbHNlCQkJCQkJCQlcCisgICAg
ewkJCQkJCQkJXAogICAgICAgeXllcnJvciAocGFyc2VyLCBZWV8oInN5bnRheCBlcnJvcjogY2Fu
bm90IGJhY2sgdXAiKSk7IFwKLSAgICAgIFlZRVJST1I7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBZWUVS
Uk9SOwkJCQkJCQlcCisgICAgfQkJCQkJCQkJXAogd2hpbGUgKFlZSUQgKDApKQogCiAKLSNkZWZp
bmUgWVlURVJST1IgICAgMQotI2RlZmluZSBZWUVSUkNPREUgICAgMjU2CisjZGVmaW5lIFlZVEVS
Uk9SCTEKKyNkZWZpbmUgWVlFUlJDT0RFCTI1NgogCiAKIC8qIFlZTExPQ19ERUZBVUxUIC0tIFNl
dCBDVVJSRU5UIHRvIHNwYW4gZnJvbSBSSFNbMV0gdG8gUkhTW05dLgpAQCAtNzM2LDIyICs3MzQs
MjIgQEAgd2hpbGUgKFlZSUQgKDApKQogCiAjZGVmaW5lIFlZUkhTTE9DKFJocywgSykgKChSaHMp
W0tdKQogI2lmbmRlZiBZWUxMT0NfREVGQVVMVAotIyBkZWZpbmUgWVlMTE9DX0RFRkFVTFQoQ3Vy
cmVudCwgUmhzLCBOKSAgICAgICAgICAgICAgICBcCi0gICAgZG8gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisjIGRlZmluZSBZWUxMT0NfREVGQVVMVChDdXJyZW50LCBSaHMs
IE4pCQkJCVwKKyAgICBkbwkJCQkJCQkJCVwKICAgICAgIGlmIChZWUlEIChOKSkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIChDdXJyZW50KS5maXJzdF9saW5lICAg
PSBZWVJIU0xPQyAoUmhzLCAxKS5maXJzdF9saW5lOyAgICBcCi0gICAgICAoQ3VycmVudCkuZmly
c3RfY29sdW1uID0gWVlSSFNMT0MgKFJocywgMSkuZmlyc3RfY29sdW1uOyAgICBcCi0gICAgICAo
Q3VycmVudCkubGFzdF9saW5lICAgID0gWVlSSFNMT0MgKFJocywgTikubGFzdF9saW5lOyAgICAg
ICAgXAotICAgICAgKEN1cnJlbnQpLmxhc3RfY29sdW1uICA9IFlZUkhTTE9DIChSaHMsIE4pLmxh
c3RfY29sdW1uOyAgICBcCi0gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgICAgZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIChDdXJyZW50KS5maXJzdF9saW5lICAg
PSAoQ3VycmVudCkubGFzdF9saW5lICAgPSAgICAgICAgXAotICAgICAgICBZWVJIU0xPQyAoUmhz
LCAwKS5sYXN0X2xpbmU7ICAgICAgICAgICAgICAgIFwKLSAgICAgIChDdXJyZW50KS5maXJzdF9j
b2x1bW4gPSAoQ3VycmVudCkubGFzdF9jb2x1bW4gPSAgICAgICAgXAotICAgICAgICBZWVJIU0xP
QyAoUmhzLCAwKS5sYXN0X2NvbHVtbjsgICAgICAgICAgICAgICAgXAotICAgIH0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKwl7CQkJCQkJCQlcCisJICAoQ3VycmVudCkuZmlyc3Rf
bGluZSAgID0gWVlSSFNMT0MgKFJocywgMSkuZmlyc3RfbGluZTsJXAorCSAgKEN1cnJlbnQpLmZp
cnN0X2NvbHVtbiA9IFlZUkhTTE9DIChSaHMsIDEpLmZpcnN0X2NvbHVtbjsJXAorCSAgKEN1cnJl
bnQpLmxhc3RfbGluZSAgICA9IFlZUkhTTE9DIChSaHMsIE4pLmxhc3RfbGluZTsJCVwKKwkgIChD
dXJyZW50KS5sYXN0X2NvbHVtbiAgPSBZWVJIU0xPQyAoUmhzLCBOKS5sYXN0X2NvbHVtbjsJXAor
CX0JCQkJCQkJCVwKKyAgICAgIGVsc2UJCQkJCQkJCVwKKwl7CQkJCQkJCQlcCisJICAoQ3VycmVu
dCkuZmlyc3RfbGluZSAgID0gKEN1cnJlbnQpLmxhc3RfbGluZSAgID0JCVwKKwkgICAgWVlSSFNM
T0MgKFJocywgMCkubGFzdF9saW5lOwkJCQlcCisJICAoQ3VycmVudCkuZmlyc3RfY29sdW1uID0g
KEN1cnJlbnQpLmxhc3RfY29sdW1uID0JCVwKKwkgICAgWVlSSFNMT0MgKFJocywgMCkubGFzdF9j
b2x1bW47CQkJCVwKKwl9CQkJCQkJCQlcCiAgICAgd2hpbGUgKFlZSUQgKDApKQogI2VuZGlmCiAK
QEAgLTc2MiwxMCArNzYwLDEwIEBAIHdoaWxlIChZWUlEICgwKSkKIAogI2lmbmRlZiBZWV9MT0NB
VElPTl9QUklOVAogIyBpZiBkZWZpbmVkIFlZTFRZUEVfSVNfVFJJVklBTCAmJiBZWUxUWVBFX0lT
X1RSSVZJQUwKLSMgIGRlZmluZSBZWV9MT0NBVElPTl9QUklOVChGaWxlLCBMb2MpICAgICAgICAg
ICAgXAotICAgICBmcHJpbnRmIChGaWxlLCAiJWQuJWQtJWQuJWQiLCAgICAgICAgICAgIFwKLSAg
ICAgICAgICAoTG9jKS5maXJzdF9saW5lLCAoTG9jKS5maXJzdF9jb2x1bW4sICAgIFwKLSAgICAg
ICAgICAoTG9jKS5sYXN0X2xpbmUsICAoTG9jKS5sYXN0X2NvbHVtbikKKyMgIGRlZmluZSBZWV9M
T0NBVElPTl9QUklOVChGaWxlLCBMb2MpCQkJXAorICAgICBmcHJpbnRmIChGaWxlLCAiJWQuJWQt
JWQuJWQiLAkJCVwKKwkgICAgICAoTG9jKS5maXJzdF9saW5lLCAoTG9jKS5maXJzdF9jb2x1bW4s
CVwKKwkgICAgICAoTG9jKS5sYXN0X2xpbmUsICAoTG9jKS5sYXN0X2NvbHVtbikKICMgZWxzZQog
IyAgZGVmaW5lIFlZX0xPQ0FUSU9OX1BSSU5UKEZpbGUsIExvYykgKCh2b2lkKSAwKQogIyBlbmRp
ZgpAQCAtNzg4LDIxICs3ODYsMjEgQEAgd2hpbGUgKFlZSUQgKDApKQogIyAgZGVmaW5lIFlZRlBS
SU5URiBmcHJpbnRmCiAjIGVuZGlmCiAKLSMgZGVmaW5lIFlZRFBSSU5URihBcmdzKSAgICAgICAg
ICAgIFwKLWRvIHsgICAgICAgICAgICAgICAgICAgICAgICBcCi0gIGlmICh5eWRlYnVnKSAgICAg
ICAgICAgICAgICAgICAgXAotICAgIFlZRlBSSU5URiBBcmdzOyAgICAgICAgICAgICAgICBcCisj
IGRlZmluZSBZWURQUklOVEYoQXJncykJCQlcCitkbyB7CQkJCQkJXAorICBpZiAoeXlkZWJ1ZykJ
CQkJCVwKKyAgICBZWUZQUklOVEYgQXJnczsJCQkJXAogfSB3aGlsZSAoWVlJRCAoMCkpCiAKLSMg
ZGVmaW5lIFlZX1NZTUJPTF9QUklOVChUaXRsZSwgVHlwZSwgVmFsdWUsIExvY2F0aW9uKSAgICAg
ICAgICAgICAgXAotZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICBpZiAoeXlkZWJ1ZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIFlZRlBSSU5URiAo
c3RkZXJyLCAiJXMgIiwgVGl0bGUpOyAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICB5eV9z
eW1ib2xfcHJpbnQgKHN0ZGVyciwgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAg
ICBUeXBlLCBWYWx1ZSwgcGFyc2VyKTsgXAotICAgICAgWVlGUFJJTlRGIChzdGRlcnIsICJcbiIp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIH0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyMgZGVmaW5lIFlZX1NZTUJPTF9QUklOVChUaXRsZSwgVHlwZSwg
VmFsdWUsIExvY2F0aW9uKQkJCSAgXAorZG8gewkJCQkJCQkJCSAgXAorICBpZiAoeXlkZWJ1ZykJ
CQkJCQkJCSAgXAorICAgIHsJCQkJCQkJCQkgIFwKKyAgICAgIFlZRlBSSU5URiAoc3RkZXJyLCAi
JXMgIiwgVGl0bGUpOwkJCQkJICBcCisgICAgICB5eV9zeW1ib2xfcHJpbnQgKHN0ZGVyciwJCQkJ
CQkgIFwKKwkJICBUeXBlLCBWYWx1ZSwgcGFyc2VyKTsgXAorICAgICAgWVlGUFJJTlRGIChzdGRl
cnIsICJcbiIpOwkJCQkJCSAgXAorICAgIH0JCQkJCQkJCQkgIFwKIH0gd2hpbGUgKFlZSUQgKDAp
KQogCiAKQEAgLTgxNCwxNCArODEyLDE0IEBAIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKICNpZiAoZGVmaW5lZCBfX1NURENfXyB8fCBkZWZpbmVkIF9fQzk5X19G
VU5DX18gXAogICAgICB8fCBkZWZpbmVkIF9fY3BsdXNwbHVzIHx8IGRlZmluZWQgX01TQ19WRVIp
CiBzdGF0aWMgdm9pZAoteXlfc3ltYm9sX3ZhbHVlX3ByaW50IChGSUxFICp5eW91dHB1dCwgaW50
IHl5dHlwZSwgWVlTVFlQRSBjb25zdCAqIGNvbnN0IHl5dmFsdWVwLCBQYXJzZXImIHBhcnNlcikK
K3l5X3N5bWJvbF92YWx1ZV9wcmludCAoRklMRSAqeXlvdXRwdXQsIGludCB5eXR5cGUsIFlZU1RZ
UEUgY29uc3QgKiBjb25zdCB5eXZhbHVlcCwgV2ViQ29yZTo6WFBhdGg6OlBhcnNlciYgcGFyc2Vy
KQogI2Vsc2UKIHN0YXRpYyB2b2lkCiB5eV9zeW1ib2xfdmFsdWVfcHJpbnQgKHl5b3V0cHV0LCB5
eXR5cGUsIHl5dmFsdWVwLCBwYXJzZXIpCiAgICAgRklMRSAqeXlvdXRwdXQ7CiAgICAgaW50IHl5
dHlwZTsKICAgICBZWVNUWVBFIGNvbnN0ICogY29uc3QgeXl2YWx1ZXA7Ci0gICAgUGFyc2VyJiBw
YXJzZXI7CisgICAgV2ViQ29yZTo6WFBhdGg6OlBhcnNlciYgcGFyc2VyOwogI2VuZGlmCiB7CiAg
IGlmICgheXl2YWx1ZXApCkBAIC04MzYsNyArODM0LDcgQEAgeXlfc3ltYm9sX3ZhbHVlX3ByaW50
ICh5eW91dHB1dCwgeXl0eXBlLCB5eXZhbHVlcCwgcGFyc2VyKQogICBzd2l0Y2ggKHl5dHlwZSkK
ICAgICB7CiAgICAgICBkZWZhdWx0OgotICAgIGJyZWFrOworCWJyZWFrOwogICAgIH0KIH0KIApA
QCAtODQ4LDE0ICs4NDYsMTQgQEAgeXlfc3ltYm9sX3ZhbHVlX3ByaW50ICh5eW91dHB1dCwgeXl0
eXBlLCB5eXZhbHVlcCwgcGFyc2VyKQogI2lmIChkZWZpbmVkIF9fU1REQ19fIHx8IGRlZmluZWQg
X19DOTlfX0ZVTkNfXyBcCiAgICAgIHx8IGRlZmluZWQgX19jcGx1c3BsdXMgfHwgZGVmaW5lZCBf
TVNDX1ZFUikKIHN0YXRpYyB2b2lkCi15eV9zeW1ib2xfcHJpbnQgKEZJTEUgKnl5b3V0cHV0LCBp
bnQgeXl0eXBlLCBZWVNUWVBFIGNvbnN0ICogY29uc3QgeXl2YWx1ZXAsIFBhcnNlciYgcGFyc2Vy
KQoreXlfc3ltYm9sX3ByaW50IChGSUxFICp5eW91dHB1dCwgaW50IHl5dHlwZSwgWVlTVFlQRSBj
b25zdCAqIGNvbnN0IHl5dmFsdWVwLCBXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiBwYXJzZXIpCiAj
ZWxzZQogc3RhdGljIHZvaWQKIHl5X3N5bWJvbF9wcmludCAoeXlvdXRwdXQsIHl5dHlwZSwgeXl2
YWx1ZXAsIHBhcnNlcikKICAgICBGSUxFICp5eW91dHB1dDsKICAgICBpbnQgeXl0eXBlOwogICAg
IFlZU1RZUEUgY29uc3QgKiBjb25zdCB5eXZhbHVlcDsKLSAgICBQYXJzZXImIHBhcnNlcjsKKyAg
ICBXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiBwYXJzZXI7CiAjZW5kaWYKIHsKICAgaWYgKHl5dHlw
ZSA8IFlZTlRPS0VOUykKQEAgLTg4OSwxMCArODg3LDEwIEBAIHl5X3N0YWNrX3ByaW50IChib3R0
b20sIHRvcCkKICAgWVlGUFJJTlRGIChzdGRlcnIsICJcbiIpOwogfQogCi0jIGRlZmluZSBZWV9T
VEFDS19QUklOVChCb3R0b20sIFRvcCkgICAgICAgICAgICAgICAgXAotZG8geyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICBpZiAoeXlkZWJ1ZykgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIHl5X3N0YWNrX3ByaW50ICgoQm90dG9tKSwgKFRvcCkpOyAgICAgICAg
ICAgICAgICBcCisjIGRlZmluZSBZWV9TVEFDS19QUklOVChCb3R0b20sIFRvcCkJCQkJXAorZG8g
ewkJCQkJCQkJXAorICBpZiAoeXlkZWJ1ZykJCQkJCQkJXAorICAgIHl5X3N0YWNrX3ByaW50ICgo
Qm90dG9tKSwgKFRvcCkpOwkJCQlcCiB9IHdoaWxlIChZWUlEICgwKSkKIAogCkBAIC05MDMsMzQg
KzkwMSwzNCBAQCBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAjaWYgKGRl
ZmluZWQgX19TVERDX18gfHwgZGVmaW5lZCBfX0M5OV9fRlVOQ19fIFwKICAgICAgfHwgZGVmaW5l
ZCBfX2NwbHVzcGx1cyB8fCBkZWZpbmVkIF9NU0NfVkVSKQogc3RhdGljIHZvaWQKLXl5X3JlZHVj
ZV9wcmludCAoWVlTVFlQRSAqeXl2c3AsIGludCB5eXJ1bGUsIFBhcnNlciYgcGFyc2VyKQoreXlf
cmVkdWNlX3ByaW50IChZWVNUWVBFICp5eXZzcCwgaW50IHl5cnVsZSwgV2ViQ29yZTo6WFBhdGg6
OlBhcnNlciYgcGFyc2VyKQogI2Vsc2UKIHN0YXRpYyB2b2lkCiB5eV9yZWR1Y2VfcHJpbnQgKHl5
dnNwLCB5eXJ1bGUsIHBhcnNlcikKICAgICBZWVNUWVBFICp5eXZzcDsKICAgICBpbnQgeXlydWxl
OwotICAgIFBhcnNlciYgcGFyc2VyOworICAgIFdlYkNvcmU6OlhQYXRoOjpQYXJzZXImIHBhcnNl
cjsKICNlbmRpZgogewogICBpbnQgeXlucmhzID0geXlyMlt5eXJ1bGVdOwogICBpbnQgeXlpOwog
ICB1bnNpZ25lZCBsb25nIGludCB5eWxubyA9IHl5cmxpbmVbeXlydWxlXTsKICAgWVlGUFJJTlRG
IChzdGRlcnIsICJSZWR1Y2luZyBzdGFjayBieSBydWxlICVkIChsaW5lICVsdSk6XG4iLAotICAg
ICAgICAgeXlydWxlIC0gMSwgeXlsbm8pOworCSAgICAgeXlydWxlIC0gMSwgeXlsbm8pOwogICAv
KiBUaGUgc3ltYm9scyBiZWluZyByZWR1Y2VkLiAgKi8KICAgZm9yICh5eWkgPSAwOyB5eWkgPCB5
eW5yaHM7IHl5aSsrKQogICAgIHsKICAgICAgIGZwcmludGYgKHN0ZGVyciwgIiAgICQlZCA9ICIs
IHl5aSArIDEpOwogICAgICAgeXlfc3ltYm9sX3ByaW50IChzdGRlcnIsIHl5cmhzW3l5cHJoc1t5
eXJ1bGVdICsgeXlpXSwKLSAgICAgICAgICAgICAgICYoeXl2c3BbKHl5aSArIDEpIC0gKHl5bnJo
cyldKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwYXJzZXIpOworCQkgICAgICAg
Jih5eXZzcFsoeXlpICsgMSkgLSAoeXlucmhzKV0pCisJCSAgICAgICAJCSAgICAgICAsIHBhcnNl
cik7CiAgICAgICBmcHJpbnRmIChzdGRlcnIsICJcbiIpOwogICAgIH0KIH0KIAotIyBkZWZpbmUg
WVlfUkVEVUNFX1BSSU5UKFJ1bGUpICAgICAgICBcCi1kbyB7ICAgICAgICAgICAgICAgICAgICBc
Ci0gIGlmICh5eWRlYnVnKSAgICAgICAgICAgICAgICBcCisjIGRlZmluZSBZWV9SRURVQ0VfUFJJ
TlQoUnVsZSkJCVwKK2RvIHsJCQkJCVwKKyAgaWYgKHl5ZGVidWcpCQkJCVwKICAgICB5eV9yZWR1
Y2VfcHJpbnQgKHl5dnNwLCBSdWxlLCBwYXJzZXIpOyBcCiB9IHdoaWxlIChZWUlEICgwKSkKIApA
QCAtOTQ2LDcgKzk0NCw3IEBAIGludCB5eWRlYnVnOwogCiAKIC8qIFlZSU5JVERFUFRIIC0tIGlu
aXRpYWwgc2l6ZSBvZiB0aGUgcGFyc2VyJ3Mgc3RhY2tzLiAgKi8KLSNpZm5kZWYgICAgWVlJTklU
REVQVEgKKyNpZm5kZWYJWVlJTklUREVQVEgKICMgZGVmaW5lIFlZSU5JVERFUFRIIDIwMAogI2Vu
ZGlmCiAKQEAgLTEwMzMsMjcgKzEwMzEsMjcgQEAgeXl0bmFtZXJyIChjaGFyICp5eXJlcywgY29u
c3QgY2hhciAqeXlzdHIpCiAgICAgICBjaGFyIGNvbnN0ICp5eXAgPSB5eXN0cjsKIAogICAgICAg
Zm9yICg7OykKLSAgICBzd2l0Y2ggKCorK3l5cCkKLSAgICAgIHsKLSAgICAgIGNhc2UgJ1wnJzoK
LSAgICAgIGNhc2UgJywnOgotICAgICAgICBnb3RvIGRvX25vdF9zdHJpcF9xdW90ZXM7Ci0KLSAg
ICAgIGNhc2UgJ1xcJzoKLSAgICAgICAgaWYgKCorK3l5cCAhPSAnXFwnKQotICAgICAgICAgIGdv
dG8gZG9fbm90X3N0cmlwX3F1b3RlczsKLSAgICAgICAgLyogRmFsbCB0aHJvdWdoLiAgKi8KLSAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgIGlmICh5eXJlcykKLSAgICAgICAgICB5eXJlc1t5eW5dID0g
Knl5cDsKLSAgICAgICAgeXluKys7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgICBjYXNlICciJzoK
LSAgICAgICAgaWYgKHl5cmVzKQotICAgICAgICAgIHl5cmVzW3l5bl0gPSAnXDAnOwotICAgICAg
ICByZXR1cm4geXluOwotICAgICAgfQorCXN3aXRjaCAoKisreXlwKQorCSAgeworCSAgY2FzZSAn
XCcnOgorCSAgY2FzZSAnLCc6CisJICAgIGdvdG8gZG9fbm90X3N0cmlwX3F1b3RlczsKKworCSAg
Y2FzZSAnXFwnOgorCSAgICBpZiAoKisreXlwICE9ICdcXCcpCisJICAgICAgZ290byBkb19ub3Rf
c3RyaXBfcXVvdGVzOworCSAgICAvKiBGYWxsIHRocm91Z2guICAqLworCSAgZGVmYXVsdDoKKwkg
ICAgaWYgKHl5cmVzKQorCSAgICAgIHl5cmVzW3l5bl0gPSAqeXlwOworCSAgICB5eW4rKzsKKwkg
ICAgYnJlYWs7CisKKwkgIGNhc2UgJyInOgorCSAgICBpZiAoeXlyZXMpCisJICAgICAgeXlyZXNb
eXluXSA9ICdcMCc7CisJICAgIHJldHVybiB5eW47CisJICB9CiAgICAgZG9fbm90X3N0cmlwX3F1
b3RlczogOwogICAgIH0KIApAQCAtMTA5MSw3ICsxMDg5LDcgQEAgeXlzeW50YXhfZXJyb3IgKGNo
YXIgKnl5cmVzdWx0LCBpbnQgeXlzdGF0ZSwgaW50IHl5Y2hhcikKIAogIyBpZiAwCiAgICAgICAv
KiBUaGlzIGlzIHNvIHhnZXR0ZXh0IHNlZXMgdGhlIHRyYW5zbGF0YWJsZSBmb3JtYXRzIHRoYXQg
YXJlCi0gICAgIGNvbnN0cnVjdGVkIG9uIHRoZSBmbHkuICAqLworCSBjb25zdHJ1Y3RlZCBvbiB0
aGUgZmx5LiAgKi8KICAgICAgIFlZXygic3ludGF4IGVycm9yLCB1bmV4cGVjdGVkICVzIik7CiAg
ICAgICBZWV8oInN5bnRheCBlcnJvciwgdW5leHBlY3RlZCAlcywgZXhwZWN0aW5nICVzIik7CiAg
ICAgICBZWV8oInN5bnRheCBlcnJvciwgdW5leHBlY3RlZCAlcywgZXhwZWN0aW5nICVzIG9yICVz
Iik7CkBAIC0xMTA0LDEzICsxMTAyLDEzIEBAIHl5c3ludGF4X2Vycm9yIChjaGFyICp5eXJlc3Vs
dCwgaW50IHl5c3RhdGUsIGludCB5eWNoYXIpCiAgICAgICBzdGF0aWMgY2hhciBjb25zdCB5eWV4
cGVjdGluZ1tdID0gIiwgZXhwZWN0aW5nICVzIjsKICAgICAgIHN0YXRpYyBjaGFyIGNvbnN0IHl5
b3JbXSA9ICIgb3IgJXMiOwogICAgICAgY2hhciB5eWZvcm1hdFtzaXplb2YgeXl1bmV4cGVjdGVk
Ci0gICAgICAgICAgICArIHNpemVvZiB5eWV4cGVjdGluZyAtIDEKLSAgICAgICAgICAgICsgKChZ
WUVSUk9SX1ZFUkJPU0VfQVJHU19NQVhJTVVNIC0gMikKLSAgICAgICAgICAgICAgICogKHNpemVv
ZiB5eW9yIC0gMSkpXTsKKwkJICAgICsgc2l6ZW9mIHl5ZXhwZWN0aW5nIC0gMQorCQkgICAgKyAo
KFlZRVJST1JfVkVSQk9TRV9BUkdTX01BWElNVU0gLSAyKQorCQkgICAgICAgKiAoc2l6ZW9mIHl5
b3IgLSAxKSldOwogICAgICAgY2hhciBjb25zdCAqeXlwcmVmaXggPSB5eWV4cGVjdGluZzsKIAog
ICAgICAgLyogU3RhcnQgWVlYIGF0IC1ZWU4gaWYgbmVnYXRpdmUgdG8gYXZvaWQgbmVnYXRpdmUg
aW5kZXhlcyBpbgotICAgICBZWUNIRUNLLiAgKi8KKwkgWVlDSEVDSy4gICovCiAgICAgICBpbnQg
eXl4YmVnaW4gPSB5eW4gPCAwID8gLXl5biA6IDA7CiAKICAgICAgIC8qIFN0YXkgd2l0aGluIGJv
dW5kcyBvZiBib3RoIHl5Y2hlY2sgYW5kIHl5dG5hbWUuICAqLwpAQCAtMTEyMiwyMiArMTEyMCwy
MiBAQCB5eXN5bnRheF9lcnJvciAoY2hhciAqeXlyZXN1bHQsIGludCB5eXN0YXRlLCBpbnQgeXlj
aGFyKQogICAgICAgeXlmbXQgPSB5eXN0cGNweSAoeXlmb3JtYXQsIHl5dW5leHBlY3RlZCk7CiAK
ICAgICAgIGZvciAoeXl4ID0geXl4YmVnaW47IHl5eCA8IHl5eGVuZDsgKyt5eXgpCi0gICAgaWYg
KHl5Y2hlY2tbeXl4ICsgeXluXSA9PSB5eXggJiYgeXl4ICE9IFlZVEVSUk9SKQotICAgICAgewot
ICAgICAgICBpZiAoeXljb3VudCA9PSBZWUVSUk9SX1ZFUkJPU0VfQVJHU19NQVhJTVVNKQotICAg
ICAgICAgIHsKLSAgICAgICAgeXljb3VudCA9IDE7Ci0gICAgICAgIHl5c2l6ZSA9IHl5c2l6ZTA7
Ci0gICAgICAgIHl5Zm9ybWF0W3NpemVvZiB5eXVuZXhwZWN0ZWQgLSAxXSA9ICdcMCc7Ci0gICAg
ICAgIGJyZWFrOwotICAgICAgICAgIH0KLSAgICAgICAgeXlhcmdbeXljb3VudCsrXSA9IHl5dG5h
bWVbeXl4XTsKLSAgICAgICAgeXlzaXplMSA9IHl5c2l6ZSArIHl5dG5hbWVyciAoMCwgeXl0bmFt
ZVt5eXhdKTsKLSAgICAgICAgeXlzaXplX292ZXJmbG93IHw9ICh5eXNpemUxIDwgeXlzaXplKTsK
LSAgICAgICAgeXlzaXplID0geXlzaXplMTsKLSAgICAgICAgeXlmbXQgPSB5eXN0cGNweSAoeXlm
bXQsIHl5cHJlZml4KTsKLSAgICAgICAgeXlwcmVmaXggPSB5eW9yOwotICAgICAgfQorCWlmICh5
eWNoZWNrW3l5eCArIHl5bl0gPT0geXl4ICYmIHl5eCAhPSBZWVRFUlJPUikKKwkgIHsKKwkgICAg
aWYgKHl5Y291bnQgPT0gWVlFUlJPUl9WRVJCT1NFX0FSR1NfTUFYSU1VTSkKKwkgICAgICB7CisJ
CXl5Y291bnQgPSAxOworCQl5eXNpemUgPSB5eXNpemUwOworCQl5eWZvcm1hdFtzaXplb2YgeXl1
bmV4cGVjdGVkIC0gMV0gPSAnXDAnOworCQlicmVhazsKKwkgICAgICB9CisJICAgIHl5YXJnW3l5
Y291bnQrK10gPSB5eXRuYW1lW3l5eF07CisJICAgIHl5c2l6ZTEgPSB5eXNpemUgKyB5eXRuYW1l
cnIgKDAsIHl5dG5hbWVbeXl4XSk7CisJICAgIHl5c2l6ZV9vdmVyZmxvdyB8PSAoeXlzaXplMSA8
IHl5c2l6ZSk7CisJICAgIHl5c2l6ZSA9IHl5c2l6ZTE7CisJICAgIHl5Zm10ID0geXlzdHBjcHkg
KHl5Zm10LCB5eXByZWZpeCk7CisJICAgIHl5cHJlZml4ID0geXlvcjsKKwkgIH0KIAogICAgICAg
eXlmID0gWVlfKHl5Zm9ybWF0KTsKICAgICAgIHl5c2l6ZTEgPSB5eXNpemUgKyB5eXN0cmxlbiAo
eXlmKTsKQEAgLTExNDUsMjkgKzExNDMsMjkgQEAgeXlzeW50YXhfZXJyb3IgKGNoYXIgKnl5cmVz
dWx0LCBpbnQgeXlzdGF0ZSwgaW50IHl5Y2hhcikKICAgICAgIHl5c2l6ZSA9IHl5c2l6ZTE7CiAK
ICAgICAgIGlmICh5eXNpemVfb3ZlcmZsb3cpCi0gICAgcmV0dXJuIFlZU0laRV9NQVhJTVVNOwor
CXJldHVybiBZWVNJWkVfTUFYSU1VTTsKIAogICAgICAgaWYgKHl5cmVzdWx0KQotICAgIHsKLSAg
ICAgIC8qIEF2b2lkIHNwcmludGYsIGFzIHRoYXQgaW5mcmluZ2VzIG9uIHRoZSB1c2VyJ3MgbmFt
ZSBzcGFjZS4KLSAgICAgICAgIERvbid0IGhhdmUgdW5kZWZpbmVkIGJlaGF2aW9yIGV2ZW4gaWYg
dGhlIHRyYW5zbGF0aW9uCi0gICAgICAgICBwcm9kdWNlZCBhIHN0cmluZyB3aXRoIHRoZSB3cm9u
ZyBudW1iZXIgb2YgIiVzInMuICAqLwotICAgICAgY2hhciAqeXlwID0geXlyZXN1bHQ7Ci0gICAg
ICBpbnQgeXlpID0gMDsKLSAgICAgIHdoaWxlICgoKnl5cCA9ICp5eWYpICE9ICdcMCcpCi0gICAg
ICAgIHsKLSAgICAgICAgICBpZiAoKnl5cCA9PSAnJScgJiYgeXlmWzFdID09ICdzJyAmJiB5eWkg
PCB5eWNvdW50KQotICAgICAgICB7Ci0gICAgICAgICAgeXlwICs9IHl5dG5hbWVyciAoeXlwLCB5
eWFyZ1t5eWkrK10pOwotICAgICAgICAgIHl5ZiArPSAyOwotICAgICAgICB9Ci0gICAgICAgICAg
ZWxzZQotICAgICAgICB7Ci0gICAgICAgICAgeXlwKys7Ci0gICAgICAgICAgeXlmKys7Ci0gICAg
ICAgIH0KLSAgICAgICAgfQotICAgIH0KKwl7CisJICAvKiBBdm9pZCBzcHJpbnRmLCBhcyB0aGF0
IGluZnJpbmdlcyBvbiB0aGUgdXNlcidzIG5hbWUgc3BhY2UuCisJICAgICBEb24ndCBoYXZlIHVu
ZGVmaW5lZCBiZWhhdmlvciBldmVuIGlmIHRoZSB0cmFuc2xhdGlvbgorCSAgICAgcHJvZHVjZWQg
YSBzdHJpbmcgd2l0aCB0aGUgd3JvbmcgbnVtYmVyIG9mICIlcyJzLiAgKi8KKwkgIGNoYXIgKnl5
cCA9IHl5cmVzdWx0OworCSAgaW50IHl5aSA9IDA7CisJICB3aGlsZSAoKCp5eXAgPSAqeXlmKSAh
PSAnXDAnKQorCSAgICB7CisJICAgICAgaWYgKCp5eXAgPT0gJyUnICYmIHl5ZlsxXSA9PSAncycg
JiYgeXlpIDwgeXljb3VudCkKKwkJeworCQkgIHl5cCArPSB5eXRuYW1lcnIgKHl5cCwgeXlhcmdb
eXlpKytdKTsKKwkJICB5eWYgKz0gMjsKKwkJfQorCSAgICAgIGVsc2UKKwkJeworCQkgIHl5cCsr
OworCQkgIHl5ZisrOworCQl9CisJICAgIH0KKwl9CiAgICAgICByZXR1cm4geXlzaXplOwogICAg
IH0KIH0KQEAgLTExODIsMTQgKzExODAsMTQgQEAgeXlzeW50YXhfZXJyb3IgKGNoYXIgKnl5cmVz
dWx0LCBpbnQgeXlzdGF0ZSwgaW50IHl5Y2hhcikKICNpZiAoZGVmaW5lZCBfX1NURENfXyB8fCBk
ZWZpbmVkIF9fQzk5X19GVU5DX18gXAogICAgICB8fCBkZWZpbmVkIF9fY3BsdXNwbHVzIHx8IGRl
ZmluZWQgX01TQ19WRVIpCiBzdGF0aWMgdm9pZAoteXlkZXN0cnVjdCAoY29uc3QgY2hhciAqeXlt
c2csIGludCB5eXR5cGUsIFlZU1RZUEUgKnl5dmFsdWVwLCBQYXJzZXImIHBhcnNlcikKK3l5ZGVz
dHJ1Y3QgKGNvbnN0IGNoYXIgKnl5bXNnLCBpbnQgeXl0eXBlLCBZWVNUWVBFICp5eXZhbHVlcCwg
V2ViQ29yZTo6WFBhdGg6OlBhcnNlciYgcGFyc2VyKQogI2Vsc2UKIHN0YXRpYyB2b2lkCiB5eWRl
c3RydWN0ICh5eW1zZywgeXl0eXBlLCB5eXZhbHVlcCwgcGFyc2VyKQogICAgIGNvbnN0IGNoYXIg
Knl5bXNnOwogICAgIGludCB5eXR5cGU7CiAgICAgWVlTVFlQRSAqeXl2YWx1ZXA7Ci0gICAgUGFy
c2VyJiBwYXJzZXI7CisgICAgV2ViQ29yZTo6WFBhdGg6OlBhcnNlciYgcGFyc2VyOwogI2VuZGlm
CiB7CiAgIFlZVVNFICh5eXZhbHVlcCk7CkBAIC0xMjAyLDE2MyArMTIwMCwxNjMgQEAgeXlkZXN0
cnVjdCAoeXltc2csIHl5dHlwZSwgeXl2YWx1ZXAsIHBhcnNlcikKICAgc3dpdGNoICh5eXR5cGUp
CiAgICAgewogICAgICAgY2FzZSAxMDogLyogIkZVTkNUSU9OTkFNRSIgKi8KLSNsaW5lIDgwICJX
ZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGlmICgoeXl2YWx1ZXAtPnN0cmluZykp
ICh5eXZhbHVlcC0+c3RyaW5nKS0+ZGVyZWYoKTsgfTsKLSNsaW5lIDEyMDUgIi4vWFBhdGhHcmFt
bWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDc3ICJYUGF0aEdyYW1tYXIueSIKKwl7IGlmICgo
eXl2YWx1ZXAtPnN0cmluZykpICh5eXZhbHVlcC0+c3RyaW5nKS0+ZGVyZWYoKTsgfTsKKyNsaW5l
IDEyMDIgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNlIDExOiAvKiAiTElU
RVJBTCIgKi8KLSNsaW5lIDgwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGlm
ICgoeXl2YWx1ZXAtPnN0cmluZykpICh5eXZhbHVlcC0+c3RyaW5nKS0+ZGVyZWYoKTsgfTsKLSNs
aW5lIDEyMTAgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDc3ICJYUGF0
aEdyYW1tYXIueSIKKwl7IGlmICgoeXl2YWx1ZXAtPnN0cmluZykpICh5eXZhbHVlcC0+c3RyaW5n
KS0+ZGVyZWYoKTsgfTsKKyNsaW5lIDEyMDcgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAg
ICAgICBjYXNlIDEyOiAvKiAiTkFNRVRFU1QiICovCi0jbGluZSA4MCAiV2ViQ29yZS94bWwvWFBh
dGhHcmFtbWFyLnkiCi0gICAgeyBpZiAoKHl5dmFsdWVwLT5zdHJpbmcpKSAoeXl2YWx1ZXAtPnN0
cmluZyktPmRlcmVmKCk7IH07Ci0jbGluZSAxMjE1ICIuL1hQYXRoR3JhbW1hci5jcHAiCi0gICAg
YnJlYWs7CisjbGluZSA3NyAiWFBhdGhHcmFtbWFyLnkiCisJeyBpZiAoKHl5dmFsdWVwLT5zdHJp
bmcpKSAoeXl2YWx1ZXAtPnN0cmluZyktPmRlcmVmKCk7IH07CisjbGluZSAxMjEyICJYUGF0aEdy
YW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSAxMzogLyogIk5VTUJFUiIgKi8KLSNsaW5l
IDgwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGlmICgoeXl2YWx1ZXAtPnN0
cmluZykpICh5eXZhbHVlcC0+c3RyaW5nKS0+ZGVyZWYoKTsgfTsKLSNsaW5lIDEyMjAgIi4vWFBh
dGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDc3ICJYUGF0aEdyYW1tYXIueSIKKwl7
IGlmICgoeXl2YWx1ZXAtPnN0cmluZykpICh5eXZhbHVlcC0+c3RyaW5nKS0+ZGVyZWYoKTsgfTsK
KyNsaW5lIDEyMTcgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNlIDE0OiAv
KiAiTk9ERVRZUEUiICovCi0jbGluZSA4MCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0g
ICAgeyBpZiAoKHl5dmFsdWVwLT5zdHJpbmcpKSAoeXl2YWx1ZXAtPnN0cmluZyktPmRlcmVmKCk7
IH07Ci0jbGluZSAxMjI1ICIuL1hQYXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7CisjbGluZSA3
NyAiWFBhdGhHcmFtbWFyLnkiCisJeyBpZiAoKHl5dmFsdWVwLT5zdHJpbmcpKSAoeXl2YWx1ZXAt
PnN0cmluZyktPmRlcmVmKCk7IH07CisjbGluZSAxMjIyICJYUGF0aEdyYW1tYXIuY3BwIgorCWJy
ZWFrOwogICAgICAgY2FzZSAxNTogLyogIlZBUklBQkxFUkVGRVJFTkNFIiAqLwotI2xpbmUgODAg
IldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgaWYgKCh5eXZhbHVlcC0+c3RyaW5n
KSkgKHl5dmFsdWVwLT5zdHJpbmcpLT5kZXJlZigpOyB9OwotI2xpbmUgMTIzMCAiLi9YUGF0aEdy
YW1tYXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgNzcgIlhQYXRoR3JhbW1hci55IgorCXsgaWYg
KCh5eXZhbHVlcC0+c3RyaW5nKSkgKHl5dmFsdWVwLT5zdHJpbmcpLT5kZXJlZigpOyB9OworI2xp
bmUgMTIyNyAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgMzU6IC8qICJF
eHByIiAqLwotI2xpbmUgMTAwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRl
bGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OwotI2xpbmUgMTIzNSAiLi9YUGF0aEdyYW1t
YXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgOTcgIlhQYXRoR3JhbW1hci55IgorCXsgZGVsZXRl
ICh5eXZhbHVlcC0+ZXhwcmVzc2lvbik7IH07CisjbGluZSAxMjMyICJYUGF0aEdyYW1tYXIuY3Bw
IgorCWJyZWFrOwogICAgICAgY2FzZSAzNjogLyogIkxvY2F0aW9uUGF0aCIgKi8KLSNsaW5lIDg4
ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2YWx1ZXAtPmxv
Y2F0aW9uUGF0aCk7IH07Ci0jbGluZSAxMjQwICIuL1hQYXRoR3JhbW1hci5jcHAiCi0gICAgYnJl
YWs7CisjbGluZSA4NSAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUgKHl5dmFsdWVwLT5sb2Nh
dGlvblBhdGgpOyB9OworI2xpbmUgMTIzNyAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAg
ICAgIGNhc2UgMzc6IC8qICJBYnNvbHV0ZUxvY2F0aW9uUGF0aCIgKi8KLSNsaW5lIDg4ICJXZWJD
b3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2YWx1ZXAtPmxvY2F0aW9u
UGF0aCk7IH07Ci0jbGluZSAxMjQ1ICIuL1hQYXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7Cisj
bGluZSA4NSAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUgKHl5dmFsdWVwLT5sb2NhdGlvblBh
dGgpOyB9OworI2xpbmUgMTI0MiAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNh
c2UgMzg6IC8qICJSZWxhdGl2ZUxvY2F0aW9uUGF0aCIgKi8KLSNsaW5lIDg4ICJXZWJDb3JlL3ht
bC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2YWx1ZXAtPmxvY2F0aW9uUGF0aCk7
IH07Ci0jbGluZSAxMjUwICIuL1hQYXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7CisjbGluZSA4
NSAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUgKHl5dmFsdWVwLT5sb2NhdGlvblBhdGgpOyB9
OworI2xpbmUgMTI0NyAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgMzk6
IC8qICJTdGVwIiAqLwotI2xpbmUgOTcgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAg
IHsgZGVsZXRlICh5eXZhbHVlcC0+c3RlcCk7IH07Ci0jbGluZSAxMjU1ICIuL1hQYXRoR3JhbW1h
ci5jcHAiCi0gICAgYnJlYWs7CisjbGluZSA5NCAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUg
KHl5dmFsdWVwLT5zdGVwKTsgfTsKKyNsaW5lIDEyNTIgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJl
YWs7CiAgICAgICBjYXNlIDQxOiAvKiAiTm9kZVRlc3QiICovCi0jbGluZSA5MSAiV2ViQ29yZS94
bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5ub2RlVGVzdCk7IH07
Ci0jbGluZSAxMjYwICIuL1hQYXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7CisjbGluZSA4OCAi
WFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUgKHl5dmFsdWVwLT5ub2RlVGVzdCk7IH07CisjbGlu
ZSAxMjU3ICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSA0MjogLyogIk9w
dGlvbmFsUHJlZGljYXRlTGlzdCIgKi8KLSNsaW5lIDk0ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1t
YXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb25WZWN0b3IpOyB9OwotI2xp
bmUgMTI2NSAiLi9YUGF0aEdyYW1tYXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgOTEgIlhQYXRo
R3JhbW1hci55IgorCXsgZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvblZlY3Rvcik7IH07Cisj
bGluZSAxMjYyICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSA0MzogLyog
IlByZWRpY2F0ZUxpc3QiICovCi0jbGluZSA5NCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnki
Ci0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uVmVjdG9yKTsgfTsKLSNsaW5lIDEy
NzAgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDkxICJYUGF0aEdyYW1t
YXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb25WZWN0b3IpOyB9OworI2xpbmUg
MTI2NyAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgNDQ6IC8qICJQcmVk
aWNhdGUiICovCi0jbGluZSAxMDAgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsg
ZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvbik7IH07Ci0jbGluZSAxMjc1ICIuL1hQYXRoR3Jh
bW1hci5jcHAiCi0gICAgYnJlYWs7CisjbGluZSA5NyAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxl
dGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsgfTsKKyNsaW5lIDEyNzIgIlhQYXRoR3JhbW1hci5j
cHAiCisJYnJlYWs7CiAgICAgICBjYXNlIDQ1OiAvKiAiRGVzY2VuZGFudE9yU2VsZiIgKi8KLSNs
aW5lIDk3ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2YWx1
ZXAtPnN0ZXApOyB9OwotI2xpbmUgMTI4MCAiLi9YUGF0aEdyYW1tYXIuY3BwIgotICAgIGJyZWFr
OworI2xpbmUgOTQgIlhQYXRoR3JhbW1hci55IgorCXsgZGVsZXRlICh5eXZhbHVlcC0+c3RlcCk7
IH07CisjbGluZSAxMjc3ICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSA0
NjogLyogIkFiYnJldmlhdGVkU3RlcCIgKi8KLSNsaW5lIDk3ICJXZWJDb3JlL3htbC9YUGF0aEdy
YW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2YWx1ZXAtPnN0ZXApOyB9OwotI2xpbmUgMTI4NSAi
Li9YUGF0aEdyYW1tYXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgOTQgIlhQYXRoR3JhbW1hci55
IgorCXsgZGVsZXRlICh5eXZhbHVlcC0+c3RlcCk7IH07CisjbGluZSAxMjgyICJYUGF0aEdyYW1t
YXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSA0NzogLyogIlByaW1hcnlFeHByIiAqLwotI2xp
bmUgMTAwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2YWx1
ZXAtPmV4cHJlc3Npb24pOyB9OwotI2xpbmUgMTI5MCAiLi9YUGF0aEdyYW1tYXIuY3BwIgotICAg
IGJyZWFrOworI2xpbmUgOTcgIlhQYXRoR3JhbW1hci55IgorCXsgZGVsZXRlICh5eXZhbHVlcC0+
ZXhwcmVzc2lvbik7IH07CisjbGluZSAxMjg3ICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwog
ICAgICAgY2FzZSA0ODogLyogIkZ1bmN0aW9uQ2FsbCIgKi8KLSNsaW5lIDEwMCAiV2ViQ29yZS94
bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsg
fTsKLSNsaW5lIDEyOTUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDk3
ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9Owor
I2xpbmUgMTI5MiAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgNDk6IC8q
ICJBcmd1bWVudExpc3QiICovCi0jbGluZSA5NCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnki
Ci0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uVmVjdG9yKTsgfTsKLSNsaW5lIDEz
MDAgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDkxICJYUGF0aEdyYW1t
YXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb25WZWN0b3IpOyB9OworI2xpbmUg
MTI5NyAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgNTA6IC8qICJBcmd1
bWVudCIgKi8KLSNsaW5lIDEwMCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBk
ZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsgfTsKLSNsaW5lIDEzMDUgIi4vWFBhdGhHcmFt
bWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDk3ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0
ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OworI2xpbmUgMTMwMiAiWFBhdGhHcmFtbWFyLmNw
cCIKKwlicmVhazsKICAgICAgIGNhc2UgNTE6IC8qICJVbmlvbkV4cHIiICovCi0jbGluZSAxMDAg
IldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+ZXhw
cmVzc2lvbik7IH07Ci0jbGluZSAxMzEwICIuL1hQYXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7
CisjbGluZSA5NyAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNz
aW9uKTsgfTsKKyNsaW5lIDEzMDcgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBj
YXNlIDUyOiAvKiAiUGF0aEV4cHIiICovCi0jbGluZSAxMDAgIldlYkNvcmUveG1sL1hQYXRoR3Jh
bW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvbik7IH07Ci0jbGluZSAx
MzE1ICIuL1hQYXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7CisjbGluZSA5NyAiWFBhdGhHcmFt
bWFyLnkiCisJeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsgfTsKKyNsaW5lIDEzMTIg
IlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNlIDUzOiAvKiAiRmlsdGVyRXhw
ciIgKi8KLSNsaW5lIDEwMCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxl
dGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsgfTsKLSNsaW5lIDEzMjAgIi4vWFBhdGhHcmFtbWFy
LmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDk3ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAo
eXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OworI2xpbmUgMTMxNyAiWFBhdGhHcmFtbWFyLmNwcCIK
KwlicmVhazsKICAgICAgIGNhc2UgNTQ6IC8qICJPckV4cHIiICovCi0jbGluZSAxMDAgIldlYkNv
cmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lv
bik7IH07Ci0jbGluZSAxMzI1ICIuL1hQYXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7CisjbGlu
ZSA5NyAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsg
fTsKKyNsaW5lIDEzMjIgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNlIDU1
OiAvKiAiQW5kRXhwciIgKi8KLSNsaW5lIDEwMCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnki
Ci0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsgfTsKLSNsaW5lIDEzMzAgIi4v
WFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDk3ICJYUGF0aEdyYW1tYXIueSIK
Kwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OworI2xpbmUgMTMyNyAiWFBhdGhH
cmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgNTY6IC8qICJFcXVhbGl0eUV4cHIiICov
Ci0jbGluZSAxMDAgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5
eXZhbHVlcC0+ZXhwcmVzc2lvbik7IH07Ci0jbGluZSAxMzM1ICIuL1hQYXRoR3JhbW1hci5jcHAi
Ci0gICAgYnJlYWs7CisjbGluZSA5NyAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUgKHl5dmFs
dWVwLT5leHByZXNzaW9uKTsgfTsKKyNsaW5lIDEzMzIgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJl
YWs7CiAgICAgICBjYXNlIDU3OiAvKiAiUmVsYXRpb25hbEV4cHIiICovCi0jbGluZSAxMDAgIldl
YkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVz
c2lvbik7IH07Ci0jbGluZSAxMzQwICIuL1hQYXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7Cisj
bGluZSA5NyAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9u
KTsgfTsKKyNsaW5lIDEzMzcgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNl
IDU4OiAvKiAiQWRkaXRpdmVFeHByIiAqLwotI2xpbmUgMTAwICJXZWJDb3JlL3htbC9YUGF0aEdy
YW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OwotI2xpbmUg
MTM0NSAiLi9YUGF0aEdyYW1tYXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgOTcgIlhQYXRoR3Jh
bW1hci55IgorCXsgZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvbik7IH07CisjbGluZSAxMzQy
ICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSA1OTogLyogIk11bHRpcGxp
Y2F0aXZlRXhwciIgKi8KLSNsaW5lIDEwMCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0g
ICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsgfTsKLSNsaW5lIDEzNTAgIi4vWFBh
dGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDk3ICJYUGF0aEdyYW1tYXIueSIKKwl7
IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OworI2xpbmUgMTM0NyAiWFBhdGhHcmFt
bWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgNjA6IC8qICJVbmFyeUV4cHIiICovCi0jbGlu
ZSAxMDAgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVl
cC0+ZXhwcmVzc2lvbik7IH07Ci0jbGluZSAxMzU1ICIuL1hQYXRoR3JhbW1hci5jcHAiCi0gICAg
YnJlYWs7CisjbGluZSA5NyAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUgKHl5dmFsdWVwLT5l
eHByZXNzaW9uKTsgfTsKKyNsaW5lIDEzNTIgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAK
ICAgICAgIGRlZmF1bHQ6Ci0gICAgYnJlYWs7CisJYnJlYWs7CiAgICAgfQogfQogDApAQCAtMTM3
Myw3ICsxMzcxLDcgQEAgaW50IHl5cGFyc2UgKCk7CiAjZW5kaWYKICNlbHNlIC8qICEgWVlQQVJT
RV9QQVJBTSAqLwogI2lmIGRlZmluZWQgX19TVERDX18gfHwgZGVmaW5lZCBfX2NwbHVzcGx1cwot
aW50IHl5cGFyc2UgKFBhcnNlciYgcGFyc2VyKTsKK2ludCB5eXBhcnNlIChXZWJDb3JlOjpYUGF0
aDo6UGFyc2VyJiBwYXJzZXIpOwogI2Vsc2UKIGludCB5eXBhcnNlICgpOwogI2VuZGlmCkBAIC0x
NDAyLDExICsxNDAwLDExIEBAIHl5cGFyc2UgKFlZUEFSU0VfUEFSQU0pCiAjaWYgKGRlZmluZWQg
X19TVERDX18gfHwgZGVmaW5lZCBfX0M5OV9fRlVOQ19fIFwKICAgICAgfHwgZGVmaW5lZCBfX2Nw
bHVzcGx1cyB8fCBkZWZpbmVkIF9NU0NfVkVSKQogaW50Ci15eXBhcnNlIChQYXJzZXImIHBhcnNl
cikKK3l5cGFyc2UgKFdlYkNvcmU6OlhQYXRoOjpQYXJzZXImIHBhcnNlcikKICNlbHNlCiBpbnQK
IHl5cGFyc2UgKHBhcnNlcikKLSAgICBQYXJzZXImIHBhcnNlcjsKKyAgICBXZWJDb3JlOjpYUGF0
aDo6UGFyc2VyJiBwYXJzZXI7CiAjZW5kaWYKICNlbmRpZgogewpAQCAtMTQ3MSw3ICsxNDY5LDcg
QEAgaW50IHl5bmVycnM7CiAgIHl5c3RhdGUgPSAwOwogICB5eWVycnN0YXR1cyA9IDA7CiAgIHl5
bmVycnMgPSAwOwotICB5eWNoYXIgPSBZWUVNUFRZOyAgICAgICAgLyogQ2F1c2UgYSB0b2tlbiB0
byBiZSByZWFkLiAgKi8KKyAgeXljaGFyID0gWVlFTVBUWTsJCS8qIENhdXNlIGEgdG9rZW4gdG8g
YmUgcmVhZC4gICovCiAKICAgLyogSW5pdGlhbGl6ZSBzdGFjayBwb2ludGVycy4KICAgICAgV2Fz
dGUgb25lIGVsZW1lbnQgb2YgdmFsdWUgYW5kIGxvY2F0aW9uIHN0YWNrCkBAIC0xNTAxLDI1ICsx
NDk5LDI1IEBAIGludCB5eW5lcnJzOwogCiAjaWZkZWYgeXlvdmVyZmxvdwogICAgICAgewotICAg
IC8qIEdpdmUgdXNlciBhIGNoYW5jZSB0byByZWFsbG9jYXRlIHRoZSBzdGFjay4gIFVzZSBjb3Bp
ZXMgb2YKLSAgICAgICB0aGVzZSBzbyB0aGF0IHRoZSAmJ3MgZG9uJ3QgZm9yY2UgdGhlIHJlYWwg
b25lcyBpbnRvCi0gICAgICAgbWVtb3J5LiAgKi8KLSAgICBZWVNUWVBFICp5eXZzMSA9IHl5dnM7
Ci0gICAgeXl0eXBlX2ludDE2ICp5eXNzMSA9IHl5c3M7CisJLyogR2l2ZSB1c2VyIGEgY2hhbmNl
IHRvIHJlYWxsb2NhdGUgdGhlIHN0YWNrLiAgVXNlIGNvcGllcyBvZgorCSAgIHRoZXNlIHNvIHRo
YXQgdGhlICYncyBkb24ndCBmb3JjZSB0aGUgcmVhbCBvbmVzIGludG8KKwkgICBtZW1vcnkuICAq
LworCVlZU1RZUEUgKnl5dnMxID0geXl2czsKKwl5eXR5cGVfaW50MTYgKnl5c3MxID0geXlzczsK
IAogCi0gICAgLyogRWFjaCBzdGFjayBwb2ludGVyIGFkZHJlc3MgaXMgZm9sbG93ZWQgYnkgdGhl
IHNpemUgb2YgdGhlCi0gICAgICAgZGF0YSBpbiB1c2UgaW4gdGhhdCBzdGFjaywgaW4gYnl0ZXMu
ICBUaGlzIHVzZWQgdG8gYmUgYQotICAgICAgIGNvbmRpdGlvbmFsIGFyb3VuZCBqdXN0IHRoZSB0
d28gZXh0cmEgYXJncywgYnV0IHRoYXQgbWlnaHQKLSAgICAgICBiZSB1bmRlZmluZWQgaWYgeXlv
dmVyZmxvdyBpcyBhIG1hY3JvLiAgKi8KLSAgICB5eW92ZXJmbG93IChZWV8oIm1lbW9yeSBleGhh
dXN0ZWQiKSwKLSAgICAgICAgICAgICZ5eXNzMSwgeXlzaXplICogc2l6ZW9mICgqeXlzc3ApLAot
ICAgICAgICAgICAgJnl5dnMxLCB5eXNpemUgKiBzaXplb2YgKCp5eXZzcCksCisJLyogRWFjaCBz
dGFjayBwb2ludGVyIGFkZHJlc3MgaXMgZm9sbG93ZWQgYnkgdGhlIHNpemUgb2YgdGhlCisJICAg
ZGF0YSBpbiB1c2UgaW4gdGhhdCBzdGFjaywgaW4gYnl0ZXMuICBUaGlzIHVzZWQgdG8gYmUgYQor
CSAgIGNvbmRpdGlvbmFsIGFyb3VuZCBqdXN0IHRoZSB0d28gZXh0cmEgYXJncywgYnV0IHRoYXQg
bWlnaHQKKwkgICBiZSB1bmRlZmluZWQgaWYgeXlvdmVyZmxvdyBpcyBhIG1hY3JvLiAgKi8KKwl5
eW92ZXJmbG93IChZWV8oIm1lbW9yeSBleGhhdXN0ZWQiKSwKKwkJICAgICZ5eXNzMSwgeXlzaXpl
ICogc2l6ZW9mICgqeXlzc3ApLAorCQkgICAgJnl5dnMxLCB5eXNpemUgKiBzaXplb2YgKCp5eXZz
cCksCiAKLSAgICAgICAgICAgICZ5eXN0YWNrc2l6ZSk7CisJCSAgICAmeXlzdGFja3NpemUpOwog
Ci0gICAgeXlzcyA9IHl5c3MxOwotICAgIHl5dnMgPSB5eXZzMTsKKwl5eXNzID0geXlzczE7CisJ
eXl2cyA9IHl5dnMxOwogICAgICAgfQogI2Vsc2UgLyogbm8geXlvdmVyZmxvdyAqLwogIyBpZm5k
ZWYgWVlTVEFDS19SRUxPQ0FURQpAQCAtMTUyNywyMyArMTUyNSwyMyBAQCBpbnQgeXluZXJyczsK
ICMgZWxzZQogICAgICAgLyogRXh0ZW5kIHRoZSBzdGFjayBvdXIgb3duIHdheS4gICovCiAgICAg
ICBpZiAoWVlNQVhERVBUSCA8PSB5eXN0YWNrc2l6ZSkKLSAgICBnb3RvIHl5ZXhoYXVzdGVkbGFi
OworCWdvdG8geXlleGhhdXN0ZWRsYWI7CiAgICAgICB5eXN0YWNrc2l6ZSAqPSAyOwogICAgICAg
aWYgKFlZTUFYREVQVEggPCB5eXN0YWNrc2l6ZSkKLSAgICB5eXN0YWNrc2l6ZSA9IFlZTUFYREVQ
VEg7CisJeXlzdGFja3NpemUgPSBZWU1BWERFUFRIOwogCiAgICAgICB7Ci0gICAgeXl0eXBlX2lu
dDE2ICp5eXNzMSA9IHl5c3M7Ci0gICAgdW5pb24geXlhbGxvYyAqeXlwdHIgPQotICAgICAgKHVu
aW9uIHl5YWxsb2MgKikgWVlTVEFDS19BTExPQyAoWVlTVEFDS19CWVRFUyAoeXlzdGFja3NpemUp
KTsKLSAgICBpZiAoISB5eXB0cikKLSAgICAgIGdvdG8geXlleGhhdXN0ZWRsYWI7Ci0gICAgWVlT
VEFDS19SRUxPQ0FURSAoeXlzcyk7Ci0gICAgWVlTVEFDS19SRUxPQ0FURSAoeXl2cyk7CisJeXl0
eXBlX2ludDE2ICp5eXNzMSA9IHl5c3M7CisJdW5pb24geXlhbGxvYyAqeXlwdHIgPQorCSAgKHVu
aW9uIHl5YWxsb2MgKikgWVlTVEFDS19BTExPQyAoWVlTVEFDS19CWVRFUyAoeXlzdGFja3NpemUp
KTsKKwlpZiAoISB5eXB0cikKKwkgIGdvdG8geXlleGhhdXN0ZWRsYWI7CisJWVlTVEFDS19SRUxP
Q0FURSAoeXlzcyk7CisJWVlTVEFDS19SRUxPQ0FURSAoeXl2cyk7CiAKICMgIHVuZGVmIFlZU1RB
Q0tfUkVMT0NBVEUKLSAgICBpZiAoeXlzczEgIT0geXlzc2EpCi0gICAgICBZWVNUQUNLX0ZSRUUg
KHl5c3MxKTsKKwlpZiAoeXlzczEgIT0geXlzc2EpCisJICBZWVNUQUNLX0ZSRUUgKHl5c3MxKTsK
ICAgICAgIH0KICMgZW5kaWYKICNlbmRpZiAvKiBubyB5eW92ZXJmbG93ICovCkBAIC0xNTUzLDEw
ICsxNTUxLDEwIEBAIGludCB5eW5lcnJzOwogCiAKICAgICAgIFlZRFBSSU5URiAoKHN0ZGVyciwg
IlN0YWNrIHNpemUgaW5jcmVhc2VkIHRvICVsdVxuIiwKLSAgICAgICAgICAodW5zaWduZWQgbG9u
ZyBpbnQpIHl5c3RhY2tzaXplKSk7CisJCSAgKHVuc2lnbmVkIGxvbmcgaW50KSB5eXN0YWNrc2l6
ZSkpOwogCiAgICAgICBpZiAoeXlzcyArIHl5c3RhY2tzaXplIC0gMSA8PSB5eXNzcCkKLSAgICBZ
WUFCT1JUOworCVlZQUJPUlQ7CiAgICAgfQogCiAgIFlZRFBSSU5URiAoKHN0ZGVyciwgIkVudGVy
aW5nIHN0YXRlICVkXG4iLCB5eXN0YXRlKSk7CkBAIC0xNjA1LDcgKzE2MDMsNyBAQCB5eWJhY2t1
cDoKICAgaWYgKHl5biA8PSAwKQogICAgIHsKICAgICAgIGlmICh5eW4gPT0gMCB8fCB5eW4gPT0g
WVlUQUJMRV9OSU5GKQotICAgIGdvdG8geXllcnJsYWI7CisJZ290byB5eWVycmxhYjsKICAgICAg
IHl5biA9IC15eW47CiAgICAgICBnb3RvIHl5cmVkdWNlOwogICAgIH0KQEAgLTE2NjMsMTQgKzE2
NjEsMTQgQEAgeXlyZWR1Y2U6CiAgIHN3aXRjaCAoeXluKQogICAgIHsKICAgICAgICAgY2FzZSAy
OgotI2xpbmUgMTE1ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDExMiAiWFBh
dGhHcmFtbWFyLnkiCiAgICAgewotICAgICAgICBwYXJzZXIuc2V0UGFyc2VSZXN1bHQoc3RkOjp1
bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMSkgLSAoMSldLmV4cHJlc3Npb24pKSk7Cisg
ICAgICAgIHBhcnNlci5zZXRQYXJzZVJlc3VsdChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBh
dGg6OkV4cHJlc3Npb24+KCh5eXZzcFsoMSkgLSAoMSldLmV4cHJlc3Npb24pKSk7CiAgICAgO30K
ICAgICBicmVhazsKIAogICBjYXNlIDQ6Ci0jbGluZSAxMjYgIldlYkNvcmUveG1sL1hQYXRoR3Jh
bW1hci55IgorI2xpbmUgMTIzICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgICh5eXZh
bC5sb2NhdGlvblBhdGgpID0gKHl5dnNwWygxKSAtICgxKV0ubG9jYXRpb25QYXRoKTsKICAgICAg
ICAgKHl5dmFsLmxvY2F0aW9uUGF0aCktPnNldEFic29sdXRlKCk7CkBAIC0xNjc4LDY5ICsxNjc2
LDY5IEBAIHl5cmVkdWNlOgogICAgIGJyZWFrOwogCiAgIGNhc2UgNjoKLSNsaW5lIDEzNiAiV2Vi
Q29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAxMzMgIlhQYXRoR3JhbW1hci55IgogICAg
IHsKLSAgICAgICAgKHl5dmFsLmxvY2F0aW9uUGF0aCkgPSBuZXcgTG9jYXRpb25QYXRoOworICAg
ICAgICAoeXl2YWwubG9jYXRpb25QYXRoKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TG9jYXRpb25Q
YXRoOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSA3OgotI2xpbmUgMTQxICJXZWJDb3Jl
L3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDEzOCAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewog
ICAgICAgICAoeXl2YWwubG9jYXRpb25QYXRoKSA9ICh5eXZzcFsoMikgLSAoMildLmxvY2F0aW9u
UGF0aCk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDg6Ci0jbGluZSAxNDYgIldlYkNv
cmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMTQzICJYUGF0aEdyYW1tYXIueSIKICAgICB7
CiAgICAgICAgICh5eXZhbC5sb2NhdGlvblBhdGgpID0gKHl5dnNwWygyKSAtICgyKV0ubG9jYXRp
b25QYXRoKTsKLSAgICAgICAgKHl5dmFsLmxvY2F0aW9uUGF0aCktPnByZXBlbmRTdGVwKHN0ZDo6
dW5pcXVlX3B0cjxTdGVwPigoeXl2c3BbKDEpIC0gKDIpXS5zdGVwKSkpOworICAgICAgICAoeXl2
YWwubG9jYXRpb25QYXRoKS0+cHJlcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQ
YXRoOjpTdGVwPigoeXl2c3BbKDEpIC0gKDIpXS5zdGVwKSkpOwogICAgIDt9CiAgICAgYnJlYWs7
CiAKICAgY2FzZSA5OgotI2xpbmUgMTU0ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNs
aW5lIDE1MSAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAgICAgICAoeXl2YWwubG9jYXRpb25Q
YXRoKSA9IG5ldyBMb2NhdGlvblBhdGg7Ci0gICAgICAgICh5eXZhbC5sb2NhdGlvblBhdGgpLT5h
cHBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0cjxTdGVwPigoeXl2c3BbKDEpIC0gKDEpXS5zdGVwKSkp
OworICAgICAgICAoeXl2YWwubG9jYXRpb25QYXRoKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TG9j
YXRpb25QYXRoOworICAgICAgICAoeXl2YWwubG9jYXRpb25QYXRoKS0+YXBwZW5kU3RlcChzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA+KCh5eXZzcFsoMSkgLSAoMSldLnN0ZXAp
KSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDEwOgotI2xpbmUgMTYwICJXZWJDb3Jl
L3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDE1NyAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewog
ICAgICAgICAoeXl2YWwubG9jYXRpb25QYXRoKSA9ICh5eXZzcFsoMSkgLSAoMyldLmxvY2F0aW9u
UGF0aCk7Ci0gICAgICAgICh5eXZhbC5sb2NhdGlvblBhdGgpLT5hcHBlbmRTdGVwKHN0ZDo6dW5p
cXVlX3B0cjxTdGVwPigoeXl2c3BbKDMpIC0gKDMpXS5zdGVwKSkpOworICAgICAgICAoeXl2YWwu
bG9jYXRpb25QYXRoKS0+YXBwZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6
OlN0ZXA+KCh5eXZzcFsoMykgLSAoMyldLnN0ZXApKSk7CiAgICAgO30KICAgICBicmVhazsKIAog
ICBjYXNlIDExOgotI2xpbmUgMTY2ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5l
IDE2MyAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAgICAoeXl2YWwubG9jYXRpb25QYXRo
KSA9ICh5eXZzcFsoMSkgLSAoMyldLmxvY2F0aW9uUGF0aCk7Ci0gICAgICAgICh5eXZhbC5sb2Nh
dGlvblBhdGgpLT5hcHBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0cjxTdGVwPigoeXl2c3BbKDIpIC0g
KDMpXS5zdGVwKSkpOwotICAgICAgICAoeXl2YWwubG9jYXRpb25QYXRoKS0+YXBwZW5kU3RlcChz
dGQ6OnVuaXF1ZV9wdHI8U3RlcD4oKHl5dnNwWygzKSAtICgzKV0uc3RlcCkpKTsKKyAgICAgICAg
KHl5dmFsLmxvY2F0aW9uUGF0aCktPmFwcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OlhQYXRoOjpTdGVwPigoeXl2c3BbKDIpIC0gKDMpXS5zdGVwKSkpOworICAgICAgICAoeXl2YWwu
bG9jYXRpb25QYXRoKS0+YXBwZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6
OlN0ZXA+KCh5eXZzcFsoMykgLSAoMyldLnN0ZXApKSk7CiAgICAgO30KICAgICBicmVhazsKIAog
ICBjYXNlIDEyOgotI2xpbmUgMTc1ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5l
IDE3MiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3Rl
cDo6Tm9kZVRlc3Q+IG5vZGVUZXN0KCh5eXZzcFsoMSkgLSAoMildLm5vZGVUZXN0KSk7Ci0gICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+Pj4g
cHJlZGljYXRlTGlzdCgoeXl2c3BbKDIpIC0gKDIpXS5leHByZXNzaW9uVmVjdG9yKSk7CisgICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q+IG5vZGVU
ZXN0KCh5eXZzcFsoMSkgLSAoMildLm5vZGVUZXN0KSk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPj4+IHBy
ZWRpY2F0ZUxpc3QoKHl5dnNwWygyKSAtICgyKV0uZXhwcmVzc2lvblZlY3RvcikpOwogICAgICAg
ICBpZiAocHJlZGljYXRlTGlzdCkKLSAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVw
KFN0ZXA6OkNoaWxkQXhpcywgV1RGTW92ZSgqbm9kZVRlc3QpLCBXVEZNb3ZlKCpwcmVkaWNhdGVM
aXN0KSk7CisgICAgICAgICAgICAoeXl2YWwuc3RlcCkgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0
ZXAoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6OkNoaWxkQXhpcywgV1RGTW92ZSgqbm9kZVRlc3QpLCBX
VEZNb3ZlKCpwcmVkaWNhdGVMaXN0KSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICh5eXZh
bC5zdGVwKSA9IG5ldyBTdGVwKFN0ZXA6OkNoaWxkQXhpcywgV1RGTW92ZSgqbm9kZVRlc3QpKTsK
KyAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcChXZWJD
b3JlOjpYUGF0aDo6U3RlcDo6Q2hpbGRBeGlzLCBXVEZNb3ZlKCpub2RlVGVzdCkpOwogICAgIDt9
CiAgICAgYnJlYWs7CiAKICAgY2FzZSAxMzoKLSNsaW5lIDE4NSAiV2ViQ29yZS94bWwvWFBhdGhH
cmFtbWFyLnkiCisjbGluZSAxODIgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAgU3Ry
aW5nIG5hbWV0ZXN0ID0gYWRvcHRSZWYoKHl5dnNwWygxKSAtICgyKV0uc3RyaW5nKSk7Ci0gICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+Pj4g
cHJlZGljYXRlTGlzdCgoeXl2c3BbKDIpIC0gKDIpXS5leHByZXNzaW9uVmVjdG9yKSk7CisgICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRo
OjpFeHByZXNzaW9uPj4+IHByZWRpY2F0ZUxpc3QoKHl5dnNwWygyKSAtICgyKV0uZXhwcmVzc2lv
blZlY3RvcikpOwogCiAgICAgICAgIFN0cmluZyBsb2NhbE5hbWU7CiAgICAgICAgIFN0cmluZyBu
YW1lc3BhY2VVUkk7CkBAIC0xNzUwLDMwICsxNzQ4LDMwIEBAIHl5cmVkdWNlOgogICAgICAgICB9
CiAKICAgICAgICAgaWYgKHByZWRpY2F0ZUxpc3QpCi0gICAgICAgICAgICAoeXl2YWwuc3RlcCkg
PSBuZXcgU3RlcChTdGVwOjpDaGlsZEF4aXMsIFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0
OjpOYW1lVGVzdCwgbG9jYWxOYW1lLCBuYW1lc3BhY2VVUkkpLCBXVEZNb3ZlKCpwcmVkaWNhdGVM
aXN0KSk7CisgICAgICAgICAgICAoeXl2YWwuc3RlcCkgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0
ZXAoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6OkNoaWxkQXhpcywgV2ViQ29yZTo6WFBhdGg6OlN0ZXA6
Ok5vZGVUZXN0KFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6TmFtZVRlc3QsIGxvY2Fs
TmFtZSwgbmFtZXNwYWNlVVJJKSwgV1RGTW92ZSgqcHJlZGljYXRlTGlzdCkpOwogICAgICAgICBl
bHNlCi0gICAgICAgICAgICAoeXl2YWwuc3RlcCkgPSBuZXcgU3RlcChTdGVwOjpDaGlsZEF4aXMs
IFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpOYW1lVGVzdCwgbG9jYWxOYW1lLCBuYW1l
c3BhY2VVUkkpKTsKKyAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBXZWJDb3JlOjpYUGF0
aDo6U3RlcChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Q2hpbGRBeGlzLCBXZWJDb3JlOjpYUGF0aDo6
U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpOYW1lVGVzdCwg
bG9jYWxOYW1lLCBuYW1lc3BhY2VVUkkpKTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2Ug
MTQ6Ci0jbGluZSAyMDMgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMjAwICJY
UGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGVwOjpOb2Rl
VGVzdD4gbm9kZVRlc3QoKHl5dnNwWygyKSAtICgzKV0ubm9kZVRlc3QpKTsKLSAgICAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+PiBwcmVkaWNh
dGVMaXN0KCh5eXZzcFsoMykgLSAoMyldLmV4cHJlc3Npb25WZWN0b3IpKTsKKyAgICAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdD4gbm9kZVRlc3QoKHl5
dnNwWygyKSAtICgzKV0ubm9kZVRlc3QpKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3Rv
cjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+Pj4gcHJlZGljYXRl
TGlzdCgoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNzaW9uVmVjdG9yKSk7CiAKICAgICAgICAgaWYg
KHByZWRpY2F0ZUxpc3QpCi0gICAgICAgICAgICAoeXl2YWwuc3RlcCkgPSBuZXcgU3RlcCgoeXl2
c3BbKDEpIC0gKDMpXS5heGlzKSwgV1RGTW92ZSgqbm9kZVRlc3QpLCBXVEZNb3ZlKCpwcmVkaWNh
dGVMaXN0KSk7CisgICAgICAgICAgICAoeXl2YWwuc3RlcCkgPSBuZXcgV2ViQ29yZTo6WFBhdGg6
OlN0ZXAoKHl5dnNwWygxKSAtICgzKV0uYXhpcyksIFdURk1vdmUoKm5vZGVUZXN0KSwgV1RGTW92
ZSgqcHJlZGljYXRlTGlzdCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICAoeXl2YWwuc3Rl
cCkgPSBuZXcgU3RlcCgoeXl2c3BbKDEpIC0gKDMpXS5heGlzKSwgV1RGTW92ZSgqbm9kZVRlc3Qp
KTsKKyAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcCgo
eXl2c3BbKDEpIC0gKDMpXS5heGlzKSwgV1RGTW92ZSgqbm9kZVRlc3QpKTsKICAgICA7fQogICAg
IGJyZWFrOwogCiAgIGNhc2UgMTU6Ci0jbGluZSAyMTQgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1h
ci55IgorI2xpbmUgMjExICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgIFN0cmluZyBu
YW1ldGVzdCA9IGFkb3B0UmVmKCh5eXZzcFsoMikgLSAoMyldLnN0cmluZykpOwotICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPj4+IHByZWRp
Y2F0ZUxpc3QoKHl5dnNwWygzKSAtICgzKV0uZXhwcmVzc2lvblZlY3RvcikpOworICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhw
cmVzc2lvbj4+PiBwcmVkaWNhdGVMaXN0KCh5eXZzcFsoMykgLSAoMyldLmV4cHJlc3Npb25WZWN0
b3IpKTsKIAogICAgICAgICBTdHJpbmcgbG9jYWxOYW1lOwogICAgICAgICBTdHJpbmcgbmFtZXNw
YWNlVVJJOwpAQCAtMTc4MywyNzIgKzE3ODEsMjcyIEBAIHl5cmVkdWNlOgogICAgICAgICB9CiAK
ICAgICAgICAgaWYgKHByZWRpY2F0ZUxpc3QpCi0gICAgICAgICAgICAoeXl2YWwuc3RlcCkgPSBu
ZXcgU3RlcCgoeXl2c3BbKDEpIC0gKDMpXS5heGlzKSwgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9k
ZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSksIFdURk1vdmUoKnByZWRp
Y2F0ZUxpc3QpKTsKKyAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBXZWJDb3JlOjpYUGF0
aDo6U3RlcCgoeXl2c3BbKDEpIC0gKDMpXS5heGlzKSwgV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5v
ZGVUZXN0KFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6TmFtZVRlc3QsIGxvY2FsTmFt
ZSwgbmFtZXNwYWNlVVJJKSwgV1RGTW92ZSgqcHJlZGljYXRlTGlzdCkpOwogICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAoeXl2YWwuc3RlcCkgPSBuZXcgU3RlcCgoeXl2c3BbKDEpIC0gKDMpXS5h
eGlzKSwgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUs
IG5hbWVzcGFjZVVSSSkpOworICAgICAgICAgICAgKHl5dmFsLnN0ZXApID0gbmV3IFdlYkNvcmU6
OlhQYXRoOjpTdGVwKCh5eXZzcFsoMSkgLSAoMyldLmF4aXMpLCBXZWJDb3JlOjpYUGF0aDo6U3Rl
cDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpOYW1lVGVzdCwgbG9j
YWxOYW1lLCBuYW1lc3BhY2VVUkkpKTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMTg6
Ci0jbGluZSAyMzggIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMjM1ICJYUGF0
aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgICh5eXZhbC5heGlzKSA9IFN0ZXA6OkF0dHJpYnV0
ZUF4aXM7CisgICAgICAgICh5eXZhbC5heGlzKSA9IFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpBdHRy
aWJ1dGVBeGlzOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAxOToKLSNsaW5lIDI0NSAi
V2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyNDIgIlhQYXRoR3JhbW1hci55Igog
ICAgIHsKLSAgICAgICAgKHl5dmFsLm5vZGVUZXN0KSA9IG5ldyBTdGVwOjpOb2RlVGVzdChTdGVw
OjpOb2RlVGVzdDo6QW55Tm9kZVRlc3QpOworICAgICAgICAoeXl2YWwubm9kZVRlc3QpID0gbmV3
IFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9k
ZVRlc3Q6OkFueU5vZGVUZXN0KTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMjA6Ci0j
bGluZSAyNTAgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMjQ3ICJYUGF0aEdy
YW1tYXIueSIKICAgICB7Ci0gICAgICAgICh5eXZhbC5ub2RlVGVzdCkgPSBuZXcgU3RlcDo6Tm9k
ZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6OlRleHROb2RlVGVzdCk7CisgICAgICAgICh5eXZhbC5ub2Rl
VGVzdCkgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0KFdlYkNvcmU6OlhQYXRo
OjpTdGVwOjpOb2RlVGVzdDo6VGV4dE5vZGVUZXN0KTsKICAgICA7fQogICAgIGJyZWFrOwogCiAg
IGNhc2UgMjE6Ci0jbGluZSAyNTUgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUg
MjUyICJYUGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgICh5eXZhbC5ub2RlVGVzdCkgPSBu
ZXcgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6OkNvbW1lbnROb2RlVGVzdCk7CisgICAg
ICAgICh5eXZhbC5ub2RlVGVzdCkgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0
KFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6Q29tbWVudE5vZGVUZXN0KTsKICAgICA7
fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMjI6Ci0jbGluZSAyNjAgIldlYkNvcmUveG1sL1hQYXRo
R3JhbW1hci55IgorI2xpbmUgMjU3ICJYUGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgICh5
eXZhbC5ub2RlVGVzdCkgPSBuZXcgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6OlByb2Nl
c3NpbmdJbnN0cnVjdGlvbk5vZGVUZXN0KTsKKyAgICAgICAgKHl5dmFsLm5vZGVUZXN0KSA9IG5l
dyBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5v
ZGVUZXN0OjpQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25Ob2RlVGVzdCk7CiAgICAgO30KICAgICBicmVh
azsKIAogICBjYXNlIDIzOgotI2xpbmUgMjY1ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIK
KyNsaW5lIDI2MiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAgICBTdHJpbmcgbGl0ZXJh
bCA9IGFkb3B0UmVmKCh5eXZzcFsoMykgLSAoNCldLnN0cmluZykpOwotICAgICAgICAoeXl2YWwu
bm9kZVRlc3QpID0gbmV3IFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb25Ob2RlVGVzdCwgbGl0ZXJhbC5zdHJpcFdoaXRlU3BhY2UoKSk7CisgICAgICAg
ICh5eXZhbC5ub2RlVGVzdCkgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0KFdl
YkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6UHJvY2Vzc2luZ0luc3RydWN0aW9uTm9kZVRl
c3QsIGxpdGVyYWwuc3RyaXBXaGl0ZVNwYWNlKCkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAg
Y2FzZSAyNDoKLSNsaW5lIDI3MyAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAy
NzAgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0
b3IpID0gbnVsbHB0cjsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMjY6Ci0jbGluZSAy
ODIgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMjc5ICJYUGF0aEdyYW1tYXIu
eSIKICAgICB7Ci0gICAgICAgICh5eXZhbC5leHByZXNzaW9uVmVjdG9yKSA9IG5ldyBWZWN0b3I8
c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+PjsKLSAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25W
ZWN0b3IpLT5hcHBlbmQoc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMSkgLSAo
MSldLmV4cHJlc3Npb24pKSk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9uVmVjdG9yKSA9IG5l
dyBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPj47Cisg
ICAgICAgICh5eXZhbC5leHByZXNzaW9uVmVjdG9yKS0+YXBwZW5kKHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgxKV0uZXhwcmVzc2lvbikp
KTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMjc6Ci0jbGluZSAyODggIldlYkNvcmUv
eG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMjg1ICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAg
ICAgICAgICh5eXZhbC5leHByZXNzaW9uVmVjdG9yKSA9ICh5eXZzcFsoMSkgLSAoMildLmV4cHJl
c3Npb25WZWN0b3IpOwotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvblZlY3RvciktPmFwcGVuZChz
dGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygyKSAtICgyKV0uZXhwcmVzc2lvbikp
KTsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3IpLT5hcHBlbmQoc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDIpIC0gKDIpXS5leHByZXNz
aW9uKSkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAyODoKLSNsaW5lIDI5NiAiV2Vi
Q29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyOTMgIlhQYXRoR3JhbW1hci55IgogICAg
IHsKICAgICAgICAgKHl5dmFsLmV4cHJlc3Npb24pID0gKHl5dnNwWygyKSAtICgzKV0uZXhwcmVz
c2lvbik7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDI5OgotI2xpbmUgMzAzICJXZWJD
b3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDMwMCAiWFBhdGhHcmFtbWFyLnkiCiAgICAg
ewotICAgICAgICAoeXl2YWwuc3RlcCkgPSBuZXcgU3RlcChTdGVwOjpEZXNjZW5kYW50T3JTZWxm
QXhpcywgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6OkFueU5vZGVUZXN0KSk7CisgICAg
ICAgICh5eXZhbC5zdGVwKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcChXZWJDb3JlOjpYUGF0
aDo6U3RlcDo6RGVzY2VuZGFudE9yU2VsZkF4aXMsIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2Rl
VGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6OkFueU5vZGVUZXN0KSk7CiAgICAg
O30KICAgICBicmVhazsKIAogICBjYXNlIDMwOgotI2xpbmUgMzEwICJXZWJDb3JlL3htbC9YUGF0
aEdyYW1tYXIueSIKKyNsaW5lIDMwNyAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAgICAgICAo
eXl2YWwuc3RlcCkgPSBuZXcgU3RlcChTdGVwOjpTZWxmQXhpcywgU3RlcDo6Tm9kZVRlc3QoU3Rl
cDo6Tm9kZVRlc3Q6OkFueU5vZGVUZXN0KSk7CisgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBX
ZWJDb3JlOjpYUGF0aDo6U3RlcChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6U2VsZkF4aXMsIFdlYkNv
cmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6
OkFueU5vZGVUZXN0KSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDMxOgotI2xpbmUg
MzE1ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDMxMiAiWFBhdGhHcmFtbWFy
LnkiCiAgICAgewotICAgICAgICAoeXl2YWwuc3RlcCkgPSBuZXcgU3RlcChTdGVwOjpQYXJlbnRB
eGlzLCBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6QW55Tm9kZVRlc3QpKTsKKyAgICAg
ICAgKHl5dmFsLnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdlYkNvcmU6OlhQYXRo
OjpTdGVwOjpQYXJlbnRBeGlzLCBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29y
ZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpBbnlOb2RlVGVzdCkpOwogICAgIDt9CiAgICAgYnJl
YWs7CiAKICAgY2FzZSAzMjoKLSNsaW5lIDMyMiAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnki
CisjbGluZSAzMTkgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAgU3RyaW5nIG5hbWUg
PSBhZG9wdFJlZigoeXl2c3BbKDEpIC0gKDEpXS5zdHJpbmcpKTsKLSAgICAgICAgKHl5dmFsLmV4
cHJlc3Npb24pID0gbmV3IFZhcmlhYmxlUmVmZXJlbmNlKG5hbWUpOworICAgICAgICAoeXl2YWwu
ZXhwcmVzc2lvbikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlZhcmlhYmxlUmVmZXJlbmNlKG5hbWUp
OwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAzMzoKLSNsaW5lIDMyOCAiV2ViQ29yZS94
bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAzMjUgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAg
ICAgICAgKHl5dmFsLmV4cHJlc3Npb24pID0gKHl5dnNwWygyKSAtICgzKV0uZXhwcmVzc2lvbik7
CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDM0OgotI2xpbmUgMzMzICJXZWJDb3JlL3ht
bC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDMzMCAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAg
ICAgICBTdHJpbmcgbGl0ZXJhbCA9IGFkb3B0UmVmKCh5eXZzcFsoMSkgLSAoMSldLnN0cmluZykp
OwotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgU3RyaW5nRXhwcmVzc2lvbihXVEZN
b3ZlKGxpdGVyYWwpKTsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb24pID0gbmV3IFdlYkNvcmU6
OlhQYXRoOjpTdHJpbmdFeHByZXNzaW9uKFdURk1vdmUobGl0ZXJhbCkpOwogICAgIDt9CiAgICAg
YnJlYWs7CiAKICAgY2FzZSAzNToKLSNsaW5lIDMzOSAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFy
LnkiCisjbGluZSAzMzYgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAgU3RyaW5nIG51
bWVyYWwgPSBhZG9wdFJlZigoeXl2c3BbKDEpIC0gKDEpXS5zdHJpbmcpKTsKLSAgICAgICAgKHl5
dmFsLmV4cHJlc3Npb24pID0gbmV3IE51bWJlcihudW1lcmFsLnRvRG91YmxlKCkpOworICAgICAg
ICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6Ok51bWJlcihudW1lcmFs
LnRvRG91YmxlKCkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAzNzoKLSNsaW5lIDM0
OSAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAzNDYgIlhQYXRoR3JhbW1hci55
IgogICAgIHsKICAgICAgICAgU3RyaW5nIG5hbWUgPSBhZG9wdFJlZigoeXl2c3BbKDEpIC0gKDMp
XS5zdHJpbmcpKTsKLSAgICAgICAgKHl5dmFsLmV4cHJlc3Npb24pID0gWFBhdGg6OkZ1bmN0aW9u
OjpjcmVhdGUobmFtZSkucmVsZWFzZSgpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBX
ZWJDb3JlOjpYUGF0aDo6RnVuY3Rpb246OmNyZWF0ZShuYW1lKS5yZWxlYXNlKCk7CiAgICAgICAg
IGlmICghKHl5dmFsLmV4cHJlc3Npb24pKQogICAgICAgICAgICAgWVlBQk9SVDsKICAgICA7fQog
ICAgIGJyZWFrOwogCiAgIGNhc2UgMzg6Ci0jbGluZSAzNTcgIldlYkNvcmUveG1sL1hQYXRoR3Jh
bW1hci55IgorI2xpbmUgMzU0ICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgIFN0cmlu
ZyBuYW1lID0gYWRvcHRSZWYoKHl5dnNwWygxKSAtICg0KV0uc3RyaW5nKSk7Ci0gICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+Pj4gYXJndW1l
bnRMaXN0KCh5eXZzcFsoMykgLSAoNCldLmV4cHJlc3Npb25WZWN0b3IpKTsKLSAgICAgICAgKHl5
dmFsLmV4cHJlc3Npb24pID0gWFBhdGg6OkZ1bmN0aW9uOjpjcmVhdGUobmFtZSwgV1RGTW92ZSgq
YXJndW1lbnRMaXN0KSkucmVsZWFzZSgpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9y
PHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4+PiBhcmd1bWVudExp
c3QoKHl5dnNwWygzKSAtICg0KV0uZXhwcmVzc2lvblZlY3RvcikpOworICAgICAgICAoeXl2YWwu
ZXhwcmVzc2lvbikgPSBXZWJDb3JlOjpYUGF0aDo6RnVuY3Rpb246OmNyZWF0ZShuYW1lLCBXVEZN
b3ZlKCphcmd1bWVudExpc3QpKS5yZWxlYXNlKCk7CiAgICAgICAgIGlmICghKHl5dmFsLmV4cHJl
c3Npb24pKQogICAgICAgICAgICAgWVlBQk9SVDsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNh
c2UgMzk6Ci0jbGluZSAzNjggIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMzY1
ICJYUGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgICh5eXZhbC5leHByZXNzaW9uVmVjdG9y
KSA9IG5ldyBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+PjsKLSAgICAgICAgKHl5
dmFsLmV4cHJlc3Npb25WZWN0b3IpLT5hcHBlbmQoc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+
KCh5eXZzcFsoMSkgLSAoMSldLmV4cHJlc3Npb24pKSk7CisgICAgICAgICh5eXZhbC5leHByZXNz
aW9uVmVjdG9yKSA9IG5ldyBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpF
eHByZXNzaW9uPj47CisgICAgICAgICh5eXZhbC5leHByZXNzaW9uVmVjdG9yKS0+YXBwZW5kKHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgx
KV0uZXhwcmVzc2lvbikpKTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgNDA6Ci0jbGlu
ZSAzNzQgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMzcxICJYUGF0aEdyYW1t
YXIueSIKICAgICB7CiAgICAgICAgICh5eXZhbC5leHByZXNzaW9uVmVjdG9yKSA9ICh5eXZzcFso
MSkgLSAoMyldLmV4cHJlc3Npb25WZWN0b3IpOwotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvblZl
Y3RvciktPmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygzKSAtICgz
KV0uZXhwcmVzc2lvbikpKTsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3IpLT5hcHBl
bmQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDMp
IC0gKDMpXS5leHByZXNzaW9uKSkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSA0MzoK
LSNsaW5lIDM4OCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAzODUgIlhQYXRo
R3JhbW1hci55IgogICAgIHsKLSAgICAgICAgKHl5dmFsLmV4cHJlc3Npb24pID0gbmV3IFVuaW9u
KHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMpXS5leHByZXNzaW9u
KSksIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNz
aW9uKSkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6
OlVuaW9uKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNw
WygxKSAtICgzKV0uZXhwcmVzc2lvbikpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6
OkV4cHJlc3Npb24+KCh5eXZzcFsoMykgLSAoMyldLmV4cHJlc3Npb24pKSk7CiAgICAgO30KICAg
ICBicmVhazsKIAogICBjYXNlIDQ0OgotI2xpbmUgMzk1ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1t
YXIueSIKKyNsaW5lIDM5MiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAgICAoeXl2YWwu
ZXhwcmVzc2lvbikgPSAoeXl2c3BbKDEpIC0gKDEpXS5sb2NhdGlvblBhdGgpOwogICAgIDt9CiAg
ICAgYnJlYWs7CiAKICAgY2FzZSA0NjoKLSNsaW5lIDQwMiAiV2ViQ29yZS94bWwvWFBhdGhHcmFt
bWFyLnkiCisjbGluZSAzOTkgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAgKHl5dnNw
WygzKSAtICgzKV0ubG9jYXRpb25QYXRoKS0+c2V0QWJzb2x1dGUoKTsKLSAgICAgICAgKHl5dmFs
LmV4cHJlc3Npb24pID0gbmV3IFhQYXRoOjpQYXRoKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9u
PigoeXl2c3BbKDEpIC0gKDMpXS5leHByZXNzaW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxMb2NhdGlv
blBhdGg+KCh5eXZzcFsoMykgLSAoMyldLmxvY2F0aW9uUGF0aCkpKTsKKyAgICAgICAgKHl5dmFs
LmV4cHJlc3Npb24pID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpQYXRoKHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgzKV0uZXhwcmVzc2lvbikp
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkxvY2F0aW9uUGF0aD4oKHl5dnNwWygz
KSAtICgzKV0ubG9jYXRpb25QYXRoKSkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSA0
NzoKLSNsaW5lIDQwOCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSA0MDUgIlhQ
YXRoR3JhbW1hci55IgogICAgIHsKLSAgICAgICAgKHl5dnNwWygzKSAtICgzKV0ubG9jYXRpb25Q
YXRoKS0+cHJlcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFN0ZXA+KCh5eXZzcFsoMikgLSAoMyld
LnN0ZXApKSk7CisgICAgICAgICh5eXZzcFsoMykgLSAoMyldLmxvY2F0aW9uUGF0aCktPnByZXBl
bmRTdGVwKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6U3RlcD4oKHl5dnNwWygyKSAt
ICgzKV0uc3RlcCkpKTsKICAgICAgICAgKHl5dnNwWygzKSAtICgzKV0ubG9jYXRpb25QYXRoKS0+
c2V0QWJzb2x1dGUoKTsKLSAgICAgICAgKHl5dmFsLmV4cHJlc3Npb24pID0gbmV3IFhQYXRoOjpQ
YXRoKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMpXS5leHByZXNz
aW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxMb2NhdGlvblBhdGg+KCh5eXZzcFsoMykgLSAoMyldLmxv
Y2F0aW9uUGF0aCkpKTsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb24pID0gbmV3IFdlYkNvcmU6
OlhQYXRoOjpQYXRoKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4o
KHl5dnNwWygxKSAtICgzKV0uZXhwcmVzc2lvbikpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
WFBhdGg6OkxvY2F0aW9uUGF0aD4oKHl5dnNwWygzKSAtICgzKV0ubG9jYXRpb25QYXRoKSkpOwog
ICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSA0OToKLSNsaW5lIDQxOSAiV2ViQ29yZS94bWwv
WFBhdGhHcmFtbWFyLnkiCisjbGluZSA0MTYgIlhQYXRoR3JhbW1hci55IgogICAgIHsKLSAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+PiBw
cmVkaWNhdGVMaXN0KCh5eXZzcFsoMikgLSAoMildLmV4cHJlc3Npb25WZWN0b3IpKTsKLSAgICAg
ICAgKHl5dmFsLmV4cHJlc3Npb24pID0gbmV3IEZpbHRlcihzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVz
c2lvbj4oKHl5dnNwWygxKSAtICgyKV0uZXhwcmVzc2lvbikpLCBXVEZNb3ZlKCpwcmVkaWNhdGVM
aXN0KSk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPj4+IHByZWRpY2F0ZUxpc3QoKHl5dnNwWygyKSAtICgy
KV0uZXhwcmVzc2lvblZlY3RvcikpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcg
V2ViQ29yZTo6WFBhdGg6OkZpbHRlcihzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4
cHJlc3Npb24+KCh5eXZzcFsoMSkgLSAoMildLmV4cHJlc3Npb24pKSwgV1RGTW92ZSgqcHJlZGlj
YXRlTGlzdCkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSA1MToKLSNsaW5lIDQyOSAi
V2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSA0MjYgIlhQYXRoR3JhbW1hci55Igog
ICAgIHsKLSAgICAgICAgKHl5dmFsLmV4cHJlc3Npb24pID0gbmV3IExvZ2ljYWxPcChMb2dpY2Fs
T3A6Ok9QX09yLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgzKV0u
ZXhwcmVzc2lvbikpLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygzKSAtICgz
KV0uZXhwcmVzc2lvbikpKTsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb24pID0gbmV3IFdlYkNv
cmU6OlhQYXRoOjpMb2dpY2FsT3AoV2ViQ29yZTo6WFBhdGg6OkxvZ2ljYWxPcDo6T1BfT3IsIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgz
KV0uZXhwcmVzc2lvbikpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Np
b24+KCh5eXZzcFsoMykgLSAoMyldLmV4cHJlc3Npb24pKSk7CiAgICAgO30KICAgICBicmVhazsK
IAogICBjYXNlIDUzOgotI2xpbmUgNDM4ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNs
aW5lIDQzNSAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAgICAgICAoeXl2YWwuZXhwcmVzc2lv
bikgPSBuZXcgTG9naWNhbE9wKExvZ2ljYWxPcDo6T1BfQW5kLCBzdGQ6OnVuaXF1ZV9wdHI8RXhw
cmVzc2lvbj4oKHl5dnNwWygxKSAtICgzKV0uZXhwcmVzc2lvbikpLCBzdGQ6OnVuaXF1ZV9wdHI8
RXhwcmVzc2lvbj4oKHl5dnNwWygzKSAtICgzKV0uZXhwcmVzc2lvbikpKTsKKyAgICAgICAgKHl5
dmFsLmV4cHJlc3Npb24pID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpMb2dpY2FsT3AoV2ViQ29yZTo6
WFBhdGg6OkxvZ2ljYWxPcDo6T1BfQW5kLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6
OkV4cHJlc3Npb24+KCh5eXZzcFsoMSkgLSAoMyldLmV4cHJlc3Npb24pKSwgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNz
aW9uKSkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSA1NToKLSNsaW5lIDQ0NyAiV2Vi
Q29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSA0NDQgIlhQYXRoR3JhbW1hci55IgogICAg
IHsKLSAgICAgICAgKHl5dmFsLmV4cHJlc3Npb24pID0gbmV3IEVxVGVzdE9wKCh5eXZzcFsoMikg
LSAoMyldLmVxdWFsaXR5VGVzdE9wY29kZSksIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigo
eXl2c3BbKDEpIC0gKDMpXS5leHByZXNzaW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9u
PigoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNzaW9uKSkpOworICAgICAgICAoeXl2YWwuZXhwcmVz
c2lvbikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OkVxVGVzdE9wKCh5eXZzcFsoMikgLSAoMyldLmVx
dWFsaXR5VGVzdE9wY29kZSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVz
c2lvbj4oKHl5dnNwWygxKSAtICgzKV0uZXhwcmVzc2lvbikpLCBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5eXZzcFsoMykgLSAoMyldLmV4cHJlc3Npb24pKSk7
CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDU3OgotI2xpbmUgNDU2ICJXZWJDb3JlL3ht
bC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDQ1MyAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAg
ICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgRXFUZXN0T3AoKHl5dnNwWygyKSAtICgzKV0u
ZXF1YWxpdHlUZXN0T3Bjb2RlKSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFso
MSkgLSAoMyldLmV4cHJlc3Npb24pKSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZz
cFsoMykgLSAoMyldLmV4cHJlc3Npb24pKSk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9
IG5ldyBXZWJDb3JlOjpYUGF0aDo6RXFUZXN0T3AoKHl5dnNwWygyKSAtICgzKV0uZXF1YWxpdHlU
ZXN0T3Bjb2RlKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigo
eXl2c3BbKDEpIC0gKDMpXS5leHByZXNzaW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpY
UGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNwWygzKSAtICgzKV0uZXhwcmVzc2lvbikpKTsKICAgICA7
fQogICAgIGJyZWFrOwogCiAgIGNhc2UgNTk6Ci0jbGluZSA0NjUgIldlYkNvcmUveG1sL1hQYXRo
R3JhbW1hci55IgorI2xpbmUgNDYyICJYUGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgICh5
eXZhbC5leHByZXNzaW9uKSA9IG5ldyBOdW1lcmljT3AoTnVtZXJpY09wOjpPUF9BZGQsIHN0ZDo6
dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMpXS5leHByZXNzaW9uKSksIHN0
ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNzaW9uKSkp
OworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6Ok51bWVy
aWNPcChXZWJDb3JlOjpYUGF0aDo6TnVtZXJpY09wOjpPUF9BZGQsIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgzKV0uZXhwcmVzc2lvbikp
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5eXZzcFsoMykg
LSAoMyldLmV4cHJlc3Npb24pKSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDYwOgot
I2xpbmUgNDcwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDQ2NyAiWFBhdGhH
cmFtbWFyLnkiCiAgICAgewotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgTnVtZXJp
Y09wKE51bWVyaWNPcDo6T1BfU3ViLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNw
WygxKSAtICgzKV0uZXhwcmVzc2lvbikpLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5
dnNwWygzKSAtICgzKV0uZXhwcmVzc2lvbikpKTsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb24p
ID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpOdW1lcmljT3AoV2ViQ29yZTo6WFBhdGg6Ok51bWVyaWNP
cDo6T1BfU3ViLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5
eXZzcFsoMSkgLSAoMyldLmV4cHJlc3Npb24pKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQ
YXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNzaW9uKSkpOwogICAgIDt9
CiAgICAgYnJlYWs7CiAKICAgY2FzZSA2MjoKLSNsaW5lIDQ3OSAiV2ViQ29yZS94bWwvWFBhdGhH
cmFtbWFyLnkiCisjbGluZSA0NzYgIlhQYXRoR3JhbW1hci55IgogICAgIHsKLSAgICAgICAgKHl5
dmFsLmV4cHJlc3Npb24pID0gbmV3IE51bWVyaWNPcCgoeXl2c3BbKDIpIC0gKDMpXS5udW1lcmlj
T3Bjb2RlKSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMSkgLSAoMyldLmV4
cHJlc3Npb24pKSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMykgLSAoMyld
LmV4cHJlc3Npb24pKSk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBXZWJDb3Jl
OjpYUGF0aDo6TnVtZXJpY09wKCh5eXZzcFsoMikgLSAoMyldLm51bWVyaWNPcGNvZGUpLCBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5eXZzcFsoMSkgLSAoMyld
LmV4cHJlc3Npb24pKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9u
PigoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNzaW9uKSkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAK
ICAgY2FzZSA2NDoKLSNsaW5lIDQ4OCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGlu
ZSA0ODUgIlhQYXRoR3JhbW1hci55IgogICAgIHsKLSAgICAgICAgKHl5dmFsLmV4cHJlc3Npb24p
ID0gbmV3IE5lZ2F0aXZlKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDIpIC0g
KDIpXS5leHByZXNzaW9uKSkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgV2Vi
Q29yZTo6WFBhdGg6Ok5lZ2F0aXZlKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhw
cmVzc2lvbj4oKHl5dnNwWygyKSAtICgyKV0uZXhwcmVzc2lvbikpKTsKICAgICA7fQogICAgIGJy
ZWFrOwogCiAKIC8qIExpbmUgMTI2NyBvZiB5YWNjLmMuICAqLwotI2xpbmUgMjA0OSAiLi9YUGF0
aEdyYW1tYXIuY3BwIgorI2xpbmUgMjA0NiAiWFBhdGhHcmFtbWFyLmNwcCIKICAgICAgIGRlZmF1
bHQ6IGJyZWFrOwogICAgIH0KICAgWVlfU1lNQk9MX1BSSU5UICgiLT4gJCQgPSIsIHl5cjFbeXlu
XSwgJnl5dmFsLCAmeXlsb2MpOwpAQCAtMjA4NywzNSArMjA4NSwzNSBAQCB5eWVycmxhYjoKICAg
ICAgIHl5ZXJyb3IgKHBhcnNlciwgWVlfKCJzeW50YXggZXJyb3IiKSk7CiAjZWxzZQogICAgICAg
ewotICAgIFlZU0laRV9UIHl5c2l6ZSA9IHl5c3ludGF4X2Vycm9yICgwLCB5eXN0YXRlLCB5eWNo
YXIpOwotICAgIGlmICh5eW1zZ19hbGxvYyA8IHl5c2l6ZSAmJiB5eW1zZ19hbGxvYyA8IFlZU1RB
Q0tfQUxMT0NfTUFYSU1VTSkKLSAgICAgIHsKLSAgICAgICAgWVlTSVpFX1QgeXlhbGxvYyA9IDIg
KiB5eXNpemU7Ci0gICAgICAgIGlmICghICh5eXNpemUgPD0geXlhbGxvYyAmJiB5eWFsbG9jIDw9
IFlZU1RBQ0tfQUxMT0NfTUFYSU1VTSkpCi0gICAgICAgICAgeXlhbGxvYyA9IFlZU1RBQ0tfQUxM
T0NfTUFYSU1VTTsKLSAgICAgICAgaWYgKHl5bXNnICE9IHl5bXNnYnVmKQotICAgICAgICAgIFlZ
U1RBQ0tfRlJFRSAoeXltc2cpOwotICAgICAgICB5eW1zZyA9IChjaGFyICopIFlZU1RBQ0tfQUxM
T0MgKHl5YWxsb2MpOwotICAgICAgICBpZiAoeXltc2cpCi0gICAgICAgICAgeXltc2dfYWxsb2Mg
PSB5eWFsbG9jOwotICAgICAgICBlbHNlCi0gICAgICAgICAgewotICAgICAgICB5eW1zZyA9IHl5
bXNnYnVmOwotICAgICAgICB5eW1zZ19hbGxvYyA9IHNpemVvZiB5eW1zZ2J1ZjsKLSAgICAgICAg
ICB9Ci0gICAgICB9Ci0KLSAgICBpZiAoMCA8IHl5c2l6ZSAmJiB5eXNpemUgPD0geXltc2dfYWxs
b2MpCi0gICAgICB7Ci0gICAgICAgICh2b2lkKSB5eXN5bnRheF9lcnJvciAoeXltc2csIHl5c3Rh
dGUsIHl5Y2hhcik7Ci0gICAgICAgIHl5ZXJyb3IgKHBhcnNlciwgeXltc2cpOwotICAgICAgfQot
ICAgIGVsc2UKLSAgICAgIHsKLSAgICAgICAgeXllcnJvciAocGFyc2VyLCBZWV8oInN5bnRheCBl
cnJvciIpKTsKLSAgICAgICAgaWYgKHl5c2l6ZSAhPSAwKQotICAgICAgICAgIGdvdG8geXlleGhh
dXN0ZWRsYWI7Ci0gICAgICB9CisJWVlTSVpFX1QgeXlzaXplID0geXlzeW50YXhfZXJyb3IgKDAs
IHl5c3RhdGUsIHl5Y2hhcik7CisJaWYgKHl5bXNnX2FsbG9jIDwgeXlzaXplICYmIHl5bXNnX2Fs
bG9jIDwgWVlTVEFDS19BTExPQ19NQVhJTVVNKQorCSAgeworCSAgICBZWVNJWkVfVCB5eWFsbG9j
ID0gMiAqIHl5c2l6ZTsKKwkgICAgaWYgKCEgKHl5c2l6ZSA8PSB5eWFsbG9jICYmIHl5YWxsb2Mg
PD0gWVlTVEFDS19BTExPQ19NQVhJTVVNKSkKKwkgICAgICB5eWFsbG9jID0gWVlTVEFDS19BTExP
Q19NQVhJTVVNOworCSAgICBpZiAoeXltc2cgIT0geXltc2didWYpCisJICAgICAgWVlTVEFDS19G
UkVFICh5eW1zZyk7CisJICAgIHl5bXNnID0gKGNoYXIgKikgWVlTVEFDS19BTExPQyAoeXlhbGxv
Yyk7CisJICAgIGlmICh5eW1zZykKKwkgICAgICB5eW1zZ19hbGxvYyA9IHl5YWxsb2M7CisJICAg
IGVsc2UKKwkgICAgICB7CisJCXl5bXNnID0geXltc2didWY7CisJCXl5bXNnX2FsbG9jID0gc2l6
ZW9mIHl5bXNnYnVmOworCSAgICAgIH0KKwkgIH0KKworCWlmICgwIDwgeXlzaXplICYmIHl5c2l6
ZSA8PSB5eW1zZ19hbGxvYykKKwkgIHsKKwkgICAgKHZvaWQpIHl5c3ludGF4X2Vycm9yICh5eW1z
ZywgeXlzdGF0ZSwgeXljaGFyKTsKKwkgICAgeXllcnJvciAocGFyc2VyLCB5eW1zZyk7CisJICB9
CisJZWxzZQorCSAgeworCSAgICB5eWVycm9yIChwYXJzZXIsIFlZXygic3ludGF4IGVycm9yIikp
OworCSAgICBpZiAoeXlzaXplICE9IDApCisJICAgICAgZ290byB5eWV4aGF1c3RlZGxhYjsKKwkg
IH0KICAgICAgIH0KICNlbmRpZgogICAgIH0KQEAgLTIxMjUsMjAgKzIxMjMsMjAgQEAgeXllcnJs
YWI6CiAgIGlmICh5eWVycnN0YXR1cyA9PSAzKQogICAgIHsKICAgICAgIC8qIElmIGp1c3QgdHJp
ZWQgYW5kIGZhaWxlZCB0byByZXVzZSBsb29rLWFoZWFkIHRva2VuIGFmdGVyIGFuCi0gICAgIGVy
cm9yLCBkaXNjYXJkIGl0LiAgKi8KKwkgZXJyb3IsIGRpc2NhcmQgaXQuICAqLwogCiAgICAgICBp
ZiAoeXljaGFyIDw9IFlZRU9GKQotICAgIHsKLSAgICAgIC8qIFJldHVybiBmYWlsdXJlIGlmIGF0
IGVuZCBvZiBpbnB1dC4gICovCi0gICAgICBpZiAoeXljaGFyID09IFlZRU9GKQotICAgICAgICBZ
WUFCT1JUOwotICAgIH0KKwl7CisJICAvKiBSZXR1cm4gZmFpbHVyZSBpZiBhdCBlbmQgb2YgaW5w
dXQuICAqLworCSAgaWYgKHl5Y2hhciA9PSBZWUVPRikKKwkgICAgWVlBQk9SVDsKKwl9CiAgICAg
ICBlbHNlCi0gICAgewotICAgICAgeXlkZXN0cnVjdCAoIkVycm9yOiBkaXNjYXJkaW5nIiwKLSAg
ICAgICAgICAgICAgeXl0b2tlbiwgJnl5bHZhbCwgcGFyc2VyKTsKLSAgICAgIHl5Y2hhciA9IFlZ
RU1QVFk7Ci0gICAgfQorCXsKKwkgIHl5ZGVzdHJ1Y3QgKCJFcnJvcjogZGlzY2FyZGluZyIsCisJ
CSAgICAgIHl5dG9rZW4sICZ5eWx2YWwsIHBhcnNlcik7CisJICB5eWNoYXIgPSBZWUVNUFRZOwor
CX0KICAgICB9CiAKICAgLyogRWxzZSB3aWxsIHRyeSB0byByZXVzZSBsb29rLWFoZWFkIHRva2Vu
IGFmdGVyIHNoaWZ0aW5nIHRoZSBlcnJvcgpAQCAtMjE1NCwxMCArMjE1Miw4IEBAIHl5ZXJyb3Js
YWI6CiAgIC8qIFBhY2lmeSBjb21waWxlcnMgbGlrZSBHQ0Mgd2hlbiB0aGUgdXNlciBjb2RlIG5l
dmVyIGludm9rZXMKICAgICAgWVlFUlJPUiBhbmQgdGhlIGxhYmVsIHl5ZXJyb3JsYWIgdGhlcmVm
b3JlIG5ldmVyIGFwcGVhcnMgaW4gdXNlcgogICAgICBjb2RlLiAgKi8KLSAgSUdOT1JFX0NMQU5H
X1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKICAgaWYgKC8qQ09OU1RDT05EKi8g
MCkKICAgICAgZ290byB5eWVycm9ybGFiOwotICBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAK
ICAgLyogRG8gbm90IHJlY2xhaW0gdGhlIHN5bWJvbHMgb2YgdGhlIHJ1bGUgd2hpY2ggYWN0aW9u
IHRyaWdnZXJlZAogICAgICB0aGlzIFlZRVJST1IuICAqLwpAQCAtMjE3MiwyOSArMjE2OCwyOSBA
QCB5eWVycm9ybGFiOgogfCB5eWVycmxhYjEgLS0gY29tbW9uIGNvZGUgZm9yIGJvdGggc3ludGF4
IGVycm9yIGFuZCBZWUVSUk9SLiAgfAogYC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogeXllcnJsYWIxOgotICB5eWVycnN0YXR1
cyA9IDM7ICAgIC8qIEVhY2ggcmVhbCB0b2tlbiBzaGlmdGVkIGRlY3JlbWVudHMgdGhpcy4gICov
CisgIHl5ZXJyc3RhdHVzID0gMzsJLyogRWFjaCByZWFsIHRva2VuIHNoaWZ0ZWQgZGVjcmVtZW50
cyB0aGlzLiAgKi8KIAogICBmb3IgKDs7KQogICAgIHsKICAgICAgIHl5biA9IHl5cGFjdFt5eXN0
YXRlXTsKICAgICAgIGlmICh5eW4gIT0gWVlQQUNUX05JTkYpCi0gICAgewotICAgICAgeXluICs9
IFlZVEVSUk9SOwotICAgICAgaWYgKDAgPD0geXluICYmIHl5biA8PSBZWUxBU1QgJiYgeXljaGVj
a1t5eW5dID09IFlZVEVSUk9SKQotICAgICAgICB7Ci0gICAgICAgICAgeXluID0geXl0YWJsZVt5
eW5dOwotICAgICAgICAgIGlmICgwIDwgeXluKQotICAgICAgICBicmVhazsKLSAgICAgICAgfQot
ICAgIH0KKwl7CisJICB5eW4gKz0gWVlURVJST1I7CisJICBpZiAoMCA8PSB5eW4gJiYgeXluIDw9
IFlZTEFTVCAmJiB5eWNoZWNrW3l5bl0gPT0gWVlURVJST1IpCisJICAgIHsKKwkgICAgICB5eW4g
PSB5eXRhYmxlW3l5bl07CisJICAgICAgaWYgKDAgPCB5eW4pCisJCWJyZWFrOworCSAgICB9CisJ
fQogCiAgICAgICAvKiBQb3AgdGhlIGN1cnJlbnQgc3RhdGUgYmVjYXVzZSBpdCBjYW5ub3QgaGFu
ZGxlIHRoZSBlcnJvciB0b2tlbi4gICovCiAgICAgICBpZiAoeXlzc3AgPT0geXlzcykKLSAgICBZ
WUFCT1JUOworCVlZQUJPUlQ7CiAKIAogICAgICAgeXlkZXN0cnVjdCAoIkVycm9yOiBwb3BwaW5n
IiwKLSAgICAgICAgICB5eXN0b3NbeXlzdGF0ZV0sIHl5dnNwLCBwYXJzZXIpOworCQkgIHl5c3Rv
c1t5eXN0YXRlXSwgeXl2c3AsIHBhcnNlcik7CiAgICAgICBZWVBPUFNUQUNLICgxKTsKICAgICAg
IHl5c3RhdGUgPSAqeXlzc3A7CiAgICAgICBZWV9TVEFDS19QUklOVCAoeXlzcywgeXlzc3ApOwpA
QCAtMjI0MCw3ICsyMjM2LDcgQEAgeXlleGhhdXN0ZWRsYWI6CiB5eXJldHVybjoKICAgaWYgKHl5
Y2hhciAhPSBZWUVPRiAmJiB5eWNoYXIgIT0gWVlFTVBUWSkKICAgICAgeXlkZXN0cnVjdCAoIkNs
ZWFudXA6IGRpc2NhcmRpbmcgbG9va2FoZWFkIiwKLSAgICAgICAgIHl5dG9rZW4sICZ5eWx2YWws
IHBhcnNlcik7CisJCSB5eXRva2VuLCAmeXlsdmFsLCBwYXJzZXIpOwogICAvKiBEbyBub3QgcmVj
bGFpbSB0aGUgc3ltYm9scyBvZiB0aGUgcnVsZSB3aGljaCBhY3Rpb24gdHJpZ2dlcmVkCiAgICAg
IHRoaXMgWVlBQk9SVCBvciBZWUFDQ0VQVC4gICovCiAgIFlZUE9QU1RBQ0sgKHl5bGVuKTsKQEAg
LTIyNDgsNyArMjI0NCw3IEBAIHl5cmV0dXJuOgogICB3aGlsZSAoeXlzc3AgIT0geXlzcykKICAg
ICB7CiAgICAgICB5eWRlc3RydWN0ICgiQ2xlYW51cDogcG9wcGluZyIsCi0gICAgICAgICAgeXlz
dG9zWyp5eXNzcF0sIHl5dnNwLCBwYXJzZXIpOworCQkgIHl5c3Rvc1sqeXlzc3BdLCB5eXZzcCwg
cGFyc2VyKTsKICAgICAgIFlZUE9QU1RBQ0sgKDEpOwogICAgIH0KICNpZm5kZWYgeXlvdmVyZmxv
dwpAQCAtMjI2NCw2ICsyMjYwLDYgQEAgeXlyZXR1cm46CiB9CiAKIAotI2xpbmUgNDkzICJXZWJD
b3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDQ5MCAiWFBhdGhHcmFtbWFyLnkiCiAKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IGIvU291cmNlL1dl
YkNvcmUveG1sL1hQYXRoR3JhbW1hci55CmluZGV4IDc3Njk4ZmE3NjRmN2ExNWE0NWJjNWMwZTVk
MmQ2Nzc1MWIxYmU3MGYuLmIwZThjNzI4MGNjMzNiMjFlNzUxY2MzNDYyNzk2YzBiY2FiMjc0MGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkKQEAgLTUyLDcgKzUyLDcgQEAKIAogJXB1cmUt
cGFyc2VyCiAlbGV4LXBhcmFtIHsgcGFyc2VyIH0KLSVwYXJzZS1wYXJhbSB7IFBhcnNlciYgcGFy
c2VyIH0KKyVwYXJzZS1wYXJhbSB7IFdlYkNvcmU6OlhQYXRoOjpQYXJzZXImIHBhcnNlciB9CiAK
ICV1bmlvbiB7IAogICAgIFdlYkNvcmU6OlhQYXRoOjpOdW1lcmljT3A6Ok9wY29kZSBudW1lcmlj
T3Bjb2RlOwpAQCAtMTAwLDggKzEwMCw4IEBACiAKICV7CiAKLXN0YXRpYyBpbnQgeHBhdGh5eWxl
eChZWVNUWVBFKiB5eWx2YWwsIFBhcnNlciYgcGFyc2VyKSB7IHJldHVybiBwYXJzZXIubGV4KCp5
eWx2YWwpOyB9Ci1zdGF0aWMgdm9pZCB4cGF0aHl5ZXJyb3IoUGFyc2VyJiwgY29uc3QgY2hhciop
IHsgfQorc3RhdGljIGludCB4cGF0aHl5bGV4KFlZU1RZUEUqIHl5bHZhbCwgV2ViQ29yZTo6WFBh
dGg6OlBhcnNlciYgcGFyc2VyKSB7IHJldHVybiBwYXJzZXIubGV4KCp5eWx2YWwpOyB9CitzdGF0
aWMgdm9pZCB4cGF0aHl5ZXJyb3IoV2ViQ29yZTo6WFBhdGg6OlBhcnNlciYsIGNvbnN0IGNoYXIq
KSB7IH0KIAogJX0KIApAQCAtMTEwLDcgKzExMCw3IEBAIHN0YXRpYyB2b2lkIHhwYXRoeXllcnJv
cihQYXJzZXImLCBjb25zdCBjaGFyKikgeyB9CiBUb3A6CiAgICAgRXhwcgogICAgIHsKLSAgICAg
ICAgcGFyc2VyLnNldFBhcnNlUmVzdWx0KHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigkMSkp
OworICAgICAgICBwYXJzZXIuc2V0UGFyc2VSZXN1bHQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OlhQYXRoOjpFeHByZXNzaW9uPigkMSkpOwogICAgIH0KICAgICA7CiAKQEAgLTEzMSw3ICsxMzEs
NyBAQCBMb2NhdGlvblBhdGg6CiBBYnNvbHV0ZUxvY2F0aW9uUGF0aDoKICAgICAnLycKICAgICB7
Ci0gICAgICAgICQkID0gbmV3IExvY2F0aW9uUGF0aDsKKyAgICAgICAgJCQgPSBuZXcgV2ViQ29y
ZTo6WFBhdGg6OkxvY2F0aW9uUGF0aDsKICAgICB9CiAgICAgfAogICAgICcvJyBSZWxhdGl2ZUxv
Y2F0aW9uUGF0aApAQCAtMTQyLDQ2ICsxNDIsNDYgQEAgQWJzb2x1dGVMb2NhdGlvblBhdGg6CiAg
ICAgRGVzY2VuZGFudE9yU2VsZiBSZWxhdGl2ZUxvY2F0aW9uUGF0aAogICAgIHsKICAgICAgICAg
JCQgPSAkMjsKLSAgICAgICAgJCQtPnByZXBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0cjxTdGVwPigk
MSkpOworICAgICAgICAkJC0+cHJlcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQ
YXRoOjpTdGVwPigkMSkpOwogICAgIH0KICAgICA7CiAKIFJlbGF0aXZlTG9jYXRpb25QYXRoOgog
ICAgIFN0ZXAKICAgICB7Ci0gICAgICAgICQkID0gbmV3IExvY2F0aW9uUGF0aDsKLSAgICAgICAg
JCQtPmFwcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFN0ZXA+KCQxKSk7CisgICAgICAgICQkID0g
bmV3IFdlYkNvcmU6OlhQYXRoOjpMb2NhdGlvblBhdGg7CisgICAgICAgICQkLT5hcHBlbmRTdGVw
KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6U3RlcD4oJDEpKTsKICAgICB9CiAgICAg
fAogICAgIFJlbGF0aXZlTG9jYXRpb25QYXRoICcvJyBTdGVwCiAgICAgewogICAgICAgICAkJCA9
ICQxOwotICAgICAgICAkJC0+YXBwZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8U3RlcD4oJDMpKTsK
KyAgICAgICAgJCQtPmFwcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpT
dGVwPigkMykpOwogICAgIH0KICAgICB8CiAgICAgUmVsYXRpdmVMb2NhdGlvblBhdGggRGVzY2Vu
ZGFudE9yU2VsZiBTdGVwCiAgICAgewogICAgICAgICAkJCA9ICQxOwotICAgICAgICAkJC0+YXBw
ZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8U3RlcD4oJDIpKTsKLSAgICAgICAgJCQtPmFwcGVuZFN0
ZXAoc3RkOjp1bmlxdWVfcHRyPFN0ZXA+KCQzKSk7CisgICAgICAgICQkLT5hcHBlbmRTdGVwKHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6U3RlcD4oJDIpKTsKKyAgICAgICAgJCQtPmFw
cGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpTdGVwPigkMykpOwogICAg
IH0KICAgICA7CiAKIFN0ZXA6CiAgICAgTm9kZVRlc3QgT3B0aW9uYWxQcmVkaWNhdGVMaXN0CiAg
ICAgewotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3RlcDo6Tm9kZVRlc3Q+IG5vZGVUZXN0KCQx
KTsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVz
c2lvbj4+PiBwcmVkaWNhdGVMaXN0KCQyKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdD4gbm9kZVRlc3QoJDEpOworICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lv
bj4+PiBwcmVkaWNhdGVMaXN0KCQyKTsKICAgICAgICAgaWYgKHByZWRpY2F0ZUxpc3QpCi0gICAg
ICAgICAgICAkJCA9IG5ldyBTdGVwKFN0ZXA6OkNoaWxkQXhpcywgV1RGTW92ZSgqbm9kZVRlc3Qp
LCBXVEZNb3ZlKCpwcmVkaWNhdGVMaXN0KSk7CisgICAgICAgICAgICAkJCA9IG5ldyBXZWJDb3Jl
OjpYUGF0aDo6U3RlcChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Q2hpbGRBeGlzLCBXVEZNb3ZlKCpu
b2RlVGVzdCksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgJCQgPSBuZXcgU3RlcChTdGVwOjpDaGlsZEF4aXMsIFdURk1vdmUoKm5vZGVUZXN0KSk7
CisgICAgICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcChXZWJDb3JlOjpYUGF0
aDo6U3RlcDo6Q2hpbGRBeGlzLCBXVEZNb3ZlKCpub2RlVGVzdCkpOwogICAgIH0KICAgICB8CiAg
ICAgTkFNRVRFU1QgT3B0aW9uYWxQcmVkaWNhdGVMaXN0CiAgICAgewogICAgICAgICBTdHJpbmcg
bmFtZXRlc3QgPSBhZG9wdFJlZigkMSk7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8
c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+Pj4gcHJlZGljYXRlTGlzdCgkMik7CisgICAgICAg
IHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpF
eHByZXNzaW9uPj4+IHByZWRpY2F0ZUxpc3QoJDIpOwogCiAgICAgICAgIFN0cmluZyBsb2NhbE5h
bWU7CiAgICAgICAgIFN0cmluZyBuYW1lc3BhY2VVUkk7CkBAIC0xOTEsMjYgKzE5MSwyNiBAQCBT
dGVwOgogICAgICAgICB9CiAKICAgICAgICAgaWYgKHByZWRpY2F0ZUxpc3QpCi0gICAgICAgICAg
ICAkJCA9IG5ldyBTdGVwKFN0ZXA6OkNoaWxkQXhpcywgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9k
ZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSksIFdURk1vdmUoKnByZWRp
Y2F0ZUxpc3QpKTsKKyAgICAgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdl
YkNvcmU6OlhQYXRoOjpTdGVwOjpDaGlsZEF4aXMsIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2Rl
VGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUs
IG5hbWVzcGFjZVVSSSksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgJCQgPSBuZXcgU3RlcChTdGVwOjpDaGlsZEF4aXMsIFN0ZXA6Ok5vZGVUZXN0
KFN0ZXA6Ok5vZGVUZXN0OjpOYW1lVGVzdCwgbG9jYWxOYW1lLCBuYW1lc3BhY2VVUkkpKTsKKyAg
ICAgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdlYkNvcmU6OlhQYXRoOjpT
dGVwOjpDaGlsZEF4aXMsIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChXZWJDb3JlOjpY
UGF0aDo6U3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSkp
OwogICAgIH0KICAgICB8CiAgICAgQXhpc1NwZWNpZmllciBOb2RlVGVzdCBPcHRpb25hbFByZWRp
Y2F0ZUxpc3QKICAgICB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGVwOjpOb2RlVGVzdD4g
bm9kZVRlc3QoJDIpOwotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVl
X3B0cjxFeHByZXNzaW9uPj4+IHByZWRpY2F0ZUxpc3QoJDMpOworICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0PiBub2RlVGVzdCgkMik7CisgICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRo
OjpFeHByZXNzaW9uPj4+IHByZWRpY2F0ZUxpc3QoJDMpOwogCiAgICAgICAgIGlmIChwcmVkaWNh
dGVMaXN0KQotICAgICAgICAgICAgJCQgPSBuZXcgU3RlcCgkMSwgV1RGTW92ZSgqbm9kZVRlc3Qp
LCBXVEZNb3ZlKCpwcmVkaWNhdGVMaXN0KSk7CisgICAgICAgICAgICAkJCA9IG5ldyBXZWJDb3Jl
OjpYUGF0aDo6U3RlcCgkMSwgV1RGTW92ZSgqbm9kZVRlc3QpLCBXVEZNb3ZlKCpwcmVkaWNhdGVM
aXN0KSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICQkID0gbmV3IFN0ZXAoJDEsIFdURk1v
dmUoKm5vZGVUZXN0KSk7CisgICAgICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3Rl
cCgkMSwgV1RGTW92ZSgqbm9kZVRlc3QpKTsKICAgICB9CiAgICAgfAogICAgIEF4aXNTcGVjaWZp
ZXIgTkFNRVRFU1QgT3B0aW9uYWxQcmVkaWNhdGVMaXN0CiAgICAgewogICAgICAgICBTdHJpbmcg
bmFtZXRlc3QgPSBhZG9wdFJlZigkMik7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8
c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+Pj4gcHJlZGljYXRlTGlzdCgkMyk7CisgICAgICAg
IHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpF
eHByZXNzaW9uPj4+IHByZWRpY2F0ZUxpc3QoJDMpOwogCiAgICAgICAgIFN0cmluZyBsb2NhbE5h
bWU7CiAgICAgICAgIFN0cmluZyBuYW1lc3BhY2VVUkk7CkBAIC0yMjAsOSArMjIwLDkgQEAgU3Rl
cDoKICAgICAgICAgfQogCiAgICAgICAgIGlmIChwcmVkaWNhdGVMaXN0KQotICAgICAgICAgICAg
JCQgPSBuZXcgU3RlcCgkMSwgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0
LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKKyAg
ICAgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKCQxLCBXZWJDb3JlOjpYUGF0
aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpOYW1lVGVz
dCwgbG9jYWxOYW1lLCBuYW1lc3BhY2VVUkkpLCBXVEZNb3ZlKCpwcmVkaWNhdGVMaXN0KSk7CiAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICQkID0gbmV3IFN0ZXAoJDEsIFN0ZXA6Ok5vZGVUZXN0
KFN0ZXA6Ok5vZGVUZXN0OjpOYW1lVGVzdCwgbG9jYWxOYW1lLCBuYW1lc3BhY2VVUkkpKTsKKyAg
ICAgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKCQxLCBXZWJDb3JlOjpYUGF0
aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpOYW1lVGVz
dCwgbG9jYWxOYW1lLCBuYW1lc3BhY2VVUkkpKTsKICAgICB9CiAgICAgfAogICAgIEFiYnJldmlh
dGVkU3RlcApAQCAtMjMzLDM1ICsyMzMsMzUgQEAgQXhpc1NwZWNpZmllcjoKICAgICB8CiAgICAg
J0AnCiAgICAgewotICAgICAgICAkJCA9IFN0ZXA6OkF0dHJpYnV0ZUF4aXM7CisgICAgICAgICQk
ID0gV2ViQ29yZTo6WFBhdGg6OlN0ZXA6OkF0dHJpYnV0ZUF4aXM7CiAgICAgfQogICAgIDsKIAog
Tm9kZVRlc3Q6CiAgICAgTk9ERSAnKCcgJyknCiAgICAgewotICAgICAgICAkJCA9IG5ldyBTdGVw
OjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6QW55Tm9kZVRlc3QpOworICAgICAgICAkJCA9IG5l
dyBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5v
ZGVUZXN0OjpBbnlOb2RlVGVzdCk7CiAgICAgfQogICAgIHwKICAgICBURVhUXyAnKCcgJyknCiAg
ICAgewotICAgICAgICAkJCA9IG5ldyBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6VGV4
dE5vZGVUZXN0KTsKKyAgICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVU
ZXN0KFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6VGV4dE5vZGVUZXN0KTsKICAgICB9
CiAgICAgfAogICAgIENPTU1FTlQgJygnICcpJwogICAgIHsKLSAgICAgICAgJCQgPSBuZXcgU3Rl
cDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6OkNvbW1lbnROb2RlVGVzdCk7CisgICAgICAgICQk
ID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6U3Rl
cDo6Tm9kZVRlc3Q6OkNvbW1lbnROb2RlVGVzdCk7CiAgICAgfQogICAgIHwKICAgICBQSSAnKCcg
JyknCiAgICAgewotICAgICAgICAkJCA9IG5ldyBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVz
dDo6UHJvY2Vzc2luZ0luc3RydWN0aW9uTm9kZVRlc3QpOworICAgICAgICAkJCA9IG5ldyBXZWJD
b3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0
OjpQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25Ob2RlVGVzdCk7CiAgICAgfQogICAgIHwKICAgICBQSSAn
KCcgTElURVJBTCAnKScKICAgICB7CiAgICAgICAgIFN0cmluZyBsaXRlcmFsID0gYWRvcHRSZWYo
JDMpOwotICAgICAgICAkJCA9IG5ldyBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6UHJv
Y2Vzc2luZ0luc3RydWN0aW9uTm9kZVRlc3QsIGxpdGVyYWwuc3RyaXBXaGl0ZVNwYWNlKCkpOwor
ICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6
WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25Ob2RlVGVzdCwgbGl0
ZXJhbC5zdHJpcFdoaXRlU3BhY2UoKSk7CiAgICAgfQogICAgIDsKIApAQCAtMjc3LDE0ICsyNzcs
MTQgQEAgT3B0aW9uYWxQcmVkaWNhdGVMaXN0OgogUHJlZGljYXRlTGlzdDoKICAgICBQcmVkaWNh
dGUKICAgICB7Ci0gICAgICAgICQkID0gbmV3IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVz
c2lvbj4+OwotICAgICAgICAkJC0+YXBwZW5kKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigk
MSkpOworICAgICAgICAkJCA9IG5ldyBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQ
YXRoOjpFeHByZXNzaW9uPj47CisgICAgICAgICQkLT5hcHBlbmQoc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMSkpOwogICAgIH0KICAgICB8CiAgICAgUHJlZGlj
YXRlTGlzdCBQcmVkaWNhdGUKICAgICB7CiAgICAgICAgICQkID0gJDE7Ci0gICAgICAgICQkLT5h
cHBlbmQoc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQyKSk7CisgICAgICAgICQkLT5hcHBl
bmQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMikpOwogICAg
IH0KICAgICA7CiAKQEAgLTI5OCwxOSArMjk4LDE5IEBAIFByZWRpY2F0ZToKIERlc2NlbmRhbnRP
clNlbGY6CiAgICAgU0xBU0hTTEFTSAogICAgIHsKLSAgICAgICAgJCQgPSBuZXcgU3RlcChTdGVw
OjpEZXNjZW5kYW50T3JTZWxmQXhpcywgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6OkFu
eU5vZGVUZXN0KSk7CisgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdlYkNv
cmU6OlhQYXRoOjpTdGVwOjpEZXNjZW5kYW50T3JTZWxmQXhpcywgV2ViQ29yZTo6WFBhdGg6OlN0
ZXA6Ok5vZGVUZXN0KFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6QW55Tm9kZVRlc3Qp
KTsKICAgICB9CiAgICAgOwogCiBBYmJyZXZpYXRlZFN0ZXA6CiAgICAgJy4nCiAgICAgewotICAg
ICAgICAkJCA9IG5ldyBTdGVwKFN0ZXA6OlNlbGZBeGlzLCBTdGVwOjpOb2RlVGVzdChTdGVwOjpO
b2RlVGVzdDo6QW55Tm9kZVRlc3QpKTsKKyAgICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6
OlN0ZXAoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6OlNlbGZBeGlzLCBXZWJDb3JlOjpYUGF0aDo6U3Rl
cDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpBbnlOb2RlVGVzdCkp
OwogICAgIH0KICAgICB8CiAgICAgRE9URE9UCiAgICAgewotICAgICAgICAkJCA9IG5ldyBTdGVw
KFN0ZXA6OlBhcmVudEF4aXMsIFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpBbnlOb2Rl
VGVzdCkpOworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcChXZWJDb3JlOjpY
UGF0aDo6U3RlcDo6UGFyZW50QXhpcywgV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0KFdl
YkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6QW55Tm9kZVRlc3QpKTsKICAgICB9CiAgICAg
OwogCkBAIC0zMTgsNyArMzE4LDcgQEAgUHJpbWFyeUV4cHI6CiAgICAgVkFSSUFCTEVSRUZFUkVO
Q0UKICAgICB7CiAgICAgICAgIFN0cmluZyBuYW1lID0gYWRvcHRSZWYoJDEpOwotICAgICAgICAk
JCA9IG5ldyBWYXJpYWJsZVJlZmVyZW5jZShuYW1lKTsKKyAgICAgICAgJCQgPSBuZXcgV2ViQ29y
ZTo6WFBhdGg6OlZhcmlhYmxlUmVmZXJlbmNlKG5hbWUpOwogICAgIH0KICAgICB8CiAgICAgJygn
IEV4cHIgJyknCkBAIC0zMjksMTMgKzMyOSwxMyBAQCBQcmltYXJ5RXhwcjoKICAgICBMSVRFUkFM
CiAgICAgewogICAgICAgICBTdHJpbmcgbGl0ZXJhbCA9IGFkb3B0UmVmKCQxKTsKLSAgICAgICAg
JCQgPSBuZXcgU3RyaW5nRXhwcmVzc2lvbihXVEZNb3ZlKGxpdGVyYWwpKTsKKyAgICAgICAgJCQg
PSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0cmluZ0V4cHJlc3Npb24oV1RGTW92ZShsaXRlcmFsKSk7
CiAgICAgfQogICAgIHwKICAgICBOVU1CRVIKICAgICB7CiAgICAgICAgIFN0cmluZyBudW1lcmFs
ID0gYWRvcHRSZWYoJDEpOwotICAgICAgICAkJCA9IG5ldyBOdW1iZXIobnVtZXJhbC50b0RvdWJs
ZSgpKTsKKyAgICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6Ok51bWJlcihudW1lcmFsLnRv
RG91YmxlKCkpOwogICAgIH0KICAgICB8CiAgICAgRnVuY3Rpb25DYWxsCkBAIC0zNDUsNyArMzQ1
LDcgQEAgRnVuY3Rpb25DYWxsOgogICAgIEZVTkNUSU9OTkFNRSAnKCcgJyknCiAgICAgewogICAg
ICAgICBTdHJpbmcgbmFtZSA9IGFkb3B0UmVmKCQxKTsKLSAgICAgICAgJCQgPSBYUGF0aDo6RnVu
Y3Rpb246OmNyZWF0ZShuYW1lKS5yZWxlYXNlKCk7CisgICAgICAgICQkID0gV2ViQ29yZTo6WFBh
dGg6OkZ1bmN0aW9uOjpjcmVhdGUobmFtZSkucmVsZWFzZSgpOwogICAgICAgICBpZiAoISQkKQog
ICAgICAgICAgICAgWVlBQk9SVDsKICAgICB9CkBAIC0zNTMsOCArMzUzLDggQEAgRnVuY3Rpb25D
YWxsOgogICAgIEZVTkNUSU9OTkFNRSAnKCcgQXJndW1lbnRMaXN0ICcpJwogICAgIHsKICAgICAg
ICAgU3RyaW5nIG5hbWUgPSBhZG9wdFJlZigkMSk7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxW
ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+Pj4gYXJndW1lbnRMaXN0KCQzKTsKLSAg
ICAgICAgJCQgPSBYUGF0aDo6RnVuY3Rpb246OmNyZWF0ZShuYW1lLCBXVEZNb3ZlKCphcmd1bWVu
dExpc3QpKS5yZWxlYXNlKCk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPj4+IGFyZ3VtZW50TGlzdCgkMyk7
CisgICAgICAgICQkID0gV2ViQ29yZTo6WFBhdGg6OkZ1bmN0aW9uOjpjcmVhdGUobmFtZSwgV1RG
TW92ZSgqYXJndW1lbnRMaXN0KSkucmVsZWFzZSgpOwogICAgICAgICBpZiAoISQkKQogICAgICAg
ICAgICAgWVlBQk9SVDsKICAgICB9CkBAIC0zNjMsMTQgKzM2MywxNCBAQCBGdW5jdGlvbkNhbGw6
CiBBcmd1bWVudExpc3Q6CiAgICAgQXJndW1lbnQKICAgICB7Ci0gICAgICAgICQkID0gbmV3IFZl
Y3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+OwotICAgICAgICAkJC0+YXBwZW5kKHN0
ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigkMSkpOworICAgICAgICAkJCA9IG5ldyBWZWN0b3I8
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPj47CisgICAgICAgICQk
LT5hcHBlbmQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMSkp
OwogICAgIH0KICAgICB8CiAgICAgQXJndW1lbnRMaXN0ICcsJyBBcmd1bWVudAogICAgIHsKICAg
ICAgICAgJCQgPSAkMTsKLSAgICAgICAgJCQtPmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVz
c2lvbj4oJDMpKTsKKyAgICAgICAgJCQtPmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
WFBhdGg6OkV4cHJlc3Npb24+KCQzKSk7CiAgICAgfQogICAgIDsKIApAQCAtMzgzLDcgKzM4Myw3
IEBAIFVuaW9uRXhwcjoKICAgICB8CiAgICAgVW5pb25FeHByICd8JyBQYXRoRXhwcgogICAgIHsK
LSAgICAgICAgJCQgPSBuZXcgVW5pb24oc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQxKSwg
c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQzKSk7CisgICAgICAgICQkID0gbmV3IFdlYkNv
cmU6OlhQYXRoOjpVbmlvbihzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Np
b24+KCQxKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMykp
OwogICAgIH0KICAgICA7CiAKQEAgLTM5OCwxNCArMzk4LDE0IEBAIFBhdGhFeHByOgogICAgIEZp
bHRlckV4cHIgJy8nIFJlbGF0aXZlTG9jYXRpb25QYXRoCiAgICAgewogICAgICAgICAkMy0+c2V0
QWJzb2x1dGUoKTsKLSAgICAgICAgJCQgPSBuZXcgWFBhdGg6OlBhdGgoc3RkOjp1bmlxdWVfcHRy
PEV4cHJlc3Npb24+KCQxKSwgc3RkOjp1bmlxdWVfcHRyPExvY2F0aW9uUGF0aD4oJDMpKTsKKyAg
ICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlBhdGgoc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0
aDo6TG9jYXRpb25QYXRoPigkMykpOwogICAgIH0KICAgICB8CiAgICAgRmlsdGVyRXhwciBEZXNj
ZW5kYW50T3JTZWxmIFJlbGF0aXZlTG9jYXRpb25QYXRoCiAgICAgewotICAgICAgICAkMy0+cHJl
cGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFN0ZXA+KCQyKSk7CisgICAgICAgICQzLT5wcmVwZW5k
U3RlcChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA+KCQyKSk7CiAgICAgICAg
ICQzLT5zZXRBYnNvbHV0ZSgpOwotICAgICAgICAkJCA9IG5ldyBYUGF0aDo6UGF0aChzdGQ6OnVu
aXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8TG9jYXRpb25QYXRoPigk
MykpOworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6UGF0aChzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQxKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlhQYXRoOjpMb2NhdGlvblBhdGg+KCQzKSk7CiAgICAgfQogICAgIDsKIApAQCAtNDE0LDgg
KzQxNCw4IEBAIEZpbHRlckV4cHI6CiAgICAgfAogICAgIFByaW1hcnlFeHByIFByZWRpY2F0ZUxp
c3QKICAgICB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRy
PEV4cHJlc3Npb24+Pj4gcHJlZGljYXRlTGlzdCgkMik7Ci0gICAgICAgICQkID0gbmV3IEZpbHRl
cihzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDEpLCBXVEZNb3ZlKCpwcmVkaWNhdGVMaXN0
KSk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlhQYXRoOjpFeHByZXNzaW9uPj4+IHByZWRpY2F0ZUxpc3QoJDIpOworICAgICAgICAkJCA9
IG5ldyBXZWJDb3JlOjpYUGF0aDo6RmlsdGVyKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0
aDo6RXhwcmVzc2lvbj4oJDEpLCBXVEZNb3ZlKCpwcmVkaWNhdGVMaXN0KSk7CiAgICAgfQogICAg
IDsKIApAQCAtNDI0LDcgKzQyNCw3IEBAIE9yRXhwcjoKICAgICB8CiAgICAgT3JFeHByIE9SIEFu
ZEV4cHIKICAgICB7Ci0gICAgICAgICQkID0gbmV3IExvZ2ljYWxPcChMb2dpY2FsT3A6Ok9QX09y
LCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVz
c2lvbj4oJDMpKTsKKyAgICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OkxvZ2ljYWxPcChX
ZWJDb3JlOjpYUGF0aDo6TG9naWNhbE9wOjpPUF9Pciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OlhQYXRoOjpFeHByZXNzaW9uPigkMSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6
RXhwcmVzc2lvbj4oJDMpKTsKICAgICB9CiAgICAgOwogCkBAIC00MzMsNyArNDMzLDcgQEAgQW5k
RXhwcjoKICAgICB8CiAgICAgQW5kRXhwciBBTkQgRXF1YWxpdHlFeHByCiAgICAgewotICAgICAg
ICAkJCA9IG5ldyBMb2dpY2FsT3AoTG9naWNhbE9wOjpPUF9BbmQsIHN0ZDo6dW5pcXVlX3B0cjxF
eHByZXNzaW9uPigkMSksIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigkMykpOworICAgICAg
ICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TG9naWNhbE9wKFdlYkNvcmU6OlhQYXRoOjpMb2dp
Y2FsT3A6Ok9QX0FuZCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9u
PigkMSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oJDMpKTsK
ICAgICB9CiAgICAgOwogCkBAIC00NDIsNyArNDQyLDcgQEAgRXF1YWxpdHlFeHByOgogICAgIHwK
ICAgICBFcXVhbGl0eUV4cHIgRVFPUCBSZWxhdGlvbmFsRXhwcgogICAgIHsKLSAgICAgICAgJCQg
PSBuZXcgRXFUZXN0T3AoJDIsIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigkMSksIHN0ZDo6
dW5pcXVlX3B0cjxFeHByZXNzaW9uPigkMykpOworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpY
UGF0aDo6RXFUZXN0T3AoJDIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVz
c2lvbj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQz
KSk7CiAgICAgfQogICAgIDsKIApAQCAtNDUxLDcgKzQ1MSw3IEBAIFJlbGF0aW9uYWxFeHByOgog
ICAgIHwKICAgICBSZWxhdGlvbmFsRXhwciBSRUxPUCBBZGRpdGl2ZUV4cHIKICAgICB7Ci0gICAg
ICAgICQkID0gbmV3IEVxVGVzdE9wKCQyLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDEp
LCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDMpKTsKKyAgICAgICAgJCQgPSBuZXcgV2Vi
Q29yZTo6WFBhdGg6OkVxVGVzdE9wKCQyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6
OkV4cHJlc3Npb24+KCQxKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNz
aW9uPigkMykpOwogICAgIH0KICAgICA7CiAKQEAgLTQ2MCwxMiArNDYwLDEyIEBAIEFkZGl0aXZl
RXhwcjoKICAgICB8CiAgICAgQWRkaXRpdmVFeHByIFBMVVMgTXVsdGlwbGljYXRpdmVFeHByCiAg
ICAgewotICAgICAgICAkJCA9IG5ldyBOdW1lcmljT3AoTnVtZXJpY09wOjpPUF9BZGQsIHN0ZDo6
dW5pcXVlX3B0cjxFeHByZXNzaW9uPigkMSksIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigk
MykpOworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TnVtZXJpY09wKFdlYkNvcmU6
OlhQYXRoOjpOdW1lcmljT3A6Ok9QX0FkZCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRo
OjpFeHByZXNzaW9uPigkMSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVz
c2lvbj4oJDMpKTsKICAgICB9CiAgICAgfAogICAgIEFkZGl0aXZlRXhwciBNSU5VUyBNdWx0aXBs
aWNhdGl2ZUV4cHIKICAgICB7Ci0gICAgICAgICQkID0gbmV3IE51bWVyaWNPcChOdW1lcmljT3A6
Ok9QX1N1Yiwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQxKSwgc3RkOjp1bmlxdWVfcHRy
PEV4cHJlc3Npb24+KCQzKSk7CisgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpOdW1l
cmljT3AoV2ViQ29yZTo6WFBhdGg6Ok51bWVyaWNPcDo6T1BfU3ViLCBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQxKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OlhQYXRoOjpFeHByZXNzaW9uPigkMykpOwogICAgIH0KICAgICA7CiAKQEAgLTQ3NCw3ICs0NzQs
NyBAQCBNdWx0aXBsaWNhdGl2ZUV4cHI6CiAgICAgfAogICAgIE11bHRpcGxpY2F0aXZlRXhwciBN
VUxPUCBVbmFyeUV4cHIKICAgICB7Ci0gICAgICAgICQkID0gbmV3IE51bWVyaWNPcCgkMiwgc3Rk
Ojp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQxKSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+
KCQzKSk7CisgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpOdW1lcmljT3AoJDIsIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oJDEpLCBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQzKSk7CiAgICAgfQogICAgIDsKIApA
QCAtNDgzLDcgKzQ4Myw3IEBAIFVuYXJ5RXhwcjoKICAgICB8CiAgICAgTUlOVVMgVW5hcnlFeHBy
CiAgICAgewotICAgICAgICAkJCA9IG5ldyBOZWdhdGl2ZShzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVz
c2lvbj4oJDIpKTsKKyAgICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6Ok5lZ2F0aXZlKHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oJDIpKTsKICAgICB9CiAg
ICAgOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuY3BwIGIv
U291cmNlL1dlYkNvcmUveG1sL1hQYXRoUmVzdWx0LmNwcAppbmRleCAwMzc4OWVmY2E3MDk2MGE3
ZDdlZjUyYmM5YzU4ZjBkZDhiODJlMDYwLi4zNzkwYzU1NjkzMGI1YjNjN2RkNGZiNWE4OTQ0NzA4
ZGI3ODhmNGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFJlc3VsdC5jcHAKQEAgLTMyLDI2ICszMiwy
NiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVhQYXRoUmVzdWx0OjpYUGF0aFJlc3VsdChE
b2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFZhbHVlJiB2YWx1ZSkKK1hQYXRoUmVzdWx0OjpYUGF0
aFJlc3VsdChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFhQYXRoOjpWYWx1ZSYgdmFsdWUpCiAg
ICAgOiBtX3ZhbHVlKHZhbHVlKQogewogICAgIHN3aXRjaCAobV92YWx1ZS50eXBlKCkpIHsKLSAg
ICAgICAgY2FzZSBWYWx1ZTo6Qm9vbGVhblZhbHVlOgotICAgICAgICAgICAgbV9yZXN1bHRUeXBl
ID0gQk9PTEVBTl9UWVBFOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBjYXNlIFZhbHVl
OjpOdW1iZXJWYWx1ZToKLSAgICAgICAgICAgIG1fcmVzdWx0VHlwZSA9IE5VTUJFUl9UWVBFOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBjYXNlIFZhbHVlOjpTdHJpbmdWYWx1ZToKLSAg
ICAgICAgICAgIG1fcmVzdWx0VHlwZSA9IFNUUklOR19UWVBFOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICBjYXNlIFZhbHVlOjpOb2RlU2V0VmFsdWU6Ci0gICAgICAgICAgICBtX3Jlc3Vs
dFR5cGUgPSBVTk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFOwotICAgICAgICAgICAgbV9ub2Rl
U2V0UG9zaXRpb24gPSAwOwotICAgICAgICAgICAgbV9ub2RlU2V0ID0gbV92YWx1ZS50b05vZGVT
ZXQoKTsKLSAgICAgICAgICAgIG1fZG9jdW1lbnQgPSAmZG9jdW1lbnQ7Ci0gICAgICAgICAgICBt
X2RvbVRyZWVWZXJzaW9uID0gZG9jdW1lbnQuZG9tVHJlZVZlcnNpb24oKTsKLSAgICAgICAgICAg
IHJldHVybjsKKyAgICBjYXNlIFhQYXRoOjpWYWx1ZTo6Qm9vbGVhblZhbHVlOgorICAgICAgICBt
X3Jlc3VsdFR5cGUgPSBCT09MRUFOX1RZUEU7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFhQ
YXRoOjpWYWx1ZTo6TnVtYmVyVmFsdWU6CisgICAgICAgIG1fcmVzdWx0VHlwZSA9IE5VTUJFUl9U
WVBFOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBYUGF0aDo6VmFsdWU6OlN0cmluZ1ZhbHVl
OgorICAgICAgICBtX3Jlc3VsdFR5cGUgPSBTVFJJTkdfVFlQRTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIGNhc2UgWFBhdGg6OlZhbHVlOjpOb2RlU2V0VmFsdWU6CisgICAgICAgIG1fcmVzdWx0VHlw
ZSA9IFVOT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEU7CisgICAgICAgIG1fbm9kZVNldFBvc2l0
aW9uID0gMDsKKyAgICAgICAgbV9ub2RlU2V0ID0gbV92YWx1ZS50b05vZGVTZXQoKTsKKyAgICAg
ICAgbV9kb2N1bWVudCA9ICZkb2N1bWVudDsKKyAgICAgICAgbV9kb21UcmVlVmVyc2lvbiA9IGRv
Y3VtZW50LmRvbVRyZWVWZXJzaW9uKCk7CisgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440422</attachid>
            <date>2021-10-06 13:04:54 -0700</date>
            <delta_ts>2021-10-06 13:25:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231318-20211006130453.patch</filename>
            <type>text/plain</type>
            <size>75180</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk4MTQzMGRhNjdkZWRl
Yzk3M2ZjNmE4Yzk5MjEyNWIxYTUzY2YxYy4uMTAwOTA1YmYzMzkzZTQ4NTdkY2E2ZjY2NzZkYzlh
NGViNWUyODhjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTEwLTA2ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3Zl
ICJ1c2luZyBuYW1lc3BhY2UgWFBhdGg7IiBmcm9tIFhQYXRoR3JhbW1hci5jcHAKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTMxOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEkgZGlkIHRoaXMgYnkgZWRp
dGluZyBYUGF0aEdyYW1tYXIueSBhbmQgcmUtcnVubmluZyBiaXNvbi4KKyAgICAgICAgV2UgaGF2
ZSB0aGUgb3V0cHV0IG9mIGJpc29uIGNoZWNrZWQgaW4gdG8gb3VyIHJlcG8gdG8gbm90IGhhdmUg
Ymlzb24gYXMgYSBidWlsZCBkZXBlbmRlbmN5IG9mIFdlYktpdC4KKworICAgICAgICAqIHhtbC9Y
UGF0aEdyYW1tYXIuY3BwOgorICAgICAgICAoeHBhdGh5eWxleCk6CisgICAgICAgICh4cGF0aHl5
ZXJyb3IpOgorICAgICAgICAoeXlzeW50YXhfZXJyb3IpOgorICAgICAgICAqIHhtbC9YUGF0aEdy
YW1tYXIueToKKyAgICAgICAgKiB4bWwvWFBhdGhSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WFBhdGhSZXN1bHQ6OlhQYXRoUmVzdWx0KToKKwogMjAyMS0xMC0wNiAgQmVuIE5oYW0gIDxu
aGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBXYXZlU2hhcGVyUHJvY2Vzc29yIG1pc3NpbmcgQXJy
YXlCdWZmZXIgaW5jbHVkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoR3Jh
bW1hci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLmNwcAppbmRleCAwZDQ4
ODY3YTk4ZjZlNDMxMjgyZjMyMDRkZTUwZDZmMjA5NDAzNzQzLi44NTc2ZWE2N2IxMzcxZjhmMDU4
ZTNmZThhY2QzNTM4MjM2MTRjZDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBh
dGhHcmFtbWFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLmNwcApA
QCAtMSw1ICsxLDUgQEAKIC8qIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgdXNpbmcgdGhlIGZvbGxv
d2luZyBjb21tYW5kOgotICAgYmlzb24gLWQgLXAgeHBhdGh5eSBYUGF0aEdyYW1tYXIueSAtbyBY
UGF0aEdyYW1tYXIuY3BwIAorICAgYmlzb24gLWQgLXAgeHBhdGh5eSBYUGF0aEdyYW1tYXIueSAt
byBYUGF0aEdyYW1tYXIuY3BwCiAgKi8KIAogLyogQSBCaXNvbiBwYXJzZXIsIG1hZGUgYnkgR05V
IEJpc29uIDIuMy4gICovCkBAIC0xMjYsOCArMTI2LDkgQEAKIAogCiAKKwogLyogQ29weSB0aGUg
Zmlyc3QgcGFydCBvZiB1c2VyIGRlY2xhcmF0aW9ucy4gICovCi0jbGluZSAyOCAiV2ViQ29yZS94
bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyOCAiWFBhdGhHcmFtbWFyLnkiCiAKIAogI2luY2x1
ZGUgImNvbmZpZy5oIgpAQCAtMTM4LDcgKzEzOSw2IEBACiAjaW5jbHVkZSAiWFBhdGhTdGVwLmgi
CiAjaW5jbHVkZSAiWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oIgogCi0KICNpZiBDT01QSUxFUihN
U1ZDKQogLy8gU2VlIGh0dHBzOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvMXdl
YTV6d2UuYXNweAogI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQ3MDEpCkBAIC0xNTIsOCArMTUy
LDYgQEAKICNkZWZpbmUgWVlERUJVRyAwCiAjZGVmaW5lIFlZTUFYREVQVEggMTAwMDAKIAotdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2UgWFBhdGg7CiAKIAogLyogRW5h
YmxpbmcgdHJhY2VzLiAgKi8KQEAgLTE3Niw3ICsxNzQsNyBAQCB1c2luZyBuYW1lc3BhY2UgWFBh
dGg7CiAKICNpZiAhIGRlZmluZWQgWVlTVFlQRSAmJiAhIGRlZmluZWQgWVlTVFlQRV9JU19ERUNM
QVJFRAogdHlwZWRlZiB1bmlvbiBZWVNUWVBFCi0jbGluZSA2MCAiV2ViQ29yZS94bWwvWFBhdGhH
cmFtbWFyLnkiCisjbGluZSA1NyAiWFBhdGhHcmFtbWFyLnkiCiB7IAogICAgIFdlYkNvcmU6OlhQ
YXRoOjpOdW1lcmljT3A6Ok9wY29kZSBudW1lcmljT3Bjb2RlOwogICAgIFdlYkNvcmU6OlhQYXRo
OjpFcVRlc3RPcDo6T3Bjb2RlIGVxdWFsaXR5VGVzdE9wY29kZTsKQEAgLTE4OSw4ICsxODcsOCBA
QCB0eXBlZGVmIHVuaW9uIFlZU1RZUEUKICAgICBXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbiog
ZXhwcmVzc2lvbjsKIH0KIC8qIExpbmUgMTkzIG9mIHlhY2MuYy4gICovCi0jbGluZSAxOTAgIi4v
WFBhdGhHcmFtbWFyLmNwcCIKLSAgICBZWVNUWVBFOworI2xpbmUgMTg3ICJYUGF0aEdyYW1tYXIu
Y3BwIgorCVlZU1RZUEU7CiAjIGRlZmluZSB5eXN0eXBlIFlZU1RZUEUgLyogb2Jzb2xlc2NlbnQ7
IHdpbGwgYmUgd2l0aGRyYXduICovCiAjIGRlZmluZSBZWVNUWVBFX0lTX0RFQ0xBUkVEIDEKICMg
ZGVmaW5lIFlZU1RZUEVfSVNfVFJJVklBTCAxCkBAIC0xOTksMTYgKzE5NywxNiBAQCB0eXBlZGVm
IHVuaW9uIFlZU1RZUEUKIAogCiAvKiBDb3B5IHRoZSBzZWNvbmQgcGFydCBvZiB1c2VyIGRlY2xh
cmF0aW9ucy4gICovCi0jbGluZSAxMDQgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xp
bmUgMTAxICJYUGF0aEdyYW1tYXIueSIKIAogCi1zdGF0aWMgaW50IHhwYXRoeXlsZXgoWVlTVFlQ
RSogeXlsdmFsLCBQYXJzZXImIHBhcnNlcikgeyByZXR1cm4gcGFyc2VyLmxleCgqeXlsdmFsKTsg
fQotc3RhdGljIHZvaWQgeHBhdGh5eWVycm9yKFBhcnNlciYsIGNvbnN0IGNoYXIqKSB7IH0KK3N0
YXRpYyBpbnQgeHBhdGh5eWxleChZWVNUWVBFKiB5eWx2YWwsIFdlYkNvcmU6OlhQYXRoOjpQYXJz
ZXImIHBhcnNlcikgeyByZXR1cm4gcGFyc2VyLmxleCgqeXlsdmFsKTsgfQorc3RhdGljIHZvaWQg
eHBhdGh5eWVycm9yKFdlYkNvcmU6OlhQYXRoOjpQYXJzZXImLCBjb25zdCBjaGFyKikgeyB9CiAK
IAogCiAvKiBMaW5lIDIxNiBvZiB5YWNjLmMuICAqLwotI2xpbmUgMjA5ICIuL1hQYXRoR3JhbW1h
ci5jcHAiCisjbGluZSAyMDYgIlhQYXRoR3JhbW1hci5jcHAiCiAKICNpZmRlZiBzaG9ydAogIyB1
bmRlZiBzaG9ydApAQCAtMzQwLDcgKzMzOCw3IEBAIFlZSUQgKGkpCiAjICBlbmRpZgogIyAgaWYg
KGRlZmluZWQgX19jcGx1c3BsdXMgJiYgISBkZWZpbmVkIF9TVERMSUJfSCBcCiAgICAgICAgJiYg
ISAoKGRlZmluZWQgWVlNQUxMT0MgfHwgZGVmaW5lZCBtYWxsb2MpIFwKLSAgICAgICAgICYmIChk
ZWZpbmVkIFlZRlJFRSB8fCBkZWZpbmVkIGZyZWUpKSkKKwkgICAgICYmIChkZWZpbmVkIFlZRlJF
RSB8fCBkZWZpbmVkIGZyZWUpKSkKICMgICBpbmNsdWRlIDxzdGRsaWIuaD4gLyogSU5GUklOR0VT
IE9OIFVTRVIgTkFNRSBTUEFDRSAqLwogIyAgIGlmbmRlZiBfU1RETElCX0gKICMgICAgZGVmaW5l
IF9TVERMSUJfSCAxCkBAIC0zNjYsNyArMzY0LDcgQEAgdm9pZCBmcmVlICh2b2lkICopOyAvKiBJ
TkZSSU5HRVMgT04gVVNFUiBOQU1FIFNQQUNFICovCiAKICNpZiAoISBkZWZpbmVkIHl5b3ZlcmZs
b3cgXAogICAgICAmJiAoISBkZWZpbmVkIF9fY3BsdXNwbHVzIFwKLSAgICAgfHwgKGRlZmluZWQg
WVlTVFlQRV9JU19UUklWSUFMICYmIFlZU1RZUEVfSVNfVFJJVklBTCkpKQorCSB8fCAoZGVmaW5l
ZCBZWVNUWVBFX0lTX1RSSVZJQUwgJiYgWVlTVFlQRV9JU19UUklWSUFMKSkpCiAKIC8qIEEgdHlw
ZSB0aGF0IGlzIHByb3Blcmx5IGFsaWduZWQgZm9yIGFueSBzdGFjayBtZW1iZXIuICAqLwogdW5p
b24geXlhbGxvYwpAQCAtMzkxLDEzICszODksMTMgQEAgdW5pb24geXlhbGxvYwogIyAgIGRlZmlu
ZSBZWUNPUFkoVG8sIEZyb20sIENvdW50KSBcCiAgICAgICBfX2J1aWx0aW5fbWVtY3B5IChUbywg
RnJvbSwgKENvdW50KSAqIHNpemVvZiAoKihGcm9tKSkpCiAjICBlbHNlCi0jICAgZGVmaW5lIFlZ
Q09QWShUbywgRnJvbSwgQ291bnQpICAgICAgICBcCi0gICAgICBkbyAgICAgICAgICAgICAgICAg
ICAgXAotICAgIHsgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIFlZU0laRV9UIHl5aTsgICAg
ICAgICAgICAgICAgXAotICAgICAgZm9yICh5eWkgPSAwOyB5eWkgPCAoQ291bnQpOyB5eWkrKykg
ICAgXAotICAgICAgICAoVG8pW3l5aV0gPSAoRnJvbSlbeXlpXTsgICAgICAgIFwKLSAgICB9ICAg
ICAgICAgICAgICAgICAgICBcCisjICAgZGVmaW5lIFlZQ09QWShUbywgRnJvbSwgQ291bnQpCQlc
CisgICAgICBkbwkJCQkJXAorCXsJCQkJCVwKKwkgIFlZU0laRV9UIHl5aTsJCQkJXAorCSAgZm9y
ICh5eWkgPSAwOyB5eWkgPCAoQ291bnQpOyB5eWkrKykJXAorCSAgICAoVG8pW3l5aV0gPSAoRnJv
bSlbeXlpXTsJCVwKKwl9CQkJCQlcCiAgICAgICB3aGlsZSAoWVlJRCAoMCkpCiAjICBlbmRpZgog
IyBlbmRpZgpAQCAtNDA3LDE1ICs0MDUsMTUgQEAgdW5pb24geXlhbGxvYwogICAgZWxlbWVudHMg
aW4gdGhlIHN0YWNrLCBhbmQgWVlQVFIgZ2l2ZXMgdGhlIG5ldyBsb2NhdGlvbiBvZiB0aGUKICAg
IHN0YWNrLiAgQWR2YW5jZSBZWVBUUiB0byBhIHByb3Blcmx5IGFsaWduZWQgbG9jYXRpb24gZm9y
IHRoZSBuZXh0CiAgICBzdGFjay4gICovCi0jIGRlZmluZSBZWVNUQUNLX1JFTE9DQVRFKFN0YWNr
KSAgICAgICAgICAgICAgICAgICAgXAotICAgIGRvICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBZWVNJWkVfVCB5eW5ld2J5dGVzOyAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBZ
WUNPUFkgKCZ5eXB0ci0+U3RhY2ssIFN0YWNrLCB5eXNpemUpOyAgICAgICAgICAgICAgICBcCi0g
ICAgU3RhY2sgPSAmeXlwdHItPlN0YWNrOyAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB5
eW5ld2J5dGVzID0geXlzdGFja3NpemUgKiBzaXplb2YgKCpTdGFjaykgKyBZWVNUQUNLX0dBUF9N
QVhJTVVNOyBcCi0gICAgeXlwdHIgKz0geXluZXdieXRlcyAvIHNpemVvZiAoKnl5cHRyKTsgICAg
ICAgICAgICAgICAgXAotICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyMgZGVmaW5lIFlZU1RBQ0tfUkVMT0NBVEUoU3RhY2spCQkJCQlcCisgICAgZG8JCQkJCQkJ
CQlcCisgICAgICB7CQkJCQkJCQkJXAorCVlZU0laRV9UIHl5bmV3Ynl0ZXM7CQkJCQkJXAorCVlZ
Q09QWSAoJnl5cHRyLT5TdGFjaywgU3RhY2ssIHl5c2l6ZSk7CQkJCVwKKwlTdGFjayA9ICZ5eXB0
ci0+U3RhY2s7CQkJCQkJXAorCXl5bmV3Ynl0ZXMgPSB5eXN0YWNrc2l6ZSAqIHNpemVvZiAoKlN0
YWNrKSArIFlZU1RBQ0tfR0FQX01BWElNVU07IFwKKwl5eXB0ciArPSB5eW5ld2J5dGVzIC8gc2l6
ZW9mICgqeXlwdHIpOwkJCQlcCisgICAgICB9CQkJCQkJCQkJXAogICAgIHdoaWxlIChZWUlEICgw
KSkKIAogI2VuZGlmCkBAIC00MzgsNyArNDM2LDcgQEAgdW5pb24geXlhbGxvYwogI2RlZmluZSBZ
WVVOREVGVE9LICAyCiAjZGVmaW5lIFlZTUFYVVRPSyAgIDI3OAogCi0jZGVmaW5lIFlZVFJBTlNM
QVRFKFlZWCkgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIFlZVFJBTlNMQVRFKFlZ
WCkJCQkJCQlcCiAgICgodW5zaWduZWQgaW50KSAoWVlYKSA8PSBZWU1BWFVUT0sgPyB5eXRyYW5z
bGF0ZVtZWVhdIDogWVlVTkRFRlRPSykKIAogLyogWVlUUkFOU0xBVEVbWVlMRVhdIC0tIEJpc29u
IHN5bWJvbCBudW1iZXIgY29ycmVzcG9uZGluZyB0byBZWUxFWC4gICovCkBAIC01MTUsMTMgKzUx
MywxMyBAQCBzdGF0aWMgY29uc3QgeXl0eXBlX2ludDggeXlyaHNbXSA9CiAvKiBZWVJMSU5FW1lZ
Tl0gLS0gc291cmNlIGxpbmUgd2hlcmUgcnVsZSBudW1iZXIgWVlOIHdhcyBkZWZpbmVkLiAgKi8K
IHN0YXRpYyBjb25zdCB5eXR5cGVfdWludDE2IHl5cmxpbmVbXSA9CiB7Ci0gICAgICAgMCwgICAx
MTQsICAgMTE0LCAgIDEyMSwgICAxMjUsICAgMTMxLCAgIDEzNSwgICAxNDAsICAgMTQ1LCAgIDE1
MywKLSAgICAgMTU5LCAgIDE2NSwgICAxNzQsICAgMTg0LCAgIDIwMiwgICAyMTMsICAgMjMxLCAg
IDIzNSwgICAyMzcsICAgMjQ0LAotICAgICAyNDksICAgMjU0LCAgIDI1OSwgICAyNjQsICAgMjcz
LCAgIDI3NywgICAyODEsICAgMjg3LCAgIDI5NSwgICAzMDIsCi0gICAgIDMwOSwgICAzMTQsICAg
MzIxLCAgIDMyNywgICAzMzIsICAgMzM4LCAgIDM0NCwgICAzNDgsICAgMzU2LCAgIDM2NywKLSAg
ICAgMzczLCAgIDM4MSwgICAzODUsICAgMzg3LCAgIDM5NCwgICAzOTksICAgNDAxLCAgIDQwNywg
ICA0MTYsICAgNDE4LAotICAgICA0MjYsICAgNDI4LCAgIDQzNSwgICA0MzcsICAgNDQ0LCAgIDQ0
NiwgICA0NTMsICAgNDU1LCAgIDQ2MiwgICA0NjQsCi0gICAgIDQ2OSwgICA0NzYsICAgNDc4LCAg
IDQ4NSwgICA0ODcKKyAgICAgICAwLCAgIDExMSwgICAxMTEsICAgMTE4LCAgIDEyMiwgICAxMjgs
ICAgMTMyLCAgIDEzNywgICAxNDIsICAgMTUwLAorICAgICAxNTYsICAgMTYyLCAgIDE3MSwgICAx
ODEsICAgMTk5LCAgIDIxMCwgICAyMjgsICAgMjMyLCAgIDIzNCwgICAyNDEsCisgICAgIDI0Niwg
ICAyNTEsICAgMjU2LCAgIDI2MSwgICAyNzAsICAgMjc0LCAgIDI3OCwgICAyODQsICAgMjkyLCAg
IDI5OSwKKyAgICAgMzA2LCAgIDMxMSwgICAzMTgsICAgMzI0LCAgIDMyOSwgICAzMzUsICAgMzQx
LCAgIDM0NSwgICAzNTMsICAgMzY0LAorICAgICAzNzAsICAgMzc4LCAgIDM4MiwgICAzODQsICAg
MzkxLCAgIDM5NiwgICAzOTgsICAgNDA0LCAgIDQxMywgICA0MTUsCisgICAgIDQyMywgICA0MjUs
ICAgNDMyLCAgIDQzNCwgICA0NDEsICAgNDQzLCAgIDQ1MCwgICA0NTIsICAgNDU5LCAgIDQ2MSwK
KyAgICAgNDY2LCAgIDQ3MywgICA0NzUsICAgNDgyLCAgIDQ4NAogfTsKICNlbmRpZgogCkBAIC01
MzMsNyArNTMxLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHl5dG5hbWVbXSA9CiAgICIk
ZW5kIiwgImVycm9yIiwgIiR1bmRlZmluZWQiLCAiTVVMT1AiLCAiUkVMT1AiLCAiRVFPUCIsICJN
SU5VUyIsCiAgICJQTFVTIiwgIkFORCIsICJPUiIsICJGVU5DVElPTk5BTUUiLCAiTElURVJBTCIs
ICJOQU1FVEVTVCIsICJOVU1CRVIiLAogICAiTk9ERVRZUEUiLCAiVkFSSUFCTEVSRUZFUkVOQ0Ui
LCAiQVhJU05BTUUiLCAiQ09NTUVOVCIsICJET1RET1QiLCAiUEkiLAotICAiTk9ERSIsICJTTEFT
SFNMQVNIIiwgIlRFWFQiLCAiWFBBVEhfRVJST1IiLCAiJy8nIiwgIidAJyIsICInKCciLCAiJykn
IiwKKyAgIk5PREUiLCAiU0xBU0hTTEFTSCIsICJURVhUXyIsICJYUEFUSF9FUlJPUiIsICInLyci
LCAiJ0AnIiwgIicoJyIsICInKSciLAogICAiJ1snIiwgIiddJyIsICInLiciLCAiJywnIiwgIid8
JyIsICIkYWNjZXB0IiwgIlRvcCIsICJFeHByIiwKICAgIkxvY2F0aW9uUGF0aCIsICJBYnNvbHV0
ZUxvY2F0aW9uUGF0aCIsICJSZWxhdGl2ZUxvY2F0aW9uUGF0aCIsICJTdGVwIiwKICAgIkF4aXNT
cGVjaWZpZXIiLCAiTm9kZVRlc3QiLCAiT3B0aW9uYWxQcmVkaWNhdGVMaXN0IiwgIlByZWRpY2F0
ZUxpc3QiLApAQCAtNjkwLDQ0ICs2ODgsNDQgQEAgc3RhdGljIGNvbnN0IHl5dHlwZV91aW50OCB5
eXN0b3NbXSA9CiAgICAgICA1MAogfTsKIAotI2RlZmluZSB5eWVycm9rICAgICAgICAoeXllcnJz
dGF0dXMgPSAwKQotI2RlZmluZSB5eWNsZWFyaW4gICAgKHl5Y2hhciA9IFlZRU1QVFkpCi0jZGVm
aW5lIFlZRU1QVFkgICAgICAgICgtMikKLSNkZWZpbmUgWVlFT0YgICAgICAgIDAKKyNkZWZpbmUg
eXllcnJvawkJKHl5ZXJyc3RhdHVzID0gMCkKKyNkZWZpbmUgeXljbGVhcmluCSh5eWNoYXIgPSBZ
WUVNUFRZKQorI2RlZmluZSBZWUVNUFRZCQkoLTIpCisjZGVmaW5lIFlZRU9GCQkwCiAKLSNkZWZp
bmUgWVlBQ0NFUFQgICAgZ290byB5eWFjY2VwdGxhYgotI2RlZmluZSBZWUFCT1JUICAgICAgICBn
b3RvIHl5YWJvcnRsYWIKLSNkZWZpbmUgWVlFUlJPUiAgICAgICAgZ290byB5eWVycm9ybGFiCisj
ZGVmaW5lIFlZQUNDRVBUCWdvdG8geXlhY2NlcHRsYWIKKyNkZWZpbmUgWVlBQk9SVAkJZ290byB5
eWFib3J0bGFiCisjZGVmaW5lIFlZRVJST1IJCWdvdG8geXllcnJvcmxhYgogCiAKIC8qIExpa2Ug
WVlFUlJPUiBleGNlcHQgZG8gY2FsbCB5eWVycm9yLiAgVGhpcyByZW1haW5zIGhlcmUgdGVtcG9y
YXJpbHkKICAgIHRvIGVhc2UgdGhlIHRyYW5zaXRpb24gdG8gdGhlIG5ldyBtZWFuaW5nIG9mIFlZ
RVJST1IsIGZvciBHQ0MuCiAgICBPbmNlIEdDQyB2ZXJzaW9uIDIgaGFzIHN1cHBsYW50ZWQgdmVy
c2lvbiAxLCB0aGlzIGNhbiBnby4gICovCiAKLSNkZWZpbmUgWVlGQUlMICAgICAgICBnb3RvIHl5
ZXJybGFiCisjZGVmaW5lIFlZRkFJTAkJZ290byB5eWVycmxhYgogCiAjZGVmaW5lIFlZUkVDT1ZF
UklORygpICAoISF5eWVycnN0YXR1cykKIAotI2RlZmluZSBZWUJBQ0tVUChUb2tlbiwgVmFsdWUp
ICAgICAgICAgICAgICAgICAgICBcCi1kbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICBpZiAoeXljaGFyID09IFlZRU1QVFkgJiYgeXlsZW4gPT0gMSkgICAgICAgICAgICAgICAg
XAotICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIHl5Y2hhciA9
IChUb2tlbik7ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgeXlsdmFsID0gKFZhbHVl
KTsgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICB5eXRva2VuID0gWVlUUkFOU0xBVEUg
KHl5Y2hhcik7ICAgICAgICAgICAgICAgIFwKLSAgICAgIFlZUE9QU1RBQ0sgKDEpOyAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICAgIGdvdG8geXliYWNrdXA7ICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgZWxzZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyNkZWZpbmUgWVlCQUNLVVAoVG9rZW4sIFZhbHVlKQkJCQkJXAorZG8J
CQkJCQkJCVwKKyAgaWYgKHl5Y2hhciA9PSBZWUVNUFRZICYmIHl5bGVuID09IDEpCQkJCVwKKyAg
ICB7CQkJCQkJCQlcCisgICAgICB5eWNoYXIgPSAoVG9rZW4pOwkJCQkJCVwKKyAgICAgIHl5bHZh
bCA9IChWYWx1ZSk7CQkJCQkJXAorICAgICAgeXl0b2tlbiA9IFlZVFJBTlNMQVRFICh5eWNoYXIp
OwkJCQlcCisgICAgICBZWVBPUFNUQUNLICgxKTsJCQkJCQlcCisgICAgICBnb3RvIHl5YmFja3Vw
OwkJCQkJCVwKKyAgICB9CQkJCQkJCQlcCisgIGVsc2UJCQkJCQkJCVwKKyAgICB7CQkJCQkJCQlc
CiAgICAgICB5eWVycm9yIChwYXJzZXIsIFlZXygic3ludGF4IGVycm9yOiBjYW5ub3QgYmFjayB1
cCIpKTsgXAotICAgICAgWVlFUlJPUjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIFlZRVJST1I7CQkJCQkJ
CVwKKyAgICB9CQkJCQkJCQlcCiB3aGlsZSAoWVlJRCAoMCkpCiAKIAotI2RlZmluZSBZWVRFUlJP
UiAgICAxCi0jZGVmaW5lIFlZRVJSQ09ERSAgICAyNTYKKyNkZWZpbmUgWVlURVJST1IJMQorI2Rl
ZmluZSBZWUVSUkNPREUJMjU2CiAKIAogLyogWVlMTE9DX0RFRkFVTFQgLS0gU2V0IENVUlJFTlQg
dG8gc3BhbiBmcm9tIFJIU1sxXSB0byBSSFNbTl0uCkBAIC03MzYsMjIgKzczNCwyMiBAQCB3aGls
ZSAoWVlJRCAoMCkpCiAKICNkZWZpbmUgWVlSSFNMT0MoUmhzLCBLKSAoKFJocylbS10pCiAjaWZu
ZGVmIFlZTExPQ19ERUZBVUxUCi0jIGRlZmluZSBZWUxMT0NfREVGQVVMVChDdXJyZW50LCBSaHMs
IE4pICAgICAgICAgICAgICAgIFwKLSAgICBkbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyMgZGVmaW5lIFlZTExPQ19ERUZBVUxUKEN1cnJlbnQsIFJocywgTikJCQkJXAor
ICAgIGRvCQkJCQkJCQkJXAogICAgICAgaWYgKFlZSUQgKE4pKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgICAgKEN1cnJlbnQpLmZpcnN0X2xpbmUgICA9IFlZUkhTTE9D
IChSaHMsIDEpLmZpcnN0X2xpbmU7ICAgIFwKLSAgICAgIChDdXJyZW50KS5maXJzdF9jb2x1bW4g
PSBZWVJIU0xPQyAoUmhzLCAxKS5maXJzdF9jb2x1bW47ICAgIFwKLSAgICAgIChDdXJyZW50KS5s
YXN0X2xpbmUgICAgPSBZWVJIU0xPQyAoUmhzLCBOKS5sYXN0X2xpbmU7ICAgICAgICBcCi0gICAg
ICAoQ3VycmVudCkubGFzdF9jb2x1bW4gID0gWVlSSFNMT0MgKFJocywgTikubGFzdF9jb2x1bW47
ICAgIFwKLSAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICBlbHNl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgICAgKEN1cnJlbnQpLmZpcnN0X2xpbmUgICA9IChDdXJyZW50
KS5sYXN0X2xpbmUgICA9ICAgICAgICBcCi0gICAgICAgIFlZUkhTTE9DIChSaHMsIDApLmxhc3Rf
bGluZTsgICAgICAgICAgICAgICAgXAotICAgICAgKEN1cnJlbnQpLmZpcnN0X2NvbHVtbiA9IChD
dXJyZW50KS5sYXN0X2NvbHVtbiA9ICAgICAgICBcCi0gICAgICAgIFlZUkhTTE9DIChSaHMsIDAp
Lmxhc3RfY29sdW1uOyAgICAgICAgICAgICAgICBcCi0gICAgfSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorCXsJCQkJCQkJCVwKKwkgIChDdXJyZW50KS5maXJzdF9saW5lICAgPSBZ
WVJIU0xPQyAoUmhzLCAxKS5maXJzdF9saW5lOwlcCisJICAoQ3VycmVudCkuZmlyc3RfY29sdW1u
ID0gWVlSSFNMT0MgKFJocywgMSkuZmlyc3RfY29sdW1uOwlcCisJICAoQ3VycmVudCkubGFzdF9s
aW5lICAgID0gWVlSSFNMT0MgKFJocywgTikubGFzdF9saW5lOwkJXAorCSAgKEN1cnJlbnQpLmxh
c3RfY29sdW1uICA9IFlZUkhTTE9DIChSaHMsIE4pLmxhc3RfY29sdW1uOwlcCisJfQkJCQkJCQkJ
XAorICAgICAgZWxzZQkJCQkJCQkJXAorCXsJCQkJCQkJCVwKKwkgIChDdXJyZW50KS5maXJzdF9s
aW5lICAgPSAoQ3VycmVudCkubGFzdF9saW5lICAgPQkJXAorCSAgICBZWVJIU0xPQyAoUmhzLCAw
KS5sYXN0X2xpbmU7CQkJCVwKKwkgIChDdXJyZW50KS5maXJzdF9jb2x1bW4gPSAoQ3VycmVudCku
bGFzdF9jb2x1bW4gPQkJXAorCSAgICBZWVJIU0xPQyAoUmhzLCAwKS5sYXN0X2NvbHVtbjsJCQkJ
XAorCX0JCQkJCQkJCVwKICAgICB3aGlsZSAoWVlJRCAoMCkpCiAjZW5kaWYKIApAQCAtNzYyLDEw
ICs3NjAsMTAgQEAgd2hpbGUgKFlZSUQgKDApKQogCiAjaWZuZGVmIFlZX0xPQ0FUSU9OX1BSSU5U
CiAjIGlmIGRlZmluZWQgWVlMVFlQRV9JU19UUklWSUFMICYmIFlZTFRZUEVfSVNfVFJJVklBTAot
IyAgZGVmaW5lIFlZX0xPQ0FUSU9OX1BSSU5UKEZpbGUsIExvYykgICAgICAgICAgICBcCi0gICAg
IGZwcmludGYgKEZpbGUsICIlZC4lZC0lZC4lZCIsICAgICAgICAgICAgXAotICAgICAgICAgIChM
b2MpLmZpcnN0X2xpbmUsIChMb2MpLmZpcnN0X2NvbHVtbiwgICAgXAotICAgICAgICAgIChMb2Mp
Lmxhc3RfbGluZSwgIChMb2MpLmxhc3RfY29sdW1uKQorIyAgZGVmaW5lIFlZX0xPQ0FUSU9OX1BS
SU5UKEZpbGUsIExvYykJCQlcCisgICAgIGZwcmludGYgKEZpbGUsICIlZC4lZC0lZC4lZCIsCQkJ
XAorCSAgICAgIChMb2MpLmZpcnN0X2xpbmUsIChMb2MpLmZpcnN0X2NvbHVtbiwJXAorCSAgICAg
IChMb2MpLmxhc3RfbGluZSwgIChMb2MpLmxhc3RfY29sdW1uKQogIyBlbHNlCiAjICBkZWZpbmUg
WVlfTE9DQVRJT05fUFJJTlQoRmlsZSwgTG9jKSAoKHZvaWQpIDApCiAjIGVuZGlmCkBAIC03ODgs
MjEgKzc4NiwyMSBAQCB3aGlsZSAoWVlJRCAoMCkpCiAjICBkZWZpbmUgWVlGUFJJTlRGIGZwcmlu
dGYKICMgZW5kaWYKIAotIyBkZWZpbmUgWVlEUFJJTlRGKEFyZ3MpICAgICAgICAgICAgXAotZG8g
eyAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgaWYgKHl5ZGVidWcpICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgWVlGUFJJTlRGIEFyZ3M7ICAgICAgICAgICAgICAgIFwKKyMgZGVmaW5lIFlZ
RFBSSU5URihBcmdzKQkJCVwKK2RvIHsJCQkJCQlcCisgIGlmICh5eWRlYnVnKQkJCQkJXAorICAg
IFlZRlBSSU5URiBBcmdzOwkJCQlcCiB9IHdoaWxlIChZWUlEICgwKSkKIAotIyBkZWZpbmUgWVlf
U1lNQk9MX1BSSU5UKFRpdGxlLCBUeXBlLCBWYWx1ZSwgTG9jYXRpb24pICAgICAgICAgICAgICBc
Ci1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gIGlmICh5eWRl
YnVnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgWVlGUFJJTlRGIChzdGRlcnIsICIl
cyAiLCBUaXRsZSk7ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIHl5X3N5bWJvbF9wcmlu
dCAoc3RkZXJyLCAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgIFR5cGUsIFZh
bHVlLCBwYXJzZXIpOyBcCi0gICAgICBZWUZQUklOVEYgKHN0ZGVyciwgIlxuIik7ICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorIyBkZWZpbmUgWVlfU1lNQk9MX1BSSU5UKFRpdGxlLCBUeXBlLCBWYWx1ZSwgTG9j
YXRpb24pCQkJICBcCitkbyB7CQkJCQkJCQkJICBcCisgIGlmICh5eWRlYnVnKQkJCQkJCQkJICBc
CisgICAgewkJCQkJCQkJCSAgXAorICAgICAgWVlGUFJJTlRGIChzdGRlcnIsICIlcyAiLCBUaXRs
ZSk7CQkJCQkgIFwKKyAgICAgIHl5X3N5bWJvbF9wcmludCAoc3RkZXJyLAkJCQkJCSAgXAorCQkg
IFR5cGUsIFZhbHVlLCBwYXJzZXIpOyBcCisgICAgICBZWUZQUklOVEYgKHN0ZGVyciwgIlxuIik7
CQkJCQkJICBcCisgICAgfQkJCQkJCQkJCSAgXAogfSB3aGlsZSAoWVlJRCAoMCkpCiAKIApAQCAt
ODE0LDE0ICs4MTIsMTQgQEAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAogI2lmIChkZWZpbmVkIF9fU1REQ19fIHx8IGRlZmluZWQgX19DOTlfX0ZVTkNfXyBcCiAg
ICAgIHx8IGRlZmluZWQgX19jcGx1c3BsdXMgfHwgZGVmaW5lZCBfTVNDX1ZFUikKIHN0YXRpYyB2
b2lkCi15eV9zeW1ib2xfdmFsdWVfcHJpbnQgKEZJTEUgKnl5b3V0cHV0LCBpbnQgeXl0eXBlLCBZ
WVNUWVBFIGNvbnN0ICogY29uc3QgeXl2YWx1ZXAsIFBhcnNlciYgcGFyc2VyKQoreXlfc3ltYm9s
X3ZhbHVlX3ByaW50IChGSUxFICp5eW91dHB1dCwgaW50IHl5dHlwZSwgWVlTVFlQRSBjb25zdCAq
IGNvbnN0IHl5dmFsdWVwLCBXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiBwYXJzZXIpCiAjZWxzZQog
c3RhdGljIHZvaWQKIHl5X3N5bWJvbF92YWx1ZV9wcmludCAoeXlvdXRwdXQsIHl5dHlwZSwgeXl2
YWx1ZXAsIHBhcnNlcikKICAgICBGSUxFICp5eW91dHB1dDsKICAgICBpbnQgeXl0eXBlOwogICAg
IFlZU1RZUEUgY29uc3QgKiBjb25zdCB5eXZhbHVlcDsKLSAgICBQYXJzZXImIHBhcnNlcjsKKyAg
ICBXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiBwYXJzZXI7CiAjZW5kaWYKIHsKICAgaWYgKCF5eXZh
bHVlcCkKQEAgLTgzNiw3ICs4MzQsNyBAQCB5eV9zeW1ib2xfdmFsdWVfcHJpbnQgKHl5b3V0cHV0
LCB5eXR5cGUsIHl5dmFsdWVwLCBwYXJzZXIpCiAgIHN3aXRjaCAoeXl0eXBlKQogICAgIHsKICAg
ICAgIGRlZmF1bHQ6Ci0gICAgYnJlYWs7CisJYnJlYWs7CiAgICAgfQogfQogCkBAIC04NDgsMTQg
Kzg0NiwxNCBAQCB5eV9zeW1ib2xfdmFsdWVfcHJpbnQgKHl5b3V0cHV0LCB5eXR5cGUsIHl5dmFs
dWVwLCBwYXJzZXIpCiAjaWYgKGRlZmluZWQgX19TVERDX18gfHwgZGVmaW5lZCBfX0M5OV9fRlVO
Q19fIFwKICAgICAgfHwgZGVmaW5lZCBfX2NwbHVzcGx1cyB8fCBkZWZpbmVkIF9NU0NfVkVSKQog
c3RhdGljIHZvaWQKLXl5X3N5bWJvbF9wcmludCAoRklMRSAqeXlvdXRwdXQsIGludCB5eXR5cGUs
IFlZU1RZUEUgY29uc3QgKiBjb25zdCB5eXZhbHVlcCwgUGFyc2VyJiBwYXJzZXIpCit5eV9zeW1i
b2xfcHJpbnQgKEZJTEUgKnl5b3V0cHV0LCBpbnQgeXl0eXBlLCBZWVNUWVBFIGNvbnN0ICogY29u
c3QgeXl2YWx1ZXAsIFdlYkNvcmU6OlhQYXRoOjpQYXJzZXImIHBhcnNlcikKICNlbHNlCiBzdGF0
aWMgdm9pZAogeXlfc3ltYm9sX3ByaW50ICh5eW91dHB1dCwgeXl0eXBlLCB5eXZhbHVlcCwgcGFy
c2VyKQogICAgIEZJTEUgKnl5b3V0cHV0OwogICAgIGludCB5eXR5cGU7CiAgICAgWVlTVFlQRSBj
b25zdCAqIGNvbnN0IHl5dmFsdWVwOwotICAgIFBhcnNlciYgcGFyc2VyOworICAgIFdlYkNvcmU6
OlhQYXRoOjpQYXJzZXImIHBhcnNlcjsKICNlbmRpZgogewogICBpZiAoeXl0eXBlIDwgWVlOVE9L
RU5TKQpAQCAtODg5LDEwICs4ODcsMTAgQEAgeXlfc3RhY2tfcHJpbnQgKGJvdHRvbSwgdG9wKQog
ICBZWUZQUklOVEYgKHN0ZGVyciwgIlxuIik7CiB9CiAKLSMgZGVmaW5lIFlZX1NUQUNLX1BSSU5U
KEJvdHRvbSwgVG9wKSAgICAgICAgICAgICAgICBcCi1kbyB7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gIGlmICh5eWRlYnVnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgeXlfc3RhY2tfcHJpbnQgKChCb3R0b20pLCAoVG9wKSk7ICAgICAgICAgICAgICAgIFwK
KyMgZGVmaW5lIFlZX1NUQUNLX1BSSU5UKEJvdHRvbSwgVG9wKQkJCQlcCitkbyB7CQkJCQkJCQlc
CisgIGlmICh5eWRlYnVnKQkJCQkJCQlcCisgICAgeXlfc3RhY2tfcHJpbnQgKChCb3R0b20pLCAo
VG9wKSk7CQkJCVwKIH0gd2hpbGUgKFlZSUQgKDApKQogCiAKQEAgLTkwMywzNCArOTAxLDM0IEBA
IGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICNpZiAoZGVmaW5lZCBfX1NU
RENfXyB8fCBkZWZpbmVkIF9fQzk5X19GVU5DX18gXAogICAgICB8fCBkZWZpbmVkIF9fY3BsdXNw
bHVzIHx8IGRlZmluZWQgX01TQ19WRVIpCiBzdGF0aWMgdm9pZAoteXlfcmVkdWNlX3ByaW50IChZ
WVNUWVBFICp5eXZzcCwgaW50IHl5cnVsZSwgUGFyc2VyJiBwYXJzZXIpCit5eV9yZWR1Y2VfcHJp
bnQgKFlZU1RZUEUgKnl5dnNwLCBpbnQgeXlydWxlLCBXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiBw
YXJzZXIpCiAjZWxzZQogc3RhdGljIHZvaWQKIHl5X3JlZHVjZV9wcmludCAoeXl2c3AsIHl5cnVs
ZSwgcGFyc2VyKQogICAgIFlZU1RZUEUgKnl5dnNwOwogICAgIGludCB5eXJ1bGU7Ci0gICAgUGFy
c2VyJiBwYXJzZXI7CisgICAgV2ViQ29yZTo6WFBhdGg6OlBhcnNlciYgcGFyc2VyOwogI2VuZGlm
CiB7CiAgIGludCB5eW5yaHMgPSB5eXIyW3l5cnVsZV07CiAgIGludCB5eWk7CiAgIHVuc2lnbmVk
IGxvbmcgaW50IHl5bG5vID0geXlybGluZVt5eXJ1bGVdOwogICBZWUZQUklOVEYgKHN0ZGVyciwg
IlJlZHVjaW5nIHN0YWNrIGJ5IHJ1bGUgJWQgKGxpbmUgJWx1KTpcbiIsCi0gICAgICAgICB5eXJ1
bGUgLSAxLCB5eWxubyk7CisJICAgICB5eXJ1bGUgLSAxLCB5eWxubyk7CiAgIC8qIFRoZSBzeW1i
b2xzIGJlaW5nIHJlZHVjZWQuICAqLwogICBmb3IgKHl5aSA9IDA7IHl5aSA8IHl5bnJoczsgeXlp
KyspCiAgICAgewogICAgICAgZnByaW50ZiAoc3RkZXJyLCAiICAgJCVkID0gIiwgeXlpICsgMSk7
CiAgICAgICB5eV9zeW1ib2xfcHJpbnQgKHN0ZGVyciwgeXlyaHNbeXlwcmhzW3l5cnVsZV0gKyB5
eWldLAotICAgICAgICAgICAgICAgJih5eXZzcFsoeXlpICsgMSkgLSAoeXlucmhzKV0pCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAsIHBhcnNlcik7CisJCSAgICAgICAmKHl5dnNwWyh5
eWkgKyAxKSAtICh5eW5yaHMpXSkKKwkJICAgICAgIAkJICAgICAgICwgcGFyc2VyKTsKICAgICAg
IGZwcmludGYgKHN0ZGVyciwgIlxuIik7CiAgICAgfQogfQogCi0jIGRlZmluZSBZWV9SRURVQ0Vf
UFJJTlQoUnVsZSkgICAgICAgIFwKLWRvIHsgICAgICAgICAgICAgICAgICAgIFwKLSAgaWYgKHl5
ZGVidWcpICAgICAgICAgICAgICAgIFwKKyMgZGVmaW5lIFlZX1JFRFVDRV9QUklOVChSdWxlKQkJ
XAorZG8gewkJCQkJXAorICBpZiAoeXlkZWJ1ZykJCQkJXAogICAgIHl5X3JlZHVjZV9wcmludCAo
eXl2c3AsIFJ1bGUsIHBhcnNlcik7IFwKIH0gd2hpbGUgKFlZSUQgKDApKQogCkBAIC05NDYsNyAr
OTQ0LDcgQEAgaW50IHl5ZGVidWc7CiAKIAogLyogWVlJTklUREVQVEggLS0gaW5pdGlhbCBzaXpl
IG9mIHRoZSBwYXJzZXIncyBzdGFja3MuICAqLwotI2lmbmRlZiAgICBZWUlOSVRERVBUSAorI2lm
bmRlZglZWUlOSVRERVBUSAogIyBkZWZpbmUgWVlJTklUREVQVEggMjAwCiAjZW5kaWYKIApAQCAt
MTAzMywyNyArMTAzMSwyNyBAQCB5eXRuYW1lcnIgKGNoYXIgKnl5cmVzLCBjb25zdCBjaGFyICp5
eXN0cikKICAgICAgIGNoYXIgY29uc3QgKnl5cCA9IHl5c3RyOwogCiAgICAgICBmb3IgKDs7KQot
ICAgIHN3aXRjaCAoKisreXlwKQotICAgICAgewotICAgICAgY2FzZSAnXCcnOgotICAgICAgY2Fz
ZSAnLCc6Ci0gICAgICAgIGdvdG8gZG9fbm90X3N0cmlwX3F1b3RlczsKLQotICAgICAgY2FzZSAn
XFwnOgotICAgICAgICBpZiAoKisreXlwICE9ICdcXCcpCi0gICAgICAgICAgZ290byBkb19ub3Rf
c3RyaXBfcXVvdGVzOwotICAgICAgICAvKiBGYWxsIHRocm91Z2guICAqLwotICAgICAgZGVmYXVs
dDoKLSAgICAgICAgaWYgKHl5cmVzKQotICAgICAgICAgIHl5cmVzW3l5bl0gPSAqeXlwOwotICAg
ICAgICB5eW4rKzsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICAgIGNhc2UgJyInOgotICAgICAgICBp
ZiAoeXlyZXMpCi0gICAgICAgICAgeXlyZXNbeXluXSA9ICdcMCc7Ci0gICAgICAgIHJldHVybiB5
eW47Ci0gICAgICB9CisJc3dpdGNoICgqKyt5eXApCisJICB7CisJICBjYXNlICdcJyc6CisJICBj
YXNlICcsJzoKKwkgICAgZ290byBkb19ub3Rfc3RyaXBfcXVvdGVzOworCisJICBjYXNlICdcXCc6
CisJICAgIGlmICgqKyt5eXAgIT0gJ1xcJykKKwkgICAgICBnb3RvIGRvX25vdF9zdHJpcF9xdW90
ZXM7CisJICAgIC8qIEZhbGwgdGhyb3VnaC4gICovCisJICBkZWZhdWx0OgorCSAgICBpZiAoeXly
ZXMpCisJICAgICAgeXlyZXNbeXluXSA9ICp5eXA7CisJICAgIHl5bisrOworCSAgICBicmVhazsK
KworCSAgY2FzZSAnIic6CisJICAgIGlmICh5eXJlcykKKwkgICAgICB5eXJlc1t5eW5dID0gJ1ww
JzsKKwkgICAgcmV0dXJuIHl5bjsKKwkgIH0KICAgICBkb19ub3Rfc3RyaXBfcXVvdGVzOiA7CiAg
ICAgfQogCkBAIC0xMDkxLDcgKzEwODksNyBAQCB5eXN5bnRheF9lcnJvciAoY2hhciAqeXlyZXN1
bHQsIGludCB5eXN0YXRlLCBpbnQgeXljaGFyKQogCiAjIGlmIDAKICAgICAgIC8qIFRoaXMgaXMg
c28geGdldHRleHQgc2VlcyB0aGUgdHJhbnNsYXRhYmxlIGZvcm1hdHMgdGhhdCBhcmUKLSAgICAg
Y29uc3RydWN0ZWQgb24gdGhlIGZseS4gICovCisJIGNvbnN0cnVjdGVkIG9uIHRoZSBmbHkuICAq
LwogICAgICAgWVlfKCJzeW50YXggZXJyb3IsIHVuZXhwZWN0ZWQgJXMiKTsKICAgICAgIFlZXygi
c3ludGF4IGVycm9yLCB1bmV4cGVjdGVkICVzLCBleHBlY3RpbmcgJXMiKTsKICAgICAgIFlZXygi
c3ludGF4IGVycm9yLCB1bmV4cGVjdGVkICVzLCBleHBlY3RpbmcgJXMgb3IgJXMiKTsKQEAgLTEx
MDQsMTMgKzExMDIsMTMgQEAgeXlzeW50YXhfZXJyb3IgKGNoYXIgKnl5cmVzdWx0LCBpbnQgeXlz
dGF0ZSwgaW50IHl5Y2hhcikKICAgICAgIHN0YXRpYyBjaGFyIGNvbnN0IHl5ZXhwZWN0aW5nW10g
PSAiLCBleHBlY3RpbmcgJXMiOwogICAgICAgc3RhdGljIGNoYXIgY29uc3QgeXlvcltdID0gIiBv
ciAlcyI7CiAgICAgICBjaGFyIHl5Zm9ybWF0W3NpemVvZiB5eXVuZXhwZWN0ZWQKLSAgICAgICAg
ICAgICsgc2l6ZW9mIHl5ZXhwZWN0aW5nIC0gMQotICAgICAgICAgICAgKyAoKFlZRVJST1JfVkVS
Qk9TRV9BUkdTX01BWElNVU0gLSAyKQotICAgICAgICAgICAgICAgKiAoc2l6ZW9mIHl5b3IgLSAx
KSldOworCQkgICAgKyBzaXplb2YgeXlleHBlY3RpbmcgLSAxCisJCSAgICArICgoWVlFUlJPUl9W
RVJCT1NFX0FSR1NfTUFYSU1VTSAtIDIpCisJCSAgICAgICAqIChzaXplb2YgeXlvciAtIDEpKV07
CiAgICAgICBjaGFyIGNvbnN0ICp5eXByZWZpeCA9IHl5ZXhwZWN0aW5nOwogCiAgICAgICAvKiBT
dGFydCBZWVggYXQgLVlZTiBpZiBuZWdhdGl2ZSB0byBhdm9pZCBuZWdhdGl2ZSBpbmRleGVzIGlu
Ci0gICAgIFlZQ0hFQ0suICAqLworCSBZWUNIRUNLLiAgKi8KICAgICAgIGludCB5eXhiZWdpbiA9
IHl5biA8IDAgPyAteXluIDogMDsKIAogICAgICAgLyogU3RheSB3aXRoaW4gYm91bmRzIG9mIGJv
dGggeXljaGVjayBhbmQgeXl0bmFtZS4gICovCkBAIC0xMTIyLDIyICsxMTIwLDIyIEBAIHl5c3lu
dGF4X2Vycm9yIChjaGFyICp5eXJlc3VsdCwgaW50IHl5c3RhdGUsIGludCB5eWNoYXIpCiAgICAg
ICB5eWZtdCA9IHl5c3RwY3B5ICh5eWZvcm1hdCwgeXl1bmV4cGVjdGVkKTsKIAogICAgICAgZm9y
ICh5eXggPSB5eXhiZWdpbjsgeXl4IDwgeXl4ZW5kOyArK3l5eCkKLSAgICBpZiAoeXljaGVja1t5
eXggKyB5eW5dID09IHl5eCAmJiB5eXggIT0gWVlURVJST1IpCi0gICAgICB7Ci0gICAgICAgIGlm
ICh5eWNvdW50ID09IFlZRVJST1JfVkVSQk9TRV9BUkdTX01BWElNVU0pCi0gICAgICAgICAgewot
ICAgICAgICB5eWNvdW50ID0gMTsKLSAgICAgICAgeXlzaXplID0geXlzaXplMDsKLSAgICAgICAg
eXlmb3JtYXRbc2l6ZW9mIHl5dW5leHBlY3RlZCAtIDFdID0gJ1wwJzsKLSAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgfQotICAgICAgICB5eWFyZ1t5eWNvdW50KytdID0geXl0bmFtZVt5eXhdOwot
ICAgICAgICB5eXNpemUxID0geXlzaXplICsgeXl0bmFtZXJyICgwLCB5eXRuYW1lW3l5eF0pOwot
ICAgICAgICB5eXNpemVfb3ZlcmZsb3cgfD0gKHl5c2l6ZTEgPCB5eXNpemUpOwotICAgICAgICB5
eXNpemUgPSB5eXNpemUxOwotICAgICAgICB5eWZtdCA9IHl5c3RwY3B5ICh5eWZtdCwgeXlwcmVm
aXgpOwotICAgICAgICB5eXByZWZpeCA9IHl5b3I7Ci0gICAgICB9CisJaWYgKHl5Y2hlY2tbeXl4
ICsgeXluXSA9PSB5eXggJiYgeXl4ICE9IFlZVEVSUk9SKQorCSAgeworCSAgICBpZiAoeXljb3Vu
dCA9PSBZWUVSUk9SX1ZFUkJPU0VfQVJHU19NQVhJTVVNKQorCSAgICAgIHsKKwkJeXljb3VudCA9
IDE7CisJCXl5c2l6ZSA9IHl5c2l6ZTA7CisJCXl5Zm9ybWF0W3NpemVvZiB5eXVuZXhwZWN0ZWQg
LSAxXSA9ICdcMCc7CisJCWJyZWFrOworCSAgICAgIH0KKwkgICAgeXlhcmdbeXljb3VudCsrXSA9
IHl5dG5hbWVbeXl4XTsKKwkgICAgeXlzaXplMSA9IHl5c2l6ZSArIHl5dG5hbWVyciAoMCwgeXl0
bmFtZVt5eXhdKTsKKwkgICAgeXlzaXplX292ZXJmbG93IHw9ICh5eXNpemUxIDwgeXlzaXplKTsK
KwkgICAgeXlzaXplID0geXlzaXplMTsKKwkgICAgeXlmbXQgPSB5eXN0cGNweSAoeXlmbXQsIHl5
cHJlZml4KTsKKwkgICAgeXlwcmVmaXggPSB5eW9yOworCSAgfQogCiAgICAgICB5eWYgPSBZWV8o
eXlmb3JtYXQpOwogICAgICAgeXlzaXplMSA9IHl5c2l6ZSArIHl5c3RybGVuICh5eWYpOwpAQCAt
MTE0NSwyOSArMTE0MywyOSBAQCB5eXN5bnRheF9lcnJvciAoY2hhciAqeXlyZXN1bHQsIGludCB5
eXN0YXRlLCBpbnQgeXljaGFyKQogICAgICAgeXlzaXplID0geXlzaXplMTsKIAogICAgICAgaWYg
KHl5c2l6ZV9vdmVyZmxvdykKLSAgICByZXR1cm4gWVlTSVpFX01BWElNVU07CisJcmV0dXJuIFlZ
U0laRV9NQVhJTVVNOwogCiAgICAgICBpZiAoeXlyZXN1bHQpCi0gICAgewotICAgICAgLyogQXZv
aWQgc3ByaW50ZiwgYXMgdGhhdCBpbmZyaW5nZXMgb24gdGhlIHVzZXIncyBuYW1lIHNwYWNlLgot
ICAgICAgICAgRG9uJ3QgaGF2ZSB1bmRlZmluZWQgYmVoYXZpb3IgZXZlbiBpZiB0aGUgdHJhbnNs
YXRpb24KLSAgICAgICAgIHByb2R1Y2VkIGEgc3RyaW5nIHdpdGggdGhlIHdyb25nIG51bWJlciBv
ZiAiJXMicy4gICovCi0gICAgICBjaGFyICp5eXAgPSB5eXJlc3VsdDsKLSAgICAgIGludCB5eWkg
PSAwOwotICAgICAgd2hpbGUgKCgqeXlwID0gKnl5ZikgIT0gJ1wwJykKLSAgICAgICAgewotICAg
ICAgICAgIGlmICgqeXlwID09ICclJyAmJiB5eWZbMV0gPT0gJ3MnICYmIHl5aSA8IHl5Y291bnQp
Ci0gICAgICAgIHsKLSAgICAgICAgICB5eXAgKz0geXl0bmFtZXJyICh5eXAsIHl5YXJnW3l5aSsr
XSk7Ci0gICAgICAgICAgeXlmICs9IDI7Ci0gICAgICAgIH0KLSAgICAgICAgICBlbHNlCi0gICAg
ICAgIHsKLSAgICAgICAgICB5eXArKzsKLSAgICAgICAgICB5eWYrKzsKLSAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgfQorCXsKKwkgIC8qIEF2b2lkIHNwcmludGYsIGFzIHRoYXQgaW5mcmluZ2Vz
IG9uIHRoZSB1c2VyJ3MgbmFtZSBzcGFjZS4KKwkgICAgIERvbid0IGhhdmUgdW5kZWZpbmVkIGJl
aGF2aW9yIGV2ZW4gaWYgdGhlIHRyYW5zbGF0aW9uCisJICAgICBwcm9kdWNlZCBhIHN0cmluZyB3
aXRoIHRoZSB3cm9uZyBudW1iZXIgb2YgIiVzInMuICAqLworCSAgY2hhciAqeXlwID0geXlyZXN1
bHQ7CisJICBpbnQgeXlpID0gMDsKKwkgIHdoaWxlICgoKnl5cCA9ICp5eWYpICE9ICdcMCcpCisJ
ICAgIHsKKwkgICAgICBpZiAoKnl5cCA9PSAnJScgJiYgeXlmWzFdID09ICdzJyAmJiB5eWkgPCB5
eWNvdW50KQorCQl7CisJCSAgeXlwICs9IHl5dG5hbWVyciAoeXlwLCB5eWFyZ1t5eWkrK10pOwor
CQkgIHl5ZiArPSAyOworCQl9CisJICAgICAgZWxzZQorCQl7CisJCSAgeXlwKys7CisJCSAgeXlm
Kys7CisJCX0KKwkgICAgfQorCX0KICAgICAgIHJldHVybiB5eXNpemU7CiAgICAgfQogfQpAQCAt
MTE4MiwxNCArMTE4MCwxNCBAQCB5eXN5bnRheF9lcnJvciAoY2hhciAqeXlyZXN1bHQsIGludCB5
eXN0YXRlLCBpbnQgeXljaGFyKQogI2lmIChkZWZpbmVkIF9fU1REQ19fIHx8IGRlZmluZWQgX19D
OTlfX0ZVTkNfXyBcCiAgICAgIHx8IGRlZmluZWQgX19jcGx1c3BsdXMgfHwgZGVmaW5lZCBfTVND
X1ZFUikKIHN0YXRpYyB2b2lkCi15eWRlc3RydWN0IChjb25zdCBjaGFyICp5eW1zZywgaW50IHl5
dHlwZSwgWVlTVFlQRSAqeXl2YWx1ZXAsIFBhcnNlciYgcGFyc2VyKQoreXlkZXN0cnVjdCAoY29u
c3QgY2hhciAqeXltc2csIGludCB5eXR5cGUsIFlZU1RZUEUgKnl5dmFsdWVwLCBXZWJDb3JlOjpY
UGF0aDo6UGFyc2VyJiBwYXJzZXIpCiAjZWxzZQogc3RhdGljIHZvaWQKIHl5ZGVzdHJ1Y3QgKHl5
bXNnLCB5eXR5cGUsIHl5dmFsdWVwLCBwYXJzZXIpCiAgICAgY29uc3QgY2hhciAqeXltc2c7CiAg
ICAgaW50IHl5dHlwZTsKICAgICBZWVNUWVBFICp5eXZhbHVlcDsKLSAgICBQYXJzZXImIHBhcnNl
cjsKKyAgICBXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiBwYXJzZXI7CiAjZW5kaWYKIHsKICAgWVlV
U0UgKHl5dmFsdWVwKTsKQEAgLTEyMDIsMTYzICsxMjAwLDE2MyBAQCB5eWRlc3RydWN0ICh5eW1z
ZywgeXl0eXBlLCB5eXZhbHVlcCwgcGFyc2VyKQogICBzd2l0Y2ggKHl5dHlwZSkKICAgICB7CiAg
ICAgICBjYXNlIDEwOiAvKiAiRlVOQ1RJT05OQU1FIiAqLwotI2xpbmUgODAgIldlYkNvcmUveG1s
L1hQYXRoR3JhbW1hci55IgotICAgIHsgaWYgKCh5eXZhbHVlcC0+c3RyaW5nKSkgKHl5dmFsdWVw
LT5zdHJpbmcpLT5kZXJlZigpOyB9OwotI2xpbmUgMTIwNSAiLi9YUGF0aEdyYW1tYXIuY3BwIgot
ICAgIGJyZWFrOworI2xpbmUgNzcgIlhQYXRoR3JhbW1hci55IgorCXsgaWYgKCh5eXZhbHVlcC0+
c3RyaW5nKSkgKHl5dmFsdWVwLT5zdHJpbmcpLT5kZXJlZigpOyB9OworI2xpbmUgMTIwMiAiWFBh
dGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgMTE6IC8qICJMSVRFUkFMIiAqLwot
I2xpbmUgODAgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgaWYgKCh5eXZhbHVl
cC0+c3RyaW5nKSkgKHl5dmFsdWVwLT5zdHJpbmcpLT5kZXJlZigpOyB9OwotI2xpbmUgMTIxMCAi
Li9YUGF0aEdyYW1tYXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgNzcgIlhQYXRoR3JhbW1hci55
IgorCXsgaWYgKCh5eXZhbHVlcC0+c3RyaW5nKSkgKHl5dmFsdWVwLT5zdHJpbmcpLT5kZXJlZigp
OyB9OworI2xpbmUgMTIwNyAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2Ug
MTI6IC8qICJOQU1FVEVTVCIgKi8KLSNsaW5lIDgwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIu
eSIKLSAgICB7IGlmICgoeXl2YWx1ZXAtPnN0cmluZykpICh5eXZhbHVlcC0+c3RyaW5nKS0+ZGVy
ZWYoKTsgfTsKLSNsaW5lIDEyMTUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNs
aW5lIDc3ICJYUGF0aEdyYW1tYXIueSIKKwl7IGlmICgoeXl2YWx1ZXAtPnN0cmluZykpICh5eXZh
bHVlcC0+c3RyaW5nKS0+ZGVyZWYoKTsgfTsKKyNsaW5lIDEyMTIgIlhQYXRoR3JhbW1hci5jcHAi
CisJYnJlYWs7CiAgICAgICBjYXNlIDEzOiAvKiAiTlVNQkVSIiAqLwotI2xpbmUgODAgIldlYkNv
cmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgaWYgKCh5eXZhbHVlcC0+c3RyaW5nKSkgKHl5
dmFsdWVwLT5zdHJpbmcpLT5kZXJlZigpOyB9OwotI2xpbmUgMTIyMCAiLi9YUGF0aEdyYW1tYXIu
Y3BwIgotICAgIGJyZWFrOworI2xpbmUgNzcgIlhQYXRoR3JhbW1hci55IgorCXsgaWYgKCh5eXZh
bHVlcC0+c3RyaW5nKSkgKHl5dmFsdWVwLT5zdHJpbmcpLT5kZXJlZigpOyB9OworI2xpbmUgMTIx
NyAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgMTQ6IC8qICJOT0RFVFlQ
RSIgKi8KLSNsaW5lIDgwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGlmICgo
eXl2YWx1ZXAtPnN0cmluZykpICh5eXZhbHVlcC0+c3RyaW5nKS0+ZGVyZWYoKTsgfTsKLSNsaW5l
IDEyMjUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDc3ICJYUGF0aEdy
YW1tYXIueSIKKwl7IGlmICgoeXl2YWx1ZXAtPnN0cmluZykpICh5eXZhbHVlcC0+c3RyaW5nKS0+
ZGVyZWYoKTsgfTsKKyNsaW5lIDEyMjIgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAg
ICBjYXNlIDE1OiAvKiAiVkFSSUFCTEVSRUZFUkVOQ0UiICovCi0jbGluZSA4MCAiV2ViQ29yZS94
bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBpZiAoKHl5dmFsdWVwLT5zdHJpbmcpKSAoeXl2YWx1
ZXAtPnN0cmluZyktPmRlcmVmKCk7IH07Ci0jbGluZSAxMjMwICIuL1hQYXRoR3JhbW1hci5jcHAi
Ci0gICAgYnJlYWs7CisjbGluZSA3NyAiWFBhdGhHcmFtbWFyLnkiCisJeyBpZiAoKHl5dmFsdWVw
LT5zdHJpbmcpKSAoeXl2YWx1ZXAtPnN0cmluZyktPmRlcmVmKCk7IH07CisjbGluZSAxMjI3ICJY
UGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSAzNTogLyogIkV4cHIiICovCi0j
bGluZSAxMDAgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZh
bHVlcC0+ZXhwcmVzc2lvbik7IH07Ci0jbGluZSAxMjM1ICIuL1hQYXRoR3JhbW1hci5jcHAiCi0g
ICAgYnJlYWs7CisjbGluZSA5NyAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUgKHl5dmFsdWVw
LT5leHByZXNzaW9uKTsgfTsKKyNsaW5lIDEyMzIgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7
CiAgICAgICBjYXNlIDM2OiAvKiAiTG9jYXRpb25QYXRoIiAqLwotI2xpbmUgODggIldlYkNvcmUv
eG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+bG9jYXRpb25QYXRo
KTsgfTsKLSNsaW5lIDEyNDAgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5l
IDg1ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmxvY2F0aW9uUGF0aCk7
IH07CisjbGluZSAxMjM3ICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSAz
NzogLyogIkFic29sdXRlTG9jYXRpb25QYXRoIiAqLwotI2xpbmUgODggIldlYkNvcmUveG1sL1hQ
YXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+bG9jYXRpb25QYXRoKTsgfTsK
LSNsaW5lIDEyNDUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDg1ICJY
UGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmxvY2F0aW9uUGF0aCk7IH07Cisj
bGluZSAxMjQyICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSAzODogLyog
IlJlbGF0aXZlTG9jYXRpb25QYXRoIiAqLwotI2xpbmUgODggIldlYkNvcmUveG1sL1hQYXRoR3Jh
bW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+bG9jYXRpb25QYXRoKTsgfTsKLSNsaW5l
IDEyNTAgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDg1ICJYUGF0aEdy
YW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmxvY2F0aW9uUGF0aCk7IH07CisjbGluZSAx
MjQ3ICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSAzOTogLyogIlN0ZXAi
ICovCi0jbGluZSA5NyAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUg
KHl5dmFsdWVwLT5zdGVwKTsgfTsKLSNsaW5lIDEyNTUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAg
ICBicmVhazsKKyNsaW5lIDk0ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAt
PnN0ZXApOyB9OworI2xpbmUgMTI1MiAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAg
IGNhc2UgNDE6IC8qICJOb2RlVGVzdCIgKi8KLSNsaW5lIDkxICJXZWJDb3JlL3htbC9YUGF0aEdy
YW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2YWx1ZXAtPm5vZGVUZXN0KTsgfTsKLSNsaW5lIDEy
NjAgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDg4ICJYUGF0aEdyYW1t
YXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPm5vZGVUZXN0KTsgfTsKKyNsaW5lIDEyNTcgIlhQ
YXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNlIDQyOiAvKiAiT3B0aW9uYWxQcmVk
aWNhdGVMaXN0IiAqLwotI2xpbmUgOTQgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAg
IHsgZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvblZlY3Rvcik7IH07Ci0jbGluZSAxMjY1ICIu
L1hQYXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7CisjbGluZSA5MSAiWFBhdGhHcmFtbWFyLnki
CisJeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uVmVjdG9yKTsgfTsKKyNsaW5lIDEyNjIg
IlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNlIDQzOiAvKiAiUHJlZGljYXRl
TGlzdCIgKi8KLSNsaW5lIDk0ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRl
bGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb25WZWN0b3IpOyB9OwotI2xpbmUgMTI3MCAiLi9YUGF0
aEdyYW1tYXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgOTEgIlhQYXRoR3JhbW1hci55IgorCXsg
ZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvblZlY3Rvcik7IH07CisjbGluZSAxMjY3ICJYUGF0
aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSA0NDogLyogIlByZWRpY2F0ZSIgKi8K
LSNsaW5lIDEwMCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5
dmFsdWVwLT5leHByZXNzaW9uKTsgfTsKLSNsaW5lIDEyNzUgIi4vWFBhdGhHcmFtbWFyLmNwcCIK
LSAgICBicmVhazsKKyNsaW5lIDk3ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1
ZXAtPmV4cHJlc3Npb24pOyB9OworI2xpbmUgMTI3MiAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVh
azsKICAgICAgIGNhc2UgNDU6IC8qICJEZXNjZW5kYW50T3JTZWxmIiAqLwotI2xpbmUgOTcgIldl
YkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+c3RlcCk7
IH07Ci0jbGluZSAxMjgwICIuL1hQYXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7CisjbGluZSA5
NCAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUgKHl5dmFsdWVwLT5zdGVwKTsgfTsKKyNsaW5l
IDEyNzcgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNlIDQ2OiAvKiAiQWJi
cmV2aWF0ZWRTdGVwIiAqLwotI2xpbmUgOTcgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55Igot
ICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+c3RlcCk7IH07Ci0jbGluZSAxMjg1ICIuL1hQYXRoR3Jh
bW1hci5jcHAiCi0gICAgYnJlYWs7CisjbGluZSA5NCAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxl
dGUgKHl5dmFsdWVwLT5zdGVwKTsgfTsKKyNsaW5lIDEyODIgIlhQYXRoR3JhbW1hci5jcHAiCisJ
YnJlYWs7CiAgICAgICBjYXNlIDQ3OiAvKiAiUHJpbWFyeUV4cHIiICovCi0jbGluZSAxMDAgIldl
YkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVz
c2lvbik7IH07Ci0jbGluZSAxMjkwICIuL1hQYXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7Cisj
bGluZSA5NyAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9u
KTsgfTsKKyNsaW5lIDEyODcgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNl
IDQ4OiAvKiAiRnVuY3Rpb25DYWxsIiAqLwotI2xpbmUgMTAwICJXZWJDb3JlL3htbC9YUGF0aEdy
YW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OwotI2xpbmUg
MTI5NSAiLi9YUGF0aEdyYW1tYXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgOTcgIlhQYXRoR3Jh
bW1hci55IgorCXsgZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvbik7IH07CisjbGluZSAxMjky
ICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSA0OTogLyogIkFyZ3VtZW50
TGlzdCIgKi8KLSNsaW5lIDk0ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRl
bGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb25WZWN0b3IpOyB9OwotI2xpbmUgMTMwMCAiLi9YUGF0
aEdyYW1tYXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgOTEgIlhQYXRoR3JhbW1hci55IgorCXsg
ZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvblZlY3Rvcik7IH07CisjbGluZSAxMjk3ICJYUGF0
aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSA1MDogLyogIkFyZ3VtZW50IiAqLwot
I2xpbmUgMTAwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2
YWx1ZXAtPmV4cHJlc3Npb24pOyB9OwotI2xpbmUgMTMwNSAiLi9YUGF0aEdyYW1tYXIuY3BwIgot
ICAgIGJyZWFrOworI2xpbmUgOTcgIlhQYXRoR3JhbW1hci55IgorCXsgZGVsZXRlICh5eXZhbHVl
cC0+ZXhwcmVzc2lvbik7IH07CisjbGluZSAxMzAyICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFr
OwogICAgICAgY2FzZSA1MTogLyogIlVuaW9uRXhwciIgKi8KLSNsaW5lIDEwMCAiV2ViQ29yZS94
bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsg
fTsKLSNsaW5lIDEzMTAgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDk3
ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9Owor
I2xpbmUgMTMwNyAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgNTI6IC8q
ICJQYXRoRXhwciIgKi8KLSNsaW5lIDEwMCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0g
ICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsgfTsKLSNsaW5lIDEzMTUgIi4vWFBh
dGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDk3ICJYUGF0aEdyYW1tYXIueSIKKwl7
IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OworI2xpbmUgMTMxMiAiWFBhdGhHcmFt
bWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgNTM6IC8qICJGaWx0ZXJFeHByIiAqLwotI2xp
bmUgMTAwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2YWx1
ZXAtPmV4cHJlc3Npb24pOyB9OwotI2xpbmUgMTMyMCAiLi9YUGF0aEdyYW1tYXIuY3BwIgotICAg
IGJyZWFrOworI2xpbmUgOTcgIlhQYXRoR3JhbW1hci55IgorCXsgZGVsZXRlICh5eXZhbHVlcC0+
ZXhwcmVzc2lvbik7IH07CisjbGluZSAxMzE3ICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwog
ICAgICAgY2FzZSA1NDogLyogIk9yRXhwciIgKi8KLSNsaW5lIDEwMCAiV2ViQ29yZS94bWwvWFBh
dGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsgfTsKLSNs
aW5lIDEzMjUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDk3ICJYUGF0
aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OworI2xpbmUg
MTMyMiAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgNTU6IC8qICJBbmRF
eHByIiAqLwotI2xpbmUgMTAwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRl
bGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OwotI2xpbmUgMTMzMCAiLi9YUGF0aEdyYW1t
YXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgOTcgIlhQYXRoR3JhbW1hci55IgorCXsgZGVsZXRl
ICh5eXZhbHVlcC0+ZXhwcmVzc2lvbik7IH07CisjbGluZSAxMzI3ICJYUGF0aEdyYW1tYXIuY3Bw
IgorCWJyZWFrOwogICAgICAgY2FzZSA1NjogLyogIkVxdWFsaXR5RXhwciIgKi8KLSNsaW5lIDEw
MCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5l
eHByZXNzaW9uKTsgfTsKLSNsaW5lIDEzMzUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVh
azsKKyNsaW5lIDk3ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJl
c3Npb24pOyB9OworI2xpbmUgMTMzMiAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAg
IGNhc2UgNTc6IC8qICJSZWxhdGlvbmFsRXhwciIgKi8KLSNsaW5lIDEwMCAiV2ViQ29yZS94bWwv
WFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsgfTsK
LSNsaW5lIDEzNDAgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDk3ICJY
UGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OworI2xp
bmUgMTMzNyAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgNTg6IC8qICJB
ZGRpdGl2ZUV4cHIiICovCi0jbGluZSAxMDAgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55Igot
ICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvbik7IH07Ci0jbGluZSAxMzQ1ICIuL1hQ
YXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7CisjbGluZSA5NyAiWFBhdGhHcmFtbWFyLnkiCisJ
eyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsgfTsKKyNsaW5lIDEzNDIgIlhQYXRoR3Jh
bW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNlIDU5OiAvKiAiTXVsdGlwbGljYXRpdmVFeHBy
IiAqLwotI2xpbmUgMTAwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRlbGV0
ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OwotI2xpbmUgMTM1MCAiLi9YUGF0aEdyYW1tYXIu
Y3BwIgotICAgIGJyZWFrOworI2xpbmUgOTcgIlhQYXRoR3JhbW1hci55IgorCXsgZGVsZXRlICh5
eXZhbHVlcC0+ZXhwcmVzc2lvbik7IH07CisjbGluZSAxMzQ3ICJYUGF0aEdyYW1tYXIuY3BwIgor
CWJyZWFrOwogICAgICAgY2FzZSA2MDogLyogIlVuYXJ5RXhwciIgKi8KLSNsaW5lIDEwMCAiV2Vi
Q29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNz
aW9uKTsgfTsKLSNsaW5lIDEzNTUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNs
aW5lIDk3ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24p
OyB9OworI2xpbmUgMTM1MiAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKIAogICAgICAgZGVm
YXVsdDoKLSAgICBicmVhazsKKwlicmVhazsKICAgICB9CiB9CiAMCkBAIC0xMzczLDcgKzEzNzEs
NyBAQCBpbnQgeXlwYXJzZSAoKTsKICNlbmRpZgogI2Vsc2UgLyogISBZWVBBUlNFX1BBUkFNICov
CiAjaWYgZGVmaW5lZCBfX1NURENfXyB8fCBkZWZpbmVkIF9fY3BsdXNwbHVzCi1pbnQgeXlwYXJz
ZSAoUGFyc2VyJiBwYXJzZXIpOworaW50IHl5cGFyc2UgKFdlYkNvcmU6OlhQYXRoOjpQYXJzZXIm
IHBhcnNlcik7CiAjZWxzZQogaW50IHl5cGFyc2UgKCk7CiAjZW5kaWYKQEAgLTE0MDIsMTEgKzE0
MDAsMTEgQEAgeXlwYXJzZSAoWVlQQVJTRV9QQVJBTSkKICNpZiAoZGVmaW5lZCBfX1NURENfXyB8
fCBkZWZpbmVkIF9fQzk5X19GVU5DX18gXAogICAgICB8fCBkZWZpbmVkIF9fY3BsdXNwbHVzIHx8
IGRlZmluZWQgX01TQ19WRVIpCiBpbnQKLXl5cGFyc2UgKFBhcnNlciYgcGFyc2VyKQoreXlwYXJz
ZSAoV2ViQ29yZTo6WFBhdGg6OlBhcnNlciYgcGFyc2VyKQogI2Vsc2UKIGludAogeXlwYXJzZSAo
cGFyc2VyKQotICAgIFBhcnNlciYgcGFyc2VyOworICAgIFdlYkNvcmU6OlhQYXRoOjpQYXJzZXIm
IHBhcnNlcjsKICNlbmRpZgogI2VuZGlmCiB7CkBAIC0xNDcxLDcgKzE0NjksNyBAQCBpbnQgeXlu
ZXJyczsKICAgeXlzdGF0ZSA9IDA7CiAgIHl5ZXJyc3RhdHVzID0gMDsKICAgeXluZXJycyA9IDA7
Ci0gIHl5Y2hhciA9IFlZRU1QVFk7ICAgICAgICAvKiBDYXVzZSBhIHRva2VuIHRvIGJlIHJlYWQu
ICAqLworICB5eWNoYXIgPSBZWUVNUFRZOwkJLyogQ2F1c2UgYSB0b2tlbiB0byBiZSByZWFkLiAg
Ki8KIAogICAvKiBJbml0aWFsaXplIHN0YWNrIHBvaW50ZXJzLgogICAgICBXYXN0ZSBvbmUgZWxl
bWVudCBvZiB2YWx1ZSBhbmQgbG9jYXRpb24gc3RhY2sKQEAgLTE1MDEsMjUgKzE0OTksMjUgQEAg
aW50IHl5bmVycnM7CiAKICNpZmRlZiB5eW92ZXJmbG93CiAgICAgICB7Ci0gICAgLyogR2l2ZSB1
c2VyIGEgY2hhbmNlIHRvIHJlYWxsb2NhdGUgdGhlIHN0YWNrLiAgVXNlIGNvcGllcyBvZgotICAg
ICAgIHRoZXNlIHNvIHRoYXQgdGhlICYncyBkb24ndCBmb3JjZSB0aGUgcmVhbCBvbmVzIGludG8K
LSAgICAgICBtZW1vcnkuICAqLwotICAgIFlZU1RZUEUgKnl5dnMxID0geXl2czsKLSAgICB5eXR5
cGVfaW50MTYgKnl5c3MxID0geXlzczsKKwkvKiBHaXZlIHVzZXIgYSBjaGFuY2UgdG8gcmVhbGxv
Y2F0ZSB0aGUgc3RhY2suICBVc2UgY29waWVzIG9mCisJICAgdGhlc2Ugc28gdGhhdCB0aGUgJidz
IGRvbid0IGZvcmNlIHRoZSByZWFsIG9uZXMgaW50bworCSAgIG1lbW9yeS4gICovCisJWVlTVFlQ
RSAqeXl2czEgPSB5eXZzOworCXl5dHlwZV9pbnQxNiAqeXlzczEgPSB5eXNzOwogCiAKLSAgICAv
KiBFYWNoIHN0YWNrIHBvaW50ZXIgYWRkcmVzcyBpcyBmb2xsb3dlZCBieSB0aGUgc2l6ZSBvZiB0
aGUKLSAgICAgICBkYXRhIGluIHVzZSBpbiB0aGF0IHN0YWNrLCBpbiBieXRlcy4gIFRoaXMgdXNl
ZCB0byBiZSBhCi0gICAgICAgY29uZGl0aW9uYWwgYXJvdW5kIGp1c3QgdGhlIHR3byBleHRyYSBh
cmdzLCBidXQgdGhhdCBtaWdodAotICAgICAgIGJlIHVuZGVmaW5lZCBpZiB5eW92ZXJmbG93IGlz
IGEgbWFjcm8uICAqLwotICAgIHl5b3ZlcmZsb3cgKFlZXygibWVtb3J5IGV4aGF1c3RlZCIpLAot
ICAgICAgICAgICAgJnl5c3MxLCB5eXNpemUgKiBzaXplb2YgKCp5eXNzcCksCi0gICAgICAgICAg
ICAmeXl2czEsIHl5c2l6ZSAqIHNpemVvZiAoKnl5dnNwKSwKKwkvKiBFYWNoIHN0YWNrIHBvaW50
ZXIgYWRkcmVzcyBpcyBmb2xsb3dlZCBieSB0aGUgc2l6ZSBvZiB0aGUKKwkgICBkYXRhIGluIHVz
ZSBpbiB0aGF0IHN0YWNrLCBpbiBieXRlcy4gIFRoaXMgdXNlZCB0byBiZSBhCisJICAgY29uZGl0
aW9uYWwgYXJvdW5kIGp1c3QgdGhlIHR3byBleHRyYSBhcmdzLCBidXQgdGhhdCBtaWdodAorCSAg
IGJlIHVuZGVmaW5lZCBpZiB5eW92ZXJmbG93IGlzIGEgbWFjcm8uICAqLworCXl5b3ZlcmZsb3cg
KFlZXygibWVtb3J5IGV4aGF1c3RlZCIpLAorCQkgICAgJnl5c3MxLCB5eXNpemUgKiBzaXplb2Yg
KCp5eXNzcCksCisJCSAgICAmeXl2czEsIHl5c2l6ZSAqIHNpemVvZiAoKnl5dnNwKSwKIAotICAg
ICAgICAgICAgJnl5c3RhY2tzaXplKTsKKwkJICAgICZ5eXN0YWNrc2l6ZSk7CiAKLSAgICB5eXNz
ID0geXlzczE7Ci0gICAgeXl2cyA9IHl5dnMxOworCXl5c3MgPSB5eXNzMTsKKwl5eXZzID0geXl2
czE7CiAgICAgICB9CiAjZWxzZSAvKiBubyB5eW92ZXJmbG93ICovCiAjIGlmbmRlZiBZWVNUQUNL
X1JFTE9DQVRFCkBAIC0xNTI3LDIzICsxNTI1LDIzIEBAIGludCB5eW5lcnJzOwogIyBlbHNlCiAg
ICAgICAvKiBFeHRlbmQgdGhlIHN0YWNrIG91ciBvd24gd2F5LiAgKi8KICAgICAgIGlmIChZWU1B
WERFUFRIIDw9IHl5c3RhY2tzaXplKQotICAgIGdvdG8geXlleGhhdXN0ZWRsYWI7CisJZ290byB5
eWV4aGF1c3RlZGxhYjsKICAgICAgIHl5c3RhY2tzaXplICo9IDI7CiAgICAgICBpZiAoWVlNQVhE
RVBUSCA8IHl5c3RhY2tzaXplKQotICAgIHl5c3RhY2tzaXplID0gWVlNQVhERVBUSDsKKwl5eXN0
YWNrc2l6ZSA9IFlZTUFYREVQVEg7CiAKICAgICAgIHsKLSAgICB5eXR5cGVfaW50MTYgKnl5c3Mx
ID0geXlzczsKLSAgICB1bmlvbiB5eWFsbG9jICp5eXB0ciA9Ci0gICAgICAodW5pb24geXlhbGxv
YyAqKSBZWVNUQUNLX0FMTE9DIChZWVNUQUNLX0JZVEVTICh5eXN0YWNrc2l6ZSkpOwotICAgIGlm
ICghIHl5cHRyKQotICAgICAgZ290byB5eWV4aGF1c3RlZGxhYjsKLSAgICBZWVNUQUNLX1JFTE9D
QVRFICh5eXNzKTsKLSAgICBZWVNUQUNLX1JFTE9DQVRFICh5eXZzKTsKKwl5eXR5cGVfaW50MTYg
Knl5c3MxID0geXlzczsKKwl1bmlvbiB5eWFsbG9jICp5eXB0ciA9CisJICAodW5pb24geXlhbGxv
YyAqKSBZWVNUQUNLX0FMTE9DIChZWVNUQUNLX0JZVEVTICh5eXN0YWNrc2l6ZSkpOworCWlmICgh
IHl5cHRyKQorCSAgZ290byB5eWV4aGF1c3RlZGxhYjsKKwlZWVNUQUNLX1JFTE9DQVRFICh5eXNz
KTsKKwlZWVNUQUNLX1JFTE9DQVRFICh5eXZzKTsKIAogIyAgdW5kZWYgWVlTVEFDS19SRUxPQ0FU
RQotICAgIGlmICh5eXNzMSAhPSB5eXNzYSkKLSAgICAgIFlZU1RBQ0tfRlJFRSAoeXlzczEpOwor
CWlmICh5eXNzMSAhPSB5eXNzYSkKKwkgIFlZU1RBQ0tfRlJFRSAoeXlzczEpOwogICAgICAgfQog
IyBlbmRpZgogI2VuZGlmIC8qIG5vIHl5b3ZlcmZsb3cgKi8KQEAgLTE1NTMsMTAgKzE1NTEsMTAg
QEAgaW50IHl5bmVycnM7CiAKIAogICAgICAgWVlEUFJJTlRGICgoc3RkZXJyLCAiU3RhY2sgc2l6
ZSBpbmNyZWFzZWQgdG8gJWx1XG4iLAotICAgICAgICAgICh1bnNpZ25lZCBsb25nIGludCkgeXlz
dGFja3NpemUpKTsKKwkJICAodW5zaWduZWQgbG9uZyBpbnQpIHl5c3RhY2tzaXplKSk7CiAKICAg
ICAgIGlmICh5eXNzICsgeXlzdGFja3NpemUgLSAxIDw9IHl5c3NwKQotICAgIFlZQUJPUlQ7CisJ
WVlBQk9SVDsKICAgICB9CiAKICAgWVlEUFJJTlRGICgoc3RkZXJyLCAiRW50ZXJpbmcgc3RhdGUg
JWRcbiIsIHl5c3RhdGUpKTsKQEAgLTE2MDUsNyArMTYwMyw3IEBAIHl5YmFja3VwOgogICBpZiAo
eXluIDw9IDApCiAgICAgewogICAgICAgaWYgKHl5biA9PSAwIHx8IHl5biA9PSBZWVRBQkxFX05J
TkYpCi0gICAgZ290byB5eWVycmxhYjsKKwlnb3RvIHl5ZXJybGFiOwogICAgICAgeXluID0gLXl5
bjsKICAgICAgIGdvdG8geXlyZWR1Y2U7CiAgICAgfQpAQCAtMTY2MywxNCArMTY2MSwxNCBAQCB5
eXJlZHVjZToKICAgc3dpdGNoICh5eW4pCiAgICAgewogICAgICAgICBjYXNlIDI6Ci0jbGluZSAx
MTUgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMTEyICJYUGF0aEdyYW1tYXIu
eSIKICAgICB7Ci0gICAgICAgIHBhcnNlci5zZXRQYXJzZVJlc3VsdChzdGQ6OnVuaXF1ZV9wdHI8
RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgxKV0uZXhwcmVzc2lvbikpKTsKKyAgICAgICAgcGFy
c2VyLnNldFBhcnNlUmVzdWx0KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVz
c2lvbj4oKHl5dnNwWygxKSAtICgxKV0uZXhwcmVzc2lvbikpKTsKICAgICA7fQogICAgIGJyZWFr
OwogCiAgIGNhc2UgNDoKLSNsaW5lIDEyNiAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisj
bGluZSAxMjMgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAgKHl5dmFsLmxvY2F0aW9u
UGF0aCkgPSAoeXl2c3BbKDEpIC0gKDEpXS5sb2NhdGlvblBhdGgpOwogICAgICAgICAoeXl2YWwu
bG9jYXRpb25QYXRoKS0+c2V0QWJzb2x1dGUoKTsKQEAgLTE2NzgsNjkgKzE2NzYsNjkgQEAgeXly
ZWR1Y2U6CiAgICAgYnJlYWs7CiAKICAgY2FzZSA2OgotI2xpbmUgMTM2ICJXZWJDb3JlL3htbC9Y
UGF0aEdyYW1tYXIueSIKKyNsaW5lIDEzMyAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAgICAg
ICAoeXl2YWwubG9jYXRpb25QYXRoKSA9IG5ldyBMb2NhdGlvblBhdGg7CisgICAgICAgICh5eXZh
bC5sb2NhdGlvblBhdGgpID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpMb2NhdGlvblBhdGg7CiAgICAg
O30KICAgICBicmVhazsKIAogICBjYXNlIDc6Ci0jbGluZSAxNDEgIldlYkNvcmUveG1sL1hQYXRo
R3JhbW1hci55IgorI2xpbmUgMTM4ICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgICh5
eXZhbC5sb2NhdGlvblBhdGgpID0gKHl5dnNwWygyKSAtICgyKV0ubG9jYXRpb25QYXRoKTsKICAg
ICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgODoKLSNsaW5lIDE0NiAiV2ViQ29yZS94bWwvWFBh
dGhHcmFtbWFyLnkiCisjbGluZSAxNDMgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAg
KHl5dmFsLmxvY2F0aW9uUGF0aCkgPSAoeXl2c3BbKDIpIC0gKDIpXS5sb2NhdGlvblBhdGgpOwot
ICAgICAgICAoeXl2YWwubG9jYXRpb25QYXRoKS0+cHJlcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRy
PFN0ZXA+KCh5eXZzcFsoMSkgLSAoMildLnN0ZXApKSk7CisgICAgICAgICh5eXZhbC5sb2NhdGlv
blBhdGgpLT5wcmVwZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA+
KCh5eXZzcFsoMSkgLSAoMildLnN0ZXApKSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNl
IDk6Ci0jbGluZSAxNTQgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMTUxICJY
UGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgICh5eXZhbC5sb2NhdGlvblBhdGgpID0gbmV3
IExvY2F0aW9uUGF0aDsKLSAgICAgICAgKHl5dmFsLmxvY2F0aW9uUGF0aCktPmFwcGVuZFN0ZXAo
c3RkOjp1bmlxdWVfcHRyPFN0ZXA+KCh5eXZzcFsoMSkgLSAoMSldLnN0ZXApKSk7CisgICAgICAg
ICh5eXZhbC5sb2NhdGlvblBhdGgpID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpMb2NhdGlvblBhdGg7
CisgICAgICAgICh5eXZhbC5sb2NhdGlvblBhdGgpLT5hcHBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpYUGF0aDo6U3RlcD4oKHl5dnNwWygxKSAtICgxKV0uc3RlcCkpKTsKICAgICA7
fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMTA6Ci0jbGluZSAxNjAgIldlYkNvcmUveG1sL1hQYXRo
R3JhbW1hci55IgorI2xpbmUgMTU3ICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgICh5
eXZhbC5sb2NhdGlvblBhdGgpID0gKHl5dnNwWygxKSAtICgzKV0ubG9jYXRpb25QYXRoKTsKLSAg
ICAgICAgKHl5dmFsLmxvY2F0aW9uUGF0aCktPmFwcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFN0
ZXA+KCh5eXZzcFsoMykgLSAoMyldLnN0ZXApKSk7CisgICAgICAgICh5eXZhbC5sb2NhdGlvblBh
dGgpLT5hcHBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6U3RlcD4oKHl5
dnNwWygzKSAtICgzKV0uc3RlcCkpKTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMTE6
Ci0jbGluZSAxNjYgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMTYzICJYUGF0
aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgICh5eXZhbC5sb2NhdGlvblBhdGgpID0gKHl5dnNw
WygxKSAtICgzKV0ubG9jYXRpb25QYXRoKTsKLSAgICAgICAgKHl5dmFsLmxvY2F0aW9uUGF0aCkt
PmFwcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFN0ZXA+KCh5eXZzcFsoMikgLSAoMyldLnN0ZXAp
KSk7Ci0gICAgICAgICh5eXZhbC5sb2NhdGlvblBhdGgpLT5hcHBlbmRTdGVwKHN0ZDo6dW5pcXVl
X3B0cjxTdGVwPigoeXl2c3BbKDMpIC0gKDMpXS5zdGVwKSkpOworICAgICAgICAoeXl2YWwubG9j
YXRpb25QYXRoKS0+YXBwZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0
ZXA+KCh5eXZzcFsoMikgLSAoMyldLnN0ZXApKSk7CisgICAgICAgICh5eXZhbC5sb2NhdGlvblBh
dGgpLT5hcHBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6U3RlcD4oKHl5
dnNwWygzKSAtICgzKV0uc3RlcCkpKTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMTI6
Ci0jbGluZSAxNzUgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMTcyICJYUGF0
aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGVwOjpOb2RlVGVz
dD4gbm9kZVRlc3QoKHl5dnNwWygxKSAtICgyKV0ubm9kZVRlc3QpKTsKLSAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+PiBwcmVkaWNhdGVM
aXN0KCh5eXZzcFsoMikgLSAoMildLmV4cHJlc3Npb25WZWN0b3IpKTsKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdD4gbm9kZVRlc3QoKHl5dnNw
WygxKSAtICgyKV0ubm9kZVRlc3QpKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3Rvcjxz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+Pj4gcHJlZGljYXRlTGlz
dCgoeXl2c3BbKDIpIC0gKDIpXS5leHByZXNzaW9uVmVjdG9yKSk7CiAgICAgICAgIGlmIChwcmVk
aWNhdGVMaXN0KQotICAgICAgICAgICAgKHl5dmFsLnN0ZXApID0gbmV3IFN0ZXAoU3RlcDo6Q2hp
bGRBeGlzLCBXVEZNb3ZlKCpub2RlVGVzdCksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKKyAg
ICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcChXZWJDb3Jl
OjpYUGF0aDo6U3RlcDo6Q2hpbGRBeGlzLCBXVEZNb3ZlKCpub2RlVGVzdCksIFdURk1vdmUoKnBy
ZWRpY2F0ZUxpc3QpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgKHl5dmFsLnN0ZXApID0g
bmV3IFN0ZXAoU3RlcDo6Q2hpbGRBeGlzLCBXVEZNb3ZlKCpub2RlVGVzdCkpOworICAgICAgICAg
ICAgKHl5dmFsLnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdlYkNvcmU6OlhQYXRo
OjpTdGVwOjpDaGlsZEF4aXMsIFdURk1vdmUoKm5vZGVUZXN0KSk7CiAgICAgO30KICAgICBicmVh
azsKIAogICBjYXNlIDEzOgotI2xpbmUgMTg1ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIK
KyNsaW5lIDE4MiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAgICBTdHJpbmcgbmFtZXRl
c3QgPSBhZG9wdFJlZigoeXl2c3BbKDEpIC0gKDIpXS5zdHJpbmcpKTsKLSAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+PiBwcmVkaWNhdGVM
aXN0KCh5eXZzcFsoMikgLSAoMildLmV4cHJlc3Npb25WZWN0b3IpKTsKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Np
b24+Pj4gcHJlZGljYXRlTGlzdCgoeXl2c3BbKDIpIC0gKDIpXS5leHByZXNzaW9uVmVjdG9yKSk7
CiAKICAgICAgICAgU3RyaW5nIGxvY2FsTmFtZTsKICAgICAgICAgU3RyaW5nIG5hbWVzcGFjZVVS
STsKQEAgLTE3NTAsMzAgKzE3NDgsMzAgQEAgeXlyZWR1Y2U6CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAocHJlZGljYXRlTGlzdCkKLSAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVw
KFN0ZXA6OkNoaWxkQXhpcywgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0
LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKKyAg
ICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcChXZWJDb3Jl
OjpYUGF0aDo6U3RlcDo6Q2hpbGRBeGlzLCBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Qo
V2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpOYW1lVGVzdCwgbG9jYWxOYW1lLCBuYW1l
c3BhY2VVUkkpLCBXVEZNb3ZlKCpwcmVkaWNhdGVMaXN0KSk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVwKFN0ZXA6OkNoaWxkQXhpcywgU3RlcDo6Tm9k
ZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSkp
OworICAgICAgICAgICAgKHl5dmFsLnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdl
YkNvcmU6OlhQYXRoOjpTdGVwOjpDaGlsZEF4aXMsIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2Rl
VGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUs
IG5hbWVzcGFjZVVSSSkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAxNDoKLSNsaW5l
IDIwMyAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyMDAgIlhQYXRoR3JhbW1h
ci55IgogICAgIHsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFN0ZXA6Ok5vZGVUZXN0PiBub2Rl
VGVzdCgoeXl2c3BbKDIpIC0gKDMpXS5ub2RlVGVzdCkpOwotICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPj4+IHByZWRpY2F0ZUxpc3QoKHl5
dnNwWygzKSAtICgzKV0uZXhwcmVzc2lvblZlY3RvcikpOworICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0PiBub2RlVGVzdCgoeXl2c3BbKDIpIC0g
KDMpXS5ub2RlVGVzdCkpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4+PiBwcmVkaWNhdGVMaXN0KCh5eXZz
cFsoMykgLSAoMyldLmV4cHJlc3Npb25WZWN0b3IpKTsKIAogICAgICAgICBpZiAocHJlZGljYXRl
TGlzdCkKLSAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVwKCh5eXZzcFsoMSkgLSAo
MyldLmF4aXMpLCBXVEZNb3ZlKCpub2RlVGVzdCksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsK
KyAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcCgoeXl2
c3BbKDEpIC0gKDMpXS5heGlzKSwgV1RGTW92ZSgqbm9kZVRlc3QpLCBXVEZNb3ZlKCpwcmVkaWNh
dGVMaXN0KSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBT
dGVwKCh5eXZzcFsoMSkgLSAoMyldLmF4aXMpLCBXVEZNb3ZlKCpub2RlVGVzdCkpOworICAgICAg
ICAgICAgKHl5dmFsLnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKCh5eXZzcFsoMSkg
LSAoMyldLmF4aXMpLCBXVEZNb3ZlKCpub2RlVGVzdCkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAK
ICAgY2FzZSAxNToKLSNsaW5lIDIxNCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGlu
ZSAyMTEgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAgU3RyaW5nIG5hbWV0ZXN0ID0g
YWRvcHRSZWYoKHl5dnNwWygyKSAtICgzKV0uc3RyaW5nKSk7Ci0gICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+Pj4gcHJlZGljYXRlTGlzdCgo
eXl2c3BbKDMpIC0gKDMpXS5leHByZXNzaW9uVmVjdG9yKSk7CisgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPj4+
IHByZWRpY2F0ZUxpc3QoKHl5dnNwWygzKSAtICgzKV0uZXhwcmVzc2lvblZlY3RvcikpOwogCiAg
ICAgICAgIFN0cmluZyBsb2NhbE5hbWU7CiAgICAgICAgIFN0cmluZyBuYW1lc3BhY2VVUkk7CkBA
IC0xNzgzLDI3MiArMTc4MSwyNzIgQEAgeXlyZWR1Y2U6CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAocHJlZGljYXRlTGlzdCkKLSAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVwKCh5
eXZzcFsoMSkgLSAoMyldLmF4aXMpLCBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6TmFt
ZVRlc3QsIGxvY2FsTmFtZSwgbmFtZXNwYWNlVVJJKSwgV1RGTW92ZSgqcHJlZGljYXRlTGlzdCkp
OworICAgICAgICAgICAgKHl5dmFsLnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKCh5
eXZzcFsoMSkgLSAoMyldLmF4aXMpLCBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2Vi
Q29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpOYW1lVGVzdCwgbG9jYWxOYW1lLCBuYW1lc3Bh
Y2VVUkkpLCBXVEZNb3ZlKCpwcmVkaWNhdGVMaXN0KSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVwKCh5eXZzcFsoMSkgLSAoMyldLmF4aXMpLCBTdGVw
OjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6TmFtZVRlc3QsIGxvY2FsTmFtZSwgbmFtZXNwYWNl
VVJJKSk7CisgICAgICAgICAgICAoeXl2YWwuc3RlcCkgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0
ZXAoKHl5dnNwWygxKSAtICgzKV0uYXhpcyksIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVz
dChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5h
bWVzcGFjZVVSSSkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAxODoKLSNsaW5lIDIz
OCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyMzUgIlhQYXRoR3JhbW1hci55
IgogICAgIHsKLSAgICAgICAgKHl5dmFsLmF4aXMpID0gU3RlcDo6QXR0cmlidXRlQXhpczsKKyAg
ICAgICAgKHl5dmFsLmF4aXMpID0gV2ViQ29yZTo6WFBhdGg6OlN0ZXA6OkF0dHJpYnV0ZUF4aXM7
CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDE5OgotI2xpbmUgMjQ1ICJXZWJDb3JlL3ht
bC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDI0MiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAg
ICAgICAoeXl2YWwubm9kZVRlc3QpID0gbmV3IFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0
OjpBbnlOb2RlVGVzdCk7CisgICAgICAgICh5eXZhbC5ub2RlVGVzdCkgPSBuZXcgV2ViQ29yZTo6
WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0KFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6QW55
Tm9kZVRlc3QpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAyMDoKLSNsaW5lIDI1MCAi
V2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyNDcgIlhQYXRoR3JhbW1hci55Igog
ICAgIHsKLSAgICAgICAgKHl5dmFsLm5vZGVUZXN0KSA9IG5ldyBTdGVwOjpOb2RlVGVzdChTdGVw
OjpOb2RlVGVzdDo6VGV4dE5vZGVUZXN0KTsKKyAgICAgICAgKHl5dmFsLm5vZGVUZXN0KSA9IG5l
dyBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5v
ZGVUZXN0OjpUZXh0Tm9kZVRlc3QpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAyMToK
LSNsaW5lIDI1NSAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyNTIgIlhQYXRo
R3JhbW1hci55IgogICAgIHsKLSAgICAgICAgKHl5dmFsLm5vZGVUZXN0KSA9IG5ldyBTdGVwOjpO
b2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6Q29tbWVudE5vZGVUZXN0KTsKKyAgICAgICAgKHl5dmFs
Lm5vZGVUZXN0KSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6
WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpDb21tZW50Tm9kZVRlc3QpOwogICAgIDt9CiAgICAgYnJl
YWs7CiAKICAgY2FzZSAyMjoKLSNsaW5lIDI2MCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnki
CisjbGluZSAyNTcgIlhQYXRoR3JhbW1hci55IgogICAgIHsKLSAgICAgICAgKHl5dmFsLm5vZGVU
ZXN0KSA9IG5ldyBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6UHJvY2Vzc2luZ0luc3Ry
dWN0aW9uTm9kZVRlc3QpOworICAgICAgICAoeXl2YWwubm9kZVRlc3QpID0gbmV3IFdlYkNvcmU6
OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6OlBy
b2Nlc3NpbmdJbnN0cnVjdGlvbk5vZGVUZXN0KTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNh
c2UgMjM6Ci0jbGluZSAyNjUgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMjYy
ICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgIFN0cmluZyBsaXRlcmFsID0gYWRvcHRS
ZWYoKHl5dnNwWygzKSAtICg0KV0uc3RyaW5nKSk7Ci0gICAgICAgICh5eXZhbC5ub2RlVGVzdCkg
PSBuZXcgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6OlByb2Nlc3NpbmdJbnN0cnVjdGlv
bk5vZGVUZXN0LCBsaXRlcmFsLnN0cmlwV2hpdGVTcGFjZSgpKTsKKyAgICAgICAgKHl5dmFsLm5v
ZGVUZXN0KSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBh
dGg6OlN0ZXA6Ok5vZGVUZXN0OjpQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25Ob2RlVGVzdCwgbGl0ZXJh
bC5zdHJpcFdoaXRlU3BhY2UoKSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDI0Ogot
I2xpbmUgMjczICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDI3MCAiWFBhdGhH
cmFtbWFyLnkiCiAgICAgewogICAgICAgICAoeXl2YWwuZXhwcmVzc2lvblZlY3RvcikgPSBudWxs
cHRyOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAyNjoKLSNsaW5lIDI4MiAiV2ViQ29y
ZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyNzkgIlhQYXRoR3JhbW1hci55IgogICAgIHsK
LSAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3IpID0gbmV3IFZlY3RvcjxzdGQ6OnVuaXF1
ZV9wdHI8RXhwcmVzc2lvbj4+OwotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvblZlY3RvciktPmFw
cGVuZChzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgxKV0uZXhwcmVz
c2lvbikpKTsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3IpID0gbmV3IFZlY3Rvcjxz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+PjsKKyAgICAgICAgKHl5
dmFsLmV4cHJlc3Npb25WZWN0b3IpLT5hcHBlbmQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQ
YXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDEpXS5leHByZXNzaW9uKSkpOwogICAgIDt9
CiAgICAgYnJlYWs7CiAKICAgY2FzZSAyNzoKLSNsaW5lIDI4OCAiV2ViQ29yZS94bWwvWFBhdGhH
cmFtbWFyLnkiCisjbGluZSAyODUgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAgKHl5
dmFsLmV4cHJlc3Npb25WZWN0b3IpID0gKHl5dnNwWygxKSAtICgyKV0uZXhwcmVzc2lvblZlY3Rv
cik7Ci0gICAgICAgICh5eXZhbC5leHByZXNzaW9uVmVjdG9yKS0+YXBwZW5kKHN0ZDo6dW5pcXVl
X3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDIpIC0gKDIpXS5leHByZXNzaW9uKSkpOworICAgICAg
ICAoeXl2YWwuZXhwcmVzc2lvblZlY3RvciktPmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5eXZzcFsoMikgLSAoMildLmV4cHJlc3Npb24pKSk7CiAg
ICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDI4OgotI2xpbmUgMjk2ICJXZWJDb3JlL3htbC9Y
UGF0aEdyYW1tYXIueSIKKyNsaW5lIDI5MyAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAg
ICAoeXl2YWwuZXhwcmVzc2lvbikgPSAoeXl2c3BbKDIpIC0gKDMpXS5leHByZXNzaW9uKTsKICAg
ICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMjk6Ci0jbGluZSAzMDMgIldlYkNvcmUveG1sL1hQ
YXRoR3JhbW1hci55IgorI2xpbmUgMzAwICJYUGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAg
ICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVwKFN0ZXA6OkRlc2NlbmRhbnRPclNlbGZBeGlzLCBTdGVw
OjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6QW55Tm9kZVRlc3QpKTsKKyAgICAgICAgKHl5dmFs
LnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpE
ZXNjZW5kYW50T3JTZWxmQXhpcywgV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0KFdlYkNv
cmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6QW55Tm9kZVRlc3QpKTsKICAgICA7fQogICAgIGJy
ZWFrOwogCiAgIGNhc2UgMzA6Ci0jbGluZSAzMTAgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55
IgorI2xpbmUgMzA3ICJYUGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgICh5eXZhbC5zdGVw
KSA9IG5ldyBTdGVwKFN0ZXA6OlNlbGZBeGlzLCBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVz
dDo6QW55Tm9kZVRlc3QpKTsKKyAgICAgICAgKHl5dmFsLnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQ
YXRoOjpTdGVwKFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpTZWxmQXhpcywgV2ViQ29yZTo6WFBhdGg6
OlN0ZXA6Ok5vZGVUZXN0KFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6QW55Tm9kZVRl
c3QpKTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMzE6Ci0jbGluZSAzMTUgIldlYkNv
cmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMzEyICJYUGF0aEdyYW1tYXIueSIKICAgICB7
Ci0gICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVwKFN0ZXA6OlBhcmVudEF4aXMsIFN0ZXA6
Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpBbnlOb2RlVGVzdCkpOworICAgICAgICAoeXl2YWwu
c3RlcCkgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0ZXAoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6OlBh
cmVudEF4aXMsIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6
U3RlcDo6Tm9kZVRlc3Q6OkFueU5vZGVUZXN0KSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBj
YXNlIDMyOgotI2xpbmUgMzIyICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDMx
OSAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAgICBTdHJpbmcgbmFtZSA9IGFkb3B0UmVm
KCh5eXZzcFsoMSkgLSAoMSldLnN0cmluZykpOwotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikg
PSBuZXcgVmFyaWFibGVSZWZlcmVuY2UobmFtZSk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9u
KSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6VmFyaWFibGVSZWZlcmVuY2UobmFtZSk7CiAgICAgO30K
ICAgICBicmVhazsKIAogICBjYXNlIDMzOgotI2xpbmUgMzI4ICJXZWJDb3JlL3htbC9YUGF0aEdy
YW1tYXIueSIKKyNsaW5lIDMyNSAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAgICAoeXl2
YWwuZXhwcmVzc2lvbikgPSAoeXl2c3BbKDIpIC0gKDMpXS5leHByZXNzaW9uKTsKICAgICA7fQog
ICAgIGJyZWFrOwogCiAgIGNhc2UgMzQ6Ci0jbGluZSAzMzMgIldlYkNvcmUveG1sL1hQYXRoR3Jh
bW1hci55IgorI2xpbmUgMzMwICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgIFN0cmlu
ZyBsaXRlcmFsID0gYWRvcHRSZWYoKHl5dnNwWygxKSAtICgxKV0uc3RyaW5nKSk7Ci0gICAgICAg
ICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBTdHJpbmdFeHByZXNzaW9uKFdURk1vdmUobGl0ZXJh
bCkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0
cmluZ0V4cHJlc3Npb24oV1RGTW92ZShsaXRlcmFsKSk7CiAgICAgO30KICAgICBicmVhazsKIAog
ICBjYXNlIDM1OgotI2xpbmUgMzM5ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5l
IDMzNiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAgICBTdHJpbmcgbnVtZXJhbCA9IGFk
b3B0UmVmKCh5eXZzcFsoMSkgLSAoMSldLnN0cmluZykpOwotICAgICAgICAoeXl2YWwuZXhwcmVz
c2lvbikgPSBuZXcgTnVtYmVyKG51bWVyYWwudG9Eb3VibGUoKSk7CisgICAgICAgICh5eXZhbC5l
eHByZXNzaW9uKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TnVtYmVyKG51bWVyYWwudG9Eb3VibGUo
KSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDM3OgotI2xpbmUgMzQ5ICJXZWJDb3Jl
L3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDM0NiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewog
ICAgICAgICBTdHJpbmcgbmFtZSA9IGFkb3B0UmVmKCh5eXZzcFsoMSkgLSAoMyldLnN0cmluZykp
OwotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBYUGF0aDo6RnVuY3Rpb246OmNyZWF0ZShu
YW1lKS5yZWxlYXNlKCk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IFdlYkNvcmU6OlhQ
YXRoOjpGdW5jdGlvbjo6Y3JlYXRlKG5hbWUpLnJlbGVhc2UoKTsKICAgICAgICAgaWYgKCEoeXl2
YWwuZXhwcmVzc2lvbikpCiAgICAgICAgICAgICBZWUFCT1JUOwogICAgIDt9CiAgICAgYnJlYWs7
CiAKICAgY2FzZSAzODoKLSNsaW5lIDM1NyAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisj
bGluZSAzNTQgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAgU3RyaW5nIG5hbWUgPSBh
ZG9wdFJlZigoeXl2c3BbKDEpIC0gKDQpXS5zdHJpbmcpKTsKLSAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+PiBhcmd1bWVudExpc3QoKHl5
dnNwWygzKSAtICg0KV0uZXhwcmVzc2lvblZlY3RvcikpOwotICAgICAgICAoeXl2YWwuZXhwcmVz
c2lvbikgPSBYUGF0aDo6RnVuY3Rpb246OmNyZWF0ZShuYW1lLCBXVEZNb3ZlKCphcmd1bWVudExp
c3QpKS5yZWxlYXNlKCk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPj4+IGFyZ3VtZW50TGlzdCgoeXl2c3Bb
KDMpIC0gKDQpXS5leHByZXNzaW9uVmVjdG9yKSk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9u
KSA9IFdlYkNvcmU6OlhQYXRoOjpGdW5jdGlvbjo6Y3JlYXRlKG5hbWUsIFdURk1vdmUoKmFyZ3Vt
ZW50TGlzdCkpLnJlbGVhc2UoKTsKICAgICAgICAgaWYgKCEoeXl2YWwuZXhwcmVzc2lvbikpCiAg
ICAgICAgICAgICBZWUFCT1JUOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAzOToKLSNs
aW5lIDM2OCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAzNjUgIlhQYXRoR3Jh
bW1hci55IgogICAgIHsKLSAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3IpID0gbmV3IFZl
Y3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+OwotICAgICAgICAoeXl2YWwuZXhwcmVz
c2lvblZlY3RvciktPmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygx
KSAtICgxKV0uZXhwcmVzc2lvbikpKTsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3Ip
ID0gbmV3IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+
PjsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3IpLT5hcHBlbmQoc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDEpXS5leHByZXNz
aW9uKSkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSA0MDoKLSNsaW5lIDM3NCAiV2Vi
Q29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAzNzEgIlhQYXRoR3JhbW1hci55IgogICAg
IHsKICAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3IpID0gKHl5dnNwWygxKSAtICgzKV0u
ZXhwcmVzc2lvblZlY3Rvcik7Ci0gICAgICAgICh5eXZhbC5leHByZXNzaW9uVmVjdG9yKS0+YXBw
ZW5kKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNz
aW9uKSkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvblZlY3RvciktPmFwcGVuZChzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5eXZzcFsoMykgLSAoMyldLmV4
cHJlc3Npb24pKSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDQzOgotI2xpbmUgMzg4
ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDM4NSAiWFBhdGhHcmFtbWFyLnki
CiAgICAgewotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgVW5pb24oc3RkOjp1bmlx
dWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMSkgLSAoMyldLmV4cHJlc3Npb24pKSwgc3RkOjp1
bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMykgLSAoMyldLmV4cHJlc3Npb24pKSk7Cisg
ICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6VW5pb24oc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMp
XS5leHByZXNzaW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lv
bj4oKHl5dnNwWygzKSAtICgzKV0uZXhwcmVzc2lvbikpKTsKICAgICA7fQogICAgIGJyZWFrOwog
CiAgIGNhc2UgNDQ6Ci0jbGluZSAzOTUgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xp
bmUgMzkyICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgICh5eXZhbC5leHByZXNzaW9u
KSA9ICh5eXZzcFsoMSkgLSAoMSldLmxvY2F0aW9uUGF0aCk7CiAgICAgO30KICAgICBicmVhazsK
IAogICBjYXNlIDQ2OgotI2xpbmUgNDAyICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNs
aW5lIDM5OSAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAgICAoeXl2c3BbKDMpIC0gKDMp
XS5sb2NhdGlvblBhdGgpLT5zZXRBYnNvbHV0ZSgpOwotICAgICAgICAoeXl2YWwuZXhwcmVzc2lv
bikgPSBuZXcgWFBhdGg6OlBhdGgoc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFso
MSkgLSAoMyldLmV4cHJlc3Npb24pKSwgc3RkOjp1bmlxdWVfcHRyPExvY2F0aW9uUGF0aD4oKHl5
dnNwWygzKSAtICgzKV0ubG9jYXRpb25QYXRoKSkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lv
bikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlBhdGgoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQ
YXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMpXS5leHByZXNzaW9uKSksIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6TG9jYXRpb25QYXRoPigoeXl2c3BbKDMpIC0gKDMpXS5s
b2NhdGlvblBhdGgpKSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDQ3OgotI2xpbmUg
NDA4ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDQwNSAiWFBhdGhHcmFtbWFy
LnkiCiAgICAgewotICAgICAgICAoeXl2c3BbKDMpIC0gKDMpXS5sb2NhdGlvblBhdGgpLT5wcmVw
ZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8U3RlcD4oKHl5dnNwWygyKSAtICgzKV0uc3RlcCkpKTsK
KyAgICAgICAgKHl5dnNwWygzKSAtICgzKV0ubG9jYXRpb25QYXRoKS0+cHJlcGVuZFN0ZXAoc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpTdGVwPigoeXl2c3BbKDIpIC0gKDMpXS5zdGVw
KSkpOwogICAgICAgICAoeXl2c3BbKDMpIC0gKDMpXS5sb2NhdGlvblBhdGgpLT5zZXRBYnNvbHV0
ZSgpOwotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgWFBhdGg6OlBhdGgoc3RkOjp1
bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMSkgLSAoMyldLmV4cHJlc3Npb24pKSwgc3Rk
Ojp1bmlxdWVfcHRyPExvY2F0aW9uUGF0aD4oKHl5dnNwWygzKSAtICgzKV0ubG9jYXRpb25QYXRo
KSkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlBh
dGgoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEp
IC0gKDMpXS5leHByZXNzaW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6TG9j
YXRpb25QYXRoPigoeXl2c3BbKDMpIC0gKDMpXS5sb2NhdGlvblBhdGgpKSk7CiAgICAgO30KICAg
ICBicmVhazsKIAogICBjYXNlIDQ5OgotI2xpbmUgNDE5ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1t
YXIueSIKKyNsaW5lIDQxNiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPj4+IHByZWRpY2F0ZUxp
c3QoKHl5dnNwWygyKSAtICgyKV0uZXhwcmVzc2lvblZlY3RvcikpOwotICAgICAgICAoeXl2YWwu
ZXhwcmVzc2lvbikgPSBuZXcgRmlsdGVyKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2
c3BbKDEpIC0gKDIpXS5leHByZXNzaW9uKSksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKKyAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBh
dGg6OkV4cHJlc3Npb24+Pj4gcHJlZGljYXRlTGlzdCgoeXl2c3BbKDIpIC0gKDIpXS5leHByZXNz
aW9uVmVjdG9yKSk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBXZWJDb3JlOjpY
UGF0aDo6RmlsdGVyKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4o
KHl5dnNwWygxKSAtICgyKV0uZXhwcmVzc2lvbikpLCBXVEZNb3ZlKCpwcmVkaWNhdGVMaXN0KSk7
CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDUxOgotI2xpbmUgNDI5ICJXZWJDb3JlL3ht
bC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDQyNiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAg
ICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgTG9naWNhbE9wKExvZ2ljYWxPcDo6T1BfT3Is
IHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMpXS5leHByZXNzaW9u
KSksIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNz
aW9uKSkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6
OkxvZ2ljYWxPcChXZWJDb3JlOjpYUGF0aDo6TG9naWNhbE9wOjpPUF9Pciwgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMpXS5leHByZXNz
aW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNw
WygzKSAtICgzKV0uZXhwcmVzc2lvbikpKTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2Ug
NTM6Ci0jbGluZSA0MzggIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgNDM1ICJY
UGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBM
b2dpY2FsT3AoTG9naWNhbE9wOjpPUF9BbmQsIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigo
eXl2c3BbKDEpIC0gKDMpXS5leHByZXNzaW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9u
PigoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNzaW9uKSkpOworICAgICAgICAoeXl2YWwuZXhwcmVz
c2lvbikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OkxvZ2ljYWxPcChXZWJDb3JlOjpYUGF0aDo6TG9n
aWNhbE9wOjpPUF9BbmQsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lv
bj4oKHl5dnNwWygxKSAtICgzKV0uZXhwcmVzc2lvbikpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5eXZzcFsoMykgLSAoMyldLmV4cHJlc3Npb24pKSk7CiAg
ICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDU1OgotI2xpbmUgNDQ3ICJXZWJDb3JlL3htbC9Y
UGF0aEdyYW1tYXIueSIKKyNsaW5lIDQ0NCAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAgICAg
ICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgRXFUZXN0T3AoKHl5dnNwWygyKSAtICgzKV0uZXF1
YWxpdHlUZXN0T3Bjb2RlKSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMSkg
LSAoMyldLmV4cHJlc3Npb24pKSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFso
MykgLSAoMyldLmV4cHJlc3Npb24pKSk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5l
dyBXZWJDb3JlOjpYUGF0aDo6RXFUZXN0T3AoKHl5dnNwWygyKSAtICgzKV0uZXF1YWxpdHlUZXN0
T3Bjb2RlKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigoeXl2
c3BbKDEpIC0gKDMpXS5leHByZXNzaW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0
aDo6RXhwcmVzc2lvbj4oKHl5dnNwWygzKSAtICgzKV0uZXhwcmVzc2lvbikpKTsKICAgICA7fQog
ICAgIGJyZWFrOwogCiAgIGNhc2UgNTc6Ci0jbGluZSA0NTYgIldlYkNvcmUveG1sL1hQYXRoR3Jh
bW1hci55IgorI2xpbmUgNDUzICJYUGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgICh5eXZh
bC5leHByZXNzaW9uKSA9IG5ldyBFcVRlc3RPcCgoeXl2c3BbKDIpIC0gKDMpXS5lcXVhbGl0eVRl
c3RPcGNvZGUpLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgzKV0u
ZXhwcmVzc2lvbikpLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygzKSAtICgz
KV0uZXhwcmVzc2lvbikpKTsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb24pID0gbmV3IFdlYkNv
cmU6OlhQYXRoOjpFcVRlc3RPcCgoeXl2c3BbKDIpIC0gKDMpXS5lcXVhbGl0eVRlc3RPcGNvZGUp
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5eXZzcFsoMSkg
LSAoMyldLmV4cHJlc3Npb24pKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHBy
ZXNzaW9uPigoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNzaW9uKSkpOwogICAgIDt9CiAgICAgYnJl
YWs7CiAKICAgY2FzZSA1OToKLSNsaW5lIDQ2NSAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnki
CisjbGluZSA0NjIgIlhQYXRoR3JhbW1hci55IgogICAgIHsKLSAgICAgICAgKHl5dmFsLmV4cHJl
c3Npb24pID0gbmV3IE51bWVyaWNPcChOdW1lcmljT3A6Ok9QX0FkZCwgc3RkOjp1bmlxdWVfcHRy
PEV4cHJlc3Npb24+KCh5eXZzcFsoMSkgLSAoMyldLmV4cHJlc3Npb24pKSwgc3RkOjp1bmlxdWVf
cHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMykgLSAoMyldLmV4cHJlc3Npb24pKSk7CisgICAgICAg
ICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TnVtZXJpY09wKFdlYkNv
cmU6OlhQYXRoOjpOdW1lcmljT3A6Ok9QX0FkZCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQ
YXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMpXS5leHByZXNzaW9uKSksIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNwWygzKSAtICgzKV0uZXhw
cmVzc2lvbikpKTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgNjA6Ci0jbGluZSA0NzAg
IldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgNDY3ICJYUGF0aEdyYW1tYXIueSIK
ICAgICB7Ci0gICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBOdW1lcmljT3AoTnVtZXJp
Y09wOjpPUF9TdWIsIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMp
XS5leHByZXNzaW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDMpIC0g
KDMpXS5leHByZXNzaW9uKSkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgV2Vi
Q29yZTo6WFBhdGg6Ok51bWVyaWNPcChXZWJDb3JlOjpYUGF0aDo6TnVtZXJpY09wOjpPUF9TdWIs
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAt
ICgzKV0uZXhwcmVzc2lvbikpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJl
c3Npb24+KCh5eXZzcFsoMykgLSAoMyldLmV4cHJlc3Npb24pKSk7CiAgICAgO30KICAgICBicmVh
azsKIAogICBjYXNlIDYyOgotI2xpbmUgNDc5ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIK
KyNsaW5lIDQ3NiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAgICAgICAoeXl2YWwuZXhwcmVz
c2lvbikgPSBuZXcgTnVtZXJpY09wKCh5eXZzcFsoMikgLSAoMyldLm51bWVyaWNPcGNvZGUpLCBz
dGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgzKV0uZXhwcmVzc2lvbikp
LCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygzKSAtICgzKV0uZXhwcmVzc2lv
bikpKTsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb24pID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpO
dW1lcmljT3AoKHl5dnNwWygyKSAtICgzKV0ubnVtZXJpY09wY29kZSksIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgzKV0uZXhwcmVzc2lv
bikpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5eXZzcFso
MykgLSAoMyldLmV4cHJlc3Npb24pKSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDY0
OgotI2xpbmUgNDg4ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDQ4NSAiWFBh
dGhHcmFtbWFyLnkiCiAgICAgewotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgTmVn
YXRpdmUoc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMikgLSAoMildLmV4cHJl
c3Npb24pKSk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBXZWJDb3JlOjpYUGF0
aDo6TmVnYXRpdmUoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigo
eXl2c3BbKDIpIC0gKDIpXS5leHByZXNzaW9uKSkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKIAog
LyogTGluZSAxMjY3IG9mIHlhY2MuYy4gICovCi0jbGluZSAyMDQ5ICIuL1hQYXRoR3JhbW1hci5j
cHAiCisjbGluZSAyMDQ2ICJYUGF0aEdyYW1tYXIuY3BwIgogICAgICAgZGVmYXVsdDogYnJlYWs7
CiAgICAgfQogICBZWV9TWU1CT0xfUFJJTlQgKCItPiAkJCA9IiwgeXlyMVt5eW5dLCAmeXl2YWws
ICZ5eWxvYyk7CkBAIC0yMDg3LDM1ICsyMDg1LDM1IEBAIHl5ZXJybGFiOgogICAgICAgeXllcnJv
ciAocGFyc2VyLCBZWV8oInN5bnRheCBlcnJvciIpKTsKICNlbHNlCiAgICAgICB7Ci0gICAgWVlT
SVpFX1QgeXlzaXplID0geXlzeW50YXhfZXJyb3IgKDAsIHl5c3RhdGUsIHl5Y2hhcik7Ci0gICAg
aWYgKHl5bXNnX2FsbG9jIDwgeXlzaXplICYmIHl5bXNnX2FsbG9jIDwgWVlTVEFDS19BTExPQ19N
QVhJTVVNKQotICAgICAgewotICAgICAgICBZWVNJWkVfVCB5eWFsbG9jID0gMiAqIHl5c2l6ZTsK
LSAgICAgICAgaWYgKCEgKHl5c2l6ZSA8PSB5eWFsbG9jICYmIHl5YWxsb2MgPD0gWVlTVEFDS19B
TExPQ19NQVhJTVVNKSkKLSAgICAgICAgICB5eWFsbG9jID0gWVlTVEFDS19BTExPQ19NQVhJTVVN
OwotICAgICAgICBpZiAoeXltc2cgIT0geXltc2didWYpCi0gICAgICAgICAgWVlTVEFDS19GUkVF
ICh5eW1zZyk7Ci0gICAgICAgIHl5bXNnID0gKGNoYXIgKikgWVlTVEFDS19BTExPQyAoeXlhbGxv
Yyk7Ci0gICAgICAgIGlmICh5eW1zZykKLSAgICAgICAgICB5eW1zZ19hbGxvYyA9IHl5YWxsb2M7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICB7Ci0gICAgICAgIHl5bXNnID0geXltc2didWY7Ci0g
ICAgICAgIHl5bXNnX2FsbG9jID0gc2l6ZW9mIHl5bXNnYnVmOwotICAgICAgICAgIH0KLSAgICAg
IH0KLQotICAgIGlmICgwIDwgeXlzaXplICYmIHl5c2l6ZSA8PSB5eW1zZ19hbGxvYykKLSAgICAg
IHsKLSAgICAgICAgKHZvaWQpIHl5c3ludGF4X2Vycm9yICh5eW1zZywgeXlzdGF0ZSwgeXljaGFy
KTsKLSAgICAgICAgeXllcnJvciAocGFyc2VyLCB5eW1zZyk7Ci0gICAgICB9Ci0gICAgZWxzZQot
ICAgICAgewotICAgICAgICB5eWVycm9yIChwYXJzZXIsIFlZXygic3ludGF4IGVycm9yIikpOwot
ICAgICAgICBpZiAoeXlzaXplICE9IDApCi0gICAgICAgICAgZ290byB5eWV4aGF1c3RlZGxhYjsK
LSAgICAgIH0KKwlZWVNJWkVfVCB5eXNpemUgPSB5eXN5bnRheF9lcnJvciAoMCwgeXlzdGF0ZSwg
eXljaGFyKTsKKwlpZiAoeXltc2dfYWxsb2MgPCB5eXNpemUgJiYgeXltc2dfYWxsb2MgPCBZWVNU
QUNLX0FMTE9DX01BWElNVU0pCisJICB7CisJICAgIFlZU0laRV9UIHl5YWxsb2MgPSAyICogeXlz
aXplOworCSAgICBpZiAoISAoeXlzaXplIDw9IHl5YWxsb2MgJiYgeXlhbGxvYyA8PSBZWVNUQUNL
X0FMTE9DX01BWElNVU0pKQorCSAgICAgIHl5YWxsb2MgPSBZWVNUQUNLX0FMTE9DX01BWElNVU07
CisJICAgIGlmICh5eW1zZyAhPSB5eW1zZ2J1ZikKKwkgICAgICBZWVNUQUNLX0ZSRUUgKHl5bXNn
KTsKKwkgICAgeXltc2cgPSAoY2hhciAqKSBZWVNUQUNLX0FMTE9DICh5eWFsbG9jKTsKKwkgICAg
aWYgKHl5bXNnKQorCSAgICAgIHl5bXNnX2FsbG9jID0geXlhbGxvYzsKKwkgICAgZWxzZQorCSAg
ICAgIHsKKwkJeXltc2cgPSB5eW1zZ2J1ZjsKKwkJeXltc2dfYWxsb2MgPSBzaXplb2YgeXltc2di
dWY7CisJICAgICAgfQorCSAgfQorCisJaWYgKDAgPCB5eXNpemUgJiYgeXlzaXplIDw9IHl5bXNn
X2FsbG9jKQorCSAgeworCSAgICAodm9pZCkgeXlzeW50YXhfZXJyb3IgKHl5bXNnLCB5eXN0YXRl
LCB5eWNoYXIpOworCSAgICB5eWVycm9yIChwYXJzZXIsIHl5bXNnKTsKKwkgIH0KKwllbHNlCisJ
ICB7CisJICAgIHl5ZXJyb3IgKHBhcnNlciwgWVlfKCJzeW50YXggZXJyb3IiKSk7CisJICAgIGlm
ICh5eXNpemUgIT0gMCkKKwkgICAgICBnb3RvIHl5ZXhoYXVzdGVkbGFiOworCSAgfQogICAgICAg
fQogI2VuZGlmCiAgICAgfQpAQCAtMjEyNSwyMCArMjEyMywyMCBAQCB5eWVycmxhYjoKICAgaWYg
KHl5ZXJyc3RhdHVzID09IDMpCiAgICAgewogICAgICAgLyogSWYganVzdCB0cmllZCBhbmQgZmFp
bGVkIHRvIHJldXNlIGxvb2stYWhlYWQgdG9rZW4gYWZ0ZXIgYW4KLSAgICAgZXJyb3IsIGRpc2Nh
cmQgaXQuICAqLworCSBlcnJvciwgZGlzY2FyZCBpdC4gICovCiAKICAgICAgIGlmICh5eWNoYXIg
PD0gWVlFT0YpCi0gICAgewotICAgICAgLyogUmV0dXJuIGZhaWx1cmUgaWYgYXQgZW5kIG9mIGlu
cHV0LiAgKi8KLSAgICAgIGlmICh5eWNoYXIgPT0gWVlFT0YpCi0gICAgICAgIFlZQUJPUlQ7Ci0g
ICAgfQorCXsKKwkgIC8qIFJldHVybiBmYWlsdXJlIGlmIGF0IGVuZCBvZiBpbnB1dC4gICovCisJ
ICBpZiAoeXljaGFyID09IFlZRU9GKQorCSAgICBZWUFCT1JUOworCX0KICAgICAgIGVsc2UKLSAg
ICB7Ci0gICAgICB5eWRlc3RydWN0ICgiRXJyb3I6IGRpc2NhcmRpbmciLAotICAgICAgICAgICAg
ICB5eXRva2VuLCAmeXlsdmFsLCBwYXJzZXIpOwotICAgICAgeXljaGFyID0gWVlFTVBUWTsKLSAg
ICB9CisJeworCSAgeXlkZXN0cnVjdCAoIkVycm9yOiBkaXNjYXJkaW5nIiwKKwkJICAgICAgeXl0
b2tlbiwgJnl5bHZhbCwgcGFyc2VyKTsKKwkgIHl5Y2hhciA9IFlZRU1QVFk7CisJfQogICAgIH0K
IAogICAvKiBFbHNlIHdpbGwgdHJ5IHRvIHJldXNlIGxvb2stYWhlYWQgdG9rZW4gYWZ0ZXIgc2hp
ZnRpbmcgdGhlIGVycm9yCkBAIC0yMTU0LDEwICsyMTUyLDggQEAgeXllcnJvcmxhYjoKICAgLyog
UGFjaWZ5IGNvbXBpbGVycyBsaWtlIEdDQyB3aGVuIHRoZSB1c2VyIGNvZGUgbmV2ZXIgaW52b2tl
cwogICAgICBZWUVSUk9SIGFuZCB0aGUgbGFiZWwgeXllcnJvcmxhYiB0aGVyZWZvcmUgbmV2ZXIg
YXBwZWFycyBpbiB1c2VyCiAgICAgIGNvZGUuICAqLwotICBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
QkVHSU4oInVucmVhY2hhYmxlLWNvZGUiKQogICBpZiAoLypDT05TVENPTkQqLyAwKQogICAgICBn
b3RvIHl5ZXJyb3JsYWI7Ci0gIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKIAogICAvKiBEbyBu
b3QgcmVjbGFpbSB0aGUgc3ltYm9scyBvZiB0aGUgcnVsZSB3aGljaCBhY3Rpb24gdHJpZ2dlcmVk
CiAgICAgIHRoaXMgWVlFUlJPUi4gICovCkBAIC0yMTcyLDI5ICsyMTY4LDI5IEBAIHl5ZXJyb3Js
YWI6CiB8IHl5ZXJybGFiMSAtLSBjb21tb24gY29kZSBmb3IgYm90aCBzeW50YXggZXJyb3IgYW5k
IFlZRVJST1IuICB8CiBgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSovCiB5eWVycmxhYjE6Ci0gIHl5ZXJyc3RhdHVzID0gMzsgICAg
LyogRWFjaCByZWFsIHRva2VuIHNoaWZ0ZWQgZGVjcmVtZW50cyB0aGlzLiAgKi8KKyAgeXllcnJz
dGF0dXMgPSAzOwkvKiBFYWNoIHJlYWwgdG9rZW4gc2hpZnRlZCBkZWNyZW1lbnRzIHRoaXMuICAq
LwogCiAgIGZvciAoOzspCiAgICAgewogICAgICAgeXluID0geXlwYWN0W3l5c3RhdGVdOwogICAg
ICAgaWYgKHl5biAhPSBZWVBBQ1RfTklORikKLSAgICB7Ci0gICAgICB5eW4gKz0gWVlURVJST1I7
Ci0gICAgICBpZiAoMCA8PSB5eW4gJiYgeXluIDw9IFlZTEFTVCAmJiB5eWNoZWNrW3l5bl0gPT0g
WVlURVJST1IpCi0gICAgICAgIHsKLSAgICAgICAgICB5eW4gPSB5eXRhYmxlW3l5bl07Ci0gICAg
ICAgICAgaWYgKDAgPCB5eW4pCi0gICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQorCXsK
KwkgIHl5biArPSBZWVRFUlJPUjsKKwkgIGlmICgwIDw9IHl5biAmJiB5eW4gPD0gWVlMQVNUICYm
IHl5Y2hlY2tbeXluXSA9PSBZWVRFUlJPUikKKwkgICAgeworCSAgICAgIHl5biA9IHl5dGFibGVb
eXluXTsKKwkgICAgICBpZiAoMCA8IHl5bikKKwkJYnJlYWs7CisJICAgIH0KKwl9CiAKICAgICAg
IC8qIFBvcCB0aGUgY3VycmVudCBzdGF0ZSBiZWNhdXNlIGl0IGNhbm5vdCBoYW5kbGUgdGhlIGVy
cm9yIHRva2VuLiAgKi8KICAgICAgIGlmICh5eXNzcCA9PSB5eXNzKQotICAgIFlZQUJPUlQ7CisJ
WVlBQk9SVDsKIAogCiAgICAgICB5eWRlc3RydWN0ICgiRXJyb3I6IHBvcHBpbmciLAotICAgICAg
ICAgIHl5c3Rvc1t5eXN0YXRlXSwgeXl2c3AsIHBhcnNlcik7CisJCSAgeXlzdG9zW3l5c3RhdGVd
LCB5eXZzcCwgcGFyc2VyKTsKICAgICAgIFlZUE9QU1RBQ0sgKDEpOwogICAgICAgeXlzdGF0ZSA9
ICp5eXNzcDsKICAgICAgIFlZX1NUQUNLX1BSSU5UICh5eXNzLCB5eXNzcCk7CkBAIC0yMjQwLDcg
KzIyMzYsNyBAQCB5eWV4aGF1c3RlZGxhYjoKIHl5cmV0dXJuOgogICBpZiAoeXljaGFyICE9IFlZ
RU9GICYmIHl5Y2hhciAhPSBZWUVNUFRZKQogICAgICB5eWRlc3RydWN0ICgiQ2xlYW51cDogZGlz
Y2FyZGluZyBsb29rYWhlYWQiLAotICAgICAgICAgeXl0b2tlbiwgJnl5bHZhbCwgcGFyc2VyKTsK
KwkJIHl5dG9rZW4sICZ5eWx2YWwsIHBhcnNlcik7CiAgIC8qIERvIG5vdCByZWNsYWltIHRoZSBz
eW1ib2xzIG9mIHRoZSBydWxlIHdoaWNoIGFjdGlvbiB0cmlnZ2VyZWQKICAgICAgdGhpcyBZWUFC
T1JUIG9yIFlZQUNDRVBULiAgKi8KICAgWVlQT1BTVEFDSyAoeXlsZW4pOwpAQCAtMjI0OCw3ICsy
MjQ0LDcgQEAgeXlyZXR1cm46CiAgIHdoaWxlICh5eXNzcCAhPSB5eXNzKQogICAgIHsKICAgICAg
IHl5ZGVzdHJ1Y3QgKCJDbGVhbnVwOiBwb3BwaW5nIiwKLSAgICAgICAgICB5eXN0b3NbKnl5c3Nw
XSwgeXl2c3AsIHBhcnNlcik7CisJCSAgeXlzdG9zWyp5eXNzcF0sIHl5dnNwLCBwYXJzZXIpOwog
ICAgICAgWVlQT1BTVEFDSyAoMSk7CiAgICAgfQogI2lmbmRlZiB5eW92ZXJmbG93CkBAIC0yMjY0
LDYgKzIyNjAsNiBAQCB5eXJldHVybjoKIH0KIAogCi0jbGluZSA0OTMgIldlYkNvcmUveG1sL1hQ
YXRoR3JhbW1hci55IgorI2xpbmUgNDkwICJYUGF0aEdyYW1tYXIueSIKIAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkgYi9Tb3VyY2UvV2ViQ29yZS94bWwv
WFBhdGhHcmFtbWFyLnkKaW5kZXggNzc2OThmYTc2NGY3YTE1YTQ1YmM1YzBlNWQyZDY3NzUxYjFi
ZTcwZi4uYjBlOGM3MjgwY2MzM2IyMWU3NTFjYzM0NjI3OTZjMGJjYWIyNzQwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9YUGF0aEdyYW1tYXIueQpAQCAtNTIsNyArNTIsNyBAQAogCiAlcHVyZS1wYXJzZXIKICVs
ZXgtcGFyYW0geyBwYXJzZXIgfQotJXBhcnNlLXBhcmFtIHsgUGFyc2VyJiBwYXJzZXIgfQorJXBh
cnNlLXBhcmFtIHsgV2ViQ29yZTo6WFBhdGg6OlBhcnNlciYgcGFyc2VyIH0KIAogJXVuaW9uIHsg
CiAgICAgV2ViQ29yZTo6WFBhdGg6Ok51bWVyaWNPcDo6T3Bjb2RlIG51bWVyaWNPcGNvZGU7CkBA
IC0xMDAsOCArMTAwLDggQEAKIAogJXsKIAotc3RhdGljIGludCB4cGF0aHl5bGV4KFlZU1RZUEUq
IHl5bHZhbCwgUGFyc2VyJiBwYXJzZXIpIHsgcmV0dXJuIHBhcnNlci5sZXgoKnl5bHZhbCk7IH0K
LXN0YXRpYyB2b2lkIHhwYXRoeXllcnJvcihQYXJzZXImLCBjb25zdCBjaGFyKikgeyB9CitzdGF0
aWMgaW50IHhwYXRoeXlsZXgoWVlTVFlQRSogeXlsdmFsLCBXZWJDb3JlOjpYUGF0aDo6UGFyc2Vy
JiBwYXJzZXIpIHsgcmV0dXJuIHBhcnNlci5sZXgoKnl5bHZhbCk7IH0KK3N0YXRpYyB2b2lkIHhw
YXRoeXllcnJvcihXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiwgY29uc3QgY2hhciopIHsgfQogCiAl
fQogCkBAIC0xMTAsNyArMTEwLDcgQEAgc3RhdGljIHZvaWQgeHBhdGh5eWVycm9yKFBhcnNlciYs
IGNvbnN0IGNoYXIqKSB7IH0KIFRvcDoKICAgICBFeHByCiAgICAgewotICAgICAgICBwYXJzZXIu
c2V0UGFyc2VSZXN1bHQoc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQxKSk7CisgICAgICAg
IHBhcnNlci5zZXRQYXJzZVJlc3VsdChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4
cHJlc3Npb24+KCQxKSk7CiAgICAgfQogICAgIDsKIApAQCAtMTMxLDcgKzEzMSw3IEBAIExvY2F0
aW9uUGF0aDoKIEFic29sdXRlTG9jYXRpb25QYXRoOgogICAgICcvJwogICAgIHsKLSAgICAgICAg
JCQgPSBuZXcgTG9jYXRpb25QYXRoOworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6
TG9jYXRpb25QYXRoOwogICAgIH0KICAgICB8CiAgICAgJy8nIFJlbGF0aXZlTG9jYXRpb25QYXRo
CkBAIC0xNDIsNDYgKzE0Miw0NiBAQCBBYnNvbHV0ZUxvY2F0aW9uUGF0aDoKICAgICBEZXNjZW5k
YW50T3JTZWxmIFJlbGF0aXZlTG9jYXRpb25QYXRoCiAgICAgewogICAgICAgICAkJCA9ICQyOwot
ICAgICAgICAkJC0+cHJlcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFN0ZXA+KCQxKSk7CisgICAg
ICAgICQkLT5wcmVwZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA+
KCQxKSk7CiAgICAgfQogICAgIDsKIAogUmVsYXRpdmVMb2NhdGlvblBhdGg6CiAgICAgU3RlcAog
ICAgIHsKLSAgICAgICAgJCQgPSBuZXcgTG9jYXRpb25QYXRoOwotICAgICAgICAkJC0+YXBwZW5k
U3RlcChzdGQ6OnVuaXF1ZV9wdHI8U3RlcD4oJDEpKTsKKyAgICAgICAgJCQgPSBuZXcgV2ViQ29y
ZTo6WFBhdGg6OkxvY2F0aW9uUGF0aDsKKyAgICAgICAgJCQtPmFwcGVuZFN0ZXAoc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpTdGVwPigkMSkpOwogICAgIH0KICAgICB8CiAgICAgUmVs
YXRpdmVMb2NhdGlvblBhdGggJy8nIFN0ZXAKICAgICB7CiAgICAgICAgICQkID0gJDE7Ci0gICAg
ICAgICQkLT5hcHBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0cjxTdGVwPigkMykpOworICAgICAgICAk
JC0+YXBwZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA+KCQzKSk7
CiAgICAgfQogICAgIHwKICAgICBSZWxhdGl2ZUxvY2F0aW9uUGF0aCBEZXNjZW5kYW50T3JTZWxm
IFN0ZXAKICAgICB7CiAgICAgICAgICQkID0gJDE7Ci0gICAgICAgICQkLT5hcHBlbmRTdGVwKHN0
ZDo6dW5pcXVlX3B0cjxTdGVwPigkMikpOwotICAgICAgICAkJC0+YXBwZW5kU3RlcChzdGQ6OnVu
aXF1ZV9wdHI8U3RlcD4oJDMpKTsKKyAgICAgICAgJCQtPmFwcGVuZFN0ZXAoc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlhQYXRoOjpTdGVwPigkMikpOworICAgICAgICAkJC0+YXBwZW5kU3RlcChz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA+KCQzKSk7CiAgICAgfQogICAgIDsK
IAogU3RlcDoKICAgICBOb2RlVGVzdCBPcHRpb25hbFByZWRpY2F0ZUxpc3QKICAgICB7Ci0gICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGVwOjpOb2RlVGVzdD4gbm9kZVRlc3QoJDEpOwotICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPj4+IHBy
ZWRpY2F0ZUxpc3QoJDIpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6
OlN0ZXA6Ok5vZGVUZXN0PiBub2RlVGVzdCgkMSk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxW
ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPj4+IHByZWRp
Y2F0ZUxpc3QoJDIpOwogICAgICAgICBpZiAocHJlZGljYXRlTGlzdCkKLSAgICAgICAgICAgICQk
ID0gbmV3IFN0ZXAoU3RlcDo6Q2hpbGRBeGlzLCBXVEZNb3ZlKCpub2RlVGVzdCksIFdURk1vdmUo
KnByZWRpY2F0ZUxpc3QpKTsKKyAgICAgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpT
dGVwKFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpDaGlsZEF4aXMsIFdURk1vdmUoKm5vZGVUZXN0KSwg
V1RGTW92ZSgqcHJlZGljYXRlTGlzdCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICAkJCA9
IG5ldyBTdGVwKFN0ZXA6OkNoaWxkQXhpcywgV1RGTW92ZSgqbm9kZVRlc3QpKTsKKyAgICAgICAg
ICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpD
aGlsZEF4aXMsIFdURk1vdmUoKm5vZGVUZXN0KSk7CiAgICAgfQogICAgIHwKICAgICBOQU1FVEVT
VCBPcHRpb25hbFByZWRpY2F0ZUxpc3QKICAgICB7CiAgICAgICAgIFN0cmluZyBuYW1ldGVzdCA9
IGFkb3B0UmVmKCQxKTsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1
ZV9wdHI8RXhwcmVzc2lvbj4+PiBwcmVkaWNhdGVMaXN0KCQyKTsKKyAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+
Pj4gcHJlZGljYXRlTGlzdCgkMik7CiAKICAgICAgICAgU3RyaW5nIGxvY2FsTmFtZTsKICAgICAg
ICAgU3RyaW5nIG5hbWVzcGFjZVVSSTsKQEAgLTE5MSwyNiArMTkxLDI2IEBAIFN0ZXA6CiAgICAg
ICAgIH0KIAogICAgICAgICBpZiAocHJlZGljYXRlTGlzdCkKLSAgICAgICAgICAgICQkID0gbmV3
IFN0ZXAoU3RlcDo6Q2hpbGRBeGlzLCBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6TmFt
ZVRlc3QsIGxvY2FsTmFtZSwgbmFtZXNwYWNlVVJJKSwgV1RGTW92ZSgqcHJlZGljYXRlTGlzdCkp
OworICAgICAgICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0ZXAoV2ViQ29yZTo6WFBh
dGg6OlN0ZXA6OkNoaWxkQXhpcywgV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0KFdlYkNv
cmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6TmFtZVRlc3QsIGxvY2FsTmFtZSwgbmFtZXNwYWNl
VVJJKSwgV1RGTW92ZSgqcHJlZGljYXRlTGlzdCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAkJCA9IG5ldyBTdGVwKFN0ZXA6OkNoaWxkQXhpcywgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9k
ZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSkpOworICAgICAgICAgICAg
JCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0ZXAoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6OkNoaWxk
QXhpcywgV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0KFdlYkNvcmU6OlhQYXRoOjpTdGVw
OjpOb2RlVGVzdDo6TmFtZVRlc3QsIGxvY2FsTmFtZSwgbmFtZXNwYWNlVVJJKSk7CiAgICAgfQog
ICAgIHwKICAgICBBeGlzU3BlY2lmaWVyIE5vZGVUZXN0IE9wdGlvbmFsUHJlZGljYXRlTGlzdAog
ICAgIHsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFN0ZXA6Ok5vZGVUZXN0PiBub2RlVGVzdCgk
Mik7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV4cHJl
c3Npb24+Pj4gcHJlZGljYXRlTGlzdCgkMyk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q+IG5vZGVUZXN0KCQyKTsKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Np
b24+Pj4gcHJlZGljYXRlTGlzdCgkMyk7CiAKICAgICAgICAgaWYgKHByZWRpY2F0ZUxpc3QpCi0g
ICAgICAgICAgICAkJCA9IG5ldyBTdGVwKCQxLCBXVEZNb3ZlKCpub2RlVGVzdCksIFdURk1vdmUo
KnByZWRpY2F0ZUxpc3QpKTsKKyAgICAgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpT
dGVwKCQxLCBXVEZNb3ZlKCpub2RlVGVzdCksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgJCQgPSBuZXcgU3RlcCgkMSwgV1RGTW92ZSgqbm9kZVRl
c3QpKTsKKyAgICAgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKCQxLCBXVEZN
b3ZlKCpub2RlVGVzdCkpOwogICAgIH0KICAgICB8CiAgICAgQXhpc1NwZWNpZmllciBOQU1FVEVT
VCBPcHRpb25hbFByZWRpY2F0ZUxpc3QKICAgICB7CiAgICAgICAgIFN0cmluZyBuYW1ldGVzdCA9
IGFkb3B0UmVmKCQyKTsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1
ZV9wdHI8RXhwcmVzc2lvbj4+PiBwcmVkaWNhdGVMaXN0KCQzKTsKKyAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+
Pj4gcHJlZGljYXRlTGlzdCgkMyk7CiAKICAgICAgICAgU3RyaW5nIGxvY2FsTmFtZTsKICAgICAg
ICAgU3RyaW5nIG5hbWVzcGFjZVVSSTsKQEAgLTIyMCw5ICsyMjAsOSBAQCBTdGVwOgogICAgICAg
ICB9CiAKICAgICAgICAgaWYgKHByZWRpY2F0ZUxpc3QpCi0gICAgICAgICAgICAkJCA9IG5ldyBT
dGVwKCQxLCBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6TmFtZVRlc3QsIGxvY2FsTmFt
ZSwgbmFtZXNwYWNlVVJJKSwgV1RGTW92ZSgqcHJlZGljYXRlTGlzdCkpOworICAgICAgICAgICAg
JCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0ZXAoJDEsIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpO
b2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5h
bWUsIG5hbWVzcGFjZVVSSSksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgJCQgPSBuZXcgU3RlcCgkMSwgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9k
ZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSkpOworICAgICAgICAgICAg
JCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0ZXAoJDEsIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpO
b2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5h
bWUsIG5hbWVzcGFjZVVSSSkpOwogICAgIH0KICAgICB8CiAgICAgQWJicmV2aWF0ZWRTdGVwCkBA
IC0yMzMsMzUgKzIzMywzNSBAQCBBeGlzU3BlY2lmaWVyOgogICAgIHwKICAgICAnQCcKICAgICB7
Ci0gICAgICAgICQkID0gU3RlcDo6QXR0cmlidXRlQXhpczsKKyAgICAgICAgJCQgPSBXZWJDb3Jl
OjpYUGF0aDo6U3RlcDo6QXR0cmlidXRlQXhpczsKICAgICB9CiAgICAgOwogCiBOb2RlVGVzdDoK
ICAgICBOT0RFICcoJyAnKScKICAgICB7Ci0gICAgICAgICQkID0gbmV3IFN0ZXA6Ok5vZGVUZXN0
KFN0ZXA6Ok5vZGVUZXN0OjpBbnlOb2RlVGVzdCk7CisgICAgICAgICQkID0gbmV3IFdlYkNvcmU6
OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6OkFu
eU5vZGVUZXN0KTsKICAgICB9CiAgICAgfAogICAgIFRFWFRfICcoJyAnKScKICAgICB7Ci0gICAg
ICAgICQkID0gbmV3IFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpUZXh0Tm9kZVRlc3Qp
OworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29y
ZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpUZXh0Tm9kZVRlc3QpOwogICAgIH0KICAgICB8CiAg
ICAgQ09NTUVOVCAnKCcgJyknCiAgICAgewotICAgICAgICAkJCA9IG5ldyBTdGVwOjpOb2RlVGVz
dChTdGVwOjpOb2RlVGVzdDo6Q29tbWVudE5vZGVUZXN0KTsKKyAgICAgICAgJCQgPSBuZXcgV2Vi
Q29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0KFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVz
dDo6Q29tbWVudE5vZGVUZXN0KTsKICAgICB9CiAgICAgfAogICAgIFBJICcoJyAnKScKICAgICB7
Ci0gICAgICAgICQkID0gbmV3IFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb25Ob2RlVGVzdCk7CisgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRo
OjpTdGVwOjpOb2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6OlByb2Nlc3Np
bmdJbnN0cnVjdGlvbk5vZGVUZXN0KTsKICAgICB9CiAgICAgfAogICAgIFBJICcoJyBMSVRFUkFM
ICcpJwogICAgIHsKICAgICAgICAgU3RyaW5nIGxpdGVyYWwgPSBhZG9wdFJlZigkMyk7Ci0gICAg
ICAgICQkID0gbmV3IFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb25Ob2RlVGVzdCwgbGl0ZXJhbC5zdHJpcFdoaXRlU3BhY2UoKSk7CisgICAgICAgICQk
ID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6U3Rl
cDo6Tm9kZVRlc3Q6OlByb2Nlc3NpbmdJbnN0cnVjdGlvbk5vZGVUZXN0LCBsaXRlcmFsLnN0cmlw
V2hpdGVTcGFjZSgpKTsKICAgICB9CiAgICAgOwogCkBAIC0yNzcsMTQgKzI3NywxNCBAQCBPcHRp
b25hbFByZWRpY2F0ZUxpc3Q6CiBQcmVkaWNhdGVMaXN0OgogICAgIFByZWRpY2F0ZQogICAgIHsK
LSAgICAgICAgJCQgPSBuZXcgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPj47Ci0g
ICAgICAgICQkLT5hcHBlbmQoc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQxKSk7CisgICAg
ICAgICQkID0gbmV3IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJl
c3Npb24+PjsKKyAgICAgICAgJCQtPmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBh
dGg6OkV4cHJlc3Npb24+KCQxKSk7CiAgICAgfQogICAgIHwKICAgICBQcmVkaWNhdGVMaXN0IFBy
ZWRpY2F0ZQogICAgIHsKICAgICAgICAgJCQgPSAkMTsKLSAgICAgICAgJCQtPmFwcGVuZChzdGQ6
OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDIpKTsKKyAgICAgICAgJCQtPmFwcGVuZChzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQyKSk7CiAgICAgfQogICAgIDsK
IApAQCAtMjk4LDE5ICsyOTgsMTkgQEAgUHJlZGljYXRlOgogRGVzY2VuZGFudE9yU2VsZjoKICAg
ICBTTEFTSFNMQVNICiAgICAgewotICAgICAgICAkJCA9IG5ldyBTdGVwKFN0ZXA6OkRlc2NlbmRh
bnRPclNlbGZBeGlzLCBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6QW55Tm9kZVRlc3Qp
KTsKKyAgICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0ZXAoV2ViQ29yZTo6WFBhdGg6
OlN0ZXA6OkRlc2NlbmRhbnRPclNlbGZBeGlzLCBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRl
c3QoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpBbnlOb2RlVGVzdCkpOwogICAgIH0K
ICAgICA7CiAKIEFiYnJldmlhdGVkU3RlcDoKICAgICAnLicKICAgICB7Ci0gICAgICAgICQkID0g
bmV3IFN0ZXAoU3RlcDo6U2VsZkF4aXMsIFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpB
bnlOb2RlVGVzdCkpOworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcChXZWJD
b3JlOjpYUGF0aDo6U3RlcDo6U2VsZkF4aXMsIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVz
dChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6OkFueU5vZGVUZXN0KSk7CiAgICAgfQog
ICAgIHwKICAgICBET1RET1QKICAgICB7Ci0gICAgICAgICQkID0gbmV3IFN0ZXAoU3RlcDo6UGFy
ZW50QXhpcywgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6OkFueU5vZGVUZXN0KSk7Cisg
ICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdlYkNvcmU6OlhQYXRoOjpTdGVw
OjpQYXJlbnRBeGlzLCBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBh
dGg6OlN0ZXA6Ok5vZGVUZXN0OjpBbnlOb2RlVGVzdCkpOwogICAgIH0KICAgICA7CiAKQEAgLTMx
OCw3ICszMTgsNyBAQCBQcmltYXJ5RXhwcjoKICAgICBWQVJJQUJMRVJFRkVSRU5DRQogICAgIHsK
ICAgICAgICAgU3RyaW5nIG5hbWUgPSBhZG9wdFJlZigkMSk7Ci0gICAgICAgICQkID0gbmV3IFZh
cmlhYmxlUmVmZXJlbmNlKG5hbWUpOworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6
VmFyaWFibGVSZWZlcmVuY2UobmFtZSk7CiAgICAgfQogICAgIHwKICAgICAnKCcgRXhwciAnKScK
QEAgLTMyOSwxMyArMzI5LDEzIEBAIFByaW1hcnlFeHByOgogICAgIExJVEVSQUwKICAgICB7CiAg
ICAgICAgIFN0cmluZyBsaXRlcmFsID0gYWRvcHRSZWYoJDEpOwotICAgICAgICAkJCA9IG5ldyBT
dHJpbmdFeHByZXNzaW9uKFdURk1vdmUobGl0ZXJhbCkpOworICAgICAgICAkJCA9IG5ldyBXZWJD
b3JlOjpYUGF0aDo6U3RyaW5nRXhwcmVzc2lvbihXVEZNb3ZlKGxpdGVyYWwpKTsKICAgICB9CiAg
ICAgfAogICAgIE5VTUJFUgogICAgIHsKICAgICAgICAgU3RyaW5nIG51bWVyYWwgPSBhZG9wdFJl
ZigkMSk7Ci0gICAgICAgICQkID0gbmV3IE51bWJlcihudW1lcmFsLnRvRG91YmxlKCkpOworICAg
ICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TnVtYmVyKG51bWVyYWwudG9Eb3VibGUoKSk7
CiAgICAgfQogICAgIHwKICAgICBGdW5jdGlvbkNhbGwKQEAgLTM0NSw3ICszNDUsNyBAQCBGdW5j
dGlvbkNhbGw6CiAgICAgRlVOQ1RJT05OQU1FICcoJyAnKScKICAgICB7CiAgICAgICAgIFN0cmlu
ZyBuYW1lID0gYWRvcHRSZWYoJDEpOwotICAgICAgICAkJCA9IFhQYXRoOjpGdW5jdGlvbjo6Y3Jl
YXRlKG5hbWUpLnJlbGVhc2UoKTsKKyAgICAgICAgJCQgPSBXZWJDb3JlOjpYUGF0aDo6RnVuY3Rp
b246OmNyZWF0ZShuYW1lKS5yZWxlYXNlKCk7CiAgICAgICAgIGlmICghJCQpCiAgICAgICAgICAg
ICBZWUFCT1JUOwogICAgIH0KQEAgLTM1Myw4ICszNTMsOCBAQCBGdW5jdGlvbkNhbGw6CiAgICAg
RlVOQ1RJT05OQU1FICcoJyBBcmd1bWVudExpc3QgJyknCiAgICAgewogICAgICAgICBTdHJpbmcg
bmFtZSA9IGFkb3B0UmVmKCQxKTsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6
OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+PiBhcmd1bWVudExpc3QoJDMpOwotICAgICAgICAkJCA9
IFhQYXRoOjpGdW5jdGlvbjo6Y3JlYXRlKG5hbWUsIFdURk1vdmUoKmFyZ3VtZW50TGlzdCkpLnJl
bGVhc2UoKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+Pj4gYXJndW1lbnRMaXN0KCQzKTsKKyAgICAgICAg
JCQgPSBXZWJDb3JlOjpYUGF0aDo6RnVuY3Rpb246OmNyZWF0ZShuYW1lLCBXVEZNb3ZlKCphcmd1
bWVudExpc3QpKS5yZWxlYXNlKCk7CiAgICAgICAgIGlmICghJCQpCiAgICAgICAgICAgICBZWUFC
T1JUOwogICAgIH0KQEAgLTM2MywxNCArMzYzLDE0IEBAIEZ1bmN0aW9uQ2FsbDoKIEFyZ3VtZW50
TGlzdDoKICAgICBBcmd1bWVudAogICAgIHsKLSAgICAgICAgJCQgPSBuZXcgVmVjdG9yPHN0ZDo6
dW5pcXVlX3B0cjxFeHByZXNzaW9uPj47Ci0gICAgICAgICQkLT5hcHBlbmQoc3RkOjp1bmlxdWVf
cHRyPEV4cHJlc3Npb24+KCQxKSk7CisgICAgICAgICQkID0gbmV3IFZlY3RvcjxzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+PjsKKyAgICAgICAgJCQtPmFwcGVuZChz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQxKSk7CiAgICAgfQog
ICAgIHwKICAgICBBcmd1bWVudExpc3QgJywnIEFyZ3VtZW50CiAgICAgewogICAgICAgICAkJCA9
ICQxOwotICAgICAgICAkJC0+YXBwZW5kKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigkMykp
OworICAgICAgICAkJC0+YXBwZW5kKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhw
cmVzc2lvbj4oJDMpKTsKICAgICB9CiAgICAgOwogCkBAIC0zODMsNyArMzgzLDcgQEAgVW5pb25F
eHByOgogICAgIHwKICAgICBVbmlvbkV4cHIgJ3wnIFBhdGhFeHByCiAgICAgewotICAgICAgICAk
JCA9IG5ldyBVbmlvbihzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDEpLCBzdGQ6OnVuaXF1
ZV9wdHI8RXhwcmVzc2lvbj4oJDMpKTsKKyAgICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6
OlVuaW9uKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oJDEpLCBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQzKSk7CiAgICAgfQog
ICAgIDsKIApAQCAtMzk4LDE0ICszOTgsMTQgQEAgUGF0aEV4cHI6CiAgICAgRmlsdGVyRXhwciAn
LycgUmVsYXRpdmVMb2NhdGlvblBhdGgKICAgICB7CiAgICAgICAgICQzLT5zZXRBYnNvbHV0ZSgp
OwotICAgICAgICAkJCA9IG5ldyBYUGF0aDo6UGF0aChzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lv
bj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8TG9jYXRpb25QYXRoPigkMykpOworICAgICAgICAkJCA9
IG5ldyBXZWJDb3JlOjpYUGF0aDo6UGF0aChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6
OkV4cHJlc3Npb24+KCQxKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpMb2NhdGlv
blBhdGg+KCQzKSk7CiAgICAgfQogICAgIHwKICAgICBGaWx0ZXJFeHByIERlc2NlbmRhbnRPclNl
bGYgUmVsYXRpdmVMb2NhdGlvblBhdGgKICAgICB7Ci0gICAgICAgICQzLT5wcmVwZW5kU3RlcChz
dGQ6OnVuaXF1ZV9wdHI8U3RlcD4oJDIpKTsKKyAgICAgICAgJDMtPnByZXBlbmRTdGVwKHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6U3RlcD4oJDIpKTsKICAgICAgICAgJDMtPnNldEFi
c29sdXRlKCk7Ci0gICAgICAgICQkID0gbmV3IFhQYXRoOjpQYXRoKHN0ZDo6dW5pcXVlX3B0cjxF
eHByZXNzaW9uPigkMSksIHN0ZDo6dW5pcXVlX3B0cjxMb2NhdGlvblBhdGg+KCQzKSk7CisgICAg
ICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpQYXRoKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpYUGF0aDo6RXhwcmVzc2lvbj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6
OkxvY2F0aW9uUGF0aD4oJDMpKTsKICAgICB9CiAgICAgOwogCkBAIC00MTQsOCArNDE0LDggQEAg
RmlsdGVyRXhwcjoKICAgICB8CiAgICAgUHJpbWFyeUV4cHIgUHJlZGljYXRlTGlzdAogICAgIHsK
LSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lv
bj4+PiBwcmVkaWNhdGVMaXN0KCQyKTsKLSAgICAgICAgJCQgPSBuZXcgRmlsdGVyKHN0ZDo6dW5p
cXVlX3B0cjxFeHByZXNzaW9uPigkMSksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKKyAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6
OkV4cHJlc3Npb24+Pj4gcHJlZGljYXRlTGlzdCgkMik7CisgICAgICAgICQkID0gbmV3IFdlYkNv
cmU6OlhQYXRoOjpGaWx0ZXIoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNz
aW9uPigkMSksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKICAgICB9CiAgICAgOwogCkBAIC00
MjQsNyArNDI0LDcgQEAgT3JFeHByOgogICAgIHwKICAgICBPckV4cHIgT1IgQW5kRXhwcgogICAg
IHsKLSAgICAgICAgJCQgPSBuZXcgTG9naWNhbE9wKExvZ2ljYWxPcDo6T1BfT3IsIHN0ZDo6dW5p
cXVlX3B0cjxFeHByZXNzaW9uPigkMSksIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigkMykp
OworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TG9naWNhbE9wKFdlYkNvcmU6OlhQ
YXRoOjpMb2dpY2FsT3A6Ok9QX09yLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4
cHJlc3Npb24+KCQxKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9u
PigkMykpOwogICAgIH0KICAgICA7CiAKQEAgLTQzMyw3ICs0MzMsNyBAQCBBbmRFeHByOgogICAg
IHwKICAgICBBbmRFeHByIEFORCBFcXVhbGl0eUV4cHIKICAgICB7Ci0gICAgICAgICQkID0gbmV3
IExvZ2ljYWxPcChMb2dpY2FsT3A6Ok9QX0FuZCwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+
KCQxKSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQzKSk7CisgICAgICAgICQkID0gbmV3
IFdlYkNvcmU6OlhQYXRoOjpMb2dpY2FsT3AoV2ViQ29yZTo6WFBhdGg6OkxvZ2ljYWxPcDo6T1Bf
QW5kLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQxKSwgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMykpOwogICAgIH0KICAg
ICA7CiAKQEAgLTQ0Miw3ICs0NDIsNyBAQCBFcXVhbGl0eUV4cHI6CiAgICAgfAogICAgIEVxdWFs
aXR5RXhwciBFUU9QIFJlbGF0aW9uYWxFeHByCiAgICAgewotICAgICAgICAkJCA9IG5ldyBFcVRl
c3RPcCgkMiwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQxKSwgc3RkOjp1bmlxdWVfcHRy
PEV4cHJlc3Npb24+KCQzKSk7CisgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpFcVRl
c3RPcCgkMiwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMSks
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oJDMpKTsKICAgICB9
CiAgICAgOwogCkBAIC00NTEsNyArNDUxLDcgQEAgUmVsYXRpb25hbEV4cHI6CiAgICAgfAogICAg
IFJlbGF0aW9uYWxFeHByIFJFTE9QIEFkZGl0aXZlRXhwcgogICAgIHsKLSAgICAgICAgJCQgPSBu
ZXcgRXFUZXN0T3AoJDIsIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigkMSksIHN0ZDo6dW5p
cXVlX3B0cjxFeHByZXNzaW9uPigkMykpOworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0
aDo6RXFUZXN0T3AoJDIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lv
bj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQzKSk7
CiAgICAgfQogICAgIDsKIApAQCAtNDYwLDEyICs0NjAsMTIgQEAgQWRkaXRpdmVFeHByOgogICAg
IHwKICAgICBBZGRpdGl2ZUV4cHIgUExVUyBNdWx0aXBsaWNhdGl2ZUV4cHIKICAgICB7Ci0gICAg
ICAgICQkID0gbmV3IE51bWVyaWNPcChOdW1lcmljT3A6Ok9QX0FkZCwgc3RkOjp1bmlxdWVfcHRy
PEV4cHJlc3Npb24+KCQxKSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQzKSk7CisgICAg
ICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpOdW1lcmljT3AoV2ViQ29yZTo6WFBhdGg6Ok51
bWVyaWNPcDo6T1BfQWRkLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Np
b24+KCQxKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMykp
OwogICAgIH0KICAgICB8CiAgICAgQWRkaXRpdmVFeHByIE1JTlVTIE11bHRpcGxpY2F0aXZlRXhw
cgogICAgIHsKLSAgICAgICAgJCQgPSBuZXcgTnVtZXJpY09wKE51bWVyaWNPcDo6T1BfU3ViLCBz
dGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lv
bj4oJDMpKTsKKyAgICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6Ok51bWVyaWNPcChXZWJD
b3JlOjpYUGF0aDo6TnVtZXJpY09wOjpPUF9TdWIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpY
UGF0aDo6RXhwcmVzc2lvbj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4
cHJlc3Npb24+KCQzKSk7CiAgICAgfQogICAgIDsKIApAQCAtNDc0LDcgKzQ3NCw3IEBAIE11bHRp
cGxpY2F0aXZlRXhwcjoKICAgICB8CiAgICAgTXVsdGlwbGljYXRpdmVFeHByIE1VTE9QIFVuYXJ5
RXhwcgogICAgIHsKLSAgICAgICAgJCQgPSBuZXcgTnVtZXJpY09wKCQyLCBzdGQ6OnVuaXF1ZV9w
dHI8RXhwcmVzc2lvbj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDMpKTsKKyAg
ICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6Ok51bWVyaWNPcCgkMiwgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oJDMpKTsKICAgICB9CiAgICAgOwogCkBAIC00ODMsNyAr
NDgzLDcgQEAgVW5hcnlFeHByOgogICAgIHwKICAgICBNSU5VUyBVbmFyeUV4cHIKICAgICB7Ci0g
ICAgICAgICQkID0gbmV3IE5lZ2F0aXZlKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigkMikp
OworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TmVnYXRpdmUoc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMikpOwogICAgIH0KICAgICA7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440429</attachid>
            <date>2021-10-06 13:25:31 -0700</date>
            <delta_ts>2021-10-06 13:26:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231318-20211006132530.patch</filename>
            <type>text/plain</type>
            <size>76727</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk4MTQzMGRhNjdkZWRl
Yzk3M2ZjNmE4Yzk5MjEyNWIxYTUzY2YxYy4uMTAwOTA1YmYzMzkzZTQ4NTdkY2E2ZjY2NzZkYzlh
NGViNWUyODhjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTEwLTA2ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3Zl
ICJ1c2luZyBuYW1lc3BhY2UgWFBhdGg7IiBmcm9tIFhQYXRoR3JhbW1hci5jcHAKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTMxOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEkgZGlkIHRoaXMgYnkgZWRp
dGluZyBYUGF0aEdyYW1tYXIueSBhbmQgcmUtcnVubmluZyBiaXNvbi4KKyAgICAgICAgV2UgaGF2
ZSB0aGUgb3V0cHV0IG9mIGJpc29uIGNoZWNrZWQgaW4gdG8gb3VyIHJlcG8gdG8gbm90IGhhdmUg
Ymlzb24gYXMgYSBidWlsZCBkZXBlbmRlbmN5IG9mIFdlYktpdC4KKworICAgICAgICAqIHhtbC9Y
UGF0aEdyYW1tYXIuY3BwOgorICAgICAgICAoeHBhdGh5eWxleCk6CisgICAgICAgICh4cGF0aHl5
ZXJyb3IpOgorICAgICAgICAoeXlzeW50YXhfZXJyb3IpOgorICAgICAgICAqIHhtbC9YUGF0aEdy
YW1tYXIueToKKyAgICAgICAgKiB4bWwvWFBhdGhSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WFBhdGhSZXN1bHQ6OlhQYXRoUmVzdWx0KToKKwogMjAyMS0xMC0wNiAgQmVuIE5oYW0gIDxu
aGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBXYXZlU2hhcGVyUHJvY2Vzc29yIG1pc3NpbmcgQXJy
YXlCdWZmZXIgaW5jbHVkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoR3Jh
bW1hci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLmNwcAppbmRleCAwZDQ4
ODY3YTk4ZjZlNDMxMjgyZjMyMDRkZTUwZDZmMjA5NDAzNzQzLi5hZDkxNTM5OTY2ZWMwMzdhYzk5
ZmFiYjM4YzNiZmQ5MWIxNDQzN2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBh
dGhHcmFtbWFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLmNwcApA
QCAtMSw1ICsxLDUgQEAKIC8qIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgdXNpbmcgdGhlIGZvbGxv
d2luZyBjb21tYW5kOgotICAgYmlzb24gLWQgLXAgeHBhdGh5eSBYUGF0aEdyYW1tYXIueSAtbyBY
UGF0aEdyYW1tYXIuY3BwIAorICAgYmlzb24gLWQgLXAgeHBhdGh5eSBYUGF0aEdyYW1tYXIueSAt
byBYUGF0aEdyYW1tYXIuY3BwCiAgKi8KIAogLyogQSBCaXNvbiBwYXJzZXIsIG1hZGUgYnkgR05V
IEJpc29uIDIuMy4gICovCkBAIC0xMjYsOCArMTI2LDkgQEAKIAogCiAKKwogLyogQ29weSB0aGUg
Zmlyc3QgcGFydCBvZiB1c2VyIGRlY2xhcmF0aW9ucy4gICovCi0jbGluZSAyOCAiV2ViQ29yZS94
bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyOCAiWFBhdGhHcmFtbWFyLnkiCiAKIAogI2luY2x1
ZGUgImNvbmZpZy5oIgpAQCAtMTM4LDcgKzEzOSw2IEBACiAjaW5jbHVkZSAiWFBhdGhTdGVwLmgi
CiAjaW5jbHVkZSAiWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oIgogCi0KICNpZiBDT01QSUxFUihN
U1ZDKQogLy8gU2VlIGh0dHBzOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvMXdl
YTV6d2UuYXNweAogI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQ3MDEpCkBAIC0xNTIsOCArMTUy
LDYgQEAKICNkZWZpbmUgWVlERUJVRyAwCiAjZGVmaW5lIFlZTUFYREVQVEggMTAwMDAKIAotdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2UgWFBhdGg7CiAKIAogLyogRW5h
YmxpbmcgdHJhY2VzLiAgKi8KQEAgLTE3Niw3ICsxNzQsNyBAQCB1c2luZyBuYW1lc3BhY2UgWFBh
dGg7CiAKICNpZiAhIGRlZmluZWQgWVlTVFlQRSAmJiAhIGRlZmluZWQgWVlTVFlQRV9JU19ERUNM
QVJFRAogdHlwZWRlZiB1bmlvbiBZWVNUWVBFCi0jbGluZSA2MCAiV2ViQ29yZS94bWwvWFBhdGhH
cmFtbWFyLnkiCisjbGluZSA1NyAiWFBhdGhHcmFtbWFyLnkiCiB7IAogICAgIFdlYkNvcmU6OlhQ
YXRoOjpOdW1lcmljT3A6Ok9wY29kZSBudW1lcmljT3Bjb2RlOwogICAgIFdlYkNvcmU6OlhQYXRo
OjpFcVRlc3RPcDo6T3Bjb2RlIGVxdWFsaXR5VGVzdE9wY29kZTsKQEAgLTE4OSw4ICsxODcsOCBA
QCB0eXBlZGVmIHVuaW9uIFlZU1RZUEUKICAgICBXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbiog
ZXhwcmVzc2lvbjsKIH0KIC8qIExpbmUgMTkzIG9mIHlhY2MuYy4gICovCi0jbGluZSAxOTAgIi4v
WFBhdGhHcmFtbWFyLmNwcCIKLSAgICBZWVNUWVBFOworI2xpbmUgMTg3ICJYUGF0aEdyYW1tYXIu
Y3BwIgorCVlZU1RZUEU7CiAjIGRlZmluZSB5eXN0eXBlIFlZU1RZUEUgLyogb2Jzb2xlc2NlbnQ7
IHdpbGwgYmUgd2l0aGRyYXduICovCiAjIGRlZmluZSBZWVNUWVBFX0lTX0RFQ0xBUkVEIDEKICMg
ZGVmaW5lIFlZU1RZUEVfSVNfVFJJVklBTCAxCkBAIC0xOTksMTYgKzE5NywxNiBAQCB0eXBlZGVm
IHVuaW9uIFlZU1RZUEUKIAogCiAvKiBDb3B5IHRoZSBzZWNvbmQgcGFydCBvZiB1c2VyIGRlY2xh
cmF0aW9ucy4gICovCi0jbGluZSAxMDQgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xp
bmUgMTAxICJYUGF0aEdyYW1tYXIueSIKIAogCi1zdGF0aWMgaW50IHhwYXRoeXlsZXgoWVlTVFlQ
RSogeXlsdmFsLCBQYXJzZXImIHBhcnNlcikgeyByZXR1cm4gcGFyc2VyLmxleCgqeXlsdmFsKTsg
fQotc3RhdGljIHZvaWQgeHBhdGh5eWVycm9yKFBhcnNlciYsIGNvbnN0IGNoYXIqKSB7IH0KK3N0
YXRpYyBpbnQgeHBhdGh5eWxleChZWVNUWVBFKiB5eWx2YWwsIFdlYkNvcmU6OlhQYXRoOjpQYXJz
ZXImIHBhcnNlcikgeyByZXR1cm4gcGFyc2VyLmxleCgqeXlsdmFsKTsgfQorc3RhdGljIHZvaWQg
eHBhdGh5eWVycm9yKFdlYkNvcmU6OlhQYXRoOjpQYXJzZXImLCBjb25zdCBjaGFyKikgeyB9CiAK
IAogCiAvKiBMaW5lIDIxNiBvZiB5YWNjLmMuICAqLwotI2xpbmUgMjA5ICIuL1hQYXRoR3JhbW1h
ci5jcHAiCisjbGluZSAyMDYgIlhQYXRoR3JhbW1hci5jcHAiCiAKICNpZmRlZiBzaG9ydAogIyB1
bmRlZiBzaG9ydApAQCAtMzQwLDcgKzMzOCw3IEBAIFlZSUQgKGkpCiAjICBlbmRpZgogIyAgaWYg
KGRlZmluZWQgX19jcGx1c3BsdXMgJiYgISBkZWZpbmVkIF9TVERMSUJfSCBcCiAgICAgICAgJiYg
ISAoKGRlZmluZWQgWVlNQUxMT0MgfHwgZGVmaW5lZCBtYWxsb2MpIFwKLSAgICAgICAgICYmIChk
ZWZpbmVkIFlZRlJFRSB8fCBkZWZpbmVkIGZyZWUpKSkKKwkgICAgICYmIChkZWZpbmVkIFlZRlJF
RSB8fCBkZWZpbmVkIGZyZWUpKSkKICMgICBpbmNsdWRlIDxzdGRsaWIuaD4gLyogSU5GUklOR0VT
IE9OIFVTRVIgTkFNRSBTUEFDRSAqLwogIyAgIGlmbmRlZiBfU1RETElCX0gKICMgICAgZGVmaW5l
IF9TVERMSUJfSCAxCkBAIC0zNjYsNyArMzY0LDcgQEAgdm9pZCBmcmVlICh2b2lkICopOyAvKiBJ
TkZSSU5HRVMgT04gVVNFUiBOQU1FIFNQQUNFICovCiAKICNpZiAoISBkZWZpbmVkIHl5b3ZlcmZs
b3cgXAogICAgICAmJiAoISBkZWZpbmVkIF9fY3BsdXNwbHVzIFwKLSAgICAgfHwgKGRlZmluZWQg
WVlTVFlQRV9JU19UUklWSUFMICYmIFlZU1RZUEVfSVNfVFJJVklBTCkpKQorCSB8fCAoZGVmaW5l
ZCBZWVNUWVBFX0lTX1RSSVZJQUwgJiYgWVlTVFlQRV9JU19UUklWSUFMKSkpCiAKIC8qIEEgdHlw
ZSB0aGF0IGlzIHByb3Blcmx5IGFsaWduZWQgZm9yIGFueSBzdGFjayBtZW1iZXIuICAqLwogdW5p
b24geXlhbGxvYwpAQCAtMzkxLDEzICszODksMTMgQEAgdW5pb24geXlhbGxvYwogIyAgIGRlZmlu
ZSBZWUNPUFkoVG8sIEZyb20sIENvdW50KSBcCiAgICAgICBfX2J1aWx0aW5fbWVtY3B5IChUbywg
RnJvbSwgKENvdW50KSAqIHNpemVvZiAoKihGcm9tKSkpCiAjICBlbHNlCi0jICAgZGVmaW5lIFlZ
Q09QWShUbywgRnJvbSwgQ291bnQpICAgICAgICBcCi0gICAgICBkbyAgICAgICAgICAgICAgICAg
ICAgXAotICAgIHsgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIFlZU0laRV9UIHl5aTsgICAg
ICAgICAgICAgICAgXAotICAgICAgZm9yICh5eWkgPSAwOyB5eWkgPCAoQ291bnQpOyB5eWkrKykg
ICAgXAotICAgICAgICAoVG8pW3l5aV0gPSAoRnJvbSlbeXlpXTsgICAgICAgIFwKLSAgICB9ICAg
ICAgICAgICAgICAgICAgICBcCisjICAgZGVmaW5lIFlZQ09QWShUbywgRnJvbSwgQ291bnQpCQlc
CisgICAgICBkbwkJCQkJXAorCXsJCQkJCVwKKwkgIFlZU0laRV9UIHl5aTsJCQkJXAorCSAgZm9y
ICh5eWkgPSAwOyB5eWkgPCAoQ291bnQpOyB5eWkrKykJXAorCSAgICAoVG8pW3l5aV0gPSAoRnJv
bSlbeXlpXTsJCVwKKwl9CQkJCQlcCiAgICAgICB3aGlsZSAoWVlJRCAoMCkpCiAjICBlbmRpZgog
IyBlbmRpZgpAQCAtNDA3LDE1ICs0MDUsMTUgQEAgdW5pb24geXlhbGxvYwogICAgZWxlbWVudHMg
aW4gdGhlIHN0YWNrLCBhbmQgWVlQVFIgZ2l2ZXMgdGhlIG5ldyBsb2NhdGlvbiBvZiB0aGUKICAg
IHN0YWNrLiAgQWR2YW5jZSBZWVBUUiB0byBhIHByb3Blcmx5IGFsaWduZWQgbG9jYXRpb24gZm9y
IHRoZSBuZXh0CiAgICBzdGFjay4gICovCi0jIGRlZmluZSBZWVNUQUNLX1JFTE9DQVRFKFN0YWNr
KSAgICAgICAgICAgICAgICAgICAgXAotICAgIGRvICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBZWVNJWkVfVCB5eW5ld2J5dGVzOyAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBZ
WUNPUFkgKCZ5eXB0ci0+U3RhY2ssIFN0YWNrLCB5eXNpemUpOyAgICAgICAgICAgICAgICBcCi0g
ICAgU3RhY2sgPSAmeXlwdHItPlN0YWNrOyAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB5
eW5ld2J5dGVzID0geXlzdGFja3NpemUgKiBzaXplb2YgKCpTdGFjaykgKyBZWVNUQUNLX0dBUF9N
QVhJTVVNOyBcCi0gICAgeXlwdHIgKz0geXluZXdieXRlcyAvIHNpemVvZiAoKnl5cHRyKTsgICAg
ICAgICAgICAgICAgXAotICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyMgZGVmaW5lIFlZU1RBQ0tfUkVMT0NBVEUoU3RhY2spCQkJCQlcCisgICAgZG8JCQkJCQkJ
CQlcCisgICAgICB7CQkJCQkJCQkJXAorCVlZU0laRV9UIHl5bmV3Ynl0ZXM7CQkJCQkJXAorCVlZ
Q09QWSAoJnl5cHRyLT5TdGFjaywgU3RhY2ssIHl5c2l6ZSk7CQkJCVwKKwlTdGFjayA9ICZ5eXB0
ci0+U3RhY2s7CQkJCQkJXAorCXl5bmV3Ynl0ZXMgPSB5eXN0YWNrc2l6ZSAqIHNpemVvZiAoKlN0
YWNrKSArIFlZU1RBQ0tfR0FQX01BWElNVU07IFwKKwl5eXB0ciArPSB5eW5ld2J5dGVzIC8gc2l6
ZW9mICgqeXlwdHIpOwkJCQlcCisgICAgICB9CQkJCQkJCQkJXAogICAgIHdoaWxlIChZWUlEICgw
KSkKIAogI2VuZGlmCkBAIC00MzgsNyArNDM2LDcgQEAgdW5pb24geXlhbGxvYwogI2RlZmluZSBZ
WVVOREVGVE9LICAyCiAjZGVmaW5lIFlZTUFYVVRPSyAgIDI3OAogCi0jZGVmaW5lIFlZVFJBTlNM
QVRFKFlZWCkgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIFlZVFJBTlNMQVRFKFlZ
WCkJCQkJCQlcCiAgICgodW5zaWduZWQgaW50KSAoWVlYKSA8PSBZWU1BWFVUT0sgPyB5eXRyYW5z
bGF0ZVtZWVhdIDogWVlVTkRFRlRPSykKIAogLyogWVlUUkFOU0xBVEVbWVlMRVhdIC0tIEJpc29u
IHN5bWJvbCBudW1iZXIgY29ycmVzcG9uZGluZyB0byBZWUxFWC4gICovCkBAIC01MTUsMTMgKzUx
MywxMyBAQCBzdGF0aWMgY29uc3QgeXl0eXBlX2ludDggeXlyaHNbXSA9CiAvKiBZWVJMSU5FW1lZ
Tl0gLS0gc291cmNlIGxpbmUgd2hlcmUgcnVsZSBudW1iZXIgWVlOIHdhcyBkZWZpbmVkLiAgKi8K
IHN0YXRpYyBjb25zdCB5eXR5cGVfdWludDE2IHl5cmxpbmVbXSA9CiB7Ci0gICAgICAgMCwgICAx
MTQsICAgMTE0LCAgIDEyMSwgICAxMjUsICAgMTMxLCAgIDEzNSwgICAxNDAsICAgMTQ1LCAgIDE1
MywKLSAgICAgMTU5LCAgIDE2NSwgICAxNzQsICAgMTg0LCAgIDIwMiwgICAyMTMsICAgMjMxLCAg
IDIzNSwgICAyMzcsICAgMjQ0LAotICAgICAyNDksICAgMjU0LCAgIDI1OSwgICAyNjQsICAgMjcz
LCAgIDI3NywgICAyODEsICAgMjg3LCAgIDI5NSwgICAzMDIsCi0gICAgIDMwOSwgICAzMTQsICAg
MzIxLCAgIDMyNywgICAzMzIsICAgMzM4LCAgIDM0NCwgICAzNDgsICAgMzU2LCAgIDM2NywKLSAg
ICAgMzczLCAgIDM4MSwgICAzODUsICAgMzg3LCAgIDM5NCwgICAzOTksICAgNDAxLCAgIDQwNywg
ICA0MTYsICAgNDE4LAotICAgICA0MjYsICAgNDI4LCAgIDQzNSwgICA0MzcsICAgNDQ0LCAgIDQ0
NiwgICA0NTMsICAgNDU1LCAgIDQ2MiwgICA0NjQsCi0gICAgIDQ2OSwgICA0NzYsICAgNDc4LCAg
IDQ4NSwgICA0ODcKKyAgICAgICAwLCAgIDExMSwgICAxMTEsICAgMTE4LCAgIDEyMiwgICAxMjgs
ICAgMTMyLCAgIDEzNywgICAxNDIsICAgMTUwLAorICAgICAxNTYsICAgMTYyLCAgIDE3MSwgICAx
ODEsICAgMTk5LCAgIDIxMCwgICAyMjgsICAgMjMyLCAgIDIzNCwgICAyNDEsCisgICAgIDI0Niwg
ICAyNTEsICAgMjU2LCAgIDI2MSwgICAyNzAsICAgMjc0LCAgIDI3OCwgICAyODQsICAgMjkyLCAg
IDI5OSwKKyAgICAgMzA2LCAgIDMxMSwgICAzMTgsICAgMzI0LCAgIDMyOSwgICAzMzUsICAgMzQx
LCAgIDM0NSwgICAzNTMsICAgMzY0LAorICAgICAzNzAsICAgMzc4LCAgIDM4MiwgICAzODQsICAg
MzkxLCAgIDM5NiwgICAzOTgsICAgNDA0LCAgIDQxMywgICA0MTUsCisgICAgIDQyMywgICA0MjUs
ICAgNDMyLCAgIDQzNCwgICA0NDEsICAgNDQzLCAgIDQ1MCwgICA0NTIsICAgNDU5LCAgIDQ2MSwK
KyAgICAgNDY2LCAgIDQ3MywgICA0NzUsICAgNDgyLCAgIDQ4NAogfTsKICNlbmRpZgogCkBAIC01
MzMsNyArNTMxLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHl5dG5hbWVbXSA9CiAgICIk
ZW5kIiwgImVycm9yIiwgIiR1bmRlZmluZWQiLCAiTVVMT1AiLCAiUkVMT1AiLCAiRVFPUCIsICJN
SU5VUyIsCiAgICJQTFVTIiwgIkFORCIsICJPUiIsICJGVU5DVElPTk5BTUUiLCAiTElURVJBTCIs
ICJOQU1FVEVTVCIsICJOVU1CRVIiLAogICAiTk9ERVRZUEUiLCAiVkFSSUFCTEVSRUZFUkVOQ0Ui
LCAiQVhJU05BTUUiLCAiQ09NTUVOVCIsICJET1RET1QiLCAiUEkiLAotICAiTk9ERSIsICJTTEFT
SFNMQVNIIiwgIlRFWFQiLCAiWFBBVEhfRVJST1IiLCAiJy8nIiwgIidAJyIsICInKCciLCAiJykn
IiwKKyAgIk5PREUiLCAiU0xBU0hTTEFTSCIsICJURVhUXyIsICJYUEFUSF9FUlJPUiIsICInLyci
LCAiJ0AnIiwgIicoJyIsICInKSciLAogICAiJ1snIiwgIiddJyIsICInLiciLCAiJywnIiwgIid8
JyIsICIkYWNjZXB0IiwgIlRvcCIsICJFeHByIiwKICAgIkxvY2F0aW9uUGF0aCIsICJBYnNvbHV0
ZUxvY2F0aW9uUGF0aCIsICJSZWxhdGl2ZUxvY2F0aW9uUGF0aCIsICJTdGVwIiwKICAgIkF4aXNT
cGVjaWZpZXIiLCAiTm9kZVRlc3QiLCAiT3B0aW9uYWxQcmVkaWNhdGVMaXN0IiwgIlByZWRpY2F0
ZUxpc3QiLApAQCAtNjkwLDQ0ICs2ODgsNDQgQEAgc3RhdGljIGNvbnN0IHl5dHlwZV91aW50OCB5
eXN0b3NbXSA9CiAgICAgICA1MAogfTsKIAotI2RlZmluZSB5eWVycm9rICAgICAgICAoeXllcnJz
dGF0dXMgPSAwKQotI2RlZmluZSB5eWNsZWFyaW4gICAgKHl5Y2hhciA9IFlZRU1QVFkpCi0jZGVm
aW5lIFlZRU1QVFkgICAgICAgICgtMikKLSNkZWZpbmUgWVlFT0YgICAgICAgIDAKKyNkZWZpbmUg
eXllcnJvawkJKHl5ZXJyc3RhdHVzID0gMCkKKyNkZWZpbmUgeXljbGVhcmluCSh5eWNoYXIgPSBZ
WUVNUFRZKQorI2RlZmluZSBZWUVNUFRZCQkoLTIpCisjZGVmaW5lIFlZRU9GCQkwCiAKLSNkZWZp
bmUgWVlBQ0NFUFQgICAgZ290byB5eWFjY2VwdGxhYgotI2RlZmluZSBZWUFCT1JUICAgICAgICBn
b3RvIHl5YWJvcnRsYWIKLSNkZWZpbmUgWVlFUlJPUiAgICAgICAgZ290byB5eWVycm9ybGFiCisj
ZGVmaW5lIFlZQUNDRVBUCWdvdG8geXlhY2NlcHRsYWIKKyNkZWZpbmUgWVlBQk9SVAkJZ290byB5
eWFib3J0bGFiCisjZGVmaW5lIFlZRVJST1IJCWdvdG8geXllcnJvcmxhYgogCiAKIC8qIExpa2Ug
WVlFUlJPUiBleGNlcHQgZG8gY2FsbCB5eWVycm9yLiAgVGhpcyByZW1haW5zIGhlcmUgdGVtcG9y
YXJpbHkKICAgIHRvIGVhc2UgdGhlIHRyYW5zaXRpb24gdG8gdGhlIG5ldyBtZWFuaW5nIG9mIFlZ
RVJST1IsIGZvciBHQ0MuCiAgICBPbmNlIEdDQyB2ZXJzaW9uIDIgaGFzIHN1cHBsYW50ZWQgdmVy
c2lvbiAxLCB0aGlzIGNhbiBnby4gICovCiAKLSNkZWZpbmUgWVlGQUlMICAgICAgICBnb3RvIHl5
ZXJybGFiCisjZGVmaW5lIFlZRkFJTAkJZ290byB5eWVycmxhYgogCiAjZGVmaW5lIFlZUkVDT1ZF
UklORygpICAoISF5eWVycnN0YXR1cykKIAotI2RlZmluZSBZWUJBQ0tVUChUb2tlbiwgVmFsdWUp
ICAgICAgICAgICAgICAgICAgICBcCi1kbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICBpZiAoeXljaGFyID09IFlZRU1QVFkgJiYgeXlsZW4gPT0gMSkgICAgICAgICAgICAgICAg
XAotICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIHl5Y2hhciA9
IChUb2tlbik7ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgeXlsdmFsID0gKFZhbHVl
KTsgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICB5eXRva2VuID0gWVlUUkFOU0xBVEUg
KHl5Y2hhcik7ICAgICAgICAgICAgICAgIFwKLSAgICAgIFlZUE9QU1RBQ0sgKDEpOyAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICAgIGdvdG8geXliYWNrdXA7ICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgZWxzZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyNkZWZpbmUgWVlCQUNLVVAoVG9rZW4sIFZhbHVlKQkJCQkJXAorZG8J
CQkJCQkJCVwKKyAgaWYgKHl5Y2hhciA9PSBZWUVNUFRZICYmIHl5bGVuID09IDEpCQkJCVwKKyAg
ICB7CQkJCQkJCQlcCisgICAgICB5eWNoYXIgPSAoVG9rZW4pOwkJCQkJCVwKKyAgICAgIHl5bHZh
bCA9IChWYWx1ZSk7CQkJCQkJXAorICAgICAgeXl0b2tlbiA9IFlZVFJBTlNMQVRFICh5eWNoYXIp
OwkJCQlcCisgICAgICBZWVBPUFNUQUNLICgxKTsJCQkJCQlcCisgICAgICBnb3RvIHl5YmFja3Vw
OwkJCQkJCVwKKyAgICB9CQkJCQkJCQlcCisgIGVsc2UJCQkJCQkJCVwKKyAgICB7CQkJCQkJCQlc
CiAgICAgICB5eWVycm9yIChwYXJzZXIsIFlZXygic3ludGF4IGVycm9yOiBjYW5ub3QgYmFjayB1
cCIpKTsgXAotICAgICAgWVlFUlJPUjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIFlZRVJST1I7CQkJCQkJ
CVwKKyAgICB9CQkJCQkJCQlcCiB3aGlsZSAoWVlJRCAoMCkpCiAKIAotI2RlZmluZSBZWVRFUlJP
UiAgICAxCi0jZGVmaW5lIFlZRVJSQ09ERSAgICAyNTYKKyNkZWZpbmUgWVlURVJST1IJMQorI2Rl
ZmluZSBZWUVSUkNPREUJMjU2CiAKIAogLyogWVlMTE9DX0RFRkFVTFQgLS0gU2V0IENVUlJFTlQg
dG8gc3BhbiBmcm9tIFJIU1sxXSB0byBSSFNbTl0uCkBAIC03MzYsMjIgKzczNCwyMiBAQCB3aGls
ZSAoWVlJRCAoMCkpCiAKICNkZWZpbmUgWVlSSFNMT0MoUmhzLCBLKSAoKFJocylbS10pCiAjaWZu
ZGVmIFlZTExPQ19ERUZBVUxUCi0jIGRlZmluZSBZWUxMT0NfREVGQVVMVChDdXJyZW50LCBSaHMs
IE4pICAgICAgICAgICAgICAgIFwKLSAgICBkbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyMgZGVmaW5lIFlZTExPQ19ERUZBVUxUKEN1cnJlbnQsIFJocywgTikJCQkJXAor
ICAgIGRvCQkJCQkJCQkJXAogICAgICAgaWYgKFlZSUQgKE4pKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgICAgKEN1cnJlbnQpLmZpcnN0X2xpbmUgICA9IFlZUkhTTE9D
IChSaHMsIDEpLmZpcnN0X2xpbmU7ICAgIFwKLSAgICAgIChDdXJyZW50KS5maXJzdF9jb2x1bW4g
PSBZWVJIU0xPQyAoUmhzLCAxKS5maXJzdF9jb2x1bW47ICAgIFwKLSAgICAgIChDdXJyZW50KS5s
YXN0X2xpbmUgICAgPSBZWVJIU0xPQyAoUmhzLCBOKS5sYXN0X2xpbmU7ICAgICAgICBcCi0gICAg
ICAoQ3VycmVudCkubGFzdF9jb2x1bW4gID0gWVlSSFNMT0MgKFJocywgTikubGFzdF9jb2x1bW47
ICAgIFwKLSAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICBlbHNl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgICAgKEN1cnJlbnQpLmZpcnN0X2xpbmUgICA9IChDdXJyZW50
KS5sYXN0X2xpbmUgICA9ICAgICAgICBcCi0gICAgICAgIFlZUkhTTE9DIChSaHMsIDApLmxhc3Rf
bGluZTsgICAgICAgICAgICAgICAgXAotICAgICAgKEN1cnJlbnQpLmZpcnN0X2NvbHVtbiA9IChD
dXJyZW50KS5sYXN0X2NvbHVtbiA9ICAgICAgICBcCi0gICAgICAgIFlZUkhTTE9DIChSaHMsIDAp
Lmxhc3RfY29sdW1uOyAgICAgICAgICAgICAgICBcCi0gICAgfSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorCXsJCQkJCQkJCVwKKwkgIChDdXJyZW50KS5maXJzdF9saW5lICAgPSBZ
WVJIU0xPQyAoUmhzLCAxKS5maXJzdF9saW5lOwlcCisJICAoQ3VycmVudCkuZmlyc3RfY29sdW1u
ID0gWVlSSFNMT0MgKFJocywgMSkuZmlyc3RfY29sdW1uOwlcCisJICAoQ3VycmVudCkubGFzdF9s
aW5lICAgID0gWVlSSFNMT0MgKFJocywgTikubGFzdF9saW5lOwkJXAorCSAgKEN1cnJlbnQpLmxh
c3RfY29sdW1uICA9IFlZUkhTTE9DIChSaHMsIE4pLmxhc3RfY29sdW1uOwlcCisJfQkJCQkJCQkJ
XAorICAgICAgZWxzZQkJCQkJCQkJXAorCXsJCQkJCQkJCVwKKwkgIChDdXJyZW50KS5maXJzdF9s
aW5lICAgPSAoQ3VycmVudCkubGFzdF9saW5lICAgPQkJXAorCSAgICBZWVJIU0xPQyAoUmhzLCAw
KS5sYXN0X2xpbmU7CQkJCVwKKwkgIChDdXJyZW50KS5maXJzdF9jb2x1bW4gPSAoQ3VycmVudCku
bGFzdF9jb2x1bW4gPQkJXAorCSAgICBZWVJIU0xPQyAoUmhzLCAwKS5sYXN0X2NvbHVtbjsJCQkJ
XAorCX0JCQkJCQkJCVwKICAgICB3aGlsZSAoWVlJRCAoMCkpCiAjZW5kaWYKIApAQCAtNzYyLDEw
ICs3NjAsMTAgQEAgd2hpbGUgKFlZSUQgKDApKQogCiAjaWZuZGVmIFlZX0xPQ0FUSU9OX1BSSU5U
CiAjIGlmIGRlZmluZWQgWVlMVFlQRV9JU19UUklWSUFMICYmIFlZTFRZUEVfSVNfVFJJVklBTAot
IyAgZGVmaW5lIFlZX0xPQ0FUSU9OX1BSSU5UKEZpbGUsIExvYykgICAgICAgICAgICBcCi0gICAg
IGZwcmludGYgKEZpbGUsICIlZC4lZC0lZC4lZCIsICAgICAgICAgICAgXAotICAgICAgICAgIChM
b2MpLmZpcnN0X2xpbmUsIChMb2MpLmZpcnN0X2NvbHVtbiwgICAgXAotICAgICAgICAgIChMb2Mp
Lmxhc3RfbGluZSwgIChMb2MpLmxhc3RfY29sdW1uKQorIyAgZGVmaW5lIFlZX0xPQ0FUSU9OX1BS
SU5UKEZpbGUsIExvYykJCQlcCisgICAgIGZwcmludGYgKEZpbGUsICIlZC4lZC0lZC4lZCIsCQkJ
XAorCSAgICAgIChMb2MpLmZpcnN0X2xpbmUsIChMb2MpLmZpcnN0X2NvbHVtbiwJXAorCSAgICAg
IChMb2MpLmxhc3RfbGluZSwgIChMb2MpLmxhc3RfY29sdW1uKQogIyBlbHNlCiAjICBkZWZpbmUg
WVlfTE9DQVRJT05fUFJJTlQoRmlsZSwgTG9jKSAoKHZvaWQpIDApCiAjIGVuZGlmCkBAIC03ODgs
MjEgKzc4NiwyMSBAQCB3aGlsZSAoWVlJRCAoMCkpCiAjICBkZWZpbmUgWVlGUFJJTlRGIGZwcmlu
dGYKICMgZW5kaWYKIAotIyBkZWZpbmUgWVlEUFJJTlRGKEFyZ3MpICAgICAgICAgICAgXAotZG8g
eyAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgaWYgKHl5ZGVidWcpICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgWVlGUFJJTlRGIEFyZ3M7ICAgICAgICAgICAgICAgIFwKKyMgZGVmaW5lIFlZ
RFBSSU5URihBcmdzKQkJCVwKK2RvIHsJCQkJCQlcCisgIGlmICh5eWRlYnVnKQkJCQkJXAorICAg
IFlZRlBSSU5URiBBcmdzOwkJCQlcCiB9IHdoaWxlIChZWUlEICgwKSkKIAotIyBkZWZpbmUgWVlf
U1lNQk9MX1BSSU5UKFRpdGxlLCBUeXBlLCBWYWx1ZSwgTG9jYXRpb24pICAgICAgICAgICAgICBc
Ci1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gIGlmICh5eWRl
YnVnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgWVlGUFJJTlRGIChzdGRlcnIsICIl
cyAiLCBUaXRsZSk7ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIHl5X3N5bWJvbF9wcmlu
dCAoc3RkZXJyLCAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgIFR5cGUsIFZh
bHVlLCBwYXJzZXIpOyBcCi0gICAgICBZWUZQUklOVEYgKHN0ZGVyciwgIlxuIik7ICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorIyBkZWZpbmUgWVlfU1lNQk9MX1BSSU5UKFRpdGxlLCBUeXBlLCBWYWx1ZSwgTG9j
YXRpb24pCQkJICBcCitkbyB7CQkJCQkJCQkJICBcCisgIGlmICh5eWRlYnVnKQkJCQkJCQkJICBc
CisgICAgewkJCQkJCQkJCSAgXAorICAgICAgWVlGUFJJTlRGIChzdGRlcnIsICIlcyAiLCBUaXRs
ZSk7CQkJCQkgIFwKKyAgICAgIHl5X3N5bWJvbF9wcmludCAoc3RkZXJyLAkJCQkJCSAgXAorCQkg
IFR5cGUsIFZhbHVlLCBwYXJzZXIpOyBcCisgICAgICBZWUZQUklOVEYgKHN0ZGVyciwgIlxuIik7
CQkJCQkJICBcCisgICAgfQkJCQkJCQkJCSAgXAogfSB3aGlsZSAoWVlJRCAoMCkpCiAKIApAQCAt
ODE0LDE0ICs4MTIsMTQgQEAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAogI2lmIChkZWZpbmVkIF9fU1REQ19fIHx8IGRlZmluZWQgX19DOTlfX0ZVTkNfXyBcCiAg
ICAgIHx8IGRlZmluZWQgX19jcGx1c3BsdXMgfHwgZGVmaW5lZCBfTVNDX1ZFUikKIHN0YXRpYyB2
b2lkCi15eV9zeW1ib2xfdmFsdWVfcHJpbnQgKEZJTEUgKnl5b3V0cHV0LCBpbnQgeXl0eXBlLCBZ
WVNUWVBFIGNvbnN0ICogY29uc3QgeXl2YWx1ZXAsIFBhcnNlciYgcGFyc2VyKQoreXlfc3ltYm9s
X3ZhbHVlX3ByaW50IChGSUxFICp5eW91dHB1dCwgaW50IHl5dHlwZSwgWVlTVFlQRSBjb25zdCAq
IGNvbnN0IHl5dmFsdWVwLCBXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiBwYXJzZXIpCiAjZWxzZQog
c3RhdGljIHZvaWQKIHl5X3N5bWJvbF92YWx1ZV9wcmludCAoeXlvdXRwdXQsIHl5dHlwZSwgeXl2
YWx1ZXAsIHBhcnNlcikKICAgICBGSUxFICp5eW91dHB1dDsKICAgICBpbnQgeXl0eXBlOwogICAg
IFlZU1RZUEUgY29uc3QgKiBjb25zdCB5eXZhbHVlcDsKLSAgICBQYXJzZXImIHBhcnNlcjsKKyAg
ICBXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiBwYXJzZXI7CiAjZW5kaWYKIHsKICAgaWYgKCF5eXZh
bHVlcCkKQEAgLTgzNiw3ICs4MzQsNyBAQCB5eV9zeW1ib2xfdmFsdWVfcHJpbnQgKHl5b3V0cHV0
LCB5eXR5cGUsIHl5dmFsdWVwLCBwYXJzZXIpCiAgIHN3aXRjaCAoeXl0eXBlKQogICAgIHsKICAg
ICAgIGRlZmF1bHQ6Ci0gICAgYnJlYWs7CisJYnJlYWs7CiAgICAgfQogfQogCkBAIC04NDgsMTQg
Kzg0NiwxNCBAQCB5eV9zeW1ib2xfdmFsdWVfcHJpbnQgKHl5b3V0cHV0LCB5eXR5cGUsIHl5dmFs
dWVwLCBwYXJzZXIpCiAjaWYgKGRlZmluZWQgX19TVERDX18gfHwgZGVmaW5lZCBfX0M5OV9fRlVO
Q19fIFwKICAgICAgfHwgZGVmaW5lZCBfX2NwbHVzcGx1cyB8fCBkZWZpbmVkIF9NU0NfVkVSKQog
c3RhdGljIHZvaWQKLXl5X3N5bWJvbF9wcmludCAoRklMRSAqeXlvdXRwdXQsIGludCB5eXR5cGUs
IFlZU1RZUEUgY29uc3QgKiBjb25zdCB5eXZhbHVlcCwgUGFyc2VyJiBwYXJzZXIpCit5eV9zeW1i
b2xfcHJpbnQgKEZJTEUgKnl5b3V0cHV0LCBpbnQgeXl0eXBlLCBZWVNUWVBFIGNvbnN0ICogY29u
c3QgeXl2YWx1ZXAsIFdlYkNvcmU6OlhQYXRoOjpQYXJzZXImIHBhcnNlcikKICNlbHNlCiBzdGF0
aWMgdm9pZAogeXlfc3ltYm9sX3ByaW50ICh5eW91dHB1dCwgeXl0eXBlLCB5eXZhbHVlcCwgcGFy
c2VyKQogICAgIEZJTEUgKnl5b3V0cHV0OwogICAgIGludCB5eXR5cGU7CiAgICAgWVlTVFlQRSBj
b25zdCAqIGNvbnN0IHl5dmFsdWVwOwotICAgIFBhcnNlciYgcGFyc2VyOworICAgIFdlYkNvcmU6
OlhQYXRoOjpQYXJzZXImIHBhcnNlcjsKICNlbmRpZgogewogICBpZiAoeXl0eXBlIDwgWVlOVE9L
RU5TKQpAQCAtODg5LDEwICs4ODcsMTAgQEAgeXlfc3RhY2tfcHJpbnQgKGJvdHRvbSwgdG9wKQog
ICBZWUZQUklOVEYgKHN0ZGVyciwgIlxuIik7CiB9CiAKLSMgZGVmaW5lIFlZX1NUQUNLX1BSSU5U
KEJvdHRvbSwgVG9wKSAgICAgICAgICAgICAgICBcCi1kbyB7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gIGlmICh5eWRlYnVnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgeXlfc3RhY2tfcHJpbnQgKChCb3R0b20pLCAoVG9wKSk7ICAgICAgICAgICAgICAgIFwK
KyMgZGVmaW5lIFlZX1NUQUNLX1BSSU5UKEJvdHRvbSwgVG9wKQkJCQlcCitkbyB7CQkJCQkJCQlc
CisgIGlmICh5eWRlYnVnKQkJCQkJCQlcCisgICAgeXlfc3RhY2tfcHJpbnQgKChCb3R0b20pLCAo
VG9wKSk7CQkJCVwKIH0gd2hpbGUgKFlZSUQgKDApKQogCiAKQEAgLTkwMywzNCArOTAxLDM0IEBA
IGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICNpZiAoZGVmaW5lZCBfX1NU
RENfXyB8fCBkZWZpbmVkIF9fQzk5X19GVU5DX18gXAogICAgICB8fCBkZWZpbmVkIF9fY3BsdXNw
bHVzIHx8IGRlZmluZWQgX01TQ19WRVIpCiBzdGF0aWMgdm9pZAoteXlfcmVkdWNlX3ByaW50IChZ
WVNUWVBFICp5eXZzcCwgaW50IHl5cnVsZSwgUGFyc2VyJiBwYXJzZXIpCit5eV9yZWR1Y2VfcHJp
bnQgKFlZU1RZUEUgKnl5dnNwLCBpbnQgeXlydWxlLCBXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiBw
YXJzZXIpCiAjZWxzZQogc3RhdGljIHZvaWQKIHl5X3JlZHVjZV9wcmludCAoeXl2c3AsIHl5cnVs
ZSwgcGFyc2VyKQogICAgIFlZU1RZUEUgKnl5dnNwOwogICAgIGludCB5eXJ1bGU7Ci0gICAgUGFy
c2VyJiBwYXJzZXI7CisgICAgV2ViQ29yZTo6WFBhdGg6OlBhcnNlciYgcGFyc2VyOwogI2VuZGlm
CiB7CiAgIGludCB5eW5yaHMgPSB5eXIyW3l5cnVsZV07CiAgIGludCB5eWk7CiAgIHVuc2lnbmVk
IGxvbmcgaW50IHl5bG5vID0geXlybGluZVt5eXJ1bGVdOwogICBZWUZQUklOVEYgKHN0ZGVyciwg
IlJlZHVjaW5nIHN0YWNrIGJ5IHJ1bGUgJWQgKGxpbmUgJWx1KTpcbiIsCi0gICAgICAgICB5eXJ1
bGUgLSAxLCB5eWxubyk7CisJICAgICB5eXJ1bGUgLSAxLCB5eWxubyk7CiAgIC8qIFRoZSBzeW1i
b2xzIGJlaW5nIHJlZHVjZWQuICAqLwogICBmb3IgKHl5aSA9IDA7IHl5aSA8IHl5bnJoczsgeXlp
KyspCiAgICAgewogICAgICAgZnByaW50ZiAoc3RkZXJyLCAiICAgJCVkID0gIiwgeXlpICsgMSk7
CiAgICAgICB5eV9zeW1ib2xfcHJpbnQgKHN0ZGVyciwgeXlyaHNbeXlwcmhzW3l5cnVsZV0gKyB5
eWldLAotICAgICAgICAgICAgICAgJih5eXZzcFsoeXlpICsgMSkgLSAoeXlucmhzKV0pCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAsIHBhcnNlcik7CisJCSAgICAgICAmKHl5dnNwWyh5
eWkgKyAxKSAtICh5eW5yaHMpXSkKKwkJICAgICAgIAkJICAgICAgICwgcGFyc2VyKTsKICAgICAg
IGZwcmludGYgKHN0ZGVyciwgIlxuIik7CiAgICAgfQogfQogCi0jIGRlZmluZSBZWV9SRURVQ0Vf
UFJJTlQoUnVsZSkgICAgICAgIFwKLWRvIHsgICAgICAgICAgICAgICAgICAgIFwKLSAgaWYgKHl5
ZGVidWcpICAgICAgICAgICAgICAgIFwKKyMgZGVmaW5lIFlZX1JFRFVDRV9QUklOVChSdWxlKQkJ
XAorZG8gewkJCQkJXAorICBpZiAoeXlkZWJ1ZykJCQkJXAogICAgIHl5X3JlZHVjZV9wcmludCAo
eXl2c3AsIFJ1bGUsIHBhcnNlcik7IFwKIH0gd2hpbGUgKFlZSUQgKDApKQogCkBAIC05NDYsNyAr
OTQ0LDcgQEAgaW50IHl5ZGVidWc7CiAKIAogLyogWVlJTklUREVQVEggLS0gaW5pdGlhbCBzaXpl
IG9mIHRoZSBwYXJzZXIncyBzdGFja3MuICAqLwotI2lmbmRlZiAgICBZWUlOSVRERVBUSAorI2lm
bmRlZglZWUlOSVRERVBUSAogIyBkZWZpbmUgWVlJTklUREVQVEggMjAwCiAjZW5kaWYKIApAQCAt
MTAzMywyNyArMTAzMSwyNyBAQCB5eXRuYW1lcnIgKGNoYXIgKnl5cmVzLCBjb25zdCBjaGFyICp5
eXN0cikKICAgICAgIGNoYXIgY29uc3QgKnl5cCA9IHl5c3RyOwogCiAgICAgICBmb3IgKDs7KQot
ICAgIHN3aXRjaCAoKisreXlwKQotICAgICAgewotICAgICAgY2FzZSAnXCcnOgotICAgICAgY2Fz
ZSAnLCc6Ci0gICAgICAgIGdvdG8gZG9fbm90X3N0cmlwX3F1b3RlczsKLQotICAgICAgY2FzZSAn
XFwnOgotICAgICAgICBpZiAoKisreXlwICE9ICdcXCcpCi0gICAgICAgICAgZ290byBkb19ub3Rf
c3RyaXBfcXVvdGVzOwotICAgICAgICAvKiBGYWxsIHRocm91Z2guICAqLwotICAgICAgZGVmYXVs
dDoKLSAgICAgICAgaWYgKHl5cmVzKQotICAgICAgICAgIHl5cmVzW3l5bl0gPSAqeXlwOwotICAg
ICAgICB5eW4rKzsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICAgIGNhc2UgJyInOgotICAgICAgICBp
ZiAoeXlyZXMpCi0gICAgICAgICAgeXlyZXNbeXluXSA9ICdcMCc7Ci0gICAgICAgIHJldHVybiB5
eW47Ci0gICAgICB9CisJc3dpdGNoICgqKyt5eXApCisJICB7CisJICBjYXNlICdcJyc6CisJICBj
YXNlICcsJzoKKwkgICAgZ290byBkb19ub3Rfc3RyaXBfcXVvdGVzOworCisJICBjYXNlICdcXCc6
CisJICAgIGlmICgqKyt5eXAgIT0gJ1xcJykKKwkgICAgICBnb3RvIGRvX25vdF9zdHJpcF9xdW90
ZXM7CisJICAgIC8qIEZhbGwgdGhyb3VnaC4gICovCisJICBkZWZhdWx0OgorCSAgICBpZiAoeXly
ZXMpCisJICAgICAgeXlyZXNbeXluXSA9ICp5eXA7CisJICAgIHl5bisrOworCSAgICBicmVhazsK
KworCSAgY2FzZSAnIic6CisJICAgIGlmICh5eXJlcykKKwkgICAgICB5eXJlc1t5eW5dID0gJ1ww
JzsKKwkgICAgcmV0dXJuIHl5bjsKKwkgIH0KICAgICBkb19ub3Rfc3RyaXBfcXVvdGVzOiA7CiAg
ICAgfQogCkBAIC0xMDkxLDcgKzEwODksNyBAQCB5eXN5bnRheF9lcnJvciAoY2hhciAqeXlyZXN1
bHQsIGludCB5eXN0YXRlLCBpbnQgeXljaGFyKQogCiAjIGlmIDAKICAgICAgIC8qIFRoaXMgaXMg
c28geGdldHRleHQgc2VlcyB0aGUgdHJhbnNsYXRhYmxlIGZvcm1hdHMgdGhhdCBhcmUKLSAgICAg
Y29uc3RydWN0ZWQgb24gdGhlIGZseS4gICovCisJIGNvbnN0cnVjdGVkIG9uIHRoZSBmbHkuICAq
LwogICAgICAgWVlfKCJzeW50YXggZXJyb3IsIHVuZXhwZWN0ZWQgJXMiKTsKICAgICAgIFlZXygi
c3ludGF4IGVycm9yLCB1bmV4cGVjdGVkICVzLCBleHBlY3RpbmcgJXMiKTsKICAgICAgIFlZXygi
c3ludGF4IGVycm9yLCB1bmV4cGVjdGVkICVzLCBleHBlY3RpbmcgJXMgb3IgJXMiKTsKQEAgLTEx
MDQsMTMgKzExMDIsMTMgQEAgeXlzeW50YXhfZXJyb3IgKGNoYXIgKnl5cmVzdWx0LCBpbnQgeXlz
dGF0ZSwgaW50IHl5Y2hhcikKICAgICAgIHN0YXRpYyBjaGFyIGNvbnN0IHl5ZXhwZWN0aW5nW10g
PSAiLCBleHBlY3RpbmcgJXMiOwogICAgICAgc3RhdGljIGNoYXIgY29uc3QgeXlvcltdID0gIiBv
ciAlcyI7CiAgICAgICBjaGFyIHl5Zm9ybWF0W3NpemVvZiB5eXVuZXhwZWN0ZWQKLSAgICAgICAg
ICAgICsgc2l6ZW9mIHl5ZXhwZWN0aW5nIC0gMQotICAgICAgICAgICAgKyAoKFlZRVJST1JfVkVS
Qk9TRV9BUkdTX01BWElNVU0gLSAyKQotICAgICAgICAgICAgICAgKiAoc2l6ZW9mIHl5b3IgLSAx
KSldOworCQkgICAgKyBzaXplb2YgeXlleHBlY3RpbmcgLSAxCisJCSAgICArICgoWVlFUlJPUl9W
RVJCT1NFX0FSR1NfTUFYSU1VTSAtIDIpCisJCSAgICAgICAqIChzaXplb2YgeXlvciAtIDEpKV07
CiAgICAgICBjaGFyIGNvbnN0ICp5eXByZWZpeCA9IHl5ZXhwZWN0aW5nOwogCiAgICAgICAvKiBT
dGFydCBZWVggYXQgLVlZTiBpZiBuZWdhdGl2ZSB0byBhdm9pZCBuZWdhdGl2ZSBpbmRleGVzIGlu
Ci0gICAgIFlZQ0hFQ0suICAqLworCSBZWUNIRUNLLiAgKi8KICAgICAgIGludCB5eXhiZWdpbiA9
IHl5biA8IDAgPyAteXluIDogMDsKIAogICAgICAgLyogU3RheSB3aXRoaW4gYm91bmRzIG9mIGJv
dGggeXljaGVjayBhbmQgeXl0bmFtZS4gICovCkBAIC0xMTIyLDIyICsxMTIwLDIyIEBAIHl5c3lu
dGF4X2Vycm9yIChjaGFyICp5eXJlc3VsdCwgaW50IHl5c3RhdGUsIGludCB5eWNoYXIpCiAgICAg
ICB5eWZtdCA9IHl5c3RwY3B5ICh5eWZvcm1hdCwgeXl1bmV4cGVjdGVkKTsKIAogICAgICAgZm9y
ICh5eXggPSB5eXhiZWdpbjsgeXl4IDwgeXl4ZW5kOyArK3l5eCkKLSAgICBpZiAoeXljaGVja1t5
eXggKyB5eW5dID09IHl5eCAmJiB5eXggIT0gWVlURVJST1IpCi0gICAgICB7Ci0gICAgICAgIGlm
ICh5eWNvdW50ID09IFlZRVJST1JfVkVSQk9TRV9BUkdTX01BWElNVU0pCi0gICAgICAgICAgewot
ICAgICAgICB5eWNvdW50ID0gMTsKLSAgICAgICAgeXlzaXplID0geXlzaXplMDsKLSAgICAgICAg
eXlmb3JtYXRbc2l6ZW9mIHl5dW5leHBlY3RlZCAtIDFdID0gJ1wwJzsKLSAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgfQotICAgICAgICB5eWFyZ1t5eWNvdW50KytdID0geXl0bmFtZVt5eXhdOwot
ICAgICAgICB5eXNpemUxID0geXlzaXplICsgeXl0bmFtZXJyICgwLCB5eXRuYW1lW3l5eF0pOwot
ICAgICAgICB5eXNpemVfb3ZlcmZsb3cgfD0gKHl5c2l6ZTEgPCB5eXNpemUpOwotICAgICAgICB5
eXNpemUgPSB5eXNpemUxOwotICAgICAgICB5eWZtdCA9IHl5c3RwY3B5ICh5eWZtdCwgeXlwcmVm
aXgpOwotICAgICAgICB5eXByZWZpeCA9IHl5b3I7Ci0gICAgICB9CisJaWYgKHl5Y2hlY2tbeXl4
ICsgeXluXSA9PSB5eXggJiYgeXl4ICE9IFlZVEVSUk9SKQorCSAgeworCSAgICBpZiAoeXljb3Vu
dCA9PSBZWUVSUk9SX1ZFUkJPU0VfQVJHU19NQVhJTVVNKQorCSAgICAgIHsKKwkJeXljb3VudCA9
IDE7CisJCXl5c2l6ZSA9IHl5c2l6ZTA7CisJCXl5Zm9ybWF0W3NpemVvZiB5eXVuZXhwZWN0ZWQg
LSAxXSA9ICdcMCc7CisJCWJyZWFrOworCSAgICAgIH0KKwkgICAgeXlhcmdbeXljb3VudCsrXSA9
IHl5dG5hbWVbeXl4XTsKKwkgICAgeXlzaXplMSA9IHl5c2l6ZSArIHl5dG5hbWVyciAoMCwgeXl0
bmFtZVt5eXhdKTsKKwkgICAgeXlzaXplX292ZXJmbG93IHw9ICh5eXNpemUxIDwgeXlzaXplKTsK
KwkgICAgeXlzaXplID0geXlzaXplMTsKKwkgICAgeXlmbXQgPSB5eXN0cGNweSAoeXlmbXQsIHl5
cHJlZml4KTsKKwkgICAgeXlwcmVmaXggPSB5eW9yOworCSAgfQogCiAgICAgICB5eWYgPSBZWV8o
eXlmb3JtYXQpOwogICAgICAgeXlzaXplMSA9IHl5c2l6ZSArIHl5c3RybGVuICh5eWYpOwpAQCAt
MTE0NSwyOSArMTE0MywyOSBAQCB5eXN5bnRheF9lcnJvciAoY2hhciAqeXlyZXN1bHQsIGludCB5
eXN0YXRlLCBpbnQgeXljaGFyKQogICAgICAgeXlzaXplID0geXlzaXplMTsKIAogICAgICAgaWYg
KHl5c2l6ZV9vdmVyZmxvdykKLSAgICByZXR1cm4gWVlTSVpFX01BWElNVU07CisJcmV0dXJuIFlZ
U0laRV9NQVhJTVVNOwogCiAgICAgICBpZiAoeXlyZXN1bHQpCi0gICAgewotICAgICAgLyogQXZv
aWQgc3ByaW50ZiwgYXMgdGhhdCBpbmZyaW5nZXMgb24gdGhlIHVzZXIncyBuYW1lIHNwYWNlLgot
ICAgICAgICAgRG9uJ3QgaGF2ZSB1bmRlZmluZWQgYmVoYXZpb3IgZXZlbiBpZiB0aGUgdHJhbnNs
YXRpb24KLSAgICAgICAgIHByb2R1Y2VkIGEgc3RyaW5nIHdpdGggdGhlIHdyb25nIG51bWJlciBv
ZiAiJXMicy4gICovCi0gICAgICBjaGFyICp5eXAgPSB5eXJlc3VsdDsKLSAgICAgIGludCB5eWkg
PSAwOwotICAgICAgd2hpbGUgKCgqeXlwID0gKnl5ZikgIT0gJ1wwJykKLSAgICAgICAgewotICAg
ICAgICAgIGlmICgqeXlwID09ICclJyAmJiB5eWZbMV0gPT0gJ3MnICYmIHl5aSA8IHl5Y291bnQp
Ci0gICAgICAgIHsKLSAgICAgICAgICB5eXAgKz0geXl0bmFtZXJyICh5eXAsIHl5YXJnW3l5aSsr
XSk7Ci0gICAgICAgICAgeXlmICs9IDI7Ci0gICAgICAgIH0KLSAgICAgICAgICBlbHNlCi0gICAg
ICAgIHsKLSAgICAgICAgICB5eXArKzsKLSAgICAgICAgICB5eWYrKzsKLSAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgfQorCXsKKwkgIC8qIEF2b2lkIHNwcmludGYsIGFzIHRoYXQgaW5mcmluZ2Vz
IG9uIHRoZSB1c2VyJ3MgbmFtZSBzcGFjZS4KKwkgICAgIERvbid0IGhhdmUgdW5kZWZpbmVkIGJl
aGF2aW9yIGV2ZW4gaWYgdGhlIHRyYW5zbGF0aW9uCisJICAgICBwcm9kdWNlZCBhIHN0cmluZyB3
aXRoIHRoZSB3cm9uZyBudW1iZXIgb2YgIiVzInMuICAqLworCSAgY2hhciAqeXlwID0geXlyZXN1
bHQ7CisJICBpbnQgeXlpID0gMDsKKwkgIHdoaWxlICgoKnl5cCA9ICp5eWYpICE9ICdcMCcpCisJ
ICAgIHsKKwkgICAgICBpZiAoKnl5cCA9PSAnJScgJiYgeXlmWzFdID09ICdzJyAmJiB5eWkgPCB5
eWNvdW50KQorCQl7CisJCSAgeXlwICs9IHl5dG5hbWVyciAoeXlwLCB5eWFyZ1t5eWkrK10pOwor
CQkgIHl5ZiArPSAyOworCQl9CisJICAgICAgZWxzZQorCQl7CisJCSAgeXlwKys7CisJCSAgeXlm
Kys7CisJCX0KKwkgICAgfQorCX0KICAgICAgIHJldHVybiB5eXNpemU7CiAgICAgfQogfQpAQCAt
MTE4MiwxNCArMTE4MCwxNCBAQCB5eXN5bnRheF9lcnJvciAoY2hhciAqeXlyZXN1bHQsIGludCB5
eXN0YXRlLCBpbnQgeXljaGFyKQogI2lmIChkZWZpbmVkIF9fU1REQ19fIHx8IGRlZmluZWQgX19D
OTlfX0ZVTkNfXyBcCiAgICAgIHx8IGRlZmluZWQgX19jcGx1c3BsdXMgfHwgZGVmaW5lZCBfTVND
X1ZFUikKIHN0YXRpYyB2b2lkCi15eWRlc3RydWN0IChjb25zdCBjaGFyICp5eW1zZywgaW50IHl5
dHlwZSwgWVlTVFlQRSAqeXl2YWx1ZXAsIFBhcnNlciYgcGFyc2VyKQoreXlkZXN0cnVjdCAoY29u
c3QgY2hhciAqeXltc2csIGludCB5eXR5cGUsIFlZU1RZUEUgKnl5dmFsdWVwLCBXZWJDb3JlOjpY
UGF0aDo6UGFyc2VyJiBwYXJzZXIpCiAjZWxzZQogc3RhdGljIHZvaWQKIHl5ZGVzdHJ1Y3QgKHl5
bXNnLCB5eXR5cGUsIHl5dmFsdWVwLCBwYXJzZXIpCiAgICAgY29uc3QgY2hhciAqeXltc2c7CiAg
ICAgaW50IHl5dHlwZTsKICAgICBZWVNUWVBFICp5eXZhbHVlcDsKLSAgICBQYXJzZXImIHBhcnNl
cjsKKyAgICBXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiBwYXJzZXI7CiAjZW5kaWYKIHsKICAgWVlV
U0UgKHl5dmFsdWVwKTsKQEAgLTEyMDIsMTYzICsxMjAwLDE2MyBAQCB5eWRlc3RydWN0ICh5eW1z
ZywgeXl0eXBlLCB5eXZhbHVlcCwgcGFyc2VyKQogICBzd2l0Y2ggKHl5dHlwZSkKICAgICB7CiAg
ICAgICBjYXNlIDEwOiAvKiAiRlVOQ1RJT05OQU1FIiAqLwotI2xpbmUgODAgIldlYkNvcmUveG1s
L1hQYXRoR3JhbW1hci55IgotICAgIHsgaWYgKCh5eXZhbHVlcC0+c3RyaW5nKSkgKHl5dmFsdWVw
LT5zdHJpbmcpLT5kZXJlZigpOyB9OwotI2xpbmUgMTIwNSAiLi9YUGF0aEdyYW1tYXIuY3BwIgot
ICAgIGJyZWFrOworI2xpbmUgNzcgIlhQYXRoR3JhbW1hci55IgorCXsgaWYgKCh5eXZhbHVlcC0+
c3RyaW5nKSkgKHl5dmFsdWVwLT5zdHJpbmcpLT5kZXJlZigpOyB9OworI2xpbmUgMTIwMiAiWFBh
dGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgMTE6IC8qICJMSVRFUkFMIiAqLwot
I2xpbmUgODAgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgaWYgKCh5eXZhbHVl
cC0+c3RyaW5nKSkgKHl5dmFsdWVwLT5zdHJpbmcpLT5kZXJlZigpOyB9OwotI2xpbmUgMTIxMCAi
Li9YUGF0aEdyYW1tYXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgNzcgIlhQYXRoR3JhbW1hci55
IgorCXsgaWYgKCh5eXZhbHVlcC0+c3RyaW5nKSkgKHl5dmFsdWVwLT5zdHJpbmcpLT5kZXJlZigp
OyB9OworI2xpbmUgMTIwNyAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2Ug
MTI6IC8qICJOQU1FVEVTVCIgKi8KLSNsaW5lIDgwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIu
eSIKLSAgICB7IGlmICgoeXl2YWx1ZXAtPnN0cmluZykpICh5eXZhbHVlcC0+c3RyaW5nKS0+ZGVy
ZWYoKTsgfTsKLSNsaW5lIDEyMTUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNs
aW5lIDc3ICJYUGF0aEdyYW1tYXIueSIKKwl7IGlmICgoeXl2YWx1ZXAtPnN0cmluZykpICh5eXZh
bHVlcC0+c3RyaW5nKS0+ZGVyZWYoKTsgfTsKKyNsaW5lIDEyMTIgIlhQYXRoR3JhbW1hci5jcHAi
CisJYnJlYWs7CiAgICAgICBjYXNlIDEzOiAvKiAiTlVNQkVSIiAqLwotI2xpbmUgODAgIldlYkNv
cmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgaWYgKCh5eXZhbHVlcC0+c3RyaW5nKSkgKHl5
dmFsdWVwLT5zdHJpbmcpLT5kZXJlZigpOyB9OwotI2xpbmUgMTIyMCAiLi9YUGF0aEdyYW1tYXIu
Y3BwIgotICAgIGJyZWFrOworI2xpbmUgNzcgIlhQYXRoR3JhbW1hci55IgorCXsgaWYgKCh5eXZh
bHVlcC0+c3RyaW5nKSkgKHl5dmFsdWVwLT5zdHJpbmcpLT5kZXJlZigpOyB9OworI2xpbmUgMTIx
NyAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgMTQ6IC8qICJOT0RFVFlQ
RSIgKi8KLSNsaW5lIDgwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGlmICgo
eXl2YWx1ZXAtPnN0cmluZykpICh5eXZhbHVlcC0+c3RyaW5nKS0+ZGVyZWYoKTsgfTsKLSNsaW5l
IDEyMjUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDc3ICJYUGF0aEdy
YW1tYXIueSIKKwl7IGlmICgoeXl2YWx1ZXAtPnN0cmluZykpICh5eXZhbHVlcC0+c3RyaW5nKS0+
ZGVyZWYoKTsgfTsKKyNsaW5lIDEyMjIgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAg
ICBjYXNlIDE1OiAvKiAiVkFSSUFCTEVSRUZFUkVOQ0UiICovCi0jbGluZSA4MCAiV2ViQ29yZS94
bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBpZiAoKHl5dmFsdWVwLT5zdHJpbmcpKSAoeXl2YWx1
ZXAtPnN0cmluZyktPmRlcmVmKCk7IH07Ci0jbGluZSAxMjMwICIuL1hQYXRoR3JhbW1hci5jcHAi
Ci0gICAgYnJlYWs7CisjbGluZSA3NyAiWFBhdGhHcmFtbWFyLnkiCisJeyBpZiAoKHl5dmFsdWVw
LT5zdHJpbmcpKSAoeXl2YWx1ZXAtPnN0cmluZyktPmRlcmVmKCk7IH07CisjbGluZSAxMjI3ICJY
UGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSAzNTogLyogIkV4cHIiICovCi0j
bGluZSAxMDAgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZh
bHVlcC0+ZXhwcmVzc2lvbik7IH07Ci0jbGluZSAxMjM1ICIuL1hQYXRoR3JhbW1hci5jcHAiCi0g
ICAgYnJlYWs7CisjbGluZSA5NyAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUgKHl5dmFsdWVw
LT5leHByZXNzaW9uKTsgfTsKKyNsaW5lIDEyMzIgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7
CiAgICAgICBjYXNlIDM2OiAvKiAiTG9jYXRpb25QYXRoIiAqLwotI2xpbmUgODggIldlYkNvcmUv
eG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+bG9jYXRpb25QYXRo
KTsgfTsKLSNsaW5lIDEyNDAgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5l
IDg1ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmxvY2F0aW9uUGF0aCk7
IH07CisjbGluZSAxMjM3ICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSAz
NzogLyogIkFic29sdXRlTG9jYXRpb25QYXRoIiAqLwotI2xpbmUgODggIldlYkNvcmUveG1sL1hQ
YXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+bG9jYXRpb25QYXRoKTsgfTsK
LSNsaW5lIDEyNDUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDg1ICJY
UGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmxvY2F0aW9uUGF0aCk7IH07Cisj
bGluZSAxMjQyICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSAzODogLyog
IlJlbGF0aXZlTG9jYXRpb25QYXRoIiAqLwotI2xpbmUgODggIldlYkNvcmUveG1sL1hQYXRoR3Jh
bW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+bG9jYXRpb25QYXRoKTsgfTsKLSNsaW5l
IDEyNTAgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDg1ICJYUGF0aEdy
YW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmxvY2F0aW9uUGF0aCk7IH07CisjbGluZSAx
MjQ3ICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSAzOTogLyogIlN0ZXAi
ICovCi0jbGluZSA5NyAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUg
KHl5dmFsdWVwLT5zdGVwKTsgfTsKLSNsaW5lIDEyNTUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAg
ICBicmVhazsKKyNsaW5lIDk0ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAt
PnN0ZXApOyB9OworI2xpbmUgMTI1MiAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAg
IGNhc2UgNDE6IC8qICJOb2RlVGVzdCIgKi8KLSNsaW5lIDkxICJXZWJDb3JlL3htbC9YUGF0aEdy
YW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2YWx1ZXAtPm5vZGVUZXN0KTsgfTsKLSNsaW5lIDEy
NjAgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDg4ICJYUGF0aEdyYW1t
YXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPm5vZGVUZXN0KTsgfTsKKyNsaW5lIDEyNTcgIlhQ
YXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNlIDQyOiAvKiAiT3B0aW9uYWxQcmVk
aWNhdGVMaXN0IiAqLwotI2xpbmUgOTQgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAg
IHsgZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvblZlY3Rvcik7IH07Ci0jbGluZSAxMjY1ICIu
L1hQYXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7CisjbGluZSA5MSAiWFBhdGhHcmFtbWFyLnki
CisJeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uVmVjdG9yKTsgfTsKKyNsaW5lIDEyNjIg
IlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNlIDQzOiAvKiAiUHJlZGljYXRl
TGlzdCIgKi8KLSNsaW5lIDk0ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRl
bGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb25WZWN0b3IpOyB9OwotI2xpbmUgMTI3MCAiLi9YUGF0
aEdyYW1tYXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgOTEgIlhQYXRoR3JhbW1hci55IgorCXsg
ZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvblZlY3Rvcik7IH07CisjbGluZSAxMjY3ICJYUGF0
aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSA0NDogLyogIlByZWRpY2F0ZSIgKi8K
LSNsaW5lIDEwMCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5
dmFsdWVwLT5leHByZXNzaW9uKTsgfTsKLSNsaW5lIDEyNzUgIi4vWFBhdGhHcmFtbWFyLmNwcCIK
LSAgICBicmVhazsKKyNsaW5lIDk3ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1
ZXAtPmV4cHJlc3Npb24pOyB9OworI2xpbmUgMTI3MiAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVh
azsKICAgICAgIGNhc2UgNDU6IC8qICJEZXNjZW5kYW50T3JTZWxmIiAqLwotI2xpbmUgOTcgIldl
YkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+c3RlcCk7
IH07Ci0jbGluZSAxMjgwICIuL1hQYXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7CisjbGluZSA5
NCAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUgKHl5dmFsdWVwLT5zdGVwKTsgfTsKKyNsaW5l
IDEyNzcgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNlIDQ2OiAvKiAiQWJi
cmV2aWF0ZWRTdGVwIiAqLwotI2xpbmUgOTcgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55Igot
ICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+c3RlcCk7IH07Ci0jbGluZSAxMjg1ICIuL1hQYXRoR3Jh
bW1hci5jcHAiCi0gICAgYnJlYWs7CisjbGluZSA5NCAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxl
dGUgKHl5dmFsdWVwLT5zdGVwKTsgfTsKKyNsaW5lIDEyODIgIlhQYXRoR3JhbW1hci5jcHAiCisJ
YnJlYWs7CiAgICAgICBjYXNlIDQ3OiAvKiAiUHJpbWFyeUV4cHIiICovCi0jbGluZSAxMDAgIldl
YkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVz
c2lvbik7IH07Ci0jbGluZSAxMjkwICIuL1hQYXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7Cisj
bGluZSA5NyAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9u
KTsgfTsKKyNsaW5lIDEyODcgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNl
IDQ4OiAvKiAiRnVuY3Rpb25DYWxsIiAqLwotI2xpbmUgMTAwICJXZWJDb3JlL3htbC9YUGF0aEdy
YW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OwotI2xpbmUg
MTI5NSAiLi9YUGF0aEdyYW1tYXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgOTcgIlhQYXRoR3Jh
bW1hci55IgorCXsgZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvbik7IH07CisjbGluZSAxMjky
ICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSA0OTogLyogIkFyZ3VtZW50
TGlzdCIgKi8KLSNsaW5lIDk0ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRl
bGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb25WZWN0b3IpOyB9OwotI2xpbmUgMTMwMCAiLi9YUGF0
aEdyYW1tYXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgOTEgIlhQYXRoR3JhbW1hci55IgorCXsg
ZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvblZlY3Rvcik7IH07CisjbGluZSAxMjk3ICJYUGF0
aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSA1MDogLyogIkFyZ3VtZW50IiAqLwot
I2xpbmUgMTAwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2
YWx1ZXAtPmV4cHJlc3Npb24pOyB9OwotI2xpbmUgMTMwNSAiLi9YUGF0aEdyYW1tYXIuY3BwIgot
ICAgIGJyZWFrOworI2xpbmUgOTcgIlhQYXRoR3JhbW1hci55IgorCXsgZGVsZXRlICh5eXZhbHVl
cC0+ZXhwcmVzc2lvbik7IH07CisjbGluZSAxMzAyICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFr
OwogICAgICAgY2FzZSA1MTogLyogIlVuaW9uRXhwciIgKi8KLSNsaW5lIDEwMCAiV2ViQ29yZS94
bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsg
fTsKLSNsaW5lIDEzMTAgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDk3
ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9Owor
I2xpbmUgMTMwNyAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgNTI6IC8q
ICJQYXRoRXhwciIgKi8KLSNsaW5lIDEwMCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0g
ICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsgfTsKLSNsaW5lIDEzMTUgIi4vWFBh
dGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDk3ICJYUGF0aEdyYW1tYXIueSIKKwl7
IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OworI2xpbmUgMTMxMiAiWFBhdGhHcmFt
bWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgNTM6IC8qICJGaWx0ZXJFeHByIiAqLwotI2xp
bmUgMTAwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2YWx1
ZXAtPmV4cHJlc3Npb24pOyB9OwotI2xpbmUgMTMyMCAiLi9YUGF0aEdyYW1tYXIuY3BwIgotICAg
IGJyZWFrOworI2xpbmUgOTcgIlhQYXRoR3JhbW1hci55IgorCXsgZGVsZXRlICh5eXZhbHVlcC0+
ZXhwcmVzc2lvbik7IH07CisjbGluZSAxMzE3ICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwog
ICAgICAgY2FzZSA1NDogLyogIk9yRXhwciIgKi8KLSNsaW5lIDEwMCAiV2ViQ29yZS94bWwvWFBh
dGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsgfTsKLSNs
aW5lIDEzMjUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDk3ICJYUGF0
aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OworI2xpbmUg
MTMyMiAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgNTU6IC8qICJBbmRF
eHByIiAqLwotI2xpbmUgMTAwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRl
bGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OwotI2xpbmUgMTMzMCAiLi9YUGF0aEdyYW1t
YXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgOTcgIlhQYXRoR3JhbW1hci55IgorCXsgZGVsZXRl
ICh5eXZhbHVlcC0+ZXhwcmVzc2lvbik7IH07CisjbGluZSAxMzI3ICJYUGF0aEdyYW1tYXIuY3Bw
IgorCWJyZWFrOwogICAgICAgY2FzZSA1NjogLyogIkVxdWFsaXR5RXhwciIgKi8KLSNsaW5lIDEw
MCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5l
eHByZXNzaW9uKTsgfTsKLSNsaW5lIDEzMzUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVh
azsKKyNsaW5lIDk3ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJl
c3Npb24pOyB9OworI2xpbmUgMTMzMiAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAg
IGNhc2UgNTc6IC8qICJSZWxhdGlvbmFsRXhwciIgKi8KLSNsaW5lIDEwMCAiV2ViQ29yZS94bWwv
WFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsgfTsK
LSNsaW5lIDEzNDAgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDk3ICJY
UGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OworI2xp
bmUgMTMzNyAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgNTg6IC8qICJB
ZGRpdGl2ZUV4cHIiICovCi0jbGluZSAxMDAgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55Igot
ICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvbik7IH07Ci0jbGluZSAxMzQ1ICIuL1hQ
YXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7CisjbGluZSA5NyAiWFBhdGhHcmFtbWFyLnkiCisJ
eyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsgfTsKKyNsaW5lIDEzNDIgIlhQYXRoR3Jh
bW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNlIDU5OiAvKiAiTXVsdGlwbGljYXRpdmVFeHBy
IiAqLwotI2xpbmUgMTAwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRlbGV0
ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OwotI2xpbmUgMTM1MCAiLi9YUGF0aEdyYW1tYXIu
Y3BwIgotICAgIGJyZWFrOworI2xpbmUgOTcgIlhQYXRoR3JhbW1hci55IgorCXsgZGVsZXRlICh5
eXZhbHVlcC0+ZXhwcmVzc2lvbik7IH07CisjbGluZSAxMzQ3ICJYUGF0aEdyYW1tYXIuY3BwIgor
CWJyZWFrOwogICAgICAgY2FzZSA2MDogLyogIlVuYXJ5RXhwciIgKi8KLSNsaW5lIDEwMCAiV2Vi
Q29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNz
aW9uKTsgfTsKLSNsaW5lIDEzNTUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNs
aW5lIDk3ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24p
OyB9OworI2xpbmUgMTM1MiAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKIAogICAgICAgZGVm
YXVsdDoKLSAgICBicmVhazsKKwlicmVhazsKICAgICB9CiB9CiAMCkBAIC0xMzczLDcgKzEzNzEs
NyBAQCBpbnQgeXlwYXJzZSAoKTsKICNlbmRpZgogI2Vsc2UgLyogISBZWVBBUlNFX1BBUkFNICov
CiAjaWYgZGVmaW5lZCBfX1NURENfXyB8fCBkZWZpbmVkIF9fY3BsdXNwbHVzCi1pbnQgeXlwYXJz
ZSAoUGFyc2VyJiBwYXJzZXIpOworaW50IHl5cGFyc2UgKFdlYkNvcmU6OlhQYXRoOjpQYXJzZXIm
IHBhcnNlcik7CiAjZWxzZQogaW50IHl5cGFyc2UgKCk7CiAjZW5kaWYKQEAgLTE0MDIsMTEgKzE0
MDAsMTEgQEAgeXlwYXJzZSAoWVlQQVJTRV9QQVJBTSkKICNpZiAoZGVmaW5lZCBfX1NURENfXyB8
fCBkZWZpbmVkIF9fQzk5X19GVU5DX18gXAogICAgICB8fCBkZWZpbmVkIF9fY3BsdXNwbHVzIHx8
IGRlZmluZWQgX01TQ19WRVIpCiBpbnQKLXl5cGFyc2UgKFBhcnNlciYgcGFyc2VyKQoreXlwYXJz
ZSAoV2ViQ29yZTo6WFBhdGg6OlBhcnNlciYgcGFyc2VyKQogI2Vsc2UKIGludAogeXlwYXJzZSAo
cGFyc2VyKQotICAgIFBhcnNlciYgcGFyc2VyOworICAgIFdlYkNvcmU6OlhQYXRoOjpQYXJzZXIm
IHBhcnNlcjsKICNlbmRpZgogI2VuZGlmCiB7CkBAIC0xNDcxLDcgKzE0NjksNyBAQCBpbnQgeXlu
ZXJyczsKICAgeXlzdGF0ZSA9IDA7CiAgIHl5ZXJyc3RhdHVzID0gMDsKICAgeXluZXJycyA9IDA7
Ci0gIHl5Y2hhciA9IFlZRU1QVFk7ICAgICAgICAvKiBDYXVzZSBhIHRva2VuIHRvIGJlIHJlYWQu
ICAqLworICB5eWNoYXIgPSBZWUVNUFRZOwkJLyogQ2F1c2UgYSB0b2tlbiB0byBiZSByZWFkLiAg
Ki8KIAogICAvKiBJbml0aWFsaXplIHN0YWNrIHBvaW50ZXJzLgogICAgICBXYXN0ZSBvbmUgZWxl
bWVudCBvZiB2YWx1ZSBhbmQgbG9jYXRpb24gc3RhY2sKQEAgLTE1MDEsMjUgKzE0OTksMjUgQEAg
aW50IHl5bmVycnM7CiAKICNpZmRlZiB5eW92ZXJmbG93CiAgICAgICB7Ci0gICAgLyogR2l2ZSB1
c2VyIGEgY2hhbmNlIHRvIHJlYWxsb2NhdGUgdGhlIHN0YWNrLiAgVXNlIGNvcGllcyBvZgotICAg
ICAgIHRoZXNlIHNvIHRoYXQgdGhlICYncyBkb24ndCBmb3JjZSB0aGUgcmVhbCBvbmVzIGludG8K
LSAgICAgICBtZW1vcnkuICAqLwotICAgIFlZU1RZUEUgKnl5dnMxID0geXl2czsKLSAgICB5eXR5
cGVfaW50MTYgKnl5c3MxID0geXlzczsKKwkvKiBHaXZlIHVzZXIgYSBjaGFuY2UgdG8gcmVhbGxv
Y2F0ZSB0aGUgc3RhY2suICBVc2UgY29waWVzIG9mCisJICAgdGhlc2Ugc28gdGhhdCB0aGUgJidz
IGRvbid0IGZvcmNlIHRoZSByZWFsIG9uZXMgaW50bworCSAgIG1lbW9yeS4gICovCisJWVlTVFlQ
RSAqeXl2czEgPSB5eXZzOworCXl5dHlwZV9pbnQxNiAqeXlzczEgPSB5eXNzOwogCiAKLSAgICAv
KiBFYWNoIHN0YWNrIHBvaW50ZXIgYWRkcmVzcyBpcyBmb2xsb3dlZCBieSB0aGUgc2l6ZSBvZiB0
aGUKLSAgICAgICBkYXRhIGluIHVzZSBpbiB0aGF0IHN0YWNrLCBpbiBieXRlcy4gIFRoaXMgdXNl
ZCB0byBiZSBhCi0gICAgICAgY29uZGl0aW9uYWwgYXJvdW5kIGp1c3QgdGhlIHR3byBleHRyYSBh
cmdzLCBidXQgdGhhdCBtaWdodAotICAgICAgIGJlIHVuZGVmaW5lZCBpZiB5eW92ZXJmbG93IGlz
IGEgbWFjcm8uICAqLwotICAgIHl5b3ZlcmZsb3cgKFlZXygibWVtb3J5IGV4aGF1c3RlZCIpLAot
ICAgICAgICAgICAgJnl5c3MxLCB5eXNpemUgKiBzaXplb2YgKCp5eXNzcCksCi0gICAgICAgICAg
ICAmeXl2czEsIHl5c2l6ZSAqIHNpemVvZiAoKnl5dnNwKSwKKwkvKiBFYWNoIHN0YWNrIHBvaW50
ZXIgYWRkcmVzcyBpcyBmb2xsb3dlZCBieSB0aGUgc2l6ZSBvZiB0aGUKKwkgICBkYXRhIGluIHVz
ZSBpbiB0aGF0IHN0YWNrLCBpbiBieXRlcy4gIFRoaXMgdXNlZCB0byBiZSBhCisJICAgY29uZGl0
aW9uYWwgYXJvdW5kIGp1c3QgdGhlIHR3byBleHRyYSBhcmdzLCBidXQgdGhhdCBtaWdodAorCSAg
IGJlIHVuZGVmaW5lZCBpZiB5eW92ZXJmbG93IGlzIGEgbWFjcm8uICAqLworCXl5b3ZlcmZsb3cg
KFlZXygibWVtb3J5IGV4aGF1c3RlZCIpLAorCQkgICAgJnl5c3MxLCB5eXNpemUgKiBzaXplb2Yg
KCp5eXNzcCksCisJCSAgICAmeXl2czEsIHl5c2l6ZSAqIHNpemVvZiAoKnl5dnNwKSwKIAotICAg
ICAgICAgICAgJnl5c3RhY2tzaXplKTsKKwkJICAgICZ5eXN0YWNrc2l6ZSk7CiAKLSAgICB5eXNz
ID0geXlzczE7Ci0gICAgeXl2cyA9IHl5dnMxOworCXl5c3MgPSB5eXNzMTsKKwl5eXZzID0geXl2
czE7CiAgICAgICB9CiAjZWxzZSAvKiBubyB5eW92ZXJmbG93ICovCiAjIGlmbmRlZiBZWVNUQUNL
X1JFTE9DQVRFCkBAIC0xNTI3LDIzICsxNTI1LDIzIEBAIGludCB5eW5lcnJzOwogIyBlbHNlCiAg
ICAgICAvKiBFeHRlbmQgdGhlIHN0YWNrIG91ciBvd24gd2F5LiAgKi8KICAgICAgIGlmIChZWU1B
WERFUFRIIDw9IHl5c3RhY2tzaXplKQotICAgIGdvdG8geXlleGhhdXN0ZWRsYWI7CisJZ290byB5
eWV4aGF1c3RlZGxhYjsKICAgICAgIHl5c3RhY2tzaXplICo9IDI7CiAgICAgICBpZiAoWVlNQVhE
RVBUSCA8IHl5c3RhY2tzaXplKQotICAgIHl5c3RhY2tzaXplID0gWVlNQVhERVBUSDsKKwl5eXN0
YWNrc2l6ZSA9IFlZTUFYREVQVEg7CiAKICAgICAgIHsKLSAgICB5eXR5cGVfaW50MTYgKnl5c3Mx
ID0geXlzczsKLSAgICB1bmlvbiB5eWFsbG9jICp5eXB0ciA9Ci0gICAgICAodW5pb24geXlhbGxv
YyAqKSBZWVNUQUNLX0FMTE9DIChZWVNUQUNLX0JZVEVTICh5eXN0YWNrc2l6ZSkpOwotICAgIGlm
ICghIHl5cHRyKQotICAgICAgZ290byB5eWV4aGF1c3RlZGxhYjsKLSAgICBZWVNUQUNLX1JFTE9D
QVRFICh5eXNzKTsKLSAgICBZWVNUQUNLX1JFTE9DQVRFICh5eXZzKTsKKwl5eXR5cGVfaW50MTYg
Knl5c3MxID0geXlzczsKKwl1bmlvbiB5eWFsbG9jICp5eXB0ciA9CisJICAodW5pb24geXlhbGxv
YyAqKSBZWVNUQUNLX0FMTE9DIChZWVNUQUNLX0JZVEVTICh5eXN0YWNrc2l6ZSkpOworCWlmICgh
IHl5cHRyKQorCSAgZ290byB5eWV4aGF1c3RlZGxhYjsKKwlZWVNUQUNLX1JFTE9DQVRFICh5eXNz
KTsKKwlZWVNUQUNLX1JFTE9DQVRFICh5eXZzKTsKIAogIyAgdW5kZWYgWVlTVEFDS19SRUxPQ0FU
RQotICAgIGlmICh5eXNzMSAhPSB5eXNzYSkKLSAgICAgIFlZU1RBQ0tfRlJFRSAoeXlzczEpOwor
CWlmICh5eXNzMSAhPSB5eXNzYSkKKwkgIFlZU1RBQ0tfRlJFRSAoeXlzczEpOwogICAgICAgfQog
IyBlbmRpZgogI2VuZGlmIC8qIG5vIHl5b3ZlcmZsb3cgKi8KQEAgLTE1NTMsMTAgKzE1NTEsMTAg
QEAgaW50IHl5bmVycnM7CiAKIAogICAgICAgWVlEUFJJTlRGICgoc3RkZXJyLCAiU3RhY2sgc2l6
ZSBpbmNyZWFzZWQgdG8gJWx1XG4iLAotICAgICAgICAgICh1bnNpZ25lZCBsb25nIGludCkgeXlz
dGFja3NpemUpKTsKKwkJICAodW5zaWduZWQgbG9uZyBpbnQpIHl5c3RhY2tzaXplKSk7CiAKICAg
ICAgIGlmICh5eXNzICsgeXlzdGFja3NpemUgLSAxIDw9IHl5c3NwKQotICAgIFlZQUJPUlQ7CisJ
WVlBQk9SVDsKICAgICB9CiAKICAgWVlEUFJJTlRGICgoc3RkZXJyLCAiRW50ZXJpbmcgc3RhdGUg
JWRcbiIsIHl5c3RhdGUpKTsKQEAgLTE2MDUsNyArMTYwMyw3IEBAIHl5YmFja3VwOgogICBpZiAo
eXluIDw9IDApCiAgICAgewogICAgICAgaWYgKHl5biA9PSAwIHx8IHl5biA9PSBZWVRBQkxFX05J
TkYpCi0gICAgZ290byB5eWVycmxhYjsKKwlnb3RvIHl5ZXJybGFiOwogICAgICAgeXluID0gLXl5
bjsKICAgICAgIGdvdG8geXlyZWR1Y2U7CiAgICAgfQpAQCAtMTY2MywxNCArMTY2MSwxNCBAQCB5
eXJlZHVjZToKICAgc3dpdGNoICh5eW4pCiAgICAgewogICAgICAgICBjYXNlIDI6Ci0jbGluZSAx
MTUgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMTEyICJYUGF0aEdyYW1tYXIu
eSIKICAgICB7Ci0gICAgICAgIHBhcnNlci5zZXRQYXJzZVJlc3VsdChzdGQ6OnVuaXF1ZV9wdHI8
RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgxKV0uZXhwcmVzc2lvbikpKTsKKyAgICAgICAgcGFy
c2VyLnNldFBhcnNlUmVzdWx0KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVz
c2lvbj4oKHl5dnNwWygxKSAtICgxKV0uZXhwcmVzc2lvbikpKTsKICAgICA7fQogICAgIGJyZWFr
OwogCiAgIGNhc2UgNDoKLSNsaW5lIDEyNiAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisj
bGluZSAxMjMgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAgKHl5dmFsLmxvY2F0aW9u
UGF0aCkgPSAoeXl2c3BbKDEpIC0gKDEpXS5sb2NhdGlvblBhdGgpOwogICAgICAgICAoeXl2YWwu
bG9jYXRpb25QYXRoKS0+c2V0QWJzb2x1dGUoKTsKQEAgLTE2NzgsNjkgKzE2NzYsNjkgQEAgeXly
ZWR1Y2U6CiAgICAgYnJlYWs7CiAKICAgY2FzZSA2OgotI2xpbmUgMTM2ICJXZWJDb3JlL3htbC9Y
UGF0aEdyYW1tYXIueSIKKyNsaW5lIDEzMyAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAgICAg
ICAoeXl2YWwubG9jYXRpb25QYXRoKSA9IG5ldyBMb2NhdGlvblBhdGg7CisgICAgICAgICh5eXZh
bC5sb2NhdGlvblBhdGgpID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpMb2NhdGlvblBhdGg7CiAgICAg
O30KICAgICBicmVhazsKIAogICBjYXNlIDc6Ci0jbGluZSAxNDEgIldlYkNvcmUveG1sL1hQYXRo
R3JhbW1hci55IgorI2xpbmUgMTM4ICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgICh5
eXZhbC5sb2NhdGlvblBhdGgpID0gKHl5dnNwWygyKSAtICgyKV0ubG9jYXRpb25QYXRoKTsKICAg
ICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgODoKLSNsaW5lIDE0NiAiV2ViQ29yZS94bWwvWFBh
dGhHcmFtbWFyLnkiCisjbGluZSAxNDMgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAg
KHl5dmFsLmxvY2F0aW9uUGF0aCkgPSAoeXl2c3BbKDIpIC0gKDIpXS5sb2NhdGlvblBhdGgpOwot
ICAgICAgICAoeXl2YWwubG9jYXRpb25QYXRoKS0+cHJlcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRy
PFN0ZXA+KCh5eXZzcFsoMSkgLSAoMildLnN0ZXApKSk7CisgICAgICAgICh5eXZhbC5sb2NhdGlv
blBhdGgpLT5wcmVwZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA+
KCh5eXZzcFsoMSkgLSAoMildLnN0ZXApKSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNl
IDk6Ci0jbGluZSAxNTQgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMTUxICJY
UGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgICh5eXZhbC5sb2NhdGlvblBhdGgpID0gbmV3
IExvY2F0aW9uUGF0aDsKLSAgICAgICAgKHl5dmFsLmxvY2F0aW9uUGF0aCktPmFwcGVuZFN0ZXAo
c3RkOjp1bmlxdWVfcHRyPFN0ZXA+KCh5eXZzcFsoMSkgLSAoMSldLnN0ZXApKSk7CisgICAgICAg
ICh5eXZhbC5sb2NhdGlvblBhdGgpID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpMb2NhdGlvblBhdGg7
CisgICAgICAgICh5eXZhbC5sb2NhdGlvblBhdGgpLT5hcHBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpYUGF0aDo6U3RlcD4oKHl5dnNwWygxKSAtICgxKV0uc3RlcCkpKTsKICAgICA7
fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMTA6Ci0jbGluZSAxNjAgIldlYkNvcmUveG1sL1hQYXRo
R3JhbW1hci55IgorI2xpbmUgMTU3ICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgICh5
eXZhbC5sb2NhdGlvblBhdGgpID0gKHl5dnNwWygxKSAtICgzKV0ubG9jYXRpb25QYXRoKTsKLSAg
ICAgICAgKHl5dmFsLmxvY2F0aW9uUGF0aCktPmFwcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFN0
ZXA+KCh5eXZzcFsoMykgLSAoMyldLnN0ZXApKSk7CisgICAgICAgICh5eXZhbC5sb2NhdGlvblBh
dGgpLT5hcHBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6U3RlcD4oKHl5
dnNwWygzKSAtICgzKV0uc3RlcCkpKTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMTE6
Ci0jbGluZSAxNjYgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMTYzICJYUGF0
aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgICh5eXZhbC5sb2NhdGlvblBhdGgpID0gKHl5dnNw
WygxKSAtICgzKV0ubG9jYXRpb25QYXRoKTsKLSAgICAgICAgKHl5dmFsLmxvY2F0aW9uUGF0aCkt
PmFwcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFN0ZXA+KCh5eXZzcFsoMikgLSAoMyldLnN0ZXAp
KSk7Ci0gICAgICAgICh5eXZhbC5sb2NhdGlvblBhdGgpLT5hcHBlbmRTdGVwKHN0ZDo6dW5pcXVl
X3B0cjxTdGVwPigoeXl2c3BbKDMpIC0gKDMpXS5zdGVwKSkpOworICAgICAgICAoeXl2YWwubG9j
YXRpb25QYXRoKS0+YXBwZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0
ZXA+KCh5eXZzcFsoMikgLSAoMyldLnN0ZXApKSk7CisgICAgICAgICh5eXZhbC5sb2NhdGlvblBh
dGgpLT5hcHBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6U3RlcD4oKHl5
dnNwWygzKSAtICgzKV0uc3RlcCkpKTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMTI6
Ci0jbGluZSAxNzUgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMTcyICJYUGF0
aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGVwOjpOb2RlVGVz
dD4gbm9kZVRlc3QoKHl5dnNwWygxKSAtICgyKV0ubm9kZVRlc3QpKTsKLSAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+PiBwcmVkaWNhdGVM
aXN0KCh5eXZzcFsoMikgLSAoMildLmV4cHJlc3Npb25WZWN0b3IpKTsKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdD4gbm9kZVRlc3QoKHl5dnNw
WygxKSAtICgyKV0ubm9kZVRlc3QpKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3Rvcjxz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+Pj4gcHJlZGljYXRlTGlz
dCgoeXl2c3BbKDIpIC0gKDIpXS5leHByZXNzaW9uVmVjdG9yKSk7CiAgICAgICAgIGlmIChwcmVk
aWNhdGVMaXN0KQotICAgICAgICAgICAgKHl5dmFsLnN0ZXApID0gbmV3IFN0ZXAoU3RlcDo6Q2hp
bGRBeGlzLCBXVEZNb3ZlKCpub2RlVGVzdCksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKKyAg
ICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcChXZWJDb3Jl
OjpYUGF0aDo6U3RlcDo6Q2hpbGRBeGlzLCBXVEZNb3ZlKCpub2RlVGVzdCksIFdURk1vdmUoKnBy
ZWRpY2F0ZUxpc3QpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgKHl5dmFsLnN0ZXApID0g
bmV3IFN0ZXAoU3RlcDo6Q2hpbGRBeGlzLCBXVEZNb3ZlKCpub2RlVGVzdCkpOworICAgICAgICAg
ICAgKHl5dmFsLnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdlYkNvcmU6OlhQYXRo
OjpTdGVwOjpDaGlsZEF4aXMsIFdURk1vdmUoKm5vZGVUZXN0KSk7CiAgICAgO30KICAgICBicmVh
azsKIAogICBjYXNlIDEzOgotI2xpbmUgMTg1ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIK
KyNsaW5lIDE4MiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAgICBTdHJpbmcgbmFtZXRl
c3QgPSBhZG9wdFJlZigoeXl2c3BbKDEpIC0gKDIpXS5zdHJpbmcpKTsKLSAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+PiBwcmVkaWNhdGVM
aXN0KCh5eXZzcFsoMikgLSAoMildLmV4cHJlc3Npb25WZWN0b3IpKTsKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Np
b24+Pj4gcHJlZGljYXRlTGlzdCgoeXl2c3BbKDIpIC0gKDIpXS5leHByZXNzaW9uVmVjdG9yKSk7
CiAKICAgICAgICAgU3RyaW5nIGxvY2FsTmFtZTsKICAgICAgICAgU3RyaW5nIG5hbWVzcGFjZVVS
STsKQEAgLTE3NTAsMzAgKzE3NDgsMzAgQEAgeXlyZWR1Y2U6CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAocHJlZGljYXRlTGlzdCkKLSAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVw
KFN0ZXA6OkNoaWxkQXhpcywgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0
LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKKyAg
ICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcChXZWJDb3Jl
OjpYUGF0aDo6U3RlcDo6Q2hpbGRBeGlzLCBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Qo
V2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpOYW1lVGVzdCwgbG9jYWxOYW1lLCBuYW1l
c3BhY2VVUkkpLCBXVEZNb3ZlKCpwcmVkaWNhdGVMaXN0KSk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVwKFN0ZXA6OkNoaWxkQXhpcywgU3RlcDo6Tm9k
ZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSkp
OworICAgICAgICAgICAgKHl5dmFsLnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdl
YkNvcmU6OlhQYXRoOjpTdGVwOjpDaGlsZEF4aXMsIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2Rl
VGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUs
IG5hbWVzcGFjZVVSSSkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAxNDoKLSNsaW5l
IDIwMyAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyMDAgIlhQYXRoR3JhbW1h
ci55IgogICAgIHsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFN0ZXA6Ok5vZGVUZXN0PiBub2Rl
VGVzdCgoeXl2c3BbKDIpIC0gKDMpXS5ub2RlVGVzdCkpOwotICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPj4+IHByZWRpY2F0ZUxpc3QoKHl5
dnNwWygzKSAtICgzKV0uZXhwcmVzc2lvblZlY3RvcikpOworICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0PiBub2RlVGVzdCgoeXl2c3BbKDIpIC0g
KDMpXS5ub2RlVGVzdCkpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4+PiBwcmVkaWNhdGVMaXN0KCh5eXZz
cFsoMykgLSAoMyldLmV4cHJlc3Npb25WZWN0b3IpKTsKIAogICAgICAgICBpZiAocHJlZGljYXRl
TGlzdCkKLSAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVwKCh5eXZzcFsoMSkgLSAo
MyldLmF4aXMpLCBXVEZNb3ZlKCpub2RlVGVzdCksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsK
KyAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcCgoeXl2
c3BbKDEpIC0gKDMpXS5heGlzKSwgV1RGTW92ZSgqbm9kZVRlc3QpLCBXVEZNb3ZlKCpwcmVkaWNh
dGVMaXN0KSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBT
dGVwKCh5eXZzcFsoMSkgLSAoMyldLmF4aXMpLCBXVEZNb3ZlKCpub2RlVGVzdCkpOworICAgICAg
ICAgICAgKHl5dmFsLnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKCh5eXZzcFsoMSkg
LSAoMyldLmF4aXMpLCBXVEZNb3ZlKCpub2RlVGVzdCkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAK
ICAgY2FzZSAxNToKLSNsaW5lIDIxNCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGlu
ZSAyMTEgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAgU3RyaW5nIG5hbWV0ZXN0ID0g
YWRvcHRSZWYoKHl5dnNwWygyKSAtICgzKV0uc3RyaW5nKSk7Ci0gICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+Pj4gcHJlZGljYXRlTGlzdCgo
eXl2c3BbKDMpIC0gKDMpXS5leHByZXNzaW9uVmVjdG9yKSk7CisgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPj4+
IHByZWRpY2F0ZUxpc3QoKHl5dnNwWygzKSAtICgzKV0uZXhwcmVzc2lvblZlY3RvcikpOwogCiAg
ICAgICAgIFN0cmluZyBsb2NhbE5hbWU7CiAgICAgICAgIFN0cmluZyBuYW1lc3BhY2VVUkk7CkBA
IC0xNzgzLDI3MiArMTc4MSwyNzIgQEAgeXlyZWR1Y2U6CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAocHJlZGljYXRlTGlzdCkKLSAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVwKCh5
eXZzcFsoMSkgLSAoMyldLmF4aXMpLCBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6TmFt
ZVRlc3QsIGxvY2FsTmFtZSwgbmFtZXNwYWNlVVJJKSwgV1RGTW92ZSgqcHJlZGljYXRlTGlzdCkp
OworICAgICAgICAgICAgKHl5dmFsLnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKCh5
eXZzcFsoMSkgLSAoMyldLmF4aXMpLCBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2Vi
Q29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpOYW1lVGVzdCwgbG9jYWxOYW1lLCBuYW1lc3Bh
Y2VVUkkpLCBXVEZNb3ZlKCpwcmVkaWNhdGVMaXN0KSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVwKCh5eXZzcFsoMSkgLSAoMyldLmF4aXMpLCBTdGVw
OjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6TmFtZVRlc3QsIGxvY2FsTmFtZSwgbmFtZXNwYWNl
VVJJKSk7CisgICAgICAgICAgICAoeXl2YWwuc3RlcCkgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0
ZXAoKHl5dnNwWygxKSAtICgzKV0uYXhpcyksIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVz
dChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5h
bWVzcGFjZVVSSSkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAxODoKLSNsaW5lIDIz
OCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyMzUgIlhQYXRoR3JhbW1hci55
IgogICAgIHsKLSAgICAgICAgKHl5dmFsLmF4aXMpID0gU3RlcDo6QXR0cmlidXRlQXhpczsKKyAg
ICAgICAgKHl5dmFsLmF4aXMpID0gV2ViQ29yZTo6WFBhdGg6OlN0ZXA6OkF0dHJpYnV0ZUF4aXM7
CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDE5OgotI2xpbmUgMjQ1ICJXZWJDb3JlL3ht
bC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDI0MiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAg
ICAgICAoeXl2YWwubm9kZVRlc3QpID0gbmV3IFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0
OjpBbnlOb2RlVGVzdCk7CisgICAgICAgICh5eXZhbC5ub2RlVGVzdCkgPSBuZXcgV2ViQ29yZTo6
WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0KFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6QW55
Tm9kZVRlc3QpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAyMDoKLSNsaW5lIDI1MCAi
V2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyNDcgIlhQYXRoR3JhbW1hci55Igog
ICAgIHsKLSAgICAgICAgKHl5dmFsLm5vZGVUZXN0KSA9IG5ldyBTdGVwOjpOb2RlVGVzdChTdGVw
OjpOb2RlVGVzdDo6VGV4dE5vZGVUZXN0KTsKKyAgICAgICAgKHl5dmFsLm5vZGVUZXN0KSA9IG5l
dyBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5v
ZGVUZXN0OjpUZXh0Tm9kZVRlc3QpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAyMToK
LSNsaW5lIDI1NSAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyNTIgIlhQYXRo
R3JhbW1hci55IgogICAgIHsKLSAgICAgICAgKHl5dmFsLm5vZGVUZXN0KSA9IG5ldyBTdGVwOjpO
b2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6Q29tbWVudE5vZGVUZXN0KTsKKyAgICAgICAgKHl5dmFs
Lm5vZGVUZXN0KSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6
WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpDb21tZW50Tm9kZVRlc3QpOwogICAgIDt9CiAgICAgYnJl
YWs7CiAKICAgY2FzZSAyMjoKLSNsaW5lIDI2MCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnki
CisjbGluZSAyNTcgIlhQYXRoR3JhbW1hci55IgogICAgIHsKLSAgICAgICAgKHl5dmFsLm5vZGVU
ZXN0KSA9IG5ldyBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6UHJvY2Vzc2luZ0luc3Ry
dWN0aW9uTm9kZVRlc3QpOworICAgICAgICAoeXl2YWwubm9kZVRlc3QpID0gbmV3IFdlYkNvcmU6
OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6OlBy
b2Nlc3NpbmdJbnN0cnVjdGlvbk5vZGVUZXN0KTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNh
c2UgMjM6Ci0jbGluZSAyNjUgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMjYy
ICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgIFN0cmluZyBsaXRlcmFsID0gYWRvcHRS
ZWYoKHl5dnNwWygzKSAtICg0KV0uc3RyaW5nKSk7Ci0gICAgICAgICh5eXZhbC5ub2RlVGVzdCkg
PSBuZXcgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6OlByb2Nlc3NpbmdJbnN0cnVjdGlv
bk5vZGVUZXN0LCBsaXRlcmFsLnN0cmlwV2hpdGVTcGFjZSgpKTsKKyAgICAgICAgKHl5dmFsLm5v
ZGVUZXN0KSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBh
dGg6OlN0ZXA6Ok5vZGVUZXN0OjpQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25Ob2RlVGVzdCwgbGl0ZXJh
bC5zdHJpcFdoaXRlU3BhY2UoKSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDI0Ogot
I2xpbmUgMjczICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDI3MCAiWFBhdGhH
cmFtbWFyLnkiCiAgICAgewogICAgICAgICAoeXl2YWwuZXhwcmVzc2lvblZlY3RvcikgPSBudWxs
cHRyOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAyNjoKLSNsaW5lIDI4MiAiV2ViQ29y
ZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyNzkgIlhQYXRoR3JhbW1hci55IgogICAgIHsK
LSAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3IpID0gbmV3IFZlY3RvcjxzdGQ6OnVuaXF1
ZV9wdHI8RXhwcmVzc2lvbj4+OwotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvblZlY3RvciktPmFw
cGVuZChzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgxKV0uZXhwcmVz
c2lvbikpKTsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3IpID0gbmV3IFZlY3Rvcjxz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+PjsKKyAgICAgICAgKHl5
dmFsLmV4cHJlc3Npb25WZWN0b3IpLT5hcHBlbmQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQ
YXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDEpXS5leHByZXNzaW9uKSkpOwogICAgIDt9
CiAgICAgYnJlYWs7CiAKICAgY2FzZSAyNzoKLSNsaW5lIDI4OCAiV2ViQ29yZS94bWwvWFBhdGhH
cmFtbWFyLnkiCisjbGluZSAyODUgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAgKHl5
dmFsLmV4cHJlc3Npb25WZWN0b3IpID0gKHl5dnNwWygxKSAtICgyKV0uZXhwcmVzc2lvblZlY3Rv
cik7Ci0gICAgICAgICh5eXZhbC5leHByZXNzaW9uVmVjdG9yKS0+YXBwZW5kKHN0ZDo6dW5pcXVl
X3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDIpIC0gKDIpXS5leHByZXNzaW9uKSkpOworICAgICAg
ICAoeXl2YWwuZXhwcmVzc2lvblZlY3RvciktPmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5eXZzcFsoMikgLSAoMildLmV4cHJlc3Npb24pKSk7CiAg
ICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDI4OgotI2xpbmUgMjk2ICJXZWJDb3JlL3htbC9Y
UGF0aEdyYW1tYXIueSIKKyNsaW5lIDI5MyAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAg
ICAoeXl2YWwuZXhwcmVzc2lvbikgPSAoeXl2c3BbKDIpIC0gKDMpXS5leHByZXNzaW9uKTsKICAg
ICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMjk6Ci0jbGluZSAzMDMgIldlYkNvcmUveG1sL1hQ
YXRoR3JhbW1hci55IgorI2xpbmUgMzAwICJYUGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAg
ICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVwKFN0ZXA6OkRlc2NlbmRhbnRPclNlbGZBeGlzLCBTdGVw
OjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6QW55Tm9kZVRlc3QpKTsKKyAgICAgICAgKHl5dmFs
LnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpE
ZXNjZW5kYW50T3JTZWxmQXhpcywgV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0KFdlYkNv
cmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6QW55Tm9kZVRlc3QpKTsKICAgICA7fQogICAgIGJy
ZWFrOwogCiAgIGNhc2UgMzA6Ci0jbGluZSAzMTAgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55
IgorI2xpbmUgMzA3ICJYUGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgICh5eXZhbC5zdGVw
KSA9IG5ldyBTdGVwKFN0ZXA6OlNlbGZBeGlzLCBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVz
dDo6QW55Tm9kZVRlc3QpKTsKKyAgICAgICAgKHl5dmFsLnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQ
YXRoOjpTdGVwKFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpTZWxmQXhpcywgV2ViQ29yZTo6WFBhdGg6
OlN0ZXA6Ok5vZGVUZXN0KFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6QW55Tm9kZVRl
c3QpKTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMzE6Ci0jbGluZSAzMTUgIldlYkNv
cmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMzEyICJYUGF0aEdyYW1tYXIueSIKICAgICB7
Ci0gICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVwKFN0ZXA6OlBhcmVudEF4aXMsIFN0ZXA6
Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpBbnlOb2RlVGVzdCkpOworICAgICAgICAoeXl2YWwu
c3RlcCkgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0ZXAoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6OlBh
cmVudEF4aXMsIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6
U3RlcDo6Tm9kZVRlc3Q6OkFueU5vZGVUZXN0KSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBj
YXNlIDMyOgotI2xpbmUgMzIyICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDMx
OSAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAgICBTdHJpbmcgbmFtZSA9IGFkb3B0UmVm
KCh5eXZzcFsoMSkgLSAoMSldLnN0cmluZykpOwotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikg
PSBuZXcgVmFyaWFibGVSZWZlcmVuY2UobmFtZSk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9u
KSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6VmFyaWFibGVSZWZlcmVuY2UobmFtZSk7CiAgICAgO30K
ICAgICBicmVhazsKIAogICBjYXNlIDMzOgotI2xpbmUgMzI4ICJXZWJDb3JlL3htbC9YUGF0aEdy
YW1tYXIueSIKKyNsaW5lIDMyNSAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAgICAoeXl2
YWwuZXhwcmVzc2lvbikgPSAoeXl2c3BbKDIpIC0gKDMpXS5leHByZXNzaW9uKTsKICAgICA7fQog
ICAgIGJyZWFrOwogCiAgIGNhc2UgMzQ6Ci0jbGluZSAzMzMgIldlYkNvcmUveG1sL1hQYXRoR3Jh
bW1hci55IgorI2xpbmUgMzMwICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgIFN0cmlu
ZyBsaXRlcmFsID0gYWRvcHRSZWYoKHl5dnNwWygxKSAtICgxKV0uc3RyaW5nKSk7Ci0gICAgICAg
ICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBTdHJpbmdFeHByZXNzaW9uKFdURk1vdmUobGl0ZXJh
bCkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0
cmluZ0V4cHJlc3Npb24oV1RGTW92ZShsaXRlcmFsKSk7CiAgICAgO30KICAgICBicmVhazsKIAog
ICBjYXNlIDM1OgotI2xpbmUgMzM5ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5l
IDMzNiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAgICBTdHJpbmcgbnVtZXJhbCA9IGFk
b3B0UmVmKCh5eXZzcFsoMSkgLSAoMSldLnN0cmluZykpOwotICAgICAgICAoeXl2YWwuZXhwcmVz
c2lvbikgPSBuZXcgTnVtYmVyKG51bWVyYWwudG9Eb3VibGUoKSk7CisgICAgICAgICh5eXZhbC5l
eHByZXNzaW9uKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TnVtYmVyKG51bWVyYWwudG9Eb3VibGUo
KSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDM3OgotI2xpbmUgMzQ5ICJXZWJDb3Jl
L3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDM0NiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewog
ICAgICAgICBTdHJpbmcgbmFtZSA9IGFkb3B0UmVmKCh5eXZzcFsoMSkgLSAoMyldLnN0cmluZykp
OwotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBYUGF0aDo6RnVuY3Rpb246OmNyZWF0ZShu
YW1lKS5yZWxlYXNlKCk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IFdlYkNvcmU6OlhQ
YXRoOjpGdW5jdGlvbjo6Y3JlYXRlKG5hbWUpLnJlbGVhc2UoKTsKICAgICAgICAgaWYgKCEoeXl2
YWwuZXhwcmVzc2lvbikpCiAgICAgICAgICAgICBZWUFCT1JUOwogICAgIDt9CiAgICAgYnJlYWs7
CiAKICAgY2FzZSAzODoKLSNsaW5lIDM1NyAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisj
bGluZSAzNTQgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAgU3RyaW5nIG5hbWUgPSBh
ZG9wdFJlZigoeXl2c3BbKDEpIC0gKDQpXS5zdHJpbmcpKTsKLSAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+PiBhcmd1bWVudExpc3QoKHl5
dnNwWygzKSAtICg0KV0uZXhwcmVzc2lvblZlY3RvcikpOwotICAgICAgICAoeXl2YWwuZXhwcmVz
c2lvbikgPSBYUGF0aDo6RnVuY3Rpb246OmNyZWF0ZShuYW1lLCBXVEZNb3ZlKCphcmd1bWVudExp
c3QpKS5yZWxlYXNlKCk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPj4+IGFyZ3VtZW50TGlzdCgoeXl2c3Bb
KDMpIC0gKDQpXS5leHByZXNzaW9uVmVjdG9yKSk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9u
KSA9IFdlYkNvcmU6OlhQYXRoOjpGdW5jdGlvbjo6Y3JlYXRlKG5hbWUsIFdURk1vdmUoKmFyZ3Vt
ZW50TGlzdCkpLnJlbGVhc2UoKTsKICAgICAgICAgaWYgKCEoeXl2YWwuZXhwcmVzc2lvbikpCiAg
ICAgICAgICAgICBZWUFCT1JUOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAzOToKLSNs
aW5lIDM2OCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAzNjUgIlhQYXRoR3Jh
bW1hci55IgogICAgIHsKLSAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3IpID0gbmV3IFZl
Y3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+OwotICAgICAgICAoeXl2YWwuZXhwcmVz
c2lvblZlY3RvciktPmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygx
KSAtICgxKV0uZXhwcmVzc2lvbikpKTsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3Ip
ID0gbmV3IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+
PjsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3IpLT5hcHBlbmQoc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDEpXS5leHByZXNz
aW9uKSkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSA0MDoKLSNsaW5lIDM3NCAiV2Vi
Q29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAzNzEgIlhQYXRoR3JhbW1hci55IgogICAg
IHsKICAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3IpID0gKHl5dnNwWygxKSAtICgzKV0u
ZXhwcmVzc2lvblZlY3Rvcik7Ci0gICAgICAgICh5eXZhbC5leHByZXNzaW9uVmVjdG9yKS0+YXBw
ZW5kKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNz
aW9uKSkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvblZlY3RvciktPmFwcGVuZChzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5eXZzcFsoMykgLSAoMyldLmV4
cHJlc3Npb24pKSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDQzOgotI2xpbmUgMzg4
ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDM4NSAiWFBhdGhHcmFtbWFyLnki
CiAgICAgewotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgVW5pb24oc3RkOjp1bmlx
dWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMSkgLSAoMyldLmV4cHJlc3Npb24pKSwgc3RkOjp1
bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMykgLSAoMyldLmV4cHJlc3Npb24pKSk7Cisg
ICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6VW5pb24oc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMp
XS5leHByZXNzaW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lv
bj4oKHl5dnNwWygzKSAtICgzKV0uZXhwcmVzc2lvbikpKTsKICAgICA7fQogICAgIGJyZWFrOwog
CiAgIGNhc2UgNDQ6Ci0jbGluZSAzOTUgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xp
bmUgMzkyICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgICh5eXZhbC5leHByZXNzaW9u
KSA9ICh5eXZzcFsoMSkgLSAoMSldLmxvY2F0aW9uUGF0aCk7CiAgICAgO30KICAgICBicmVhazsK
IAogICBjYXNlIDQ2OgotI2xpbmUgNDAyICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNs
aW5lIDM5OSAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAgICAoeXl2c3BbKDMpIC0gKDMp
XS5sb2NhdGlvblBhdGgpLT5zZXRBYnNvbHV0ZSgpOwotICAgICAgICAoeXl2YWwuZXhwcmVzc2lv
bikgPSBuZXcgWFBhdGg6OlBhdGgoc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFso
MSkgLSAoMyldLmV4cHJlc3Npb24pKSwgc3RkOjp1bmlxdWVfcHRyPExvY2F0aW9uUGF0aD4oKHl5
dnNwWygzKSAtICgzKV0ubG9jYXRpb25QYXRoKSkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lv
bikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlBhdGgoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQ
YXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMpXS5leHByZXNzaW9uKSksIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6TG9jYXRpb25QYXRoPigoeXl2c3BbKDMpIC0gKDMpXS5s
b2NhdGlvblBhdGgpKSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDQ3OgotI2xpbmUg
NDA4ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDQwNSAiWFBhdGhHcmFtbWFy
LnkiCiAgICAgewotICAgICAgICAoeXl2c3BbKDMpIC0gKDMpXS5sb2NhdGlvblBhdGgpLT5wcmVw
ZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8U3RlcD4oKHl5dnNwWygyKSAtICgzKV0uc3RlcCkpKTsK
KyAgICAgICAgKHl5dnNwWygzKSAtICgzKV0ubG9jYXRpb25QYXRoKS0+cHJlcGVuZFN0ZXAoc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpTdGVwPigoeXl2c3BbKDIpIC0gKDMpXS5zdGVw
KSkpOwogICAgICAgICAoeXl2c3BbKDMpIC0gKDMpXS5sb2NhdGlvblBhdGgpLT5zZXRBYnNvbHV0
ZSgpOwotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgWFBhdGg6OlBhdGgoc3RkOjp1
bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMSkgLSAoMyldLmV4cHJlc3Npb24pKSwgc3Rk
Ojp1bmlxdWVfcHRyPExvY2F0aW9uUGF0aD4oKHl5dnNwWygzKSAtICgzKV0ubG9jYXRpb25QYXRo
KSkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlBh
dGgoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEp
IC0gKDMpXS5leHByZXNzaW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6TG9j
YXRpb25QYXRoPigoeXl2c3BbKDMpIC0gKDMpXS5sb2NhdGlvblBhdGgpKSk7CiAgICAgO30KICAg
ICBicmVhazsKIAogICBjYXNlIDQ5OgotI2xpbmUgNDE5ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1t
YXIueSIKKyNsaW5lIDQxNiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPj4+IHByZWRpY2F0ZUxp
c3QoKHl5dnNwWygyKSAtICgyKV0uZXhwcmVzc2lvblZlY3RvcikpOwotICAgICAgICAoeXl2YWwu
ZXhwcmVzc2lvbikgPSBuZXcgRmlsdGVyKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2
c3BbKDEpIC0gKDIpXS5leHByZXNzaW9uKSksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKKyAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBh
dGg6OkV4cHJlc3Npb24+Pj4gcHJlZGljYXRlTGlzdCgoeXl2c3BbKDIpIC0gKDIpXS5leHByZXNz
aW9uVmVjdG9yKSk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBXZWJDb3JlOjpY
UGF0aDo6RmlsdGVyKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4o
KHl5dnNwWygxKSAtICgyKV0uZXhwcmVzc2lvbikpLCBXVEZNb3ZlKCpwcmVkaWNhdGVMaXN0KSk7
CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDUxOgotI2xpbmUgNDI5ICJXZWJDb3JlL3ht
bC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDQyNiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAg
ICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgTG9naWNhbE9wKExvZ2ljYWxPcDo6T1BfT3Is
IHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMpXS5leHByZXNzaW9u
KSksIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNz
aW9uKSkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6
OkxvZ2ljYWxPcChXZWJDb3JlOjpYUGF0aDo6TG9naWNhbE9wOjpPUF9Pciwgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMpXS5leHByZXNz
aW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNw
WygzKSAtICgzKV0uZXhwcmVzc2lvbikpKTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2Ug
NTM6Ci0jbGluZSA0MzggIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgNDM1ICJY
UGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBM
b2dpY2FsT3AoTG9naWNhbE9wOjpPUF9BbmQsIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigo
eXl2c3BbKDEpIC0gKDMpXS5leHByZXNzaW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9u
PigoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNzaW9uKSkpOworICAgICAgICAoeXl2YWwuZXhwcmVz
c2lvbikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OkxvZ2ljYWxPcChXZWJDb3JlOjpYUGF0aDo6TG9n
aWNhbE9wOjpPUF9BbmQsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lv
bj4oKHl5dnNwWygxKSAtICgzKV0uZXhwcmVzc2lvbikpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5eXZzcFsoMykgLSAoMyldLmV4cHJlc3Npb24pKSk7CiAg
ICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDU1OgotI2xpbmUgNDQ3ICJXZWJDb3JlL3htbC9Y
UGF0aEdyYW1tYXIueSIKKyNsaW5lIDQ0NCAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAgICAg
ICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgRXFUZXN0T3AoKHl5dnNwWygyKSAtICgzKV0uZXF1
YWxpdHlUZXN0T3Bjb2RlKSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMSkg
LSAoMyldLmV4cHJlc3Npb24pKSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFso
MykgLSAoMyldLmV4cHJlc3Npb24pKSk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5l
dyBXZWJDb3JlOjpYUGF0aDo6RXFUZXN0T3AoKHl5dnNwWygyKSAtICgzKV0uZXF1YWxpdHlUZXN0
T3Bjb2RlKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigoeXl2
c3BbKDEpIC0gKDMpXS5leHByZXNzaW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0
aDo6RXhwcmVzc2lvbj4oKHl5dnNwWygzKSAtICgzKV0uZXhwcmVzc2lvbikpKTsKICAgICA7fQog
ICAgIGJyZWFrOwogCiAgIGNhc2UgNTc6Ci0jbGluZSA0NTYgIldlYkNvcmUveG1sL1hQYXRoR3Jh
bW1hci55IgorI2xpbmUgNDUzICJYUGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgICh5eXZh
bC5leHByZXNzaW9uKSA9IG5ldyBFcVRlc3RPcCgoeXl2c3BbKDIpIC0gKDMpXS5lcXVhbGl0eVRl
c3RPcGNvZGUpLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgzKV0u
ZXhwcmVzc2lvbikpLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygzKSAtICgz
KV0uZXhwcmVzc2lvbikpKTsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb24pID0gbmV3IFdlYkNv
cmU6OlhQYXRoOjpFcVRlc3RPcCgoeXl2c3BbKDIpIC0gKDMpXS5lcXVhbGl0eVRlc3RPcGNvZGUp
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5eXZzcFsoMSkg
LSAoMyldLmV4cHJlc3Npb24pKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHBy
ZXNzaW9uPigoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNzaW9uKSkpOwogICAgIDt9CiAgICAgYnJl
YWs7CiAKICAgY2FzZSA1OToKLSNsaW5lIDQ2NSAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnki
CisjbGluZSA0NjIgIlhQYXRoR3JhbW1hci55IgogICAgIHsKLSAgICAgICAgKHl5dmFsLmV4cHJl
c3Npb24pID0gbmV3IE51bWVyaWNPcChOdW1lcmljT3A6Ok9QX0FkZCwgc3RkOjp1bmlxdWVfcHRy
PEV4cHJlc3Npb24+KCh5eXZzcFsoMSkgLSAoMyldLmV4cHJlc3Npb24pKSwgc3RkOjp1bmlxdWVf
cHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMykgLSAoMyldLmV4cHJlc3Npb24pKSk7CisgICAgICAg
ICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TnVtZXJpY09wKFdlYkNv
cmU6OlhQYXRoOjpOdW1lcmljT3A6Ok9QX0FkZCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQ
YXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMpXS5leHByZXNzaW9uKSksIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNwWygzKSAtICgzKV0uZXhw
cmVzc2lvbikpKTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgNjA6Ci0jbGluZSA0NzAg
IldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgNDY3ICJYUGF0aEdyYW1tYXIueSIK
ICAgICB7Ci0gICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBOdW1lcmljT3AoTnVtZXJp
Y09wOjpPUF9TdWIsIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMp
XS5leHByZXNzaW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDMpIC0g
KDMpXS5leHByZXNzaW9uKSkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgV2Vi
Q29yZTo6WFBhdGg6Ok51bWVyaWNPcChXZWJDb3JlOjpYUGF0aDo6TnVtZXJpY09wOjpPUF9TdWIs
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAt
ICgzKV0uZXhwcmVzc2lvbikpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJl
c3Npb24+KCh5eXZzcFsoMykgLSAoMyldLmV4cHJlc3Npb24pKSk7CiAgICAgO30KICAgICBicmVh
azsKIAogICBjYXNlIDYyOgotI2xpbmUgNDc5ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIK
KyNsaW5lIDQ3NiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAgICAgICAoeXl2YWwuZXhwcmVz
c2lvbikgPSBuZXcgTnVtZXJpY09wKCh5eXZzcFsoMikgLSAoMyldLm51bWVyaWNPcGNvZGUpLCBz
dGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgzKV0uZXhwcmVzc2lvbikp
LCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygzKSAtICgzKV0uZXhwcmVzc2lv
bikpKTsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb24pID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpO
dW1lcmljT3AoKHl5dnNwWygyKSAtICgzKV0ubnVtZXJpY09wY29kZSksIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgzKV0uZXhwcmVzc2lv
bikpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5eXZzcFso
MykgLSAoMyldLmV4cHJlc3Npb24pKSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDY0
OgotI2xpbmUgNDg4ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDQ4NSAiWFBh
dGhHcmFtbWFyLnkiCiAgICAgewotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgTmVn
YXRpdmUoc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMikgLSAoMildLmV4cHJl
c3Npb24pKSk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBXZWJDb3JlOjpYUGF0
aDo6TmVnYXRpdmUoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigo
eXl2c3BbKDIpIC0gKDIpXS5leHByZXNzaW9uKSkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKIAog
LyogTGluZSAxMjY3IG9mIHlhY2MuYy4gICovCi0jbGluZSAyMDQ5ICIuL1hQYXRoR3JhbW1hci5j
cHAiCisjbGluZSAyMDQ2ICJYUGF0aEdyYW1tYXIuY3BwIgogICAgICAgZGVmYXVsdDogYnJlYWs7
CiAgICAgfQogICBZWV9TWU1CT0xfUFJJTlQgKCItPiAkJCA9IiwgeXlyMVt5eW5dLCAmeXl2YWws
ICZ5eWxvYyk7CkBAIC0yMDg3LDM1ICsyMDg1LDM1IEBAIHl5ZXJybGFiOgogICAgICAgeXllcnJv
ciAocGFyc2VyLCBZWV8oInN5bnRheCBlcnJvciIpKTsKICNlbHNlCiAgICAgICB7Ci0gICAgWVlT
SVpFX1QgeXlzaXplID0geXlzeW50YXhfZXJyb3IgKDAsIHl5c3RhdGUsIHl5Y2hhcik7Ci0gICAg
aWYgKHl5bXNnX2FsbG9jIDwgeXlzaXplICYmIHl5bXNnX2FsbG9jIDwgWVlTVEFDS19BTExPQ19N
QVhJTVVNKQotICAgICAgewotICAgICAgICBZWVNJWkVfVCB5eWFsbG9jID0gMiAqIHl5c2l6ZTsK
LSAgICAgICAgaWYgKCEgKHl5c2l6ZSA8PSB5eWFsbG9jICYmIHl5YWxsb2MgPD0gWVlTVEFDS19B
TExPQ19NQVhJTVVNKSkKLSAgICAgICAgICB5eWFsbG9jID0gWVlTVEFDS19BTExPQ19NQVhJTVVN
OwotICAgICAgICBpZiAoeXltc2cgIT0geXltc2didWYpCi0gICAgICAgICAgWVlTVEFDS19GUkVF
ICh5eW1zZyk7Ci0gICAgICAgIHl5bXNnID0gKGNoYXIgKikgWVlTVEFDS19BTExPQyAoeXlhbGxv
Yyk7Ci0gICAgICAgIGlmICh5eW1zZykKLSAgICAgICAgICB5eW1zZ19hbGxvYyA9IHl5YWxsb2M7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICB7Ci0gICAgICAgIHl5bXNnID0geXltc2didWY7Ci0g
ICAgICAgIHl5bXNnX2FsbG9jID0gc2l6ZW9mIHl5bXNnYnVmOwotICAgICAgICAgIH0KLSAgICAg
IH0KLQotICAgIGlmICgwIDwgeXlzaXplICYmIHl5c2l6ZSA8PSB5eW1zZ19hbGxvYykKLSAgICAg
IHsKLSAgICAgICAgKHZvaWQpIHl5c3ludGF4X2Vycm9yICh5eW1zZywgeXlzdGF0ZSwgeXljaGFy
KTsKLSAgICAgICAgeXllcnJvciAocGFyc2VyLCB5eW1zZyk7Ci0gICAgICB9Ci0gICAgZWxzZQot
ICAgICAgewotICAgICAgICB5eWVycm9yIChwYXJzZXIsIFlZXygic3ludGF4IGVycm9yIikpOwot
ICAgICAgICBpZiAoeXlzaXplICE9IDApCi0gICAgICAgICAgZ290byB5eWV4aGF1c3RlZGxhYjsK
LSAgICAgIH0KKwlZWVNJWkVfVCB5eXNpemUgPSB5eXN5bnRheF9lcnJvciAoMCwgeXlzdGF0ZSwg
eXljaGFyKTsKKwlpZiAoeXltc2dfYWxsb2MgPCB5eXNpemUgJiYgeXltc2dfYWxsb2MgPCBZWVNU
QUNLX0FMTE9DX01BWElNVU0pCisJICB7CisJICAgIFlZU0laRV9UIHl5YWxsb2MgPSAyICogeXlz
aXplOworCSAgICBpZiAoISAoeXlzaXplIDw9IHl5YWxsb2MgJiYgeXlhbGxvYyA8PSBZWVNUQUNL
X0FMTE9DX01BWElNVU0pKQorCSAgICAgIHl5YWxsb2MgPSBZWVNUQUNLX0FMTE9DX01BWElNVU07
CisJICAgIGlmICh5eW1zZyAhPSB5eW1zZ2J1ZikKKwkgICAgICBZWVNUQUNLX0ZSRUUgKHl5bXNn
KTsKKwkgICAgeXltc2cgPSAoY2hhciAqKSBZWVNUQUNLX0FMTE9DICh5eWFsbG9jKTsKKwkgICAg
aWYgKHl5bXNnKQorCSAgICAgIHl5bXNnX2FsbG9jID0geXlhbGxvYzsKKwkgICAgZWxzZQorCSAg
ICAgIHsKKwkJeXltc2cgPSB5eW1zZ2J1ZjsKKwkJeXltc2dfYWxsb2MgPSBzaXplb2YgeXltc2di
dWY7CisJICAgICAgfQorCSAgfQorCisJaWYgKDAgPCB5eXNpemUgJiYgeXlzaXplIDw9IHl5bXNn
X2FsbG9jKQorCSAgeworCSAgICAodm9pZCkgeXlzeW50YXhfZXJyb3IgKHl5bXNnLCB5eXN0YXRl
LCB5eWNoYXIpOworCSAgICB5eWVycm9yIChwYXJzZXIsIHl5bXNnKTsKKwkgIH0KKwllbHNlCisJ
ICB7CisJICAgIHl5ZXJyb3IgKHBhcnNlciwgWVlfKCJzeW50YXggZXJyb3IiKSk7CisJICAgIGlm
ICh5eXNpemUgIT0gMCkKKwkgICAgICBnb3RvIHl5ZXhoYXVzdGVkbGFiOworCSAgfQogICAgICAg
fQogI2VuZGlmCiAgICAgfQpAQCAtMjEyNSwyMCArMjEyMywyMCBAQCB5eWVycmxhYjoKICAgaWYg
KHl5ZXJyc3RhdHVzID09IDMpCiAgICAgewogICAgICAgLyogSWYganVzdCB0cmllZCBhbmQgZmFp
bGVkIHRvIHJldXNlIGxvb2stYWhlYWQgdG9rZW4gYWZ0ZXIgYW4KLSAgICAgZXJyb3IsIGRpc2Nh
cmQgaXQuICAqLworCSBlcnJvciwgZGlzY2FyZCBpdC4gICovCiAKICAgICAgIGlmICh5eWNoYXIg
PD0gWVlFT0YpCi0gICAgewotICAgICAgLyogUmV0dXJuIGZhaWx1cmUgaWYgYXQgZW5kIG9mIGlu
cHV0LiAgKi8KLSAgICAgIGlmICh5eWNoYXIgPT0gWVlFT0YpCi0gICAgICAgIFlZQUJPUlQ7Ci0g
ICAgfQorCXsKKwkgIC8qIFJldHVybiBmYWlsdXJlIGlmIGF0IGVuZCBvZiBpbnB1dC4gICovCisJ
ICBpZiAoeXljaGFyID09IFlZRU9GKQorCSAgICBZWUFCT1JUOworCX0KICAgICAgIGVsc2UKLSAg
ICB7Ci0gICAgICB5eWRlc3RydWN0ICgiRXJyb3I6IGRpc2NhcmRpbmciLAotICAgICAgICAgICAg
ICB5eXRva2VuLCAmeXlsdmFsLCBwYXJzZXIpOwotICAgICAgeXljaGFyID0gWVlFTVBUWTsKLSAg
ICB9CisJeworCSAgeXlkZXN0cnVjdCAoIkVycm9yOiBkaXNjYXJkaW5nIiwKKwkJICAgICAgeXl0
b2tlbiwgJnl5bHZhbCwgcGFyc2VyKTsKKwkgIHl5Y2hhciA9IFlZRU1QVFk7CisJfQogICAgIH0K
IAogICAvKiBFbHNlIHdpbGwgdHJ5IHRvIHJldXNlIGxvb2stYWhlYWQgdG9rZW4gYWZ0ZXIgc2hp
ZnRpbmcgdGhlIGVycm9yCkBAIC0yMTcyLDI5ICsyMTcwLDI5IEBAIHl5ZXJyb3JsYWI6CiB8IHl5
ZXJybGFiMSAtLSBjb21tb24gY29kZSBmb3IgYm90aCBzeW50YXggZXJyb3IgYW5kIFlZRVJST1Iu
ICB8CiBgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSovCiB5eWVycmxhYjE6Ci0gIHl5ZXJyc3RhdHVzID0gMzsgICAgLyogRWFjaCBy
ZWFsIHRva2VuIHNoaWZ0ZWQgZGVjcmVtZW50cyB0aGlzLiAgKi8KKyAgeXllcnJzdGF0dXMgPSAz
OwkvKiBFYWNoIHJlYWwgdG9rZW4gc2hpZnRlZCBkZWNyZW1lbnRzIHRoaXMuICAqLwogCiAgIGZv
ciAoOzspCiAgICAgewogICAgICAgeXluID0geXlwYWN0W3l5c3RhdGVdOwogICAgICAgaWYgKHl5
biAhPSBZWVBBQ1RfTklORikKLSAgICB7Ci0gICAgICB5eW4gKz0gWVlURVJST1I7Ci0gICAgICBp
ZiAoMCA8PSB5eW4gJiYgeXluIDw9IFlZTEFTVCAmJiB5eWNoZWNrW3l5bl0gPT0gWVlURVJST1Ip
Ci0gICAgICAgIHsKLSAgICAgICAgICB5eW4gPSB5eXRhYmxlW3l5bl07Ci0gICAgICAgICAgaWYg
KDAgPCB5eW4pCi0gICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQorCXsKKwkgIHl5biAr
PSBZWVRFUlJPUjsKKwkgIGlmICgwIDw9IHl5biAmJiB5eW4gPD0gWVlMQVNUICYmIHl5Y2hlY2tb
eXluXSA9PSBZWVRFUlJPUikKKwkgICAgeworCSAgICAgIHl5biA9IHl5dGFibGVbeXluXTsKKwkg
ICAgICBpZiAoMCA8IHl5bikKKwkJYnJlYWs7CisJICAgIH0KKwl9CiAKICAgICAgIC8qIFBvcCB0
aGUgY3VycmVudCBzdGF0ZSBiZWNhdXNlIGl0IGNhbm5vdCBoYW5kbGUgdGhlIGVycm9yIHRva2Vu
LiAgKi8KICAgICAgIGlmICh5eXNzcCA9PSB5eXNzKQotICAgIFlZQUJPUlQ7CisJWVlBQk9SVDsK
IAogCiAgICAgICB5eWRlc3RydWN0ICgiRXJyb3I6IHBvcHBpbmciLAotICAgICAgICAgIHl5c3Rv
c1t5eXN0YXRlXSwgeXl2c3AsIHBhcnNlcik7CisJCSAgeXlzdG9zW3l5c3RhdGVdLCB5eXZzcCwg
cGFyc2VyKTsKICAgICAgIFlZUE9QU1RBQ0sgKDEpOwogICAgICAgeXlzdGF0ZSA9ICp5eXNzcDsK
ICAgICAgIFlZX1NUQUNLX1BSSU5UICh5eXNzLCB5eXNzcCk7CkBAIC0yMjQwLDcgKzIyMzgsNyBA
QCB5eWV4aGF1c3RlZGxhYjoKIHl5cmV0dXJuOgogICBpZiAoeXljaGFyICE9IFlZRU9GICYmIHl5
Y2hhciAhPSBZWUVNUFRZKQogICAgICB5eWRlc3RydWN0ICgiQ2xlYW51cDogZGlzY2FyZGluZyBs
b29rYWhlYWQiLAotICAgICAgICAgeXl0b2tlbiwgJnl5bHZhbCwgcGFyc2VyKTsKKwkJIHl5dG9r
ZW4sICZ5eWx2YWwsIHBhcnNlcik7CiAgIC8qIERvIG5vdCByZWNsYWltIHRoZSBzeW1ib2xzIG9m
IHRoZSBydWxlIHdoaWNoIGFjdGlvbiB0cmlnZ2VyZWQKICAgICAgdGhpcyBZWUFCT1JUIG9yIFlZ
QUNDRVBULiAgKi8KICAgWVlQT1BTVEFDSyAoeXlsZW4pOwpAQCAtMjI0OCw3ICsyMjQ2LDcgQEAg
eXlyZXR1cm46CiAgIHdoaWxlICh5eXNzcCAhPSB5eXNzKQogICAgIHsKICAgICAgIHl5ZGVzdHJ1
Y3QgKCJDbGVhbnVwOiBwb3BwaW5nIiwKLSAgICAgICAgICB5eXN0b3NbKnl5c3NwXSwgeXl2c3As
IHBhcnNlcik7CisJCSAgeXlzdG9zWyp5eXNzcF0sIHl5dnNwLCBwYXJzZXIpOwogICAgICAgWVlQ
T1BTVEFDSyAoMSk7CiAgICAgfQogI2lmbmRlZiB5eW92ZXJmbG93CkBAIC0yMjY0LDYgKzIyNjIs
NiBAQCB5eXJldHVybjoKIH0KIAogCi0jbGluZSA0OTMgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1h
ci55IgorI2xpbmUgNDkwICJYUGF0aEdyYW1tYXIueSIKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFt
bWFyLnkKaW5kZXggNzc2OThmYTc2NGY3YTE1YTQ1YmM1YzBlNWQyZDY3NzUxYjFiZTcwZi4uYjBl
OGM3MjgwY2MzM2IyMWU3NTFjYzM0NjI3OTZjMGJjYWIyNzQwYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0
aEdyYW1tYXIueQpAQCAtNTIsNyArNTIsNyBAQAogCiAlcHVyZS1wYXJzZXIKICVsZXgtcGFyYW0g
eyBwYXJzZXIgfQotJXBhcnNlLXBhcmFtIHsgUGFyc2VyJiBwYXJzZXIgfQorJXBhcnNlLXBhcmFt
IHsgV2ViQ29yZTo6WFBhdGg6OlBhcnNlciYgcGFyc2VyIH0KIAogJXVuaW9uIHsgCiAgICAgV2Vi
Q29yZTo6WFBhdGg6Ok51bWVyaWNPcDo6T3Bjb2RlIG51bWVyaWNPcGNvZGU7CkBAIC0xMDAsOCAr
MTAwLDggQEAKIAogJXsKIAotc3RhdGljIGludCB4cGF0aHl5bGV4KFlZU1RZUEUqIHl5bHZhbCwg
UGFyc2VyJiBwYXJzZXIpIHsgcmV0dXJuIHBhcnNlci5sZXgoKnl5bHZhbCk7IH0KLXN0YXRpYyB2
b2lkIHhwYXRoeXllcnJvcihQYXJzZXImLCBjb25zdCBjaGFyKikgeyB9CitzdGF0aWMgaW50IHhw
YXRoeXlsZXgoWVlTVFlQRSogeXlsdmFsLCBXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiBwYXJzZXIp
IHsgcmV0dXJuIHBhcnNlci5sZXgoKnl5bHZhbCk7IH0KK3N0YXRpYyB2b2lkIHhwYXRoeXllcnJv
cihXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiwgY29uc3QgY2hhciopIHsgfQogCiAlfQogCkBAIC0x
MTAsNyArMTEwLDcgQEAgc3RhdGljIHZvaWQgeHBhdGh5eWVycm9yKFBhcnNlciYsIGNvbnN0IGNo
YXIqKSB7IH0KIFRvcDoKICAgICBFeHByCiAgICAgewotICAgICAgICBwYXJzZXIuc2V0UGFyc2VS
ZXN1bHQoc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQxKSk7CisgICAgICAgIHBhcnNlci5z
ZXRQYXJzZVJlc3VsdChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+
KCQxKSk7CiAgICAgfQogICAgIDsKIApAQCAtMTMxLDcgKzEzMSw3IEBAIExvY2F0aW9uUGF0aDoK
IEFic29sdXRlTG9jYXRpb25QYXRoOgogICAgICcvJwogICAgIHsKLSAgICAgICAgJCQgPSBuZXcg
TG9jYXRpb25QYXRoOworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TG9jYXRpb25Q
YXRoOwogICAgIH0KICAgICB8CiAgICAgJy8nIFJlbGF0aXZlTG9jYXRpb25QYXRoCkBAIC0xNDIs
NDYgKzE0Miw0NiBAQCBBYnNvbHV0ZUxvY2F0aW9uUGF0aDoKICAgICBEZXNjZW5kYW50T3JTZWxm
IFJlbGF0aXZlTG9jYXRpb25QYXRoCiAgICAgewogICAgICAgICAkJCA9ICQyOwotICAgICAgICAk
JC0+cHJlcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFN0ZXA+KCQxKSk7CisgICAgICAgICQkLT5w
cmVwZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA+KCQxKSk7CiAg
ICAgfQogICAgIDsKIAogUmVsYXRpdmVMb2NhdGlvblBhdGg6CiAgICAgU3RlcAogICAgIHsKLSAg
ICAgICAgJCQgPSBuZXcgTG9jYXRpb25QYXRoOwotICAgICAgICAkJC0+YXBwZW5kU3RlcChzdGQ6
OnVuaXF1ZV9wdHI8U3RlcD4oJDEpKTsKKyAgICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6
OkxvY2F0aW9uUGF0aDsKKyAgICAgICAgJCQtPmFwcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OlhQYXRoOjpTdGVwPigkMSkpOwogICAgIH0KICAgICB8CiAgICAgUmVsYXRpdmVMb2Nh
dGlvblBhdGggJy8nIFN0ZXAKICAgICB7CiAgICAgICAgICQkID0gJDE7Ci0gICAgICAgICQkLT5h
cHBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0cjxTdGVwPigkMykpOworICAgICAgICAkJC0+YXBwZW5k
U3RlcChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA+KCQzKSk7CiAgICAgfQog
ICAgIHwKICAgICBSZWxhdGl2ZUxvY2F0aW9uUGF0aCBEZXNjZW5kYW50T3JTZWxmIFN0ZXAKICAg
ICB7CiAgICAgICAgICQkID0gJDE7Ci0gICAgICAgICQkLT5hcHBlbmRTdGVwKHN0ZDo6dW5pcXVl
X3B0cjxTdGVwPigkMikpOwotICAgICAgICAkJC0+YXBwZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8
U3RlcD4oJDMpKTsKKyAgICAgICAgJCQtPmFwcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlhQYXRoOjpTdGVwPigkMikpOworICAgICAgICAkJC0+YXBwZW5kU3RlcChzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA+KCQzKSk7CiAgICAgfQogICAgIDsKIAogU3RlcDoK
ICAgICBOb2RlVGVzdCBPcHRpb25hbFByZWRpY2F0ZUxpc3QKICAgICB7Ci0gICAgICAgIHN0ZDo6
dW5pcXVlX3B0cjxTdGVwOjpOb2RlVGVzdD4gbm9kZVRlc3QoJDEpOwotICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPj4+IHByZWRpY2F0ZUxp
c3QoJDIpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5v
ZGVUZXN0PiBub2RlVGVzdCgkMSk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPj4+IHByZWRpY2F0ZUxpc3Qo
JDIpOwogICAgICAgICBpZiAocHJlZGljYXRlTGlzdCkKLSAgICAgICAgICAgICQkID0gbmV3IFN0
ZXAoU3RlcDo6Q2hpbGRBeGlzLCBXVEZNb3ZlKCpub2RlVGVzdCksIFdURk1vdmUoKnByZWRpY2F0
ZUxpc3QpKTsKKyAgICAgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdlYkNv
cmU6OlhQYXRoOjpTdGVwOjpDaGlsZEF4aXMsIFdURk1vdmUoKm5vZGVUZXN0KSwgV1RGTW92ZSgq
cHJlZGljYXRlTGlzdCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICAkJCA9IG5ldyBTdGVw
KFN0ZXA6OkNoaWxkQXhpcywgV1RGTW92ZSgqbm9kZVRlc3QpKTsKKyAgICAgICAgICAgICQkID0g
bmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpDaGlsZEF4aXMs
IFdURk1vdmUoKm5vZGVUZXN0KSk7CiAgICAgfQogICAgIHwKICAgICBOQU1FVEVTVCBPcHRpb25h
bFByZWRpY2F0ZUxpc3QKICAgICB7CiAgICAgICAgIFN0cmluZyBuYW1ldGVzdCA9IGFkb3B0UmVm
KCQxKTsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhw
cmVzc2lvbj4+PiBwcmVkaWNhdGVMaXN0KCQyKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZl
Y3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+Pj4gcHJlZGlj
YXRlTGlzdCgkMik7CiAKICAgICAgICAgU3RyaW5nIGxvY2FsTmFtZTsKICAgICAgICAgU3RyaW5n
IG5hbWVzcGFjZVVSSTsKQEAgLTE5MSwyNiArMTkxLDI2IEBAIFN0ZXA6CiAgICAgICAgIH0KIAog
ICAgICAgICBpZiAocHJlZGljYXRlTGlzdCkKLSAgICAgICAgICAgICQkID0gbmV3IFN0ZXAoU3Rl
cDo6Q2hpbGRBeGlzLCBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6TmFtZVRlc3QsIGxv
Y2FsTmFtZSwgbmFtZXNwYWNlVVJJKSwgV1RGTW92ZSgqcHJlZGljYXRlTGlzdCkpOworICAgICAg
ICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0ZXAoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6
OkNoaWxkQXhpcywgV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0KFdlYkNvcmU6OlhQYXRo
OjpTdGVwOjpOb2RlVGVzdDo6TmFtZVRlc3QsIGxvY2FsTmFtZSwgbmFtZXNwYWNlVVJJKSwgV1RG
TW92ZSgqcHJlZGljYXRlTGlzdCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICAkJCA9IG5l
dyBTdGVwKFN0ZXA6OkNoaWxkQXhpcywgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6Ok5h
bWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSkpOworICAgICAgICAgICAgJCQgPSBuZXcg
V2ViQ29yZTo6WFBhdGg6OlN0ZXAoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6OkNoaWxkQXhpcywgV2Vi
Q29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0KFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVz
dDo6TmFtZVRlc3QsIGxvY2FsTmFtZSwgbmFtZXNwYWNlVVJJKSk7CiAgICAgfQogICAgIHwKICAg
ICBBeGlzU3BlY2lmaWVyIE5vZGVUZXN0IE9wdGlvbmFsUHJlZGljYXRlTGlzdAogICAgIHsKLSAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFN0ZXA6Ok5vZGVUZXN0PiBub2RlVGVzdCgkMik7Ci0gICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+Pj4g
cHJlZGljYXRlTGlzdCgkMyk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0
aDo6U3RlcDo6Tm9kZVRlc3Q+IG5vZGVUZXN0KCQyKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+Pj4gcHJl
ZGljYXRlTGlzdCgkMyk7CiAKICAgICAgICAgaWYgKHByZWRpY2F0ZUxpc3QpCi0gICAgICAgICAg
ICAkJCA9IG5ldyBTdGVwKCQxLCBXVEZNb3ZlKCpub2RlVGVzdCksIFdURk1vdmUoKnByZWRpY2F0
ZUxpc3QpKTsKKyAgICAgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKCQxLCBX
VEZNb3ZlKCpub2RlVGVzdCksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgJCQgPSBuZXcgU3RlcCgkMSwgV1RGTW92ZSgqbm9kZVRlc3QpKTsKKyAg
ICAgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKCQxLCBXVEZNb3ZlKCpub2Rl
VGVzdCkpOwogICAgIH0KICAgICB8CiAgICAgQXhpc1NwZWNpZmllciBOQU1FVEVTVCBPcHRpb25h
bFByZWRpY2F0ZUxpc3QKICAgICB7CiAgICAgICAgIFN0cmluZyBuYW1ldGVzdCA9IGFkb3B0UmVm
KCQyKTsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhw
cmVzc2lvbj4+PiBwcmVkaWNhdGVMaXN0KCQzKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZl
Y3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+Pj4gcHJlZGlj
YXRlTGlzdCgkMyk7CiAKICAgICAgICAgU3RyaW5nIGxvY2FsTmFtZTsKICAgICAgICAgU3RyaW5n
IG5hbWVzcGFjZVVSSTsKQEAgLTIyMCw5ICsyMjAsOSBAQCBTdGVwOgogICAgICAgICB9CiAKICAg
ICAgICAgaWYgKHByZWRpY2F0ZUxpc3QpCi0gICAgICAgICAgICAkJCA9IG5ldyBTdGVwKCQxLCBT
dGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6TmFtZVRlc3QsIGxvY2FsTmFtZSwgbmFtZXNw
YWNlVVJJKSwgV1RGTW92ZSgqcHJlZGljYXRlTGlzdCkpOworICAgICAgICAgICAgJCQgPSBuZXcg
V2ViQ29yZTo6WFBhdGg6OlN0ZXAoJDEsIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChX
ZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVz
cGFjZVVSSSksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgJCQgPSBuZXcgU3RlcCgkMSwgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6Ok5h
bWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSkpOworICAgICAgICAgICAgJCQgPSBuZXcg
V2ViQ29yZTo6WFBhdGg6OlN0ZXAoJDEsIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChX
ZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVz
cGFjZVVSSSkpOwogICAgIH0KICAgICB8CiAgICAgQWJicmV2aWF0ZWRTdGVwCkBAIC0yMzMsMzUg
KzIzMywzNSBAQCBBeGlzU3BlY2lmaWVyOgogICAgIHwKICAgICAnQCcKICAgICB7Ci0gICAgICAg
ICQkID0gU3RlcDo6QXR0cmlidXRlQXhpczsKKyAgICAgICAgJCQgPSBXZWJDb3JlOjpYUGF0aDo6
U3RlcDo6QXR0cmlidXRlQXhpczsKICAgICB9CiAgICAgOwogCiBOb2RlVGVzdDoKICAgICBOT0RF
ICcoJyAnKScKICAgICB7Ci0gICAgICAgICQkID0gbmV3IFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5v
ZGVUZXN0OjpBbnlOb2RlVGVzdCk7CisgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpT
dGVwOjpOb2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6OkFueU5vZGVUZXN0
KTsKICAgICB9CiAgICAgfAogICAgIFRFWFRfICcoJyAnKScKICAgICB7Ci0gICAgICAgICQkID0g
bmV3IFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpUZXh0Tm9kZVRlc3QpOworICAgICAg
ICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBhdGg6
OlN0ZXA6Ok5vZGVUZXN0OjpUZXh0Tm9kZVRlc3QpOwogICAgIH0KICAgICB8CiAgICAgQ09NTUVO
VCAnKCcgJyknCiAgICAgewotICAgICAgICAkJCA9IG5ldyBTdGVwOjpOb2RlVGVzdChTdGVwOjpO
b2RlVGVzdDo6Q29tbWVudE5vZGVUZXN0KTsKKyAgICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBh
dGg6OlN0ZXA6Ok5vZGVUZXN0KFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6Q29tbWVu
dE5vZGVUZXN0KTsKICAgICB9CiAgICAgfAogICAgIFBJICcoJyAnKScKICAgICB7Ci0gICAgICAg
ICQkID0gbmV3IFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb25Ob2RlVGVzdCk7CisgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpO
b2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6OlByb2Nlc3NpbmdJbnN0cnVj
dGlvbk5vZGVUZXN0KTsKICAgICB9CiAgICAgfAogICAgIFBJICcoJyBMSVRFUkFMICcpJwogICAg
IHsKICAgICAgICAgU3RyaW5nIGxpdGVyYWwgPSBhZG9wdFJlZigkMyk7Ci0gICAgICAgICQkID0g
bmV3IFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25O
b2RlVGVzdCwgbGl0ZXJhbC5zdHJpcFdoaXRlU3BhY2UoKSk7CisgICAgICAgICQkID0gbmV3IFdl
YkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRl
c3Q6OlByb2Nlc3NpbmdJbnN0cnVjdGlvbk5vZGVUZXN0LCBsaXRlcmFsLnN0cmlwV2hpdGVTcGFj
ZSgpKTsKICAgICB9CiAgICAgOwogCkBAIC0yNzcsMTQgKzI3NywxNCBAQCBPcHRpb25hbFByZWRp
Y2F0ZUxpc3Q6CiBQcmVkaWNhdGVMaXN0OgogICAgIFByZWRpY2F0ZQogICAgIHsKLSAgICAgICAg
JCQgPSBuZXcgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPj47Ci0gICAgICAgICQk
LT5hcHBlbmQoc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQxKSk7CisgICAgICAgICQkID0g
bmV3IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+PjsK
KyAgICAgICAgJCQtPmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJl
c3Npb24+KCQxKSk7CiAgICAgfQogICAgIHwKICAgICBQcmVkaWNhdGVMaXN0IFByZWRpY2F0ZQog
ICAgIHsKICAgICAgICAgJCQgPSAkMTsKLSAgICAgICAgJCQtPmFwcGVuZChzdGQ6OnVuaXF1ZV9w
dHI8RXhwcmVzc2lvbj4oJDIpKTsKKyAgICAgICAgJCQtPmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQyKSk7CiAgICAgfQogICAgIDsKIApAQCAtMjk4
LDE5ICsyOTgsMTkgQEAgUHJlZGljYXRlOgogRGVzY2VuZGFudE9yU2VsZjoKICAgICBTTEFTSFNM
QVNICiAgICAgewotICAgICAgICAkJCA9IG5ldyBTdGVwKFN0ZXA6OkRlc2NlbmRhbnRPclNlbGZB
eGlzLCBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6QW55Tm9kZVRlc3QpKTsKKyAgICAg
ICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0ZXAoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6OkRl
c2NlbmRhbnRPclNlbGZBeGlzLCBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29y
ZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpBbnlOb2RlVGVzdCkpOwogICAgIH0KICAgICA7CiAK
IEFiYnJldmlhdGVkU3RlcDoKICAgICAnLicKICAgICB7Ci0gICAgICAgICQkID0gbmV3IFN0ZXAo
U3RlcDo6U2VsZkF4aXMsIFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpBbnlOb2RlVGVz
dCkpOworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcChXZWJDb3JlOjpYUGF0
aDo6U3RlcDo6U2VsZkF4aXMsIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChXZWJDb3Jl
OjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6OkFueU5vZGVUZXN0KSk7CiAgICAgfQogICAgIHwKICAg
ICBET1RET1QKICAgICB7Ci0gICAgICAgICQkID0gbmV3IFN0ZXAoU3RlcDo6UGFyZW50QXhpcywg
U3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6OkFueU5vZGVUZXN0KSk7CisgICAgICAgICQk
ID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpQYXJlbnRB
eGlzLCBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6
Ok5vZGVUZXN0OjpBbnlOb2RlVGVzdCkpOwogICAgIH0KICAgICA7CiAKQEAgLTMxOCw3ICszMTgs
NyBAQCBQcmltYXJ5RXhwcjoKICAgICBWQVJJQUJMRVJFRkVSRU5DRQogICAgIHsKICAgICAgICAg
U3RyaW5nIG5hbWUgPSBhZG9wdFJlZigkMSk7Ci0gICAgICAgICQkID0gbmV3IFZhcmlhYmxlUmVm
ZXJlbmNlKG5hbWUpOworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6VmFyaWFibGVS
ZWZlcmVuY2UobmFtZSk7CiAgICAgfQogICAgIHwKICAgICAnKCcgRXhwciAnKScKQEAgLTMyOSwx
MyArMzI5LDEzIEBAIFByaW1hcnlFeHByOgogICAgIExJVEVSQUwKICAgICB7CiAgICAgICAgIFN0
cmluZyBsaXRlcmFsID0gYWRvcHRSZWYoJDEpOwotICAgICAgICAkJCA9IG5ldyBTdHJpbmdFeHBy
ZXNzaW9uKFdURk1vdmUobGl0ZXJhbCkpOworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0
aDo6U3RyaW5nRXhwcmVzc2lvbihXVEZNb3ZlKGxpdGVyYWwpKTsKICAgICB9CiAgICAgfAogICAg
IE5VTUJFUgogICAgIHsKICAgICAgICAgU3RyaW5nIG51bWVyYWwgPSBhZG9wdFJlZigkMSk7Ci0g
ICAgICAgICQkID0gbmV3IE51bWJlcihudW1lcmFsLnRvRG91YmxlKCkpOworICAgICAgICAkJCA9
IG5ldyBXZWJDb3JlOjpYUGF0aDo6TnVtYmVyKG51bWVyYWwudG9Eb3VibGUoKSk7CiAgICAgfQog
ICAgIHwKICAgICBGdW5jdGlvbkNhbGwKQEAgLTM0NSw3ICszNDUsNyBAQCBGdW5jdGlvbkNhbGw6
CiAgICAgRlVOQ1RJT05OQU1FICcoJyAnKScKICAgICB7CiAgICAgICAgIFN0cmluZyBuYW1lID0g
YWRvcHRSZWYoJDEpOwotICAgICAgICAkJCA9IFhQYXRoOjpGdW5jdGlvbjo6Y3JlYXRlKG5hbWUp
LnJlbGVhc2UoKTsKKyAgICAgICAgJCQgPSBXZWJDb3JlOjpYUGF0aDo6RnVuY3Rpb246OmNyZWF0
ZShuYW1lKS5yZWxlYXNlKCk7CiAgICAgICAgIGlmICghJCQpCiAgICAgICAgICAgICBZWUFCT1JU
OwogICAgIH0KQEAgLTM1Myw4ICszNTMsOCBAQCBGdW5jdGlvbkNhbGw6CiAgICAgRlVOQ1RJT05O
QU1FICcoJyBBcmd1bWVudExpc3QgJyknCiAgICAgewogICAgICAgICBTdHJpbmcgbmFtZSA9IGFk
b3B0UmVmKCQxKTsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9w
dHI8RXhwcmVzc2lvbj4+PiBhcmd1bWVudExpc3QoJDMpOwotICAgICAgICAkJCA9IFhQYXRoOjpG
dW5jdGlvbjo6Y3JlYXRlKG5hbWUsIFdURk1vdmUoKmFyZ3VtZW50TGlzdCkpLnJlbGVhc2UoKTsK
KyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
WFBhdGg6OkV4cHJlc3Npb24+Pj4gYXJndW1lbnRMaXN0KCQzKTsKKyAgICAgICAgJCQgPSBXZWJD
b3JlOjpYUGF0aDo6RnVuY3Rpb246OmNyZWF0ZShuYW1lLCBXVEZNb3ZlKCphcmd1bWVudExpc3Qp
KS5yZWxlYXNlKCk7CiAgICAgICAgIGlmICghJCQpCiAgICAgICAgICAgICBZWUFCT1JUOwogICAg
IH0KQEAgLTM2MywxNCArMzYzLDE0IEBAIEZ1bmN0aW9uQ2FsbDoKIEFyZ3VtZW50TGlzdDoKICAg
ICBBcmd1bWVudAogICAgIHsKLSAgICAgICAgJCQgPSBuZXcgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0
cjxFeHByZXNzaW9uPj47Ci0gICAgICAgICQkLT5hcHBlbmQoc3RkOjp1bmlxdWVfcHRyPEV4cHJl
c3Npb24+KCQxKSk7CisgICAgICAgICQkID0gbmV3IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6WFBhdGg6OkV4cHJlc3Npb24+PjsKKyAgICAgICAgJCQtPmFwcGVuZChzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQxKSk7CiAgICAgfQogICAgIHwKICAg
ICBBcmd1bWVudExpc3QgJywnIEFyZ3VtZW50CiAgICAgewogICAgICAgICAkJCA9ICQxOwotICAg
ICAgICAkJC0+YXBwZW5kKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigkMykpOworICAgICAg
ICAkJC0+YXBwZW5kKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4o
JDMpKTsKICAgICB9CiAgICAgOwogCkBAIC0zODMsNyArMzgzLDcgQEAgVW5pb25FeHByOgogICAg
IHwKICAgICBVbmlvbkV4cHIgJ3wnIFBhdGhFeHByCiAgICAgewotICAgICAgICAkJCA9IG5ldyBV
bmlvbihzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8RXhw
cmVzc2lvbj4oJDMpKTsKKyAgICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlVuaW9uKHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oJDEpLCBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQzKSk7CiAgICAgfQogICAgIDsKIApA
QCAtMzk4LDE0ICszOTgsMTQgQEAgUGF0aEV4cHI6CiAgICAgRmlsdGVyRXhwciAnLycgUmVsYXRp
dmVMb2NhdGlvblBhdGgKICAgICB7CiAgICAgICAgICQzLT5zZXRBYnNvbHV0ZSgpOwotICAgICAg
ICAkJCA9IG5ldyBYUGF0aDo6UGF0aChzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDEpLCBz
dGQ6OnVuaXF1ZV9wdHI8TG9jYXRpb25QYXRoPigkMykpOworICAgICAgICAkJCA9IG5ldyBXZWJD
b3JlOjpYUGF0aDo6UGF0aChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Np
b24+KCQxKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpMb2NhdGlvblBhdGg+KCQz
KSk7CiAgICAgfQogICAgIHwKICAgICBGaWx0ZXJFeHByIERlc2NlbmRhbnRPclNlbGYgUmVsYXRp
dmVMb2NhdGlvblBhdGgKICAgICB7Ci0gICAgICAgICQzLT5wcmVwZW5kU3RlcChzdGQ6OnVuaXF1
ZV9wdHI8U3RlcD4oJDIpKTsKKyAgICAgICAgJDMtPnByZXBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpYUGF0aDo6U3RlcD4oJDIpKTsKICAgICAgICAgJDMtPnNldEFic29sdXRlKCk7
Ci0gICAgICAgICQkID0gbmV3IFhQYXRoOjpQYXRoKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9u
PigkMSksIHN0ZDo6dW5pcXVlX3B0cjxMb2NhdGlvblBhdGg+KCQzKSk7CisgICAgICAgICQkID0g
bmV3IFdlYkNvcmU6OlhQYXRoOjpQYXRoKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6
RXhwcmVzc2lvbj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkxvY2F0aW9u
UGF0aD4oJDMpKTsKICAgICB9CiAgICAgOwogCkBAIC00MTQsOCArNDE0LDggQEAgRmlsdGVyRXhw
cjoKICAgICB8CiAgICAgUHJpbWFyeUV4cHIgUHJlZGljYXRlTGlzdAogICAgIHsKLSAgICAgICAg
c3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+PiBwcmVk
aWNhdGVMaXN0KCQyKTsKLSAgICAgICAgJCQgPSBuZXcgRmlsdGVyKHN0ZDo6dW5pcXVlX3B0cjxF
eHByZXNzaW9uPigkMSksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Np
b24+Pj4gcHJlZGljYXRlTGlzdCgkMik7CisgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRo
OjpGaWx0ZXIoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMSks
IFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKICAgICB9CiAgICAgOwogCkBAIC00MjQsNyArNDI0
LDcgQEAgT3JFeHByOgogICAgIHwKICAgICBPckV4cHIgT1IgQW5kRXhwcgogICAgIHsKLSAgICAg
ICAgJCQgPSBuZXcgTG9naWNhbE9wKExvZ2ljYWxPcDo6T1BfT3IsIHN0ZDo6dW5pcXVlX3B0cjxF
eHByZXNzaW9uPigkMSksIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigkMykpOworICAgICAg
ICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TG9naWNhbE9wKFdlYkNvcmU6OlhQYXRoOjpMb2dp
Y2FsT3A6Ok9QX09yLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+
KCQxKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMykpOwog
ICAgIH0KICAgICA7CiAKQEAgLTQzMyw3ICs0MzMsNyBAQCBBbmRFeHByOgogICAgIHwKICAgICBB
bmRFeHByIEFORCBFcXVhbGl0eUV4cHIKICAgICB7Ci0gICAgICAgICQkID0gbmV3IExvZ2ljYWxP
cChMb2dpY2FsT3A6Ok9QX0FuZCwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQxKSwgc3Rk
Ojp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQzKSk7CisgICAgICAgICQkID0gbmV3IFdlYkNvcmU6
OlhQYXRoOjpMb2dpY2FsT3AoV2ViQ29yZTo6WFBhdGg6OkxvZ2ljYWxPcDo6T1BfQW5kLCBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQxKSwgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMykpOwogICAgIH0KICAgICA7CiAKQEAg
LTQ0Miw3ICs0NDIsNyBAQCBFcXVhbGl0eUV4cHI6CiAgICAgfAogICAgIEVxdWFsaXR5RXhwciBF
UU9QIFJlbGF0aW9uYWxFeHByCiAgICAgewotICAgICAgICAkJCA9IG5ldyBFcVRlc3RPcCgkMiwg
c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQxKSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Np
b24+KCQzKSk7CisgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpFcVRlc3RPcCgkMiwg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMSksIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oJDMpKTsKICAgICB9CiAgICAgOwog
CkBAIC00NTEsNyArNDUxLDcgQEAgUmVsYXRpb25hbEV4cHI6CiAgICAgfAogICAgIFJlbGF0aW9u
YWxFeHByIFJFTE9QIEFkZGl0aXZlRXhwcgogICAgIHsKLSAgICAgICAgJCQgPSBuZXcgRXFUZXN0
T3AoJDIsIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigkMSksIHN0ZDo6dW5pcXVlX3B0cjxF
eHByZXNzaW9uPigkMykpOworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6RXFUZXN0
T3AoJDIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oJDEpLCBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQzKSk7CiAgICAgfQog
ICAgIDsKIApAQCAtNDYwLDEyICs0NjAsMTIgQEAgQWRkaXRpdmVFeHByOgogICAgIHwKICAgICBB
ZGRpdGl2ZUV4cHIgUExVUyBNdWx0aXBsaWNhdGl2ZUV4cHIKICAgICB7Ci0gICAgICAgICQkID0g
bmV3IE51bWVyaWNPcChOdW1lcmljT3A6Ok9QX0FkZCwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Np
b24+KCQxKSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQzKSk7CisgICAgICAgICQkID0g
bmV3IFdlYkNvcmU6OlhQYXRoOjpOdW1lcmljT3AoV2ViQ29yZTo6WFBhdGg6Ok51bWVyaWNPcDo6
T1BfQWRkLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQxKSwg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMykpOwogICAgIH0K
ICAgICB8CiAgICAgQWRkaXRpdmVFeHByIE1JTlVTIE11bHRpcGxpY2F0aXZlRXhwcgogICAgIHsK
LSAgICAgICAgJCQgPSBuZXcgTnVtZXJpY09wKE51bWVyaWNPcDo6T1BfU3ViLCBzdGQ6OnVuaXF1
ZV9wdHI8RXhwcmVzc2lvbj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDMpKTsK
KyAgICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6Ok51bWVyaWNPcChXZWJDb3JlOjpYUGF0
aDo6TnVtZXJpY09wOjpPUF9TdWIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhw
cmVzc2lvbj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+
KCQzKSk7CiAgICAgfQogICAgIDsKIApAQCAtNDc0LDcgKzQ3NCw3IEBAIE11bHRpcGxpY2F0aXZl
RXhwcjoKICAgICB8CiAgICAgTXVsdGlwbGljYXRpdmVFeHByIE1VTE9QIFVuYXJ5RXhwcgogICAg
IHsKLSAgICAgICAgJCQgPSBuZXcgTnVtZXJpY09wKCQyLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVz
c2lvbj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDMpKTsKKyAgICAgICAgJCQg
PSBuZXcgV2ViQ29yZTo6WFBhdGg6Ok51bWVyaWNPcCgkMiwgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0
aDo6RXhwcmVzc2lvbj4oJDMpKTsKICAgICB9CiAgICAgOwogCkBAIC00ODMsNyArNDgzLDcgQEAg
VW5hcnlFeHByOgogICAgIHwKICAgICBNSU5VUyBVbmFyeUV4cHIKICAgICB7Ci0gICAgICAgICQk
ID0gbmV3IE5lZ2F0aXZlKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigkMikpOworICAgICAg
ICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TmVnYXRpdmUoc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMikpOwogICAgIH0KICAgICA7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL2Nv
bS5hcHBsZS53ZWJraXQuYWRhdHRyaWJ1dGlvbmQucGxpc3QgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9jb20uYXBwbGUud2Via2l0LmFkYXR0
cmlidXRpb25kLnBsaXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1NmQwZDU3ZmU3NWQwYTRhYTRhYjhmYzkxYzQ1
OTJlOTM0ZDdhMDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRy
eVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9jb20uYXBwbGUud2Via2l0LmFkYXR0cmlidXRp
b25kLnBsaXN0CkBAIC0wLDAgKzEsNTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
IlVURi04Ij8+Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEu
MC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4K
KzxwbGlzdCB2ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5FbmFibGVQcmVzc3VyZWRFeGl0
PC9rZXk+CisJPHRydWUvPgorCTxrZXk+RW5hYmxlVHJhbnNhY3Rpb25zPC9rZXk+CisJPHRydWUv
PgorCTxrZXk+TGFiZWw8L2tleT4KKwk8c3RyaW5nPmNvbS5hcHBsZS53ZWJraXQuYWRhdHRyaWJ1
dGlvbmQ8L3N0cmluZz4KKwk8a2V5Pk1hY2hTZXJ2aWNlczwva2V5PgorCTxkaWN0PgorCQk8a2V5
PmNvbS5hcHBsZS53ZWJraXQuYWRhdHRyaWJ1dGlvbmQuc2VydmljZTwva2V5PgorCQk8dHJ1ZS8+
CisJPC9kaWN0PgorCTxrZXk+TGF1bmNoRXZlbnRzPC9rZXk+CisJPGRpY3Q+CisJCTxrZXk+Y29t
LmFwcGxlLnhwYy5hY3Rpdml0eTwva2V5PgorCQk8ZGljdD4KKwkJCTxrZXk+Y29tLmFwcGxlLndl
YmtpdC5hZGF0dHJpYnV0aW9uZC5hY3Rpdml0eTwva2V5PgorCQkJPGRpY3Q+CisJCQkJPGtleT5J
bnRlcnZhbDwva2V5PgorCQkJCTxpbnRlZ2VyPjg2NDAwPC9pbnRlZ2VyPgorCQkJCTxrZXk+R3Jh
Y2VQZXJpb2Q8L2tleT4KKwkJCQk8cmVhbD4zNjAwPC9yZWFsPgorCQkJCTxrZXk+UHJpb3JpdHk8
L2tleT4KKwkJCQk8c3RyaW5nPk1haW50ZW5hbmNlPC9zdHJpbmc+CisJCQkJPGtleT5BbGxvd0Jh
dHRlcnk8L2tleT4KKwkJCQk8dHJ1ZS8+CisJCQkJPGtleT5SYW5kb21Jbml0aWFsRGVsYXk8L2tl
eT4KKwkJCQk8aW50ZWdlcj44NjQwMDwvaW50ZWdlcj4KKwkJCQk8a2V5PlJlcXVpcmVOZXR3b3Jr
Q29ubmVjdGl2aXR5PC9rZXk+CisJCQkJPHRydWUvPgorCQkJCTxrZXk+UmVwZWF0aW5nPC9rZXk+
CisJCQkJPHRydWUvPgorCQkJPC9kaWN0PgorCQk8L2RpY3Q+CisJPC9kaWN0PgorCTxrZXk+UHJv
Y2Vzc1R5cGU8L2tleT4KKwk8c3RyaW5nPkFkYXB0aXZlPC9zdHJpbmc+CisJPGtleT5Qcm9ncmFt
QXJndW1lbnRzPC9rZXk+CisJPGFycmF5PgorCQk8c3RyaW5nPi9TeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL1dlYktpdC5mcmFtZXdvcmsvRGFlbW9ucy9BZEF0dHJpYnV0aW9uRGFlbW9uPC9zdHJp
bmc+CisJCTxzdHJpbmc+LS1tYWNoU2VydmljZU5hbWU8L3N0cmluZz4KKwkJPHN0cmluZz5jb20u
YXBwbGUud2Via2l0LmFkYXR0cmlidXRpb25kLnNlcnZpY2U8L3N0cmluZz4KKwkJPHN0cmluZz4t
LXN0b3JhZ2VMb2NhdGlvbjwvc3RyaW5nPgorCQk8c3RyaW5nPi92YXIvbW9iaWxlL0xpYnJhcnkv
Y29tLmFwcGxlLndlYmtpdC5hZGF0dHJpYnV0aW9uZC9WZXJzaW9uMTwvc3RyaW5nPgorCQk8c3Ry
aW5nPi0tc3RhcnRBY3Rpdml0eTwvc3RyaW5nPgorCTwvYXJyYXk+CisJPGtleT5TdGFuZGFyZEVy
cm9yUGF0aDwva2V5PgorCTxzdHJpbmc+L2Rldi9udWxsPC9zdHJpbmc+Cis8L2RpY3Q+Cis8L3Bs
aXN0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440430</attachid>
            <date>2021-10-06 13:26:13 -0700</date>
            <delta_ts>2021-10-18 16:46:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231318-20211006132612.patch</filename>
            <type>text/plain</type>
            <size>74772</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk4MTQzMGRhNjdkZWRl
Yzk3M2ZjNmE4Yzk5MjEyNWIxYTUzY2YxYy4uMTAwOTA1YmYzMzkzZTQ4NTdkY2E2ZjY2NzZkYzlh
NGViNWUyODhjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTEwLTA2ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3Zl
ICJ1c2luZyBuYW1lc3BhY2UgWFBhdGg7IiBmcm9tIFhQYXRoR3JhbW1hci5jcHAKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTMxOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEkgZGlkIHRoaXMgYnkgZWRp
dGluZyBYUGF0aEdyYW1tYXIueSBhbmQgcmUtcnVubmluZyBiaXNvbi4KKyAgICAgICAgV2UgaGF2
ZSB0aGUgb3V0cHV0IG9mIGJpc29uIGNoZWNrZWQgaW4gdG8gb3VyIHJlcG8gdG8gbm90IGhhdmUg
Ymlzb24gYXMgYSBidWlsZCBkZXBlbmRlbmN5IG9mIFdlYktpdC4KKworICAgICAgICAqIHhtbC9Y
UGF0aEdyYW1tYXIuY3BwOgorICAgICAgICAoeHBhdGh5eWxleCk6CisgICAgICAgICh4cGF0aHl5
ZXJyb3IpOgorICAgICAgICAoeXlzeW50YXhfZXJyb3IpOgorICAgICAgICAqIHhtbC9YUGF0aEdy
YW1tYXIueToKKyAgICAgICAgKiB4bWwvWFBhdGhSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WFBhdGhSZXN1bHQ6OlhQYXRoUmVzdWx0KToKKwogMjAyMS0xMC0wNiAgQmVuIE5oYW0gIDxu
aGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBXYXZlU2hhcGVyUHJvY2Vzc29yIG1pc3NpbmcgQXJy
YXlCdWZmZXIgaW5jbHVkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoR3Jh
bW1hci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLmNwcAppbmRleCAwZDQ4
ODY3YTk4ZjZlNDMxMjgyZjMyMDRkZTUwZDZmMjA5NDAzNzQzLi5hZDkxNTM5OTY2ZWMwMzdhYzk5
ZmFiYjM4YzNiZmQ5MWIxNDQzN2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBh
dGhHcmFtbWFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLmNwcApA
QCAtMSw1ICsxLDUgQEAKIC8qIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgdXNpbmcgdGhlIGZvbGxv
d2luZyBjb21tYW5kOgotICAgYmlzb24gLWQgLXAgeHBhdGh5eSBYUGF0aEdyYW1tYXIueSAtbyBY
UGF0aEdyYW1tYXIuY3BwIAorICAgYmlzb24gLWQgLXAgeHBhdGh5eSBYUGF0aEdyYW1tYXIueSAt
byBYUGF0aEdyYW1tYXIuY3BwCiAgKi8KIAogLyogQSBCaXNvbiBwYXJzZXIsIG1hZGUgYnkgR05V
IEJpc29uIDIuMy4gICovCkBAIC0xMjYsOCArMTI2LDkgQEAKIAogCiAKKwogLyogQ29weSB0aGUg
Zmlyc3QgcGFydCBvZiB1c2VyIGRlY2xhcmF0aW9ucy4gICovCi0jbGluZSAyOCAiV2ViQ29yZS94
bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyOCAiWFBhdGhHcmFtbWFyLnkiCiAKIAogI2luY2x1
ZGUgImNvbmZpZy5oIgpAQCAtMTM4LDcgKzEzOSw2IEBACiAjaW5jbHVkZSAiWFBhdGhTdGVwLmgi
CiAjaW5jbHVkZSAiWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oIgogCi0KICNpZiBDT01QSUxFUihN
U1ZDKQogLy8gU2VlIGh0dHBzOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvMXdl
YTV6d2UuYXNweAogI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQ3MDEpCkBAIC0xNTIsOCArMTUy
LDYgQEAKICNkZWZpbmUgWVlERUJVRyAwCiAjZGVmaW5lIFlZTUFYREVQVEggMTAwMDAKIAotdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2UgWFBhdGg7CiAKIAogLyogRW5h
YmxpbmcgdHJhY2VzLiAgKi8KQEAgLTE3Niw3ICsxNzQsNyBAQCB1c2luZyBuYW1lc3BhY2UgWFBh
dGg7CiAKICNpZiAhIGRlZmluZWQgWVlTVFlQRSAmJiAhIGRlZmluZWQgWVlTVFlQRV9JU19ERUNM
QVJFRAogdHlwZWRlZiB1bmlvbiBZWVNUWVBFCi0jbGluZSA2MCAiV2ViQ29yZS94bWwvWFBhdGhH
cmFtbWFyLnkiCisjbGluZSA1NyAiWFBhdGhHcmFtbWFyLnkiCiB7IAogICAgIFdlYkNvcmU6OlhQ
YXRoOjpOdW1lcmljT3A6Ok9wY29kZSBudW1lcmljT3Bjb2RlOwogICAgIFdlYkNvcmU6OlhQYXRo
OjpFcVRlc3RPcDo6T3Bjb2RlIGVxdWFsaXR5VGVzdE9wY29kZTsKQEAgLTE4OSw4ICsxODcsOCBA
QCB0eXBlZGVmIHVuaW9uIFlZU1RZUEUKICAgICBXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbiog
ZXhwcmVzc2lvbjsKIH0KIC8qIExpbmUgMTkzIG9mIHlhY2MuYy4gICovCi0jbGluZSAxOTAgIi4v
WFBhdGhHcmFtbWFyLmNwcCIKLSAgICBZWVNUWVBFOworI2xpbmUgMTg3ICJYUGF0aEdyYW1tYXIu
Y3BwIgorCVlZU1RZUEU7CiAjIGRlZmluZSB5eXN0eXBlIFlZU1RZUEUgLyogb2Jzb2xlc2NlbnQ7
IHdpbGwgYmUgd2l0aGRyYXduICovCiAjIGRlZmluZSBZWVNUWVBFX0lTX0RFQ0xBUkVEIDEKICMg
ZGVmaW5lIFlZU1RZUEVfSVNfVFJJVklBTCAxCkBAIC0xOTksMTYgKzE5NywxNiBAQCB0eXBlZGVm
IHVuaW9uIFlZU1RZUEUKIAogCiAvKiBDb3B5IHRoZSBzZWNvbmQgcGFydCBvZiB1c2VyIGRlY2xh
cmF0aW9ucy4gICovCi0jbGluZSAxMDQgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xp
bmUgMTAxICJYUGF0aEdyYW1tYXIueSIKIAogCi1zdGF0aWMgaW50IHhwYXRoeXlsZXgoWVlTVFlQ
RSogeXlsdmFsLCBQYXJzZXImIHBhcnNlcikgeyByZXR1cm4gcGFyc2VyLmxleCgqeXlsdmFsKTsg
fQotc3RhdGljIHZvaWQgeHBhdGh5eWVycm9yKFBhcnNlciYsIGNvbnN0IGNoYXIqKSB7IH0KK3N0
YXRpYyBpbnQgeHBhdGh5eWxleChZWVNUWVBFKiB5eWx2YWwsIFdlYkNvcmU6OlhQYXRoOjpQYXJz
ZXImIHBhcnNlcikgeyByZXR1cm4gcGFyc2VyLmxleCgqeXlsdmFsKTsgfQorc3RhdGljIHZvaWQg
eHBhdGh5eWVycm9yKFdlYkNvcmU6OlhQYXRoOjpQYXJzZXImLCBjb25zdCBjaGFyKikgeyB9CiAK
IAogCiAvKiBMaW5lIDIxNiBvZiB5YWNjLmMuICAqLwotI2xpbmUgMjA5ICIuL1hQYXRoR3JhbW1h
ci5jcHAiCisjbGluZSAyMDYgIlhQYXRoR3JhbW1hci5jcHAiCiAKICNpZmRlZiBzaG9ydAogIyB1
bmRlZiBzaG9ydApAQCAtMzQwLDcgKzMzOCw3IEBAIFlZSUQgKGkpCiAjICBlbmRpZgogIyAgaWYg
KGRlZmluZWQgX19jcGx1c3BsdXMgJiYgISBkZWZpbmVkIF9TVERMSUJfSCBcCiAgICAgICAgJiYg
ISAoKGRlZmluZWQgWVlNQUxMT0MgfHwgZGVmaW5lZCBtYWxsb2MpIFwKLSAgICAgICAgICYmIChk
ZWZpbmVkIFlZRlJFRSB8fCBkZWZpbmVkIGZyZWUpKSkKKwkgICAgICYmIChkZWZpbmVkIFlZRlJF
RSB8fCBkZWZpbmVkIGZyZWUpKSkKICMgICBpbmNsdWRlIDxzdGRsaWIuaD4gLyogSU5GUklOR0VT
IE9OIFVTRVIgTkFNRSBTUEFDRSAqLwogIyAgIGlmbmRlZiBfU1RETElCX0gKICMgICAgZGVmaW5l
IF9TVERMSUJfSCAxCkBAIC0zNjYsNyArMzY0LDcgQEAgdm9pZCBmcmVlICh2b2lkICopOyAvKiBJ
TkZSSU5HRVMgT04gVVNFUiBOQU1FIFNQQUNFICovCiAKICNpZiAoISBkZWZpbmVkIHl5b3ZlcmZs
b3cgXAogICAgICAmJiAoISBkZWZpbmVkIF9fY3BsdXNwbHVzIFwKLSAgICAgfHwgKGRlZmluZWQg
WVlTVFlQRV9JU19UUklWSUFMICYmIFlZU1RZUEVfSVNfVFJJVklBTCkpKQorCSB8fCAoZGVmaW5l
ZCBZWVNUWVBFX0lTX1RSSVZJQUwgJiYgWVlTVFlQRV9JU19UUklWSUFMKSkpCiAKIC8qIEEgdHlw
ZSB0aGF0IGlzIHByb3Blcmx5IGFsaWduZWQgZm9yIGFueSBzdGFjayBtZW1iZXIuICAqLwogdW5p
b24geXlhbGxvYwpAQCAtMzkxLDEzICszODksMTMgQEAgdW5pb24geXlhbGxvYwogIyAgIGRlZmlu
ZSBZWUNPUFkoVG8sIEZyb20sIENvdW50KSBcCiAgICAgICBfX2J1aWx0aW5fbWVtY3B5IChUbywg
RnJvbSwgKENvdW50KSAqIHNpemVvZiAoKihGcm9tKSkpCiAjICBlbHNlCi0jICAgZGVmaW5lIFlZ
Q09QWShUbywgRnJvbSwgQ291bnQpICAgICAgICBcCi0gICAgICBkbyAgICAgICAgICAgICAgICAg
ICAgXAotICAgIHsgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIFlZU0laRV9UIHl5aTsgICAg
ICAgICAgICAgICAgXAotICAgICAgZm9yICh5eWkgPSAwOyB5eWkgPCAoQ291bnQpOyB5eWkrKykg
ICAgXAotICAgICAgICAoVG8pW3l5aV0gPSAoRnJvbSlbeXlpXTsgICAgICAgIFwKLSAgICB9ICAg
ICAgICAgICAgICAgICAgICBcCisjICAgZGVmaW5lIFlZQ09QWShUbywgRnJvbSwgQ291bnQpCQlc
CisgICAgICBkbwkJCQkJXAorCXsJCQkJCVwKKwkgIFlZU0laRV9UIHl5aTsJCQkJXAorCSAgZm9y
ICh5eWkgPSAwOyB5eWkgPCAoQ291bnQpOyB5eWkrKykJXAorCSAgICAoVG8pW3l5aV0gPSAoRnJv
bSlbeXlpXTsJCVwKKwl9CQkJCQlcCiAgICAgICB3aGlsZSAoWVlJRCAoMCkpCiAjICBlbmRpZgog
IyBlbmRpZgpAQCAtNDA3LDE1ICs0MDUsMTUgQEAgdW5pb24geXlhbGxvYwogICAgZWxlbWVudHMg
aW4gdGhlIHN0YWNrLCBhbmQgWVlQVFIgZ2l2ZXMgdGhlIG5ldyBsb2NhdGlvbiBvZiB0aGUKICAg
IHN0YWNrLiAgQWR2YW5jZSBZWVBUUiB0byBhIHByb3Blcmx5IGFsaWduZWQgbG9jYXRpb24gZm9y
IHRoZSBuZXh0CiAgICBzdGFjay4gICovCi0jIGRlZmluZSBZWVNUQUNLX1JFTE9DQVRFKFN0YWNr
KSAgICAgICAgICAgICAgICAgICAgXAotICAgIGRvICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBZWVNJWkVfVCB5eW5ld2J5dGVzOyAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBZ
WUNPUFkgKCZ5eXB0ci0+U3RhY2ssIFN0YWNrLCB5eXNpemUpOyAgICAgICAgICAgICAgICBcCi0g
ICAgU3RhY2sgPSAmeXlwdHItPlN0YWNrOyAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB5
eW5ld2J5dGVzID0geXlzdGFja3NpemUgKiBzaXplb2YgKCpTdGFjaykgKyBZWVNUQUNLX0dBUF9N
QVhJTVVNOyBcCi0gICAgeXlwdHIgKz0geXluZXdieXRlcyAvIHNpemVvZiAoKnl5cHRyKTsgICAg
ICAgICAgICAgICAgXAotICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyMgZGVmaW5lIFlZU1RBQ0tfUkVMT0NBVEUoU3RhY2spCQkJCQlcCisgICAgZG8JCQkJCQkJ
CQlcCisgICAgICB7CQkJCQkJCQkJXAorCVlZU0laRV9UIHl5bmV3Ynl0ZXM7CQkJCQkJXAorCVlZ
Q09QWSAoJnl5cHRyLT5TdGFjaywgU3RhY2ssIHl5c2l6ZSk7CQkJCVwKKwlTdGFjayA9ICZ5eXB0
ci0+U3RhY2s7CQkJCQkJXAorCXl5bmV3Ynl0ZXMgPSB5eXN0YWNrc2l6ZSAqIHNpemVvZiAoKlN0
YWNrKSArIFlZU1RBQ0tfR0FQX01BWElNVU07IFwKKwl5eXB0ciArPSB5eW5ld2J5dGVzIC8gc2l6
ZW9mICgqeXlwdHIpOwkJCQlcCisgICAgICB9CQkJCQkJCQkJXAogICAgIHdoaWxlIChZWUlEICgw
KSkKIAogI2VuZGlmCkBAIC00MzgsNyArNDM2LDcgQEAgdW5pb24geXlhbGxvYwogI2RlZmluZSBZ
WVVOREVGVE9LICAyCiAjZGVmaW5lIFlZTUFYVVRPSyAgIDI3OAogCi0jZGVmaW5lIFlZVFJBTlNM
QVRFKFlZWCkgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIFlZVFJBTlNMQVRFKFlZ
WCkJCQkJCQlcCiAgICgodW5zaWduZWQgaW50KSAoWVlYKSA8PSBZWU1BWFVUT0sgPyB5eXRyYW5z
bGF0ZVtZWVhdIDogWVlVTkRFRlRPSykKIAogLyogWVlUUkFOU0xBVEVbWVlMRVhdIC0tIEJpc29u
IHN5bWJvbCBudW1iZXIgY29ycmVzcG9uZGluZyB0byBZWUxFWC4gICovCkBAIC01MTUsMTMgKzUx
MywxMyBAQCBzdGF0aWMgY29uc3QgeXl0eXBlX2ludDggeXlyaHNbXSA9CiAvKiBZWVJMSU5FW1lZ
Tl0gLS0gc291cmNlIGxpbmUgd2hlcmUgcnVsZSBudW1iZXIgWVlOIHdhcyBkZWZpbmVkLiAgKi8K
IHN0YXRpYyBjb25zdCB5eXR5cGVfdWludDE2IHl5cmxpbmVbXSA9CiB7Ci0gICAgICAgMCwgICAx
MTQsICAgMTE0LCAgIDEyMSwgICAxMjUsICAgMTMxLCAgIDEzNSwgICAxNDAsICAgMTQ1LCAgIDE1
MywKLSAgICAgMTU5LCAgIDE2NSwgICAxNzQsICAgMTg0LCAgIDIwMiwgICAyMTMsICAgMjMxLCAg
IDIzNSwgICAyMzcsICAgMjQ0LAotICAgICAyNDksICAgMjU0LCAgIDI1OSwgICAyNjQsICAgMjcz
LCAgIDI3NywgICAyODEsICAgMjg3LCAgIDI5NSwgICAzMDIsCi0gICAgIDMwOSwgICAzMTQsICAg
MzIxLCAgIDMyNywgICAzMzIsICAgMzM4LCAgIDM0NCwgICAzNDgsICAgMzU2LCAgIDM2NywKLSAg
ICAgMzczLCAgIDM4MSwgICAzODUsICAgMzg3LCAgIDM5NCwgICAzOTksICAgNDAxLCAgIDQwNywg
ICA0MTYsICAgNDE4LAotICAgICA0MjYsICAgNDI4LCAgIDQzNSwgICA0MzcsICAgNDQ0LCAgIDQ0
NiwgICA0NTMsICAgNDU1LCAgIDQ2MiwgICA0NjQsCi0gICAgIDQ2OSwgICA0NzYsICAgNDc4LCAg
IDQ4NSwgICA0ODcKKyAgICAgICAwLCAgIDExMSwgICAxMTEsICAgMTE4LCAgIDEyMiwgICAxMjgs
ICAgMTMyLCAgIDEzNywgICAxNDIsICAgMTUwLAorICAgICAxNTYsICAgMTYyLCAgIDE3MSwgICAx
ODEsICAgMTk5LCAgIDIxMCwgICAyMjgsICAgMjMyLCAgIDIzNCwgICAyNDEsCisgICAgIDI0Niwg
ICAyNTEsICAgMjU2LCAgIDI2MSwgICAyNzAsICAgMjc0LCAgIDI3OCwgICAyODQsICAgMjkyLCAg
IDI5OSwKKyAgICAgMzA2LCAgIDMxMSwgICAzMTgsICAgMzI0LCAgIDMyOSwgICAzMzUsICAgMzQx
LCAgIDM0NSwgICAzNTMsICAgMzY0LAorICAgICAzNzAsICAgMzc4LCAgIDM4MiwgICAzODQsICAg
MzkxLCAgIDM5NiwgICAzOTgsICAgNDA0LCAgIDQxMywgICA0MTUsCisgICAgIDQyMywgICA0MjUs
ICAgNDMyLCAgIDQzNCwgICA0NDEsICAgNDQzLCAgIDQ1MCwgICA0NTIsICAgNDU5LCAgIDQ2MSwK
KyAgICAgNDY2LCAgIDQ3MywgICA0NzUsICAgNDgyLCAgIDQ4NAogfTsKICNlbmRpZgogCkBAIC01
MzMsNyArNTMxLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHl5dG5hbWVbXSA9CiAgICIk
ZW5kIiwgImVycm9yIiwgIiR1bmRlZmluZWQiLCAiTVVMT1AiLCAiUkVMT1AiLCAiRVFPUCIsICJN
SU5VUyIsCiAgICJQTFVTIiwgIkFORCIsICJPUiIsICJGVU5DVElPTk5BTUUiLCAiTElURVJBTCIs
ICJOQU1FVEVTVCIsICJOVU1CRVIiLAogICAiTk9ERVRZUEUiLCAiVkFSSUFCTEVSRUZFUkVOQ0Ui
LCAiQVhJU05BTUUiLCAiQ09NTUVOVCIsICJET1RET1QiLCAiUEkiLAotICAiTk9ERSIsICJTTEFT
SFNMQVNIIiwgIlRFWFQiLCAiWFBBVEhfRVJST1IiLCAiJy8nIiwgIidAJyIsICInKCciLCAiJykn
IiwKKyAgIk5PREUiLCAiU0xBU0hTTEFTSCIsICJURVhUXyIsICJYUEFUSF9FUlJPUiIsICInLyci
LCAiJ0AnIiwgIicoJyIsICInKSciLAogICAiJ1snIiwgIiddJyIsICInLiciLCAiJywnIiwgIid8
JyIsICIkYWNjZXB0IiwgIlRvcCIsICJFeHByIiwKICAgIkxvY2F0aW9uUGF0aCIsICJBYnNvbHV0
ZUxvY2F0aW9uUGF0aCIsICJSZWxhdGl2ZUxvY2F0aW9uUGF0aCIsICJTdGVwIiwKICAgIkF4aXNT
cGVjaWZpZXIiLCAiTm9kZVRlc3QiLCAiT3B0aW9uYWxQcmVkaWNhdGVMaXN0IiwgIlByZWRpY2F0
ZUxpc3QiLApAQCAtNjkwLDQ0ICs2ODgsNDQgQEAgc3RhdGljIGNvbnN0IHl5dHlwZV91aW50OCB5
eXN0b3NbXSA9CiAgICAgICA1MAogfTsKIAotI2RlZmluZSB5eWVycm9rICAgICAgICAoeXllcnJz
dGF0dXMgPSAwKQotI2RlZmluZSB5eWNsZWFyaW4gICAgKHl5Y2hhciA9IFlZRU1QVFkpCi0jZGVm
aW5lIFlZRU1QVFkgICAgICAgICgtMikKLSNkZWZpbmUgWVlFT0YgICAgICAgIDAKKyNkZWZpbmUg
eXllcnJvawkJKHl5ZXJyc3RhdHVzID0gMCkKKyNkZWZpbmUgeXljbGVhcmluCSh5eWNoYXIgPSBZ
WUVNUFRZKQorI2RlZmluZSBZWUVNUFRZCQkoLTIpCisjZGVmaW5lIFlZRU9GCQkwCiAKLSNkZWZp
bmUgWVlBQ0NFUFQgICAgZ290byB5eWFjY2VwdGxhYgotI2RlZmluZSBZWUFCT1JUICAgICAgICBn
b3RvIHl5YWJvcnRsYWIKLSNkZWZpbmUgWVlFUlJPUiAgICAgICAgZ290byB5eWVycm9ybGFiCisj
ZGVmaW5lIFlZQUNDRVBUCWdvdG8geXlhY2NlcHRsYWIKKyNkZWZpbmUgWVlBQk9SVAkJZ290byB5
eWFib3J0bGFiCisjZGVmaW5lIFlZRVJST1IJCWdvdG8geXllcnJvcmxhYgogCiAKIC8qIExpa2Ug
WVlFUlJPUiBleGNlcHQgZG8gY2FsbCB5eWVycm9yLiAgVGhpcyByZW1haW5zIGhlcmUgdGVtcG9y
YXJpbHkKICAgIHRvIGVhc2UgdGhlIHRyYW5zaXRpb24gdG8gdGhlIG5ldyBtZWFuaW5nIG9mIFlZ
RVJST1IsIGZvciBHQ0MuCiAgICBPbmNlIEdDQyB2ZXJzaW9uIDIgaGFzIHN1cHBsYW50ZWQgdmVy
c2lvbiAxLCB0aGlzIGNhbiBnby4gICovCiAKLSNkZWZpbmUgWVlGQUlMICAgICAgICBnb3RvIHl5
ZXJybGFiCisjZGVmaW5lIFlZRkFJTAkJZ290byB5eWVycmxhYgogCiAjZGVmaW5lIFlZUkVDT1ZF
UklORygpICAoISF5eWVycnN0YXR1cykKIAotI2RlZmluZSBZWUJBQ0tVUChUb2tlbiwgVmFsdWUp
ICAgICAgICAgICAgICAgICAgICBcCi1kbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICBpZiAoeXljaGFyID09IFlZRU1QVFkgJiYgeXlsZW4gPT0gMSkgICAgICAgICAgICAgICAg
XAotICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIHl5Y2hhciA9
IChUb2tlbik7ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgeXlsdmFsID0gKFZhbHVl
KTsgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICB5eXRva2VuID0gWVlUUkFOU0xBVEUg
KHl5Y2hhcik7ICAgICAgICAgICAgICAgIFwKLSAgICAgIFlZUE9QU1RBQ0sgKDEpOyAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICAgIGdvdG8geXliYWNrdXA7ICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgZWxzZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyNkZWZpbmUgWVlCQUNLVVAoVG9rZW4sIFZhbHVlKQkJCQkJXAorZG8J
CQkJCQkJCVwKKyAgaWYgKHl5Y2hhciA9PSBZWUVNUFRZICYmIHl5bGVuID09IDEpCQkJCVwKKyAg
ICB7CQkJCQkJCQlcCisgICAgICB5eWNoYXIgPSAoVG9rZW4pOwkJCQkJCVwKKyAgICAgIHl5bHZh
bCA9IChWYWx1ZSk7CQkJCQkJXAorICAgICAgeXl0b2tlbiA9IFlZVFJBTlNMQVRFICh5eWNoYXIp
OwkJCQlcCisgICAgICBZWVBPUFNUQUNLICgxKTsJCQkJCQlcCisgICAgICBnb3RvIHl5YmFja3Vw
OwkJCQkJCVwKKyAgICB9CQkJCQkJCQlcCisgIGVsc2UJCQkJCQkJCVwKKyAgICB7CQkJCQkJCQlc
CiAgICAgICB5eWVycm9yIChwYXJzZXIsIFlZXygic3ludGF4IGVycm9yOiBjYW5ub3QgYmFjayB1
cCIpKTsgXAotICAgICAgWVlFUlJPUjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIFlZRVJST1I7CQkJCQkJ
CVwKKyAgICB9CQkJCQkJCQlcCiB3aGlsZSAoWVlJRCAoMCkpCiAKIAotI2RlZmluZSBZWVRFUlJP
UiAgICAxCi0jZGVmaW5lIFlZRVJSQ09ERSAgICAyNTYKKyNkZWZpbmUgWVlURVJST1IJMQorI2Rl
ZmluZSBZWUVSUkNPREUJMjU2CiAKIAogLyogWVlMTE9DX0RFRkFVTFQgLS0gU2V0IENVUlJFTlQg
dG8gc3BhbiBmcm9tIFJIU1sxXSB0byBSSFNbTl0uCkBAIC03MzYsMjIgKzczNCwyMiBAQCB3aGls
ZSAoWVlJRCAoMCkpCiAKICNkZWZpbmUgWVlSSFNMT0MoUmhzLCBLKSAoKFJocylbS10pCiAjaWZu
ZGVmIFlZTExPQ19ERUZBVUxUCi0jIGRlZmluZSBZWUxMT0NfREVGQVVMVChDdXJyZW50LCBSaHMs
IE4pICAgICAgICAgICAgICAgIFwKLSAgICBkbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyMgZGVmaW5lIFlZTExPQ19ERUZBVUxUKEN1cnJlbnQsIFJocywgTikJCQkJXAor
ICAgIGRvCQkJCQkJCQkJXAogICAgICAgaWYgKFlZSUQgKE4pKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgICAgKEN1cnJlbnQpLmZpcnN0X2xpbmUgICA9IFlZUkhTTE9D
IChSaHMsIDEpLmZpcnN0X2xpbmU7ICAgIFwKLSAgICAgIChDdXJyZW50KS5maXJzdF9jb2x1bW4g
PSBZWVJIU0xPQyAoUmhzLCAxKS5maXJzdF9jb2x1bW47ICAgIFwKLSAgICAgIChDdXJyZW50KS5s
YXN0X2xpbmUgICAgPSBZWVJIU0xPQyAoUmhzLCBOKS5sYXN0X2xpbmU7ICAgICAgICBcCi0gICAg
ICAoQ3VycmVudCkubGFzdF9jb2x1bW4gID0gWVlSSFNMT0MgKFJocywgTikubGFzdF9jb2x1bW47
ICAgIFwKLSAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICBlbHNl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgICAgKEN1cnJlbnQpLmZpcnN0X2xpbmUgICA9IChDdXJyZW50
KS5sYXN0X2xpbmUgICA9ICAgICAgICBcCi0gICAgICAgIFlZUkhTTE9DIChSaHMsIDApLmxhc3Rf
bGluZTsgICAgICAgICAgICAgICAgXAotICAgICAgKEN1cnJlbnQpLmZpcnN0X2NvbHVtbiA9IChD
dXJyZW50KS5sYXN0X2NvbHVtbiA9ICAgICAgICBcCi0gICAgICAgIFlZUkhTTE9DIChSaHMsIDAp
Lmxhc3RfY29sdW1uOyAgICAgICAgICAgICAgICBcCi0gICAgfSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorCXsJCQkJCQkJCVwKKwkgIChDdXJyZW50KS5maXJzdF9saW5lICAgPSBZ
WVJIU0xPQyAoUmhzLCAxKS5maXJzdF9saW5lOwlcCisJICAoQ3VycmVudCkuZmlyc3RfY29sdW1u
ID0gWVlSSFNMT0MgKFJocywgMSkuZmlyc3RfY29sdW1uOwlcCisJICAoQ3VycmVudCkubGFzdF9s
aW5lICAgID0gWVlSSFNMT0MgKFJocywgTikubGFzdF9saW5lOwkJXAorCSAgKEN1cnJlbnQpLmxh
c3RfY29sdW1uICA9IFlZUkhTTE9DIChSaHMsIE4pLmxhc3RfY29sdW1uOwlcCisJfQkJCQkJCQkJ
XAorICAgICAgZWxzZQkJCQkJCQkJXAorCXsJCQkJCQkJCVwKKwkgIChDdXJyZW50KS5maXJzdF9s
aW5lICAgPSAoQ3VycmVudCkubGFzdF9saW5lICAgPQkJXAorCSAgICBZWVJIU0xPQyAoUmhzLCAw
KS5sYXN0X2xpbmU7CQkJCVwKKwkgIChDdXJyZW50KS5maXJzdF9jb2x1bW4gPSAoQ3VycmVudCku
bGFzdF9jb2x1bW4gPQkJXAorCSAgICBZWVJIU0xPQyAoUmhzLCAwKS5sYXN0X2NvbHVtbjsJCQkJ
XAorCX0JCQkJCQkJCVwKICAgICB3aGlsZSAoWVlJRCAoMCkpCiAjZW5kaWYKIApAQCAtNzYyLDEw
ICs3NjAsMTAgQEAgd2hpbGUgKFlZSUQgKDApKQogCiAjaWZuZGVmIFlZX0xPQ0FUSU9OX1BSSU5U
CiAjIGlmIGRlZmluZWQgWVlMVFlQRV9JU19UUklWSUFMICYmIFlZTFRZUEVfSVNfVFJJVklBTAot
IyAgZGVmaW5lIFlZX0xPQ0FUSU9OX1BSSU5UKEZpbGUsIExvYykgICAgICAgICAgICBcCi0gICAg
IGZwcmludGYgKEZpbGUsICIlZC4lZC0lZC4lZCIsICAgICAgICAgICAgXAotICAgICAgICAgIChM
b2MpLmZpcnN0X2xpbmUsIChMb2MpLmZpcnN0X2NvbHVtbiwgICAgXAotICAgICAgICAgIChMb2Mp
Lmxhc3RfbGluZSwgIChMb2MpLmxhc3RfY29sdW1uKQorIyAgZGVmaW5lIFlZX0xPQ0FUSU9OX1BS
SU5UKEZpbGUsIExvYykJCQlcCisgICAgIGZwcmludGYgKEZpbGUsICIlZC4lZC0lZC4lZCIsCQkJ
XAorCSAgICAgIChMb2MpLmZpcnN0X2xpbmUsIChMb2MpLmZpcnN0X2NvbHVtbiwJXAorCSAgICAg
IChMb2MpLmxhc3RfbGluZSwgIChMb2MpLmxhc3RfY29sdW1uKQogIyBlbHNlCiAjICBkZWZpbmUg
WVlfTE9DQVRJT05fUFJJTlQoRmlsZSwgTG9jKSAoKHZvaWQpIDApCiAjIGVuZGlmCkBAIC03ODgs
MjEgKzc4NiwyMSBAQCB3aGlsZSAoWVlJRCAoMCkpCiAjICBkZWZpbmUgWVlGUFJJTlRGIGZwcmlu
dGYKICMgZW5kaWYKIAotIyBkZWZpbmUgWVlEUFJJTlRGKEFyZ3MpICAgICAgICAgICAgXAotZG8g
eyAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgaWYgKHl5ZGVidWcpICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgWVlGUFJJTlRGIEFyZ3M7ICAgICAgICAgICAgICAgIFwKKyMgZGVmaW5lIFlZ
RFBSSU5URihBcmdzKQkJCVwKK2RvIHsJCQkJCQlcCisgIGlmICh5eWRlYnVnKQkJCQkJXAorICAg
IFlZRlBSSU5URiBBcmdzOwkJCQlcCiB9IHdoaWxlIChZWUlEICgwKSkKIAotIyBkZWZpbmUgWVlf
U1lNQk9MX1BSSU5UKFRpdGxlLCBUeXBlLCBWYWx1ZSwgTG9jYXRpb24pICAgICAgICAgICAgICBc
Ci1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gIGlmICh5eWRl
YnVnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgWVlGUFJJTlRGIChzdGRlcnIsICIl
cyAiLCBUaXRsZSk7ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIHl5X3N5bWJvbF9wcmlu
dCAoc3RkZXJyLCAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgIFR5cGUsIFZh
bHVlLCBwYXJzZXIpOyBcCi0gICAgICBZWUZQUklOVEYgKHN0ZGVyciwgIlxuIik7ICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorIyBkZWZpbmUgWVlfU1lNQk9MX1BSSU5UKFRpdGxlLCBUeXBlLCBWYWx1ZSwgTG9j
YXRpb24pCQkJICBcCitkbyB7CQkJCQkJCQkJICBcCisgIGlmICh5eWRlYnVnKQkJCQkJCQkJICBc
CisgICAgewkJCQkJCQkJCSAgXAorICAgICAgWVlGUFJJTlRGIChzdGRlcnIsICIlcyAiLCBUaXRs
ZSk7CQkJCQkgIFwKKyAgICAgIHl5X3N5bWJvbF9wcmludCAoc3RkZXJyLAkJCQkJCSAgXAorCQkg
IFR5cGUsIFZhbHVlLCBwYXJzZXIpOyBcCisgICAgICBZWUZQUklOVEYgKHN0ZGVyciwgIlxuIik7
CQkJCQkJICBcCisgICAgfQkJCQkJCQkJCSAgXAogfSB3aGlsZSAoWVlJRCAoMCkpCiAKIApAQCAt
ODE0LDE0ICs4MTIsMTQgQEAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAogI2lmIChkZWZpbmVkIF9fU1REQ19fIHx8IGRlZmluZWQgX19DOTlfX0ZVTkNfXyBcCiAg
ICAgIHx8IGRlZmluZWQgX19jcGx1c3BsdXMgfHwgZGVmaW5lZCBfTVNDX1ZFUikKIHN0YXRpYyB2
b2lkCi15eV9zeW1ib2xfdmFsdWVfcHJpbnQgKEZJTEUgKnl5b3V0cHV0LCBpbnQgeXl0eXBlLCBZ
WVNUWVBFIGNvbnN0ICogY29uc3QgeXl2YWx1ZXAsIFBhcnNlciYgcGFyc2VyKQoreXlfc3ltYm9s
X3ZhbHVlX3ByaW50IChGSUxFICp5eW91dHB1dCwgaW50IHl5dHlwZSwgWVlTVFlQRSBjb25zdCAq
IGNvbnN0IHl5dmFsdWVwLCBXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiBwYXJzZXIpCiAjZWxzZQog
c3RhdGljIHZvaWQKIHl5X3N5bWJvbF92YWx1ZV9wcmludCAoeXlvdXRwdXQsIHl5dHlwZSwgeXl2
YWx1ZXAsIHBhcnNlcikKICAgICBGSUxFICp5eW91dHB1dDsKICAgICBpbnQgeXl0eXBlOwogICAg
IFlZU1RZUEUgY29uc3QgKiBjb25zdCB5eXZhbHVlcDsKLSAgICBQYXJzZXImIHBhcnNlcjsKKyAg
ICBXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiBwYXJzZXI7CiAjZW5kaWYKIHsKICAgaWYgKCF5eXZh
bHVlcCkKQEAgLTgzNiw3ICs4MzQsNyBAQCB5eV9zeW1ib2xfdmFsdWVfcHJpbnQgKHl5b3V0cHV0
LCB5eXR5cGUsIHl5dmFsdWVwLCBwYXJzZXIpCiAgIHN3aXRjaCAoeXl0eXBlKQogICAgIHsKICAg
ICAgIGRlZmF1bHQ6Ci0gICAgYnJlYWs7CisJYnJlYWs7CiAgICAgfQogfQogCkBAIC04NDgsMTQg
Kzg0NiwxNCBAQCB5eV9zeW1ib2xfdmFsdWVfcHJpbnQgKHl5b3V0cHV0LCB5eXR5cGUsIHl5dmFs
dWVwLCBwYXJzZXIpCiAjaWYgKGRlZmluZWQgX19TVERDX18gfHwgZGVmaW5lZCBfX0M5OV9fRlVO
Q19fIFwKICAgICAgfHwgZGVmaW5lZCBfX2NwbHVzcGx1cyB8fCBkZWZpbmVkIF9NU0NfVkVSKQog
c3RhdGljIHZvaWQKLXl5X3N5bWJvbF9wcmludCAoRklMRSAqeXlvdXRwdXQsIGludCB5eXR5cGUs
IFlZU1RZUEUgY29uc3QgKiBjb25zdCB5eXZhbHVlcCwgUGFyc2VyJiBwYXJzZXIpCit5eV9zeW1i
b2xfcHJpbnQgKEZJTEUgKnl5b3V0cHV0LCBpbnQgeXl0eXBlLCBZWVNUWVBFIGNvbnN0ICogY29u
c3QgeXl2YWx1ZXAsIFdlYkNvcmU6OlhQYXRoOjpQYXJzZXImIHBhcnNlcikKICNlbHNlCiBzdGF0
aWMgdm9pZAogeXlfc3ltYm9sX3ByaW50ICh5eW91dHB1dCwgeXl0eXBlLCB5eXZhbHVlcCwgcGFy
c2VyKQogICAgIEZJTEUgKnl5b3V0cHV0OwogICAgIGludCB5eXR5cGU7CiAgICAgWVlTVFlQRSBj
b25zdCAqIGNvbnN0IHl5dmFsdWVwOwotICAgIFBhcnNlciYgcGFyc2VyOworICAgIFdlYkNvcmU6
OlhQYXRoOjpQYXJzZXImIHBhcnNlcjsKICNlbmRpZgogewogICBpZiAoeXl0eXBlIDwgWVlOVE9L
RU5TKQpAQCAtODg5LDEwICs4ODcsMTAgQEAgeXlfc3RhY2tfcHJpbnQgKGJvdHRvbSwgdG9wKQog
ICBZWUZQUklOVEYgKHN0ZGVyciwgIlxuIik7CiB9CiAKLSMgZGVmaW5lIFlZX1NUQUNLX1BSSU5U
KEJvdHRvbSwgVG9wKSAgICAgICAgICAgICAgICBcCi1kbyB7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gIGlmICh5eWRlYnVnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgeXlfc3RhY2tfcHJpbnQgKChCb3R0b20pLCAoVG9wKSk7ICAgICAgICAgICAgICAgIFwK
KyMgZGVmaW5lIFlZX1NUQUNLX1BSSU5UKEJvdHRvbSwgVG9wKQkJCQlcCitkbyB7CQkJCQkJCQlc
CisgIGlmICh5eWRlYnVnKQkJCQkJCQlcCisgICAgeXlfc3RhY2tfcHJpbnQgKChCb3R0b20pLCAo
VG9wKSk7CQkJCVwKIH0gd2hpbGUgKFlZSUQgKDApKQogCiAKQEAgLTkwMywzNCArOTAxLDM0IEBA
IGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICNpZiAoZGVmaW5lZCBfX1NU
RENfXyB8fCBkZWZpbmVkIF9fQzk5X19GVU5DX18gXAogICAgICB8fCBkZWZpbmVkIF9fY3BsdXNw
bHVzIHx8IGRlZmluZWQgX01TQ19WRVIpCiBzdGF0aWMgdm9pZAoteXlfcmVkdWNlX3ByaW50IChZ
WVNUWVBFICp5eXZzcCwgaW50IHl5cnVsZSwgUGFyc2VyJiBwYXJzZXIpCit5eV9yZWR1Y2VfcHJp
bnQgKFlZU1RZUEUgKnl5dnNwLCBpbnQgeXlydWxlLCBXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiBw
YXJzZXIpCiAjZWxzZQogc3RhdGljIHZvaWQKIHl5X3JlZHVjZV9wcmludCAoeXl2c3AsIHl5cnVs
ZSwgcGFyc2VyKQogICAgIFlZU1RZUEUgKnl5dnNwOwogICAgIGludCB5eXJ1bGU7Ci0gICAgUGFy
c2VyJiBwYXJzZXI7CisgICAgV2ViQ29yZTo6WFBhdGg6OlBhcnNlciYgcGFyc2VyOwogI2VuZGlm
CiB7CiAgIGludCB5eW5yaHMgPSB5eXIyW3l5cnVsZV07CiAgIGludCB5eWk7CiAgIHVuc2lnbmVk
IGxvbmcgaW50IHl5bG5vID0geXlybGluZVt5eXJ1bGVdOwogICBZWUZQUklOVEYgKHN0ZGVyciwg
IlJlZHVjaW5nIHN0YWNrIGJ5IHJ1bGUgJWQgKGxpbmUgJWx1KTpcbiIsCi0gICAgICAgICB5eXJ1
bGUgLSAxLCB5eWxubyk7CisJICAgICB5eXJ1bGUgLSAxLCB5eWxubyk7CiAgIC8qIFRoZSBzeW1i
b2xzIGJlaW5nIHJlZHVjZWQuICAqLwogICBmb3IgKHl5aSA9IDA7IHl5aSA8IHl5bnJoczsgeXlp
KyspCiAgICAgewogICAgICAgZnByaW50ZiAoc3RkZXJyLCAiICAgJCVkID0gIiwgeXlpICsgMSk7
CiAgICAgICB5eV9zeW1ib2xfcHJpbnQgKHN0ZGVyciwgeXlyaHNbeXlwcmhzW3l5cnVsZV0gKyB5
eWldLAotICAgICAgICAgICAgICAgJih5eXZzcFsoeXlpICsgMSkgLSAoeXlucmhzKV0pCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAsIHBhcnNlcik7CisJCSAgICAgICAmKHl5dnNwWyh5
eWkgKyAxKSAtICh5eW5yaHMpXSkKKwkJICAgICAgIAkJICAgICAgICwgcGFyc2VyKTsKICAgICAg
IGZwcmludGYgKHN0ZGVyciwgIlxuIik7CiAgICAgfQogfQogCi0jIGRlZmluZSBZWV9SRURVQ0Vf
UFJJTlQoUnVsZSkgICAgICAgIFwKLWRvIHsgICAgICAgICAgICAgICAgICAgIFwKLSAgaWYgKHl5
ZGVidWcpICAgICAgICAgICAgICAgIFwKKyMgZGVmaW5lIFlZX1JFRFVDRV9QUklOVChSdWxlKQkJ
XAorZG8gewkJCQkJXAorICBpZiAoeXlkZWJ1ZykJCQkJXAogICAgIHl5X3JlZHVjZV9wcmludCAo
eXl2c3AsIFJ1bGUsIHBhcnNlcik7IFwKIH0gd2hpbGUgKFlZSUQgKDApKQogCkBAIC05NDYsNyAr
OTQ0LDcgQEAgaW50IHl5ZGVidWc7CiAKIAogLyogWVlJTklUREVQVEggLS0gaW5pdGlhbCBzaXpl
IG9mIHRoZSBwYXJzZXIncyBzdGFja3MuICAqLwotI2lmbmRlZiAgICBZWUlOSVRERVBUSAorI2lm
bmRlZglZWUlOSVRERVBUSAogIyBkZWZpbmUgWVlJTklUREVQVEggMjAwCiAjZW5kaWYKIApAQCAt
MTAzMywyNyArMTAzMSwyNyBAQCB5eXRuYW1lcnIgKGNoYXIgKnl5cmVzLCBjb25zdCBjaGFyICp5
eXN0cikKICAgICAgIGNoYXIgY29uc3QgKnl5cCA9IHl5c3RyOwogCiAgICAgICBmb3IgKDs7KQot
ICAgIHN3aXRjaCAoKisreXlwKQotICAgICAgewotICAgICAgY2FzZSAnXCcnOgotICAgICAgY2Fz
ZSAnLCc6Ci0gICAgICAgIGdvdG8gZG9fbm90X3N0cmlwX3F1b3RlczsKLQotICAgICAgY2FzZSAn
XFwnOgotICAgICAgICBpZiAoKisreXlwICE9ICdcXCcpCi0gICAgICAgICAgZ290byBkb19ub3Rf
c3RyaXBfcXVvdGVzOwotICAgICAgICAvKiBGYWxsIHRocm91Z2guICAqLwotICAgICAgZGVmYXVs
dDoKLSAgICAgICAgaWYgKHl5cmVzKQotICAgICAgICAgIHl5cmVzW3l5bl0gPSAqeXlwOwotICAg
ICAgICB5eW4rKzsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICAgIGNhc2UgJyInOgotICAgICAgICBp
ZiAoeXlyZXMpCi0gICAgICAgICAgeXlyZXNbeXluXSA9ICdcMCc7Ci0gICAgICAgIHJldHVybiB5
eW47Ci0gICAgICB9CisJc3dpdGNoICgqKyt5eXApCisJICB7CisJICBjYXNlICdcJyc6CisJICBj
YXNlICcsJzoKKwkgICAgZ290byBkb19ub3Rfc3RyaXBfcXVvdGVzOworCisJICBjYXNlICdcXCc6
CisJICAgIGlmICgqKyt5eXAgIT0gJ1xcJykKKwkgICAgICBnb3RvIGRvX25vdF9zdHJpcF9xdW90
ZXM7CisJICAgIC8qIEZhbGwgdGhyb3VnaC4gICovCisJICBkZWZhdWx0OgorCSAgICBpZiAoeXly
ZXMpCisJICAgICAgeXlyZXNbeXluXSA9ICp5eXA7CisJICAgIHl5bisrOworCSAgICBicmVhazsK
KworCSAgY2FzZSAnIic6CisJICAgIGlmICh5eXJlcykKKwkgICAgICB5eXJlc1t5eW5dID0gJ1ww
JzsKKwkgICAgcmV0dXJuIHl5bjsKKwkgIH0KICAgICBkb19ub3Rfc3RyaXBfcXVvdGVzOiA7CiAg
ICAgfQogCkBAIC0xMDkxLDcgKzEwODksNyBAQCB5eXN5bnRheF9lcnJvciAoY2hhciAqeXlyZXN1
bHQsIGludCB5eXN0YXRlLCBpbnQgeXljaGFyKQogCiAjIGlmIDAKICAgICAgIC8qIFRoaXMgaXMg
c28geGdldHRleHQgc2VlcyB0aGUgdHJhbnNsYXRhYmxlIGZvcm1hdHMgdGhhdCBhcmUKLSAgICAg
Y29uc3RydWN0ZWQgb24gdGhlIGZseS4gICovCisJIGNvbnN0cnVjdGVkIG9uIHRoZSBmbHkuICAq
LwogICAgICAgWVlfKCJzeW50YXggZXJyb3IsIHVuZXhwZWN0ZWQgJXMiKTsKICAgICAgIFlZXygi
c3ludGF4IGVycm9yLCB1bmV4cGVjdGVkICVzLCBleHBlY3RpbmcgJXMiKTsKICAgICAgIFlZXygi
c3ludGF4IGVycm9yLCB1bmV4cGVjdGVkICVzLCBleHBlY3RpbmcgJXMgb3IgJXMiKTsKQEAgLTEx
MDQsMTMgKzExMDIsMTMgQEAgeXlzeW50YXhfZXJyb3IgKGNoYXIgKnl5cmVzdWx0LCBpbnQgeXlz
dGF0ZSwgaW50IHl5Y2hhcikKICAgICAgIHN0YXRpYyBjaGFyIGNvbnN0IHl5ZXhwZWN0aW5nW10g
PSAiLCBleHBlY3RpbmcgJXMiOwogICAgICAgc3RhdGljIGNoYXIgY29uc3QgeXlvcltdID0gIiBv
ciAlcyI7CiAgICAgICBjaGFyIHl5Zm9ybWF0W3NpemVvZiB5eXVuZXhwZWN0ZWQKLSAgICAgICAg
ICAgICsgc2l6ZW9mIHl5ZXhwZWN0aW5nIC0gMQotICAgICAgICAgICAgKyAoKFlZRVJST1JfVkVS
Qk9TRV9BUkdTX01BWElNVU0gLSAyKQotICAgICAgICAgICAgICAgKiAoc2l6ZW9mIHl5b3IgLSAx
KSldOworCQkgICAgKyBzaXplb2YgeXlleHBlY3RpbmcgLSAxCisJCSAgICArICgoWVlFUlJPUl9W
RVJCT1NFX0FSR1NfTUFYSU1VTSAtIDIpCisJCSAgICAgICAqIChzaXplb2YgeXlvciAtIDEpKV07
CiAgICAgICBjaGFyIGNvbnN0ICp5eXByZWZpeCA9IHl5ZXhwZWN0aW5nOwogCiAgICAgICAvKiBT
dGFydCBZWVggYXQgLVlZTiBpZiBuZWdhdGl2ZSB0byBhdm9pZCBuZWdhdGl2ZSBpbmRleGVzIGlu
Ci0gICAgIFlZQ0hFQ0suICAqLworCSBZWUNIRUNLLiAgKi8KICAgICAgIGludCB5eXhiZWdpbiA9
IHl5biA8IDAgPyAteXluIDogMDsKIAogICAgICAgLyogU3RheSB3aXRoaW4gYm91bmRzIG9mIGJv
dGggeXljaGVjayBhbmQgeXl0bmFtZS4gICovCkBAIC0xMTIyLDIyICsxMTIwLDIyIEBAIHl5c3lu
dGF4X2Vycm9yIChjaGFyICp5eXJlc3VsdCwgaW50IHl5c3RhdGUsIGludCB5eWNoYXIpCiAgICAg
ICB5eWZtdCA9IHl5c3RwY3B5ICh5eWZvcm1hdCwgeXl1bmV4cGVjdGVkKTsKIAogICAgICAgZm9y
ICh5eXggPSB5eXhiZWdpbjsgeXl4IDwgeXl4ZW5kOyArK3l5eCkKLSAgICBpZiAoeXljaGVja1t5
eXggKyB5eW5dID09IHl5eCAmJiB5eXggIT0gWVlURVJST1IpCi0gICAgICB7Ci0gICAgICAgIGlm
ICh5eWNvdW50ID09IFlZRVJST1JfVkVSQk9TRV9BUkdTX01BWElNVU0pCi0gICAgICAgICAgewot
ICAgICAgICB5eWNvdW50ID0gMTsKLSAgICAgICAgeXlzaXplID0geXlzaXplMDsKLSAgICAgICAg
eXlmb3JtYXRbc2l6ZW9mIHl5dW5leHBlY3RlZCAtIDFdID0gJ1wwJzsKLSAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgfQotICAgICAgICB5eWFyZ1t5eWNvdW50KytdID0geXl0bmFtZVt5eXhdOwot
ICAgICAgICB5eXNpemUxID0geXlzaXplICsgeXl0bmFtZXJyICgwLCB5eXRuYW1lW3l5eF0pOwot
ICAgICAgICB5eXNpemVfb3ZlcmZsb3cgfD0gKHl5c2l6ZTEgPCB5eXNpemUpOwotICAgICAgICB5
eXNpemUgPSB5eXNpemUxOwotICAgICAgICB5eWZtdCA9IHl5c3RwY3B5ICh5eWZtdCwgeXlwcmVm
aXgpOwotICAgICAgICB5eXByZWZpeCA9IHl5b3I7Ci0gICAgICB9CisJaWYgKHl5Y2hlY2tbeXl4
ICsgeXluXSA9PSB5eXggJiYgeXl4ICE9IFlZVEVSUk9SKQorCSAgeworCSAgICBpZiAoeXljb3Vu
dCA9PSBZWUVSUk9SX1ZFUkJPU0VfQVJHU19NQVhJTVVNKQorCSAgICAgIHsKKwkJeXljb3VudCA9
IDE7CisJCXl5c2l6ZSA9IHl5c2l6ZTA7CisJCXl5Zm9ybWF0W3NpemVvZiB5eXVuZXhwZWN0ZWQg
LSAxXSA9ICdcMCc7CisJCWJyZWFrOworCSAgICAgIH0KKwkgICAgeXlhcmdbeXljb3VudCsrXSA9
IHl5dG5hbWVbeXl4XTsKKwkgICAgeXlzaXplMSA9IHl5c2l6ZSArIHl5dG5hbWVyciAoMCwgeXl0
bmFtZVt5eXhdKTsKKwkgICAgeXlzaXplX292ZXJmbG93IHw9ICh5eXNpemUxIDwgeXlzaXplKTsK
KwkgICAgeXlzaXplID0geXlzaXplMTsKKwkgICAgeXlmbXQgPSB5eXN0cGNweSAoeXlmbXQsIHl5
cHJlZml4KTsKKwkgICAgeXlwcmVmaXggPSB5eW9yOworCSAgfQogCiAgICAgICB5eWYgPSBZWV8o
eXlmb3JtYXQpOwogICAgICAgeXlzaXplMSA9IHl5c2l6ZSArIHl5c3RybGVuICh5eWYpOwpAQCAt
MTE0NSwyOSArMTE0MywyOSBAQCB5eXN5bnRheF9lcnJvciAoY2hhciAqeXlyZXN1bHQsIGludCB5
eXN0YXRlLCBpbnQgeXljaGFyKQogICAgICAgeXlzaXplID0geXlzaXplMTsKIAogICAgICAgaWYg
KHl5c2l6ZV9vdmVyZmxvdykKLSAgICByZXR1cm4gWVlTSVpFX01BWElNVU07CisJcmV0dXJuIFlZ
U0laRV9NQVhJTVVNOwogCiAgICAgICBpZiAoeXlyZXN1bHQpCi0gICAgewotICAgICAgLyogQXZv
aWQgc3ByaW50ZiwgYXMgdGhhdCBpbmZyaW5nZXMgb24gdGhlIHVzZXIncyBuYW1lIHNwYWNlLgot
ICAgICAgICAgRG9uJ3QgaGF2ZSB1bmRlZmluZWQgYmVoYXZpb3IgZXZlbiBpZiB0aGUgdHJhbnNs
YXRpb24KLSAgICAgICAgIHByb2R1Y2VkIGEgc3RyaW5nIHdpdGggdGhlIHdyb25nIG51bWJlciBv
ZiAiJXMicy4gICovCi0gICAgICBjaGFyICp5eXAgPSB5eXJlc3VsdDsKLSAgICAgIGludCB5eWkg
PSAwOwotICAgICAgd2hpbGUgKCgqeXlwID0gKnl5ZikgIT0gJ1wwJykKLSAgICAgICAgewotICAg
ICAgICAgIGlmICgqeXlwID09ICclJyAmJiB5eWZbMV0gPT0gJ3MnICYmIHl5aSA8IHl5Y291bnQp
Ci0gICAgICAgIHsKLSAgICAgICAgICB5eXAgKz0geXl0bmFtZXJyICh5eXAsIHl5YXJnW3l5aSsr
XSk7Ci0gICAgICAgICAgeXlmICs9IDI7Ci0gICAgICAgIH0KLSAgICAgICAgICBlbHNlCi0gICAg
ICAgIHsKLSAgICAgICAgICB5eXArKzsKLSAgICAgICAgICB5eWYrKzsKLSAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgfQorCXsKKwkgIC8qIEF2b2lkIHNwcmludGYsIGFzIHRoYXQgaW5mcmluZ2Vz
IG9uIHRoZSB1c2VyJ3MgbmFtZSBzcGFjZS4KKwkgICAgIERvbid0IGhhdmUgdW5kZWZpbmVkIGJl
aGF2aW9yIGV2ZW4gaWYgdGhlIHRyYW5zbGF0aW9uCisJICAgICBwcm9kdWNlZCBhIHN0cmluZyB3
aXRoIHRoZSB3cm9uZyBudW1iZXIgb2YgIiVzInMuICAqLworCSAgY2hhciAqeXlwID0geXlyZXN1
bHQ7CisJICBpbnQgeXlpID0gMDsKKwkgIHdoaWxlICgoKnl5cCA9ICp5eWYpICE9ICdcMCcpCisJ
ICAgIHsKKwkgICAgICBpZiAoKnl5cCA9PSAnJScgJiYgeXlmWzFdID09ICdzJyAmJiB5eWkgPCB5
eWNvdW50KQorCQl7CisJCSAgeXlwICs9IHl5dG5hbWVyciAoeXlwLCB5eWFyZ1t5eWkrK10pOwor
CQkgIHl5ZiArPSAyOworCQl9CisJICAgICAgZWxzZQorCQl7CisJCSAgeXlwKys7CisJCSAgeXlm
Kys7CisJCX0KKwkgICAgfQorCX0KICAgICAgIHJldHVybiB5eXNpemU7CiAgICAgfQogfQpAQCAt
MTE4MiwxNCArMTE4MCwxNCBAQCB5eXN5bnRheF9lcnJvciAoY2hhciAqeXlyZXN1bHQsIGludCB5
eXN0YXRlLCBpbnQgeXljaGFyKQogI2lmIChkZWZpbmVkIF9fU1REQ19fIHx8IGRlZmluZWQgX19D
OTlfX0ZVTkNfXyBcCiAgICAgIHx8IGRlZmluZWQgX19jcGx1c3BsdXMgfHwgZGVmaW5lZCBfTVND
X1ZFUikKIHN0YXRpYyB2b2lkCi15eWRlc3RydWN0IChjb25zdCBjaGFyICp5eW1zZywgaW50IHl5
dHlwZSwgWVlTVFlQRSAqeXl2YWx1ZXAsIFBhcnNlciYgcGFyc2VyKQoreXlkZXN0cnVjdCAoY29u
c3QgY2hhciAqeXltc2csIGludCB5eXR5cGUsIFlZU1RZUEUgKnl5dmFsdWVwLCBXZWJDb3JlOjpY
UGF0aDo6UGFyc2VyJiBwYXJzZXIpCiAjZWxzZQogc3RhdGljIHZvaWQKIHl5ZGVzdHJ1Y3QgKHl5
bXNnLCB5eXR5cGUsIHl5dmFsdWVwLCBwYXJzZXIpCiAgICAgY29uc3QgY2hhciAqeXltc2c7CiAg
ICAgaW50IHl5dHlwZTsKICAgICBZWVNUWVBFICp5eXZhbHVlcDsKLSAgICBQYXJzZXImIHBhcnNl
cjsKKyAgICBXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiBwYXJzZXI7CiAjZW5kaWYKIHsKICAgWVlV
U0UgKHl5dmFsdWVwKTsKQEAgLTEyMDIsMTYzICsxMjAwLDE2MyBAQCB5eWRlc3RydWN0ICh5eW1z
ZywgeXl0eXBlLCB5eXZhbHVlcCwgcGFyc2VyKQogICBzd2l0Y2ggKHl5dHlwZSkKICAgICB7CiAg
ICAgICBjYXNlIDEwOiAvKiAiRlVOQ1RJT05OQU1FIiAqLwotI2xpbmUgODAgIldlYkNvcmUveG1s
L1hQYXRoR3JhbW1hci55IgotICAgIHsgaWYgKCh5eXZhbHVlcC0+c3RyaW5nKSkgKHl5dmFsdWVw
LT5zdHJpbmcpLT5kZXJlZigpOyB9OwotI2xpbmUgMTIwNSAiLi9YUGF0aEdyYW1tYXIuY3BwIgot
ICAgIGJyZWFrOworI2xpbmUgNzcgIlhQYXRoR3JhbW1hci55IgorCXsgaWYgKCh5eXZhbHVlcC0+
c3RyaW5nKSkgKHl5dmFsdWVwLT5zdHJpbmcpLT5kZXJlZigpOyB9OworI2xpbmUgMTIwMiAiWFBh
dGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgMTE6IC8qICJMSVRFUkFMIiAqLwot
I2xpbmUgODAgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgaWYgKCh5eXZhbHVl
cC0+c3RyaW5nKSkgKHl5dmFsdWVwLT5zdHJpbmcpLT5kZXJlZigpOyB9OwotI2xpbmUgMTIxMCAi
Li9YUGF0aEdyYW1tYXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgNzcgIlhQYXRoR3JhbW1hci55
IgorCXsgaWYgKCh5eXZhbHVlcC0+c3RyaW5nKSkgKHl5dmFsdWVwLT5zdHJpbmcpLT5kZXJlZigp
OyB9OworI2xpbmUgMTIwNyAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2Ug
MTI6IC8qICJOQU1FVEVTVCIgKi8KLSNsaW5lIDgwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIu
eSIKLSAgICB7IGlmICgoeXl2YWx1ZXAtPnN0cmluZykpICh5eXZhbHVlcC0+c3RyaW5nKS0+ZGVy
ZWYoKTsgfTsKLSNsaW5lIDEyMTUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNs
aW5lIDc3ICJYUGF0aEdyYW1tYXIueSIKKwl7IGlmICgoeXl2YWx1ZXAtPnN0cmluZykpICh5eXZh
bHVlcC0+c3RyaW5nKS0+ZGVyZWYoKTsgfTsKKyNsaW5lIDEyMTIgIlhQYXRoR3JhbW1hci5jcHAi
CisJYnJlYWs7CiAgICAgICBjYXNlIDEzOiAvKiAiTlVNQkVSIiAqLwotI2xpbmUgODAgIldlYkNv
cmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgaWYgKCh5eXZhbHVlcC0+c3RyaW5nKSkgKHl5
dmFsdWVwLT5zdHJpbmcpLT5kZXJlZigpOyB9OwotI2xpbmUgMTIyMCAiLi9YUGF0aEdyYW1tYXIu
Y3BwIgotICAgIGJyZWFrOworI2xpbmUgNzcgIlhQYXRoR3JhbW1hci55IgorCXsgaWYgKCh5eXZh
bHVlcC0+c3RyaW5nKSkgKHl5dmFsdWVwLT5zdHJpbmcpLT5kZXJlZigpOyB9OworI2xpbmUgMTIx
NyAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgMTQ6IC8qICJOT0RFVFlQ
RSIgKi8KLSNsaW5lIDgwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGlmICgo
eXl2YWx1ZXAtPnN0cmluZykpICh5eXZhbHVlcC0+c3RyaW5nKS0+ZGVyZWYoKTsgfTsKLSNsaW5l
IDEyMjUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDc3ICJYUGF0aEdy
YW1tYXIueSIKKwl7IGlmICgoeXl2YWx1ZXAtPnN0cmluZykpICh5eXZhbHVlcC0+c3RyaW5nKS0+
ZGVyZWYoKTsgfTsKKyNsaW5lIDEyMjIgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAg
ICBjYXNlIDE1OiAvKiAiVkFSSUFCTEVSRUZFUkVOQ0UiICovCi0jbGluZSA4MCAiV2ViQ29yZS94
bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBpZiAoKHl5dmFsdWVwLT5zdHJpbmcpKSAoeXl2YWx1
ZXAtPnN0cmluZyktPmRlcmVmKCk7IH07Ci0jbGluZSAxMjMwICIuL1hQYXRoR3JhbW1hci5jcHAi
Ci0gICAgYnJlYWs7CisjbGluZSA3NyAiWFBhdGhHcmFtbWFyLnkiCisJeyBpZiAoKHl5dmFsdWVw
LT5zdHJpbmcpKSAoeXl2YWx1ZXAtPnN0cmluZyktPmRlcmVmKCk7IH07CisjbGluZSAxMjI3ICJY
UGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSAzNTogLyogIkV4cHIiICovCi0j
bGluZSAxMDAgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZh
bHVlcC0+ZXhwcmVzc2lvbik7IH07Ci0jbGluZSAxMjM1ICIuL1hQYXRoR3JhbW1hci5jcHAiCi0g
ICAgYnJlYWs7CisjbGluZSA5NyAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUgKHl5dmFsdWVw
LT5leHByZXNzaW9uKTsgfTsKKyNsaW5lIDEyMzIgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7
CiAgICAgICBjYXNlIDM2OiAvKiAiTG9jYXRpb25QYXRoIiAqLwotI2xpbmUgODggIldlYkNvcmUv
eG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+bG9jYXRpb25QYXRo
KTsgfTsKLSNsaW5lIDEyNDAgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5l
IDg1ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmxvY2F0aW9uUGF0aCk7
IH07CisjbGluZSAxMjM3ICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSAz
NzogLyogIkFic29sdXRlTG9jYXRpb25QYXRoIiAqLwotI2xpbmUgODggIldlYkNvcmUveG1sL1hQ
YXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+bG9jYXRpb25QYXRoKTsgfTsK
LSNsaW5lIDEyNDUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDg1ICJY
UGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmxvY2F0aW9uUGF0aCk7IH07Cisj
bGluZSAxMjQyICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSAzODogLyog
IlJlbGF0aXZlTG9jYXRpb25QYXRoIiAqLwotI2xpbmUgODggIldlYkNvcmUveG1sL1hQYXRoR3Jh
bW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+bG9jYXRpb25QYXRoKTsgfTsKLSNsaW5l
IDEyNTAgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDg1ICJYUGF0aEdy
YW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmxvY2F0aW9uUGF0aCk7IH07CisjbGluZSAx
MjQ3ICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSAzOTogLyogIlN0ZXAi
ICovCi0jbGluZSA5NyAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUg
KHl5dmFsdWVwLT5zdGVwKTsgfTsKLSNsaW5lIDEyNTUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAg
ICBicmVhazsKKyNsaW5lIDk0ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAt
PnN0ZXApOyB9OworI2xpbmUgMTI1MiAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAg
IGNhc2UgNDE6IC8qICJOb2RlVGVzdCIgKi8KLSNsaW5lIDkxICJXZWJDb3JlL3htbC9YUGF0aEdy
YW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2YWx1ZXAtPm5vZGVUZXN0KTsgfTsKLSNsaW5lIDEy
NjAgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDg4ICJYUGF0aEdyYW1t
YXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPm5vZGVUZXN0KTsgfTsKKyNsaW5lIDEyNTcgIlhQ
YXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNlIDQyOiAvKiAiT3B0aW9uYWxQcmVk
aWNhdGVMaXN0IiAqLwotI2xpbmUgOTQgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAg
IHsgZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvblZlY3Rvcik7IH07Ci0jbGluZSAxMjY1ICIu
L1hQYXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7CisjbGluZSA5MSAiWFBhdGhHcmFtbWFyLnki
CisJeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uVmVjdG9yKTsgfTsKKyNsaW5lIDEyNjIg
IlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNlIDQzOiAvKiAiUHJlZGljYXRl
TGlzdCIgKi8KLSNsaW5lIDk0ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRl
bGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb25WZWN0b3IpOyB9OwotI2xpbmUgMTI3MCAiLi9YUGF0
aEdyYW1tYXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgOTEgIlhQYXRoR3JhbW1hci55IgorCXsg
ZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvblZlY3Rvcik7IH07CisjbGluZSAxMjY3ICJYUGF0
aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSA0NDogLyogIlByZWRpY2F0ZSIgKi8K
LSNsaW5lIDEwMCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5
dmFsdWVwLT5leHByZXNzaW9uKTsgfTsKLSNsaW5lIDEyNzUgIi4vWFBhdGhHcmFtbWFyLmNwcCIK
LSAgICBicmVhazsKKyNsaW5lIDk3ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1
ZXAtPmV4cHJlc3Npb24pOyB9OworI2xpbmUgMTI3MiAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVh
azsKICAgICAgIGNhc2UgNDU6IC8qICJEZXNjZW5kYW50T3JTZWxmIiAqLwotI2xpbmUgOTcgIldl
YkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+c3RlcCk7
IH07Ci0jbGluZSAxMjgwICIuL1hQYXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7CisjbGluZSA5
NCAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUgKHl5dmFsdWVwLT5zdGVwKTsgfTsKKyNsaW5l
IDEyNzcgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNlIDQ2OiAvKiAiQWJi
cmV2aWF0ZWRTdGVwIiAqLwotI2xpbmUgOTcgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55Igot
ICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+c3RlcCk7IH07Ci0jbGluZSAxMjg1ICIuL1hQYXRoR3Jh
bW1hci5jcHAiCi0gICAgYnJlYWs7CisjbGluZSA5NCAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxl
dGUgKHl5dmFsdWVwLT5zdGVwKTsgfTsKKyNsaW5lIDEyODIgIlhQYXRoR3JhbW1hci5jcHAiCisJ
YnJlYWs7CiAgICAgICBjYXNlIDQ3OiAvKiAiUHJpbWFyeUV4cHIiICovCi0jbGluZSAxMDAgIldl
YkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgotICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVz
c2lvbik7IH07Ci0jbGluZSAxMjkwICIuL1hQYXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7Cisj
bGluZSA5NyAiWFBhdGhHcmFtbWFyLnkiCisJeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9u
KTsgfTsKKyNsaW5lIDEyODcgIlhQYXRoR3JhbW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNl
IDQ4OiAvKiAiRnVuY3Rpb25DYWxsIiAqLwotI2xpbmUgMTAwICJXZWJDb3JlL3htbC9YUGF0aEdy
YW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OwotI2xpbmUg
MTI5NSAiLi9YUGF0aEdyYW1tYXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgOTcgIlhQYXRoR3Jh
bW1hci55IgorCXsgZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvbik7IH07CisjbGluZSAxMjky
ICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSA0OTogLyogIkFyZ3VtZW50
TGlzdCIgKi8KLSNsaW5lIDk0ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRl
bGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb25WZWN0b3IpOyB9OwotI2xpbmUgMTMwMCAiLi9YUGF0
aEdyYW1tYXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgOTEgIlhQYXRoR3JhbW1hci55IgorCXsg
ZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvblZlY3Rvcik7IH07CisjbGluZSAxMjk3ICJYUGF0
aEdyYW1tYXIuY3BwIgorCWJyZWFrOwogICAgICAgY2FzZSA1MDogLyogIkFyZ3VtZW50IiAqLwot
I2xpbmUgMTAwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2
YWx1ZXAtPmV4cHJlc3Npb24pOyB9OwotI2xpbmUgMTMwNSAiLi9YUGF0aEdyYW1tYXIuY3BwIgot
ICAgIGJyZWFrOworI2xpbmUgOTcgIlhQYXRoR3JhbW1hci55IgorCXsgZGVsZXRlICh5eXZhbHVl
cC0+ZXhwcmVzc2lvbik7IH07CisjbGluZSAxMzAyICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFr
OwogICAgICAgY2FzZSA1MTogLyogIlVuaW9uRXhwciIgKi8KLSNsaW5lIDEwMCAiV2ViQ29yZS94
bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsg
fTsKLSNsaW5lIDEzMTAgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDk3
ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9Owor
I2xpbmUgMTMwNyAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgNTI6IC8q
ICJQYXRoRXhwciIgKi8KLSNsaW5lIDEwMCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0g
ICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsgfTsKLSNsaW5lIDEzMTUgIi4vWFBh
dGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDk3ICJYUGF0aEdyYW1tYXIueSIKKwl7
IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OworI2xpbmUgMTMxMiAiWFBhdGhHcmFt
bWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgNTM6IC8qICJGaWx0ZXJFeHByIiAqLwotI2xp
bmUgMTAwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRlbGV0ZSAoeXl2YWx1
ZXAtPmV4cHJlc3Npb24pOyB9OwotI2xpbmUgMTMyMCAiLi9YUGF0aEdyYW1tYXIuY3BwIgotICAg
IGJyZWFrOworI2xpbmUgOTcgIlhQYXRoR3JhbW1hci55IgorCXsgZGVsZXRlICh5eXZhbHVlcC0+
ZXhwcmVzc2lvbik7IH07CisjbGluZSAxMzE3ICJYUGF0aEdyYW1tYXIuY3BwIgorCWJyZWFrOwog
ICAgICAgY2FzZSA1NDogLyogIk9yRXhwciIgKi8KLSNsaW5lIDEwMCAiV2ViQ29yZS94bWwvWFBh
dGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsgfTsKLSNs
aW5lIDEzMjUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDk3ICJYUGF0
aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OworI2xpbmUg
MTMyMiAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgNTU6IC8qICJBbmRF
eHByIiAqLwotI2xpbmUgMTAwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRl
bGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OwotI2xpbmUgMTMzMCAiLi9YUGF0aEdyYW1t
YXIuY3BwIgotICAgIGJyZWFrOworI2xpbmUgOTcgIlhQYXRoR3JhbW1hci55IgorCXsgZGVsZXRl
ICh5eXZhbHVlcC0+ZXhwcmVzc2lvbik7IH07CisjbGluZSAxMzI3ICJYUGF0aEdyYW1tYXIuY3Bw
IgorCWJyZWFrOwogICAgICAgY2FzZSA1NjogLyogIkVxdWFsaXR5RXhwciIgKi8KLSNsaW5lIDEw
MCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5l
eHByZXNzaW9uKTsgfTsKLSNsaW5lIDEzMzUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVh
azsKKyNsaW5lIDk3ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJl
c3Npb24pOyB9OworI2xpbmUgMTMzMiAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAg
IGNhc2UgNTc6IC8qICJSZWxhdGlvbmFsRXhwciIgKi8KLSNsaW5lIDEwMCAiV2ViQ29yZS94bWwv
WFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsgfTsK
LSNsaW5lIDEzNDAgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNsaW5lIDk3ICJY
UGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OworI2xp
bmUgMTMzNyAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKICAgICAgIGNhc2UgNTg6IC8qICJB
ZGRpdGl2ZUV4cHIiICovCi0jbGluZSAxMDAgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55Igot
ICAgIHsgZGVsZXRlICh5eXZhbHVlcC0+ZXhwcmVzc2lvbik7IH07Ci0jbGluZSAxMzQ1ICIuL1hQ
YXRoR3JhbW1hci5jcHAiCi0gICAgYnJlYWs7CisjbGluZSA5NyAiWFBhdGhHcmFtbWFyLnkiCisJ
eyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNzaW9uKTsgfTsKKyNsaW5lIDEzNDIgIlhQYXRoR3Jh
bW1hci5jcHAiCisJYnJlYWs7CiAgICAgICBjYXNlIDU5OiAvKiAiTXVsdGlwbGljYXRpdmVFeHBy
IiAqLwotI2xpbmUgMTAwICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKLSAgICB7IGRlbGV0
ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24pOyB9OwotI2xpbmUgMTM1MCAiLi9YUGF0aEdyYW1tYXIu
Y3BwIgotICAgIGJyZWFrOworI2xpbmUgOTcgIlhQYXRoR3JhbW1hci55IgorCXsgZGVsZXRlICh5
eXZhbHVlcC0+ZXhwcmVzc2lvbik7IH07CisjbGluZSAxMzQ3ICJYUGF0aEdyYW1tYXIuY3BwIgor
CWJyZWFrOwogICAgICAgY2FzZSA2MDogLyogIlVuYXJ5RXhwciIgKi8KLSNsaW5lIDEwMCAiV2Vi
Q29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCi0gICAgeyBkZWxldGUgKHl5dmFsdWVwLT5leHByZXNz
aW9uKTsgfTsKLSNsaW5lIDEzNTUgIi4vWFBhdGhHcmFtbWFyLmNwcCIKLSAgICBicmVhazsKKyNs
aW5lIDk3ICJYUGF0aEdyYW1tYXIueSIKKwl7IGRlbGV0ZSAoeXl2YWx1ZXAtPmV4cHJlc3Npb24p
OyB9OworI2xpbmUgMTM1MiAiWFBhdGhHcmFtbWFyLmNwcCIKKwlicmVhazsKIAogICAgICAgZGVm
YXVsdDoKLSAgICBicmVhazsKKwlicmVhazsKICAgICB9CiB9CiAMCkBAIC0xMzczLDcgKzEzNzEs
NyBAQCBpbnQgeXlwYXJzZSAoKTsKICNlbmRpZgogI2Vsc2UgLyogISBZWVBBUlNFX1BBUkFNICov
CiAjaWYgZGVmaW5lZCBfX1NURENfXyB8fCBkZWZpbmVkIF9fY3BsdXNwbHVzCi1pbnQgeXlwYXJz
ZSAoUGFyc2VyJiBwYXJzZXIpOworaW50IHl5cGFyc2UgKFdlYkNvcmU6OlhQYXRoOjpQYXJzZXIm
IHBhcnNlcik7CiAjZWxzZQogaW50IHl5cGFyc2UgKCk7CiAjZW5kaWYKQEAgLTE0MDIsMTEgKzE0
MDAsMTEgQEAgeXlwYXJzZSAoWVlQQVJTRV9QQVJBTSkKICNpZiAoZGVmaW5lZCBfX1NURENfXyB8
fCBkZWZpbmVkIF9fQzk5X19GVU5DX18gXAogICAgICB8fCBkZWZpbmVkIF9fY3BsdXNwbHVzIHx8
IGRlZmluZWQgX01TQ19WRVIpCiBpbnQKLXl5cGFyc2UgKFBhcnNlciYgcGFyc2VyKQoreXlwYXJz
ZSAoV2ViQ29yZTo6WFBhdGg6OlBhcnNlciYgcGFyc2VyKQogI2Vsc2UKIGludAogeXlwYXJzZSAo
cGFyc2VyKQotICAgIFBhcnNlciYgcGFyc2VyOworICAgIFdlYkNvcmU6OlhQYXRoOjpQYXJzZXIm
IHBhcnNlcjsKICNlbmRpZgogI2VuZGlmCiB7CkBAIC0xNDcxLDcgKzE0NjksNyBAQCBpbnQgeXlu
ZXJyczsKICAgeXlzdGF0ZSA9IDA7CiAgIHl5ZXJyc3RhdHVzID0gMDsKICAgeXluZXJycyA9IDA7
Ci0gIHl5Y2hhciA9IFlZRU1QVFk7ICAgICAgICAvKiBDYXVzZSBhIHRva2VuIHRvIGJlIHJlYWQu
ICAqLworICB5eWNoYXIgPSBZWUVNUFRZOwkJLyogQ2F1c2UgYSB0b2tlbiB0byBiZSByZWFkLiAg
Ki8KIAogICAvKiBJbml0aWFsaXplIHN0YWNrIHBvaW50ZXJzLgogICAgICBXYXN0ZSBvbmUgZWxl
bWVudCBvZiB2YWx1ZSBhbmQgbG9jYXRpb24gc3RhY2sKQEAgLTE1MDEsMjUgKzE0OTksMjUgQEAg
aW50IHl5bmVycnM7CiAKICNpZmRlZiB5eW92ZXJmbG93CiAgICAgICB7Ci0gICAgLyogR2l2ZSB1
c2VyIGEgY2hhbmNlIHRvIHJlYWxsb2NhdGUgdGhlIHN0YWNrLiAgVXNlIGNvcGllcyBvZgotICAg
ICAgIHRoZXNlIHNvIHRoYXQgdGhlICYncyBkb24ndCBmb3JjZSB0aGUgcmVhbCBvbmVzIGludG8K
LSAgICAgICBtZW1vcnkuICAqLwotICAgIFlZU1RZUEUgKnl5dnMxID0geXl2czsKLSAgICB5eXR5
cGVfaW50MTYgKnl5c3MxID0geXlzczsKKwkvKiBHaXZlIHVzZXIgYSBjaGFuY2UgdG8gcmVhbGxv
Y2F0ZSB0aGUgc3RhY2suICBVc2UgY29waWVzIG9mCisJICAgdGhlc2Ugc28gdGhhdCB0aGUgJidz
IGRvbid0IGZvcmNlIHRoZSByZWFsIG9uZXMgaW50bworCSAgIG1lbW9yeS4gICovCisJWVlTVFlQ
RSAqeXl2czEgPSB5eXZzOworCXl5dHlwZV9pbnQxNiAqeXlzczEgPSB5eXNzOwogCiAKLSAgICAv
KiBFYWNoIHN0YWNrIHBvaW50ZXIgYWRkcmVzcyBpcyBmb2xsb3dlZCBieSB0aGUgc2l6ZSBvZiB0
aGUKLSAgICAgICBkYXRhIGluIHVzZSBpbiB0aGF0IHN0YWNrLCBpbiBieXRlcy4gIFRoaXMgdXNl
ZCB0byBiZSBhCi0gICAgICAgY29uZGl0aW9uYWwgYXJvdW5kIGp1c3QgdGhlIHR3byBleHRyYSBh
cmdzLCBidXQgdGhhdCBtaWdodAotICAgICAgIGJlIHVuZGVmaW5lZCBpZiB5eW92ZXJmbG93IGlz
IGEgbWFjcm8uICAqLwotICAgIHl5b3ZlcmZsb3cgKFlZXygibWVtb3J5IGV4aGF1c3RlZCIpLAot
ICAgICAgICAgICAgJnl5c3MxLCB5eXNpemUgKiBzaXplb2YgKCp5eXNzcCksCi0gICAgICAgICAg
ICAmeXl2czEsIHl5c2l6ZSAqIHNpemVvZiAoKnl5dnNwKSwKKwkvKiBFYWNoIHN0YWNrIHBvaW50
ZXIgYWRkcmVzcyBpcyBmb2xsb3dlZCBieSB0aGUgc2l6ZSBvZiB0aGUKKwkgICBkYXRhIGluIHVz
ZSBpbiB0aGF0IHN0YWNrLCBpbiBieXRlcy4gIFRoaXMgdXNlZCB0byBiZSBhCisJICAgY29uZGl0
aW9uYWwgYXJvdW5kIGp1c3QgdGhlIHR3byBleHRyYSBhcmdzLCBidXQgdGhhdCBtaWdodAorCSAg
IGJlIHVuZGVmaW5lZCBpZiB5eW92ZXJmbG93IGlzIGEgbWFjcm8uICAqLworCXl5b3ZlcmZsb3cg
KFlZXygibWVtb3J5IGV4aGF1c3RlZCIpLAorCQkgICAgJnl5c3MxLCB5eXNpemUgKiBzaXplb2Yg
KCp5eXNzcCksCisJCSAgICAmeXl2czEsIHl5c2l6ZSAqIHNpemVvZiAoKnl5dnNwKSwKIAotICAg
ICAgICAgICAgJnl5c3RhY2tzaXplKTsKKwkJICAgICZ5eXN0YWNrc2l6ZSk7CiAKLSAgICB5eXNz
ID0geXlzczE7Ci0gICAgeXl2cyA9IHl5dnMxOworCXl5c3MgPSB5eXNzMTsKKwl5eXZzID0geXl2
czE7CiAgICAgICB9CiAjZWxzZSAvKiBubyB5eW92ZXJmbG93ICovCiAjIGlmbmRlZiBZWVNUQUNL
X1JFTE9DQVRFCkBAIC0xNTI3LDIzICsxNTI1LDIzIEBAIGludCB5eW5lcnJzOwogIyBlbHNlCiAg
ICAgICAvKiBFeHRlbmQgdGhlIHN0YWNrIG91ciBvd24gd2F5LiAgKi8KICAgICAgIGlmIChZWU1B
WERFUFRIIDw9IHl5c3RhY2tzaXplKQotICAgIGdvdG8geXlleGhhdXN0ZWRsYWI7CisJZ290byB5
eWV4aGF1c3RlZGxhYjsKICAgICAgIHl5c3RhY2tzaXplICo9IDI7CiAgICAgICBpZiAoWVlNQVhE
RVBUSCA8IHl5c3RhY2tzaXplKQotICAgIHl5c3RhY2tzaXplID0gWVlNQVhERVBUSDsKKwl5eXN0
YWNrc2l6ZSA9IFlZTUFYREVQVEg7CiAKICAgICAgIHsKLSAgICB5eXR5cGVfaW50MTYgKnl5c3Mx
ID0geXlzczsKLSAgICB1bmlvbiB5eWFsbG9jICp5eXB0ciA9Ci0gICAgICAodW5pb24geXlhbGxv
YyAqKSBZWVNUQUNLX0FMTE9DIChZWVNUQUNLX0JZVEVTICh5eXN0YWNrc2l6ZSkpOwotICAgIGlm
ICghIHl5cHRyKQotICAgICAgZ290byB5eWV4aGF1c3RlZGxhYjsKLSAgICBZWVNUQUNLX1JFTE9D
QVRFICh5eXNzKTsKLSAgICBZWVNUQUNLX1JFTE9DQVRFICh5eXZzKTsKKwl5eXR5cGVfaW50MTYg
Knl5c3MxID0geXlzczsKKwl1bmlvbiB5eWFsbG9jICp5eXB0ciA9CisJICAodW5pb24geXlhbGxv
YyAqKSBZWVNUQUNLX0FMTE9DIChZWVNUQUNLX0JZVEVTICh5eXN0YWNrc2l6ZSkpOworCWlmICgh
IHl5cHRyKQorCSAgZ290byB5eWV4aGF1c3RlZGxhYjsKKwlZWVNUQUNLX1JFTE9DQVRFICh5eXNz
KTsKKwlZWVNUQUNLX1JFTE9DQVRFICh5eXZzKTsKIAogIyAgdW5kZWYgWVlTVEFDS19SRUxPQ0FU
RQotICAgIGlmICh5eXNzMSAhPSB5eXNzYSkKLSAgICAgIFlZU1RBQ0tfRlJFRSAoeXlzczEpOwor
CWlmICh5eXNzMSAhPSB5eXNzYSkKKwkgIFlZU1RBQ0tfRlJFRSAoeXlzczEpOwogICAgICAgfQog
IyBlbmRpZgogI2VuZGlmIC8qIG5vIHl5b3ZlcmZsb3cgKi8KQEAgLTE1NTMsMTAgKzE1NTEsMTAg
QEAgaW50IHl5bmVycnM7CiAKIAogICAgICAgWVlEUFJJTlRGICgoc3RkZXJyLCAiU3RhY2sgc2l6
ZSBpbmNyZWFzZWQgdG8gJWx1XG4iLAotICAgICAgICAgICh1bnNpZ25lZCBsb25nIGludCkgeXlz
dGFja3NpemUpKTsKKwkJICAodW5zaWduZWQgbG9uZyBpbnQpIHl5c3RhY2tzaXplKSk7CiAKICAg
ICAgIGlmICh5eXNzICsgeXlzdGFja3NpemUgLSAxIDw9IHl5c3NwKQotICAgIFlZQUJPUlQ7CisJ
WVlBQk9SVDsKICAgICB9CiAKICAgWVlEUFJJTlRGICgoc3RkZXJyLCAiRW50ZXJpbmcgc3RhdGUg
JWRcbiIsIHl5c3RhdGUpKTsKQEAgLTE2MDUsNyArMTYwMyw3IEBAIHl5YmFja3VwOgogICBpZiAo
eXluIDw9IDApCiAgICAgewogICAgICAgaWYgKHl5biA9PSAwIHx8IHl5biA9PSBZWVRBQkxFX05J
TkYpCi0gICAgZ290byB5eWVycmxhYjsKKwlnb3RvIHl5ZXJybGFiOwogICAgICAgeXluID0gLXl5
bjsKICAgICAgIGdvdG8geXlyZWR1Y2U7CiAgICAgfQpAQCAtMTY2MywxNCArMTY2MSwxNCBAQCB5
eXJlZHVjZToKICAgc3dpdGNoICh5eW4pCiAgICAgewogICAgICAgICBjYXNlIDI6Ci0jbGluZSAx
MTUgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMTEyICJYUGF0aEdyYW1tYXIu
eSIKICAgICB7Ci0gICAgICAgIHBhcnNlci5zZXRQYXJzZVJlc3VsdChzdGQ6OnVuaXF1ZV9wdHI8
RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgxKV0uZXhwcmVzc2lvbikpKTsKKyAgICAgICAgcGFy
c2VyLnNldFBhcnNlUmVzdWx0KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVz
c2lvbj4oKHl5dnNwWygxKSAtICgxKV0uZXhwcmVzc2lvbikpKTsKICAgICA7fQogICAgIGJyZWFr
OwogCiAgIGNhc2UgNDoKLSNsaW5lIDEyNiAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisj
bGluZSAxMjMgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAgKHl5dmFsLmxvY2F0aW9u
UGF0aCkgPSAoeXl2c3BbKDEpIC0gKDEpXS5sb2NhdGlvblBhdGgpOwogICAgICAgICAoeXl2YWwu
bG9jYXRpb25QYXRoKS0+c2V0QWJzb2x1dGUoKTsKQEAgLTE2NzgsNjkgKzE2NzYsNjkgQEAgeXly
ZWR1Y2U6CiAgICAgYnJlYWs7CiAKICAgY2FzZSA2OgotI2xpbmUgMTM2ICJXZWJDb3JlL3htbC9Y
UGF0aEdyYW1tYXIueSIKKyNsaW5lIDEzMyAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAgICAg
ICAoeXl2YWwubG9jYXRpb25QYXRoKSA9IG5ldyBMb2NhdGlvblBhdGg7CisgICAgICAgICh5eXZh
bC5sb2NhdGlvblBhdGgpID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpMb2NhdGlvblBhdGg7CiAgICAg
O30KICAgICBicmVhazsKIAogICBjYXNlIDc6Ci0jbGluZSAxNDEgIldlYkNvcmUveG1sL1hQYXRo
R3JhbW1hci55IgorI2xpbmUgMTM4ICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgICh5
eXZhbC5sb2NhdGlvblBhdGgpID0gKHl5dnNwWygyKSAtICgyKV0ubG9jYXRpb25QYXRoKTsKICAg
ICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgODoKLSNsaW5lIDE0NiAiV2ViQ29yZS94bWwvWFBh
dGhHcmFtbWFyLnkiCisjbGluZSAxNDMgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAg
KHl5dmFsLmxvY2F0aW9uUGF0aCkgPSAoeXl2c3BbKDIpIC0gKDIpXS5sb2NhdGlvblBhdGgpOwot
ICAgICAgICAoeXl2YWwubG9jYXRpb25QYXRoKS0+cHJlcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRy
PFN0ZXA+KCh5eXZzcFsoMSkgLSAoMildLnN0ZXApKSk7CisgICAgICAgICh5eXZhbC5sb2NhdGlv
blBhdGgpLT5wcmVwZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA+
KCh5eXZzcFsoMSkgLSAoMildLnN0ZXApKSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNl
IDk6Ci0jbGluZSAxNTQgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMTUxICJY
UGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgICh5eXZhbC5sb2NhdGlvblBhdGgpID0gbmV3
IExvY2F0aW9uUGF0aDsKLSAgICAgICAgKHl5dmFsLmxvY2F0aW9uUGF0aCktPmFwcGVuZFN0ZXAo
c3RkOjp1bmlxdWVfcHRyPFN0ZXA+KCh5eXZzcFsoMSkgLSAoMSldLnN0ZXApKSk7CisgICAgICAg
ICh5eXZhbC5sb2NhdGlvblBhdGgpID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpMb2NhdGlvblBhdGg7
CisgICAgICAgICh5eXZhbC5sb2NhdGlvblBhdGgpLT5hcHBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpYUGF0aDo6U3RlcD4oKHl5dnNwWygxKSAtICgxKV0uc3RlcCkpKTsKICAgICA7
fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMTA6Ci0jbGluZSAxNjAgIldlYkNvcmUveG1sL1hQYXRo
R3JhbW1hci55IgorI2xpbmUgMTU3ICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgICh5
eXZhbC5sb2NhdGlvblBhdGgpID0gKHl5dnNwWygxKSAtICgzKV0ubG9jYXRpb25QYXRoKTsKLSAg
ICAgICAgKHl5dmFsLmxvY2F0aW9uUGF0aCktPmFwcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFN0
ZXA+KCh5eXZzcFsoMykgLSAoMyldLnN0ZXApKSk7CisgICAgICAgICh5eXZhbC5sb2NhdGlvblBh
dGgpLT5hcHBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6U3RlcD4oKHl5
dnNwWygzKSAtICgzKV0uc3RlcCkpKTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMTE6
Ci0jbGluZSAxNjYgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMTYzICJYUGF0
aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgICh5eXZhbC5sb2NhdGlvblBhdGgpID0gKHl5dnNw
WygxKSAtICgzKV0ubG9jYXRpb25QYXRoKTsKLSAgICAgICAgKHl5dmFsLmxvY2F0aW9uUGF0aCkt
PmFwcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFN0ZXA+KCh5eXZzcFsoMikgLSAoMyldLnN0ZXAp
KSk7Ci0gICAgICAgICh5eXZhbC5sb2NhdGlvblBhdGgpLT5hcHBlbmRTdGVwKHN0ZDo6dW5pcXVl
X3B0cjxTdGVwPigoeXl2c3BbKDMpIC0gKDMpXS5zdGVwKSkpOworICAgICAgICAoeXl2YWwubG9j
YXRpb25QYXRoKS0+YXBwZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0
ZXA+KCh5eXZzcFsoMikgLSAoMyldLnN0ZXApKSk7CisgICAgICAgICh5eXZhbC5sb2NhdGlvblBh
dGgpLT5hcHBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6U3RlcD4oKHl5
dnNwWygzKSAtICgzKV0uc3RlcCkpKTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMTI6
Ci0jbGluZSAxNzUgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMTcyICJYUGF0
aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGVwOjpOb2RlVGVz
dD4gbm9kZVRlc3QoKHl5dnNwWygxKSAtICgyKV0ubm9kZVRlc3QpKTsKLSAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+PiBwcmVkaWNhdGVM
aXN0KCh5eXZzcFsoMikgLSAoMildLmV4cHJlc3Npb25WZWN0b3IpKTsKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdD4gbm9kZVRlc3QoKHl5dnNw
WygxKSAtICgyKV0ubm9kZVRlc3QpKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3Rvcjxz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+Pj4gcHJlZGljYXRlTGlz
dCgoeXl2c3BbKDIpIC0gKDIpXS5leHByZXNzaW9uVmVjdG9yKSk7CiAgICAgICAgIGlmIChwcmVk
aWNhdGVMaXN0KQotICAgICAgICAgICAgKHl5dmFsLnN0ZXApID0gbmV3IFN0ZXAoU3RlcDo6Q2hp
bGRBeGlzLCBXVEZNb3ZlKCpub2RlVGVzdCksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKKyAg
ICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcChXZWJDb3Jl
OjpYUGF0aDo6U3RlcDo6Q2hpbGRBeGlzLCBXVEZNb3ZlKCpub2RlVGVzdCksIFdURk1vdmUoKnBy
ZWRpY2F0ZUxpc3QpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgKHl5dmFsLnN0ZXApID0g
bmV3IFN0ZXAoU3RlcDo6Q2hpbGRBeGlzLCBXVEZNb3ZlKCpub2RlVGVzdCkpOworICAgICAgICAg
ICAgKHl5dmFsLnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdlYkNvcmU6OlhQYXRo
OjpTdGVwOjpDaGlsZEF4aXMsIFdURk1vdmUoKm5vZGVUZXN0KSk7CiAgICAgO30KICAgICBicmVh
azsKIAogICBjYXNlIDEzOgotI2xpbmUgMTg1ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIK
KyNsaW5lIDE4MiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAgICBTdHJpbmcgbmFtZXRl
c3QgPSBhZG9wdFJlZigoeXl2c3BbKDEpIC0gKDIpXS5zdHJpbmcpKTsKLSAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+PiBwcmVkaWNhdGVM
aXN0KCh5eXZzcFsoMikgLSAoMildLmV4cHJlc3Npb25WZWN0b3IpKTsKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Np
b24+Pj4gcHJlZGljYXRlTGlzdCgoeXl2c3BbKDIpIC0gKDIpXS5leHByZXNzaW9uVmVjdG9yKSk7
CiAKICAgICAgICAgU3RyaW5nIGxvY2FsTmFtZTsKICAgICAgICAgU3RyaW5nIG5hbWVzcGFjZVVS
STsKQEAgLTE3NTAsMzAgKzE3NDgsMzAgQEAgeXlyZWR1Y2U6CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAocHJlZGljYXRlTGlzdCkKLSAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVw
KFN0ZXA6OkNoaWxkQXhpcywgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0
LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKKyAg
ICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcChXZWJDb3Jl
OjpYUGF0aDo6U3RlcDo6Q2hpbGRBeGlzLCBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Qo
V2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpOYW1lVGVzdCwgbG9jYWxOYW1lLCBuYW1l
c3BhY2VVUkkpLCBXVEZNb3ZlKCpwcmVkaWNhdGVMaXN0KSk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVwKFN0ZXA6OkNoaWxkQXhpcywgU3RlcDo6Tm9k
ZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSkp
OworICAgICAgICAgICAgKHl5dmFsLnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdl
YkNvcmU6OlhQYXRoOjpTdGVwOjpDaGlsZEF4aXMsIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2Rl
VGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUs
IG5hbWVzcGFjZVVSSSkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAxNDoKLSNsaW5l
IDIwMyAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyMDAgIlhQYXRoR3JhbW1h
ci55IgogICAgIHsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFN0ZXA6Ok5vZGVUZXN0PiBub2Rl
VGVzdCgoeXl2c3BbKDIpIC0gKDMpXS5ub2RlVGVzdCkpOwotICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPj4+IHByZWRpY2F0ZUxpc3QoKHl5
dnNwWygzKSAtICgzKV0uZXhwcmVzc2lvblZlY3RvcikpOworICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0PiBub2RlVGVzdCgoeXl2c3BbKDIpIC0g
KDMpXS5ub2RlVGVzdCkpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4+PiBwcmVkaWNhdGVMaXN0KCh5eXZz
cFsoMykgLSAoMyldLmV4cHJlc3Npb25WZWN0b3IpKTsKIAogICAgICAgICBpZiAocHJlZGljYXRl
TGlzdCkKLSAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVwKCh5eXZzcFsoMSkgLSAo
MyldLmF4aXMpLCBXVEZNb3ZlKCpub2RlVGVzdCksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsK
KyAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcCgoeXl2
c3BbKDEpIC0gKDMpXS5heGlzKSwgV1RGTW92ZSgqbm9kZVRlc3QpLCBXVEZNb3ZlKCpwcmVkaWNh
dGVMaXN0KSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBT
dGVwKCh5eXZzcFsoMSkgLSAoMyldLmF4aXMpLCBXVEZNb3ZlKCpub2RlVGVzdCkpOworICAgICAg
ICAgICAgKHl5dmFsLnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKCh5eXZzcFsoMSkg
LSAoMyldLmF4aXMpLCBXVEZNb3ZlKCpub2RlVGVzdCkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAK
ICAgY2FzZSAxNToKLSNsaW5lIDIxNCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGlu
ZSAyMTEgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAgU3RyaW5nIG5hbWV0ZXN0ID0g
YWRvcHRSZWYoKHl5dnNwWygyKSAtICgzKV0uc3RyaW5nKSk7Ci0gICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+Pj4gcHJlZGljYXRlTGlzdCgo
eXl2c3BbKDMpIC0gKDMpXS5leHByZXNzaW9uVmVjdG9yKSk7CisgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPj4+
IHByZWRpY2F0ZUxpc3QoKHl5dnNwWygzKSAtICgzKV0uZXhwcmVzc2lvblZlY3RvcikpOwogCiAg
ICAgICAgIFN0cmluZyBsb2NhbE5hbWU7CiAgICAgICAgIFN0cmluZyBuYW1lc3BhY2VVUkk7CkBA
IC0xNzgzLDI3MiArMTc4MSwyNzIgQEAgeXlyZWR1Y2U6CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAocHJlZGljYXRlTGlzdCkKLSAgICAgICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVwKCh5
eXZzcFsoMSkgLSAoMyldLmF4aXMpLCBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6TmFt
ZVRlc3QsIGxvY2FsTmFtZSwgbmFtZXNwYWNlVVJJKSwgV1RGTW92ZSgqcHJlZGljYXRlTGlzdCkp
OworICAgICAgICAgICAgKHl5dmFsLnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKCh5
eXZzcFsoMSkgLSAoMyldLmF4aXMpLCBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2Vi
Q29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpOYW1lVGVzdCwgbG9jYWxOYW1lLCBuYW1lc3Bh
Y2VVUkkpLCBXVEZNb3ZlKCpwcmVkaWNhdGVMaXN0KSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVwKCh5eXZzcFsoMSkgLSAoMyldLmF4aXMpLCBTdGVw
OjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6TmFtZVRlc3QsIGxvY2FsTmFtZSwgbmFtZXNwYWNl
VVJJKSk7CisgICAgICAgICAgICAoeXl2YWwuc3RlcCkgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0
ZXAoKHl5dnNwWygxKSAtICgzKV0uYXhpcyksIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVz
dChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5h
bWVzcGFjZVVSSSkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAxODoKLSNsaW5lIDIz
OCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyMzUgIlhQYXRoR3JhbW1hci55
IgogICAgIHsKLSAgICAgICAgKHl5dmFsLmF4aXMpID0gU3RlcDo6QXR0cmlidXRlQXhpczsKKyAg
ICAgICAgKHl5dmFsLmF4aXMpID0gV2ViQ29yZTo6WFBhdGg6OlN0ZXA6OkF0dHJpYnV0ZUF4aXM7
CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDE5OgotI2xpbmUgMjQ1ICJXZWJDb3JlL3ht
bC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDI0MiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAg
ICAgICAoeXl2YWwubm9kZVRlc3QpID0gbmV3IFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0
OjpBbnlOb2RlVGVzdCk7CisgICAgICAgICh5eXZhbC5ub2RlVGVzdCkgPSBuZXcgV2ViQ29yZTo6
WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0KFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6QW55
Tm9kZVRlc3QpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAyMDoKLSNsaW5lIDI1MCAi
V2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyNDcgIlhQYXRoR3JhbW1hci55Igog
ICAgIHsKLSAgICAgICAgKHl5dmFsLm5vZGVUZXN0KSA9IG5ldyBTdGVwOjpOb2RlVGVzdChTdGVw
OjpOb2RlVGVzdDo6VGV4dE5vZGVUZXN0KTsKKyAgICAgICAgKHl5dmFsLm5vZGVUZXN0KSA9IG5l
dyBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5v
ZGVUZXN0OjpUZXh0Tm9kZVRlc3QpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAyMToK
LSNsaW5lIDI1NSAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyNTIgIlhQYXRo
R3JhbW1hci55IgogICAgIHsKLSAgICAgICAgKHl5dmFsLm5vZGVUZXN0KSA9IG5ldyBTdGVwOjpO
b2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6Q29tbWVudE5vZGVUZXN0KTsKKyAgICAgICAgKHl5dmFs
Lm5vZGVUZXN0KSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6
WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpDb21tZW50Tm9kZVRlc3QpOwogICAgIDt9CiAgICAgYnJl
YWs7CiAKICAgY2FzZSAyMjoKLSNsaW5lIDI2MCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnki
CisjbGluZSAyNTcgIlhQYXRoR3JhbW1hci55IgogICAgIHsKLSAgICAgICAgKHl5dmFsLm5vZGVU
ZXN0KSA9IG5ldyBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6UHJvY2Vzc2luZ0luc3Ry
dWN0aW9uTm9kZVRlc3QpOworICAgICAgICAoeXl2YWwubm9kZVRlc3QpID0gbmV3IFdlYkNvcmU6
OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6OlBy
b2Nlc3NpbmdJbnN0cnVjdGlvbk5vZGVUZXN0KTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNh
c2UgMjM6Ci0jbGluZSAyNjUgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMjYy
ICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgIFN0cmluZyBsaXRlcmFsID0gYWRvcHRS
ZWYoKHl5dnNwWygzKSAtICg0KV0uc3RyaW5nKSk7Ci0gICAgICAgICh5eXZhbC5ub2RlVGVzdCkg
PSBuZXcgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6OlByb2Nlc3NpbmdJbnN0cnVjdGlv
bk5vZGVUZXN0LCBsaXRlcmFsLnN0cmlwV2hpdGVTcGFjZSgpKTsKKyAgICAgICAgKHl5dmFsLm5v
ZGVUZXN0KSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBh
dGg6OlN0ZXA6Ok5vZGVUZXN0OjpQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25Ob2RlVGVzdCwgbGl0ZXJh
bC5zdHJpcFdoaXRlU3BhY2UoKSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDI0Ogot
I2xpbmUgMjczICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDI3MCAiWFBhdGhH
cmFtbWFyLnkiCiAgICAgewogICAgICAgICAoeXl2YWwuZXhwcmVzc2lvblZlY3RvcikgPSBudWxs
cHRyOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAyNjoKLSNsaW5lIDI4MiAiV2ViQ29y
ZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAyNzkgIlhQYXRoR3JhbW1hci55IgogICAgIHsK
LSAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3IpID0gbmV3IFZlY3RvcjxzdGQ6OnVuaXF1
ZV9wdHI8RXhwcmVzc2lvbj4+OwotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvblZlY3RvciktPmFw
cGVuZChzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgxKV0uZXhwcmVz
c2lvbikpKTsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3IpID0gbmV3IFZlY3Rvcjxz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+PjsKKyAgICAgICAgKHl5
dmFsLmV4cHJlc3Npb25WZWN0b3IpLT5hcHBlbmQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQ
YXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDEpXS5leHByZXNzaW9uKSkpOwogICAgIDt9
CiAgICAgYnJlYWs7CiAKICAgY2FzZSAyNzoKLSNsaW5lIDI4OCAiV2ViQ29yZS94bWwvWFBhdGhH
cmFtbWFyLnkiCisjbGluZSAyODUgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAgKHl5
dmFsLmV4cHJlc3Npb25WZWN0b3IpID0gKHl5dnNwWygxKSAtICgyKV0uZXhwcmVzc2lvblZlY3Rv
cik7Ci0gICAgICAgICh5eXZhbC5leHByZXNzaW9uVmVjdG9yKS0+YXBwZW5kKHN0ZDo6dW5pcXVl
X3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDIpIC0gKDIpXS5leHByZXNzaW9uKSkpOworICAgICAg
ICAoeXl2YWwuZXhwcmVzc2lvblZlY3RvciktPmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5eXZzcFsoMikgLSAoMildLmV4cHJlc3Npb24pKSk7CiAg
ICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDI4OgotI2xpbmUgMjk2ICJXZWJDb3JlL3htbC9Y
UGF0aEdyYW1tYXIueSIKKyNsaW5lIDI5MyAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAg
ICAoeXl2YWwuZXhwcmVzc2lvbikgPSAoeXl2c3BbKDIpIC0gKDMpXS5leHByZXNzaW9uKTsKICAg
ICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMjk6Ci0jbGluZSAzMDMgIldlYkNvcmUveG1sL1hQ
YXRoR3JhbW1hci55IgorI2xpbmUgMzAwICJYUGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAg
ICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVwKFN0ZXA6OkRlc2NlbmRhbnRPclNlbGZBeGlzLCBTdGVw
OjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6QW55Tm9kZVRlc3QpKTsKKyAgICAgICAgKHl5dmFs
LnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpE
ZXNjZW5kYW50T3JTZWxmQXhpcywgV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0KFdlYkNv
cmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6QW55Tm9kZVRlc3QpKTsKICAgICA7fQogICAgIGJy
ZWFrOwogCiAgIGNhc2UgMzA6Ci0jbGluZSAzMTAgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55
IgorI2xpbmUgMzA3ICJYUGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgICh5eXZhbC5zdGVw
KSA9IG5ldyBTdGVwKFN0ZXA6OlNlbGZBeGlzLCBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVz
dDo6QW55Tm9kZVRlc3QpKTsKKyAgICAgICAgKHl5dmFsLnN0ZXApID0gbmV3IFdlYkNvcmU6OlhQ
YXRoOjpTdGVwKFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpTZWxmQXhpcywgV2ViQ29yZTo6WFBhdGg6
OlN0ZXA6Ok5vZGVUZXN0KFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6QW55Tm9kZVRl
c3QpKTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgMzE6Ci0jbGluZSAzMTUgIldlYkNv
cmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgMzEyICJYUGF0aEdyYW1tYXIueSIKICAgICB7
Ci0gICAgICAgICh5eXZhbC5zdGVwKSA9IG5ldyBTdGVwKFN0ZXA6OlBhcmVudEF4aXMsIFN0ZXA6
Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpBbnlOb2RlVGVzdCkpOworICAgICAgICAoeXl2YWwu
c3RlcCkgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0ZXAoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6OlBh
cmVudEF4aXMsIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6
U3RlcDo6Tm9kZVRlc3Q6OkFueU5vZGVUZXN0KSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBj
YXNlIDMyOgotI2xpbmUgMzIyICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDMx
OSAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAgICBTdHJpbmcgbmFtZSA9IGFkb3B0UmVm
KCh5eXZzcFsoMSkgLSAoMSldLnN0cmluZykpOwotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikg
PSBuZXcgVmFyaWFibGVSZWZlcmVuY2UobmFtZSk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9u
KSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6VmFyaWFibGVSZWZlcmVuY2UobmFtZSk7CiAgICAgO30K
ICAgICBicmVhazsKIAogICBjYXNlIDMzOgotI2xpbmUgMzI4ICJXZWJDb3JlL3htbC9YUGF0aEdy
YW1tYXIueSIKKyNsaW5lIDMyNSAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAgICAoeXl2
YWwuZXhwcmVzc2lvbikgPSAoeXl2c3BbKDIpIC0gKDMpXS5leHByZXNzaW9uKTsKICAgICA7fQog
ICAgIGJyZWFrOwogCiAgIGNhc2UgMzQ6Ci0jbGluZSAzMzMgIldlYkNvcmUveG1sL1hQYXRoR3Jh
bW1hci55IgorI2xpbmUgMzMwICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgIFN0cmlu
ZyBsaXRlcmFsID0gYWRvcHRSZWYoKHl5dnNwWygxKSAtICgxKV0uc3RyaW5nKSk7Ci0gICAgICAg
ICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBTdHJpbmdFeHByZXNzaW9uKFdURk1vdmUobGl0ZXJh
bCkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0
cmluZ0V4cHJlc3Npb24oV1RGTW92ZShsaXRlcmFsKSk7CiAgICAgO30KICAgICBicmVhazsKIAog
ICBjYXNlIDM1OgotI2xpbmUgMzM5ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5l
IDMzNiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAgICBTdHJpbmcgbnVtZXJhbCA9IGFk
b3B0UmVmKCh5eXZzcFsoMSkgLSAoMSldLnN0cmluZykpOwotICAgICAgICAoeXl2YWwuZXhwcmVz
c2lvbikgPSBuZXcgTnVtYmVyKG51bWVyYWwudG9Eb3VibGUoKSk7CisgICAgICAgICh5eXZhbC5l
eHByZXNzaW9uKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TnVtYmVyKG51bWVyYWwudG9Eb3VibGUo
KSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDM3OgotI2xpbmUgMzQ5ICJXZWJDb3Jl
L3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDM0NiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewog
ICAgICAgICBTdHJpbmcgbmFtZSA9IGFkb3B0UmVmKCh5eXZzcFsoMSkgLSAoMyldLnN0cmluZykp
OwotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBYUGF0aDo6RnVuY3Rpb246OmNyZWF0ZShu
YW1lKS5yZWxlYXNlKCk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IFdlYkNvcmU6OlhQ
YXRoOjpGdW5jdGlvbjo6Y3JlYXRlKG5hbWUpLnJlbGVhc2UoKTsKICAgICAgICAgaWYgKCEoeXl2
YWwuZXhwcmVzc2lvbikpCiAgICAgICAgICAgICBZWUFCT1JUOwogICAgIDt9CiAgICAgYnJlYWs7
CiAKICAgY2FzZSAzODoKLSNsaW5lIDM1NyAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisj
bGluZSAzNTQgIlhQYXRoR3JhbW1hci55IgogICAgIHsKICAgICAgICAgU3RyaW5nIG5hbWUgPSBh
ZG9wdFJlZigoeXl2c3BbKDEpIC0gKDQpXS5zdHJpbmcpKTsKLSAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+PiBhcmd1bWVudExpc3QoKHl5
dnNwWygzKSAtICg0KV0uZXhwcmVzc2lvblZlY3RvcikpOwotICAgICAgICAoeXl2YWwuZXhwcmVz
c2lvbikgPSBYUGF0aDo6RnVuY3Rpb246OmNyZWF0ZShuYW1lLCBXVEZNb3ZlKCphcmd1bWVudExp
c3QpKS5yZWxlYXNlKCk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPj4+IGFyZ3VtZW50TGlzdCgoeXl2c3Bb
KDMpIC0gKDQpXS5leHByZXNzaW9uVmVjdG9yKSk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9u
KSA9IFdlYkNvcmU6OlhQYXRoOjpGdW5jdGlvbjo6Y3JlYXRlKG5hbWUsIFdURk1vdmUoKmFyZ3Vt
ZW50TGlzdCkpLnJlbGVhc2UoKTsKICAgICAgICAgaWYgKCEoeXl2YWwuZXhwcmVzc2lvbikpCiAg
ICAgICAgICAgICBZWUFCT1JUOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSAzOToKLSNs
aW5lIDM2OCAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAzNjUgIlhQYXRoR3Jh
bW1hci55IgogICAgIHsKLSAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3IpID0gbmV3IFZl
Y3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+OwotICAgICAgICAoeXl2YWwuZXhwcmVz
c2lvblZlY3RvciktPmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygx
KSAtICgxKV0uZXhwcmVzc2lvbikpKTsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3Ip
ID0gbmV3IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+
PjsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3IpLT5hcHBlbmQoc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDEpXS5leHByZXNz
aW9uKSkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKICAgY2FzZSA0MDoKLSNsaW5lIDM3NCAiV2Vi
Q29yZS94bWwvWFBhdGhHcmFtbWFyLnkiCisjbGluZSAzNzEgIlhQYXRoR3JhbW1hci55IgogICAg
IHsKICAgICAgICAgKHl5dmFsLmV4cHJlc3Npb25WZWN0b3IpID0gKHl5dnNwWygxKSAtICgzKV0u
ZXhwcmVzc2lvblZlY3Rvcik7Ci0gICAgICAgICh5eXZhbC5leHByZXNzaW9uVmVjdG9yKS0+YXBw
ZW5kKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNz
aW9uKSkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvblZlY3RvciktPmFwcGVuZChzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5eXZzcFsoMykgLSAoMyldLmV4
cHJlc3Npb24pKSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDQzOgotI2xpbmUgMzg4
ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDM4NSAiWFBhdGhHcmFtbWFyLnki
CiAgICAgewotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgVW5pb24oc3RkOjp1bmlx
dWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMSkgLSAoMyldLmV4cHJlc3Npb24pKSwgc3RkOjp1
bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMykgLSAoMyldLmV4cHJlc3Npb24pKSk7Cisg
ICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6VW5pb24oc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMp
XS5leHByZXNzaW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lv
bj4oKHl5dnNwWygzKSAtICgzKV0uZXhwcmVzc2lvbikpKTsKICAgICA7fQogICAgIGJyZWFrOwog
CiAgIGNhc2UgNDQ6Ci0jbGluZSAzOTUgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xp
bmUgMzkyICJYUGF0aEdyYW1tYXIueSIKICAgICB7CiAgICAgICAgICh5eXZhbC5leHByZXNzaW9u
KSA9ICh5eXZzcFsoMSkgLSAoMSldLmxvY2F0aW9uUGF0aCk7CiAgICAgO30KICAgICBicmVhazsK
IAogICBjYXNlIDQ2OgotI2xpbmUgNDAyICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNs
aW5lIDM5OSAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewogICAgICAgICAoeXl2c3BbKDMpIC0gKDMp
XS5sb2NhdGlvblBhdGgpLT5zZXRBYnNvbHV0ZSgpOwotICAgICAgICAoeXl2YWwuZXhwcmVzc2lv
bikgPSBuZXcgWFBhdGg6OlBhdGgoc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFso
MSkgLSAoMyldLmV4cHJlc3Npb24pKSwgc3RkOjp1bmlxdWVfcHRyPExvY2F0aW9uUGF0aD4oKHl5
dnNwWygzKSAtICgzKV0ubG9jYXRpb25QYXRoKSkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lv
bikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlBhdGgoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQ
YXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMpXS5leHByZXNzaW9uKSksIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6TG9jYXRpb25QYXRoPigoeXl2c3BbKDMpIC0gKDMpXS5s
b2NhdGlvblBhdGgpKSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDQ3OgotI2xpbmUg
NDA4ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDQwNSAiWFBhdGhHcmFtbWFy
LnkiCiAgICAgewotICAgICAgICAoeXl2c3BbKDMpIC0gKDMpXS5sb2NhdGlvblBhdGgpLT5wcmVw
ZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8U3RlcD4oKHl5dnNwWygyKSAtICgzKV0uc3RlcCkpKTsK
KyAgICAgICAgKHl5dnNwWygzKSAtICgzKV0ubG9jYXRpb25QYXRoKS0+cHJlcGVuZFN0ZXAoc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpTdGVwPigoeXl2c3BbKDIpIC0gKDMpXS5zdGVw
KSkpOwogICAgICAgICAoeXl2c3BbKDMpIC0gKDMpXS5sb2NhdGlvblBhdGgpLT5zZXRBYnNvbHV0
ZSgpOwotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgWFBhdGg6OlBhdGgoc3RkOjp1
bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMSkgLSAoMyldLmV4cHJlc3Npb24pKSwgc3Rk
Ojp1bmlxdWVfcHRyPExvY2F0aW9uUGF0aD4oKHl5dnNwWygzKSAtICgzKV0ubG9jYXRpb25QYXRo
KSkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlBh
dGgoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEp
IC0gKDMpXS5leHByZXNzaW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6TG9j
YXRpb25QYXRoPigoeXl2c3BbKDMpIC0gKDMpXS5sb2NhdGlvblBhdGgpKSk7CiAgICAgO30KICAg
ICBicmVhazsKIAogICBjYXNlIDQ5OgotI2xpbmUgNDE5ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1t
YXIueSIKKyNsaW5lIDQxNiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPj4+IHByZWRpY2F0ZUxp
c3QoKHl5dnNwWygyKSAtICgyKV0uZXhwcmVzc2lvblZlY3RvcikpOwotICAgICAgICAoeXl2YWwu
ZXhwcmVzc2lvbikgPSBuZXcgRmlsdGVyKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2
c3BbKDEpIC0gKDIpXS5leHByZXNzaW9uKSksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKKyAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBh
dGg6OkV4cHJlc3Npb24+Pj4gcHJlZGljYXRlTGlzdCgoeXl2c3BbKDIpIC0gKDIpXS5leHByZXNz
aW9uVmVjdG9yKSk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBXZWJDb3JlOjpY
UGF0aDo6RmlsdGVyKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4o
KHl5dnNwWygxKSAtICgyKV0uZXhwcmVzc2lvbikpLCBXVEZNb3ZlKCpwcmVkaWNhdGVMaXN0KSk7
CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDUxOgotI2xpbmUgNDI5ICJXZWJDb3JlL3ht
bC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDQyNiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAg
ICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgTG9naWNhbE9wKExvZ2ljYWxPcDo6T1BfT3Is
IHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMpXS5leHByZXNzaW9u
KSksIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNz
aW9uKSkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6
OkxvZ2ljYWxPcChXZWJDb3JlOjpYUGF0aDo6TG9naWNhbE9wOjpPUF9Pciwgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMpXS5leHByZXNz
aW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNw
WygzKSAtICgzKV0uZXhwcmVzc2lvbikpKTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2Ug
NTM6Ci0jbGluZSA0MzggIldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgNDM1ICJY
UGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBM
b2dpY2FsT3AoTG9naWNhbE9wOjpPUF9BbmQsIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigo
eXl2c3BbKDEpIC0gKDMpXS5leHByZXNzaW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9u
PigoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNzaW9uKSkpOworICAgICAgICAoeXl2YWwuZXhwcmVz
c2lvbikgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OkxvZ2ljYWxPcChXZWJDb3JlOjpYUGF0aDo6TG9n
aWNhbE9wOjpPUF9BbmQsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lv
bj4oKHl5dnNwWygxKSAtICgzKV0uZXhwcmVzc2lvbikpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5eXZzcFsoMykgLSAoMyldLmV4cHJlc3Npb24pKSk7CiAg
ICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDU1OgotI2xpbmUgNDQ3ICJXZWJDb3JlL3htbC9Y
UGF0aEdyYW1tYXIueSIKKyNsaW5lIDQ0NCAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAgICAg
ICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgRXFUZXN0T3AoKHl5dnNwWygyKSAtICgzKV0uZXF1
YWxpdHlUZXN0T3Bjb2RlKSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMSkg
LSAoMyldLmV4cHJlc3Npb24pKSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFso
MykgLSAoMyldLmV4cHJlc3Npb24pKSk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5l
dyBXZWJDb3JlOjpYUGF0aDo6RXFUZXN0T3AoKHl5dnNwWygyKSAtICgzKV0uZXF1YWxpdHlUZXN0
T3Bjb2RlKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigoeXl2
c3BbKDEpIC0gKDMpXS5leHByZXNzaW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0
aDo6RXhwcmVzc2lvbj4oKHl5dnNwWygzKSAtICgzKV0uZXhwcmVzc2lvbikpKTsKICAgICA7fQog
ICAgIGJyZWFrOwogCiAgIGNhc2UgNTc6Ci0jbGluZSA0NTYgIldlYkNvcmUveG1sL1hQYXRoR3Jh
bW1hci55IgorI2xpbmUgNDUzICJYUGF0aEdyYW1tYXIueSIKICAgICB7Ci0gICAgICAgICh5eXZh
bC5leHByZXNzaW9uKSA9IG5ldyBFcVRlc3RPcCgoeXl2c3BbKDIpIC0gKDMpXS5lcXVhbGl0eVRl
c3RPcGNvZGUpLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgzKV0u
ZXhwcmVzc2lvbikpLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygzKSAtICgz
KV0uZXhwcmVzc2lvbikpKTsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb24pID0gbmV3IFdlYkNv
cmU6OlhQYXRoOjpFcVRlc3RPcCgoeXl2c3BbKDIpIC0gKDMpXS5lcXVhbGl0eVRlc3RPcGNvZGUp
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5eXZzcFsoMSkg
LSAoMyldLmV4cHJlc3Npb24pKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHBy
ZXNzaW9uPigoeXl2c3BbKDMpIC0gKDMpXS5leHByZXNzaW9uKSkpOwogICAgIDt9CiAgICAgYnJl
YWs7CiAKICAgY2FzZSA1OToKLSNsaW5lIDQ2NSAiV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnki
CisjbGluZSA0NjIgIlhQYXRoR3JhbW1hci55IgogICAgIHsKLSAgICAgICAgKHl5dmFsLmV4cHJl
c3Npb24pID0gbmV3IE51bWVyaWNPcChOdW1lcmljT3A6Ok9QX0FkZCwgc3RkOjp1bmlxdWVfcHRy
PEV4cHJlc3Npb24+KCh5eXZzcFsoMSkgLSAoMyldLmV4cHJlc3Npb24pKSwgc3RkOjp1bmlxdWVf
cHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMykgLSAoMyldLmV4cHJlc3Npb24pKSk7CisgICAgICAg
ICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TnVtZXJpY09wKFdlYkNv
cmU6OlhQYXRoOjpOdW1lcmljT3A6Ok9QX0FkZCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQ
YXRoOjpFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMpXS5leHByZXNzaW9uKSksIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNwWygzKSAtICgzKV0uZXhw
cmVzc2lvbikpKTsKICAgICA7fQogICAgIGJyZWFrOwogCiAgIGNhc2UgNjA6Ci0jbGluZSA0NzAg
IldlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55IgorI2xpbmUgNDY3ICJYUGF0aEdyYW1tYXIueSIK
ICAgICB7Ci0gICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBOdW1lcmljT3AoTnVtZXJp
Y09wOjpPUF9TdWIsIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDEpIC0gKDMp
XS5leHByZXNzaW9uKSksIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigoeXl2c3BbKDMpIC0g
KDMpXS5leHByZXNzaW9uKSkpOworICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgV2Vi
Q29yZTo6WFBhdGg6Ok51bWVyaWNPcChXZWJDb3JlOjpYUGF0aDo6TnVtZXJpY09wOjpPUF9TdWIs
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAt
ICgzKV0uZXhwcmVzc2lvbikpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJl
c3Npb24+KCh5eXZzcFsoMykgLSAoMyldLmV4cHJlc3Npb24pKSk7CiAgICAgO30KICAgICBicmVh
azsKIAogICBjYXNlIDYyOgotI2xpbmUgNDc5ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIK
KyNsaW5lIDQ3NiAiWFBhdGhHcmFtbWFyLnkiCiAgICAgewotICAgICAgICAoeXl2YWwuZXhwcmVz
c2lvbikgPSBuZXcgTnVtZXJpY09wKCh5eXZzcFsoMikgLSAoMyldLm51bWVyaWNPcGNvZGUpLCBz
dGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgzKV0uZXhwcmVzc2lvbikp
LCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oKHl5dnNwWygzKSAtICgzKV0uZXhwcmVzc2lv
bikpKTsKKyAgICAgICAgKHl5dmFsLmV4cHJlc3Npb24pID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpO
dW1lcmljT3AoKHl5dnNwWygyKSAtICgzKV0ubnVtZXJpY09wY29kZSksIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oKHl5dnNwWygxKSAtICgzKV0uZXhwcmVzc2lv
bikpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCh5eXZzcFso
MykgLSAoMyldLmV4cHJlc3Npb24pKSk7CiAgICAgO30KICAgICBicmVhazsKIAogICBjYXNlIDY0
OgotI2xpbmUgNDg4ICJXZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIueSIKKyNsaW5lIDQ4NSAiWFBh
dGhHcmFtbWFyLnkiCiAgICAgewotICAgICAgICAoeXl2YWwuZXhwcmVzc2lvbikgPSBuZXcgTmVn
YXRpdmUoc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCh5eXZzcFsoMikgLSAoMildLmV4cHJl
c3Npb24pKSk7CisgICAgICAgICh5eXZhbC5leHByZXNzaW9uKSA9IG5ldyBXZWJDb3JlOjpYUGF0
aDo6TmVnYXRpdmUoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigo
eXl2c3BbKDIpIC0gKDIpXS5leHByZXNzaW9uKSkpOwogICAgIDt9CiAgICAgYnJlYWs7CiAKIAog
LyogTGluZSAxMjY3IG9mIHlhY2MuYy4gICovCi0jbGluZSAyMDQ5ICIuL1hQYXRoR3JhbW1hci5j
cHAiCisjbGluZSAyMDQ2ICJYUGF0aEdyYW1tYXIuY3BwIgogICAgICAgZGVmYXVsdDogYnJlYWs7
CiAgICAgfQogICBZWV9TWU1CT0xfUFJJTlQgKCItPiAkJCA9IiwgeXlyMVt5eW5dLCAmeXl2YWws
ICZ5eWxvYyk7CkBAIC0yMDg3LDM1ICsyMDg1LDM1IEBAIHl5ZXJybGFiOgogICAgICAgeXllcnJv
ciAocGFyc2VyLCBZWV8oInN5bnRheCBlcnJvciIpKTsKICNlbHNlCiAgICAgICB7Ci0gICAgWVlT
SVpFX1QgeXlzaXplID0geXlzeW50YXhfZXJyb3IgKDAsIHl5c3RhdGUsIHl5Y2hhcik7Ci0gICAg
aWYgKHl5bXNnX2FsbG9jIDwgeXlzaXplICYmIHl5bXNnX2FsbG9jIDwgWVlTVEFDS19BTExPQ19N
QVhJTVVNKQotICAgICAgewotICAgICAgICBZWVNJWkVfVCB5eWFsbG9jID0gMiAqIHl5c2l6ZTsK
LSAgICAgICAgaWYgKCEgKHl5c2l6ZSA8PSB5eWFsbG9jICYmIHl5YWxsb2MgPD0gWVlTVEFDS19B
TExPQ19NQVhJTVVNKSkKLSAgICAgICAgICB5eWFsbG9jID0gWVlTVEFDS19BTExPQ19NQVhJTVVN
OwotICAgICAgICBpZiAoeXltc2cgIT0geXltc2didWYpCi0gICAgICAgICAgWVlTVEFDS19GUkVF
ICh5eW1zZyk7Ci0gICAgICAgIHl5bXNnID0gKGNoYXIgKikgWVlTVEFDS19BTExPQyAoeXlhbGxv
Yyk7Ci0gICAgICAgIGlmICh5eW1zZykKLSAgICAgICAgICB5eW1zZ19hbGxvYyA9IHl5YWxsb2M7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICB7Ci0gICAgICAgIHl5bXNnID0geXltc2didWY7Ci0g
ICAgICAgIHl5bXNnX2FsbG9jID0gc2l6ZW9mIHl5bXNnYnVmOwotICAgICAgICAgIH0KLSAgICAg
IH0KLQotICAgIGlmICgwIDwgeXlzaXplICYmIHl5c2l6ZSA8PSB5eW1zZ19hbGxvYykKLSAgICAg
IHsKLSAgICAgICAgKHZvaWQpIHl5c3ludGF4X2Vycm9yICh5eW1zZywgeXlzdGF0ZSwgeXljaGFy
KTsKLSAgICAgICAgeXllcnJvciAocGFyc2VyLCB5eW1zZyk7Ci0gICAgICB9Ci0gICAgZWxzZQot
ICAgICAgewotICAgICAgICB5eWVycm9yIChwYXJzZXIsIFlZXygic3ludGF4IGVycm9yIikpOwot
ICAgICAgICBpZiAoeXlzaXplICE9IDApCi0gICAgICAgICAgZ290byB5eWV4aGF1c3RlZGxhYjsK
LSAgICAgIH0KKwlZWVNJWkVfVCB5eXNpemUgPSB5eXN5bnRheF9lcnJvciAoMCwgeXlzdGF0ZSwg
eXljaGFyKTsKKwlpZiAoeXltc2dfYWxsb2MgPCB5eXNpemUgJiYgeXltc2dfYWxsb2MgPCBZWVNU
QUNLX0FMTE9DX01BWElNVU0pCisJICB7CisJICAgIFlZU0laRV9UIHl5YWxsb2MgPSAyICogeXlz
aXplOworCSAgICBpZiAoISAoeXlzaXplIDw9IHl5YWxsb2MgJiYgeXlhbGxvYyA8PSBZWVNUQUNL
X0FMTE9DX01BWElNVU0pKQorCSAgICAgIHl5YWxsb2MgPSBZWVNUQUNLX0FMTE9DX01BWElNVU07
CisJICAgIGlmICh5eW1zZyAhPSB5eW1zZ2J1ZikKKwkgICAgICBZWVNUQUNLX0ZSRUUgKHl5bXNn
KTsKKwkgICAgeXltc2cgPSAoY2hhciAqKSBZWVNUQUNLX0FMTE9DICh5eWFsbG9jKTsKKwkgICAg
aWYgKHl5bXNnKQorCSAgICAgIHl5bXNnX2FsbG9jID0geXlhbGxvYzsKKwkgICAgZWxzZQorCSAg
ICAgIHsKKwkJeXltc2cgPSB5eW1zZ2J1ZjsKKwkJeXltc2dfYWxsb2MgPSBzaXplb2YgeXltc2di
dWY7CisJICAgICAgfQorCSAgfQorCisJaWYgKDAgPCB5eXNpemUgJiYgeXlzaXplIDw9IHl5bXNn
X2FsbG9jKQorCSAgeworCSAgICAodm9pZCkgeXlzeW50YXhfZXJyb3IgKHl5bXNnLCB5eXN0YXRl
LCB5eWNoYXIpOworCSAgICB5eWVycm9yIChwYXJzZXIsIHl5bXNnKTsKKwkgIH0KKwllbHNlCisJ
ICB7CisJICAgIHl5ZXJyb3IgKHBhcnNlciwgWVlfKCJzeW50YXggZXJyb3IiKSk7CisJICAgIGlm
ICh5eXNpemUgIT0gMCkKKwkgICAgICBnb3RvIHl5ZXhoYXVzdGVkbGFiOworCSAgfQogICAgICAg
fQogI2VuZGlmCiAgICAgfQpAQCAtMjEyNSwyMCArMjEyMywyMCBAQCB5eWVycmxhYjoKICAgaWYg
KHl5ZXJyc3RhdHVzID09IDMpCiAgICAgewogICAgICAgLyogSWYganVzdCB0cmllZCBhbmQgZmFp
bGVkIHRvIHJldXNlIGxvb2stYWhlYWQgdG9rZW4gYWZ0ZXIgYW4KLSAgICAgZXJyb3IsIGRpc2Nh
cmQgaXQuICAqLworCSBlcnJvciwgZGlzY2FyZCBpdC4gICovCiAKICAgICAgIGlmICh5eWNoYXIg
PD0gWVlFT0YpCi0gICAgewotICAgICAgLyogUmV0dXJuIGZhaWx1cmUgaWYgYXQgZW5kIG9mIGlu
cHV0LiAgKi8KLSAgICAgIGlmICh5eWNoYXIgPT0gWVlFT0YpCi0gICAgICAgIFlZQUJPUlQ7Ci0g
ICAgfQorCXsKKwkgIC8qIFJldHVybiBmYWlsdXJlIGlmIGF0IGVuZCBvZiBpbnB1dC4gICovCisJ
ICBpZiAoeXljaGFyID09IFlZRU9GKQorCSAgICBZWUFCT1JUOworCX0KICAgICAgIGVsc2UKLSAg
ICB7Ci0gICAgICB5eWRlc3RydWN0ICgiRXJyb3I6IGRpc2NhcmRpbmciLAotICAgICAgICAgICAg
ICB5eXRva2VuLCAmeXlsdmFsLCBwYXJzZXIpOwotICAgICAgeXljaGFyID0gWVlFTVBUWTsKLSAg
ICB9CisJeworCSAgeXlkZXN0cnVjdCAoIkVycm9yOiBkaXNjYXJkaW5nIiwKKwkJICAgICAgeXl0
b2tlbiwgJnl5bHZhbCwgcGFyc2VyKTsKKwkgIHl5Y2hhciA9IFlZRU1QVFk7CisJfQogICAgIH0K
IAogICAvKiBFbHNlIHdpbGwgdHJ5IHRvIHJldXNlIGxvb2stYWhlYWQgdG9rZW4gYWZ0ZXIgc2hp
ZnRpbmcgdGhlIGVycm9yCkBAIC0yMTcyLDI5ICsyMTcwLDI5IEBAIHl5ZXJyb3JsYWI6CiB8IHl5
ZXJybGFiMSAtLSBjb21tb24gY29kZSBmb3IgYm90aCBzeW50YXggZXJyb3IgYW5kIFlZRVJST1Iu
ICB8CiBgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSovCiB5eWVycmxhYjE6Ci0gIHl5ZXJyc3RhdHVzID0gMzsgICAgLyogRWFjaCBy
ZWFsIHRva2VuIHNoaWZ0ZWQgZGVjcmVtZW50cyB0aGlzLiAgKi8KKyAgeXllcnJzdGF0dXMgPSAz
OwkvKiBFYWNoIHJlYWwgdG9rZW4gc2hpZnRlZCBkZWNyZW1lbnRzIHRoaXMuICAqLwogCiAgIGZv
ciAoOzspCiAgICAgewogICAgICAgeXluID0geXlwYWN0W3l5c3RhdGVdOwogICAgICAgaWYgKHl5
biAhPSBZWVBBQ1RfTklORikKLSAgICB7Ci0gICAgICB5eW4gKz0gWVlURVJST1I7Ci0gICAgICBp
ZiAoMCA8PSB5eW4gJiYgeXluIDw9IFlZTEFTVCAmJiB5eWNoZWNrW3l5bl0gPT0gWVlURVJST1Ip
Ci0gICAgICAgIHsKLSAgICAgICAgICB5eW4gPSB5eXRhYmxlW3l5bl07Ci0gICAgICAgICAgaWYg
KDAgPCB5eW4pCi0gICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQorCXsKKwkgIHl5biAr
PSBZWVRFUlJPUjsKKwkgIGlmICgwIDw9IHl5biAmJiB5eW4gPD0gWVlMQVNUICYmIHl5Y2hlY2tb
eXluXSA9PSBZWVRFUlJPUikKKwkgICAgeworCSAgICAgIHl5biA9IHl5dGFibGVbeXluXTsKKwkg
ICAgICBpZiAoMCA8IHl5bikKKwkJYnJlYWs7CisJICAgIH0KKwl9CiAKICAgICAgIC8qIFBvcCB0
aGUgY3VycmVudCBzdGF0ZSBiZWNhdXNlIGl0IGNhbm5vdCBoYW5kbGUgdGhlIGVycm9yIHRva2Vu
LiAgKi8KICAgICAgIGlmICh5eXNzcCA9PSB5eXNzKQotICAgIFlZQUJPUlQ7CisJWVlBQk9SVDsK
IAogCiAgICAgICB5eWRlc3RydWN0ICgiRXJyb3I6IHBvcHBpbmciLAotICAgICAgICAgIHl5c3Rv
c1t5eXN0YXRlXSwgeXl2c3AsIHBhcnNlcik7CisJCSAgeXlzdG9zW3l5c3RhdGVdLCB5eXZzcCwg
cGFyc2VyKTsKICAgICAgIFlZUE9QU1RBQ0sgKDEpOwogICAgICAgeXlzdGF0ZSA9ICp5eXNzcDsK
ICAgICAgIFlZX1NUQUNLX1BSSU5UICh5eXNzLCB5eXNzcCk7CkBAIC0yMjQwLDcgKzIyMzgsNyBA
QCB5eWV4aGF1c3RlZGxhYjoKIHl5cmV0dXJuOgogICBpZiAoeXljaGFyICE9IFlZRU9GICYmIHl5
Y2hhciAhPSBZWUVNUFRZKQogICAgICB5eWRlc3RydWN0ICgiQ2xlYW51cDogZGlzY2FyZGluZyBs
b29rYWhlYWQiLAotICAgICAgICAgeXl0b2tlbiwgJnl5bHZhbCwgcGFyc2VyKTsKKwkJIHl5dG9r
ZW4sICZ5eWx2YWwsIHBhcnNlcik7CiAgIC8qIERvIG5vdCByZWNsYWltIHRoZSBzeW1ib2xzIG9m
IHRoZSBydWxlIHdoaWNoIGFjdGlvbiB0cmlnZ2VyZWQKICAgICAgdGhpcyBZWUFCT1JUIG9yIFlZ
QUNDRVBULiAgKi8KICAgWVlQT1BTVEFDSyAoeXlsZW4pOwpAQCAtMjI0OCw3ICsyMjQ2LDcgQEAg
eXlyZXR1cm46CiAgIHdoaWxlICh5eXNzcCAhPSB5eXNzKQogICAgIHsKICAgICAgIHl5ZGVzdHJ1
Y3QgKCJDbGVhbnVwOiBwb3BwaW5nIiwKLSAgICAgICAgICB5eXN0b3NbKnl5c3NwXSwgeXl2c3As
IHBhcnNlcik7CisJCSAgeXlzdG9zWyp5eXNzcF0sIHl5dnNwLCBwYXJzZXIpOwogICAgICAgWVlQ
T1BTVEFDSyAoMSk7CiAgICAgfQogI2lmbmRlZiB5eW92ZXJmbG93CkBAIC0yMjY0LDYgKzIyNjIs
NiBAQCB5eXJldHVybjoKIH0KIAogCi0jbGluZSA0OTMgIldlYkNvcmUveG1sL1hQYXRoR3JhbW1h
ci55IgorI2xpbmUgNDkwICJYUGF0aEdyYW1tYXIueSIKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLnkgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFt
bWFyLnkKaW5kZXggNzc2OThmYTc2NGY3YTE1YTQ1YmM1YzBlNWQyZDY3NzUxYjFiZTcwZi4uYjBl
OGM3MjgwY2MzM2IyMWU3NTFjYzM0NjI3OTZjMGJjYWIyNzQwYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUveG1sL1hQYXRoR3JhbW1hci55CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0
aEdyYW1tYXIueQpAQCAtNTIsNyArNTIsNyBAQAogCiAlcHVyZS1wYXJzZXIKICVsZXgtcGFyYW0g
eyBwYXJzZXIgfQotJXBhcnNlLXBhcmFtIHsgUGFyc2VyJiBwYXJzZXIgfQorJXBhcnNlLXBhcmFt
IHsgV2ViQ29yZTo6WFBhdGg6OlBhcnNlciYgcGFyc2VyIH0KIAogJXVuaW9uIHsgCiAgICAgV2Vi
Q29yZTo6WFBhdGg6Ok51bWVyaWNPcDo6T3Bjb2RlIG51bWVyaWNPcGNvZGU7CkBAIC0xMDAsOCAr
MTAwLDggQEAKIAogJXsKIAotc3RhdGljIGludCB4cGF0aHl5bGV4KFlZU1RZUEUqIHl5bHZhbCwg
UGFyc2VyJiBwYXJzZXIpIHsgcmV0dXJuIHBhcnNlci5sZXgoKnl5bHZhbCk7IH0KLXN0YXRpYyB2
b2lkIHhwYXRoeXllcnJvcihQYXJzZXImLCBjb25zdCBjaGFyKikgeyB9CitzdGF0aWMgaW50IHhw
YXRoeXlsZXgoWVlTVFlQRSogeXlsdmFsLCBXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiBwYXJzZXIp
IHsgcmV0dXJuIHBhcnNlci5sZXgoKnl5bHZhbCk7IH0KK3N0YXRpYyB2b2lkIHhwYXRoeXllcnJv
cihXZWJDb3JlOjpYUGF0aDo6UGFyc2VyJiwgY29uc3QgY2hhciopIHsgfQogCiAlfQogCkBAIC0x
MTAsNyArMTEwLDcgQEAgc3RhdGljIHZvaWQgeHBhdGh5eWVycm9yKFBhcnNlciYsIGNvbnN0IGNo
YXIqKSB7IH0KIFRvcDoKICAgICBFeHByCiAgICAgewotICAgICAgICBwYXJzZXIuc2V0UGFyc2VS
ZXN1bHQoc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQxKSk7CisgICAgICAgIHBhcnNlci5z
ZXRQYXJzZVJlc3VsdChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+
KCQxKSk7CiAgICAgfQogICAgIDsKIApAQCAtMTMxLDcgKzEzMSw3IEBAIExvY2F0aW9uUGF0aDoK
IEFic29sdXRlTG9jYXRpb25QYXRoOgogICAgICcvJwogICAgIHsKLSAgICAgICAgJCQgPSBuZXcg
TG9jYXRpb25QYXRoOworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TG9jYXRpb25Q
YXRoOwogICAgIH0KICAgICB8CiAgICAgJy8nIFJlbGF0aXZlTG9jYXRpb25QYXRoCkBAIC0xNDIs
NDYgKzE0Miw0NiBAQCBBYnNvbHV0ZUxvY2F0aW9uUGF0aDoKICAgICBEZXNjZW5kYW50T3JTZWxm
IFJlbGF0aXZlTG9jYXRpb25QYXRoCiAgICAgewogICAgICAgICAkJCA9ICQyOwotICAgICAgICAk
JC0+cHJlcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFN0ZXA+KCQxKSk7CisgICAgICAgICQkLT5w
cmVwZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA+KCQxKSk7CiAg
ICAgfQogICAgIDsKIAogUmVsYXRpdmVMb2NhdGlvblBhdGg6CiAgICAgU3RlcAogICAgIHsKLSAg
ICAgICAgJCQgPSBuZXcgTG9jYXRpb25QYXRoOwotICAgICAgICAkJC0+YXBwZW5kU3RlcChzdGQ6
OnVuaXF1ZV9wdHI8U3RlcD4oJDEpKTsKKyAgICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6
OkxvY2F0aW9uUGF0aDsKKyAgICAgICAgJCQtPmFwcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OlhQYXRoOjpTdGVwPigkMSkpOwogICAgIH0KICAgICB8CiAgICAgUmVsYXRpdmVMb2Nh
dGlvblBhdGggJy8nIFN0ZXAKICAgICB7CiAgICAgICAgICQkID0gJDE7Ci0gICAgICAgICQkLT5h
cHBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0cjxTdGVwPigkMykpOworICAgICAgICAkJC0+YXBwZW5k
U3RlcChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA+KCQzKSk7CiAgICAgfQog
ICAgIHwKICAgICBSZWxhdGl2ZUxvY2F0aW9uUGF0aCBEZXNjZW5kYW50T3JTZWxmIFN0ZXAKICAg
ICB7CiAgICAgICAgICQkID0gJDE7Ci0gICAgICAgICQkLT5hcHBlbmRTdGVwKHN0ZDo6dW5pcXVl
X3B0cjxTdGVwPigkMikpOwotICAgICAgICAkJC0+YXBwZW5kU3RlcChzdGQ6OnVuaXF1ZV9wdHI8
U3RlcD4oJDMpKTsKKyAgICAgICAgJCQtPmFwcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlhQYXRoOjpTdGVwPigkMikpOworICAgICAgICAkJC0+YXBwZW5kU3RlcChzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA+KCQzKSk7CiAgICAgfQogICAgIDsKIAogU3RlcDoK
ICAgICBOb2RlVGVzdCBPcHRpb25hbFByZWRpY2F0ZUxpc3QKICAgICB7Ci0gICAgICAgIHN0ZDo6
dW5pcXVlX3B0cjxTdGVwOjpOb2RlVGVzdD4gbm9kZVRlc3QoJDEpOwotICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPj4+IHByZWRpY2F0ZUxp
c3QoJDIpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5v
ZGVUZXN0PiBub2RlVGVzdCgkMSk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPj4+IHByZWRpY2F0ZUxpc3Qo
JDIpOwogICAgICAgICBpZiAocHJlZGljYXRlTGlzdCkKLSAgICAgICAgICAgICQkID0gbmV3IFN0
ZXAoU3RlcDo6Q2hpbGRBeGlzLCBXVEZNb3ZlKCpub2RlVGVzdCksIFdURk1vdmUoKnByZWRpY2F0
ZUxpc3QpKTsKKyAgICAgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdlYkNv
cmU6OlhQYXRoOjpTdGVwOjpDaGlsZEF4aXMsIFdURk1vdmUoKm5vZGVUZXN0KSwgV1RGTW92ZSgq
cHJlZGljYXRlTGlzdCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICAkJCA9IG5ldyBTdGVw
KFN0ZXA6OkNoaWxkQXhpcywgV1RGTW92ZSgqbm9kZVRlc3QpKTsKKyAgICAgICAgICAgICQkID0g
bmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpDaGlsZEF4aXMs
IFdURk1vdmUoKm5vZGVUZXN0KSk7CiAgICAgfQogICAgIHwKICAgICBOQU1FVEVTVCBPcHRpb25h
bFByZWRpY2F0ZUxpc3QKICAgICB7CiAgICAgICAgIFN0cmluZyBuYW1ldGVzdCA9IGFkb3B0UmVm
KCQxKTsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhw
cmVzc2lvbj4+PiBwcmVkaWNhdGVMaXN0KCQyKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZl
Y3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+Pj4gcHJlZGlj
YXRlTGlzdCgkMik7CiAKICAgICAgICAgU3RyaW5nIGxvY2FsTmFtZTsKICAgICAgICAgU3RyaW5n
IG5hbWVzcGFjZVVSSTsKQEAgLTE5MSwyNiArMTkxLDI2IEBAIFN0ZXA6CiAgICAgICAgIH0KIAog
ICAgICAgICBpZiAocHJlZGljYXRlTGlzdCkKLSAgICAgICAgICAgICQkID0gbmV3IFN0ZXAoU3Rl
cDo6Q2hpbGRBeGlzLCBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6TmFtZVRlc3QsIGxv
Y2FsTmFtZSwgbmFtZXNwYWNlVVJJKSwgV1RGTW92ZSgqcHJlZGljYXRlTGlzdCkpOworICAgICAg
ICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0ZXAoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6
OkNoaWxkQXhpcywgV2ViQ29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0KFdlYkNvcmU6OlhQYXRo
OjpTdGVwOjpOb2RlVGVzdDo6TmFtZVRlc3QsIGxvY2FsTmFtZSwgbmFtZXNwYWNlVVJJKSwgV1RG
TW92ZSgqcHJlZGljYXRlTGlzdCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICAkJCA9IG5l
dyBTdGVwKFN0ZXA6OkNoaWxkQXhpcywgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6Ok5h
bWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSkpOworICAgICAgICAgICAgJCQgPSBuZXcg
V2ViQ29yZTo6WFBhdGg6OlN0ZXAoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6OkNoaWxkQXhpcywgV2Vi
Q29yZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0KFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVz
dDo6TmFtZVRlc3QsIGxvY2FsTmFtZSwgbmFtZXNwYWNlVVJJKSk7CiAgICAgfQogICAgIHwKICAg
ICBBeGlzU3BlY2lmaWVyIE5vZGVUZXN0IE9wdGlvbmFsUHJlZGljYXRlTGlzdAogICAgIHsKLSAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFN0ZXA6Ok5vZGVUZXN0PiBub2RlVGVzdCgkMik7Ci0gICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+Pj4g
cHJlZGljYXRlTGlzdCgkMyk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0
aDo6U3RlcDo6Tm9kZVRlc3Q+IG5vZGVUZXN0KCQyKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+Pj4gcHJl
ZGljYXRlTGlzdCgkMyk7CiAKICAgICAgICAgaWYgKHByZWRpY2F0ZUxpc3QpCi0gICAgICAgICAg
ICAkJCA9IG5ldyBTdGVwKCQxLCBXVEZNb3ZlKCpub2RlVGVzdCksIFdURk1vdmUoKnByZWRpY2F0
ZUxpc3QpKTsKKyAgICAgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKCQxLCBX
VEZNb3ZlKCpub2RlVGVzdCksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgJCQgPSBuZXcgU3RlcCgkMSwgV1RGTW92ZSgqbm9kZVRlc3QpKTsKKyAg
ICAgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKCQxLCBXVEZNb3ZlKCpub2Rl
VGVzdCkpOwogICAgIH0KICAgICB8CiAgICAgQXhpc1NwZWNpZmllciBOQU1FVEVTVCBPcHRpb25h
bFByZWRpY2F0ZUxpc3QKICAgICB7CiAgICAgICAgIFN0cmluZyBuYW1ldGVzdCA9IGFkb3B0UmVm
KCQyKTsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhw
cmVzc2lvbj4+PiBwcmVkaWNhdGVMaXN0KCQzKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZl
Y3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+Pj4gcHJlZGlj
YXRlTGlzdCgkMyk7CiAKICAgICAgICAgU3RyaW5nIGxvY2FsTmFtZTsKICAgICAgICAgU3RyaW5n
IG5hbWVzcGFjZVVSSTsKQEAgLTIyMCw5ICsyMjAsOSBAQCBTdGVwOgogICAgICAgICB9CiAKICAg
ICAgICAgaWYgKHByZWRpY2F0ZUxpc3QpCi0gICAgICAgICAgICAkJCA9IG5ldyBTdGVwKCQxLCBT
dGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6TmFtZVRlc3QsIGxvY2FsTmFtZSwgbmFtZXNw
YWNlVVJJKSwgV1RGTW92ZSgqcHJlZGljYXRlTGlzdCkpOworICAgICAgICAgICAgJCQgPSBuZXcg
V2ViQ29yZTo6WFBhdGg6OlN0ZXAoJDEsIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChX
ZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVz
cGFjZVVSSSksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgJCQgPSBuZXcgU3RlcCgkMSwgU3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6Ok5h
bWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSkpOworICAgICAgICAgICAgJCQgPSBuZXcg
V2ViQ29yZTo6WFBhdGg6OlN0ZXAoJDEsIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChX
ZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6Ok5hbWVUZXN0LCBsb2NhbE5hbWUsIG5hbWVz
cGFjZVVSSSkpOwogICAgIH0KICAgICB8CiAgICAgQWJicmV2aWF0ZWRTdGVwCkBAIC0yMzMsMzUg
KzIzMywzNSBAQCBBeGlzU3BlY2lmaWVyOgogICAgIHwKICAgICAnQCcKICAgICB7Ci0gICAgICAg
ICQkID0gU3RlcDo6QXR0cmlidXRlQXhpczsKKyAgICAgICAgJCQgPSBXZWJDb3JlOjpYUGF0aDo6
U3RlcDo6QXR0cmlidXRlQXhpczsKICAgICB9CiAgICAgOwogCiBOb2RlVGVzdDoKICAgICBOT0RF
ICcoJyAnKScKICAgICB7Ci0gICAgICAgICQkID0gbmV3IFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5v
ZGVUZXN0OjpBbnlOb2RlVGVzdCk7CisgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpT
dGVwOjpOb2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6OkFueU5vZGVUZXN0
KTsKICAgICB9CiAgICAgfAogICAgIFRFWFRfICcoJyAnKScKICAgICB7Ci0gICAgICAgICQkID0g
bmV3IFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpUZXh0Tm9kZVRlc3QpOworICAgICAg
ICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBhdGg6
OlN0ZXA6Ok5vZGVUZXN0OjpUZXh0Tm9kZVRlc3QpOwogICAgIH0KICAgICB8CiAgICAgQ09NTUVO
VCAnKCcgJyknCiAgICAgewotICAgICAgICAkJCA9IG5ldyBTdGVwOjpOb2RlVGVzdChTdGVwOjpO
b2RlVGVzdDo6Q29tbWVudE5vZGVUZXN0KTsKKyAgICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBh
dGg6OlN0ZXA6Ok5vZGVUZXN0KFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdDo6Q29tbWVu
dE5vZGVUZXN0KTsKICAgICB9CiAgICAgfAogICAgIFBJICcoJyAnKScKICAgICB7Ci0gICAgICAg
ICQkID0gbmV3IFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb25Ob2RlVGVzdCk7CisgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpO
b2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6OlByb2Nlc3NpbmdJbnN0cnVj
dGlvbk5vZGVUZXN0KTsKICAgICB9CiAgICAgfAogICAgIFBJICcoJyBMSVRFUkFMICcpJwogICAg
IHsKICAgICAgICAgU3RyaW5nIGxpdGVyYWwgPSBhZG9wdFJlZigkMyk7Ci0gICAgICAgICQkID0g
bmV3IFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25O
b2RlVGVzdCwgbGl0ZXJhbC5zdHJpcFdoaXRlU3BhY2UoKSk7CisgICAgICAgICQkID0gbmV3IFdl
YkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRl
c3Q6OlByb2Nlc3NpbmdJbnN0cnVjdGlvbk5vZGVUZXN0LCBsaXRlcmFsLnN0cmlwV2hpdGVTcGFj
ZSgpKTsKICAgICB9CiAgICAgOwogCkBAIC0yNzcsMTQgKzI3NywxNCBAQCBPcHRpb25hbFByZWRp
Y2F0ZUxpc3Q6CiBQcmVkaWNhdGVMaXN0OgogICAgIFByZWRpY2F0ZQogICAgIHsKLSAgICAgICAg
JCQgPSBuZXcgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPj47Ci0gICAgICAgICQk
LT5hcHBlbmQoc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQxKSk7CisgICAgICAgICQkID0g
bmV3IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+PjsK
KyAgICAgICAgJCQtPmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJl
c3Npb24+KCQxKSk7CiAgICAgfQogICAgIHwKICAgICBQcmVkaWNhdGVMaXN0IFByZWRpY2F0ZQog
ICAgIHsKICAgICAgICAgJCQgPSAkMTsKLSAgICAgICAgJCQtPmFwcGVuZChzdGQ6OnVuaXF1ZV9w
dHI8RXhwcmVzc2lvbj4oJDIpKTsKKyAgICAgICAgJCQtPmFwcGVuZChzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQyKSk7CiAgICAgfQogICAgIDsKIApAQCAtMjk4
LDE5ICsyOTgsMTkgQEAgUHJlZGljYXRlOgogRGVzY2VuZGFudE9yU2VsZjoKICAgICBTTEFTSFNM
QVNICiAgICAgewotICAgICAgICAkJCA9IG5ldyBTdGVwKFN0ZXA6OkRlc2NlbmRhbnRPclNlbGZB
eGlzLCBTdGVwOjpOb2RlVGVzdChTdGVwOjpOb2RlVGVzdDo6QW55Tm9kZVRlc3QpKTsKKyAgICAg
ICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlN0ZXAoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6OkRl
c2NlbmRhbnRPclNlbGZBeGlzLCBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29y
ZTo6WFBhdGg6OlN0ZXA6Ok5vZGVUZXN0OjpBbnlOb2RlVGVzdCkpOwogICAgIH0KICAgICA7CiAK
IEFiYnJldmlhdGVkU3RlcDoKICAgICAnLicKICAgICB7Ci0gICAgICAgICQkID0gbmV3IFN0ZXAo
U3RlcDo6U2VsZkF4aXMsIFN0ZXA6Ok5vZGVUZXN0KFN0ZXA6Ok5vZGVUZXN0OjpBbnlOb2RlVGVz
dCkpOworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6U3RlcChXZWJDb3JlOjpYUGF0
aDo6U3RlcDo6U2VsZkF4aXMsIFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpOb2RlVGVzdChXZWJDb3Jl
OjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3Q6OkFueU5vZGVUZXN0KSk7CiAgICAgfQogICAgIHwKICAg
ICBET1RET1QKICAgICB7Ci0gICAgICAgICQkID0gbmV3IFN0ZXAoU3RlcDo6UGFyZW50QXhpcywg
U3RlcDo6Tm9kZVRlc3QoU3RlcDo6Tm9kZVRlc3Q6OkFueU5vZGVUZXN0KSk7CisgICAgICAgICQk
ID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpTdGVwKFdlYkNvcmU6OlhQYXRoOjpTdGVwOjpQYXJlbnRB
eGlzLCBXZWJDb3JlOjpYUGF0aDo6U3RlcDo6Tm9kZVRlc3QoV2ViQ29yZTo6WFBhdGg6OlN0ZXA6
Ok5vZGVUZXN0OjpBbnlOb2RlVGVzdCkpOwogICAgIH0KICAgICA7CiAKQEAgLTMxOCw3ICszMTgs
NyBAQCBQcmltYXJ5RXhwcjoKICAgICBWQVJJQUJMRVJFRkVSRU5DRQogICAgIHsKICAgICAgICAg
U3RyaW5nIG5hbWUgPSBhZG9wdFJlZigkMSk7Ci0gICAgICAgICQkID0gbmV3IFZhcmlhYmxlUmVm
ZXJlbmNlKG5hbWUpOworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6VmFyaWFibGVS
ZWZlcmVuY2UobmFtZSk7CiAgICAgfQogICAgIHwKICAgICAnKCcgRXhwciAnKScKQEAgLTMyOSwx
MyArMzI5LDEzIEBAIFByaW1hcnlFeHByOgogICAgIExJVEVSQUwKICAgICB7CiAgICAgICAgIFN0
cmluZyBsaXRlcmFsID0gYWRvcHRSZWYoJDEpOwotICAgICAgICAkJCA9IG5ldyBTdHJpbmdFeHBy
ZXNzaW9uKFdURk1vdmUobGl0ZXJhbCkpOworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0
aDo6U3RyaW5nRXhwcmVzc2lvbihXVEZNb3ZlKGxpdGVyYWwpKTsKICAgICB9CiAgICAgfAogICAg
IE5VTUJFUgogICAgIHsKICAgICAgICAgU3RyaW5nIG51bWVyYWwgPSBhZG9wdFJlZigkMSk7Ci0g
ICAgICAgICQkID0gbmV3IE51bWJlcihudW1lcmFsLnRvRG91YmxlKCkpOworICAgICAgICAkJCA9
IG5ldyBXZWJDb3JlOjpYUGF0aDo6TnVtYmVyKG51bWVyYWwudG9Eb3VibGUoKSk7CiAgICAgfQog
ICAgIHwKICAgICBGdW5jdGlvbkNhbGwKQEAgLTM0NSw3ICszNDUsNyBAQCBGdW5jdGlvbkNhbGw6
CiAgICAgRlVOQ1RJT05OQU1FICcoJyAnKScKICAgICB7CiAgICAgICAgIFN0cmluZyBuYW1lID0g
YWRvcHRSZWYoJDEpOwotICAgICAgICAkJCA9IFhQYXRoOjpGdW5jdGlvbjo6Y3JlYXRlKG5hbWUp
LnJlbGVhc2UoKTsKKyAgICAgICAgJCQgPSBXZWJDb3JlOjpYUGF0aDo6RnVuY3Rpb246OmNyZWF0
ZShuYW1lKS5yZWxlYXNlKCk7CiAgICAgICAgIGlmICghJCQpCiAgICAgICAgICAgICBZWUFCT1JU
OwogICAgIH0KQEAgLTM1Myw4ICszNTMsOCBAQCBGdW5jdGlvbkNhbGw6CiAgICAgRlVOQ1RJT05O
QU1FICcoJyBBcmd1bWVudExpc3QgJyknCiAgICAgewogICAgICAgICBTdHJpbmcgbmFtZSA9IGFk
b3B0UmVmKCQxKTsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9w
dHI8RXhwcmVzc2lvbj4+PiBhcmd1bWVudExpc3QoJDMpOwotICAgICAgICAkJCA9IFhQYXRoOjpG
dW5jdGlvbjo6Y3JlYXRlKG5hbWUsIFdURk1vdmUoKmFyZ3VtZW50TGlzdCkpLnJlbGVhc2UoKTsK
KyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
WFBhdGg6OkV4cHJlc3Npb24+Pj4gYXJndW1lbnRMaXN0KCQzKTsKKyAgICAgICAgJCQgPSBXZWJD
b3JlOjpYUGF0aDo6RnVuY3Rpb246OmNyZWF0ZShuYW1lLCBXVEZNb3ZlKCphcmd1bWVudExpc3Qp
KS5yZWxlYXNlKCk7CiAgICAgICAgIGlmICghJCQpCiAgICAgICAgICAgICBZWUFCT1JUOwogICAg
IH0KQEAgLTM2MywxNCArMzYzLDE0IEBAIEZ1bmN0aW9uQ2FsbDoKIEFyZ3VtZW50TGlzdDoKICAg
ICBBcmd1bWVudAogICAgIHsKLSAgICAgICAgJCQgPSBuZXcgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0
cjxFeHByZXNzaW9uPj47Ci0gICAgICAgICQkLT5hcHBlbmQoc3RkOjp1bmlxdWVfcHRyPEV4cHJl
c3Npb24+KCQxKSk7CisgICAgICAgICQkID0gbmV3IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6WFBhdGg6OkV4cHJlc3Npb24+PjsKKyAgICAgICAgJCQtPmFwcGVuZChzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQxKSk7CiAgICAgfQogICAgIHwKICAg
ICBBcmd1bWVudExpc3QgJywnIEFyZ3VtZW50CiAgICAgewogICAgICAgICAkJCA9ICQxOwotICAg
ICAgICAkJC0+YXBwZW5kKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigkMykpOworICAgICAg
ICAkJC0+YXBwZW5kKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4o
JDMpKTsKICAgICB9CiAgICAgOwogCkBAIC0zODMsNyArMzgzLDcgQEAgVW5pb25FeHByOgogICAg
IHwKICAgICBVbmlvbkV4cHIgJ3wnIFBhdGhFeHByCiAgICAgewotICAgICAgICAkJCA9IG5ldyBV
bmlvbihzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8RXhw
cmVzc2lvbj4oJDMpKTsKKyAgICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6OlVuaW9uKHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oJDEpLCBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQzKSk7CiAgICAgfQogICAgIDsKIApA
QCAtMzk4LDE0ICszOTgsMTQgQEAgUGF0aEV4cHI6CiAgICAgRmlsdGVyRXhwciAnLycgUmVsYXRp
dmVMb2NhdGlvblBhdGgKICAgICB7CiAgICAgICAgICQzLT5zZXRBYnNvbHV0ZSgpOwotICAgICAg
ICAkJCA9IG5ldyBYUGF0aDo6UGF0aChzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDEpLCBz
dGQ6OnVuaXF1ZV9wdHI8TG9jYXRpb25QYXRoPigkMykpOworICAgICAgICAkJCA9IG5ldyBXZWJD
b3JlOjpYUGF0aDo6UGF0aChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Np
b24+KCQxKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpMb2NhdGlvblBhdGg+KCQz
KSk7CiAgICAgfQogICAgIHwKICAgICBGaWx0ZXJFeHByIERlc2NlbmRhbnRPclNlbGYgUmVsYXRp
dmVMb2NhdGlvblBhdGgKICAgICB7Ci0gICAgICAgICQzLT5wcmVwZW5kU3RlcChzdGQ6OnVuaXF1
ZV9wdHI8U3RlcD4oJDIpKTsKKyAgICAgICAgJDMtPnByZXBlbmRTdGVwKHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpYUGF0aDo6U3RlcD4oJDIpKTsKICAgICAgICAgJDMtPnNldEFic29sdXRlKCk7
Ci0gICAgICAgICQkID0gbmV3IFhQYXRoOjpQYXRoKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9u
PigkMSksIHN0ZDo6dW5pcXVlX3B0cjxMb2NhdGlvblBhdGg+KCQzKSk7CisgICAgICAgICQkID0g
bmV3IFdlYkNvcmU6OlhQYXRoOjpQYXRoKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6
RXhwcmVzc2lvbj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkxvY2F0aW9u
UGF0aD4oJDMpKTsKICAgICB9CiAgICAgOwogCkBAIC00MTQsOCArNDE0LDggQEAgRmlsdGVyRXhw
cjoKICAgICB8CiAgICAgUHJpbWFyeUV4cHIgUHJlZGljYXRlTGlzdAogICAgIHsKLSAgICAgICAg
c3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4+PiBwcmVk
aWNhdGVMaXN0KCQyKTsKLSAgICAgICAgJCQgPSBuZXcgRmlsdGVyKHN0ZDo6dW5pcXVlX3B0cjxF
eHByZXNzaW9uPigkMSksIFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Np
b24+Pj4gcHJlZGljYXRlTGlzdCgkMik7CisgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRo
OjpGaWx0ZXIoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMSks
IFdURk1vdmUoKnByZWRpY2F0ZUxpc3QpKTsKICAgICB9CiAgICAgOwogCkBAIC00MjQsNyArNDI0
LDcgQEAgT3JFeHByOgogICAgIHwKICAgICBPckV4cHIgT1IgQW5kRXhwcgogICAgIHsKLSAgICAg
ICAgJCQgPSBuZXcgTG9naWNhbE9wKExvZ2ljYWxPcDo6T1BfT3IsIHN0ZDo6dW5pcXVlX3B0cjxF
eHByZXNzaW9uPigkMSksIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigkMykpOworICAgICAg
ICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TG9naWNhbE9wKFdlYkNvcmU6OlhQYXRoOjpMb2dp
Y2FsT3A6Ok9QX09yLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+
KCQxKSwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMykpOwog
ICAgIH0KICAgICA7CiAKQEAgLTQzMyw3ICs0MzMsNyBAQCBBbmRFeHByOgogICAgIHwKICAgICBB
bmRFeHByIEFORCBFcXVhbGl0eUV4cHIKICAgICB7Ci0gICAgICAgICQkID0gbmV3IExvZ2ljYWxP
cChMb2dpY2FsT3A6Ok9QX0FuZCwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQxKSwgc3Rk
Ojp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQzKSk7CisgICAgICAgICQkID0gbmV3IFdlYkNvcmU6
OlhQYXRoOjpMb2dpY2FsT3AoV2ViQ29yZTo6WFBhdGg6OkxvZ2ljYWxPcDo6T1BfQW5kLCBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQxKSwgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMykpOwogICAgIH0KICAgICA7CiAKQEAg
LTQ0Miw3ICs0NDIsNyBAQCBFcXVhbGl0eUV4cHI6CiAgICAgfAogICAgIEVxdWFsaXR5RXhwciBF
UU9QIFJlbGF0aW9uYWxFeHByCiAgICAgewotICAgICAgICAkJCA9IG5ldyBFcVRlc3RPcCgkMiwg
c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQxKSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Np
b24+KCQzKSk7CisgICAgICAgICQkID0gbmV3IFdlYkNvcmU6OlhQYXRoOjpFcVRlc3RPcCgkMiwg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMSksIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oJDMpKTsKICAgICB9CiAgICAgOwog
CkBAIC00NTEsNyArNDUxLDcgQEAgUmVsYXRpb25hbEV4cHI6CiAgICAgfAogICAgIFJlbGF0aW9u
YWxFeHByIFJFTE9QIEFkZGl0aXZlRXhwcgogICAgIHsKLSAgICAgICAgJCQgPSBuZXcgRXFUZXN0
T3AoJDIsIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigkMSksIHN0ZDo6dW5pcXVlX3B0cjxF
eHByZXNzaW9uPigkMykpOworICAgICAgICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6RXFUZXN0
T3AoJDIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbj4oJDEpLCBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQzKSk7CiAgICAgfQog
ICAgIDsKIApAQCAtNDYwLDEyICs0NjAsMTIgQEAgQWRkaXRpdmVFeHByOgogICAgIHwKICAgICBB
ZGRpdGl2ZUV4cHIgUExVUyBNdWx0aXBsaWNhdGl2ZUV4cHIKICAgICB7Ci0gICAgICAgICQkID0g
bmV3IE51bWVyaWNPcChOdW1lcmljT3A6Ok9QX0FkZCwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Np
b24+KCQxKSwgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+KCQzKSk7CisgICAgICAgICQkID0g
bmV3IFdlYkNvcmU6OlhQYXRoOjpOdW1lcmljT3AoV2ViQ29yZTo6WFBhdGg6Ok51bWVyaWNPcDo6
T1BfQWRkLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+KCQxKSwg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMykpOwogICAgIH0K
ICAgICB8CiAgICAgQWRkaXRpdmVFeHByIE1JTlVTIE11bHRpcGxpY2F0aXZlRXhwcgogICAgIHsK
LSAgICAgICAgJCQgPSBuZXcgTnVtZXJpY09wKE51bWVyaWNPcDo6T1BfU3ViLCBzdGQ6OnVuaXF1
ZV9wdHI8RXhwcmVzc2lvbj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDMpKTsK
KyAgICAgICAgJCQgPSBuZXcgV2ViQ29yZTo6WFBhdGg6Ok51bWVyaWNPcChXZWJDb3JlOjpYUGF0
aDo6TnVtZXJpY09wOjpPUF9TdWIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0aDo6RXhw
cmVzc2lvbj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Npb24+
KCQzKSk7CiAgICAgfQogICAgIDsKIApAQCAtNDc0LDcgKzQ3NCw3IEBAIE11bHRpcGxpY2F0aXZl
RXhwcjoKICAgICB8CiAgICAgTXVsdGlwbGljYXRpdmVFeHByIE1VTE9QIFVuYXJ5RXhwcgogICAg
IHsKLSAgICAgICAgJCQgPSBuZXcgTnVtZXJpY09wKCQyLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVz
c2lvbj4oJDEpLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4oJDMpKTsKKyAgICAgICAgJCQg
PSBuZXcgV2ViQ29yZTo6WFBhdGg6Ok51bWVyaWNPcCgkMiwgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMSksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpYUGF0
aDo6RXhwcmVzc2lvbj4oJDMpKTsKICAgICB9CiAgICAgOwogCkBAIC00ODMsNyArNDgzLDcgQEAg
VW5hcnlFeHByOgogICAgIHwKICAgICBNSU5VUyBVbmFyeUV4cHIKICAgICB7Ci0gICAgICAgICQk
ID0gbmV3IE5lZ2F0aXZlKHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPigkMikpOworICAgICAg
ICAkJCA9IG5ldyBXZWJDb3JlOjpYUGF0aDo6TmVnYXRpdmUoc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlhQYXRoOjpFeHByZXNzaW9uPigkMikpOwogICAgIH0KICAgICA7CiAK
</data>
<flag name="review"
          id="464344"
          type_id="1"
          status="+"
          setter="cdumez"
    />
    <flag name="commit-queue"
          id="465976"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>