<?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>137904</bug_id>
          
          <creation_ts>2014-10-20 17:39:48 -0700</creation_ts>
          <short_desc>PatchAnalysisTask._test_patch() needs refactoring</short_desc>
          <delta_ts>2014-10-22 15:39:37 -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>Tools / Tests</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="Jake Nielsen">jake.nielsen.webkit</reporter>
          <assigned_to name="Jake Nielsen">jake.nielsen.webkit</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>glenn</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1043031</commentid>
    <comment_count>0</comment_count>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-20 17:39:48 -0700</bug_when>
    <thetext>As it stands, there are many special cases and mystifying helper objects.
The special cases should be organized more uniformly, and the mystifying helper objects should be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043334</commentid>
    <comment_count>1</comment_count>
      <attachid>240236</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-21 18:36:25 -0700</bug_when>
    <thetext>Created attachment 240236
Refactoring!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043463</commentid>
    <comment_count>2</comment_count>
      <attachid>240236</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-22 09:50:38 -0700</bug_when>
    <thetext>Comment on attachment 240236
Refactoring!

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

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:191
&gt; +        if (len(results.failing_tests()) - len(self._clean_tree_results.failing_tests())) &lt;= 5:
&gt; +            return False

I think that this code would benefit from somewhat more comments.

E.g., here we could explain that the clean tree has so many failures that we can&apos;t be certain if having a few more means that the patch introduces a regression.

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:245
&gt; -        return False
&gt; +        return True

I became confused here. Perhaps the best path forward is to walk over the patch line by line in person - or maybe you can get a review from someone who really knows Python and can read it more easily.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043513</commentid>
    <comment_count>3</comment_count>
      <attachid>240285</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-22 11:45:09 -0700</bug_when>
    <thetext>Created attachment 240285
Adds some comments, and fixes a bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043531</commentid>
    <comment_count>4</comment_count>
      <attachid>240285</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-22 13:04:36 -0700</bug_when>
    <thetext>Comment on attachment 240285
Adds some comments, and fixes a bug

Clearing flags on attachment: 240285

Committed r175063: &lt;http://trac.webkit.org/changeset/175063&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043532</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-22 13:04:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043566</commentid>
    <comment_count>6</comment_count>
      <attachid>240298</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-22 15:38:48 -0700</bug_when>
    <thetext>Created attachment 240298
Adds FIXMEs to tests, and sets the test expectations to agree with current behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043567</commentid>
    <comment_count>7</comment_count>
      <attachid>240298</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-22 15:39:37 -0700</bug_when>
    <thetext>Comment on attachment 240298
Adds FIXMEs to tests, and sets the test expectations to agree with current behavior.

Commented on the wrong bug..</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240236</attachid>
            <date>2014-10-21 18:36:25 -0700</date>
            <delta_ts>2014-10-22 11:45:09 -0700</delta_ts>
            <desc>Refactoring!</desc>
            <filename>0001-PatchAnalysisTask._test_patch-needs-refactoring.patch</filename>
            <type>text/plain</type>
            <size>36259</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSAzMzU4OGYxNmZmMmEyNTEzODllMGJjZDgyYThiNGMyOTczZTE1ZjVhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDIxIE9jdCAyMDE0IDE4OjMzOjAxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
UGF0Y2hBbmFseXNpc1Rhc2suX3Rlc3RfcGF0Y2goKSBuZWVkcyByZWZhY3RvcmluZwogaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzkwNAoKUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgoqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNr
X3VuaXR0ZXN0LnB5OgpGaXhlcyBzZXZlcmFsIHNtYWxsIGJ1Z3MsIGFuZCBtYWtlcyBtaW5vciBj
aGFuZ2VzIHRvIGFjY29tb2RhdGUgdGhlCmNoYW5nZXMgaW4gUGF0Y2hBbmFseXNpc1Rhc2suCihN
b2NrQ29tbWl0UXVldWUucmVmZXRjaF9wYXRjaCk6CihNb2NrQ29tbWl0UXVldWUudGVzdF9yZXN1
bHRzKToKKHRlc3RfZmxha3lfdGVzdF9mYWlsdXJlKToKKHRlc3RfZmFpbGVkX2FyY2hpdmUpOgoo
dGVzdF92ZXJ5X3JlZF90cmVlX3JldHJ5KToKKF9leHBlY3RfdmFsaWRhdGUuTW9ja0RlbGVnYXRl
LnJlZmV0Y2hfcGF0Y2gpOgooTW9ja0NvbW1pdFF1ZXVlLmV4cGVjdGVkX2ZhaWx1cmVzKTogRGVs
ZXRlZC4KKF9leHBlY3RfdmFsaWRhdGUuTW9ja0RlbGVnYXRlLmV4cGVjdGVkX2ZhaWx1cmVzKTog
RGVsZXRlZC4KKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXMucHk6
IFJlbW92ZWQuCiogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzX3Vu
aXR0ZXN0LnB5OiBSZW1vdmVkLgoqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFs
eXNpc3Rhc2sucHk6ClJlbW92ZXMgdGhlIHVuZXhwZWN0ZWRfZmFpbHVyZXMgbWVtYmVyLCBhZGRz
IHRoZSBfY2xlYW5fdHJlZV9yZXN1bHRzCm1lbWJlciwgYWRkcyBhIGhlbHBlciBmdW5jdGlvbiBm
b3IgX3Rlc3RfcGF0Y2gsIGFuZCByZWZhY3RvcnMKX3Rlc3RfcGF0Y2ggdG8gYmUgbW9yZSByZWFk
YWJsZS4KKFBhdGNoQW5hbHlzaXNUYXNrLl9faW5pdF9fKToKKFBhdGNoQW5hbHlzaXNUYXNrLl9j
b250aW51ZV90ZXN0aW5nX3BhdGNoX3RoYXRfZXhjZWVkZWRfZmFpbHVyZV9saW1pdF9vbl9maXJz
dF9vcl9zZWNvbmRfdHJ5KToKKFBhdGNoQW5hbHlzaXNUYXNrLl90ZXN0X3BhdGNoKToKKFBhdGNo
QW5hbHlzaXNUYXNrLnJlc3VsdHNfZnJvbV90ZXN0X3J1bl93aXRob3V0X3BhdGNoKToKKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5OgpSZW1vdmVz
IEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtJ3MgZGVwZW5kYW5jeSBvbiBFeHBlY3RlZEZhaWx1
cmVzLgooQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYmVnaW5fd29ya19xdWV1ZSk6CihBYnN0
cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5fZmFpbGluZ190ZXN0c19tZXNzYWdlKToKKEFic3RyYWN0
RWFybHlXYXJuaW5nU3lzdGVtLmNvbW1hbmRfZmFpbGVkKToKKEFic3RyYWN0RWFybHlXYXJuaW5n
U3lzdGVtLmV4cGVjdGVkX2ZhaWx1cmVzKTogRGVsZXRlZC4KKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5OgpNYWtlcyBjaGFuZ2Vz
IHRvIGFjY29tb2RhdGUgdGhlIGNoYW5nZXMgbWFkZSB0byBQYXRjaEFuYWx5c2lzVGFzay4KKEFi
c3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZhaWxpbmdfdGVzdHNfbWVzc2FnZSk6
CiogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3BlcmZhbGl6ZXIucHk6ClJlbW92ZXMg
UGVyZmFsaXplcidzIGRlcGVuZGFuY3kgb24gRXhwZWN0ZWRGYWlsdXJlcy4KKFBlcmZhbGl6ZXJU
YXNrLnJlZmV0Y2hfcGF0Y2gpOgooUGVyZmFsaXplclRhc2suZXhwZWN0ZWRfZmFpbHVyZXMpOiBE
ZWxldGVkLgoqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHk6ClJlbW92
ZXMgQ29tbWl0UXVldWUncyBkZXBlbmRhbmN5IG9uIEV4cGVjdGVkRmFpbHVyZXMsIGFuZCBhZGRz
IGFuCmluaXRpYWxpemVyIHRvIGFsbG93IGZvciBtb2NrIGluamVjdGlvbi4KKENvbW1pdFF1ZXVl
Ll9faW5pdF9fKToKKENvbW1pdFF1ZXVlLmJlZ2luX3dvcmtfcXVldWUpOgooQ29tbWl0UXVldWUu
cHJvY2Vzc193b3JrX2l0ZW0pOgooQ29tbWl0UXVldWUuX2ZhaWxpbmdfdGVzdHNfbWVzc2FnZSk6
CiogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weToKUmVt
b3ZlcyBkZXBlbmRhbmN5IG9uIEV4cGVjdGVkRmFpbHVyZXMsIGFuZCBpbnN0ZWFkIHVzZXMgbW9j
awppbmplY3Rpb24uCihNb2NrQ29tbWl0UXVldWVUYXNrKToKKE1vY2tDb21taXRRdWV1ZVRhc2su
cmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuKToKKE1vY2tDb21taXRRdWV1ZVRhc2sucmVzdWx0
c19mcm9tX3Rlc3RfcnVuX3dpdGhvdXRfcGF0Y2gpOgoobW9ja19ydW5fd2Via2l0X3BhdGNoKToK
LS0tCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
IDU2ICsrKysrKysrKysrKysKIC4uLi93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tf
dW5pdHRlc3QucHkgIHwgMTkgKy0tLS0KIC4uLi9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4
cGVjdGVkZmFpbHVyZXMucHkgIHwgNjAgLS0tLS0tLS0tLS0tLS0KIC4uLi93ZWJraXRweS90b29s
L2JvdC9leHBlY3RlZGZhaWx1cmVzX3VuaXR0ZXN0LnB5IHwgOTUgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogLi4uL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkg
fCA1MCArKysrKysrLS0tLS0KIC4uLi93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2Fybmlu
Z3N5c3RlbS5weSAgIHwgMTEgKystCiAuLi4vdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0
ZW1fdW5pdHRlc3QucHkgICB8ICA5ICstCiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvcGVyZmFsaXplci5weSB8ICA0IC0KIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9xdWV1ZXMucHkgICAgIHwgMTQgKysrLQogLi4uL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvcXVldWVzX3VuaXR0ZXN0LnB5ICAgICAgfCAxMyArKy0KIDEwIGZpbGVzIGNoYW5nZWQsIDEy
MSBpbnNlcnRpb25zKCspLCAyMTAgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzLnB5CiBkZWxldGUg
bW9kZSAxMDA2NDQgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1
cmVzX3VuaXR0ZXN0LnB5CgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDJiYTc3NmYuLmVmYWE3Y2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAorMjAxNC0xMC0yMSAgSmFr
ZSBOaWVsc2VuICA8amFjb2JfbmllbHNlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUGF0Y2hBbmFs
eXNpc1Rhc2suX3Rlc3RfcGF0Y2goKSBuZWVkcyByZWZhY3RvcmluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3OTA0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weToKKyAgICAgICAgRml4ZXMgc2V2ZXJhbCBz
bWFsbCBidWdzLCBhbmQgbWFrZXMgbWlub3IgY2hhbmdlcyB0byBhY2NvbW9kYXRlIHRoZQorICAg
ICAgICBjaGFuZ2VzIGluIFBhdGNoQW5hbHlzaXNUYXNrLgorICAgICAgICAoTW9ja0NvbW1pdFF1
ZXVlLnJlZmV0Y2hfcGF0Y2gpOgorICAgICAgICAoTW9ja0NvbW1pdFF1ZXVlLnRlc3RfcmVzdWx0
cyk6CisgICAgICAgICh0ZXN0X2ZsYWt5X3Rlc3RfZmFpbHVyZSk6CisgICAgICAgICh0ZXN0X2Zh
aWxlZF9hcmNoaXZlKToKKyAgICAgICAgKHRlc3RfdmVyeV9yZWRfdHJlZV9yZXRyeSk6CisgICAg
ICAgIChfZXhwZWN0X3ZhbGlkYXRlLk1vY2tEZWxlZ2F0ZS5yZWZldGNoX3BhdGNoKToKKyAgICAg
ICAgKE1vY2tDb21taXRRdWV1ZS5leHBlY3RlZF9mYWlsdXJlcyk6IERlbGV0ZWQuCisgICAgICAg
IChfZXhwZWN0X3ZhbGlkYXRlLk1vY2tEZWxlZ2F0ZS5leHBlY3RlZF9mYWlsdXJlcyk6IERlbGV0
ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVz
LnB5OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0
ZWRmYWlsdXJlc191bml0dGVzdC5weTogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5OgorICAgICAgICBSZW1vdmVzIHRoZSB1
bmV4cGVjdGVkX2ZhaWx1cmVzIG1lbWJlciwgYWRkcyB0aGUgX2NsZWFuX3RyZWVfcmVzdWx0cwor
ICAgICAgICBtZW1iZXIsIGFkZHMgYSBoZWxwZXIgZnVuY3Rpb24gZm9yIF90ZXN0X3BhdGNoLCBh
bmQgcmVmYWN0b3JzCisgICAgICAgIF90ZXN0X3BhdGNoIHRvIGJlIG1vcmUgcmVhZGFibGUuCisg
ICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fX2luaXRfXyk6CisgICAgICAgIChQYXRjaEFuYWx5
c2lzVGFzay5fY29udGludWVfdGVzdGluZ19wYXRjaF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGlt
aXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3RyeSk6CisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5f
dGVzdF9wYXRjaCk6CisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5yZXN1bHRzX2Zyb21fdGVz
dF9ydW5fd2l0aG91dF9wYXRjaCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weToKKyAgICAgICAgUmVtb3ZlcyBBYnN0cmFjdEVh
cmx5V2FybmluZ1N5c3RlbSdzIGRlcGVuZGFuY3kgb24gRXhwZWN0ZWRGYWlsdXJlcy4gCisgICAg
ICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5iZWdpbl93b3JrX3F1ZXVlKToKKyAgICAg
ICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9mYWlsaW5nX3Rlc3RzX21lc3NhZ2UpOgor
ICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uY29tbWFuZF9mYWlsZWQpOgorICAg
ICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uZXhwZWN0ZWRfZmFpbHVyZXMpOiBEZWxl
dGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5p
bmdzeXN0ZW1fdW5pdHRlc3QucHk6CisgICAgICAgIE1ha2VzIGNoYW5nZXMgdG8gYWNjb21vZGF0
ZSB0aGUgY2hhbmdlcyBtYWRlIHRvIFBhdGNoQW5hbHlzaXNUYXNrLgorICAgICAgICAoQWJzdHJh
Y3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmFpbGluZ190ZXN0c19tZXNzYWdlKToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcGVyZmFsaXplci5weToKKyAg
ICAgICAgUmVtb3ZlcyBQZXJmYWxpemVyJ3MgZGVwZW5kYW5jeSBvbiBFeHBlY3RlZEZhaWx1cmVz
LiAKKyAgICAgICAgKFBlcmZhbGl6ZXJUYXNrLnJlZmV0Y2hfcGF0Y2gpOgorICAgICAgICAoUGVy
ZmFsaXplclRhc2suZXhwZWN0ZWRfZmFpbHVyZXMpOiBEZWxldGVkLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHk6CisgICAgICAgIFJlbW92ZXMgQ29t
bWl0UXVldWUncyBkZXBlbmRhbmN5IG9uIEV4cGVjdGVkRmFpbHVyZXMsIGFuZCBhZGRzIGFuCisg
ICAgICAgIGluaXRpYWxpemVyIHRvIGFsbG93IGZvciBtb2NrIGluamVjdGlvbi4KKyAgICAgICAg
KENvbW1pdFF1ZXVlLl9faW5pdF9fKToKKyAgICAgICAgKENvbW1pdFF1ZXVlLmJlZ2luX3dvcmtf
cXVldWUpOgorICAgICAgICAoQ29tbWl0UXVldWUucHJvY2Vzc193b3JrX2l0ZW0pOgorICAgICAg
ICAoQ29tbWl0UXVldWUuX2ZhaWxpbmdfdGVzdHNfbWVzc2FnZSk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weToKKyAgICAgICAgUmVt
b3ZlcyBkZXBlbmRhbmN5IG9uIEV4cGVjdGVkRmFpbHVyZXMsIGFuZCBpbnN0ZWFkIHVzZXMgbW9j
aworICAgICAgICBpbmplY3Rpb24uCisgICAgICAgIChNb2NrQ29tbWl0UXVldWVUYXNrKToKKyAg
ICAgICAgKE1vY2tDb21taXRRdWV1ZVRhc2sucmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuKToK
KyAgICAgICAgKE1vY2tDb21taXRRdWV1ZVRhc2sucmVzdWx0c19mcm9tX3Rlc3RfcnVuX3dpdGhv
dXRfcGF0Y2gpOgorICAgICAgICAobW9ja19ydW5fd2Via2l0X3BhdGNoKToKKwogMjAxNC0xMC0y
MCAgVGFuYXkgQyAgPHRhbmF5LmNAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0dUS11bTWluaWJy
b3dzZXJdIEVzY2FwZSBrZXkgZG9lcyBub3QgaGlkZSB0aGUgc2VhcmNoIGJveApkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191
bml0dGVzdC5weQppbmRleCBkYzRlM2QzLi5lYzA1MTE5IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5w
eQpAQCAtMzgsNyArMzgsNiBAQCBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1w
b3J0IHRlc3RfcmVzdWx0cwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9y
dCB0ZXN0X2ZhaWx1cmVzCiBmcm9tIHdlYmtpdHB5LnRoaXJkcGFydHkubW9jayBpbXBvcnQgTW9j
awogZnJvbSB3ZWJraXRweS50b29sLmJvdC5jb21taXRxdWV1ZXRhc2sgaW1wb3J0ICoKLWZyb20g
d2Via2l0cHkudG9vbC5ib3QuZXhwZWN0ZWRmYWlsdXJlcyBpbXBvcnQgRXhwZWN0ZWRGYWlsdXJl
cwogZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrVG9vbAogCiBfbG9nID0g
bG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCkBAIC02OSwxMSArNjgsOCBAQCBjbGFzcyBNb2Nr
Q29tbWl0UXVldWUoQ29tbWl0UXVldWVUYXNrRGVsZWdhdGUpOgogICAgIGRlZiByZWZldGNoX3Bh
dGNoKHNlbGYsIHBhdGNoKToKICAgICAgICAgcmV0dXJuIHBhdGNoCiAKLSAgICBkZWYgZXhwZWN0
ZWRfZmFpbHVyZXMoc2VsZik6Ci0gICAgICAgIHJldHVybiBFeHBlY3RlZEZhaWx1cmVzKCkKLQog
ICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBMYXlvdXRUZXN0UmVz
dWx0cyh0ZXN0X3Jlc3VsdHM9W10sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PVRydWUp
CisgICAgICAgIHJldHVybiBMYXlvdXRUZXN0UmVzdWx0cyh0ZXN0X3Jlc3VsdHM9W10sIGRpZF9l
eGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PUZhbHNlKQogCiAgICAgZGVmIHJlcG9ydF9mbGFreV90
ZXN0cyhzZWxmLCBwYXRjaCwgZmxha3lfcmVzdWx0cywgcmVzdWx0c19hcmNoaXZlKToKICAgICAg
ICAgZmxha3lfdGVzdHMgPSBbcmVzdWx0LnRlc3RfbmFtZSBmb3IgcmVzdWx0IGluIGZsYWt5X3Jl
c3VsdHNdCkBAIC0yODEsNyArMjc3LDcgQEAgY29tbWFuZF9mYWlsZWQ6IGZhaWx1cmVfbWVzc2Fn
ZT0nVW5hYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2gnIHNjcmlwdF9lcnJvcj0nTU8KICAgICAg
ICAgXSkKICAgICAgICAgIyBDb21taXRRdWV1ZVRhc2sgd2lsbCBvbmx5IHJlcG9ydCBmbGFreSB0
ZXN0cyBpZiB3ZSBzdWNjZXNzZnVsbHkgcGFyc2VkCiAgICAgICAgICMgcmVzdWx0cy5qc29uIGFu
ZCByZXR1cm5lZCBhIExheW91dFRlc3RSZXN1bHRzIG9iamVjdCwgc28gd2UgZmFrZSBvbmUuCi0g
ICAgICAgIGNvbW1pdF9xdWV1ZS50ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6IExheW91dFRlc3RSZXN1
bHRzKHRlc3RfcmVzdWx0cz1bXSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9VHJ1ZSkK
KyAgICAgICAgY29tbWl0X3F1ZXVlLnRlc3RfcmVzdWx0cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJl
c3VsdHModGVzdF9yZXN1bHRzPVtdLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1GYWxz
ZSkKICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiInJ1bl93ZWJraXRfcGF0Y2g6IFsnY2xlYW4n
XQogY29tbWFuZF9wYXNzZWQ6IHN1Y2Nlc3NfbWVzc2FnZT0nQ2xlYW5lZCB3b3JraW5nIGRpcmVj
dG9yeScgcGF0Y2g9JzEwMDAwJwogcnVuX3dlYmtpdF9wYXRjaDogWyd1cGRhdGUnXQpAQCAtMzEy
LDcgKzMwOCw3IEBAIGNvbW1hbmRfcGFzc2VkOiBzdWNjZXNzX21lc3NhZ2U9J0xhbmRlZCBwYXRj
aCcgcGF0Y2g9JzEwMDAwJwogICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgIFNjcmlwdEVy
cm9yKCJNT0NLIHRlc3RzIGZhaWx1cmUiKSwKICAgICAgICAgXSkKLSAgICAgICAgY29tbWl0X3F1
ZXVlLnRlc3RfcmVzdWx0cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJlc3VsdHModGVzdF9yZXN1bHRz
PVtdLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1UcnVlKQorICAgICAgICBjb21taXRf
cXVldWUudGVzdF9yZXN1bHRzID0gbGFtYmRhOiBMYXlvdXRUZXN0UmVzdWx0cyh0ZXN0X3Jlc3Vs
dHM9W10sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PUZhbHNlKQogICAgICAgICAjIEl0
J3MgcG9zc2libGUgZGVsZWdhdGUgdG8gZmFpbCB0byBhcmNoaXZlIGxheW91dCB0ZXN0cywgZG9u
J3QgdHJ5IHRvIHJlcG9ydAogICAgICAgICAjIGZsYWt5IHRlc3RzIHdoZW4gdGhhdCBoYXBwZW5z
LgogICAgICAgICBjb21taXRfcXVldWUuYXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyA9IGxhbWJk
YSBwYXRjaDogTm9uZQpAQCAtNDA5LDYgKzQwNSw3IEBAIGNvbW1hbmRfZmFpbGVkOiBmYWlsdXJl
X21lc3NhZ2U9J1BhdGNoIGRvZXMgbm90IHBhc3MgdGVzdHMnIHNjcmlwdF9lcnJvcj0nTU9DSyB0
CiBhcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzOiBwYXRjaD0nMTAwMDAnCiBydW5fd2Via2l0X3Bh
dGNoOiBbJ2J1aWxkLWFuZC10ZXN0JywgJy0tbm8tY2xlYW4nLCAnLS1uby11cGRhdGUnLCAnLS10
ZXN0JywgJy0tbm9uLWludGVyYWN0aXZlJ10KIGNvbW1hbmRfZmFpbGVkOiBmYWlsdXJlX21lc3Nh
Z2U9J1BhdGNoIGRvZXMgbm90IHBhc3MgdGVzdHMnIHNjcmlwdF9lcnJvcj0nTU9DSyB0ZXN0IGZh
aWx1cmUgYWdhaW4nIHBhdGNoPScxMDAwMCcKK2FyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHM6IHBh
dGNoPScxMDAwMCcKICIiIgogICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1U
cnVlKQogICAgICAgICBwYXRjaCA9IHRvb2wuYnVncy5mZXRjaF9hdHRhY2htZW50KDEwMDAwKQpA
QCAtNDk3LDEyICs0OTQsMTAgQEAgY29tbWFuZF9wYXNzZWQ6IHN1Y2Nlc3NfbWVzc2FnZT0nTGFu
ZGVkIHBhdGNoJyBwYXRjaD0nMTAwMDAnCiAgICAgICAgICAgICBOb25lLAogICAgICAgICAgICAg
Tm9uZSwKICAgICAgICAgICAgIFNjcmlwdEVycm9yKCJNT0NLIHRlc3QgZmFpbHVyZSIpLAotICAg
ICAgICAgICAgU2NyaXB0RXJyb3IoIk1PQ0sgdGVzdCBmYWlsdXJlIGFnYWluIiksCiAgICAgICAg
ICAgICBTY3JpcHRFcnJvcigiTU9DSyBjbGVhbiB0ZXN0IGZhaWx1cmUiKSwKICAgICAgICAgXSwg
WwogICAgICAgICAgICAgbG90c19vZl9mYWlsaW5nX3Rlc3RzLAogICAgICAgICAgICAgbG90c19v
Zl9mYWlsaW5nX3Rlc3RzLAotICAgICAgICAgICAgbG90c19vZl9mYWlsaW5nX3Rlc3RzLAogICAg
ICAgICBdKQogCiAgICAgICAgICMgVGVzdHMgYWx3YXlzIGZhaWwsIGFuZCByZXR1cm4gc28gbWFu
eSBmYWlsdXJlcyB0aGF0IHdlIGRvIG5vdApAQCAtNTIxLDkgKzUxNiw2IEBAIGNvbW1hbmRfcGFz
c2VkOiBzdWNjZXNzX21lc3NhZ2U9J0J1aWx0IHBhdGNoJyBwYXRjaD0nMTAwMDAnCiBydW5fd2Vi
a2l0X3BhdGNoOiBbJ2J1aWxkLWFuZC10ZXN0JywgJy0tbm8tY2xlYW4nLCAnLS1uby11cGRhdGUn
LCAnLS10ZXN0JywgJy0tbm9uLWludGVyYWN0aXZlJ10KIGNvbW1hbmRfZmFpbGVkOiBmYWlsdXJl
X21lc3NhZ2U9J1BhdGNoIGRvZXMgbm90IHBhc3MgdGVzdHMnIHNjcmlwdF9lcnJvcj0nTU9DSyB0
ZXN0IGZhaWx1cmUnIHBhdGNoPScxMDAwMCcKIGFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHM6IHBh
dGNoPScxMDAwMCcKLXJ1bl93ZWJraXRfcGF0Y2g6IFsnYnVpbGQtYW5kLXRlc3QnLCAnLS1uby1j
bGVhbicsICctLW5vLXVwZGF0ZScsICctLXRlc3QnLCAnLS1ub24taW50ZXJhY3RpdmUnXQotY29t
bWFuZF9mYWlsZWQ6IGZhaWx1cmVfbWVzc2FnZT0nUGF0Y2ggZG9lcyBub3QgcGFzcyB0ZXN0cycg
c2NyaXB0X2Vycm9yPSdNT0NLIHRlc3QgZmFpbHVyZSBhZ2FpbicgcGF0Y2g9JzEwMDAwJwotYXJj
aGl2ZV9sYXN0X3Rlc3RfcmVzdWx0czogcGF0Y2g9JzEwMDAwJwogcnVuX3dlYmtpdF9wYXRjaDog
WydidWlsZC1hbmQtdGVzdCcsICctLWZvcmNlLWNsZWFuJywgJy0tbm8tdXBkYXRlJywgJy0tYnVp
bGQnLCAnLS10ZXN0JywgJy0tbm9uLWludGVyYWN0aXZlJ10KIGNvbW1hbmRfZmFpbGVkOiBmYWls
dXJlX21lc3NhZ2U9J1VuYWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2ggKHRyZWUgaXMg
cmVkPyknIHNjcmlwdF9lcnJvcj0nTU9DSyBjbGVhbiB0ZXN0IGZhaWx1cmUnIHBhdGNoPScxMDAw
MCcKICIiIgpAQCAtNjA0LDkgKzU5Niw2IEBAIGNvbW1hbmRfZmFpbGVkOiBmYWlsdXJlX21lc3Nh
Z2U9J1VuYWJsZSB0byBsYW5kIHBhdGNoJyBzY3JpcHRfZXJyb3I9J01PQ0sgbGFuZCBmCiAgICAg
ICAgICAgICBkZWYgcmVmZXRjaF9wYXRjaChzZWxmLCBwYXRjaCk6CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHBhdGNoCiAKLSAgICAgICAgICAgIGRlZiBleHBlY3RlZF9mYWlsdXJlcyhzZWxmKToK
LSAgICAgICAgICAgICAgICByZXR1cm4gRXhwZWN0ZWRGYWlsdXJlcygpCi0KICAgICAgICAgdGFz
ayA9IENvbW1pdFF1ZXVlVGFzayhNb2NrRGVsZWdhdGUoKSwgcGF0Y2gpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwodGFzay52YWxpZGF0ZSgpLCBpc192YWxpZCkKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzLnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAxZTM0YzY4Li4wMDAwMDAwCi0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlcy5weQorKysgL2Rldi9udWxsCkBAIC0x
LDYwICswLDAgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBk
aXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0j
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0j
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWNsYXNzIEV4cGVjdGVkRmFpbHVyZXMo
b2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuX2ZhaWx1cmVz
ID0gc2V0KCkKLSAgICAgICAgc2VsZi5faXNfdHJ1c3R3b3J0aHkgPSBUcnVlCi0KLSAgICBAY2xh
c3NtZXRob2QKLSAgICBkZWYgX2hhc19mYWlsdXJlcyhjbHMsIHJlc3VsdHMpOgotICAgICAgICBy
ZXR1cm4gYm9vbChyZXN1bHRzIGFuZCByZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkKLQotICAgIEBj
bGFzc21ldGhvZAotICAgIGRlZiBfc2hvdWxkX3RydXN0KGNscywgcmVzdWx0cyk6Ci0gICAgICAg
IHJldHVybiBib29sKHJlc3VsdHMgYW5kIG5vdCByZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWls
dXJlX2xpbWl0KCkpCi0KLSAgICBkZWYgZmFpbHVyZXNfd2VyZV9leHBlY3RlZChzZWxmLCByZXN1
bHRzKToKLSAgICAgICAgaWYgbm90IHNlbGYuX2lzX3RydXN0d29ydGh5OgotICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCi0gICAgICAgIGlmIG5vdCBzZWxmLl9zaG91bGRfdHJ1c3QocmVzdWx0cyk6
Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgcmV0dXJuIHNldChyZXN1bHRzLmZh
aWxpbmdfdGVzdHMoKSkgPD0gc2VsZi5fZmFpbHVyZXMKLQotICAgIGRlZiB1bmV4cGVjdGVkX2Zh
aWx1cmVzX29ic2VydmVkKHNlbGYsIHJlc3VsdHMpOgotICAgICAgICBpZiBub3Qgc2VsZi5faXNf
dHJ1c3R3b3J0aHk6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBpZiBub3Qgc2Vs
Zi5faGFzX2ZhaWx1cmVzKHJlc3VsdHMpOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAg
ICAgcmV0dXJuIHNldChyZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkgLSBzZWxmLl9mYWlsdXJlcwot
Ci0gICAgZGVmIHVwZGF0ZShzZWxmLCByZXN1bHRzKToKLSAgICAgICAgaWYgcmVzdWx0czoKLSAg
ICAgICAgICAgIHNlbGYuX2ZhaWx1cmVzID0gc2V0KHJlc3VsdHMuZmFpbGluZ190ZXN0cygpKQot
ICAgICAgICAgICAgc2VsZi5faXNfdHJ1c3R3b3J0aHkgPSBzZWxmLl9zaG91bGRfdHJ1c3QocmVz
dWx0cykKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0
ZWRmYWlsdXJlc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qv
ZXhwZWN0ZWRmYWlsdXJlc191bml0dGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYTI3YTU0ZC4uMDAwMDAwMAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSw5NSArMCww
IEBACi0jIENvcHlyaWdodCAoYykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0
aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IHVuaXR0ZXN0Ci0KLWZyb20gd2Via2l0cHku
dG9vbC5ib3QuZXhwZWN0ZWRmYWlsdXJlcyBpbXBvcnQgRXhwZWN0ZWRGYWlsdXJlcwotCi0KLWNs
YXNzIE1vY2tSZXN1bHRzKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZhaWxpbmdf
dGVzdHM9W10sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PUZhbHNlKToKLSAgICAgICAg
c2VsZi5fZmFpbGluZ190ZXN0cyA9IGZhaWxpbmdfdGVzdHMKLSAgICAgICAgc2VsZi5fZGlkX2V4
Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQgPSBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdAot
Ci0gICAgZGVmIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KHNlbGYpOgotICAgICAgICBy
ZXR1cm4gc2VsZi5fZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQKLQotICAgIGRlZiBmYWls
aW5nX3Rlc3RzKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fZmFpbGluZ190ZXN0cwotCi0K
LWNsYXNzIEV4cGVjdGVkRmFpbHVyZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBkZWYg
X2Fzc2VydF9jYW5fdHJ1c3Qoc2VsZiwgcmVzdWx0cywgY2FuX3RydXN0KToKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChFeHBlY3RlZEZhaWx1cmVzLl9zaG91bGRfdHJ1c3QocmVzdWx0cyksIGNh
bl90cnVzdCkKLQotICAgIGRlZiB0ZXN0X2Nhbl90cnVzdF9yZXN1bHRzKHNlbGYpOgotICAgICAg
ICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0KE5vbmUsIEZhbHNlKQotICAgICAgICBzZWxmLl9hc3Nl
cnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9W10sIGRpZF9leGNlZWRfdGVz
dF9mYWlsdXJlX2xpbWl0PUZhbHNlKSwgVHJ1ZSkKLSAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90
cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3RzPVtdLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVy
ZV9saW1pdD1UcnVlKSwgRmFsc2UpCi0gICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9j
a1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bMV0sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0
PUZhbHNlKSwgVHJ1ZSkKLSAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVzdWx0
cyhmYWlsaW5nX3Rlc3RzPVsxXSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9VHJ1ZSks
IEZhbHNlKQotICAgICAgICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZhaWxp
bmdfdGVzdHM9WzEsIDJdLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1GYWxzZSksIFRy
dWUpCi0gICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190
ZXN0cz1bMSwgMl0sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PVRydWUpLCBGYWxzZSkK
LQotICAgIGRlZiBfYXNzZXJ0X2V4cGVjdGVkKHNlbGYsIGV4cGVjdGVkX2ZhaWx1cmVzLCBmYWls
dXJlcywgZXhwZWN0ZWQpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX2ZhaWx1
cmVzLmZhaWx1cmVzX3dlcmVfZXhwZWN0ZWQoTW9ja1Jlc3VsdHMoZmFpbHVyZXMpKSwgZXhwZWN0
ZWQpCi0KLSAgICBkZWYgdGVzdF9mYWlsdXJlc193ZXJlX2V4cGVjdGVkKHNlbGYpOgotICAgICAg
ICBmYWlsdXJlcyA9IEV4cGVjdGVkRmFpbHVyZXMoKQotICAgICAgICBmYWlsdXJlcy51cGRhdGUo
TW9ja1Jlc3VsdHMoWydmb28uaHRtbCddKSkKLSAgICAgICAgc2VsZi5fYXNzZXJ0X2V4cGVjdGVk
KGZhaWx1cmVzLCBbJ2Zvby5odG1sJ10sIFRydWUpCi0gICAgICAgIHNlbGYuX2Fzc2VydF9leHBl
Y3RlZChmYWlsdXJlcywgWydiYXIuaHRtbCddLCBGYWxzZSkKLSAgICAgICAgc2VsZi5fYXNzZXJ0
X2V4cGVjdGVkKGZhaWx1cmVzLCBbJ2Jhci5odG1sJywgJ2Zvby5odG1sJ10sIEZhbHNlKQotCi0g
ICAgICAgIGZhaWx1cmVzLnVwZGF0ZShNb2NrUmVzdWx0cyhbJ2Jhei5odG1sJ10pKQotICAgICAg
ICBzZWxmLl9hc3NlcnRfZXhwZWN0ZWQoZmFpbHVyZXMsIFsnYmF6Lmh0bWwnXSwgVHJ1ZSkKLSAg
ICAgICAgc2VsZi5fYXNzZXJ0X2V4cGVjdGVkKGZhaWx1cmVzLCBbJ2Zvby5odG1sJ10sIEZhbHNl
KQotCi0gICAgICAgIGZhaWx1cmVzLnVwZGF0ZShNb2NrUmVzdWx0cyhbXSkpCi0gICAgICAgIHNl
bGYuX2Fzc2VydF9leHBlY3RlZChmYWlsdXJlcywgWydiYXouaHRtbCddLCBGYWxzZSkKLSAgICAg
ICAgc2VsZi5fYXNzZXJ0X2V4cGVjdGVkKGZhaWx1cmVzLCBbJ2Zvby5odG1sJ10sIEZhbHNlKQot
Ci0gICAgZGVmIHRlc3RfdW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZChzZWxmKToKLSAgICAg
ICAgZmFpbHVyZXMgPSBFeHBlY3RlZEZhaWx1cmVzKCkKLSAgICAgICAgZmFpbHVyZXMudXBkYXRl
KE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmFp
bHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZChNb2NrUmVzdWx0cyhbJ2Zvby5odG1s
JywgJ2Jhci5odG1sJ10pKSwgc2V0KFsnYmFyLmh0bWwnXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZChNb2NrUmVzdWx0cyhb
J2Jhei5odG1sJ10pKSwgc2V0KFsnYmF6Lmh0bWwnXSkpCi0gICAgICAgIHVuYm91bmRlZF9yZXN1
bHRzID0gTW9ja1Jlc3VsdHMoWydiYXouaHRtbCcsICdxdXguaHRtbCcsICd0YWNvLmh0bWwnXSwg
ZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKHVuYm91bmRlZF9yZXN1
bHRzKSwgc2V0KFsnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10pKQotICAgICAg
ICB1bmJvdW5kZWRfcmVzdWx0c193aXRoX2V4aXN0aW5nX2ZhaWx1cmUgPSBNb2NrUmVzdWx0cyhb
J2Zvby5odG1sJywgJ2Jhei5odG1sJywgJ3F1eC5odG1sJywgJ3RhY28uaHRtbCddLCBkaWRfZXhj
ZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZh
aWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQodW5ib3VuZGVkX3Jlc3VsdHNfd2l0
aF9leGlzdGluZ19mYWlsdXJlKSwgc2V0KFsnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5o
dG1sJ10pKQotCi0gICAgZGVmIHRlc3RfdW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZF93aGVu
X3RyZWVfaXNfaG9zZWQoc2VsZik6Ci0gICAgICAgIGZhaWx1cmVzID0gRXhwZWN0ZWRGYWlsdXJl
cygpCi0gICAgICAgIGZhaWx1cmVzLnVwZGF0ZShNb2NrUmVzdWx0cyhbJ2Zvby5odG1sJywgJ2Jh
bmFuYS5odG1sJ10sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PVRydWUpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGZhaWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQo
TW9ja1Jlc3VsdHMoWydmb28uaHRtbCcsICdiYXIuaHRtbCddKSksIE5vbmUpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZChNb2Nr
UmVzdWx0cyhbJ2Jhei5odG1sJ10pKSwgTm9uZSkKLSAgICAgICAgdW5ib3VuZGVkX3Jlc3VsdHMg
PSBNb2NrUmVzdWx0cyhbJ2Jhei5odG1sJywgJ3F1eC5odG1sJywgJ3RhY28uaHRtbCddLCBkaWRf
ZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGZhaWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQodW5ib3VuZGVkX3Jlc3VsdHMp
LCBOb25lKQotICAgICAgICB1bmJvdW5kZWRfcmVzdWx0c193aXRoX2V4aXN0aW5nX2ZhaWx1cmUg
PSBNb2NrUmVzdWx0cyhbJ2Zvby5odG1sJywgJ2Jhei5odG1sJywgJ3F1eC5odG1sJywgJ3RhY28u
aHRtbCddLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1UcnVlKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGZhaWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQodW5ib3Vu
ZGVkX3Jlc3VsdHNfd2l0aF9leGlzdGluZ19mYWlsdXJlKSwgTm9uZSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CmluZGV4IDIw
NWNkNmIuLmFjYmJiYjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQpAQCAtODIsNyArODIsNyBAQCBjbGFzcyBQYXRjaEFu
YWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICBzZWxmLl9zY3JpcHRfZXJyb3IgPSBOb25lCiAg
ICAgICAgIHNlbGYuX3Jlc3VsdHNfYXJjaGl2ZV9mcm9tX3BhdGNoX3Rlc3RfcnVuID0gTm9uZQog
ICAgICAgICBzZWxmLl9yZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSBOb25lCi0gICAgICAg
IHNlbGYuX2V4cGVjdGVkX2ZhaWx1cmVzID0gZGVsZWdhdGUuZXhwZWN0ZWRfZmFpbHVyZXMoKQor
ICAgICAgICBzZWxmLl9jbGVhbl90cmVlX3Jlc3VsdHMgPSBOb25lCiAKICAgICBkZWYgX3J1bl9j
b21tYW5kKHNlbGYsIGNvbW1hbmQsIHN1Y2Nlc3NfbWVzc2FnZSwgZmFpbHVyZV9tZXNzYWdlKToK
ICAgICAgICAgdHJ5OgpAQCAtMTgzLDYgKzE4MywxNSBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFz
ayhvYmplY3QpOgogICAgICAgICBzZWNvbmRfZmFpbGluZ190ZXN0cyA9IFtdIGlmIG5vdCBzZWNv
bmQgZWxzZSBzZWNvbmQuZmFpbGluZ190ZXN0cygpCiAgICAgICAgIHJldHVybiBmaXJzdF9mYWls
aW5nX3Rlc3RzICE9IHNlY29uZF9mYWlsaW5nX3Rlc3RzCiAKKyAgICBkZWYgX2NvbnRpbnVlX3Rl
c3RpbmdfcGF0Y2hfdGhhdF9leGNlZWRlZF9mYWlsdXJlX2xpbWl0X29uX2ZpcnN0X29yX3NlY29u
ZF90cnkoc2VsZiwgcmVzdWx0cywgcmVzdWx0c19hcmNoaXZlLCBzY3JpcHRfZXJyb3IpOgorICAg
ICAgICBzZWxmLl9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5f
Y2xlYW5fdHJlZV9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKKworICAg
ICAgICBpZiAobGVuKHJlc3VsdHMuZmFpbGluZ190ZXN0cygpKSAtIGxlbihzZWxmLl9jbGVhbl90
cmVlX3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSkgPD0gNToKKyAgICAgICAgICAgIHJldHVybiBG
YWxzZQorCisgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKHJlc3VsdHNfYXJjaGl2
ZSwgcmVzdWx0cywgc2NyaXB0X2Vycm9yKQorCiAgICAgZGVmIF90ZXN0X3BhdGNoKHNlbGYpOgog
ICAgICAgICBpZiBzZWxmLl90ZXN0KCk6CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQpAQCAtMTk0
LDggKzIwMyw4IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgIGZp
cnN0X3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgogICAgICAgICBmaXJzdF9mYWls
dXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKIAotICAgICAgICBpZiBzZWxm
Ll9leHBlY3RlZF9mYWlsdXJlcy5mYWlsdXJlc193ZXJlX2V4cGVjdGVkKGZpcnN0X3Jlc3VsdHMp
OgotICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgaWYgZmlyc3RfcmVzdWx0cy5kaWRf
ZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2Nv
bnRpbnVlX3Rlc3RpbmdfcGF0Y2hfdGhhdF9leGNlZWRlZF9mYWlsdXJlX2xpbWl0X29uX2ZpcnN0
X29yX3NlY29uZF90cnkoZmlyc3RfcmVzdWx0cywgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJz
dF9zY3JpcHRfZXJyb3IpCiAKICAgICAgICAgaWYgc2VsZi5fdGVzdCgpOgogICAgICAgICAgICAg
IyBPbmx5IHJlcG9ydCBmbGFreSB0ZXN0cyBpZiB3ZSB3ZXJlIHN1Y2Nlc3NmdWwgYXQgcGFyc2lu
ZyByZXN1bHRzLmpzb24gYW5kIGFyY2hpdmluZyByZXN1bHRzLgpAQCAtMjA0LDEwICsyMTMsMTQg
QEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgICAgIHJldHVybiBU
cnVlCiAKICAgICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3Vs
dHMoKQorICAgICAgICBzZWNvbmRfcmVzdWx0c19hcmNoaXZlID0gc2VsZi5fZGVsZWdhdGUuYXJj
aGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyhzZWxmLl9wYXRjaCkKKyAgICAgICAgc2Vjb25kX3Njcmlw
dF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAgICAgICBzZWNvbmRfZmFpbHVyZV9zdGF0
dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCiAKLSAgICAgICAgaWYgKG5vdCBmaXJzdF9y
ZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCkgYW5kCi0gICAgICAgICAgICBu
b3Qgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKSBhbmQKLSAg
ICAgICAgICAgIHNlbGYuX3Jlc3VsdHNfZmFpbGVkX2RpZmZlcmVudF90ZXN0cyhmaXJzdF9yZXN1
bHRzLCBzZWNvbmRfcmVzdWx0cykpOgorICAgICAgICBpZiBzZWNvbmRfcmVzdWx0cy5kaWRfZXhj
ZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NvbnRp
bnVlX3Rlc3RpbmdfcGF0Y2hfdGhhdF9leGNlZWRlZF9mYWlsdXJlX2xpbWl0X29uX2ZpcnN0X29y
X3NlY29uZF90cnkoc2Vjb25kX3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUsIHNlY29u
ZF9zY3JpcHRfZXJyb3IpCisKKyAgICAgICAgaWYgc2VsZi5fcmVzdWx0c19mYWlsZWRfZGlmZmVy
ZW50X3Rlc3RzKGZpcnN0X3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzKToKICAgICAgICAgICAgICMg
V2UgY291bGQgcmVwb3J0IGZsYWt5IHRlc3RzIGhlcmUsIGJ1dCB3ZSB3b3VsZCBuZWVkIHRvIGJl
IGNhcmVmdWwKICAgICAgICAgICAgICMgdG8gdXNlIHNpbWlsYXIgY2hlY2tzIHRvIEV4cGVjdGVk
RmFpbHVyZXMuX2Nhbl90cnVzdF9yZXN1bHRzCiAgICAgICAgICAgICAjIHRvIG1ha2Ugc3VyZSB3
ZSBkb24ndCByZXBvcnQgY29uc3RhbnQgZmFpbHVyZXMgYXMgZmxha2VzIHdoZW4KQEAgLTIxNSwz
MCArMjI4LDIxIEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICAg
ICAjIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTEyNzIKICAg
ICAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgICAgICMgQXJjaGl2ZSAoYW5kIHJlbW92ZSkg
c2Vjb25kIHJlc3VsdHMgc28gdGVzdF9yZXN1bHRzKCkgYWZ0ZXIKLSAgICAgICAgIyBidWlsZF9h
bmRfdGVzdF93aXRob3V0X3BhdGNoIHdvbid0IHVzZSBzZWNvbmQgcmVzdWx0cyBpbnN0ZWFkIG9m
IHRoZSBjbGVhbi10cmVlIHJlc3VsdHMuCi0gICAgICAgIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUg
PSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQot
CiAgICAgICAgIGlmIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKToKICAgICAg
ICAgICAgICMgVGhlIGVycm9yIGZyb20gdGhlIHByZXZpb3VzIC5fdGVzdCgpIHJ1biBpcyByZWFs
LCByZXBvcnQgaXQuCiAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShmaXJz
dF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Jlc3VsdHMsIGZpcnN0X3NjcmlwdF9lcnJvcikKIAot
ICAgICAgICBjbGVhbl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMo
KQotICAgICAgICBzZWxmLl9leHBlY3RlZF9mYWlsdXJlcy51cGRhdGUoY2xlYW5fdHJlZV9yZXN1
bHRzKQorICAgICAgICBzZWxmLl9jbGVhbl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50
ZXN0X3Jlc3VsdHMoKQogCi0gICAgICAgICMgUmUtY2hlY2sgaWYgdGhlIG9yaWdpbmFsIHJlc3Vs
dHMgYXJlIG5vdyB0byBiZSBleHBlY3RlZCB0byBhdm9pZCBhIGZ1bGwgcmUtdHJ5LgotICAgICAg
ICBpZiBzZWxmLl9leHBlY3RlZF9mYWlsdXJlcy5mYWlsdXJlc193ZXJlX2V4cGVjdGVkKGZpcnN0
X3Jlc3VsdHMpOgotICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgaWYgc2VsZi5fY2xl
YW5fdHJlZV9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6CisgICAgICAg
ICAgICByZXR1cm4gRmFsc2UKIAotICAgICAgICAjIE5vdyB0aGF0IHdlIGhhdmUgdXBkYXRlZCBp
bmZvcm1hdGlvbiBhYm91dCBmYWlsaW5nIHRlc3RzIHdpdGggYSBjbGVhbiBjaGVja291dCwgd2Ug
Y2FuCi0gICAgICAgICMgdGVsbCBpZiBvdXIgb3JpZ2luYWwgZmFpbHVyZXMgd2VyZSB1bmV4cGVj
dGVkIGFuZCBmYWlsIHRoZSBwYXRjaCBpZiBuZWNlc3NhcnkuCi0gICAgICAgIGlmIHNlbGYuX2V4
cGVjdGVkX2ZhaWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQoZmlyc3RfcmVzdWx0
cyk6CisgICAgICAgICMgUmUtY2hlY2sgaWYgdGhlIG9yaWdpbmFsIHJlc3VsdHMgYXJlIG5vdyB0
byBiZSBleHBlY3RlZCB0byBhdm9pZCBhIGZ1bGwgcmUtdHJ5LgorICAgICAgICBpZiBzZWxmLl9y
ZXN1bHRzX2ZhaWxlZF9kaWZmZXJlbnRfdGVzdHMoZmlyc3RfcmVzdWx0cywgc2VsZi5fY2xlYW5f
dHJlZV9yZXN1bHRzKToKICAgICAgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSBmaXJz
dF9mYWlsdXJlX3N0YXR1c19pZAogICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1
cmUoZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJy
b3IpCiAKLSAgICAgICAgIyBXZSBkb24ndCBrbm93IHdoYXQncyBnb2luZyBvbi4gIFRoZSB0cmVl
IGlzIGxpa2VseSB2ZXJ5IHJlZCAoYmV5b25kIG91ciBsYXlvdXQtdGVzdC1yZXN1bHRzCi0gICAg
ICAgICMgZmFpbHVyZSBsaW1pdCksIGp1c3Qga2VlcCByZXRyeWluZyB0aGUgcGF0Y2guIHVudGls
IHNvbWVvbmUgZml4ZXMgdGhlIHRyZWUuCi0gICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBy
ZXR1cm4gVHJ1ZQogCiAgICAgZGVmIHJlc3VsdHNfYXJjaGl2ZV9mcm9tX3BhdGNoX3Rlc3RfcnVu
KHNlbGYsIHBhdGNoKToKICAgICAgICAgYXNzZXJ0KHNlbGYuX3BhdGNoLmlkKCkgPT0gcGF0Y2gu
aWQoKSkgICMgUGF0Y2hBbmFseXNpc1Rhc2sgaXMgbm90IGN1cnJlbnRseSByZS11c2VhYmxlLgpA
QCAtMjQ4LDYgKzI1MiwxMCBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAg
ICAgICBhc3NlcnQoc2VsZi5fcGF0Y2guaWQoKSA9PSBwYXRjaC5pZCgpKSAgIyBQYXRjaEFuYWx5
c2lzVGFzayBpcyBub3QgY3VycmVudGx5IHJlLXVzZWFibGUuCiAgICAgICAgIHJldHVybiBzZWxm
Ll9yZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4KIAorICAgIGRlZiByZXN1bHRzX2Zyb21fdGVz
dF9ydW5fd2l0aG91dF9wYXRjaChzZWxmLCBwYXRjaCk6CisgICAgICAgIGFzc2VydChzZWxmLl9w
YXRjaC5pZCgpID09IHBhdGNoLmlkKCkpICAjIFBhdGNoQW5hbHlzaXNUYXNrIGlzIG5vdCBjdXJy
ZW50bHkgcmUtdXNlYWJsZS4KKyAgICAgICAgcmV0dXJuIHNlbGYuX2NsZWFuX3RyZWVfcmVzdWx0
cworCiAgICAgZGVmIHJlcG9ydF9mYWlsdXJlKHNlbGYsIHJlc3VsdHNfYXJjaGl2ZT1Ob25lLCBy
ZXN1bHRzPU5vbmUsIHNjcmlwdF9lcnJvcj1Ob25lKToKICAgICAgICAgaWYgbm90IHNlbGYudmFs
aWRhdGUoKToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKaW5k
ZXggMTVmNjdmMi4uNmNmZGUzYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CkBAIC0zNSw3ICszNSw2
IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5wb3J0cyBpbXBvcnQgRGVwcmVjYXRlZFBv
cnQKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lz
dGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRF
cnJvcgogZnJvbSB3ZWJraXRweS50b29sLmJvdC5lYXJseXdhcm5pbmdzeXN0ZW10YXNrIGltcG9y
dCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZWdhdGUK
LWZyb20gd2Via2l0cHkudG9vbC5ib3QuZXhwZWN0ZWRmYWlsdXJlcyBpbXBvcnQgRXhwZWN0ZWRG
YWlsdXJlcwogZnJvbSB3ZWJraXRweS50b29sLmJvdC5sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlciBp
bXBvcnQgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIKIGZyb20gd2Via2l0cHkudG9vbC5ib3QucGF0
Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFVuYWJsZVRvQXBwbHlQYXRjaCwgUGF0Y2hJc05vdFZhbGlk
CiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnF1ZXVlZW5naW5lIGltcG9ydCBRdWV1ZUVuZ2luZQpA
QCAtNTUsMTIgKzU0LDE1IEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3Ry
YWN0UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAKICAgICBkZWYgYmVn
aW5fd29ya19xdWV1ZShzZWxmKToKICAgICAgICAgQWJzdHJhY3RSZXZpZXdRdWV1ZS5iZWdpbl93
b3JrX3F1ZXVlKHNlbGYpCi0gICAgICAgIHNlbGYuX2V4cGVjdGVkX2ZhaWx1cmVzID0gRXhwZWN0
ZWRGYWlsdXJlcygpCiAgICAgICAgIHNlbGYuX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyID0g
TGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIoc2VsZi5fdG9vbCwgc2VsZi5fcG9ydC5yZXN1bHRzX2Rp
cmVjdG9yeSgpLCBzZWxmLl9sb2dfZGlyZWN0b3J5KCkpCiAKICAgICBkZWYgX2ZhaWxpbmdfdGVz
dHNfbWVzc2FnZShzZWxmLCB0YXNrLCBwYXRjaCk6CiAgICAgICAgIHJlc3VsdHMgPSB0YXNrLnJl
c3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1bihwYXRjaCkKLSAgICAgICAgdW5leHBlY3RlZF9mYWls
dXJlcyA9IHNlbGYuX2V4cGVjdGVkX2ZhaWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2
ZWQocmVzdWx0cykKKyAgICAgICAgY2xlYW5fcmVzdWx0cyA9IHRhc2sucmVzdWx0c19mcm9tX3Rl
c3RfcnVuX3dpdGhvdXRfcGF0Y2gocGF0Y2gpCisKKyAgICAgICAgdW5leHBlY3RlZF9mYWlsdXJl
cyA9IE5vbmUKKyAgICAgICAgaWYgcmVzdWx0cyBhbmQgY2xlYW5fcmVzdWx0czoKKyAgICAgICAg
ICAgIHVuZXhwZWN0ZWRfZmFpbHVyZXMgPSBsaXN0KHNldChyZXN1bHRzLmZhaWxpbmdfdGVzdHMo
KSkgLSBzZXQoY2xlYW5fcmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkpKQogICAgICAgICBpZiBub3Qg
dW5leHBlY3RlZF9mYWlsdXJlczoKICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgIGlm
IHJlc3VsdHMgYW5kIHJlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKQEAg
LTExOCw5ICsxMjAsNiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFj
dFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogICAgICAgICBmYWlsdXJl
X2xvZyA9IHNlbGYuX2xvZ19mcm9tX3NjcmlwdF9lcnJvcl9mb3JfdXBsb2FkKHNjcmlwdF9lcnJv
cikKICAgICAgICAgcmV0dXJuIHNlbGYuX3VwZGF0ZV9zdGF0dXMobWVzc2FnZSwgcGF0Y2g9cGF0
Y2gsIHJlc3VsdHNfZmlsZT1mYWlsdXJlX2xvZykKIAotICAgIGRlZiBleHBlY3RlZF9mYWlsdXJl
cyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2V4cGVjdGVkX2ZhaWx1cmVzCi0KICAgICBk
ZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fbGF5b3V0X3Rlc3Rf
cmVzdWx0c19yZWFkZXIucmVzdWx0cygpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0
ZXN0LnB5CmluZGV4IDE2NjhiNTYuLjAxYzk2MjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3Rl
bV91bml0dGVzdC5weQpAQCAtMjcsNyArMjcsMTAgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogZnJvbSB3
ZWJraXRweS50aGlyZHBhcnR5Lm1vY2sgaW1wb3J0IE1vY2sKK2Zyb20gd2Via2l0cHkuY29tbW9u
Lm5ldC5sYXlvdXR0ZXN0cmVzdWx0cyBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHMKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCitm
cm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfcmVzdWx0cworZnJv
bSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2ZhaWx1cmVzCiBmcm9t
IHdlYmtpdHB5LnRvb2wuYm90LnF1ZXVlZW5naW5lIGltcG9ydCBRdWV1ZUVuZ2luZQogZnJvbSB3
ZWJraXRweS50b29sLmNvbW1hbmRzLmVhcmx5d2FybmluZ3N5c3RlbSBpbXBvcnQgKgogZnJvbSB3
ZWJraXRweS50b29sLmNvbW1hbmRzLnF1ZXVlc3Rlc3QgaW1wb3J0IFF1ZXVlc1Rlc3QKQEAgLTQ0
LDkgKzQ3LDExIEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdChRdWV1ZXNU
ZXN0KToKICAgICAgICAgZXdzLmJpbmRfdG9fdG9vbChNb2NrVG9vbCgpKQogICAgICAgICBld3Mu
X29wdGlvbnMgPSBNb2NrT3B0aW9ucyhwb3J0PU5vbmUsIGNvbmZpcm09RmFsc2UpCiAgICAgICAg
IE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBld3MuYmVnaW5fd29ya19xdWV1
ZSwgZXhwZWN0ZWRfbG9ncz1zZWxmLl9kZWZhdWx0X2JlZ2luX3dvcmtfcXVldWVfbG9ncyhld3Mu
bmFtZSkpCi0gICAgICAgIGV3cy5fZXhwZWN0ZWRfZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJl
c19vYnNlcnZlZCA9IGxhbWJkYSByZXN1bHRzOiBzZXQoWyJmb28uaHRtbCIsICJiYXIuaHRtbCJd
KQogICAgICAgICB0YXNrID0gTW9jaygpCi0gICAgICAgIHRhc2sucmVzdWx0c19mcm9tX3BhdGNo
X3Rlc3RfcnVuID0gbGFtYmRhIGE6IE5vbmUKKyAgICAgICAgdGFzay5yZXN1bHRzX2Zyb21fcGF0
Y2hfdGVzdF9ydW4gPSBsYW1iZGEgYTogTGF5b3V0VGVzdFJlc3VsdHMoW3Rlc3RfcmVzdWx0cy5U
ZXN0UmVzdWx0KCJmb28uaHRtbCIsIGZhaWx1cmVzPVt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUZXh0
TWlzbWF0Y2goKV0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCgi
YmFyLmh0bWwiLCBmYWlsdXJlcz1bdGVzdF9mYWlsdXJlcy5GYWlsdXJlVGV4dE1pc21hdGNoKCld
KV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PUZhbHNl
KQorICAgICAgICB0YXNrLnJlc3VsdHNfZnJvbV90ZXN0X3J1bl93aXRob3V0X3BhdGNoID0gbGFt
YmRhIGE6IExheW91dFRlc3RSZXN1bHRzKFtdLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1p
dD1GYWxzZSkKICAgICAgICAgcGF0Y2ggPSBld3MuX3Rvb2wuYnVncy5mZXRjaF9hdHRhY2htZW50
KDEwMDAwKQogICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKGV3cy5fZmFpbGluZ190
ZXN0c19tZXNzYWdlKHRhc2ssIHBhdGNoKSwgIk5ldyBmYWlsaW5nIHRlc3RzOlxuYmFyLmh0bWxc
bmZvby5odG1sIikKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL3BlcmZhbGl6ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvcGVyZmFsaXplci5weQppbmRleCBlZDBlMDE1Li4yY2Q1MGRjIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcGVyZmFsaXplci5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcGVyZmFsaXplci5weQpAQCAtMjgsNyAr
MjgsNiBAQAogCiBpbXBvcnQgbG9nZ2luZwogCi1mcm9tIHdlYmtpdHB5LnRvb2wuYm90LmV4cGVj
dGVkZmFpbHVyZXMgaW1wb3J0IEV4cGVjdGVkRmFpbHVyZXMKIGZyb20gd2Via2l0cHkudG9vbC5i
b3QuaXJjX2NvbW1hbmQgaW1wb3J0IElSQ0NvbW1hbmQKIGZyb20gd2Via2l0cHkudG9vbC5ib3Qu
aXJjX2NvbW1hbmQgaW1wb3J0IEhlbHAKIGZyb20gd2Via2l0cHkudG9vbC5ib3QuaXJjX2NvbW1h
bmQgaW1wb3J0IEhpCkBAIC0xNTEsOSArMTUwLDYgQEAgY2xhc3MgUGVyZmFsaXplclRhc2soUGF0
Y2hBbmFseXNpc1Rhc2spOgogICAgIGRlZiByZWZldGNoX3BhdGNoKHNlbGYsIHBhdGNoKToKICAg
ICAgICAgcmV0dXJuIHNlbGYuX3Rvb2wuYnVncy5mZXRjaF9hdHRhY2htZW50KHBhdGNoLmlkKCkp
CiAKLSAgICBkZWYgZXhwZWN0ZWRfZmFpbHVyZXMoc2VsZik6Ci0gICAgICAgIHJldHVybiBFeHBl
Y3RlZEZhaWx1cmVzKCkKLQogICAgIGRlZiBidWlsZF9zdHlsZShzZWxmKToKICAgICAgICAgcmV0
dXJuICJyZWxlYXNlIgogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvcXVldWVzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L3F1ZXVlcy5weQppbmRleCBlMjNmMjM4Li4xNTMwNWVmIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkKQEAgLTQ2LDcgKzQ2LDYgQEAgZnJvbSB3
ZWJraXRweS5jb21tb24ubmV0LnN0YXR1c3NlcnZlciBpbXBvcnQgU3RhdHVzU2VydmVyCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJv
bSB3ZWJraXRweS50b29sLmJvdC5ib3RpbmZvIGltcG9ydCBCb3RJbmZvCiBmcm9tIHdlYmtpdHB5
LnRvb2wuYm90LmNvbW1pdHF1ZXVldGFzayBpbXBvcnQgQ29tbWl0UXVldWVUYXNrLCBDb21taXRR
dWV1ZVRhc2tEZWxlZ2F0ZQotZnJvbSB3ZWJraXRweS50b29sLmJvdC5leHBlY3RlZGZhaWx1cmVz
IGltcG9ydCBFeHBlY3RlZEZhaWx1cmVzCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmZlZWRlcnMg
aW1wb3J0IENvbW1pdFF1ZXVlRmVlZGVyLCBFV1NGZWVkZXIKIGZyb20gd2Via2l0cHkudG9vbC5i
b3QuZmxha3l0ZXN0cmVwb3J0ZXIgaW1wb3J0IEZsYWt5VGVzdFJlcG9ydGVyCiBmcm9tIHdlYmtp
dHB5LnRvb2wuYm90LmxheW91dHRlc3RyZXN1bHRzcmVhZGVyIGltcG9ydCBMYXlvdXRUZXN0UmVz
dWx0c1JlYWRlcgpAQCAtMjk5LDYgKzI5OCwxMCBAQCBjbGFzcyBQYXRjaFByb2Nlc3NpbmdRdWV1
ZShBYnN0cmFjdFBhdGNoUXVldWUpOgogCiAKIGNsYXNzIENvbW1pdFF1ZXVlKFBhdGNoUHJvY2Vz
c2luZ1F1ZXVlLCBTdGVwU2VxdWVuY2VFcnJvckhhbmRsZXIsIENvbW1pdFF1ZXVlVGFza0RlbGVn
YXRlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29tbWl0X3F1ZXVlX3Rhc2tfY2xhc3M9Q29t
bWl0UXVldWVUYXNrKToKKyAgICAgICAgc2VsZi5fY29tbWl0X3F1ZXVlX3Rhc2tfY2xhc3MgPSBj
b21taXRfcXVldWVfdGFza19jbGFzcworICAgICAgICBQYXRjaFByb2Nlc3NpbmdRdWV1ZS5fX2lu
aXRfXyhzZWxmKQorCiAgICAgbmFtZSA9ICJjb21taXQtcXVldWUiCiAgICAgcG9ydF9uYW1lID0g
Im1hYy1tb3VudGFpbmxpb24iCiAKQEAgLTMwNyw3ICszMTAsNiBAQCBjbGFzcyBDb21taXRRdWV1
ZShQYXRjaFByb2Nlc3NpbmdRdWV1ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyLCBDb21taXRR
dWV1ZVRhcwogICAgIGRlZiBiZWdpbl93b3JrX3F1ZXVlKHNlbGYpOgogICAgICAgICBQYXRjaFBy
b2Nlc3NpbmdRdWV1ZS5iZWdpbl93b3JrX3F1ZXVlKHNlbGYpCiAgICAgICAgIHNlbGYuY29tbWl0
dGVyX3ZhbGlkYXRvciA9IENvbW1pdHRlclZhbGlkYXRvcihzZWxmLl90b29sKQotICAgICAgICBz
ZWxmLl9leHBlY3RlZF9mYWlsdXJlcyA9IEV4cGVjdGVkRmFpbHVyZXMoKQogICAgICAgICBzZWxm
Ll9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciA9IExheW91dFRlc3RSZXN1bHRzUmVhZGVyKHNl
bGYuX3Rvb2wsIHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwgc2VsZi5fbG9nX2RpcmVj
dG9yeSgpKQogCiAgICAgZGVmIG5leHRfd29ya19pdGVtKHNlbGYpOgpAQCAtMzE1LDcgKzMxNyw3
IEBAIGNsYXNzIENvbW1pdFF1ZXVlKFBhdGNoUHJvY2Vzc2luZ1F1ZXVlLCBTdGVwU2VxdWVuY2VF
cnJvckhhbmRsZXIsIENvbW1pdFF1ZXVlVGFzCiAKICAgICBkZWYgcHJvY2Vzc193b3JrX2l0ZW0o
c2VsZiwgcGF0Y2gpOgogICAgICAgICBzZWxmLl9jY193YXRjaGVycyhwYXRjaC5idWdfaWQoKSkK
LSAgICAgICAgdGFzayA9IENvbW1pdFF1ZXVlVGFzayhzZWxmLCBwYXRjaCkKKyAgICAgICAgdGFz
ayA9IHNlbGYuX2NvbW1pdF9xdWV1ZV90YXNrX2NsYXNzKHNlbGYsIHBhdGNoKQogICAgICAgICB0
cnk6CiAgICAgICAgICAgICBpZiB0YXNrLnJ1bigpOgogICAgICAgICAgICAgICAgIHNlbGYuX2Rp
ZF9wYXNzKHBhdGNoKQpAQCAtMzM2LDcgKzMzOCwxMSBAQCBjbGFzcyBDb21taXRRdWV1ZShQYXRj
aFByb2Nlc3NpbmdRdWV1ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyLCBDb21taXRRdWV1ZVRh
cwogCiAgICAgZGVmIF9mYWlsaW5nX3Rlc3RzX21lc3NhZ2Uoc2VsZiwgdGFzaywgcGF0Y2gpOgog
ICAgICAgICByZXN1bHRzID0gdGFzay5yZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4ocGF0Y2gp
Ci0gICAgICAgIHVuZXhwZWN0ZWRfZmFpbHVyZXMgPSBzZWxmLl9leHBlY3RlZF9mYWlsdXJlcy51
bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKHJlc3VsdHMpCisgICAgICAgIGNsZWFuX3Jlc3Vs
dHMgPSB0YXNrLnJlc3VsdHNfZnJvbV90ZXN0X3J1bl93aXRob3V0X3BhdGNoKHBhdGNoKQorCisg
ICAgICAgIHVuZXhwZWN0ZWRfZmFpbHVyZXMgPSBOb25lCisgICAgICAgIGlmIHJlc3VsdHMgYW5k
IGNsZWFuX3Jlc3VsdHM6CisgICAgICAgICAgICB1bmV4cGVjdGVkX2ZhaWx1cmVzID0gbGlzdChz
ZXQocmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkpIC0gc2V0KGNsZWFuX3Jlc3VsdHMuZmFpbGluZ190
ZXN0cygpKSkKICAgICAgICAgaWYgbm90IHVuZXhwZWN0ZWRfZmFpbHVyZXM6CiAgICAgICAgICAg
ICByZXR1cm4gTm9uZQogICAgICAgICBpZiByZXN1bHRzIGFuZCByZXN1bHRzLmRpZF9leGNlZWRf
dGVzdF9mYWlsdXJlX2xpbWl0KCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQppbmRleCBjNGQxOTQxLi5lMmE0ODgw
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVz
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9x
dWV1ZXNfdW5pdHRlc3QucHkKQEAgLTMxLDYgKzMxLDcgQEAgaW1wb3J0IFN0cmluZ0lPCiAKIGZy
b20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbSBpbXBvcnQgQ2hlY2tvdXROZWVkc1VwZGF0
ZQogZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtLnNjbV9tb2NrIGltcG9ydCBNb2Nr
U0NNCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQubGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0IExh
eW91dFRlc3RSZXN1bHRzCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVnemlsbGEgaW1wb3J0
IEF0dGFjaG1lbnQKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGlt
cG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1w
b3J0IHRlc3RfcmVzdWx0cwpAQCAtMjk1LDcgKzI5Niw2IEBAIE1PQ0s6IHVwZGF0ZV9zdGF0dXM6
IGNvbW1pdC1xdWV1ZSBVcGRhdGVkIHdvcmtpbmcgZGlyZWN0b3J5CiBNT0NLOiB1cGRhdGVfc3Rh
dHVzOiBjb21taXQtcXVldWUgUGF0Y2ggZG9lcyBub3QgYXBwbHkKIE1PQ0sgc2V0dGluZyBmbGFn
ICdjb21taXQtcXVldWUnIHRvICctJyBvbiBhdHRhY2htZW50ICcxMDAwMCcgd2l0aCBjb21tZW50
ICdSZWplY3RpbmcgYXR0YWNobWVudCAxMDAwMCBmcm9tIGNvbW1pdC1xdWV1ZS5cblxuTmV3IGZh
aWxpbmcgdGVzdHM6CiBtb2NrX3Rlc3RfbmFtZS5odG1sCi1hbm90aGVyX3Rlc3RfbmFtZS5odG1s
CiBGdWxsIG91dHB1dDogaHR0cDovL2R1bW15X3VybCcKIE1PQ0s6IHVwZGF0ZV9zdGF0dXM6IGNv
bW1pdC1xdWV1ZSBGYWlsCiBNT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogY29tbWl0LXF1ZXVlIDEw
MDAwCkBAIC0zMDMsMTQgKzMwMywyMSBAQCBNT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogY29tbWl0
LXF1ZXVlIDEwMDAwCiAgICAgICAgICAgICAiaGFuZGxlX3NjcmlwdF9lcnJvciI6ICJTY3JpcHRF
cnJvciBlcnJvciBtZXNzYWdlXG5cbk1PQ0sgb3V0cHV0XG4iLAogICAgICAgICAgICAgImhhbmRs
ZV91bmV4cGVjdGVkX2Vycm9yIjogIk1PQ0sgc2V0dGluZyBmbGFnICdjb21taXQtcXVldWUnIHRv
ICctJyBvbiBhdHRhY2htZW50ICcxMDAwMCcgd2l0aCBjb21tZW50ICdSZWplY3RpbmcgYXR0YWNo
bWVudCAxMDAwMCBmcm9tIGNvbW1pdC1xdWV1ZS5cblxuTW9jayBlcnJvciBtZXNzYWdlJ1xuIiwK
ICAgICAgICAgfQotICAgICAgICBxdWV1ZSA9IENvbW1pdFF1ZXVlKCkKKworICAgICAgICBjbGFz
cyBNb2NrQ29tbWl0UXVldWVUYXNrKENvbW1pdFF1ZXVlVGFzayk6CisgICAgICAgICAgICBkZWYg
cmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuKHNlbGYsIHBhdGNoKToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gTGF5b3V0VGVzdFJlc3VsdHMoW3Rlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KCJtb2Nr
X3Rlc3RfbmFtZS5odG1sIiwgZmFpbHVyZXM9W3Rlc3RfZmFpbHVyZXMuRmFpbHVyZVRleHRNaXNt
YXRjaCgpXSldLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1GYWxzZSkKKworICAgICAg
ICAgICAgZGVmIHJlc3VsdHNfZnJvbV90ZXN0X3J1bl93aXRob3V0X3BhdGNoKHNlbGYsIHBhdGNo
KToKKyAgICAgICAgICAgICAgICByZXR1cm4gTGF5b3V0VGVzdFJlc3VsdHMoW10sIGRpZF9leGNl
ZWRfdGVzdF9mYWlsdXJlX2xpbWl0PUZhbHNlKQorCisgICAgICAgIHF1ZXVlID0gQ29tbWl0UXVl
dWUoTW9ja0NvbW1pdFF1ZXVlVGFzaykKIAogICAgICAgICBkZWYgbW9ja19ydW5fd2Via2l0X3Bh
dGNoKGNvbW1hbmQpOgogICAgICAgICAgICAgaWYgY29tbWFuZFswXSA9PSAnY2xlYW4nIG9yIGNv
bW1hbmRbMF0gPT0gJ3VwZGF0ZSc6CiAgICAgICAgICAgICAgICAgIyBXZSB3YW50IGNsZWFuaW5n
IHRvIHN1Y2NlZWQgc28gd2UgY2FuIGVycm9yIG91dCBvbiBhIHN0ZXAKICAgICAgICAgICAgICAg
ICAjIHRoYXQgY2F1c2VzIHRoZSBjb21taXQtcXVldWUgdG8gcmVqZWN0IHRoZSBwYXRjaC4KICAg
ICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIHF1ZXVlLl9leHBlY3RlZF9mYWlsdXJl
cy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkID0gbGFtYmRhIHJlc3VsdHM6IFsibW9ja190
ZXN0X25hbWUuaHRtbCIsICJhbm90aGVyX3Rlc3RfbmFtZS5odG1sIl0KICAgICAgICAgICAgIHJh
aXNlIFNjcmlwdEVycm9yKCdNT0NLIHNjcmlwdCBlcnJvcicpCiAKICAgICAgICAgcXVldWUucnVu
X3dlYmtpdF9wYXRjaCA9IG1vY2tfcnVuX3dlYmtpdF9wYXRjaAotLSAKMS45LjMgKEFwcGxlIEdp
dC01MCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240285</attachid>
            <date>2014-10-22 11:45:09 -0700</date>
            <delta_ts>2014-10-22 15:38:48 -0700</delta_ts>
            <desc>Adds some comments, and fixes a bug</desc>
            <filename>0001-PatchAnalysisTask._test_patch-needs-refactoring.patch</filename>
            <type>text/plain</type>
            <size>36770</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSAwMTE5YmIyOWI3ZTMwN2E2N2YzNTRlMWY4MTY5MmNlZGVhMWYyOTY3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBXZWQsIDIyIE9jdCAyMDE0IDExOjQyOjE0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
UGF0Y2hBbmFseXNpc1Rhc2suX3Rlc3RfcGF0Y2goKSBuZWVkcyByZWZhY3RvcmluZwogaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzkwNAoKUmV2aWV3ZWQgYnkgQWxl
eGV5IFByb3NrdXJ5YWtvdi4KCiogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1
ZXRhc2tfdW5pdHRlc3QucHk6CkZpeGVzIHNldmVyYWwgc21hbGwgYnVncywgYW5kIG1ha2VzIG1p
bm9yIGNoYW5nZXMgdG8gYWNjb21vZGF0ZSB0aGUKY2hhbmdlcyBpbiBQYXRjaEFuYWx5c2lzVGFz
ay4KKE1vY2tDb21taXRRdWV1ZS5yZWZldGNoX3BhdGNoKToKKE1vY2tDb21taXRRdWV1ZS50ZXN0
X3Jlc3VsdHMpOgoodGVzdF9mbGFreV90ZXN0X2ZhaWx1cmUpOgoodGVzdF9mYWlsZWRfYXJjaGl2
ZSk6Cih0ZXN0X3ZlcnlfcmVkX3RyZWVfcmV0cnkpOgooX2V4cGVjdF92YWxpZGF0ZS5Nb2NrRGVs
ZWdhdGUucmVmZXRjaF9wYXRjaCk6CihNb2NrQ29tbWl0UXVldWUuZXhwZWN0ZWRfZmFpbHVyZXMp
OiBEZWxldGVkLgooX2V4cGVjdF92YWxpZGF0ZS5Nb2NrRGVsZWdhdGUuZXhwZWN0ZWRfZmFpbHVy
ZXMpOiBEZWxldGVkLgoqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJl
cy5weTogUmVtb3ZlZC4KKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVy
ZXNfdW5pdHRlc3QucHk6IFJlbW92ZWQuCiogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRj
aGFuYWx5c2lzdGFzay5weToKUmVtb3ZlcyB0aGUgdW5leHBlY3RlZF9mYWlsdXJlcyBtZW1iZXIs
IGFkZHMgdGhlIF9jbGVhbl90cmVlX3Jlc3VsdHMKbWVtYmVyLCBhZGRzIGEgaGVscGVyIGZ1bmN0
aW9uIGZvciBfdGVzdF9wYXRjaCwgYW5kIHJlZmFjdG9ycwpfdGVzdF9wYXRjaCB0byBiZSBtb3Jl
IHJlYWRhYmxlLgooUGF0Y2hBbmFseXNpc1Rhc2suX19pbml0X18pOgooUGF0Y2hBbmFseXNpc1Rh
c2suX2NvbnRpbnVlX3Rlc3RpbmdfcGF0Y2hfdGhhdF9leGNlZWRlZF9mYWlsdXJlX2xpbWl0X29u
X2ZpcnN0X29yX3NlY29uZF90cnkpOgooUGF0Y2hBbmFseXNpc1Rhc2suX3Rlc3RfcGF0Y2gpOgoo
UGF0Y2hBbmFseXNpc1Rhc2sucmVzdWx0c19mcm9tX3Rlc3RfcnVuX3dpdGhvdXRfcGF0Y2gpOgoq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHk6ClJl
bW92ZXMgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ncyBkZXBlbmRhbmN5IG9uIEV4cGVjdGVk
RmFpbHVyZXMuCihBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5iZWdpbl93b3JrX3F1ZXVlKToK
KEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9mYWlsaW5nX3Rlc3RzX21lc3NhZ2UpOgooQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uY29tbWFuZF9mYWlsZWQpOgooQWJzdHJhY3RFYXJseVdh
cm5pbmdTeXN0ZW0uZXhwZWN0ZWRfZmFpbHVyZXMpOiBEZWxldGVkLgoqIFNjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHk6Ck1ha2VzIGNo
YW5nZXMgdG8gYWNjb21vZGF0ZSB0aGUgY2hhbmdlcyBtYWRlIHRvIFBhdGNoQW5hbHlzaXNUYXNr
LgooQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmFpbGluZ190ZXN0c19tZXNz
YWdlKToKKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcGVyZmFsaXplci5weToKUmVt
b3ZlcyBQZXJmYWxpemVyJ3MgZGVwZW5kYW5jeSBvbiBFeHBlY3RlZEZhaWx1cmVzLgooUGVyZmFs
aXplclRhc2sucmVmZXRjaF9wYXRjaCk6CihQZXJmYWxpemVyVGFzay5leHBlY3RlZF9mYWlsdXJl
cyk6IERlbGV0ZWQuCiogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weToK
UmVtb3ZlcyBDb21taXRRdWV1ZSdzIGRlcGVuZGFuY3kgb24gRXhwZWN0ZWRGYWlsdXJlcywgYW5k
IGFkZHMgYW4KaW5pdGlhbGl6ZXIgdG8gYWxsb3cgZm9yIG1vY2sgaW5qZWN0aW9uLgooQ29tbWl0
UXVldWUuX19pbml0X18pOgooQ29tbWl0UXVldWUuYmVnaW5fd29ya19xdWV1ZSk6CihDb21taXRR
dWV1ZS5wcm9jZXNzX3dvcmtfaXRlbSk6CihDb21taXRRdWV1ZS5fZmFpbGluZ190ZXN0c19tZXNz
YWdlKToKKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5
OgpSZW1vdmVzIGRlcGVuZGFuY3kgb24gRXhwZWN0ZWRGYWlsdXJlcywgYW5kIGluc3RlYWQgdXNl
cyBtb2NrCmluamVjdGlvbi4KKE1vY2tDb21taXRRdWV1ZVRhc2spOgooTW9ja0NvbW1pdFF1ZXVl
VGFzay5yZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4pOgooTW9ja0NvbW1pdFF1ZXVlVGFzay5y
ZXN1bHRzX2Zyb21fdGVzdF9ydW5fd2l0aG91dF9wYXRjaCk6Cihtb2NrX3J1bl93ZWJraXRfcGF0
Y2gpOgotLS0KIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgNTYgKysrKysrKysrKysrKwogLi4uL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVl
dGFza191bml0dGVzdC5weSAgfCAxOSArLS0tLQogLi4uL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvZXhwZWN0ZWRmYWlsdXJlcy5weSAgfCA2MCAtLS0tLS0tLS0tLS0tLQogLi4uL3dlYmtpdHB5
L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHkgfCA5NSAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAuLi4vU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFz
ay5weSB8IDU2ICsrKysrKysrLS0tLS0KIC4uLi93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5
d2FybmluZ3N5c3RlbS5weSAgIHwgMTEgKystCiAuLi4vdG9vbC9jb21tYW5kcy9lYXJseXdhcm5p
bmdzeXN0ZW1fdW5pdHRlc3QucHkgICB8ICA5ICstCiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvcGVyZmFsaXplci5weSB8ICA0IC0KIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9jb21tYW5kcy9xdWV1ZXMucHkgICAgIHwgMTUgKysrLQogLi4uL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5ICAgICAgfCAxMyArKy0KIDEwIGZpbGVzIGNoYW5n
ZWQsIDEyOCBpbnNlcnRpb25zKCspLCAyMTAgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2
NDQgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzLnB5CiBk
ZWxldGUgbW9kZSAxMDA2NDQgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3Rl
ZGZhaWx1cmVzX3VuaXR0ZXN0LnB5CgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDJiYTc3NmYuLmU2NmIyYmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAorMjAxNC0xMC0y
MSAgSmFrZSBOaWVsc2VuICA8amFjb2JfbmllbHNlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUGF0
Y2hBbmFseXNpc1Rhc2suX3Rlc3RfcGF0Y2goKSBuZWVkcyByZWZhY3RvcmluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3OTA0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5OgorICAgICAgICBGaXhl
cyBzZXZlcmFsIHNtYWxsIGJ1Z3MsIGFuZCBtYWtlcyBtaW5vciBjaGFuZ2VzIHRvIGFjY29tb2Rh
dGUgdGhlCisgICAgICAgIGNoYW5nZXMgaW4gUGF0Y2hBbmFseXNpc1Rhc2suCisgICAgICAgIChN
b2NrQ29tbWl0UXVldWUucmVmZXRjaF9wYXRjaCk6CisgICAgICAgIChNb2NrQ29tbWl0UXVldWUu
dGVzdF9yZXN1bHRzKToKKyAgICAgICAgKHRlc3RfZmxha3lfdGVzdF9mYWlsdXJlKToKKyAgICAg
ICAgKHRlc3RfZmFpbGVkX2FyY2hpdmUpOgorICAgICAgICAodGVzdF92ZXJ5X3JlZF90cmVlX3Jl
dHJ5KToKKyAgICAgICAgKF9leHBlY3RfdmFsaWRhdGUuTW9ja0RlbGVnYXRlLnJlZmV0Y2hfcGF0
Y2gpOgorICAgICAgICAoTW9ja0NvbW1pdFF1ZXVlLmV4cGVjdGVkX2ZhaWx1cmVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKF9leHBlY3RfdmFsaWRhdGUuTW9ja0RlbGVnYXRlLmV4cGVjdGVkX2ZhaWx1
cmVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVj
dGVkZmFpbHVyZXMucHk6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9leHBlY3RlZGZhaWx1cmVzX3VuaXR0ZXN0LnB5OiBSZW1vdmVkLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHk6CisgICAgICAgIFJl
bW92ZXMgdGhlIHVuZXhwZWN0ZWRfZmFpbHVyZXMgbWVtYmVyLCBhZGRzIHRoZSBfY2xlYW5fdHJl
ZV9yZXN1bHRzCisgICAgICAgIG1lbWJlciwgYWRkcyBhIGhlbHBlciBmdW5jdGlvbiBmb3IgX3Rl
c3RfcGF0Y2gsIGFuZCByZWZhY3RvcnMKKyAgICAgICAgX3Rlc3RfcGF0Y2ggdG8gYmUgbW9yZSBy
ZWFkYWJsZS4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9faW5pdF9fKToKKyAgICAgICAg
KFBhdGNoQW5hbHlzaXNUYXNrLl9jb250aW51ZV90ZXN0aW5nX3BhdGNoX3RoYXRfZXhjZWVkZWRf
ZmFpbHVyZV9saW1pdF9vbl9maXJzdF9vcl9zZWNvbmRfdHJ5KToKKyAgICAgICAgKFBhdGNoQW5h
bHlzaXNUYXNrLl90ZXN0X3BhdGNoKToKKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLnJlc3Vs
dHNfZnJvbV90ZXN0X3J1bl93aXRob3V0X3BhdGNoKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5OgorICAgICAgICBSZW1vdmVz
IEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtJ3MgZGVwZW5kYW5jeSBvbiBFeHBlY3RlZEZhaWx1
cmVzLiAKKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmJlZ2luX3dvcmtfcXVl
dWUpOgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uX2ZhaWxpbmdfdGVzdHNf
bWVzc2FnZSk6CisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5jb21tYW5kX2Zh
aWxlZCk6CisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5leHBlY3RlZF9mYWls
dXJlcyk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weToKKyAgICAgICAgTWFrZXMgY2hhbmdlcyB0
byBhY2NvbW9kYXRlIHRoZSBjaGFuZ2VzIG1hZGUgdG8gUGF0Y2hBbmFseXNpc1Rhc2suCisgICAg
ICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9mYWlsaW5nX3Rlc3RzX21l
c3NhZ2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9wZXJmYWxp
emVyLnB5OgorICAgICAgICBSZW1vdmVzIFBlcmZhbGl6ZXIncyBkZXBlbmRhbmN5IG9uIEV4cGVj
dGVkRmFpbHVyZXMuIAorICAgICAgICAoUGVyZmFsaXplclRhc2sucmVmZXRjaF9wYXRjaCk6Cisg
ICAgICAgIChQZXJmYWxpemVyVGFzay5leHBlY3RlZF9mYWlsdXJlcyk6IERlbGV0ZWQuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weToKKyAgICAgICAg
UmVtb3ZlcyBDb21taXRRdWV1ZSdzIGRlcGVuZGFuY3kgb24gRXhwZWN0ZWRGYWlsdXJlcywgYW5k
IGFkZHMgYW4KKyAgICAgICAgaW5pdGlhbGl6ZXIgdG8gYWxsb3cgZm9yIG1vY2sgaW5qZWN0aW9u
LgorICAgICAgICAoQ29tbWl0UXVldWUuX19pbml0X18pOgorICAgICAgICAoQ29tbWl0UXVldWUu
YmVnaW5fd29ya19xdWV1ZSk6CisgICAgICAgIChDb21taXRRdWV1ZS5wcm9jZXNzX3dvcmtfaXRl
bSk6CisgICAgICAgIChDb21taXRRdWV1ZS5fZmFpbGluZ190ZXN0c19tZXNzYWdlKToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5Ogor
ICAgICAgICBSZW1vdmVzIGRlcGVuZGFuY3kgb24gRXhwZWN0ZWRGYWlsdXJlcywgYW5kIGluc3Rl
YWQgdXNlcyBtb2NrCisgICAgICAgIGluamVjdGlvbi4KKyAgICAgICAgKE1vY2tDb21taXRRdWV1
ZVRhc2spOgorICAgICAgICAoTW9ja0NvbW1pdFF1ZXVlVGFzay5yZXN1bHRzX2Zyb21fcGF0Y2hf
dGVzdF9ydW4pOgorICAgICAgICAoTW9ja0NvbW1pdFF1ZXVlVGFzay5yZXN1bHRzX2Zyb21fdGVz
dF9ydW5fd2l0aG91dF9wYXRjaCk6CisgICAgICAgIChtb2NrX3J1bl93ZWJraXRfcGF0Y2gpOgor
CiAyMDE0LTEwLTIwICBUYW5heSBDICA8dGFuYXkuY0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBb
R1RLXVtNaW5pYnJvd3Nlcl0gRXNjYXBlIGtleSBkb2VzIG5vdCBoaWRlIHRoZSBzZWFyY2ggYm94
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVl
dGFza191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0
cXVldWV0YXNrX3VuaXR0ZXN0LnB5CmluZGV4IGRjNGUzZDMuLmVjMDUxMTkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNr
X3VuaXR0ZXN0LnB5CkBAIC0zOCw3ICszOCw2IEBAIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3Rz
Lm1vZGVscyBpbXBvcnQgdGVzdF9yZXN1bHRzCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5t
b2RlbHMgaW1wb3J0IHRlc3RfZmFpbHVyZXMKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5tb2Nr
IGltcG9ydCBNb2NrCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmNvbW1pdHF1ZXVldGFzayBpbXBv
cnQgKgotZnJvbSB3ZWJraXRweS50b29sLmJvdC5leHBlY3RlZGZhaWx1cmVzIGltcG9ydCBFeHBl
Y3RlZEZhaWx1cmVzCiBmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tUb29s
CiAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKQEAgLTY5LDExICs2OCw4IEBA
IGNsYXNzIE1vY2tDb21taXRRdWV1ZShDb21taXRRdWV1ZVRhc2tEZWxlZ2F0ZSk6CiAgICAgZGVm
IHJlZmV0Y2hfcGF0Y2goc2VsZiwgcGF0Y2gpOgogICAgICAgICByZXR1cm4gcGF0Y2gKIAotICAg
IGRlZiBleHBlY3RlZF9mYWlsdXJlcyhzZWxmKToKLSAgICAgICAgcmV0dXJuIEV4cGVjdGVkRmFp
bHVyZXMoKQotCiAgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKLSAgICAgICAgcmV0dXJuIExh
eW91dFRlc3RSZXN1bHRzKHRlc3RfcmVzdWx0cz1bXSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVf
bGltaXQ9VHJ1ZSkKKyAgICAgICAgcmV0dXJuIExheW91dFRlc3RSZXN1bHRzKHRlc3RfcmVzdWx0
cz1bXSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFsc2UpCiAKICAgICBkZWYgcmVw
b3J0X2ZsYWt5X3Rlc3RzKHNlbGYsIHBhdGNoLCBmbGFreV9yZXN1bHRzLCByZXN1bHRzX2FyY2hp
dmUpOgogICAgICAgICBmbGFreV90ZXN0cyA9IFtyZXN1bHQudGVzdF9uYW1lIGZvciByZXN1bHQg
aW4gZmxha3lfcmVzdWx0c10KQEAgLTI4MSw3ICsyNzcsNyBAQCBjb21tYW5kX2ZhaWxlZDogZmFp
bHVyZV9tZXNzYWdlPSdVbmFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCcgc2NyaXB0X2Vycm9y
PSdNTwogICAgICAgICBdKQogICAgICAgICAjIENvbW1pdFF1ZXVlVGFzayB3aWxsIG9ubHkgcmVw
b3J0IGZsYWt5IHRlc3RzIGlmIHdlIHN1Y2Nlc3NmdWxseSBwYXJzZWQKICAgICAgICAgIyByZXN1
bHRzLmpzb24gYW5kIHJldHVybmVkIGEgTGF5b3V0VGVzdFJlc3VsdHMgb2JqZWN0LCBzbyB3ZSBm
YWtlIG9uZS4KLSAgICAgICAgY29tbWl0X3F1ZXVlLnRlc3RfcmVzdWx0cyA9IGxhbWJkYTogTGF5
b3V0VGVzdFJlc3VsdHModGVzdF9yZXN1bHRzPVtdLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9s
aW1pdD1UcnVlKQorICAgICAgICBjb21taXRfcXVldWUudGVzdF9yZXN1bHRzID0gbGFtYmRhOiBM
YXlvdXRUZXN0UmVzdWx0cyh0ZXN0X3Jlc3VsdHM9W10sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJl
X2xpbWl0PUZhbHNlKQogICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIicnVuX3dlYmtpdF9wYXRj
aDogWydjbGVhbiddCiBjb21tYW5kX3Bhc3NlZDogc3VjY2Vzc19tZXNzYWdlPSdDbGVhbmVkIHdv
cmtpbmcgZGlyZWN0b3J5JyBwYXRjaD0nMTAwMDAnCiBydW5fd2Via2l0X3BhdGNoOiBbJ3VwZGF0
ZSddCkBAIC0zMTIsNyArMzA4LDcgQEAgY29tbWFuZF9wYXNzZWQ6IHN1Y2Nlc3NfbWVzc2FnZT0n
TGFuZGVkIHBhdGNoJyBwYXRjaD0nMTAwMDAnCiAgICAgICAgICAgICBOb25lLAogICAgICAgICAg
ICAgU2NyaXB0RXJyb3IoIk1PQ0sgdGVzdHMgZmFpbHVyZSIpLAogICAgICAgICBdKQotICAgICAg
ICBjb21taXRfcXVldWUudGVzdF9yZXN1bHRzID0gbGFtYmRhOiBMYXlvdXRUZXN0UmVzdWx0cyh0
ZXN0X3Jlc3VsdHM9W10sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PVRydWUpCisgICAg
ICAgIGNvbW1pdF9xdWV1ZS50ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6IExheW91dFRlc3RSZXN1bHRz
KHRlc3RfcmVzdWx0cz1bXSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFsc2UpCiAg
ICAgICAgICMgSXQncyBwb3NzaWJsZSBkZWxlZ2F0ZSB0byBmYWlsIHRvIGFyY2hpdmUgbGF5b3V0
IHRlc3RzLCBkb24ndCB0cnkgdG8gcmVwb3J0CiAgICAgICAgICMgZmxha3kgdGVzdHMgd2hlbiB0
aGF0IGhhcHBlbnMuCiAgICAgICAgIGNvbW1pdF9xdWV1ZS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1
bHRzID0gbGFtYmRhIHBhdGNoOiBOb25lCkBAIC00MDksNiArNDA1LDcgQEAgY29tbWFuZF9mYWls
ZWQ6IGZhaWx1cmVfbWVzc2FnZT0nUGF0Y2ggZG9lcyBub3QgcGFzcyB0ZXN0cycgc2NyaXB0X2Vy
cm9yPSdNT0NLIHQKIGFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHM6IHBhdGNoPScxMDAwMCcKIHJ1
bl93ZWJraXRfcGF0Y2g6IFsnYnVpbGQtYW5kLXRlc3QnLCAnLS1uby1jbGVhbicsICctLW5vLXVw
ZGF0ZScsICctLXRlc3QnLCAnLS1ub24taW50ZXJhY3RpdmUnXQogY29tbWFuZF9mYWlsZWQ6IGZh
aWx1cmVfbWVzc2FnZT0nUGF0Y2ggZG9lcyBub3QgcGFzcyB0ZXN0cycgc2NyaXB0X2Vycm9yPSdN
T0NLIHRlc3QgZmFpbHVyZSBhZ2FpbicgcGF0Y2g9JzEwMDAwJworYXJjaGl2ZV9sYXN0X3Rlc3Rf
cmVzdWx0czogcGF0Y2g9JzEwMDAwJwogIiIiCiAgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2df
ZXhlY3V0aXZlPVRydWUpCiAgICAgICAgIHBhdGNoID0gdG9vbC5idWdzLmZldGNoX2F0dGFjaG1l
bnQoMTAwMDApCkBAIC00OTcsMTIgKzQ5NCwxMCBAQCBjb21tYW5kX3Bhc3NlZDogc3VjY2Vzc19t
ZXNzYWdlPSdMYW5kZWQgcGF0Y2gnIHBhdGNoPScxMDAwMCcKICAgICAgICAgICAgIE5vbmUsCiAg
ICAgICAgICAgICBOb25lLAogICAgICAgICAgICAgU2NyaXB0RXJyb3IoIk1PQ0sgdGVzdCBmYWls
dXJlIiksCi0gICAgICAgICAgICBTY3JpcHRFcnJvcigiTU9DSyB0ZXN0IGZhaWx1cmUgYWdhaW4i
KSwKICAgICAgICAgICAgIFNjcmlwdEVycm9yKCJNT0NLIGNsZWFuIHRlc3QgZmFpbHVyZSIpLAog
ICAgICAgICBdLCBbCiAgICAgICAgICAgICBsb3RzX29mX2ZhaWxpbmdfdGVzdHMsCiAgICAgICAg
ICAgICBsb3RzX29mX2ZhaWxpbmdfdGVzdHMsCi0gICAgICAgICAgICBsb3RzX29mX2ZhaWxpbmdf
dGVzdHMsCiAgICAgICAgIF0pCiAKICAgICAgICAgIyBUZXN0cyBhbHdheXMgZmFpbCwgYW5kIHJl
dHVybiBzbyBtYW55IGZhaWx1cmVzIHRoYXQgd2UgZG8gbm90CkBAIC01MjEsOSArNTE2LDYgQEAg
Y29tbWFuZF9wYXNzZWQ6IHN1Y2Nlc3NfbWVzc2FnZT0nQnVpbHQgcGF0Y2gnIHBhdGNoPScxMDAw
MCcKIHJ1bl93ZWJraXRfcGF0Y2g6IFsnYnVpbGQtYW5kLXRlc3QnLCAnLS1uby1jbGVhbicsICct
LW5vLXVwZGF0ZScsICctLXRlc3QnLCAnLS1ub24taW50ZXJhY3RpdmUnXQogY29tbWFuZF9mYWls
ZWQ6IGZhaWx1cmVfbWVzc2FnZT0nUGF0Y2ggZG9lcyBub3QgcGFzcyB0ZXN0cycgc2NyaXB0X2Vy
cm9yPSdNT0NLIHRlc3QgZmFpbHVyZScgcGF0Y2g9JzEwMDAwJwogYXJjaGl2ZV9sYXN0X3Rlc3Rf
cmVzdWx0czogcGF0Y2g9JzEwMDAwJwotcnVuX3dlYmtpdF9wYXRjaDogWydidWlsZC1hbmQtdGVz
dCcsICctLW5vLWNsZWFuJywgJy0tbm8tdXBkYXRlJywgJy0tdGVzdCcsICctLW5vbi1pbnRlcmFj
dGl2ZSddCi1jb21tYW5kX2ZhaWxlZDogZmFpbHVyZV9tZXNzYWdlPSdQYXRjaCBkb2VzIG5vdCBw
YXNzIHRlc3RzJyBzY3JpcHRfZXJyb3I9J01PQ0sgdGVzdCBmYWlsdXJlIGFnYWluJyBwYXRjaD0n
MTAwMDAnCi1hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzOiBwYXRjaD0nMTAwMDAnCiBydW5fd2Vi
a2l0X3BhdGNoOiBbJ2J1aWxkLWFuZC10ZXN0JywgJy0tZm9yY2UtY2xlYW4nLCAnLS1uby11cGRh
dGUnLCAnLS1idWlsZCcsICctLXRlc3QnLCAnLS1ub24taW50ZXJhY3RpdmUnXQogY29tbWFuZF9m
YWlsZWQ6IGZhaWx1cmVfbWVzc2FnZT0nVW5hYmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRj
aCAodHJlZSBpcyByZWQ/KScgc2NyaXB0X2Vycm9yPSdNT0NLIGNsZWFuIHRlc3QgZmFpbHVyZScg
cGF0Y2g9JzEwMDAwJwogIiIiCkBAIC02MDQsOSArNTk2LDYgQEAgY29tbWFuZF9mYWlsZWQ6IGZh
aWx1cmVfbWVzc2FnZT0nVW5hYmxlIHRvIGxhbmQgcGF0Y2gnIHNjcmlwdF9lcnJvcj0nTU9DSyBs
YW5kIGYKICAgICAgICAgICAgIGRlZiByZWZldGNoX3BhdGNoKHNlbGYsIHBhdGNoKToKICAgICAg
ICAgICAgICAgICByZXR1cm4gcGF0Y2gKIAotICAgICAgICAgICAgZGVmIGV4cGVjdGVkX2ZhaWx1
cmVzKHNlbGYpOgotICAgICAgICAgICAgICAgIHJldHVybiBFeHBlY3RlZEZhaWx1cmVzKCkKLQog
ICAgICAgICB0YXNrID0gQ29tbWl0UXVldWVUYXNrKE1vY2tEZWxlZ2F0ZSgpLCBwYXRjaCkKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnZhbGlkYXRlKCksIGlzX3ZhbGlkKQogCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXMu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXMucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlMzRjNjguLjAwMDAwMDAKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsNjAgKzAsMCBAQAotIyBDb3B5cmlnaHQgKGMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMg
bWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotY2xhc3MgRXhwZWN0
ZWRGYWlsdXJlcyhvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2Vs
Zi5fZmFpbHVyZXMgPSBzZXQoKQotICAgICAgICBzZWxmLl9pc190cnVzdHdvcnRoeSA9IFRydWUK
LQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBfaGFzX2ZhaWx1cmVzKGNscywgcmVzdWx0cyk6
Ci0gICAgICAgIHJldHVybiBib29sKHJlc3VsdHMgYW5kIHJlc3VsdHMuZmFpbGluZ190ZXN0cygp
KQotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIF9zaG91bGRfdHJ1c3QoY2xzLCByZXN1bHRz
KToKLSAgICAgICAgcmV0dXJuIGJvb2wocmVzdWx0cyBhbmQgbm90IHJlc3VsdHMuZGlkX2V4Y2Vl
ZF90ZXN0X2ZhaWx1cmVfbGltaXQoKSkKLQotICAgIGRlZiBmYWlsdXJlc193ZXJlX2V4cGVjdGVk
KHNlbGYsIHJlc3VsdHMpOgotICAgICAgICBpZiBub3Qgc2VsZi5faXNfdHJ1c3R3b3J0aHk6Ci0g
ICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgaWYgbm90IHNlbGYuX3Nob3VsZF90cnVz
dChyZXN1bHRzKToKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICByZXR1cm4gc2V0
KHJlc3VsdHMuZmFpbGluZ190ZXN0cygpKSA8PSBzZWxmLl9mYWlsdXJlcwotCi0gICAgZGVmIHVu
ZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQoc2VsZiwgcmVzdWx0cyk6Ci0gICAgICAgIGlmIG5v
dCBzZWxmLl9pc190cnVzdHdvcnRoeToKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAg
IGlmIG5vdCBzZWxmLl9oYXNfZmFpbHVyZXMocmVzdWx0cyk6Ci0gICAgICAgICAgICByZXR1cm4g
Tm9uZQotICAgICAgICByZXR1cm4gc2V0KHJlc3VsdHMuZmFpbGluZ190ZXN0cygpKSAtIHNlbGYu
X2ZhaWx1cmVzCi0KLSAgICBkZWYgdXBkYXRlKHNlbGYsIHJlc3VsdHMpOgotICAgICAgICBpZiBy
ZXN1bHRzOgotICAgICAgICAgICAgc2VsZi5fZmFpbHVyZXMgPSBzZXQocmVzdWx0cy5mYWlsaW5n
X3Rlc3RzKCkpCi0gICAgICAgICAgICBzZWxmLl9pc190cnVzdHdvcnRoeSA9IHNlbGYuX3Nob3Vs
ZF90cnVzdChyZXN1bHRzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9leHBlY3RlZGZhaWx1cmVzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzX3VuaXR0ZXN0LnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhMjdhNTRkLi4wMDAwMDAwCi0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlc191bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBA
IC0xLDk1ICswLDAgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMK
LSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
IyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
IyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1pbXBvcnQgdW5pdHRlc3QKLQotZnJv
bSB3ZWJraXRweS50b29sLmJvdC5leHBlY3RlZGZhaWx1cmVzIGltcG9ydCBFeHBlY3RlZEZhaWx1
cmVzCi0KLQotY2xhc3MgTW9ja1Jlc3VsdHMob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgZmFpbGluZ190ZXN0cz1bXSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFsc2Up
OgotICAgICAgICBzZWxmLl9mYWlsaW5nX3Rlc3RzID0gZmFpbGluZ190ZXN0cwotICAgICAgICBz
ZWxmLl9kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCA9IGRpZF9leGNlZWRfdGVzdF9mYWls
dXJlX2xpbWl0Ci0KLSAgICBkZWYgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoc2VsZik6
Ci0gICAgICAgIHJldHVybiBzZWxmLl9kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdAotCi0g
ICAgZGVmIGZhaWxpbmdfdGVzdHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9mYWlsaW5n
X3Rlc3RzCi0KLQotY2xhc3MgRXhwZWN0ZWRGYWlsdXJlc1Rlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgotICAgIGRlZiBfYXNzZXJ0X2Nhbl90cnVzdChzZWxmLCByZXN1bHRzLCBjYW5fdHJ1c3QpOgot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEV4cGVjdGVkRmFpbHVyZXMuX3Nob3VsZF90cnVzdChy
ZXN1bHRzKSwgY2FuX3RydXN0KQotCi0gICAgZGVmIHRlc3RfY2FuX3RydXN0X3Jlc3VsdHMoc2Vs
Zik6Ci0gICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTm9uZSwgRmFsc2UpCi0gICAgICAg
IHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bXSwgZGlk
X2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFsc2UpLCBUcnVlKQotICAgICAgICBzZWxmLl9h
c3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9W10sIGRpZF9leGNlZWRf
dGVzdF9mYWlsdXJlX2xpbWl0PVRydWUpLCBGYWxzZSkKLSAgICAgICAgc2VsZi5fYXNzZXJ0X2Nh
bl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3RzPVsxXSwgZGlkX2V4Y2VlZF90ZXN0X2Zh
aWx1cmVfbGltaXQ9RmFsc2UpLCBUcnVlKQotICAgICAgICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0
KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9WzFdLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9s
aW1pdD1UcnVlKSwgRmFsc2UpCi0gICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jl
c3VsdHMoZmFpbGluZ190ZXN0cz1bMSwgMl0sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0
PUZhbHNlKSwgVHJ1ZSkKLSAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVzdWx0
cyhmYWlsaW5nX3Rlc3RzPVsxLCAyXSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9VHJ1
ZSksIEZhbHNlKQotCi0gICAgZGVmIF9hc3NlcnRfZXhwZWN0ZWQoc2VsZiwgZXhwZWN0ZWRfZmFp
bHVyZXMsIGZhaWx1cmVzLCBleHBlY3RlZCk6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhw
ZWN0ZWRfZmFpbHVyZXMuZmFpbHVyZXNfd2VyZV9leHBlY3RlZChNb2NrUmVzdWx0cyhmYWlsdXJl
cykpLCBleHBlY3RlZCkKLQotICAgIGRlZiB0ZXN0X2ZhaWx1cmVzX3dlcmVfZXhwZWN0ZWQoc2Vs
Zik6Ci0gICAgICAgIGZhaWx1cmVzID0gRXhwZWN0ZWRGYWlsdXJlcygpCi0gICAgICAgIGZhaWx1
cmVzLnVwZGF0ZShNb2NrUmVzdWx0cyhbJ2Zvby5odG1sJ10pKQotICAgICAgICBzZWxmLl9hc3Nl
cnRfZXhwZWN0ZWQoZmFpbHVyZXMsIFsnZm9vLmh0bWwnXSwgVHJ1ZSkKLSAgICAgICAgc2VsZi5f
YXNzZXJ0X2V4cGVjdGVkKGZhaWx1cmVzLCBbJ2Jhci5odG1sJ10sIEZhbHNlKQotICAgICAgICBz
ZWxmLl9hc3NlcnRfZXhwZWN0ZWQoZmFpbHVyZXMsIFsnYmFyLmh0bWwnLCAnZm9vLmh0bWwnXSwg
RmFsc2UpCi0KLSAgICAgICAgZmFpbHVyZXMudXBkYXRlKE1vY2tSZXN1bHRzKFsnYmF6Lmh0bWwn
XSkpCi0gICAgICAgIHNlbGYuX2Fzc2VydF9leHBlY3RlZChmYWlsdXJlcywgWydiYXouaHRtbCdd
LCBUcnVlKQotICAgICAgICBzZWxmLl9hc3NlcnRfZXhwZWN0ZWQoZmFpbHVyZXMsIFsnZm9vLmh0
bWwnXSwgRmFsc2UpCi0KLSAgICAgICAgZmFpbHVyZXMudXBkYXRlKE1vY2tSZXN1bHRzKFtdKSkK
LSAgICAgICAgc2VsZi5fYXNzZXJ0X2V4cGVjdGVkKGZhaWx1cmVzLCBbJ2Jhei5odG1sJ10sIEZh
bHNlKQotICAgICAgICBzZWxmLl9hc3NlcnRfZXhwZWN0ZWQoZmFpbHVyZXMsIFsnZm9vLmh0bWwn
XSwgRmFsc2UpCi0KLSAgICBkZWYgdGVzdF91bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKHNl
bGYpOgotICAgICAgICBmYWlsdXJlcyA9IEV4cGVjdGVkRmFpbHVyZXMoKQotICAgICAgICBmYWls
dXJlcy51cGRhdGUoTW9ja1Jlc3VsdHMoWydmb28uaHRtbCddKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKE1vY2tSZXN1bHRz
KFsnZm9vLmh0bWwnLCAnYmFyLmh0bWwnXSkpLCBzZXQoWydiYXIuaHRtbCddKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKE1v
Y2tSZXN1bHRzKFsnYmF6Lmh0bWwnXSkpLCBzZXQoWydiYXouaHRtbCddKSkKLSAgICAgICAgdW5i
b3VuZGVkX3Jlc3VsdHMgPSBNb2NrUmVzdWx0cyhbJ2Jhei5odG1sJywgJ3F1eC5odG1sJywgJ3Rh
Y28uaHRtbCddLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1UcnVlKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGZhaWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQodW5i
b3VuZGVkX3Jlc3VsdHMpLCBzZXQoWydiYXouaHRtbCcsICdxdXguaHRtbCcsICd0YWNvLmh0bWwn
XSkpCi0gICAgICAgIHVuYm91bmRlZF9yZXN1bHRzX3dpdGhfZXhpc3RpbmdfZmFpbHVyZSA9IE1v
Y2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1s
J10sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PVRydWUpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCh1bmJvdW5kZWRf
cmVzdWx0c193aXRoX2V4aXN0aW5nX2ZhaWx1cmUpLCBzZXQoWydiYXouaHRtbCcsICdxdXguaHRt
bCcsICd0YWNvLmh0bWwnXSkpCi0KLSAgICBkZWYgdGVzdF91bmV4cGVjdGVkX2ZhaWx1cmVzX29i
c2VydmVkX3doZW5fdHJlZV9pc19ob3NlZChzZWxmKToKLSAgICAgICAgZmFpbHVyZXMgPSBFeHBl
Y3RlZEZhaWx1cmVzKCkKLSAgICAgICAgZmFpbHVyZXMudXBkYXRlKE1vY2tSZXN1bHRzKFsnZm9v
Lmh0bWwnLCAnYmFuYW5hLmh0bWwnXSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9VHJ1
ZSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJl
c19vYnNlcnZlZChNb2NrUmVzdWx0cyhbJ2Zvby5odG1sJywgJ2Jhci5odG1sJ10pKSwgTm9uZSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29i
c2VydmVkKE1vY2tSZXN1bHRzKFsnYmF6Lmh0bWwnXSkpLCBOb25lKQotICAgICAgICB1bmJvdW5k
ZWRfcmVzdWx0cyA9IE1vY2tSZXN1bHRzKFsnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5o
dG1sJ10sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PVRydWUpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCh1bmJvdW5k
ZWRfcmVzdWx0cyksIE5vbmUpCi0gICAgICAgIHVuYm91bmRlZF9yZXN1bHRzX3dpdGhfZXhpc3Rp
bmdfZmFpbHVyZSA9IE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmF6Lmh0bWwnLCAncXV4Lmh0
bWwnLCAndGFjby5odG1sJ10sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PVRydWUpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNl
cnZlZCh1bmJvdW5kZWRfcmVzdWx0c193aXRoX2V4aXN0aW5nX2ZhaWx1cmUpLCBOb25lKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFz
ay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2su
cHkKaW5kZXggMjA1Y2Q2Yi4uZTk1YzIxMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CkBAIC04Miw3ICs4Miw3IEBAIGNs
YXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3NjcmlwdF9lcnJv
ciA9IE5vbmUKICAgICAgICAgc2VsZi5fcmVzdWx0c19hcmNoaXZlX2Zyb21fcGF0Y2hfdGVzdF9y
dW4gPSBOb25lCiAgICAgICAgIHNlbGYuX3Jlc3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5v
bmUKLSAgICAgICAgc2VsZi5fZXhwZWN0ZWRfZmFpbHVyZXMgPSBkZWxlZ2F0ZS5leHBlY3RlZF9m
YWlsdXJlcygpCisgICAgICAgIHNlbGYuX2NsZWFuX3RyZWVfcmVzdWx0cyA9IE5vbmUKIAogICAg
IGRlZiBfcnVuX2NvbW1hbmQoc2VsZiwgY29tbWFuZCwgc3VjY2Vzc19tZXNzYWdlLCBmYWlsdXJl
X21lc3NhZ2UpOgogICAgICAgICB0cnk6CkBAIC0xODMsNiArMTgzLDE5IEBAIGNsYXNzIFBhdGNo
QW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgIHNlY29uZF9mYWlsaW5nX3Rlc3RzID0gW10g
aWYgbm90IHNlY29uZCBlbHNlIHNlY29uZC5mYWlsaW5nX3Rlc3RzKCkKICAgICAgICAgcmV0dXJu
IGZpcnN0X2ZhaWxpbmdfdGVzdHMgIT0gc2Vjb25kX2ZhaWxpbmdfdGVzdHMKIAorICAgIGRlZiBf
Y29udGludWVfdGVzdGluZ19wYXRjaF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmly
c3Rfb3Jfc2Vjb25kX3RyeShzZWxmLCByZXN1bHRzLCByZXN1bHRzX2FyY2hpdmUsIHNjcmlwdF9l
cnJvcik6CisgICAgICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQorICAg
ICAgICBzZWxmLl9jbGVhbl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3Vs
dHMoKQorCisgICAgICAgICMgSWYgd2UndmUgbWFkZSBpdCBoZXJlLCB0aGVuIG1hbnkgKDUwMCkg
dGVzdHMgYXJlIGZhaWxpbmcgd2l0aCB0aGUgcGF0Y2ggYXBwbGllZCwgYnV0CisgICAgICAgICMg
aWYgdGhlIGNsZWFuIHRyZWUgaXMgYWxzbyBmYWlsaW5nIG1hbnkgdGVzdHMsIGV2ZW4gaWYgaXQn
cyBub3QgcXVpdGUgYXMgbWFueSAoNDk1KSwKKyAgICAgICAgIyB0aGVuIHdlIGNhbid0IGJlIGNl
cnRhaW4gdGhhdCB0aGUgZGlzY3JlcGFuY3kgaXNuJ3QgZHVlIHRvIGZsYWtpbmVzcywgYW5kIGhl
bmNlIHdlIG11c3QKKyAgICAgICAgIyBkZWZlciBqdWRnZW1lbnQuCisgICAgICAgIGlmIChsZW4o
cmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkpIC0gbGVuKHNlbGYuX2NsZWFuX3RyZWVfcmVzdWx0cy5m
YWlsaW5nX3Rlc3RzKCkpKSA8PSA1OgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAg
ICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUocmVzdWx0c19hcmNoaXZlLCByZXN1bHRzLCBz
Y3JpcHRfZXJyb3IpCisKICAgICBkZWYgX3Rlc3RfcGF0Y2goc2VsZik6CiAgICAgICAgIGlmIHNl
bGYuX3Rlc3QoKToKICAgICAgICAgICAgIHJldHVybiBUcnVlCkBAIC0xOTQsOCArMjA3LDggQEAg
Y2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgZmlyc3Rfc2NyaXB0X2Vy
cm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCiAgICAgICAgIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lk
ID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAogCi0gICAgICAgIGlmIHNlbGYuX2V4cGVjdGVkX2Zh
aWx1cmVzLmZhaWx1cmVzX3dlcmVfZXhwZWN0ZWQoZmlyc3RfcmVzdWx0cyk6Ci0gICAgICAgICAg
ICByZXR1cm4gVHJ1ZQorICAgICAgICBpZiBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9m
YWlsdXJlX2xpbWl0KCk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fY29udGludWVfdGVzdGlu
Z19wYXRjaF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3Ry
eShmaXJzdF9yZXN1bHRzLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJv
cikKIAogICAgICAgICBpZiBzZWxmLl90ZXN0KCk6CiAgICAgICAgICAgICAjIE9ubHkgcmVwb3J0
IGZsYWt5IHRlc3RzIGlmIHdlIHdlcmUgc3VjY2Vzc2Z1bCBhdCBwYXJzaW5nIHJlc3VsdHMuanNv
biBhbmQgYXJjaGl2aW5nIHJlc3VsdHMuCkBAIC0yMDQsMTAgKzIxNywxNCBAQCBjbGFzcyBQYXRj
aEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIFRydWUKIAogICAgICAg
ICBzZWNvbmRfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAg
IHNlY29uZF9yZXN1bHRzX2FyY2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3RfdGVz
dF9yZXN1bHRzKHNlbGYuX3BhdGNoKQorICAgICAgICBzZWNvbmRfc2NyaXB0X2Vycm9yID0gc2Vs
Zi5fc2NyaXB0X2Vycm9yCisgICAgICAgIHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYu
ZmFpbHVyZV9zdGF0dXNfaWQKKworICAgICAgICBpZiBzZWNvbmRfcmVzdWx0cy5kaWRfZXhjZWVk
X3Rlc3RfZmFpbHVyZV9saW1pdCgpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NvbnRpbnVl
X3Rlc3RpbmdfcGF0Y2hfdGhhdF9leGNlZWRlZF9mYWlsdXJlX2xpbWl0X29uX2ZpcnN0X29yX3Nl
Y29uZF90cnkoc2Vjb25kX3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUsIHNlY29uZF9z
Y3JpcHRfZXJyb3IpCiAKLSAgICAgICAgaWYgKG5vdCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRf
dGVzdF9mYWlsdXJlX2xpbWl0KCkgYW5kCi0gICAgICAgICAgICBub3Qgc2Vjb25kX3Jlc3VsdHMu
ZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKSBhbmQKLSAgICAgICAgICAgIHNlbGYuX3Jl
c3VsdHNfZmFpbGVkX2RpZmZlcmVudF90ZXN0cyhmaXJzdF9yZXN1bHRzLCBzZWNvbmRfcmVzdWx0
cykpOgorICAgICAgICBpZiBzZWxmLl9yZXN1bHRzX2ZhaWxlZF9kaWZmZXJlbnRfdGVzdHMoZmly
c3RfcmVzdWx0cywgc2Vjb25kX3Jlc3VsdHMpOgogICAgICAgICAgICAgIyBXZSBjb3VsZCByZXBv
cnQgZmxha3kgdGVzdHMgaGVyZSwgYnV0IHdlIHdvdWxkIG5lZWQgdG8gYmUgY2FyZWZ1bAogICAg
ICAgICAgICAgIyB0byB1c2Ugc2ltaWxhciBjaGVja3MgdG8gRXhwZWN0ZWRGYWlsdXJlcy5fY2Fu
X3RydXN0X3Jlc3VsdHMKICAgICAgICAgICAgICMgdG8gbWFrZSBzdXJlIHdlIGRvbid0IHJlcG9y
dCBjb25zdGFudCBmYWlsdXJlcyBhcyBmbGFrZXMgd2hlbgpAQCAtMjE1LDMwICsyMzIsMjMgQEAg
Y2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgICAgICMgU2VlIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTI3MgogICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCiAKLSAgICAgICAgIyBBcmNoaXZlIChhbmQgcmVtb3ZlKSBzZWNvbmQgcmVzdWx0
cyBzbyB0ZXN0X3Jlc3VsdHMoKSBhZnRlcgotICAgICAgICAjIGJ1aWxkX2FuZF90ZXN0X3dpdGhv
dXRfcGF0Y2ggd29uJ3QgdXNlIHNlY29uZCByZXN1bHRzIGluc3RlYWQgb2YgdGhlIGNsZWFuLXRy
ZWUgcmVzdWx0cy4KLSAgICAgICAgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2RlbGVn
YXRlLmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCi0KICAgICAgICAgaWYg
c2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCgpOgogICAgICAgICAgICAgIyBUaGUg
ZXJyb3IgZnJvbSB0aGUgcHJldmlvdXMgLl90ZXN0KCkgcnVuIGlzIHJlYWwsIHJlcG9ydCBpdC4K
ICAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKGZpcnN0X3Jlc3VsdHNfYXJj
aGl2ZSwgZmlyc3RfcmVzdWx0cywgZmlyc3Rfc2NyaXB0X2Vycm9yKQogCi0gICAgICAgIGNsZWFu
X3RyZWVfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCi0gICAgICAgIHNl
bGYuX2V4cGVjdGVkX2ZhaWx1cmVzLnVwZGF0ZShjbGVhbl90cmVlX3Jlc3VsdHMpCisgICAgICAg
IHNlbGYuX2NsZWFuX3RyZWVfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygp
CiAKLSAgICAgICAgIyBSZS1jaGVjayBpZiB0aGUgb3JpZ2luYWwgcmVzdWx0cyBhcmUgbm93IHRv
IGJlIGV4cGVjdGVkIHRvIGF2b2lkIGEgZnVsbCByZS10cnkuCi0gICAgICAgIGlmIHNlbGYuX2V4
cGVjdGVkX2ZhaWx1cmVzLmZhaWx1cmVzX3dlcmVfZXhwZWN0ZWQoZmlyc3RfcmVzdWx0cyk6Ci0g
ICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBpZiBzZWxmLl9jbGVhbl90cmVlX3Jlc3Vs
dHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAgIHJldHVybiBG
YWxzZQogCi0gICAgICAgICMgTm93IHRoYXQgd2UgaGF2ZSB1cGRhdGVkIGluZm9ybWF0aW9uIGFi
b3V0IGZhaWxpbmcgdGVzdHMgd2l0aCBhIGNsZWFuIGNoZWNrb3V0LCB3ZSBjYW4KLSAgICAgICAg
IyB0ZWxsIGlmIG91ciBvcmlnaW5hbCBmYWlsdXJlcyB3ZXJlIHVuZXhwZWN0ZWQgYW5kIGZhaWwg
dGhlIHBhdGNoIGlmIG5lY2Vzc2FyeS4KLSAgICAgICAgaWYgc2VsZi5fZXhwZWN0ZWRfZmFpbHVy
ZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZChmaXJzdF9yZXN1bHRzKToKKyAgICAgICAg
aWYgc2V0KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSAtIHNldChzZWxmLl9jbGVhbl90
cmVlX3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKToKICAgICAgICAgICAgIHNlbGYuZmFpbHVyZV9z
dGF0dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAogICAgICAgICAgICAgcmV0dXJuIHNl
bGYucmVwb3J0X2ZhaWx1cmUoZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9yZXN1bHRzLCBm
aXJzdF9zY3JpcHRfZXJyb3IpCiAKLSAgICAgICAgIyBXZSBkb24ndCBrbm93IHdoYXQncyBnb2lu
ZyBvbi4gIFRoZSB0cmVlIGlzIGxpa2VseSB2ZXJ5IHJlZCAoYmV5b25kIG91ciBsYXlvdXQtdGVz
dC1yZXN1bHRzCi0gICAgICAgICMgZmFpbHVyZSBsaW1pdCksIGp1c3Qga2VlcCByZXRyeWluZyB0
aGUgcGF0Y2guIHVudGlsIHNvbWVvbmUgZml4ZXMgdGhlIHRyZWUuCi0gICAgICAgIHJldHVybiBG
YWxzZQorICAgICAgICAjIEF0IHRoaXMgcG9pbnQsIHdlIGtub3cgdGhhdCB0aGUgZmlyc3QgYW5k
IHNlY29uZCBydW5zIGhhZCB0aGUgZXhhY3Qgc2FtZSBmYWlsdXJlcywKKyAgICAgICAgIyBhbmQg
dGhhdCB0aG9zZSBmYWlsdXJlcyBhcmUgYWxsIHByZXNlbnQgb24gdGhlIGNsZWFuIHRyZWUsIHNv
IHdlIGNhbiBzYXkgd2l0aCBjZXJ0YWludHkKKyAgICAgICAgIyB0aGF0IHRoZSBwYXRjaCBpcyBn
b29kLgorICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAgZGVmIHJlc3VsdHNfYXJjaGl2ZV9mcm9t
X3BhdGNoX3Rlc3RfcnVuKHNlbGYsIHBhdGNoKToKICAgICAgICAgYXNzZXJ0KHNlbGYuX3BhdGNo
LmlkKCkgPT0gcGF0Y2guaWQoKSkgICMgUGF0Y2hBbmFseXNpc1Rhc2sgaXMgbm90IGN1cnJlbnRs
eSByZS11c2VhYmxlLgpAQCAtMjQ4LDYgKzI1OCwxMCBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFz
ayhvYmplY3QpOgogICAgICAgICBhc3NlcnQoc2VsZi5fcGF0Y2guaWQoKSA9PSBwYXRjaC5pZCgp
KSAgIyBQYXRjaEFuYWx5c2lzVGFzayBpcyBub3QgY3VycmVudGx5IHJlLXVzZWFibGUuCiAgICAg
ICAgIHJldHVybiBzZWxmLl9yZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4KIAorICAgIGRlZiBy
ZXN1bHRzX2Zyb21fdGVzdF9ydW5fd2l0aG91dF9wYXRjaChzZWxmLCBwYXRjaCk6CisgICAgICAg
IGFzc2VydChzZWxmLl9wYXRjaC5pZCgpID09IHBhdGNoLmlkKCkpICAjIFBhdGNoQW5hbHlzaXNU
YXNrIGlzIG5vdCBjdXJyZW50bHkgcmUtdXNlYWJsZS4KKyAgICAgICAgcmV0dXJuIHNlbGYuX2Ns
ZWFuX3RyZWVfcmVzdWx0cworCiAgICAgZGVmIHJlcG9ydF9mYWlsdXJlKHNlbGYsIHJlc3VsdHNf
YXJjaGl2ZT1Ob25lLCByZXN1bHRzPU5vbmUsIHNjcmlwdF9lcnJvcj1Ob25lKToKICAgICAgICAg
aWYgbm90IHNlbGYudmFsaWRhdGUoKToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5
c3RlbS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5p
bmdzeXN0ZW0ucHkKaW5kZXggMTVmNjdmMi4uNmNmZGUzYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5
CkBAIC0zNSw3ICszNSw2IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5wb3J0cyBpbXBv
cnQgRGVwcmVjYXRlZFBvcnQKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVt
IGltcG9ydCBGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZl
IGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS50b29sLmJvdC5lYXJseXdhcm5pbmdz
eXN0ZW10YXNrIGltcG9ydCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrLCBFYXJseVdhcm5pbmdTeXN0
ZW1UYXNrRGVsZWdhdGUKLWZyb20gd2Via2l0cHkudG9vbC5ib3QuZXhwZWN0ZWRmYWlsdXJlcyBp
bXBvcnQgRXhwZWN0ZWRGYWlsdXJlcwogZnJvbSB3ZWJraXRweS50b29sLmJvdC5sYXlvdXR0ZXN0
cmVzdWx0c3JlYWRlciBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIKIGZyb20gd2Via2l0
cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFVuYWJsZVRvQXBwbHlQYXRjaCwg
UGF0Y2hJc05vdFZhbGlkCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnF1ZXVlZW5naW5lIGltcG9y
dCBRdWV1ZUVuZ2luZQpAQCAtNTUsMTIgKzU0LDE1IEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJu
aW5nU3lzdGVtKEFic3RyYWN0UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxl
CiAKICAgICBkZWYgYmVnaW5fd29ya19xdWV1ZShzZWxmKToKICAgICAgICAgQWJzdHJhY3RSZXZp
ZXdRdWV1ZS5iZWdpbl93b3JrX3F1ZXVlKHNlbGYpCi0gICAgICAgIHNlbGYuX2V4cGVjdGVkX2Zh
aWx1cmVzID0gRXhwZWN0ZWRGYWlsdXJlcygpCiAgICAgICAgIHNlbGYuX2xheW91dF90ZXN0X3Jl
c3VsdHNfcmVhZGVyID0gTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIoc2VsZi5fdG9vbCwgc2VsZi5f
cG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgpLCBzZWxmLl9sb2dfZGlyZWN0b3J5KCkpCiAKICAgICBk
ZWYgX2ZhaWxpbmdfdGVzdHNfbWVzc2FnZShzZWxmLCB0YXNrLCBwYXRjaCk6CiAgICAgICAgIHJl
c3VsdHMgPSB0YXNrLnJlc3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1bihwYXRjaCkKLSAgICAgICAg
dW5leHBlY3RlZF9mYWlsdXJlcyA9IHNlbGYuX2V4cGVjdGVkX2ZhaWx1cmVzLnVuZXhwZWN0ZWRf
ZmFpbHVyZXNfb2JzZXJ2ZWQocmVzdWx0cykKKyAgICAgICAgY2xlYW5fcmVzdWx0cyA9IHRhc2su
cmVzdWx0c19mcm9tX3Rlc3RfcnVuX3dpdGhvdXRfcGF0Y2gocGF0Y2gpCisKKyAgICAgICAgdW5l
eHBlY3RlZF9mYWlsdXJlcyA9IE5vbmUKKyAgICAgICAgaWYgcmVzdWx0cyBhbmQgY2xlYW5fcmVz
dWx0czoKKyAgICAgICAgICAgIHVuZXhwZWN0ZWRfZmFpbHVyZXMgPSBsaXN0KHNldChyZXN1bHRz
LmZhaWxpbmdfdGVzdHMoKSkgLSBzZXQoY2xlYW5fcmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkpKQog
ICAgICAgICBpZiBub3QgdW5leHBlY3RlZF9mYWlsdXJlczoKICAgICAgICAgICAgIHJldHVybiBO
b25lCiAgICAgICAgIGlmIHJlc3VsdHMgYW5kIHJlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1
cmVfbGltaXQoKToKQEAgLTExOCw5ICsxMjAsNiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2Fybmlu
Z1N5c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQog
ICAgICAgICBmYWlsdXJlX2xvZyA9IHNlbGYuX2xvZ19mcm9tX3NjcmlwdF9lcnJvcl9mb3JfdXBs
b2FkKHNjcmlwdF9lcnJvcikKICAgICAgICAgcmV0dXJuIHNlbGYuX3VwZGF0ZV9zdGF0dXMobWVz
c2FnZSwgcGF0Y2g9cGF0Y2gsIHJlc3VsdHNfZmlsZT1mYWlsdXJlX2xvZykKIAotICAgIGRlZiBl
eHBlY3RlZF9mYWlsdXJlcyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2V4cGVjdGVkX2Zh
aWx1cmVzCi0KICAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2Vs
Zi5fbGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIucmVzdWx0cygpCiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJu
aW5nc3lzdGVtX3VuaXR0ZXN0LnB5CmluZGV4IDE2NjhiNTYuLjAxYzk2MjggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1f
dW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vh
cmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQpAQCAtMjcsNyArMjcsMTAgQEAKICMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KIAogZnJvbSB3ZWJraXRweS50aGlyZHBhcnR5Lm1vY2sgaW1wb3J0IE1vY2sKK2Zyb20g
d2Via2l0cHkuY29tbW9uLm5ldC5sYXlvdXR0ZXN0cmVzdWx0cyBpbXBvcnQgTGF5b3V0VGVzdFJl
c3VsdHMKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBP
dXRwdXRDYXB0dXJlCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRl
c3RfcmVzdWx0cworZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0
X2ZhaWx1cmVzCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnF1ZXVlZW5naW5lIGltcG9ydCBRdWV1
ZUVuZ2luZQogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLmVhcmx5d2FybmluZ3N5c3RlbSBp
bXBvcnQgKgogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLnF1ZXVlc3Rlc3QgaW1wb3J0IFF1
ZXVlc1Rlc3QKQEAgLTQ0LDkgKzQ3LDExIEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lz
dGVtVGVzdChRdWV1ZXNUZXN0KToKICAgICAgICAgZXdzLmJpbmRfdG9fdG9vbChNb2NrVG9vbCgp
KQogICAgICAgICBld3MuX29wdGlvbnMgPSBNb2NrT3B0aW9ucyhwb3J0PU5vbmUsIGNvbmZpcm09
RmFsc2UpCiAgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBld3Mu
YmVnaW5fd29ya19xdWV1ZSwgZXhwZWN0ZWRfbG9ncz1zZWxmLl9kZWZhdWx0X2JlZ2luX3dvcmtf
cXVldWVfbG9ncyhld3MubmFtZSkpCi0gICAgICAgIGV3cy5fZXhwZWN0ZWRfZmFpbHVyZXMudW5l
eHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCA9IGxhbWJkYSByZXN1bHRzOiBzZXQoWyJmb28uaHRt
bCIsICJiYXIuaHRtbCJdKQogICAgICAgICB0YXNrID0gTW9jaygpCi0gICAgICAgIHRhc2sucmVz
dWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuID0gbGFtYmRhIGE6IE5vbmUKKyAgICAgICAgdGFzay5y
ZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSBsYW1iZGEgYTogTGF5b3V0VGVzdFJlc3VsdHMo
W3Rlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KCJmb28uaHRtbCIsIGZhaWx1cmVzPVt0ZXN0X2ZhaWx1
cmVzLkZhaWx1cmVUZXh0TWlzbWF0Y2goKV0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3Jlc3Vs
dHMuVGVzdFJlc3VsdCgiYmFyLmh0bWwiLCBmYWlsdXJlcz1bdGVzdF9mYWlsdXJlcy5GYWlsdXJl
VGV4dE1pc21hdGNoKCldKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZF9leGNlZWRfdGVzdF9mYWls
dXJlX2xpbWl0PUZhbHNlKQorICAgICAgICB0YXNrLnJlc3VsdHNfZnJvbV90ZXN0X3J1bl93aXRo
b3V0X3BhdGNoID0gbGFtYmRhIGE6IExheW91dFRlc3RSZXN1bHRzKFtdLCBkaWRfZXhjZWVkX3Rl
c3RfZmFpbHVyZV9saW1pdD1GYWxzZSkKICAgICAgICAgcGF0Y2ggPSBld3MuX3Rvb2wuYnVncy5m
ZXRjaF9hdHRhY2htZW50KDEwMDAwKQogICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFs
KGV3cy5fZmFpbGluZ190ZXN0c19tZXNzYWdlKHRhc2ssIHBhdGNoKSwgIk5ldyBmYWlsaW5nIHRl
c3RzOlxuYmFyLmh0bWxcbmZvby5odG1sIikKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL3BlcmZhbGl6ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvcGVyZmFsaXplci5weQppbmRleCBlZDBlMDE1Li4yY2Q1MGRjIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcGVyZmFsaXpl
ci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcGVyZmFsaXpl
ci5weQpAQCAtMjgsNyArMjgsNiBAQAogCiBpbXBvcnQgbG9nZ2luZwogCi1mcm9tIHdlYmtpdHB5
LnRvb2wuYm90LmV4cGVjdGVkZmFpbHVyZXMgaW1wb3J0IEV4cGVjdGVkRmFpbHVyZXMKIGZyb20g
d2Via2l0cHkudG9vbC5ib3QuaXJjX2NvbW1hbmQgaW1wb3J0IElSQ0NvbW1hbmQKIGZyb20gd2Vi
a2l0cHkudG9vbC5ib3QuaXJjX2NvbW1hbmQgaW1wb3J0IEhlbHAKIGZyb20gd2Via2l0cHkudG9v
bC5ib3QuaXJjX2NvbW1hbmQgaW1wb3J0IEhpCkBAIC0xNTEsOSArMTUwLDYgQEAgY2xhc3MgUGVy
ZmFsaXplclRhc2soUGF0Y2hBbmFseXNpc1Rhc2spOgogICAgIGRlZiByZWZldGNoX3BhdGNoKHNl
bGYsIHBhdGNoKToKICAgICAgICAgcmV0dXJuIHNlbGYuX3Rvb2wuYnVncy5mZXRjaF9hdHRhY2ht
ZW50KHBhdGNoLmlkKCkpCiAKLSAgICBkZWYgZXhwZWN0ZWRfZmFpbHVyZXMoc2VsZik6Ci0gICAg
ICAgIHJldHVybiBFeHBlY3RlZEZhaWx1cmVzKCkKLQogICAgIGRlZiBidWlsZF9zdHlsZShzZWxm
KToKICAgICAgICAgcmV0dXJuICJyZWxlYXNlIgogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weQppbmRleCBlMjNmMjM4Li4yM2I3ODU5IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkKQEAgLTQ2LDcg
KzQ2LDYgQEAgZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LnN0YXR1c3NlcnZlciBpbXBvcnQgU3Rh
dHVzU2VydmVyCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBT
Y3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS50b29sLmJvdC5ib3RpbmZvIGltcG9ydCBCb3RJbmZv
CiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmNvbW1pdHF1ZXVldGFzayBpbXBvcnQgQ29tbWl0UXVl
dWVUYXNrLCBDb21taXRRdWV1ZVRhc2tEZWxlZ2F0ZQotZnJvbSB3ZWJraXRweS50b29sLmJvdC5l
eHBlY3RlZGZhaWx1cmVzIGltcG9ydCBFeHBlY3RlZEZhaWx1cmVzCiBmcm9tIHdlYmtpdHB5LnRv
b2wuYm90LmZlZWRlcnMgaW1wb3J0IENvbW1pdFF1ZXVlRmVlZGVyLCBFV1NGZWVkZXIKIGZyb20g
d2Via2l0cHkudG9vbC5ib3QuZmxha3l0ZXN0cmVwb3J0ZXIgaW1wb3J0IEZsYWt5VGVzdFJlcG9y
dGVyCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmxheW91dHRlc3RyZXN1bHRzcmVhZGVyIGltcG9y
dCBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcgpAQCAtMjk5LDYgKzI5OCwxMCBAQCBjbGFzcyBQYXRj
aFByb2Nlc3NpbmdRdWV1ZShBYnN0cmFjdFBhdGNoUXVldWUpOgogCiAKIGNsYXNzIENvbW1pdFF1
ZXVlKFBhdGNoUHJvY2Vzc2luZ1F1ZXVlLCBTdGVwU2VxdWVuY2VFcnJvckhhbmRsZXIsIENvbW1p
dFF1ZXVlVGFza0RlbGVnYXRlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29tbWl0X3F1ZXVl
X3Rhc2tfY2xhc3M9Q29tbWl0UXVldWVUYXNrKToKKyAgICAgICAgc2VsZi5fY29tbWl0X3F1ZXVl
X3Rhc2tfY2xhc3MgPSBjb21taXRfcXVldWVfdGFza19jbGFzcworICAgICAgICBQYXRjaFByb2Nl
c3NpbmdRdWV1ZS5fX2luaXRfXyhzZWxmKQorCiAgICAgbmFtZSA9ICJjb21taXQtcXVldWUiCiAg
ICAgcG9ydF9uYW1lID0gIm1hYy1tb3VudGFpbmxpb24iCiAKQEAgLTMwNyw3ICszMTAsNiBAQCBj
bGFzcyBDb21taXRRdWV1ZShQYXRjaFByb2Nlc3NpbmdRdWV1ZSwgU3RlcFNlcXVlbmNlRXJyb3JI
YW5kbGVyLCBDb21taXRRdWV1ZVRhcwogICAgIGRlZiBiZWdpbl93b3JrX3F1ZXVlKHNlbGYpOgog
ICAgICAgICBQYXRjaFByb2Nlc3NpbmdRdWV1ZS5iZWdpbl93b3JrX3F1ZXVlKHNlbGYpCiAgICAg
ICAgIHNlbGYuY29tbWl0dGVyX3ZhbGlkYXRvciA9IENvbW1pdHRlclZhbGlkYXRvcihzZWxmLl90
b29sKQotICAgICAgICBzZWxmLl9leHBlY3RlZF9mYWlsdXJlcyA9IEV4cGVjdGVkRmFpbHVyZXMo
KQogICAgICAgICBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciA9IExheW91dFRlc3RS
ZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwg
c2VsZi5fbG9nX2RpcmVjdG9yeSgpKQogCiAgICAgZGVmIG5leHRfd29ya19pdGVtKHNlbGYpOgpA
QCAtMzE1LDcgKzMxNyw3IEBAIGNsYXNzIENvbW1pdFF1ZXVlKFBhdGNoUHJvY2Vzc2luZ1F1ZXVl
LCBTdGVwU2VxdWVuY2VFcnJvckhhbmRsZXIsIENvbW1pdFF1ZXVlVGFzCiAKICAgICBkZWYgcHJv
Y2Vzc193b3JrX2l0ZW0oc2VsZiwgcGF0Y2gpOgogICAgICAgICBzZWxmLl9jY193YXRjaGVycyhw
YXRjaC5idWdfaWQoKSkKLSAgICAgICAgdGFzayA9IENvbW1pdFF1ZXVlVGFzayhzZWxmLCBwYXRj
aCkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NvbW1pdF9xdWV1ZV90YXNrX2NsYXNzKHNlbGYsIHBh
dGNoKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBpZiB0YXNrLnJ1bigpOgogICAgICAgICAg
ICAgICAgIHNlbGYuX2RpZF9wYXNzKHBhdGNoKQpAQCAtMzM2LDcgKzMzOCwxMiBAQCBjbGFzcyBD
b21taXRRdWV1ZShQYXRjaFByb2Nlc3NpbmdRdWV1ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVy
LCBDb21taXRRdWV1ZVRhcwogCiAgICAgZGVmIF9mYWlsaW5nX3Rlc3RzX21lc3NhZ2Uoc2VsZiwg
dGFzaywgcGF0Y2gpOgogICAgICAgICByZXN1bHRzID0gdGFzay5yZXN1bHRzX2Zyb21fcGF0Y2hf
dGVzdF9ydW4ocGF0Y2gpCi0gICAgICAgIHVuZXhwZWN0ZWRfZmFpbHVyZXMgPSBzZWxmLl9leHBl
Y3RlZF9mYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKHJlc3VsdHMpCisgICAg
ICAgIGNsZWFuX3Jlc3VsdHMgPSB0YXNrLnJlc3VsdHNfZnJvbV90ZXN0X3J1bl93aXRob3V0X3Bh
dGNoKHBhdGNoKQorCisgICAgICAgIHVuZXhwZWN0ZWRfZmFpbHVyZXMgPSBOb25lCisgICAgICAg
IGlmIHJlc3VsdHMgYW5kIGNsZWFuX3Jlc3VsdHM6CisgICAgICAgICAgICB1bmV4cGVjdGVkX2Zh
aWx1cmVzID0gbGlzdChzZXQocmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkpIC0gc2V0KGNsZWFuX3Jl
c3VsdHMuZmFpbGluZ190ZXN0cygpKSkKKyAgICAgICAgIyBGSVhNRTogQ2FuIHRoaXMgZXZlciBo
YXBwZW4/CiAgICAgICAgIGlmIG5vdCB1bmV4cGVjdGVkX2ZhaWx1cmVzOgogICAgICAgICAgICAg
cmV0dXJuIE5vbmUKICAgICAgICAgaWYgcmVzdWx0cyBhbmQgcmVzdWx0cy5kaWRfZXhjZWVkX3Rl
c3RfZmFpbHVyZV9saW1pdCgpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkKaW5kZXggYzRkMTk0MS4uZTJhNDg4MCAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191
bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVl
dWVzX3VuaXR0ZXN0LnB5CkBAIC0zMSw2ICszMSw3IEBAIGltcG9ydCBTdHJpbmdJTwogCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20gaW1wb3J0IENoZWNrb3V0TmVlZHNVcGRhdGUK
IGZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5zY21fbW9jayBpbXBvcnQgTW9ja1ND
TQorZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmxheW91dHRlc3RyZXN1bHRzIGltcG9ydCBMYXlv
dXRUZXN0UmVzdWx0cwogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmJ1Z3ppbGxhIGltcG9ydCBB
dHRhY2htZW50CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBv
cnQgT3V0cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9y
dCB0ZXN0X3Jlc3VsdHMKQEAgLTI5NSw3ICsyOTYsNiBAQCBNT0NLOiB1cGRhdGVfc3RhdHVzOiBj
b21taXQtcXVldWUgVXBkYXRlZCB3b3JraW5nIGRpcmVjdG9yeQogTU9DSzogdXBkYXRlX3N0YXR1
czogY29tbWl0LXF1ZXVlIFBhdGNoIGRvZXMgbm90IGFwcGx5CiBNT0NLIHNldHRpbmcgZmxhZyAn
Y29tbWl0LXF1ZXVlJyB0byAnLScgb24gYXR0YWNobWVudCAnMTAwMDAnIHdpdGggY29tbWVudCAn
UmVqZWN0aW5nIGF0dGFjaG1lbnQgMTAwMDAgZnJvbSBjb21taXQtcXVldWUuXG5cbk5ldyBmYWls
aW5nIHRlc3RzOgogbW9ja190ZXN0X25hbWUuaHRtbAotYW5vdGhlcl90ZXN0X25hbWUuaHRtbAog
RnVsbCBvdXRwdXQ6IGh0dHA6Ly9kdW1teV91cmwnCiBNT0NLOiB1cGRhdGVfc3RhdHVzOiBjb21t
aXQtcXVldWUgRmFpbAogTU9DSzogcmVsZWFzZV93b3JrX2l0ZW06IGNvbW1pdC1xdWV1ZSAxMDAw
MApAQCAtMzAzLDE0ICszMDMsMjEgQEAgTU9DSzogcmVsZWFzZV93b3JrX2l0ZW06IGNvbW1pdC1x
dWV1ZSAxMDAwMAogICAgICAgICAgICAgImhhbmRsZV9zY3JpcHRfZXJyb3IiOiAiU2NyaXB0RXJy
b3IgZXJyb3IgbWVzc2FnZVxuXG5NT0NLIG91dHB1dFxuIiwKICAgICAgICAgICAgICJoYW5kbGVf
dW5leHBlY3RlZF9lcnJvciI6ICJNT0NLIHNldHRpbmcgZmxhZyAnY29tbWl0LXF1ZXVlJyB0byAn
LScgb24gYXR0YWNobWVudCAnMTAwMDAnIHdpdGggY29tbWVudCAnUmVqZWN0aW5nIGF0dGFjaG1l
bnQgMTAwMDAgZnJvbSBjb21taXQtcXVldWUuXG5cbk1vY2sgZXJyb3IgbWVzc2FnZSdcbiIsCiAg
ICAgICAgIH0KLSAgICAgICAgcXVldWUgPSBDb21taXRRdWV1ZSgpCisKKyAgICAgICAgY2xhc3Mg
TW9ja0NvbW1pdFF1ZXVlVGFzayhDb21taXRRdWV1ZVRhc2spOgorICAgICAgICAgICAgZGVmIHJl
c3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1bihzZWxmLCBwYXRjaCk6CisgICAgICAgICAgICAgICAg
cmV0dXJuIExheW91dFRlc3RSZXN1bHRzKFt0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCgibW9ja190
ZXN0X25hbWUuaHRtbCIsIGZhaWx1cmVzPVt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUZXh0TWlzbWF0
Y2goKV0pXSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFsc2UpCisKKyAgICAgICAg
ICAgIGRlZiByZXN1bHRzX2Zyb21fdGVzdF9ydW5fd2l0aG91dF9wYXRjaChzZWxmLCBwYXRjaCk6
CisgICAgICAgICAgICAgICAgcmV0dXJuIExheW91dFRlc3RSZXN1bHRzKFtdLCBkaWRfZXhjZWVk
X3Rlc3RfZmFpbHVyZV9saW1pdD1GYWxzZSkKKworICAgICAgICBxdWV1ZSA9IENvbW1pdFF1ZXVl
KE1vY2tDb21taXRRdWV1ZVRhc2spCiAKICAgICAgICAgZGVmIG1vY2tfcnVuX3dlYmtpdF9wYXRj
aChjb21tYW5kKToKICAgICAgICAgICAgIGlmIGNvbW1hbmRbMF0gPT0gJ2NsZWFuJyBvciBjb21t
YW5kWzBdID09ICd1cGRhdGUnOgogICAgICAgICAgICAgICAgICMgV2Ugd2FudCBjbGVhbmluZyB0
byBzdWNjZWVkIHNvIHdlIGNhbiBlcnJvciBvdXQgb24gYSBzdGVwCiAgICAgICAgICAgICAgICAg
IyB0aGF0IGNhdXNlcyB0aGUgY29tbWl0LXF1ZXVlIHRvIHJlamVjdCB0aGUgcGF0Y2guCiAgICAg
ICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBxdWV1ZS5fZXhwZWN0ZWRfZmFpbHVyZXMu
dW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCA9IGxhbWJkYSByZXN1bHRzOiBbIm1vY2tfdGVz
dF9uYW1lLmh0bWwiLCAiYW5vdGhlcl90ZXN0X25hbWUuaHRtbCJdCiAgICAgICAgICAgICByYWlz
ZSBTY3JpcHRFcnJvcignTU9DSyBzY3JpcHQgZXJyb3InKQogCiAgICAgICAgIHF1ZXVlLnJ1bl93
ZWJraXRfcGF0Y2ggPSBtb2NrX3J1bl93ZWJraXRfcGF0Y2gKLS0gCjEuOS4zIChBcHBsZSBHaXQt
NTApCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240298</attachid>
            <date>2014-10-22 15:38:48 -0700</date>
            <delta_ts>2014-10-22 15:39:37 -0700</delta_ts>
            <desc>Adds FIXMEs to tests, and sets the test expectations to agree with current behavior.</desc>
            <filename>0001-PatchAnalysisTask._test_patch-needs-refactoring.patch</filename>
            <type>text/plain</type>
            <size>11887</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSAyNWM4Y2EyMzcxZDU1ZDIxMzIzOGE1MmJjZmI3MTdlMDc5MjAzODRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBXZWQsIDIyIE9jdCAyMDE0IDE1OjM2OjQ1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
UGF0Y2hBbmFseXNpc1Rhc2suX3Rlc3RfcGF0Y2goKSBuZWVkcyByZWZhY3RvcmluZy4KIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzc5MDQKClJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgoKKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFz
a191bml0dGVzdC5weToKQWRkcyB0aGUgTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUgY2xh
c3MsIHdoaWNoIG1ha2VzIGl0IGVhc2llcgphbmQgbW9yZSByZWFkYWJsZSB0byBkZWZpbmUgdGVz
dHMgdGhhdCBhcmUgbWVhbnQgdG8gdGVzdCB0aGUgYmVoYXZpb3VyCm9mIFBhdGNoQW5hbHlzaXNU
YXNrLl90ZXN0X3BhdGNoKCksIGFuZCBhZGRzIHNldmVyYWwgdW5pdCB0ZXN0cy4KKEZhaWxpbmdU
ZXN0Q29tbWl0UXVldWUudGVzdF9yZXN1bHRzKToKKFBhdGNoQW5hbHlzaXNSZXN1bHQpOgooTW9j
a1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUpOgooTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVl
dWUuX19pbml0X18pOgooTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUucnVuX2NvbW1hbmQp
OgooTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUuX21vY2tfdGVzdF9yZXN1bHQpOgooTW9j
a1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUudGVzdF9yZXN1bHRzKToKKENvbW1pdFF1ZXVlVGFz
a1Rlc3QuX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3VsdCk6Cih0ZXN0X2ZsYWt5
X3Rlc3RfZmFpbHVyZSk6Cih0ZXN0X2ZhaWxlZF9hcmNoaXZlKToKKHRlc3RfdHdvX2ZsYWt5X3Rl
c3RzKToKKHRlc3Rfb25lX2ZsYWt5X3Rlc3QpOgoodGVzdF92ZXJ5X2ZsYWt5X3BhdGNoKToKKHRl
c3RfdmVyeV9mbGFreV9wYXRjaF93aXRoX3NvbWVfdHJlZV9yZWRuZXNzKToKKHRlc3RfZGlmZmVy
ZW50X3Rlc3RfZmFpbHVyZXMpOgoodGVzdF9kaWZmZXJlbnRfdGVzdF9mYWlsdXJlc193aXRoX3Nv
bWVfdHJlZV9yZWRuZXNzKToKKHRlc3RfbWlsZGx5X2ZsYWt5X3BhdGNoKToKKHRlc3RfbWlsZGx5
X2ZsYWt5X3BhdGNoX3dpdGhfc29tZV90cmVlX3JlZG5lc3MpOgoodGVzdF90cmVlX21vcmVfcmVk
X3RoYW5fcGF0Y2gpOgotLS0KIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgIDMxICsrKysrCiAuLi4vd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVl
dWV0YXNrX3VuaXR0ZXN0LnB5ICB8IDEyOSArKysrKysrKysrKysrKysrKysrKy0KIDIgZmlsZXMg
Y2hhbmdlZCwgMTU3IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGU2NmIyYmIuLmRiN2Y4NzQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAxNC0xMC0yMiAgSmFrZSBOaWVsc2VuICA8amFjb2JfbmllbHNlbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgUGF0Y2hBbmFseXNpc1Rhc2suX3Rlc3RfcGF0Y2goKSBuZWVkcyBy
ZWZhY3RvcmluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzNzkwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3Qu
cHk6CisgICAgICAgIEFkZHMgdGhlIE1vY2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1ZXVlIGNsYXNz
LCB3aGljaCBtYWtlcyBpdCBlYXNpZXIKKyAgICAgICAgYW5kIG1vcmUgcmVhZGFibGUgdG8gZGVm
aW5lIHRlc3RzIHRoYXQgYXJlIG1lYW50IHRvIHRlc3QgdGhlIGJlaGF2aW91cgorICAgICAgICBv
ZiBQYXRjaEFuYWx5c2lzVGFzay5fdGVzdF9wYXRjaCgpLCBhbmQgYWRkcyBzZXZlcmFsIHVuaXQg
dGVzdHMuCisgICAgICAgIChGYWlsaW5nVGVzdENvbW1pdFF1ZXVlLnRlc3RfcmVzdWx0cyk6Cisg
ICAgICAgIChQYXRjaEFuYWx5c2lzUmVzdWx0KToKKyAgICAgICAgKE1vY2tTaW1wbGVUZXN0UGxh
bkNvbW1pdFF1ZXVlKToKKyAgICAgICAgKE1vY2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1ZXVlLl9f
aW5pdF9fKToKKyAgICAgICAgKE1vY2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1ZXVlLnJ1bl9jb21t
YW5kKToKKyAgICAgICAgKE1vY2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1ZXVlLl9tb2NrX3Rlc3Rf
cmVzdWx0KToKKyAgICAgICAgKE1vY2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1ZXVlLnRlc3RfcmVz
dWx0cyk6CisgICAgICAgIChDb21taXRRdWV1ZVRhc2tUZXN0Ll9ydW5fYW5kX2V4cGVjdF9wYXRj
aF9hbmFseXNpc19yZXN1bHQpOgorICAgICAgICAodGVzdF9mbGFreV90ZXN0X2ZhaWx1cmUpOgor
ICAgICAgICAodGVzdF9mYWlsZWRfYXJjaGl2ZSk6CisgICAgICAgICh0ZXN0X3R3b19mbGFreV90
ZXN0cyk6CisgICAgICAgICh0ZXN0X29uZV9mbGFreV90ZXN0KToKKyAgICAgICAgKHRlc3RfdmVy
eV9mbGFreV9wYXRjaCk6CisgICAgICAgICh0ZXN0X3ZlcnlfZmxha3lfcGF0Y2hfd2l0aF9zb21l
X3RyZWVfcmVkbmVzcyk6CisgICAgICAgICh0ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVzKToK
KyAgICAgICAgKHRlc3RfZGlmZmVyZW50X3Rlc3RfZmFpbHVyZXNfd2l0aF9zb21lX3RyZWVfcmVk
bmVzcyk6CisgICAgICAgICh0ZXN0X21pbGRseV9mbGFreV9wYXRjaCk6CisgICAgICAgICh0ZXN0
X21pbGRseV9mbGFreV9wYXRjaF93aXRoX3NvbWVfdHJlZV9yZWRuZXNzKToKKyAgICAgICAgKHRl
c3RfdHJlZV9tb3JlX3JlZF90aGFuX3BhdGNoKToKKwogMjAxNC0xMC0yMSAgSmFrZSBOaWVsc2Vu
ICA8amFjb2JfbmllbHNlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUGF0Y2hBbmFseXNpc1Rhc2su
X3Rlc3RfcGF0Y2goKSBuZWVkcyByZWZhY3RvcmluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weQppbmRl
eCBlYzA1MTE5Li5kMTI0Y2U3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weQpAQCAtMTA3LDEwICsx
MDcsNDIgQEAgY2xhc3MgRmFpbGluZ1Rlc3RDb21taXRRdWV1ZShNb2NrQ29tbWl0UXVldWUpOgog
ICAgICAgICBhc3NlcnQoc2VsZi5fdGVzdF9ydW5fY291bnRlciA+PSAwKQogICAgICAgICBmYWls
dXJlc19mb3JfcnVuID0gc2VsZi5fdGVzdF9mYWlsdXJlX3BsYW5bc2VsZi5fdGVzdF9ydW5fY291
bnRlcl0KICAgICAgICAgYXNzZXJ0KGlzaW5zdGFuY2UoZmFpbHVyZXNfZm9yX3J1biwgbGlzdCkp
Ci0gICAgICAgIHJlc3VsdHMgPSBMYXlvdXRUZXN0UmVzdWx0cyh0ZXN0X3Jlc3VsdHM9bWFwKHNl
bGYuX21vY2tfdGVzdF9yZXN1bHQsIGZhaWx1cmVzX2Zvcl9ydW4pLCBkaWRfZXhjZWVkX3Rlc3Rf
ZmFpbHVyZV9saW1pdD0obGVuKHNlbGYuX3Rlc3RfZmFpbHVyZV9wbGFuW3NlbGYuX3Rlc3RfcnVu
X2NvdW50ZXJdKSA+PSAxMCkpCisgICAgICAgIHJlc3VsdHMgPSBMYXlvdXRUZXN0UmVzdWx0cyh0
ZXN0X3Jlc3VsdHM9bWFwKHNlbGYuX21vY2tfdGVzdF9yZXN1bHQsIGZhaWx1cmVzX2Zvcl9ydW4p
LCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD0obGVuKGZhaWx1cmVzX2Zvcl9ydW4pID49
IDEwKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdHMKIAogCitjbGFzcyBQYXRjaEFuYWx5c2lzUmVz
dWx0KG9iamVjdCk6CisgICAgRkFJTCA9ICJGYWlsIgorICAgIERFRkVSID0gIkRlZmVyIgorICAg
IFBBU1MgPSAiUGFzcyIKKworCitjbGFzcyBNb2NrU2ltcGxlVGVzdFBsYW5Db21taXRRdWV1ZShN
b2NrQ29tbWl0UXVldWUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaXJzdF90ZXN0X2ZhaWx1
cmVzLCBzZWNvbmRfdGVzdF9mYWlsdXJlcywgY2xlYW5fdGVzdF9mYWlsdXJlcyk6CisgICAgICAg
IE1vY2tDb21taXRRdWV1ZS5fX2luaXRfXyhzZWxmLCBbXSkKKyAgICAgICAgc2VsZi5fcGF0Y2hf
dGVzdF9yZXN1bHRzID0gW2ZpcnN0X3Rlc3RfZmFpbHVyZXMsIHNlY29uZF90ZXN0X2ZhaWx1cmVz
XQorICAgICAgICBzZWxmLl9jbGVhbl90ZXN0X3Jlc3VsdHMgPSBbY2xlYW5fdGVzdF9mYWlsdXJl
c10KKyAgICAgICAgc2VsZi5fY3VycmVudF90ZXN0X3Jlc3VsdHMgPSBbXQorCisgICAgZGVmIHJ1
bl9jb21tYW5kKHNlbGYsIGNvbW1hbmQpOgorICAgICAgICBNb2NrQ29tbWl0UXVldWUucnVuX2Nv
bW1hbmQoc2VsZiwgY29tbWFuZCkKKyAgICAgICAgaWYgY29tbWFuZFswXSA9PSAiYnVpbGQtYW5k
LXRlc3QiOgorICAgICAgICAgICAgaWYgIi0tbm8tY2xlYW4iIGluIGNvbW1hbmQ6CisgICAgICAg
ICAgICAgICAgc2VsZi5fY3VycmVudF90ZXN0X3Jlc3VsdHMgPSBzZWxmLl9wYXRjaF90ZXN0X3Jl
c3VsdHMucG9wKDApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuX2N1
cnJlbnRfdGVzdF9yZXN1bHRzID0gc2VsZi5fY2xlYW5fdGVzdF9yZXN1bHRzLnBvcCgwKQorCisg
ICAgICAgICAgICBpZiBzZWxmLl9jdXJyZW50X3Rlc3RfcmVzdWx0czoKKyAgICAgICAgICAgICAg
ICByYWlzZSBTY3JpcHRFcnJvcigiTU9DSyB0ZXN0IGZhaWx1cmUiKQorCisgICAgZGVmIF9tb2Nr
X3Rlc3RfcmVzdWx0KHNlbGYsIHRlc3RuYW1lKToKKyAgICAgICAgcmV0dXJuIHRlc3RfcmVzdWx0
cy5UZXN0UmVzdWx0KHRlc3RuYW1lLCBbdGVzdF9mYWlsdXJlcy5GYWlsdXJlVGV4dE1pc21hdGNo
KCldKQorCisgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgYXNzZXJ0KGlzaW5z
dGFuY2Uoc2VsZi5fY3VycmVudF90ZXN0X3Jlc3VsdHMsIGxpc3QpKQorICAgICAgICByZXR1cm4g
TGF5b3V0VGVzdFJlc3VsdHModGVzdF9yZXN1bHRzPW1hcChzZWxmLl9tb2NrX3Rlc3RfcmVzdWx0
LCBzZWxmLl9jdXJyZW50X3Rlc3RfcmVzdWx0cyksIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xp
bWl0PShsZW4oc2VsZi5fY3VycmVudF90ZXN0X3Jlc3VsdHMpID49IDEwKSkKKworCiAjIFdlIHVz
ZSBHb2xkZW5TY3JpcHRFcnJvciB0byBtYWtlIHN1cmUgdGhhdCB0aGUgY29kZSB1bmRlciB0ZXN0
IHRocm93cyB0aGUKICMgY29ycmVjdCAoaS5lLiwgZ29sZGVuKSBleGNlcHRpb24uCiBjbGFzcyBH
b2xkZW5TY3JpcHRFcnJvcihTY3JpcHRFcnJvcik6CkBAIC0xMTgsNiArMTUwLDIyIEBAIGNsYXNz
IEdvbGRlblNjcmlwdEVycm9yKFNjcmlwdEVycm9yKToKIAogCiBjbGFzcyBDb21taXRRdWV1ZVRh
c2tUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgX3J1bl9hbmRfZXhwZWN0X3BhdGNo
X2FuYWx5c2lzX3Jlc3VsdChzZWxmLCBjb21taXRfcXVldWUsIGV4cGVjdGVkX2FuYWx5c2lzX3Jl
c3VsdCk6CisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAg
ICAgIHBhdGNoID0gdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQoMTAwMDApCisgICAgICAgIHRh
c2sgPSBDb21taXRRdWV1ZVRhc2soY29tbWl0X3F1ZXVlLCBwYXRjaCkKKworICAgICAgICB0cnk6
CisgICAgICAgICAgICByZXN1bHQgPSB0YXNrLnJ1bigpCisgICAgICAgICAgICBpZiByZXN1bHQ6
CisgICAgICAgICAgICAgICAgYW5hbHlzaXNfcmVzdWx0ID0gUGF0Y2hBbmFseXNpc1Jlc3VsdC5Q
QVNTCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGFuYWx5c2lzX3Jlc3VsdCA9
IFBhdGNoQW5hbHlzaXNSZXN1bHQuREVGRVIKKyAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yOgor
ICAgICAgICAgICAgYW5hbHlzaXNfcmVzdWx0ID0gUGF0Y2hBbmFseXNpc1Jlc3VsdC5GQUlMCisK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbmFseXNpc19yZXN1bHQsIGV4cGVjdGVkX2FuYWx5
c2lzX3Jlc3VsdCkKKwogICAgIGRlZiBfcnVuX3Rocm91Z2hfdGFzayhzZWxmLCBjb21taXRfcXVl
dWUsIGV4cGVjdGVkX2xvZ3MsIGV4cGVjdGVkX2V4Y2VwdGlvbj1Ob25lLCBleHBlY3RfcmV0cnk9
RmFsc2UpOgogICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCiAgICAgICAgIHRvb2wgPSBNb2Nr
VG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCkBAIC0yNzcsNyArMzI1LDYgQEAgY29tbWFuZF9mYWls
ZWQ6IGZhaWx1cmVfbWVzc2FnZT0nVW5hYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2gnIHNjcmlw
dF9lcnJvcj0nTU8KICAgICAgICAgXSkKICAgICAgICAgIyBDb21taXRRdWV1ZVRhc2sgd2lsbCBv
bmx5IHJlcG9ydCBmbGFreSB0ZXN0cyBpZiB3ZSBzdWNjZXNzZnVsbHkgcGFyc2VkCiAgICAgICAg
ICMgcmVzdWx0cy5qc29uIGFuZCByZXR1cm5lZCBhIExheW91dFRlc3RSZXN1bHRzIG9iamVjdCwg
c28gd2UgZmFrZSBvbmUuCi0gICAgICAgIGNvbW1pdF9xdWV1ZS50ZXN0X3Jlc3VsdHMgPSBsYW1i
ZGE6IExheW91dFRlc3RSZXN1bHRzKHRlc3RfcmVzdWx0cz1bXSwgZGlkX2V4Y2VlZF90ZXN0X2Zh
aWx1cmVfbGltaXQ9RmFsc2UpCiAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJydW5fd2Via2l0
X3BhdGNoOiBbJ2NsZWFuJ10KIGNvbW1hbmRfcGFzc2VkOiBzdWNjZXNzX21lc3NhZ2U9J0NsZWFu
ZWQgd29ya2luZyBkaXJlY3RvcnknIHBhdGNoPScxMDAwMCcKIHJ1bl93ZWJraXRfcGF0Y2g6IFsn
dXBkYXRlJ10KQEAgLTMwOCw3ICszNTUsNiBAQCBjb21tYW5kX3Bhc3NlZDogc3VjY2Vzc19tZXNz
YWdlPSdMYW5kZWQgcGF0Y2gnIHBhdGNoPScxMDAwMCcKICAgICAgICAgICAgIE5vbmUsCiAgICAg
ICAgICAgICBTY3JpcHRFcnJvcigiTU9DSyB0ZXN0cyBmYWlsdXJlIiksCiAgICAgICAgIF0pCi0g
ICAgICAgIGNvbW1pdF9xdWV1ZS50ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6IExheW91dFRlc3RSZXN1
bHRzKHRlc3RfcmVzdWx0cz1bXSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFsc2Up
CiAgICAgICAgICMgSXQncyBwb3NzaWJsZSBkZWxlZ2F0ZSB0byBmYWlsIHRvIGFyY2hpdmUgbGF5
b3V0IHRlc3RzLCBkb24ndCB0cnkgdG8gcmVwb3J0CiAgICAgICAgICMgZmxha3kgdGVzdHMgd2hl
biB0aGF0IGhhcHBlbnMuCiAgICAgICAgIGNvbW1pdF9xdWV1ZS5hcmNoaXZlX2xhc3RfdGVzdF9y
ZXN1bHRzID0gbGFtYmRhIHBhdGNoOiBOb25lCkBAIC01OTEsNiArNjM3LDgzIEBAIGNvbW1hbmRf
ZmFpbGVkOiBmYWlsdXJlX21lc3NhZ2U9J1VuYWJsZSB0byBsYW5kIHBhdGNoJyBzY3JpcHRfZXJy
b3I9J01PQ0sgbGFuZCBmCiAgICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIHJlYWxseSBiZSBl
eHBlY3RfcmV0cnk9VHJ1ZSBmb3IgYSBiZXR0ZXIgdXNlciBleHBlcmlhbmNlLgogICAgICAgICBz
ZWxmLl9ydW5fdGhyb3VnaF90YXNrKGNvbW1pdF9xdWV1ZSwgZXhwZWN0ZWRfbG9ncywgR29sZGVu
U2NyaXB0RXJyb3IpCiAKKyAgICBkZWYgdGVzdF90d29fZmxha3lfdGVzdHMoc2VsZik6CisgICAg
ICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1ZXVlKAorICAgICAg
ICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1bIkZhaWwxIl0sCisgICAgICAgICAgICBzZWNvbmRf
dGVzdF9mYWlsdXJlcz1bIkZhaWwyIl0sCisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVz
PVsiRmFpbDEiLCAiRmFpbDIiXSkKKworICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBwYXNz
LCBidXQgYXMgb2YgcmlnaHQgbm93LCBpdCBkZWZlcnMuCisgICAgICAgIHNlbGYuX3J1bl9hbmRf
ZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3VsdChjb21taXRfcXVldWUsIFBhdGNoQW5hbHlzaXNS
ZXN1bHQuREVGRVIpCisKKyAgICBkZWYgdGVzdF9vbmVfZmxha3lfdGVzdChzZWxmKToKKyAgICAg
ICAgY29tbWl0X3F1ZXVlID0gTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUoCisgICAgICAg
ICAgICBmaXJzdF90ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiXSwKKyAgICAgICAgICAgIHNlY29uZF90
ZXN0X2ZhaWx1cmVzPVtdLAorICAgICAgICAgICAgY2xlYW5fdGVzdF9mYWlsdXJlcz1bXSkKKwor
ICAgICAgICBzZWxmLl9ydW5fYW5kX2V4cGVjdF9wYXRjaF9hbmFseXNpc19yZXN1bHQoY29tbWl0
X3F1ZXVlLCBQYXRjaEFuYWx5c2lzUmVzdWx0LlBBU1MpCisKKyAgICBkZWYgdGVzdF92ZXJ5X2Zs
YWt5X3BhdGNoKHNlbGYpOgorICAgICAgICBjb21taXRfcXVldWUgPSBNb2NrU2ltcGxlVGVzdFBs
YW5Db21taXRRdWV1ZSgKKyAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFpbHVyZXM9WyJGYWlsMSIs
ICJGYWlsMiIsICJGYWlsMyIsICJGYWlsNCIsICJGYWlsNSJdLAorICAgICAgICAgICAgc2Vjb25k
X3Rlc3RfZmFpbHVyZXM9WyJGYWlsNiIsICJGYWlsNyIsICJGYWlsOCIsICJGYWlsOSIsICJGYWls
MTAiXSwKKyAgICAgICAgICAgIGNsZWFuX3Rlc3RfZmFpbHVyZXM9W10pCisKKyAgICAgICAgIyBG
SVhNRTogVGhpcyBzaG91bGQgYWN0dWFsbHkgZmFpbCwgYnV0IHJpZ2h0IG5vdyBpdCBkZWZlcnMK
KyAgICAgICAgc2VsZi5fcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1p
dF9xdWV1ZSwgUGF0Y2hBbmFseXNpc1Jlc3VsdC5ERUZFUikKKworICAgIGRlZiB0ZXN0X3Zlcnlf
Zmxha3lfcGF0Y2hfd2l0aF9zb21lX3RyZWVfcmVkbmVzcyhzZWxmKToKKyAgICAgICAgY29tbWl0
X3F1ZXVlID0gTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUoCisgICAgICAgICAgICBmaXJz
dF90ZXN0X2ZhaWx1cmVzPVsiUHJlRXhpc3RpbmdGYWlsMSIsICJQcmVFeGlzdGluZ0ZhaWwyIiwg
IkZhaWw2IiwgIkZhaWw3IiwgIkZhaWw4IiwgIkZhaWw5IiwgIkZhaWwxMCJdLAorICAgICAgICAg
ICAgc2Vjb25kX3Rlc3RfZmFpbHVyZXM9WyJQcmVFeGlzdGluZ0ZhaWwxIiwgIlByZUV4aXN0aW5n
RmFpbDIiLCAiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiLCAiRmFpbDQiLCAiRmFpbDUiXSwKKyAg
ICAgICAgICAgIGNsZWFuX3Rlc3RfZmFpbHVyZXM9WyJQcmVFeGlzdGluZ0ZhaWwxIiwgIlByZUV4
aXN0aW5nRmFpbDIiXSkKKworICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBhY3R1YWxseSBm
YWlsLCBidXQgcmlnaHQgbm93IGl0IGRlZmVycworICAgICAgICBzZWxmLl9ydW5fYW5kX2V4cGVj
dF9wYXRjaF9hbmFseXNpc19yZXN1bHQoY29tbWl0X3F1ZXVlLCBQYXRjaEFuYWx5c2lzUmVzdWx0
LkRFRkVSKQorCisgICAgZGVmIHRlc3RfZGlmZmVyZW50X3Rlc3RfZmFpbHVyZXMoc2VsZik6Cisg
ICAgICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1ZXVlKAorICAg
ICAgICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1bIkZhaWwxIiwgIkZhaWwyIiwgIkZhaWwzIiwg
IkZhaWw0IiwgIkZhaWw1IiwgIkZhaWw2Il0sCisgICAgICAgICAgICBzZWNvbmRfdGVzdF9mYWls
dXJlcz1bIkZhaWwxIiwgIkZhaWwyIiwgIkZhaWwzIiwgIkZhaWw0IiwgIkZhaWw1Il0sCisgICAg
ICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPVtdKQorCisgICAgICAgICMgRklYTUU6IFRoaXMg
c2hvdWxkIGFjdHVhbGx5IGZhaWwsIGJ1dCByaWdodCBub3cgaXQgZGVmZXJzCisgICAgICAgIHNl
bGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3VsdChjb21taXRfcXVldWUsIFBh
dGNoQW5hbHlzaXNSZXN1bHQuREVGRVIpCisKKyAgICBkZWYgdGVzdF9kaWZmZXJlbnRfdGVzdF9m
YWlsdXJlc193aXRoX3NvbWVfdHJlZV9yZWRuZXNzKHNlbGYpOgorICAgICAgICBjb21taXRfcXVl
dWUgPSBNb2NrU2ltcGxlVGVzdFBsYW5Db21taXRRdWV1ZSgKKyAgICAgICAgICAgIGZpcnN0X3Rl
c3RfZmFpbHVyZXM9WyJQcmVFeGlzdGluZ0ZhaWwxIiwgIlByZUV4aXN0aW5nRmFpbDIiLCAiRmFp
bDEiLCAiRmFpbDIiLCAiRmFpbDMiLCAiRmFpbDQiLCAiRmFpbDUiLCAiRmFpbDYiXSwKKyAgICAg
ICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1cmVzPVsiUHJlRXhpc3RpbmdGYWlsMSIsICJQcmVFeGlz
dGluZ0ZhaWwyIiwgIkZhaWwxIiwgIkZhaWwyIiwgIkZhaWwzIiwgIkZhaWw0IiwgIkZhaWw1Il0s
CisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPVsiUHJlRXhpc3RpbmdGYWlsMSIsICJQ
cmVFeGlzdGluZ0ZhaWwyIl0pCisKKyAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgYWN0dWFs
bHkgZmFpbCwgYnV0IHJpZ2h0IG5vdyBpdCBkZWZlcnMKKyAgICAgICAgc2VsZi5fcnVuX2FuZF9l
eHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1pdF9xdWV1ZSwgUGF0Y2hBbmFseXNpc1Jl
c3VsdC5ERUZFUikKKworICAgIGRlZiB0ZXN0X21pbGRseV9mbGFreV9wYXRjaChzZWxmKToKKyAg
ICAgICAgY29tbWl0X3F1ZXVlID0gTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUoCisgICAg
ICAgICAgICBmaXJzdF90ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiXSwKKyAgICAgICAgICAgIHNlY29u
ZF90ZXN0X2ZhaWx1cmVzPVsiRmFpbDIiXSwKKyAgICAgICAgICAgIGNsZWFuX3Rlc3RfZmFpbHVy
ZXM9W10pCisKKyAgICAgICAgc2VsZi5fcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVz
dWx0KGNvbW1pdF9xdWV1ZSwgUGF0Y2hBbmFseXNpc1Jlc3VsdC5ERUZFUikKKworICAgIGRlZiB0
ZXN0X21pbGRseV9mbGFreV9wYXRjaF93aXRoX3NvbWVfdHJlZV9yZWRuZXNzKHNlbGYpOgorICAg
ICAgICBjb21taXRfcXVldWUgPSBNb2NrU2ltcGxlVGVzdFBsYW5Db21taXRRdWV1ZSgKKyAgICAg
ICAgICAgIGZpcnN0X3Rlc3RfZmFpbHVyZXM9WyJQcmVFeGlzdGluZ0ZhaWwxIiwgIlByZUV4aXN0
aW5nRmFpbDIiLCAiRmFpbDEiXSwKKyAgICAgICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1cmVzPVsi
UHJlRXhpc3RpbmdGYWlsMSIsICJQcmVFeGlzdGluZ0ZhaWwyIiwgIkZhaWwyIl0sCisgICAgICAg
ICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPVsiUHJlRXhpc3RpbmdGYWlsMSIsICJQcmVFeGlzdGlu
Z0ZhaWwyIl0pCisKKyAgICAgICAgc2VsZi5fcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNf
cmVzdWx0KGNvbW1pdF9xdWV1ZSwgUGF0Y2hBbmFseXNpc1Jlc3VsdC5ERUZFUikKKworICAgIGRl
ZiB0ZXN0X3RyZWVfbW9yZV9yZWRfdGhhbl9wYXRjaChzZWxmKToKKyAgICAgICAgY29tbWl0X3F1
ZXVlID0gTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUoCisgICAgICAgICAgICBmaXJzdF90
ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiXSwKKyAgICAgICAgICAgIHNl
Y29uZF90ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiXSwKKyAgICAgICAg
ICAgIGNsZWFuX3Rlc3RfZmFpbHVyZXM9WyJGYWlsMSIsICJGYWlsMiIsICJGYWlsMyIsICJGYWls
NCJdKQorCisgICAgICAgIHNlbGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3Vs
dChjb21taXRfcXVldWUsIFBhdGNoQW5hbHlzaXNSZXN1bHQuUEFTUykKKwogICAgIGRlZiBfZXhw
ZWN0X3ZhbGlkYXRlKHNlbGYsIHBhdGNoLCBpc192YWxpZCk6CiAgICAgICAgIGNsYXNzIE1vY2tE
ZWxlZ2F0ZShvYmplY3QpOgogICAgICAgICAgICAgZGVmIHJlZmV0Y2hfcGF0Y2goc2VsZiwgcGF0
Y2gpOgotLSAKMS45LjMgKEFwcGxlIEdpdC01MCkKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>