<?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>227939</bug_id>
          
          <creation_ts>2021-07-13 20:05:28 -0700</creation_ts>
          <short_desc>Implement Array.prototype.findLast and Array.prototype.findLastIndex</short_desc>
          <delta_ts>2021-07-14 20:13:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1776846</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-07-13 20:05:28 -0700</bug_when>
    <thetext>`Array.prototype.findLast` and `Array.prototype.findLastIndex` just advanced to TC39 stage 3

Proposal: &lt;https://github.com/tc39/proposal-array-find-from-last&gt;
Spec: &lt;https://tc39.es/proposal-array-find-from-last/index.html&gt;

```
const array = [{ value: 1 }, { value: 2 }, { value: 3 }, { value: 4 }];

array.find(n =&gt; n.value % 2 === 1); // { value: 1 }
array.findIndex(n =&gt; n.value % 2 === 1); // 0

array.findLast(n =&gt; n.value % 2 === 1); // { value: 3 }
array.findLastIndex(n =&gt; n.value % 2 === 1); // 2
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776857</commentid>
    <comment_count>1</comment_count>
      <attachid>433476</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-07-13 21:02:24 -0700</bug_when>
    <thetext>Created attachment 433476
[Patch] WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776883</commentid>
    <comment_count>2</comment_count>
      <attachid>433476</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-13 22:52:07 -0700</bug_when>
    <thetext>Comment on attachment 433476
[Patch] WIP

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

r=me

&gt; Source/JavaScriptCore/builtins/ArrayPrototype.js:269
&gt; +        var kValue = array[i];

I like the name like `element` instead of `kValue` even though it is derived from the spec&apos;s name since the name is not suitable for WebKit&apos;s coding style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776884</commentid>
    <comment_count>3</comment_count>
      <attachid>433476</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-13 22:52:37 -0700</bug_when>
    <thetext>Comment on attachment 433476
[Patch] WIP

Can you add tests in JSTests/stress?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777009</commentid>
    <comment_count>4</comment_count>
      <attachid>433521</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-07-14 13:01:29 -0700</bug_when>
    <thetext>Created attachment 433521
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777041</commentid>
    <comment_count>5</comment_count>
      <attachid>433528</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-07-14 14:27:08 -0700</bug_when>
    <thetext>Created attachment 433528
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777102</commentid>
    <comment_count>6</comment_count>
      <attachid>433547</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-07-14 17:47:11 -0700</bug_when>
    <thetext>Created attachment 433547
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777121</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-14 20:12:00 -0700</bug_when>
    <thetext>Committed r279937 (239681@main): &lt;https://commits.webkit.org/239681@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433547.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777122</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-14 20:13:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/80610784&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433476</attachid>
            <date>2021-07-13 21:02:24 -0700</date>
            <delta_ts>2021-07-14 13:01:28 -0700</delta_ts>
            <desc>[Patch] WIP</desc>
            <filename>bug-227939-20210713210223.patch</filename>
            <type>text/plain</type>
            <size>11396</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDVmYjZlNmQzZTBiMWM4Yjk3ZmU3MTg0OTM0OGMx
MWQ4ZTgzNTNhN2MuLmY3MjdlMmFjM2ZhOGUyMjNiYTczZGMxYWQ4N2Q0NDliYzFmMTIyYzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA3LTEzICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQXJyYXku
cHJvdG90eXBlLmZpbmRMYXN0IGFuZCBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3OTM5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBidWlsdGlucy9B
cnJheVByb3RvdHlwZS5qczoKKyAgICAgICAgKGZpbmRMYXN0KTogQWRkZWQuCisgICAgICAgIChm
aW5kTGFzdEluZGV4KTogQWRkZWQuCisgICAgICAgICogYnVpbHRpbnMvVHlwZWRBcnJheVByb3Rv
dHlwZS5qczoKKyAgICAgICAgKGZpbmRMYXN0KTogQWRkZWQuCisgICAgICAgIChmaW5kTGFzdElu
ZGV4KTogQWRkZWQuCisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAg
ICAgIChKU0M6OkFycmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVu
dGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNUeXBl
ZEFycmF5Vmlld1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUv
T3B0aW9uc0xpc3QuaDoKKwogMjAyMS0wNy0xMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUu
Y29tPiBhbmQgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIE5l
dyBtYWxsb2MgYWxnb3JpdGhtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAxNWRiMjA5ODUz
ODQyYWE0NGIyNjAzZGFkMzA2MmFlYTQyZjhkNmY3Li44YTI2ZTI3NWQxNTg5NWQwNWQyNzg5MWM3
YzNmMGFmNDgzNDk2ODA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAyMS0wNy0xMyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAg
ICAgSW1wbGVtZW50IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdCBhbmQgQXJyYXkucHJvdG90eXBl
LmZpbmRMYXN0SW5kZXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNzkzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpz
OgorCiAyMDIxLTA3LTEyICBQYXRyaWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBSRUdSRVNTSU9OKHIyNzk1MTApOiBFbGVtZW50czogQ29tcHV0
ZWQ6IGFuIChpKSBidXR0b24gaXMgc2hvd24gZm9yIGNvbXB1dGVkIHByb3BlcnR5IHRyYWNlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBl
LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzCmlu
ZGV4IGRmNmUyZTM4OWJmYjhlN2E4ZTk4Njc4OTYxNzY3NTQyNDA1OGJlMDMuLmY0YzhjYWM0ZTZm
MWNkOGFmODdhMmRkY2Q5NjUxOGNmMjc3MGQ3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnVpbHRpbnMvQXJyYXlQcm90b3R5cGUuanMKQEAgLTI1NCw2ICsyNTQsMjUgQEAgZnVu
Y3Rpb24gZmluZChjYWxsYmFjayAvKiwgdGhpc0FyZyAqLykKICAgICByZXR1cm4gQHVuZGVmaW5l
ZDsKIH0KIAorZnVuY3Rpb24gZmluZExhc3QoY2FsbGJhY2sgLyosIHRoaXNBcmcgKi8pCit7Cisg
ICAgInVzZSBzdHJpY3QiOworCisgICAgdmFyIGFycmF5ID0gQHRvT2JqZWN0KHRoaXMsICJBcnJh
eS5wcm90b3R5cGUuZmluZExhc3QgcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGwgb3Ig
dW5kZWZpbmVkIik7CisgICAgdmFyIGxlbmd0aCA9IEB0b0xlbmd0aChhcnJheS5sZW5ndGgpOwor
CisgICAgaWYgKCFAaXNDYWxsYWJsZShjYWxsYmFjaykpCisgICAgICAgIEB0aHJvd1R5cGVFcnJv
cigiQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiIp
OworCisgICAgdmFyIHRoaXNBcmcgPSBAYXJndW1lbnQoMSk7CisgICAgZm9yICh2YXIgaSA9IGxl
bmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIHZhciBrVmFsdWUgPSBhcnJheVtpXTsK
KyAgICAgICAgaWYgKGNhbGxiYWNrLkBjYWxsKHRoaXNBcmcsIGtWYWx1ZSwgaSwgYXJyYXkpKQor
ICAgICAgICAgICAgcmV0dXJuIGtWYWx1ZTsKKyAgICB9CisgICAgcmV0dXJuIEB1bmRlZmluZWQ7
Cit9CisKIGZ1bmN0aW9uIGZpbmRJbmRleChjYWxsYmFjayAvKiwgdGhpc0FyZyAqLykKIHsKICAg
ICAidXNlIHN0cmljdCI7CkBAIC0yNzIsNiArMjkxLDI0IEBAIGZ1bmN0aW9uIGZpbmRJbmRleChj
YWxsYmFjayAvKiwgdGhpc0FyZyAqLykKICAgICByZXR1cm4gLTE7CiB9CiAKK2Z1bmN0aW9uIGZp
bmRMYXN0SW5kZXgoY2FsbGJhY2sgLyosIHRoaXNBcmcgKi8pCit7CisgICAgInVzZSBzdHJpY3Qi
OworCisgICAgdmFyIGFycmF5ID0gQHRvT2JqZWN0KHRoaXMsICJBcnJheS5wcm90b3R5cGUuZmlu
ZExhc3RJbmRleCByZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQi
KTsKKyAgICB2YXIgbGVuZ3RoID0gQHRvTGVuZ3RoKGFycmF5Lmxlbmd0aCk7CisKKyAgICBpZiAo
IUBpc0NhbGxhYmxlKGNhbGxiYWNrKSkKKyAgICAgICAgQHRocm93VHlwZUVycm9yKCJBcnJheS5w
cm90b3R5cGUuZmluZExhc3RJbmRleCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24iKTsKKwor
ICAgIHZhciB0aGlzQXJnID0gQGFyZ3VtZW50KDEpOworICAgIGZvciAodmFyIGkgPSBsZW5ndGgg
LSAxOyBpID49IDA7IGktLSkgeworICAgICAgICBpZiAoY2FsbGJhY2suQGNhbGwodGhpc0FyZywg
YXJyYXlbaV0sIGksIGFycmF5KSkKKyAgICAgICAgICAgIHJldHVybiBpOworICAgIH0KKyAgICBy
ZXR1cm4gLTE7Cit9CisKIGZ1bmN0aW9uIGluY2x1ZGVzKHNlYXJjaEVsZW1lbnQgLyosIGZyb21J
bmRleCovKQogewogICAgICJ1c2Ugc3RyaWN0IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9UeXBlZEFycmF5UHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL1R5cGVkQXJyYXlQcm90b3R5cGUuanMKaW5kZXggNGM2MWQ4NDA5OTBk
MjA5OTg3OTg5MTk1ODQ0YzQ0YzQ2MDRmMjgwMS4uNTQwMjE5MWYxNWFlNmFkNGI4NzFkMGY0YzZm
NDgwMmQ5ZDk2MzEyYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L1R5cGVkQXJyYXlQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL1R5cGVkQXJyYXlQcm90b3R5cGUuanMKQEAgLTg2LDYgKzg2LDIzIEBAIGZ1bmN0aW9uIGZp
bmQoY2FsbGJhY2sgLyogWywgdGhpc0FyZ10gKi8pCiAgICAgcmV0dXJuIEB1bmRlZmluZWQ7CiB9
CiAKK2Z1bmN0aW9uIGZpbmRMYXN0KGNhbGxiYWNrIC8qIFssIHRoaXNBcmddICovKQoreworICAg
ICJ1c2Ugc3RyaWN0IjsKKyAgICB2YXIgbGVuZ3RoID0gQHR5cGVkQXJyYXlMZW5ndGgodGhpcyk7
CisgICAgdmFyIHRoaXNBcmcgPSBAYXJndW1lbnQoMSk7CisKKyAgICBpZiAoIUBpc0NhbGxhYmxl
KGNhbGxiYWNrKSkKKyAgICAgICAgQHRocm93VHlwZUVycm9yKCJUeXBlZEFycmF5LnByb3RvdHlw
ZS5maW5kTGFzdCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24iKTsKKworICAgIGZvciAodmFy
IGkgPSBsZW5ndGggLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICB2YXIgZWxlbSA9IHRoaXNb
aV07CisgICAgICAgIGlmIChjYWxsYmFjay5AY2FsbCh0aGlzQXJnLCBlbGVtLCBpLCB0aGlzKSkK
KyAgICAgICAgICAgIHJldHVybiBlbGVtOworICAgIH0KKyAgICByZXR1cm4gQHVuZGVmaW5lZDsK
K30KKwogZnVuY3Rpb24gZmluZEluZGV4KGNhbGxiYWNrIC8qIFssIHRoaXNBcmddICovKQogewog
ICAgICJ1c2Ugc3RyaWN0IjsKQEAgLTEwMiw2ICsxMTksMjIgQEAgZnVuY3Rpb24gZmluZEluZGV4
KGNhbGxiYWNrIC8qIFssIHRoaXNBcmddICovKQogICAgIHJldHVybiAtMTsKIH0KIAorZnVuY3Rp
b24gZmluZExhc3RJbmRleChjYWxsYmFjayAvKiBbLCB0aGlzQXJnXSAqLykKK3sKKyAgICAidXNl
IHN0cmljdCI7CisgICAgdmFyIGxlbmd0aCA9IEB0eXBlZEFycmF5TGVuZ3RoKHRoaXMpOworICAg
IHZhciB0aGlzQXJnID0gQGFyZ3VtZW50KDEpOworCisgICAgaWYgKCFAaXNDYWxsYWJsZShjYWxs
YmFjaykpCisgICAgICAgIEB0aHJvd1R5cGVFcnJvcigiVHlwZWRBcnJheS5wcm90b3R5cGUuZmlu
ZExhc3RJbmRleCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24iKTsKKworICAgIGZvciAodmFy
IGkgPSBsZW5ndGggLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICBpZiAoY2FsbGJhY2suQGNh
bGwodGhpc0FyZywgdGhpc1tpXSwgaSwgdGhpcykpCisgICAgICAgICAgICByZXR1cm4gaTsKKyAg
ICB9CisgICAgcmV0dXJuIC0xOworfQorCiBmdW5jdGlvbiBmb3JFYWNoKGNhbGxiYWNrIC8qIFss
IHRoaXNBcmddICovKQogewogICAgICJ1c2Ugc3RyaWN0IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAppbmRleCA1YjJhMjE0MGY2ZDc4MzNl
MThkYjZiYTNiNzRjN2EwMmIxZTNkYjhiLi5iM2U0MzllMmRkNGJlNzkyNzBiNWQxNWRjNDE0YmI2
MDMyNmY2NGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQ
cm90b3R5cGUuY3BwCkBAIC0xMDgsNyArMTA4LDExIEBAIHZvaWQgQXJyYXlQcm90b3R5cGU6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBK
U0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkua2V5c1B1YmxpY05hbWUoKSwgYXJyYXlQcm90b0Z1bmNL
ZXlzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
MCwgQXJyYXlLZXlzSW50cmluc2ljKTsKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZW50
cmllc1B1YmxpY05hbWUoKSwgYXJyYXlQcm90b0Z1bmNFbnRyaWVzLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMCwgQXJyYXlFbnRyaWVzSW50cmlu
c2ljKTsKICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmluZFB1YmxpY05hbWUoKSwgYXJyYXlQcm90b3R5
cGVGaW5kQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSkpOworICAgIGlmIChPcHRpb25zOjp1c2VBcnJheUZpbmRMYXN0TWV0aG9k
KCkpCisgICAgICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5maW5kTGFzdFB1YmxpY05hbWUoKSwgYXJyYXlQ
cm90b3R5cGVGaW5kTGFzdENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmluZEluZGV4
UHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUZpbmRJbmRleENvZGVHZW5lcmF0b3IsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBpZiAo
T3B0aW9uczo6dXNlQXJyYXlGaW5kTGFzdE1ldGhvZCgpKQorICAgICAgICBKU0NfQlVJTFRJTl9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuZmluZExhc3RJbmRleFB1YmxpY05hbWUoKSwgYXJyYXlQcm90b3R5cGVGaW5kTGFzdEluZGV4
Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSkpOwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pbmNsdWRlc1B1YmxpY05hbWUoKSwgYXJy
YXlQcm90b3R5cGVJbmNsdWRlc0NvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuY29weVdp
dGhpblB1YmxpY05hbWUoKSwgYXJyYXlQcm90b3R5cGVDb3B5V2l0aGluQ29kZUdlbmVyYXRvciwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogCkBA
IC0xMzQsNiArMTM4LDEwIEBAIHZvaWQgQXJyYXlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICAgICAgJnZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmtleXNQdWJsaWNOYW1lKCksCiAgICAgICAgICZ2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS52YWx1ZXNQdWJsaWNOYW1lKCkKICAgICB9OworICAg
IGlmIChPcHRpb25zOjp1c2VBcnJheUZpbmRMYXN0TWV0aG9kKCkpIHsKKyAgICAgICAgdW5zY29w
YWJsZXMtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmlu
ZExhc3RQdWJsaWNOYW1lKCksIGpzQm9vbGVhbih0cnVlKSk7CisgICAgICAgIHVuc2NvcGFibGVz
LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZpbmRMYXN0
SW5kZXhQdWJsaWNOYW1lKCksIGpzQm9vbGVhbih0cnVlKSk7CisgICAgfQogICAgIGlmIChPcHRp
b25zOjp1c2VBdE1ldGhvZCgpKQogICAgICAgICB1bnNjb3BhYmxlcy0+cHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hdFB1YmxpY05hbWUoKSwganNCb29sZWFu
KHRydWUpKTsKICAgICBmb3IgKGNvbnN0IGF1dG8qIHVuc2NvcGFibGVOYW1lIDogdW5zY29wYWJs
ZU5hbWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBl
ZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcAppbmRleCBiOTQ1ZDAwNWZkYWYxNGI5ODMxODQ0
NmRmOGUwYzY1YzMyNzg2MjcwLi40ZDliN2MyYmQ1NWI0YWM3NzExMzc0MGU2NTA1Y2U4YWQ0MWEw
OGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJy
YXlWaWV3UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcApAQCAtNDUzLDcgKzQ1MywxMSBAQCB2b2lkIEpT
VHlwZWRBcnJheVZpZXdQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iagogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lU
SU9OKCJpbmNsdWRlcyIsIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSW5jbHVkZXMsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKICAgICBKU0Nf
TkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5maWxsUHVibGljTmFtZSgpLCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0ZpbGws
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsK
ICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImZpbmQiLCB0eXBl
ZEFycmF5UHJvdG90eXBlRmluZENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBpZiAoT3B0aW9uczo6dXNlQXJyYXlG
aW5kTGFzdE1ldGhvZCgpKQorICAgICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmluZExhc3RQdWJsaWNO
YW1lKCksIHR5cGVkQXJyYXlQcm90b3R5cGVGaW5kTGFzdENvZGVHZW5lcmF0b3IsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBKU0NfQlVJ
TFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImZpbmRJbmRleCIsIHR5cGVkQXJyYXlQ
cm90b3R5cGVGaW5kSW5kZXhDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgaWYgKE9wdGlvbnM6OnVzZUFycmF5Rmlu
ZExhc3RNZXRob2QoKSkKKyAgICAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFO
U0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZpbmRMYXN0SW5kZXhQdWJs
aWNOYW1lKCksIHR5cGVkQXJyYXlQcm90b3R5cGVGaW5kTGFzdEluZGV4Q29kZUdlbmVyYXRvciwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAg
IEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVz
LT5mb3JFYWNoLCB0eXBlZEFycmF5UHJvdG90eXBlRm9yRWFjaENvZGVHZW5lcmF0b3IsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBKU0Nf
TkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaW5kZXhPZiIsIHR5cGVkQXJyYXlW
aWV3UHJvdG9GdW5jSW5kZXhPZiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFO
U0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmpvaW4sIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSm9p
biwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKaW5kZXggYmI0
ZjI1MTM4MjI0ODg4YjllMjcxOTQwM2VlMjY1NDc5OGY5OTc1My4uZjAxNzA5Yjk4MDQyNmE0MjY0
YWI4MDkyMzFhMDA5OWM3NmIxYTY3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9uc0xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcHRpb25zTGlzdC5oCkBAIC01NTAsNiArNTUwLDcgQEAgYm9vbCBjYW5Vc2VXZWJBc3NlbWJs
eUZhc3RNZW1vcnkoKTsKICAgICB2KEJvb2wsIHVzZURhdGFJQ0luT3B0aW1pemluZ0pJVCwgZmFs
c2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwgdXNlRGF0YUlDU2hhcmluZywgZmFs
c2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwgdXNlVGVtcG9yYWwsIGZhbHNlLCBO
b3JtYWwsICJFeHBvc2UgdGhlIFRlbXBvcmFsIG9iamVjdC4iKSBcCisgICAgdihCb29sLCB1c2VB
cnJheUZpbmRMYXN0TWV0aG9kLCBmYWxzZSwgTm9ybWFsLCAiRXhwb3NlIHRoZSBmaW5kTGFzdCgp
IGFuZCBmaW5kTGFzdEluZGV4KCkgbWV0aG9kcyBvbiBBcnJheSBhbmQgJVR5cGVkQXJyYXklLiIp
IFwKIAogCiBlbnVtIE9wdGlvbkVxdWl2YWxlbmNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVu
Y3Rpb25QYXJhbWV0ZXJzLmpzCmluZGV4IGVlMjI4YmEwODdjYjMyOWNmNzM5Y2ZiZGMwYTRlOGFj
ZDFjYjU3ZDEuLmVmNzkyNTM2OTEwNDVjMDUyNGFlOGJjMDcyOWEwNzhlNmZlODRlYmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVG
dW5jdGlvblBhcmFtZXRlcnMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5qcwpAQCAtMjQ5LDYgKzI0OSw4
IEBAIFdJLk5hdGl2ZVByb3RvdHlwZUZ1bmN0aW9uUGFyYW1ldGVycyA9IHsKICAgICAgICAgZmls
dGVyOiAiY2FsbGJhY2ssIFt0aGlzQXJnXSIsCiAgICAgICAgIGZpbmQ6ICJjYWxsYmFjaywgW3Ro
aXNBcmddIiwKICAgICAgICAgZmluZEluZGV4OiAiY2FsbGJhY2ssIFt0aGlzQXJnXSIsCisgICAg
ICAgIGZpbmRMYXN0OiAiY2FsbGJhY2ssIFt0aGlzQXJnXSIsCisgICAgICAgIGZpbmRMYXN0SW5k
ZXg6ICJjYWxsYmFjaywgW3RoaXNBcmddIiwKICAgICAgICAgZm9yRWFjaDogImNhbGxiYWNrLCBb
dGhpc0FyZ10iLAogICAgICAgICBpbmNsdWRlczogInNlYXJjaFZhbHVlLCBbc3RhcnRJbmRleD0w
XSIsCiAgICAgICAgIGluZGV4T2Y6ICJzZWFyY2hWYWx1ZSwgW3N0YXJ0SW5kZXg9MF0iLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433521</attachid>
            <date>2021-07-14 13:01:29 -0700</date>
            <delta_ts>2021-07-14 14:27:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227939-20210714130129.patch</filename>
            <type>text/plain</type>
            <size>43771</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDBhYzY2ZGNhOTViNmJkNzUwMDFkMWVmOTIyOTBi
ODE0ODUyNDBkNGYuLmQ1ZTUyZGZlOWY3NTJhMDIyNmM5NTczOGYxMWYxODg4NTdiNzdhODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA3LTEzICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQXJyYXku
cHJvdG90eXBlLmZpbmRMYXN0IGFuZCBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3OTM5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAgICAqIGJ1aWx0aW5zL0Fy
cmF5UHJvdG90eXBlLmpzOgorICAgICAgICAoZmluZExhc3QpOiBBZGRlZC4KKyAgICAgICAgKGZp
bmRMYXN0SW5kZXgpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6QXJyYXlQcm90b3R5cGU6OmZpbmlz
aENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUu
Y3BwOgorCisgICAgICAgICogYnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qczoKKyAgICAg
ICAgKGZpbmRMYXN0KTogQWRkZWQuCisgICAgICAgIChmaW5kTGFzdEluZGV4KTogQWRkZWQuCisg
ICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTVHlw
ZWRBcnJheVZpZXdQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKworICAgICAgICAqIHJ1bnRp
bWUvT3B0aW9uc0xpc3QuaDoKKwogMjAyMS0wNy0xMyAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNz
ZXRAYXBwbGUuY29tPgogCiAgICAgICAgIEludmFsaWQgbWFjaGluZSBjb2RlIGVtaXR0ZWQgYnkg
U3BlY3VsYXRpdmVKSVQ6OmVtaXRPYmplY3RPck90aGVyQnJhbmNoCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZwppbmRleCAxNWRiMjA5ODUzODQyYWE0NGIyNjAzZGFkMzA2MmFlYTQyZjhkNmY3Li5jMWJm
ZTllYzAyMWM3MmYyM2YwOWRkZTRjODIyYWRkMWI3NjMyYWY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wNy0xMyAgRGV2aW4gUm91c3NvICA8ZHJvdXNz
b0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEFycmF5LnByb3RvdHlwZS5maW5kTGFz
dCBhbmQgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXgKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzkzOQorCisgICAgICAgIFJldmlld2VkIGJ5
IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVG
dW5jdGlvblBhcmFtZXRlcnMuanM6CisKIDIwMjEtMDctMTIgIFBhdHJpY2sgQW5nbGUgIDxwYW5n
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJFR1JFU1NJT04ocjI3OTUx
MCk6IEVsZW1lbnRzOiBDb21wdXRlZDogYW4gKGkpIGJ1dHRvbiBpcyBzaG93biBmb3IgY29tcHV0
ZWQgcHJvcGVydHkgdHJhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvQXJyYXlQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMv
QXJyYXlQcm90b3R5cGUuanMKaW5kZXggZGY2ZTJlMzg5YmZiOGU3YThlOTg2Nzg5NjE3Njc1NDI0
MDU4YmUwMy4uZWEyMTlhNzAyOWNlMDY5ZGFhNzI1M2YzMmY4MDMwMGJjZDQ1MzUyYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcwpAQCAt
MjU0LDYgKzI1NCwyNSBAQCBmdW5jdGlvbiBmaW5kKGNhbGxiYWNrIC8qLCB0aGlzQXJnICovKQog
ICAgIHJldHVybiBAdW5kZWZpbmVkOwogfQogCitmdW5jdGlvbiBmaW5kTGFzdChjYWxsYmFjayAv
KiwgdGhpc0FyZyAqLykKK3sKKyAgICAidXNlIHN0cmljdCI7CisKKyAgICB2YXIgYXJyYXkgPSBA
dG9PYmplY3QodGhpcywgIkFycmF5LnByb3RvdHlwZS5maW5kTGFzdCByZXF1aXJlcyB0aGF0IHx0
aGlzfCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQiKTsKKyAgICB2YXIgbGVuZ3RoID0gQHRvTGVu
Z3RoKGFycmF5Lmxlbmd0aCk7CisKKyAgICBpZiAoIUBpc0NhbGxhYmxlKGNhbGxiYWNrKSkKKyAg
ICAgICAgQHRocm93VHlwZUVycm9yKCJBcnJheS5wcm90b3R5cGUuZmluZExhc3QgY2FsbGJhY2sg
bXVzdCBiZSBhIGZ1bmN0aW9uIik7CisKKyAgICB2YXIgdGhpc0FyZyA9IEBhcmd1bWVudCgxKTsK
KyAgICBmb3IgKHZhciBpID0gbGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgdmFy
IGVsZW1lbnQgPSBhcnJheVtpXTsKKyAgICAgICAgaWYgKGNhbGxiYWNrLkBjYWxsKHRoaXNBcmcs
IGVsZW1lbnQsIGksIGFycmF5KSkKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50OworICAgIH0K
KyAgICByZXR1cm4gQHVuZGVmaW5lZDsKK30KKwogZnVuY3Rpb24gZmluZEluZGV4KGNhbGxiYWNr
IC8qLCB0aGlzQXJnICovKQogewogICAgICJ1c2Ugc3RyaWN0IjsKQEAgLTI3Miw2ICsyOTEsMjQg
QEAgZnVuY3Rpb24gZmluZEluZGV4KGNhbGxiYWNrIC8qLCB0aGlzQXJnICovKQogICAgIHJldHVy
biAtMTsKIH0KIAorZnVuY3Rpb24gZmluZExhc3RJbmRleChjYWxsYmFjayAvKiwgdGhpc0FyZyAq
LykKK3sKKyAgICAidXNlIHN0cmljdCI7CisKKyAgICB2YXIgYXJyYXkgPSBAdG9PYmplY3QodGhp
cywgIkFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5v
dCBiZSBudWxsIG9yIHVuZGVmaW5lZCIpOworICAgIHZhciBsZW5ndGggPSBAdG9MZW5ndGgoYXJy
YXkubGVuZ3RoKTsKKworICAgIGlmICghQGlzQ2FsbGFibGUoY2FsbGJhY2spKQorICAgICAgICBA
dGhyb3dUeXBlRXJyb3IoIkFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IGNhbGxiYWNrIG11
c3QgYmUgYSBmdW5jdGlvbiIpOworCisgICAgdmFyIHRoaXNBcmcgPSBAYXJndW1lbnQoMSk7Cisg
ICAgZm9yICh2YXIgaSA9IGxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIGlmIChj
YWxsYmFjay5AY2FsbCh0aGlzQXJnLCBhcnJheVtpXSwgaSwgYXJyYXkpKQorICAgICAgICAgICAg
cmV0dXJuIGk7CisgICAgfQorICAgIHJldHVybiAtMTsKK30KKwogZnVuY3Rpb24gaW5jbHVkZXMo
c2VhcmNoRWxlbWVudCAvKiwgZnJvbUluZGV4Ki8pCiB7CiAgICAgInVzZSBzdHJpY3QiOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1R5cGVkQXJyYXlQcm90b3R5
cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlw
ZS5qcwppbmRleCA0YzYxZDg0MDk5MGQyMDk5ODc5ODkxOTU4NDRjNDRjNDYwNGYyODAxLi40MzA5
YzBjMjg1NjYwZWRmMTgzMjRmZTg0N2E5YWJjYzFjNmM0YWNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qcworKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qcwpAQCAtODYs
NiArODYsMjMgQEAgZnVuY3Rpb24gZmluZChjYWxsYmFjayAvKiBbLCB0aGlzQXJnXSAqLykKICAg
ICByZXR1cm4gQHVuZGVmaW5lZDsKIH0KIAorZnVuY3Rpb24gZmluZExhc3QoY2FsbGJhY2sgLyog
WywgdGhpc0FyZ10gKi8pCit7CisgICAgInVzZSBzdHJpY3QiOworICAgIHZhciBsZW5ndGggPSBA
dHlwZWRBcnJheUxlbmd0aCh0aGlzKTsKKyAgICB2YXIgdGhpc0FyZyA9IEBhcmd1bWVudCgxKTsK
KworICAgIGlmICghQGlzQ2FsbGFibGUoY2FsbGJhY2spKQorICAgICAgICBAdGhyb3dUeXBlRXJy
b3IoIlR5cGVkQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5j
dGlvbiIpOworCisgICAgZm9yICh2YXIgaSA9IGxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7Cisg
ICAgICAgIHZhciBlbGVtZW50ID0gdGhpc1tpXTsKKyAgICAgICAgaWYgKGNhbGxiYWNrLkBjYWxs
KHRoaXNBcmcsIGVsZW1lbnQsIGksIHRoaXMpKQorICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7
CisgICAgfQorICAgIHJldHVybiBAdW5kZWZpbmVkOworfQorCiBmdW5jdGlvbiBmaW5kSW5kZXgo
Y2FsbGJhY2sgLyogWywgdGhpc0FyZ10gKi8pCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtMTAy
LDYgKzExOSwyMiBAQCBmdW5jdGlvbiBmaW5kSW5kZXgoY2FsbGJhY2sgLyogWywgdGhpc0FyZ10g
Ki8pCiAgICAgcmV0dXJuIC0xOwogfQogCitmdW5jdGlvbiBmaW5kTGFzdEluZGV4KGNhbGxiYWNr
IC8qIFssIHRoaXNBcmddICovKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICB2YXIgbGVuZ3Ro
ID0gQHR5cGVkQXJyYXlMZW5ndGgodGhpcyk7CisgICAgdmFyIHRoaXNBcmcgPSBAYXJndW1lbnQo
MSk7CisKKyAgICBpZiAoIUBpc0NhbGxhYmxlKGNhbGxiYWNrKSkKKyAgICAgICAgQHRocm93VHlw
ZUVycm9yKCJUeXBlZEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IGNhbGxiYWNrIG11c3Qg
YmUgYSBmdW5jdGlvbiIpOworCisgICAgZm9yICh2YXIgaSA9IGxlbmd0aCAtIDE7IGkgPj0gMDsg
aS0tKSB7CisgICAgICAgIGlmIChjYWxsYmFjay5AY2FsbCh0aGlzQXJnLCB0aGlzW2ldLCBpLCB0
aGlzKSkKKyAgICAgICAgICAgIHJldHVybiBpOworICAgIH0KKyAgICByZXR1cm4gLTE7Cit9CisK
IGZ1bmN0aW9uIGZvckVhY2goY2FsbGJhY2sgLyogWywgdGhpc0FyZ10gKi8pCiB7CiAgICAgInVz
ZSBzdHJpY3QiOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90
b3R5cGUuY3BwCmluZGV4IDViMmEyMTQwZjZkNzgzM2UxOGRiNmJhM2I3NGM3YTAyYjFlM2RiOGIu
LmIzZTQzOWUyZGQ0YmU3OTI3MGI1ZDE1ZGM0MTRiYjYwMzI2ZjY0ZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTEwOCw3ICsx
MDgsMTEgQEAgdm9pZCBBcnJheVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5r
ZXlzUHVibGljTmFtZSgpLCBhcnJheVByb3RvRnVuY0tleXMsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwLCBBcnJheUtleXNJbnRyaW5zaWMpOwog
ICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5lbnRyaWVzUHVibGljTmFtZSgpLCBhcnJheVBy
b3RvRnVuY0VudHJpZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCAwLCBBcnJheUVudHJpZXNJbnRyaW5zaWMpOwogICAgIEpTQ19CVUlMVElOX0ZV
TkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5maW5kUHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUZpbmRDb2RlR2VuZXJhdG9yLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgaWYg
KE9wdGlvbnM6OnVzZUFycmF5RmluZExhc3RNZXRob2QoKSkKKyAgICAgICAgSlNDX0JVSUxUSU5f
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLmZpbmRMYXN0UHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUZpbmRMYXN0Q29kZUdlbmVy
YXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkp
OwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5maW5kSW5kZXhQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90
eXBlRmluZEluZGV4Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIGlmIChPcHRpb25zOjp1c2VBcnJheUZpbmRMYXN0
TWV0aG9kKCkpCisgICAgICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
Tih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5maW5kTGFzdEluZGV4UHVibGljTmFt
ZSgpLCBhcnJheVByb3RvdHlwZUZpbmRMYXN0SW5kZXhDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgSlNDX0JVSUxU
SU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmluY2x1ZGVzUHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUluY2x1ZGVzQ29kZUdl
bmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSkpOwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jb3B5V2l0aGluUHVibGljTmFtZSgpLCBhcnJheVBy
b3RvdHlwZUNvcHlXaXRoaW5Db2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAKQEAgLTEzNCw2ICsxMzgsMTAgQEAgdm9pZCBB
cnJheVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQogICAgICAgICAmdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkua2V5
c1B1YmxpY05hbWUoKSwKICAgICAgICAgJnZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LnZhbHVlc1B1YmxpY05hbWUoKQogICAgIH07CisgICAgaWYgKE9wdGlvbnM6OnVzZUFycmF5Rmlu
ZExhc3RNZXRob2QoKSkgeworICAgICAgICB1bnNjb3BhYmxlcy0+cHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5maW5kTGFzdFB1YmxpY05hbWUoKSwganNCb29s
ZWFuKHRydWUpKTsKKyAgICAgICAgdW5zY29wYWJsZXMtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmluZExhc3RJbmRleFB1YmxpY05hbWUoKSwganNCb29s
ZWFuKHRydWUpKTsKKyAgICB9CiAgICAgaWYgKE9wdGlvbnM6OnVzZUF0TWV0aG9kKCkpCiAgICAg
ICAgIHVuc2NvcGFibGVzLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmF0UHVibGljTmFtZSgpLCBqc0Jvb2xlYW4odHJ1ZSkpOwogICAgIGZvciAoY29uc3Qg
YXV0byogdW5zY29wYWJsZU5hbWUgOiB1bnNjb3BhYmxlTmFtZXMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUu
Y3BwCmluZGV4IGI5NDVkMDA1ZmRhZjE0Yjk4MzE4NDQ2ZGY4ZTBjNjVjMzI3ODYyNzAuLjRkOWI3
YzJiZDU1YjRhYzc3MTEzNzQwZTY1MDVjZThhZDQxYTA4ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUu
Y3BwCkBAIC00NTMsNyArNDUzLDExIEBAIHZvaWQgSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgSlND
X05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImluY2x1ZGVzIiwgdHlwZWRBcnJh
eVZpZXdQcm90b0Z1bmNJbmNsdWRlcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZpbGxQdWJsaWNOYW1l
KCksIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jRmlsbCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTigiZmluZCIsIHR5cGVkQXJyYXlQcm90b3R5cGVGaW5kQ29kZUdl
bmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSkpOworICAgIGlmIChPcHRpb25zOjp1c2VBcnJheUZpbmRMYXN0TWV0aG9kKCkpCisgICAgICAg
IEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5maW5kTGFzdFB1YmxpY05hbWUoKSwgdHlwZWRBcnJheVByb3RvdHlw
ZUZpbmRMYXN0Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSkpOwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTigiZmluZEluZGV4IiwgdHlwZWRBcnJheVByb3RvdHlwZUZpbmRJbmRleENvZGVHZW5l
cmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
KTsKKyAgICBpZiAoT3B0aW9uczo6dXNlQXJyYXlGaW5kTGFzdE1ldGhvZCgpKQorICAgICAgICBK
U0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuZmluZExhc3RJbmRleFB1YmxpY05hbWUoKSwgdHlwZWRBcnJheVByb3Rv
dHlwZUZpbmRMYXN0SW5kZXhDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmZvckVhY2gsIHR5cGVkQXJyYXlQcm90
b3R5cGVGb3JFYWNoQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKCJpbmRleE9mIiwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmRleE9mLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiAgICAg
SlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+
am9pbiwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9uc0xpc3QuaAppbmRleCBiYjRmMjUxMzgyMjQ4ODhiOWUyNzE5NDAzZWUy
NjU0Nzk4Zjk5NzUzLi5mMDE3MDliOTgwNDI2YTQyNjRhYjgwOTIzMWEwMDk5Yzc2YjFhNjc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKQEAgLTU1MCw2
ICs1NTAsNyBAQCBib29sIGNhblVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeSgpOwogICAgIHYoQm9v
bCwgdXNlRGF0YUlDSW5PcHRpbWl6aW5nSklULCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAg
ICAgdihCb29sLCB1c2VEYXRhSUNTaGFyaW5nLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAg
ICAgdihCb29sLCB1c2VUZW1wb3JhbCwgZmFsc2UsIE5vcm1hbCwgIkV4cG9zZSB0aGUgVGVtcG9y
YWwgb2JqZWN0LiIpIFwKKyAgICB2KEJvb2wsIHVzZUFycmF5RmluZExhc3RNZXRob2QsIGZhbHNl
LCBOb3JtYWwsICJFeHBvc2UgdGhlIGZpbmRMYXN0KCkgYW5kIGZpbmRMYXN0SW5kZXgoKSBtZXRo
b2RzIG9uIEFycmF5IGFuZCAlVHlwZWRBcnJheSUuIikgXAogCiAKIGVudW0gT3B0aW9uRXF1aXZh
bGVuY2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMKaW5kZXgg
ZWUyMjhiYTA4N2NiMzI5Y2Y3MzljZmJkYzBhNGU4YWNkMWNiNTdkMS4uZWY3OTI1MzY5MTA0NWMw
NTI0YWU4YmMwNzI5YTA3OGU2ZmU4NGViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rp
b25QYXJhbWV0ZXJzLmpzCkBAIC0yNDksNiArMjQ5LDggQEAgV0kuTmF0aXZlUHJvdG90eXBlRnVu
Y3Rpb25QYXJhbWV0ZXJzID0gewogICAgICAgICBmaWx0ZXI6ICJjYWxsYmFjaywgW3RoaXNBcmdd
IiwKICAgICAgICAgZmluZDogImNhbGxiYWNrLCBbdGhpc0FyZ10iLAogICAgICAgICBmaW5kSW5k
ZXg6ICJjYWxsYmFjaywgW3RoaXNBcmddIiwKKyAgICAgICAgZmluZExhc3Q6ICJjYWxsYmFjaywg
W3RoaXNBcmddIiwKKyAgICAgICAgZmluZExhc3RJbmRleDogImNhbGxiYWNrLCBbdGhpc0FyZ10i
LAogICAgICAgICBmb3JFYWNoOiAiY2FsbGJhY2ssIFt0aGlzQXJnXSIsCiAgICAgICAgIGluY2x1
ZGVzOiAic2VhcmNoVmFsdWUsIFtzdGFydEluZGV4PTBdIiwKICAgICAgICAgaW5kZXhPZjogInNl
YXJjaFZhbHVlLCBbc3RhcnRJbmRleD0wXSIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDU0ZWQ4M2MyZmNhN2FmYTIyYjI1
ZDE0MDNhMzYzZTYzMGFjZmI1OS4uOWE4ZmE4MjdmYzhjZGIyYzM3OTRhMmEwZTRiNWFjZThhMTRl
NDAxNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTA3LTEzICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQXJyYXkucHJvdG90eXBlLmZp
bmRMYXN0IGFuZCBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3OTM5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAgICAqIGpzL2FycmF5LWZpbmRMYXN0Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGpzL2FycmF5LWZpbmRMYXN0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL2FycmF5LWZpbmRMYXN0LmpzOiBBZGRlZC4KKyAg
ICAgICAgKHBhc3NVbmRlZmluZWQpOgorICAgICAgICAocGFzc1plcm8pOgorICAgICAgICAocGFz
c051bGwpOgorICAgICAgICAocGFzc0ZhbHNlKToKKyAgICAgICAgKHBhc3NFbXB0eVN0cmluZyk6
CisgICAgICAgIChwYXNzRXZlbik6CisgICAgICAgIChwYXNzQWZ0ZXI1KToKKyAgICAgICAgKHRv
T2JqZWN0KToKKyAgICAgICAgKGZpbmRJdGVtQWRkZWREdXJpbmdTZWFyY2gpOgorICAgICAgICAo
bnVtYmVyT2ZDYWxsYmFja3NJbkZpbmRJbkFycmF5V2l0aEhvbGVzKToKKyAgICAgICAgKHRocm93
RXJyb3IpOgorCisgICAgICAgICoganMvYXJyYXktZmluZExhc3RJbmRleC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBqcy9hcnJheS1maW5kTGFzdEluZGV4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICoganMvc2NyaXB0LXRlc3RzL2FycmF5LWZpbmRMYXN0SW5kZXguanM6IEFkZGVkLgor
ICAgICAgICAocGFzc1VuZGVmaW5lZCk6CisgICAgICAgIChwYXNzWmVybyk6CisgICAgICAgIChw
YXNzTnVsbCk6CisgICAgICAgIChwYXNzRmFsc2UpOgorICAgICAgICAocGFzc0VtcHR5U3RyaW5n
KToKKyAgICAgICAgKHBhc3NFdmVuKToKKyAgICAgICAgKHBhc3NBZnRlcjUpOgorICAgICAgICAo
dG9PYmplY3QpOgorICAgICAgICAoZmluZEl0ZW1BZGRlZER1cmluZ1NlYXJjaCk6CisgICAgICAg
IChudW1iZXJPZkNhbGxiYWNrc0luRmluZEluZGV4SW5BcnJheVdpdGhIb2xlcyk6CisgICAgICAg
ICh0aHJvd0Vycm9yKToKKwogMjAyMS0wNy0xMyAgRXJpYyBIdXRjaGlzb24gIDxlaHV0Y2hpc29u
QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jb25kaXRpb25hbC9pZGxoYXJuZXNzLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvYXJyYXktZmluZExhc3QtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvanMvYXJyYXktZmluZExhc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0
NTVmMDdhMzFiNWIwMmI4ZTdkMTQwMWE1MDFkZjFlYWFjNDU4ZGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9hcnJheS1maW5kTGFzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
MSBAQAorVGVzdHMgZm9yIEFycmF5LnByb3RvdHlwZS5maW5kTGFzdAorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBBcnJheS5wcm90b3R5cGUuZmluZExhc3QubGVuZ3RoIGlz
IDEKK1BBU1MgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0Lm5hbWUgaXMgJ2ZpbmRMYXN0JworUEFT
UyBbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddLmZpbmRMYXN0KHBhc3NVbmRlZmluZWQp
IGlzIHVuZGVmaW5lZAorUEFTUyBbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddLmZpbmRM
YXN0KHBhc3NaZXJvKSBpcyAwCitQQVNTIFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10u
ZmluZExhc3QocGFzc051bGwpIGlzIG51bGwKK1BBU1MgW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFs
c2UsICcnXS5maW5kTGFzdChwYXNzRmFsc2UpIGlzIGZhbHNlCitQQVNTIFt1bmRlZmluZWQsIDAs
IG51bGwsIGZhbHNlLCAnJ10uZmluZExhc3QocGFzc0VtcHR5U3RyaW5nKSBpcyAnJworUEFTUyBb
MCwxLDIsMyw0LDUsNiw3LDgsOV0uZmluZExhc3QocGFzc0V2ZW4pIGlzIDgKK1BBU1MgWzAsMSwy
LDMsNCw1LDYsNyw4LDldLmZpbmRMYXN0KHBhc3NBZnRlcjUpIGlzIDkKK1BBU1MgWzAsIG51bGws
IGZhbHNlLCAnJ10uZmluZExhc3QocGFzc1VuZGVmaW5lZCkgaXMgdW5kZWZpbmVkCitQQVNTIFt1
bmRlZmluZWQsIDAsIGZhbHNlLCAnJ10uZmluZExhc3QocGFzc051bGwpIGlzIHVuZGVmaW5lZAor
UEFTUyBbdW5kZWZpbmVkLCAwLCBudWxsLCAnJ10uZmluZExhc3QocGFzc0ZhbHNlKSBpcyB1bmRl
ZmluZWQKK1BBU1MgW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2VdLmZpbmRMYXN0KHBhc3NFbXB0
eVN0cmluZykgaXMgdW5kZWZpbmVkCitQQVNTIFsxLDMsNSw3LDldLmZpbmRMYXN0KHBhc3NFdmVu
KSBpcyB1bmRlZmluZWQKK1BBU1MgWzAsMSwyLDMsNF0uZmluZExhc3QocGFzc0FmdGVyNSkgaXMg
dW5kZWZpbmVkCitQQVNTIFt1bmRlZmluZWQsIG51bGwsIGZhbHNlLCAnJ10uZmluZExhc3QocGFz
c1plcm8pIGlzIHVuZGVmaW5lZAorQXJyYXkgd2l0aCBob2xlcworUEFTUyAobmV3IEFycmF5KDIw
KSkuZmluZExhc3QocGFzc1VuZGVmaW5lZCkgaXMgdW5kZWZpbmVkCitQQVNTIGFycmF5V2l0aEhv
bGVzLmZpbmRMYXN0KHBhc3NVbmRlZmluZWQpIGlzIHVuZGVmaW5lZAorUEFTUyBhcnJheVdpdGhI
b2xlcy5maW5kTGFzdChwYXNzWmVybykgaXMgMAorUEFTUyBhcnJheVdpdGhIb2xlcy5maW5kTGFz
dChwYXNzTnVsbCkgaXMgbnVsbAorUEFTUyBhcnJheVdpdGhIb2xlcy5maW5kTGFzdChwYXNzRmFs
c2UpIGlzIGZhbHNlCitQQVNTIGFycmF5V2l0aEhvbGVzLmZpbmRMYXN0KHBhc3NFbXB0eVN0cmlu
ZykgaXMgJycKK1BBU1MgYXJyYXlXaXRoSG9sZXMuZmluZExhc3QocGFzc0FmdGVyNSkgaXMgJycK
K0dlbmVyaWMgT2JqZWN0CitQQVNTIHRvT2JqZWN0KFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNl
LCAnJ10pLmZpbmRMYXN0KHBhc3NVbmRlZmluZWQpIGlzIHVuZGVmaW5lZAorUEFTUyB0b09iamVj
dChbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddKS5maW5kTGFzdChwYXNzWmVybykgaXMg
MAorUEFTUyB0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddKS5maW5kTGFz
dChwYXNzTnVsbCkgaXMgbnVsbAorUEFTUyB0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBm
YWxzZSwgJyddKS5maW5kTGFzdChwYXNzRmFsc2UpIGlzIGZhbHNlCitQQVNTIHRvT2JqZWN0KFt1
bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0KHBhc3NFbXB0eVN0cmluZykg
aXMgJycKK1BBU1MgdG9PYmplY3QoWzAsIG51bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0KHBhc3NV
bmRlZmluZWQpIGlzIHVuZGVmaW5lZAorUEFTUyB0b09iamVjdChbdW5kZWZpbmVkLCAwLCBmYWxz
ZSwgJyddKS5maW5kTGFzdChwYXNzTnVsbCkgaXMgdW5kZWZpbmVkCitQQVNTIHRvT2JqZWN0KFt1
bmRlZmluZWQsIDAsIG51bGwsICcnXSkuZmluZExhc3QocGFzc0ZhbHNlKSBpcyB1bmRlZmluZWQK
K1BBU1MgdG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2VdKS5maW5kTGFzdChwYXNz
RW1wdHlTdHJpbmcpIGlzIHVuZGVmaW5lZAorUEFTUyB0b09iamVjdChbdW5kZWZpbmVkLCBudWxs
LCBmYWxzZSwgJyddKS5maW5kTGFzdChwYXNzWmVybykgaXMgdW5kZWZpbmVkCitQQVNTIHRvT2Jq
ZWN0KG5ldyBBcnJheSgyMCkpLmZpbmRMYXN0KHBhc3NVbmRlZmluZWQpIGlzIHVuZGVmaW5lZAor
QXJyYXktbGlrZSBvYmplY3Qgd2l0aCBpbnZhbGlkIGxlbmd0aHMKK1BBU1MgdmFyIG9iaiA9IHsg
MDogMSwgMTogMiwgMjogMywgbGVuZ3RoOiAwIH07IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdC5j
YWxsKG9iaiwgdGhyb3dFcnJvcikgaXMgdW5kZWZpbmVkLgorUEFTUyB2YXIgb2JqID0geyAwOiAx
LCAxOiAyLCAyOiAzLCBsZW5ndGg6IC0wIH07IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdC5jYWxs
KG9iaiwgdGhyb3dFcnJvcikgaXMgdW5kZWZpbmVkLgorUEFTUyB2YXIgb2JqID0geyAwOiAxLCAx
OiAyLCAyOiAzLCBsZW5ndGg6IC0zIH07IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdC5jYWxsKG9i
aiwgdGhyb3dFcnJvcikgaXMgdW5kZWZpbmVkLgorTW9kaWZpY2F0aW9uIGR1cmluZyBzZWFyY2gK
K1BBU1MgWzAsMSwyLDMsNCw1LDYsNyw4LDldLmZpbmRMYXN0KGZpbmRJdGVtQWRkZWREdXJpbmdT
ZWFyY2gpIGlzIHVuZGVmaW5lZAorUEFTUyBbMCwxLDIsMyw0LDUsNiw3LDgsOV0uZmluZExhc3Qo
ZmluZEl0ZW1SZW1vdmVkRHVyaW5nU2VhcmNoKSBpcyB1bmRlZmluZWQKK0V4Y2VwdGlvbnMKK1BB
U1MgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0LmNhbGwodW5kZWZpbmVkLCBmdW5jdGlvbigpIHt9
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3QgcmVx
dWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLgorUEFTUyBBcnJheS5w
cm90b3R5cGUuZmluZExhc3QuY2FsbChudWxsLCBmdW5jdGlvbigpIHt9KSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3QgcmVxdWlyZXMgdGhhdCB8dGhp
c3wgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLgorUEFTUyBbXS5maW5kTGFzdCgxKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3QgY2FsbGJhY2sgbXVz
dCBiZSBhIGZ1bmN0aW9uLgorUEFTUyBbXS5maW5kTGFzdCgnaGVsbG8nKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3QgY2FsbGJhY2sgbXVzdCBiZSBh
IGZ1bmN0aW9uLgorUEFTUyBbXS5maW5kTGFzdChbXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4K
K1BBU1MgW10uZmluZExhc3Qoe30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFycmF5LnBy
b3RvdHlwZS5maW5kTGFzdCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24uCitQQVNTIFtdLmZp
bmRMYXN0KG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5m
aW5kTGFzdCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24uCitQQVNTIFtdLmZpbmRMYXN0KHVu
ZGVmaW5lZCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRM
YXN0IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4KK0NhbGxiYWNrcyBpbiB0aGUgZXhwZWN0
ZWQgb3JkZXIgYW5kICpub3QqIHNraXBwaW5nIGhvbGVzCitmaW5kTGFzdCBjYWxsYmFjayBjYWxs
ZWQgd2l0aCBpbmRleCA3CitmaW5kTGFzdCBjYWxsYmFjayBjYWxsZWQgd2l0aCBpbmRleCA2Citm
aW5kTGFzdCBjYWxsYmFjayBjYWxsZWQgd2l0aCBpbmRleCA1CitmaW5kTGFzdCBjYWxsYmFjayBj
YWxsZWQgd2l0aCBpbmRleCA0CitmaW5kTGFzdCBjYWxsYmFjayBjYWxsZWQgd2l0aCBpbmRleCAz
CitmaW5kTGFzdCBjYWxsYmFjayBjYWxsZWQgd2l0aCBpbmRleCAyCitmaW5kTGFzdCBjYWxsYmFj
ayBjYWxsZWQgd2l0aCBpbmRleCAxCitmaW5kTGFzdCBjYWxsYmFjayBjYWxsZWQgd2l0aCBpbmRl
eCAwCitQQVNTIG51bWJlck9mQ2FsbGJhY2tzSW5GaW5kSW5BcnJheVdpdGhIb2xlcygpIGlzIDgK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9hcnJheS1maW5kTGFzdC5odG1sIGIvTGF5b3V0VGVzdHMv
anMvYXJyYXktZmluZExhc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZGVlZmQ3NDkxNGI5YjAxOThkZTkw
YmVkMWJmOWNkOTFkMThkNTk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvYXJy
YXktZmluZExhc3QuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBqc2NPcHRp
b25zPS0tdXNlQXJyYXlGaW5kTGFzdE1ldGhvZD0xIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktZmluZExhc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvYXJyYXkt
ZmluZExhc3RJbmRleC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9hcnJheS1maW5kTGFz
dEluZGV4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDJjMTkzM2I1YTBmNThjYzdiZWE2Y2Q2
NDYxMjcyYjk4NDk1MmNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvYXJyYXkt
ZmluZExhc3RJbmRleC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3MiBAQAorVGVzdHMgZm9yIEFy
cmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4Lmxlbmd0aCBpcyAxCitQQVNT
IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4Lm5hbWUgaXMgJ2ZpbmRMYXN0SW5kZXgnCitQ
QVNTIFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10uZmluZExhc3RJbmRleChwYXNzVW5k
ZWZpbmVkKSBpcyAwCitQQVNTIFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10uZmluZExh
c3RJbmRleChwYXNzWmVybykgaXMgMQorUEFTUyBbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwg
JyddLmZpbmRMYXN0SW5kZXgocGFzc051bGwpIGlzIDIKK1BBU1MgW3VuZGVmaW5lZCwgMCwgbnVs
bCwgZmFsc2UsICcnXS5maW5kTGFzdEluZGV4KHBhc3NGYWxzZSkgaXMgMworUEFTUyBbdW5kZWZp
bmVkLCAwLCBudWxsLCBmYWxzZSwgJyddLmZpbmRMYXN0SW5kZXgocGFzc0VtcHR5U3RyaW5nKSBp
cyA0CitQQVNTIFswLDEsMiwzLDQsNSw2LDcsOCw5XS5maW5kTGFzdEluZGV4KHBhc3NFdmVuKSBp
cyA4CitQQVNTIFswLDEsMiwzLDQsNSw2LDcsOCw5XS5maW5kTGFzdEluZGV4KHBhc3NBZnRlcjUp
IGlzIDkKK1BBU1MgWzAsIG51bGwsIGZhbHNlLCAnJ10uZmluZExhc3RJbmRleChwYXNzVW5kZWZp
bmVkKSBpcyAtMQorUEFTUyBbdW5kZWZpbmVkLCAwLCBmYWxzZSwgJyddLmZpbmRMYXN0SW5kZXgo
cGFzc051bGwpIGlzIC0xCitQQVNTIFt1bmRlZmluZWQsIDAsIG51bGwsICcnXS5maW5kTGFzdElu
ZGV4KHBhc3NGYWxzZSkgaXMgLTEKK1BBU1MgW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2VdLmZp
bmRMYXN0SW5kZXgocGFzc0VtcHR5U3RyaW5nKSBpcyAtMQorUEFTUyBbMSwzLDUsNyw5XS5maW5k
TGFzdEluZGV4KHBhc3NFdmVuKSBpcyAtMQorUEFTUyBbMCwxLDIsMyw0XS5maW5kTGFzdEluZGV4
KHBhc3NBZnRlcjUpIGlzIC0xCitQQVNTIFt1bmRlZmluZWQsIG51bGwsIGZhbHNlLCAnJ10uZmlu
ZExhc3RJbmRleChwYXNzWmVybykgaXMgLTEKK0FycmF5IHdpdGggaG9sZXMKK1BBU1MgKG5ldyBB
cnJheSgyMCkpLmZpbmRMYXN0SW5kZXgocGFzc1VuZGVmaW5lZCkgaXMgMTkKK1BBU1MgYXJyYXlX
aXRoSG9sZXMuZmluZExhc3RJbmRleChwYXNzVW5kZWZpbmVkKSBpcyA2CitQQVNTIGFycmF5V2l0
aEhvbGVzLmZpbmRMYXN0SW5kZXgocGFzc1plcm8pIGlzIDEKK1BBU1MgYXJyYXlXaXRoSG9sZXMu
ZmluZExhc3RJbmRleChwYXNzTnVsbCkgaXMgMworUEFTUyBhcnJheVdpdGhIb2xlcy5maW5kTGFz
dEluZGV4KHBhc3NGYWxzZSkgaXMgNQorUEFTUyBhcnJheVdpdGhIb2xlcy5maW5kTGFzdEluZGV4
KHBhc3NFbXB0eVN0cmluZykgaXMgNworUEFTUyBhcnJheVdpdGhIb2xlcy5maW5kTGFzdEluZGV4
KHBhc3NBZnRlcjUpIGlzIDcKK1BBU1MgYXJyYXlXaXRoSG9sZXMuZmluZExhc3RJbmRleChwYXNz
VW5kZWZpbmVkKSBpcyA0CitHZW5lcmljIE9iamVjdAorUEFTUyB0b09iamVjdChbdW5kZWZpbmVk
LCAwLCBudWxsLCBmYWxzZSwgJyddKS5maW5kTGFzdEluZGV4KHBhc3NVbmRlZmluZWQpIGlzIDAK
K1BBU1MgdG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXSkuZmluZExhc3RJ
bmRleChwYXNzWmVybykgaXMgMQorUEFTUyB0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBm
YWxzZSwgJyddKS5maW5kTGFzdEluZGV4KHBhc3NOdWxsKSBpcyAyCitQQVNTIHRvT2JqZWN0KFt1
bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0SW5kZXgocGFzc0ZhbHNlKSBp
cyAzCitQQVNTIHRvT2JqZWN0KFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10pLmZpbmRM
YXN0SW5kZXgocGFzc0VtcHR5U3RyaW5nKSBpcyA0CitQQVNTIHRvT2JqZWN0KFswLCBudWxsLCBm
YWxzZSwgJyddKS5maW5kTGFzdEluZGV4KHBhc3NVbmRlZmluZWQpIGlzIC0xCitQQVNTIHRvT2Jq
ZWN0KFt1bmRlZmluZWQsIDAsIGZhbHNlLCAnJ10pLmZpbmRMYXN0SW5kZXgocGFzc051bGwpIGlz
IC0xCitQQVNTIHRvT2JqZWN0KFt1bmRlZmluZWQsIDAsIG51bGwsICcnXSkuZmluZExhc3RJbmRl
eChwYXNzRmFsc2UpIGlzIC0xCitQQVNTIHRvT2JqZWN0KFt1bmRlZmluZWQsIDAsIG51bGwsIGZh
bHNlXSkuZmluZExhc3RJbmRleChwYXNzRW1wdHlTdHJpbmcpIGlzIC0xCitQQVNTIHRvT2JqZWN0
KFt1bmRlZmluZWQsIG51bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0SW5kZXgocGFzc1plcm8pIGlz
IC0xCitQQVNTIHRvT2JqZWN0KG5ldyBBcnJheSgyMCkpLmZpbmRMYXN0SW5kZXgocGFzc1VuZGVm
aW5lZCkgaXMgMTkKK0FycmF5LWxpa2Ugb2JqZWN0IHdpdGggaW52YWxpZCBsZW5ndGhzCitQQVNT
IHZhciBvYmogPSB7IDA6IDEsIDE6IDIsIDI6IDMsIGxlbmd0aDogMCB9OyBBcnJheS5wcm90b3R5
cGUuZmluZExhc3RJbmRleC5jYWxsKG9iaiwgdGhyb3dFcnJvcikgaXMgLTEKK1BBU1MgdmFyIG9i
aiA9IHsgMDogMSwgMTogMiwgMjogMywgbGVuZ3RoOiAtMCB9OyBBcnJheS5wcm90b3R5cGUuZmlu
ZExhc3RJbmRleC5jYWxsKG9iaiwgdGhyb3dFcnJvcikgaXMgLTEKK1BBU1MgdmFyIG9iaiA9IHsg
MDogMSwgMTogMiwgMjogMywgbGVuZ3RoOiAtMyB9OyBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJ
bmRleC5jYWxsKG9iaiwgdGhyb3dFcnJvcikgaXMgLTEKK01vZGlmaWNhdGlvbiBkdXJpbmcgc2Vh
cmNoCitQQVNTIFswLDEsMiwzLDQsNSw2LDcsOCw5XS5maW5kTGFzdEluZGV4KGZpbmRJdGVtQWRk
ZWREdXJpbmdTZWFyY2gpIGlzIC0xCitQQVNTIFswLDEsMiwzLDQsNSw2LDcsOCw5XS5maW5kTGFz
dEluZGV4KGZpbmRJdGVtUmVtb3ZlZER1cmluZ1NlYXJjaCkgaXMgLTEKK0V4Y2VwdGlvbnMKK1BB
U1MgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXguY2FsbCh1bmRlZmluZWQsIGZ1bmN0aW9u
KCkge30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5maW5kTGFz
dEluZGV4IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZC4KK1BB
U1MgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXguY2FsbChudWxsLCBmdW5jdGlvbigpIHt9
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRl
eCByZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQuCitQQVNTIFtd
LmZpbmRMYXN0SW5kZXgoMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJyYXkucHJvdG90
eXBlLmZpbmRMYXN0SW5kZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgorUEFTUyBbXS5m
aW5kTGFzdEluZGV4KCdoZWxsbycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFycmF5LnBy
b3RvdHlwZS5maW5kTGFzdEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4KK1BBU1Mg
W10uZmluZExhc3RJbmRleChbXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJyYXkucHJv
dG90eXBlLmZpbmRMYXN0SW5kZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgorUEFTUyBb
XS5maW5kTGFzdEluZGV4KHt9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcnJheS5wcm90
b3R5cGUuZmluZExhc3RJbmRleCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24uCitQQVNTIFtd
LmZpbmRMYXN0SW5kZXgobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJyYXkucHJv
dG90eXBlLmZpbmRMYXN0SW5kZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgorUEFTUyBb
XS5maW5kTGFzdEluZGV4KHVuZGVmaW5lZCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJy
YXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgor
Q2FsbGJhY2tzIGluIHRoZSBleHBlY3RlZCBvcmRlciBhbmQgKm5vdCogc2tpcHBpbmcgaG9sZXMK
K2ZpbmQgY2FsbGJhY2sgY2FsbGVkIHdpdGggaW5kZXggMAorZmluZCBjYWxsYmFjayBjYWxsZWQg
d2l0aCBpbmRleCAxCitmaW5kIGNhbGxiYWNrIGNhbGxlZCB3aXRoIGluZGV4IDIKK2ZpbmQgY2Fs
bGJhY2sgY2FsbGVkIHdpdGggaW5kZXggMworZmluZCBjYWxsYmFjayBjYWxsZWQgd2l0aCBpbmRl
eCA0CitmaW5kIGNhbGxiYWNrIGNhbGxlZCB3aXRoIGluZGV4IDUKK2ZpbmQgY2FsbGJhY2sgY2Fs
bGVkIHdpdGggaW5kZXggNgorZmluZCBjYWxsYmFjayBjYWxsZWQgd2l0aCBpbmRleCA3CitQQVNT
IG51bWJlck9mQ2FsbGJhY2tzSW5GaW5kSW5kZXhJbkFycmF5V2l0aEhvbGVzKCkgaXMgOAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL2FycmF5LWZpbmRMYXN0SW5kZXguaHRtbCBiL0xheW91dFRlc3Rz
L2pzL2FycmF5LWZpbmRMYXN0SW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTQyOWViZTNjZTZmMTlm
NjBkNzQ5MGM0YzMxZTY2ODc3ZWU2ODA0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvYXJyYXktZmluZExhc3RJbmRleC5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj48IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGpzY09wdGlvbnM9LS11c2VBcnJheUZpbmRMYXN0TWV0aG9kPTEgXSAtLT4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hcnJheS1maW5k
TGFzdEluZGV4LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9hcnJheS1maW5kTGFzdC5qcyBiL0xheW91dFRlc3RzL2pz
L3NjcmlwdC10ZXN0cy9hcnJheS1maW5kTGFzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MWE2Y2VjZTU0ZmE4
YjBlM2NlMzk4NzY4MWZiODUxNmVmMzk2MTNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvc2NyaXB0LXRlc3RzL2FycmF5LWZpbmRMYXN0LmpzCkBAIC0wLDAgKzEsMTE5IEBACitk
ZXNjcmlwdGlvbigiVGVzdHMgZm9yIEFycmF5LnByb3RvdHlwZS5maW5kTGFzdCIpOworCitzaG91
bGRCZSgiQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0Lmxlbmd0aCIsICIxIik7CitzaG91bGRCZSgi
QXJyYXkucHJvdG90eXBlLmZpbmRMYXN0Lm5hbWUiLCAiJ2ZpbmRMYXN0JyIpOworCitmdW5jdGlv
biBwYXNzVW5kZWZpbmVkKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgeworICAgIHJldHVybiB0eXBl
b2YgZWxlbWVudCA9PT0gInVuZGVmaW5lZCI7Cit9CitmdW5jdGlvbiBwYXNzWmVybyhlbGVtZW50
LCBpbmRleCwgYXJyYXkpIHsKKyAgICByZXR1cm4gZWxlbWVudCA9PT0gMDsKK30KK2Z1bmN0aW9u
IHBhc3NOdWxsKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgeworICAgIHJldHVybiBlbGVtZW50ID09
PSBudWxsOworfQorZnVuY3Rpb24gcGFzc0ZhbHNlKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgewor
ICAgIHJldHVybiBlbGVtZW50ID09PSBmYWxzZTsKK30KK2Z1bmN0aW9uIHBhc3NFbXB0eVN0cmlu
ZyhlbGVtZW50LCBpbmRleCwgYXJyYXkpIHsKKyAgICByZXR1cm4gZWxlbWVudCA9PT0gIiI7Cit9
CitmdW5jdGlvbiBwYXNzRXZlbihhKSB7CisgICAgcmV0dXJuICEoYSAmIDEpOworfQorZnVuY3Rp
b24gcGFzc0FmdGVyNShlbGVtZW50LCBpbmRleCkgeworICAgIHJldHVybiBpbmRleCA+PSA1Owor
fQorZnVuY3Rpb24gdG9PYmplY3QoYXJyYXkpIHsKKyAgICB2YXIgcmVzdWx0ID0ge307CisgICAg
cmVzdWx0Lmxlbmd0aCA9IGFycmF5Lmxlbmd0aDsKKyAgICBmb3IgKHZhciBpIGluIGFycmF5KQor
ICAgICAgICByZXN1bHRbaV0gPSBhcnJheVtpXTsKKyAgICByZXN1bHQuZmluZExhc3Q9QXJyYXku
cHJvdG90eXBlLmZpbmRMYXN0OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmdW5jdGlvbiBmaW5k
SXRlbUFkZGVkRHVyaW5nU2VhcmNoKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgeworICAgIGlmIChp
bmRleCA9PT0gYXJyYXkubGVuZ3RoIC0gMSkKKyAgICAgICAgYXJyYXkudW5zaGlmdChhcnJheS5s
ZW5ndGgpOworICAgIHJldHVybiAoaW5kZXggPT09IGFycmF5Lmxlbmd0aCAtIDEpOworfQorZnVu
Y3Rpb24gZmluZEl0ZW1SZW1vdmVkRHVyaW5nU2VhcmNoKGVsZW1lbnQsIGluZGV4LCBhcnJheSkg
eworICAgIGlmIChpbmRleCA9PT0gMCkKKyAgICAgICAgYXJyYXkuc2hpZnQoKTsKKyAgICByZXR1
cm4gKGluZGV4ID09PSAwICYmIGFycmF5WzBdID09PSBlbGVtZW50KTsKK30KK2FycmF5V2l0aEhv
bGVzID0gW107CithcnJheVdpdGhIb2xlc1sxXSA9IDA7CithcnJheVdpdGhIb2xlc1szXSA9IG51
bGw7CithcnJheVdpdGhIb2xlc1s1XSA9IGZhbHNlOworYXJyYXlXaXRoSG9sZXNbN10gPSAiIjsK
K2Z1bmN0aW9uIG51bWJlck9mQ2FsbGJhY2tzSW5GaW5kSW5BcnJheVdpdGhIb2xlcygpIHsKKyAg
ICB2YXIgY291bnQgPSAwOworICAgIGFycmF5V2l0aEhvbGVzLmZpbmRMYXN0KGZ1bmN0aW9uKGVs
ZW1lbnQsIGluZGV4LCBhcnJheSkgeworICAgICAgICBkZWJ1ZygiZmluZExhc3QgY2FsbGJhY2sg
Y2FsbGVkIHdpdGggaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgY291bnQrKzsKKyAgICB9KTsK
KyAgICByZXR1cm4gY291bnQ7Cit9CisKK3Nob3VsZEJlKCJbdW5kZWZpbmVkLCAwLCBudWxsLCBm
YWxzZSwgJyddLmZpbmRMYXN0KHBhc3NVbmRlZmluZWQpIiwgInVuZGVmaW5lZCIpOworc2hvdWxk
QmUoIlt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10uZmluZExhc3QocGFzc1plcm8pIiwg
IjAiKTsKK3Nob3VsZEJlKCJbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddLmZpbmRMYXN0
KHBhc3NOdWxsKSIsICJudWxsIik7CitzaG91bGRCZSgiW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFs
c2UsICcnXS5maW5kTGFzdChwYXNzRmFsc2UpIiwgImZhbHNlIik7CitzaG91bGRCZSgiW3VuZGVm
aW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXS5maW5kTGFzdChwYXNzRW1wdHlTdHJpbmcpIiwgIicn
Iik7CitzaG91bGRCZSgiWzAsMSwyLDMsNCw1LDYsNyw4LDldLmZpbmRMYXN0KHBhc3NFdmVuKSIs
ICI4Iik7CitzaG91bGRCZSgiWzAsMSwyLDMsNCw1LDYsNyw4LDldLmZpbmRMYXN0KHBhc3NBZnRl
cjUpIiwgIjkiKTsKK3Nob3VsZEJlKCJbMCwgbnVsbCwgZmFsc2UsICcnXS5maW5kTGFzdChwYXNz
VW5kZWZpbmVkKSIsICJ1bmRlZmluZWQiKTsKK3Nob3VsZEJlKCJbdW5kZWZpbmVkLCAwLCBmYWxz
ZSwgJyddLmZpbmRMYXN0KHBhc3NOdWxsKSIsICJ1bmRlZmluZWQiKTsKK3Nob3VsZEJlKCJbdW5k
ZWZpbmVkLCAwLCBudWxsLCAnJ10uZmluZExhc3QocGFzc0ZhbHNlKSIsICJ1bmRlZmluZWQiKTsK
K3Nob3VsZEJlKCJbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZV0uZmluZExhc3QocGFzc0VtcHR5
U3RyaW5nKSIsICJ1bmRlZmluZWQiKTsKK3Nob3VsZEJlKCJbMSwzLDUsNyw5XS5maW5kTGFzdChw
YXNzRXZlbikiLCAidW5kZWZpbmVkIik7CitzaG91bGRCZSgiWzAsMSwyLDMsNF0uZmluZExhc3Qo
cGFzc0FmdGVyNSkiLCAidW5kZWZpbmVkIik7CitzaG91bGRCZSgiW3VuZGVmaW5lZCwgbnVsbCwg
ZmFsc2UsICcnXS5maW5kTGFzdChwYXNzWmVybykiLCAidW5kZWZpbmVkIik7CisKK2RlYnVnKCJB
cnJheSB3aXRoIGhvbGVzIikKK3Nob3VsZEJlKCIobmV3IEFycmF5KDIwKSkuZmluZExhc3QocGFz
c1VuZGVmaW5lZCkiLCAidW5kZWZpbmVkIik7CitzaG91bGRCZSgiYXJyYXlXaXRoSG9sZXMuZmlu
ZExhc3QocGFzc1VuZGVmaW5lZCkiLCAidW5kZWZpbmVkIik7CitzaG91bGRCZSgiYXJyYXlXaXRo
SG9sZXMuZmluZExhc3QocGFzc1plcm8pIiwgIjAiKTsKK3Nob3VsZEJlKCJhcnJheVdpdGhIb2xl
cy5maW5kTGFzdChwYXNzTnVsbCkiLCAibnVsbCIpOworc2hvdWxkQmUoImFycmF5V2l0aEhvbGVz
LmZpbmRMYXN0KHBhc3NGYWxzZSkiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJhcnJheVdpdGhIb2xl
cy5maW5kTGFzdChwYXNzRW1wdHlTdHJpbmcpIiwgIicnIik7CitzaG91bGRCZSgiYXJyYXlXaXRo
SG9sZXMuZmluZExhc3QocGFzc0FmdGVyNSkiLCAiJyciKTsKKworZGVidWcoIkdlbmVyaWMgT2Jq
ZWN0Iik7CitzaG91bGRCZSgidG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcn
XSkuZmluZExhc3QocGFzc1VuZGVmaW5lZCkiLCAidW5kZWZpbmVkIik7CitzaG91bGRCZSgidG9P
YmplY3QoW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXSkuZmluZExhc3QocGFzc1plcm8p
IiwgIjAiKTsKK3Nob3VsZEJlKCJ0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwg
JyddKS5maW5kTGFzdChwYXNzTnVsbCkiLCAibnVsbCIpOworc2hvdWxkQmUoInRvT2JqZWN0KFt1
bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0KHBhc3NGYWxzZSkiLCAiZmFs
c2UiKTsKK3Nob3VsZEJlKCJ0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJydd
KS5maW5kTGFzdChwYXNzRW1wdHlTdHJpbmcpIiwgIicnIik7CitzaG91bGRCZSgidG9PYmplY3Qo
WzAsIG51bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0KHBhc3NVbmRlZmluZWQpIiwgInVuZGVmaW5l
ZCIpOworc2hvdWxkQmUoInRvT2JqZWN0KFt1bmRlZmluZWQsIDAsIGZhbHNlLCAnJ10pLmZpbmRM
YXN0KHBhc3NOdWxsKSIsICJ1bmRlZmluZWQiKTsKK3Nob3VsZEJlKCJ0b09iamVjdChbdW5kZWZp
bmVkLCAwLCBudWxsLCAnJ10pLmZpbmRMYXN0KHBhc3NGYWxzZSkiLCAidW5kZWZpbmVkIik7Citz
aG91bGRCZSgidG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2VdKS5maW5kTGFzdChw
YXNzRW1wdHlTdHJpbmcpIiwgInVuZGVmaW5lZCIpOworc2hvdWxkQmUoInRvT2JqZWN0KFt1bmRl
ZmluZWQsIG51bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0KHBhc3NaZXJvKSIsICJ1bmRlZmluZWQi
KTsKK3Nob3VsZEJlKCJ0b09iamVjdChuZXcgQXJyYXkoMjApKS5maW5kTGFzdChwYXNzVW5kZWZp
bmVkKSIsICJ1bmRlZmluZWQiKTsKKworZGVidWcoIkFycmF5LWxpa2Ugb2JqZWN0IHdpdGggaW52
YWxpZCBsZW5ndGhzIik7Cit2YXIgdGhyb3dFcnJvciA9IGZ1bmN0aW9uIHRocm93RXJyb3IoKSB7
CisgICAgdGhyb3cgbmV3IEVycm9yKCJzaG91bGQgbm90IHJlYWNoIGhlcmUiKTsKK307CitzaG91
bGRCZVVuZGVmaW5lZCgidmFyIG9iaiA9IHsgMDogMSwgMTogMiwgMjogMywgbGVuZ3RoOiAwIH07
IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdC5jYWxsKG9iaiwgdGhyb3dFcnJvcikiKTsKK3Nob3Vs
ZEJlVW5kZWZpbmVkKCJ2YXIgb2JqID0geyAwOiAxLCAxOiAyLCAyOiAzLCBsZW5ndGg6IC0wIH07
IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdC5jYWxsKG9iaiwgdGhyb3dFcnJvcikiKTsKK3Nob3Vs
ZEJlVW5kZWZpbmVkKCJ2YXIgb2JqID0geyAwOiAxLCAxOiAyLCAyOiAzLCBsZW5ndGg6IC0zIH07
IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdC5jYWxsKG9iaiwgdGhyb3dFcnJvcikiKTsKKworZGVi
dWcoIk1vZGlmaWNhdGlvbiBkdXJpbmcgc2VhcmNoIik7CitzaG91bGRCZSgiWzAsMSwyLDMsNCw1
LDYsNyw4LDldLmZpbmRMYXN0KGZpbmRJdGVtQWRkZWREdXJpbmdTZWFyY2gpIiwgInVuZGVmaW5l
ZCIpOworc2hvdWxkQmUoIlswLDEsMiwzLDQsNSw2LDcsOCw5XS5maW5kTGFzdChmaW5kSXRlbVJl
bW92ZWREdXJpbmdTZWFyY2gpIiwgInVuZGVmaW5lZCIpOworCitkZWJ1ZygiRXhjZXB0aW9ucyIp
Oworc2hvdWxkVGhyb3coIkFycmF5LnByb3RvdHlwZS5maW5kTGFzdC5jYWxsKHVuZGVmaW5lZCwg
ZnVuY3Rpb24oKSB7fSkiLCAiJ1R5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IHJl
cXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCciKTsKK3Nob3VsZFRo
cm93KCJBcnJheS5wcm90b3R5cGUuZmluZExhc3QuY2FsbChudWxsLCBmdW5jdGlvbigpIHt9KSIs
ICInVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3QgcmVxdWlyZXMgdGhhdCB8dGhp
c3wgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkJyIpOworc2hvdWxkVGhyb3coIltdLmZpbmRMYXN0
KDEpIiwgIidUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdCBjYWxsYmFjayBtdXN0
IGJlIGEgZnVuY3Rpb24nIik7CitzaG91bGRUaHJvdygiW10uZmluZExhc3QoJ2hlbGxvJykiLCAi
J1R5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGNhbGxiYWNrIG11c3QgYmUgYSBm
dW5jdGlvbiciKTsKK3Nob3VsZFRocm93KCJbXS5maW5kTGFzdChbXSkiLCAiJ1R5cGVFcnJvcjog
QXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiciKTsK
K3Nob3VsZFRocm93KCJbXS5maW5kTGFzdCh7fSkiLCAiJ1R5cGVFcnJvcjogQXJyYXkucHJvdG90
eXBlLmZpbmRMYXN0IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiciKTsKK3Nob3VsZFRocm93
KCJbXS5maW5kTGFzdChudWxsKSIsICInVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExh
c3QgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyIpOworc2hvdWxkVGhyb3coIltdLmZpbmRM
YXN0KHVuZGVmaW5lZCkiLCAiJ1R5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGNh
bGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiciKTsKKworZGVidWcoIkNhbGxiYWNrcyBpbiB0aGUg
ZXhwZWN0ZWQgb3JkZXIgYW5kICpub3QqIHNraXBwaW5nIGhvbGVzIik7CitzaG91bGRCZSgibnVt
YmVyT2ZDYWxsYmFja3NJbkZpbmRJbkFycmF5V2l0aEhvbGVzKCkiLCAiOCIpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2FycmF5LWZpbmRMYXN0SW5kZXguanMgYi9M
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJyYXktZmluZExhc3RJbmRleC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNjdlMDEwNDc2OTM5NWVmYjg1YTY2MWFjMDYzZWVlODQxYTdlMTlhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2FycmF5LWZpbmRMYXN0SW5kZXgu
anMKQEAgLTAsMCArMSwxMjEgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyBmb3IgQXJyYXkucHJvdG90
eXBlLmZpbmRMYXN0SW5kZXgiKTsKKworc2hvdWxkQmUoIkFycmF5LnByb3RvdHlwZS5maW5kTGFz
dEluZGV4Lmxlbmd0aCIsICIxIik7CitzaG91bGRCZSgiQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0
SW5kZXgubmFtZSIsICInZmluZExhc3RJbmRleCciKTsKKworZnVuY3Rpb24gcGFzc1VuZGVmaW5l
ZChlbGVtZW50LCBpbmRleCwgYXJyYXkpIHsKKyAgICByZXR1cm4gdHlwZW9mIGVsZW1lbnQgPT09
ICJ1bmRlZmluZWQiOworfQorZnVuY3Rpb24gcGFzc1plcm8oZWxlbWVudCwgaW5kZXgsIGFycmF5
KSB7CisgICAgcmV0dXJuIGVsZW1lbnQgPT09IDA7Cit9CitmdW5jdGlvbiBwYXNzTnVsbChlbGVt
ZW50LCBpbmRleCwgYXJyYXkpIHsKKyAgICByZXR1cm4gZWxlbWVudCA9PT0gbnVsbDsKK30KK2Z1
bmN0aW9uIHBhc3NGYWxzZShlbGVtZW50LCBpbmRleCwgYXJyYXkpIHsKKyAgICByZXR1cm4gZWxl
bWVudCA9PT0gZmFsc2U7Cit9CitmdW5jdGlvbiBwYXNzRW1wdHlTdHJpbmcoZWxlbWVudCwgaW5k
ZXgsIGFycmF5KSB7CisgICAgcmV0dXJuIGVsZW1lbnQgPT09ICIiOworfQorZnVuY3Rpb24gcGFz
c0V2ZW4oYSkgeworICAgIHJldHVybiAhKGEgJiAxKTsKK30KK2Z1bmN0aW9uIHBhc3NBZnRlcjUo
ZWxlbWVudCwgaW5kZXgpIHsKKyAgICByZXR1cm4gaW5kZXggPj0gNTsKK30KK2Z1bmN0aW9uIHRv
T2JqZWN0KGFycmF5KSB7CisgICAgdmFyIHJlc3VsdCA9IHt9OworICAgIHJlc3VsdC5sZW5ndGgg
PSBhcnJheS5sZW5ndGg7CisgICAgZm9yICh2YXIgaSBpbiBhcnJheSkKKyAgICAgICAgcmVzdWx0
W2ldID0gYXJyYXlbaV07CisgICAgcmVzdWx0LmZpbmRMYXN0SW5kZXggPSBBcnJheS5wcm90b3R5
cGUuZmluZExhc3RJbmRleDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZnVuY3Rpb24gZmluZEl0
ZW1BZGRlZER1cmluZ1NlYXJjaChlbGVtZW50LCBpbmRleCwgYXJyYXkpIHsKKyAgICBpZiAoaW5k
ZXggPT09IGFycmF5Lmxlbmd0aCAtIDEpCisgICAgICAgIGFycmF5LnVuc2hpZnQoYXJyYXkubGVu
Z3RoKTsKKyAgICByZXR1cm4gKGluZGV4ID09PSBhcnJheS5sZW5ndGggLSAxKTsKK30KK2Z1bmN0
aW9uIGZpbmRJdGVtUmVtb3ZlZER1cmluZ1NlYXJjaChlbGVtZW50LCBpbmRleCwgYXJyYXkpIHsK
KyAgICBpZiAoaW5kZXggPT09IDApCisgICAgICAgIGFycmF5LnNoaWZ0KCk7CisgICAgcmV0dXJu
IChpbmRleCA9PT0gMCAmJiBhcnJheVswXSA9PT0gZWxlbWVudCk7Cit9Cit2YXIgYXJyYXlXaXRo
SG9sZXMgPSBbXTsKK2FycmF5V2l0aEhvbGVzWzFdID0gMDsKK2FycmF5V2l0aEhvbGVzWzNdID0g
bnVsbDsKK2FycmF5V2l0aEhvbGVzWzVdID0gZmFsc2U7CithcnJheVdpdGhIb2xlc1s3XSA9ICIi
OworZnVuY3Rpb24gbnVtYmVyT2ZDYWxsYmFja3NJbkZpbmRJbmRleEluQXJyYXlXaXRoSG9sZXMo
KSB7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICBhcnJheVdpdGhIb2xlcy5maW5kKGZ1bmN0aW9u
KGVsZW1lbnQsIGluZGV4LCBhcnJheSkgeworICAgICAgICBkZWJ1ZygiZmluZCBjYWxsYmFjayBj
YWxsZWQgd2l0aCBpbmRleCAiICsgaW5kZXgpOworICAgICAgICBjb3VudCsrOworICAgIH0pOwor
ICAgIHJldHVybiBjb3VudDsKK30KKworc2hvdWxkQmUoIlt1bmRlZmluZWQsIDAsIG51bGwsIGZh
bHNlLCAnJ10uZmluZExhc3RJbmRleChwYXNzVW5kZWZpbmVkKSIsICIwIik7CitzaG91bGRCZSgi
W3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXS5maW5kTGFzdEluZGV4KHBhc3NaZXJvKSIs
ICIxIik7CitzaG91bGRCZSgiW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXS5maW5kTGFz
dEluZGV4KHBhc3NOdWxsKSIsICIyIik7CitzaG91bGRCZSgiW3VuZGVmaW5lZCwgMCwgbnVsbCwg
ZmFsc2UsICcnXS5maW5kTGFzdEluZGV4KHBhc3NGYWxzZSkiLCAiMyIpOworc2hvdWxkQmUoIlt1
bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10uZmluZExhc3RJbmRleChwYXNzRW1wdHlTdHJp
bmcpIiwgIjQiKTsKK3Nob3VsZEJlKCJbMCwxLDIsMyw0LDUsNiw3LDgsOV0uZmluZExhc3RJbmRl
eChwYXNzRXZlbikiLCAiOCIpOworc2hvdWxkQmUoIlswLDEsMiwzLDQsNSw2LDcsOCw5XS5maW5k
TGFzdEluZGV4KHBhc3NBZnRlcjUpIiwgIjkiKTsKK3Nob3VsZEJlKCJbMCwgbnVsbCwgZmFsc2Us
ICcnXS5maW5kTGFzdEluZGV4KHBhc3NVbmRlZmluZWQpIiwgIi0xIik7CitzaG91bGRCZSgiW3Vu
ZGVmaW5lZCwgMCwgZmFsc2UsICcnXS5maW5kTGFzdEluZGV4KHBhc3NOdWxsKSIsICItMSIpOwor
c2hvdWxkQmUoIlt1bmRlZmluZWQsIDAsIG51bGwsICcnXS5maW5kTGFzdEluZGV4KHBhc3NGYWxz
ZSkiLCAiLTEiKTsKK3Nob3VsZEJlKCJbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZV0uZmluZExh
c3RJbmRleChwYXNzRW1wdHlTdHJpbmcpIiwgIi0xIik7CitzaG91bGRCZSgiWzEsMyw1LDcsOV0u
ZmluZExhc3RJbmRleChwYXNzRXZlbikiLCAiLTEiKTsKK3Nob3VsZEJlKCJbMCwxLDIsMyw0XS5m
aW5kTGFzdEluZGV4KHBhc3NBZnRlcjUpIiwgIi0xIik7CitzaG91bGRCZSgiW3VuZGVmaW5lZCwg
bnVsbCwgZmFsc2UsICcnXS5maW5kTGFzdEluZGV4KHBhc3NaZXJvKSIsICItMSIpOworCitkZWJ1
ZygiQXJyYXkgd2l0aCBob2xlcyIpOworc2hvdWxkQmUoIihuZXcgQXJyYXkoMjApKS5maW5kTGFz
dEluZGV4KHBhc3NVbmRlZmluZWQpIiwgIjE5Iik7CitzaG91bGRCZSgiYXJyYXlXaXRoSG9sZXMu
ZmluZExhc3RJbmRleChwYXNzVW5kZWZpbmVkKSIsICI2Iik7CitzaG91bGRCZSgiYXJyYXlXaXRo
SG9sZXMuZmluZExhc3RJbmRleChwYXNzWmVybykiLCAiMSIpOworc2hvdWxkQmUoImFycmF5V2l0
aEhvbGVzLmZpbmRMYXN0SW5kZXgocGFzc051bGwpIiwgIjMiKTsKK3Nob3VsZEJlKCJhcnJheVdp
dGhIb2xlcy5maW5kTGFzdEluZGV4KHBhc3NGYWxzZSkiLCAiNSIpOworc2hvdWxkQmUoImFycmF5
V2l0aEhvbGVzLmZpbmRMYXN0SW5kZXgocGFzc0VtcHR5U3RyaW5nKSIsICI3Iik7CitzaG91bGRC
ZSgiYXJyYXlXaXRoSG9sZXMuZmluZExhc3RJbmRleChwYXNzQWZ0ZXI1KSIsICI3Iik7CithcnJh
eVdpdGhIb2xlc1s2XSA9IHt9Oworc2hvdWxkQmUoImFycmF5V2l0aEhvbGVzLmZpbmRMYXN0SW5k
ZXgocGFzc1VuZGVmaW5lZCkiLCAiNCIpOworCitkZWJ1ZygiR2VuZXJpYyBPYmplY3QiKTsKK3No
b3VsZEJlKCJ0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddKS5maW5kTGFz
dEluZGV4KHBhc3NVbmRlZmluZWQpIiwgIjAiKTsKK3Nob3VsZEJlKCJ0b09iamVjdChbdW5kZWZp
bmVkLCAwLCBudWxsLCBmYWxzZSwgJyddKS5maW5kTGFzdEluZGV4KHBhc3NaZXJvKSIsICIxIik7
CitzaG91bGRCZSgidG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXSkuZmlu
ZExhc3RJbmRleChwYXNzTnVsbCkiLCAiMiIpOworc2hvdWxkQmUoInRvT2JqZWN0KFt1bmRlZmlu
ZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0SW5kZXgocGFzc0ZhbHNlKSIsICIzIik7
CitzaG91bGRCZSgidG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXSkuZmlu
ZExhc3RJbmRleChwYXNzRW1wdHlTdHJpbmcpIiwgIjQiKTsKK3Nob3VsZEJlKCJ0b09iamVjdChb
MCwgbnVsbCwgZmFsc2UsICcnXSkuZmluZExhc3RJbmRleChwYXNzVW5kZWZpbmVkKSIsICItMSIp
Oworc2hvdWxkQmUoInRvT2JqZWN0KFt1bmRlZmluZWQsIDAsIGZhbHNlLCAnJ10pLmZpbmRMYXN0
SW5kZXgocGFzc051bGwpIiwgIi0xIik7CitzaG91bGRCZSgidG9PYmplY3QoW3VuZGVmaW5lZCwg
MCwgbnVsbCwgJyddKS5maW5kTGFzdEluZGV4KHBhc3NGYWxzZSkiLCAiLTEiKTsKK3Nob3VsZEJl
KCJ0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZV0pLmZpbmRMYXN0SW5kZXgocGFz
c0VtcHR5U3RyaW5nKSIsICItMSIpOworc2hvdWxkQmUoInRvT2JqZWN0KFt1bmRlZmluZWQsIG51
bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0SW5kZXgocGFzc1plcm8pIiwgIi0xIik7CitzaG91bGRC
ZSgidG9PYmplY3QobmV3IEFycmF5KDIwKSkuZmluZExhc3RJbmRleChwYXNzVW5kZWZpbmVkKSIs
ICIxOSIpOworCitkZWJ1ZygiQXJyYXktbGlrZSBvYmplY3Qgd2l0aCBpbnZhbGlkIGxlbmd0aHMi
KTsKK3ZhciB0aHJvd0Vycm9yID0gZnVuY3Rpb24gdGhyb3dFcnJvcigpIHsKKyAgICB0aHJvdyBu
ZXcgRXJyb3IoInNob3VsZCBub3QgcmVhY2ggaGVyZSIpOworfTsKK3Nob3VsZEJlKCJ2YXIgb2Jq
ID0geyAwOiAxLCAxOiAyLCAyOiAzLCBsZW5ndGg6IDAgfTsgQXJyYXkucHJvdG90eXBlLmZpbmRM
YXN0SW5kZXguY2FsbChvYmosIHRocm93RXJyb3IpIiwgIi0xIik7CitzaG91bGRCZSgidmFyIG9i
aiA9IHsgMDogMSwgMTogMiwgMjogMywgbGVuZ3RoOiAtMCB9OyBBcnJheS5wcm90b3R5cGUuZmlu
ZExhc3RJbmRleC5jYWxsKG9iaiwgdGhyb3dFcnJvcikiLCAiLTEiKTsKK3Nob3VsZEJlKCJ2YXIg
b2JqID0geyAwOiAxLCAxOiAyLCAyOiAzLCBsZW5ndGg6IC0zIH07IEFycmF5LnByb3RvdHlwZS5m
aW5kTGFzdEluZGV4LmNhbGwob2JqLCB0aHJvd0Vycm9yKSIsICItMSIpOworCitkZWJ1ZygiTW9k
aWZpY2F0aW9uIGR1cmluZyBzZWFyY2giKTsKK3Nob3VsZEJlKCJbMCwxLDIsMyw0LDUsNiw3LDgs
OV0uZmluZExhc3RJbmRleChmaW5kSXRlbUFkZGVkRHVyaW5nU2VhcmNoKSIsICItMSIpOworc2hv
dWxkQmUoIlswLDEsMiwzLDQsNSw2LDcsOCw5XS5maW5kTGFzdEluZGV4KGZpbmRJdGVtUmVtb3Zl
ZER1cmluZ1NlYXJjaCkiLCAiLTEiKTsKKworZGVidWcoIkV4Y2VwdGlvbnMiKTsKK3Nob3VsZFRo
cm93KCJBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleC5jYWxsKHVuZGVmaW5lZCwgZnVuY3Rp
b24oKSB7fSkiLCAiJ1R5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXggcmVx
dWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkJyIpOworc2hvdWxkVGhy
b3coIkFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4LmNhbGwobnVsbCwgZnVuY3Rpb24oKSB7
fSkiLCAiJ1R5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXggcmVxdWlyZXMg
dGhhdCB8dGhpc3wgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkJyIpOworc2hvdWxkVGhyb3coIltd
LmZpbmRMYXN0SW5kZXgoMSkiLCAiJ1R5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0
SW5kZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyIpOworc2hvdWxkVGhyb3coIltdLmZp
bmRMYXN0SW5kZXgoJ2hlbGxvJykiLCAiJ1R5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRM
YXN0SW5kZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyIpOworc2hvdWxkVGhyb3coIltd
LmZpbmRMYXN0SW5kZXgoW10pIiwgIidUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5maW5kTGFz
dEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiciKTsKK3Nob3VsZFRocm93KCJbXS5m
aW5kTGFzdEluZGV4KHt9KSIsICInVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJ
bmRleCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24nIik7CitzaG91bGRUaHJvdygiW10uZmlu
ZExhc3RJbmRleChudWxsKSIsICInVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJ
bmRleCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24nIik7CitzaG91bGRUaHJvdygiW10uZmlu
ZExhc3RJbmRleCh1bmRlZmluZWQpIiwgIidUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5maW5k
TGFzdEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiciKTsKKworZGVidWcoIkNhbGxi
YWNrcyBpbiB0aGUgZXhwZWN0ZWQgb3JkZXIgYW5kICpub3QqIHNraXBwaW5nIGhvbGVzIik7Citz
aG91bGRCZSgibnVtYmVyT2ZDYWxsYmFja3NJbkZpbmRJbmRleEluQXJyYXlXaXRoSG9sZXMoKSIs
ICI4Iik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDI4M2Y2ZmFjN2RiN2NlZmFiMGVjZjU5MDhhY2UyMTUxZTVjZTViZWIuLjMwZDE1ZDRm
NDBkMDZkMTkyZjk1ZDc4ZjEwOWZjZmYwNDIzZGQ3NTggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDct
MTMgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCBBcnJheS5wcm90b3R5cGUuZmluZExhc3QgYW5kIEFycmF5LnByb3RvdHlwZS5maW5kTGFzdElu
ZGV4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc5
MzkKKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgICogc3Ry
ZXNzL3R5cGVkYXJyYXktZmluZExhc3QuanM6IEFkZGVkLgorICAgICAgICAoa2VlcEV2ZW4pOgor
ICAgICAgICAoa2VlcEV2ZW5BbmRDaGFuZ2UpOgorICAgICAgICAoaXNCaWdFbm91Z2hBbmRFeGNl
cHRpb24pOgorCisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktZmluZExhc3RJbmRleC5qczog
QWRkZWQuCisgICAgICAgIChrZWVwRXZlbik6CisgICAgICAgIChrZWVwRXZlbkFuZENoYW5nZSk6
CisgICAgICAgIChpc0JpZ0Vub3VnaEFuZEV4Y2VwdGlvbik6CisKIDIwMjEtMDctMTIgIFNhYW0g
QmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUnVuIHNvbWUgdGVzdHMgZm9y
IGZld2VyIGl0ZXJhdGlvbnMgdG8gcHJldmVudCB0ZXN0IHRpbWVvdXRzCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbmRMYXN0LmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlw
ZWRhcnJheS1maW5kTGFzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzI5NWRlNmU4OWMwZDZiMjZiN2NhZTUy
ZWU1OGU1YjFiMDM0NzNhCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1maW5kTGFzdC5qcwpAQCAtMCwwICsxLDU3IEBACisvL0AgcmVxdWlyZU9wdGlvbnMoIi0t
dXNlQXJyYXlGaW5kTGFzdE1ldGhvZD10cnVlIikKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJy
YXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOworZGVzY3Jp
cHRpb24oCisiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXku
cHJvdG90eXBlLmZpbmRMYXN0IGZ1bmN0aW9uIgorKTsKKworc2hvdWxkQmUoIkludDMyQXJyYXku
cHJvdG90eXBlLmZpbmRMYXN0Lmxlbmd0aCIsICIxIik7CitzaG91bGRCZSgiSW50MzJBcnJheS5w
cm90b3R5cGUuZmluZExhc3QubmFtZSIsICInZmluZExhc3QnIik7CitzaG91bGRCZVRydWUoImlz
U2FtZUZ1bmN0aW9uRm9yRWFjaFR5cGVkQXJyYXlQcm90b3R5cGUoJ2ZpbmRMYXN0JykiKTsKK3No
b3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZVJlY2VpdmVzQXJyYXkoJ2ZpbmRMYXN0JywgW3VuZGVm
aW5lZCwgdGhpcywgeyB9LCBbIF0sIHRydWUsICcnXSkiKTsKK2RlYnVnKCIiKTsKKworZGVidWco
InRlc3RQcm90b3R5cGVGdW5jdGlvbiBoYXMgdGhlIGZvbGxvd2luZyBhcmcgbGlzdCAobmFtZSwg
YXJncywgaW5pdCwgcmVzdWx0IFsgLCBleHBlY3RlZEFycmF5IF0pIik7CitkZWJ1ZygiIik7CisK
K2RlYnVnKCIxLjAgU2luZ2xlIEFyZ3VtZW50IFRlc3RpbmciKTsKK2Z1bmN0aW9uIGtlZXBFdmVu
KGUsIGkpIHsKKyAgICByZXR1cm4gIShlICYgMSkgfHwgKHRoaXMua2VlcCA/IHRoaXMua2VlcCA9
PT0gaSA6IGZhbHNlKTsKK30KK3Nob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdm
aW5kTGFzdCcsICcoa2VlcEV2ZW4pJywgWzEyLCA1LCA4LCAxMywgNDRdLCA0NCkiKTsKK3Nob3Vs
ZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kTGFzdCcsICcoa2VlcEV2ZW4pJywg
WzExLCAxMywgMTcsIDEzLCAyMl0sIDIyKSIpOworc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBl
RnVuY3Rpb24oJ2ZpbmRMYXN0JywgJyhrZWVwRXZlbiknLCBbMjIsIDEzLCAxNywgMTMsIDExXSwg
MjIpIik7CitzaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZExhc3QnLCAn
KGtlZXBFdmVuKScsIFsxMSwgMTMsIDE3LCAxMywgMTFdLCB1bmRlZmluZWQpIik7CitkZWJ1Zygi
Iik7CisKK2RlYnVnKCIyLjAgVHdvIEFyZ3VtZW50IFRlc3RpbmciKTsKK3ZhciB0aGlzVmFsdWUg
PSB7IGtlZXA6IDMgfTsKK3Nob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5k
TGFzdCcsICcoa2VlcEV2ZW4sIHRoaXNWYWx1ZSknLCBbMTEsIDIzLCAxMSwgMSwgNDRdLCA0NCki
KTsKK3Nob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kTGFzdCcsICcoa2Vl
cEV2ZW4sIHRoaXNWYWx1ZSknLCBbMTEsIDIzLCAxMSwgMSwgNDNdLCAxKSIpOworZGVidWcoIiIp
OworCitkZWJ1ZygiMy4wIEFycmF5IEVsZW1lbnQgQ2hhbmdpbmciKTsKK2Z1bmN0aW9uIGtlZXBF
dmVuQW5kQ2hhbmdlKGUsIGksIGEpIHsKKyAgICBhW2EubGVuZ3RoIC0gMSAtIGldID0gNTsKKyAg
ICByZXR1cm4gIShlICYgMSk7Cit9CitzaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlv
bignZmluZExhc3QnLCAnKGtlZXBFdmVuQW5kQ2hhbmdlKScsIFsxMSwgMTUsIDMsIDEyLCA0NF0s
IDQ0LCBbNSwgMTUsIDM1LCAxMiwgNDRdKSIpOworc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBl
RnVuY3Rpb24oJ2ZpbmRMYXN0JywgJyhrZWVwRXZlbkFuZENoYW5nZSknLCBbNDQsIDE1LCAzLCAx
MiwgMTFdLCB1bmRlZmluZWQsIFs1LCA1LCA1LCA1LCA1XSkiKTsKK2RlYnVnKCIiKTsKKworZGVi
dWcoIjQuMCBFeGNlcHRpb24gVGVzdCIpOworZnVuY3Rpb24gaXNCaWdFbm91Z2hBbmRFeGNlcHRp
b24oZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7CisgICAgaWYoaW5kZXg9PTMpIHRocm93ICJleGNl
cHRpb24gZnJvbSBmdW5jdGlvbiI7CisgICAgcmV0dXJuIChlbGVtZW50ID49IDEwKTsKK30KK3No
b3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kTGFzdCcsICcoaXNCaWdFbm91
Z2hBbmRFeGNlcHRpb24pJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIDQ0KSIpOworc2hvdWxkVGhy
b3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZExhc3QnLCAnKGlzQmlnRW5vdWdoQW5kRXhj
ZXB0aW9uKScsIFs5LCAxNSwgMTAsIDEzLCA0M10sIGZhbHNlKSIpOworZGVidWcoIiIpOworCitk
ZWJ1ZygiNS4wIFdyb25nIFR5cGUgZm9yIENhbGxiYWNrIFRlc3QiKTsKK3Nob3VsZFRocm93KCJ0
ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRMYXN0JywgJyg4KScsIFsxMiwgMTUsIDEwLCAxMywg
NDRdLCBmYWxzZSkiLCAiJ1R5cGVFcnJvcjogVHlwZWRBcnJheS5wcm90b3R5cGUuZmluZExhc3Qg
Y2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyIpOworc2hvdWxkVGhyb3coInRlc3RQcm90b3R5
cGVGdW5jdGlvbignZmluZExhc3QnLCAnKFwid3JvbmdcIiknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0
XSwgZmFsc2UpIiwgIidUeXBlRXJyb3I6IFR5cGVkQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGNh
bGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiciKTsKK3Nob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBl
RnVuY3Rpb24oJ2ZpbmRMYXN0JywgJyhuZXcgT2JqZWN0KCkpJywgWzEyLCAxNSwgMTAsIDEzLCA0
NF0sIGZhbHNlKSIsICInVHlwZUVycm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5maW5kTGFzdCBj
YWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24nIik7CitzaG91bGRUaHJvdygidGVzdFByb3RvdHlw
ZUZ1bmN0aW9uKCdmaW5kTGFzdCcsICcobnVsbCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFs
c2UpIiwgIidUeXBlRXJyb3I6IFR5cGVkQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGNhbGxiYWNr
IG11c3QgYmUgYSBmdW5jdGlvbiciKTsKK3Nob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rp
b24oJ2ZpbmRMYXN0JywgJygpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIsICInVHlw
ZUVycm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5maW5kTGFzdCBjYWxsYmFjayBtdXN0IGJlIGEg
ZnVuY3Rpb24nIik7CitkZWJ1ZygiIik7CitmaW5pc2hKU1Rlc3QoKTsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmluZExhc3RJbmRleC5qcyBiL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktZmluZExhc3RJbmRleC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTM2N2E3NjM2ZTljMzNl
ODlmOGZkOTU1NTYzMjdkNGU0ZWExYmE0Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJl
c3MvdHlwZWRhcnJheS1maW5kTGFzdEluZGV4LmpzCkBAIC0wLDAgKzEsNTcgQEAKKy8vQCByZXF1
aXJlT3B0aW9ucygiLS11c2VBcnJheUZpbmRMYXN0TWV0aG9kPXRydWUiKQorbG9hZCgiLi9yZXNv
dXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CitkZXNjcmlwdGlvbigKKyJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0
aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleCBmdW5jdGlvbiIKKyk7CisKK3No
b3VsZEJlKCJJbnQzMkFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4Lmxlbmd0aCIsICIxIik7
CitzaG91bGRCZSgiSW50MzJBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleC5uYW1lIiwgIidm
aW5kTGFzdEluZGV4JyIpOworc2hvdWxkQmVUcnVlKCJpc1NhbWVGdW5jdGlvbkZvckVhY2hUeXBl
ZEFycmF5UHJvdG90eXBlKCdmaW5kTGFzdEluZGV4JykiKTsKK3Nob3VsZEJlVHJ1ZSgidGVzdFBy
b3RvdHlwZVJlY2VpdmVzQXJyYXkoJ2ZpbmRMYXN0SW5kZXgnLCBbdW5kZWZpbmVkLCB0aGlzLCB7
IH0sIFsgXSwgdHJ1ZSwgJyddKSIpOworZGVidWcoIiIpOworCitkZWJ1ZygidGVzdFByb3RvdHlw
ZUZ1bmN0aW9uIGhhcyB0aGUgZm9sbG93aW5nIGFyZyBsaXN0IChuYW1lLCBhcmdzLCBpbml0LCBy
ZXN1bHQgWyAsIGV4cGVjdGVkQXJyYXkgXSkiKTsKK2RlYnVnKCIiKTsKKworZGVidWcoIjEuMCBT
aW5nbGUgQXJndW1lbnQgVGVzdGluZyIpOworZnVuY3Rpb24ga2VlcEV2ZW4oZSwgaSkgeworICAg
IHJldHVybiAhKGUgJiAxKSB8fCAodGhpcy5rZWVwID8gdGhpcy5rZWVwID09PSBpIDogZmFsc2Up
OworfQorc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRMYXN0SW5kZXgn
LCAnKGtlZXBFdmVuKScsIFsxMiwgNSwgOCwgMTMsIDQ0XSwgNCkiKTsKK3Nob3VsZEJlVHJ1ZSgi
dGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kTGFzdEluZGV4JywgJyhrZWVwRXZlbiknLCBbMTEs
IDEzLCAxNywgMTMsIDIyXSwgNCkiKTsKK3Nob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0
aW9uKCdmaW5kTGFzdEluZGV4JywgJyhrZWVwRXZlbiknLCBbMjIsIDEzLCAxNywgMTMsIDExXSwg
MCkiKTsKK3Nob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kTGFzdEluZGV4
JywgJyhrZWVwRXZlbiknLCBbMTEsIDEzLCAxNywgMTMsIDExXSwgLTEpIik7CitkZWJ1ZygiIik7
CisKK2RlYnVnKCIyLjAgVHdvIEFyZ3VtZW50IFRlc3RpbmciKTsKK3ZhciB0aGlzVmFsdWUgPSB7
IGtlZXA6IDMgfTsKK3Nob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kTGFz
dEluZGV4JywgJyhrZWVwRXZlbiwgdGhpc1ZhbHVlKScsIFsxMSwgMjMsIDExLCAxLCA0NF0sIDQp
Iik7CitzaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZExhc3RJbmRleCcs
ICcoa2VlcEV2ZW4sIHRoaXNWYWx1ZSknLCBbMTEsIDIzLCAxMSwgMSwgNDNdLCAzKSIpOworZGVi
dWcoIiIpOworCitkZWJ1ZygiMy4wIEFycmF5IEVsZW1lbnQgQ2hhbmdpbmciKTsKK2Z1bmN0aW9u
IGtlZXBFdmVuQW5kQ2hhbmdlKGUsIGksIGEpIHsKKyAgICBhW2EubGVuZ3RoIC0gMSAtIGldID0g
NTsKKyAgICByZXR1cm4gIShlICYgMSk7Cit9CitzaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVG
dW5jdGlvbignZmluZExhc3RJbmRleCcsICcoa2VlcEV2ZW5BbmRDaGFuZ2UpJywgWzExLCAxNSwg
MywgMTIsIDQ0XSwgMywgWzUsIDE1LCAzNSwgMTIsIDQ0XSkiKTsKK3Nob3VsZEJlVHJ1ZSgidGVz
dFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kTGFzdEluZGV4JywgJyhrZWVwRXZlbkFuZENoYW5nZSkn
LCBbNDQsIDE1LCAzLCAxMiwgMTFdLCAtMSwgWzUsIDUsIDUsIDUsIDVdKSIpOworZGVidWcoIiIp
OworCitkZWJ1ZygiNC4wIEV4Y2VwdGlvbiBUZXN0Iik7CitmdW5jdGlvbiBpc0JpZ0Vub3VnaEFu
ZEV4Y2VwdGlvbihlbGVtZW50LCBpbmRleCwgYXJyYXkpIHsKKyAgICBpZihpbmRleD09MykgdGhy
b3cgImV4Y2VwdGlvbiBmcm9tIGZ1bmN0aW9uIjsKKyAgICByZXR1cm4gKGVsZW1lbnQgPj0gMTAp
OworfQorc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRMYXN0SW5kZXgn
LCAnKGlzQmlnRW5vdWdoQW5kRXhjZXB0aW9uKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCAzKSIp
Oworc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZExhc3RJbmRleCcsICco
aXNCaWdFbm91Z2hBbmRFeGNlcHRpb24pJywgWzksIDE1LCAxMCwgMTMsIDQzXSwgZmFsc2UpIik7
CitkZWJ1ZygiIik7CisKK2RlYnVnKCI1LjAgV3JvbmcgVHlwZSBmb3IgQ2FsbGJhY2sgVGVzdCIp
Oworc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZExhc3RJbmRleCcsICco
OCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIiwgIidUeXBlRXJyb3I6IFR5cGVkQXJy
YXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyIp
Oworc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZExhc3RJbmRleCcsICco
XCJ3cm9uZ1wiKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiLCAiJ1R5cGVFcnJvcjog
VHlwZWRBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleCBjYWxsYmFjayBtdXN0IGJlIGEgZnVu
Y3Rpb24nIik7CitzaG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kTGFzdElu
ZGV4JywgJyhuZXcgT2JqZWN0KCkpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIsICIn
VHlwZUVycm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IGNhbGxiYWNrIG11
c3QgYmUgYSBmdW5jdGlvbiciKTsKK3Nob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24o
J2ZpbmRMYXN0SW5kZXgnLCAnKG51bGwpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIs
ICInVHlwZUVycm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IGNhbGxiYWNr
IG11c3QgYmUgYSBmdW5jdGlvbiciKTsKK3Nob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rp
b24oJ2ZpbmRMYXN0SW5kZXgnLCAnKCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIiwg
IidUeXBlRXJyb3I6IFR5cGVkQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXggY2FsbGJhY2sg
bXVzdCBiZSBhIGZ1bmN0aW9uJyIpOworZGVidWcoIiIpOworZmluaXNoSlNUZXN0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433528</attachid>
            <date>2021-07-14 14:27:08 -0700</date>
            <delta_ts>2021-07-14 17:47:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227939-20210714142707.patch</filename>
            <type>text/plain</type>
            <size>43883</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDBhYzY2ZGNhOTViNmJkNzUwMDFkMWVmOTIyOTBi
ODE0ODUyNDBkNGYuLmQ1ZTUyZGZlOWY3NTJhMDIyNmM5NTczOGYxMWYxODg4NTdiNzdhODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA3LTEzICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQXJyYXku
cHJvdG90eXBlLmZpbmRMYXN0IGFuZCBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3OTM5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAgICAqIGJ1aWx0aW5zL0Fy
cmF5UHJvdG90eXBlLmpzOgorICAgICAgICAoZmluZExhc3QpOiBBZGRlZC4KKyAgICAgICAgKGZp
bmRMYXN0SW5kZXgpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6QXJyYXlQcm90b3R5cGU6OmZpbmlz
aENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUu
Y3BwOgorCisgICAgICAgICogYnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qczoKKyAgICAg
ICAgKGZpbmRMYXN0KTogQWRkZWQuCisgICAgICAgIChmaW5kTGFzdEluZGV4KTogQWRkZWQuCisg
ICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTVHlw
ZWRBcnJheVZpZXdQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKworICAgICAgICAqIHJ1bnRp
bWUvT3B0aW9uc0xpc3QuaDoKKwogMjAyMS0wNy0xMyAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNz
ZXRAYXBwbGUuY29tPgogCiAgICAgICAgIEludmFsaWQgbWFjaGluZSBjb2RlIGVtaXR0ZWQgYnkg
U3BlY3VsYXRpdmVKSVQ6OmVtaXRPYmplY3RPck90aGVyQnJhbmNoCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZwppbmRleCAxNWRiMjA5ODUzODQyYWE0NGIyNjAzZGFkMzA2MmFlYTQyZjhkNmY3Li5jMWJm
ZTllYzAyMWM3MmYyM2YwOWRkZTRjODIyYWRkMWI3NjMyYWY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wNy0xMyAgRGV2aW4gUm91c3NvICA8ZHJvdXNz
b0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEFycmF5LnByb3RvdHlwZS5maW5kTGFz
dCBhbmQgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXgKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzkzOQorCisgICAgICAgIFJldmlld2VkIGJ5
IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVG
dW5jdGlvblBhcmFtZXRlcnMuanM6CisKIDIwMjEtMDctMTIgIFBhdHJpY2sgQW5nbGUgIDxwYW5n
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJFR1JFU1NJT04ocjI3OTUx
MCk6IEVsZW1lbnRzOiBDb21wdXRlZDogYW4gKGkpIGJ1dHRvbiBpcyBzaG93biBmb3IgY29tcHV0
ZWQgcHJvcGVydHkgdHJhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvQXJyYXlQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMv
QXJyYXlQcm90b3R5cGUuanMKaW5kZXggZGY2ZTJlMzg5YmZiOGU3YThlOTg2Nzg5NjE3Njc1NDI0
MDU4YmUwMy4uZWEyMTlhNzAyOWNlMDY5ZGFhNzI1M2YzMmY4MDMwMGJjZDQ1MzUyYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcwpAQCAt
MjU0LDYgKzI1NCwyNSBAQCBmdW5jdGlvbiBmaW5kKGNhbGxiYWNrIC8qLCB0aGlzQXJnICovKQog
ICAgIHJldHVybiBAdW5kZWZpbmVkOwogfQogCitmdW5jdGlvbiBmaW5kTGFzdChjYWxsYmFjayAv
KiwgdGhpc0FyZyAqLykKK3sKKyAgICAidXNlIHN0cmljdCI7CisKKyAgICB2YXIgYXJyYXkgPSBA
dG9PYmplY3QodGhpcywgIkFycmF5LnByb3RvdHlwZS5maW5kTGFzdCByZXF1aXJlcyB0aGF0IHx0
aGlzfCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQiKTsKKyAgICB2YXIgbGVuZ3RoID0gQHRvTGVu
Z3RoKGFycmF5Lmxlbmd0aCk7CisKKyAgICBpZiAoIUBpc0NhbGxhYmxlKGNhbGxiYWNrKSkKKyAg
ICAgICAgQHRocm93VHlwZUVycm9yKCJBcnJheS5wcm90b3R5cGUuZmluZExhc3QgY2FsbGJhY2sg
bXVzdCBiZSBhIGZ1bmN0aW9uIik7CisKKyAgICB2YXIgdGhpc0FyZyA9IEBhcmd1bWVudCgxKTsK
KyAgICBmb3IgKHZhciBpID0gbGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgdmFy
IGVsZW1lbnQgPSBhcnJheVtpXTsKKyAgICAgICAgaWYgKGNhbGxiYWNrLkBjYWxsKHRoaXNBcmcs
IGVsZW1lbnQsIGksIGFycmF5KSkKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50OworICAgIH0K
KyAgICByZXR1cm4gQHVuZGVmaW5lZDsKK30KKwogZnVuY3Rpb24gZmluZEluZGV4KGNhbGxiYWNr
IC8qLCB0aGlzQXJnICovKQogewogICAgICJ1c2Ugc3RyaWN0IjsKQEAgLTI3Miw2ICsyOTEsMjQg
QEAgZnVuY3Rpb24gZmluZEluZGV4KGNhbGxiYWNrIC8qLCB0aGlzQXJnICovKQogICAgIHJldHVy
biAtMTsKIH0KIAorZnVuY3Rpb24gZmluZExhc3RJbmRleChjYWxsYmFjayAvKiwgdGhpc0FyZyAq
LykKK3sKKyAgICAidXNlIHN0cmljdCI7CisKKyAgICB2YXIgYXJyYXkgPSBAdG9PYmplY3QodGhp
cywgIkFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5v
dCBiZSBudWxsIG9yIHVuZGVmaW5lZCIpOworICAgIHZhciBsZW5ndGggPSBAdG9MZW5ndGgoYXJy
YXkubGVuZ3RoKTsKKworICAgIGlmICghQGlzQ2FsbGFibGUoY2FsbGJhY2spKQorICAgICAgICBA
dGhyb3dUeXBlRXJyb3IoIkFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IGNhbGxiYWNrIG11
c3QgYmUgYSBmdW5jdGlvbiIpOworCisgICAgdmFyIHRoaXNBcmcgPSBAYXJndW1lbnQoMSk7Cisg
ICAgZm9yICh2YXIgaSA9IGxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIGlmIChj
YWxsYmFjay5AY2FsbCh0aGlzQXJnLCBhcnJheVtpXSwgaSwgYXJyYXkpKQorICAgICAgICAgICAg
cmV0dXJuIGk7CisgICAgfQorICAgIHJldHVybiAtMTsKK30KKwogZnVuY3Rpb24gaW5jbHVkZXMo
c2VhcmNoRWxlbWVudCAvKiwgZnJvbUluZGV4Ki8pCiB7CiAgICAgInVzZSBzdHJpY3QiOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1R5cGVkQXJyYXlQcm90b3R5
cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlw
ZS5qcwppbmRleCA0YzYxZDg0MDk5MGQyMDk5ODc5ODkxOTU4NDRjNDRjNDYwNGYyODAxLi40MzA5
YzBjMjg1NjYwZWRmMTgzMjRmZTg0N2E5YWJjYzFjNmM0YWNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qcworKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qcwpAQCAtODYs
NiArODYsMjMgQEAgZnVuY3Rpb24gZmluZChjYWxsYmFjayAvKiBbLCB0aGlzQXJnXSAqLykKICAg
ICByZXR1cm4gQHVuZGVmaW5lZDsKIH0KIAorZnVuY3Rpb24gZmluZExhc3QoY2FsbGJhY2sgLyog
WywgdGhpc0FyZ10gKi8pCit7CisgICAgInVzZSBzdHJpY3QiOworICAgIHZhciBsZW5ndGggPSBA
dHlwZWRBcnJheUxlbmd0aCh0aGlzKTsKKyAgICB2YXIgdGhpc0FyZyA9IEBhcmd1bWVudCgxKTsK
KworICAgIGlmICghQGlzQ2FsbGFibGUoY2FsbGJhY2spKQorICAgICAgICBAdGhyb3dUeXBlRXJy
b3IoIlR5cGVkQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5j
dGlvbiIpOworCisgICAgZm9yICh2YXIgaSA9IGxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7Cisg
ICAgICAgIHZhciBlbGVtZW50ID0gdGhpc1tpXTsKKyAgICAgICAgaWYgKGNhbGxiYWNrLkBjYWxs
KHRoaXNBcmcsIGVsZW1lbnQsIGksIHRoaXMpKQorICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7
CisgICAgfQorICAgIHJldHVybiBAdW5kZWZpbmVkOworfQorCiBmdW5jdGlvbiBmaW5kSW5kZXgo
Y2FsbGJhY2sgLyogWywgdGhpc0FyZ10gKi8pCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtMTAy
LDYgKzExOSwyMiBAQCBmdW5jdGlvbiBmaW5kSW5kZXgoY2FsbGJhY2sgLyogWywgdGhpc0FyZ10g
Ki8pCiAgICAgcmV0dXJuIC0xOwogfQogCitmdW5jdGlvbiBmaW5kTGFzdEluZGV4KGNhbGxiYWNr
IC8qIFssIHRoaXNBcmddICovKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICB2YXIgbGVuZ3Ro
ID0gQHR5cGVkQXJyYXlMZW5ndGgodGhpcyk7CisgICAgdmFyIHRoaXNBcmcgPSBAYXJndW1lbnQo
MSk7CisKKyAgICBpZiAoIUBpc0NhbGxhYmxlKGNhbGxiYWNrKSkKKyAgICAgICAgQHRocm93VHlw
ZUVycm9yKCJUeXBlZEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IGNhbGxiYWNrIG11c3Qg
YmUgYSBmdW5jdGlvbiIpOworCisgICAgZm9yICh2YXIgaSA9IGxlbmd0aCAtIDE7IGkgPj0gMDsg
aS0tKSB7CisgICAgICAgIGlmIChjYWxsYmFjay5AY2FsbCh0aGlzQXJnLCB0aGlzW2ldLCBpLCB0
aGlzKSkKKyAgICAgICAgICAgIHJldHVybiBpOworICAgIH0KKyAgICByZXR1cm4gLTE7Cit9CisK
IGZ1bmN0aW9uIGZvckVhY2goY2FsbGJhY2sgLyogWywgdGhpc0FyZ10gKi8pCiB7CiAgICAgInVz
ZSBzdHJpY3QiOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90
b3R5cGUuY3BwCmluZGV4IDViMmEyMTQwZjZkNzgzM2UxOGRiNmJhM2I3NGM3YTAyYjFlM2RiOGIu
LmIzZTQzOWUyZGQ0YmU3OTI3MGI1ZDE1ZGM0MTRiYjYwMzI2ZjY0ZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTEwOCw3ICsx
MDgsMTEgQEAgdm9pZCBBcnJheVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5r
ZXlzUHVibGljTmFtZSgpLCBhcnJheVByb3RvRnVuY0tleXMsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwLCBBcnJheUtleXNJbnRyaW5zaWMpOwog
ICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5lbnRyaWVzUHVibGljTmFtZSgpLCBhcnJheVBy
b3RvRnVuY0VudHJpZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCAwLCBBcnJheUVudHJpZXNJbnRyaW5zaWMpOwogICAgIEpTQ19CVUlMVElOX0ZV
TkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5maW5kUHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUZpbmRDb2RlR2VuZXJhdG9yLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgaWYg
KE9wdGlvbnM6OnVzZUFycmF5RmluZExhc3RNZXRob2QoKSkKKyAgICAgICAgSlNDX0JVSUxUSU5f
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLmZpbmRMYXN0UHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUZpbmRMYXN0Q29kZUdlbmVy
YXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkp
OwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5maW5kSW5kZXhQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90
eXBlRmluZEluZGV4Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIGlmIChPcHRpb25zOjp1c2VBcnJheUZpbmRMYXN0
TWV0aG9kKCkpCisgICAgICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
Tih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5maW5kTGFzdEluZGV4UHVibGljTmFt
ZSgpLCBhcnJheVByb3RvdHlwZUZpbmRMYXN0SW5kZXhDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgSlNDX0JVSUxU
SU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmluY2x1ZGVzUHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUluY2x1ZGVzQ29kZUdl
bmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSkpOwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jb3B5V2l0aGluUHVibGljTmFtZSgpLCBhcnJheVBy
b3RvdHlwZUNvcHlXaXRoaW5Db2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAKQEAgLTEzNCw2ICsxMzgsMTAgQEAgdm9pZCBB
cnJheVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQogICAgICAgICAmdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkua2V5
c1B1YmxpY05hbWUoKSwKICAgICAgICAgJnZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LnZhbHVlc1B1YmxpY05hbWUoKQogICAgIH07CisgICAgaWYgKE9wdGlvbnM6OnVzZUFycmF5Rmlu
ZExhc3RNZXRob2QoKSkgeworICAgICAgICB1bnNjb3BhYmxlcy0+cHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5maW5kTGFzdFB1YmxpY05hbWUoKSwganNCb29s
ZWFuKHRydWUpKTsKKyAgICAgICAgdW5zY29wYWJsZXMtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmluZExhc3RJbmRleFB1YmxpY05hbWUoKSwganNCb29s
ZWFuKHRydWUpKTsKKyAgICB9CiAgICAgaWYgKE9wdGlvbnM6OnVzZUF0TWV0aG9kKCkpCiAgICAg
ICAgIHVuc2NvcGFibGVzLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmF0UHVibGljTmFtZSgpLCBqc0Jvb2xlYW4odHJ1ZSkpOwogICAgIGZvciAoY29uc3Qg
YXV0byogdW5zY29wYWJsZU5hbWUgOiB1bnNjb3BhYmxlTmFtZXMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUu
Y3BwCmluZGV4IGI5NDVkMDA1ZmRhZjE0Yjk4MzE4NDQ2ZGY4ZTBjNjVjMzI3ODYyNzAuLjRkOWI3
YzJiZDU1YjRhYzc3MTEzNzQwZTY1MDVjZThhZDQxYTA4ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUu
Y3BwCkBAIC00NTMsNyArNDUzLDExIEBAIHZvaWQgSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgSlND
X05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImluY2x1ZGVzIiwgdHlwZWRBcnJh
eVZpZXdQcm90b0Z1bmNJbmNsdWRlcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZpbGxQdWJsaWNOYW1l
KCksIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jRmlsbCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTigiZmluZCIsIHR5cGVkQXJyYXlQcm90b3R5cGVGaW5kQ29kZUdl
bmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSkpOworICAgIGlmIChPcHRpb25zOjp1c2VBcnJheUZpbmRMYXN0TWV0aG9kKCkpCisgICAgICAg
IEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5maW5kTGFzdFB1YmxpY05hbWUoKSwgdHlwZWRBcnJheVByb3RvdHlw
ZUZpbmRMYXN0Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSkpOwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTigiZmluZEluZGV4IiwgdHlwZWRBcnJheVByb3RvdHlwZUZpbmRJbmRleENvZGVHZW5l
cmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
KTsKKyAgICBpZiAoT3B0aW9uczo6dXNlQXJyYXlGaW5kTGFzdE1ldGhvZCgpKQorICAgICAgICBK
U0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuZmluZExhc3RJbmRleFB1YmxpY05hbWUoKSwgdHlwZWRBcnJheVByb3Rv
dHlwZUZpbmRMYXN0SW5kZXhDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmZvckVhY2gsIHR5cGVkQXJyYXlQcm90
b3R5cGVGb3JFYWNoQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKCJpbmRleE9mIiwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmRleE9mLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiAgICAg
SlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+
am9pbiwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9uc0xpc3QuaAppbmRleCBiYjRmMjUxMzgyMjQ4ODhiOWUyNzE5NDAzZWUy
NjU0Nzk4Zjk5NzUzLi5mMDE3MDliOTgwNDI2YTQyNjRhYjgwOTIzMWEwMDk5Yzc2YjFhNjc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKQEAgLTU1MCw2
ICs1NTAsNyBAQCBib29sIGNhblVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeSgpOwogICAgIHYoQm9v
bCwgdXNlRGF0YUlDSW5PcHRpbWl6aW5nSklULCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAg
ICAgdihCb29sLCB1c2VEYXRhSUNTaGFyaW5nLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAg
ICAgdihCb29sLCB1c2VUZW1wb3JhbCwgZmFsc2UsIE5vcm1hbCwgIkV4cG9zZSB0aGUgVGVtcG9y
YWwgb2JqZWN0LiIpIFwKKyAgICB2KEJvb2wsIHVzZUFycmF5RmluZExhc3RNZXRob2QsIGZhbHNl
LCBOb3JtYWwsICJFeHBvc2UgdGhlIGZpbmRMYXN0KCkgYW5kIGZpbmRMYXN0SW5kZXgoKSBtZXRo
b2RzIG9uIEFycmF5IGFuZCAlVHlwZWRBcnJheSUuIikgXAogCiAKIGVudW0gT3B0aW9uRXF1aXZh
bGVuY2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMKaW5kZXgg
ZWUyMjhiYTA4N2NiMzI5Y2Y3MzljZmJkYzBhNGU4YWNkMWNiNTdkMS4uZWY3OTI1MzY5MTA0NWMw
NTI0YWU4YmMwNzI5YTA3OGU2ZmU4NGViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rp
b25QYXJhbWV0ZXJzLmpzCkBAIC0yNDksNiArMjQ5LDggQEAgV0kuTmF0aXZlUHJvdG90eXBlRnVu
Y3Rpb25QYXJhbWV0ZXJzID0gewogICAgICAgICBmaWx0ZXI6ICJjYWxsYmFjaywgW3RoaXNBcmdd
IiwKICAgICAgICAgZmluZDogImNhbGxiYWNrLCBbdGhpc0FyZ10iLAogICAgICAgICBmaW5kSW5k
ZXg6ICJjYWxsYmFjaywgW3RoaXNBcmddIiwKKyAgICAgICAgZmluZExhc3Q6ICJjYWxsYmFjaywg
W3RoaXNBcmddIiwKKyAgICAgICAgZmluZExhc3RJbmRleDogImNhbGxiYWNrLCBbdGhpc0FyZ10i
LAogICAgICAgICBmb3JFYWNoOiAiY2FsbGJhY2ssIFt0aGlzQXJnXSIsCiAgICAgICAgIGluY2x1
ZGVzOiAic2VhcmNoVmFsdWUsIFtzdGFydEluZGV4PTBdIiwKICAgICAgICAgaW5kZXhPZjogInNl
YXJjaFZhbHVlLCBbc3RhcnRJbmRleD0wXSIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDU0ZWQ4M2MyZmNhN2FmYTIyYjI1
ZDE0MDNhMzYzZTYzMGFjZmI1OS4uOWE4ZmE4MjdmYzhjZGIyYzM3OTRhMmEwZTRiNWFjZThhMTRl
NDAxNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTA3LTEzICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQXJyYXkucHJvdG90eXBlLmZp
bmRMYXN0IGFuZCBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3OTM5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAgICAqIGpzL2FycmF5LWZpbmRMYXN0Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGpzL2FycmF5LWZpbmRMYXN0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL2FycmF5LWZpbmRMYXN0LmpzOiBBZGRlZC4KKyAg
ICAgICAgKHBhc3NVbmRlZmluZWQpOgorICAgICAgICAocGFzc1plcm8pOgorICAgICAgICAocGFz
c051bGwpOgorICAgICAgICAocGFzc0ZhbHNlKToKKyAgICAgICAgKHBhc3NFbXB0eVN0cmluZyk6
CisgICAgICAgIChwYXNzRXZlbik6CisgICAgICAgIChwYXNzQWZ0ZXI1KToKKyAgICAgICAgKHRv
T2JqZWN0KToKKyAgICAgICAgKGZpbmRJdGVtQWRkZWREdXJpbmdTZWFyY2gpOgorICAgICAgICAo
bnVtYmVyT2ZDYWxsYmFja3NJbkZpbmRJbkFycmF5V2l0aEhvbGVzKToKKyAgICAgICAgKHRocm93
RXJyb3IpOgorCisgICAgICAgICoganMvYXJyYXktZmluZExhc3RJbmRleC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBqcy9hcnJheS1maW5kTGFzdEluZGV4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICoganMvc2NyaXB0LXRlc3RzL2FycmF5LWZpbmRMYXN0SW5kZXguanM6IEFkZGVkLgor
ICAgICAgICAocGFzc1VuZGVmaW5lZCk6CisgICAgICAgIChwYXNzWmVybyk6CisgICAgICAgIChw
YXNzTnVsbCk6CisgICAgICAgIChwYXNzRmFsc2UpOgorICAgICAgICAocGFzc0VtcHR5U3RyaW5n
KToKKyAgICAgICAgKHBhc3NFdmVuKToKKyAgICAgICAgKHBhc3NBZnRlcjUpOgorICAgICAgICAo
dG9PYmplY3QpOgorICAgICAgICAoZmluZEl0ZW1BZGRlZER1cmluZ1NlYXJjaCk6CisgICAgICAg
IChudW1iZXJPZkNhbGxiYWNrc0luRmluZEluZGV4SW5BcnJheVdpdGhIb2xlcyk6CisgICAgICAg
ICh0aHJvd0Vycm9yKToKKwogMjAyMS0wNy0xMyAgRXJpYyBIdXRjaGlzb24gIDxlaHV0Y2hpc29u
QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jb25kaXRpb25hbC9pZGxoYXJuZXNzLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvYXJyYXktZmluZExhc3QtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvanMvYXJyYXktZmluZExhc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0
NTVmMDdhMzFiNWIwMmI4ZTdkMTQwMWE1MDFkZjFlYWFjNDU4ZGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9hcnJheS1maW5kTGFzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
MSBAQAorVGVzdHMgZm9yIEFycmF5LnByb3RvdHlwZS5maW5kTGFzdAorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBBcnJheS5wcm90b3R5cGUuZmluZExhc3QubGVuZ3RoIGlz
IDEKK1BBU1MgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0Lm5hbWUgaXMgJ2ZpbmRMYXN0JworUEFT
UyBbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddLmZpbmRMYXN0KHBhc3NVbmRlZmluZWQp
IGlzIHVuZGVmaW5lZAorUEFTUyBbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddLmZpbmRM
YXN0KHBhc3NaZXJvKSBpcyAwCitQQVNTIFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10u
ZmluZExhc3QocGFzc051bGwpIGlzIG51bGwKK1BBU1MgW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFs
c2UsICcnXS5maW5kTGFzdChwYXNzRmFsc2UpIGlzIGZhbHNlCitQQVNTIFt1bmRlZmluZWQsIDAs
IG51bGwsIGZhbHNlLCAnJ10uZmluZExhc3QocGFzc0VtcHR5U3RyaW5nKSBpcyAnJworUEFTUyBb
MCwxLDIsMyw0LDUsNiw3LDgsOV0uZmluZExhc3QocGFzc0V2ZW4pIGlzIDgKK1BBU1MgWzAsMSwy
LDMsNCw1LDYsNyw4LDldLmZpbmRMYXN0KHBhc3NBZnRlcjUpIGlzIDkKK1BBU1MgWzAsIG51bGws
IGZhbHNlLCAnJ10uZmluZExhc3QocGFzc1VuZGVmaW5lZCkgaXMgdW5kZWZpbmVkCitQQVNTIFt1
bmRlZmluZWQsIDAsIGZhbHNlLCAnJ10uZmluZExhc3QocGFzc051bGwpIGlzIHVuZGVmaW5lZAor
UEFTUyBbdW5kZWZpbmVkLCAwLCBudWxsLCAnJ10uZmluZExhc3QocGFzc0ZhbHNlKSBpcyB1bmRl
ZmluZWQKK1BBU1MgW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2VdLmZpbmRMYXN0KHBhc3NFbXB0
eVN0cmluZykgaXMgdW5kZWZpbmVkCitQQVNTIFsxLDMsNSw3LDldLmZpbmRMYXN0KHBhc3NFdmVu
KSBpcyB1bmRlZmluZWQKK1BBU1MgWzAsMSwyLDMsNF0uZmluZExhc3QocGFzc0FmdGVyNSkgaXMg
dW5kZWZpbmVkCitQQVNTIFt1bmRlZmluZWQsIG51bGwsIGZhbHNlLCAnJ10uZmluZExhc3QocGFz
c1plcm8pIGlzIHVuZGVmaW5lZAorQXJyYXkgd2l0aCBob2xlcworUEFTUyAobmV3IEFycmF5KDIw
KSkuZmluZExhc3QocGFzc1VuZGVmaW5lZCkgaXMgdW5kZWZpbmVkCitQQVNTIGFycmF5V2l0aEhv
bGVzLmZpbmRMYXN0KHBhc3NVbmRlZmluZWQpIGlzIHVuZGVmaW5lZAorUEFTUyBhcnJheVdpdGhI
b2xlcy5maW5kTGFzdChwYXNzWmVybykgaXMgMAorUEFTUyBhcnJheVdpdGhIb2xlcy5maW5kTGFz
dChwYXNzTnVsbCkgaXMgbnVsbAorUEFTUyBhcnJheVdpdGhIb2xlcy5maW5kTGFzdChwYXNzRmFs
c2UpIGlzIGZhbHNlCitQQVNTIGFycmF5V2l0aEhvbGVzLmZpbmRMYXN0KHBhc3NFbXB0eVN0cmlu
ZykgaXMgJycKK1BBU1MgYXJyYXlXaXRoSG9sZXMuZmluZExhc3QocGFzc0FmdGVyNSkgaXMgJycK
K0dlbmVyaWMgT2JqZWN0CitQQVNTIHRvT2JqZWN0KFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNl
LCAnJ10pLmZpbmRMYXN0KHBhc3NVbmRlZmluZWQpIGlzIHVuZGVmaW5lZAorUEFTUyB0b09iamVj
dChbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddKS5maW5kTGFzdChwYXNzWmVybykgaXMg
MAorUEFTUyB0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddKS5maW5kTGFz
dChwYXNzTnVsbCkgaXMgbnVsbAorUEFTUyB0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBm
YWxzZSwgJyddKS5maW5kTGFzdChwYXNzRmFsc2UpIGlzIGZhbHNlCitQQVNTIHRvT2JqZWN0KFt1
bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0KHBhc3NFbXB0eVN0cmluZykg
aXMgJycKK1BBU1MgdG9PYmplY3QoWzAsIG51bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0KHBhc3NV
bmRlZmluZWQpIGlzIHVuZGVmaW5lZAorUEFTUyB0b09iamVjdChbdW5kZWZpbmVkLCAwLCBmYWxz
ZSwgJyddKS5maW5kTGFzdChwYXNzTnVsbCkgaXMgdW5kZWZpbmVkCitQQVNTIHRvT2JqZWN0KFt1
bmRlZmluZWQsIDAsIG51bGwsICcnXSkuZmluZExhc3QocGFzc0ZhbHNlKSBpcyB1bmRlZmluZWQK
K1BBU1MgdG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2VdKS5maW5kTGFzdChwYXNz
RW1wdHlTdHJpbmcpIGlzIHVuZGVmaW5lZAorUEFTUyB0b09iamVjdChbdW5kZWZpbmVkLCBudWxs
LCBmYWxzZSwgJyddKS5maW5kTGFzdChwYXNzWmVybykgaXMgdW5kZWZpbmVkCitQQVNTIHRvT2Jq
ZWN0KG5ldyBBcnJheSgyMCkpLmZpbmRMYXN0KHBhc3NVbmRlZmluZWQpIGlzIHVuZGVmaW5lZAor
QXJyYXktbGlrZSBvYmplY3Qgd2l0aCBpbnZhbGlkIGxlbmd0aHMKK1BBU1MgdmFyIG9iaiA9IHsg
MDogMSwgMTogMiwgMjogMywgbGVuZ3RoOiAwIH07IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdC5j
YWxsKG9iaiwgdGhyb3dFcnJvcikgaXMgdW5kZWZpbmVkLgorUEFTUyB2YXIgb2JqID0geyAwOiAx
LCAxOiAyLCAyOiAzLCBsZW5ndGg6IC0wIH07IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdC5jYWxs
KG9iaiwgdGhyb3dFcnJvcikgaXMgdW5kZWZpbmVkLgorUEFTUyB2YXIgb2JqID0geyAwOiAxLCAx
OiAyLCAyOiAzLCBsZW5ndGg6IC0zIH07IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdC5jYWxsKG9i
aiwgdGhyb3dFcnJvcikgaXMgdW5kZWZpbmVkLgorTW9kaWZpY2F0aW9uIGR1cmluZyBzZWFyY2gK
K1BBU1MgWzAsMSwyLDMsNCw1LDYsNyw4LDldLmZpbmRMYXN0KGZpbmRJdGVtQWRkZWREdXJpbmdT
ZWFyY2gpIGlzIHVuZGVmaW5lZAorUEFTUyBbMCwxLDIsMyw0LDUsNiw3LDgsOV0uZmluZExhc3Qo
ZmluZEl0ZW1SZW1vdmVkRHVyaW5nU2VhcmNoKSBpcyB1bmRlZmluZWQKK0V4Y2VwdGlvbnMKK1BB
U1MgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0LmNhbGwodW5kZWZpbmVkLCBmdW5jdGlvbigpIHt9
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3QgcmVx
dWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLgorUEFTUyBBcnJheS5w
cm90b3R5cGUuZmluZExhc3QuY2FsbChudWxsLCBmdW5jdGlvbigpIHt9KSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3QgcmVxdWlyZXMgdGhhdCB8dGhp
c3wgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLgorUEFTUyBbXS5maW5kTGFzdCgxKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3QgY2FsbGJhY2sgbXVz
dCBiZSBhIGZ1bmN0aW9uLgorUEFTUyBbXS5maW5kTGFzdCgnaGVsbG8nKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3QgY2FsbGJhY2sgbXVzdCBiZSBh
IGZ1bmN0aW9uLgorUEFTUyBbXS5maW5kTGFzdChbXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4K
K1BBU1MgW10uZmluZExhc3Qoe30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFycmF5LnBy
b3RvdHlwZS5maW5kTGFzdCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24uCitQQVNTIFtdLmZp
bmRMYXN0KG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5m
aW5kTGFzdCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24uCitQQVNTIFtdLmZpbmRMYXN0KHVu
ZGVmaW5lZCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRM
YXN0IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4KK0NhbGxiYWNrcyBpbiB0aGUgZXhwZWN0
ZWQgb3JkZXIgYW5kICpub3QqIHNraXBwaW5nIGhvbGVzCitmaW5kTGFzdCBjYWxsYmFjayBjYWxs
ZWQgd2l0aCBpbmRleCA3CitmaW5kTGFzdCBjYWxsYmFjayBjYWxsZWQgd2l0aCBpbmRleCA2Citm
aW5kTGFzdCBjYWxsYmFjayBjYWxsZWQgd2l0aCBpbmRleCA1CitmaW5kTGFzdCBjYWxsYmFjayBj
YWxsZWQgd2l0aCBpbmRleCA0CitmaW5kTGFzdCBjYWxsYmFjayBjYWxsZWQgd2l0aCBpbmRleCAz
CitmaW5kTGFzdCBjYWxsYmFjayBjYWxsZWQgd2l0aCBpbmRleCAyCitmaW5kTGFzdCBjYWxsYmFj
ayBjYWxsZWQgd2l0aCBpbmRleCAxCitmaW5kTGFzdCBjYWxsYmFjayBjYWxsZWQgd2l0aCBpbmRl
eCAwCitQQVNTIG51bWJlck9mQ2FsbGJhY2tzSW5GaW5kSW5BcnJheVdpdGhIb2xlcygpIGlzIDgK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9hcnJheS1maW5kTGFzdC5odG1sIGIvTGF5b3V0VGVzdHMv
anMvYXJyYXktZmluZExhc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzNmMTRmZDI2NDJjZTUxNDEyM2Qz
NzliMDBlMGMyMDA2ZDNmMDQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvYXJy
YXktZmluZExhc3QuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBqc2NPcHRp
b25zPS0tdXNlQXJyYXlGaW5kTGFzdE1ldGhvZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktZmluZExhc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvYXJy
YXktZmluZExhc3RJbmRleC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9hcnJheS1maW5k
TGFzdEluZGV4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDJjMTkzM2I1YTBmNThjYzdiZWE2
Y2Q2NDYxMjcyYjk4NDk1MmNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvYXJy
YXktZmluZExhc3RJbmRleC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3MiBAQAorVGVzdHMgZm9y
IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4Lmxlbmd0aCBpcyAxCitQ
QVNTIEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4Lm5hbWUgaXMgJ2ZpbmRMYXN0SW5kZXgn
CitQQVNTIFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10uZmluZExhc3RJbmRleChwYXNz
VW5kZWZpbmVkKSBpcyAwCitQQVNTIFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10uZmlu
ZExhc3RJbmRleChwYXNzWmVybykgaXMgMQorUEFTUyBbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxz
ZSwgJyddLmZpbmRMYXN0SW5kZXgocGFzc051bGwpIGlzIDIKK1BBU1MgW3VuZGVmaW5lZCwgMCwg
bnVsbCwgZmFsc2UsICcnXS5maW5kTGFzdEluZGV4KHBhc3NGYWxzZSkgaXMgMworUEFTUyBbdW5k
ZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddLmZpbmRMYXN0SW5kZXgocGFzc0VtcHR5U3RyaW5n
KSBpcyA0CitQQVNTIFswLDEsMiwzLDQsNSw2LDcsOCw5XS5maW5kTGFzdEluZGV4KHBhc3NFdmVu
KSBpcyA4CitQQVNTIFswLDEsMiwzLDQsNSw2LDcsOCw5XS5maW5kTGFzdEluZGV4KHBhc3NBZnRl
cjUpIGlzIDkKK1BBU1MgWzAsIG51bGwsIGZhbHNlLCAnJ10uZmluZExhc3RJbmRleChwYXNzVW5k
ZWZpbmVkKSBpcyAtMQorUEFTUyBbdW5kZWZpbmVkLCAwLCBmYWxzZSwgJyddLmZpbmRMYXN0SW5k
ZXgocGFzc051bGwpIGlzIC0xCitQQVNTIFt1bmRlZmluZWQsIDAsIG51bGwsICcnXS5maW5kTGFz
dEluZGV4KHBhc3NGYWxzZSkgaXMgLTEKK1BBU1MgW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2Vd
LmZpbmRMYXN0SW5kZXgocGFzc0VtcHR5U3RyaW5nKSBpcyAtMQorUEFTUyBbMSwzLDUsNyw5XS5m
aW5kTGFzdEluZGV4KHBhc3NFdmVuKSBpcyAtMQorUEFTUyBbMCwxLDIsMyw0XS5maW5kTGFzdElu
ZGV4KHBhc3NBZnRlcjUpIGlzIC0xCitQQVNTIFt1bmRlZmluZWQsIG51bGwsIGZhbHNlLCAnJ10u
ZmluZExhc3RJbmRleChwYXNzWmVybykgaXMgLTEKK0FycmF5IHdpdGggaG9sZXMKK1BBU1MgKG5l
dyBBcnJheSgyMCkpLmZpbmRMYXN0SW5kZXgocGFzc1VuZGVmaW5lZCkgaXMgMTkKK1BBU1MgYXJy
YXlXaXRoSG9sZXMuZmluZExhc3RJbmRleChwYXNzVW5kZWZpbmVkKSBpcyA2CitQQVNTIGFycmF5
V2l0aEhvbGVzLmZpbmRMYXN0SW5kZXgocGFzc1plcm8pIGlzIDEKK1BBU1MgYXJyYXlXaXRoSG9s
ZXMuZmluZExhc3RJbmRleChwYXNzTnVsbCkgaXMgMworUEFTUyBhcnJheVdpdGhIb2xlcy5maW5k
TGFzdEluZGV4KHBhc3NGYWxzZSkgaXMgNQorUEFTUyBhcnJheVdpdGhIb2xlcy5maW5kTGFzdElu
ZGV4KHBhc3NFbXB0eVN0cmluZykgaXMgNworUEFTUyBhcnJheVdpdGhIb2xlcy5maW5kTGFzdElu
ZGV4KHBhc3NBZnRlcjUpIGlzIDcKK1BBU1MgYXJyYXlXaXRoSG9sZXMuZmluZExhc3RJbmRleChw
YXNzVW5kZWZpbmVkKSBpcyA0CitHZW5lcmljIE9iamVjdAorUEFTUyB0b09iamVjdChbdW5kZWZp
bmVkLCAwLCBudWxsLCBmYWxzZSwgJyddKS5maW5kTGFzdEluZGV4KHBhc3NVbmRlZmluZWQpIGlz
IDAKK1BBU1MgdG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXSkuZmluZExh
c3RJbmRleChwYXNzWmVybykgaXMgMQorUEFTUyB0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxs
LCBmYWxzZSwgJyddKS5maW5kTGFzdEluZGV4KHBhc3NOdWxsKSBpcyAyCitQQVNTIHRvT2JqZWN0
KFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0SW5kZXgocGFzc0ZhbHNl
KSBpcyAzCitQQVNTIHRvT2JqZWN0KFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10pLmZp
bmRMYXN0SW5kZXgocGFzc0VtcHR5U3RyaW5nKSBpcyA0CitQQVNTIHRvT2JqZWN0KFswLCBudWxs
LCBmYWxzZSwgJyddKS5maW5kTGFzdEluZGV4KHBhc3NVbmRlZmluZWQpIGlzIC0xCitQQVNTIHRv
T2JqZWN0KFt1bmRlZmluZWQsIDAsIGZhbHNlLCAnJ10pLmZpbmRMYXN0SW5kZXgocGFzc051bGwp
IGlzIC0xCitQQVNTIHRvT2JqZWN0KFt1bmRlZmluZWQsIDAsIG51bGwsICcnXSkuZmluZExhc3RJ
bmRleChwYXNzRmFsc2UpIGlzIC0xCitQQVNTIHRvT2JqZWN0KFt1bmRlZmluZWQsIDAsIG51bGws
IGZhbHNlXSkuZmluZExhc3RJbmRleChwYXNzRW1wdHlTdHJpbmcpIGlzIC0xCitQQVNTIHRvT2Jq
ZWN0KFt1bmRlZmluZWQsIG51bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0SW5kZXgocGFzc1plcm8p
IGlzIC0xCitQQVNTIHRvT2JqZWN0KG5ldyBBcnJheSgyMCkpLmZpbmRMYXN0SW5kZXgocGFzc1Vu
ZGVmaW5lZCkgaXMgMTkKK0FycmF5LWxpa2Ugb2JqZWN0IHdpdGggaW52YWxpZCBsZW5ndGhzCitQ
QVNTIHZhciBvYmogPSB7IDA6IDEsIDE6IDIsIDI6IDMsIGxlbmd0aDogMCB9OyBBcnJheS5wcm90
b3R5cGUuZmluZExhc3RJbmRleC5jYWxsKG9iaiwgdGhyb3dFcnJvcikgaXMgLTEKK1BBU1MgdmFy
IG9iaiA9IHsgMDogMSwgMTogMiwgMjogMywgbGVuZ3RoOiAtMCB9OyBBcnJheS5wcm90b3R5cGUu
ZmluZExhc3RJbmRleC5jYWxsKG9iaiwgdGhyb3dFcnJvcikgaXMgLTEKK1BBU1MgdmFyIG9iaiA9
IHsgMDogMSwgMTogMiwgMjogMywgbGVuZ3RoOiAtMyB9OyBBcnJheS5wcm90b3R5cGUuZmluZExh
c3RJbmRleC5jYWxsKG9iaiwgdGhyb3dFcnJvcikgaXMgLTEKK01vZGlmaWNhdGlvbiBkdXJpbmcg
c2VhcmNoCitQQVNTIFswLDEsMiwzLDQsNSw2LDcsOCw5XS5maW5kTGFzdEluZGV4KGZpbmRJdGVt
QWRkZWREdXJpbmdTZWFyY2gpIGlzIC0xCitQQVNTIFswLDEsMiwzLDQsNSw2LDcsOCw5XS5maW5k
TGFzdEluZGV4KGZpbmRJdGVtUmVtb3ZlZER1cmluZ1NlYXJjaCkgaXMgLTEKK0V4Y2VwdGlvbnMK
K1BBU1MgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXguY2FsbCh1bmRlZmluZWQsIGZ1bmN0
aW9uKCkge30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5maW5k
TGFzdEluZGV4IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZC4K
K1BBU1MgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXguY2FsbChudWxsLCBmdW5jdGlvbigp
IHt9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJ
bmRleCByZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQuCitQQVNT
IFtdLmZpbmRMYXN0SW5kZXgoMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJyYXkucHJv
dG90eXBlLmZpbmRMYXN0SW5kZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgorUEFTUyBb
XS5maW5kTGFzdEluZGV4KCdoZWxsbycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFycmF5
LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4KK1BB
U1MgW10uZmluZExhc3RJbmRleChbXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJyYXku
cHJvdG90eXBlLmZpbmRMYXN0SW5kZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgorUEFT
UyBbXS5maW5kTGFzdEluZGV4KHt9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcnJheS5w
cm90b3R5cGUuZmluZExhc3RJbmRleCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24uCitQQVNT
IFtdLmZpbmRMYXN0SW5kZXgobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJyYXku
cHJvdG90eXBlLmZpbmRMYXN0SW5kZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgorUEFT
UyBbXS5maW5kTGFzdEluZGV4KHVuZGVmaW5lZCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
QXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9u
LgorQ2FsbGJhY2tzIGluIHRoZSBleHBlY3RlZCBvcmRlciBhbmQgKm5vdCogc2tpcHBpbmcgaG9s
ZXMKK2ZpbmQgY2FsbGJhY2sgY2FsbGVkIHdpdGggaW5kZXggMAorZmluZCBjYWxsYmFjayBjYWxs
ZWQgd2l0aCBpbmRleCAxCitmaW5kIGNhbGxiYWNrIGNhbGxlZCB3aXRoIGluZGV4IDIKK2ZpbmQg
Y2FsbGJhY2sgY2FsbGVkIHdpdGggaW5kZXggMworZmluZCBjYWxsYmFjayBjYWxsZWQgd2l0aCBp
bmRleCA0CitmaW5kIGNhbGxiYWNrIGNhbGxlZCB3aXRoIGluZGV4IDUKK2ZpbmQgY2FsbGJhY2sg
Y2FsbGVkIHdpdGggaW5kZXggNgorZmluZCBjYWxsYmFjayBjYWxsZWQgd2l0aCBpbmRleCA3CitQ
QVNTIG51bWJlck9mQ2FsbGJhY2tzSW5GaW5kSW5kZXhJbkFycmF5V2l0aEhvbGVzKCkgaXMgOAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL2FycmF5LWZpbmRMYXN0SW5kZXguaHRtbCBiL0xheW91dFRl
c3RzL2pzL2FycmF5LWZpbmRMYXN0SW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzIyY2NlZWY5Y2Jh
ZTM3ZDYzNmYwZWYzOGNiYzRhNzI2MDljNDUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvYXJyYXktZmluZExhc3RJbmRleC5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGpzY09wdGlvbnM9LS11c2VBcnJheUZpbmRMYXN0TWV0aG9kPXRydWUgXSAtLT4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hcnJh
eS1maW5kTGFzdEluZGV4LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9hcnJheS1maW5kTGFzdC5qcyBiL0xheW91dFRl
c3RzL2pzL3NjcmlwdC10ZXN0cy9hcnJheS1maW5kTGFzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNTEyNTA3
YWFjYWU0OTZlYzMwZGEzYzc1NjgxMzlhNGVlYzQzZmE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2FycmF5LWZpbmRMYXN0LmpzCkBAIC0wLDAgKzEsMTIw
IEBACisvL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlQXJyYXlGaW5kTGFzdE1ldGhvZD10cnVlIikK
K2Rlc2NyaXB0aW9uKCJUZXN0cyBmb3IgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0Iik7CisKK3No
b3VsZEJlKCJBcnJheS5wcm90b3R5cGUuZmluZExhc3QubGVuZ3RoIiwgIjEiKTsKK3Nob3VsZEJl
KCJBcnJheS5wcm90b3R5cGUuZmluZExhc3QubmFtZSIsICInZmluZExhc3QnIik7CisKK2Z1bmN0
aW9uIHBhc3NVbmRlZmluZWQoZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7CisgICAgcmV0dXJuIHR5
cGVvZiBlbGVtZW50ID09PSAidW5kZWZpbmVkIjsKK30KK2Z1bmN0aW9uIHBhc3NaZXJvKGVsZW1l
bnQsIGluZGV4LCBhcnJheSkgeworICAgIHJldHVybiBlbGVtZW50ID09PSAwOworfQorZnVuY3Rp
b24gcGFzc051bGwoZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7CisgICAgcmV0dXJuIGVsZW1lbnQg
PT09IG51bGw7Cit9CitmdW5jdGlvbiBwYXNzRmFsc2UoZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7
CisgICAgcmV0dXJuIGVsZW1lbnQgPT09IGZhbHNlOworfQorZnVuY3Rpb24gcGFzc0VtcHR5U3Ry
aW5nKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgeworICAgIHJldHVybiBlbGVtZW50ID09PSAiIjsK
K30KK2Z1bmN0aW9uIHBhc3NFdmVuKGEpIHsKKyAgICByZXR1cm4gIShhICYgMSk7Cit9CitmdW5j
dGlvbiBwYXNzQWZ0ZXI1KGVsZW1lbnQsIGluZGV4KSB7CisgICAgcmV0dXJuIGluZGV4ID49IDU7
Cit9CitmdW5jdGlvbiB0b09iamVjdChhcnJheSkgeworICAgIHZhciByZXN1bHQgPSB7fTsKKyAg
ICByZXN1bHQubGVuZ3RoID0gYXJyYXkubGVuZ3RoOworICAgIGZvciAodmFyIGkgaW4gYXJyYXkp
CisgICAgICAgIHJlc3VsdFtpXSA9IGFycmF5W2ldOworICAgIHJlc3VsdC5maW5kTGFzdD1BcnJh
eS5wcm90b3R5cGUuZmluZExhc3Q7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Z1bmN0aW9uIGZp
bmRJdGVtQWRkZWREdXJpbmdTZWFyY2goZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7CisgICAgaWYg
KGluZGV4ID09PSBhcnJheS5sZW5ndGggLSAxKQorICAgICAgICBhcnJheS51bnNoaWZ0KGFycmF5
Lmxlbmd0aCk7CisgICAgcmV0dXJuIChpbmRleCA9PT0gYXJyYXkubGVuZ3RoIC0gMSk7Cit9Citm
dW5jdGlvbiBmaW5kSXRlbVJlbW92ZWREdXJpbmdTZWFyY2goZWxlbWVudCwgaW5kZXgsIGFycmF5
KSB7CisgICAgaWYgKGluZGV4ID09PSAwKQorICAgICAgICBhcnJheS5zaGlmdCgpOworICAgIHJl
dHVybiAoaW5kZXggPT09IDAgJiYgYXJyYXlbMF0gPT09IGVsZW1lbnQpOworfQorYXJyYXlXaXRo
SG9sZXMgPSBbXTsKK2FycmF5V2l0aEhvbGVzWzFdID0gMDsKK2FycmF5V2l0aEhvbGVzWzNdID0g
bnVsbDsKK2FycmF5V2l0aEhvbGVzWzVdID0gZmFsc2U7CithcnJheVdpdGhIb2xlc1s3XSA9ICIi
OworZnVuY3Rpb24gbnVtYmVyT2ZDYWxsYmFja3NJbkZpbmRJbkFycmF5V2l0aEhvbGVzKCkgewor
ICAgIHZhciBjb3VudCA9IDA7CisgICAgYXJyYXlXaXRoSG9sZXMuZmluZExhc3QoZnVuY3Rpb24o
ZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7CisgICAgICAgIGRlYnVnKCJmaW5kTGFzdCBjYWxsYmFj
ayBjYWxsZWQgd2l0aCBpbmRleCAiICsgaW5kZXgpOworICAgICAgICBjb3VudCsrOworICAgIH0p
OworICAgIHJldHVybiBjb3VudDsKK30KKworc2hvdWxkQmUoIlt1bmRlZmluZWQsIDAsIG51bGws
IGZhbHNlLCAnJ10uZmluZExhc3QocGFzc1VuZGVmaW5lZCkiLCAidW5kZWZpbmVkIik7CitzaG91
bGRCZSgiW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXS5maW5kTGFzdChwYXNzWmVybyki
LCAiMCIpOworc2hvdWxkQmUoIlt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10uZmluZExh
c3QocGFzc051bGwpIiwgIm51bGwiKTsKK3Nob3VsZEJlKCJbdW5kZWZpbmVkLCAwLCBudWxsLCBm
YWxzZSwgJyddLmZpbmRMYXN0KHBhc3NGYWxzZSkiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJbdW5k
ZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddLmZpbmRMYXN0KHBhc3NFbXB0eVN0cmluZykiLCAi
JyciKTsKK3Nob3VsZEJlKCJbMCwxLDIsMyw0LDUsNiw3LDgsOV0uZmluZExhc3QocGFzc0V2ZW4p
IiwgIjgiKTsKK3Nob3VsZEJlKCJbMCwxLDIsMyw0LDUsNiw3LDgsOV0uZmluZExhc3QocGFzc0Fm
dGVyNSkiLCAiOSIpOworc2hvdWxkQmUoIlswLCBudWxsLCBmYWxzZSwgJyddLmZpbmRMYXN0KHBh
c3NVbmRlZmluZWQpIiwgInVuZGVmaW5lZCIpOworc2hvdWxkQmUoIlt1bmRlZmluZWQsIDAsIGZh
bHNlLCAnJ10uZmluZExhc3QocGFzc051bGwpIiwgInVuZGVmaW5lZCIpOworc2hvdWxkQmUoIlt1
bmRlZmluZWQsIDAsIG51bGwsICcnXS5maW5kTGFzdChwYXNzRmFsc2UpIiwgInVuZGVmaW5lZCIp
Oworc2hvdWxkQmUoIlt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlXS5maW5kTGFzdChwYXNzRW1w
dHlTdHJpbmcpIiwgInVuZGVmaW5lZCIpOworc2hvdWxkQmUoIlsxLDMsNSw3LDldLmZpbmRMYXN0
KHBhc3NFdmVuKSIsICJ1bmRlZmluZWQiKTsKK3Nob3VsZEJlKCJbMCwxLDIsMyw0XS5maW5kTGFz
dChwYXNzQWZ0ZXI1KSIsICJ1bmRlZmluZWQiKTsKK3Nob3VsZEJlKCJbdW5kZWZpbmVkLCBudWxs
LCBmYWxzZSwgJyddLmZpbmRMYXN0KHBhc3NaZXJvKSIsICJ1bmRlZmluZWQiKTsKKworZGVidWco
IkFycmF5IHdpdGggaG9sZXMiKQorc2hvdWxkQmUoIihuZXcgQXJyYXkoMjApKS5maW5kTGFzdChw
YXNzVW5kZWZpbmVkKSIsICJ1bmRlZmluZWQiKTsKK3Nob3VsZEJlKCJhcnJheVdpdGhIb2xlcy5m
aW5kTGFzdChwYXNzVW5kZWZpbmVkKSIsICJ1bmRlZmluZWQiKTsKK3Nob3VsZEJlKCJhcnJheVdp
dGhIb2xlcy5maW5kTGFzdChwYXNzWmVybykiLCAiMCIpOworc2hvdWxkQmUoImFycmF5V2l0aEhv
bGVzLmZpbmRMYXN0KHBhc3NOdWxsKSIsICJudWxsIik7CitzaG91bGRCZSgiYXJyYXlXaXRoSG9s
ZXMuZmluZExhc3QocGFzc0ZhbHNlKSIsICJmYWxzZSIpOworc2hvdWxkQmUoImFycmF5V2l0aEhv
bGVzLmZpbmRMYXN0KHBhc3NFbXB0eVN0cmluZykiLCAiJyciKTsKK3Nob3VsZEJlKCJhcnJheVdp
dGhIb2xlcy5maW5kTGFzdChwYXNzQWZ0ZXI1KSIsICInJyIpOworCitkZWJ1ZygiR2VuZXJpYyBP
YmplY3QiKTsKK3Nob3VsZEJlKCJ0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwg
JyddKS5maW5kTGFzdChwYXNzVW5kZWZpbmVkKSIsICJ1bmRlZmluZWQiKTsKK3Nob3VsZEJlKCJ0
b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddKS5maW5kTGFzdChwYXNzWmVy
bykiLCAiMCIpOworc2hvdWxkQmUoInRvT2JqZWN0KFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNl
LCAnJ10pLmZpbmRMYXN0KHBhc3NOdWxsKSIsICJudWxsIik7CitzaG91bGRCZSgidG9PYmplY3Qo
W3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXSkuZmluZExhc3QocGFzc0ZhbHNlKSIsICJm
YWxzZSIpOworc2hvdWxkQmUoInRvT2JqZWN0KFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAn
J10pLmZpbmRMYXN0KHBhc3NFbXB0eVN0cmluZykiLCAiJyciKTsKK3Nob3VsZEJlKCJ0b09iamVj
dChbMCwgbnVsbCwgZmFsc2UsICcnXSkuZmluZExhc3QocGFzc1VuZGVmaW5lZCkiLCAidW5kZWZp
bmVkIik7CitzaG91bGRCZSgidG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgZmFsc2UsICcnXSkuZmlu
ZExhc3QocGFzc051bGwpIiwgInVuZGVmaW5lZCIpOworc2hvdWxkQmUoInRvT2JqZWN0KFt1bmRl
ZmluZWQsIDAsIG51bGwsICcnXSkuZmluZExhc3QocGFzc0ZhbHNlKSIsICJ1bmRlZmluZWQiKTsK
K3Nob3VsZEJlKCJ0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZV0pLmZpbmRMYXN0
KHBhc3NFbXB0eVN0cmluZykiLCAidW5kZWZpbmVkIik7CitzaG91bGRCZSgidG9PYmplY3QoW3Vu
ZGVmaW5lZCwgbnVsbCwgZmFsc2UsICcnXSkuZmluZExhc3QocGFzc1plcm8pIiwgInVuZGVmaW5l
ZCIpOworc2hvdWxkQmUoInRvT2JqZWN0KG5ldyBBcnJheSgyMCkpLmZpbmRMYXN0KHBhc3NVbmRl
ZmluZWQpIiwgInVuZGVmaW5lZCIpOworCitkZWJ1ZygiQXJyYXktbGlrZSBvYmplY3Qgd2l0aCBp
bnZhbGlkIGxlbmd0aHMiKTsKK3ZhciB0aHJvd0Vycm9yID0gZnVuY3Rpb24gdGhyb3dFcnJvcigp
IHsKKyAgICB0aHJvdyBuZXcgRXJyb3IoInNob3VsZCBub3QgcmVhY2ggaGVyZSIpOworfTsKK3No
b3VsZEJlVW5kZWZpbmVkKCJ2YXIgb2JqID0geyAwOiAxLCAxOiAyLCAyOiAzLCBsZW5ndGg6IDAg
fTsgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0LmNhbGwob2JqLCB0aHJvd0Vycm9yKSIpOworc2hv
dWxkQmVVbmRlZmluZWQoInZhciBvYmogPSB7IDA6IDEsIDE6IDIsIDI6IDMsIGxlbmd0aDogLTAg
fTsgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0LmNhbGwob2JqLCB0aHJvd0Vycm9yKSIpOworc2hv
dWxkQmVVbmRlZmluZWQoInZhciBvYmogPSB7IDA6IDEsIDE6IDIsIDI6IDMsIGxlbmd0aDogLTMg
fTsgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0LmNhbGwob2JqLCB0aHJvd0Vycm9yKSIpOworCitk
ZWJ1ZygiTW9kaWZpY2F0aW9uIGR1cmluZyBzZWFyY2giKTsKK3Nob3VsZEJlKCJbMCwxLDIsMyw0
LDUsNiw3LDgsOV0uZmluZExhc3QoZmluZEl0ZW1BZGRlZER1cmluZ1NlYXJjaCkiLCAidW5kZWZp
bmVkIik7CitzaG91bGRCZSgiWzAsMSwyLDMsNCw1LDYsNyw4LDldLmZpbmRMYXN0KGZpbmRJdGVt
UmVtb3ZlZER1cmluZ1NlYXJjaCkiLCAidW5kZWZpbmVkIik7CisKK2RlYnVnKCJFeGNlcHRpb25z
Iik7CitzaG91bGRUaHJvdygiQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0LmNhbGwodW5kZWZpbmVk
LCBmdW5jdGlvbigpIHt9KSIsICInVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3Qg
cmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkJyIpOworc2hvdWxk
VGhyb3coIkFycmF5LnByb3RvdHlwZS5maW5kTGFzdC5jYWxsKG51bGwsIGZ1bmN0aW9uKCkge30p
IiwgIidUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdCByZXF1aXJlcyB0aGF0IHx0
aGlzfCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQnIik7CitzaG91bGRUaHJvdygiW10uZmluZExh
c3QoMSkiLCAiJ1R5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGNhbGxiYWNrIG11
c3QgYmUgYSBmdW5jdGlvbiciKTsKK3Nob3VsZFRocm93KCJbXS5maW5kTGFzdCgnaGVsbG8nKSIs
ICInVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3QgY2FsbGJhY2sgbXVzdCBiZSBh
IGZ1bmN0aW9uJyIpOworc2hvdWxkVGhyb3coIltdLmZpbmRMYXN0KFtdKSIsICInVHlwZUVycm9y
OiBBcnJheS5wcm90b3R5cGUuZmluZExhc3QgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyIp
Oworc2hvdWxkVGhyb3coIltdLmZpbmRMYXN0KHt9KSIsICInVHlwZUVycm9yOiBBcnJheS5wcm90
b3R5cGUuZmluZExhc3QgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyIpOworc2hvdWxkVGhy
b3coIltdLmZpbmRMYXN0KG51bGwpIiwgIidUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5maW5k
TGFzdCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24nIik7CitzaG91bGRUaHJvdygiW10uZmlu
ZExhc3QodW5kZWZpbmVkKSIsICInVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3Qg
Y2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyIpOworCitkZWJ1ZygiQ2FsbGJhY2tzIGluIHRo
ZSBleHBlY3RlZCBvcmRlciBhbmQgKm5vdCogc2tpcHBpbmcgaG9sZXMiKTsKK3Nob3VsZEJlKCJu
dW1iZXJPZkNhbGxiYWNrc0luRmluZEluQXJyYXlXaXRoSG9sZXMoKSIsICI4Iik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJyYXktZmluZExhc3RJbmRleC5qcyBi
L0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9hcnJheS1maW5kTGFzdEluZGV4LmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmIyODkyMjA5MzBiNGQ5MDI1Y2Q5YTc0NDQ2Nzg2YzllYTkzNzRiMTAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJyYXktZmluZExhc3RJbmRl
eC5qcwpAQCAtMCwwICsxLDEyMiBAQAorLy9AIHJlcXVpcmVPcHRpb25zKCItLXVzZUFycmF5Rmlu
ZExhc3RNZXRob2Q9dHJ1ZSIpCitkZXNjcmlwdGlvbigiVGVzdHMgZm9yIEFycmF5LnByb3RvdHlw
ZS5maW5kTGFzdEluZGV4Iik7CisKK3Nob3VsZEJlKCJBcnJheS5wcm90b3R5cGUuZmluZExhc3RJ
bmRleC5sZW5ndGgiLCAiMSIpOworc2hvdWxkQmUoIkFycmF5LnByb3RvdHlwZS5maW5kTGFzdElu
ZGV4Lm5hbWUiLCAiJ2ZpbmRMYXN0SW5kZXgnIik7CisKK2Z1bmN0aW9uIHBhc3NVbmRlZmluZWQo
ZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7CisgICAgcmV0dXJuIHR5cGVvZiBlbGVtZW50ID09PSAi
dW5kZWZpbmVkIjsKK30KK2Z1bmN0aW9uIHBhc3NaZXJvKGVsZW1lbnQsIGluZGV4LCBhcnJheSkg
eworICAgIHJldHVybiBlbGVtZW50ID09PSAwOworfQorZnVuY3Rpb24gcGFzc051bGwoZWxlbWVu
dCwgaW5kZXgsIGFycmF5KSB7CisgICAgcmV0dXJuIGVsZW1lbnQgPT09IG51bGw7Cit9CitmdW5j
dGlvbiBwYXNzRmFsc2UoZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7CisgICAgcmV0dXJuIGVsZW1l
bnQgPT09IGZhbHNlOworfQorZnVuY3Rpb24gcGFzc0VtcHR5U3RyaW5nKGVsZW1lbnQsIGluZGV4
LCBhcnJheSkgeworICAgIHJldHVybiBlbGVtZW50ID09PSAiIjsKK30KK2Z1bmN0aW9uIHBhc3NF
dmVuKGEpIHsKKyAgICByZXR1cm4gIShhICYgMSk7Cit9CitmdW5jdGlvbiBwYXNzQWZ0ZXI1KGVs
ZW1lbnQsIGluZGV4KSB7CisgICAgcmV0dXJuIGluZGV4ID49IDU7Cit9CitmdW5jdGlvbiB0b09i
amVjdChhcnJheSkgeworICAgIHZhciByZXN1bHQgPSB7fTsKKyAgICByZXN1bHQubGVuZ3RoID0g
YXJyYXkubGVuZ3RoOworICAgIGZvciAodmFyIGkgaW4gYXJyYXkpCisgICAgICAgIHJlc3VsdFtp
XSA9IGFycmF5W2ldOworICAgIHJlc3VsdC5maW5kTGFzdEluZGV4ID0gQXJyYXkucHJvdG90eXBl
LmZpbmRMYXN0SW5kZXg7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Z1bmN0aW9uIGZpbmRJdGVt
QWRkZWREdXJpbmdTZWFyY2goZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7CisgICAgaWYgKGluZGV4
ID09PSBhcnJheS5sZW5ndGggLSAxKQorICAgICAgICBhcnJheS51bnNoaWZ0KGFycmF5Lmxlbmd0
aCk7CisgICAgcmV0dXJuIChpbmRleCA9PT0gYXJyYXkubGVuZ3RoIC0gMSk7Cit9CitmdW5jdGlv
biBmaW5kSXRlbVJlbW92ZWREdXJpbmdTZWFyY2goZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7Cisg
ICAgaWYgKGluZGV4ID09PSAwKQorICAgICAgICBhcnJheS5zaGlmdCgpOworICAgIHJldHVybiAo
aW5kZXggPT09IDAgJiYgYXJyYXlbMF0gPT09IGVsZW1lbnQpOworfQordmFyIGFycmF5V2l0aEhv
bGVzID0gW107CithcnJheVdpdGhIb2xlc1sxXSA9IDA7CithcnJheVdpdGhIb2xlc1szXSA9IG51
bGw7CithcnJheVdpdGhIb2xlc1s1XSA9IGZhbHNlOworYXJyYXlXaXRoSG9sZXNbN10gPSAiIjsK
K2Z1bmN0aW9uIG51bWJlck9mQ2FsbGJhY2tzSW5GaW5kSW5kZXhJbkFycmF5V2l0aEhvbGVzKCkg
eworICAgIHZhciBjb3VudCA9IDA7CisgICAgYXJyYXlXaXRoSG9sZXMuZmluZChmdW5jdGlvbihl
bGVtZW50LCBpbmRleCwgYXJyYXkpIHsKKyAgICAgICAgZGVidWcoImZpbmQgY2FsbGJhY2sgY2Fs
bGVkIHdpdGggaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgY291bnQrKzsKKyAgICB9KTsKKyAg
ICByZXR1cm4gY291bnQ7Cit9CisKK3Nob3VsZEJlKCJbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxz
ZSwgJyddLmZpbmRMYXN0SW5kZXgocGFzc1VuZGVmaW5lZCkiLCAiMCIpOworc2hvdWxkQmUoIlt1
bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10uZmluZExhc3RJbmRleChwYXNzWmVybykiLCAi
MSIpOworc2hvdWxkQmUoIlt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10uZmluZExhc3RJ
bmRleChwYXNzTnVsbCkiLCAiMiIpOworc2hvdWxkQmUoIlt1bmRlZmluZWQsIDAsIG51bGwsIGZh
bHNlLCAnJ10uZmluZExhc3RJbmRleChwYXNzRmFsc2UpIiwgIjMiKTsKK3Nob3VsZEJlKCJbdW5k
ZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddLmZpbmRMYXN0SW5kZXgocGFzc0VtcHR5U3RyaW5n
KSIsICI0Iik7CitzaG91bGRCZSgiWzAsMSwyLDMsNCw1LDYsNyw4LDldLmZpbmRMYXN0SW5kZXgo
cGFzc0V2ZW4pIiwgIjgiKTsKK3Nob3VsZEJlKCJbMCwxLDIsMyw0LDUsNiw3LDgsOV0uZmluZExh
c3RJbmRleChwYXNzQWZ0ZXI1KSIsICI5Iik7CitzaG91bGRCZSgiWzAsIG51bGwsIGZhbHNlLCAn
J10uZmluZExhc3RJbmRleChwYXNzVW5kZWZpbmVkKSIsICItMSIpOworc2hvdWxkQmUoIlt1bmRl
ZmluZWQsIDAsIGZhbHNlLCAnJ10uZmluZExhc3RJbmRleChwYXNzTnVsbCkiLCAiLTEiKTsKK3No
b3VsZEJlKCJbdW5kZWZpbmVkLCAwLCBudWxsLCAnJ10uZmluZExhc3RJbmRleChwYXNzRmFsc2Up
IiwgIi0xIik7CitzaG91bGRCZSgiW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2VdLmZpbmRMYXN0
SW5kZXgocGFzc0VtcHR5U3RyaW5nKSIsICItMSIpOworc2hvdWxkQmUoIlsxLDMsNSw3LDldLmZp
bmRMYXN0SW5kZXgocGFzc0V2ZW4pIiwgIi0xIik7CitzaG91bGRCZSgiWzAsMSwyLDMsNF0uZmlu
ZExhc3RJbmRleChwYXNzQWZ0ZXI1KSIsICItMSIpOworc2hvdWxkQmUoIlt1bmRlZmluZWQsIG51
bGwsIGZhbHNlLCAnJ10uZmluZExhc3RJbmRleChwYXNzWmVybykiLCAiLTEiKTsKKworZGVidWco
IkFycmF5IHdpdGggaG9sZXMiKTsKK3Nob3VsZEJlKCIobmV3IEFycmF5KDIwKSkuZmluZExhc3RJ
bmRleChwYXNzVW5kZWZpbmVkKSIsICIxOSIpOworc2hvdWxkQmUoImFycmF5V2l0aEhvbGVzLmZp
bmRMYXN0SW5kZXgocGFzc1VuZGVmaW5lZCkiLCAiNiIpOworc2hvdWxkQmUoImFycmF5V2l0aEhv
bGVzLmZpbmRMYXN0SW5kZXgocGFzc1plcm8pIiwgIjEiKTsKK3Nob3VsZEJlKCJhcnJheVdpdGhI
b2xlcy5maW5kTGFzdEluZGV4KHBhc3NOdWxsKSIsICIzIik7CitzaG91bGRCZSgiYXJyYXlXaXRo
SG9sZXMuZmluZExhc3RJbmRleChwYXNzRmFsc2UpIiwgIjUiKTsKK3Nob3VsZEJlKCJhcnJheVdp
dGhIb2xlcy5maW5kTGFzdEluZGV4KHBhc3NFbXB0eVN0cmluZykiLCAiNyIpOworc2hvdWxkQmUo
ImFycmF5V2l0aEhvbGVzLmZpbmRMYXN0SW5kZXgocGFzc0FmdGVyNSkiLCAiNyIpOworYXJyYXlX
aXRoSG9sZXNbNl0gPSB7fTsKK3Nob3VsZEJlKCJhcnJheVdpdGhIb2xlcy5maW5kTGFzdEluZGV4
KHBhc3NVbmRlZmluZWQpIiwgIjQiKTsKKworZGVidWcoIkdlbmVyaWMgT2JqZWN0Iik7CitzaG91
bGRCZSgidG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXSkuZmluZExhc3RJ
bmRleChwYXNzVW5kZWZpbmVkKSIsICIwIik7CitzaG91bGRCZSgidG9PYmplY3QoW3VuZGVmaW5l
ZCwgMCwgbnVsbCwgZmFsc2UsICcnXSkuZmluZExhc3RJbmRleChwYXNzWmVybykiLCAiMSIpOwor
c2hvdWxkQmUoInRvT2JqZWN0KFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10pLmZpbmRM
YXN0SW5kZXgocGFzc051bGwpIiwgIjIiKTsKK3Nob3VsZEJlKCJ0b09iamVjdChbdW5kZWZpbmVk
LCAwLCBudWxsLCBmYWxzZSwgJyddKS5maW5kTGFzdEluZGV4KHBhc3NGYWxzZSkiLCAiMyIpOwor
c2hvdWxkQmUoInRvT2JqZWN0KFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10pLmZpbmRM
YXN0SW5kZXgocGFzc0VtcHR5U3RyaW5nKSIsICI0Iik7CitzaG91bGRCZSgidG9PYmplY3QoWzAs
IG51bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0SW5kZXgocGFzc1VuZGVmaW5lZCkiLCAiLTEiKTsK
K3Nob3VsZEJlKCJ0b09iamVjdChbdW5kZWZpbmVkLCAwLCBmYWxzZSwgJyddKS5maW5kTGFzdElu
ZGV4KHBhc3NOdWxsKSIsICItMSIpOworc2hvdWxkQmUoInRvT2JqZWN0KFt1bmRlZmluZWQsIDAs
IG51bGwsICcnXSkuZmluZExhc3RJbmRleChwYXNzRmFsc2UpIiwgIi0xIik7CitzaG91bGRCZSgi
dG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2VdKS5maW5kTGFzdEluZGV4KHBhc3NF
bXB0eVN0cmluZykiLCAiLTEiKTsKK3Nob3VsZEJlKCJ0b09iamVjdChbdW5kZWZpbmVkLCBudWxs
LCBmYWxzZSwgJyddKS5maW5kTGFzdEluZGV4KHBhc3NaZXJvKSIsICItMSIpOworc2hvdWxkQmUo
InRvT2JqZWN0KG5ldyBBcnJheSgyMCkpLmZpbmRMYXN0SW5kZXgocGFzc1VuZGVmaW5lZCkiLCAi
MTkiKTsKKworZGVidWcoIkFycmF5LWxpa2Ugb2JqZWN0IHdpdGggaW52YWxpZCBsZW5ndGhzIik7
Cit2YXIgdGhyb3dFcnJvciA9IGZ1bmN0aW9uIHRocm93RXJyb3IoKSB7CisgICAgdGhyb3cgbmV3
IEVycm9yKCJzaG91bGQgbm90IHJlYWNoIGhlcmUiKTsKK307CitzaG91bGRCZSgidmFyIG9iaiA9
IHsgMDogMSwgMTogMiwgMjogMywgbGVuZ3RoOiAwIH07IEFycmF5LnByb3RvdHlwZS5maW5kTGFz
dEluZGV4LmNhbGwob2JqLCB0aHJvd0Vycm9yKSIsICItMSIpOworc2hvdWxkQmUoInZhciBvYmog
PSB7IDA6IDEsIDE6IDIsIDI6IDMsIGxlbmd0aDogLTAgfTsgQXJyYXkucHJvdG90eXBlLmZpbmRM
YXN0SW5kZXguY2FsbChvYmosIHRocm93RXJyb3IpIiwgIi0xIik7CitzaG91bGRCZSgidmFyIG9i
aiA9IHsgMDogMSwgMTogMiwgMjogMywgbGVuZ3RoOiAtMyB9OyBBcnJheS5wcm90b3R5cGUuZmlu
ZExhc3RJbmRleC5jYWxsKG9iaiwgdGhyb3dFcnJvcikiLCAiLTEiKTsKKworZGVidWcoIk1vZGlm
aWNhdGlvbiBkdXJpbmcgc2VhcmNoIik7CitzaG91bGRCZSgiWzAsMSwyLDMsNCw1LDYsNyw4LDld
LmZpbmRMYXN0SW5kZXgoZmluZEl0ZW1BZGRlZER1cmluZ1NlYXJjaCkiLCAiLTEiKTsKK3Nob3Vs
ZEJlKCJbMCwxLDIsMyw0LDUsNiw3LDgsOV0uZmluZExhc3RJbmRleChmaW5kSXRlbVJlbW92ZWRE
dXJpbmdTZWFyY2gpIiwgIi0xIik7CisKK2RlYnVnKCJFeGNlcHRpb25zIik7CitzaG91bGRUaHJv
dygiQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXguY2FsbCh1bmRlZmluZWQsIGZ1bmN0aW9u
KCkge30pIiwgIidUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IHJlcXVp
cmVzIHRoYXQgfHRoaXN8IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCciKTsKK3Nob3VsZFRocm93
KCJBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleC5jYWxsKG51bGwsIGZ1bmN0aW9uKCkge30p
IiwgIidUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IHJlcXVpcmVzIHRo
YXQgfHRoaXN8IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCciKTsKK3Nob3VsZFRocm93KCJbXS5m
aW5kTGFzdEluZGV4KDEpIiwgIidUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdElu
ZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiciKTsKK3Nob3VsZFRocm93KCJbXS5maW5k
TGFzdEluZGV4KCdoZWxsbycpIiwgIidUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5maW5kTGFz
dEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiciKTsKK3Nob3VsZFRocm93KCJbXS5m
aW5kTGFzdEluZGV4KFtdKSIsICInVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJ
bmRleCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24nIik7CitzaG91bGRUaHJvdygiW10uZmlu
ZExhc3RJbmRleCh7fSkiLCAiJ1R5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5k
ZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyIpOworc2hvdWxkVGhyb3coIltdLmZpbmRM
YXN0SW5kZXgobnVsbCkiLCAiJ1R5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5k
ZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyIpOworc2hvdWxkVGhyb3coIltdLmZpbmRM
YXN0SW5kZXgodW5kZWZpbmVkKSIsICInVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExh
c3RJbmRleCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24nIik7CisKK2RlYnVnKCJDYWxsYmFj
a3MgaW4gdGhlIGV4cGVjdGVkIG9yZGVyIGFuZCAqbm90KiBza2lwcGluZyBob2xlcyIpOworc2hv
dWxkQmUoIm51bWJlck9mQ2FsbGJhY2tzSW5GaW5kSW5kZXhJbkFycmF5V2l0aEhvbGVzKCkiLCAi
OCIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwpp
bmRleCAyODNmNmZhYzdkYjdjZWZhYjBlY2Y1OTA4YWNlMjE1MWU1Y2U1YmViLi4zMGQxNWQ0ZjQw
ZDA2ZDE5MmY5NWQ3OGYxMDlmY2ZmMDQyM2RkNzU4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5n
ZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA3LTEz
ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
QXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGFuZCBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRl
eAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3OTM5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAgICAqIHN0cmVz
cy90eXBlZGFycmF5LWZpbmRMYXN0LmpzOiBBZGRlZC4KKyAgICAgICAgKGtlZXBFdmVuKToKKyAg
ICAgICAgKGtlZXBFdmVuQW5kQ2hhbmdlKToKKyAgICAgICAgKGlzQmlnRW5vdWdoQW5kRXhjZXB0
aW9uKToKKworICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWZpbmRMYXN0SW5kZXguanM6IEFk
ZGVkLgorICAgICAgICAoa2VlcEV2ZW4pOgorICAgICAgICAoa2VlcEV2ZW5BbmRDaGFuZ2UpOgor
ICAgICAgICAoaXNCaWdFbm91Z2hBbmRFeGNlcHRpb24pOgorCiAyMDIxLTA3LTEyICBTYWFtIEJh
cmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJ1biBzb21lIHRlc3RzIGZvciBm
ZXdlciBpdGVyYXRpb25zIHRvIHByZXZlbnQgdGVzdCB0aW1lb3V0cwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maW5kTGFzdC5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVk
YXJyYXktZmluZExhc3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzMyOTVkZTZlODljMGQ2YjI2YjdjYWU1MmVl
NThlNWIxYjAzNDczYQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJy
YXktZmluZExhc3QuanMKQEAgLTAsMCArMSw1NyBAQAorLy9AIHJlcXVpcmVPcHRpb25zKCItLXVz
ZUFycmF5RmluZExhc3RNZXRob2Q9dHJ1ZSIpCitsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5
LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKK2Rlc2NyaXB0
aW9uKAorIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnBy
b3RvdHlwZS5maW5kTGFzdCBmdW5jdGlvbiIKKyk7CisKK3Nob3VsZEJlKCJJbnQzMkFycmF5LnBy
b3RvdHlwZS5maW5kTGFzdC5sZW5ndGgiLCAiMSIpOworc2hvdWxkQmUoIkludDMyQXJyYXkucHJv
dG90eXBlLmZpbmRMYXN0Lm5hbWUiLCAiJ2ZpbmRMYXN0JyIpOworc2hvdWxkQmVUcnVlKCJpc1Nh
bWVGdW5jdGlvbkZvckVhY2hUeXBlZEFycmF5UHJvdG90eXBlKCdmaW5kTGFzdCcpIik7CitzaG91
bGRCZVRydWUoInRlc3RQcm90b3R5cGVSZWNlaXZlc0FycmF5KCdmaW5kTGFzdCcsIFt1bmRlZmlu
ZWQsIHRoaXMsIHsgfSwgWyBdLCB0cnVlLCAnJ10pIik7CitkZWJ1ZygiIik7CisKK2RlYnVnKCJ0
ZXN0UHJvdG90eXBlRnVuY3Rpb24gaGFzIHRoZSBmb2xsb3dpbmcgYXJnIGxpc3QgKG5hbWUsIGFy
Z3MsIGluaXQsIHJlc3VsdCBbICwgZXhwZWN0ZWRBcnJheSBdKSIpOworZGVidWcoIiIpOworCitk
ZWJ1ZygiMS4wIFNpbmdsZSBBcmd1bWVudCBUZXN0aW5nIik7CitmdW5jdGlvbiBrZWVwRXZlbihl
LCBpKSB7CisgICAgcmV0dXJuICEoZSAmIDEpIHx8ICh0aGlzLmtlZXAgPyB0aGlzLmtlZXAgPT09
IGkgOiBmYWxzZSk7Cit9CitzaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmlu
ZExhc3QnLCAnKGtlZXBFdmVuKScsIFsxMiwgNSwgOCwgMTMsIDQ0XSwgNDQpIik7CitzaG91bGRC
ZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZExhc3QnLCAnKGtlZXBFdmVuKScsIFsx
MSwgMTMsIDE3LCAxMywgMjJdLCAyMikiKTsKK3Nob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1
bmN0aW9uKCdmaW5kTGFzdCcsICcoa2VlcEV2ZW4pJywgWzIyLCAxMywgMTcsIDEzLCAxMV0sIDIy
KSIpOworc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRMYXN0JywgJyhr
ZWVwRXZlbiknLCBbMTEsIDEzLCAxNywgMTMsIDExXSwgdW5kZWZpbmVkKSIpOworZGVidWcoIiIp
OworCitkZWJ1ZygiMi4wIFR3byBBcmd1bWVudCBUZXN0aW5nIik7Cit2YXIgdGhpc1ZhbHVlID0g
eyBrZWVwOiAzIH07CitzaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZExh
c3QnLCAnKGtlZXBFdmVuLCB0aGlzVmFsdWUpJywgWzExLCAyMywgMTEsIDEsIDQ0XSwgNDQpIik7
CitzaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZExhc3QnLCAnKGtlZXBF
dmVuLCB0aGlzVmFsdWUpJywgWzExLCAyMywgMTEsIDEsIDQzXSwgMSkiKTsKK2RlYnVnKCIiKTsK
KworZGVidWcoIjMuMCBBcnJheSBFbGVtZW50IENoYW5naW5nIik7CitmdW5jdGlvbiBrZWVwRXZl
bkFuZENoYW5nZShlLCBpLCBhKSB7CisgICAgYVthLmxlbmd0aCAtIDEgLSBpXSA9IDU7CisgICAg
cmV0dXJuICEoZSAmIDEpOworfQorc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24o
J2ZpbmRMYXN0JywgJyhrZWVwRXZlbkFuZENoYW5nZSknLCBbMTEsIDE1LCAzLCAxMiwgNDRdLCA0
NCwgWzUsIDE1LCAzNSwgMTIsIDQ0XSkiKTsKK3Nob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1
bmN0aW9uKCdmaW5kTGFzdCcsICcoa2VlcEV2ZW5BbmRDaGFuZ2UpJywgWzQ0LCAxNSwgMywgMTIs
IDExXSwgdW5kZWZpbmVkLCBbNSwgNSwgNSwgNSwgNV0pIik7CitkZWJ1ZygiIik7CisKK2RlYnVn
KCI0LjAgRXhjZXB0aW9uIFRlc3QiKTsKK2Z1bmN0aW9uIGlzQmlnRW5vdWdoQW5kRXhjZXB0aW9u
KGVsZW1lbnQsIGluZGV4LCBhcnJheSkgeworICAgIGlmKGluZGV4PT0zKSB0aHJvdyAiZXhjZXB0
aW9uIGZyb20gZnVuY3Rpb24iOworICAgIHJldHVybiAoZWxlbWVudCA+PSAxMCk7Cit9CitzaG91
bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZExhc3QnLCAnKGlzQmlnRW5vdWdo
QW5kRXhjZXB0aW9uKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCA0NCkiKTsKK3Nob3VsZFRocm93
KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRMYXN0JywgJyhpc0JpZ0Vub3VnaEFuZEV4Y2Vw
dGlvbiknLCBbOSwgMTUsIDEwLCAxMywgNDNdLCBmYWxzZSkiKTsKK2RlYnVnKCIiKTsKKworZGVi
dWcoIjUuMCBXcm9uZyBUeXBlIGZvciBDYWxsYmFjayBUZXN0Iik7CitzaG91bGRUaHJvdygidGVz
dFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kTGFzdCcsICcoOCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0
XSwgZmFsc2UpIiwgIidUeXBlRXJyb3I6IFR5cGVkQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGNh
bGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiciKTsKK3Nob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBl
RnVuY3Rpb24oJ2ZpbmRMYXN0JywgJyhcIndyb25nXCIpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0s
IGZhbHNlKSIsICInVHlwZUVycm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5maW5kTGFzdCBjYWxs
YmFjayBtdXN0IGJlIGEgZnVuY3Rpb24nIik7CitzaG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1
bmN0aW9uKCdmaW5kTGFzdCcsICcobmV3IE9iamVjdCgpKScsIFsxMiwgMTUsIDEwLCAxMywgNDRd
LCBmYWxzZSkiLCAiJ1R5cGVFcnJvcjogVHlwZWRBcnJheS5wcm90b3R5cGUuZmluZExhc3QgY2Fs
bGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyIpOworc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVG
dW5jdGlvbignZmluZExhc3QnLCAnKG51bGwpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNl
KSIsICInVHlwZUVycm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5maW5kTGFzdCBjYWxsYmFjayBt
dXN0IGJlIGEgZnVuY3Rpb24nIik7CitzaG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9u
KCdmaW5kTGFzdCcsICcoKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiLCAiJ1R5cGVF
cnJvcjogVHlwZWRBcnJheS5wcm90b3R5cGUuZmluZExhc3QgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1
bmN0aW9uJyIpOworZGVidWcoIiIpOworZmluaXNoSlNUZXN0KCk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbmRMYXN0SW5kZXguanMgYi9KU1Rlc3RzL3N0cmVzcy90
eXBlZGFycmF5LWZpbmRMYXN0SW5kZXguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODkzNjdhNzYzNmU5YzMzZTg5
ZjhmZDk1NTU2MzI3ZDRlNGVhMWJhNAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktZmluZExhc3RJbmRleC5qcwpAQCAtMCwwICsxLDU3IEBACisvL0AgcmVxdWly
ZU9wdGlvbnMoIi0tdXNlQXJyYXlGaW5kTGFzdE1ldGhvZD10cnVlIikKK2xvYWQoIi4vcmVzb3Vy
Y2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2
ZSIpOworZGVzY3JpcHRpb24oCisiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhl
IFR5cGVkQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXggZnVuY3Rpb24iCispOworCitzaG91
bGRCZSgiSW50MzJBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleC5sZW5ndGgiLCAiMSIpOwor
c2hvdWxkQmUoIkludDMyQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXgubmFtZSIsICInZmlu
ZExhc3RJbmRleCciKTsKK3Nob3VsZEJlVHJ1ZSgiaXNTYW1lRnVuY3Rpb25Gb3JFYWNoVHlwZWRB
cnJheVByb3RvdHlwZSgnZmluZExhc3RJbmRleCcpIik7CitzaG91bGRCZVRydWUoInRlc3RQcm90
b3R5cGVSZWNlaXZlc0FycmF5KCdmaW5kTGFzdEluZGV4JywgW3VuZGVmaW5lZCwgdGhpcywgeyB9
LCBbIF0sIHRydWUsICcnXSkiKTsKK2RlYnVnKCIiKTsKKworZGVidWcoInRlc3RQcm90b3R5cGVG
dW5jdGlvbiBoYXMgdGhlIGZvbGxvd2luZyBhcmcgbGlzdCAobmFtZSwgYXJncywgaW5pdCwgcmVz
dWx0IFsgLCBleHBlY3RlZEFycmF5IF0pIik7CitkZWJ1ZygiIik7CisKK2RlYnVnKCIxLjAgU2lu
Z2xlIEFyZ3VtZW50IFRlc3RpbmciKTsKK2Z1bmN0aW9uIGtlZXBFdmVuKGUsIGkpIHsKKyAgICBy
ZXR1cm4gIShlICYgMSkgfHwgKHRoaXMua2VlcCA/IHRoaXMua2VlcCA9PT0gaSA6IGZhbHNlKTsK
K30KK3Nob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kTGFzdEluZGV4Jywg
JyhrZWVwRXZlbiknLCBbMTIsIDUsIDgsIDEzLCA0NF0sIDQpIik7CitzaG91bGRCZVRydWUoInRl
c3RQcm90b3R5cGVGdW5jdGlvbignZmluZExhc3RJbmRleCcsICcoa2VlcEV2ZW4pJywgWzExLCAx
MywgMTcsIDEzLCAyMl0sIDQpIik7CitzaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlv
bignZmluZExhc3RJbmRleCcsICcoa2VlcEV2ZW4pJywgWzIyLCAxMywgMTcsIDEzLCAxMV0sIDAp
Iik7CitzaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZExhc3RJbmRleCcs
ICcoa2VlcEV2ZW4pJywgWzExLCAxMywgMTcsIDEzLCAxMV0sIC0xKSIpOworZGVidWcoIiIpOwor
CitkZWJ1ZygiMi4wIFR3byBBcmd1bWVudCBUZXN0aW5nIik7Cit2YXIgdGhpc1ZhbHVlID0geyBr
ZWVwOiAzIH07CitzaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZExhc3RJ
bmRleCcsICcoa2VlcEV2ZW4sIHRoaXNWYWx1ZSknLCBbMTEsIDIzLCAxMSwgMSwgNDRdLCA0KSIp
Oworc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRMYXN0SW5kZXgnLCAn
KGtlZXBFdmVuLCB0aGlzVmFsdWUpJywgWzExLCAyMywgMTEsIDEsIDQzXSwgMykiKTsKK2RlYnVn
KCIiKTsKKworZGVidWcoIjMuMCBBcnJheSBFbGVtZW50IENoYW5naW5nIik7CitmdW5jdGlvbiBr
ZWVwRXZlbkFuZENoYW5nZShlLCBpLCBhKSB7CisgICAgYVthLmxlbmd0aCAtIDEgLSBpXSA9IDU7
CisgICAgcmV0dXJuICEoZSAmIDEpOworfQorc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVu
Y3Rpb24oJ2ZpbmRMYXN0SW5kZXgnLCAnKGtlZXBFdmVuQW5kQ2hhbmdlKScsIFsxMSwgMTUsIDMs
IDEyLCA0NF0sIDMsIFs1LCAxNSwgMzUsIDEyLCA0NF0pIik7CitzaG91bGRCZVRydWUoInRlc3RQ
cm90b3R5cGVGdW5jdGlvbignZmluZExhc3RJbmRleCcsICcoa2VlcEV2ZW5BbmRDaGFuZ2UpJywg
WzQ0LCAxNSwgMywgMTIsIDExXSwgLTEsIFs1LCA1LCA1LCA1LCA1XSkiKTsKK2RlYnVnKCIiKTsK
KworZGVidWcoIjQuMCBFeGNlcHRpb24gVGVzdCIpOworZnVuY3Rpb24gaXNCaWdFbm91Z2hBbmRF
eGNlcHRpb24oZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7CisgICAgaWYoaW5kZXg9PTMpIHRocm93
ICJleGNlcHRpb24gZnJvbSBmdW5jdGlvbiI7CisgICAgcmV0dXJuIChlbGVtZW50ID49IDEwKTsK
K30KK3Nob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kTGFzdEluZGV4Jywg
Jyhpc0JpZ0Vub3VnaEFuZEV4Y2VwdGlvbiknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgMykiKTsK
K3Nob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRMYXN0SW5kZXgnLCAnKGlz
QmlnRW5vdWdoQW5kRXhjZXB0aW9uKScsIFs5LCAxNSwgMTAsIDEzLCA0M10sIGZhbHNlKSIpOwor
ZGVidWcoIiIpOworCitkZWJ1ZygiNS4wIFdyb25nIFR5cGUgZm9yIENhbGxiYWNrIFRlc3QiKTsK
K3Nob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRMYXN0SW5kZXgnLCAnKDgp
JywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIsICInVHlwZUVycm9yOiBUeXBlZEFycmF5
LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiciKTsK
K3Nob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRMYXN0SW5kZXgnLCAnKFwi
d3JvbmdcIiknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIiwgIidUeXBlRXJyb3I6IFR5
cGVkQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0
aW9uJyIpOworc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZExhc3RJbmRl
eCcsICcobmV3IE9iamVjdCgpKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiLCAiJ1R5
cGVFcnJvcjogVHlwZWRBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleCBjYWxsYmFjayBtdXN0
IGJlIGEgZnVuY3Rpb24nIik7CitzaG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdm
aW5kTGFzdEluZGV4JywgJyhudWxsKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiLCAi
J1R5cGVFcnJvcjogVHlwZWRBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleCBjYWxsYmFjayBt
dXN0IGJlIGEgZnVuY3Rpb24nIik7CitzaG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9u
KCdmaW5kTGFzdEluZGV4JywgJygpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIsICIn
VHlwZUVycm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IGNhbGxiYWNrIG11
c3QgYmUgYSBmdW5jdGlvbiciKTsKK2RlYnVnKCIiKTsKK2ZpbmlzaEpTVGVzdCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433547</attachid>
            <date>2021-07-14 17:47:11 -0700</date>
            <delta_ts>2021-07-14 20:12:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227939-20210714174710.patch</filename>
            <type>text/plain</type>
            <size>43835</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDYzYWE2YTIwNTU3ZmU0OWViMTljMzI1NjU5NDBk
MWQwMzU0ZTRkNDcuLjQ4ZmRhNzg3MGI2OWNkMjY1YjQ4NDZhZjk5YjBjZDAxNTBhNjAyNzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA3LTEzICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQXJyYXku
cHJvdG90eXBlLmZpbmRMYXN0IGFuZCBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3OTM5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAgICAqIGJ1aWx0aW5zL0Fy
cmF5UHJvdG90eXBlLmpzOgorICAgICAgICAoZmluZExhc3QpOiBBZGRlZC4KKyAgICAgICAgKGZp
bmRMYXN0SW5kZXgpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6QXJyYXlQcm90b3R5cGU6OmZpbmlz
aENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUu
Y3BwOgorCisgICAgICAgICogYnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qczoKKyAgICAg
ICAgKGZpbmRMYXN0KTogQWRkZWQuCisgICAgICAgIChmaW5kTGFzdEluZGV4KTogQWRkZWQuCisg
ICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTVHlw
ZWRBcnJheVZpZXdQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKworICAgICAgICAqIHJ1bnRp
bWUvT3B0aW9uc0xpc3QuaDoKKwogMjAyMS0wNy0xNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWls
bGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBDb252ZXJ0IHNtYWxsIEpJVCBwb29sIHRlc3RzIGlu
dG8gZXhlY3V0YWJsZSBmdXp6aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAxNWRiMjA5
ODUzODQyYWE0NGIyNjAzZGFkMzA2MmFlYTQyZjhkNmY3Li5jMWJmZTllYzAyMWM3MmYyM2YwOWRk
ZTRjODIyYWRkMWI3NjMyYWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAyMS0wNy0xMyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdCBhbmQgQXJyYXkucHJvdG90
eXBlLmZpbmRMYXN0SW5kZXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNzkzOQorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMu
anM6CisKIDIwMjEtMDctMTIgIFBhdHJpY2sgQW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IFJFR1JFU1NJT04ocjI3OTUxMCk6IEVsZW1lbnRzOiBDb21w
dXRlZDogYW4gKGkpIGJ1dHRvbiBpcyBzaG93biBmb3IgY29tcHV0ZWQgcHJvcGVydHkgdHJhY2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXlQcm90b3R5
cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXlQcm90b3R5cGUuanMK
aW5kZXggZGY2ZTJlMzg5YmZiOGU3YThlOTg2Nzg5NjE3Njc1NDI0MDU4YmUwMy4uZWEyMTlhNzAy
OWNlMDY5ZGFhNzI1M2YzMmY4MDMwMGJjZDQ1MzUyYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcwpAQCAtMjU0LDYgKzI1NCwyNSBAQCBm
dW5jdGlvbiBmaW5kKGNhbGxiYWNrIC8qLCB0aGlzQXJnICovKQogICAgIHJldHVybiBAdW5kZWZp
bmVkOwogfQogCitmdW5jdGlvbiBmaW5kTGFzdChjYWxsYmFjayAvKiwgdGhpc0FyZyAqLykKK3sK
KyAgICAidXNlIHN0cmljdCI7CisKKyAgICB2YXIgYXJyYXkgPSBAdG9PYmplY3QodGhpcywgIkFy
cmF5LnByb3RvdHlwZS5maW5kTGFzdCByZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgbnVsbCBv
ciB1bmRlZmluZWQiKTsKKyAgICB2YXIgbGVuZ3RoID0gQHRvTGVuZ3RoKGFycmF5Lmxlbmd0aCk7
CisKKyAgICBpZiAoIUBpc0NhbGxhYmxlKGNhbGxiYWNrKSkKKyAgICAgICAgQHRocm93VHlwZUVy
cm9yKCJBcnJheS5wcm90b3R5cGUuZmluZExhc3QgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9u
Iik7CisKKyAgICB2YXIgdGhpc0FyZyA9IEBhcmd1bWVudCgxKTsKKyAgICBmb3IgKHZhciBpID0g
bGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBhcnJheVtp
XTsKKyAgICAgICAgaWYgKGNhbGxiYWNrLkBjYWxsKHRoaXNBcmcsIGVsZW1lbnQsIGksIGFycmF5
KSkKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50OworICAgIH0KKyAgICByZXR1cm4gQHVuZGVm
aW5lZDsKK30KKwogZnVuY3Rpb24gZmluZEluZGV4KGNhbGxiYWNrIC8qLCB0aGlzQXJnICovKQog
ewogICAgICJ1c2Ugc3RyaWN0IjsKQEAgLTI3Miw2ICsyOTEsMjQgQEAgZnVuY3Rpb24gZmluZElu
ZGV4KGNhbGxiYWNrIC8qLCB0aGlzQXJnICovKQogICAgIHJldHVybiAtMTsKIH0KIAorZnVuY3Rp
b24gZmluZExhc3RJbmRleChjYWxsYmFjayAvKiwgdGhpc0FyZyAqLykKK3sKKyAgICAidXNlIHN0
cmljdCI7CisKKyAgICB2YXIgYXJyYXkgPSBAdG9PYmplY3QodGhpcywgIkFycmF5LnByb3RvdHlw
ZS5maW5kTGFzdEluZGV4IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSBudWxsIG9yIHVuZGVm
aW5lZCIpOworICAgIHZhciBsZW5ndGggPSBAdG9MZW5ndGgoYXJyYXkubGVuZ3RoKTsKKworICAg
IGlmICghQGlzQ2FsbGFibGUoY2FsbGJhY2spKQorICAgICAgICBAdGhyb3dUeXBlRXJyb3IoIkFy
cmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiIp
OworCisgICAgdmFyIHRoaXNBcmcgPSBAYXJndW1lbnQoMSk7CisgICAgZm9yICh2YXIgaSA9IGxl
bmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIGlmIChjYWxsYmFjay5AY2FsbCh0aGlz
QXJnLCBhcnJheVtpXSwgaSwgYXJyYXkpKQorICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgfQor
ICAgIHJldHVybiAtMTsKK30KKwogZnVuY3Rpb24gaW5jbHVkZXMoc2VhcmNoRWxlbWVudCAvKiwg
ZnJvbUluZGV4Ki8pCiB7CiAgICAgInVzZSBzdHJpY3QiOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL1R5cGVkQXJyYXlQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qcwppbmRleCA0YzYxZDg0
MDk5MGQyMDk5ODc5ODkxOTU4NDRjNDRjNDYwNGYyODAxLi40MzA5YzBjMjg1NjYwZWRmMTgzMjRm
ZTg0N2E5YWJjYzFjNmM0YWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qcwpAQCAtODYsNiArODYsMjMgQEAgZnVuY3Rp
b24gZmluZChjYWxsYmFjayAvKiBbLCB0aGlzQXJnXSAqLykKICAgICByZXR1cm4gQHVuZGVmaW5l
ZDsKIH0KIAorZnVuY3Rpb24gZmluZExhc3QoY2FsbGJhY2sgLyogWywgdGhpc0FyZ10gKi8pCit7
CisgICAgInVzZSBzdHJpY3QiOworICAgIHZhciBsZW5ndGggPSBAdHlwZWRBcnJheUxlbmd0aCh0
aGlzKTsKKyAgICB2YXIgdGhpc0FyZyA9IEBhcmd1bWVudCgxKTsKKworICAgIGlmICghQGlzQ2Fs
bGFibGUoY2FsbGJhY2spKQorICAgICAgICBAdGhyb3dUeXBlRXJyb3IoIlR5cGVkQXJyYXkucHJv
dG90eXBlLmZpbmRMYXN0IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiIpOworCisgICAgZm9y
ICh2YXIgaSA9IGxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIHZhciBlbGVtZW50
ID0gdGhpc1tpXTsKKyAgICAgICAgaWYgKGNhbGxiYWNrLkBjYWxsKHRoaXNBcmcsIGVsZW1lbnQs
IGksIHRoaXMpKQorICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CisgICAgfQorICAgIHJldHVy
biBAdW5kZWZpbmVkOworfQorCiBmdW5jdGlvbiBmaW5kSW5kZXgoY2FsbGJhY2sgLyogWywgdGhp
c0FyZ10gKi8pCiB7CiAgICAgInVzZSBzdHJpY3QiOwpAQCAtMTAyLDYgKzExOSwyMiBAQCBmdW5j
dGlvbiBmaW5kSW5kZXgoY2FsbGJhY2sgLyogWywgdGhpc0FyZ10gKi8pCiAgICAgcmV0dXJuIC0x
OwogfQogCitmdW5jdGlvbiBmaW5kTGFzdEluZGV4KGNhbGxiYWNrIC8qIFssIHRoaXNBcmddICov
KQoreworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICB2YXIgbGVuZ3RoID0gQHR5cGVkQXJyYXlMZW5n
dGgodGhpcyk7CisgICAgdmFyIHRoaXNBcmcgPSBAYXJndW1lbnQoMSk7CisKKyAgICBpZiAoIUBp
c0NhbGxhYmxlKGNhbGxiYWNrKSkKKyAgICAgICAgQHRocm93VHlwZUVycm9yKCJUeXBlZEFycmF5
LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiIpOwor
CisgICAgZm9yICh2YXIgaSA9IGxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIGlm
IChjYWxsYmFjay5AY2FsbCh0aGlzQXJnLCB0aGlzW2ldLCBpLCB0aGlzKSkKKyAgICAgICAgICAg
IHJldHVybiBpOworICAgIH0KKyAgICByZXR1cm4gLTE7Cit9CisKIGZ1bmN0aW9uIGZvckVhY2go
Y2FsbGJhY2sgLyogWywgdGhpc0FyZ10gKi8pCiB7CiAgICAgInVzZSBzdHJpY3QiOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4IDVi
MmEyMTQwZjZkNzgzM2UxOGRiNmJhM2I3NGM3YTAyYjFlM2RiOGIuLmIzZTQzOWUyZGQ0YmU3OTI3
MGI1ZDE1ZGM0MTRiYjYwMzI2ZjY0ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTEwOCw3ICsxMDgsMTEgQEAgdm9pZCBBcnJh
eVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQogICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5rZXlzUHVibGljTmFtZSgpLCBh
cnJheVByb3RvRnVuY0tleXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pLCAwLCBBcnJheUtleXNJbnRyaW5zaWMpOwogICAgIEpTQ19OQVRJVkVfSU5U
UklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5lbnRyaWVzUHVibGljTmFtZSgpLCBhcnJheVByb3RvRnVuY0VudHJpZXMsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwLCBBcnJh
eUVudHJpZXNJbnRyaW5zaWMpOwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5maW5kUHVibGljTmFtZSgp
LCBhcnJheVByb3RvdHlwZUZpbmRDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgaWYgKE9wdGlvbnM6OnVzZUFycmF5
RmluZExhc3RNZXRob2QoKSkKKyAgICAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZpbmRMYXN0UHVibGlj
TmFtZSgpLCBhcnJheVByb3RvdHlwZUZpbmRMYXN0Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIEpTQ19CVUlMVElO
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5maW5kSW5kZXhQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90eXBlRmluZEluZGV4Q29kZUdl
bmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSkpOworICAgIGlmIChPcHRpb25zOjp1c2VBcnJheUZpbmRMYXN0TWV0aG9kKCkpCisgICAgICAg
IEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5maW5kTGFzdEluZGV4UHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlw
ZUZpbmRMYXN0SW5kZXhDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9V
VF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmluY2x1ZGVzUHVi
bGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUluY2x1ZGVzQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIEpTQ19CVUlM
VElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5jb3B5V2l0aGluUHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUNvcHlXaXRoaW5D
b2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSk7CiAKQEAgLTEzNCw2ICsxMzgsMTAgQEAgdm9pZCBBcnJheVByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgICAg
ICAmdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkua2V5c1B1YmxpY05hbWUoKSwKICAg
ICAgICAgJnZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnZhbHVlc1B1YmxpY05hbWUo
KQogICAgIH07CisgICAgaWYgKE9wdGlvbnM6OnVzZUFycmF5RmluZExhc3RNZXRob2QoKSkgewor
ICAgICAgICB1bnNjb3BhYmxlcy0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5maW5kTGFzdFB1YmxpY05hbWUoKSwganNCb29sZWFuKHRydWUpKTsKKyAgICAg
ICAgdW5zY29wYWJsZXMtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuZmluZExhc3RJbmRleFB1YmxpY05hbWUoKSwganNCb29sZWFuKHRydWUpKTsKKyAgICB9
CiAgICAgaWYgKE9wdGlvbnM6OnVzZUF0TWV0aG9kKCkpCiAgICAgICAgIHVuc2NvcGFibGVzLT5w
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmF0UHVibGljTmFt
ZSgpLCBqc0Jvb2xlYW4odHJ1ZSkpOwogICAgIGZvciAoY29uc3QgYXV0byogdW5zY29wYWJsZU5h
bWUgOiB1bnNjb3BhYmxlTmFtZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCmluZGV4IGI5NDVkMDA1
ZmRhZjE0Yjk4MzE4NDQ2ZGY4ZTBjNjVjMzI3ODYyNzAuLjRkOWI3YzJiZDU1YjRhYzc3MTEzNzQw
ZTY1MDVjZThhZDQxYTA4ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCkBAIC00NTMsNyArNDUz
LDExIEBAIHZvaWQgSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04oImluY2x1ZGVzIiwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmNs
dWRlcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IDEpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZpbGxQdWJsaWNOYW1lKCksIHR5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jRmlsbCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIDEpOwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
TigiZmluZCIsIHR5cGVkQXJyYXlQcm90b3R5cGVGaW5kQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIGlmIChPcHRp
b25zOjp1c2VBcnJheUZpbmRMYXN0TWV0aG9kKCkpCisgICAgICAgIEpTQ19CVUlMVElOX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5m
aW5kTGFzdFB1YmxpY05hbWUoKSwgdHlwZWRBcnJheVByb3RvdHlwZUZpbmRMYXN0Q29kZUdlbmVy
YXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkp
OwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZmluZEluZGV4
IiwgdHlwZWRBcnJheVByb3RvdHlwZUZpbmRJbmRleENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBpZiAoT3B0aW9u
czo6dXNlQXJyYXlGaW5kTGFzdE1ldGhvZCgpKQorICAgICAgICBKU0NfQlVJTFRJTl9GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmlu
ZExhc3RJbmRleFB1YmxpY05hbWUoKSwgdHlwZWRBcnJheVByb3RvdHlwZUZpbmRMYXN0SW5kZXhD
b2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSk7CiAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZt
LnByb3BlcnR5TmFtZXMtPmZvckVhY2gsIHR5cGVkQXJyYXlQcm90b3R5cGVGb3JFYWNoQ29kZUdl
bmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSkpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpbmRleE9m
IiwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmRleE9mLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiAgICAgSlNDX05BVElWRV9GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+am9pbiwgdHlwZWRBcnJheVZp
ZXdQcm90b0Z1bmNKb2luLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKSwgMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcHRpb25zTGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xp
c3QuaAppbmRleCBiYjRmMjUxMzgyMjQ4ODhiOWUyNzE5NDAzZWUyNjU0Nzk4Zjk5NzUzLi5mMDE3
MDliOTgwNDI2YTQyNjRhYjgwOTIzMWEwMDk5Yzc2YjFhNjc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKQEAgLTU1MCw2ICs1NTAsNyBAQCBib29sIGNh
blVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeSgpOwogICAgIHYoQm9vbCwgdXNlRGF0YUlDSW5PcHRp
bWl6aW5nSklULCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihCb29sLCB1c2VEYXRh
SUNTaGFyaW5nLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihCb29sLCB1c2VUZW1w
b3JhbCwgZmFsc2UsIE5vcm1hbCwgIkV4cG9zZSB0aGUgVGVtcG9yYWwgb2JqZWN0LiIpIFwKKyAg
ICB2KEJvb2wsIHVzZUFycmF5RmluZExhc3RNZXRob2QsIGZhbHNlLCBOb3JtYWwsICJFeHBvc2Ug
dGhlIGZpbmRMYXN0KCkgYW5kIGZpbmRMYXN0SW5kZXgoKSBtZXRob2RzIG9uIEFycmF5IGFuZCAl
VHlwZWRBcnJheSUuIikgXAogCiAKIGVudW0gT3B0aW9uRXF1aXZhbGVuY2UgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0
aW9uUGFyYW1ldGVycy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMKaW5kZXggZWUyMjhiYTA4N2NiMzI5Y2Y3
MzljZmJkYzBhNGU4YWNkMWNiNTdkMS4uZWY3OTI1MzY5MTA0NWMwNTI0YWU4YmMwNzI5YTA3OGU2
ZmU4NGViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpzCkBA
IC0yNDksNiArMjQ5LDggQEAgV0kuTmF0aXZlUHJvdG90eXBlRnVuY3Rpb25QYXJhbWV0ZXJzID0g
ewogICAgICAgICBmaWx0ZXI6ICJjYWxsYmFjaywgW3RoaXNBcmddIiwKICAgICAgICAgZmluZDog
ImNhbGxiYWNrLCBbdGhpc0FyZ10iLAogICAgICAgICBmaW5kSW5kZXg6ICJjYWxsYmFjaywgW3Ro
aXNBcmddIiwKKyAgICAgICAgZmluZExhc3Q6ICJjYWxsYmFjaywgW3RoaXNBcmddIiwKKyAgICAg
ICAgZmluZExhc3RJbmRleDogImNhbGxiYWNrLCBbdGhpc0FyZ10iLAogICAgICAgICBmb3JFYWNo
OiAiY2FsbGJhY2ssIFt0aGlzQXJnXSIsCiAgICAgICAgIGluY2x1ZGVzOiAic2VhcmNoVmFsdWUs
IFtzdGFydEluZGV4PTBdIiwKICAgICAgICAgaW5kZXhPZjogInNlYXJjaFZhbHVlLCBbc3RhcnRJ
bmRleD0wXSIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggZjg4ZjcwNzdlMzI0NzM0YmIyMmU5ZmYzYmU2M2FjYWZlZGI3ZjZk
Zi4uZmE0MDFlNDVhMzNiZDU2NTQ5YjE0OWJjOGQwNGY5NGZmZTY1MDYyZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQwIEBACisyMDIxLTA3LTEzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
KworICAgICAgICBJbXBsZW1lbnQgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGFuZCBBcnJheS5w
cm90b3R5cGUuZmluZExhc3RJbmRleAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI3OTM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVr
aS4KKworICAgICAgICAqIGpzL2FycmF5LWZpbmRMYXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGpzL2FycmF5LWZpbmRMYXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvc2Ny
aXB0LXRlc3RzL2FycmF5LWZpbmRMYXN0LmpzOiBBZGRlZC4KKyAgICAgICAgKHBhc3NVbmRlZmlu
ZWQpOgorICAgICAgICAocGFzc1plcm8pOgorICAgICAgICAocGFzc051bGwpOgorICAgICAgICAo
cGFzc0ZhbHNlKToKKyAgICAgICAgKHBhc3NFbXB0eVN0cmluZyk6CisgICAgICAgIChwYXNzRXZl
bik6CisgICAgICAgIChwYXNzQWZ0ZXI1KToKKyAgICAgICAgKHRvT2JqZWN0KToKKyAgICAgICAg
KGZpbmRJdGVtQWRkZWREdXJpbmdTZWFyY2gpOgorICAgICAgICAobnVtYmVyT2ZDYWxsYmFja3NJ
bkZpbmRJbkFycmF5V2l0aEhvbGVzKToKKyAgICAgICAgKHRocm93RXJyb3IpOgorCisgICAgICAg
ICoganMvYXJyYXktZmluZExhc3RJbmRleC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9hcnJh
eS1maW5kTGFzdEluZGV4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvc2NyaXB0
LXRlc3RzL2FycmF5LWZpbmRMYXN0SW5kZXguanM6IEFkZGVkLgorICAgICAgICAocGFzc1VuZGVm
aW5lZCk6CisgICAgICAgIChwYXNzWmVybyk6CisgICAgICAgIChwYXNzTnVsbCk6CisgICAgICAg
IChwYXNzRmFsc2UpOgorICAgICAgICAocGFzc0VtcHR5U3RyaW5nKToKKyAgICAgICAgKHBhc3NF
dmVuKToKKyAgICAgICAgKHBhc3NBZnRlcjUpOgorICAgICAgICAodG9PYmplY3QpOgorICAgICAg
ICAoZmluZEl0ZW1BZGRlZER1cmluZ1NlYXJjaCk6CisgICAgICAgIChudW1iZXJPZkNhbGxiYWNr
c0luRmluZEluZGV4SW5BcnJheVdpdGhIb2xlcyk6CisgICAgICAgICh0aHJvd0Vycm9yKToKKwog
MjAyMS0wNy0xNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCB0eXBlIG9mIGV4Y2VwdGlvbnMgdGhyb3duIGluIHRoZSBXZWJBdWRpbyBBUEkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL2FycmF5LWZpbmRMYXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2pzL2FycmF5LWZpbmRMYXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDU1ZjA3YTMx
YjViMDJiOGU3ZDE0MDFhNTAxZGYxZWFhYzQ1OGRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvYXJyYXktZmluZExhc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzEgQEAKK1Rl
c3RzIGZvciBBcnJheS5wcm90b3R5cGUuZmluZExhc3QKKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0Lmxlbmd0aCBpcyAxCitQQVNT
IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdC5uYW1lIGlzICdmaW5kTGFzdCcKK1BBU1MgW3VuZGVm
aW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXS5maW5kTGFzdChwYXNzVW5kZWZpbmVkKSBpcyB1bmRl
ZmluZWQKK1BBU1MgW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXS5maW5kTGFzdChwYXNz
WmVybykgaXMgMAorUEFTUyBbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddLmZpbmRMYXN0
KHBhc3NOdWxsKSBpcyBudWxsCitQQVNTIFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10u
ZmluZExhc3QocGFzc0ZhbHNlKSBpcyBmYWxzZQorUEFTUyBbdW5kZWZpbmVkLCAwLCBudWxsLCBm
YWxzZSwgJyddLmZpbmRMYXN0KHBhc3NFbXB0eVN0cmluZykgaXMgJycKK1BBU1MgWzAsMSwyLDMs
NCw1LDYsNyw4LDldLmZpbmRMYXN0KHBhc3NFdmVuKSBpcyA4CitQQVNTIFswLDEsMiwzLDQsNSw2
LDcsOCw5XS5maW5kTGFzdChwYXNzQWZ0ZXI1KSBpcyA5CitQQVNTIFswLCBudWxsLCBmYWxzZSwg
JyddLmZpbmRMYXN0KHBhc3NVbmRlZmluZWQpIGlzIHVuZGVmaW5lZAorUEFTUyBbdW5kZWZpbmVk
LCAwLCBmYWxzZSwgJyddLmZpbmRMYXN0KHBhc3NOdWxsKSBpcyB1bmRlZmluZWQKK1BBU1MgW3Vu
ZGVmaW5lZCwgMCwgbnVsbCwgJyddLmZpbmRMYXN0KHBhc3NGYWxzZSkgaXMgdW5kZWZpbmVkCitQ
QVNTIFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlXS5maW5kTGFzdChwYXNzRW1wdHlTdHJpbmcp
IGlzIHVuZGVmaW5lZAorUEFTUyBbMSwzLDUsNyw5XS5maW5kTGFzdChwYXNzRXZlbikgaXMgdW5k
ZWZpbmVkCitQQVNTIFswLDEsMiwzLDRdLmZpbmRMYXN0KHBhc3NBZnRlcjUpIGlzIHVuZGVmaW5l
ZAorUEFTUyBbdW5kZWZpbmVkLCBudWxsLCBmYWxzZSwgJyddLmZpbmRMYXN0KHBhc3NaZXJvKSBp
cyB1bmRlZmluZWQKK0FycmF5IHdpdGggaG9sZXMKK1BBU1MgKG5ldyBBcnJheSgyMCkpLmZpbmRM
YXN0KHBhc3NVbmRlZmluZWQpIGlzIHVuZGVmaW5lZAorUEFTUyBhcnJheVdpdGhIb2xlcy5maW5k
TGFzdChwYXNzVW5kZWZpbmVkKSBpcyB1bmRlZmluZWQKK1BBU1MgYXJyYXlXaXRoSG9sZXMuZmlu
ZExhc3QocGFzc1plcm8pIGlzIDAKK1BBU1MgYXJyYXlXaXRoSG9sZXMuZmluZExhc3QocGFzc051
bGwpIGlzIG51bGwKK1BBU1MgYXJyYXlXaXRoSG9sZXMuZmluZExhc3QocGFzc0ZhbHNlKSBpcyBm
YWxzZQorUEFTUyBhcnJheVdpdGhIb2xlcy5maW5kTGFzdChwYXNzRW1wdHlTdHJpbmcpIGlzICcn
CitQQVNTIGFycmF5V2l0aEhvbGVzLmZpbmRMYXN0KHBhc3NBZnRlcjUpIGlzICcnCitHZW5lcmlj
IE9iamVjdAorUEFTUyB0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddKS5m
aW5kTGFzdChwYXNzVW5kZWZpbmVkKSBpcyB1bmRlZmluZWQKK1BBU1MgdG9PYmplY3QoW3VuZGVm
aW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXSkuZmluZExhc3QocGFzc1plcm8pIGlzIDAKK1BBU1Mg
dG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXSkuZmluZExhc3QocGFzc051
bGwpIGlzIG51bGwKK1BBU1MgdG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcn
XSkuZmluZExhc3QocGFzc0ZhbHNlKSBpcyBmYWxzZQorUEFTUyB0b09iamVjdChbdW5kZWZpbmVk
LCAwLCBudWxsLCBmYWxzZSwgJyddKS5maW5kTGFzdChwYXNzRW1wdHlTdHJpbmcpIGlzICcnCitQ
QVNTIHRvT2JqZWN0KFswLCBudWxsLCBmYWxzZSwgJyddKS5maW5kTGFzdChwYXNzVW5kZWZpbmVk
KSBpcyB1bmRlZmluZWQKK1BBU1MgdG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgZmFsc2UsICcnXSku
ZmluZExhc3QocGFzc051bGwpIGlzIHVuZGVmaW5lZAorUEFTUyB0b09iamVjdChbdW5kZWZpbmVk
LCAwLCBudWxsLCAnJ10pLmZpbmRMYXN0KHBhc3NGYWxzZSkgaXMgdW5kZWZpbmVkCitQQVNTIHRv
T2JqZWN0KFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlXSkuZmluZExhc3QocGFzc0VtcHR5U3Ry
aW5nKSBpcyB1bmRlZmluZWQKK1BBU1MgdG9PYmplY3QoW3VuZGVmaW5lZCwgbnVsbCwgZmFsc2Us
ICcnXSkuZmluZExhc3QocGFzc1plcm8pIGlzIHVuZGVmaW5lZAorUEFTUyB0b09iamVjdChuZXcg
QXJyYXkoMjApKS5maW5kTGFzdChwYXNzVW5kZWZpbmVkKSBpcyB1bmRlZmluZWQKK0FycmF5LWxp
a2Ugb2JqZWN0IHdpdGggaW52YWxpZCBsZW5ndGhzCitQQVNTIHZhciBvYmogPSB7IDA6IDEsIDE6
IDIsIDI6IDMsIGxlbmd0aDogMCB9OyBBcnJheS5wcm90b3R5cGUuZmluZExhc3QuY2FsbChvYmos
IHRocm93RXJyb3IpIGlzIHVuZGVmaW5lZC4KK1BBU1MgdmFyIG9iaiA9IHsgMDogMSwgMTogMiwg
MjogMywgbGVuZ3RoOiAtMCB9OyBBcnJheS5wcm90b3R5cGUuZmluZExhc3QuY2FsbChvYmosIHRo
cm93RXJyb3IpIGlzIHVuZGVmaW5lZC4KK1BBU1MgdmFyIG9iaiA9IHsgMDogMSwgMTogMiwgMjog
MywgbGVuZ3RoOiAtMyB9OyBBcnJheS5wcm90b3R5cGUuZmluZExhc3QuY2FsbChvYmosIHRocm93
RXJyb3IpIGlzIHVuZGVmaW5lZC4KK01vZGlmaWNhdGlvbiBkdXJpbmcgc2VhcmNoCitQQVNTIFsw
LDEsMiwzLDQsNSw2LDcsOCw5XS5maW5kTGFzdChmaW5kSXRlbUFkZGVkRHVyaW5nU2VhcmNoKSBp
cyB1bmRlZmluZWQKK1BBU1MgWzAsMSwyLDMsNCw1LDYsNyw4LDldLmZpbmRMYXN0KGZpbmRJdGVt
UmVtb3ZlZER1cmluZ1NlYXJjaCkgaXMgdW5kZWZpbmVkCitFeGNlcHRpb25zCitQQVNTIEFycmF5
LnByb3RvdHlwZS5maW5kTGFzdC5jYWxsKHVuZGVmaW5lZCwgZnVuY3Rpb24oKSB7fSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IHJlcXVpcmVzIHRo
YXQgfHRoaXN8IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZC4KK1BBU1MgQXJyYXkucHJvdG90eXBl
LmZpbmRMYXN0LmNhbGwobnVsbCwgZnVuY3Rpb24oKSB7fSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBi
ZSBudWxsIG9yIHVuZGVmaW5lZC4KK1BBU1MgW10uZmluZExhc3QoMSkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGNhbGxiYWNrIG11c3QgYmUgYSBm
dW5jdGlvbi4KK1BBU1MgW10uZmluZExhc3QoJ2hlbGxvJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlv
bi4KK1BBU1MgW10uZmluZExhc3QoW10pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFycmF5
LnByb3RvdHlwZS5maW5kTGFzdCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24uCitQQVNTIFtd
LmZpbmRMYXN0KHt9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUu
ZmluZExhc3QgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgorUEFTUyBbXS5maW5kTGFzdChu
dWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3Qg
Y2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgorUEFTUyBbXS5maW5kTGFzdCh1bmRlZmluZWQp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdCBjYWxs
YmFjayBtdXN0IGJlIGEgZnVuY3Rpb24uCitDYWxsYmFja3MgaW4gdGhlIGV4cGVjdGVkIG9yZGVy
IGFuZCAqbm90KiBza2lwcGluZyBob2xlcworZmluZExhc3QgY2FsbGJhY2sgY2FsbGVkIHdpdGgg
aW5kZXggNworZmluZExhc3QgY2FsbGJhY2sgY2FsbGVkIHdpdGggaW5kZXggNgorZmluZExhc3Qg
Y2FsbGJhY2sgY2FsbGVkIHdpdGggaW5kZXggNQorZmluZExhc3QgY2FsbGJhY2sgY2FsbGVkIHdp
dGggaW5kZXggNAorZmluZExhc3QgY2FsbGJhY2sgY2FsbGVkIHdpdGggaW5kZXggMworZmluZExh
c3QgY2FsbGJhY2sgY2FsbGVkIHdpdGggaW5kZXggMgorZmluZExhc3QgY2FsbGJhY2sgY2FsbGVk
IHdpdGggaW5kZXggMQorZmluZExhc3QgY2FsbGJhY2sgY2FsbGVkIHdpdGggaW5kZXggMAorUEFT
UyBudW1iZXJPZkNhbGxiYWNrc0luRmluZEluQXJyYXlXaXRoSG9sZXMoKSBpcyA4CitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvYXJyYXktZmluZExhc3QuaHRtbCBiL0xheW91dFRlc3RzL2pzL2FycmF5
LWZpbmRMYXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmMzZjE0ZmQyNjQyY2U1MTQxMjNkMzc5YjAwZTBj
MjAwNmQzZjA0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2FycmF5LWZpbmRM
YXN0Lmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsganNjT3B0aW9ucz0tLXVz
ZUFycmF5RmluZExhc3RNZXRob2Q9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LWZpbmRMYXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2FycmF5LWZpbmRM
YXN0SW5kZXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvYXJyYXktZmluZExhc3RJbmRl
eC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQyYzE5MzNiNWEwZjU4Y2M3YmVhNmNkNjQ2MTI3
MmI5ODQ5NTJjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2FycmF5LWZpbmRM
YXN0SW5kZXgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzIgQEAKK1Rlc3RzIGZvciBBcnJheS5w
cm90b3R5cGUuZmluZExhc3RJbmRleAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleC5sZW5ndGggaXMgMQorUEFTUyBBcnJh
eS5wcm90b3R5cGUuZmluZExhc3RJbmRleC5uYW1lIGlzICdmaW5kTGFzdEluZGV4JworUEFTUyBb
dW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddLmZpbmRMYXN0SW5kZXgocGFzc1VuZGVmaW5l
ZCkgaXMgMAorUEFTUyBbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddLmZpbmRMYXN0SW5k
ZXgocGFzc1plcm8pIGlzIDEKK1BBU1MgW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXS5m
aW5kTGFzdEluZGV4KHBhc3NOdWxsKSBpcyAyCitQQVNTIFt1bmRlZmluZWQsIDAsIG51bGwsIGZh
bHNlLCAnJ10uZmluZExhc3RJbmRleChwYXNzRmFsc2UpIGlzIDMKK1BBU1MgW3VuZGVmaW5lZCwg
MCwgbnVsbCwgZmFsc2UsICcnXS5maW5kTGFzdEluZGV4KHBhc3NFbXB0eVN0cmluZykgaXMgNAor
UEFTUyBbMCwxLDIsMyw0LDUsNiw3LDgsOV0uZmluZExhc3RJbmRleChwYXNzRXZlbikgaXMgOAor
UEFTUyBbMCwxLDIsMyw0LDUsNiw3LDgsOV0uZmluZExhc3RJbmRleChwYXNzQWZ0ZXI1KSBpcyA5
CitQQVNTIFswLCBudWxsLCBmYWxzZSwgJyddLmZpbmRMYXN0SW5kZXgocGFzc1VuZGVmaW5lZCkg
aXMgLTEKK1BBU1MgW3VuZGVmaW5lZCwgMCwgZmFsc2UsICcnXS5maW5kTGFzdEluZGV4KHBhc3NO
dWxsKSBpcyAtMQorUEFTUyBbdW5kZWZpbmVkLCAwLCBudWxsLCAnJ10uZmluZExhc3RJbmRleChw
YXNzRmFsc2UpIGlzIC0xCitQQVNTIFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlXS5maW5kTGFz
dEluZGV4KHBhc3NFbXB0eVN0cmluZykgaXMgLTEKK1BBU1MgWzEsMyw1LDcsOV0uZmluZExhc3RJ
bmRleChwYXNzRXZlbikgaXMgLTEKK1BBU1MgWzAsMSwyLDMsNF0uZmluZExhc3RJbmRleChwYXNz
QWZ0ZXI1KSBpcyAtMQorUEFTUyBbdW5kZWZpbmVkLCBudWxsLCBmYWxzZSwgJyddLmZpbmRMYXN0
SW5kZXgocGFzc1plcm8pIGlzIC0xCitBcnJheSB3aXRoIGhvbGVzCitQQVNTIChuZXcgQXJyYXko
MjApKS5maW5kTGFzdEluZGV4KHBhc3NVbmRlZmluZWQpIGlzIDE5CitQQVNTIGFycmF5V2l0aEhv
bGVzLmZpbmRMYXN0SW5kZXgocGFzc1VuZGVmaW5lZCkgaXMgNgorUEFTUyBhcnJheVdpdGhIb2xl
cy5maW5kTGFzdEluZGV4KHBhc3NaZXJvKSBpcyAxCitQQVNTIGFycmF5V2l0aEhvbGVzLmZpbmRM
YXN0SW5kZXgocGFzc051bGwpIGlzIDMKK1BBU1MgYXJyYXlXaXRoSG9sZXMuZmluZExhc3RJbmRl
eChwYXNzRmFsc2UpIGlzIDUKK1BBU1MgYXJyYXlXaXRoSG9sZXMuZmluZExhc3RJbmRleChwYXNz
RW1wdHlTdHJpbmcpIGlzIDcKK1BBU1MgYXJyYXlXaXRoSG9sZXMuZmluZExhc3RJbmRleChwYXNz
QWZ0ZXI1KSBpcyA3CitQQVNTIGFycmF5V2l0aEhvbGVzLmZpbmRMYXN0SW5kZXgocGFzc1VuZGVm
aW5lZCkgaXMgNAorR2VuZXJpYyBPYmplY3QKK1BBU1MgdG9PYmplY3QoW3VuZGVmaW5lZCwgMCwg
bnVsbCwgZmFsc2UsICcnXSkuZmluZExhc3RJbmRleChwYXNzVW5kZWZpbmVkKSBpcyAwCitQQVNT
IHRvT2JqZWN0KFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0SW5kZXgo
cGFzc1plcm8pIGlzIDEKK1BBU1MgdG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2Us
ICcnXSkuZmluZExhc3RJbmRleChwYXNzTnVsbCkgaXMgMgorUEFTUyB0b09iamVjdChbdW5kZWZp
bmVkLCAwLCBudWxsLCBmYWxzZSwgJyddKS5maW5kTGFzdEluZGV4KHBhc3NGYWxzZSkgaXMgMwor
UEFTUyB0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddKS5maW5kTGFzdElu
ZGV4KHBhc3NFbXB0eVN0cmluZykgaXMgNAorUEFTUyB0b09iamVjdChbMCwgbnVsbCwgZmFsc2Us
ICcnXSkuZmluZExhc3RJbmRleChwYXNzVW5kZWZpbmVkKSBpcyAtMQorUEFTUyB0b09iamVjdChb
dW5kZWZpbmVkLCAwLCBmYWxzZSwgJyddKS5maW5kTGFzdEluZGV4KHBhc3NOdWxsKSBpcyAtMQor
UEFTUyB0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCAnJ10pLmZpbmRMYXN0SW5kZXgocGFz
c0ZhbHNlKSBpcyAtMQorUEFTUyB0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZV0p
LmZpbmRMYXN0SW5kZXgocGFzc0VtcHR5U3RyaW5nKSBpcyAtMQorUEFTUyB0b09iamVjdChbdW5k
ZWZpbmVkLCBudWxsLCBmYWxzZSwgJyddKS5maW5kTGFzdEluZGV4KHBhc3NaZXJvKSBpcyAtMQor
UEFTUyB0b09iamVjdChuZXcgQXJyYXkoMjApKS5maW5kTGFzdEluZGV4KHBhc3NVbmRlZmluZWQp
IGlzIDE5CitBcnJheS1saWtlIG9iamVjdCB3aXRoIGludmFsaWQgbGVuZ3RocworUEFTUyB2YXIg
b2JqID0geyAwOiAxLCAxOiAyLCAyOiAzLCBsZW5ndGg6IDAgfTsgQXJyYXkucHJvdG90eXBlLmZp
bmRMYXN0SW5kZXguY2FsbChvYmosIHRocm93RXJyb3IpIGlzIC0xCitQQVNTIHZhciBvYmogPSB7
IDA6IDEsIDE6IDIsIDI6IDMsIGxlbmd0aDogLTAgfTsgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0
SW5kZXguY2FsbChvYmosIHRocm93RXJyb3IpIGlzIC0xCitQQVNTIHZhciBvYmogPSB7IDA6IDEs
IDE6IDIsIDI6IDMsIGxlbmd0aDogLTMgfTsgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXgu
Y2FsbChvYmosIHRocm93RXJyb3IpIGlzIC0xCitNb2RpZmljYXRpb24gZHVyaW5nIHNlYXJjaAor
UEFTUyBbMCwxLDIsMyw0LDUsNiw3LDgsOV0uZmluZExhc3RJbmRleChmaW5kSXRlbUFkZGVkRHVy
aW5nU2VhcmNoKSBpcyAtMQorUEFTUyBbMCwxLDIsMyw0LDUsNiw3LDgsOV0uZmluZExhc3RJbmRl
eChmaW5kSXRlbVJlbW92ZWREdXJpbmdTZWFyY2gpIGlzIC0xCitFeGNlcHRpb25zCitQQVNTIEFy
cmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4LmNhbGwodW5kZWZpbmVkLCBmdW5jdGlvbigpIHt9
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRl
eCByZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQuCitQQVNTIEFy
cmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4LmNhbGwobnVsbCwgZnVuY3Rpb24oKSB7fSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXggcmVx
dWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLgorUEFTUyBbXS5maW5k
TGFzdEluZGV4KDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5m
aW5kTGFzdEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4KK1BBU1MgW10uZmluZExh
c3RJbmRleCgnaGVsbG8nKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcnJheS5wcm90b3R5
cGUuZmluZExhc3RJbmRleCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24uCitQQVNTIFtdLmZp
bmRMYXN0SW5kZXgoW10pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlw
ZS5maW5kTGFzdEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4KK1BBU1MgW10uZmlu
ZExhc3RJbmRleCh7fSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJyYXkucHJvdG90eXBl
LmZpbmRMYXN0SW5kZXggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLgorUEFTUyBbXS5maW5k
TGFzdEluZGV4KG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlw
ZS5maW5kTGFzdEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4KK1BBU1MgW10uZmlu
ZExhc3RJbmRleCh1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFycmF5LnBy
b3RvdHlwZS5maW5kTGFzdEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4KK0NhbGxi
YWNrcyBpbiB0aGUgZXhwZWN0ZWQgb3JkZXIgYW5kICpub3QqIHNraXBwaW5nIGhvbGVzCitmaW5k
IGNhbGxiYWNrIGNhbGxlZCB3aXRoIGluZGV4IDAKK2ZpbmQgY2FsbGJhY2sgY2FsbGVkIHdpdGgg
aW5kZXggMQorZmluZCBjYWxsYmFjayBjYWxsZWQgd2l0aCBpbmRleCAyCitmaW5kIGNhbGxiYWNr
IGNhbGxlZCB3aXRoIGluZGV4IDMKK2ZpbmQgY2FsbGJhY2sgY2FsbGVkIHdpdGggaW5kZXggNAor
ZmluZCBjYWxsYmFjayBjYWxsZWQgd2l0aCBpbmRleCA1CitmaW5kIGNhbGxiYWNrIGNhbGxlZCB3
aXRoIGluZGV4IDYKK2ZpbmQgY2FsbGJhY2sgY2FsbGVkIHdpdGggaW5kZXggNworUEFTUyBudW1i
ZXJPZkNhbGxiYWNrc0luRmluZEluZGV4SW5BcnJheVdpdGhIb2xlcygpIGlzIDgKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9hcnJheS1maW5kTGFzdEluZGV4Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9h
cnJheS1maW5kTGFzdEluZGV4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTcyMmNjZWVmOWNiYWUzN2Q2MzZm
MGVmMzhjYmM0YTcyNjA5YzQ1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Fy
cmF5LWZpbmRMYXN0SW5kZXguaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBq
c2NPcHRpb25zPS0tdXNlQXJyYXlGaW5kTGFzdE1ldGhvZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktZmluZExh
c3RJbmRleC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJyYXktZmluZExhc3QuanMgYi9MYXlvdXRUZXN0cy9qcy9z
Y3JpcHQtdGVzdHMvYXJyYXktZmluZExhc3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzUxMjUwN2FhY2FlNDk2
ZWMzMGRhM2M3NTY4MTM5YTRlZWM0M2ZhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2pzL3NjcmlwdC10ZXN0cy9hcnJheS1maW5kTGFzdC5qcwpAQCAtMCwwICsxLDEyMCBAQAorLy9A
IHJlcXVpcmVPcHRpb25zKCItLXVzZUFycmF5RmluZExhc3RNZXRob2Q9dHJ1ZSIpCitkZXNjcmlw
dGlvbigiVGVzdHMgZm9yIEFycmF5LnByb3RvdHlwZS5maW5kTGFzdCIpOworCitzaG91bGRCZSgi
QXJyYXkucHJvdG90eXBlLmZpbmRMYXN0Lmxlbmd0aCIsICIxIik7CitzaG91bGRCZSgiQXJyYXku
cHJvdG90eXBlLmZpbmRMYXN0Lm5hbWUiLCAiJ2ZpbmRMYXN0JyIpOworCitmdW5jdGlvbiBwYXNz
VW5kZWZpbmVkKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgeworICAgIHJldHVybiB0eXBlb2YgZWxl
bWVudCA9PT0gInVuZGVmaW5lZCI7Cit9CitmdW5jdGlvbiBwYXNzWmVybyhlbGVtZW50LCBpbmRl
eCwgYXJyYXkpIHsKKyAgICByZXR1cm4gZWxlbWVudCA9PT0gMDsKK30KK2Z1bmN0aW9uIHBhc3NO
dWxsKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgeworICAgIHJldHVybiBlbGVtZW50ID09PSBudWxs
OworfQorZnVuY3Rpb24gcGFzc0ZhbHNlKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgeworICAgIHJl
dHVybiBlbGVtZW50ID09PSBmYWxzZTsKK30KK2Z1bmN0aW9uIHBhc3NFbXB0eVN0cmluZyhlbGVt
ZW50LCBpbmRleCwgYXJyYXkpIHsKKyAgICByZXR1cm4gZWxlbWVudCA9PT0gIiI7Cit9CitmdW5j
dGlvbiBwYXNzRXZlbihhKSB7CisgICAgcmV0dXJuICEoYSAmIDEpOworfQorZnVuY3Rpb24gcGFz
c0FmdGVyNShlbGVtZW50LCBpbmRleCkgeworICAgIHJldHVybiBpbmRleCA+PSA1OworfQorZnVu
Y3Rpb24gdG9PYmplY3QoYXJyYXkpIHsKKyAgICB2YXIgcmVzdWx0ID0ge307CisgICAgcmVzdWx0
Lmxlbmd0aCA9IGFycmF5Lmxlbmd0aDsKKyAgICBmb3IgKHZhciBpIGluIGFycmF5KQorICAgICAg
ICByZXN1bHRbaV0gPSBhcnJheVtpXTsKKyAgICByZXN1bHQuZmluZExhc3Q9QXJyYXkucHJvdG90
eXBlLmZpbmRMYXN0OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmdW5jdGlvbiBmaW5kSXRlbUFk
ZGVkRHVyaW5nU2VhcmNoKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgeworICAgIGlmIChpbmRleCA9
PT0gYXJyYXkubGVuZ3RoIC0gMSkKKyAgICAgICAgYXJyYXkudW5zaGlmdChhcnJheS5sZW5ndGgp
OworICAgIHJldHVybiAoaW5kZXggPT09IGFycmF5Lmxlbmd0aCAtIDEpOworfQorZnVuY3Rpb24g
ZmluZEl0ZW1SZW1vdmVkRHVyaW5nU2VhcmNoKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgeworICAg
IGlmIChpbmRleCA9PT0gMCkKKyAgICAgICAgYXJyYXkuc2hpZnQoKTsKKyAgICByZXR1cm4gKGlu
ZGV4ID09PSAwICYmIGFycmF5WzBdID09PSBlbGVtZW50KTsKK30KK2FycmF5V2l0aEhvbGVzID0g
W107CithcnJheVdpdGhIb2xlc1sxXSA9IDA7CithcnJheVdpdGhIb2xlc1szXSA9IG51bGw7Cith
cnJheVdpdGhIb2xlc1s1XSA9IGZhbHNlOworYXJyYXlXaXRoSG9sZXNbN10gPSAiIjsKK2Z1bmN0
aW9uIG51bWJlck9mQ2FsbGJhY2tzSW5GaW5kSW5BcnJheVdpdGhIb2xlcygpIHsKKyAgICB2YXIg
Y291bnQgPSAwOworICAgIGFycmF5V2l0aEhvbGVzLmZpbmRMYXN0KGZ1bmN0aW9uKGVsZW1lbnQs
IGluZGV4LCBhcnJheSkgeworICAgICAgICBkZWJ1ZygiZmluZExhc3QgY2FsbGJhY2sgY2FsbGVk
IHdpdGggaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgY291bnQrKzsKKyAgICB9KTsKKyAgICBy
ZXR1cm4gY291bnQ7Cit9CisKK3Nob3VsZEJlKCJbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwg
JyddLmZpbmRMYXN0KHBhc3NVbmRlZmluZWQpIiwgInVuZGVmaW5lZCIpOworc2hvdWxkQmUoIlt1
bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10uZmluZExhc3QocGFzc1plcm8pIiwgIjAiKTsK
K3Nob3VsZEJlKCJbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddLmZpbmRMYXN0KHBhc3NO
dWxsKSIsICJudWxsIik7CitzaG91bGRCZSgiW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcn
XS5maW5kTGFzdChwYXNzRmFsc2UpIiwgImZhbHNlIik7CitzaG91bGRCZSgiW3VuZGVmaW5lZCwg
MCwgbnVsbCwgZmFsc2UsICcnXS5maW5kTGFzdChwYXNzRW1wdHlTdHJpbmcpIiwgIicnIik7Citz
aG91bGRCZSgiWzAsMSwyLDMsNCw1LDYsNyw4LDldLmZpbmRMYXN0KHBhc3NFdmVuKSIsICI4Iik7
CitzaG91bGRCZSgiWzAsMSwyLDMsNCw1LDYsNyw4LDldLmZpbmRMYXN0KHBhc3NBZnRlcjUpIiwg
IjkiKTsKK3Nob3VsZEJlKCJbMCwgbnVsbCwgZmFsc2UsICcnXS5maW5kTGFzdChwYXNzVW5kZWZp
bmVkKSIsICJ1bmRlZmluZWQiKTsKK3Nob3VsZEJlKCJbdW5kZWZpbmVkLCAwLCBmYWxzZSwgJydd
LmZpbmRMYXN0KHBhc3NOdWxsKSIsICJ1bmRlZmluZWQiKTsKK3Nob3VsZEJlKCJbdW5kZWZpbmVk
LCAwLCBudWxsLCAnJ10uZmluZExhc3QocGFzc0ZhbHNlKSIsICJ1bmRlZmluZWQiKTsKK3Nob3Vs
ZEJlKCJbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZV0uZmluZExhc3QocGFzc0VtcHR5U3RyaW5n
KSIsICJ1bmRlZmluZWQiKTsKK3Nob3VsZEJlKCJbMSwzLDUsNyw5XS5maW5kTGFzdChwYXNzRXZl
bikiLCAidW5kZWZpbmVkIik7CitzaG91bGRCZSgiWzAsMSwyLDMsNF0uZmluZExhc3QocGFzc0Fm
dGVyNSkiLCAidW5kZWZpbmVkIik7CitzaG91bGRCZSgiW3VuZGVmaW5lZCwgbnVsbCwgZmFsc2Us
ICcnXS5maW5kTGFzdChwYXNzWmVybykiLCAidW5kZWZpbmVkIik7CisKK2RlYnVnKCJBcnJheSB3
aXRoIGhvbGVzIikKK3Nob3VsZEJlKCIobmV3IEFycmF5KDIwKSkuZmluZExhc3QocGFzc1VuZGVm
aW5lZCkiLCAidW5kZWZpbmVkIik7CitzaG91bGRCZSgiYXJyYXlXaXRoSG9sZXMuZmluZExhc3Qo
cGFzc1VuZGVmaW5lZCkiLCAidW5kZWZpbmVkIik7CitzaG91bGRCZSgiYXJyYXlXaXRoSG9sZXMu
ZmluZExhc3QocGFzc1plcm8pIiwgIjAiKTsKK3Nob3VsZEJlKCJhcnJheVdpdGhIb2xlcy5maW5k
TGFzdChwYXNzTnVsbCkiLCAibnVsbCIpOworc2hvdWxkQmUoImFycmF5V2l0aEhvbGVzLmZpbmRM
YXN0KHBhc3NGYWxzZSkiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJhcnJheVdpdGhIb2xlcy5maW5k
TGFzdChwYXNzRW1wdHlTdHJpbmcpIiwgIicnIik7CitzaG91bGRCZSgiYXJyYXlXaXRoSG9sZXMu
ZmluZExhc3QocGFzc0FmdGVyNSkiLCAiJyciKTsKKworZGVidWcoIkdlbmVyaWMgT2JqZWN0Iik7
CitzaG91bGRCZSgidG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXSkuZmlu
ZExhc3QocGFzc1VuZGVmaW5lZCkiLCAidW5kZWZpbmVkIik7CitzaG91bGRCZSgidG9PYmplY3Qo
W3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXSkuZmluZExhc3QocGFzc1plcm8pIiwgIjAi
KTsKK3Nob3VsZEJlKCJ0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddKS5m
aW5kTGFzdChwYXNzTnVsbCkiLCAibnVsbCIpOworc2hvdWxkQmUoInRvT2JqZWN0KFt1bmRlZmlu
ZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0KHBhc3NGYWxzZSkiLCAiZmFsc2UiKTsK
K3Nob3VsZEJlKCJ0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddKS5maW5k
TGFzdChwYXNzRW1wdHlTdHJpbmcpIiwgIicnIik7CitzaG91bGRCZSgidG9PYmplY3QoWzAsIG51
bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0KHBhc3NVbmRlZmluZWQpIiwgInVuZGVmaW5lZCIpOwor
c2hvdWxkQmUoInRvT2JqZWN0KFt1bmRlZmluZWQsIDAsIGZhbHNlLCAnJ10pLmZpbmRMYXN0KHBh
c3NOdWxsKSIsICJ1bmRlZmluZWQiKTsKK3Nob3VsZEJlKCJ0b09iamVjdChbdW5kZWZpbmVkLCAw
LCBudWxsLCAnJ10pLmZpbmRMYXN0KHBhc3NGYWxzZSkiLCAidW5kZWZpbmVkIik7CitzaG91bGRC
ZSgidG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2VdKS5maW5kTGFzdChwYXNzRW1w
dHlTdHJpbmcpIiwgInVuZGVmaW5lZCIpOworc2hvdWxkQmUoInRvT2JqZWN0KFt1bmRlZmluZWQs
IG51bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0KHBhc3NaZXJvKSIsICJ1bmRlZmluZWQiKTsKK3No
b3VsZEJlKCJ0b09iamVjdChuZXcgQXJyYXkoMjApKS5maW5kTGFzdChwYXNzVW5kZWZpbmVkKSIs
ICJ1bmRlZmluZWQiKTsKKworZGVidWcoIkFycmF5LWxpa2Ugb2JqZWN0IHdpdGggaW52YWxpZCBs
ZW5ndGhzIik7Cit2YXIgdGhyb3dFcnJvciA9IGZ1bmN0aW9uIHRocm93RXJyb3IoKSB7CisgICAg
dGhyb3cgbmV3IEVycm9yKCJzaG91bGQgbm90IHJlYWNoIGhlcmUiKTsKK307CitzaG91bGRCZVVu
ZGVmaW5lZCgidmFyIG9iaiA9IHsgMDogMSwgMTogMiwgMjogMywgbGVuZ3RoOiAwIH07IEFycmF5
LnByb3RvdHlwZS5maW5kTGFzdC5jYWxsKG9iaiwgdGhyb3dFcnJvcikiKTsKK3Nob3VsZEJlVW5k
ZWZpbmVkKCJ2YXIgb2JqID0geyAwOiAxLCAxOiAyLCAyOiAzLCBsZW5ndGg6IC0wIH07IEFycmF5
LnByb3RvdHlwZS5maW5kTGFzdC5jYWxsKG9iaiwgdGhyb3dFcnJvcikiKTsKK3Nob3VsZEJlVW5k
ZWZpbmVkKCJ2YXIgb2JqID0geyAwOiAxLCAxOiAyLCAyOiAzLCBsZW5ndGg6IC0zIH07IEFycmF5
LnByb3RvdHlwZS5maW5kTGFzdC5jYWxsKG9iaiwgdGhyb3dFcnJvcikiKTsKKworZGVidWcoIk1v
ZGlmaWNhdGlvbiBkdXJpbmcgc2VhcmNoIik7CitzaG91bGRCZSgiWzAsMSwyLDMsNCw1LDYsNyw4
LDldLmZpbmRMYXN0KGZpbmRJdGVtQWRkZWREdXJpbmdTZWFyY2gpIiwgInVuZGVmaW5lZCIpOwor
c2hvdWxkQmUoIlswLDEsMiwzLDQsNSw2LDcsOCw5XS5maW5kTGFzdChmaW5kSXRlbVJlbW92ZWRE
dXJpbmdTZWFyY2gpIiwgInVuZGVmaW5lZCIpOworCitkZWJ1ZygiRXhjZXB0aW9ucyIpOworc2hv
dWxkVGhyb3coIkFycmF5LnByb3RvdHlwZS5maW5kTGFzdC5jYWxsKHVuZGVmaW5lZCwgZnVuY3Rp
b24oKSB7fSkiLCAiJ1R5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IHJlcXVpcmVz
IHRoYXQgfHRoaXN8IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCciKTsKK3Nob3VsZFRocm93KCJB
cnJheS5wcm90b3R5cGUuZmluZExhc3QuY2FsbChudWxsLCBmdW5jdGlvbigpIHt9KSIsICInVHlw
ZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3QgcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90
IGJlIG51bGwgb3IgdW5kZWZpbmVkJyIpOworc2hvdWxkVGhyb3coIltdLmZpbmRMYXN0KDEpIiwg
IidUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdCBjYWxsYmFjayBtdXN0IGJlIGEg
ZnVuY3Rpb24nIik7CitzaG91bGRUaHJvdygiW10uZmluZExhc3QoJ2hlbGxvJykiLCAiJ1R5cGVF
cnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlv
biciKTsKK3Nob3VsZFRocm93KCJbXS5maW5kTGFzdChbXSkiLCAiJ1R5cGVFcnJvcjogQXJyYXku
cHJvdG90eXBlLmZpbmRMYXN0IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiciKTsKK3Nob3Vs
ZFRocm93KCJbXS5maW5kTGFzdCh7fSkiLCAiJ1R5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZp
bmRMYXN0IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiciKTsKK3Nob3VsZFRocm93KCJbXS5m
aW5kTGFzdChudWxsKSIsICInVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3QgY2Fs
bGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyIpOworc2hvdWxkVGhyb3coIltdLmZpbmRMYXN0KHVu
ZGVmaW5lZCkiLCAiJ1R5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGNhbGxiYWNr
IG11c3QgYmUgYSBmdW5jdGlvbiciKTsKKworZGVidWcoIkNhbGxiYWNrcyBpbiB0aGUgZXhwZWN0
ZWQgb3JkZXIgYW5kICpub3QqIHNraXBwaW5nIGhvbGVzIik7CitzaG91bGRCZSgibnVtYmVyT2ZD
YWxsYmFja3NJbkZpbmRJbkFycmF5V2l0aEhvbGVzKCkiLCAiOCIpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2FycmF5LWZpbmRMYXN0SW5kZXguanMgYi9MYXlvdXRU
ZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJyYXktZmluZExhc3RJbmRleC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
Mjg5MjIwOTMwYjRkOTAyNWNkOWE3NDQ0Njc4NmM5ZWE5Mzc0YjEwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2FycmF5LWZpbmRMYXN0SW5kZXguanMKQEAg
LTAsMCArMSwxMjIgQEAKKy8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VBcnJheUZpbmRMYXN0TWV0
aG9kPXRydWUiKQorZGVzY3JpcHRpb24oIlRlc3RzIGZvciBBcnJheS5wcm90b3R5cGUuZmluZExh
c3RJbmRleCIpOworCitzaG91bGRCZSgiQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXgubGVu
Z3RoIiwgIjEiKTsKK3Nob3VsZEJlKCJBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleC5uYW1l
IiwgIidmaW5kTGFzdEluZGV4JyIpOworCitmdW5jdGlvbiBwYXNzVW5kZWZpbmVkKGVsZW1lbnQs
IGluZGV4LCBhcnJheSkgeworICAgIHJldHVybiB0eXBlb2YgZWxlbWVudCA9PT0gInVuZGVmaW5l
ZCI7Cit9CitmdW5jdGlvbiBwYXNzWmVybyhlbGVtZW50LCBpbmRleCwgYXJyYXkpIHsKKyAgICBy
ZXR1cm4gZWxlbWVudCA9PT0gMDsKK30KK2Z1bmN0aW9uIHBhc3NOdWxsKGVsZW1lbnQsIGluZGV4
LCBhcnJheSkgeworICAgIHJldHVybiBlbGVtZW50ID09PSBudWxsOworfQorZnVuY3Rpb24gcGFz
c0ZhbHNlKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgeworICAgIHJldHVybiBlbGVtZW50ID09PSBm
YWxzZTsKK30KK2Z1bmN0aW9uIHBhc3NFbXB0eVN0cmluZyhlbGVtZW50LCBpbmRleCwgYXJyYXkp
IHsKKyAgICByZXR1cm4gZWxlbWVudCA9PT0gIiI7Cit9CitmdW5jdGlvbiBwYXNzRXZlbihhKSB7
CisgICAgcmV0dXJuICEoYSAmIDEpOworfQorZnVuY3Rpb24gcGFzc0FmdGVyNShlbGVtZW50LCBp
bmRleCkgeworICAgIHJldHVybiBpbmRleCA+PSA1OworfQorZnVuY3Rpb24gdG9PYmplY3QoYXJy
YXkpIHsKKyAgICB2YXIgcmVzdWx0ID0ge307CisgICAgcmVzdWx0Lmxlbmd0aCA9IGFycmF5Lmxl
bmd0aDsKKyAgICBmb3IgKHZhciBpIGluIGFycmF5KQorICAgICAgICByZXN1bHRbaV0gPSBhcnJh
eVtpXTsKKyAgICByZXN1bHQuZmluZExhc3RJbmRleCA9IEFycmF5LnByb3RvdHlwZS5maW5kTGFz
dEluZGV4OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmdW5jdGlvbiBmaW5kSXRlbUFkZGVkRHVy
aW5nU2VhcmNoKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgeworICAgIGlmIChpbmRleCA9PT0gYXJy
YXkubGVuZ3RoIC0gMSkKKyAgICAgICAgYXJyYXkudW5zaGlmdChhcnJheS5sZW5ndGgpOworICAg
IHJldHVybiAoaW5kZXggPT09IGFycmF5Lmxlbmd0aCAtIDEpOworfQorZnVuY3Rpb24gZmluZEl0
ZW1SZW1vdmVkRHVyaW5nU2VhcmNoKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgeworICAgIGlmIChp
bmRleCA9PT0gMCkKKyAgICAgICAgYXJyYXkuc2hpZnQoKTsKKyAgICByZXR1cm4gKGluZGV4ID09
PSAwICYmIGFycmF5WzBdID09PSBlbGVtZW50KTsKK30KK3ZhciBhcnJheVdpdGhIb2xlcyA9IFtd
OworYXJyYXlXaXRoSG9sZXNbMV0gPSAwOworYXJyYXlXaXRoSG9sZXNbM10gPSBudWxsOworYXJy
YXlXaXRoSG9sZXNbNV0gPSBmYWxzZTsKK2FycmF5V2l0aEhvbGVzWzddID0gIiI7CitmdW5jdGlv
biBudW1iZXJPZkNhbGxiYWNrc0luRmluZEluZGV4SW5BcnJheVdpdGhIb2xlcygpIHsKKyAgICB2
YXIgY291bnQgPSAwOworICAgIGFycmF5V2l0aEhvbGVzLmZpbmQoZnVuY3Rpb24oZWxlbWVudCwg
aW5kZXgsIGFycmF5KSB7CisgICAgICAgIGRlYnVnKCJmaW5kIGNhbGxiYWNrIGNhbGxlZCB3aXRo
IGluZGV4ICIgKyBpbmRleCk7CisgICAgICAgIGNvdW50Kys7CisgICAgfSk7CisgICAgcmV0dXJu
IGNvdW50OworfQorCitzaG91bGRCZSgiW3VuZGVmaW5lZCwgMCwgbnVsbCwgZmFsc2UsICcnXS5m
aW5kTGFzdEluZGV4KHBhc3NVbmRlZmluZWQpIiwgIjAiKTsKK3Nob3VsZEJlKCJbdW5kZWZpbmVk
LCAwLCBudWxsLCBmYWxzZSwgJyddLmZpbmRMYXN0SW5kZXgocGFzc1plcm8pIiwgIjEiKTsKK3No
b3VsZEJlKCJbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddLmZpbmRMYXN0SW5kZXgocGFz
c051bGwpIiwgIjIiKTsKK3Nob3VsZEJlKCJbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJydd
LmZpbmRMYXN0SW5kZXgocGFzc0ZhbHNlKSIsICIzIik7CitzaG91bGRCZSgiW3VuZGVmaW5lZCwg
MCwgbnVsbCwgZmFsc2UsICcnXS5maW5kTGFzdEluZGV4KHBhc3NFbXB0eVN0cmluZykiLCAiNCIp
Oworc2hvdWxkQmUoIlswLDEsMiwzLDQsNSw2LDcsOCw5XS5maW5kTGFzdEluZGV4KHBhc3NFdmVu
KSIsICI4Iik7CitzaG91bGRCZSgiWzAsMSwyLDMsNCw1LDYsNyw4LDldLmZpbmRMYXN0SW5kZXgo
cGFzc0FmdGVyNSkiLCAiOSIpOworc2hvdWxkQmUoIlswLCBudWxsLCBmYWxzZSwgJyddLmZpbmRM
YXN0SW5kZXgocGFzc1VuZGVmaW5lZCkiLCAiLTEiKTsKK3Nob3VsZEJlKCJbdW5kZWZpbmVkLCAw
LCBmYWxzZSwgJyddLmZpbmRMYXN0SW5kZXgocGFzc051bGwpIiwgIi0xIik7CitzaG91bGRCZSgi
W3VuZGVmaW5lZCwgMCwgbnVsbCwgJyddLmZpbmRMYXN0SW5kZXgocGFzc0ZhbHNlKSIsICItMSIp
Oworc2hvdWxkQmUoIlt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlXS5maW5kTGFzdEluZGV4KHBh
c3NFbXB0eVN0cmluZykiLCAiLTEiKTsKK3Nob3VsZEJlKCJbMSwzLDUsNyw5XS5maW5kTGFzdElu
ZGV4KHBhc3NFdmVuKSIsICItMSIpOworc2hvdWxkQmUoIlswLDEsMiwzLDRdLmZpbmRMYXN0SW5k
ZXgocGFzc0FmdGVyNSkiLCAiLTEiKTsKK3Nob3VsZEJlKCJbdW5kZWZpbmVkLCBudWxsLCBmYWxz
ZSwgJyddLmZpbmRMYXN0SW5kZXgocGFzc1plcm8pIiwgIi0xIik7CisKK2RlYnVnKCJBcnJheSB3
aXRoIGhvbGVzIik7CitzaG91bGRCZSgiKG5ldyBBcnJheSgyMCkpLmZpbmRMYXN0SW5kZXgocGFz
c1VuZGVmaW5lZCkiLCAiMTkiKTsKK3Nob3VsZEJlKCJhcnJheVdpdGhIb2xlcy5maW5kTGFzdElu
ZGV4KHBhc3NVbmRlZmluZWQpIiwgIjYiKTsKK3Nob3VsZEJlKCJhcnJheVdpdGhIb2xlcy5maW5k
TGFzdEluZGV4KHBhc3NaZXJvKSIsICIxIik7CitzaG91bGRCZSgiYXJyYXlXaXRoSG9sZXMuZmlu
ZExhc3RJbmRleChwYXNzTnVsbCkiLCAiMyIpOworc2hvdWxkQmUoImFycmF5V2l0aEhvbGVzLmZp
bmRMYXN0SW5kZXgocGFzc0ZhbHNlKSIsICI1Iik7CitzaG91bGRCZSgiYXJyYXlXaXRoSG9sZXMu
ZmluZExhc3RJbmRleChwYXNzRW1wdHlTdHJpbmcpIiwgIjciKTsKK3Nob3VsZEJlKCJhcnJheVdp
dGhIb2xlcy5maW5kTGFzdEluZGV4KHBhc3NBZnRlcjUpIiwgIjciKTsKK2FycmF5V2l0aEhvbGVz
WzZdID0ge307CitzaG91bGRCZSgiYXJyYXlXaXRoSG9sZXMuZmluZExhc3RJbmRleChwYXNzVW5k
ZWZpbmVkKSIsICI0Iik7CisKK2RlYnVnKCJHZW5lcmljIE9iamVjdCIpOworc2hvdWxkQmUoInRv
T2JqZWN0KFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0SW5kZXgocGFz
c1VuZGVmaW5lZCkiLCAiMCIpOworc2hvdWxkQmUoInRvT2JqZWN0KFt1bmRlZmluZWQsIDAsIG51
bGwsIGZhbHNlLCAnJ10pLmZpbmRMYXN0SW5kZXgocGFzc1plcm8pIiwgIjEiKTsKK3Nob3VsZEJl
KCJ0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddKS5maW5kTGFzdEluZGV4
KHBhc3NOdWxsKSIsICIyIik7CitzaG91bGRCZSgidG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgbnVs
bCwgZmFsc2UsICcnXSkuZmluZExhc3RJbmRleChwYXNzRmFsc2UpIiwgIjMiKTsKK3Nob3VsZEJl
KCJ0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCBmYWxzZSwgJyddKS5maW5kTGFzdEluZGV4
KHBhc3NFbXB0eVN0cmluZykiLCAiNCIpOworc2hvdWxkQmUoInRvT2JqZWN0KFswLCBudWxsLCBm
YWxzZSwgJyddKS5maW5kTGFzdEluZGV4KHBhc3NVbmRlZmluZWQpIiwgIi0xIik7CitzaG91bGRC
ZSgidG9PYmplY3QoW3VuZGVmaW5lZCwgMCwgZmFsc2UsICcnXSkuZmluZExhc3RJbmRleChwYXNz
TnVsbCkiLCAiLTEiKTsKK3Nob3VsZEJlKCJ0b09iamVjdChbdW5kZWZpbmVkLCAwLCBudWxsLCAn
J10pLmZpbmRMYXN0SW5kZXgocGFzc0ZhbHNlKSIsICItMSIpOworc2hvdWxkQmUoInRvT2JqZWN0
KFt1bmRlZmluZWQsIDAsIG51bGwsIGZhbHNlXSkuZmluZExhc3RJbmRleChwYXNzRW1wdHlTdHJp
bmcpIiwgIi0xIik7CitzaG91bGRCZSgidG9PYmplY3QoW3VuZGVmaW5lZCwgbnVsbCwgZmFsc2Us
ICcnXSkuZmluZExhc3RJbmRleChwYXNzWmVybykiLCAiLTEiKTsKK3Nob3VsZEJlKCJ0b09iamVj
dChuZXcgQXJyYXkoMjApKS5maW5kTGFzdEluZGV4KHBhc3NVbmRlZmluZWQpIiwgIjE5Iik7CisK
K2RlYnVnKCJBcnJheS1saWtlIG9iamVjdCB3aXRoIGludmFsaWQgbGVuZ3RocyIpOwordmFyIHRo
cm93RXJyb3IgPSBmdW5jdGlvbiB0aHJvd0Vycm9yKCkgeworICAgIHRocm93IG5ldyBFcnJvcigi
c2hvdWxkIG5vdCByZWFjaCBoZXJlIik7Cit9Oworc2hvdWxkQmUoInZhciBvYmogPSB7IDA6IDEs
IDE6IDIsIDI6IDMsIGxlbmd0aDogMCB9OyBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleC5j
YWxsKG9iaiwgdGhyb3dFcnJvcikiLCAiLTEiKTsKK3Nob3VsZEJlKCJ2YXIgb2JqID0geyAwOiAx
LCAxOiAyLCAyOiAzLCBsZW5ndGg6IC0wIH07IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4
LmNhbGwob2JqLCB0aHJvd0Vycm9yKSIsICItMSIpOworc2hvdWxkQmUoInZhciBvYmogPSB7IDA6
IDEsIDE6IDIsIDI6IDMsIGxlbmd0aDogLTMgfTsgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5k
ZXguY2FsbChvYmosIHRocm93RXJyb3IpIiwgIi0xIik7CisKK2RlYnVnKCJNb2RpZmljYXRpb24g
ZHVyaW5nIHNlYXJjaCIpOworc2hvdWxkQmUoIlswLDEsMiwzLDQsNSw2LDcsOCw5XS5maW5kTGFz
dEluZGV4KGZpbmRJdGVtQWRkZWREdXJpbmdTZWFyY2gpIiwgIi0xIik7CitzaG91bGRCZSgiWzAs
MSwyLDMsNCw1LDYsNyw4LDldLmZpbmRMYXN0SW5kZXgoZmluZEl0ZW1SZW1vdmVkRHVyaW5nU2Vh
cmNoKSIsICItMSIpOworCitkZWJ1ZygiRXhjZXB0aW9ucyIpOworc2hvdWxkVGhyb3coIkFycmF5
LnByb3RvdHlwZS5maW5kTGFzdEluZGV4LmNhbGwodW5kZWZpbmVkLCBmdW5jdGlvbigpIHt9KSIs
ICInVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleCByZXF1aXJlcyB0aGF0
IHx0aGlzfCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQnIik7CitzaG91bGRUaHJvdygiQXJyYXku
cHJvdG90eXBlLmZpbmRMYXN0SW5kZXguY2FsbChudWxsLCBmdW5jdGlvbigpIHt9KSIsICInVHlw
ZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleCByZXF1aXJlcyB0aGF0IHx0aGlz
fCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQnIik7CitzaG91bGRUaHJvdygiW10uZmluZExhc3RJ
bmRleCgxKSIsICInVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleCBjYWxs
YmFjayBtdXN0IGJlIGEgZnVuY3Rpb24nIik7CitzaG91bGRUaHJvdygiW10uZmluZExhc3RJbmRl
eCgnaGVsbG8nKSIsICInVHlwZUVycm9yOiBBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleCBj
YWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24nIik7CitzaG91bGRUaHJvdygiW10uZmluZExhc3RJ
bmRleChbXSkiLCAiJ1R5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXggY2Fs
bGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyIpOworc2hvdWxkVGhyb3coIltdLmZpbmRMYXN0SW5k
ZXgoe30pIiwgIidUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IGNhbGxi
YWNrIG11c3QgYmUgYSBmdW5jdGlvbiciKTsKK3Nob3VsZFRocm93KCJbXS5maW5kTGFzdEluZGV4
KG51bGwpIiwgIidUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IGNhbGxi
YWNrIG11c3QgYmUgYSBmdW5jdGlvbiciKTsKK3Nob3VsZFRocm93KCJbXS5maW5kTGFzdEluZGV4
KHVuZGVmaW5lZCkiLCAiJ1R5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXgg
Y2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyIpOworCitkZWJ1ZygiQ2FsbGJhY2tzIGluIHRo
ZSBleHBlY3RlZCBvcmRlciBhbmQgKm5vdCogc2tpcHBpbmcgaG9sZXMiKTsKK3Nob3VsZEJlKCJu
dW1iZXJPZkNhbGxiYWNrc0luRmluZEluZGV4SW5BcnJheVdpdGhIb2xlcygpIiwgIjgiKTsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2Q4
OTEyNGVhMDY1ZDU3MjAzMTI4NmMyYTNjMzhmMDg3NmZlY2ZiMS4uZTA4YTA5ZjllMWI0MDc1Mzgy
MGNmYjhiYzE1NDFmYTFiM2UxMTUwNiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0wNy0xMyAgRGV2aW4g
Um91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEFycmF5LnBy
b3RvdHlwZS5maW5kTGFzdCBhbmQgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXgKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzkzOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRh
cnJheS1maW5kTGFzdC5qczogQWRkZWQuCisgICAgICAgIChrZWVwRXZlbik6CisgICAgICAgIChr
ZWVwRXZlbkFuZENoYW5nZSk6CisgICAgICAgIChpc0JpZ0Vub3VnaEFuZEV4Y2VwdGlvbik6CisK
KyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1maW5kTGFzdEluZGV4LmpzOiBBZGRlZC4KKyAg
ICAgICAgKGtlZXBFdmVuKToKKyAgICAgICAgKGtlZXBFdmVuQW5kQ2hhbmdlKToKKyAgICAgICAg
KGlzQmlnRW5vdWdoQW5kRXhjZXB0aW9uKToKKwogMjAyMS0wNy0xNCAgTWFyayBMYW0gIDxtYXJr
LmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hlY2sgZm9yIG91dCBvZiBtZW1vcnkgaW4gSlND
OjpnbG9iYWxGdW5jRXNjYXBlKCkgYW5kIEpTQzo6Z2xvYmFsRnVuY1VuZXNjYXBlKCkuCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbmRMYXN0LmpzIGIvSlNUZXN0cy9z
dHJlc3MvdHlwZWRhcnJheS1maW5kTGFzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDEzNmU1NjJkY2E5MmU3
OTEzNjg1MmZmOWI4YzFiOTU0MjU3N2RhCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJl
c3MvdHlwZWRhcnJheS1maW5kTGFzdC5qcwpAQCAtMCwwICsxLDU3IEBACisvL0AgcmVxdWlyZU9w
dGlvbnMoIi0tdXNlQXJyYXlGaW5kTGFzdE1ldGhvZD10cnVlIikKK2xvYWQoIi4vcmVzb3VyY2Vz
L3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OworZGVzY3JpcHRpb24oCisiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5
cGVkQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGZ1bmN0aW9uIgorKTsKKworc2hvdWxkQmUoIklu
dDMyQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0Lmxlbmd0aCIsICIxIik7CitzaG91bGRCZSgiSW50
MzJBcnJheS5wcm90b3R5cGUuZmluZExhc3QubmFtZSIsICInZmluZExhc3QnIik7CitzaG91bGRC
ZVRydWUoImlzU2FtZUZ1bmN0aW9uRm9yRWFjaFR5cGVkQXJyYXlQcm90b3R5cGUoJ2ZpbmRMYXN0
JykiKTsKK3Nob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZVJlY2VpdmVzQXJyYXkoJ2ZpbmRMYXN0
JywgW3VuZGVmaW5lZCwgdGhpcywgeyB9LCBbIF0sIHRydWUsICcnXSkiKTsKK2RlYnVnKCIiKTsK
KworZGVidWcoInRlc3RQcm90b3R5cGVGdW5jdGlvbiBoYXMgdGhlIGZvbGxvd2luZyBhcmcgbGlz
dCAobmFtZSwgYXJncywgaW5pdCwgcmVzdWx0IFsgLCBleHBlY3RlZEFycmF5IF0pIik7CitkZWJ1
ZygiIik7CisKK2RlYnVnKCIxLjAgU2luZ2xlIEFyZ3VtZW50IFRlc3RpbmciKTsKK2Z1bmN0aW9u
IGtlZXBFdmVuKGUsIGkpIHsKKyAgICByZXR1cm4gIShlICYgMSkgfHwgKHRoaXMua2VlcCA/IHRo
aXMua2VlcCA9PT0gaSA6IGZhbHNlKTsKK30KK3Nob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1
bmN0aW9uKCdmaW5kTGFzdCcsICcoa2VlcEV2ZW4pJywgWzEyLCA1LCA4LCAxMywgNDRdLCA0NCki
KTsKK3Nob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kTGFzdCcsICcoa2Vl
cEV2ZW4pJywgWzExLCAxMywgMTcsIDEzLCAyMl0sIDIyKSIpOworc2hvdWxkQmVUcnVlKCJ0ZXN0
UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRMYXN0JywgJyhrZWVwRXZlbiknLCBbMjIsIDEzLCAxNywg
MTMsIDExXSwgMjIpIik7CitzaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmlu
ZExhc3QnLCAnKGtlZXBFdmVuKScsIFsxMSwgMTMsIDE3LCAxMywgMTFdLCB1bmRlZmluZWQpIik7
CitkZWJ1ZygiIik7CisKK2RlYnVnKCIyLjAgVHdvIEFyZ3VtZW50IFRlc3RpbmciKTsKK3ZhciB0
aGlzVmFsdWUgPSB7IGtlZXA6IDMgfTsKK3Nob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0
aW9uKCdmaW5kTGFzdCcsICcoa2VlcEV2ZW4sIHRoaXNWYWx1ZSknLCBbMTEsIDIzLCAxMSwgMSwg
NDRdLCA0NCkiKTsKK3Nob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kTGFz
dCcsICcoa2VlcEV2ZW4sIHRoaXNWYWx1ZSknLCBbMTEsIDIzLCAxMSwgMSwgNDNdLCAxKSIpOwor
ZGVidWcoIiIpOworCitkZWJ1ZygiMy4wIEFycmF5IEVsZW1lbnQgQ2hhbmdpbmciKTsKK2Z1bmN0
aW9uIGtlZXBFdmVuQW5kQ2hhbmdlKGUsIGksIGEpIHsKKyAgICBhW2EubGVuZ3RoIC0gMSAtIGld
ID0gNTsKKyAgICByZXR1cm4gIShlICYgMSk7Cit9CitzaG91bGRCZVRydWUoInRlc3RQcm90b3R5
cGVGdW5jdGlvbignZmluZExhc3QnLCAnKGtlZXBFdmVuQW5kQ2hhbmdlKScsIFsxMSwgMTUsIDMs
IDEyLCA0NF0sIDQ0LCBbNSwgMTUsIDMsIDEyLCA0NF0pIik7CitzaG91bGRCZVRydWUoInRlc3RQ
cm90b3R5cGVGdW5jdGlvbignZmluZExhc3QnLCAnKGtlZXBFdmVuQW5kQ2hhbmdlKScsIFs0NCwg
MTIsIDMsIDE1LCAxMV0sIHVuZGVmaW5lZCwgWzUsIDUsIDUsIDUsIDVdKSIpOworZGVidWcoIiIp
OworCitkZWJ1ZygiNC4wIEV4Y2VwdGlvbiBUZXN0Iik7CitmdW5jdGlvbiBpc0JpZ0Vub3VnaEFu
ZEV4Y2VwdGlvbihlbGVtZW50LCBpbmRleCwgYXJyYXkpIHsKKyAgICBpZihpbmRleD09MykgdGhy
b3cgImV4Y2VwdGlvbiBmcm9tIGZ1bmN0aW9uIjsKKyAgICByZXR1cm4gKGVsZW1lbnQgPT0gNDQp
OworfQorc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRMYXN0JywgJyhp
c0JpZ0Vub3VnaEFuZEV4Y2VwdGlvbiknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgNDQpIik7Citz
aG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kTGFzdCcsICcoaXNCaWdFbm91
Z2hBbmRFeGNlcHRpb24pJywgWzksIDE1LCAxMCwgMTMsIDQzXSwgZmFsc2UpIik7CitkZWJ1Zygi
Iik7CisKK2RlYnVnKCI1LjAgV3JvbmcgVHlwZSBmb3IgQ2FsbGJhY2sgVGVzdCIpOworc2hvdWxk
VGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZExhc3QnLCAnKDgpJywgWzEyLCAxNSwg
MTAsIDEzLCA0NF0sIGZhbHNlKSIsICInVHlwZUVycm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5m
aW5kTGFzdCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24nIik7CitzaG91bGRUaHJvdygidGVz
dFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kTGFzdCcsICcoXCJ3cm9uZ1wiKScsIFsxMiwgMTUsIDEw
LCAxMywgNDRdLCBmYWxzZSkiLCAiJ1R5cGVFcnJvcjogVHlwZWRBcnJheS5wcm90b3R5cGUuZmlu
ZExhc3QgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyIpOworc2hvdWxkVGhyb3coInRlc3RQ
cm90b3R5cGVGdW5jdGlvbignZmluZExhc3QnLCAnKG5ldyBPYmplY3QoKSknLCBbMTIsIDE1LCAx
MCwgMTMsIDQ0XSwgZmFsc2UpIiwgIidUeXBlRXJyb3I6IFR5cGVkQXJyYXkucHJvdG90eXBlLmZp
bmRMYXN0IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiciKTsKK3Nob3VsZFRocm93KCJ0ZXN0
UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRMYXN0JywgJyhudWxsKScsIFsxMiwgMTUsIDEwLCAxMywg
NDRdLCBmYWxzZSkiLCAiJ1R5cGVFcnJvcjogVHlwZWRBcnJheS5wcm90b3R5cGUuZmluZExhc3Qg
Y2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyIpOworc2hvdWxkVGhyb3coInRlc3RQcm90b3R5
cGVGdW5jdGlvbignZmluZExhc3QnLCAnKCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2Up
IiwgIidUeXBlRXJyb3I6IFR5cGVkQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGNhbGxiYWNrIG11
c3QgYmUgYSBmdW5jdGlvbiciKTsKK2RlYnVnKCIiKTsKK2ZpbmlzaEpTVGVzdCgpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maW5kTGFzdEluZGV4LmpzIGIvSlNUZXN0
cy9zdHJlc3MvdHlwZWRhcnJheS1maW5kTGFzdEluZGV4LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmNjc5NTg3
ODhmMzIzZGIwMTg2NGM3ZTkxYmNhODlkZGNmY2I0YjMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rl
c3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbmRMYXN0SW5kZXguanMKQEAgLTAsMCArMSw1NyBAQAor
Ly9AIHJlcXVpcmVPcHRpb25zKCItLXVzZUFycmF5RmluZExhc3RNZXRob2Q9dHJ1ZSIpCitsb2Fk
KCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKK2Rlc2NyaXB0aW9uKAorIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2
aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IGZ1bmN0aW9uIgor
KTsKKworc2hvdWxkQmUoIkludDMyQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXgubGVuZ3Ro
IiwgIjEiKTsKK3Nob3VsZEJlKCJJbnQzMkFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4Lm5h
bWUiLCAiJ2ZpbmRMYXN0SW5kZXgnIik7CitzaG91bGRCZVRydWUoImlzU2FtZUZ1bmN0aW9uRm9y
RWFjaFR5cGVkQXJyYXlQcm90b3R5cGUoJ2ZpbmRMYXN0SW5kZXgnKSIpOworc2hvdWxkQmVUcnVl
KCJ0ZXN0UHJvdG90eXBlUmVjZWl2ZXNBcnJheSgnZmluZExhc3RJbmRleCcsIFt1bmRlZmluZWQs
IHRoaXMsIHsgfSwgWyBdLCB0cnVlLCAnJ10pIik7CitkZWJ1ZygiIik7CisKK2RlYnVnKCJ0ZXN0
UHJvdG90eXBlRnVuY3Rpb24gaGFzIHRoZSBmb2xsb3dpbmcgYXJnIGxpc3QgKG5hbWUsIGFyZ3Ms
IGluaXQsIHJlc3VsdCBbICwgZXhwZWN0ZWRBcnJheSBdKSIpOworZGVidWcoIiIpOworCitkZWJ1
ZygiMS4wIFNpbmdsZSBBcmd1bWVudCBUZXN0aW5nIik7CitmdW5jdGlvbiBrZWVwRXZlbihlLCBp
KSB7CisgICAgcmV0dXJuICEoZSAmIDEpIHx8ICh0aGlzLmtlZXAgPyB0aGlzLmtlZXAgPT09IGkg
OiBmYWxzZSk7Cit9CitzaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZExh
c3RJbmRleCcsICcoa2VlcEV2ZW4pJywgWzEyLCA1LCA4LCAxMywgNDRdLCA0KSIpOworc2hvdWxk
QmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRMYXN0SW5kZXgnLCAnKGtlZXBFdmVu
KScsIFsxMSwgMTMsIDE3LCAxMywgMjJdLCA0KSIpOworc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90
eXBlRnVuY3Rpb24oJ2ZpbmRMYXN0SW5kZXgnLCAnKGtlZXBFdmVuKScsIFsyMiwgMTMsIDE3LCAx
MywgMTFdLCAwKSIpOworc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRM
YXN0SW5kZXgnLCAnKGtlZXBFdmVuKScsIFsxMSwgMTMsIDE3LCAxMywgMTFdLCAtMSkiKTsKK2Rl
YnVnKCIiKTsKKworZGVidWcoIjIuMCBUd28gQXJndW1lbnQgVGVzdGluZyIpOwordmFyIHRoaXNW
YWx1ZSA9IHsga2VlcDogMyB9Oworc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24o
J2ZpbmRMYXN0SW5kZXgnLCAnKGtlZXBFdmVuLCB0aGlzVmFsdWUpJywgWzExLCAyMywgMTEsIDEs
IDQ0XSwgNCkiKTsKK3Nob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kTGFz
dEluZGV4JywgJyhrZWVwRXZlbiwgdGhpc1ZhbHVlKScsIFsxMSwgMjMsIDExLCAxLCA0M10sIDMp
Iik7CitkZWJ1ZygiIik7CisKK2RlYnVnKCIzLjAgQXJyYXkgRWxlbWVudCBDaGFuZ2luZyIpOwor
ZnVuY3Rpb24ga2VlcEV2ZW5BbmRDaGFuZ2UoZSwgaSwgYSkgeworICAgIGFbYS5sZW5ndGggLSAx
IC0gaV0gPSA1OworICAgIHJldHVybiAhKGUgJiAxKTsKK30KK3Nob3VsZEJlVHJ1ZSgidGVzdFBy
b3RvdHlwZUZ1bmN0aW9uKCdmaW5kTGFzdEluZGV4JywgJyhrZWVwRXZlbkFuZENoYW5nZSknLCBb
MTEsIDE1LCAzLCAxMiwgNDRdLCA0LCBbNSwgMTUsIDMsIDEyLCA0NF0pIik7CitzaG91bGRCZVRy
dWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZExhc3RJbmRleCcsICcoa2VlcEV2ZW5BbmRD
aGFuZ2UpJywgWzQ0LCAxMiwgMywgMTUsIDExXSwgLTEsIFs1LCA1LCA1LCA1LCA1XSkiKTsKK2Rl
YnVnKCIiKTsKKworZGVidWcoIjQuMCBFeGNlcHRpb24gVGVzdCIpOworZnVuY3Rpb24gaXNCaWdF
bm91Z2hBbmRFeGNlcHRpb24oZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7CisgICAgaWYoaW5kZXg9
PTMpIHRocm93ICJleGNlcHRpb24gZnJvbSBmdW5jdGlvbiI7CisgICAgcmV0dXJuIChlbGVtZW50
ID49IDQ0KTsKK30KK3Nob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kTGFz
dEluZGV4JywgJyhpc0JpZ0Vub3VnaEFuZEV4Y2VwdGlvbiknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0
XSwgNCkiKTsKK3Nob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRMYXN0SW5k
ZXgnLCAnKGlzQmlnRW5vdWdoQW5kRXhjZXB0aW9uKScsIFs5LCAxNSwgMTAsIDEzLCA0M10sIGZh
bHNlKSIpOworZGVidWcoIiIpOworCitkZWJ1ZygiNS4wIFdyb25nIFR5cGUgZm9yIENhbGxiYWNr
IFRlc3QiKTsKK3Nob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRMYXN0SW5k
ZXgnLCAnKDgpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIsICInVHlwZUVycm9yOiBU
eXBlZEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5j
dGlvbiciKTsKK3Nob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRMYXN0SW5k
ZXgnLCAnKFwid3JvbmdcIiknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIiwgIidUeXBl
RXJyb3I6IFR5cGVkQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXggY2FsbGJhY2sgbXVzdCBi
ZSBhIGZ1bmN0aW9uJyIpOworc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmlu
ZExhc3RJbmRleCcsICcobmV3IE9iamVjdCgpKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxz
ZSkiLCAiJ1R5cGVFcnJvcjogVHlwZWRBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleCBjYWxs
YmFjayBtdXN0IGJlIGEgZnVuY3Rpb24nIik7CitzaG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1
bmN0aW9uKCdmaW5kTGFzdEluZGV4JywgJyhudWxsKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBm
YWxzZSkiLCAiJ1R5cGVFcnJvcjogVHlwZWRBcnJheS5wcm90b3R5cGUuZmluZExhc3RJbmRleCBj
YWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24nIik7CitzaG91bGRUaHJvdygidGVzdFByb3RvdHlw
ZUZ1bmN0aW9uKCdmaW5kTGFzdEluZGV4JywgJygpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZh
bHNlKSIsICInVHlwZUVycm9yOiBUeXBlZEFycmF5LnByb3RvdHlwZS5maW5kTGFzdEluZGV4IGNh
bGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiciKTsKK2RlYnVnKCIiKTsKK2ZpbmlzaEpTVGVzdCgp
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>