<?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>86616</bug_id>
          
          <creation_ts>2012-05-16 06:14:25 -0700</creation_ts>
          <short_desc>Web Inspector: split ScriptMapping into UISourceCodeProvider and SourceMapping.</short_desc>
          <delta_ts>2012-05-16 06:54:22 -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>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</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>625338</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-05-16 06:14:25 -0700</bug_when>
    <thetext>This change simply splits the interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625346</commentid>
    <comment_count>1</comment_count>
      <attachid>142240</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-05-16 06:25:34 -0700</bug_when>
    <thetext>Created attachment 142240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625350</commentid>
    <comment_count>2</comment_count>
      <attachid>142240</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-16 06:35:58 -0700</bug_when>
    <thetext>Comment on attachment 142240
Patch

Attachment 142240 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12720163</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625366</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-05-16 06:54:22 -0700</bug_when>
    <thetext>Committed r117277: &lt;http://trac.webkit.org/changeset/117277&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142240</attachid>
            <date>2012-05-16 06:25:34 -0700</date>
            <delta_ts>2012-05-16 06:37:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86616-20120516172532.patch</filename>
            <type>text/plain</type>
            <size>42052</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmU0MmM1ZTViNzA3NTAz
NmM1ZDhiODljYzU5YmQ4ZWE1Zjk1OWQ0Mi4uNWUzZDg2MTAwYmRiNjg0YTI1YzUyMGMwYTU5YThi
MWVjZjkwYThkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYxIEBACiAyMDEyLTA1LTE2ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHNwbGl0IFNjcmlwdE1hcHBpbmcgaW50byBVSVNvdXJjZUNvZGVQcm92aWRlciBhbmQgU291
cmNlTWFwcGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2NjE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBjaGFuZ2Ugc2ltcGx5IHNwbGl0cyB0aGUgaW50ZXJmYWNlLgorCisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgor
ICAgICAgICAqIGluc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBlLmdldCB1aVNvdXJjZUNvZGVz
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBl
LnJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanM6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclJlc291cmNlQmluZGluZy5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclJlc291cmNlQmluZGluZyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJSZXNvdXJjZUJpbmRpbmcucHJvdG90eXBlLl91aVNv
dXJjZUNvZGVGb3JSZXNvdXJjZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1
Z2dlclNjcmlwdE1hcHBpbmcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJTY3Jp
cHRNYXBwaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNjcmlwdE1hcHBpbmcu
cHJvdG90eXBlLnVpU291cmNlQ29kZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
U2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX2hhbmRsZVVJU291cmNlQ29kZUFkZGVkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNjcmlwdE1hcHBpbmcucHJvdG90eXBlLl9oYW5kbGVV
SVNvdXJjZUNvZGVSZXBsYWNlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJTY3Jp
cHRNYXBwaW5nLnByb3RvdHlwZS5faGFuZGxlVUlTb3VyY2VDb2RlUmVtb3ZlZCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuT3BlblNjcmlwdERpYWxvZyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuT3BlblNjcmlwdERpYWxvZy5pbnN0YWxsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5P
cGVuU2NyaXB0RGlhbG9nLl9zaG93KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1By
ZXNlbnRhdGlvbkNvbnNvbGVNZXNzYWdlSGVscGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlByZXNlbnRhdGlvbkNvbnNvbGVNZXNzYWdlSGVscGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5QcmVzZW50YXRpb25Db25zb2xlTWVzc2FnZUhlbHBlci5wcm90b3R5cGUuX2NvbnNvbGVDbGVh
cmVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlU2NyaXB0TWFwcGlu
Zy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90
eXBlLnVpU291cmNlQ29kZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0
TWFwcGluZy5wcm90b3R5cGUuX3VpU291cmNlQ29kZUFkZGVkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlLl91aVNvdXJjZUNvZGVSZXBsYWNl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlw
ZS5fdWlTb3VyY2VDb2RlUmVtb3ZlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHQuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0TW9k
ZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsLnByb3RvdHlw
ZS5fdWlTb3VyY2VDb2Rlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldFNjcmlwdE1h
cHBpbmcucHJvdG90eXBlLnVpU291cmNlQ29kZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNu
aXBwZXRTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fZmlyZVVJU291cmNlQ29kZUFkZGVkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0U2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX2ZpcmVV
SVNvdXJjZUNvZGVSZW1vdmVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Njcmlw
dHNQYW5lbC5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNTZWFyY2hT
Y29wZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzU2VhcmNoU2NvcGUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNTZWFyY2hTY29wZS5wcm90b3R5cGUuX3NvcnRlZFVJ
U291cmNlQ29kZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlTWFwcGlu
Zy5qczogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0TWFwcGluZy5qcy4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29k
ZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIucHJvdG90eXBlLnVpU291cmNl
Q29kZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVJTG9jYXRpb24pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlVJTG9jYXRpb24ucHJvdG90eXBlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKworMjAxMi0wNS0xNiAgUGF2ZWwgRmVs
ZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBm
b2xsb3cgdXAgdG8gcjExNzI2NyAtIGZpeGluZyB0eXBvIGFuZCByZW1vdmluZyB1bm5lY2Vzc2Fy
eSBkaXNwYXRjaC4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2NjEzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBmMGI3MGIyOTM3ZDg2NDllODgyYzQwMWMy
NzM3MzUwYmE2MzAzMTYzLi5iMzI1YzlmMjIwMTg1NDY5M2IyNGUxYmQ3Yjk2YTMyNTQzM2RkZTZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC02NDY3LDcgKzY0NjcsNiBAQAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJv
bnQtZW5kL1NjcmlwdEZvcm1hdHRlci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMnLAotICAgICAgICAgICAgJ2luc3BlY3Rvci9m
cm9udC1lbmQvU2NyaXB0TWFwcGluZy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0c05hdmlnYXRvci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRzUGFuZWwuanMnLApAQCAtNjQ4Nyw2ICs2NDg2LDcgQEAKICAgICAgICAgICAg
ICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIuanMnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9mcm9udC1lbmQvU291cmNlSmF2YVNjcmlwdFRva2VuaXplci5qcycsCisgICAgICAg
ICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VNYXBwaW5nLmpzJywKICAgICAgICAgICAg
ICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVRva2VuaXplci5qcycsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL2Zyb250LWVuZC9TcGVjdHJ1bS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L2Zyb250LWVuZC9TcGxpdFZpZXcuanMnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagppbmRleCAyMDNjMzU3MTVlNjJiNjUzYWE1Yzc5NDg0MTM2OTUyODVj
ODFkZmQyLi5lNjY4NDgxNGMzNmU2MGFjNjYyN2Y1YmVkYWM1MWY3YjBjM2UwMjI4IDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzQ2OTcsMTAg
Kzc0Njk3LDYgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcU2NyaXB0TWFwcGluZy5qcyIKLQkJCQkJPgot
CQkJCTwvRmlsZT4KLQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxm
cm9udC1lbmRcU2NyaXB0c05hdmlnYXRvci5qcyIKIAkJCQkJPgogCQkJCTwvRmlsZT4KQEAgLTc0
NzgxLDYgKzc0Nzc3LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFNvdXJjZU1hcHBpbmcuanMiCisJ
CQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNw
ZWN0b3JcZnJvbnQtZW5kXFNvdXJjZVRva2VuaXplci5qcyIKIAkJCQkJPgogCQkJCTwvRmlsZT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5w
eSBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weQppbmRleCAy
ZmVlYTY3NWRiNzYzZDA5MTc5MGQ2ZGM3NjdkNDMwYmMxYzY4NTRlLi45NjdiZTM3OGM0OTM5Mzll
NDg3MjlkMmMxYmU0OTM5MDczMDUxOGQyIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2NvbXBpbGUtZnJvbnQtZW5kLnB5CkBAIC04Myw5ICs4Myw5IEBAIG1vZHVsZXMgPSBbCiAgICAg
ICAgICAgICAiUGxhY2FyZC5qcyIsCiAgICAgICAgICAgICAiU2NyaXB0LmpzIiwKICAgICAgICAg
ICAgICJTY3JpcHRGb3JtYXR0ZXIuanMiLAotICAgICAgICAgICAgIlNjcmlwdE1hcHBpbmcuanMi
LAogICAgICAgICAgICAgIlNjcmlwdFNuaXBwZXRNb2RlbC5qcyIsCiAgICAgICAgICAgICAiU25p
cHBldFN0b3JhZ2UuanMiLAorICAgICAgICAgICAgIlNvdXJjZU1hcHBpbmcuanMiLAogICAgICAg
ICAgICAgIlRpbWVsaW5lTWFuYWdlci5qcyIsCiAgICAgICAgICAgICAiVGltZWxpbmVNb2RlbC5q
cyIsCiAgICAgICAgICAgICAiUmF3U291cmNlQ29kZS5qcyIsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpz
CmluZGV4IDM0ZjM2NTJiNzAzMDJiM2U1MzE4N2U0ZjkxZGIwZjlkOGQyMjgwNTUuLjk4ZDMwZmZh
NjliZmY0YWRlYmU4ZDVlOTdiYzRhZDFjZmFkNmQ3NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpz
CkBAIC0zMCw3ICszMCw5IEBACiAKIC8qKgogICogQGNvbnN0cnVjdG9yCi0gKiBAZXh0ZW5kcyB7
V2ViSW5zcGVjdG9yLlNjcmlwdE1hcHBpbmd9CisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9i
amVjdH0KKyAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuU291cmNlTWFwcGluZ30KKyAqIEBp
bXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXJ9CiAgKi8KIFdlYklu
c3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcgPSBmdW5jdGlvbigpCiB7CkBAIC02OSw3ICs3
MSw3IEBAIFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewog
ICAgIC8qKgogICAgICAqIEByZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
Pn0KICAgICAgKi8KLSAgICB1aVNvdXJjZUNvZGVMaXN0OiBmdW5jdGlvbigpCisgICAgdWlTb3Vy
Y2VDb2RlczogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIHJlc3VsdCA9IFtdOwogICAg
ICAgICBmb3IgKHZhciB1cmwgaW4gdGhpcy5fdWlTb3VyY2VDb2RlQnlVUkwpCkBAIC0xMjgsNyAr
MTMwLDcgQEAgV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHNjcmlwdC5zZXRTb3VyY2VNYXBwaW5nKHRoaXMpOwogCiAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdWlTb3VyY2VDb2RlTGlzdC5sZW5ndGg7ICsraSkKLSAgICAgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TY3JpcHRNYXBwaW5n
LkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdWlTb3VyY2VDb2RlTGlzdFtpXSk7CisgICAgICAg
ICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVUlTb3VyY2VD
b2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB1aVNvdXJjZUNvZGVMaXN0W2ld
KTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xNTksOSArMTYxLDkgQEAgV2ViSW5zcGVjdG9yLkNv
bXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAKICAgICByZXNldDogZnVuY3Rpb24o
KQogICAgIHsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSB0aGlzLnVpU291cmNlQ29kZUxp
c3QoKTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSB0aGlzLnVpU291cmNlQ29kZXMoKTsK
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytpKQot
ICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlNj
cmlwdE1hcHBpbmcuRXZlbnRzLlVJU291cmNlQ29kZVJlbW92ZWQsIHVpU291cmNlQ29kZXNbaV0p
OworICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVSZW1vdmVkLCB1aVNvdXJj
ZUNvZGVzW2ldKTsKIAogICAgICAgICB0aGlzLl9zb3VyY2VNYXBCeVVSTCA9IHt9OwogICAgICAg
ICB0aGlzLl9zb3VyY2VNYXBGb3JTY3JpcHRJZCA9IHt9OwpAQCAtMTcxLDcgKzE3Myw3IEBAIFdl
Ykluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgIH0KIH0K
IAotV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX19wcm90b19f
ID0gV2ViSW5zcGVjdG9yLlNjcmlwdE1hcHBpbmcucHJvdG90eXBlOworV2ViSW5zcGVjdG9yLkNv
bXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9i
amVjdC5wcm90b3R5cGU7CiAKIC8qKgogICogQGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKaW5kZXggOGQxNWI3
MzE5OWViODc0YzdiMTI3MzE4MDdhNjQyMGQyYTlkNzIwYi4uZDY5Y2VhMTM1ZGRjM2JhMjc5MWFi
M2E1NzIzNzFiZjdhMjlmOGI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwpAQCAtNTE4LDcgKzUxOCw3IEBAIFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBAcGFyYW0g
e0RlYnVnZ2VyQWdlbnQuTG9jYXRpb259IGxvY2F0aW9uCiAgICAgICogQHBhcmFtIHtmdW5jdGlv
bihXZWJJbnNwZWN0b3IuVUlMb2NhdGlvbik6KGJvb2xlYW58dW5kZWZpbmVkKX0gdXBkYXRlRGVs
ZWdhdGUKLSAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuTGl2ZUxvY2F0aW9ufQorICAgICAq
IEByZXR1cm4ge1dlYkluc3BlY3Rvci5TY3JpcHQuTG9jYXRpb259CiAgICAgICovCiAgICAgY3Jl
YXRlTGl2ZUxvY2F0aW9uOiBmdW5jdGlvbihsb2NhdGlvbiwgdXBkYXRlRGVsZWdhdGUpCiAgICAg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dl
clJlc291cmNlQmluZGluZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RGVidWdnZXJSZXNvdXJjZUJpbmRpbmcuanMKaW5kZXggYmIzMzU4M2FiMmI5ZGI4ZWFiYmY4ODNj
Y2ZiMmZlODg2Y2NiNmNjYy4uOWVhZjNlYTI2ZDEzN2NiOGM3NjgwMjU4NmY3MDhhYjJkYWZmZTBh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dl
clJlc291cmNlQmluZGluZy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RlYnVnZ2VyUmVzb3VyY2VCaW5kaW5nLmpzCkBAIC0zMSwxMSArMzEsMTEgQEAKIC8qKgog
ICogQGNvbnN0cnVjdG9yCiAgKiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9yLlJlc291cmNlRG9t
YWluTW9kZWxCaW5kaW5nfQotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJv
amVjdH0gdWlTb3VyY2VDb2RlUHJvamVjdAorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3Vy
Y2VDb2RlUHJvdmlkZXJ9IHVpU291cmNlQ29kZVByb3ZpZGVyCiAgKi8KLVdlYkluc3BlY3Rvci5E
ZWJ1Z2dlclJlc291cmNlQmluZGluZyA9IGZ1bmN0aW9uKHVpU291cmNlQ29kZVByb2plY3QpCitX
ZWJJbnNwZWN0b3IuRGVidWdnZXJSZXNvdXJjZUJpbmRpbmcgPSBmdW5jdGlvbih1aVNvdXJjZUNv
ZGVQcm92aWRlcikKIHsKLSAgICB0aGlzLl91aVNvdXJjZUNvZGVQcm9qZWN0ID0gdWlTb3VyY2VD
b2RlUHJvamVjdDsKKyAgICB0aGlzLl91aVNvdXJjZUNvZGVQcm92aWRlciA9IHVpU291cmNlQ29k
ZVByb3ZpZGVyOwogICAgIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5yZWdpc3RlckRvbWFpbk1vZGVs
QmluZGluZyhXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQsIHRoaXMpOwogfQogCkBA
IC0xMDUsNyArMTA1LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUmVzb3VyY2VCaW5kaW5nLnBy
b3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfdWlTb3VyY2VDb2RlRm9yUmVzb3VyY2U6IGZ1bmN0
aW9uKHJlc291cmNlKQogICAgIHsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSB0aGlzLl91
aVNvdXJjZUNvZGVQcm9qZWN0LnVpU291cmNlQ29kZXMoKTsKKyAgICAgICAgdmFyIHVpU291cmNl
Q29kZXMgPSB0aGlzLl91aVNvdXJjZUNvZGVQcm92aWRlci51aVNvdXJjZUNvZGVzKCk7CiAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdWlTb3VyY2VDb2Rlcy5sZW5ndGg7ICsraSkgewogICAg
ICAgICAgICAgaWYgKHVpU291cmNlQ29kZXNbaV0udXJsID09PSByZXNvdXJjZS51cmwpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHVpU291cmNlQ29kZXNbaV07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyU2NyaXB0TWFwcGluZy5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJTY3JpcHRNYXBwaW5nLmpz
CmluZGV4IDY4YmZlNmM4YzcwYjA5MjQyZTk5MTliZThjYTQ3NzVhNzQwZDNkZTEuLjIzNWY3N2Uy
MjdmMGE4N2UzNzc5YjRkOGFkNWQ4NTc2Mjc0YjhlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJTY3JpcHRNYXBwaW5nLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJTY3JpcHRNYXBwaW5nLmpz
CkBAIC0zMSw3ICszMSw3IEBACiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dl
Ykluc3BlY3Rvci5PYmplY3R9Ci0gKiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZVByb2plY3R9CisgKiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVBy
b3ZpZGVyfQogICovCiBXZWJJbnNwZWN0b3IuRGVidWdnZXJTY3JpcHRNYXBwaW5nID0gZnVuY3Rp
b24oKQogewpAQCAtNDQsOSArNDQsOSBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTY3JpcHRNYXBw
aW5nID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX3NuaXBwZXRNYXBwaW5nID0gV2ViSW5zcGVjdG9y
LnNjcmlwdFNuaXBwZXRNb2RlbC5zY3JpcHRNYXBwaW5nOwogICAgIHRoaXMuX21hcHBpbmdzLnB1
c2godGhpcy5fc25pcHBldE1hcHBpbmcpOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5f
bWFwcGluZ3MubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdGhpcy5fbWFwcGluZ3NbaV0uYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU2NyaXB0TWFwcGluZy5FdmVudHMuVUlTb3VyY2VDb2Rl
QWRkZWQsIHRoaXMuX2hhbmRsZVVJU291cmNlQ29kZUFkZGVkLCB0aGlzKTsKLSAgICAgICAgdGhp
cy5fbWFwcGluZ3NbaV0uYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU2NyaXB0TWFwcGlu
Zy5FdmVudHMuVUlTb3VyY2VDb2RlUmVwbGFjZWQsIHRoaXMuX2hhbmRsZVVJU291cmNlQ29kZVJl
cGxhY2VkLCB0aGlzKTsKLSAgICAgICAgdGhpcy5fbWFwcGluZ3NbaV0uYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuU2NyaXB0TWFwcGluZy5FdmVudHMuVUlTb3VyY2VDb2RlUmVtb3ZlZCwg
dGhpcy5faGFuZGxlVUlTb3VyY2VDb2RlUmVtb3ZlZCwgdGhpcyk7CisgICAgICAgIHRoaXMuX21h
cHBpbmdzW2ldLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3Zp
ZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdGhpcy5faGFuZGxlVUlTb3VyY2VDb2RlQWRk
ZWQsIHRoaXMpOworICAgICAgICB0aGlzLl9tYXBwaW5nc1tpXS5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlUmVwbGFj
ZWQsIHRoaXMuX2hhbmRsZVVJU291cmNlQ29kZVJlcGxhY2VkLCB0aGlzKTsKKyAgICAgICAgdGhp
cy5fbWFwcGluZ3NbaV0uYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
UHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZVJlbW92ZWQsIHRoaXMuX2hhbmRsZVVJU291cmNl
Q29kZVJlbW92ZWQsIHRoaXMpOwogICAgIH0KIAogICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1v
ZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLlBh
cnNlZFNjcmlwdFNvdXJjZSwgdGhpcy5fcGFyc2VkU2NyaXB0U291cmNlLCB0aGlzKTsKQEAgLTcy
LDcgKzcyLDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUg
PSB7CiAgICAgewogICAgICAgICB2YXIgcmVzdWx0ID0gW107CiAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgdGhpcy5fbWFwcGluZ3MubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciB1
aVNvdXJjZUNvZGVMaXN0ID0gdGhpcy5fbWFwcGluZ3NbaV0udWlTb3VyY2VDb2RlTGlzdCgpOwor
ICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZUxpc3QgPSB0aGlzLl9tYXBwaW5nc1tpXS51aVNv
dXJjZUNvZGVzKCk7CiAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHVpU291cmNlQ29k
ZUxpc3QubGVuZ3RoOyArK2opCiAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2godWlTb3VyY2VD
b2RlTGlzdFtqXSk7CiAgICAgICAgIH0KQEAgLTg0LDcgKzg0LDcgQEAgV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2hhbmRsZVVJ
U291cmNlQ29kZUFkZGVkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TY3JpcHRNYXBwaW5nLkV2ZW50cy5V
SVNvdXJjZUNvZGVBZGRlZCwgZXZlbnQuZGF0YSk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlT
b3VyY2VDb2RlQWRkZWQsIGV2ZW50LmRhdGEpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTkyLDcg
KzkyLDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7
CiAgICAgICovCiAgICAgX2hhbmRsZVVJU291cmNlQ29kZVJlcGxhY2VkOiBmdW5jdGlvbihldmVu
dCkKICAgICB7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3Bl
Y3Rvci5TY3JpcHRNYXBwaW5nLkV2ZW50cy5VSVNvdXJjZUNvZGVSZXBsYWNlZCwgZXZlbnQuZGF0
YSk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5V
SVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlUmVwbGFjZWQsIGV2ZW50LmRh
dGEpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTEwMCwxMiArMTAwLDEyIEBAIFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlclNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAqLwogICAgIF9oYW5k
bGVVSVNvdXJjZUNvZGVSZW1vdmVkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TY3JpcHRNYXBwaW5nLkV2
ZW50cy5VSVNvdXJjZUNvZGVSZW1vdmVkLCBldmVudC5kYXRhKTsKKyAgICAgICAgdGhpcy5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2
ZW50cy5VSVNvdXJjZUNvZGVSZW1vdmVkLCBldmVudC5kYXRhKTsKICAgICB9LAogCiAgICAgLyoq
CiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2NyaXB0fSBzY3JpcHQKLSAgICAgKiBAcmV0
dXJuIHtXZWJJbnNwZWN0b3IuU2NyaXB0TWFwcGluZ30KKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNw
ZWN0b3IuU291cmNlTWFwcGluZ30KICAgICAgKi8KICAgICBfbWFwcGluZ0ZvclNjcmlwdDogZnVu
Y3Rpb24oc2NyaXB0KQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMKaW5k
ZXggNTFjZGVkNmJmZTVkZTZhN2ZmZDY3YWEwYmZjNDBkMTIzZDdlNTdiNS4uODc2ZDhmZWJlMzY3
OTRlMWUyODk5OTcyZTczMjk2MGYzMzNmN2YzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25E
aWFsb2cuanMKQEAgLTY1NCwyMyArNjU0LDIzIEBAIFdlYkluc3BlY3Rvci5PcGVuUmVzb3VyY2VE
aWFsb2cucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5TZWxlY3Rpb25EaWFsCiAg
KiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuT3BlblJlc291cmNlRGlh
bG9nfQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsfSBwYW5lbAotICogQHBh
cmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvamVjdH0gdWlTb3VyY2VDb2RlUHJvamVj
dAorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXJ9IHVpU291cmNl
Q29kZVByb3ZpZGVyCiAgKi8KLVdlYkluc3BlY3Rvci5PcGVuU2NyaXB0RGlhbG9nID0gZnVuY3Rp
b24ocGFuZWwsIHVpU291cmNlQ29kZVByb2plY3QpCitXZWJJbnNwZWN0b3IuT3BlblNjcmlwdERp
YWxvZyA9IGZ1bmN0aW9uKHBhbmVsLCB1aVNvdXJjZUNvZGVQcm92aWRlcikKIHsKLSAgICBXZWJJ
bnNwZWN0b3IuT3BlblJlc291cmNlRGlhbG9nLmNhbGwodGhpcywgdWlTb3VyY2VDb2RlUHJvamVj
dC51aVNvdXJjZUNvZGVzKCkpOworICAgIFdlYkluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFsb2cu
Y2FsbCh0aGlzLCB1aVNvdXJjZUNvZGVQcm92aWRlci51aVNvdXJjZUNvZGVzKCkpOwogICAgIHRo
aXMuX3BhbmVsID0gcGFuZWw7CiB9CiAKIC8qKgogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2Ny
aXB0c1BhbmVsfSBwYW5lbAotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJv
amVjdH0gdWlTb3VyY2VDb2RlUHJvamVjdAorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3Vy
Y2VDb2RlUHJvdmlkZXJ9IHVpU291cmNlQ29kZVByb3ZpZGVyCiAgKi8KLVdlYkluc3BlY3Rvci5P
cGVuU2NyaXB0RGlhbG9nLmluc3RhbGwgPSBmdW5jdGlvbihwYW5lbCwgdWlTb3VyY2VDb2RlUHJv
amVjdCwgcmVsYXRpdmVUb0VsZW1lbnQpCitXZWJJbnNwZWN0b3IuT3BlblNjcmlwdERpYWxvZy5p
bnN0YWxsID0gZnVuY3Rpb24ocGFuZWwsIHVpU291cmNlQ29kZVByb3ZpZGVyLCByZWxhdGl2ZVRv
RWxlbWVudCkKIHsKICAgICBmdW5jdGlvbiBzaG93T3BlblJlc291cmNlRGlhbG9nKCkKICAgICB7
Ci0gICAgICAgIFdlYkluc3BlY3Rvci5PcGVuU2NyaXB0RGlhbG9nLl9zaG93KHBhbmVsLCB1aVNv
dXJjZUNvZGVQcm9qZWN0LCByZWxhdGl2ZVRvRWxlbWVudCk7CisgICAgICAgIFdlYkluc3BlY3Rv
ci5PcGVuU2NyaXB0RGlhbG9nLl9zaG93KHBhbmVsLCB1aVNvdXJjZUNvZGVQcm92aWRlciwgcmVs
YXRpdmVUb0VsZW1lbnQpOwogICAgIH0KIAogICAgIHZhciBvcGVuUmVzb3VyY2VTaG9ydGN1dCA9
IFdlYkluc3BlY3Rvci5PcGVuUmVzb3VyY2VEaWFsb2cuY3JlYXRlU2hvcnRjdXQoKTsKQEAgLTY3
OSwxNSArNjc5LDE1IEBAIFdlYkluc3BlY3Rvci5PcGVuU2NyaXB0RGlhbG9nLmluc3RhbGwgPSBm
dW5jdGlvbihwYW5lbCwgdWlTb3VyY2VDb2RlUHJvamVjdCwgcmVsCiAKIC8qKgogICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsfSBwYW5lbAotICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlUHJvamVjdH0gdWlTb3VyY2VDb2RlUHJvamVjdAorICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXJ9IHVpU291cmNlQ29kZVByb3ZpZGVyCiAg
KiBAcGFyYW0ge0VsZW1lbnR9IHJlbGF0aXZlVG9FbGVtZW50CiAgKi8KLVdlYkluc3BlY3Rvci5P
cGVuU2NyaXB0RGlhbG9nLl9zaG93ID0gZnVuY3Rpb24ocGFuZWwsIHVpU291cmNlQ29kZVByb2pl
Y3QsIHJlbGF0aXZlVG9FbGVtZW50KQorV2ViSW5zcGVjdG9yLk9wZW5TY3JpcHREaWFsb2cuX3No
b3cgPSBmdW5jdGlvbihwYW5lbCwgdWlTb3VyY2VDb2RlUHJvdmlkZXIsIHJlbGF0aXZlVG9FbGVt
ZW50KQogewogICAgIGlmIChXZWJJbnNwZWN0b3IuRGlhbG9nLmN1cnJlbnRJbnN0YW5jZSgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICB2YXIgZmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nID0g
bmV3IFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cobmV3IFdlYkluc3Bl
Y3Rvci5PcGVuU2NyaXB0RGlhbG9nKHBhbmVsLCB1aVNvdXJjZUNvZGVQcm9qZWN0KSk7CisgICAg
dmFyIGZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZyA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsdGVy
ZWRJdGVtU2VsZWN0aW9uRGlhbG9nKG5ldyBXZWJJbnNwZWN0b3IuT3BlblNjcmlwdERpYWxvZyhw
YW5lbCwgdWlTb3VyY2VDb2RlUHJvdmlkZXIpKTsKICAgICBXZWJJbnNwZWN0b3IuRGlhbG9nLnNo
b3cocmVsYXRpdmVUb0VsZW1lbnQsIGZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZyk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJlc2VudGF0
aW9uQ29uc29sZU1lc3NhZ2VIZWxwZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1ByZXNlbnRhdGlvbkNvbnNvbGVNZXNzYWdlSGVscGVyLmpzCmluZGV4IDk0YTU3MmUy
NGE2YzU3NDg3ZDc2NTBjZDI5MGJiYTAzN2M4Mjc0ZjMuLmZlNDgwZTIwZWZlNGVmNTc0NzRlMjEx
MWEwZjhlZWMwMTkwZWFhNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUHJlc2VudGF0aW9uQ29uc29sZU1lc3NhZ2VIZWxwZXIuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QcmVzZW50YXRpb25Db25zb2xlTWVzc2FnZUhl
bHBlci5qcwpAQCAtMzAsMTMgKzMwLDEzIEBACiAKIC8qKgogICogQGNvbnN0cnVjdG9yCi0gKiBA
cGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm9qZWN0fSB1aVNvdXJjZUNvZGVQcm9q
ZWN0CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlcn0gdWlTb3Vy
Y2VDb2RlUHJvdmlkZXIKICAqLwotV2ViSW5zcGVjdG9yLlByZXNlbnRhdGlvbkNvbnNvbGVNZXNz
YWdlSGVscGVyID0gZnVuY3Rpb24odWlTb3VyY2VDb2RlUHJvamVjdCkKK1dlYkluc3BlY3Rvci5Q
cmVzZW50YXRpb25Db25zb2xlTWVzc2FnZUhlbHBlciA9IGZ1bmN0aW9uKHVpU291cmNlQ29kZVBy
b3ZpZGVyKQogewogICAgIHRoaXMuX3BlbmRpbmdDb25zb2xlTWVzc2FnZXMgPSB7fTsKICAgICB0
aGlzLl9wcmVzZW50YXRpb25Db25zb2xlTWVzc2FnZXMgPSBbXTsKLSAgICB0aGlzLl91aVNvdXJj
ZUNvZGVQcm9qZWN0ID0gdWlTb3VyY2VDb2RlUHJvamVjdDsKKyAgICB0aGlzLl91aVNvdXJjZUNv
ZGVQcm92aWRlciA9IHVpU291cmNlQ29kZVByb3ZpZGVyOwogCiAgICAgV2ViSW5zcGVjdG9yLmNv
bnNvbGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsLkV2ZW50cy5N
ZXNzYWdlQWRkZWQsIHRoaXMuX2NvbnNvbGVNZXNzYWdlQWRkZWQsIHRoaXMpOwogICAgIFdlYklu
c3BlY3Rvci5jb25zb2xlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVNb2Rl
bC5FdmVudHMuQ29uc29sZUNsZWFyZWQsIHRoaXMuX2NvbnNvbGVDbGVhcmVkLCB0aGlzKTsKQEAg
LTExNSw3ICsxMTUsNyBAQCBXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQ29uc29sZU1lc3NhZ2VI
ZWxwZXIucHJvdG90eXBlID0gewogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3By
ZXNlbnRhdGlvbkNvbnNvbGVNZXNzYWdlcy5sZW5ndGg7ICsraSkKICAgICAgICAgICAgIHRoaXMu
X3ByZXNlbnRhdGlvbkNvbnNvbGVNZXNzYWdlc1tpXS5kaXNwb3NlKCk7CiAgICAgICAgIHRoaXMu
X3ByZXNlbnRhdGlvbkNvbnNvbGVNZXNzYWdlcyA9IFtdOwotICAgICAgICB2YXIgdWlTb3VyY2VD
b2RlcyA9IHRoaXMuX3VpU291cmNlQ29kZVByb2plY3QudWlTb3VyY2VDb2RlcygpOworICAgICAg
ICB2YXIgdWlTb3VyY2VDb2RlcyA9IHRoaXMuX3VpU291cmNlQ29kZVByb3ZpZGVyLnVpU291cmNl
Q29kZXMoKTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxlbmd0
aDsgKytpKQogICAgICAgICAgICAgdWlTb3VyY2VDb2Rlc1tpXS5jb25zb2xlTWVzc2FnZXNDbGVh
cmVkKCk7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMKaW5kZXggZGQwYThhYjQzNTEwODM1
YzVjNTgzZDlkYmRjNDc3ZjcxYzFlZjQxYi4uOGUxZmY1OTQ0MDc5MmI2ZDBkMjNlODU1OWYwMTMx
NjZlYzA3MjI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMKQEAgLTMwLDcgKzMwLDkgQEAKIAog
LyoqCiAgKiBAY29uc3RydWN0b3IKLSAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuU2NyaXB0TWFw
cGluZ30KKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuT2JqZWN0fQorICogQGltcGxlbWVudHMg
e1dlYkluc3BlY3Rvci5Tb3VyY2VNYXBwaW5nfQorICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGVQcm92aWRlcn0KICAqLwogV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0
TWFwcGluZyA9IGZ1bmN0aW9uKCkKIHsKQEAgLTY3LDcgKzY5LDcgQEAgV2ViSW5zcGVjdG9yLlJl
c291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHJldHVy
biB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fQogICAgICAqLwotICAgIHVpU291
cmNlQ29kZUxpc3Q6IGZ1bmN0aW9uKCkKKyAgICB1aVNvdXJjZUNvZGVzOiBmdW5jdGlvbigpCiAg
ICAgewogICAgICAgICB2YXIgcmVzdWx0ID0gW107CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgdGhpcy5fcmF3U291cmNlQ29kZXMubGVuZ3RoOyArK2kpIHsKQEAgLTE0NCw3ICsxNDYsNyBA
QCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICBf
dWlTb3VyY2VDb2RlQWRkZWQ6IGZ1bmN0aW9uKHJhd1NvdXJjZUNvZGUsIHVpU291cmNlQ29kZSkK
ICAgICB7CiAgICAgICAgIHRoaXMuX3Jhd1NvdXJjZUNvZGVGb3JVSVNvdXJjZUNvZGUucHV0KHVp
U291cmNlQ29kZSwgcmF3U291cmNlQ29kZSk7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TY3JpcHRNYXBwaW5nLkV2ZW50cy5VSVNvdXJjZUNvZGVB
ZGRlZCwgdWlTb3VyY2VDb2RlKTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVB
ZGRlZCwgdWlTb3VyY2VDb2RlKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xNjEsNyArMTYzLDcg
QEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICByYXdTb3VyY2VDb2RlLl9zY3JpcHRzW2ldLnNldFNvdXJjZU1hcHBpbmcodGhpcyk7
CiAKICAgICAgICAgdmFyIGRhdGEgPSB7IG9sZFVJU291cmNlQ29kZTogb2xkVUlTb3VyY2VDb2Rl
LCB1aVNvdXJjZUNvZGU6IHVpU291cmNlQ29kZSB9OwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuU2NyaXB0TWFwcGluZy5FdmVudHMuVUlTb3VyY2VD
b2RlUmVwbGFjZWQsIGRhdGEpOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZVJl
cGxhY2VkLCBkYXRhKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xNzEsNyArMTczLDcgQEAgV2Vi
SW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgX3VpU291
cmNlQ29kZVJlbW92ZWQ6IGZ1bmN0aW9uKHJhd1NvdXJjZUNvZGUsIHVpU291cmNlQ29kZSkKICAg
ICB7CiAgICAgICAgIHRoaXMuX3Jhd1NvdXJjZUNvZGVGb3JVSVNvdXJjZUNvZGUucmVtb3ZlKHVp
U291cmNlQ29kZSk7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYklu
c3BlY3Rvci5TY3JpcHRNYXBwaW5nLkV2ZW50cy5VSVNvdXJjZUNvZGVSZW1vdmVkLCB1aVNvdXJj
ZUNvZGUpOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZVJlbW92ZWQsIHVpU291
cmNlQ29kZSk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMjAwLDQgKzIwMiw0IEBAIFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgIH0KIH0KIAotV2Vi
SW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX19wcm90b19fID0gV2Vi
SW5zcGVjdG9yLlNjcmlwdE1hcHBpbmcucHJvdG90eXBlOworV2ViSW5zcGVjdG9yLlJlc291cmNl
U2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5w
cm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Lmpz
CmluZGV4IGU4Y2VmYTMzMWQ2Y2IyNWYxNzljY2RiYTI0MjZhMTEwNDU2NmQyZmEuLmRlOWQ5MzNk
OTNlNjM5MWFiOWNlNmMyM2VkMWVlZWI0MmZkMTJkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzCkBAIC0xODgsNyArMTg4LDYgQEAgV2ViSW5zcGVj
dG9yLlNjcmlwdC5wcm90b3R5cGUgPSB7CiAKIC8qKgogICogQGNvbnN0cnVjdG9yCi0gKiBAaW1w
bGVtZW50cyB7V2ViSW5zcGVjdG9yLkxpdmVMb2NhdGlvbn0KICAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLlNjcmlwdH0gc2NyaXB0CiAgKiBAcGFyYW0ge0RlYnVnZ2VyQWdlbnQuTG9jYXRpb259IHJh
d0xvY2F0aW9uCiAgKiBAcGFyYW0ge2Z1bmN0aW9uKFdlYkluc3BlY3Rvci5VSUxvY2F0aW9uKToo
Ym9vbGVhbnx1bmRlZmluZWQpfSB1cGRhdGVEZWxlZ2F0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRNYXBwaW5nLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRNYXBwaW5nLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzMjgwNjkzYTBkNjMxZDExMGI5MTFmOTU1Njg1YjJhYmNkOWM0Y2FkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0TWFwcGluZy5qcworKysgL2Rldi9udWxsCkBA
IC0xLDEyNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0g
KiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0g
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCi0gKiBAcGFyYW0ge251bWJlcn0gbGluZU51
bWJlcgotICogQHBhcmFtIHtudW1iZXJ9IGNvbHVtbk51bWJlcgotICovCi1XZWJJbnNwZWN0b3Iu
VUlMb2NhdGlvbiA9IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgbGluZU51bWJlciwgY29sdW1uTnVt
YmVyKQotewotICAgIHRoaXMudWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlOwotICAgIHRoaXMu
bGluZU51bWJlciA9IGxpbmVOdW1iZXI7Ci0gICAgdGhpcy5jb2x1bW5OdW1iZXIgPSBjb2x1bW5O
dW1iZXI7Ci19Ci0KLVdlYkluc3BlY3Rvci5VSUxvY2F0aW9uLnByb3RvdHlwZSA9IHsKLSAgICAv
KioKLSAgICAgKiBAcmV0dXJuIHtEZWJ1Z2dlckFnZW50LkxvY2F0aW9ufQotICAgICAqLwotICAg
IHVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICByZXR1
cm4gdGhpcy51aVNvdXJjZUNvZGUudWlMb2NhdGlvblRvUmF3TG9jYXRpb24odGhpcy5saW5lTnVt
YmVyLCB0aGlzLmNvbHVtbk51bWJlcik7Ci0gICAgfQotfQotCi0vKioKLSAqIEBpbnRlcmZhY2UK
LSAqLwotV2ViSW5zcGVjdG9yLkxpdmVMb2NhdGlvbiA9IGZ1bmN0aW9uKCkKLXsKLX0KLQotV2Vi
SW5zcGVjdG9yLkxpdmVMb2NhdGlvbi5wcm90b3R5cGUgPSB7Ci0gICAgdXBkYXRlOiBmdW5jdGlv
bihyYXdMb2NhdGlvbikgeyB9LAotCi0gICAgZGlzcG9zZTogZnVuY3Rpb24oKSB7IH0KLX0KLQot
LyoqCi0gKiBAaW50ZXJmYWNlCi0gKi8KLVdlYkluc3BlY3Rvci5Tb3VyY2VNYXBwaW5nID0gZnVu
Y3Rpb24oKQotewotfQotCi1XZWJJbnNwZWN0b3IuU291cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7
Ci0gICAgLyoqCi0gICAgICogQHBhcmFtIHtEZWJ1Z2dlckFnZW50LkxvY2F0aW9ufSByYXdMb2Nh
dGlvbgotICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5VSUxvY2F0aW9ufQotICAgICAqLwot
ICAgIHJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uOiBmdW5jdGlvbihyYXdMb2NhdGlvbikgeyB9LAot
Ci0gICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNv
dXJjZUNvZGUKLSAgICAgKiBAcGFyYW0ge251bWJlcn0gbGluZU51bWJlcgotICAgICAqIEBwYXJh
bSB7bnVtYmVyfSBjb2x1bW5OdW1iZXIKLSAgICAgKiBAcmV0dXJuIHtEZWJ1Z2dlckFnZW50Lkxv
Y2F0aW9ufQotICAgICAqLwotICAgIHVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uOiBmdW5jdGlvbih1
aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikgeyB9Ci19Ci0KLS8qKgotICog
QGNvbnN0cnVjdG9yCi0gKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KLSAqIEBpbXBs
ZW1lbnRzIHtXZWJJbnNwZWN0b3IuU291cmNlTWFwcGluZ30KLSAqLwotV2ViSW5zcGVjdG9yLlNj
cmlwdE1hcHBpbmcgPSBmdW5jdGlvbigpCi17Ci19Ci0KLVdlYkluc3BlY3Rvci5TY3JpcHRNYXBw
aW5nLkV2ZW50cyA9IHsKLSAgICBVSVNvdXJjZUNvZGVBZGRlZDogIlVJU291cmNlQ29kZUFkZGVk
IiwKLSAgICBVSVNvdXJjZUNvZGVSZXBsYWNlZDogIlVJU291cmNlQ29kZVJlcGxhY2VkIiwKLSAg
ICBVSVNvdXJjZUNvZGVSZW1vdmVkOiAiVUlTb3VyY2VDb2RlUmVtb3ZlZCIKLX0KLQotV2ViSW5z
cGVjdG9yLlNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewotICAgIC8qKgotICAgICAqIEBwYXJh
bSB7RGVidWdnZXJBZ2VudC5Mb2NhdGlvbn0gcmF3TG9jYXRpb24KLSAgICAgKiBAcmV0dXJuIHtX
ZWJJbnNwZWN0b3IuVUlMb2NhdGlvbn0KLSAgICAgKi8KLSAgICByYXdMb2NhdGlvblRvVUlMb2Nh
dGlvbjogZnVuY3Rpb24ocmF3TG9jYXRpb24pIHt9LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKLSAgICAgKiBAcGFyYW0g
e251bWJlcn0gbGluZU51bWJlcgotICAgICAqIEBwYXJhbSB7bnVtYmVyfSBjb2x1bW5OdW1iZXIK
LSAgICAgKiBAcmV0dXJuIHtEZWJ1Z2dlckFnZW50LkxvY2F0aW9ufQotICAgICAqLwotICAgIHVp
TG9jYXRpb25Ub1Jhd0xvY2F0aW9uOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIs
IGNvbHVtbk51bWJlcikge30sCi0KLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtBcnJheS48V2Vi
SW5zcGVjdG9yLlVJU291cmNlQ29kZT59Ci0gICAgICovCi0gICAgdWlTb3VyY2VDb2RlTGlzdDog
ZnVuY3Rpb24oKSB7fQotfQotCi1XZWJJbnNwZWN0b3IuU2NyaXB0TWFwcGluZy5wcm90b3R5cGUu
X19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFNuaXBwZXRNb2RlbC5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1vZGVsLmpz
CmluZGV4IGRkMjVjMzU3YTQxYjcyNTE4YjA5NDkwMmI4ODI5Y2Q4OThhMTRlZTAuLmRkMDI4YTEy
YWNjNTVjM2Q0MzU5NTI0YmM3YjFhY2NkNDJjOThjNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1vZGVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1vZGVsLmpzCkBAIC0x
NjksNyArMTY5LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUg
PSB7CiAgICAgLyoqCiAgICAgICogQHJldHVybiB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGU+fQogICAgICAqLwotICAgIF91aVNvdXJjZUNvZGVMaXN0OiBmdW5jdGlvbigpCisgICAg
X3VpU291cmNlQ29kZXM6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHZhciByZXN1bHQgPSB0
aGlzLl91aVNvdXJjZUNvZGVGb3JTbmlwcGV0LnZhbHVlcygpOwogICAgICAgICByZXN1bHQgPSBy
ZXN1bHQuY29uY2F0KHRoaXMuX3JlbGVhc2VkVUlTb3VyY2VDb2RlcygpKTsKQEAgLTI5Miw4ICsy
OTIsMTAgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUuX19wcm90
b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3QKIAogLyoqCiAgKiBAY29uc3RydWN0b3IK
KyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuT2JqZWN0fQorICogQGltcGxlbWVudHMge1dlYklu
c3BlY3Rvci5Tb3VyY2VNYXBwaW5nfQorICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGVQcm92aWRlcn0KICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRN
b2RlbH0gc2NyaXB0U25pcHBldE1vZGVsCi0gKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlNjcmlw
dE1hcHBpbmd9CiAgKi8KIFdlYkluc3BlY3Rvci5TbmlwcGV0U2NyaXB0TWFwcGluZyA9IGZ1bmN0
aW9uKHNjcmlwdFNuaXBwZXRNb2RlbCkKIHsKQEAgLTMyNCw5ICszMjYsOSBAQCBXZWJJbnNwZWN0
b3IuU25pcHBldFNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBy
ZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlPn0KICAgICAgKi8KLSAgICB1
aVNvdXJjZUNvZGVMaXN0OiBmdW5jdGlvbigpCisgICAgdWlTb3VyY2VDb2RlczogZnVuY3Rpb24o
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3NjcmlwdFNuaXBwZXRNb2RlbC5fdWlTb3Vy
Y2VDb2RlTGlzdCgpOworICAgICAgICByZXR1cm4gdGhpcy5fc2NyaXB0U25pcHBldE1vZGVsLl91
aVNvdXJjZUNvZGVzKCk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMzUxLDcgKzM1Myw3IEBAIFdl
Ykluc3BlY3Rvci5TbmlwcGV0U2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICovCiAg
ICAgX2ZpcmVVSVNvdXJjZUNvZGVBZGRlZDogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQogICAgIHsK
LSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlNjcmlw
dE1hcHBpbmcuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB1aVNvdXJjZUNvZGUpOworICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
UHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB1aVNvdXJjZUNvZGUpOwogICAgIH0s
CiAKICAgICAvKioKQEAgLTM1OSw3ICszNjEsNyBAQCBXZWJJbnNwZWN0b3IuU25pcHBldFNjcmlw
dE1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAqLwogICAgIF9maXJlVUlTb3VyY2VDb2RlUmVt
b3ZlZDogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQogICAgIHsKLSAgICAgICAgdGhpcy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlNjcmlwdE1hcHBpbmcuRXZlbnRzLlVJU291
cmNlQ29kZVJlbW92ZWQsIHVpU291cmNlQ29kZSk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlT
b3VyY2VDb2RlUmVtb3ZlZCwgdWlTb3VyY2VDb2RlKTsKICAgICB9LAogCiAgICAgcmVzZXQ6IGZ1
bmN0aW9uKCkKQEAgLTM2OCw3ICszNzAsNyBAQCBXZWJJbnNwZWN0b3IuU25pcHBldFNjcmlwdE1h
cHBpbmcucHJvdG90eXBlID0gewogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLlNuaXBwZXRTY3Jp
cHRNYXBwaW5nLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuU2NyaXB0TWFwcGlu
Zy5wcm90b3R5cGU7CitXZWJJbnNwZWN0b3IuU25pcHBldFNjcmlwdE1hcHBpbmcucHJvdG90eXBl
Ll9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlOwogCiAvKioKICAqIEBj
b25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY3JpcHRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nj
cmlwdHNQYW5lbC5qcwppbmRleCBlOGY5YWViZmNiNTlkMDM2MzE2NGQ3YWI0MGM1MTcwYWY5YTZi
YzAwLi5lZjkwZWM5ZjE1NWRiZjdmMTkzNTU2OWE3NzhhMmZmYmJjNTJlZjQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAt
MTY5LDkgKzE2OSw5IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbihzY3Jp
cHRNYXBwaW5nRm9yVGVzdCkKICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5HbG9iYWxPYmplY3RD
bGVhcmVkLCB0aGlzLl9yZXNldC5iaW5kKHRoaXMsIGZhbHNlKSk7CiAgICAgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2Rl
bC5FdmVudHMuQnJlYWtwb2ludHNBY3RpdmVTdGF0ZUNoYW5nZWQsIHRoaXMuX2JyZWFrcG9pbnRz
QWN0aXZlU3RhdGVDaGFuZ2VkLCB0aGlzKTsKIAotICAgIHRoaXMuX3NjcmlwdE1hcHBpbmcuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU2NyaXB0TWFwcGluZy5FdmVudHMuVUlTb3VyY2VD
b2RlQWRkZWQsIHRoaXMuX2hhbmRsZVVJU291cmNlQ29kZUFkZGVkLCB0aGlzKTsKLSAgICB0aGlz
Ll9zY3JpcHRNYXBwaW5nLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNjcmlwdE1hcHBp
bmcuRXZlbnRzLlVJU291cmNlQ29kZVJlcGxhY2VkLCB0aGlzLl91aVNvdXJjZUNvZGVSZXBsYWNl
ZCwgdGhpcyk7Ci0gICAgdGhpcy5fc2NyaXB0TWFwcGluZy5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5TY3JpcHRNYXBwaW5nLkV2ZW50cy5VSVNvdXJjZUNvZGVSZW1vdmVkLCB0aGlzLl91
aVNvdXJjZUNvZGVSZW1vdmVkLCB0aGlzKTsKKyAgICB0aGlzLl9zY3JpcHRNYXBwaW5nLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNv
dXJjZUNvZGVBZGRlZCwgdGhpcy5faGFuZGxlVUlTb3VyY2VDb2RlQWRkZWQsIHRoaXMpOworICAg
IHRoaXMuX3NjcmlwdE1hcHBpbmcuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3Vy
Y2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZVJlcGxhY2VkLCB0aGlzLl91aVNvdXJj
ZUNvZGVSZXBsYWNlZCwgdGhpcyk7CisgICAgdGhpcy5fc2NyaXB0TWFwcGluZy5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VD
b2RlUmVtb3ZlZCwgdGhpcy5fdWlTb3VyY2VDb2RlUmVtb3ZlZCwgdGhpcyk7CiAKICAgICB2YXIg
ZW5hYmxlRGVidWdnZXIgPSAhQ2FwYWJpbGl0aWVzLmRlYnVnZ2VyQ2F1c2VzUmVjb21waWxhdGlv
biB8fCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZGVidWdnZXJFbmFibGVkLmdldCgpOwogICAgIGlm
IChlbmFibGVEZWJ1Z2dlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2NyaXB0c1NlYXJjaFNjb3BlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHRzU2VhcmNoU2NvcGUuanMKaW5kZXggOTZhMTdhNWViYmQyYWQ1OWU1
YWIwY2FiODA1ZDNlOGEyNmVkNDYyNS4uODAzN2NiNjZjMDBjOTUwNGUzZTRlYmVkMjUzMDU5ZGM2
Zjc1ZTNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHRzU2VhcmNoU2NvcGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRzU2VhcmNoU2NvcGUuanMKQEAgLTI5LDE0ICsyOSwxNCBAQAogLyoqCiAgKiBA
Y29uc3RydWN0b3IKICAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuU2VhcmNoU2NvcGV9Ci0g
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm9qZWN0fSB1aVNvdXJjZUNvZGVQ
cm9qZWN0CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlcn0gdWlT
b3VyY2VDb2RlUHJvdmlkZXIKICAqLwotV2ViSW5zcGVjdG9yLlNjcmlwdHNTZWFyY2hTY29wZSA9
IGZ1bmN0aW9uKHVpU291cmNlQ29kZVByb2plY3QpCitXZWJJbnNwZWN0b3IuU2NyaXB0c1NlYXJj
aFNjb3BlID0gZnVuY3Rpb24odWlTb3VyY2VDb2RlUHJvdmlkZXIpCiB7CiAgICAgLy8gRklYTUU6
IEFkZCB0aXRsZSBvbmNlIGl0IGlzIHVzZWQgYnkgc2VhcmNoIGNvbnRyb2xsZXIuCiAgICAgV2Vi
SW5zcGVjdG9yLlNlYXJjaFNjb3BlLmNhbGwodGhpcykKICAgICB0aGlzLl9zZWFyY2hJZCA9IDA7
Ci0gICAgdGhpcy5fdWlTb3VyY2VDb2RlUHJvamVjdCA9IHVpU291cmNlQ29kZVByb2plY3Q7Cisg
ICAgdGhpcy5fdWlTb3VyY2VDb2RlUHJvdmlkZXIgPSB1aVNvdXJjZUNvZGVQcm92aWRlcjsKIH0K
IAogV2ViSW5zcGVjdG9yLlNjcmlwdHNTZWFyY2hTY29wZS5wcm90b3R5cGUgPSB7CkBAIC0xMTUs
NyArMTE1LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNTZWFyY2hTY29wZS5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICByZXR1cm4gYS51cmwubG9jYWxlQ29tcGFyZShiLnVybCk7ICAgCiAgICAg
ICAgIH0KICAgICAgICAgCi0gICAgICAgIHZhciB1aVNvdXJjZUNvZGVzID0gdGhpcy5fdWlTb3Vy
Y2VDb2RlUHJvamVjdC51aVNvdXJjZUNvZGVzKCk7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGVz
ID0gdGhpcy5fdWlTb3VyY2VDb2RlUHJvdmlkZXIudWlTb3VyY2VDb2RlcygpOwogICAgICAgICAK
ICAgICAgICAgdWlTb3VyY2VDb2RlcyA9IHVpU291cmNlQ29kZXMuZmlsdGVyKGZpbHRlck91dEFu
b255bW91cyk7CiAgICAgICAgIHVpU291cmNlQ29kZXMuc29ydChjb21wYXJhdG9yKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlTWFwcGluZy5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlTWFwcGluZy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40MzJhNzZkYjkwYjBkYjg0NDEyY2ZmYzA3OWI1ZDk1MDAxN2U0ZjgzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VN
YXBwaW5nLmpzCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKioKKyAqIEBpbnRlcmZhY2UKKyAqLworV2ViSW5z
cGVjdG9yLlNvdXJjZU1hcHBpbmcgPSBmdW5jdGlvbigpCit7Cit9CisKK1dlYkluc3BlY3Rvci5T
b3VyY2VNYXBwaW5nLnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0RlYnVn
Z2VyQWdlbnQuTG9jYXRpb259IHJhd0xvY2F0aW9uCisgICAgICogQHJldHVybiB7V2ViSW5zcGVj
dG9yLlVJTG9jYXRpb259CisgICAgICovCisgICAgcmF3TG9jYXRpb25Ub1VJTG9jYXRpb246IGZ1
bmN0aW9uKHJhd0xvY2F0aW9uKSB7IH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQorICAgICAqIEBwYXJhbSB7bnVtYmVy
fSBsaW5lTnVtYmVyCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGNvbHVtbk51bWJlcgorICAgICAq
IEByZXR1cm4ge0RlYnVnZ2VyQWdlbnQuTG9jYXRpb259CisgICAgICovCisgICAgdWlMb2NhdGlv
blRvUmF3TG9jYXRpb246IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgbGluZU51bWJlciwgY29sdW1u
TnVtYmVyKSB7IH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVUlTb3VyY2VDb2RlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9VSVNvdXJjZUNvZGUuanMKaW5kZXggZDA2NmFhN2RmZDBmZGMxNmUwYzMwNDJjMWQ3OTFhYWRl
YWZhYjc4ZC4uOTc4MGM2Y2U2N2E1YjIzYjcwNWUyNjk3NWMyNzc5OWM1ZTFhZWVkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMK
QEAgLTIxMiw3ICsyMTIsNyBAQCBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZSA9
IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuTGl2ZUxv
Y2F0aW9ufSBsaXZlTG9jYXRpb24KKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TY3JpcHQu
TG9jYXRpb259IGxpdmVMb2NhdGlvbgogICAgICAqLwogICAgIGFkZExpdmVMb2NhdGlvbjogZnVu
Y3Rpb24obGl2ZUxvY2F0aW9uKQogICAgIHsKQEAgLTIyMCw3ICsyMjAsNyBAQCBXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuTGl2ZUxvY2F0aW9ufSBsaXZlTG9jYXRpb24KKyAgICAgKiBA
cGFyYW0ge1dlYkluc3BlY3Rvci5TY3JpcHQuTG9jYXRpb259IGxpdmVMb2NhdGlvbgogICAgICAq
LwogICAgIHJlbW92ZUxpdmVMb2NhdGlvbjogZnVuY3Rpb24obGl2ZUxvY2F0aW9uKQogICAgIHsK
QEAgLTI4MSwxMSArMjgxLDQyIEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBl
Ll9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlOwogLyoqCiAgKiBAaW50
ZXJmYWNlCiAgKi8KLVdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm9qZWN0ID0gZnVuY3Rpb24o
KQorV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyID0gZnVuY3Rpb24oKQogewogfQog
Ci1XZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvamVjdC5wcm90b3R5cGUgPSB7Ci0gICAgLyoq
IEByZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlPn0gKi8gCi0gICAgdWlT
b3VyY2VDb2RlczogZnVuY3Rpb24oKSB7IH0KK1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92
aWRlci5FdmVudHMgPSB7CisgICAgVUlTb3VyY2VDb2RlQWRkZWQ6ICJVSVNvdXJjZUNvZGVBZGRl
ZCIsCisgICAgVUlTb3VyY2VDb2RlUmVwbGFjZWQ6ICJVSVNvdXJjZUNvZGVSZXBsYWNlZCIsCisg
ICAgVUlTb3VyY2VDb2RlUmVtb3ZlZDogIlVJU291cmNlQ29kZVJlbW92ZWQiCit9CisKK1dlYklu
c3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAg
ICogQHJldHVybiB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fQorICAgICAqLwor
ICAgIHVpU291cmNlQ29kZXM6IGZ1bmN0aW9uKCkge30KK30KKworLyoqCisgKiBAY29uc3RydWN0
b3IKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCisg
KiBAcGFyYW0ge251bWJlcn0gbGluZU51bWJlcgorICogQHBhcmFtIHtudW1iZXJ9IGNvbHVtbk51
bWJlcgorICovCitXZWJJbnNwZWN0b3IuVUlMb2NhdGlvbiA9IGZ1bmN0aW9uKHVpU291cmNlQ29k
ZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyKQoreworICAgIHRoaXMudWlTb3VyY2VDb2RlID0g
dWlTb3VyY2VDb2RlOworICAgIHRoaXMubGluZU51bWJlciA9IGxpbmVOdW1iZXI7CisgICAgdGhp
cy5jb2x1bW5OdW1iZXIgPSBjb2x1bW5OdW1iZXI7Cit9CisKK1dlYkluc3BlY3Rvci5VSUxvY2F0
aW9uLnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtEZWJ1Z2dlckFnZW50
LkxvY2F0aW9ufQorICAgICAqLworICAgIHVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy51aVNvdXJjZUNvZGUudWlMb2NhdGlvblRv
UmF3TG9jYXRpb24odGhpcy5saW5lTnVtYmVyLCB0aGlzLmNvbHVtbk51bWJlcik7CisgICAgfQog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQu
cXJjIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCmluZGV4
IDRjYTJjYjI2NWYwYTI2OWMwYWQ0MmQxMzA5N2JmZGYwYWRiOGUwNDAuLjdhN2UxMTMzNjMzZjNi
YjVjZjE2MDk2MzQyMzdmOWRkYTUyOTQwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKQEAgLTEzMSw3ICsxMzEsNiBAQAogICAgIDxmaWxlPlNj
cmlwdC5qczwvZmlsZT4KICAgICA8ZmlsZT5TY3JpcHRGb3JtYXR0ZXIuanM8L2ZpbGU+CiAgICAg
PGZpbGU+U2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzPC9maWxlPgotICAgIDxmaWxlPlNjcmlwdE1h
cHBpbmcuanM8L2ZpbGU+CiAgICAgPGZpbGU+U2NyaXB0U25pcHBldE1vZGVsLmpzPC9maWxlPgog
ICAgIDxmaWxlPlNjcmlwdHNQYW5lbC5qczwvZmlsZT4KICAgICA8ZmlsZT5TY3JpcHRzTmF2aWdh
dG9yLmpzPC9maWxlPgpAQCAtMTUxLDYgKzE1MCw3IEBACiAgICAgPGZpbGU+U291cmNlRnJhbWUu
anM8L2ZpbGU+CiAgICAgPGZpbGU+U291cmNlSFRNTFRva2VuaXplci5qczwvZmlsZT4KICAgICA8
ZmlsZT5Tb3VyY2VKYXZhU2NyaXB0VG9rZW5pemVyLmpzPC9maWxlPgorICAgIDxmaWxlPlNvdXJj
ZU1hcHBpbmcuanM8L2ZpbGU+CiAgICAgPGZpbGU+U291cmNlVG9rZW5pemVyLmpzPC9maWxlPgog
ICAgIDxmaWxlPlNwZWN0cnVtLmpzPC9maWxlPgogICAgIDxmaWxlPlNwbGl0Vmlldy5qczwvZmls
ZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmh0bWwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5o
dG1sCmluZGV4IDdlZTcwYmQ4MjcwODI3YWEwYTFhZGQzNmUzMDAxMzYzN2E1ZjUyZmEuLmNiMGYz
MjllZTEwYWY0OWYxYWY4ZDVmZjcwZjc1MWQ1ZDgzYjZkZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbApAQCAtMTc2LDcgKzE3Niw3
IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iSGVh
cFNuYXBzaG90RGF0YUdyaWRzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJIZWFwU25hcHNob3RWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJEZWJ1Z2dlck1vZGVsLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTY3JpcHRNYXBwaW5n
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJT
b3VyY2VNYXBwaW5nLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJVSVNvdXJjZUNvZGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9IkphdmFTY3JpcHRTb3VyY2UuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkxpbmtpZmllci5qcyI+PC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggZDBmNjgxZGJkYTIxNTlhMDZhMjZhMjNjMjVlODI3MjhlOTExNzYzNy4uNTkx
NjcxNWFmYWQ1M2JmZjZlNWQ5OWI0NjBlMzQzMWY0YWM4M2VjOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDEyLTA1LTE2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNwbGl0IFNjcmlwdE1hcHBpbmcgaW50byBVSVNvdXJj
ZUNvZGVQcm92aWRlciBhbmQgU291cmNlTWFwcGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2NjE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb21waWxlci1z
Y3JpcHQtbWFwcGluZy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRz
LXBhbmVsLmh0bWw6CisKIDIwMTItMDUtMTYgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTW92ZSBlZGl0L3NhdmUgc2NyaXB0
IHNvdXJjZSBsb2dpYyB0byBKYXZhU2NyaXB0U291cmNlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29tcGlsZXItc2NyaXB0LW1hcHBpbmcuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbXBpbGVyLXNjcmlwdC1tYXBwaW5nLmh0
bWwKaW5kZXggNDc4Zjk1ZTJjZjIwOGFkYjU4MzJlMDk1NzY0ODQ3Y2VmMWVkZmNiNy4uNTdlM2Vi
MWI2MzRlZWI2OGUyZGNkZmU4MGFhNGU0YTg5ZTczNGFmMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29tcGlsZXItc2NyaXB0LW1hcHBpbmcuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb21waWxlci1zY3JpcHQtbWFwcGlu
Zy5odG1sCkBAIC0xMzAsNyArMTMwLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICBz
Y3JpcHQuc291cmNlTWFwVVJMID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVz
b3VyY2VzL3NvdXJjZS1tYXAuanNvbiI7CiAgICAgICAgICAgICBtYXBwaW5nLmFkZFNjcmlwdChz
Y3JpcHQpOwogCi0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlTGlzdCA9IG1hcHBpbmcudWlT
b3VyY2VDb2RlTGlzdCgpOworICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZUxpc3QgPSBtYXBw
aW5nLnVpU291cmNlQ29kZXMoKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1
YWxzKDIsIHVpU291cmNlQ29kZUxpc3QubGVuZ3RoKTsKICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0RXF1YWxzKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNl
cy9zb3VyY2UxLmpzIiwgdWlTb3VyY2VDb2RlTGlzdFswXS51cmwpOwogICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3Iv
cmVzb3VyY2VzL3NvdXJjZTIuanMiLCB1aVNvdXJjZUNvZGVMaXN0WzFdLnVybCk7CkBAIC0xNzIs
NyArMTcyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICBzY3JpcHQuc291cmNlTWFw
VVJMID0gImRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsIiArIGJ0b2EoSlNPTi5zdHJpbmdp
Znkoc291cmNlTWFwKSk7CiAgICAgICAgICAgICBtYXBwaW5nLmFkZFNjcmlwdChzY3JpcHQpOwog
Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlTGlzdCA9IG1hcHBpbmcudWlTb3VyY2VDb2Rl
TGlzdCgpOworICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZUxpc3QgPSBtYXBwaW5nLnVpU291
cmNlQ29kZXMoKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIHVp
U291cmNlQ29kZUxpc3QubGVuZ3RoKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
RXF1YWxzKCJzb3VyY2UuanMiLCB1aVNvdXJjZUNvZGVMaXN0WzBdLnVybCk7CiAKQEAgLTE5Myw3
ICsxOTMsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0
aW5ncy5zb3VyY2VNYXBzRW5hYmxlZC5zZXQodHJ1ZSk7CiAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNb2RlbC5fcmVzZXQoKTsKICAgICAgICAgICAgIHZhciBkZWJ1Z2dlclNjcmlw
dE1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2NyaXB0TWFwcGluZygpOwotICAg
ICAgICAgICAgZGVidWdnZXJTY3JpcHRNYXBwaW5nLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLlNjcmlwdE1hcHBpbmcuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB1aVNvdXJjZUNvZGVB
ZGRlZCk7CisgICAgICAgICAgICBkZWJ1Z2dlclNjcmlwdE1hcHBpbmcuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFk
ZGVkLCB1aVNvdXJjZUNvZGVBZGRlZCk7CiAKICAgICAgICAgICAgIHZhciBzY3JpcHQgPSBJbnNw
ZWN0b3JUZXN0LmNyZWF0ZVNjcmlwdE1vY2soImNvbXBpbGVkLmpzIiwgMCwgMCwgdHJ1ZSwgIiIp
OwogICAgICAgICAgICAgc2NyaXB0LnNvdXJjZU1hcFVSTCA9ICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvaW5zcGVjdG9yL3Jlc291cmNlcy9zb3VyY2UtbWFwLmpzb25fIjsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sCmluZGV4IDI2YzM4Nzk5
MGE1N2FiMzM1OTdiNmUyYTk2MmQwMWMzMWUwNDNkOTcuLjQyNTc4MzcwMjNmNzFkYTBhNTBhOGMy
MGNhMjM5YzkyNjJjY2RjY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3NjcmlwdHMtcGFuZWwuaHRtbApAQCAtMjksNyArMjksNyBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgbW9kZWwuX2FkZFVJU291cmNlQ29kZSA9IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkK
ICAgICAgICAgewogICAgICAgICAgICAgdWlTb3VyY2VDb2Rlcy5wdXNoKHVpU291cmNlQ29kZSk7
Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3Iu
U2NyaXB0TWFwcGluZy5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHVpU291cmNlQ29kZSk7Cisg
ICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVUlT
b3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB1aVNvdXJjZUNvZGUp
OwogICAgICAgICB9CiAgICAgICAgIG1vZGVsLl9yZXNldCA9IGZ1bmN0aW9uKHByZXNlcnZlZEl0
ZW1zKQogICAgICAgICB7CkBAIC00MSw3ICs0MSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAg
ICAgICAgdWlTb3VyY2VDb2Rlcy5yZW1vdmUob2xkVUlTb3VyY2VDb2RlKTsKICAgICAgICAgICAg
IHVpU291cmNlQ29kZXMucHVzaCh1aVNvdXJjZUNvZGUpOwogICAgICAgICAgICAgdmFyIGRhdGEg
PSB7IG9sZFVJU291cmNlQ29kZTogb2xkVUlTb3VyY2VDb2RlLCB1aVNvdXJjZUNvZGU6IHVpU291
cmNlQ29kZSB9OwotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2Vi
SW5zcGVjdG9yLlNjcmlwdE1hcHBpbmcuRXZlbnRzLlVJU291cmNlQ29kZVJlcGxhY2VkLCBkYXRh
KTsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlUmVwbGFjZWQsIGRhdGEp
OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtb2RlbDsKICAgICB9Cg==
</data>
<flag name="review"
          id="148513"
          type_id="1"
          status="+"
          setter="vsevik"
    />
    <flag name="commit-queue"
          id="148516"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>