<?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>72586</bug_id>
          
          <creation_ts>2011-11-17 01:29:25 -0800</creation_ts>
          <short_desc>Move test_result_writer out of layout_package</short_desc>
          <delta_ts>2011-11-17 02:54:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>504655</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-17 01:29:25 -0800</bug_when>
    <thetext>Move test_result_writer out of layout_package</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504658</commentid>
    <comment_count>1</comment_count>
      <attachid>115542</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-17 01:31:00 -0800</bug_when>
    <thetext>Created attachment 115542
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504671</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-17 02:09:25 -0800</bug_when>
    <thetext>Committed r100587: &lt;http://trac.webkit.org/changeset/100587&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504689</commentid>
    <comment_count>3</comment_count>
      <attachid>115542</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-17 02:54:00 -0800</bug_when>
    <thetext>Comment on attachment 115542
Patch

OK.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115542</attachid>
            <date>2011-11-17 01:31:00 -0800</date>
            <delta_ts>2011-11-17 02:54:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72586-20111117013058.patch</filename>
            <type>text/plain</type>
            <size>29028</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEwMDU4MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDExLTExLTE3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgTW92ZSB0ZXN0X3Jlc3VsdF93cml0ZXIgb3V0IG9mIGxheW91dF9wYWNrYWdlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU4NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgcGFy
dCBvZiBhIHNlcmllcyBvZiBwYXRjaGVzIHRvIHJlbW92ZSBsYXlvdXRfcGFja2FnZS4KKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90
ZXN0X3J1bm5lci5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9j
b250cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXIucHk6IENvcGllZCBmcm9tIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfcmVzdWx0X3dyaXRl
ci5weS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFj
a2FnZS90ZXN0X3Jlc3VsdF93cml0ZXIucHk6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmUucHk6CisKIDIwMTEtMTEtMTYgIFJ5b3N1
a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIGEgbGlzdCBvZiBjb250
cmlidXRpb24gYXJlYXMKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5u
ZXIucHkJKHJldmlzaW9uIDEwMDU3NSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQkod29ya2luZyBjb3B5KQpA
QCAtMzEsNyArMzEsNyBAQCBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IHJlCiBpbXBvcnQgdGltZQog
Ci1mcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5sYXlvdXRfcGFja2FnZSBpbXBvcnQgdGVzdF9y
ZXN1bHRfd3JpdGVyCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycyBpbXBv
cnQgdGVzdF9yZXN1bHRfd3JpdGVyCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmRy
aXZlciBpbXBvcnQgRHJpdmVySW5wdXQsIERyaXZlck91dHB1dAogZnJvbSB3ZWJraXRweS5sYXlv
dXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogZnJvbSB3ZWJraXRweS5s
YXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2ZhaWx1cmVzCkluZGV4OiBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXIu
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvdGVzdF9yZXN1bHRfd3JpdGVyLnB5CShyZXZpc2lvbiAxMDA1NzUpCShmcm9tIFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfcmVz
dWx0X3dyaXRlci5weToxMDA1NzUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXIucHkJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwyNzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMK
KyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
IyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
IyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKK2ltcG9ydCBsb2dnaW5nCitpbXBv
cnQgb3MKKworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmNyYXNobG9ncyBpbXBvcnQgQ3Jh
c2hMb2dzCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfZmFp
bHVyZXMKKworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworZGVmIHdy
aXRlX3Rlc3RfcmVzdWx0KHBvcnQsIHRlc3RfbmFtZSwgZHJpdmVyX291dHB1dCwKKyAgICAgICAg
ICAgICAgICAgICAgICBleHBlY3RlZF9kcml2ZXJfb3V0cHV0LCBmYWlsdXJlcyk6CisgICAgIiIi
V3JpdGUgdGhlIHRlc3QgcmVzdWx0IHRvIHRoZSByZXN1bHQgb3V0cHV0IGRpcmVjdG9yeS4iIiIK
KyAgICByb290X291dHB1dF9kaXIgPSBwb3J0LnJlc3VsdHNfZGlyZWN0b3J5KCkKKyAgICB3cml0
ZXIgPSBUZXN0UmVzdWx0V3JpdGVyKHBvcnQsIHJvb3Rfb3V0cHV0X2RpciwgdGVzdF9uYW1lKQor
ICAgIGlmIGRyaXZlcl9vdXRwdXQuZXJyb3I6CisgICAgICAgIHdyaXRlci53cml0ZV9zdGRlcnIo
ZHJpdmVyX291dHB1dC5lcnJvcikKKworICAgIGZvciBmYWlsdXJlIGluIGZhaWx1cmVzOgorICAg
ICAgICAjIEZJWE1FOiBJbnN0ZWFkIG9mIHRoaXMgbG9uZyAnaWYnIGJsb2NrLCBlYWNoIGZhaWx1
cmUgY2xhc3MgbWlnaHQKKyAgICAgICAgIyBoYXZlIGEgcmVzcG9uc2liaWxpdHkgZm9yIHdyaXRp
bmcgYSB0ZXN0IHJlc3VsdC4KKyAgICAgICAgaWYgaXNpbnN0YW5jZShmYWlsdXJlLCAodGVzdF9m
YWlsdXJlcy5GYWlsdXJlTWlzc2luZ1Jlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdF9mYWlsdXJlcy5GYWlsdXJlVGV4dE1pc21hdGNoKSk6CisgICAgICAgICAgICB3
cml0ZXIud3JpdGVfdGV4dF9maWxlcyhkcml2ZXJfb3V0cHV0LnRleHQsIGV4cGVjdGVkX2RyaXZl
cl9vdXRwdXQudGV4dCkKKyAgICAgICAgICAgIHdyaXRlci5jcmVhdGVfdGV4dF9kaWZmX2FuZF93
cml0ZV9yZXN1bHQoZHJpdmVyX291dHB1dC50ZXh0LCBleHBlY3RlZF9kcml2ZXJfb3V0cHV0LnRl
eHQpCisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShmYWlsdXJlLCB0ZXN0X2ZhaWx1cmVzLkZhaWx1
cmVNaXNzaW5nSW1hZ2UpOgorICAgICAgICAgICAgd3JpdGVyLndyaXRlX2ltYWdlX2ZpbGVzKGRy
aXZlcl9vdXRwdXQuaW1hZ2UsIGV4cGVjdGVkX2ltYWdlPU5vbmUpCisgICAgICAgIGVsaWYgaXNp
bnN0YW5jZShmYWlsdXJlLCB0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVNaXNzaW5nSW1hZ2VIYXNoKToK
KyAgICAgICAgICAgIHdyaXRlci53cml0ZV9pbWFnZV9maWxlcyhkcml2ZXJfb3V0cHV0LmltYWdl
LCBleHBlY3RlZF9kcml2ZXJfb3V0cHV0LmltYWdlKQorICAgICAgICBlbGlmIGlzaW5zdGFuY2Uo
ZmFpbHVyZSwgdGVzdF9mYWlsdXJlcy5GYWlsdXJlSW1hZ2VIYXNoTWlzbWF0Y2gpOgorICAgICAg
ICAgICAgd3JpdGVyLndyaXRlX2ltYWdlX2ZpbGVzKGRyaXZlcl9vdXRwdXQuaW1hZ2UsIGV4cGVj
dGVkX2RyaXZlcl9vdXRwdXQuaW1hZ2UpCisgICAgICAgICAgICB3cml0ZXIud3JpdGVfaW1hZ2Vf
ZGlmZl9maWxlcyhkcml2ZXJfb3V0cHV0LmltYWdlX2RpZmYpCisgICAgICAgIGVsaWYgaXNpbnN0
YW5jZShmYWlsdXJlLCAodGVzdF9mYWlsdXJlcy5GYWlsdXJlQXVkaW9NaXNtYXRjaCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVNaXNzaW5n
QXVkaW8pKToKKyAgICAgICAgICAgIHdyaXRlci53cml0ZV9hdWRpb19maWxlcyhkcml2ZXJfb3V0
cHV0LmF1ZGlvLCBleHBlY3RlZF9kcml2ZXJfb3V0cHV0LmF1ZGlvKQorICAgICAgICBlbGlmIGlz
aW5zdGFuY2UoZmFpbHVyZSwgdGVzdF9mYWlsdXJlcy5GYWlsdXJlQ3Jhc2gpOgorICAgICAgICAg
ICAgaWYgZmFpbHVyZS5pc19yZWZ0ZXN0OgorICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZV9j
cmFzaF9yZXBvcnQoZXhwZWN0ZWRfZHJpdmVyX291dHB1dC5lcnJvcikKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlX2NyYXNoX3JlcG9ydChkcml2ZXJfb3V0
cHV0LmVycm9yKQorICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZmFpbHVyZSwgdGVzdF9mYWlsdXJl
cy5GYWlsdXJlUmVmdGVzdE1pc21hdGNoKToKKyAgICAgICAgICAgIHdyaXRlci53cml0ZV9pbWFn
ZV9maWxlcyhkcml2ZXJfb3V0cHV0LmltYWdlLCBleHBlY3RlZF9kcml2ZXJfb3V0cHV0LmltYWdl
KQorICAgICAgICAgICAgIyBGSVhNRTogVGhpcyB3b3JrIHNob3VsZCBiZSBkb25lIGVhcmxpZXIg
aW4gdGhlIHBpcGVsaW5lIChlLmcuLCB3aGVuIHdlIGNvbXBhcmUgaW1hZ2VzIGZvciBub24tcmVm
IHRlc3RzKS4KKyAgICAgICAgICAgICMgRklYTUU6IFdlIHNob3VsZCBhbHdheXMgaGF2ZSAyIGlt
YWdlcyBoZXJlLgorICAgICAgICAgICAgaWYgZHJpdmVyX291dHB1dC5pbWFnZSBhbmQgZXhwZWN0
ZWRfZHJpdmVyX291dHB1dC5pbWFnZToKKyAgICAgICAgICAgICAgICBpbWFnZV9kaWZmID0gcG9y
dC5kaWZmX2ltYWdlKGRyaXZlcl9vdXRwdXQuaW1hZ2UsIGV4cGVjdGVkX2RyaXZlcl9vdXRwdXQu
aW1hZ2UpWzBdCisgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlX2ltYWdlX2RpZmZfZmlsZXMo
aW1hZ2VfZGlmZikKKyAgICAgICAgICAgIHdyaXRlci5jb3B5X2ZpbGUoZmFpbHVyZS5yZWZlcmVu
Y2VfZmlsZW5hbWUpCisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShmYWlsdXJlLCB0ZXN0X2ZhaWx1
cmVzLkZhaWx1cmVSZWZ0ZXN0TWlzbWF0Y2hEaWROb3RPY2N1cik6CisgICAgICAgICAgICB3cml0
ZXIud3JpdGVfaW1hZ2VfZmlsZXMoZHJpdmVyX291dHB1dC5pbWFnZSwgZXhwZWN0ZWRfaW1hZ2U9
Tm9uZSkKKyAgICAgICAgICAgIHdyaXRlci5jb3B5X2ZpbGUoZmFpbHVyZS5yZWZlcmVuY2VfZmls
ZW5hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShmYWls
dXJlLCAodGVzdF9mYWlsdXJlcy5GYWlsdXJlVGltZW91dCwpKQorCisKK2NsYXNzIFRlc3RSZXN1
bHRXcml0ZXIob2JqZWN0KToKKyAgICAiIiJBIGNsYXNzIHdoaWNoIGhhbmRsZXMgYWxsIHdyaXRp
bmcgb3BlcmF0aW9ucyB0byB0aGUgcmVzdWx0IGRpcmVjdG9yeS4iIiIKKworICAgICMgRmlsZW5h
bWUgcGllY2VzIHdoZW4gd3JpdGluZyBmYWlsdXJlcyB0byB0aGUgdGVzdCByZXN1bHRzIGRpcmVj
dG9yeS4KKyAgICBGSUxFTkFNRV9TVUZGSVhfQUNUVUFMID0gIi1hY3R1YWwiCisgICAgRklMRU5B
TUVfU1VGRklYX0VYUEVDVEVEID0gIi1leHBlY3RlZCIKKyAgICBGSUxFTkFNRV9TVUZGSVhfRElG
RiA9ICItZGlmZiIKKyAgICBGSUxFTkFNRV9TVUZGSVhfU1RERVJSID0gIi1zdGRlcnIiCisgICAg
RklMRU5BTUVfU1VGRklYX0NSQVNIX0xPRyA9ICItY3Jhc2gtbG9nIgorICAgIEZJTEVOQU1FX1NV
RkZJWF9XRElGRiA9ICItd2RpZmYuaHRtbCIKKyAgICBGSUxFTkFNRV9TVUZGSVhfUFJFVFRZX1BB
VENIID0gIi1wcmV0dHktZGlmZi5odG1sIgorICAgIEZJTEVOQU1FX1NVRkZJWF9JTUFHRV9ESUZG
ID0gIi1kaWZmLnBuZyIKKyAgICBGSUxFTkFNRV9TVUZGSVhfSU1BR0VfRElGRlNfSFRNTCA9ICIt
ZGlmZnMuaHRtbCIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0LCByb290X291dHB1dF9k
aXIsIHRlc3RfbmFtZSk6CisgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0CisgICAgICAgIHNlbGYu
X3Jvb3Rfb3V0cHV0X2RpciA9IHJvb3Rfb3V0cHV0X2RpcgorICAgICAgICBzZWxmLl90ZXN0X25h
bWUgPSB0ZXN0X25hbWUKKworICAgIGRlZiBfbWFrZV9vdXRwdXRfZGlyZWN0b3J5KHNlbGYpOgor
ICAgICAgICAiIiJDcmVhdGVzIHRoZSBvdXRwdXQgZGlyZWN0b3J5IChpZiBuZWVkZWQpIGZvciBh
IGdpdmVuIHRlc3QgZmlsZW5hbWUuIiIiCisgICAgICAgIGZzID0gc2VsZi5fcG9ydC5fZmlsZXN5
c3RlbQorICAgICAgICBvdXRwdXRfZmlsZW5hbWUgPSBmcy5qb2luKHNlbGYuX3Jvb3Rfb3V0cHV0
X2Rpciwgc2VsZi5fdGVzdF9uYW1lKQorICAgICAgICBzZWxmLl9wb3J0Lm1heWJlX21ha2VfZGly
ZWN0b3J5KGZzLmRpcm5hbWUob3V0cHV0X2ZpbGVuYW1lKSkKKworICAgIGRlZiBvdXRwdXRfZmls
ZW5hbWUoc2VsZiwgbW9kaWZpZXIpOgorICAgICAgICAiIiJSZXR1cm5zIGEgZmlsZW5hbWUgaW5z
aWRlIHRoZSBvdXRwdXQgZGlyIHRoYXQgY29udGFpbnMgbW9kaWZpZXIuCisKKyAgICAgICAgRm9y
IGV4YW1wbGUsIGlmIHRlc3QgbmFtZSBpcyAiZmFzdC9kb20vZm9vLmh0bWwiIGFuZCBtb2RpZmll
ciBpcyAiLWV4cGVjdGVkLnR4dCIsCisgICAgICAgIHRoZSByZXR1cm4gdmFsdWUgaXMgIi88cGF0
aC10by1yb290LW91dHB1dC1kaXI+L2Zhc3QvZG9tL2Zvby1leHBlY3RlZC50eHQiLgorCisgICAg
ICAgIEFyZ3M6CisgICAgICAgICAgbW9kaWZpZXI6IGEgc3RyaW5nIHRvIHJlcGxhY2UgdGhlIGV4
dGVuc2lvbiBvZiBmaWxlbmFtZSB3aXRoCisKKyAgICAgICAgUmV0dXJuOgorICAgICAgICAgIFRo
ZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBvdXRwdXQgZmlsZW5hbWUKKyAgICAgICAgIiIiCisgICAg
ICAgIGZzID0gc2VsZi5fcG9ydC5fZmlsZXN5c3RlbQorICAgICAgICBvdXRwdXRfZmlsZW5hbWUg
PSBmcy5qb2luKHNlbGYuX3Jvb3Rfb3V0cHV0X2Rpciwgc2VsZi5fdGVzdF9uYW1lKQorICAgICAg
ICByZXR1cm4gZnMuc3BsaXRleHQob3V0cHV0X2ZpbGVuYW1lKVswXSArIG1vZGlmaWVyCisKKyAg
ICBkZWYgX291dHB1dF90ZXN0bmFtZShzZWxmLCBtb2RpZmllcik6CisgICAgICAgIGZzID0gc2Vs
Zi5fcG9ydC5fZmlsZXN5c3RlbQorICAgICAgICByZXR1cm4gZnMuc3BsaXRleHQoZnMuYmFzZW5h
bWUoc2VsZi5fdGVzdF9uYW1lKSlbMF0gKyBtb2RpZmllcgorCisgICAgZGVmIHdyaXRlX291dHB1
dF9maWxlcyhzZWxmLCBmaWxlX3R5cGUsIG91dHB1dCwgZXhwZWN0ZWQpOgorICAgICAgICAiIiJX
cml0ZXMgdGhlIHRlc3Qgb3V0cHV0LCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGluIHRoZSByZXN1bHRz
IGRpcmVjdG9yeS4KKworICAgICAgICBUaGUgZnVsbCBvdXRwdXQgZmlsZW5hbWUgb2YgdGhlIGFj
dHVhbCwgZm9yIGV4YW1wbGUsIHdpbGwgYmUKKyAgICAgICAgICA8ZmlsZW5hbWU+LWFjdHVhbDxm
aWxlX3R5cGU+CisgICAgICAgIEZvciBpbnN0YW5jZSwKKyAgICAgICAgICBteV90ZXN0LWFjdHVh
bC50eHQKKworICAgICAgICBBcmdzOgorICAgICAgICAgIGZpbGVfdHlwZTogQSBzdHJpbmcgZGVz
Y3JpYmluZyB0aGUgdGVzdCBvdXRwdXQgZmlsZSB0eXBlLCBlLmcuICIudHh0IgorICAgICAgICAg
IG91dHB1dDogQSBzdHJpbmcgY29udGFpbmluZyB0aGUgdGVzdCBvdXRwdXQKKyAgICAgICAgICBl
eHBlY3RlZDogQSBzdHJpbmcgY29udGFpbmluZyB0aGUgZXhwZWN0ZWQgdGVzdCBvdXRwdXQKKyAg
ICAgICAgIiIiCisgICAgICAgIHNlbGYuX21ha2Vfb3V0cHV0X2RpcmVjdG9yeSgpCisgICAgICAg
IGFjdHVhbF9maWxlbmFtZSA9IHNlbGYub3V0cHV0X2ZpbGVuYW1lKHNlbGYuRklMRU5BTUVfU1VG
RklYX0FDVFVBTCArIGZpbGVfdHlwZSkKKyAgICAgICAgZXhwZWN0ZWRfZmlsZW5hbWUgPSBzZWxm
Lm91dHB1dF9maWxlbmFtZShzZWxmLkZJTEVOQU1FX1NVRkZJWF9FWFBFQ1RFRCArIGZpbGVfdHlw
ZSkKKworICAgICAgICBmcyA9IHNlbGYuX3BvcnQuX2ZpbGVzeXN0ZW0KKyAgICAgICAgaWYgb3V0
cHV0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZnMud3JpdGVfYmluYXJ5X2ZpbGUoYWN0dWFs
X2ZpbGVuYW1lLCBvdXRwdXQpCisgICAgICAgIGlmIGV4cGVjdGVkIGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgZnMud3JpdGVfYmluYXJ5X2ZpbGUoZXhwZWN0ZWRfZmlsZW5hbWUsIGV4cGVjdGVk
KQorCisgICAgZGVmIHdyaXRlX3N0ZGVycihzZWxmLCBlcnJvcik6CisgICAgICAgIGZzID0gc2Vs
Zi5fcG9ydC5fZmlsZXN5c3RlbQorICAgICAgICBmaWxlbmFtZSA9IHNlbGYub3V0cHV0X2ZpbGVu
YW1lKHNlbGYuRklMRU5BTUVfU1VGRklYX1NUREVSUiArICIudHh0IikKKyAgICAgICAgZnMubWF5
YmVfbWFrZV9kaXJlY3RvcnkoZnMuZGlybmFtZShmaWxlbmFtZSkpCisgICAgICAgIGZzLndyaXRl
X2JpbmFyeV9maWxlKGZpbGVuYW1lLCBlcnJvcikKKworICAgIGRlZiB3cml0ZV9jcmFzaF9yZXBv
cnQoc2VsZiwgZXJyb3IpOgorICAgICAgICBmcyA9IHNlbGYuX3BvcnQuX2ZpbGVzeXN0ZW0KKyAg
ICAgICAgZmlsZW5hbWUgPSBzZWxmLm91dHB1dF9maWxlbmFtZShzZWxmLkZJTEVOQU1FX1NVRkZJ
WF9DUkFTSF9MT0cgKyAiLnR4dCIpCisgICAgICAgIGZzLm1heWJlX21ha2VfZGlyZWN0b3J5KGZz
LmRpcm5hbWUoZmlsZW5hbWUpKQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRuJ3QgYmUgZ3Jh
YmJpbmcgcHJpdmF0ZSBtZW1iZXJzIG9mIHBvcnQuCisgICAgICAgIGNyYXNoX2xvZ3MgPSBDcmFz
aExvZ3MoZnMpCisgICAgICAgIGxvZyA9IGNyYXNoX2xvZ3MuZmluZF9uZXdlc3RfbG9nKHNlbGYu
X3BvcnQuZHJpdmVyX25hbWUoKSkKKyAgICAgICAgIyBDcmFzaExvZ3MgZG9lc24ndCBzdXBwb3J0
IGV2ZXJ5IHBsYXRmb3JtLCBzbyB3ZSBmYWxsIGJhY2sgdG8KKyAgICAgICAgIyBpbmNsdWRpbmcg
dGhlIHN0ZGVyciBvdXRwdXQsIHdoaWNoIGlzIGFkbWl0dGVkbHkgc29tZXdoYXQgcmVkdW5kYW50
LgorICAgICAgICBmcy53cml0ZV90ZXh0X2ZpbGUoZmlsZW5hbWUsIGxvZyBpZiBsb2cgZWxzZSBl
cnJvcikKKworICAgIGRlZiB3cml0ZV90ZXh0X2ZpbGVzKHNlbGYsIGFjdHVhbF90ZXh0LCBleHBl
Y3RlZF90ZXh0KToKKyAgICAgICAgc2VsZi53cml0ZV9vdXRwdXRfZmlsZXMoIi50eHQiLCBhY3R1
YWxfdGV4dCwgZXhwZWN0ZWRfdGV4dCkKKworICAgIGRlZiBjcmVhdGVfdGV4dF9kaWZmX2FuZF93
cml0ZV9yZXN1bHQoc2VsZiwgYWN0dWFsX3RleHQsIGV4cGVjdGVkX3RleHQpOgorICAgICAgICAj
IEZJWE1FOiBUaGlzIGZ1bmN0aW9uIGlzIGFjdHVhbGx5IGRvaW5nIHRoZSBkaWZmcyBhcyB3ZWxs
IGFzIHdyaXRpbmcgcmVzdWx0cy4KKyAgICAgICAgIyBJdCBtaWdodCBiZSBiZXR0ZXIgdG8gZXh0
cmFjdCBjb2RlIHdoaWNoIGRvZXMgJ2RpZmYnIGFuZCBtYWtlIGl0IGEgc2VwYXJhdGUgZnVuY3Rp
b24uCisgICAgICAgIGlmIG5vdCBhY3R1YWxfdGV4dCBvciBub3QgZXhwZWN0ZWRfdGV4dDoKKyAg
ICAgICAgICAgIHJldHVybgorCisgICAgICAgIHNlbGYuX21ha2Vfb3V0cHV0X2RpcmVjdG9yeSgp
CisgICAgICAgIGZpbGVfdHlwZSA9ICcudHh0JworICAgICAgICBhY3R1YWxfZmlsZW5hbWUgPSBz
ZWxmLm91dHB1dF9maWxlbmFtZShzZWxmLkZJTEVOQU1FX1NVRkZJWF9BQ1RVQUwgKyBmaWxlX3R5
cGUpCisgICAgICAgIGV4cGVjdGVkX2ZpbGVuYW1lID0gc2VsZi5vdXRwdXRfZmlsZW5hbWUoc2Vs
Zi5GSUxFTkFNRV9TVUZGSVhfRVhQRUNURUQgKyBmaWxlX3R5cGUpCisgICAgICAgIGZzID0gc2Vs
Zi5fcG9ydC5fZmlsZXN5c3RlbQorICAgICAgICAjIFdlIHRyZWF0IGRpZmYgb3V0cHV0IGFzIGJp
bmFyeS4gRGlmZiBvdXRwdXQgbWF5IGNvbnRhaW4gbXVsdGlwbGUgZmlsZXMKKyAgICAgICAgIyBp
biBjb25mbGljdGluZyBlbmNvZGluZ3MuCisgICAgICAgIGRpZmYgPSBzZWxmLl9wb3J0LmRpZmZf
dGV4dChleHBlY3RlZF90ZXh0LCBhY3R1YWxfdGV4dCwgZXhwZWN0ZWRfZmlsZW5hbWUsIGFjdHVh
bF9maWxlbmFtZSkKKyAgICAgICAgZGlmZl9maWxlbmFtZSA9IHNlbGYub3V0cHV0X2ZpbGVuYW1l
KHNlbGYuRklMRU5BTUVfU1VGRklYX0RJRkYgKyBmaWxlX3R5cGUpCisgICAgICAgIGZzLndyaXRl
X2JpbmFyeV9maWxlKGRpZmZfZmlsZW5hbWUsIGRpZmYpCisKKyAgICAgICAgIyBTaGVsbCBvdXQg
dG8gd2RpZmYgdG8gZ2V0IGNvbG9yZWQgaW5saW5lIGRpZmZzLgorICAgICAgICB3ZGlmZiA9IHNl
bGYuX3BvcnQud2RpZmZfdGV4dChleHBlY3RlZF9maWxlbmFtZSwgYWN0dWFsX2ZpbGVuYW1lKQor
ICAgICAgICB3ZGlmZl9maWxlbmFtZSA9IHNlbGYub3V0cHV0X2ZpbGVuYW1lKHNlbGYuRklMRU5B
TUVfU1VGRklYX1dESUZGKQorICAgICAgICBmcy53cml0ZV9iaW5hcnlfZmlsZSh3ZGlmZl9maWxl
bmFtZSwgd2RpZmYpCisKKyAgICAgICAgIyBVc2UgV2ViS2l0J3MgUHJldHR5UGF0Y2gucmIgdG8g
Z2V0IGFuIEhUTUwgZGlmZi4KKyAgICAgICAgcHJldHR5X3BhdGNoID0gc2VsZi5fcG9ydC5wcmV0
dHlfcGF0Y2hfdGV4dChkaWZmX2ZpbGVuYW1lKQorICAgICAgICBwcmV0dHlfcGF0Y2hfZmlsZW5h
bWUgPSBzZWxmLm91dHB1dF9maWxlbmFtZShzZWxmLkZJTEVOQU1FX1NVRkZJWF9QUkVUVFlfUEFU
Q0gpCisgICAgICAgIGZzLndyaXRlX2JpbmFyeV9maWxlKHByZXR0eV9wYXRjaF9maWxlbmFtZSwg
cHJldHR5X3BhdGNoKQorCisgICAgZGVmIHdyaXRlX2F1ZGlvX2ZpbGVzKHNlbGYsIGFjdHVhbF9h
dWRpbywgZXhwZWN0ZWRfYXVkaW8pOgorICAgICAgICBzZWxmLndyaXRlX291dHB1dF9maWxlcygn
LndhdicsIGFjdHVhbF9hdWRpbywgZXhwZWN0ZWRfYXVkaW8pCisKKyAgICBkZWYgd3JpdGVfaW1h
Z2VfZmlsZXMoc2VsZiwgYWN0dWFsX2ltYWdlLCBleHBlY3RlZF9pbWFnZSk6CisgICAgICAgIHNl
bGYud3JpdGVfb3V0cHV0X2ZpbGVzKCcucG5nJywgYWN0dWFsX2ltYWdlLCBleHBlY3RlZF9pbWFn
ZSkKKworICAgIGRlZiB3cml0ZV9pbWFnZV9kaWZmX2ZpbGVzKHNlbGYsIGltYWdlX2RpZmYpOgor
ICAgICAgICBkaWZmX2ZpbGVuYW1lID0gc2VsZi5vdXRwdXRfZmlsZW5hbWUoc2VsZi5GSUxFTkFN
RV9TVUZGSVhfSU1BR0VfRElGRikKKyAgICAgICAgZnMgPSBzZWxmLl9wb3J0Ll9maWxlc3lzdGVt
CisgICAgICAgIGZzLndyaXRlX2JpbmFyeV9maWxlKGRpZmZfZmlsZW5hbWUsIGltYWdlX2RpZmYp
CisKKyAgICAgICAgZGlmZnNfaHRtbF9maWxlbmFtZSA9IHNlbGYub3V0cHV0X2ZpbGVuYW1lKHNl
bGYuRklMRU5BTUVfU1VGRklYX0lNQUdFX0RJRkZTX0hUTUwpCisgICAgICAgICMgRklYTUU6IG9s
ZC1ydW4td2Via2l0LXRlc3RzIHNob3dzIHRoZSBkaWZmIHBlcmNlbnRhZ2UgYXMgdGhlIHRleHQg
Y29udGVudHMgb2YgdGhlICJkaWZmIiBsaW5rLgorICAgICAgICAjIEZJWE1FOiBvbGQtcnVuLXdl
YmtpdC10ZXN0cyBpbmNsdWRlIGEgbGluayB0byB0aGUgdGVzdCBmaWxlLgorICAgICAgICBodG1s
ID0gIiIiPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPiUodGl0bGUpczwv
dGl0bGU+Cis8c3R5bGU+LmxhYmVse2ZvbnQtd2VpZ2h0OmJvbGR9PC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorRGlmZmVyZW5jZSBiZXR3ZWVuIGltYWdlczogPGEgaHJlZj0iJShkaWZmX2ZpbGVu
YW1lKXMiPmRpZmY8L2E+PGJyPgorPGRpdiBjbGFzcz1pbWFnZVRleHQ+PC9kaXY+Cis8ZGl2IGNs
YXNzPWltYWdlQ29udGFpbmVyIGRhdGEtcHJlZml4PSIlKHByZWZpeClzIj5Mb2FkaW5nLi4uPC9k
aXY+Cis8c2NyaXB0PgorKGZ1bmN0aW9uKCkgeworICAgIHZhciBwcmVsb2FkZWRJbWFnZUNvdW50
ID0gMDsKKyAgICBmdW5jdGlvbiBwcmVsb2FkQ29tcGxldGUoKSB7CisgICAgICAgICsrcHJlbG9h
ZGVkSW1hZ2VDb3VudDsKKyAgICAgICAgaWYgKHByZWxvYWRlZEltYWdlQ291bnQgPCAyKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB0b2dnbGVJbWFnZXMoKTsKKyAgICAgICAgc2V0SW50
ZXJ2YWwodG9nZ2xlSW1hZ2VzLCAyMDAwKQorICAgIH0KKworICAgIGZ1bmN0aW9uIHByZWxvYWRJ
bWFnZSh1cmwpIHsKKyAgICAgICAgaW1hZ2UgPSBuZXcgSW1hZ2UoKTsKKyAgICAgICAgaW1hZ2Uu
YWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHByZWxvYWRDb21wbGV0ZSk7CisgICAgICAgIGltYWdl
LnNyYyA9IHVybDsKKyAgICAgICAgcmV0dXJuIGltYWdlOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHRvZ2dsZUltYWdlcygpIHsKKyAgICAgICAgaWYgKHRleHQudGV4dENvbnRlbnQgPT0gJ0V4cGVj
dGVkIEltYWdlJykgeworICAgICAgICAgICAgdGV4dC50ZXh0Q29udGVudCA9ICdBY3R1YWwgSW1h
Z2UnOworICAgICAgICAgICAgY29udGFpbmVyLnJlcGxhY2VDaGlsZChhY3R1YWxJbWFnZSwgY29u
dGFpbmVyLmZpcnN0Q2hpbGQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGV4dC50
ZXh0Q29udGVudCA9ICdFeHBlY3RlZCBJbWFnZSc7CisgICAgICAgICAgICBjb250YWluZXIucmVw
bGFjZUNoaWxkKGV4cGVjdGVkSW1hZ2UsIGNvbnRhaW5lci5maXJzdENoaWxkKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIHZhciB0ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmltYWdl
VGV4dCcpOworICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaW1h
Z2VDb250YWluZXInKTsKKyAgICB2YXIgYWN0dWFsSW1hZ2UgPSBwcmVsb2FkSW1hZ2UoY29udGFp
bmVyLmdldEF0dHJpYnV0ZSgnZGF0YS1wcmVmaXgnKSArICctYWN0dWFsLnBuZycpOworICAgIHZh
ciBleHBlY3RlZEltYWdlID0gcHJlbG9hZEltYWdlKGNvbnRhaW5lci5nZXRBdHRyaWJ1dGUoJ2Rh
dGEtcHJlZml4JykgKyAnLWV4cGVjdGVkLnBuZycpOworfSkoKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgorIiIiICUgeworICAgICAgICAgICAgJ3RpdGxlJzogc2VsZi5fdGVzdF9uYW1l
LAorICAgICAgICAgICAgJ2RpZmZfZmlsZW5hbWUnOiBzZWxmLl9vdXRwdXRfdGVzdG5hbWUoc2Vs
Zi5GSUxFTkFNRV9TVUZGSVhfSU1BR0VfRElGRiksCisgICAgICAgICAgICAncHJlZml4Jzogc2Vs
Zi5fb3V0cHV0X3Rlc3RuYW1lKCcnKSwKKyAgICAgICAgfQorICAgICAgICAjIEZJWE1FOiBUaGlz
IHNlZW1zIGxpa2UgYSB0ZXh0IGZpbGUsIG5vdCBhIGJpbmFyeSBmaWxlLgorICAgICAgICBzZWxm
Ll9wb3J0Ll9maWxlc3lzdGVtLndyaXRlX2JpbmFyeV9maWxlKGRpZmZzX2h0bWxfZmlsZW5hbWUs
IGh0bWwpCisKKyAgICBkZWYgY29weV9maWxlKHNlbGYsIHNyY19maWxlcGF0aCk6CisgICAgICAg
IGZzID0gc2VsZi5fcG9ydC5fZmlsZXN5c3RlbQorICAgICAgICBhc3NlcnQgZnMuZXhpc3RzKHNy
Y19maWxlcGF0aCksICdzcmNfZmlsZXBhdGg6ICVzJyAlIHNyY19maWxlcGF0aAorICAgICAgICBk
c3RfZmlsZXBhdGggPSBmcy5qb2luKHNlbGYuX3Jvb3Rfb3V0cHV0X2Rpciwgc2VsZi5fcG9ydC5y
ZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKHNyY19maWxlcGF0aCkpCisgICAgICAgIHNlbGYuX21ha2Vf
b3V0cHV0X2RpcmVjdG9yeSgpCisgICAgICAgIGZzLmNvcHlmaWxlKHNyY19maWxlcGF0aCwgZHN0
X2ZpbGVwYXRoKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5
b3V0X3BhY2thZ2UvdGVzdF9yZXN1bHRfd3JpdGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfcmVzdWx0X3dy
aXRlci5weQkocmV2aXNpb24gMTAwNTc1KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9yZXN1bHRfd3JpdGVyLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC0xLDI3MyArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBt
ZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0j
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi1pbXBvcnQgbG9nZ2lu
ZwotaW1wb3J0IG9zCi0KLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5jcmFzaGxvZ3MgaW1w
b3J0IENyYXNoTG9ncwotZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0
ZXN0X2ZhaWx1cmVzCi0KLQotX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQotCi0K
LWRlZiB3cml0ZV90ZXN0X3Jlc3VsdChwb3J0LCB0ZXN0X25hbWUsIGRyaXZlcl9vdXRwdXQsCi0g
ICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZHJpdmVyX291dHB1dCwgZmFpbHVyZXMpOgot
ICAgICIiIldyaXRlIHRoZSB0ZXN0IHJlc3VsdCB0byB0aGUgcmVzdWx0IG91dHB1dCBkaXJlY3Rv
cnkuIiIiCi0gICAgcm9vdF9vdXRwdXRfZGlyID0gcG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgpCi0g
ICAgd3JpdGVyID0gVGVzdFJlc3VsdFdyaXRlcihwb3J0LCByb290X291dHB1dF9kaXIsIHRlc3Rf
bmFtZSkKLSAgICBpZiBkcml2ZXJfb3V0cHV0LmVycm9yOgotICAgICAgICB3cml0ZXIud3JpdGVf
c3RkZXJyKGRyaXZlcl9vdXRwdXQuZXJyb3IpCi0KLSAgICBmb3IgZmFpbHVyZSBpbiBmYWlsdXJl
czoKLSAgICAgICAgIyBGSVhNRTogSW5zdGVhZCBvZiB0aGlzIGxvbmcgJ2lmJyBibG9jaywgZWFj
aCBmYWlsdXJlIGNsYXNzIG1pZ2h0Ci0gICAgICAgICMgaGF2ZSBhIHJlc3BvbnNpYmlsaXR5IGZv
ciB3cml0aW5nIGEgdGVzdCByZXN1bHQuCi0gICAgICAgIGlmIGlzaW5zdGFuY2UoZmFpbHVyZSwg
KHRlc3RfZmFpbHVyZXMuRmFpbHVyZU1pc3NpbmdSZXN1bHQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RfZmFpbHVyZXMuRmFpbHVyZVRleHRNaXNtYXRjaCkpOgotICAgICAg
ICAgICAgd3JpdGVyLndyaXRlX3RleHRfZmlsZXMoZHJpdmVyX291dHB1dC50ZXh0LCBleHBlY3Rl
ZF9kcml2ZXJfb3V0cHV0LnRleHQpCi0gICAgICAgICAgICB3cml0ZXIuY3JlYXRlX3RleHRfZGlm
Zl9hbmRfd3JpdGVfcmVzdWx0KGRyaXZlcl9vdXRwdXQudGV4dCwgZXhwZWN0ZWRfZHJpdmVyX291
dHB1dC50ZXh0KQotICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZmFpbHVyZSwgdGVzdF9mYWlsdXJl
cy5GYWlsdXJlTWlzc2luZ0ltYWdlKToKLSAgICAgICAgICAgIHdyaXRlci53cml0ZV9pbWFnZV9m
aWxlcyhkcml2ZXJfb3V0cHV0LmltYWdlLCBleHBlY3RlZF9pbWFnZT1Ob25lKQotICAgICAgICBl
bGlmIGlzaW5zdGFuY2UoZmFpbHVyZSwgdGVzdF9mYWlsdXJlcy5GYWlsdXJlTWlzc2luZ0ltYWdl
SGFzaCk6Ci0gICAgICAgICAgICB3cml0ZXIud3JpdGVfaW1hZ2VfZmlsZXMoZHJpdmVyX291dHB1
dC5pbWFnZSwgZXhwZWN0ZWRfZHJpdmVyX291dHB1dC5pbWFnZSkKLSAgICAgICAgZWxpZiBpc2lu
c3RhbmNlKGZhaWx1cmUsIHRlc3RfZmFpbHVyZXMuRmFpbHVyZUltYWdlSGFzaE1pc21hdGNoKToK
LSAgICAgICAgICAgIHdyaXRlci53cml0ZV9pbWFnZV9maWxlcyhkcml2ZXJfb3V0cHV0LmltYWdl
LCBleHBlY3RlZF9kcml2ZXJfb3V0cHV0LmltYWdlKQotICAgICAgICAgICAgd3JpdGVyLndyaXRl
X2ltYWdlX2RpZmZfZmlsZXMoZHJpdmVyX291dHB1dC5pbWFnZV9kaWZmKQotICAgICAgICBlbGlm
IGlzaW5zdGFuY2UoZmFpbHVyZSwgKHRlc3RfZmFpbHVyZXMuRmFpbHVyZUF1ZGlvTWlzbWF0Y2gs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mYWlsdXJlcy5GYWlsdXJl
TWlzc2luZ0F1ZGlvKSk6Ci0gICAgICAgICAgICB3cml0ZXIud3JpdGVfYXVkaW9fZmlsZXMoZHJp
dmVyX291dHB1dC5hdWRpbywgZXhwZWN0ZWRfZHJpdmVyX291dHB1dC5hdWRpbykKLSAgICAgICAg
ZWxpZiBpc2luc3RhbmNlKGZhaWx1cmUsIHRlc3RfZmFpbHVyZXMuRmFpbHVyZUNyYXNoKToKLSAg
ICAgICAgICAgIGlmIGZhaWx1cmUuaXNfcmVmdGVzdDoKLSAgICAgICAgICAgICAgICB3cml0ZXIu
d3JpdGVfY3Jhc2hfcmVwb3J0KGV4cGVjdGVkX2RyaXZlcl9vdXRwdXQuZXJyb3IpCi0gICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZV9jcmFzaF9yZXBvcnQoZHJp
dmVyX291dHB1dC5lcnJvcikKLSAgICAgICAgZWxpZiBpc2luc3RhbmNlKGZhaWx1cmUsIHRlc3Rf
ZmFpbHVyZXMuRmFpbHVyZVJlZnRlc3RNaXNtYXRjaCk6Ci0gICAgICAgICAgICB3cml0ZXIud3Jp
dGVfaW1hZ2VfZmlsZXMoZHJpdmVyX291dHB1dC5pbWFnZSwgZXhwZWN0ZWRfZHJpdmVyX291dHB1
dC5pbWFnZSkKLSAgICAgICAgICAgICMgRklYTUU6IFRoaXMgd29yayBzaG91bGQgYmUgZG9uZSBl
YXJsaWVyIGluIHRoZSBwaXBlbGluZSAoZS5nLiwgd2hlbiB3ZSBjb21wYXJlIGltYWdlcyBmb3Ig
bm9uLXJlZiB0ZXN0cykuCi0gICAgICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGQgYWx3YXlzIGhh
dmUgMiBpbWFnZXMgaGVyZS4KLSAgICAgICAgICAgIGlmIGRyaXZlcl9vdXRwdXQuaW1hZ2UgYW5k
IGV4cGVjdGVkX2RyaXZlcl9vdXRwdXQuaW1hZ2U6Ci0gICAgICAgICAgICAgICAgaW1hZ2VfZGlm
ZiA9IHBvcnQuZGlmZl9pbWFnZShkcml2ZXJfb3V0cHV0LmltYWdlLCBleHBlY3RlZF9kcml2ZXJf
b3V0cHV0LmltYWdlKVswXQotICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZV9pbWFnZV9kaWZm
X2ZpbGVzKGltYWdlX2RpZmYpCi0gICAgICAgICAgICB3cml0ZXIuY29weV9maWxlKGZhaWx1cmUu
cmVmZXJlbmNlX2ZpbGVuYW1lKQotICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZmFpbHVyZSwgdGVz
dF9mYWlsdXJlcy5GYWlsdXJlUmVmdGVzdE1pc21hdGNoRGlkTm90T2NjdXIpOgotICAgICAgICAg
ICAgd3JpdGVyLndyaXRlX2ltYWdlX2ZpbGVzKGRyaXZlcl9vdXRwdXQuaW1hZ2UsIGV4cGVjdGVk
X2ltYWdlPU5vbmUpCi0gICAgICAgICAgICB3cml0ZXIuY29weV9maWxlKGZhaWx1cmUucmVmZXJl
bmNlX2ZpbGVuYW1lKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFu
Y2UoZmFpbHVyZSwgKHRlc3RfZmFpbHVyZXMuRmFpbHVyZVRpbWVvdXQsKSkKLQotCi1jbGFzcyBU
ZXN0UmVzdWx0V3JpdGVyKG9iamVjdCk6Ci0gICAgIiIiQSBjbGFzcyB3aGljaCBoYW5kbGVzIGFs
bCB3cml0aW5nIG9wZXJhdGlvbnMgdG8gdGhlIHJlc3VsdCBkaXJlY3RvcnkuIiIiCi0KLSAgICAj
IEZpbGVuYW1lIHBpZWNlcyB3aGVuIHdyaXRpbmcgZmFpbHVyZXMgdG8gdGhlIHRlc3QgcmVzdWx0
cyBkaXJlY3RvcnkuCi0gICAgRklMRU5BTUVfU1VGRklYX0FDVFVBTCA9ICItYWN0dWFsIgotICAg
IEZJTEVOQU1FX1NVRkZJWF9FWFBFQ1RFRCA9ICItZXhwZWN0ZWQiCi0gICAgRklMRU5BTUVfU1VG
RklYX0RJRkYgPSAiLWRpZmYiCi0gICAgRklMRU5BTUVfU1VGRklYX1NUREVSUiA9ICItc3RkZXJy
IgotICAgIEZJTEVOQU1FX1NVRkZJWF9DUkFTSF9MT0cgPSAiLWNyYXNoLWxvZyIKLSAgICBGSUxF
TkFNRV9TVUZGSVhfV0RJRkYgPSAiLXdkaWZmLmh0bWwiCi0gICAgRklMRU5BTUVfU1VGRklYX1BS
RVRUWV9QQVRDSCA9ICItcHJldHR5LWRpZmYuaHRtbCIKLSAgICBGSUxFTkFNRV9TVUZGSVhfSU1B
R0VfRElGRiA9ICItZGlmZi5wbmciCi0gICAgRklMRU5BTUVfU1VGRklYX0lNQUdFX0RJRkZTX0hU
TUwgPSAiLWRpZmZzLmh0bWwiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgcm9vdF9v
dXRwdXRfZGlyLCB0ZXN0X25hbWUpOgotICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAotICAgICAg
ICBzZWxmLl9yb290X291dHB1dF9kaXIgPSByb290X291dHB1dF9kaXIKLSAgICAgICAgc2VsZi5f
dGVzdF9uYW1lID0gdGVzdF9uYW1lCi0KLSAgICBkZWYgX21ha2Vfb3V0cHV0X2RpcmVjdG9yeShz
ZWxmKToKLSAgICAgICAgIiIiQ3JlYXRlcyB0aGUgb3V0cHV0IGRpcmVjdG9yeSAoaWYgbmVlZGVk
KSBmb3IgYSBnaXZlbiB0ZXN0IGZpbGVuYW1lLiIiIgotICAgICAgICBmcyA9IHNlbGYuX3BvcnQu
X2ZpbGVzeXN0ZW0KLSAgICAgICAgb3V0cHV0X2ZpbGVuYW1lID0gZnMuam9pbihzZWxmLl9yb290
X291dHB1dF9kaXIsIHNlbGYuX3Rlc3RfbmFtZSkKLSAgICAgICAgc2VsZi5fcG9ydC5tYXliZV9t
YWtlX2RpcmVjdG9yeShmcy5kaXJuYW1lKG91dHB1dF9maWxlbmFtZSkpCi0KLSAgICBkZWYgb3V0
cHV0X2ZpbGVuYW1lKHNlbGYsIG1vZGlmaWVyKToKLSAgICAgICAgIiIiUmV0dXJucyBhIGZpbGVu
YW1lIGluc2lkZSB0aGUgb3V0cHV0IGRpciB0aGF0IGNvbnRhaW5zIG1vZGlmaWVyLgotCi0gICAg
ICAgIEZvciBleGFtcGxlLCBpZiB0ZXN0IG5hbWUgaXMgImZhc3QvZG9tL2Zvby5odG1sIiBhbmQg
bW9kaWZpZXIgaXMgIi1leHBlY3RlZC50eHQiLAotICAgICAgICB0aGUgcmV0dXJuIHZhbHVlIGlz
ICIvPHBhdGgtdG8tcm9vdC1vdXRwdXQtZGlyPi9mYXN0L2RvbS9mb28tZXhwZWN0ZWQudHh0Ii4K
LQotICAgICAgICBBcmdzOgotICAgICAgICAgIG1vZGlmaWVyOiBhIHN0cmluZyB0byByZXBsYWNl
IHRoZSBleHRlbnNpb24gb2YgZmlsZW5hbWUgd2l0aAotCi0gICAgICAgIFJldHVybjoKLSAgICAg
ICAgICBUaGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgb3V0cHV0IGZpbGVuYW1lCi0gICAgICAgICIi
IgotICAgICAgICBmcyA9IHNlbGYuX3BvcnQuX2ZpbGVzeXN0ZW0KLSAgICAgICAgb3V0cHV0X2Zp
bGVuYW1lID0gZnMuam9pbihzZWxmLl9yb290X291dHB1dF9kaXIsIHNlbGYuX3Rlc3RfbmFtZSkK
LSAgICAgICAgcmV0dXJuIGZzLnNwbGl0ZXh0KG91dHB1dF9maWxlbmFtZSlbMF0gKyBtb2RpZmll
cgotCi0gICAgZGVmIF9vdXRwdXRfdGVzdG5hbWUoc2VsZiwgbW9kaWZpZXIpOgotICAgICAgICBm
cyA9IHNlbGYuX3BvcnQuX2ZpbGVzeXN0ZW0KLSAgICAgICAgcmV0dXJuIGZzLnNwbGl0ZXh0KGZz
LmJhc2VuYW1lKHNlbGYuX3Rlc3RfbmFtZSkpWzBdICsgbW9kaWZpZXIKLQotICAgIGRlZiB3cml0
ZV9vdXRwdXRfZmlsZXMoc2VsZiwgZmlsZV90eXBlLCBvdXRwdXQsIGV4cGVjdGVkKToKLSAgICAg
ICAgIiIiV3JpdGVzIHRoZSB0ZXN0IG91dHB1dCwgdGhlIGV4cGVjdGVkIG91dHB1dCBpbiB0aGUg
cmVzdWx0cyBkaXJlY3RvcnkuCi0KLSAgICAgICAgVGhlIGZ1bGwgb3V0cHV0IGZpbGVuYW1lIG9m
IHRoZSBhY3R1YWwsIGZvciBleGFtcGxlLCB3aWxsIGJlCi0gICAgICAgICAgPGZpbGVuYW1lPi1h
Y3R1YWw8ZmlsZV90eXBlPgotICAgICAgICBGb3IgaW5zdGFuY2UsCi0gICAgICAgICAgbXlfdGVz
dC1hY3R1YWwudHh0Ci0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICBmaWxlX3R5cGU6IEEgc3Ry
aW5nIGRlc2NyaWJpbmcgdGhlIHRlc3Qgb3V0cHV0IGZpbGUgdHlwZSwgZS5nLiAiLnR4dCIKLSAg
ICAgICAgICBvdXRwdXQ6IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHRlc3Qgb3V0cHV0Ci0gICAg
ICAgICAgZXhwZWN0ZWQ6IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGV4cGVjdGVkIHRlc3Qgb3V0
cHV0Ci0gICAgICAgICIiIgotICAgICAgICBzZWxmLl9tYWtlX291dHB1dF9kaXJlY3RvcnkoKQot
ICAgICAgICBhY3R1YWxfZmlsZW5hbWUgPSBzZWxmLm91dHB1dF9maWxlbmFtZShzZWxmLkZJTEVO
QU1FX1NVRkZJWF9BQ1RVQUwgKyBmaWxlX3R5cGUpCi0gICAgICAgIGV4cGVjdGVkX2ZpbGVuYW1l
ID0gc2VsZi5vdXRwdXRfZmlsZW5hbWUoc2VsZi5GSUxFTkFNRV9TVUZGSVhfRVhQRUNURUQgKyBm
aWxlX3R5cGUpCi0KLSAgICAgICAgZnMgPSBzZWxmLl9wb3J0Ll9maWxlc3lzdGVtCi0gICAgICAg
IGlmIG91dHB1dCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGZzLndyaXRlX2JpbmFyeV9maWxl
KGFjdHVhbF9maWxlbmFtZSwgb3V0cHV0KQotICAgICAgICBpZiBleHBlY3RlZCBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIGZzLndyaXRlX2JpbmFyeV9maWxlKGV4cGVjdGVkX2ZpbGVuYW1lLCBl
eHBlY3RlZCkKLQotICAgIGRlZiB3cml0ZV9zdGRlcnIoc2VsZiwgZXJyb3IpOgotICAgICAgICBm
cyA9IHNlbGYuX3BvcnQuX2ZpbGVzeXN0ZW0KLSAgICAgICAgZmlsZW5hbWUgPSBzZWxmLm91dHB1
dF9maWxlbmFtZShzZWxmLkZJTEVOQU1FX1NVRkZJWF9TVERFUlIgKyAiLnR4dCIpCi0gICAgICAg
IGZzLm1heWJlX21ha2VfZGlyZWN0b3J5KGZzLmRpcm5hbWUoZmlsZW5hbWUpKQotICAgICAgICBm
cy53cml0ZV9iaW5hcnlfZmlsZShmaWxlbmFtZSwgZXJyb3IpCi0KLSAgICBkZWYgd3JpdGVfY3Jh
c2hfcmVwb3J0KHNlbGYsIGVycm9yKToKLSAgICAgICAgZnMgPSBzZWxmLl9wb3J0Ll9maWxlc3lz
dGVtCi0gICAgICAgIGZpbGVuYW1lID0gc2VsZi5vdXRwdXRfZmlsZW5hbWUoc2VsZi5GSUxFTkFN
RV9TVUZGSVhfQ1JBU0hfTE9HICsgIi50eHQiKQotICAgICAgICBmcy5tYXliZV9tYWtlX2RpcmVj
dG9yeShmcy5kaXJuYW1lKGZpbGVuYW1lKSkKLSAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0
IGJlIGdyYWJiaW5nIHByaXZhdGUgbWVtYmVycyBvZiBwb3J0LgotICAgICAgICBjcmFzaF9sb2dz
ID0gQ3Jhc2hMb2dzKGZzKQotICAgICAgICBsb2cgPSBjcmFzaF9sb2dzLmZpbmRfbmV3ZXN0X2xv
ZyhzZWxmLl9wb3J0LmRyaXZlcl9uYW1lKCkpCi0gICAgICAgICMgQ3Jhc2hMb2dzIGRvZXNuJ3Qg
c3VwcG9ydCBldmVyeSBwbGF0Zm9ybSwgc28gd2UgZmFsbCBiYWNrIHRvCi0gICAgICAgICMgaW5j
bHVkaW5nIHRoZSBzdGRlcnIgb3V0cHV0LCB3aGljaCBpcyBhZG1pdHRlZGx5IHNvbWV3aGF0IHJl
ZHVuZGFudC4KLSAgICAgICAgZnMud3JpdGVfdGV4dF9maWxlKGZpbGVuYW1lLCBsb2cgaWYgbG9n
IGVsc2UgZXJyb3IpCi0KLSAgICBkZWYgd3JpdGVfdGV4dF9maWxlcyhzZWxmLCBhY3R1YWxfdGV4
dCwgZXhwZWN0ZWRfdGV4dCk6Ci0gICAgICAgIHNlbGYud3JpdGVfb3V0cHV0X2ZpbGVzKCIudHh0
IiwgYWN0dWFsX3RleHQsIGV4cGVjdGVkX3RleHQpCi0KLSAgICBkZWYgY3JlYXRlX3RleHRfZGlm
Zl9hbmRfd3JpdGVfcmVzdWx0KHNlbGYsIGFjdHVhbF90ZXh0LCBleHBlY3RlZF90ZXh0KToKLSAg
ICAgICAgIyBGSVhNRTogVGhpcyBmdW5jdGlvbiBpcyBhY3R1YWxseSBkb2luZyB0aGUgZGlmZnMg
YXMgd2VsbCBhcyB3cml0aW5nIHJlc3VsdHMuCi0gICAgICAgICMgSXQgbWlnaHQgYmUgYmV0dGVy
IHRvIGV4dHJhY3QgY29kZSB3aGljaCBkb2VzICdkaWZmJyBhbmQgbWFrZSBpdCBhIHNlcGFyYXRl
IGZ1bmN0aW9uLgotICAgICAgICBpZiBub3QgYWN0dWFsX3RleHQgb3Igbm90IGV4cGVjdGVkX3Rl
eHQ6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBzZWxmLl9tYWtlX291dHB1dF9kaXJl
Y3RvcnkoKQotICAgICAgICBmaWxlX3R5cGUgPSAnLnR4dCcKLSAgICAgICAgYWN0dWFsX2ZpbGVu
YW1lID0gc2VsZi5vdXRwdXRfZmlsZW5hbWUoc2VsZi5GSUxFTkFNRV9TVUZGSVhfQUNUVUFMICsg
ZmlsZV90eXBlKQotICAgICAgICBleHBlY3RlZF9maWxlbmFtZSA9IHNlbGYub3V0cHV0X2ZpbGVu
YW1lKHNlbGYuRklMRU5BTUVfU1VGRklYX0VYUEVDVEVEICsgZmlsZV90eXBlKQotICAgICAgICBm
cyA9IHNlbGYuX3BvcnQuX2ZpbGVzeXN0ZW0KLSAgICAgICAgIyBXZSB0cmVhdCBkaWZmIG91dHB1
dCBhcyBiaW5hcnkuIERpZmYgb3V0cHV0IG1heSBjb250YWluIG11bHRpcGxlIGZpbGVzCi0gICAg
ICAgICMgaW4gY29uZmxpY3RpbmcgZW5jb2RpbmdzLgotICAgICAgICBkaWZmID0gc2VsZi5fcG9y
dC5kaWZmX3RleHQoZXhwZWN0ZWRfdGV4dCwgYWN0dWFsX3RleHQsIGV4cGVjdGVkX2ZpbGVuYW1l
LCBhY3R1YWxfZmlsZW5hbWUpCi0gICAgICAgIGRpZmZfZmlsZW5hbWUgPSBzZWxmLm91dHB1dF9m
aWxlbmFtZShzZWxmLkZJTEVOQU1FX1NVRkZJWF9ESUZGICsgZmlsZV90eXBlKQotICAgICAgICBm
cy53cml0ZV9iaW5hcnlfZmlsZShkaWZmX2ZpbGVuYW1lLCBkaWZmKQotCi0gICAgICAgICMgU2hl
bGwgb3V0IHRvIHdkaWZmIHRvIGdldCBjb2xvcmVkIGlubGluZSBkaWZmcy4KLSAgICAgICAgd2Rp
ZmYgPSBzZWxmLl9wb3J0LndkaWZmX3RleHQoZXhwZWN0ZWRfZmlsZW5hbWUsIGFjdHVhbF9maWxl
bmFtZSkKLSAgICAgICAgd2RpZmZfZmlsZW5hbWUgPSBzZWxmLm91dHB1dF9maWxlbmFtZShzZWxm
LkZJTEVOQU1FX1NVRkZJWF9XRElGRikKLSAgICAgICAgZnMud3JpdGVfYmluYXJ5X2ZpbGUod2Rp
ZmZfZmlsZW5hbWUsIHdkaWZmKQotCi0gICAgICAgICMgVXNlIFdlYktpdCdzIFByZXR0eVBhdGNo
LnJiIHRvIGdldCBhbiBIVE1MIGRpZmYuCi0gICAgICAgIHByZXR0eV9wYXRjaCA9IHNlbGYuX3Bv
cnQucHJldHR5X3BhdGNoX3RleHQoZGlmZl9maWxlbmFtZSkKLSAgICAgICAgcHJldHR5X3BhdGNo
X2ZpbGVuYW1lID0gc2VsZi5vdXRwdXRfZmlsZW5hbWUoc2VsZi5GSUxFTkFNRV9TVUZGSVhfUFJF
VFRZX1BBVENIKQotICAgICAgICBmcy53cml0ZV9iaW5hcnlfZmlsZShwcmV0dHlfcGF0Y2hfZmls
ZW5hbWUsIHByZXR0eV9wYXRjaCkKLQotICAgIGRlZiB3cml0ZV9hdWRpb19maWxlcyhzZWxmLCBh
Y3R1YWxfYXVkaW8sIGV4cGVjdGVkX2F1ZGlvKToKLSAgICAgICAgc2VsZi53cml0ZV9vdXRwdXRf
ZmlsZXMoJy53YXYnLCBhY3R1YWxfYXVkaW8sIGV4cGVjdGVkX2F1ZGlvKQotCi0gICAgZGVmIHdy
aXRlX2ltYWdlX2ZpbGVzKHNlbGYsIGFjdHVhbF9pbWFnZSwgZXhwZWN0ZWRfaW1hZ2UpOgotICAg
ICAgICBzZWxmLndyaXRlX291dHB1dF9maWxlcygnLnBuZycsIGFjdHVhbF9pbWFnZSwgZXhwZWN0
ZWRfaW1hZ2UpCi0KLSAgICBkZWYgd3JpdGVfaW1hZ2VfZGlmZl9maWxlcyhzZWxmLCBpbWFnZV9k
aWZmKToKLSAgICAgICAgZGlmZl9maWxlbmFtZSA9IHNlbGYub3V0cHV0X2ZpbGVuYW1lKHNlbGYu
RklMRU5BTUVfU1VGRklYX0lNQUdFX0RJRkYpCi0gICAgICAgIGZzID0gc2VsZi5fcG9ydC5fZmls
ZXN5c3RlbQotICAgICAgICBmcy53cml0ZV9iaW5hcnlfZmlsZShkaWZmX2ZpbGVuYW1lLCBpbWFn
ZV9kaWZmKQotCi0gICAgICAgIGRpZmZzX2h0bWxfZmlsZW5hbWUgPSBzZWxmLm91dHB1dF9maWxl
bmFtZShzZWxmLkZJTEVOQU1FX1NVRkZJWF9JTUFHRV9ESUZGU19IVE1MKQotICAgICAgICAjIEZJ
WE1FOiBvbGQtcnVuLXdlYmtpdC10ZXN0cyBzaG93cyB0aGUgZGlmZiBwZXJjZW50YWdlIGFzIHRo
ZSB0ZXh0IGNvbnRlbnRzIG9mIHRoZSAiZGlmZiIgbGluay4KLSAgICAgICAgIyBGSVhNRTogb2xk
LXJ1bi13ZWJraXQtdGVzdHMgaW5jbHVkZSBhIGxpbmsgdG8gdGhlIHRlc3QgZmlsZS4KLSAgICAg
ICAgaHRtbCA9ICIiIjwhRE9DVFlQRSBIVE1MPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT4lKHRp
dGxlKXM8L3RpdGxlPgotPHN0eWxlPi5sYWJlbHtmb250LXdlaWdodDpib2xkfTwvc3R5bGU+Ci08
L2hlYWQ+Ci08Ym9keT4KLURpZmZlcmVuY2UgYmV0d2VlbiBpbWFnZXM6IDxhIGhyZWY9IiUoZGlm
Zl9maWxlbmFtZSlzIj5kaWZmPC9hPjxicj4KLTxkaXYgY2xhc3M9aW1hZ2VUZXh0PjwvZGl2Pgot
PGRpdiBjbGFzcz1pbWFnZUNvbnRhaW5lciBkYXRhLXByZWZpeD0iJShwcmVmaXgpcyI+TG9hZGlu
Zy4uLjwvZGl2PgotPHNjcmlwdD4KLShmdW5jdGlvbigpIHsKLSAgICB2YXIgcHJlbG9hZGVkSW1h
Z2VDb3VudCA9IDA7Ci0gICAgZnVuY3Rpb24gcHJlbG9hZENvbXBsZXRlKCkgewotICAgICAgICAr
K3ByZWxvYWRlZEltYWdlQ291bnQ7Ci0gICAgICAgIGlmIChwcmVsb2FkZWRJbWFnZUNvdW50IDwg
MikKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdG9nZ2xlSW1hZ2VzKCk7Ci0gICAgICAg
IHNldEludGVydmFsKHRvZ2dsZUltYWdlcywgMjAwMCkKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBw
cmVsb2FkSW1hZ2UodXJsKSB7Ci0gICAgICAgIGltYWdlID0gbmV3IEltYWdlKCk7Ci0gICAgICAg
IGltYWdlLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBwcmVsb2FkQ29tcGxldGUpOwotICAgICAg
ICBpbWFnZS5zcmMgPSB1cmw7Ci0gICAgICAgIHJldHVybiBpbWFnZTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiB0b2dnbGVJbWFnZXMoKSB7Ci0gICAgICAgIGlmICh0ZXh0LnRleHRDb250ZW50ID09
ICdFeHBlY3RlZCBJbWFnZScpIHsKLSAgICAgICAgICAgIHRleHQudGV4dENvbnRlbnQgPSAnQWN0
dWFsIEltYWdlJzsKLSAgICAgICAgICAgIGNvbnRhaW5lci5yZXBsYWNlQ2hpbGQoYWN0dWFsSW1h
Z2UsIGNvbnRhaW5lci5maXJzdENoaWxkKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IHRleHQudGV4dENvbnRlbnQgPSAnRXhwZWN0ZWQgSW1hZ2UnOwotICAgICAgICAgICAgY29udGFp
bmVyLnJlcGxhY2VDaGlsZChleHBlY3RlZEltYWdlLCBjb250YWluZXIuZmlyc3RDaGlsZCk7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICB2YXIgdGV4dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
Jy5pbWFnZVRleHQnKTsKLSAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cignLmltYWdlQ29udGFpbmVyJyk7Ci0gICAgdmFyIGFjdHVhbEltYWdlID0gcHJlbG9hZEltYWdl
KGNvbnRhaW5lci5nZXRBdHRyaWJ1dGUoJ2RhdGEtcHJlZml4JykgKyAnLWFjdHVhbC5wbmcnKTsK
LSAgICB2YXIgZXhwZWN0ZWRJbWFnZSA9IHByZWxvYWRJbWFnZShjb250YWluZXIuZ2V0QXR0cmli
dXRlKCdkYXRhLXByZWZpeCcpICsgJy1leHBlY3RlZC5wbmcnKTsKLX0pKCk7Ci08L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KLSIiIiAlIHsKLSAgICAgICAgICAgICd0aXRsZSc6IHNlbGYuX3Rl
c3RfbmFtZSwKLSAgICAgICAgICAgICdkaWZmX2ZpbGVuYW1lJzogc2VsZi5fb3V0cHV0X3Rlc3Ru
YW1lKHNlbGYuRklMRU5BTUVfU1VGRklYX0lNQUdFX0RJRkYpLAotICAgICAgICAgICAgJ3ByZWZp
eCc6IHNlbGYuX291dHB1dF90ZXN0bmFtZSgnJyksCi0gICAgICAgIH0KLSAgICAgICAgIyBGSVhN
RTogVGhpcyBzZWVtcyBsaWtlIGEgdGV4dCBmaWxlLCBub3QgYSBiaW5hcnkgZmlsZS4KLSAgICAg
ICAgc2VsZi5fcG9ydC5fZmlsZXN5c3RlbS53cml0ZV9iaW5hcnlfZmlsZShkaWZmc19odG1sX2Zp
bGVuYW1lLCBodG1sKQotCi0gICAgZGVmIGNvcHlfZmlsZShzZWxmLCBzcmNfZmlsZXBhdGgpOgot
ICAgICAgICBmcyA9IHNlbGYuX3BvcnQuX2ZpbGVzeXN0ZW0KLSAgICAgICAgYXNzZXJ0IGZzLmV4
aXN0cyhzcmNfZmlsZXBhdGgpLCAnc3JjX2ZpbGVwYXRoOiAlcycgJSBzcmNfZmlsZXBhdGgKLSAg
ICAgICAgZHN0X2ZpbGVwYXRoID0gZnMuam9pbihzZWxmLl9yb290X291dHB1dF9kaXIsIHNlbGYu
X3BvcnQucmVsYXRpdmVfdGVzdF9maWxlbmFtZShzcmNfZmlsZXBhdGgpKQotICAgICAgICBzZWxm
Ll9tYWtlX291dHB1dF9kaXJlY3RvcnkoKQotICAgICAgICBmcy5jb3B5ZmlsZShzcmNfZmlsZXBh
dGgsIGRzdF9maWxlcGF0aCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy9yZWJhc2VsaW5lLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lLnB5CShyZXZpc2lvbiAxMDA1NzUpCisrKyBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZS5weQkod29ya2luZyBjb3B5
KQpAQCAtMzcsNyArMzcsNyBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVpbGRib3QgaW1w
b3J0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQubGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0IExh
eW91dFRlc3RSZXN1bHRzCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGlt
cG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnVzZXIgaW1wb3J0
IFVzZXIKLWZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmxheW91dF9wYWNrYWdlLnRlc3RfcmVz
dWx0X3dyaXRlciBpbXBvcnQgVGVzdFJlc3VsdFdyaXRlcgorZnJvbSB3ZWJraXRweS5sYXlvdXRf
dGVzdHMuY29udHJvbGxlcnMudGVzdF9yZXN1bHRfd3JpdGVyIGltcG9ydCBUZXN0UmVzdWx0V3Jp
dGVyCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfZmFpbHVy
ZXMKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2V4cGVjdGF0aW9ucyBp
bXBvcnQgVGVzdEV4cGVjdGF0aW9ucwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBp
bXBvcnQgYnVpbGRlcnMK
</data>
<flag name="review"
          id="114482"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>