<?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>28977</bug_id>
          
          <creation_ts>2009-09-04 10:25:37 -0700</creation_ts>
          <short_desc>Enable shared worker tests</short_desc>
          <delta_ts>2009-09-07 16:55:26 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>28959</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrew Wilson">atwilson</reporter>
          <assigned_to name="Andrew Wilson">atwilson</assigned_to>
          <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>144859</commentid>
    <comment_count>0</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2009-09-04 10:25:37 -0700</bug_when>
    <thetext>We need to enable the shared worker tests once we turn on the ENABLE_SHARED_WORKER flag.

This patch *only* consists of renaming test files from shared-worker-xxxxxx.html-disabled to shared-worker-xxxxxx.html, and should be landed along with the patch for bug #28959.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144959</commentid>
    <comment_count>1</comment_count>
      <attachid>39101</attachid>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2009-09-04 17:06:11 -0700</bug_when>
    <thetext>Created attachment 39101
proposed patch containing *only* renamed files

This patch just renames the test files - it makes *no* other changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144974</commentid>
    <comment_count>2</comment_count>
      <attachid>39101</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-09-04 18:29:18 -0700</bug_when>
    <thetext>Comment on attachment 39101
proposed patch containing *only* renamed files

Looks fine.  Please check to see if you need to change make-script-test-wrappers to avoid overwriting your files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145246</commentid>
    <comment_count>3</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2009-09-07 16:55:26 -0700</bug_when>
    <thetext>Committed as r48139.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39101</attachid>
            <date>2009-09-04 17:06:11 -0700</date>
            <delta_ts>2009-09-04 18:29:18 -0700</delta_ts>
            <desc>proposed patch containing *only* renamed files</desc>
            <filename>y</filename>
            <type>text/plain</type>
            <size>48352</size>
            <attacher name="Andrew Wilson">atwilson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkOTk1ZDYwLi5kZWY3NmJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMDktMDkt
MDQgIERyZXcgV2lsc29uICA8YXR3aWxzb25AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGUgc2hhcmVkIHdvcmtlciB0ZXN0
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4OTc3
CisKKyAgICAgICAgSnVzdCBtb3ZlZCB0ZXN0cyBmcm9tIHNoYXJlZC13b3JrZXIteHh4eC5odG1s
LWRpc2FibGVkIHRvIHNoYXJlZC13b3JrZXIteHh4eC5odG1sLiBObyBvdGhlciBjaGFuZ2VzLgor
CisgICAgICAgICogZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItY29uc3RydWN0b3IuaHRtbDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLWNvbnN0
cnVjdG9yLmh0bWwtZGlzYWJsZWQuCisgICAgICAgICogZmFzdC93b3JrZXJzL3NoYXJlZC13b3Jr
ZXItY29udGV4dC1nYy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJz
L3NoYXJlZC13b3JrZXItY29udGV4dC1nYy5odG1sLWRpc2FibGVkLgorICAgICAgICAqIGZhc3Qv
d29ya2Vycy9zaGFyZWQtd29ya2VyLWV2ZW50LWxpc3RlbmVyLmh0bWw6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1ldmVudC1saXN0ZW5lci5odG1s
LWRpc2FibGVkLgorICAgICAgICAqIGZhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLWV4Y2VwdGlv
bi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3Jr
ZXItZXhjZXB0aW9uLmh0bWwtZGlzYWJsZWQuCisgICAgICAgICogZmFzdC93b3JrZXJzL3NoYXJl
ZC13b3JrZXItZnJhbWUtbGlmZWN5Y2xlLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9m
YXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1mcmFtZS1saWZlY3ljbGUuaHRtbC1kaXNhYmxlZC4K
KyAgICAgICAgKiBmYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1nYy5odG1sOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItZ2MuaHRtbC1kaXNhYmxl
ZC4KKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1saWZlY3ljbGUuaHRtbDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLWxpZmVj
eWNsZS5odG1sLWRpc2FibGVkLgorICAgICAgICAqIGZhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2Vy
LWxvYWQtZXJyb3IuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9z
aGFyZWQtd29ya2VyLWxvYWQtZXJyb3IuaHRtbC1kaXNhYmxlZC4KKyAgICAgICAgKiBmYXN0L3dv
cmtlcnMvc2hhcmVkLXdvcmtlci1sb2NhdGlvbi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItbG9jYXRpb24uaHRtbC1kaXNhYmxlZC4KKyAg
ICAgICAgKiBmYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1uYXZpZ2F0b3IuaHRtbDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLW5hdmlnYXRvci5o
dG1sLWRpc2FibGVkLgorICAgICAgICAqIGZhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLXJlcGxh
Y2UtZ2xvYmFsLWNvbnN0cnVjdG9yLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0
L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1yZXBsYWNlLWdsb2JhbC1jb25zdHJ1Y3Rvci5odG1sLWRp
c2FibGVkLgorICAgICAgICAqIGZhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLXJlcGxhY2Utc2Vs
Zi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3Jr
ZXItcmVwbGFjZS1zZWxmLmh0bWwtZGlzYWJsZWQuCisgICAgICAgICogZmFzdC93b3JrZXJzL3No
YXJlZC13b3JrZXItc2NyaXB0LWVycm9yLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9m
YXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1zY3JpcHQtZXJyb3IuaHRtbC1kaXNhYmxlZC4KKyAg
ICAgICAgKiBmYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1zaGFyZWQuaHRtbDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLXNoYXJlZC5odG1sLWRp
c2FibGVkLgorICAgICAgICAqIGZhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLXNpbXBsZS5odG1s
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItc2lt
cGxlLmh0bWwtZGlzYWJsZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NoYXJlZC13
b3JrZXItaW1wb3J0U2NyaXB0cy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NoYXJlZC13b3JrZXItaW1wb3J0U2NyaXB0cy5odG1sLWRpc2FibGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zaGFyZWQtd29ya2VyLXJlZGlyZWN0Lmh0bWw6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2hhcmVkLXdvcmtl
ci1yZWRpcmVjdC5odG1sLWRpc2FibGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLWNsb3NlLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1j
bG9zZS5odG1sLWRpc2FibGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
d29ya2Vycy9zaGFyZWQtd29ya2VyLW1ldGhvZHMtYXN5bmMuaHRtbDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9zaGFyZWQtd29ya2Vy
LW1ldGhvZHMtYXN5bmMuaHRtbC1kaXNhYmxlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1tZXRob2RzLmh0bWw6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3dvcmtlcnMvc2hhcmVkLXdv
cmtlci1tZXRob2RzLmh0bWwtZGlzYWJsZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC93b3JrZXJzL3NoYXJlZC13b3JrZXIteGhyLWZpbGUtbm90LWZvdW5kLmh0bWw6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3dvcmtlcnMv
c2hhcmVkLXdvcmtlci14aHItZmlsZS1ub3QtZm91bmQuaHRtbC1kaXNhYmxlZC4KKwogMjAwOS0w
OS0wMyAgRHJldyBXaWxzb24gIDxhdHdpbHNvbkBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3Jr
ZXJzL3NoYXJlZC13b3JrZXItY29uc3RydWN0b3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy9zaGFyZWQtd29ya2VyLWNvbnN0cnVjdG9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZGU3ZmEzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLWNvbnN0cnVjdG9yLmh0bWwKQEAgLTAsMCArMSw1OSBA
QAorPGJvZHk+Cis8cD5UZXN0IFNoYXJlZFdvcmtlciBjb25zdHJ1Y3RvciBmdW5jdGlvbmFsaXR5
LiBTaG91bGQgcHJpbnQgYSBzZXJpZXMgb2YgUEFTUyBtZXNzYWdlcywgZm9sbG93ZWQgd2l0aCBE
T05FLjwvcD4KKzxkaXYgaWQ9cmVzdWx0PjwvZGl2PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyht
ZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhU
TUwgKz0gbWVzc2FnZSArICI8YnI+IjsKK30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK3RyeSB7CisgICAgbmV3IFNo
YXJlZFdvcmtlcih7dG9TdHJpbmc6ZnVuY3Rpb24oKXt0aHJvdyAiZXhjZXB0aW9uIn19LCAibmFt
ZSIpCisgICAgbG9nKCJGQUlMOiB0b1N0cmluZyBleGNlcHRpb24gbm90IHByb3BhZ2F0ZWQuIik7
Cit9IGNhdGNoIChleCkgeworICAgIGlmIChleCA9PSAiZXhjZXB0aW9uIikKKyAgICAgICAgbG9n
KCJQQVNTOiB0b1N0cmluZyBleGNlcHRpb24gcHJvcGFnYXRlZCBjb3JyZWN0bHkuIik7CisgICAg
ZWxzZQorICAgICAgICBsb2coIkZBSUw6IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICgiICsgZXggKyAi
KSByZWNlaXZlZCBpbnN0ZWFkIG9mIG9uZSBwcm9wYWdhdGVkIGZyb20gdG9TdHJpbmcuIik7Cit9
CisKK3RyeSB7CisgICAgdmFyIGZvbyA9IHt0b1N0cmluZzpmdW5jdGlvbigpe25ldyBXb3JrZXIo
Zm9vKX19CisgICAgbmV3IFNoYXJlZFdvcmtlcihmb28sIG5hbWUpOworICAgIGxvZygiRkFJTDog
bm8gZXhjZXB0aW9uIHdoZW4gdHJ5aW5nIHRvIGNyZWF0ZSB3b3JrZXJzIHJlY3Vyc2l2ZWx5Iik7
Cit9IGNhdGNoIChleCkgeworICAgIGxvZygiUEFTUzogdHJ5aW5nIHRvIGNyZWF0ZSB3b3JrZXJz
IHJlY3Vyc2l2ZWx5IHJlc3VsdGVkIGluIGFuIGV4Y2VwdGlvbiAoIiArIGV4ICsgIikiKTsKK30K
KwordHJ5IHsKKyAgICBuZXcgU2hhcmVkV29ya2VyKCk7CisgICAgbG9nKCJGQUlMOiBpbnZva2lu
ZyBTaGFyZWRXb3JrZXIgY29uc3RydWN0b3Igd2l0aG91dCBhcmd1bWVudHMgZGlkIG5vdCByZXN1
bHQgaW4gYW4gZXhjZXB0aW9uIik7Cit9IGNhdGNoIChleCkgeworICAgIGxvZygiUEFTUzogaW52
b2tpbmcgU2hhcmVkV29ya2VyIGNvbnN0cnVjdG9yIHdpdGhvdXQgYXJndW1lbnRzIHJlc3VsdGVk
IGluIGFuIGV4Y2VwdGlvbiAoIiArIGV4ICsgIikiKTsKK30KKwordHJ5IHsKKyAgICB2YXIgd29y
a2VyID0gbmV3IFNoYXJlZFdvcmtlcigicmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY29tbW9uLmpz
Iik7CisgICAgbG9nKCJGQUlMOiBDb25zdHJ1Y3RvciBzdWNjZWVkZWQgd2hlbiBubyBuYW1lIGlz
IHBhc3NlZCIpOworfSBjYXRjaCAoZXgpIHsKKyAgICBsb2coIlBBU1M6IGludm9raW5nIFNoYXJl
ZFdvcmtlciBjb25zdHJ1Y3RvciB3aXRob3V0IG5hbWUgcmVzdWx0ZWQgaW4gYW4gZXhjZXB0aW9u
ICgiICsgZXggKyAiKSIpOworfQorCit0cnkgeworICAgIHZhciB3b3JrZXIgPSBuZXcgU2hhcmVk
V29ya2VyKCJyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1jb21tb24uanMiLCAibmFtZSIpOworICAg
IGxvZyAoIlBBU1M6IFNoYXJlZFdvcmtlciBjb25zdHJ1Y3RvciBzdWNjZWVkZWQ6ICIgKyB3b3Jr
ZXIpOworfSBjYXRjaCAoZXgpIHsKKyAgICBsb2coIkZBSUw6IGludm9raW5nIFNoYXJlZFdvcmtl
ciBjb25zdHJ1Y3RvciByZXN1bHRlZCBpbiBhbiBleGNlcHRpb24gKCIgKyBleCArICIpIik7Cit9
CisKK2xvZygiRE9ORSIpOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisKKzwvc2NyaXB0PgorPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItY29uc3Ry
dWN0b3IuaHRtbC1kaXNhYmxlZCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29y
a2VyLWNvbnN0cnVjdG9yLmh0bWwtZGlzYWJsZWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGRlN2ZhM2YuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJl
ZC13b3JrZXItY29uc3RydWN0b3IuaHRtbC1kaXNhYmxlZAorKysgL2Rldi9udWxsCkBAIC0xLDU5
ICswLDAgQEAKLTxib2R5PgotPHA+VGVzdCBTaGFyZWRXb3JrZXIgY29uc3RydWN0b3IgZnVuY3Rp
b25hbGl0eS4gU2hvdWxkIHByaW50IGEgc2VyaWVzIG9mIFBBU1MgbWVzc2FnZXMsIGZvbGxvd2Vk
IHdpdGggRE9ORS48L3A+Ci08ZGl2IGlkPXJlc3VsdD48L2Rpdj4KLTxzY3JpcHQ+Ci1mdW5jdGlv
biBsb2cobWVzc2FnZSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iiku
aW5uZXJIVE1MICs9IG1lc3NhZ2UgKyAiPGJyPiI7Ci19Ci0KLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0g
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotfQotCi10cnkgewotICAg
IG5ldyBTaGFyZWRXb3JrZXIoe3RvU3RyaW5nOmZ1bmN0aW9uKCl7dGhyb3cgImV4Y2VwdGlvbiJ9
fSwgIm5hbWUiKQotICAgIGxvZygiRkFJTDogdG9TdHJpbmcgZXhjZXB0aW9uIG5vdCBwcm9wYWdh
dGVkLiIpOwotfSBjYXRjaCAoZXgpIHsKLSAgICBpZiAoZXggPT0gImV4Y2VwdGlvbiIpCi0gICAg
ICAgIGxvZygiUEFTUzogdG9TdHJpbmcgZXhjZXB0aW9uIHByb3BhZ2F0ZWQgY29ycmVjdGx5LiIp
OwotICAgIGVsc2UKLSAgICAgICAgbG9nKCJGQUlMOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAoIiAr
IGV4ICsgIikgcmVjZWl2ZWQgaW5zdGVhZCBvZiBvbmUgcHJvcGFnYXRlZCBmcm9tIHRvU3RyaW5n
LiIpOwotfQotCi10cnkgewotICAgIHZhciBmb28gPSB7dG9TdHJpbmc6ZnVuY3Rpb24oKXtuZXcg
V29ya2VyKGZvbyl9fQotICAgIG5ldyBTaGFyZWRXb3JrZXIoZm9vLCBuYW1lKTsKLSAgICBsb2co
IkZBSUw6IG5vIGV4Y2VwdGlvbiB3aGVuIHRyeWluZyB0byBjcmVhdGUgd29ya2VycyByZWN1cnNp
dmVseSIpOwotfSBjYXRjaCAoZXgpIHsKLSAgICBsb2coIlBBU1M6IHRyeWluZyB0byBjcmVhdGUg
d29ya2VycyByZWN1cnNpdmVseSByZXN1bHRlZCBpbiBhbiBleGNlcHRpb24gKCIgKyBleCArICIp
Iik7Ci19Ci0KLXRyeSB7Ci0gICAgbmV3IFNoYXJlZFdvcmtlcigpOwotICAgIGxvZygiRkFJTDog
aW52b2tpbmcgU2hhcmVkV29ya2VyIGNvbnN0cnVjdG9yIHdpdGhvdXQgYXJndW1lbnRzIGRpZCBu
b3QgcmVzdWx0IGluIGFuIGV4Y2VwdGlvbiIpOwotfSBjYXRjaCAoZXgpIHsKLSAgICBsb2coIlBB
U1M6IGludm9raW5nIFNoYXJlZFdvcmtlciBjb25zdHJ1Y3RvciB3aXRob3V0IGFyZ3VtZW50cyBy
ZXN1bHRlZCBpbiBhbiBleGNlcHRpb24gKCIgKyBleCArICIpIik7Ci19Ci0KLXRyeSB7Ci0gICAg
dmFyIHdvcmtlciA9IG5ldyBTaGFyZWRXb3JrZXIoInJlc291cmNlcy9zaGFyZWQtd29ya2VyLWNv
bW1vbi5qcyIpOwotICAgIGxvZygiRkFJTDogQ29uc3RydWN0b3Igc3VjY2VlZGVkIHdoZW4gbm8g
bmFtZSBpcyBwYXNzZWQiKTsKLX0gY2F0Y2ggKGV4KSB7Ci0gICAgbG9nKCJQQVNTOiBpbnZva2lu
ZyBTaGFyZWRXb3JrZXIgY29uc3RydWN0b3Igd2l0aG91dCBuYW1lIHJlc3VsdGVkIGluIGFuIGV4
Y2VwdGlvbiAoIiArIGV4ICsgIikiKTsKLX0KLQotdHJ5IHsKLSAgICB2YXIgd29ya2VyID0gbmV3
IFNoYXJlZFdvcmtlcigicmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY29tbW9uLmpzIiwgIm5hbWUi
KTsKLSAgICBsb2cgKCJQQVNTOiBTaGFyZWRXb3JrZXIgY29uc3RydWN0b3Igc3VjY2VlZGVkOiAi
ICsgd29ya2VyKTsKLX0gY2F0Y2ggKGV4KSB7Ci0gICAgbG9nKCJGQUlMOiBpbnZva2luZyBTaGFy
ZWRXb3JrZXIgY29uc3RydWN0b3IgcmVzdWx0ZWQgaW4gYW4gZXhjZXB0aW9uICgiICsgZXggKyAi
KSIpOwotfQotCi1sb2coIkRPTkUiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwotCi08L3NjcmlwdD4KLTwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2Vy
LWNvbnRleHQtZ2MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2Vy
LWNvbnRleHQtZ2MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDUx
MTNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13
b3JrZXItY29udGV4dC1nYy5odG1sCkBAIC0wLDAgKzEsNyBAQAorPGJvZHk+Cis8cD5UZXN0IE5h
dmlnYXRvci9Mb2NhdGlvbiB3cmFwcGVycyB3aXRoIEdDLjwvcD4KKzxkaXYgaWQ9cmVzdWx0Pjwv
ZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQtd29ya2VyLWNyZWF0ZS1jb21tb24u
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93b3JrZXItY29udGV4dC1nYy5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1jb250ZXh0LWdjLmh0bWwtZGlzYWJsZWQgYi9MYXlv
dXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1jb250ZXh0LWdjLmh0bWwtZGlzYWJs
ZWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkNTExM2QuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItY29udGV4dC1nYy5odG1sLWRp
c2FibGVkCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi08Ym9keT4KLTxwPlRlc3QgTmF2
aWdhdG9yL0xvY2F0aW9uIHdyYXBwZXJzIHdpdGggR0MuPC9wPgotPGRpdiBpZD1yZXN1bHQ+PC9k
aXY+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY3JlYXRlLWNvbW1vbi5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dvcmtlci1jb250ZXh0LWdjLmpz
Ij48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLWV2ZW50LWxpc3RlbmVyLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1ldmVudC1saXN0ZW5lci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMzNmZTcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1ldmVudC1saXN0ZW5lci5odG1s
CkBAIC0wLDAgKzEsNzMgQEAKKzxib2R5PgorPHA+VGVzdCBTaGFyZWRXb3JrZXIgZXZlbnQgbGlz
dGVuZXIuIFNob3VsZCBwcmludCBhIHNlcmllcyBvZiBQQVNTIG1lc3NhZ2VzLCBmb2xsb3dlZCB3
aXRoIERPTkUuPC9wPgorPGRpdiBpZD1yZXN1bHQ+PC9kaXY+Cis8c2NyaXB0PgorZnVuY3Rpb24g
bG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlu
bmVySFRNTCArPSBtZXNzYWdlICsgIjxicj4iOworfQorCitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFyIHdvcmtlciA9
IG5ldyBTaGFyZWRXb3JrZXIoInJlc291cmNlcy93b3JrZXItY29tbW9uLmpzIiwgImZvb2JhciIp
OwordmFyIG51bUxpc3RlbmVyQ2FsbHMgPSAwOworZnVuY3Rpb24gY291bnRMaXN0ZW5lckNhbGxi
YWNrcyhldmVudCkKK3sKKyAgICBpZiAoZXZlbnQudHlwZSAhPSAiZm9vIikKKyAgICAgICAgbG9n
KCJGQUlMOiBSZWNlaXZlZCB1bmV4cGVjdGVkIGV2ZW50OiAiICsgZXZlbnQudHlwZSk7CisgICAg
bnVtTGlzdGVuZXJDYWxscysrOworfQord29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoImZvbyIsIGNv
dW50TGlzdGVuZXJDYWxsYmFja3MsIGZhbHNlKTsKK3ZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0
ZUV2ZW50KCJFdmVudHMiKTsKK2V2ZW50LmluaXRFdmVudCgiZm9vIiwgZmFsc2UsIGZhbHNlKTsK
K3dvcmtlci5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKK2lmIChudW1MaXN0ZW5lckNhbGxzID09IDEp
IHsKKyAgICBsb2coIlNVQ0NFU1M6IExpc3RlbmVyIHdhcyBjYWxsZWQuIik7Cit9IGVsc2Ugewor
ICAgIGxvZygiRkFJTDogTGlzdGVuZXIgd2FzIG5vdCBjYWxsZWQuIik7Cit9CisKK3dvcmtlci5y
ZW1vdmVFdmVudExpc3RlbmVyKCJmb28iLCBjb3VudExpc3RlbmVyQ2FsbGJhY2tzLCBmYWxzZSk7
Cit3b3JrZXIuZGlzcGF0Y2hFdmVudChldmVudCk7CitpZiAobnVtTGlzdGVuZXJDYWxscyA9PSAx
KSB7CisgICAgbG9nKCJTVUNDRVNTOiBMaXN0ZW5lciB3YXMgbm90IGNhbGxlZCBhZnRlciByZW1v
dmFsLiIpOworfSBlbHNlIHsKKyAgICBsb2coIkZBSUw6IExpc3RlbmVyIHdhcyBjYWxsZWQgYWZ0
ZXIgcmVtb3ZhbC4iKTsKK30KKworLy8gVGVzdCB0byBtYWtlIHN1cmUgdGhhdCBldmVudCBsaXN0
ZW5lcnMgc3Vydml2ZSBHQy4KK3dvcmtlci5hZGRFdmVudExpc3RlbmVyKCJmb28iLCBjcmVhdGVO
ZXdMaXN0ZW5lcihjb3VudExpc3RlbmVyQ2FsbGJhY2tzKSwgZmFsc2UpOworZ2MoKTsKK3dvcmtl
ci5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKK2lmIChudW1MaXN0ZW5lckNhbGxzID09IDIpIHsKKyAg
ICBsb2coIlNVQ0NFU1M6IExpc3RlbmVyIHdhcyBjYWxsZWQgYWZ0ZXIgR0MuIik7Cit9IGVsc2Ug
eworICAgIGxvZygiRkFJTDogTGlzdGVuZXIgd2FzIG5vdCBjYWxsZWQgYWZ0ZXIgR0MuIik7Cit9
CisKKworbG9nKCJET05FIik7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKworZnVuY3Rpb24gY3JlYXRlTmV3
TGlzdGVuZXIoZnVuYykKK3sKKyAgcmV0dXJuIGZ1bmN0aW9uKGV2ZW50KSB7IGZ1bmMoZXZlbnQp
OyB9OworfQorCitmdW5jdGlvbiBnYygpCit7CisgICAgaWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIp
CisgICAgICAgIHJldHVybiBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOworCisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDsgaSsrKSB7IC8vIGZvcmNlIGdhcmJhZ2UgY29sbGVjdGlvbiAoRkYg
cmVxdWlyZXMgYWJvdXQgOUsgYWxsb2NhdGlvbnMgYmVmb3JlIGEgY29sbGVjdCkuCisgICAgICAg
IHZhciBzID0gbmV3IFN0cmluZygiYWJjIik7CisgICAgfQorfQorCisKKzwvc2NyaXB0PgorPC9i
b2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXIt
ZXZlbnQtbGlzdGVuZXIuaHRtbC1kaXNhYmxlZCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9z
aGFyZWQtd29ya2VyLWV2ZW50LWxpc3RlbmVyLmh0bWwtZGlzYWJsZWQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGVhMzNmZTcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93
b3JrZXJzL3NoYXJlZC13b3JrZXItZXZlbnQtbGlzdGVuZXIuaHRtbC1kaXNhYmxlZAorKysgL2Rl
di9udWxsCkBAIC0xLDczICswLDAgQEAKLTxib2R5PgotPHA+VGVzdCBTaGFyZWRXb3JrZXIgZXZl
bnQgbGlzdGVuZXIuIFNob3VsZCBwcmludCBhIHNlcmllcyBvZiBQQVNTIG1lc3NhZ2VzLCBmb2xs
b3dlZCB3aXRoIERPTkUuPC9wPgotPGRpdiBpZD1yZXN1bHQ+PC9kaXY+Ci08c2NyaXB0PgotZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3Vs
dCIpLmlubmVySFRNTCArPSBtZXNzYWdlICsgIjxicj4iOwotfQotCi1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotdmFyIHdv
cmtlciA9IG5ldyBTaGFyZWRXb3JrZXIoInJlc291cmNlcy93b3JrZXItY29tbW9uLmpzIiwgImZv
b2JhciIpOwotdmFyIG51bUxpc3RlbmVyQ2FsbHMgPSAwOwotZnVuY3Rpb24gY291bnRMaXN0ZW5l
ckNhbGxiYWNrcyhldmVudCkKLXsKLSAgICBpZiAoZXZlbnQudHlwZSAhPSAiZm9vIikKLSAgICAg
ICAgbG9nKCJGQUlMOiBSZWNlaXZlZCB1bmV4cGVjdGVkIGV2ZW50OiAiICsgZXZlbnQudHlwZSk7
Ci0gICAgbnVtTGlzdGVuZXJDYWxscysrOwotfQotd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoImZv
byIsIGNvdW50TGlzdGVuZXJDYWxsYmFja3MsIGZhbHNlKTsKLXZhciBldmVudCA9IGRvY3VtZW50
LmNyZWF0ZUV2ZW50KCJFdmVudHMiKTsKLWV2ZW50LmluaXRFdmVudCgiZm9vIiwgZmFsc2UsIGZh
bHNlKTsKLXdvcmtlci5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKLWlmIChudW1MaXN0ZW5lckNhbGxz
ID09IDEpIHsKLSAgICBsb2coIlNVQ0NFU1M6IExpc3RlbmVyIHdhcyBjYWxsZWQuIik7Ci19IGVs
c2UgewotICAgIGxvZygiRkFJTDogTGlzdGVuZXIgd2FzIG5vdCBjYWxsZWQuIik7Ci19Ci0KLXdv
cmtlci5yZW1vdmVFdmVudExpc3RlbmVyKCJmb28iLCBjb3VudExpc3RlbmVyQ2FsbGJhY2tzLCBm
YWxzZSk7Ci13b3JrZXIuZGlzcGF0Y2hFdmVudChldmVudCk7Ci1pZiAobnVtTGlzdGVuZXJDYWxs
cyA9PSAxKSB7Ci0gICAgbG9nKCJTVUNDRVNTOiBMaXN0ZW5lciB3YXMgbm90IGNhbGxlZCBhZnRl
ciByZW1vdmFsLiIpOwotfSBlbHNlIHsKLSAgICBsb2coIkZBSUw6IExpc3RlbmVyIHdhcyBjYWxs
ZWQgYWZ0ZXIgcmVtb3ZhbC4iKTsKLX0KLQotLy8gVGVzdCB0byBtYWtlIHN1cmUgdGhhdCBldmVu
dCBsaXN0ZW5lcnMgc3Vydml2ZSBHQy4KLXdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJmb28iLCBj
cmVhdGVOZXdMaXN0ZW5lcihjb3VudExpc3RlbmVyQ2FsbGJhY2tzKSwgZmFsc2UpOwotZ2MoKTsK
LXdvcmtlci5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKLWlmIChudW1MaXN0ZW5lckNhbGxzID09IDIp
IHsKLSAgICBsb2coIlNVQ0NFU1M6IExpc3RlbmVyIHdhcyBjYWxsZWQgYWZ0ZXIgR0MuIik7Ci19
IGVsc2UgewotICAgIGxvZygiRkFJTDogTGlzdGVuZXIgd2FzIG5vdCBjYWxsZWQgYWZ0ZXIgR0Mu
Iik7Ci19Ci0KLQotbG9nKCJET05FIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKLQotZnVuY3Rpb24gY3Jl
YXRlTmV3TGlzdGVuZXIoZnVuYykKLXsKLSAgcmV0dXJuIGZ1bmN0aW9uKGV2ZW50KSB7IGZ1bmMo
ZXZlbnQpOyB9OwotfQotCi1mdW5jdGlvbiBnYygpCi17Ci0gICAgaWYgKHdpbmRvdy5HQ0NvbnRy
b2xsZXIpCi0gICAgICAgIHJldHVybiBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOwotCi0gICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKSB7IC8vIGZvcmNlIGdhcmJhZ2UgY29sbGVjdGlv
biAoRkYgcmVxdWlyZXMgYWJvdXQgOUsgYWxsb2NhdGlvbnMgYmVmb3JlIGEgY29sbGVjdCkuCi0g
ICAgICAgIHZhciBzID0gbmV3IFN0cmluZygiYWJjIik7Ci0gICAgfQotfQotCi0KLTwvc2NyaXB0
PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13
b3JrZXItZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdv
cmtlci1leGNlcHRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5k
ODFmMDI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJl
ZC13b3JrZXItZXhjZXB0aW9uLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1jcmVhdGUt
Y29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLXdvcmtl
ci1leGNlcHRpb24uanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItZXhjZXB0aW9uLmh0bWwtZGlzYWJsZWQgYi9M
YXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1leGNlcHRpb24uaHRtbC1kaXNh
YmxlZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDgxZjAyNy4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1leGNlcHRpb24uaHRtbC1k
aXNhYmxlZAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLTxoZWFkPgotPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgot
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY3JlYXRlLWNv
bW1vbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC13b3JrZXIt
ZXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLWZyYW1lLWxpZmVjeWNsZS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItZnJhbWUtbGlmZWN5Y2xlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM4YjI4NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLWZyYW1lLWxpZmVjeWNs
ZS5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY3JlYXRlLWNvbW1vbi5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dvcmtlci11dGlsLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1saWZlY3ljbGUuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13
b3JrZXItZnJhbWUtbGlmZWN5Y2xlLmh0bWwtZGlzYWJsZWQgYi9MYXlvdXRUZXN0cy9mYXN0L3dv
cmtlcnMvc2hhcmVkLXdvcmtlci1mcmFtZS1saWZlY3ljbGUuaHRtbC1kaXNhYmxlZApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODM4YjI4Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1mcmFtZS1saWZlY3ljbGUuaHRtbC1kaXNhYmxl
ZAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLTxoZWFkPgotPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgotPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY3JlYXRlLWNvbW1vbi5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dvcmtlci11dGlsLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1saWZlY3ljbGUuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJz
L3NoYXJlZC13b3JrZXItZ2MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQt
d29ya2VyLWdjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNmMDAy
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29y
a2VyLWdjLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPGJvZHk+Cis8cD5UZXN0IHNoYXJlZCB3b3Jr
ZXIgZ2FyYmFnZSBjb2xsZWN0aW9uLiBTaG91bGQgcHJpbnQgIlBBU1MiIGZvbGxvd2VkIGJ5ICJE
T05FIi48L3A+Cis8ZGl2IGlkPXJlc3VsdD48L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2co
bWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJI
VE1MICs9IG1lc3NhZ2UgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIGdjKCkKK3sKKyAgICBpZiAo
d2luZG93LkdDQ29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuIEdDQ29udHJvbGxlci5jb2xsZWN0
KCk7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsgLy8gZm9yY2UgZ2Fy
YmFnZSBjb2xsZWN0aW9uIChGRiByZXF1aXJlcyBhYm91dCA5SyBhbGxvY2F0aW9ucyBiZWZvcmUg
YSBjb2xsZWN0KQorICAgICAgICB2YXIgcyA9IG5ldyBTdHJpbmcoImFiYyIpOworICAgIH0KK30K
KworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7Cit9CisKK3ZhciB3b3JrZXIgPSBuZXcgU2hhcmVkV29ya2VyKCdyZXNvdXJjZXMvc2hh
cmVkLXdvcmtlci1jb21tb24uanMnLCAnbmFtZScpOword29ya2VyLnBvcnQub25tZXNzYWdlID0g
aGFuZGxlTWVzc2FnZTsKK3dvcmtlci5wb3J0LnBvc3RNZXNzYWdlKCJwaW5nIik7Cit3b3JrZXIg
PSAwOworZ2MoKTsKKworZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShldmVudCkgeworICAgIGxvZyhl
dmVudC5kYXRhKTsKKyAgICBsb2coIkRPTkUiKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9
OworPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtl
cnMvc2hhcmVkLXdvcmtlci1nYy5odG1sLWRpc2FibGVkIGIvTGF5b3V0VGVzdHMvZmFzdC93b3Jr
ZXJzL3NoYXJlZC13b3JrZXItZ2MuaHRtbC1kaXNhYmxlZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOGNmMDAyNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMv
c2hhcmVkLXdvcmtlci1nYy5odG1sLWRpc2FibGVkCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAs
MCBAQAotPGJvZHk+Ci08cD5UZXN0IHNoYXJlZCB3b3JrZXIgZ2FyYmFnZSBjb2xsZWN0aW9uLiBT
aG91bGQgcHJpbnQgIlBBU1MiIGZvbGxvd2VkIGJ5ICJET05FIi48L3A+Ci08ZGl2IGlkPXJlc3Vs
dD48L2Rpdj4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBsb2cobWVzc2FnZSkKLXsKLSAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9IG1lc3NhZ2UgKyAiPGJyPiI7
Ci19Ci0KLWZ1bmN0aW9uIGdjKCkKLXsKLSAgICBpZiAod2luZG93LkdDQ29udHJvbGxlcikKLSAg
ICAgICAgcmV0dXJuIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7Ci0KLSAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwOyBpKyspIHsgLy8gZm9yY2UgZ2FyYmFnZSBjb2xsZWN0aW9uIChGRiByZXF1
aXJlcyBhYm91dCA5SyBhbGxvY2F0aW9ucyBiZWZvcmUgYSBjb2xsZWN0KQotICAgICAgICB2YXIg
cyA9IG5ldyBTdHJpbmcoImFiYyIpOwotICAgIH0KLX0KLQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci19Ci0KLXZhciB3b3JrZXIg
PSBuZXcgU2hhcmVkV29ya2VyKCdyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1jb21tb24uanMnLCAn
bmFtZScpOwotd29ya2VyLnBvcnQub25tZXNzYWdlID0gaGFuZGxlTWVzc2FnZTsKLXdvcmtlci5w
b3J0LnBvc3RNZXNzYWdlKCJwaW5nIik7Ci13b3JrZXIgPSAwOwotZ2MoKTsKLQotZnVuY3Rpb24g
aGFuZGxlTWVzc2FnZShldmVudCkgewotICAgIGxvZyhldmVudC5kYXRhKTsKLSAgICBsb2coIkRP
TkUiKTsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Ci19OwotPC9zY3JpcHQ+Ci08L2JvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1saWZlY3lj
bGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLWxpZmVjeWNs
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmYjBjM2UKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1saWZl
Y3ljbGUuaHRtbApAQCAtMCwwICsxLDcgQEAKKzxib2R5PgorPHA+VGVzdCBTaGFyZWRXb3JrZXIg
bGlmZWN5Y2xlLiBXaWxsIHByaW50IFBBU1MgbXVsdGlwbGUgdGltZXMsIGZvbGxvd2VkIGJ5IERP
TkUuPC9wPgorPGRpdiBpZD1yZXN1bHQ+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3No
YXJlZC13b3JrZXItY3JlYXRlLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3dvcmtlci11dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
d29ya2VyLWxpZmVjeWNsZS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1saWZlY3ljbGUuaHRtbC1kaXNhYmxl
ZCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLWxpZmVjeWNsZS5odG1s
LWRpc2FibGVkCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZmIwYzNlLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLWxpZmVjeWNsZS5o
dG1sLWRpc2FibGVkCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi08Ym9keT4KLTxwPlRl
c3QgU2hhcmVkV29ya2VyIGxpZmVjeWNsZS4gV2lsbCBwcmludCBQQVNTIG11bHRpcGxlIHRpbWVz
LCBmb2xsb3dlZCBieSBET05FLjwvcD4KLTxkaXYgaWQ9cmVzdWx0PjwvZGl2PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zaGFyZWQtd29ya2VyLWNyZWF0ZS1jb21tb24uanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy93b3JrZXItdXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3dvcmtlci1saWZlY3ljbGUuanMiPjwvc2NyaXB0PgotPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItbG9hZC1l
cnJvci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItbG9hZC1l
cnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmN2M3YzIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1s
b2FkLWVycm9yLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPGJvZHk+Cis8cD5UZXN0IFNoYXJlZFdv
cmtlciBvbmVycm9yIGZ1bmN0aW9uYWxpdHkuIFByaW50cyBtdWx0aXBsZSBTVUNDRVNTIGxpbmVz
LCB0aGVuIERPTkUgd2hlbiBjb21wbGV0ZS48L3A+Cis8ZGl2IGlkPXJlc3VsdD48L2Rpdj4KKzxz
Y3JpcHQ+CitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9IG1lc3NhZ2UgKyAiPGJyPiI7Cit9CisKK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
fQorCitmdW5jdGlvbiB0ZXN0U2ltcGxlTG9hZEVycm9yKCkKK3sKKyAgICB2YXIgd29ya2VyID0g
bmV3IFNoYXJlZFdvcmtlcigiZmlsZV9kb2VzX25vdF9leGlzdC5qcyIsICJuYW1lIik7CisgICAg
d29ya2VyLm9uZXJyb3IgPSBmdW5jdGlvbihldnQpIHsKKyAgICAgICAgbG9nKCJQQVNTOiBSZWNl
aXZlZCBsb2FkIGVycm9yIGV2ZW50OiAiICsgZXZ0KTsKKyAgICAgICAgdGVzdExvYWRFcnJvckdD
KCk7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0TG9hZEVycm9yR0MoKQoreworICAgIHZhciB3
b3JrZXIgPSBuZXcgU2hhcmVkV29ya2VyKCJmaWxlX2RvZXNfbm90X2V4aXN0LmpzIiwgIm5hbWUi
KTsKKyAgICB3b3JrZXIub25lcnJvciA9IGhhbmRsZUVycm9yOworICAgIHdvcmtlciA9IG51bGw7
CisgICAgZ2MoKTsKK30KKworZnVuY3Rpb24gZ2MoKQoreworICAgIGlmICh3aW5kb3cuR0NDb250
cm9sbGVyKQorICAgICAgICByZXR1cm4gR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKworICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgeyAvLyBmb3JjZSBnYXJiYWdlIGNvbGxlY3Rp
b24gKEZGIHJlcXVpcmVzIGFib3V0IDlLIGFsbG9jYXRpb25zIGJlZm9yZSBhIGNvbGxlY3QpCisg
ICAgICAgIHZhciBzID0gbmV3IFN0cmluZygiYWJjIik7CisgICAgfQorfQorCisKK2Z1bmN0aW9u
IGhhbmRsZUVycm9yKGV2dCkgeworICAgIGxvZygiUEFTUzogUmVjZWl2ZWQgZXJyb3IgZXZlbnQg
YWZ0ZXIgd29ya2VyIEdDJ2Q6ICIgKyBldnQpOworICAgIGxvZygiRE9ORSIpOworICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKK30KKwordGVzdFNpbXBsZUxvYWRFcnJvcigpOworPC9zY3JpcHQ+Cis8
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtl
ci1sb2FkLWVycm9yLmh0bWwtZGlzYWJsZWQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hh
cmVkLXdvcmtlci1sb2FkLWVycm9yLmh0bWwtZGlzYWJsZWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDZmN2M3YzIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJz
L3NoYXJlZC13b3JrZXItbG9hZC1lcnJvci5odG1sLWRpc2FibGVkCisrKyAvZGV2L251bGwKQEAg
LTEsNTIgKzAsMCBAQAotPGJvZHk+Ci08cD5UZXN0IFNoYXJlZFdvcmtlciBvbmVycm9yIGZ1bmN0
aW9uYWxpdHkuIFByaW50cyBtdWx0aXBsZSBTVUNDRVNTIGxpbmVzLCB0aGVuIERPTkUgd2hlbiBj
b21wbGV0ZS48L3A+Ci08ZGl2IGlkPXJlc3VsdD48L2Rpdj4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBs
b2cobWVzc2FnZSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5u
ZXJIVE1MICs9IG1lc3NhZ2UgKyAiPGJyPiI7Ci19Ci0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotfQotCi1mdW5jdGlvbiB0ZXN0
U2ltcGxlTG9hZEVycm9yKCkKLXsKLSAgICB2YXIgd29ya2VyID0gbmV3IFNoYXJlZFdvcmtlcigi
ZmlsZV9kb2VzX25vdF9leGlzdC5qcyIsICJuYW1lIik7Ci0gICAgd29ya2VyLm9uZXJyb3IgPSBm
dW5jdGlvbihldnQpIHsKLSAgICAgICAgbG9nKCJQQVNTOiBSZWNlaXZlZCBsb2FkIGVycm9yIGV2
ZW50OiAiICsgZXZ0KTsKLSAgICAgICAgdGVzdExvYWRFcnJvckdDKCk7Ci0gICAgfQotfQotCi1m
dW5jdGlvbiB0ZXN0TG9hZEVycm9yR0MoKQotewotICAgIHZhciB3b3JrZXIgPSBuZXcgU2hhcmVk
V29ya2VyKCJmaWxlX2RvZXNfbm90X2V4aXN0LmpzIiwgIm5hbWUiKTsKLSAgICB3b3JrZXIub25l
cnJvciA9IGhhbmRsZUVycm9yOwotICAgIHdvcmtlciA9IG51bGw7Ci0gICAgZ2MoKTsKLX0KLQot
ZnVuY3Rpb24gZ2MoKQotewotICAgIGlmICh3aW5kb3cuR0NDb250cm9sbGVyKQotICAgICAgICBy
ZXR1cm4gR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDA7IGkrKykgeyAvLyBmb3JjZSBnYXJiYWdlIGNvbGxlY3Rpb24gKEZGIHJlcXVpcmVzIGFi
b3V0IDlLIGFsbG9jYXRpb25zIGJlZm9yZSBhIGNvbGxlY3QpCi0gICAgICAgIHZhciBzID0gbmV3
IFN0cmluZygiYWJjIik7Ci0gICAgfQotfQotCi0KLWZ1bmN0aW9uIGhhbmRsZUVycm9yKGV2dCkg
ewotICAgIGxvZygiUEFTUzogUmVjZWl2ZWQgZXJyb3IgZXZlbnQgYWZ0ZXIgd29ya2VyIEdDJ2Q6
ICIgKyBldnQpOwotICAgIGxvZygiRE9ORSIpOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKLX0K
LQotdGVzdFNpbXBsZUxvYWRFcnJvcigpOwotPC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1sb2NhdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItbG9jYXRpb24uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDM4Y2FiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItbG9jYXRpb24uaHRtbApA
QCAtMCwwICsxLDggQEAKKzxib2R5PgorPHA+VGVzdCBXb3JrZXJMb2NhdGlvbiBwcm9wZXJ0aWVz
LjwvcD4KKzxkaXYgaWQ9cmVzdWx0PjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFy
ZWQtd29ya2VyLWNyZWF0ZS1jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy93b3JrZXItbG9jYXRpb24uanMiPgorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1sb2NhdGlv
bi5odG1sLWRpc2FibGVkIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXIt
bG9jYXRpb24uaHRtbC1kaXNhYmxlZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTAz
OGNhYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtl
ci1sb2NhdGlvbi5odG1sLWRpc2FibGVkCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08
Ym9keT4KLTxwPlRlc3QgV29ya2VyTG9jYXRpb24gcHJvcGVydGllcy48L3A+Ci08ZGl2IGlkPXJl
c3VsdD48L2Rpdj4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1jcmVhdGUt
Y29tbW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd29ya2VyLWxvY2F0
aW9uLmpzIj4KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItbmF2aWdhdG9yLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1uYXZpZ2F0b3IuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODZjMmE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItbmF2aWdhdG9yLmh0bWwKQEAgLTAs
MCArMSw2IEBACis8Ym9keT4KKzxwPlRlc3QgTmF2aWdhdG9yIHByb3BlcnRpZXMuPC9wPgorPGRp
diBpZD1yZXN1bHQ+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC13b3JrZXIt
Y3JlYXRlLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dvcmtl
ci1uYXZpZ2F0b3IuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItbmF2aWdhdG9yLmh0bWwtZGlzYWJsZWQgYi9M
YXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1uYXZpZ2F0b3IuaHRtbC1kaXNh
YmxlZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzg2YzJhNy4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1uYXZpZ2F0b3IuaHRtbC1k
aXNhYmxlZAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotPGJvZHk+Ci08cD5UZXN0IE5h
dmlnYXRvciBwcm9wZXJ0aWVzLjwvcD4KLTxkaXYgaWQ9cmVzdWx0PjwvZGl2PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zaGFyZWQtd29ya2VyLWNyZWF0ZS1jb21tb24uanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy93b3JrZXItbmF2aWdhdG9yLmpzIj48L3NjcmlwdD4KLTwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2Vy
LXJlcGxhY2UtZ2xvYmFsLWNvbnN0cnVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtl
cnMvc2hhcmVkLXdvcmtlci1yZXBsYWNlLWdsb2JhbC1jb25zdHJ1Y3Rvci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzNTVjNDQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1yZXBsYWNlLWdsb2JhbC1jb25z
dHJ1Y3Rvci5odG1sCkBAIC0wLDAgKzEsNyBAQAorPGJvZHk+Cis8cD5UZXN0IHJlcGxhY2luZyBn
bG9iYWwgY29uc3RydWN0b3JzIGluIGEgd29ya2VyIGNvbnRleHQuPC9wPgorPGRpdiBpZD1yZXN1
bHQ+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY3JlYXRlLWNv
bW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dvcmtlci1yZXBsYWNl
LWdsb2JhbC1jb25zdHJ1Y3Rvci5qcyI+Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLXJlcGxhY2UtZ2xvYmFsLWNv
bnN0cnVjdG9yLmh0bWwtZGlzYWJsZWQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVk
LXdvcmtlci1yZXBsYWNlLWdsb2JhbC1jb25zdHJ1Y3Rvci5odG1sLWRpc2FibGVkCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMzU1YzQ0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLXJlcGxhY2UtZ2xvYmFsLWNvbnN0cnVjdG9yLmh0
bWwtZGlzYWJsZWQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLTxib2R5PgotPHA+VGVz
dCByZXBsYWNpbmcgZ2xvYmFsIGNvbnN0cnVjdG9ycyBpbiBhIHdvcmtlciBjb250ZXh0LjwvcD4K
LTxkaXYgaWQ9cmVzdWx0PjwvZGl2PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQtd29y
a2VyLWNyZWF0ZS1jb21tb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy93
b3JrZXItcmVwbGFjZS1nbG9iYWwtY29uc3RydWN0b3IuanMiPgotPC9zY3JpcHQ+Ci08L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1yZXBs
YWNlLXNlbGYuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLXJl
cGxhY2Utc2VsZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzYjg1
MTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdv
cmtlci1yZXBsYWNlLXNlbGYuaHRtbApAQCAtMCwwICsxLDYgQEAKKzxib2R5PgorPHA+VGVzdCB0
aGF0IHNlbGYgaXMgcmVwbGFjZWFibGUuPC9wPgorPGRpdiBpZD1yZXN1bHQ+PC9kaXY+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY3JlYXRlLWNvbW1vbi5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dvcmtlci1yZXBsYWNlLXNlbGYuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJl
ZC13b3JrZXItcmVwbGFjZS1zZWxmLmh0bWwtZGlzYWJsZWQgYi9MYXlvdXRUZXN0cy9mYXN0L3dv
cmtlcnMvc2hhcmVkLXdvcmtlci1yZXBsYWNlLXNlbGYuaHRtbC1kaXNhYmxlZApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYjNiODUxMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1yZXBsYWNlLXNlbGYuaHRtbC1kaXNhYmxlZAorKysg
L2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotPGJvZHk+Ci08cD5UZXN0IHRoYXQgc2VsZiBpcyBy
ZXBsYWNlYWJsZS48L3A+Ci08ZGl2IGlkPXJlc3VsdD48L2Rpdj4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvc2hhcmVkLXdvcmtlci1jcmVhdGUtY29tbW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvd29ya2VyLXJlcGxhY2Utc2VsZi5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1zY3Jp
cHQtZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLXNj
cmlwdC1lcnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkNDgx
YzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdv
cmtlci1zY3JpcHQtZXJyb3IuaHRtbApAQCAtMCwwICsxLDczIEBACis8Ym9keT4KKzxwPlRlc3Qg
U2hhcmVkV29ya2VyIHNjcmlwdCBlcnJvciBoYW5kbGluZyBmdW5jdGlvbmFsaXR5LiBTaG91bGQg
cHJpbnQgYSBzZXJpZXMgb2YgUEFTUyBtZXNzYWdlcywgZm9sbG93ZWQgd2l0aCBET05FLjwvcD4K
KzxkaXYgaWQ9cmVzdWx0PjwvZGl2PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQor
eworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgKz0gbWVz
c2FnZSArICI8YnI+IjsKK30KKwordmFyIHRlc3RDYXNlcyA9IFsKKyAgICAidGVzdFNjcmlwdEVy
cm9yVW5oYW5kbGVkIiwKKyAgICAidGVzdFNjcmlwdEVycm9ySGFuZGxlZCIKK107Cit2YXIgdGVz
dEluZGV4ID0gMDsKKworZnVuY3Rpb24gcnVuTmV4dFRlc3QoKQoreworICAgIGlmICh0ZXN0SW5k
ZXggPCB0ZXN0Q2FzZXMubGVuZ3RoKSB7CisgICAgICAgIHRlc3RJbmRleCsrOworICAgICAgICB0
cnkgeworICAgICAgICAgICAgd2luZG93W3Rlc3RDYXNlc1t0ZXN0SW5kZXggLSAxXV0oKTsKKyAg
ICAgICAgfSBjYXRjaCAoZXgpIHsKKyAgICAgICAgICAgIGxvZygiRkFJTDogdW5leHBlY3RlZCBl
eGNlcHRpb24gIiArIGV4KTsKKyAgICAgICAgICAgIHJ1bk5leHRUZXN0KCk7CisgICAgICAgIH0K
KyAgICB9IGVsc2UgeworICAgICAgICBsb2coIkRPTkUiKTsKKyAgICAgICAgLy8gV2FpdCBicmll
Zmx5IHRvIG1ha2Ugc3VyZSB0aGF0IGFueSBwZW5kaW5nIGNvbnNvbGUgbWVzc2FnZXMgZ2V0IHdy
aXR0ZW4gb3V0IHNvIHRoZXkgZG9uJ3Qgc3BpbGwgb3ZlciBpbnRvIHN1YnNlcXVlbnQgdGVzdHMg
YW5kIGNhdXNlIGZhaWx1cmVzLgorICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDEwKTsKKyAg
ICB9Cit9CisKK2Z1bmN0aW9uIHRlc3RTY3JpcHRFcnJvclVuaGFuZGxlZCgpCit7CisgICAgdmFy
IHdvcmtlciA9IG5ldyBTaGFyZWRXb3JrZXIoInJlc291cmNlcy9zaGFyZWQtd29ya2VyLXNjcmlw
dC1lcnJvci5qcyIsICJuYW1lIik7CisgICAgLy8gU2hhcmVkV29ya2VycyBzaG91bGQgb25seSBp
bnZva2Ugb25lcnJvciBmb3IgbG9hZGluZyBlcnJvcnMuCisgICAgd29ya2VyLm9uZXJyb3IgPSBm
dW5jdGlvbihldnQpIHsKKyAgICAgICAgbG9nKCJGQUlMOiBvbmVycm9yIGludm9rZWQgZm9yIGEg
c2NyaXB0IGVycm9yIik7CisgICAgfTsKKyAgICB3b3JrZXIucG9ydC5wb3N0TWVzc2FnZSgidW5o
YW5kbGVkRXJyb3IiKTsKKyAgICB3b3JrZXIucG9ydC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQp
IHsKKyAgICAgICAgbG9nKGV2dC5kYXRhKTsKKyAgICAgICAgcnVuTmV4dFRlc3QoKTsKKyAgICB9
Cit9CisKK2Z1bmN0aW9uIHRlc3RTY3JpcHRFcnJvckhhbmRsZWQoKQoreworICAgIHZhciB3b3Jr
ZXIgPSBuZXcgU2hhcmVkV29ya2VyKCJyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1zY3JpcHQtZXJy
b3IuanMiLCAibmFtZTIiKTsKKyAgICAvLyBTaGFyZWRXb3JrZXJzIHNob3VsZCBvbmx5IGludm9r
ZSBvbmVycm9yIGZvciBsb2FkaW5nIGVycm9ycy4KKyAgICB3b3JrZXIub25lcnJvciA9IGZ1bmN0
aW9uKGV2dCkgeworICAgICAgICBsb2coIkZBSUw6IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3Jp
cHQgZXJyb3IiKTsKKyAgICB9OworICAgIHdvcmtlci5wb3J0LnBvc3RNZXNzYWdlKCJoYW5kbGVk
RXJyb3IiKTsKKyAgICB3b3JrZXIucG9ydC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpIHsKKyAg
ICAgICAgbG9nKGV2dC5kYXRhKTsKKyAgICAgICAgcnVuTmV4dFRlc3QoKTsKKyAgICB9Cit9CisK
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworfQorCitydW5OZXh0VGVzdCgpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItc2NyaXB0LWVycm9y
Lmh0bWwtZGlzYWJsZWQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1z
Y3JpcHQtZXJyb3IuaHRtbC1kaXNhYmxlZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OGQ0ODFjMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdv
cmtlci1zY3JpcHQtZXJyb3IuaHRtbC1kaXNhYmxlZAorKysgL2Rldi9udWxsCkBAIC0xLDczICsw
LDAgQEAKLTxib2R5PgotPHA+VGVzdCBTaGFyZWRXb3JrZXIgc2NyaXB0IGVycm9yIGhhbmRsaW5n
IGZ1bmN0aW9uYWxpdHkuIFNob3VsZCBwcmludCBhIHNlcmllcyBvZiBQQVNTIG1lc3NhZ2VzLCBm
b2xsb3dlZCB3aXRoIERPTkUuPC9wPgotPGRpdiBpZD1yZXN1bHQ+PC9kaXY+Ci08c2NyaXB0Pgot
ZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
c3VsdCIpLmlubmVySFRNTCArPSBtZXNzYWdlICsgIjxicj4iOwotfQotCi12YXIgdGVzdENhc2Vz
ID0gWwotICAgICJ0ZXN0U2NyaXB0RXJyb3JVbmhhbmRsZWQiLAotICAgICJ0ZXN0U2NyaXB0RXJy
b3JIYW5kbGVkIgotXTsKLXZhciB0ZXN0SW5kZXggPSAwOwotCi1mdW5jdGlvbiBydW5OZXh0VGVz
dCgpCi17Ci0gICAgaWYgKHRlc3RJbmRleCA8IHRlc3RDYXNlcy5sZW5ndGgpIHsKLSAgICAgICAg
dGVzdEluZGV4Kys7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICB3aW5kb3dbdGVzdENhc2Vz
W3Rlc3RJbmRleCAtIDFdXSgpOwotICAgICAgICB9IGNhdGNoIChleCkgewotICAgICAgICAgICAg
bG9nKCJGQUlMOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAiICsgZXgpOwotICAgICAgICAgICAgcnVu
TmV4dFRlc3QoKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIGxvZygiRE9ORSIp
OwotICAgICAgICAvLyBXYWl0IGJyaWVmbHkgdG8gbWFrZSBzdXJlIHRoYXQgYW55IHBlbmRpbmcg
Y29uc29sZSBtZXNzYWdlcyBnZXQgd3JpdHRlbiBvdXQgc28gdGhleSBkb24ndCBzcGlsbCBvdmVy
IGludG8gc3Vic2VxdWVudCB0ZXN0cyBhbmQgY2F1c2UgZmFpbHVyZXMuCi0gICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKLSAgICAgICAgfSwgMTApOwotICAgIH0KLX0KLQotZnVuY3Rpb24gdGVzdFNjcmlwdEVycm9y
VW5oYW5kbGVkKCkKLXsKLSAgICB2YXIgd29ya2VyID0gbmV3IFNoYXJlZFdvcmtlcigicmVzb3Vy
Y2VzL3NoYXJlZC13b3JrZXItc2NyaXB0LWVycm9yLmpzIiwgIm5hbWUiKTsKLSAgICAvLyBTaGFy
ZWRXb3JrZXJzIHNob3VsZCBvbmx5IGludm9rZSBvbmVycm9yIGZvciBsb2FkaW5nIGVycm9ycy4K
LSAgICB3b3JrZXIub25lcnJvciA9IGZ1bmN0aW9uKGV2dCkgewotICAgICAgICBsb2coIkZBSUw6
IG9uZXJyb3IgaW52b2tlZCBmb3IgYSBzY3JpcHQgZXJyb3IiKTsKLSAgICB9OwotICAgIHdvcmtl
ci5wb3J0LnBvc3RNZXNzYWdlKCJ1bmhhbmRsZWRFcnJvciIpOwotICAgIHdvcmtlci5wb3J0Lm9u
bWVzc2FnZSA9IGZ1bmN0aW9uKGV2dCkgewotICAgICAgICBsb2coZXZ0LmRhdGEpOwotICAgICAg
ICBydW5OZXh0VGVzdCgpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gdGVzdFNjcmlwdEVycm9ySGFu
ZGxlZCgpCi17Ci0gICAgdmFyIHdvcmtlciA9IG5ldyBTaGFyZWRXb3JrZXIoInJlc291cmNlcy9z
aGFyZWQtd29ya2VyLXNjcmlwdC1lcnJvci5qcyIsICJuYW1lMiIpOwotICAgIC8vIFNoYXJlZFdv
cmtlcnMgc2hvdWxkIG9ubHkgaW52b2tlIG9uZXJyb3IgZm9yIGxvYWRpbmcgZXJyb3JzLgotICAg
IHdvcmtlci5vbmVycm9yID0gZnVuY3Rpb24oZXZ0KSB7Ci0gICAgICAgIGxvZygiRkFJTDogb25l
cnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCBlcnJvciIpOwotICAgIH07Ci0gICAgd29ya2VyLnBv
cnQucG9zdE1lc3NhZ2UoImhhbmRsZWRFcnJvciIpOwotICAgIHdvcmtlci5wb3J0Lm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGV2dCkgewotICAgICAgICBsb2coZXZ0LmRhdGEpOwotICAgICAgICBydW5O
ZXh0VGVzdCgpOwotICAgIH0KLX0KLQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
ewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci19Ci0KLXJ1bk5leHRUZXN0KCk7Ci0KLTwvc2Ny
aXB0PgotPC9ib2R5PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hh
cmVkLXdvcmtlci1zaGFyZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQt
d29ya2VyLXNoYXJlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdm
YjI4OGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVk
LXdvcmtlci1zaGFyZWQuaHRtbApAQCAtMCwwICsxLDc3IEBACis8Ym9keT4KKzxwPlRlc3Qgc2lt
cGxlIHNoYXJlZCB3b3JrZXIgc2hhcmluZyBjYXNlcy4gU2hvdWxkIHByaW50IHNldmVyYWwgUEFT
UyBsaW5lcyBmb2xsb3dlZCBieSBET05FLjwvcD4KKzxkaXYgaWQ9cmVzdWx0PjwvZGl2PgorPHNj
cmlwdD4KK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgKz0gbWVzc2FnZSArICI8YnI+IjsKK30KKworaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9
CisKKy8vIExvYWQgdHdvIHdvcmtlcnMgc2ltdWx0YW5lb3VzbHksIHRvIGVuc3VyZSB0aGF0IHNp
bXVsdGFuZW91cyBsb2FkcyBhbHNvIHlpZWxkIHRoZSBzYW1lIGluc3RhbmNlLgorLy8gTG9hZGlu
ZyBhIHdvcmtlciBuYW1lZCAibmFtZSIgdGVzdHMgdGhhdCB3b3JrZXJzIHNodXRkb3duIHdoZW4g
dGhlIHBhcmVudCBkb2N1bWVudCBleGl0cywgYmVjYXVzZSBvdGhlciB0ZXN0cyBhbHNvIGNyZWF0
ZSB3b3JrZXJzIHdpdGggdGhhdCBzYW1lIG5hbWUgYnV0IHdpdGggZGlmZmVyZW50IFVSTHMuCit2
YXIgd29ya2VyID0gbmV3IFNoYXJlZFdvcmtlcigncmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY29t
bW9uLmpzJywgJ25hbWUnKTsKK3ZhciB3b3JrZXIyID0gbmV3IFNoYXJlZFdvcmtlcigncmVzb3Vy
Y2VzL3NoYXJlZC13b3JrZXItY29tbW9uLmpzJywgJ25hbWUnKTsKKwordHJ5IHsKKyAgICBuZXcg
U2hhcmVkV29ya2VyKCdyZXNvdXJjZXMvc29tZS1vdGhlci11cmwuanMnLCAnbmFtZScpOworICAg
IGxvZygiRkFJTDogQ3JlYXRpbmcgU2hhcmVkV29ya2VyIHdpdGggZGlmZmVyZW50IFVSTHMgYnV0
IHRoZSBzYW1lIG5hbWUgc2hvdWxkIGZhaWwiKTsKK30gY2F0Y2ggKGV4KSB7CisgICAgbG9nKCJQ
QVNTOiBFeGNlcHRpb24gdGhyb3duIHdoZW4gY3JlYXRpbmcgU2hhcmVkV29ya2VyIHdpdGggZGlm
ZmVyZW50IFVSTHMgYnV0IHNhbWUgbmFtZTogIiArIGV4KTsKK30KKworCisvLyBTZXQgc29tZXRo
aW5nIGluIGdsb2JhbCBjb250ZXh0IGluIG9uZSB3b3JrZXIsIHJlYWQgdmFsdWUgYmFjayBvbiBv
dGhlciB3b3JrZXIsIHRvIG1ha2Ugc3VyZSB0aGV5IGFyZSB0cnVseSBzaGFyZWQuCit3b3JrZXIu
cG9ydC5wb3N0TWVzc2FnZSgiZXZhbCBzZWxmLmZvbyIpOword29ya2VyLnBvcnQub25tZXNzYWdl
ID0gZnVuY3Rpb24oZXZlbnQpCit7CisgICAgbG9nKChldmVudC5kYXRhID09ICJzZWxmLmZvbzog
dW5kZWZpbmVkIiA/ICJQQVNTOiAiIDogIkZBSUw6ICIpICsgIkFjY2Vzc2luZyBuZXcgaW5zdGFu
Y2Ugb2Ygc2hhcmVkIHdvcmtlcjogIiArIGV2ZW50LmRhdGEpOworICAgIHdvcmtlci5wb3J0LnBv
c3RNZXNzYWdlKCJldmFsIHNlbGYuZm9vID0gMTIzNCIpOworICAgIHdvcmtlci5wb3J0Lm9ubWVz
c2FnZSA9IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgbG9nKChldmVudC5kYXRhID09
ICJzZWxmLmZvbyA9IDEyMzQ6IDEyMzQiID8gIlBBU1M6ICIgOiAiRkFJTDogIikgKyAiU2V0dGlu
ZyBnbG9iYWwgdmFyaWFibGUgaW4gc2hhcmVkIHdvcmtlcjogIiArIGV2ZW50LmRhdGEpOworICAg
ICAgICB3b3JrZXIyLnBvcnQucG9zdE1lc3NhZ2UoImV2YWwgc2VsZi5mb28iKTsKKyAgICAgICAg
d29ya2VyMi5wb3J0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KQorICAgICAgICB7CisgICAg
ICAgICAgICBsb2coKGV2ZW50LmRhdGEgPT0gInNlbGYuZm9vOiAxMjM0IiA/ICJQQVNTOiAiIDog
IkZBSUw6ICIpICsgIkFjY2Vzc2luZyBzaW11bHRhbmVvdXNseS1sb2FkZWQgaW5zdGFuY2Ugb2Yg
c2hhcmVkIHdvcmtlcjogIiArIGV2ZW50LmRhdGEpOworICAgICAgICAgICAgdGVzdE5ld1dvcmtl
cigpOworICAgICAgICB9CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0TmV3V29ya2VyKCkKK3sK
KyAgICAvLyBOZXcgbmFtZSwgc28gc2hvdWxkIGJlIGEgZGlzdGluY3Qgd29ya2VyIGZyb20gdGhl
IHByZXZpb3VzIG9uZS4KKyAgICB2YXIgd29ya2VyMyA9IG5ldyBTaGFyZWRXb3JrZXIoJ3Jlc291
cmNlcy9zaGFyZWQtd29ya2VyLWNvbW1vbi5qcycsICduYW1lMicpOworICAgIHdvcmtlcjMucG9y
dC5wb3N0TWVzc2FnZSgiZXZhbCBzZWxmLmZvbyIpOworICAgIHdvcmtlcjMucG9ydC5vbm1lc3Nh
Z2UgPSBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIGxvZygoZXZlbnQuZGF0YSA9PSAi
c2VsZi5mb286IHVuZGVmaW5lZCIgPyAiUEFTUzogIiA6ICJGQUlMOiAiKSArICJBY2Nlc3Npbmcg
bmV3IGluc3RhbmNlIG9mIHNoYXJlZCB3b3JrZXI6ICIgKyBldmVudC5kYXRhKTsKKyAgICAgICAg
dGVzdEFscmVhZHlMb2FkZWQoKTsKKyAgICB9OworfQorCitmdW5jdGlvbiB0ZXN0QWxyZWFkeUxv
YWRlZCgpCit7CisgICAgLy8gTWFrZSBzdXJlIHRoYXQgcmVmZXJlbmNpbmcgYSB3b3JrZXIgdGhh
dCBpcyBhbHJlYWR5IGxvYWRlZCB5aWVsZHMgdGhlIHNhbWUgaW5zdGFuY2UuCisgICAgdmFyIHdv
cmtlcjQgPSBuZXcgU2hhcmVkV29ya2VyKCdyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1jb21tb24u
anMnLCAnbmFtZScpOworICAgIHdvcmtlcjQucG9ydC5wb3N0TWVzc2FnZSgiZXZhbCBzZWxmLmZv
byIpOworICAgIHdvcmtlcjQucG9ydC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkKKyAgICB7
CisgICAgICAgIGxvZygoZXZlbnQuZGF0YSA9PSAic2VsZi5mb286IDEyMzQiID8gIlBBU1M6ICIg
OiAiRkFJTDogIikgKyAiQWNjZXNzaW5nIGFscmVhZHktbG9hZGVkIGluc3RhbmNlIG9mIHNoYXJl
ZCB3b3JrZXI6ICIgKyBldmVudC5kYXRhKTsKKyAgICAgICAgZG9uZSgpOworICAgIH07Cit9CisK
K2Z1bmN0aW9uIGRvbmUoKQoreworICAgIGxvZygiRE9ORSIpOworICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC93b3JrZXJzL3NoYXJlZC13b3JrZXItc2hhcmVkLmh0bWwtZGlzYWJsZWQgYi9MYXlvdXRUZXN0
cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1zaGFyZWQuaHRtbC1kaXNhYmxlZApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2ZiMjg4ZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1zaGFyZWQuaHRtbC1kaXNhYmxlZAorKysgL2Rl
di9udWxsCkBAIC0xLDc3ICswLDAgQEAKLTxib2R5PgotPHA+VGVzdCBzaW1wbGUgc2hhcmVkIHdv
cmtlciBzaGFyaW5nIGNhc2VzLiBTaG91bGQgcHJpbnQgc2V2ZXJhbCBQQVNTIGxpbmVzIGZvbGxv
d2VkIGJ5IERPTkUuPC9wPgotPGRpdiBpZD1yZXN1bHQ+PC9kaXY+Ci08c2NyaXB0PgotZnVuY3Rp
b24gbG9nKG1lc3NhZ2UpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIp
LmlubmVySFRNTCArPSBtZXNzYWdlICsgIjxicj4iOwotfQotCi1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwot
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotLy8gTG9hZCB0
d28gd29ya2VycyBzaW11bHRhbmVvdXNseSwgdG8gZW5zdXJlIHRoYXQgc2ltdWx0YW5lb3VzIGxv
YWRzIGFsc28geWllbGQgdGhlIHNhbWUgaW5zdGFuY2UuCi0vLyBMb2FkaW5nIGEgd29ya2VyIG5h
bWVkICJuYW1lIiB0ZXN0cyB0aGF0IHdvcmtlcnMgc2h1dGRvd24gd2hlbiB0aGUgcGFyZW50IGRv
Y3VtZW50IGV4aXRzLCBiZWNhdXNlIG90aGVyIHRlc3RzIGFsc28gY3JlYXRlIHdvcmtlcnMgd2l0
aCB0aGF0IHNhbWUgbmFtZSBidXQgd2l0aCBkaWZmZXJlbnQgVVJMcy4KLXZhciB3b3JrZXIgPSBu
ZXcgU2hhcmVkV29ya2VyKCdyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1jb21tb24uanMnLCAnbmFt
ZScpOwotdmFyIHdvcmtlcjIgPSBuZXcgU2hhcmVkV29ya2VyKCdyZXNvdXJjZXMvc2hhcmVkLXdv
cmtlci1jb21tb24uanMnLCAnbmFtZScpOwotCi10cnkgewotICAgIG5ldyBTaGFyZWRXb3JrZXIo
J3Jlc291cmNlcy9zb21lLW90aGVyLXVybC5qcycsICduYW1lJyk7Ci0gICAgbG9nKCJGQUlMOiBD
cmVhdGluZyBTaGFyZWRXb3JrZXIgd2l0aCBkaWZmZXJlbnQgVVJMcyBidXQgdGhlIHNhbWUgbmFt
ZSBzaG91bGQgZmFpbCIpOwotfSBjYXRjaCAoZXgpIHsKLSAgICBsb2coIlBBU1M6IEV4Y2VwdGlv
biB0aHJvd24gd2hlbiBjcmVhdGluZyBTaGFyZWRXb3JrZXIgd2l0aCBkaWZmZXJlbnQgVVJMcyBi
dXQgc2FtZSBuYW1lOiAiICsgZXgpOwotfQotCi0KLS8vIFNldCBzb21ldGhpbmcgaW4gZ2xvYmFs
IGNvbnRleHQgaW4gb25lIHdvcmtlciwgcmVhZCB2YWx1ZSBiYWNrIG9uIG90aGVyIHdvcmtlciwg
dG8gbWFrZSBzdXJlIHRoZXkgYXJlIHRydWx5IHNoYXJlZC4KLXdvcmtlci5wb3J0LnBvc3RNZXNz
YWdlKCJldmFsIHNlbGYuZm9vIik7Ci13b3JrZXIucG9ydC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihl
dmVudCkKLXsKLSAgICBsb2coKGV2ZW50LmRhdGEgPT0gInNlbGYuZm9vOiB1bmRlZmluZWQiID8g
IlBBU1M6ICIgOiAiRkFJTDogIikgKyAiQWNjZXNzaW5nIG5ldyBpbnN0YW5jZSBvZiBzaGFyZWQg
d29ya2VyOiAiICsgZXZlbnQuZGF0YSk7Ci0gICAgd29ya2VyLnBvcnQucG9zdE1lc3NhZ2UoImV2
YWwgc2VsZi5mb28gPSAxMjM0Iik7Ci0gICAgd29ya2VyLnBvcnQub25tZXNzYWdlID0gZnVuY3Rp
b24oZXZlbnQpCi0gICAgewotICAgICAgICBsb2coKGV2ZW50LmRhdGEgPT0gInNlbGYuZm9vID0g
MTIzNDogMTIzNCIgPyAiUEFTUzogIiA6ICJGQUlMOiAiKSArICJTZXR0aW5nIGdsb2JhbCB2YXJp
YWJsZSBpbiBzaGFyZWQgd29ya2VyOiAiICsgZXZlbnQuZGF0YSk7Ci0gICAgICAgIHdvcmtlcjIu
cG9ydC5wb3N0TWVzc2FnZSgiZXZhbCBzZWxmLmZvbyIpOwotICAgICAgICB3b3JrZXIyLnBvcnQu
b25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGxvZygo
ZXZlbnQuZGF0YSA9PSAic2VsZi5mb286IDEyMzQiID8gIlBBU1M6ICIgOiAiRkFJTDogIikgKyAi
QWNjZXNzaW5nIHNpbXVsdGFuZW91c2x5LWxvYWRlZCBpbnN0YW5jZSBvZiBzaGFyZWQgd29ya2Vy
OiAiICsgZXZlbnQuZGF0YSk7Ci0gICAgICAgICAgICB0ZXN0TmV3V29ya2VyKCk7Ci0gICAgICAg
IH0KLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHRlc3ROZXdXb3JrZXIoKQotewotICAgIC8vIE5ldyBu
YW1lLCBzbyBzaG91bGQgYmUgYSBkaXN0aW5jdCB3b3JrZXIgZnJvbSB0aGUgcHJldmlvdXMgb25l
LgotICAgIHZhciB3b3JrZXIzID0gbmV3IFNoYXJlZFdvcmtlcigncmVzb3VyY2VzL3NoYXJlZC13
b3JrZXItY29tbW9uLmpzJywgJ25hbWUyJyk7Ci0gICAgd29ya2VyMy5wb3J0LnBvc3RNZXNzYWdl
KCJldmFsIHNlbGYuZm9vIik7Ci0gICAgd29ya2VyMy5wb3J0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9u
KGV2ZW50KQotICAgIHsKLSAgICAgICAgbG9nKChldmVudC5kYXRhID09ICJzZWxmLmZvbzogdW5k
ZWZpbmVkIiA/ICJQQVNTOiAiIDogIkZBSUw6ICIpICsgIkFjY2Vzc2luZyBuZXcgaW5zdGFuY2Ug
b2Ygc2hhcmVkIHdvcmtlcjogIiArIGV2ZW50LmRhdGEpOwotICAgICAgICB0ZXN0QWxyZWFkeUxv
YWRlZCgpOwotICAgIH07Ci19Ci0KLWZ1bmN0aW9uIHRlc3RBbHJlYWR5TG9hZGVkKCkKLXsKLSAg
ICAvLyBNYWtlIHN1cmUgdGhhdCByZWZlcmVuY2luZyBhIHdvcmtlciB0aGF0IGlzIGFscmVhZHkg
bG9hZGVkIHlpZWxkcyB0aGUgc2FtZSBpbnN0YW5jZS4KLSAgICB2YXIgd29ya2VyNCA9IG5ldyBT
aGFyZWRXb3JrZXIoJ3Jlc291cmNlcy9zaGFyZWQtd29ya2VyLWNvbW1vbi5qcycsICduYW1lJyk7
Ci0gICAgd29ya2VyNC5wb3J0LnBvc3RNZXNzYWdlKCJldmFsIHNlbGYuZm9vIik7Ci0gICAgd29y
a2VyNC5wb3J0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgbG9n
KChldmVudC5kYXRhID09ICJzZWxmLmZvbzogMTIzNCIgPyAiUEFTUzogIiA6ICJGQUlMOiAiKSAr
ICJBY2Nlc3NpbmcgYWxyZWFkeS1sb2FkZWQgaW5zdGFuY2Ugb2Ygc2hhcmVkIHdvcmtlcjogIiAr
IGV2ZW50LmRhdGEpOwotICAgICAgICBkb25lKCk7Ci0gICAgfTsKLX0KLQotZnVuY3Rpb24gZG9u
ZSgpCi17Ci0gICAgbG9nKCJET05FIik7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwotfQotPC9z
Y3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hh
cmVkLXdvcmtlci1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zaGFyZWQt
d29ya2VyLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlj
YWVmMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVk
LXdvcmtlci1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDMyIEBACis8Ym9keT4KKzxwPlRlc3Qgc2lt
cGxlIHNoYXJlZCB3b3JrZXIgY29uc3RydWN0aW9uIGNhc2UuPC9wPgorPGRpdiBpZD1yZXN1bHQ+
PC9kaXY+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCArPSBtZXNzYWdlICsgIjxicj4iOwor
fQorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKK30KKwordmFyIHdvcmtlciA9IG5ldyBTaGFyZWRXb3JrZXIoJ3Jlc291cmNlcy9z
aGFyZWQtd29ya2VyLWNvbW1vbi5qcycsICduYW1lJyk7CisKK3dvcmtlci5wb3J0LnBvc3RNZXNz
YWdlKCJwaW5nIik7Cit3b3JrZXIucG9ydC5wb3N0TWVzc2FnZSgiZG9uZSIpOworCit3b3JrZXIu
cG9ydC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgeworICAgIGxvZyhldmVudC5kYXRhKTsK
KyAgICBpZiAoZXZlbnQuZGF0YSA9PSAiRE9ORSIpCisgICAgICAgIGRvbmUoKTsKK307CisKK2Z1
bmN0aW9uIGRvbmUoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0Pgor
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3NoYXJlZC13b3Jr
ZXItc2ltcGxlLmh0bWwtZGlzYWJsZWQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVk
LXdvcmtlci1zaW1wbGUuaHRtbC1kaXNhYmxlZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOWNhZWYwNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc2hhcmVk
LXdvcmtlci1zaW1wbGUuaHRtbC1kaXNhYmxlZAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAg
QEAKLTxib2R5PgotPHA+VGVzdCBzaW1wbGUgc2hhcmVkIHdvcmtlciBjb25zdHJ1Y3Rpb24gY2Fz
ZS48L3A+Ci08ZGl2IGlkPXJlc3VsdD48L2Rpdj4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBsb2cobWVz
c2FnZSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1M
ICs9IG1lc3NhZ2UgKyAiPGJyPiI7Ci19Ci0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotfQotCi12YXIgd29ya2VyID0gbmV3IFNo
YXJlZFdvcmtlcigncmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY29tbW9uLmpzJywgJ25hbWUnKTsK
LQotd29ya2VyLnBvcnQucG9zdE1lc3NhZ2UoInBpbmciKTsKLXdvcmtlci5wb3J0LnBvc3RNZXNz
YWdlKCJkb25lIik7Ci0KLXdvcmtlci5wb3J0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7
Ci0gICAgbG9nKGV2ZW50LmRhdGEpOwotICAgIGlmIChldmVudC5kYXRhID09ICJET05FIikKLSAg
ICAgICAgZG9uZSgpOwotfTsKLQotZnVuY3Rpb24gZG9uZSgpCi17Ci0gICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOwotfQotPC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2hhcmVkLXdvcmtlci1pbXBvcnRTY3JpcHRzLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2hhcmVkLXdvcmtlci1pbXBvcnRTY3JpcHRzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmFkN2JjYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zaGFyZWQtd29ya2VyLWlt
cG9ydFNjcmlwdHMuaHRtbApAQCAtMCwwICsxLDIzIEBACis8Ym9keT4KKzxwPlRlc3QgaW1wb3J0
U2NyaXB0cyBmb3IgU2hhcmVkV29ya2Vycy48L3A+Cis8ZGl2IGlkPXJlc3VsdD48L2Rpdj4KKzxz
Y3JpcHQ+CitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9IG1lc3NhZ2UgKyAiPGJyPiI7Cit9CisKK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
fQorCit2YXIgd29ya2VyID0gbmV3IFNoYXJlZFdvcmtlcigncmVzb3VyY2VzL3dvcmtlci1pbXBv
cnRTY3JpcHRzLmpzJywgJ2ltcG9ydFNjcmlwdHMnKTsKKword29ya2VyLnBvcnQub25tZXNzYWdl
ID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgbG9nKGV2dC5kYXRhKTsKKyAgICBpZiAoZXZ0LmRhdGEg
PT0gIkRPTkUiICYmIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2hhcmVkLXdvcmtlci1pbXBv
cnRTY3JpcHRzLmh0bWwtZGlzYWJsZWQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2hhcmVkLXdvcmtlci1pbXBvcnRTY3JpcHRzLmh0bWwtZGlzYWJsZWQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGJhZDdiY2EuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NoYXJlZC13b3JrZXItaW1wb3J0U2NyaXB0cy5odG1sLWRpc2FibGVkCisr
KyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotPGJvZHk+Ci08cD5UZXN0IGltcG9ydFNjcmlw
dHMgZm9yIFNoYXJlZFdvcmtlcnMuPC9wPgotPGRpdiBpZD1yZXN1bHQ+PC9kaXY+Ci08c2NyaXB0
PgotZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlc3VsdCIpLmlubmVySFRNTCArPSBtZXNzYWdlICsgIjxicj4iOwotfQotCi1pZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQot
dmFyIHdvcmtlciA9IG5ldyBTaGFyZWRXb3JrZXIoJ3Jlc291cmNlcy93b3JrZXItaW1wb3J0U2Ny
aXB0cy5qcycsICdpbXBvcnRTY3JpcHRzJyk7Ci0KLXdvcmtlci5wb3J0Lm9ubWVzc2FnZSA9IGZ1
bmN0aW9uKGV2dCkgewotICAgIGxvZyhldnQuZGF0YSk7Ci0gICAgaWYgKGV2dC5kYXRhID09ICJE
T05FIiAmJiB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKLX0KLTwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NoYXJlZC13b3JrZXItcmVkaXJlY3Qu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zaGFyZWQtd29ya2VyLXJlZGly
ZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRjYTU1NwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zaGFyZWQtd29y
a2VyLXJlZGlyZWN0Lmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPGJvZHk+Cis8cD5UZXN0IHRoYXQg
bG9hZGluZyB0aGUgc2hhcmVkIHdvcmtlcidzIHNjcmlwdCBkb2VzIG5vdCBhbGxvdyBhIGNyb3Nz
IG9yaWdpbiByZWRpcmVjdCAoPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI2MTQ2Ij5idWcgMjYxNDY8L2E+KTwvcD4KKzxkaXYgaWQ9cmVzdWx0PjwvZGl2
PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGNyZWF0ZVdvcmtlcih1cmwpCit7CisgICAgdmFyIHdvcmtl
ciA9IG5ldyBTaGFyZWRXb3JrZXIodXJsLCB1cmwpOworICAgIHdvcmtlci5wb3J0Lm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGV2dCkgeyB3b3JrZXIub25tZXNzYWdlKGV2dCk7IH07CisgICAgd29ya2Vy
LnBvc3RNZXNzYWdlID0gZnVuY3Rpb24obXNnLCBwb3J0KSB7IHdvcmtlci5wb3J0LnBvc3RNZXNz
YWdlKG1zZywgcG9ydCk7IH07CisgICAgcmV0dXJuIHdvcmtlcjsKK30KKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy93b3JrZXItcmVkaXJlY3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NoYXJlZC13b3Jr
ZXItcmVkaXJlY3QuaHRtbC1kaXNhYmxlZCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vy
cy9zaGFyZWQtd29ya2VyLXJlZGlyZWN0Lmh0bWwtZGlzYWJsZWQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDU0Y2E1NTcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NoYXJlZC13b3JrZXItcmVkaXJlY3QuaHRtbC1kaXNhYmxlZAorKysgL2Rldi9u
dWxsCkBAIC0xLDE0ICswLDAgQEAKLTxib2R5PgotPHA+VGVzdCB0aGF0IGxvYWRpbmcgdGhlIHNo
YXJlZCB3b3JrZXIncyBzY3JpcHQgZG9lcyBub3QgYWxsb3cgYSBjcm9zcyBvcmlnaW4gcmVkaXJl
Y3QgKDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjE0
NiI+YnVnIDI2MTQ2PC9hPik8L3A+Ci08ZGl2IGlkPXJlc3VsdD48L2Rpdj4KLTxzY3JpcHQ+Ci1m
dW5jdGlvbiBjcmVhdGVXb3JrZXIodXJsKQotewotICAgIHZhciB3b3JrZXIgPSBuZXcgU2hhcmVk
V29ya2VyKHVybCwgdXJsKTsKLSAgICB3b3JrZXIucG9ydC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihl
dnQpIHsgd29ya2VyLm9ubWVzc2FnZShldnQpOyB9OwotICAgIHdvcmtlci5wb3N0TWVzc2FnZSA9
IGZ1bmN0aW9uKG1zZywgcG9ydCkgeyB3b3JrZXIucG9ydC5wb3N0TWVzc2FnZShtc2csIHBvcnQp
OyB9OwotICAgIHJldHVybiB3b3JrZXI7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvd29ya2VyLXJlZGlyZWN0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9zaGFyZWQtd29y
a2VyLWNsb3NlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3dv
cmtlcnMvc2hhcmVkLXdvcmtlci1jbG9zZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmZkMTc5MzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1jbG9zZS5odG1sCkBAIC0w
LDAgKzEsNiBAQAorPGJvZHk+Cis8cD5UZXN0cyBpbnZva2luZyBjbG9zZSgpIGluIHRoZSBtaWRk
bGUgb2YgYW4gWE1MSHR0cFJlcXVlc3QgaW4gYSBzaGFyZWQgd29ya2VyLjwvcD4KKzxkaXYgaWQ9
cmVzdWx0PjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQtd29ya2VyLWNyZWF0
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Nsb3NlLXRlc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItY2xvc2UuaHRtbC1kaXNhYmxlZCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9zaGFyZWQtd29ya2Vy
LWNsb3NlLmh0bWwtZGlzYWJsZWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkMTc5
MzQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93
b3JrZXJzL3NoYXJlZC13b3JrZXItY2xvc2UuaHRtbC1kaXNhYmxlZAorKysgL2Rldi9udWxsCkBA
IC0xLDYgKzAsMCBAQAotPGJvZHk+Ci08cD5UZXN0cyBpbnZva2luZyBjbG9zZSgpIGluIHRoZSBt
aWRkbGUgb2YgYW4gWE1MSHR0cFJlcXVlc3QgaW4gYSBzaGFyZWQgd29ya2VyLjwvcD4KLTxkaXYg
aWQ9cmVzdWx0PjwvZGl2PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQtd29ya2VyLWNy
ZWF0ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Nsb3NlLXRlc3QuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItbWV0aG9kcy1hc3luYy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL3NoYXJlZC13b3Jr
ZXItbWV0aG9kcy1hc3luYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmIxYTY0MmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1tZXRob2RzLWFzeW5jLmh0bWwKQEAgLTAs
MCArMSw2IEBACis8Ym9keT4KKzxwPkdFVCBhbmQgUE9TVCBzaG91bGQgbm90IGJlIHRoZSBvbmx5
IEhUVFAgbWV0aG9kcyBpbXBsZW1lbnRlZCBpbiBYTUxIdHRwUmVxdWVzdCBmb3IgU2hhcmVkV29y
a2Vycy48L3A+Cis8ZGl2IGlkPXJlc3VsdD48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c2hhcmVkLXdvcmtlci1jcmVhdGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9tZXRob2RzLWFzeW5jLXRlc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL3NoYXJlZC13b3Jr
ZXItbWV0aG9kcy1hc3luYy5odG1sLWRpc2FibGVkIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItbWV0aG9kcy1hc3luYy5odG1sLWRp
c2FibGVkCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMWE2NDJkLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9zaGFyZWQt
d29ya2VyLW1ldGhvZHMtYXN5bmMuaHRtbC1kaXNhYmxlZAorKysgL2Rldi9udWxsCkBAIC0xLDYg
KzAsMCBAQAotPGJvZHk+Ci08cD5HRVQgYW5kIFBPU1Qgc2hvdWxkIG5vdCBiZSB0aGUgb25seSBI
VFRQIG1ldGhvZHMgaW1wbGVtZW50ZWQgaW4gWE1MSHR0cFJlcXVlc3QgZm9yIFNoYXJlZFdvcmtl
cnMuPC9wPgotPGRpdiBpZD1yZXN1bHQ+PC9kaXY+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3No
YXJlZC13b3JrZXItY3JlYXRlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
bWV0aG9kcy1hc3luYy10ZXN0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9zaGFyZWQtd29ya2Vy
LW1ldGhvZHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29y
a2Vycy9zaGFyZWQtd29ya2VyLW1ldGhvZHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi42YWE3YjMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItbWV0aG9kcy5odG1sCkBA
IC0wLDAgKzEsNyBAQAorPGh0bWw+Cis8Ym9keT4KKzxwPkdFVCBhbmQgUE9TVCBzaG91bGQgbm90
IGJlIHRoZSBvbmx5IEhUVFAgbWV0aG9kcyBpbXBsZW1lbnRlZCBpbiBYTUxIdHRwUmVxdWVzdCBm
b3IgU2hhcmVkV29ya2Vycy48L3A+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC13b3Jr
ZXItY3JlYXRlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWV0aG9kcy10
ZXN0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLW1ldGhv
ZHMuaHRtbC1kaXNhYmxlZCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
d29ya2Vycy9zaGFyZWQtd29ya2VyLW1ldGhvZHMuaHRtbC1kaXNhYmxlZApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNmFhN2IzMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1tZXRob2RzLmh0bWwt
ZGlzYWJsZWQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLTxodG1sPgotPGJvZHk+Ci08
cD5HRVQgYW5kIFBPU1Qgc2hvdWxkIG5vdCBiZSB0aGUgb25seSBIVFRQIG1ldGhvZHMgaW1wbGVt
ZW50ZWQgaW4gWE1MSHR0cFJlcXVlc3QgZm9yIFNoYXJlZFdvcmtlcnMuPC9wPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zaGFyZWQtd29ya2VyLWNyZWF0ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL21ldGhvZHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3dv
cmtlcnMvc2hhcmVkLXdvcmtlci14aHItZmlsZS1ub3QtZm91bmQuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLXhoci1maWxl
LW5vdC1mb3VuZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzNzAz
NjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci14aHItZmlsZS1ub3QtZm91bmQuaHRtbApAQCAtMCww
ICsxLDcgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5SZXF1ZXN0IGEgZmlsZSB0aGF0IGlzbid0IHBy
ZXNlbnQgb24gdGhlIHNlcnZlciBpbiBYTUxIdHRwUmVxdWVzdCBpbiBhIHNoYXJlZCB3b3JrZXIu
ICBJZiB0aGlzIHRlc3QgcGFzc2VzLCB0aGVyZSBzaG91bGQgYmUgYSBzaW5nbGUgUEFTUyBiZWxv
dy48L3A+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY3JlYXRlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZmlsZS1ub3QtZm91bmQuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL3NoYXJlZC13b3JrZXIteGhyLWZpbGUtbm90LWZvdW5k
Lmh0bWwtZGlzYWJsZWQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3dv
cmtlcnMvc2hhcmVkLXdvcmtlci14aHItZmlsZS1ub3QtZm91bmQuaHRtbC1kaXNhYmxlZApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDM3MDM2NS4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci14aHIt
ZmlsZS1ub3QtZm91bmQuaHRtbC1kaXNhYmxlZAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBA
QAotPGh0bWw+Ci08Ym9keT4KLTxwPlJlcXVlc3QgYSBmaWxlIHRoYXQgaXNuJ3QgcHJlc2VudCBv
biB0aGUgc2VydmVyIGluIFhNTEh0dHBSZXF1ZXN0IGluIGEgc2hhcmVkIHdvcmtlci4gIElmIHRo
aXMgdGVzdCBwYXNzZXMsIHRoZXJlIHNob3VsZCBiZSBhIHNpbmdsZSBQQVNTIGJlbG93LjwvcD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1jcmVhdGUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9maWxlLW5vdC1mb3VuZC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+Cg==
</data>
<flag name="review"
          id="20139"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="20145"
          type_id="3"
          status="-"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>