<?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>106909</bug_id>
          
          <creation_ts>2013-01-15 08:10:01 -0800</creation_ts>
          <short_desc>Web Inspector: Introduce UISourceCode.originURL().</short_desc>
          <delta_ts>2013-01-16 02:20:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>807318</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-01-15 08:10:01 -0800</bug_when>
    <thetext>Introduced originURL on UISourceCode showing where UISourceCode in workspace was loaded from.
This is neeeded to distinguish it from network request url used by mappings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807319</commentid>
    <comment_count>1</comment_count>
      <attachid>182778</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-01-15 08:14:23 -0800</bug_when>
    <thetext>Created attachment 182778
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808200</commentid>
    <comment_count>2</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-01-16 02:20:45 -0800</bug_when>
    <thetext>Committed r139859: &lt;http://trac.webkit.org/changeset/139859&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182778</attachid>
            <date>2013-01-15 08:14:23 -0800</date>
            <delta_ts>2013-01-16 01:24:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106909-20130115201122.patch</filename>
            <type>text/plain</type>
            <size>50382</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGNjYjhhYTdkZmFlNDc3
MGJmNWFjOWNhYThkZDhhZDA5NDVmNDRiMy4uNzMzNjVjYjk0YWEzYTc1MjQ3NDZiMTQ3ZjZmMWIy
NzIyNWM0ZjlmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEzLTAxLTE1ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEludHJvZHVjZSBVSVNvdXJjZUNvZGUub3JpZ2luVVJMKCkuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY5MDkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2VkIG9yaWdpblVSTCBvbiBV
SVNvdXJjZUNvZGUgc2hvd2luZyB3aGVyZSBVSVNvdXJjZUNvZGUgaW4gd29ya3NwYWNlIHdhcyBs
b2FkZWQgZnJvbS4KKyAgICAgICAgVGhpcyBpcyBuZWVlZGVkIHRvIGRpc3Rpbmd1aXNoIGl0IGZy
b20gbmV0d29yayByZXF1ZXN0IHVybCB1c2VkIGJ5IG1hcHBpbmdzLgorCisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9BZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRmlsZUJhc2VkU2VhcmNoUmVzdWx0c1BhbmUucHJvdG90eXBlLl9jcmVhdGVB
bmNob3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVCYXNlZFNlYXJjaFJlc3VsdHNQYW5l
LnByb3RvdHlwZS5hZGRTZWFyY2hSZXN1bHQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZh
U2NyaXB0QnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUuX2NvbXBhcmVCcmVha3BvaW50
cyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9DYWxsU3RhY2tTaWRlYmFyUGFuZS5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5QbGFjYXJkLnBy
b3RvdHlwZS5fdXBkYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lv
blNlcnZlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90
eXBlLl9oYW5kbGVPcGVuVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2
ZXIucHJvdG90eXBlLl9vbkdldFJlc291cmNlQ29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25TZXRSZXNvdXJjZUNvbnRlbnQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUuX3NldEJy
ZWFrcG9pbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvTGlua2lmaWVyLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkxpbmtpZmllci5wcm90b3R5cGUuX3VwZGF0ZUFuY2hvcik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuTGlua2lmaWVyLkRlZmF1bHRGb3JtYXR0ZXIucHJvdG90
eXBlLmZvcm1hdExpdmVBbmNob3IpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvTmF2
aWdhdG9yVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JTb3VyY2VUcmVl
RWxlbWVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TQVNTU291cmNlTWFwcGlu
Zy5qczoKKyAgICAgICAgKHVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwucHJvdG90eXBlLmNhblNob3dBbmNob3JMb2NhdGlvbik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fc2hvd1NvdXJjZUxpbmUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3RvZ2dsZUZvcm1hdFNv
dXJjZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzU2VhcmNoU2NvcGUu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1NlYXJjaFNjb3BlLnByb3RvdHlwZS5f
c29ydGVkVUlTb3VyY2VDb2Rlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1NlYXJj
aFNjb3BlLnByb3RvdHlwZS5fc29ydGVkVUlTb3VyY2VDb2Rlcy5jb21wYXJhdG9yKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLnByb3RvdHlwZS5hZGRG
aWxlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlU2hlZXRPdXRsaW5lRGlh
bG9nLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLnBy
b3RvdHlwZS5yZXF1ZXN0SXRlbXMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU3R5
bGVzU291cmNlTWFwcGluZy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNTb3VyY2VN
YXBwaW5nLnByb3RvdHlwZS51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbik6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9UYWJiZWRFZGl0b3JDb250YWluZXIuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZS5fdG9vbHRpcEZvckZpbGUp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVUlT
b3VyY2VDb2RlLnByb3RvdHlwZS5vcmlnaW5VUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZS5wcm90b3R5cGUudXJsQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlLnByb3RvdHlwZS5jb250ZW50VVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SZXZpc2lvbi5wcm90b3R5cGUuY29udGVudFVSTCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9Xb3Jrc3BhY2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZURlc2NyaXB0
b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2plY3QucHJvdG90eXBlLl9maWxlQWRkZWQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2plY3QucHJvdG90eXBlLnVpU291cmNlQ29kZUZv
ck9yaWdpblVSTCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3RvdHlwZS51
aVNvdXJjZUNvZGVGb3JPcmlnaW5VUkwpOgorCiAyMDEzLTAxLTE1ICBBbmRyZXkgTHVzaG5pa292
ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZWZh
Y3RvciBEZWZhdWx0VGV4dEVkaXRvcidzIHBhaW50TGluZSBtZXRob2QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWR2YW5jZWRTZWFyY2hDb250cm9sbGVy
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BZHZhbmNlZFNlYXJjaENv
bnRyb2xsZXIuanMKaW5kZXggODZmYjU4MTlmMDBlNWQyOWU0ODU0MzQ0Y2IxZmFiNDE0YThhMmQ5
MC4uMjJmNTAwZTYwZjkwY2FiNDdhZTllOWI4NmJhMjRjYmJlYTE0OTc0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BZHZhbmNlZFNlYXJjaENvbnRyb2xs
ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BZHZhbmNlZFNl
YXJjaENvbnRyb2xsZXIuanMKQEAgLTUxMSw3ICs1MTEsNyBAQCBXZWJJbnNwZWN0b3IuRmlsZUJh
c2VkU2VhcmNoUmVzdWx0c1BhbmUucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIGFu
Y2hvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKICAgICAgICAgYW5jaG9yLnByZWZl
cnJlZFBhbmVsID0gInNjcmlwdHMiOwotICAgICAgICBhbmNob3IuaHJlZiA9IHNhbml0aXplSHJl
Zih1aVNvdXJjZUNvZGUudXJsKTsKKyAgICAgICAgYW5jaG9yLmhyZWYgPSBzYW5pdGl6ZUhyZWYo
dWlTb3VyY2VDb2RlLm9yaWdpblVSTCgpKTsKICAgICAgICAgYW5jaG9yLnVpU291cmNlQ29kZSA9
IHVpU291cmNlQ29kZTsKICAgICAgICAgYW5jaG9yLmxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyOwog
ICAgICAgICByZXR1cm4gYW5jaG9yOwpAQCAtNTI2LDcgKzUyNiw3IEBAIFdlYkluc3BlY3Rvci5G
aWxlQmFzZWRTZWFyY2hSZXN1bHRzUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciB1aVNv
dXJjZUNvZGUgPSBzZWFyY2hSZXN1bHQudWlTb3VyY2VDb2RlOwogICAgICAgICB2YXIgc2VhcmNo
TWF0Y2hlcyA9IHNlYXJjaFJlc3VsdC5zZWFyY2hNYXRjaGVzOwogCi0gICAgICAgIHZhciBmaWxl
VHJlZUVsZW1lbnQgPSB0aGlzLl9hZGRGaWxlVHJlZUVsZW1lbnQodWlTb3VyY2VDb2RlLnVybCwg
c2VhcmNoTWF0Y2hlcy5sZW5ndGgsIHRoaXMuX3NlYXJjaFJlc3VsdHMubGVuZ3RoIC0gMSk7Cisg
ICAgICAgIHZhciBmaWxlVHJlZUVsZW1lbnQgPSB0aGlzLl9hZGRGaWxlVHJlZUVsZW1lbnQodWlT
b3VyY2VDb2RlLm9yaWdpblVSTCgpLCBzZWFyY2hNYXRjaGVzLmxlbmd0aCwgdGhpcy5fc2VhcmNo
UmVzdWx0cy5sZW5ndGggLSAxKTsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBh
bmUuanMKaW5kZXggNTRjMGE4N2MzN2ZkOWIyMjBjYzM2ZDQwZDc3NWQxYTY2ZTU2NGI0Zi4uZjIw
YWI1ZDkzNWFhNGZmNjE2NThkZDgyYmI1YTJlYzJkOGRmMWMwYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFy
UGFuZS5qcwpAQCAtOTYsNyArOTYsNyBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdEJyZWFrcG9p
bnRzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICBjaGVja2JveC5hZGRFdmVudExp
c3RlbmVyKCJjbGljayIsIHRoaXMuX2JyZWFrcG9pbnRDaGVja2JveENsaWNrZWQuYmluZCh0aGlz
LCBicmVha3BvaW50KSwgZmFsc2UpOwogICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNoZWNr
Ym94KTsKIAotICAgICAgICB2YXIgbGFiZWxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoV2ViSW5zcGVjdG9yLmZvcm1hdExpbmtUZXh0KHVpTG9jYXRpb24udWlTb3VyY2VDb2RlLnVy
bCwgdWlMb2NhdGlvbi5saW5lTnVtYmVyKSk7CisgICAgICAgIHZhciBsYWJlbEVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShXZWJJbnNwZWN0b3IuZm9ybWF0TGlua1RleHQodWlMb2Nh
dGlvbi51aVNvdXJjZUNvZGUub3JpZ2luVVJMKCksIHVpTG9jYXRpb24ubGluZU51bWJlcikpOwog
ICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGxhYmVsRWxlbWVudCk7CiAKICAgICAgICAgdmFy
IHNuaXBwZXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CkBAIC0yNTUs
NyArMjU1LDcgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRCcmVha3BvaW50c1NpZGViYXJQYW5l
LnByb3RvdHlwZSA9IHsKIAogICAgIF9jb21wYXJlQnJlYWtwb2ludHM6IGZ1bmN0aW9uKGIxLCBi
MikKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9jb21wYXJlKGIxLnVybCwgYjIudXJsKSB8
fCB0aGlzLl9jb21wYXJlKGIxLmxpbmVOdW1iZXIsIGIyLmxpbmVOdW1iZXIpOworICAgICAgICBy
ZXR1cm4gdGhpcy5fY29tcGFyZShiMS51aVNvdXJjZUNvZGUub3JpZ2luVVJMKCksIGIyLnVpU291
cmNlQ29kZS5vcmlnaW5VUkwoKSkgfHwgdGhpcy5fY29tcGFyZShiMS5saW5lTnVtYmVyLCBiMi5s
aW5lTnVtYmVyKTsKICAgICB9LAogCiAgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQ
YW5lLmpzCmluZGV4IDI3YWQyMjMxY2FkNmMwNDhjODE3MDZmZDM1YWY2ZmE5NTM5MTE4NmYuLmZi
YTdlYWYwOTAwMTU0NjUyNTJkMjZjMjc4Mjc4YjA0NTRjZTFlYTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DYWxsU3RhY2tTaWRlYmFyUGFu
ZS5qcwpAQCAtMTc0LDcgKzE3NCw3IEBAIFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFu
ZS5QbGFjYXJkID0gZnVuY3Rpb24oY2FsbEZyYW1lLCBwYW5lKQogV2ViSW5zcGVjdG9yLkNhbGxT
dGFja1NpZGViYXJQYW5lLlBsYWNhcmQucHJvdG90eXBlID0gewogICAgIF91cGRhdGU6IGZ1bmN0
aW9uKHVpTG9jYXRpb24pCiAgICAgewotICAgICAgICB0aGlzLnN1YnRpdGxlID0gV2ViSW5zcGVj
dG9yLmZvcm1hdExpbmtUZXh0KHVpTG9jYXRpb24udWlTb3VyY2VDb2RlLnVybCwgdWlMb2NhdGlv
bi5saW5lTnVtYmVyKS50cmltTWlkZGxlKDEwMCk7CisgICAgICAgIHRoaXMuc3VidGl0bGUgPSBX
ZWJJbnNwZWN0b3IuZm9ybWF0TGlua1RleHQodWlMb2NhdGlvbi51aVNvdXJjZUNvZGUub3JpZ2lu
VVJMKCksIHVpTG9jYXRpb24ubGluZU51bWJlcikudHJpbU1pZGRsZSgxMDApOwogICAgIH0sCiAK
ICAgICBfcGxhY2FyZENvbnRleHRNZW51OiBmdW5jdGlvbihldmVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKaW5kZXgg
YWEyM2RhNTg4YjU3NDEzNDliNGI2MzE4ODRmNDZhZTY4N2IzOGU5Zi4uZGVhYmExNjhlZTY4ZDNj
MTJiN2U4MjFlMDdlNzVhM2JjYjc2MjAwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKQEAgLTI5MSw3ICsyOTEsNyBA
QCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICBfaGFuZGxl
T3BlblVSTDogZnVuY3Rpb24ocG9ydCwgZGV0YWlscykKICAgICB7CiAgICAgICAgIHZhciB1cmwg
PSAvKiogQHR5cGUge3N0cmluZ30gKi8gKGRldGFpbHMudXJsKTsKLSAgICAgICAgdmFyIGNvbnRl
bnRQcm92aWRlciA9IFdlYkluc3BlY3Rvci53b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJMKHVy
bCkgfHwgV2ViSW5zcGVjdG9yLnJlc291cmNlRm9yVVJMKHVybCk7CisgICAgICAgIHZhciBjb250
ZW50UHJvdmlkZXIgPSBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLnVpU291cmNlQ29kZUZvck9yaWdp
blVSTCh1cmwpIHx8IFdlYkluc3BlY3Rvci5yZXNvdXJjZUZvclVSTCh1cmwpOwogICAgICAgICBp
ZiAoIWNvbnRlbnRQcm92aWRlcikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
ICAgIApAQCAtNDg0LDcgKzQ4NCw3IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJv
dG90eXBlID0gewogICAgIF9vbkdldFJlc291cmNlQ29udGVudDogZnVuY3Rpb24obWVzc2FnZSwg
cG9ydCkKICAgICB7CiAgICAgICAgIHZhciB1cmwgPSAvKiogQHR5cGUge3N0cmluZ30gKi8gKG1l
c3NhZ2UudXJsKTsKLSAgICAgICAgdmFyIGNvbnRlbnRQcm92aWRlciA9IFdlYkluc3BlY3Rvci53
b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJMKHVybCkgfHwgV2ViSW5zcGVjdG9yLnJlc291cmNl
Rm9yVVJMKHVybCk7CisgICAgICAgIHZhciBjb250ZW50UHJvdmlkZXIgPSBXZWJJbnNwZWN0b3Iu
d29ya3NwYWNlLnVpU291cmNlQ29kZUZvck9yaWdpblVSTCh1cmwpIHx8IFdlYkluc3BlY3Rvci5y
ZXNvdXJjZUZvclVSTCh1cmwpOwogICAgICAgICBpZiAoIWNvbnRlbnRQcm92aWRlcikKICAgICAg
ICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMuRV9OT1RGT1VORCh1cmwpOwogICAgICAgICB0aGlz
Ll9nZXRSZXNvdXJjZUNvbnRlbnQoY29udGVudFByb3ZpZGVyLCBtZXNzYWdlLCBwb3J0KTsKQEAg
LTUwMiw3ICs1MDIsNyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9
IHsKICAgICAgICAgfQogCiAgICAgICAgIHZhciB1cmwgPSAvKiogQHR5cGUge3N0cmluZ30gKi8g
KG1lc3NhZ2UudXJsKTsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IFdlYkluc3BlY3Rvci53
b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJMKHVybCk7CisgICAgICAgIHZhciB1aVNvdXJjZUNv
ZGUgPSBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLnVpU291cmNlQ29kZUZvck9yaWdpblVSTCh1cmwp
OwogICAgICAgICBpZiAoIXVpU291cmNlQ29kZSkgewogICAgICAgICAgICAgdmFyIHJlc291cmNl
ID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLnJlc291cmNlRm9yVVJMKHVybCk7CiAg
ICAgICAgICAgICBpZiAoIXJlc291cmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlRnJhbWUuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2VGcmFtZS5qcwppbmRleCA5ZjQ4
MjA0MmEwOTA4Njg3YzA2ZTAxNzRmN2M5MTZmNDdmMjU4YjdkLi5iNTIzZjE5N2MzMDBkNTZjMDZi
NWRiYjBlNjVhNWRhMDY1NDZjYTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2VGcmFtZS5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2VGcmFtZS5qcwpAQCAtNjI5LDcg
KzYyOSw3IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlID0g
ewogCiAgICAgICAgIFdlYkluc3BlY3Rvci5ub3RpZmljYXRpb25zLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycyhXZWJJbnNwZWN0b3IuVXNlck1ldHJpY3MuVXNlckFjdGlvbiwgewogICAgICAgICAg
ICAgYWN0aW9uOiBXZWJJbnNwZWN0b3IuVXNlck1ldHJpY3MuVXNlckFjdGlvbk5hbWVzLlNldEJy
ZWFrcG9pbnQsCi0gICAgICAgICAgICB1cmw6IHRoaXMuX3VpU291cmNlQ29kZS51cmwsCisgICAg
ICAgICAgICB1cmw6IHRoaXMuX3VpU291cmNlQ29kZS5vcmlnaW5VUkwoKSwKICAgICAgICAgICAg
IGxpbmU6IGxpbmVOdW1iZXIsCiAgICAgICAgICAgICBlbmFibGVkOiBlbmFibGVkCiAgICAgICAg
IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9MaW5r
aWZpZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0xpbmtpZmllci5q
cwppbmRleCA5ZjE3ZDQyYjU5MGNjNzk4MWJlMWNjMDZjZTJkNjg1ZDhlNjU3OGZlLi5jZGExYzY2
Mzg1YTBiYWNjMzlhNjIyYWY4YzY2YzNiZjkzMmZjNWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0xpbmtpZmllci5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0xpbmtpZmllci5qcwpAQCAtMTEzLDcgKzExMyw3IEBAIFdl
Ykluc3BlY3Rvci5MaW5raWZpZXIucHJvdG90eXBlID0gewogICAgIF91cGRhdGVBbmNob3I6IGZ1
bmN0aW9uKGFuY2hvciwgdWlMb2NhdGlvbikKICAgICB7CiAgICAgICAgIGFuY2hvci5wcmVmZXJy
ZWRQYW5lbCA9ICJzY3JpcHRzIjsKLSAgICAgICAgYW5jaG9yLmhyZWYgPSBzYW5pdGl6ZUhyZWYo
dWlMb2NhdGlvbi51aVNvdXJjZUNvZGUudXJsKTsKKyAgICAgICAgYW5jaG9yLmhyZWYgPSBzYW5p
dGl6ZUhyZWYodWlMb2NhdGlvbi51aVNvdXJjZUNvZGUub3JpZ2luVVJMKCkpOwogICAgICAgICBh
bmNob3IudWlTb3VyY2VDb2RlID0gdWlMb2NhdGlvbi51aVNvdXJjZUNvZGU7CiAgICAgICAgIGFu
Y2hvci5saW5lTnVtYmVyID0gdWlMb2NhdGlvbi5saW5lTnVtYmVyOwogICAgICAgICB0aGlzLl9m
b3JtYXR0ZXIuZm9ybWF0TGl2ZUFuY2hvcihhbmNob3IsIHVpTG9jYXRpb24pOwpAQCAtMTM3LDEy
ICsxMzcsMTIgQEAgV2ViSW5zcGVjdG9yLkxpbmtpZmllci5EZWZhdWx0Rm9ybWF0dGVyLnByb3Rv
dHlwZSA9IHsKICAgICAgKi8KICAgICBmb3JtYXRMaXZlQW5jaG9yOiBmdW5jdGlvbihhbmNob3Is
IHVpTG9jYXRpb24pCiAgICAgewotICAgICAgICB2YXIgdGV4dCA9IFdlYkluc3BlY3Rvci5mb3Jt
YXRMaW5rVGV4dCh1aUxvY2F0aW9uLnVpU291cmNlQ29kZS51cmwsIHVpTG9jYXRpb24ubGluZU51
bWJlcik7CisgICAgICAgIHZhciB0ZXh0ID0gV2ViSW5zcGVjdG9yLmZvcm1hdExpbmtUZXh0KHVp
TG9jYXRpb24udWlTb3VyY2VDb2RlLm9yaWdpblVSTCgpLCB1aUxvY2F0aW9uLmxpbmVOdW1iZXIp
OwogICAgICAgICBpZiAodGhpcy5fbWF4TGVuZ3RoKQogICAgICAgICAgICAgdGV4dCA9IHRleHQu
dHJpbU1pZGRsZSh0aGlzLl9tYXhMZW5ndGgpOwogICAgICAgICBhbmNob3IudGV4dENvbnRlbnQg
PSB0ZXh0OwogCi0gICAgICAgIHZhciB0aXRsZVRleHQgPSB1aUxvY2F0aW9uLnVpU291cmNlQ29k
ZS51cmw7CisgICAgICAgIHZhciB0aXRsZVRleHQgPSB1aUxvY2F0aW9uLnVpU291cmNlQ29kZS5v
cmlnaW5VUkwoKTsKICAgICAgICAgaWYgKHR5cGVvZiB1aUxvY2F0aW9uLmxpbmVOdW1iZXIgPT09
ICJudW1iZXIiKQogICAgICAgICAgICAgdGl0bGVUZXh0ICs9ICI6IiArICh1aUxvY2F0aW9uLmxp
bmVOdW1iZXIgKyAxKTsKICAgICAgICAgYW5jaG9yLnRpdGxlID0gdGl0bGVUZXh0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXZpZ2F0b3JWaWV3Lmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXZpZ2F0b3JWaWV3LmpzCmlu
ZGV4IGI3NDBiYmY2OGUwYjZkMDQwYjU4YWJhOTgzMDM2MTYxOGU2YTA4ZTcuLmJmMjY2YzIyMTBk
MjcyMmM3OTZhNmI3ZWJhNDVhYzRhOTI0OTQyMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvTmF2aWdhdG9yVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdmlnYXRvclZpZXcuanMKQEAgLTU1Nyw3ICs1NTcsNyBA
QCBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yU291cmNlVHJlZUVsZW1lbnQgPSBmdW5jdGlvbihuYXZp
Z2F0b3JWaWV3LCB1aVNvdXJjZUNvZGUsCiAgICAgV2ViSW5zcGVjdG9yLkJhc2VOYXZpZ2F0b3JU
cmVlRWxlbWVudC5jYWxsKHRoaXMsIHRpdGxlLCBbIm5hdmlnYXRvci0iICsgdWlTb3VyY2VDb2Rl
LmNvbnRlbnRUeXBlKCkubmFtZSgpICsgIi10cmVlLWl0ZW0iXSwgZmFsc2UpOwogICAgIHRoaXMu
X25hdmlnYXRvclZpZXcgPSBuYXZpZ2F0b3JWaWV3OwogICAgIHRoaXMuX3VpU291cmNlQ29kZSA9
IHVpU291cmNlQ29kZTsKLSAgICB0aGlzLnRvb2x0aXAgPSB1aVNvdXJjZUNvZGUudXJsOworICAg
IHRoaXMudG9vbHRpcCA9IHVpU291cmNlQ29kZS5vcmlnaW5VUkwoKTsKIH0KIAogV2ViSW5zcGVj
dG9yLk5hdmlnYXRvclNvdXJjZVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU0FTU1NvdXJjZU1hcHBpbmcuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NBU1NTb3VyY2VNYXBwaW5nLmpz
CmluZGV4IDJhNjRkMDkzMzQwNzMyNDk2NmJlYmEwYTZmNjQxMDFmMjJhMjdmMjMuLjg0NGI2YWZj
ZjJjNDk2YzAxNTM0YzY0ZDBiZjU2NjQ4MTM4NTA5MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU0FTU1NvdXJjZU1hcHBpbmcuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TQVNTU291cmNlTWFwcGluZy5qcwpAQCAtMjA2
LDcgKzIwNiw3IEBAIFdlYkluc3BlY3Rvci5TQVNTU291cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7
CiAgICAgdWlMb2NhdGlvblRvUmF3TG9jYXRpb246IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgbGlu
ZU51bWJlciwgY29sdW1uTnVtYmVyKQogICAgIHsKICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0aGlzIHdoZW4gdWkgLT4gcmF3IG1hcHBpbmcgaGFzIGNsaWVudHMuCi0gICAgICAgIHJldHVy
biBuZXcgV2ViSW5zcGVjdG9yLkNTU0xvY2F0aW9uKHVpU291cmNlQ29kZS5jb250ZW50VVJMKCkg
fHwgIiIsIGxpbmVOdW1iZXIpOworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5DU1NM
b2NhdGlvbih1aVNvdXJjZUNvZGUudXJsIHx8ICIiLCBsaW5lTnVtYmVyKTsKICAgICB9LAogCiAg
ICAgX3Jlc2V0OiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IGMyNTRmNzFlOGFiMjRlZmU2Mjg3YTA2NTlj
ZDFiYTZiMGRjNTQ1ZjYuLjM0ODllYzhjZjQ5MDA5YmQ4NmI4ZTU1Mjk2Yzc3MTQ5NjU3YjgzMGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1Bh
bmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1Bh
bmVsLmpzCkBAIC0zOTIsNyArMzkyLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgdmFyIHVpU291cmNl
Q29kZXMgPSB0aGlzLl93b3Jrc3BhY2UucHJvamVjdChXZWJJbnNwZWN0b3IucHJvamVjdE5hbWVz
Lk5ldHdvcmspLnVpU291cmNlQ29kZXMoKTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1
aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBpZiAodWlTb3VyY2VDb2Rl
c1tpXS51cmwgPT09IGFuY2hvci5ocmVmKSB7CisgICAgICAgICAgICBpZiAodWlTb3VyY2VDb2Rl
c1tpXS5vcmlnaW5VUkwoKSA9PT0gYW5jaG9yLmhyZWYpIHsKICAgICAgICAgICAgICAgICBhbmNo
b3IudWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2Rlc1tpXTsKICAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KQEAgLTQyNyw3ICs0MjcsNyBAQCBXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBXZWJJbnNwZWN0b3Iubm90aWZp
Y2F0aW9ucy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlVzZXJNZXRyaWNz
LlVzZXJBY3Rpb24sIHsKICAgICAgICAgICAgIGFjdGlvbjogV2ViSW5zcGVjdG9yLlVzZXJNZXRy
aWNzLlVzZXJBY3Rpb25OYW1lcy5PcGVuU291cmNlTGluaywKLSAgICAgICAgICAgIHVybDogdWlT
b3VyY2VDb2RlLnVybCwKKyAgICAgICAgICAgIHVybDogdWlTb3VyY2VDb2RlLm9yaWdpblVSTCgp
LAogICAgICAgICAgICAgbGluZU51bWJlcjogbGluZU51bWJlcgogICAgICAgICB9KTsKICAgICB9
LApAQCAtOTU1LDcgKzk1NSw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBl
ID0gewogICAgICAgICBXZWJJbnNwZWN0b3Iubm90aWZpY2F0aW9ucy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlVzZXJNZXRyaWNzLlVzZXJBY3Rpb24sIHsKICAgICAgICAg
ICAgIGFjdGlvbjogV2ViSW5zcGVjdG9yLlVzZXJNZXRyaWNzLlVzZXJBY3Rpb25OYW1lcy5Ub2dn
bGVQcmV0dHlQcmludCwKICAgICAgICAgICAgIGVuYWJsZWQ6IHRoaXMuX3RvZ2dsZUZvcm1hdFNv
dXJjZUJ1dHRvbi50b2dnbGVkLAotICAgICAgICAgICAgdXJsOiB0aGlzLl9lZGl0b3JDb250YWlu
ZXIuY3VycmVudEZpbGUoKS51cmwKKyAgICAgICAgICAgIHVybDogdGhpcy5fZWRpdG9yQ29udGFp
bmVyLmN1cnJlbnRGaWxlKCkub3JpZ2luVVJMKCkKICAgICAgICAgfSk7CiAgICAgfSwKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzU2VhcmNo
U2NvcGUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNTZWFy
Y2hTY29wZS5qcwppbmRleCAxZjlhNDBlYjZjNWVmNDQ1YTVhMDVlNjI2Y2Y0OTUyNWMxMjRmODM5
Li4yODg2ZDM2YjRhYTdiNTY4MzMwNmQzZGUzMDI2NjMyMzEwZTMzN2I2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNTZWFyY2hTY29wZS5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNTZWFyY2hTY29w
ZS5qcwpAQCAtMTEwLDEyICsxMTAsMTIgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNTZWFyY2hTY29w
ZS5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBmdW5jdGlvbiBmaWx0ZXJPdXRBbm9ueW1v
dXModWlTb3VyY2VDb2RlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gISF1aVNvdXJj
ZUNvZGUudXJsOworICAgICAgICAgICAgcmV0dXJuICEhdWlTb3VyY2VDb2RlLm9yaWdpblVSTCgp
OwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBmdW5jdGlvbiBjb21wYXJhdG9yKGEsIGIp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhLnVybC5sb2NhbGVDb21wYXJlKGIudXJs
KTsgICAKKyAgICAgICAgICAgIHJldHVybiBhLm9yaWdpblVSTCgpLmxvY2FsZUNvbXBhcmUoYi5v
cmlnaW5VUkwoKSk7ICAgCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHZhciB1aVNvdXJj
ZUNvZGVzID0gdGhpcy5fdWlTb3VyY2VDb2RlUHJvdmlkZXIudWlTb3VyY2VDb2RlcygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaW1wbGVXb3Jrc3Bh
Y2VQcm92aWRlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2ltcGxl
V29ya3NwYWNlUHJvdmlkZXIuanMKaW5kZXggMDc4ODliOTlmZGFlYmVhZTU4ZDk1ZDA2MzI3YTEz
NDgyMjYwZDMzYi4uODdkNGU0MTQwMjNmMDE3ZDY4ZTVjNjJjYWM4NjQzM2E0NmVmYjQ5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaW1wbGVXb3Jrc3Bh
Y2VQcm92aWRlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Np
bXBsZVdvcmtzcGFjZVByb3ZpZGVyLmpzCkBAIC05NCw3ICs5NCw3IEBAIFdlYkluc3BlY3Rvci5T
aW1wbGVXb3Jrc3BhY2VQcm92aWRlci5wcm90b3R5cGUgPSB7CiAgICAgYWRkRmlsZTogZnVuY3Rp
b24odXJpLCB1cmwsIGNvbnRlbnRQcm92aWRlciwgaXNFZGl0YWJsZSwgaXNDb250ZW50U2NyaXB0
LCBpc1NuaXBwZXQpCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fY29udGVu
dFByb3ZpZGVyc1t1cmldKTsKLSAgICAgICAgdmFyIGZpbGVEZXNjcmlwdG9yID0gbmV3IFdlYklu
c3BlY3Rvci5GaWxlRGVzY3JpcHRvcih1cmksIHVybCwgY29udGVudFByb3ZpZGVyLmNvbnRlbnRU
eXBlKCksIGlzRWRpdGFibGUsIGlzQ29udGVudFNjcmlwdCwgaXNTbmlwcGV0KTsKKyAgICAgICAg
dmFyIGZpbGVEZXNjcmlwdG9yID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlRGVzY3JpcHRvcih1cmks
IHVybCwgdXJsLCBjb250ZW50UHJvdmlkZXIuY29udGVudFR5cGUoKSwgaXNFZGl0YWJsZSwgaXND
b250ZW50U2NyaXB0LCBpc1NuaXBwZXQpOwogICAgICAgICB0aGlzLl9jb250ZW50UHJvdmlkZXJz
W3VyaV0gPSBjb250ZW50UHJvdmlkZXI7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VQcm92aWRlci5FdmVudHMuRmlsZUFkZGVkLCBm
aWxlRGVzY3JpcHRvcik7CiAgICAgICAgIHJldHVybiB0aGlzLl93b3Jrc3BhY2UudWlTb3VyY2VD
b2RlRm9yVVJJKHVyaSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1N0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TdHlsZVNoZWV0T3V0bGluZURpYWxvZy5qcwppbmRleCAwZGMxMjIwMWVh
NjI5MzhkN2M3ZGY4Y2I2YTE4ZWM4NTM2ZDYxMDY0Li4yYjRlMGU2Y2E0MjNkZWYzNzJhOTI1NDM4
MzljM2NmM2VlMTI1NTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1N0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU3R5bGVTaGVldE91dGxpbmVEaWFsb2cuanMKQEAgLTExMyw3ICsx
MTMsNyBAQCBXZWJJbnNwZWN0b3IuU3R5bGVTaGVldE91dGxpbmVEaWFsb2cucHJvdG90eXBlID0g
ewogICAKICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5mb3MubGVuZ3RoOyArK2kp
IHsKICAgICAgICAgICAgICAgICB2YXIgaW5mbyA9IGluZm9zW2ldOwotICAgICAgICAgICAgICAg
IGlmIChpbmZvLnNvdXJjZVVSTCA9PT0gdGhpcy5fdWlTb3VyY2VDb2RlLmNvbnRlbnRVUkwoKSkg
eworICAgICAgICAgICAgICAgIGlmIChpbmZvLnNvdXJjZVVSTCA9PT0gdGhpcy5fdWlTb3VyY2VD
b2RlLnVybCkgewogICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVl
dC5jcmVhdGVGb3JJZChpbmZvLnN0eWxlU2hlZXRJZCwgZGlkR2V0U3R5bGVTaGVldC5iaW5kKHRo
aXMpKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU291cmNl
TWFwcGluZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU291
cmNlTWFwcGluZy5qcwppbmRleCBmYTg2YWNiYzRkZjBhMTRlNjNjNjQxZWE0YTRlOTYzOTBkZjdm
NTA3Li5iZjI5YTkxODFmMzk2YjM2MWE3NmU1OGRkMjk3ZjFkNWM0NzgwOTA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NvdXJjZU1hcHBpbmcu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTb3VyY2VN
YXBwaW5nLmpzCkBAIC02Miw3ICs2Miw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZXNTb3VyY2VNYXBw
aW5nLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICB1aUxvY2F0aW9uVG9SYXdMb2NhdGlvbjog
ZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCiAgICAgewot
ICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5DU1NMb2NhdGlvbih1aVNvdXJjZUNvZGUu
Y29udGVudFVSTCgpIHx8ICIiLCBsaW5lTnVtYmVyKTsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJ
bnNwZWN0b3IuQ1NTTG9jYXRpb24odWlTb3VyY2VDb2RlLnVybCB8fCAiIiwgbGluZU51bWJlcik7
CiAgICAgfSwKIAogICAgIF91aVNvdXJjZUNvZGVBZGRlZFRvV29ya3NwYWNlOiBmdW5jdGlvbihl
dmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFi
YmVkRWRpdG9yQ29udGFpbmVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9UYWJiZWRFZGl0b3JDb250YWluZXIuanMKaW5kZXggMWMzNWFlNTk4MmIzMDgyYjU1YmI5ZDk0
MmI0MTdkMWQwNjNhMmE1MC4uZGI5NDkyMTU5OWViNzQwZGUxMGJhMDI2MmQ4NDhkZjQ2Zjg0NDFj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRF
ZGl0b3JDb250YWluZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9UYWJiZWRFZGl0b3JDb250YWluZXIuanMKQEAgLTI2Niw3ICsyNjYsNyBAQCBXZWJJbnNwZWN0
b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfdG9v
bHRpcEZvckZpbGU6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biB1aVNvdXJjZUNvZGUudXJsOworICAgICAgICByZXR1cm4gdWlTb3VyY2VDb2RlLm9yaWdpblVS
TCgpOwogICAgIH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKaW5kZXggN2JjOGM3YzI5YzBjYzI0OThlMmQyZmQ3
MjU1NjM0NzU1MDcxOTUyMC4uNGViZDViNzZmMmUzZDg1Yjc2ZGJmZGNjN2YxOWFkMGE2ZDhjNzEy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJj
ZUNvZGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJj
ZUNvZGUuanMKQEAgLTM5LDEyICszOSwxMyBAQAogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVz
b3VyY2VUeXBlfSBjb250ZW50VHlwZQogICogQHBhcmFtIHtib29sZWFufSBpc0VkaXRhYmxlCiAg
Ki8KLVdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUgPSBmdW5jdGlvbih3b3Jrc3BhY2UsIHVyaSwg
dXJsLCBjb250ZW50VHlwZSwgaXNFZGl0YWJsZSkKK1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUg
PSBmdW5jdGlvbih3b3Jrc3BhY2UsIHVyaSwgb3JpZ2luVVJMLCB1cmwsIGNvbnRlbnRUeXBlLCBp
c0VkaXRhYmxlKQogewogICAgIHRoaXMuX3dvcmtzcGFjZSA9IHdvcmtzcGFjZTsKICAgICB0aGlz
Ll91cmkgPSB1cmk7CisgICAgdGhpcy5fb3JpZ2luVVJMID0gb3JpZ2luVVJMOwogICAgIHRoaXMu
X3VybCA9IHVybDsKLSAgICB0aGlzLl9wYXJzZWRVUkwgPSBuZXcgV2ViSW5zcGVjdG9yLlBhcnNl
ZFVSTCh1cmwpOworICAgIHRoaXMuX3BhcnNlZFVSTCA9IG5ldyBXZWJJbnNwZWN0b3IuUGFyc2Vk
VVJMKG9yaWdpblVSTCk7CiAgICAgdGhpcy5fY29udGVudFR5cGUgPSBjb250ZW50VHlwZTsKICAg
ICB0aGlzLl9pc0VkaXRhYmxlID0gaXNFZGl0YWJsZTsKICAgICAvKioKQEAgLTk4LDEyICs5OSwy
MSBAQCBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAg
ICAgLyoqCisgICAgICogQHJldHVybiB7c3RyaW5nfQorICAgICAqLworICAgIG9yaWdpblVSTDog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX29yaWdpblVSTDsKKyAgICB9
LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHVybAogICAgICAqLwogICAgIHVy
bENoYW5nZWQ6IGZ1bmN0aW9uKHVybCkKICAgICB7CiAgICAgICAgIHRoaXMuX3VybCA9IHVybDsK
LSAgICAgICAgdGhpcy5fcGFyc2VkVVJMID0gbmV3IFdlYkluc3BlY3Rvci5QYXJzZWRVUkwodGhp
cy5fdXJsKTsKKyAgICAgICAgdGhpcy5fb3JpZ2luVVJMID0gdXJsOworICAgICAgICB0aGlzLl9w
YXJzZWRVUkwgPSBuZXcgV2ViSW5zcGVjdG9yLlBhcnNlZFVSTCh1cmwpOwogICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLkV2ZW50
cy5UaXRsZUNoYW5nZWQsIG51bGwpOwogICAgIH0sCiAKQEAgLTEyMCw3ICsxMzAsNyBAQCBXZWJJ
bnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBjb250ZW50
VVJMOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fdXJsOworICAgICAg
ICByZXR1cm4gdGhpcy5vcmlnaW5VUkwoKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC04MjgsNyAr
ODM4LDcgQEAgV2ViSW5zcGVjdG9yLlJldmlzaW9uLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAg
ICBjb250ZW50VVJMOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fdWlT
b3VyY2VDb2RlLnVybDsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3VpU291cmNlQ29kZS5vcmlnaW5V
UkwoKTsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1dvcmtzcGFjZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvV29ya3NwYWNlLmpzCmluZGV4IDE5OWRmZTdhYzBiZTE3ODYyMjhjYzA0OTE1MjQw
YjEwZmM4OTA0MGMuLmRhMDM1YTJhOTRkZjIyODkwMWMzN2IxN2E4MGRkN2ViYmM1ZmE2MWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya3NwYWNlLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya3NwYWNlLmpzCkBA
IC01MCwxNSArNTAsMTcgQEAgV2ViSW5zcGVjdG9yLldvcmtzcGFjZUNvbnRyb2xsZXIucHJvdG90
eXBlID0gewogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBwYXJhbSB7c3RyaW5nfSB1cmkKKyAq
IEBwYXJhbSB7c3RyaW5nfSBvcmlnaW5VUkwKICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLlJlc291cmNlVHlwZX0gY29udGVudFR5cGUKICAqIEBwYXJhbSB7
Ym9vbGVhbn0gaXNFZGl0YWJsZQogICogQHBhcmFtIHtib29sZWFuPX0gaXNDb250ZW50U2NyaXB0
CiAgKiBAcGFyYW0ge2Jvb2xlYW49fSBpc1NuaXBwZXQKICAqLwotV2ViSW5zcGVjdG9yLkZpbGVE
ZXNjcmlwdG9yID0gZnVuY3Rpb24odXJpLCB1cmwsIGNvbnRlbnRUeXBlLCBpc0VkaXRhYmxlLCBp
c0NvbnRlbnRTY3JpcHQsIGlzU25pcHBldCkKK1dlYkluc3BlY3Rvci5GaWxlRGVzY3JpcHRvciA9
IGZ1bmN0aW9uKHVyaSwgb3JpZ2luVVJMLCB1cmwsIGNvbnRlbnRUeXBlLCBpc0VkaXRhYmxlLCBp
c0NvbnRlbnRTY3JpcHQsIGlzU25pcHBldCkKIHsKICAgICB0aGlzLnVyaSA9IHVyaTsKKyAgICB0
aGlzLm9yaWdpblVSTCA9IG9yaWdpblVSTDsKICAgICB0aGlzLnVybCA9IHVybDsKICAgICB0aGlz
LmNvbnRlbnRUeXBlID0gY29udGVudFR5cGU7CiAgICAgdGhpcy5pc0VkaXRhYmxlID0gaXNFZGl0
YWJsZTsKQEAgLTE2Miw3ICsxNjQsNyBAQCBXZWJJbnNwZWN0b3IuUHJvamVjdC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KLSAgICAgICAgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGUodGhpcy5fd29ya3NwYWNlLCBmaWxlRGVzY3JpcHRvci51cmksIGZpbGVEZXNjcmlw
dG9yLnVybCwgZmlsZURlc2NyaXB0b3IuY29udGVudFR5cGUsIGZpbGVEZXNjcmlwdG9yLmlzRWRp
dGFibGUpOworICAgICAgICB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZSh0aGlzLl93b3Jrc3BhY2UsIGZpbGVEZXNjcmlwdG9yLnVyaSwgZmlsZURlc2NyaXB0b3Iu
b3JpZ2luVVJMLCBmaWxlRGVzY3JpcHRvci51cmwsIGZpbGVEZXNjcmlwdG9yLmNvbnRlbnRUeXBl
LCBmaWxlRGVzY3JpcHRvci5pc0VkaXRhYmxlKTsKICAgICAgICAgdWlTb3VyY2VDb2RlLmlzQ29u
dGVudFNjcmlwdCA9IGZpbGVEZXNjcmlwdG9yLmlzQ29udGVudFNjcmlwdDsKICAgICAgICAgdWlT
b3VyY2VDb2RlLmlzU25pcHBldCA9IGZpbGVEZXNjcmlwdG9yLmlzU25pcHBldDsKICAgICAgICAg
dGhpcy5fdWlTb3VyY2VDb2Rlcy5wdXNoKHVpU291cmNlQ29kZSk7CkBAIC0xOTksNiArMjAxLDE5
IEBAIFdlYkluc3BlY3Rvci5Qcm9qZWN0LnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoq
CisgICAgICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpblVSTAorICAgICAqIEByZXR1cm4gez9XZWJJ
bnNwZWN0b3IuVUlTb3VyY2VDb2RlfQorICAgICAqLworICAgIHVpU291cmNlQ29kZUZvck9yaWdp
blVSTDogZnVuY3Rpb24ob3JpZ2luVVJMKQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCB0aGlzLl91aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAo
dGhpcy5fdWlTb3VyY2VDb2Rlc1tpXS5vcmlnaW5VUkwoKSA9PT0gb3JpZ2luVVJMKQorICAgICAg
ICAgICAgICAgIHJldHVybiB0aGlzLl91aVNvdXJjZUNvZGVzW2ldOworICAgICAgICB9CisgICAg
ICAgIHJldHVybiBudWxsOworICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmlu
Z30gdXJpCiAgICAgICogQHJldHVybiB7P1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9CiAgICAg
ICovCkBAIC0yNzcsNiArMjkyLDE1IEBAIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzID0g
ewogCiBXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3RvdHlwZSA9IHsKICAgICAvKioKKyAgICAg
KiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luVVJMCisgICAgICogQHJldHVybiB7P1dlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGV9CisgICAgICovCisgICAgdWlTb3VyY2VDb2RlRm9yT3JpZ2luVVJMOiBm
dW5jdGlvbihvcmlnaW5VUkwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdHNb
V2ViSW5zcGVjdG9yLnByb2plY3ROYW1lcy5OZXR3b3JrXS51aVNvdXJjZUNvZGVGb3JPcmlnaW5V
Ukwob3JpZ2luVVJMKTsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9
IHVybAogICAgICAqIEByZXR1cm4gez9XZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfQogICAgICAq
LwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGQxY2QyMGE5ZDQ1NDYzNWYyYTliMGRhYmMzODJmM2I5YzEwMGUyZWYuLmY2ZGJl
NjcwOWU2ZThmNDEyMmMxNDlmNGQyNTg1YjYzNjZjNjEzZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBA
QAorMjAxMy0wMS0xNSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbnRyb2R1Y2UgVUlTb3VyY2VDb2RlLm9yaWdpblVSTCgp
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2OTA5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9jb21waWxlci1zY3JpcHQtbWFwcGluZy5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanM6CisgICAgICAgIChpbml0aWFs
aXplX0RlYnVnZ2VyVGVzdCk6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9uZXR3b3JrLXJlcXVlc3QtcmV2aXNpb24tY29udGVudC5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVi
dWdnZXIvZHluYW1pYy1zY3JpcHQtdGFnLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVn
Z2VyL2xpbmtpZmllci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVk
aXQtYnJlYWtwb2ludHMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0
LXNuaXBwZXQtbW9kZWwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0
cy1maWxlLXNlbGVjdG9yLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Njcmlw
dHMtcGFuZWwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0
aW5nLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS1jb3Vu
dC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtdXJsLWNvbW1lbnQu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvdWktc291cmNlLWNvZGUtZGlzcGxh
eS1uYW1lLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3VpLXNvdXJjZS1jb2Rl
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaGlzdG9yeS5odG1sOgor
ICAgICAgICAqIGluc3BlY3Rvci91aXNvdXJjZWNvZGUtcmV2aXNpb25zLmh0bWw6CisKIDIwMTMt
MDEtMTUgIEVsbGlvdHQgU3ByZWhuICA8ZXNwcmVobkBnbWFpbC5jb20+CiAKICAgICAgICAgZGlz
cGxheTppbmxpbmUncyBob3ZlciBiZWhhdmlvciBpcyBub3QgYXBwbGllZCB0byA6OmJlZm9yZSBh
bmQgOjphZnRlciBwc2V1ZG8gZWxlbWVudHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2NvbXBpbGVyLXNjcmlwdC1tYXBwaW5nLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb21waWxlci1zY3JpcHQtbWFwcGluZy5odG1sCmluZGV4
IGY3YTYyYjM2MjM0MDI4MWU5ZGIzMWUzNjZlOTgyZmMwYmVmMzQ1NGMuLjk1YTY3MzY3YTczNzMw
MmNkZDIwNDM5YzhiYTE5YWRlMTU4YjQ2OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2NvbXBpbGVyLXNjcmlwdC1tYXBwaW5nLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29tcGlsZXItc2NyaXB0LW1hcHBpbmcuaHRtbApA
QCAtMTc3LDggKzE3Nyw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgICAgICBmdW5jdGlv
biBhZnRlclNjcmlwdEFkZGVkKHVpU291cmNlQ29kZSkKICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICB2YXIgdWlTb3VyY2VDb2RlMSA9IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS51
aVNvdXJjZUNvZGVGb3JVUkwoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL3NvdXJjZTEuanMiKTsKLSAgICAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlMiA9IElu
c3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JVUkwoImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3NvdXJjZTIuanMiKTsKKyAgICAgICAgICAg
ICAgICB2YXIgdWlTb3VyY2VDb2RlMSA9IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS51aVNv
dXJjZUNvZGVGb3JPcmlnaW5VUkwoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVz
b3VyY2VzL3NvdXJjZTEuanMiKTsKKyAgICAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlMiA9
IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JPcmlnaW5VUkwoImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3NvdXJjZTIuanMiKTsKIAog
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tVSUxvY2F0aW9uKHVpU291cmNlQ29k
ZTEsIDQsIDQsIHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCA4MSkpOwogICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tVSUxvY2F0aW9uKHVpU291cmNlQ29kZTEsIDUs
IDQsIHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCA5MykpOwpAQCAtMjM4LDggKzIz
OCw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgICAgICBmdW5jdGlvbiBhZnRlclNjcmlw
dEFkZGVkKHVpU291cmNlQ29kZSkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIg
dWlTb3VyY2VDb2RlMSA9IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS51aVNvdXJjZUNvZGVG
b3JVUkwoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3NvdXJjZTEu
anMiKTsKLSAgICAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlMiA9IEluc3BlY3RvclRlc3Qu
dGVzdFdvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JVUkwoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9p
bnNwZWN0b3IvcmVzb3VyY2VzL3NvdXJjZTIuanMiKTsKKyAgICAgICAgICAgICAgICB2YXIgdWlT
b3VyY2VDb2RlMSA9IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JP
cmlnaW5VUkwoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3NvdXJj
ZTEuanMiKTsKKyAgICAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlMiA9IEluc3BlY3RvclRl
c3QudGVzdFdvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JPcmlnaW5VUkwoImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3NvdXJjZTIuanMiKTsKIAogICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuY2hlY2tVSUxvY2F0aW9uKHVpU291cmNlQ29kZTEsIDQsIDQsIHNj
cmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCA4MSkpOwogICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuY2hlY2tVSUxvY2F0aW9uKHVpU291cmNlQ29kZTEsIDUsIDQsIHNjcmlwdC5y
YXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCA5MykpOwpAQCAtMjkxLDcgKzI5MSw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICAgICAgcmVzb3VyY2VTY3JpcHRNYXBwaW5nLmFkZFNjcmlwdChz
Y3JpcHQpOwogICAgICAgICAgICAgbWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0KTsKIAotICAgICAg
ICAgICAgdmFyIHVpU291cmNlQ29kZSA9IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS51aVNv
dXJjZUNvZGVGb3JVUkwoInNvdXJjZS5qcyIpOworICAgICAgICAgICAgdmFyIHVpU291cmNlQ29k
ZSA9IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JPcmlnaW5VUkwo
InNvdXJjZS5qcyIpOwogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrVUlMb2NhdGlv
bih1aVNvdXJjZUNvZGUsIDIsIDQsIG1hcHBpbmcucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuY3JlYXRlUmF3TG9jYXRpb24oc2NyaXB0LCAwLCAxOCkp
KTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tSYXdMb2NhdGlvbihzY3JpcHQsIDAs
IDE4LCBtYXBwaW5nLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKHVpU291cmNlQ29kZSwgMiwgNCkp
OwpAQCAtMzE5LDcgKzMxOSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgY29uc29s
ZS5lcnJvciA9IGZ1bmN0aW9uKCkge307IC8vIEVycm9yIG1lc3NhZ2UgaXMgcGxhdGZvcm0gZGVw
ZW5kZW50LgogICAgICAgICAgICAgZGVidWdnZXJTY3JpcHRNYXBwaW5nLl9wYXJzZWRTY3JpcHRT
b3VyY2Uoe2RhdGE6c2NyaXB0fSk7CiAgICAgICAgICAgICB2YXIgdWlMb2NhdGlvbiA9IHNjcmlw
dC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCAwKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KHVpTG9jYXRpb24udWlTb3VyY2VDb2RlLnVybCk7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh1aUxvY2F0aW9uLnVpU291cmNlQ29kZS5vcmlnaW5VUkwo
KSk7CiAgICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgIH0KICAgICBdKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzCmluZGV4IGExYjA3
NjMyNDU0OWI2YWQ5MDQ4ODI4ODBjNDRkNjJlZmM5NmJmZDguLjg2NWViMjI0MWFmNmExZGFkODQ4
YjU2NjU3ZDM2ZGI0M2QzMWZjMjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcwpAQCAtMzEzLDggKzMxMyw4IEBAIEluc3BlY3RvclRl
c3QuY2hlY2tSYXdMb2NhdGlvbiA9IGZ1bmN0aW9uKHNjcmlwdCwgbGluZU51bWJlciwgY29sdW1u
TnVtYmVyLCBsb2NhCiAKIEluc3BlY3RvclRlc3QuY2hlY2tVSUxvY2F0aW9uID0gZnVuY3Rpb24o
dWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGxvY2F0aW9uKQogewotICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHVpU291cmNlQ29kZSwgbG9jYXRpb24udWlTb3Vy
Y2VDb2RlLCAiSW5jb3JyZWN0IHVpU291cmNlQ29kZSwgZXhwZWN0ZWQgJyIgKyAodWlTb3VyY2VD
b2RlID8gdWlTb3VyY2VDb2RlLnVybCA6IG51bGwpICsgIicsIiArCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgYnV0
IGdvdCAnIiArIChsb2NhdGlvbi51aVNvdXJjZUNvZGUgPyBsb2NhdGlvbi51aVNvdXJjZUNvZGUu
dXJsIDogbnVsbCkgKyAiJyIpOworICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHVpU291
cmNlQ29kZSwgbG9jYXRpb24udWlTb3VyY2VDb2RlLCAiSW5jb3JyZWN0IHVpU291cmNlQ29kZSwg
ZXhwZWN0ZWQgJyIgKyAodWlTb3VyY2VDb2RlID8gdWlTb3VyY2VDb2RlLm9yaWdpblVSTCgpIDog
bnVsbCkgKyAiJywiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBidXQgZ290ICciICsgKGxvY2F0aW9uLnVpU291
cmNlQ29kZSA/IGxvY2F0aW9uLnVpU291cmNlQ29kZS5vcmlnaW5VUkwoKSA6IG51bGwpICsgIici
KTsKICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhsaW5lTnVtYmVyLCBsb2NhdGlvbi5s
aW5lTnVtYmVyLCAiSW5jb3JyZWN0IGxpbmVOdW1iZXIsIGV4cGVjdGVkICciICsgbGluZU51bWJl
ciArICInLCBidXQgZ290ICciICsgbG9jYXRpb24ubGluZU51bWJlciArICInIik7CiAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoY29sdW1uTnVtYmVyLCBsb2NhdGlvbi5jb2x1bW5OdW1i
ZXIsICJJbmNvcnJlY3QgY29sdW1uTnVtYmVyLCBleHBlY3RlZCAnIiArIGNvbHVtbk51bWJlciAr
ICInLCBidXQgZ290ICciICsgbG9jYXRpb24uY29sdW1uTnVtYmVyICsgIiciKTsKIH07CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
cmVxdWVzdC1yZXZpc2lvbi1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL25ldHdvcmstcmVxdWVzdC1yZXZpc2lvbi1jb250ZW50Lmh0bWwKaW5k
ZXggNjU5MGNkMzg2YzlkNTdmNDA5YTI2MTg0YWRmZmQ0NThkMjQ0ZWRkMy4uMTdhYmRmMTY4OTMw
NTNiYjIzMGNmZDg5ZjBlOWRkNDBiYzk0ZGU1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXJlcXVlc3QtcmV2aXNpb24tY29udGVu
dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1yZXF1ZXN0LXJldmlzaW9uLWNvbnRlbnQuaHRtbApAQCAtMjAsMTAgKzIwLDEwIEBAIGZ1
bmN0aW9uIHRlc3QoKQogICAgIGZ1bmN0aW9uIHN0ZXAyKGV2ZW50KQogICAgIHsKICAgICAgICAg
dmFyIGV2ZW50VUlTb3VyY2VDb2RlID0gZXZlbnQuZGF0YTsKLSAgICAgICAgaWYgKGV2ZW50VUlT
b3VyY2VDb2RlLnVybC5pbmRleE9mKCJzdHlsZS5jc3MiKSA9PSAtMSkKKyAgICAgICAgaWYgKGV2
ZW50VUlTb3VyY2VDb2RlLm9yaWdpblVSTCgpLmluZGV4T2YoInN0eWxlLmNzcyIpID09IC0xKQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB2YXIgcmVxdWVzdCA9IFdlYkluc3BlY3Rvci5w
YW5lbCgibmV0d29yayIpLnJlcXVlc3RzW1dlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJl
cXVlc3RzLmxlbmd0aCAtIDFdOwotICAgICAgICB1aVNvdXJjZUNvZGUgPSBXZWJJbnNwZWN0b3Iu
d29ya3NwYWNlLnVpU291cmNlQ29kZUZvclVSTChyZXF1ZXN0LnVybCk7CisgICAgICAgIHVpU291
cmNlQ29kZSA9IFdlYkluc3BlY3Rvci53b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yT3JpZ2luVVJM
KHJlcXVlc3QudXJsKTsKICAgICAgICAgaWYgKCF1aVNvdXJjZUNvZGUpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIHVpU291cmNlQ29kZS5hZGRSZXZpc2lvbigiIik7CkBAIC0zMiw3ICsz
Miw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rpb24gc3RlcDMoY29udGVudCkKICAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHVpU291cmNlQ29kZS51cmwpOwor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh1aVNvdXJjZUNvZGUub3JpZ2luVVJMKCkp
OwogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChjb250ZW50KTsKICAgICAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzCmluZGV4IDEwYzNlYWRlM2RmZjg4
YmIxYjQ0YjExOGM4Y2VmNzUwYTViZWQ1MGMuLmQ1MDZiZDkyMjkwOWVhMjU1NjM2YjY2Y2ZiYTU3
YmQ5MDk2YmQzM2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3dvcmtzcGFjZS10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3dvcmtzcGFjZS10ZXN0LmpzCkBAIC0zNyw3ICszNyw3IEBAIEluc3BlY3RvclRlc3QuX2RlZmF1
bHRVSVNvdXJjZUNvZGVQcm92aWRlckV2ZW50SGFuZGxlciA9IGZ1bmN0aW9uKGV2ZW50KQogCiBJ
bnNwZWN0b3JUZXN0LmR1bXBVSVNvdXJjZUNvZGUgPSBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGNh
bGxiYWNrKQogewotICAgIHZhciB1cmwgPSB1aVNvdXJjZUNvZGUudXJsLnJlcGxhY2UoLy4qTGF5
b3V0VGVzdHMvLCAiTGF5b3V0VGVzdHMiKTsKKyAgICB2YXIgdXJsID0gdWlTb3VyY2VDb2RlLm9y
aWdpblVSTCgpLnJlcGxhY2UoLy4qTGF5b3V0VGVzdHMvLCAiTGF5b3V0VGVzdHMiKTsKICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVUlTb3VyY2VDb2RlOiAiICsgdXJsKTsKICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiAiICsgdWlTb3Vy
Y2VDb2RlLmlzRWRpdGFibGUoKSk7CiAgICAgaWYgKHVpU291cmNlQ29kZS5jb250ZW50VHlwZSgp
ID09PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQgfHwgdWlTb3VyY2VDb2RlLmNv
bnRlbnRUeXBlKCkgPT09IFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLkRvY3VtZW50KQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdl
ci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdl
ci5odG1sCmluZGV4IDZiMjY0NmFjOTk5MmQ5ZTc5OTlkOTE1YzhjY2Y1YTc5N2U3ZjNmYzcuLjU3
ODUxZWE5NDY0NTI3MjBhMzIxZTNmNTg5N2FiNmEwYzMyY2JjNDIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0bWwKQEAg
LTExOCw3ICsxMTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBXb3Jrc3BhY2VNb2NrLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgX2FkZFVJU291cmNlQ29kZTogZnVuY3Rpb24odXJsKQogICAgICAg
ICB7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGUodGhpcywgdXJsLCB1cmwsIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlw
dCwgZmFsc2UpOworICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlKHRoaXMsIHVybCwgdXJsLCB1cmwsIFdlYkluc3BlY3Rvci5yZXNvdXJj
ZVR5cGVzLlNjcmlwdCwgZmFsc2UpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFNvdXJj
ZU1hcHBpbmcoZGVmYXVsdE1hcHBpbmcpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2Rlc1t1cmxd
ID0gdWlTb3VyY2VDb2RlOwogICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVB
ZGRlZCwgdWlTb3VyY2VDb2RlKTsKQEAgLTEyNyw3ICsxMjcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkK
IAogICAgICAgICBfYWRkVGVtcG9yYXJ5VUlTb3VyY2VDb2RlOiBmdW5jdGlvbih1cmwpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZSh0aGlzLCAidGVtcG9yYXJ5OiIgKyB1cmwsIHVybCwgV2ViSW5zcGVjdG9yLnJl
c291cmNlVHlwZXMuU2NyaXB0LCBmYWxzZSk7CisgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2Rl
ID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUodGhpcywgInRlbXBvcmFyeToiICsgdXJs
LCB1cmwsIHVybCwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0LCBmYWxzZSk7CiAg
ICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2V0U291cmNlTWFwcGluZyhkZWZhdWx0TWFwcGluZyk7
CiAgICAgICAgICAgICB1aVNvdXJjZUNvZGVzW3VybF0gPSB1aVNvdXJjZUNvZGU7CiAgICAgICAg
ICAgICB0ZW1wb3JhcnlVSVNvdXJjZUNvZGVzW3VybF0gPSB1aVNvdXJjZUNvZGU7CkBAIC0xNzAs
MTMgKzE3MCwxMyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB7CiAgICAgICAgIHZhciBicmVha3Bv
aW50ID0gZXZlbnQuZGF0YS5icmVha3BvaW50OwogICAgICAgICB2YXIgdWlMb2NhdGlvbiA9IGV2
ZW50LmRhdGEudWlMb2NhdGlvbjsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAg
ICBicmVha3BvaW50QWRkZWQoIiArIFt1aUxvY2F0aW9uLnVpU291cmNlQ29kZS51cmwsIHVpTG9j
YXRpb24ubGluZU51bWJlciwgYnJlYWtwb2ludC5jb25kaXRpb24oKSwgYnJlYWtwb2ludC5lbmFi
bGVkKCldLmpvaW4oIiwgIikgKyAiKSIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiICAgIGJyZWFrcG9pbnRBZGRlZCgiICsgW3VpTG9jYXRpb24udWlTb3VyY2VDb2RlLm9yaWdp
blVSTCgpLCB1aUxvY2F0aW9uLmxpbmVOdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9uKCksIGJy
ZWFrcG9pbnQuZW5hYmxlZCgpXS5qb2luKCIsICIpICsgIikiKTsKICAgICB9CiAKICAgICBmdW5j
dGlvbiBicmVha3BvaW50UmVtb3ZlZChldmVudCkKICAgICB7CiAgICAgICAgIHZhciB1aUxvY2F0
aW9uID0gZXZlbnQuZGF0YS51aUxvY2F0aW9uOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiICAgIGJyZWFrcG9pbnRSZW1vdmVkKCIgKyBbdWlMb2NhdGlvbi51aVNvdXJjZUNvZGUu
dXJsLCB1aUxvY2F0aW9uLmxpbmVOdW1iZXJdLmpvaW4oIiwgIikgKyAiKSIpOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIGJyZWFrcG9pbnRSZW1vdmVkKCIgKyBbdWlMb2Nh
dGlvbi51aVNvdXJjZUNvZGUub3JpZ2luVVJMKCksIHVpTG9jYXRpb24ubGluZU51bWJlcl0uam9p
bigiLCAiKSArICIpIik7CiAgICAgfQogCiAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdl
Ykluc3BlY3Rvci5TY3JpcHQucHJvdG90eXBlLCAiY3JlYXRlTGl2ZUxvY2F0aW9uIiwgZnVuY3Rp
b24ocmF3TG9jYXRpb24pCkBAIC0yMzksMTMgKzIzOSwxMyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAog
ICAgIGZ1bmN0aW9uIHNldEJyZWFrcG9pbnQoYnJlYWtwb2ludE1hbmFnZXIsIHVpU291cmNlQ29k
ZSwgbGluZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKQogICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIiAgU2V0dGluZyBicmVha3BvaW50IGF0ICIgKyB1aVNvdXJjZUNv
ZGUudXJsICsgIjoiICsgbGluZU51bWJlciArICIgZW5hYmxlZDoiICsgZW5hYmxlZCArICIgY29u
ZGl0aW9uOiIgKyBjb25kaXRpb24pOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
ICBTZXR0aW5nIGJyZWFrcG9pbnQgYXQgIiArIHVpU291cmNlQ29kZS5vcmlnaW5VUkwoKSArICI6
IiArIGxpbmVOdW1iZXIgKyAiIGVuYWJsZWQ6IiArIGVuYWJsZWQgKyAiIGNvbmRpdGlvbjoiICsg
Y29uZGl0aW9uKTsKICAgICAgICAgcmV0dXJuIGJyZWFrcG9pbnRNYW5hZ2VyLnNldEJyZWFrcG9p
bnQodWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQpOwogICAgIH0K
IAogICAgIGZ1bmN0aW9uIHJlbW92ZUJyZWFrcG9pbnQoYnJlYWtwb2ludE1hbmFnZXIsIHVpU291
cmNlQ29kZSwgbGluZU51bWJlcikKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCIgIFJlbW92aW5nIGJyZWFrcG9pbnQgYXQgIiArIHVpU291cmNlQ29kZS51cmwgKyAiOiIg
KyBsaW5lTnVtYmVyKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgUmVtb3Zp
bmcgYnJlYWtwb2ludCBhdCAiICsgdWlTb3VyY2VDb2RlLm9yaWdpblVSTCgpICsgIjoiICsgbGlu
ZU51bWJlcik7CiAgICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLmZpbmRCcmVha3BvaW50KHVpU291
cmNlQ29kZSwgbGluZU51bWJlcikucmVtb3ZlKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHQtdGFnLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHQtdGFnLmh0bWwKaW5kZXgg
N2JmNTkyMzQ5MGFiMDliYzdkZDU2OTlkZjdjNzY3ZWViYjQ1MTFmZi4uYjEwMTJmNzhiMjM0YTY4
OTRlMmM0ZmI3MGI1Yzc5MjNmYTBhZjc5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0LXRhZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10YWcuaHRtbApAQCAtNzIsNyArNzIsNyBA
QCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKIAogICAgICAgICAgICAgZnVuY3Rpb24gdWlTb3VyY2VD
b2RlRHVtcGVkKCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydFRydWUoIXNlZW5VSVNvdXJjZUNvZGVzLmdldCh1aVNvdXJjZUNvZGUpLCAiVUlTb3Vy
Y2VDb2RlIG1hdGNoZXMgdHdvIHNjcmlwdHM6ICIgKyB1aVNvdXJjZUNvZGUudXJsKTsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUoIXNlZW5VSVNvdXJjZUNvZGVzLmdl
dCh1aVNvdXJjZUNvZGUpLCAiVUlTb3VyY2VDb2RlIG1hdGNoZXMgdHdvIHNjcmlwdHM6ICIgKyB1
aVNvdXJjZUNvZGUub3JpZ2luVVJMKCkpOwogICAgICAgICAgICAgICAgIHNlZW5VSVNvdXJjZUNv
ZGVzLnB1dCh1aVNvdXJjZUNvZGUsIHVpU291cmNlQ29kZSk7CiAgICAgICAgICAgICAgICAgKytp
bmRleDsKICAgICAgICAgICAgICAgICBkdW1wTmV4dFVJU291cmNlQ29kZSgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpbmtpZmllci5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpbmtpZmllci5odG1sCmluZGV4IDU2YjZjZTNhZGY2
NDlhODkwMzNlMjY1ZjU4Yzc0ZTM3MjEzNDQwMjAuLjIwNGNhNGFiZWU4YTE5YjBiYjNkMmQ3OTM4
NmMzMjJhODBiMjUyM2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9saW5raWZpZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGlu
a2lmaWVyLmh0bWwKQEAgLTMzLDE0ICszMyw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIHZhciB1aVNv
dXJjZUNvZGVzID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLl93b3Jrc3BhY2UudWlTb3Vy
Y2VDb2RlcygpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNlQ29kZXMubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgICAgIGlmICh1aVNvdXJjZUNvZGVzW2ldLnVybCA9PT0gV2Vi
SW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VVUkwpIHsKLSAgICAgICAgICAgICAgICB1aVNvdXJjZUNv
ZGUgPSB1aVNvdXJjZUNvZGVzW2ldOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0KKyAgICAgICAgCisgICAgICAgIHVpU291cmNlQ29kZSA9IFdlYklu
c3BlY3Rvci53b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yT3JpZ2luVVJMKFdlYkluc3BlY3Rvci5p
bnNwZWN0ZWRQYWdlVVJMKTsKICAgICAgICAgdmFyIGxpbmtpZnlNZSA9ICJhdCB0cmlnZ2VyRXJy
b3IgKGh0dHA6Ly9sb2NhbGhvc3Qvc2hvdy86MjI6MTEpIjsKICAgICAgICAgdmFyIGZyYWdtZW50
ID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlTdHJpbmdBc0ZyYWdtZW50KGxpbmtpZnlNZSk7CiAgICAg
ICAgIHZhciBhbmNob3IgPSBmcmFnbWVudC5xdWVyeVNlbGVjdG9yKCdhJyk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRz
Lmh0bWwKaW5kZXggNzNhMDQ3ZDEwYTZjNDYzYWI4MGQ0Y2ZlNzFhODBkNjBhZTZkNTE4OS4uYjUy
MTI4NDJjZDcyMmFiYmJhNGU2NDFlMGI3MmFiNTM3MzRmMmIxZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1icmVha3BvaW50cy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtwb2ludHMuaHRt
bApAQCAtNDAsNyArNDAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHZhciB1aUxv
Y2F0aW9uID0gbG9jYXRpb25zW2ldLnVpTG9jYXRpb247CiAgICAgICAgICAgICB2YXIgdWlTb3Vy
Y2VDb2RlID0gdWlMb2NhdGlvbi51aVNvdXJjZUNvZGU7CiAgICAgICAgICAgICB2YXIgcHJvamVj
dCA9IFdlYkluc3BlY3Rvci53b3Jrc3BhY2UucHJvamVjdEZvclVJU291cmNlQ29kZSh1aVNvdXJj
ZUNvZGUpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAgICAgdXJs
OiAiICsgcGF0aFRvRmlsZU5hbWUodWlTb3VyY2VDb2RlLnVybCkgKyAiLCBsaW5lTnVtYmVyOiAi
ICsgdWlMb2NhdGlvbi5saW5lTnVtYmVyICsgIiwgcHJvamVjdCBuYW1lOiAiICsgcHJvamVjdC5u
YW1lKCkpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAgICAgdXJs
OiAiICsgcGF0aFRvRmlsZU5hbWUodWlTb3VyY2VDb2RlLm9yaWdpblVSTCgpKSArICIsIGxpbmVO
dW1iZXI6ICIgKyB1aUxvY2F0aW9uLmxpbmVOdW1iZXIgKyAiLCBwcm9qZWN0IG5hbWU6ICIgKyBw
cm9qZWN0Lm5hbWUoKSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtc25pcHBldC1tb2RlbC5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0LW1vZGVsLmh0bWwKaW5kZXgg
NTgyNmUwYjg2N2M5OTMxMTdjNGIwZjA1ZWQwMTJlMmQ1NTM2YjVkNS4uOTRiYzZiOGIyOWI4MDll
Y2NhNjM5ODAwNDg0YTE0YTM0YzZjZjkwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0LW1vZGVsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0LW1vZGVsLmh0bWwKQEAgLTI5LDcgKzI5
LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2NyaXB0U25p
cHBldE1vZGVsLnJlbmFtZVNjcmlwdFNuaXBwZXQodWlTb3VyY2VDb2RlLCBzbmlwcGV0TmFtZSk7
CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygxLCB3b3Jrc3BhY2UudWlT
b3VyY2VDb2RlcygpLmxlbmd0aCwgIk9ubHkgb25lIHNuaXBwZXQgdWlTb3VyY2VDb2RlIHNob3Vs
ZCBiZSBwcmVzZW50LiIpOwogICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHdvcmtzcGFj
ZS51aVNvdXJjZUNvZGVzKClbMF07Ci0gICAgICAgICAgICBpZiAodWlTb3VyY2VDb2RlLnVybC5p
bmRleE9mKHNuaXBwZXROYW1lKSA9PT0gLTEpCisgICAgICAgICAgICBpZiAodWlTb3VyY2VDb2Rl
Lm9yaWdpblVSTCgpLmluZGV4T2Yoc25pcHBldE5hbWUpID09PSAtMSkKICAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBldCB1
aVNvdXJjZUNvZGUgdXJsIGlzIGNvcnJlY3QuIik7CiAgICAgICAgICAgICBuZXh0KCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxlLXNlbGVj
dG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxlLXNl
bGVjdG9yLmh0bWwKaW5kZXggNGU4MjEyYzRmNTc3ZGFkNjE0ZDdhOTY5MWVmYTVhMDViZDI4ZDRk
YS4uNTcxYTYyNmUyYzViMGJjODdjNTFjNTIxY2I0MmE1MTdjOWI4OTZkNSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtZmlsZS1zZWxlY3Rvci5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLWZpbGUtc2VsZWN0
b3IuaHRtbApAQCAtMTQsNyArMTQsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9u
IGFkZFVJU291cmNlQ29kZSh1cmwsIGlzQ29udGVudFNjcmlwdCkKICAgICB7Ci0gICAgICAgIHZh
ciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZShXZWJJbnNwZWN0
b3Iud29ya3NwYWNlLCB1cmwsIHVybCwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0
LCBudWxsKTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlT
b3VyY2VDb2RlKFdlYkluc3BlY3Rvci53b3Jrc3BhY2UsIHVybCwgdXJsLCB1cmwsIFdlYkluc3Bl
Y3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCwgbnVsbCk7CiAgICAgICAgIHVpU291cmNlQ29kZS5p
c0NvbnRlbnRTY3JpcHQgPSBpc0NvbnRlbnRTY3JpcHQ7CiAgICAgICAgIG5hdmlnYXRvckZpbGVT
ZWxlY3Rvci5hZGRVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKICAgICB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbAppbmRleCBjMGRh
ODllNWRjMzdhMDVmNDYxNjUwZDg3OTc2YmIwYjBmYTZjM2MzLi4zZWNiMTQ3NDFkZTZmNmMzMmM0
ZTU3N2JjYTMzMDc2N2FjZTdkYjQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgICAgIHdvcmtzcGFjZS5hZGRQcm9qZWN0KFdlYkluc3BlY3Rvci5wcm9qZWN0TmFt
ZXMuRGVidWdnZXIsIHdvcmtzcGFjZS5kZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyKTsKICAgICAg
ICAgd29ya3NwYWNlLnJlcXVlc3RGaWxlQ29udGVudCA9IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwg
Y2FsbGJhY2spCiAgICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJTb3VyY2UgcmVxdWVzdGVkIGZvciAiICsgdWlTb3VyY2VDb2RlLnVybCk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU291cmNlIHJlcXVlc3RlZCBmb3IgIiArIHVpU291
cmNlQ29kZS5vcmlnaW5VUkwoKSk7CiAgICAgICAgICAgICBjYWxsYmFjaygiIik7CiAgICAgICAg
IH07CiAgICAgICAgIHdvcmtzcGFjZS5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIgPSBuZXR3b3Jr
V29ya3NwYWNlUHJvdmlkZXI7CkBAIC01MSw3ICs1MSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvcihwYW5lbC5fbmF2aWdh
dG9yKTsKIAogICAgICAgICAgICAgLy8gU2VsZWN0ICJiYXouanMiLgotICAgICAgICAgICAgcGFu
ZWwuX3Nob3dGaWxlKHdvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JVUkwoImJhei5qcyIpKTsKKyAg
ICAgICAgICAgIHBhbmVsLl9zaG93RmlsZSh3b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yT3JpZ2lu
VVJMKCJiYXouanMiKSk7CiAgICAgICAgICAgICBwYW5lbC5kZXRhY2goKTsKIAogICAgICAgICAg
ICAgbmV4dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nj
cmlwdHMtc29ydGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Njcmlw
dHMtc29ydGluZy5odG1sCmluZGV4IGY4NDFmM2VkMWI3MmM5NDk3NDg1ZjEzN2ZkYWM0Y2VmNjdk
ZGQ5NTQuLmZlNTFkNjdlZWQ0NWUyYWIwYjkyMzUxMmU0NjZmNTkwYmU5YmE2MjUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRpbmcuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0aW5nLmh0bWwK
QEAgLTE0LDcgKzE0LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBmdW5jdGlvbiBhZGRVSVNv
dXJjZUNvZGUodXJsLCBpc0NvbnRlbnRTY3JpcHQpCiAgICAgewotICAgICAgICB2YXIgdWlTb3Vy
Y2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUoV2ViSW5zcGVjdG9yLndvcmtz
cGFjZSwgdXJsLCB1cmwsIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCwgbnVsbCk7
CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29k
ZShXZWJJbnNwZWN0b3Iud29ya3NwYWNlLCB1cmwsIHVybCwgdXJsLCBXZWJJbnNwZWN0b3IucmVz
b3VyY2VUeXBlcy5TY3JpcHQsIG51bGwpOwogICAgICAgICB1aVNvdXJjZUNvZGUuaXNDb250ZW50
U2NyaXB0ID0gaXNDb250ZW50U2NyaXB0OwogICAgICAgICBuYXZpZ2F0b3JGaWxlU2VsZWN0b3Iu
YWRkVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS1jb3VudC5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS1jb3VudC5odG1sCmluZGV4IDY0
MjdkOTkxMDQ5MWNjODliMTUzYTlkZDQxN2YxNGViOTczNWFlNjUuLmQ1MWU0ZjhiNDE1MTEyZjlj
Njk1Yjg4ZmZjYWFiY2ZiNzVjNWVlNGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9zb3VyY2UtZnJhbWUtY291bnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc291cmNlLWZyYW1lLWNvdW50Lmh0bWwKQEAgLTM0LDkgKzM0LDkgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAgdmFyIGFscmVhZHlTaG93blVSTHMgPSB7
fTsKICAgICAgICAgICAgICAgICBmdW5jdGlvbiBkaWRDcmVhdGVTb3VyY2VGcmFtZSgpCiAgICAg
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBpZiAoIWFscmVhZHlTaG93blVSTHNb
dGhpcy5fdWlTb3VyY2VDb2RlLnVybF0pCisgICAgICAgICAgICAgICAgICAgIGlmICghYWxyZWFk
eVNob3duVVJMc1t0aGlzLl91aVNvdXJjZUNvZGUub3JpZ2luVVJMKCldKQogICAgICAgICAgICAg
ICAgICAgICAgICAgc291cmNlRnJhbWVDb3VudCArPSAxOwotICAgICAgICAgICAgICAgICAgICBh
bHJlYWR5U2hvd25VUkxzW3RoaXMuX3VpU291cmNlQ29kZS51cmxdID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICAgICAgYWxyZWFkeVNob3duVVJMc1t0aGlzLl91aVNvdXJjZUNvZGUub3JpZ2luVVJM
KCldID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUsICJ3YXNT
aG93biIsIGRpZENyZWF0ZVNvdXJjZUZyYW1lLCB0cnVlKTsKICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnJlbG9hZFBhZ2UoZGlkUmVsb2FkKTsKQEAgLTQ5LDcgKzQ5LDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2VBZ2Fp
bigpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRU
cnVlKHBhbmVsLl9lZGl0b3JDb250YWluZXIudmlzaWJsZVZpZXcuX3VpU291cmNlQ29kZS51cmwu
aW5kZXhPZigic2NyaXB0My5qcyIpICE9PSAtMSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnRUcnVlKHBhbmVsLl9lZGl0b3JDb250YWluZXIudmlzaWJsZVZpZXcuX3VpU291
cmNlQ29kZS5vcmlnaW5VUkwoKS5pbmRleE9mKCJzY3JpcHQzLmpzIikgIT09IC0xKTsKICAgICAg
ICAgICAgICAgICAvLyBUaGVyZSBzaG91bGQgYmUgbWF4aW11bSAzIHNvdXJjZSBmcmFtZXMgc2hv
d246CiAgICAgICAgICAgICAgICAgLy8gIC0gZmlyc3Qgb25lIGlzIHRoZSBmaXJzdCBzaG93biAo
Zmlyc3QgdGFiIGFkZGVkKQogICAgICAgICAgICAgICAgIC8vICAtIHNlY29uZCBvbmUgaXMgdGhl
IGxhc3Qgdmlld2VkICgic2NyaXB0Mi5qcyIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc291cmNlLXVybC1jb21tZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc291cmNlLXVybC1jb21tZW50Lmh0bWwKaW5kZXggMzMyNTdhY2Y3ODVm
NjY3YzE2NDAyNDBlYTkwYjA2MjA0NmQ0ZmMzMi4uNzM5ZWRmMzJkNjlhNTc2ODIxMjcxNDg0MGI4
MDY4ZTFjM2Y1ZDQ2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3NvdXJjZS11cmwtY29tbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zb3VyY2UtdXJsLWNvbW1lbnQuaHRtbApAQCAtNDcsNyArNDcsNyBAQCBmdW5jdGlvbiB0
ZXN0KCkKICAgICAgICAgICAgICAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3IucGFuZWwoInNj
cmlwdHMiKTsKICAgICAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IHBhbmVsLl93b3Jr
c3BhY2UudWlTb3VyY2VDb2RlcygpOwogICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgdWlTb3VyY2VDb2Rlcy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRUcnVlKHVpU291cmNlQ29kZXNbaV0udXJsLmluZGV4T2YoImlubGluZVNj
cmlwdFVSTC5qcyIpID09PSAtMSwgInNvdXJjZVVSTCBjb21tZW50IGluIGlubGluZSBzY3JpcHQg
d2FzIHVzZWQgYXMgYSBzY3JpcHQgbmFtZSIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydFRydWUodWlTb3VyY2VDb2Rlc1tpXS5vcmlnaW5VUkwoKS5pbmRleE9mKCJp
bmxpbmVTY3JpcHRVUkwuanMiKSA9PT0gLTEsICJzb3VyY2VVUkwgY29tbWVudCBpbiBpbmxpbmUg
c2NyaXB0IHdhcyB1c2VkIGFzIGEgc2NyaXB0IG5hbWUiKTsKICAgICAgICAgICAgICAgICBmb3JF
YWNoU2NyaXB0TWF0Y2hpbmdVUkwoInNvdXJjZS11cmwtY29tbWVudC5odG1sIiwgY2hlY2tTY3Jp
cHREb2VzTm90SGF2ZVNvdXJjZVVSTCkKICAgICAgICAgICAgICAgICBuZXh0KCk7CiAgICAgICAg
ICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdWktc291
cmNlLWNvZGUtZGlzcGxheS1uYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvdWktc291cmNlLWNvZGUtZGlzcGxheS1uYW1lLmh0bWwKaW5kZXggYjUzZjc3YTQzNmJkYzc0
ZGU4MTkxZWM2NmZkNGQyODVmYmUwMTM5YS4uMjkyNDE3NzZlNzhmNjdkOGE3YjkwY2M4MTg2M2E1
ZGIyYTQ4YTAxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Vp
LXNvdXJjZS1jb2RlLWRpc3BsYXktbmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci91aS1zb3VyY2UtY29kZS1kaXNwbGF5LW5hbWUuaHRtbApAQCAtNyw3ICs3LDcg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2NyaXB0cyIp
OwogICAgIGZ1bmN0aW9uIGR1bXBVSVNvdXJjZUNvZGVEaXNwbGF5TmFtZSh1cmwpCiAgICAgewot
ICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUo
V2ViSW5zcGVjdG9yLndvcmtzcGFjZSwgdXJsLCB1cmwsIG51bGwpOworICAgICAgICB2YXIgdWlT
b3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUoV2ViSW5zcGVjdG9yLndv
cmtzcGFjZSwgdXJsLCB1cmwsIHVybCwgbnVsbCk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJVSVNvdXJjZUNvZGUgZGlzcGxheSBuYW1lIGZvciB1cmwgXCIiICsgdXJsICsgIlwi
IGlzIFwiIiArIFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlLl90
aXRsZUZvckZpbGUodWlTb3VyY2VDb2RlKSArICJcIi4iKTsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci91aS1zb3VyY2UtY29kZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3VpLXNvdXJjZS1jb2RlLmh0bWwKaW5kZXggZWFj
Nzc5YzBkMTRlNGM5YzE4ZTdiNTc5ZmQyYTIyOGEzN2JmZDdmZS4uMDhmYjY4NTg1YWFhNGIxZjVl
MGE0OWVkNThiMjRmMDE4MThjODQyZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3VpLXNvdXJjZS1jb2RlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3VpLXNvdXJjZS1jb2RlLmh0bWwKQEAgLTksNyArOSw3IEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKICAgICAgICAgZnVuY3Rpb24g
dGVzdFVJU291cmNlQ29kZShuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdWlTb3Vy
Y2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUoV2ViSW5zcGVjdG9yLndvcmtz
cGFjZSwgInVyaSIsICJ1cmwiLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQsIHRy
dWUpOworICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlT
b3VyY2VDb2RlKFdlYkluc3BlY3Rvci53b3Jrc3BhY2UsICJ1cmkiLCAib3JpZ2luVVJMIiwgInVy
bCIsIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCwgdHJ1ZSk7CiAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLnJlcXVlc3RGaWxlQ29udGVudCA9IGZ1bmN0aW9uKHBh
dGgsIGNhbGxiYWNrKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJDb250ZW50IGlzIHJlcXVlc3RlZCBmcm9tIFNvdXJjZUNvZGVQcm92aWRl
ci4iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWhp
c3RvcnkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWhpc3Rvcnku
aHRtbAppbmRleCA4OGZjZjYyMTZlMGYyNjUyMGYwNmIxYzBlOTY4NWYxZWM2MTcyMTRjLi45ZGU4
ZjdmZWU4YTg5ZTNlNmE3NzhiZGQxNmY0MDYwNmFjZGJiY2FjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1oaXN0b3J5Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaGlzdG9yeS5odG1sCkBAIC0yMSw3ICsyMSw3IEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGZ1bmN0aW9u
IHZpc2l0VUlTb3VyY2VDb2RlcyhjdXJyZW50VUlTb3VyY2VDb2RlKQogICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRVSVNvdXJjZUNvZGUudXJsLmluZGV4
T2YoInN0eWxlcy1oaXN0b3J5LmNzcyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGN1cnJlbnRVSVNvdXJjZUNvZGUub3JpZ2luVVJMKCkuaW5kZXhPZigic3R5bGVzLWhpc3Rvcnku
Y3NzIikgPT09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgICAgICAgICB1aVNvdXJjZUNvZGUgPSBjdXJyZW50VUlTb3VyY2VDb2RlOwogICAgICAgICAg
ICAgICAgICAgICBuZXh0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdWlz
b3VyY2Vjb2RlLXJldmlzaW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vpc291cmNl
Y29kZS1yZXZpc2lvbnMuaHRtbAppbmRleCBmOTZiMGFjMGUyZTMxYTAxNjY4MzI2OTZlODhjYjJm
MjcxZTYxMTRiLi5iMDgzYmZhNzgwMGI3ZDM5NjFiOTQ0OTk1YjAyY2I4NjBmODdiY2VlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdWlzb3VyY2Vjb2RlLXJldmlzaW9ucy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91aXNvdXJjZWNvZGUtcmV2aXNpb25zLmh0bWwK
QEAgLTM5LDcgKzM5LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgSW5zcGVjdG9yVGVzdC5ydW5U
ZXN0U3VpdGUoWwogICAgICAgICBmdW5jdGlvbiB0ZXN0QWRkUmV2aXNpb25zUmV2ZXJ0VG9Pcmln
aW5hbChuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3
IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUoY3JlYXRlTW9ja1dvcmtzcGFjZSgpLCAidXJpIiwg
InVybCIsIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCk7CisgICAgICAgICAgICB2
YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUoY3JlYXRlTW9j
a1dvcmtzcGFjZSgpLCAidXJpIiwgIm9yaWdpblVSTCIsICJ1cmwiLCBXZWJJbnNwZWN0b3IucmVz
b3VyY2VUeXBlcy5TY3JpcHQpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFdvcmtpbmdD
b3B5KCJjb250ZW50MSIpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFdvcmtpbmdDb3B5
KCJjb250ZW50MiIpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2RlLmNvbW1pdFdvcmtpbmdDb3B5
KGZ1bmN0aW9uKCkgeyB9KTsKQEAgLTYwLDcgKzYwLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAg
ICAgICAgZnVuY3Rpb24gdGVzdEFkZFJldmlzaW9uc1JldmVydEFuZENsZWFySGlzdG9yeShuZXh0
KQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3Bl
Y3Rvci5VSVNvdXJjZUNvZGUoY3JlYXRlTW9ja1dvcmtzcGFjZSgpLCAidXJpMiIsICJ1cmwyIiwg
V2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0KTsKKyAgICAgICAgICAgIHZhciB1aVNv
dXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZShjcmVhdGVNb2NrV29ya3Nw
YWNlKCksICJ1cmkyIiwgIm9yaWdpblVSTDIiLCAidXJsMiIsIFdlYkluc3BlY3Rvci5yZXNvdXJj
ZVR5cGVzLlNjcmlwdCk7CiAKICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29w
eSgiY29udGVudDEiKTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgi
Y29udGVudDIiKTsKQEAgLTg2LDcgKzg2LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAg
ZnVuY3Rpb24gdGVzdEFkZFJldmlzaW9uc1JldmVydFRvUHJldmlvdXMobmV4dCkKICAgICAgICAg
ewotICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlTb3Vy
Y2VDb2RlKGNyZWF0ZU1vY2tXb3Jrc3BhY2UoKSwgInVyaTMiLCAidXJsMyIsIFdlYkluc3BlY3Rv
ci5yZXNvdXJjZVR5cGVzLlNjcmlwdCk7CisgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0g
bmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUoY3JlYXRlTW9ja1dvcmtzcGFjZSgpLCAidXJp
MyIsICJvcmlnaW5VUkwzIiwgInVybDMiLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3Jp
cHQpOwogCiAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2V0V29ya2luZ0NvcHkoImNvbnRlbnQx
Iik7CiAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2V0V29ya2luZ0NvcHkoImNvbnRlbnQyIik7
CkBAIC0xMDgsNyArMTA4LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24g
dGVzdFJlcXVlc3RDb250ZW50QWRkUmV2aXNpb25zUmV2ZXJ0VG9PcmlnaW5hbChuZXh0KQogICAg
ICAgICB7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5V
SVNvdXJjZUNvZGUoY3JlYXRlTW9ja1dvcmtzcGFjZSgpLCAidXJpNCIsICJ1cmw0IiwgV2ViSW5z
cGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0KTsKKyAgICAgICAgICAgIHZhciB1aVNvdXJjZUNv
ZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZShjcmVhdGVNb2NrV29ya3NwYWNlKCks
ICJ1cmk0IiwgIm9yaWdpblVSTDQiLCAidXJsNCIsIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVz
LlNjcmlwdCk7CiAgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoY29udGVu
dFJlY2VpdmVkKTsKIAogICAgICAgICAgICAgZnVuY3Rpb24gY29udGVudFJlY2VpdmVkKCkKQEAg
LTEzNiw3ICsxMzYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICBmdW5jdGlvbiB0ZXN0
UmVxdWVzdENvbnRlbnRBZGRSZXZpc2lvbnNSZXZlcnRBbmRDbGVhckhpc3RvcnkobmV4dCkKICAg
ICAgICAgewotICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlKGNyZWF0ZU1vY2tXb3Jrc3BhY2UoKSwgInVyaTUiLCAidXJsNSIsIFdlYklu
c3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCk7CisgICAgICAgICAgICB2YXIgdWlTb3VyY2VD
b2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUoY3JlYXRlTW9ja1dvcmtzcGFjZSgp
LCAidXJpNSIsICJvcmlnaW5VUkw1IiwgInVybDUiLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBl
cy5TY3JpcHQpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGNvbnRl
bnRSZWNlaXZlZCk7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGNvbnRlbnRSZWNlaXZlZCgpCkBA
IC0xNjgsNyArMTY4LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24gdGVz
dFJlcXVlc3RDb250ZW50QWRkUmV2aXNpb25zUmV2ZXJ0VG9QcmV2aW91cyhuZXh0KQogICAgICAg
ICB7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGUoY3JlYXRlTW9ja1dvcmtzcGFjZSgpLCAidXJpNiIsICJ1cmw2IiwgV2ViSW5zcGVj
dG9yLnJlc291cmNlVHlwZXMuU2NyaXB0KTsKKyAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUg
PSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZShjcmVhdGVNb2NrV29ya3NwYWNlKCksICJ1
cmk2IiwgIm9yaWdpblVSTDYiLCAidXJsNiIsIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNj
cmlwdCk7CiAgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoY29udGVudFJl
Y2VpdmVkKTsKIAogICAgICAgICAgICAgZnVuY3Rpb24gY29udGVudFJlY2VpdmVkKCkK
</data>
<flag name="review"
          id="200914"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>