<?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>58146</bug_id>
          
          <creation_ts>2011-04-08 10:46:15 -0700</creation_ts>
          <short_desc>Web Inspector: [Chromium] Add some more tests for detailed heap snapshots UI</short_desc>
          <delta_ts>2011-04-12 05:29:35 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Mikhail Naganov">mnaganov</reporter>
          <assigned_to name="Mikhail Naganov">mnaganov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>382371</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-04-08 10:46:15 -0700</bug_when>
    <thetext>Tests for Comparsion and Dominators views. Should be enough for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382375</commentid>
    <comment_count>1</comment_count>
      <attachid>88840</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-04-08 10:50:06 -0700</bug_when>
    <thetext>Created attachment 88840
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383946</commentid>
    <comment_count>2</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-04-12 05:29:35 -0700</bug_when>
    <thetext>Manually committed http://trac.webkit.org/changeset/83581


2011-04-12  Mikhail Naganov  &lt;mnaganov@chromium.org&gt;

        Reviewed by Pavel Feldman.

        Web Inspector: [Chromium] Add some more tests for detailed heap snapshots UI.
        https://bugs.webkit.org/show_bug.cgi?id=58146

        Tests: inspector/profiler/detailed-heapshots-comparison-expansion-preserved-when-sorting.html
               inspector/profiler/detailed-heapshots-comparison-show-all.html
               inspector/profiler/detailed-heapshots-comparison-show-next.html
               inspector/profiler/detailed-heapshots-comparison-shown-node-count-preserved-when-sorting.html
               inspector/profiler/detailed-heapshots-comparison-sorting.html
               inspector/profiler/detailed-heapshots-containment-shown-node-count-preserved-when-sorting.html
               inspector/profiler/detailed-heapshots-dominators-expansion-preserved-when-sorting.html
               inspector/profiler/detailed-heapshots-dominators-show-all.html
               inspector/profiler/detailed-heapshots-dominators-show-next.html
               inspector/profiler/detailed-heapshots-dominators-shown-node-count-preserved-when-sorting.html
               inspector/profiler/detailed-heapshots-dominators-sorting.html
               inspector/profiler/detailed-heapshots-summary-shown-node-count-preserved-when-sorting.html

        * inspector/front-end/DetailedHeapshotView.js:
        (WebInspector.HeapSnapshotDiffDataGrid):

2011-04-12  Mikhail Naganov  &lt;mnaganov@chromium.org&gt;

        Reviewed by Pavel Feldman.

        Web Inspector: [Chromium] Add some more tests for detailed heap snapshots UI.
        https://bugs.webkit.org/show_bug.cgi?id=58146

        * inspector/profiler/detailed-heapshots-comparison-expansion-preserved-when-sorting-expected.txt: Added.
        * inspector/profiler/detailed-heapshots-comparison-expansion-preserved-when-sorting.html: Added.
        * inspector/profiler/detailed-heapshots-comparison-show-all-expected.txt: Added.
        * inspector/profiler/detailed-heapshots-comparison-show-all.html: Added.
        * inspector/profiler/detailed-heapshots-comparison-show-next-expected.txt: Added.
        * inspector/profiler/detailed-heapshots-comparison-show-next.html: Added.
        * inspector/profiler/detailed-heapshots-comparison-shown-node-count-preserved-when-sorting-expected.txt: Added.
        * inspector/profiler/detailed-heapshots-comparison-shown-node-count-preserved-when-sorting.html: Copied from LayoutTests/inspector/profiler/detailed-heapshots-summary-expansion-preserved-when-sorting.html.
        * inspector/profiler/detailed-heapshots-comparison-sorting-expected.txt: Added.
        * inspector/profiler/detailed-heapshots-comparison-sorting.html: Added.
        * inspector/profiler/detailed-heapshots-containment-shown-node-count-preserved-when-sorting-expected.txt: Added.
        * inspector/profiler/detailed-heapshots-containment-shown-node-count-preserved-when-sorting.html: Added.
        * inspector/profiler/detailed-heapshots-dominators-expansion-preserved-when-sorting-expected.txt: Added.
        * inspector/profiler/detailed-heapshots-dominators-expansion-preserved-when-sorting.html: Added.
        * inspector/profiler/detailed-heapshots-dominators-show-all-expected.txt: Added.
        * inspector/profiler/detailed-heapshots-dominators-show-all.html: Added.
        * inspector/profiler/detailed-heapshots-dominators-show-next-actual.txt: Added.
        * inspector/profiler/detailed-heapshots-dominators-show-next-expected.txt: Added.
        * inspector/profiler/detailed-heapshots-dominators-show-next.html: Added.
        * inspector/profiler/detailed-heapshots-dominators-shown-node-count-preserved-when-sorting-expected.txt: Added.
        * inspector/profiler/detailed-heapshots-dominators-shown-node-count-preserved-when-sorting.html: Added.
        * inspector/profiler/detailed-heapshots-dominators-sorting-expected.txt: Added.
        * inspector/profiler/detailed-heapshots-dominators-sorting.html: Added.
        * inspector/profiler/detailed-heapshots-summary-expansion-preserved-when-sorting.html:
        * inspector/profiler/detailed-heapshots-summary-shown-node-count-preserved-when-sorting-expected.txt: Added.
        * inspector/profiler/detailed-heapshots-summary-shown-node-count-preserved-when-sorting.html: Copied from LayoutTests/inspector/profiler/detailed-heapshots-summary-expansion-preserved-when-sorting.html.
        * inspector/profiler/detailed-heapshots-test.js:
        (initialize_DetailedHeapshotTest.):
        (initialize_DetailedHeapshotTest):
        * platform/chromium/inspector/profiler/detailed-heapshots-comparison-expansion-preserved-when-sorting-expected.txt: Added.
        * platform/chromium/inspector/profiler/detailed-heapshots-comparison-show-all-expected.txt: Added.
        * platform/chromium/inspector/profiler/detailed-heapshots-comparison-show-next-expected.txt: Added.
        * platform/chromium/inspector/profiler/detailed-heapshots-comparison-shown-node-count-preserved-when-sorting-expected.txt: Added.
        * platform/chromium/inspector/profiler/detailed-heapshots-comparison-sorting-expected.txt: Added.
        * platform/chromium/inspector/profiler/detailed-heapshots-containment-shown-node-count-preserved-when-sorting-expected.txt: Added.
        * platform/chromium/inspector/profiler/detailed-heapshots-dominators-expansion-preserved-when-sorting-expected.txt: Added.
        * platform/chromium/inspector/profiler/detailed-heapshots-dominators-show-all-expected.txt: Added.
        * platform/chromium/inspector/profiler/detailed-heapshots-dominators-show-next-expected.txt: Added.
        * platform/chromium/inspector/profiler/detailed-heapshots-dominators-shown-node-count-preserved-when-sorting-expected.txt: Added.
        * platform/chromium/inspector/profiler/detailed-heapshots-dominators-sorting-expected.txt: Added.
        * platform/chromium/inspector/profiler/detailed-heapshots-summary-shown-node-count-preserved-when-sorting-expected.txt: Added.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88840</attachid>
            <date>2011-04-08 10:50:06 -0700</date>
            <delta_ts>2011-04-11 22:03:57 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch-58146</filename>
            <type>text/plain</type>
            <size>66238</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlOTlhOTNiLi42ZmZmNGEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTEtMDQt
MDggIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbQ2hy
b21pdW1dIEFkZCBzb21lIG1vcmUgdGVzdHMgZm9yIGRldGFpbGVkIGhlYXAgc25hcHNob3RzIFVJ
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgxNDYK
KworICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFy
aXNvbi1leHBhbnNpb24tcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFy
aXNvbi1leHBhbnNpb24tcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWNvbXBhcmlzb24tc2hv
dy1hbGwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIv
ZGV0YWlsZWQtaGVhcHNob3RzLWNvbXBhcmlzb24tc2hvdy1hbGwuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1jb21wYXJpc29uLXNo
b3ctbmV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxl
ci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFyaXNvbi1zaG93LW5leHQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1jb21wYXJpc29u
LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29t
cGFyaXNvbi1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90
cy1zdW1tYXJ5LWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwuCisgICAgICAg
ICogaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1jb21wYXJpc29uLXNvcnRp
bmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvZGV0
YWlsZWQtaGVhcHNob3RzLWNvbXBhcmlzb24tc29ydGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWNvbnRhaW5tZW50LXNob3du
LW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29udGFpbm1l
bnQtc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtZG9taW5hdG9y
cy1leHBhbnNpb24tcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtZG9taW5hdG9y
cy1leHBhbnNpb24tcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWRvbWluYXRvcnMtc2hvdy1h
bGwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvZGV0
YWlsZWQtaGVhcHNob3RzLWRvbWluYXRvcnMtc2hvdy1hbGwuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1kb21pbmF0b3JzLXNob3ct
bmV4dC1hY3R1YWwudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvZGV0
YWlsZWQtaGVhcHNob3RzLWRvbWluYXRvcnMtc2hvdy1uZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1kb21pbmF0
b3JzLXNob3ctbmV4dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIv
ZGV0YWlsZWQtaGVhcHNob3RzLWRvbWluYXRvcnMtc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQt
d2hlbi1zb3J0aW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3By
b2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1kb21pbmF0b3JzLXNob3duLW5vZGUtY291bnQtcHJl
c2VydmVkLXdoZW4tc29ydGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJv
ZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWRvbWluYXRvcnMtc29ydGluZy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMt
ZG9taW5hdG9ycy1zb3J0aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9m
aWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtc3VtbWFyeS1leHBhbnNpb24tcHJlc2VydmVkLXdoZW4t
c29ydGluZy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFw
c2hvdHMtc3VtbWFyeS1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQt
aGVhcHNob3RzLXN1bW1hcnktc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5n
Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxl
ZC1oZWFwc2hvdHMtc3VtbWFyeS1leHBhbnNpb24tcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1s
LgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtdGVzdC5q
czoKKyAgICAgICAgKGluaXRpYWxpemVfRGV0YWlsZWRIZWFwc2hvdFRlc3QuKToKKyAgICAgICAg
KGluaXRpYWxpemVfRGV0YWlsZWRIZWFwc2hvdFRlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFyaXNvbi1l
eHBhbnNpb24tcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFw
c2hvdHMtY29tcGFyaXNvbi1zaG93LWFsbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMt
Y29tcGFyaXNvbi1zaG93LW5leHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWNvbXBh
cmlzb24tc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL3Byb2ZpbGVy
L2RldGFpbGVkLWhlYXBzaG90cy1jb21wYXJpc29uLXNvcnRpbmctZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWls
ZWQtaGVhcHNob3RzLWNvbnRhaW5tZW50LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4t
c29ydGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtZG9taW5hdG9ycy1leHBhbnNp
b24tcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMt
ZG9taW5hdG9ycy1zaG93LWFsbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtZG9taW5h
dG9ycy1zaG93LW5leHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWRvbWluYXRvcnMt
c2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFp
bGVkLWhlYXBzaG90cy1kb21pbmF0b3JzLXNvcnRpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVh
cHNob3RzLXN1bW1hcnktc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTEtMDQtMDggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI4
MzI5NS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxl
ZC1oZWFwc2hvdHMtY29tcGFyaXNvbi1leHBhbnNpb24tcHJlc2VydmVkLXdoZW4tc29ydGluZy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVh
cHNob3RzLWNvbXBhcmlzb24tZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3ZTIwNzYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVh
cHNob3RzLWNvbXBhcmlzb24tZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdHMgQ29tcGFyaXNvbiB2aWV3IG9mIGRldGFpbGVk
IGhlYXAgc25hcHNob3RzLiBFeHBhbmRlZCBub2RlcyBtdXN0IGJlIHByZXNlcnZlZCBhZnRlciBz
b3J0aW5nLgorCitIZWFwIHByb2ZpbGVyIGlzIGRpc2FibGVkCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFyaXNvbi1l
eHBhbnNpb24tcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1jb21wYXJpc29uLWV4cGFuc2lvbi1wcmVz
ZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZmM2NmRhZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFyaXNvbi1leHBhbnNpb24tcHJlc2VydmVkLXdo
ZW4tc29ydGluZy5odG1sCkBAIC0wLDAgKzEsMTMyIEBACis8aHRtbD4KKzxoZWFkPgorICA8c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgorICA8c2NyaXB0IHNyYz0iZGV0YWlsZWQtaGVhcHNob3RzLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIGluc3RhbmNlQ291
bnQgPSAyNDsKKyAgICBmdW5jdGlvbiBjcmVhdGVIZWFwU25hcHNob3RBKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNvdW50
LCA1KTsKKyAgICB9CisgICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90QigpCisgICAgewor
ICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3QoaW5zdGFuY2VD
b3VudCArIDEsIDUgKyBpbnN0YW5jZUNvdW50KTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0
LnJ1bkRldGFpbGVkSGVhcHNob3RUZXN0U3VpdGUoWworICAgICAgICBmdW5jdGlvbiB0ZXN0RXhw
YW5zaW9uUHJlc2VydmVkV2hlblNvcnRpbmcobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdEEsIGNy
ZWF0ZVNuYXBzaG90Qik7CisgICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVTbmFwc2hvdEIoKSB7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0
ZUhlYXBTbmFwc2hvdEIsIHN0ZXAxKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVu
Y3Rpb24gc3RlcDEoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3Quc3dpdGNoVG9WaWV3KCJDb21wYXJpc29uIiwgc3RlcDIpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgdmFyIHJvdyA9IEluc3BlY3RvclRlc3QuZmluZFJvdygib2JqZWN0IiwgIkIiKTsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIXJvdywgIlwiQlwi
IHJvdyIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kUm93KHJvdywgZXhw
YW5kQik7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gZXhwYW5kQigpCisgICAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICB2YXIgYnV0dG9uc05vZGUgPSBJbnNwZWN0b3JUZXN0
LmZpbmRCdXR0b25zTm9kZShyb3cpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydEVxdWFscyh0cnVlLCAhIWJ1dHRvbnNOb2RlLCAibm8gYnV0dG9ucyBub2RlIGZvdW5k
ISIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrU2hvd01vcmVCdXR0
b24oInNob3dBbGwiLCBidXR0b25zTm9kZSwgc3RlcDMpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMoKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIHZhciByb3cgPSBJbnNwZWN0b3JUZXN0LmZpbmRSb3coIm9iamVj
dCIsICJCIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1
ZSwgISFyb3csICJcIkJcIiByb3ciKTsKKyAgICAgICAgICAgICAgICB2YXIgYnV0dG9uc05vZGUg
PSBJbnNwZWN0b3JUZXN0LmZpbmRCdXR0b25zTm9kZShyb3cpOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhYnV0dG9uc05vZGUsICJubyBidXR0b25z
IG5vZGUgZm91bmQhIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja1Nob3dN
b3JlQnV0dG9uKCJzaG93QWxsIiwgYnV0dG9uc05vZGUsIHN0ZXA0KTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgdmFyIGNvbHVtbnM7CisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwNCgp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY29sdW1ucyA9IEluc3BlY3RvclRlc3Qu
dmlld0NvbHVtbnMoKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1u
KGNvbHVtbnNbMF0sIHN0ZXA1KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rp
b24gc3RlcDUoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciByb3cgPSBJbnNw
ZWN0b3JUZXN0LmZpbmRSb3coIm9iamVjdCIsICJCIik7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFyb3csICJcIkJcIiByb3ciKTsKKyAgICAgICAg
ICAgICAgICB2YXIgYkluc3RhbmNlUm93ID0gcm93LmNoaWxkcmVuWzBdOworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhYkluc3RhbmNlUm93LCAiXCJC
XCIgaW5zdGFuY2Ugcm93Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRS
b3coYkluc3RhbmNlUm93LCBleHBhbmRBKTsKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBleHBh
bmRBKHJvdykKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9u
IHByb3BlcnR5TWF0Y2hlcihkYXRhKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZGF0YS5uYW1lID09PSAiYSIgJiYgZGF0YS52YWx1ZS5jaGFy
QXQoMCkgPT09ICJBIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB2YXIgYVJvdyA9IEluc3BlY3RvclRlc3QuZmluZFJvdygib2JqZWN0IiwgcHJvcGVydHlNYXRj
aGVyLCByb3cpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFs
cyh0cnVlLCAhIWFSb3csICJcImE6IEFcIiByb3ciKTsKKyAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBhbmRSb3coYVJvdywgc3RlcDYpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDYoKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIHZhciByb3cgPSBJbnNwZWN0b3JUZXN0LmZpbmRSb3coIm9iamVj
dCIsICJCIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1
ZSwgISFyb3csICJcIkJcIiByb3ciKTsKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBkZWxldGVk
Tm9kZU1hdGNoZXIoZGF0YSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBkYXRhLnJlbW92ZWRDb3VudCAmJiBkYXRhLm9iamVjdC52YWx1ZS5jaGFyQXQoMCkg
PT09ICJCIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIGJJbnN0YW5j
ZVJvdyA9IEluc3BlY3RvclRlc3QuZmluZFJvdzIoZGVsZXRlZE5vZGVNYXRjaGVyLCByb3cpOwor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhYkluc3Rh
bmNlUm93LCAiXCJCXCIgaW5zdGFuY2Ugcm93Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBhbmRSb3coYkluc3RhbmNlUm93LCBleHBhbmRBKTsKKyAgICAgICAgICAgICAgICBm
dW5jdGlvbiBleHBhbmRBKHJvdykKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uIHByb3BlcnR5TWF0Y2hlcihkYXRhKQorICAgICAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5uYW1lID09PSAiYSIgJiYgZGF0
YS52YWx1ZS5jaGFyQXQoMCkgPT09ICJBIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB2YXIgYVJvdyA9IEluc3BlY3RvclRlc3QuZmluZFJvdygib2JqZWN0Iiwg
cHJvcGVydHlNYXRjaGVyLCByb3cpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydEVxdWFscyh0cnVlLCAhIWFSb3csICJcImE6IEFcIiByb3ciKTsKKyAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRSb3coYVJvdywgc3RlcDcpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIGNvbHVtbkNvbnRlbnRz
OworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDcoKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIGNvbHVtbkNvbnRlbnRzID0gSW5zcGVjdG9yVGVzdC5jb2x1bW5Db250ZW50cyhjb2x1
bW5zWzBdKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVt
bnNbMF0sIGNsaWNrVHdpY2UpOworICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNsaWNrVHdpY2Uo
KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5j
bGlja0NvbHVtbihjb2x1bW5zWzBdLCBzdGVwOCk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwOCgpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgdmFyIG5ld0NvbHVtbkNvbnRlbnRzID0gSW5zcGVjdG9yVGVzdC5jb2x1
bW5Db250ZW50cyhjb2x1bW5zWzBdKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydENvbHVtbkNvbnRlbnRzRXF1YWwoY29sdW1uQ29udGVudHMsIG5ld0NvbHVtbkNvbnRlbnRz
KTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KG5leHQsIDApOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgXSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgorPHA+CitUZXN0cyBDb21wYXJpc29uIHZpZXcgb2YgZGV0YWlsZWQgaGVh
cCBzbmFwc2hvdHMuCitFeHBhbmRlZCBub2RlcyBtdXN0IGJlIHByZXNlcnZlZCBhZnRlciBzb3J0
aW5nLgorPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1jb21wYXJpc29uLXNob3ctYWxsLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFw
c2hvdHMtY29tcGFyaXNvbi1zaG93LWFsbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZGFkZGZjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFyaXNvbi1zaG93LWFs
bC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0cyBDb21wYXJpc29uIHZpZXcgb2Yg
ZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuIFRoZSAiU2hvdyBBbGwiIGJ1dHRvbiBtdXN0IHNob3cg
YWxsIG5vZGVzLgorCitIZWFwIHByb2ZpbGVyIGlzIGRpc2FibGVkCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFyaXNv
bi1zaG93LWFsbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVk
LWhlYXBzaG90cy1jb21wYXJpc29uLXNob3ctYWxsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZDc0ZjEyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFyaXNvbi1zaG93LWFsbC5o
dG1sCkBAIC0wLDAgKzEsOTQgQEAKKzxodG1sPgorPGhlYWQ+CisgIDxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CisgIDxz
Y3JpcHQgc3JjPSJkZXRhaWxlZC1oZWFwc2hvdHMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgaW5zdGFuY2VDb3VudCA9IDI0OworICAg
IGZ1bmN0aW9uIGNyZWF0ZUhlYXBTbmFwc2hvdEEoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIElu
c3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90KGluc3RhbmNlQ291bnQsIDUpOworICAgIH0K
KyAgICBmdW5jdGlvbiBjcmVhdGVIZWFwU25hcHNob3RCKCkKKyAgICB7CisgICAgICAgIHJldHVy
biBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNvdW50ICsgMSwgNSAr
IGluc3RhbmNlQ291bnQpOworICAgIH0KKworICAgIEluc3BlY3RvclRlc3QucnVuRGV0YWlsZWRI
ZWFwc2hvdFRlc3RTdWl0ZShbCisgICAgICAgIGZ1bmN0aW9uIHRlc3RTaG93QWxsKG5leHQpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QudGFrZUFuZE9wZW5TbmFwc2hvdChj
cmVhdGVIZWFwU25hcHNob3RBLCBjcmVhdGVTbmFwc2hvdEIpOworICAgICAgICAgICAgZnVuY3Rp
b24gY3JlYXRlU25hcHNob3RCKCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QudGFr
ZUFuZE9wZW5TbmFwc2hvdChjcmVhdGVIZWFwU25hcHNob3RCLCBzdGVwMSk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldygiQ29tcGFyaXNvbiIsIHN0ZXAy
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIHZhciByb3cgPSBJbnNwZWN0b3JUZXN0LmZpbmRSb3co
Im9iamVjdCIsICJBIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVh
bHModHJ1ZSwgISFyb3csICJcIkFcIiByb3ciKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGFuZFJvdyhyb3csIHN0ZXAzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
dmFyIGNvdW50QTsKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKHJvdykKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBjb3VudEEgPSByb3cuZGF0YVsiYWRkZWRDb3VudCJdOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsIGNvdW50QSA+IDAs
ICJjb3VudEEgPiAwIik7CisgICAgICAgICAgICAgICAgdmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVj
dG9yVGVzdC5maW5kQnV0dG9uc05vZGUocm93KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIWJ1dHRvbnNOb2RlLCAiYnV0dG9ucyBub2RlIChhZGRl
ZCkiKTsKKyAgICAgICAgICAgICAgICB2YXIgd29yZHMgPSBidXR0b25zTm9kZS5zaG93QWxsLnRl
eHRDb250ZW50LnNwbGl0KCIgIik7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCB3b3Jkcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICB2YXIgbWF5YmVOdW1i
ZXIgPSBwYXJzZUludCh3b3Jkc1tpXSwgMTApOworICAgICAgICAgICAgICAgICAgICBpZiAoIWlz
TmFOKG1heWJlTnVtYmVyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0RXF1YWxzKGNvdW50QSwgbWF5YmVOdW1iZXIsIGJ1dHRvbnNOb2RlLnNob3dBbGwudGV4
dENvbnRlbnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNsaWNrU2hvd01vcmVCdXR0b24oInNob3dBbGwiLCBidXR0b25zTm9kZSwgc3RlcDQpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIgY291bnRCOworICAgICAgICAgICAgZnVu
Y3Rpb24gc3RlcDQocm93KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciByb3dz
U2hvd24gPSBJbnNwZWN0b3JUZXN0LmNvdW50RGF0YVJvd3Mocm93LCBmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLmRhdGEuYWRkZWRDb3VudDsgfSk7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRFcXVhbHMoY291bnRBLCByb3dzU2hvd24sICJhZnRlciBzaG93QWxsIGNs
aWNrIDEiKTsKKworICAgICAgICAgICAgICAgIGNvdW50QiA9IHJvdy5kYXRhWyJyZW1vdmVkQ291
bnQiXTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCBj
b3VudEIgPiAwLCAiY291bnRCID4gMCIpOworICAgICAgICAgICAgICAgIHZhciBidXR0b25zTm9k
ZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdyk7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFidXR0b25zTm9kZSwgImJ1dHRvbnMg
bm9kZSAoZGVsZXRlZCkiKTsKKyAgICAgICAgICAgICAgICB2YXIgd29yZHMgPSBidXR0b25zTm9k
ZS5zaG93QWxsLnRleHRDb250ZW50LnNwbGl0KCIgIik7CisgICAgICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCB3b3Jkcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICB2
YXIgbWF5YmVOdW1iZXIgPSBwYXJzZUludCh3b3Jkc1tpXSwgMTApOworICAgICAgICAgICAgICAg
ICAgICBpZiAoIWlzTmFOKG1heWJlTnVtYmVyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKGNvdW50QiwgbWF5YmVOdW1iZXIsIGJ1dHRvbnNOb2Rl
LnNob3dBbGwudGV4dENvbnRlbnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNsaWNrU2hvd01vcmVCdXR0b24oInNob3dBbGwiLCBidXR0b25zTm9k
ZSwgc3RlcDUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwNShy
b3cpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIHJvd3NTaG93biA9IEluc3Bl
Y3RvclRlc3QuY291bnREYXRhUm93cyhyb3csIGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
ZGF0YS5yZW1vdmVkQ291bnQ7IH0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0RXF1YWxzKGNvdW50Qiwgcm93c1Nob3duLCAiYWZ0ZXIgc2hvd0FsbCBjbGljayAyIik7Cisg
ICAgICAgICAgICAgICAgdmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVjdG9yVGVzdC5maW5kQnV0dG9u
c05vZGUocm93KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhm
YWxzZSwgISFidXR0b25zTm9kZSwgImJ1dHRvbnMgbm9kZSBmb3VuZCBhZnRlciBhbGwgcm93cyBz
aG93biIpOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQobmV4dCwgMCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICBdKTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3RzIENvbXBhcmlzb24gdmlldyBvZiBkZXRhaWxl
ZCBoZWFwIHNuYXBzaG90cy4KK1RoZSAmcXVvdDtTaG93IEFsbCZxdW90OyBidXR0b24gbXVzdCBz
aG93IGFsbCBub2Rlcy4KKzwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFyaXNvbi1z
aG93LW5leHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2Rl
dGFpbGVkLWhlYXBzaG90cy1jb21wYXJpc29uLXNob3ctbmV4dC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU3ZTFhYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFy
aXNvbi1zaG93LW5leHQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdHMgQ29tcGFy
aXNvbiB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLiBSZXBlYXRlZCBjbGlja3Mgb24g
IlNob3cgTmV4dCIgYnV0dG9uIG11c3Qgc2hvdyBhbGwgbm9kZXMuCisKK0hlYXAgcHJvZmlsZXIg
aXMgZGlzYWJsZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVy
L2RldGFpbGVkLWhlYXBzaG90cy1jb21wYXJpc29uLXNob3ctbmV4dC5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1jb21wYXJpc29uLXNob3ct
bmV4dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxYTM5NWEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQt
aGVhcHNob3RzLWNvbXBhcmlzb24tc2hvdy1uZXh0Lmh0bWwKQEAgLTAsMCArMSw3OSBAQAorPGh0
bWw+Cis8aGVhZD4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9ImRldGFpbGVkLWhlYXBz
aG90cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3QoKQorewor
ICAgIHZhciBpbnN0YW5jZUNvdW50ID0gMjQ7CisgICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBz
aG90QSgpCisgICAgeworICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25h
cHNob3QoaW5zdGFuY2VDb3VudCwgNSk7CisgICAgfQorICAgIGZ1bmN0aW9uIGNyZWF0ZUhlYXBT
bmFwc2hvdEIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuY3JlYXRlSGVh
cFNuYXBzaG90KGluc3RhbmNlQ291bnQgKyAxLCA1ICsgaW5zdGFuY2VDb3VudCk7CisgICAgfQor
CisgICAgSW5zcGVjdG9yVGVzdC5ydW5EZXRhaWxlZEhlYXBzaG90VGVzdFN1aXRlKFsKKyAgICAg
ICAgZnVuY3Rpb24gdGVzdFNob3dOZXh0KG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QudGFrZUFuZE9wZW5TbmFwc2hvdChjcmVhdGVIZWFwU25hcHNob3RBLCBjcmVh
dGVTbmFwc2hvdEIpOworICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlU25hcHNob3RCKCkgewor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QudGFrZUFuZE9wZW5TbmFwc2hvdChjcmVhdGVI
ZWFwU25hcHNob3RCLCBzdGVwMSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0
aW9uIHN0ZXAxKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LnN3aXRjaFRvVmlldygiQ29tcGFyaXNvbiIsIHN0ZXAyKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IHZhciByb3cgPSBJbnNwZWN0b3JUZXN0LmZpbmRSb3coIm9iamVjdCIsICJBIik7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFyb3csICJcIkFcIiBy
b3ciKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZFJvdyhyb3csIHN0ZXAz
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMocm93KQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciBleHBlY3RlZFJvd0NvdW50QSA9IHJvdy5k
YXRhWyJhZGRlZENvdW50Il07CisgICAgICAgICAgICAgICAgdmFyIHJvd3NTaG93biA9IEluc3Bl
Y3RvclRlc3QuY291bnREYXRhUm93cyhyb3csIGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
ZGF0YS5hZGRlZENvdW50OyB9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dEVxdWFscyh0cnVlLCByb3dzU2hvd24gPD0gZXhwZWN0ZWRSb3dDb3VudEEsICJzaG93biBtb3Jl
IGluc3RhbmNlcyB0aGFuIGNyZWF0ZWQ6ICIgKyByb3dzU2hvd24gKyAiID4gIiArIGV4cGVjdGVk
Um93Q291bnRBKTsKKyAgICAgICAgICAgICAgICBpZiAocm93c1Nob3duIDwgZXhwZWN0ZWRSb3dD
b3VudEEpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVjdG9y
VGVzdC5maW5kQnV0dG9uc05vZGUocm93KTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFidXR0b25zTm9kZSwgImJ1dHRvbnMgbm9kZSIpOwor
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrU2hvd01vcmVCdXR0b24oInNo
b3dOZXh0IiwgYnV0dG9uc05vZGUsIHN0ZXAzKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYg
KHJvd3NTaG93biA9PT0gZXhwZWN0ZWRSb3dDb3VudEEpCisgICAgICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQoc3RlcDQuYmluZChudWxsLCByb3cpLCAwKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgZnVuY3Rpb24gc3RlcDQocm93KQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIHZhciBleHBlY3RlZFJvd0NvdW50QiA9IHJvdy5kYXRhWyJyZW1vdmVkQ291bnQiXTsKKyAg
ICAgICAgICAgICAgICB2YXIgcm93c1Nob3duID0gSW5zcGVjdG9yVGVzdC5jb3VudERhdGFSb3dz
KHJvdywgZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5kYXRhLnJlbW92ZWRDb3VudDsgfSk7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgcm93c1No
b3duIDw9IGV4cGVjdGVkUm93Q291bnRCLCAic2hvd24gbW9yZSBpbnN0YW5jZXMgdGhhbiBjcmVh
dGVkOiAiICsgcm93c1Nob3duICsgIiA+ICIgKyBleHBlY3RlZFJvd0NvdW50Qik7CisgICAgICAg
ICAgICAgICAgaWYgKHJvd3NTaG93biA8IGV4cGVjdGVkUm93Q291bnRCKSB7CisgICAgICAgICAg
ICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2Rl
KHJvdyk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRy
dWUsICEhYnV0dG9uc05vZGUsICJidXR0b25zIG5vZGUiKTsKKyAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jbGlja1Nob3dNb3JlQnV0dG9uKCJzaG93TmV4dCIsIGJ1dHRvbnNOb2Rl
LCBzdGVwNCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyb3dzU2hvd24gPT09IGV4cGVj
dGVkUm93Q291bnRCKSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IElu
c3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdyk7CisgICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKGZhbHNlLCAhIWJ1dHRvbnNOb2RlLCAiYnV0dG9ucyBu
b2RlIGZvdW5kIGFmdGVyIGFsbCByb3dzIHNob3duIik7CisgICAgICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQobmV4dCwgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgXSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorPHA+CitUZXN0cyBDb21wYXJpc29uIHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBz
bmFwc2hvdHMuCitSZXBlYXRlZCBjbGlja3Mgb24gJnF1b3Q7U2hvdyBOZXh0JnF1b3Q7IGJ1dHRv
biBtdXN0IHNob3cgYWxsIG5vZGVzLgorPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1jb21w
YXJpc29uLXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWNv
bXBhcmlzb24tc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzkwOTc2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBz
aG90cy1jb21wYXJpc29uLXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0cyBDb21wYXJpc29uIHZpZXcgb2YgZGV0
YWlsZWQgaGVhcCBzbmFwc2hvdHMuIFNob3duIG5vZGUgY291bnQgbXVzdCBiZSBwcmVzZXJ2ZWQg
YWZ0ZXIgc29ydGluZy4KKworSGVhcCBwcm9maWxlciBpcyBkaXNhYmxlZAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWNvbXBh
cmlzb24tc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWNvbXBhcmlzb24t
c2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjdmMDcyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFyaXNvbi1z
aG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbApAQCAtMCwwICsxLDk4
IEBACis8aHRtbD4KKzxoZWFkPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHNyYz0iZGV0YWls
ZWQtaGVhcHNob3RzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gdGVz
dCgpCit7CisgICAgdmFyIGluc3RhbmNlQ291bnQgPSAyNDsKKyAgICBmdW5jdGlvbiBjcmVhdGVI
ZWFwU25hcHNob3RBKCkKKyAgICB7CisgICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0
ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNvdW50LCA1KTsKKyAgICB9CisgICAgZnVuY3Rpb24gY3Jl
YXRlSGVhcFNuYXBzaG90QigpCisgICAgeworICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5j
cmVhdGVIZWFwU25hcHNob3QoaW5zdGFuY2VDb3VudCArIDEsIDUgKyBpbnN0YW5jZUNvdW50KTsK
KyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LnJ1bkRldGFpbGVkSGVhcHNob3RUZXN0U3VpdGUo
WworICAgICAgICBmdW5jdGlvbiB0ZXN0RXhwYW5zaW9uUHJlc2VydmVkV2hlblNvcnRpbmcobmV4
dCkKKyAgICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBz
aG90KGNyZWF0ZUhlYXBTbmFwc2hvdEEsIGNyZWF0ZVNuYXBzaG90Qik7CisgICAgICAgICAgICBm
dW5jdGlvbiBjcmVhdGVTbmFwc2hvdEIoKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdEIsIHN0ZXAxKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc3dpdGNoVG9WaWV3KCJDb21wYXJpc29uIiwg
c3RlcDIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIgY29sdW1uczsKKyAgICAg
ICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBj
b2x1bW5zID0gSW5zcGVjdG9yVGVzdC52aWV3Q29sdW1ucygpOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuY2xpY2tDb2x1bW4oY29sdW1uc1swXSwgc3RlcDMpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMygpCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgdmFyIHJvdyA9IEluc3BlY3RvclRlc3QuZmluZFJvdygib2JqZWN0IiwgIkIiKTsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIXJvdywg
IlwiQlwiIHJvdyIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kUm93KHJv
dywgc2hvd05leHQpOworICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNob3dOZXh0KHJvdykKKyAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IElu
c3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdyk7CisgICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhYnV0dG9uc05vZGUsICJubyBidXR0b25z
IG5vZGUgZm91bmQhIik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tT
aG93TW9yZUJ1dHRvbigic2hvd05leHQiLCBidXR0b25zTm9kZSwgc3RlcDQpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDQoKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciByb3cgPSBJbnNwZWN0b3JUZXN0LmZp
bmRSb3coIm9iamVjdCIsICJCIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRFcXVhbHModHJ1ZSwgISFyb3csICJcIkJcIiByb3ciKTsKKyAgICAgICAgICAgICAgICBmdW5j
dGlvbiBkZWxldGVkTm9kZU1hdGNoZXIoZGF0YSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBkYXRhLnJlbW92ZWRDb3VudCAmJiBkYXRhLm9iamVjdC52YWx1
ZS5jaGFyQXQoMCkgPT09ICJCIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
dmFyIGJJbnN0YW5jZVJvdyA9IEluc3BlY3RvclRlc3QuZmluZFJvdzIoZGVsZXRlZE5vZGVNYXRj
aGVyLCByb3cpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRy
dWUsICEhYkluc3RhbmNlUm93LCAiXCJCXCIgaW5zdGFuY2Ugcm93Iik7CisgICAgICAgICAgICAg
ICAgdmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVjdG9yVGVzdC5maW5kQnV0dG9uc05vZGUocm93LCBi
SW5zdGFuY2VSb3cpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxz
KHRydWUsICEhYnV0dG9uc05vZGUsICJubyBidXR0b25zIG5vZGUgZm91bmQhIik7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja1Nob3dNb3JlQnV0dG9uKCJzaG93TmV4dCIsIGJ1
dHRvbnNOb2RlLCBzdGVwNSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciBub2Rl
Q291bnQ7CisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwNShyb3cpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgbm9kZUNvdW50ID0gSW5zcGVjdG9yVGVzdC5jb2x1bW5Db250ZW50cyhj
b2x1bW5zWzBdKS5sZW5ndGg7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRF
cXVhbHModHJ1ZSwgbm9kZUNvdW50ID4gMCwgIm5vZGVDb3VudCA+IDAiKTsKKworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tDb2x1bW4oY29sdW1uc1swXSwgY2xpY2tUd2ljZSk7
CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2xpY2tUd2ljZSgpCisgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVtbnNb
MF0sIHN0ZXA2KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGZ1bmN0aW9uIHN0ZXA2KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB2YXIg
bmV3Tm9kZUNvdW50ID0gSW5zcGVjdG9yVGVzdC5jb2x1bW5Db250ZW50cyhjb2x1bW5zWzBdKS5s
ZW5ndGg7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMobm9kZUNv
dW50LCBuZXdOb2RlQ291bnQpOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQobmV4dCwgMCk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICBdKTsKK30KKworPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3RzIENvbXBhcmlzb24gdmll
dyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4KK1Nob3duIG5vZGUgY291bnQgbXVzdCBiZSBw
cmVzZXJ2ZWQgYWZ0ZXIgc29ydGluZy4KKzwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29t
cGFyaXNvbi1zb3J0aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFyaXNvbi1zb3J0aW5nLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MzZkNjU0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1j
b21wYXJpc29uLXNvcnRpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdHMgc29y
dGluZyBpbiBDb21wYXJpc29uIHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuCisKK0hl
YXAgcHJvZmlsZXIgaXMgZGlzYWJsZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1jb21wYXJpc29uLXNvcnRpbmcuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFy
aXNvbi1zb3J0aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZj
YmE3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9k
ZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFyaXNvbi1zb3J0aW5nLmh0bWwKQEAgLTAsMCArMSw4NCBA
QAorPGh0bWw+Cis8aGVhZD4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9ImRldGFpbGVk
LWhlYXBzaG90cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3Qo
KQoreworICAgIHZhciBpbnN0YW5jZUNvdW50ID0gMjQ7CisgICAgZnVuY3Rpb24gY3JlYXRlSGVh
cFNuYXBzaG90QSgpCisgICAgeworICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVI
ZWFwU25hcHNob3QoaW5zdGFuY2VDb3VudCwgNSk7CisgICAgfQorICAgIGZ1bmN0aW9uIGNyZWF0
ZUhlYXBTbmFwc2hvdEIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuY3Jl
YXRlSGVhcFNuYXBzaG90KGluc3RhbmNlQ291bnQgKyAxLCA1ICsgaW5zdGFuY2VDb3VudCk7Cisg
ICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5ydW5EZXRhaWxlZEhlYXBzaG90VGVzdFN1aXRlKFsK
KyAgICAgICAgZnVuY3Rpb24gdGVzdFNvcnRpbmcobmV4dCkKKyAgICAgICAgeworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdEEs
IGNyZWF0ZVNuYXBzaG90Qik7CisgICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVTbmFwc2hvdEIo
KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNy
ZWF0ZUhlYXBTbmFwc2hvdEIsIHN0ZXAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3Quc3dpdGNoVG9WaWV3KCJDb21wYXJpc29uIiwgbmV4dCk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciBjb2x1bW5zOworICAgICAgICAgICAgdmFyIGN1
cnJlbnRDb2x1bW47CisgICAgICAgICAgICB2YXIgY3VycmVudENvbHVtbk9yZGVyOworCisgICAg
ICAgICAgICBmdW5jdGlvbiBzdGVwMigpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
Y29sdW1ucyA9IEluc3BlY3RvclRlc3Qudmlld0NvbHVtbnMoKTsKKyAgICAgICAgICAgICAgICBj
dXJyZW50Q29sdW1uID0gMDsKKyAgICAgICAgICAgICAgICBjdXJyZW50Q29sdW1uT3JkZXIgPSBm
YWxzZTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHN0ZXAzLCAwKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMoKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIGlmIChjdXJyZW50Q29sdW1uID49IGNvbHVtbnMubGVuZ3RoKSB7CisgICAgICAg
ICAgICAgICAgICAgIHNldFRpbWVvdXQobmV4dCwgMCk7CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmNsaWNrQ29sdW1uKGNvbHVtbnNbY3VycmVudENvbHVtbl0sIHN0ZXA0KTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDQobmV3Q29sdW1uU3RhdGUpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgY29sdW1uc1tjdXJyZW50Q29sdW1uXSA9IG5ld0NvbHVt
blN0YXRlOworICAgICAgICAgICAgICAgIHZhciBjb250ZW50cyA9IEluc3BlY3RvclRlc3QuY29s
dW1uQ29udGVudHMoY29sdW1uc1tjdXJyZW50Q29sdW1uXSk7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFjb250ZW50cy5sZW5ndGgsICJjb2x1bW4g
Y29udGVudHMiKTsKKyAgICAgICAgICAgICAgICB2YXIgc29ydFR5cGVzID0geyBvYmplY3Q6ICJ0
ZXh0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRlZENvdW50OiAibnVt
YmVyIiwgcmVtb3ZlZENvdW50OiAibnVtYmVyIiwgY291bnREZWx0YTogIm51bWJlciIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkZWRTaXplOiAic2l6ZSIsIHJlbW92ZWRT
aXplOiAic2l6ZSIsIHNpemVEZWx0YTogInNpemUiIH07CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFzb3J0VHlwZXNbY29sdW1uc1tjdXJyZW50Q29s
dW1uXS5pZGVudGlmaWVyXSwgInNvcnQgYnkgaWRlbnRpZmllciIpOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuY2hlY2tBcnJheUlzU29ydGVkKGNvbnRlbnRzLCBzb3J0VHlwZXNbY29s
dW1uc1tjdXJyZW50Q29sdW1uXS5pZGVudGlmaWVyXSwgY29sdW1uc1tjdXJyZW50Q29sdW1uXS5z
b3J0KTsKKworICAgICAgICAgICAgICAgIGlmICghY3VycmVudENvbHVtbk9yZGVyKQorICAgICAg
ICAgICAgICAgICAgICBjdXJyZW50Q29sdW1uT3JkZXIgPSB0cnVlOworICAgICAgICAgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q29sdW1uT3JkZXIgPSBmYWxzZTsK
KyAgICAgICAgICAgICAgICAgICAgKytjdXJyZW50Q29sdW1uOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHN0ZXAzLCAwKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIF0pOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KKzxwPgorVGVzdHMgc29ydGluZyBpbiBDb21wYXJpc29uIHZpZXcgb2YgZGV0
YWlsZWQgaGVhcCBzbmFwc2hvdHMuCis8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWNvbnRh
aW5tZW50LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWNv
bnRhaW5tZW50LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTI4MDg5OAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFw
c2hvdHMtY29udGFpbm1lbnQtc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5n
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3RzIENvbnRhaW5tZW50IHZpZXcgb2Yg
ZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuIFNob3duIG5vZGUgY291bnQgbXVzdCBiZSBwcmVzZXJ2
ZWQgYWZ0ZXIgc29ydGluZy4KKworSGVhcCBwcm9maWxlciBpcyBkaXNhYmxlZAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWNv
bnRhaW5tZW50LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1jb250YWlu
bWVudC1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMWU3NTc5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1jb250YWlu
bWVudC1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbApAQCAtMCww
ICsxLDc5IEBACis8aHRtbD4KKzxoZWFkPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHNyYz0i
ZGV0YWlsZWQtaGVhcHNob3RzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rp
b24gdGVzdCgpCit7CisgICAgdmFyIGluc3RhbmNlQ291bnQgPSAyNTsKKyAgICBmdW5jdGlvbiBj
cmVhdGVIZWFwU25hcHNob3QoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3Qu
Y3JlYXRlSGVhcFNuYXBzaG90KGluc3RhbmNlQ291bnQpOworICAgIH0KKworICAgIEluc3BlY3Rv
clRlc3QucnVuRGV0YWlsZWRIZWFwc2hvdFRlc3RTdWl0ZShbCisgICAgICAgIGZ1bmN0aW9uIHRl
c3RTaG93bk5vZGVDb3VudFByZXNlcnZlZFdoZW5Tb3J0aW5nKG5leHQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QudGFrZUFuZE9wZW5TbmFwc2hvdChjcmVhdGVIZWFwU25h
cHNob3QsIHN0ZXAxKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc3dpdGNoVG9WaWV3KCJDb250YWlu
bWVudCIsIHN0ZXAyKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIGNvbHVtbnM7
CisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgY29sdW1ucyA9IEluc3BlY3RvclRlc3Qudmlld0NvbHVtbnMoKTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVtbnNbMF0sIHN0ZXAzKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMoKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmluZEFuZEV4cGFuZEdDUm9vdHMoc3RlcDQp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwNChyb3cpCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVjdG9yVGVz
dC5maW5kQnV0dG9uc05vZGUocm93KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydEVxdWFscyh0cnVlLCAhIWJ1dHRvbnNOb2RlLCAibm8gYnV0dG9ucyBub2RlIGZvdW5kISIp
OworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tTaG93TW9yZUJ1dHRvbigic2hv
d05leHQiLCBidXR0b25zTm9kZSwgc3RlcDUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICB2YXIgbm9kZUNvdW50OworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDUocm93KQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIC8vIFRoZXJlIG11c3QgYmUgZW5vdWdoIG5vZGVzIHRv
IGhhdmUgc29tZSB1bnJldmVhbGVkLgorICAgICAgICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9
IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdyk7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFidXR0b25zTm9kZSwgIm5vIGJ1dHRvbnMg
bm9kZSBmb3VuZCEiKTsKKworICAgICAgICAgICAgICAgIG5vZGVDb3VudCA9IEluc3BlY3RvclRl
c3QuY29sdW1uQ29udGVudHMoY29sdW1uc1swXSkubGVuZ3RoOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsIG5vZGVDb3VudCA+IDAsICJub2RlQ291bnQg
PiAwIik7CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVt
bnNbMF0sIGNsaWNrVHdpY2UpOworICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNsaWNrVHdpY2Uo
KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5j
bGlja0NvbHVtbihjb2x1bW5zWzBdLCBzdGVwNik7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwNigpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgdmFyIG5ld05vZGVDb3VudCA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29u
dGVudHMoY29sdW1uc1swXSkubGVuZ3RoOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0RXF1YWxzKG5vZGVDb3VudCwgbmV3Tm9kZUNvdW50KTsKKyAgICAgICAgICAgICAgICBz
ZXRUaW1lb3V0KG5leHQsIDApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgXSk7Cit9
CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+CitU
ZXN0cyBDb250YWlubWVudCB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLgorU2hvd24g
bm9kZSBjb3VudCBtdXN0IGJlIHByZXNlcnZlZCBhZnRlciBzb3J0aW5nLgorPC9wPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2Rl
dGFpbGVkLWhlYXBzaG90cy1kb21pbmF0b3JzLWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0
aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxl
ZC1oZWFwc2hvdHMtZG9taW5hdG9ycy1leHBhbnNpb24tcHJlc2VydmVkLXdoZW4tc29ydGluZy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ0MzRmNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxl
ZC1oZWFwc2hvdHMtZG9taW5hdG9ycy1leHBhbnNpb24tcHJlc2VydmVkLXdoZW4tc29ydGluZy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0cyBEb21pbmF0b3JzIHZpZXcgb2YgZGV0
YWlsZWQgaGVhcCBzbmFwc2hvdHMuIEV4cGFuZGVkIG5vZGVzIG11c3QgYmUgcHJlc2VydmVkIGFm
dGVyIHNvcnRpbmcuCisKK0hlYXAgcHJvZmlsZXIgaXMgZGlzYWJsZWQKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1kb21pbmF0
b3JzLWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWRvbWluYXRvcnMtZXhwYW5zaW9u
LXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4zYzEyNmM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1kb21pbmF0b3JzLWV4cGFuc2lvbi1wcmVzZXJ2
ZWQtd2hlbi1zb3J0aW5nLmh0bWwKQEAgLTAsMCArMSw4MCBAQAorPGh0bWw+Cis8aGVhZD4KKyAg
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9ImRldGFpbGVkLWhlYXBzaG90cy10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciBpbnN0YW5j
ZUNvdW50ID0gMjU7CisgICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90KCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNv
dW50KTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LnJ1bkRldGFpbGVkSGVhcHNob3RUZXN0
U3VpdGUoWworICAgICAgICBmdW5jdGlvbiB0ZXN0RXhwYW5zaW9uUHJlc2VydmVkV2hlblNvcnRp
bmcobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3Bl
blNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdCwgc3RlcDEpOworCisgICAgICAgICAgICBmdW5j
dGlvbiBzdGVwMSgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5zd2l0Y2hUb1ZpZXcoIkRvbWluYXRvcnMiLCBzdGVwMik7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIHZhciBjb2x1bW5zOworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIGNvbHVtbnMgPSBJbnNwZWN0b3JUZXN0LnZpZXdD
b2x1bW5zKCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1
bW5zWzBdLCBzdGVwMyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0
ZXAzKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZpbmRB
bmRFeHBhbmRHQ1Jvb3RzKHN0ZXA0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVu
Y3Rpb24gc3RlcDQocm93KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciBidXR0
b25zTm9kZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdyk7CisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFidXR0b25zTm9kZSwgIm5v
IGJ1dHRvbnMgbm9kZSBmb3VuZCEiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNs
aWNrU2hvd01vcmVCdXR0b24oInNob3dBbGwiLCBidXR0b25zTm9kZSwgc3RlcDUpOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwNShyb3cpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgdmFyIHJvdyA9IHJvdy5jaGlsZHJlblswXTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIXJvdywgIlwiQlwiIGluc3Rh
bmNlIHJvdyIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kUm93KHJvdywg
c3RlcDYpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIgY29sdW1uQ29udGVudHM7
CisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwNigpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgY29sdW1uQ29udGVudHMgPSBJbnNwZWN0b3JUZXN0LmNvbHVtbkNvbnRlbnRzKGNvbHVt
bnNbMF0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tDb2x1bW4oY29sdW1u
c1swXSwgY2xpY2tUd2ljZSk7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2xpY2tUd2ljZSgp
CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNs
aWNrQ29sdW1uKGNvbHVtbnNbMF0sIHN0ZXA3KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA3KCkKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICB2YXIgbmV3Q29sdW1uQ29udGVudHMgPSBJbnNwZWN0b3JUZXN0LmNvbHVt
bkNvbnRlbnRzKGNvbHVtbnNbMF0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0Q29sdW1uQ29udGVudHNFcXVhbChjb2x1bW5Db250ZW50cywgbmV3Q29sdW1uQ29udGVudHMp
OworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQobmV4dCwgMCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICBdKTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3RzIERvbWluYXRvcnMgdmlldyBvZiBkZXRhaWxlZCBoZWFw
IHNuYXBzaG90cy4KK0V4cGFuZGVkIG5vZGVzIG11c3QgYmUgcHJlc2VydmVkIGFmdGVyIHNvcnRp
bmcuCis8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWRvbWluYXRvcnMtc2hvdy1hbGwtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBz
aG90cy1kb21pbmF0b3JzLXNob3ctYWxsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi45NjZmMWJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1kb21pbmF0b3JzLXNob3ctYWxs
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3RzIERvbWluYXRvcnMgdmlldyBvZiBk
ZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4gVGhlICJTaG93IEFsbCIgYnV0dG9uIG11c3Qgc2hvdyBh
bGwgbm9kZXMuCisKK0hlYXAgcHJvZmlsZXIgaXMgZGlzYWJsZWQKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1kb21pbmF0b3Jz
LXNob3ctYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQt
aGVhcHNob3RzLWRvbWluYXRvcnMtc2hvdy1hbGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4wMGU3MTM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1kb21pbmF0b3JzLXNob3ctYWxsLmh0
bWwKQEAgLTAsMCArMSw2MyBAQAorPGh0bWw+Cis8aGVhZD4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKyAgPHNj
cmlwdCBzcmM9ImRldGFpbGVkLWhlYXBzaG90cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciBpbnN0YW5jZUNvdW50ID0gMjU7CisgICAg
ZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90KCkKKyAgICB7CisgICAgICAgIHJldHVybiBJbnNw
ZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNvdW50KTsKKyAgICB9CisKKyAg
ICBJbnNwZWN0b3JUZXN0LnJ1bkRldGFpbGVkSGVhcHNob3RUZXN0U3VpdGUoWworICAgICAgICBm
dW5jdGlvbiB0ZXN0U2hvd0FsbChuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVhcFNuYXBzaG90LCBzdGVwMSk7CisK
KyAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldygiRG9taW5hdG9ycyIsIHN0ZXAyKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmluZEFuZEV4cGFuZEdDUm9vdHMoc3Rl
cDMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMyhyb3cpCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVjdG9y
VGVzdC5maW5kQnV0dG9uc05vZGUocm93KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydEVxdWFscyh0cnVlLCAhIWJ1dHRvbnNOb2RlLCAiYnV0dG9ucyBub2RlIik7CisgICAg
ICAgICAgICAgICAgdmFyIHdvcmRzID0gYnV0dG9uc05vZGUuc2hvd0FsbC50ZXh0Q29udGVudC5z
cGxpdCgiICIpOworICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgd29yZHMubGVu
Z3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIG1heWJlTnVtYmVyID0gcGFyc2VJ
bnQod29yZHNbaV0sIDEwKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFpc05hTihtYXliZU51
bWJlcikpCisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFs
cyhpbnN0YW5jZUNvdW50LCBtYXliZU51bWJlciwgYnV0dG9uc05vZGUuc2hvd0FsbC50ZXh0Q29u
dGVudCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
Y2xpY2tTaG93TW9yZUJ1dHRvbigic2hvd0FsbCIsIGJ1dHRvbnNOb2RlLCBzdGVwNCk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA0KHJvdykKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICB2YXIgcm93c1Nob3duID0gSW5zcGVjdG9yVGVzdC5jb3VudERh
dGFSb3dzKHJvdyk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMo
aW5zdGFuY2VDb3VudCwgcm93c1Nob3duLCAiYWZ0ZXIgc2hvd0FsbCBjbGljayIpOworICAgICAg
ICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2Rl
KHJvdyk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoZmFsc2Us
ICEhYnV0dG9uc05vZGUsICJidXR0b25zIG5vZGUgZm91bmQgd2hlbiBhbGwgaW5zdGFuY2VzIGFy
ZSBzaG93biEiKTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KG5leHQsIDApOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgXSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+CitUZXN0cyBEb21pbmF0b3JzIHZpZXcgb2YgZGV0
YWlsZWQgaGVhcCBzbmFwc2hvdHMuCitUaGUgJnF1b3Q7U2hvdyBBbGwmcXVvdDsgYnV0dG9uIG11
c3Qgc2hvdyBhbGwgbm9kZXMuCis8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWRvbWluYXRv
cnMtc2hvdy1uZXh0LWFjdHVhbC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIv
ZGV0YWlsZWQtaGVhcHNob3RzLWRvbWluYXRvcnMtc2hvdy1uZXh0LWFjdHVhbC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU3ZTFhYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtZG9taW5h
dG9ycy1zaG93LW5leHQtYWN0dWFsLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3RzIENvbXBhcmlz
b24gdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4gUmVwZWF0ZWQgY2xpY2tzIG9uICJT
aG93IE5leHQiIGJ1dHRvbiBtdXN0IHNob3cgYWxsIG5vZGVzLgorCitIZWFwIHByb2ZpbGVyIGlz
IGRpc2FibGVkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9k
ZXRhaWxlZC1oZWFwc2hvdHMtZG9taW5hdG9ycy1zaG93LW5leHQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1kb21pbmF0b3Jz
LXNob3ctbmV4dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYWQwMjFjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtZG9taW5hdG9ycy1zaG93LW5leHQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNCBAQAorVGVzdHMgRG9taW5hdG9ycyB2aWV3IG9mIGRldGFpbGVkIGhlYXAg
c25hcHNob3RzLiBSZXBlYXRlZCBjbGlja3Mgb24gIlNob3cgTmV4dCIgYnV0dG9uIG11c3Qgc2hv
dyBhbGwgbm9kZXMuCisKK0hlYXAgcHJvZmlsZXIgaXMgZGlzYWJsZWQKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1kb21pbmF0
b3JzLXNob3ctbmV4dC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFp
bGVkLWhlYXBzaG90cy1kb21pbmF0b3JzLXNob3ctbmV4dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjI1MDU5ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWRvbWluYXRvcnMtc2hvdy1u
ZXh0Lmh0bWwKQEAgLTAsMCArMSw1NiBAQAorPGh0bWw+Cis8aGVhZD4KKyAgPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgPHNjcmlwdCBzcmM9ImRldGFpbGVkLWhlYXBzaG90cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciBpbnN0YW5jZUNvdW50ID0gMjU7
CisgICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90KCkKKyAgICB7CisgICAgICAgIHJldHVy
biBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNvdW50KTsKKyAgICB9
CisKKyAgICBJbnNwZWN0b3JUZXN0LnJ1bkRldGFpbGVkSGVhcHNob3RUZXN0U3VpdGUoWworICAg
ICAgICBmdW5jdGlvbiB0ZXN0U2hvd05leHQobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdCwgc3Rl
cDEpOworCisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zd2l0Y2hUb1ZpZXcoIkRvbWluYXRvcnMiLCBzdGVw
Mik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZpbmRBbmRFeHBhbmRHQ1Jv
b3RzKHN0ZXAzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMo
cm93KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciByb3dzU2hvd24gPSBJbnNw
ZWN0b3JUZXN0LmNvdW50RGF0YVJvd3Mocm93KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydEVxdWFscyh0cnVlLCByb3dzU2hvd24gPD0gaW5zdGFuY2VDb3VudCwgInNob3du
IG1vcmUgaW5zdGFuY2VzIHRoYW4gY3JlYXRlZDogIiArIHJvd3NTaG93biArICIgPiAiICsgaW5z
dGFuY2VDb3VudCk7CisgICAgICAgICAgICAgICAgaWYgKHJvd3NTaG93biA8IGluc3RhbmNlQ291
bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVjdG9yVGVz
dC5maW5kQnV0dG9uc05vZGUocm93KTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnRFcXVhbHModHJ1ZSwgISFidXR0b25zTm9kZSwgImJ1dHRvbnMgbm9kZSIpOworICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrU2hvd01vcmVCdXR0b24oInNob3dO
ZXh0IiwgYnV0dG9uc05vZGUsIHN0ZXAzKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJv
d3NTaG93biA9PT0gaW5zdGFuY2VDb3VudCkgeworICAgICAgICAgICAgICAgICAgICB2YXIgYnV0
dG9uc05vZGUgPSBJbnNwZWN0b3JUZXN0LmZpbmRCdXR0b25zTm9kZShyb3cpOworICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhmYWxzZSwgISFidXR0b25zTm9k
ZSwgImJ1dHRvbnMgbm9kZSBmb3VuZCB3aGVuIGFsbCBpbnN0YW5jZXMgYXJlIHNob3duISIpOwor
ICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KG5leHQsIDApOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIF0pOworfQorCis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPgorVGVzdHMgRG9taW5hdG9ycyB2
aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLgorUmVwZWF0ZWQgY2xpY2tzIG9uICZxdW90
O1Nob3cgTmV4dCZxdW90OyBidXR0b24gbXVzdCBzaG93IGFsbCBub2Rlcy4KKzwvcD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9k
ZXRhaWxlZC1oZWFwc2hvdHMtZG9taW5hdG9ycy1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13
aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVy
L2RldGFpbGVkLWhlYXBzaG90cy1kb21pbmF0b3JzLXNob3duLW5vZGUtY291bnQtcHJlc2VydmVk
LXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZTUyYTM1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtZG9taW5hdG9ycy1zaG93bi1ub2RlLWNvdW50LXBy
ZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdHMg
RG9taW5hdG9ycyB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLiBTaG93biBub2RlIGNv
dW50IG11c3QgYmUgcHJlc2VydmVkIGFmdGVyIHNvcnRpbmcuCisKK0hlYXAgcHJvZmlsZXIgaXMg
ZGlzYWJsZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2Rl
dGFpbGVkLWhlYXBzaG90cy1kb21pbmF0b3JzLXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdo
ZW4tc29ydGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVk
LWhlYXBzaG90cy1kb21pbmF0b3JzLXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29y
dGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkNzg3Y2MKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQt
aGVhcHNob3RzLWRvbWluYXRvcnMtc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0
aW5nLmh0bWwKQEAgLTAsMCArMSw3OSBAQAorPGh0bWw+Cis8aGVhZD4KKyAgPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgPHNjcmlwdCBzcmM9ImRldGFpbGVkLWhlYXBzaG90cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciBpbnN0YW5jZUNvdW50ID0gMjU7
CisgICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90KCkKKyAgICB7CisgICAgICAgIHJldHVy
biBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNvdW50KTsKKyAgICB9
CisKKyAgICBJbnNwZWN0b3JUZXN0LnJ1bkRldGFpbGVkSGVhcHNob3RUZXN0U3VpdGUoWworICAg
ICAgICBmdW5jdGlvbiB0ZXN0U2hvd25Ob2RlQ291bnRQcmVzZXJ2ZWRXaGVuU29ydGluZyhuZXh0
KQorICAgICAgICB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNo
b3QoY3JlYXRlSGVhcFNuYXBzaG90LCBzdGVwMSk7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0
ZXAxKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRj
aFRvVmlldygiRG9taW5hdG9ycyIsIHN0ZXAyKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgdmFyIGNvbHVtbnM7CisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgY29sdW1ucyA9IEluc3BlY3RvclRlc3Qudmlld0NvbHVtbnMo
KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVtbnNbMF0s
IHN0ZXAzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMoKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmluZEFuZEV4cGFu
ZEdDUm9vdHMoc3RlcDQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBz
dGVwNChyb3cpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIGJ1dHRvbnNOb2Rl
ID0gSW5zcGVjdG9yVGVzdC5maW5kQnV0dG9uc05vZGUocm93KTsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIWJ1dHRvbnNOb2RlLCAibm8gYnV0dG9u
cyBub2RlIGZvdW5kISIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tTaG93
TW9yZUJ1dHRvbigic2hvd05leHQiLCBidXR0b25zTm9kZSwgc3RlcDUpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICB2YXIgbm9kZUNvdW50OworICAgICAgICAgICAgZnVuY3Rpb24gc3Rl
cDUocm93KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFRoZXJlIG11c3QgYmUg
ZW5vdWdoIG5vZGVzIHRvIGhhdmUgc29tZSB1bnJldmVhbGVkLgorICAgICAgICAgICAgICAgIHZh
ciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdyk7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFidXR0b25zTm9k
ZSwgIm5vIGJ1dHRvbnMgbm9kZSBmb3VuZCEiKTsKKworICAgICAgICAgICAgICAgIG5vZGVDb3Vu
dCA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMoY29sdW1uc1swXSkubGVuZ3RoOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsIG5vZGVDb3VudCA+
IDAsICJub2RlQ291bnQgPiAwIik7CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNs
aWNrQ29sdW1uKGNvbHVtbnNbMF0sIGNsaWNrVHdpY2UpOworICAgICAgICAgICAgICAgIGZ1bmN0
aW9uIGNsaWNrVHdpY2UoKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5zWzBdLCBzdGVwNik7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwNigpCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIG5ld05vZGVDb3VudCA9IEluc3BlY3Rv
clRlc3QuY29sdW1uQ29udGVudHMoY29sdW1uc1swXSkubGVuZ3RoOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKG5vZGVDb3VudCwgbmV3Tm9kZUNvdW50KTsKKyAg
ICAgICAgICAgICAgICBzZXRUaW1lb3V0KG5leHQsIDApOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgXSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgorPHA+CitUZXN0cyBEb21pbmF0b3JzIHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFw
c2hvdHMuCitTaG93biBub2RlIGNvdW50IG11c3QgYmUgcHJlc2VydmVkIGFmdGVyIHNvcnRpbmcu
Cis8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWRvbWluYXRvcnMtc29ydGluZy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3Rz
LWRvbWluYXRvcnMtc29ydGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMzQ1MDg3MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtZG9taW5hdG9ycy1zb3J0aW5nLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3RzIHNvcnRpbmcgaW4gRG9taW5hdG9ycyB2aWV3
IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLgorCitIZWFwIHByb2ZpbGVyIGlzIGRpc2FibGVk
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1o
ZWFwc2hvdHMtZG9taW5hdG9ycy1zb3J0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWRvbWluYXRvcnMtc29ydGluZy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5MDhjNzkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWRvbWlu
YXRvcnMtc29ydGluZy5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzxodG1sPgorPGhlYWQ+CisgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+CisgIDxzY3JpcHQgc3JjPSJkZXRhaWxlZC1oZWFwc2hvdHMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgaW5zdGFuY2VD
b3VudCA9IDI1OworICAgIGZ1bmN0aW9uIGNyZWF0ZUhlYXBTbmFwc2hvdCgpCisgICAgeworICAg
ICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3QoaW5zdGFuY2VDb3Vu
dCk7CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5ydW5EZXRhaWxlZEhlYXBzaG90VGVzdFN1
aXRlKFsKKyAgICAgICAgZnVuY3Rpb24gdGVzdFNvcnRpbmcobmV4dCkKKyAgICAgICAgeworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFw
c2hvdCwgc3RlcDEpOworCisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zd2l0Y2hUb1ZpZXcoIkRvbWluYXRv
cnMiLCBzdGVwMik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciBnY1Jvb3RzOwor
ICAgICAgICAgICAgdmFyIGNvbHVtbnM7CisgICAgICAgICAgICB2YXIgY3VycmVudENvbHVtbjsK
KyAgICAgICAgICAgIHZhciBjdXJyZW50Q29sdW1uT3JkZXI7CisKKyAgICAgICAgICAgIGZ1bmN0
aW9uIHN0ZXAyKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmZpbmRBbmRFeHBhbmRHQ1Jvb3RzKHN0ZXAzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgZnVuY3Rpb24gc3RlcDMoZ2NSb290c1JvdykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBnY1Jvb3RzID0gZ2NSb290c1JvdzsKKyAgICAgICAgICAgICAgICBjb2x1bW5zID0gSW5z
cGVjdG9yVGVzdC52aWV3Q29sdW1ucygpOworICAgICAgICAgICAgICAgIGN1cnJlbnRDb2x1bW4g
PSAwOworICAgICAgICAgICAgICAgIGN1cnJlbnRDb2x1bW5PcmRlciA9IGZhbHNlOworICAgICAg
ICAgICAgICAgIHNldFRpbWVvdXQoc3RlcDQsIDApOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBmdW5jdGlvbiBzdGVwNCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYg
KGN1cnJlbnRDb2x1bW4gPj0gY29sdW1ucy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAg
c2V0VGltZW91dChuZXh0LCAwKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tDb2x1bW4o
Y29sdW1uc1tjdXJyZW50Q29sdW1uXSwgc3RlcDUpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBmdW5jdGlvbiBzdGVwNShuZXdDb2x1bW5TdGF0ZSkKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICBjb2x1bW5zW2N1cnJlbnRDb2x1bW5dID0gbmV3Q29sdW1uU3RhdGU7CisgICAg
ICAgICAgICAgICAgdmFyIGNvbnRlbnRzID0gSW5zcGVjdG9yVGVzdC5jb2x1bW5Db250ZW50cyhj
b2x1bW5zW2N1cnJlbnRDb2x1bW5dLCBnY1Jvb3RzKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIWNvbnRlbnRzLmxlbmd0aCwgImNvbHVtbiBjb250
ZW50cyIpOworICAgICAgICAgICAgICAgIHZhciBzb3J0VHlwZXMgPSB7IG9iamVjdDogImlkIiwg
c2hhbGxvd1NpemU6ICJzaXplIiwgcmV0YWluZWRTaXplOiAic2l6ZSIgfTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIXNvcnRUeXBlc1tjb2x1bW5z
W2N1cnJlbnRDb2x1bW5dLmlkZW50aWZpZXJdLCAic29ydCBieSBpZGVudGlmaWVyIik7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0FycmF5SXNTb3J0ZWQoY29udGVudHMsIHNv
cnRUeXBlc1tjb2x1bW5zW2N1cnJlbnRDb2x1bW5dLmlkZW50aWZpZXJdLCBjb2x1bW5zW2N1cnJl
bnRDb2x1bW5dLnNvcnQpOworCisgICAgICAgICAgICAgICAgaWYgKCFjdXJyZW50Q29sdW1uT3Jk
ZXIpCisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDb2x1bW5PcmRlciA9IHRydWU7CisgICAg
ICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDb2x1bW5PcmRl
ciA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICArK2N1cnJlbnRDb2x1bW47CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoc3RlcDQsIDApOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgXSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+CitUZXN0cyBzb3J0aW5nIGluIERvbWluYXRvcnMg
dmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4KKzwvcD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFw
c2hvdHMtc3VtbWFyeS1leHBhbnNpb24tcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1zdW1tYXJ5LWV4
cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwKaW5kZXggNDNhOGY1ZS4uMGJjMGMz
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhl
YXBzaG90cy1zdW1tYXJ5LWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1zdW1t
YXJ5LWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwKQEAgLTQ2LDcgKzQ2LDcg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgdmFyIHJv
dyA9IEluc3BlY3RvclRlc3QuZmluZFJvdygib2JqZWN0IiwgIkIiKTsKICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIXJvdywgIlwiQlwiIHJvdyIpOwot
ICAgICAgICAgICAgICAgIGJJbnN0YW5jZVJvdyA9IHJvdy5jaGlsZHJlblswXTsKKyAgICAgICAg
ICAgICAgICB2YXIgYkluc3RhbmNlUm93ID0gcm93LmNoaWxkcmVuWzBdOwogICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhYkluc3RhbmNlUm93LCAiXCJC
XCIgaW5zdGFuY2Ugcm93Iik7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRS
b3coYkluc3RhbmNlUm93LCBleHBhbmRBKTsKICAgICAgICAgICAgICAgICBmdW5jdGlvbiBleHBh
bmRBKHJvdykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9kZXRh
aWxlZC1oZWFwc2hvdHMtc3VtbWFyeS1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNv
cnRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFp
bGVkLWhlYXBzaG90cy1zdW1tYXJ5LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29y
dGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjJm
MGE1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9k
ZXRhaWxlZC1oZWFwc2hvdHMtc3VtbWFyeS1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVu
LXNvcnRpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdHMgU3VtbWFyeSB2aWV3
IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLiBTaG93biBub2RlIGNvdW50IG11c3QgYmUgcHJl
c2VydmVkIGFmdGVyIHNvcnRpbmcuCisKK0hlYXAgcHJvZmlsZXIgaXMgZGlzYWJsZWQKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90
cy1zdW1tYXJ5LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1zdW1tYXJ5
LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5MzUwNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLXN1bW1hcnktc2hv
d24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwKQEAgLTAsMCArMSw4MCBA
QAorPGh0bWw+Cis8aGVhZD4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9ImRldGFpbGVk
LWhlYXBzaG90cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3Qo
KQoreworICAgIHZhciBpbnN0YW5jZUNvdW50ID0gMjU7CisgICAgZnVuY3Rpb24gY3JlYXRlSGVh
cFNuYXBzaG90KCkKKyAgICB7CisgICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhl
YXBTbmFwc2hvdChpbnN0YW5jZUNvdW50KTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LnJ1
bkRldGFpbGVkSGVhcHNob3RUZXN0U3VpdGUoWworICAgICAgICBmdW5jdGlvbiB0ZXN0RXhwYW5z
aW9uUHJlc2VydmVkV2hlblNvcnRpbmcobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdCwgc3RlcDEp
OworCisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5zd2l0Y2hUb1ZpZXcoIlN1bW1hcnkiLCBzdGVwMik7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciBjb2x1bW5zOworICAgICAgICAgICAgZnVu
Y3Rpb24gc3RlcDIoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNvbHVtbnMgPSBJ
bnNwZWN0b3JUZXN0LnZpZXdDb2x1bW5zKCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jbGlja0NvbHVtbihjb2x1bW5zWzBdLCBzdGVwMyk7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGZ1bmN0aW9uIHN0ZXAzKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB2
YXIgcm93ID0gSW5zcGVjdG9yVGVzdC5maW5kUm93KCJvYmplY3QiLCAiQiIpOworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhcm93LCAiXCJCXCIgcm93
Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRSb3cocm93LCBzaG93TmV4
dCk7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gc2hvd05leHQocm93KQorICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVjdG9yVGVz
dC5maW5kQnV0dG9uc05vZGUocm93KTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnRFcXVhbHModHJ1ZSwgISFidXR0b25zTm9kZSwgIm5vIGJ1dHRvbnMgbm9kZSBmb3Vu
ZCEiKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja1Nob3dNb3JlQnV0
dG9uKCJzaG93TmV4dCIsIGJ1dHRvbnNOb2RlLCBzdGVwNCk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIgbm9kZUNvdW50OworICAgICAgICAgICAg
ZnVuY3Rpb24gc3RlcDQocm93KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFRo
ZXJlIG11c3QgYmUgZW5vdWdoIG5vZGVzIHRvIGhhdmUgc29tZSB1bnJldmVhbGVkLgorICAgICAg
ICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2Rl
KHJvdyk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwg
ISFidXR0b25zTm9kZSwgIm5vIGJ1dHRvbnMgbm9kZSBmb3VuZCEiKTsKKworICAgICAgICAgICAg
ICAgIG5vZGVDb3VudCA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMoY29sdW1uc1swXSku
bGVuZ3RoOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUs
IG5vZGVDb3VudCA+IDAsICJub2RlQ291bnQgPiAwIik7CisKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVtbnNbMF0sIGNsaWNrVHdpY2UpOworICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uIGNsaWNrVHdpY2UoKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5zWzBdLCBzdGVwNik7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlv
biBzdGVwNigpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIG5ld05vZGVDb3Vu
dCA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMoY29sdW1uc1swXSkubGVuZ3RoOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKG5vZGVDb3VudCwgbmV3Tm9k
ZUNvdW50KTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KG5leHQsIDApOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgXSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPHA+CitUZXN0cyBTdW1tYXJ5IHZpZXcgb2YgZGV0YWlsZWQg
aGVhcCBzbmFwc2hvdHMuCitTaG93biBub2RlIGNvdW50IG11c3QgYmUgcHJlc2VydmVkIGFmdGVy
IHNvcnRpbmcuCis8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLXRlc3QuanMgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLXRlc3QuanMKaW5kZXgg
MzVlZTBhZS4uMjBjNDU5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2Zp
bGVyL2RldGFpbGVkLWhlYXBzaG90cy10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtdGVzdC5qcwpAQCAtNjgsNiArNjgsNyBAQCBJ
bnNwZWN0b3JUZXN0LnJ1bkRldGFpbGVkSGVhcHNob3RUZXN0U3VpdGUgPSBmdW5jdGlvbih0ZXN0
U3VpdGUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBJbnNwZWN0b3JUZXN0Ll9uZXh0
VWlkID0gMTsKICAgICB2YXIgdGVzdFN1aXRlVGVzdHMgPSB0ZXN0U3VpdGUuc2xpY2UoKTsKIAog
ICAgIGZ1bmN0aW9uIHJ1bm5lcigpCkBAIC0xMjIsMTEgKzEyMywyMiBAQCBJbnNwZWN0b3JUZXN0
LmNoZWNrQXJyYXlJc1NvcnRlZCA9IGZ1bmN0aW9uKGNvbnRlbnRzLCBzb3J0VHlwZSwgc29ydE9y
ZGVyKQogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk5vIG5hbWUgZmllbGQg
aW4gIiArIEpTT04uc3RyaW5naWZ5KGRhdGEpKTsKICAgICAgICAgcmV0dXJuIHBhcnNlSW50KGRh
dGEubmFtZSwgMTApOwogICAgIH0KKyAgICBmdW5jdGlvbiBleHRyYWN0SWQoZGF0YSkKKyAgICB7
CisgICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGRhdGEpOworICAgICAgICBpZiAoIWRhdGEudmFs
dWUpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiTm8gdmFsdWUgZmllbGQg
aW4gIiArIEpTT04uc3RyaW5naWZ5KGRhdGEpKTsKKyAgICAgICAgdmFyIGluZGV4T2ZBdCA9IGRh
dGEudmFsdWUuaW5kZXhPZigiQCIpOworICAgICAgICBpZiAoaW5kZXhPZkF0ID09PSAtMSkKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDYW4ndCBmaW5kIEAgaW4gIiArIGRh
dGEudmFsdWUpOworICAgICAgICByZXR1cm4gcGFyc2VJbnQoZGF0YS52YWx1ZS5zdWJzdHJpbmco
aW5kZXhPZkF0ICsgMSksIDEwKTsKKyAgICB9CiAgICAgdmFyIGNvbXBhcmF0b3IgPSB7CiAgICAg
ICAgIHRleHQ6IHNpbXBsZUNvbXBhcmF0b3IsCiAgICAgICAgIG51bWJlcjogZnVuY3Rpb24gKGEs
IGIpIHsgcmV0dXJuIHNpbXBsZUNvbXBhcmF0b3IocGFyc2VJbnQoYSwgMTApLCBwYXJzZUludChi
LCAxMCkpOyB9LAogICAgICAgICBzaXplOiBmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gc2ltcGxl
Q29tcGFyYXRvcihwYXJzZVNpemUoYSksIHBhcnNlU2l6ZShiKSk7IH0sCi0gICAgICAgIG5hbWU6
IGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBzaW1wbGVDb21wYXJhdG9yKGV4dHJhY3ROYW1lKGEp
LCBleHRyYWN0TmFtZShiKSk7IH0KKyAgICAgICAgbmFtZTogZnVuY3Rpb24gKGEsIGIpIHsgcmV0
dXJuIHNpbXBsZUNvbXBhcmF0b3IoZXh0cmFjdE5hbWUoYSksIGV4dHJhY3ROYW1lKGIpKTsgfSwK
KyAgICAgICAgaWQ6IGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBzaW1wbGVDb21wYXJhdG9yKGV4
dHJhY3RJZChhKSwgZXh0cmFjdElkKGIpKTsgfQogICAgIH1bc29ydFR5cGVdOwogICAgIHZhciBh
Y2NlcHRhYmxlQ29tcGFyaXNvblJlc3VsdCA9IHsKICAgICAgICAgYXNjZW5kaW5nOiAtMSwKQEAg
LTIwMiwxNyArMjE0LDE4IEBAIEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMgPSBmdW5jdGlv
bihjb2x1bW4sIHJvdykKICAgICByZXR1cm4gcmVzdWx0OwogfTsKIAotSW5zcGVjdG9yVGVzdC5j
b3VudERhdGFSb3dzID0gZnVuY3Rpb24ocm93KQorSW5zcGVjdG9yVGVzdC5jb3VudERhdGFSb3dz
ID0gZnVuY3Rpb24ocm93LCBmaWx0ZXIpCiB7CiAgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZmls
dGVyID0gZmlsdGVyIHx8IGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUuc2VsZWN0YWJsZTsg
fTsKICAgICBmb3IgKHZhciBub2RlID0gcm93LmNoaWxkcmVuWzBdOyBub2RlOyBub2RlID0gbm9k
ZS50cmF2ZXJzZU5leHROb2RlKHRydWUsIHJvdywgdHJ1ZSkpIHsKLSAgICAgICAgaWYgKG5vZGUu
c2VsZWN0YWJsZSkKKyAgICAgICAgaWYgKGZpbHRlcihub2RlKSkKICAgICAgICAgICAgICsrcmVz
dWx0OwogICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfTsKIAotSW5zcGVjdG9yVGVzdC5jcmVh
dGVIZWFwU25hcHNob3QgPSBmdW5jdGlvbihpbnN0YW5jZUNvdW50KQorSW5zcGVjdG9yVGVzdC5j
cmVhdGVIZWFwU25hcHNob3QgPSBmdW5jdGlvbihpbnN0YW5jZUNvdW50LCBmaXJzdElkKQogewog
ICAgIC8vIE1vY2tpbmcgcmVzdWx0cyBvZiBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29kZToKICAg
ICAvLyAKQEAgLTIzMSw3ICsyNDQsNyBAQCBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hv
dCA9IGZ1bmN0aW9uKGluc3RhbmNlQ291bnQpCiAgICAgICAgIG5vZGVzLnB1c2goMCwgMCwgMSwg
MCwgKHNpemVPZkEgKyBzaXplT2ZCKSAqIGluc3RhbmNlQ291bnQsIDEsIDEsIDQsIDEsIG51bGwp
OwogICAgICAgICAvLyBQdXNoIGluc3RhbmNlcyBvZiBBIGFuZCBCLgogICAgICAgICB2YXIgaW5k
ZXhlc09mQiA9IFtdOwotICAgICAgICB2YXIgbmV4dElkID0gNTsKKyAgICAgICAgdmFyIG5leHRJ
ZCA9IGZpcnN0SWQgfHwgNTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnN0YW5jZUNv
dW50OyArK2kpIHsKICAgICAgICAgICAgIHZhciBpbmRleE9mQSA9IG5vZGVzLmxlbmd0aDsKICAg
ICAgICAgICAgIG5vZGVzLnB1c2goMywgMSwgbmV4dElkKyssIHNpemVPZkEsIHNpemVPZkEsIG51
bGwsIDEsIDIsIDMsIGluZGV4T2ZBKTsKQEAgLTI5NywxMCArMzEwLDEwIEBAIEluc3BlY3RvclRl
c3QuZmluZEFuZEV4cGFuZEdDUm9vdHMgPSBmdW5jdGlvbihjYWxsYmFjaykKICAgICBJbnNwZWN0
b3JUZXN0LmV4cGFuZFJvdyhnY1Jvb3RzLCBjYWxsYmFjayk7CiB9CiAKLUluc3BlY3RvclRlc3Qu
ZmluZEJ1dHRvbnNOb2RlID0gZnVuY3Rpb24ocm93KQorSW5zcGVjdG9yVGVzdC5maW5kQnV0dG9u
c05vZGUgPSBmdW5jdGlvbihyb3csIHN0YXJ0Tm9kZSkKIHsKICAgICB2YXIgcmVzdWx0ID0gMDsK
LSAgICBmb3IgKHZhciBub2RlID0gcm93LmNoaWxkcmVuWzBdOyBub2RlOyBub2RlID0gbm9kZS50
cmF2ZXJzZU5leHROb2RlKHRydWUsIHJvdywgdHJ1ZSkpIHsKKyAgICBmb3IgKHZhciBub2RlID0g
c3RhcnROb2RlIHx8IHJvdy5jaGlsZHJlblswXTsgbm9kZTsgbm9kZSA9IG5vZGUudHJhdmVyc2VO
ZXh0Tm9kZSh0cnVlLCByb3csIHRydWUpKSB7CiAgICAgICAgIGlmICghbm9kZS5zZWxlY3RhYmxl
ICYmIG5vZGUuc2hvd05leHQpCiAgICAgICAgICAgICByZXR1cm4gbm9kZTsKICAgICB9CkBAIC0z
MjEsNiArMzM0LDE2IEBAIEluc3BlY3RvclRlc3QuZmluZFJvdyA9IGZ1bmN0aW9uKGNvbHVtbklk
ZW50aWZpZXIsIG1hdGNoZXIsIHBhcmVudCkKICAgICByZXR1cm4gbnVsbDsKIH07CiAKK0luc3Bl
Y3RvclRlc3QuZmluZFJvdzIgPSBmdW5jdGlvbihtYXRjaGVyLCBwYXJlbnQpCit7CisgICAgcGFy
ZW50ID0gcGFyZW50IHx8IHRoaXMuX2N1cnJlbnRHcmlkKCk7CisgICAgZm9yICh2YXIgbm9kZSA9
IHBhcmVudC5jaGlsZHJlblswXTsgbm9kZTsgbm9kZSA9IG5vZGUudHJhdmVyc2VOZXh0Tm9kZSh0
cnVlLCBwYXJlbnQsIHRydWUpKSB7CisgICAgICAgIGlmIChtYXRjaGVyKG5vZGUuZGF0YSkpCisg
ICAgICAgICAgICByZXR1cm4gbm9kZTsKKyAgICB9CisgICAgcmV0dXJuIG51bGw7Cit9OworCiBJ
bnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldyA9IGZ1bmN0aW9uKHRpdGxlLCBjYWxsYmFjaykKIHsK
ICAgICBjYWxsYmFjayA9IEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2FsbGJhY2spOwpAQCAtMzQ4
LDcgKzM3MSw3IEBAIEluc3BlY3RvclRlc3Quc3dpdGNoVG9WaWV3ID0gZnVuY3Rpb24odGl0bGUs
IGNhbGxiYWNrKQogSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90ID0gZnVuY3Rpb24o
Z2VuZXJhdG9yLCBjYWxsYmFjaykKIHsKICAgICBjYWxsYmFjayA9IEluc3BlY3RvclRlc3Quc2Fm
ZVdyYXAoY2FsbGJhY2spOwotICAgIHZhciB1aWQgPSAxOworICAgIHZhciB1aWQgPSBJbnNwZWN0
b3JUZXN0Ll9uZXh0VWlkKys7CiAgICAgdmFyIHByb2ZpbGUgPSB7IHR5cGVJZDogV2ViSW5zcGVj
dG9yLkhlYXBTbmFwc2hvdFByb2ZpbGVUeXBlLlR5cGVJZCwgdWlkOiB1aWQsIHRpdGxlOiBVc2Vy
SW5pdGlhdGVkUHJvZmlsZU5hbWUgKyAiLiIgKyB1aWQgfTsKICAgICBmdW5jdGlvbiBwdXNoR2Vu
ZXJhdGVkU25hcHNob3QodHlwZUlkLCB1aWQpCiAgICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90
cy1jb21wYXJpc29uLWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9wcm9maWxlci9kZXRh
aWxlZC1oZWFwc2hvdHMtY29tcGFyaXNvbi1leHBhbnNpb24tcHJlc2VydmVkLXdoZW4tc29ydGlu
Zy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIwZmQ1
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3Bl
Y3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFyaXNvbi1leHBhbnNpb24tcHJl
c2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0cyBD
b21wYXJpc29uIHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuIEV4cGFuZGVkIG5vZGVz
IG11c3QgYmUgcHJlc2VydmVkIGFmdGVyIHNvcnRpbmcuCisKK1Byb2ZpbGVyIHdhcyBlbmFibGVk
LgorRGV0YWlsZWQgaGVhcCBwcm9maWxlcyB3ZXJlIGVuYWJsZWQuCisKK1J1bm5pbmc6IHRlc3RF
eHBhbnNpb25QcmVzZXJ2ZWRXaGVuU29ydGluZworCitQcm9maWxlciB3YXMgZGlzYWJsZWQuCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9wcm9m
aWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFyaXNvbi1zaG93LWFsbC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWls
ZWQtaGVhcHNob3RzLWNvbXBhcmlzb24tc2hvdy1hbGwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkMjUwZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVh
cHNob3RzLWNvbXBhcmlzb24tc2hvdy1hbGwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAor
VGVzdHMgQ29tcGFyaXNvbiB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLiBUaGUgIlNo
b3cgQWxsIiBidXR0b24gbXVzdCBzaG93IGFsbCBub2Rlcy4KKworUHJvZmlsZXIgd2FzIGVuYWJs
ZWQuCitEZXRhaWxlZCBoZWFwIHByb2ZpbGVzIHdlcmUgZW5hYmxlZC4KKworUnVubmluZzogdGVz
dFNob3dBbGwKKworUHJvZmlsZXIgd2FzIGRpc2FibGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNo
b3RzLWNvbXBhcmlzb24tc2hvdy1uZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFy
aXNvbi1zaG93LW5leHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmY4ZDEyNDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWNvbXBhcmlzb24t
c2hvdy1uZXh0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3RzIENvbXBhcmlzb24g
dmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4gUmVwZWF0ZWQgY2xpY2tzIG9uICJTaG93
IE5leHQiIGJ1dHRvbiBtdXN0IHNob3cgYWxsIG5vZGVzLgorCitQcm9maWxlciB3YXMgZW5hYmxl
ZC4KK0RldGFpbGVkIGhlYXAgcHJvZmlsZXMgd2VyZSBlbmFibGVkLgorCitSdW5uaW5nOiB0ZXN0
U2hvd05leHQKKworUHJvZmlsZXIgd2FzIGRpc2FibGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNo
b3RzLWNvbXBhcmlzb24tc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9wcm9m
aWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFyaXNvbi1zaG93bi1ub2RlLWNvdW50LXByZXNl
cnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmVlNzc4ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWNvbXBhcmlz
b24tc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDkgQEAKK1Rlc3RzIENvbXBhcmlzb24gdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNu
YXBzaG90cy4gU2hvd24gbm9kZSBjb3VudCBtdXN0IGJlIHByZXNlcnZlZCBhZnRlciBzb3J0aW5n
LgorCitQcm9maWxlciB3YXMgZW5hYmxlZC4KK0RldGFpbGVkIGhlYXAgcHJvZmlsZXMgd2VyZSBl
bmFibGVkLgorCitSdW5uaW5nOiB0ZXN0RXhwYW5zaW9uUHJlc2VydmVkV2hlblNvcnRpbmcKKwor
UHJvZmlsZXIgd2FzIGRpc2FibGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWNvbXBhcmlz
b24tc29ydGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9p
bnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWNvbXBhcmlzb24tc29ydGluZy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFlMmJlOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rv
ci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFyaXNvbi1zb3J0aW5nLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3RzIHNvcnRpbmcgaW4gQ29tcGFyaXNvbiB2aWV3IG9m
IGRldGFpbGVkIGhlYXAgc25hcHNob3RzLgorCitQcm9maWxlciB3YXMgZW5hYmxlZC4KK0RldGFp
bGVkIGhlYXAgcHJvZmlsZXMgd2VyZSBlbmFibGVkLgorCitSdW5uaW5nOiB0ZXN0U29ydGluZwor
CitQcm9maWxlciB3YXMgZGlzYWJsZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29udGFp
bm1lbnQtc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9wcm9maWxlci9kZXRh
aWxlZC1oZWFwc2hvdHMtY29udGFpbm1lbnQtc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hl
bi1zb3J0aW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li44ZDE4N2ZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1jb250YWlubWVudC1zaG93
bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsOSBAQAorVGVzdHMgQ29udGFpbm1lbnQgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90
cy4gU2hvd24gbm9kZSBjb3VudCBtdXN0IGJlIHByZXNlcnZlZCBhZnRlciBzb3J0aW5nLgorCitQ
cm9maWxlciB3YXMgZW5hYmxlZC4KK0RldGFpbGVkIGhlYXAgcHJvZmlsZXMgd2VyZSBlbmFibGVk
LgorCitSdW5uaW5nOiB0ZXN0U2hvd25Ob2RlQ291bnRQcmVzZXJ2ZWRXaGVuU29ydGluZworCitQ
cm9maWxlciB3YXMgZGlzYWJsZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtZG9taW5hdG9y
cy1leHBhbnNpb24tcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNo
b3RzLWRvbWluYXRvcnMtZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3MWQzNDYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvcHJvZmls
ZXIvZGV0YWlsZWQtaGVhcHNob3RzLWRvbWluYXRvcnMtZXhwYW5zaW9uLXByZXNlcnZlZC13aGVu
LXNvcnRpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdHMgRG9taW5hdG9ycyB2
aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLiBFeHBhbmRlZCBub2RlcyBtdXN0IGJlIHBy
ZXNlcnZlZCBhZnRlciBzb3J0aW5nLgorCitQcm9maWxlciB3YXMgZW5hYmxlZC4KK0RldGFpbGVk
IGhlYXAgcHJvZmlsZXMgd2VyZSBlbmFibGVkLgorCitSdW5uaW5nOiB0ZXN0RXhwYW5zaW9uUHJl
c2VydmVkV2hlblNvcnRpbmcKKworUHJvZmlsZXIgd2FzIGRpc2FibGVkLgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWls
ZWQtaGVhcHNob3RzLWRvbWluYXRvcnMtc2hvdy1hbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90
cy1kb21pbmF0b3JzLXNob3ctYWxsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4wN2Y4YzE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1kb21p
bmF0b3JzLXNob3ctYWxsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3RzIERvbWlu
YXRvcnMgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4gVGhlICJTaG93IEFsbCIgYnV0
dG9uIG11c3Qgc2hvdyBhbGwgbm9kZXMuCisKK1Byb2ZpbGVyIHdhcyBlbmFibGVkLgorRGV0YWls
ZWQgaGVhcCBwcm9maWxlcyB3ZXJlIGVuYWJsZWQuCisKK1J1bm5pbmc6IHRlc3RTaG93QWxsCisK
K1Byb2ZpbGVyIHdhcyBkaXNhYmxlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1kb21pbmF0
b3JzLXNob3ctbmV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWRvbWluYXRvcnMtc2hvdy1u
ZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTU1
NmE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5z
cGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1kb21pbmF0b3JzLXNob3ctbmV4dC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0cyBEb21pbmF0b3JzIHZpZXcgb2YgZGV0
YWlsZWQgaGVhcCBzbmFwc2hvdHMuIFJlcGVhdGVkIGNsaWNrcyBvbiAiU2hvdyBOZXh0IiBidXR0
b24gbXVzdCBzaG93IGFsbCBub2Rlcy4KKworUHJvZmlsZXIgd2FzIGVuYWJsZWQuCitEZXRhaWxl
ZCBoZWFwIHByb2ZpbGVzIHdlcmUgZW5hYmxlZC4KKworUnVubmluZzogdGVzdFNob3dOZXh0CisK
K1Byb2ZpbGVyIHdhcyBkaXNhYmxlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1kb21pbmF0
b3JzLXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWls
ZWQtaGVhcHNob3RzLWRvbWluYXRvcnMtc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1z
b3J0aW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40
OGI2OWQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
aW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1kb21pbmF0b3JzLXNob3duLW5v
ZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5
IEBACitUZXN0cyBEb21pbmF0b3JzIHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuIFNo
b3duIG5vZGUgY291bnQgbXVzdCBiZSBwcmVzZXJ2ZWQgYWZ0ZXIgc29ydGluZy4KKworUHJvZmls
ZXIgd2FzIGVuYWJsZWQuCitEZXRhaWxlZCBoZWFwIHByb2ZpbGVzIHdlcmUgZW5hYmxlZC4KKwor
UnVubmluZzogdGVzdFNob3duTm9kZUNvdW50UHJlc2VydmVkV2hlblNvcnRpbmcKKworUHJvZmls
ZXIgd2FzIGRpc2FibGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWRvbWluYXRvcnMtc29y
dGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0
b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLWRvbWluYXRvcnMtc29ydGluZy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzgyZDYyNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9wcm9m
aWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtZG9taW5hdG9ycy1zb3J0aW5nLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDkgQEAKK1Rlc3RzIHNvcnRpbmcgaW4gRG9taW5hdG9ycyB2aWV3IG9mIGRldGFp
bGVkIGhlYXAgc25hcHNob3RzLgorCitQcm9maWxlciB3YXMgZW5hYmxlZC4KK0RldGFpbGVkIGhl
YXAgcHJvZmlsZXMgd2VyZSBlbmFibGVkLgorCitSdW5uaW5nOiB0ZXN0U29ydGluZworCitQcm9m
aWxlciB3YXMgZGlzYWJsZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtc3VtbWFyeS1zaG93
bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBz
aG90cy1zdW1tYXJ5LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmFmOGM3YwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9w
cm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtc3VtbWFyeS1zaG93bi1ub2RlLWNvdW50LXByZXNl
cnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdHMgU3Vt
bWFyeSB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLiBTaG93biBub2RlIGNvdW50IG11
c3QgYmUgcHJlc2VydmVkIGFmdGVyIHNvcnRpbmcuCisKK1Byb2ZpbGVyIHdhcyBlbmFibGVkLgor
RGV0YWlsZWQgaGVhcCBwcm9maWxlcyB3ZXJlIGVuYWJsZWQuCisKK1J1bm5pbmc6IHRlc3RFeHBh
bnNpb25QcmVzZXJ2ZWRXaGVuU29ydGluZworCitQcm9maWxlciB3YXMgZGlzYWJsZWQuCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBmOTE1NjEzLi45ZDM4NWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAK
KzIwMTEtMDQtMDggIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBbQ2hyb21pdW1dIEFkZCBzb21lIG1vcmUgdGVzdHMgZm9yIGRldGFpbGVkIGhlYXAgc25h
cHNob3RzIFVJLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTgxNDYKKworICAgICAgICBUZXN0czogaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhl
YXBzaG90cy1jb21wYXJpc29uLWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwK
KyAgICAgICAgICAgICAgIGluc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29t
cGFyaXNvbi1zaG93LWFsbC5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvcHJvZmlsZXIv
ZGV0YWlsZWQtaGVhcHNob3RzLWNvbXBhcmlzb24tc2hvdy1uZXh0Lmh0bWwKKyAgICAgICAgICAg
ICAgIGluc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtY29tcGFyaXNvbi1zaG93
bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbAorICAgICAgICAgICAgICAg
aW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1jb21wYXJpc29uLXNvcnRpbmcu
aHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90
cy1jb250YWlubWVudC1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRt
bAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1k
b21pbmF0b3JzLWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwKKyAgICAgICAg
ICAgICAgIGluc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtZG9taW5hdG9ycy1z
aG93LWFsbC5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQt
aGVhcHNob3RzLWRvbWluYXRvcnMtc2hvdy1uZXh0Lmh0bWwKKyAgICAgICAgICAgICAgIGluc3Bl
Y3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtZG9taW5hdG9ycy1zaG93bi1ub2RlLWNv
dW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9y
L3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1kb21pbmF0b3JzLXNvcnRpbmcuaHRtbAorICAg
ICAgICAgICAgICAgaW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy1zdW1tYXJ5
LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1sCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RWaWV3LmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdERpZmZEYXRhR3JpZCk6CisKIDIwMTEtMDQtMDggIEVu
cmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRGV0YWlsZWRIZWFwc2hvdFZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RldGFpbGVkSGVhcHNob3RWaWV3LmpzCmluZGV4IGE2YjE2NzA3Li5hMjFiZjc1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVh
cHNob3RWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGV0
YWlsZWRIZWFwc2hvdFZpZXcuanMKQEAgLTE1MSw3ICsxNTEsNiBAQCBXZWJJbnNwZWN0b3IuSGVh
cFNuYXBzaG90RGlmZkRhdGFHcmlkID0gZnVuY3Rpb24oKQogewogICAgIHZhciBjb2x1bW5zID0g
ewogICAgICAgICBvYmplY3Q6IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29uc3Ry
dWN0b3IiKSwgZGlzY2xvc3VyZTogdHJ1ZSwgc29ydGFibGU6IHRydWUgfSwKLSAgICAgICAgLy8g
XHhiMSBpcyBhICJwbHVzLW1pbnVzIiBzaWduLgogICAgICAgICBhZGRlZENvdW50OiB7IHRpdGxl
OiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiMgTmV3IiksIHdpZHRoOiAiNzJweCIsIHNvcnRhYmxl
OiB0cnVlLCBzb3J0OiAiZGVzY2VuZGluZyIgfSwKICAgICAgICAgcmVtb3ZlZENvdW50OiB7IHRp
dGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiMgRGVsZXRlZCIpLCB3aWR0aDogIjcycHgiLCBz
b3J0YWJsZTogdHJ1ZSB9LAogICAgICAgICAvLyBcdTAzOTQgaXMgYSBHcmVlayBkZWx0YSBsZXR0
ZXIuCg==
</data>
<flag name="review"
          id="81428"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="81429"
          type_id="3"
          status="-"
          setter="mnaganov"
    />
          </attachment>
      

    </bug>

</bugzilla>