<?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>57949</bug_id>
          
          <creation_ts>2011-04-06 08:00:40 -0700</creation_ts>
          <short_desc>Web Inspector: get rid of Breakpoint.js.</short_desc>
          <delta_ts>2011-04-07 08:47:49 -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="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>podivilov</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>380365</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-06 08:00:40 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380367</commentid>
    <comment_count>1</comment_count>
      <attachid>88418</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-06 08:02:27 -0700</bug_when>
    <thetext>Created attachment 88418
[PATCH] Work in progress.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381250</commentid>
    <comment_count>2</comment_count>
      <attachid>88611</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-07 05:40:51 -0700</bug_when>
    <thetext>Created attachment 88611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381266</commentid>
    <comment_count>3</comment_count>
      <attachid>88611</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-04-07 06:09:26 -0700</bug_when>
    <thetext>Comment on attachment 88611
Patch

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

&gt; Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:323
&gt; +            var scriptLocation = breakpoint.location ? breakpoint.location : {lineNumber:breakpoint.lineNumber, columnNumber:0};

Here breakpoint.lineNumber may denote location in formatter script. We should not map it in that case.

&gt; Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:371
&gt; +            var pendingBreakpoints = this._breakpointsWithoutSourceFile[sourceFileId];

Please mind that sourceFileId would be undefined for all breakpoints created with the old version. When such breakpoints would be purged? Probably it&apos;s better to ignore them here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381329</commentid>
    <comment_count>4</comment_count>
      <attachid>88634</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-07 07:40:51 -0700</bug_when>
    <thetext>Created attachment 88634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381343</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-04-07 08:01:38 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=88634) [details]
&gt; Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381371</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-07 08:47:49 -0700</bug_when>
    <thetext>Committed r83176: &lt;http://trac.webkit.org/changeset/83176&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88418</attachid>
            <date>2011-04-06 08:02:27 -0700</date>
            <delta_ts>2011-04-07 05:40:39 -0700</delta_ts>
            <desc>[PATCH] Work in progress.</desc>
            <filename>bug-57949-20110406190224.patch</filename>
            <type>text/plain</type>
            <size>33956</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMwMzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyNDVmYzk4MzBjMWEzNmU0
ZTg5MDRiMmIwZjNlM2Q5ZTlmZjUzODI3Li5kNmJjMGJmOTUxZWY2ZjZkOGQwNTg4M2IxMjBjOGMw
MWEzYTQ1ZDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsNjQgQEAKIAogICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBnZXQgcmlkIG9m
IEJyZWFrcG9pbnQuanMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01Nzk0OQorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
QnJlYWtwb2ludC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Jy
ZWFrcG9pbnRzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlw
dEJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlLmFkZEJyZWFrcG9pbnQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRCcmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlw
ZS51cGRhdGVCcmVha3BvaW50LmRpZExvYWRTbmlwcGV0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5KYXZhU2NyaXB0QnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUudXBkYXRlQnJlYWtw
b2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdEJyZWFrcG9pbnRzU2lkZWJh
clBhbmUucHJvdG90eXBlLl9jb21wYXJlQnJlYWtwb2ludHMpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlck1vZGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlw
ZS5fZGVidWdnZXJXYXNEaXNhYmxlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJN
b2RlbC5wcm90b3R5cGUuc2V0QnJlYWtwb2ludC5kaWRTZXRCcmVha3BvaW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5zZXRCcmVha3BvaW50KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5zZXRCcmVha3BvaW50
QnlTb3VyY2VJZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5
cGUucmVtb3ZlQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2Rl
bC5wcm90b3R5cGUuX2JyZWFrcG9pbnRSZXNvbHZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNb2RlbC5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fcmVmcmVzaEJyZWFrcG9pbnRzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5f
dXBkYXRlQnJlYWtwb2ludHNBZnRlckxpdmVFZGl0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS50b2dnbGVGb3JtYXRTb3VyY2VGaWxl
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90
b3R5cGUuc2V0QnJlYWtwb2ludC5kaWRTZXRCcmVha3BvaW50KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5zZXRCcmVha3BvaW50KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlw
ZS5zZXRCcmVha3BvaW50RW5hYmxlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUudXBkYXRlQnJlYWtwb2ludCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUucmVtb3ZlQnJl
YWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5wcm90b3R5cGUuX2JyZWFrcG9pbnRBZGRlZC5kaWRSZXF1ZXN0U291cmNlTWFwcGluZyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUu
X2JyZWFrcG9pbnRBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50
YXRpb25Nb2RlbC5wcm90b3R5cGUuX2JyZWFrcG9pbnRSZW1vdmVkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fYnJlYWtwb2ludFJl
c29sdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZS5fcmVzdG9yZUJyZWFrcG9pbnRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fcmVzdG9yZUJyZWFrcG9pbnQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBl
Ll9zYXZlQnJlYWtwb2ludHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwucHJvdG90eXBlLl9yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJl
c2VudGF0aW9uQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9u
QnJlYWtwb2ludC5wcm90b3R5cGUuZ2V0IHNvdXJjZUZpbGUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlByZXNlbnRhdGlvbkJyZWFrcG9pbnQucHJvdG90eXBlLmdldCB1cmwpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByZXNlbnRhdGlvbkJyZWFrcG9pbnQucHJvdG90eXBlLmdldCByZXNvbHZl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQnJlYWtwb2ludC5wcm90b3R5
cGUubG9hZFNuaXBwZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VU
cmVlTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5fb25SZXNv
dXJjZVN0YXJ0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnBy
b3RvdHlwZS5fYWRkUmVzb3VyY2VUb0ZyYW1lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2JyZWFrcG9p
bnRVcGRhdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBl
LnJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKworMjAxMS0wNC0wNiAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAgV2ViIEluc3BlY3RvcjogbWlncmF0ZSBkZWJ1
Z2dlciBkb21haW4gdG8gdGhlIHVuaWZpZWQgYnJlYWtwb2ludCBsb2NhdGlvbiBub3Rpb24uCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzkyOAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggYTdlN2ZiYTI5MGJhMzAwNTQxNTcyZTk5NDJkNTVjNjE0NTM4MGJj
Yi4uYWY1OTRhYzMzOThjODBlMjEyMTA2NzhiYWU1YjgxN2IzMTE5ZmMzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtNjE0MSw3ICs2MTQxLDYgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQt
ZW5kL0F1ZGl0UnVsZXMuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQXVk
aXRzUGFuZWwuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQm90dG9tVXBQ
cm9maWxlRGF0YUdyaWRUcmVlLmpzJywKLSAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5k
L0JyZWFrcG9pbnQuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtw
b2ludE1hbmFnZXIuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtw
b2ludHNTaWRlYmFyUGFuZS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9D
YWxsU3RhY2tTaWRlYmFyUGFuZS5qcycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCmluZGV4IDRhZDU5YTg3MmM3ODY4NzUwMDAzMzYzZGJjODE3YWM2NWYz
NTIyMTUuLjc3YzE4MmMyODU0YTRlMDliNTZiMDI4MTAwNTAwZGRiY2Q1NGMwODMgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02NjYzNywxMCAr
NjY2MzcsNiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZl
UGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxCcmVha3BvaW50LmpzIgotCQkJCQk+Ci0JCQkJ
PC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250
LWVuZFxCcmVha3BvaW50TWFuYWdlci5qcyIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludC5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZDYwMmQ4MWViMzNkMThjN2M1YjE1MjgyNGYzMTlmNjNmOWM2
OTNlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnQuanMKKysrIC9kZXYvbnVs
bApAQCAtMSw0MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
ICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLVdlYkluc3BlY3Rvci5CcmVha3BvaW50ID0gZnVuY3Rpb24oaWQsIHVy
bCwgc291cmNlSUQsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9uLCBlbmFibGVk
KQotewotICAgIHRoaXMuaWQgPSBpZDsKLSAgICB0aGlzLnVybCA9IHVybDsKLSAgICB0aGlzLnNv
dXJjZUlEID0gc291cmNlSUQ7Ci0gICAgdGhpcy5saW5lTnVtYmVyID0gbGluZU51bWJlcjsKLSAg
ICB0aGlzLmNvbHVtbk51bWJlciA9IGNvbHVtbk51bWJlcjsKLSAgICB0aGlzLmNvbmRpdGlvbiA9
IGNvbmRpdGlvbjsKLSAgICB0aGlzLmVuYWJsZWQgPSBlbmFibGVkOwotICAgIHRoaXMubG9jYXRp
b25zID0gW107Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMKaW5kZXggODA4N2UzNzhlYTcyNjhm
MTYyMDk3ZTUyOThlNTQ3MjA4OWQ2NDVjYi4uZjMyMmFiNWVjYzUzOGFmYmE2YTUwN2IzZjFkOGVk
YzdlMWFjNjE3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcwpAQCAtNTMsMjQgKzUzLDE1IEBA
IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0QnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0
Iik7CiAgICAgICAgIGNoZWNrYm94LmNsYXNzTmFtZSA9ICJjaGVja2JveC1lbGVtIjsKICAgICAg
ICAgY2hlY2tib3gudHlwZSA9ICJjaGVja2JveCI7Ci0gICAgICAgIGNoZWNrYm94LmNoZWNrZWQg
PSBicmVha3BvaW50LmVuYWJsZWQ7CiAgICAgICAgIGNoZWNrYm94LmFkZEV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgdGhpcy5fYnJlYWtwb2ludENoZWNrYm94Q2xpY2tlZC5iaW5kKHRoaXMsIGJyZWFr
cG9pbnQpLCBmYWxzZSk7CiAgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY2hlY2tib3gpOwog
Ci0gICAgICAgIHZhciBkaXNwbGF5TmFtZSA9IGJyZWFrcG9pbnQudXJsID8gV2ViSW5zcGVjdG9y
LmRpc3BsYXlOYW1lRm9yVVJMKGJyZWFrcG9pbnQudXJsKSA6IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiKHByb2dyYW0pIik7Ci0gICAgICAgIHZhciBsYWJlbEVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZShkaXNwbGF5TmFtZSArICI6IiArIChicmVha3BvaW50LmxpbmVOdW1iZXIgKyAx
KSk7CisgICAgICAgIHZhciBsYWJlbEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgp
OwogICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGxhYmVsRWxlbWVudCk7CiAKICAgICAgICAg
dmFyIHNuaXBwZXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAg
ICAgIHNuaXBwZXRFbGVtZW50LmNsYXNzTmFtZSA9ICJzb3VyY2UtdGV4dCBtb25vc3BhY2UiOwog
ICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKHNuaXBwZXRFbGVtZW50KTsKLSAgICAgICAgaWYg
KGJyZWFrcG9pbnQubG9hZFNuaXBwZXQpIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZExvYWRT
bmlwcGV0KHNuaXBwZXQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc25pcHBldEVs
ZW1lbnQudGV4dENvbnRlbnQgPSBzbmlwcGV0OwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
YnJlYWtwb2ludC5sb2FkU25pcHBldChkaWRMb2FkU25pcHBldCk7Ci0gICAgICAgIH0KIAogICAg
ICAgICBlbGVtZW50Ll9kYXRhID0gYnJlYWtwb2ludDsKICAgICAgICAgdmFyIGN1cnJlbnRFbGVt
ZW50ID0gdGhpcy5saXN0RWxlbWVudC5maXJzdENoaWxkOwpAQCAtODQsMTAgKzc1LDMzIEBAIFdl
Ykluc3BlY3Rvci5KYXZhU2NyaXB0QnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHZhciBicmVha3BvaW50SXRlbSA9IHt9OwogICAgICAgICBicmVha3BvaW50SXRl
bS5lbGVtZW50ID0gZWxlbWVudDsKICAgICAgICAgYnJlYWtwb2ludEl0ZW0uY2hlY2tib3ggPSBj
aGVja2JveDsKKyAgICAgICAgYnJlYWtwb2ludEl0ZW0ubGFiZWxFbGVtZW50ID0gbGFiZWxFbGVt
ZW50OworICAgICAgICBicmVha3BvaW50SXRlbS5zbmlwcGV0RWxlbWVudCA9IHNuaXBwZXRFbGVt
ZW50OwogICAgICAgICB0aGlzLl9pdGVtc1t0aGlzLl9jcmVhdGVCcmVha3BvaW50SXRlbUlkKGJy
ZWFrcG9pbnQuc291cmNlRmlsZUlkLCBicmVha3BvaW50LmxpbmVOdW1iZXIpXSA9IGJyZWFrcG9p
bnRJdGVtOwogCiAgICAgICAgIGlmICghdGhpcy5leHBhbmRlZCkKICAgICAgICAgICAgIHRoaXMu
ZXhwYW5kZWQgPSB0cnVlOworICAgICAgICAgICAgCisgICAgICAgIHRoaXMudXBkYXRlQnJlYWtw
b2ludChicmVha3BvaW50KTsKKyAgICB9LAorCisgICAgdXBkYXRlQnJlYWtwb2ludDogZnVuY3Rp
b24oYnJlYWtwb2ludCkKKyAgICB7CisgICAgICAgIHZhciBicmVha3BvaW50SXRlbSA9IHRoaXMu
X2l0ZW1zW3RoaXMuX2NyZWF0ZUJyZWFrcG9pbnRJdGVtSWQoYnJlYWtwb2ludC5zb3VyY2VGaWxl
SWQsIGJyZWFrcG9pbnQubGluZU51bWJlcildOworICAgICAgICBpZiAoIWJyZWFrcG9pbnRJdGVt
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHZhciBkaXNwbGF5TmFtZSA9IGJyZWFr
cG9pbnQudXJsID8gV2ViSW5zcGVjdG9yLmRpc3BsYXlOYW1lRm9yVVJMKGJyZWFrcG9pbnQudXJs
KSA6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiKHByb2dyYW0pIik7CisgICAgICAgIGJyZWFrcG9p
bnRJdGVtLmxhYmVsRWxlbWVudC50ZXh0Q29udGVudCA9IGRpc3BsYXlOYW1lICsgIjoiICsgKGJy
ZWFrcG9pbnQubGluZU51bWJlciArIDEpOworICAgICAgICBicmVha3BvaW50SXRlbS5jaGVja2Jv
eC5jaGVja2VkID0gYnJlYWtwb2ludC5lbmFibGVkOworCisgICAgICAgIGlmIChicmVha3BvaW50
LmxvYWRTbmlwcGV0KSB7CisgICAgICAgICAgICBmdW5jdGlvbiBkaWRMb2FkU25pcHBldChzbmlw
cGV0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRJdGVtLnNuaXBw
ZXRFbGVtZW50LnRleHRDb250ZW50ID0gc25pcHBldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGJyZWFrcG9pbnQubG9hZFNuaXBwZXQoZGlkTG9hZFNuaXBwZXQpOworICAgICAgICB9CiAg
ICAgfSwKIAogICAgIHJlbW92ZUJyZWFrcG9pbnQ6IGZ1bmN0aW9uKHNvdXJjZUZpbGVJZCwgbGlu
ZU51bWJlcikKQEAgLTE3NywxNiArMTkxLDYgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRCcmVh
a3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICBfY29tcGFyZUJyZWFrcG9pbnRz
OiBmdW5jdGlvbihiMSwgYjIpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fY29tcGFyZShi
MS51cmwsIGIyLnVybCkgfHwgdGhpcy5fY29tcGFyZShiMS5saW5lTnVtYmVyLCBiMi5saW5lTnVt
YmVyKTsKLSAgICB9LAotCi0gICAgcmVzZXQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRo
aXMubGlzdEVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgaWYgKHRoaXMubGlzdEVs
ZW1lbnQucGFyZW50RWxlbWVudCkgewotICAgICAgICAgICAgdGhpcy5ib2R5RWxlbWVudC5yZW1v
dmVDaGlsZCh0aGlzLmxpc3RFbGVtZW50KTsKLSAgICAgICAgICAgIHRoaXMuYm9keUVsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy5lbXB0eUVsZW1lbnQpOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMu
X2l0ZW1zID0ge307CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKaW5kZXggMjM4ZGJkMzk1ZDFlZmJmMDc2ZDk0
MDU4ZDYxMDA5ZGI0ODNmZjdjYS4uZDk2ZmZkZjFiYzBjMDdjYTZhZjMxNDYxMjM4ZGYxMTg5OWFk
MzE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1
Z2dlck1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVi
dWdnZXJNb2RlbC5qcwpAQCAtMzEsNyArMzEsNiBAQAogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9k
ZWwgPSBmdW5jdGlvbigpCiB7CiAgICAgdGhpcy5fZGVidWdnZXJQYXVzZWREZXRhaWxzID0ge307
Ci0gICAgdGhpcy5fYnJlYWtwb2ludHMgPSB7fTsKICAgICB0aGlzLl9zY3JpcHRzID0ge307CiAK
ICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRG9tYWluRGlzcGF0Y2hlcigiRGVidWdnZXIi
LCBuZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyRGlzcGF0Y2hlcih0aGlzKSk7CkBAIC02Niw3ICs2
NSw2IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9k
ZWJ1Z2dlcldhc0Rpc2FibGVkOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9icmVh
a3BvaW50cyA9IHt9OwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuRGVidWdnZXJXYXNEaXNhYmxlZCk7CiAgICAg
fSwKIApAQCAtODgsMTQgKzg2LDggQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90
eXBlID0gewogCiAgICAgICAgIGZ1bmN0aW9uIGRpZFNldEJyZWFrcG9pbnQoZXJyb3IsIGJyZWFr
cG9pbnRJZCwgbG9jYXRpb25zKQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgYnJlYWtwb2lu
dDsKLSAgICAgICAgICAgIGlmICghZXJyb3IgJiYgYnJlYWtwb2ludElkKSB7Ci0gICAgICAgICAg
ICAgICAgYnJlYWtwb2ludCA9IG5ldyBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludChicmVha3BvaW50
SWQsIHVybCwgIiIsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9uLCBlbmFibGVk
KTsKLSAgICAgICAgICAgICAgICBicmVha3BvaW50LmxvY2F0aW9ucyA9IGxvY2F0aW9uczsKLSAg
ICAgICAgICAgICAgICB0aGlzLl9icmVha3BvaW50c1ticmVha3BvaW50SWRdID0gYnJlYWtwb2lu
dDsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChjYWxsYmFjaykKLSAgICAgICAgICAg
ICAgICBjYWxsYmFjayhicmVha3BvaW50KTsKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnJv
ciA/IG51bGwgOiBicmVha3BvaW50SWQsIGxvY2F0aW9ucyk7CiAgICAgICAgIH0KICAgICAgICAg
RGVidWdnZXJBZ2VudC5zZXRCcmVha3BvaW50QnlVcmwodXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5O
dW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCwgZGlkU2V0QnJlYWtwb2ludC5iaW5kKHRoaXMpKTsK
ICAgICB9LApAQCAtMTA0LDE0ICs5Niw4IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnBy
b3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGZ1bmN0aW9uIGRpZFNldEJyZWFrcG9pbnQoZXJy
b3IsIGJyZWFrcG9pbnRJZCwgbG9jYXRpb24pCiAgICAgICAgIHsKLSAgICAgICAgICAgIHZhciBi
cmVha3BvaW50OwotICAgICAgICAgICAgaWYgKCFlcnJvciAmJiBicmVha3BvaW50SWQpIHsKLSAg
ICAgICAgICAgICAgICBicmVha3BvaW50ID0gbmV3IFdlYkluc3BlY3Rvci5CcmVha3BvaW50KGJy
ZWFrcG9pbnRJZCwgIiIsIHNvdXJjZUlELCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGNvbmRp
dGlvbiwgZW5hYmxlZCk7Ci0gICAgICAgICAgICAgICAgYnJlYWtwb2ludC5sb2NhdGlvbnMucHVz
aChsb2NhdGlvbik7Ci0gICAgICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludHNbYnJlYWtwb2lu
dElkXSA9IGJyZWFrcG9pbnQ7Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoY2FsbGJh
Y2spCi0gICAgICAgICAgICAgICAgY2FsbGJhY2soYnJlYWtwb2ludCk7CisgICAgICAgICAgICAg
ICAgY2FsbGJhY2soZXJyb3IgPyBudWxsIDogYnJlYWtwb2ludElkLCBbbG9jYXRpb25dKTsKICAg
ICAgICAgfQogICAgICAgICBEZWJ1Z2dlckFnZW50LnNldEJyZWFrcG9pbnQoc291cmNlSUQsIGxp
bmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkLCBkaWRTZXRCcmVha3Bv
aW50LmJpbmQodGhpcykpOwogICAgIH0sCkBAIC0xMTksMzEgKzEwNSwxNiBAQCBXZWJJbnNwZWN0
b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgcmVtb3ZlQnJlYWtwb2ludDogZnVu
Y3Rpb24oYnJlYWtwb2ludElkKQogICAgIHsKICAgICAgICAgRGVidWdnZXJBZ2VudC5yZW1vdmVC
cmVha3BvaW50KGJyZWFrcG9pbnRJZCk7Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9icmVha3BvaW50
c1ticmVha3BvaW50SWRdOwogICAgIH0sCiAKICAgICBfYnJlYWtwb2ludFJlc29sdmVkOiBmdW5j
dGlvbihicmVha3BvaW50SWQsIGxvY2F0aW9uKQogICAgIHsKLSAgICAgICAgdmFyIGJyZWFrcG9p
bnQgPSB0aGlzLl9icmVha3BvaW50c1ticmVha3BvaW50SWRdOwotICAgICAgICBicmVha3BvaW50
LmxvY2F0aW9ucy5wdXNoKGxvY2F0aW9uKTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkJyZWFrcG9pbnRSZXNv
bHZlZCwgYnJlYWtwb2ludCk7Ci0gICAgfSwKLQotICAgIGdldCBicmVha3BvaW50cygpCi0gICAg
ewotICAgICAgICByZXR1cm4gdGhpcy5fYnJlYWtwb2ludHM7CisgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5CcmVh
a3BvaW50UmVzb2x2ZWQsIHticmVha3BvaW50SWQ6IGJyZWFrcG9pbnRJZCwgbG9jYXRpb246IGxv
Y2F0aW9ufSk7CiAgICAgfSwKIAogICAgIHJlc2V0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAg
ICB0aGlzLl9kZWJ1Z2dlclBhdXNlZERldGFpbHMgPSB7fTsKLSAgICAgICAgZm9yICh2YXIgaWQg
aW4gdGhpcy5fYnJlYWtwb2ludHMpIHsKLSAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0gdGhp
cy5fYnJlYWtwb2ludHNbaWRdOwotICAgICAgICAgICAgaWYgKCFicmVha3BvaW50LnVybCkKLSAg
ICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fYnJlYWtwb2ludHNbaWRdOwotICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQubG9jYXRpb25zID0gW107Ci0gICAgICAg
IH0KICAgICAgICAgdGhpcy5fc2NyaXB0cyA9IHt9OwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuUmVzZXQpOwog
ICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Rl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXggMWExYjRhZDdkNGQxNTJj
ZTQyOTRiMDg2NjM4ZGNiNmM3YmRlMTZjZi4uNmRhMDcwYTg3Zjk0YWE1NTJmOTVjMzk3M2IxZjJh
MGRjOWFjNWFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAtMzMsNiArMzMs
NyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IGZ1bmN0aW9uKCkK
ICAgICB0aGlzLl9zb3VyY2VGaWxlcyA9IHt9OwogICAgIHRoaXMuX21lc3NhZ2VzID0gW107CiAg
ICAgdGhpcy5fcHJlc2VudGF0aW9uQnJlYWtwb2ludHMgPSB7fTsKKyAgICB0aGlzLl9icmVha3Bv
aW50c1dpdGhOb1NvdXJjZUZpbGUgPSB7fTsKICAgICB0aGlzLl9wcmVzZW50YXRpb25DYWxsRnJh
bWVzID0gW107CiAgICAgdGhpcy5fc2VsZWN0ZWRDYWxsRnJhbWVJbmRleCA9IDA7CiAKQEAgLTUw
LDYgKzUxLDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRz
ID0gewogICAgIFNvdXJjZUZpbGVDaGFuZ2VkOiAic291cmNlLWZpbGUtY2hhbmdlZCIsCiAgICAg
Q29uc29sZU1lc3NhZ2VBZGRlZDogImNvbnNvbGUtbWVzc2FnZS1hZGRlZCIsCiAgICAgQnJlYWtw
b2ludEFkZGVkOiAiYnJlYWtwb2ludC1hZGRlZCIsCisgICAgQnJlYWtwb2ludFVwZGF0ZWQ6ICJi
cmVha3BvaW50LXVwZGF0ZWQiLAogICAgIEJyZWFrcG9pbnRSZW1vdmVkOiAiYnJlYWtwb2ludC1y
ZW1vdmVkIiwKICAgICBEZWJ1Z2dlclBhdXNlZDogImRlYnVnZ2VyLXBhdXNlZCIsCiAgICAgRGVi
dWdnZXJSZXN1bWVkOiAiZGVidWdnZXItcmVzdW1lZCIsCkBAIC0xMTIsMTAgKzExNCwxMyBAQCBX
ZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAKICAg
ICBfcmVmcmVzaEJyZWFrcG9pbnRzOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB2YXIgYnJl
YWtwb2ludHMgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5icmVha3BvaW50czsKLSAgICAg
ICAgZm9yICh2YXIgaWQgaW4gYnJlYWtwb2ludHMpIHsKLSAgICAgICAgICAgIGlmICghKGlkIGlu
IHRoaXMuX3ByZXNlbnRhdGlvbkJyZWFrcG9pbnRzKSkKLSAgICAgICAgICAgICAgICB0aGlzLl9i
cmVha3BvaW50QWRkZWQoYnJlYWtwb2ludHNbaWRdKTsKKyAgICAgICAgZm9yICh2YXIgc291cmNl
RmlsZUlkIGluIHRoaXMuX2JyZWFrcG9pbnRzV2l0aE5vU291cmNlRmlsZSkgeworICAgICAgICAg
ICAgdmFyIHBlbmRpbmdCcmVha3BvaW50cyA9IHRoaXMuX2JyZWFrcG9pbnRzV2l0aE5vU291cmNl
RmlsZVtzb3VyY2VGaWxlSWRdOworICAgICAgICAgICAgdmFyIGNvcHkgPSBwZW5kaW5nQnJlYWtw
b2ludHMuc2xpY2UoKTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29weS5sZW5n
dGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICh0aGlzLl9yZXN0b3JlQnJlYWtwb2ludChj
b3B5W2ldKSkKKyAgICAgICAgICAgICAgICAgICAgcGVuZGluZ0JyZWFrcG9pbnRzLnJlbW92ZShj
b3B5W2ldKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0sCiAKQEAgLTE3OCw3ICsx
ODMsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKG5l
d0xpbmVOdW1iZXIgIT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgICAgICB0aGlzLnNldEJyZWFr
cG9pbnQoc291cmNlRmlsZUlkLCBuZXdMaW5lTnVtYmVyLCBicmVha3BvaW50LmNvbmRpdGlvbiwg
YnJlYWtwb2ludC5lbmFibGVkKTsKKyAgICAgICAgICAgICAgICB0aGlzLnNldEJyZWFrcG9pbnQo
c291cmNlRmlsZUlkLCBuZXdMaW5lTnVtYmVyLCBicmVha3BvaW50LmNvbmRpdGlvbiwgYnJlYWtw
b2ludC5lbmFibGVkLCBmYWxzZSk7CiAgICAgICAgIH0KICAgICB9LAogCkBAIC0xOTEsNyArMTk2
LDYgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0g
ewogICAgICAgICB2YXIgbWVzc2FnZXMgPSB0aGlzLl9tZXNzYWdlczsKICAgICAgICAgdGhpcy5f
c291cmNlRmlsZXMgPSB7fTsKICAgICAgICAgdGhpcy5fbWVzc2FnZXMgPSBbXTsKLSAgICAgICAg
dGhpcy5fcHJlc2VudGF0aW9uQnJlYWtwb2ludHMgPSB7fTsKIAogICAgICAgICB2YXIgc2NyaXB0
cyA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdHM7CiAgICAgICAgIGZvciAodmFy
IGlkIGluIHNjcmlwdHMpCkBAIC0yNTQsMTQgKzI1OCwyMCBAQCBXZWJJbnNwZWN0b3IuRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBicmVha3Bv
aW50czsKICAgICB9LAogCi0gICAgc2V0QnJlYWtwb2ludDogZnVuY3Rpb24oc291cmNlRmlsZUlk
LCBsaW5lTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQpCisgICAgc2V0QnJlYWtwb2ludDogZnVu
Y3Rpb24oc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQsIHNhdmVC
cmVha3BvaW50cykKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGRpZFNldEJyZWFrcG9pbnQoYnJl
YWtwb2ludCkKKyAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9zb3VyY2VGaWxlc1tzb3Vy
Y2VGaWxlSWRdOworICAgICAgICBpZiAoIXNvdXJjZUZpbGUpIAorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGZ1bmN0aW9uIGRpZFNldEJyZWFrcG9pbnQoYnJlYWtwb2ludElkLCBsb2Nh
dGlvbnMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChicmVha3BvaW50KSB7Ci0gICAgICAg
ICAgICAgICAgdGhpcy5fYnJlYWtwb2ludEFkZGVkKGJyZWFrcG9pbnQpOworICAgICAgICAgICAg
aWYgKCFicmVha3BvaW50SWQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
dGhpcy5fYnJlYWtwb2ludEFkZGVkKG5ldyBXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQnJlYWtw
b2ludCh0aGlzLCBzb3VyY2VGaWxlLmlkLCBsaW5lTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQs
IGJyZWFrcG9pbnRJZCwgbG9jYXRpb25zWzBdKSk7CisKKyAgICAgICAgICAgIGlmIChzYXZlQnJl
YWtwb2ludHMpCiAgICAgICAgICAgICAgICAgdGhpcy5fc2F2ZUJyZWFrcG9pbnRzKCk7Ci0gICAg
ICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0U291cmNl
TWFwcGluZyhtYXBwaW5nKQpAQCAtMjczLDI2ICsyODMsMjYgQEAgV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNldEJyZWFrcG9pbnRCeVNv
dXJjZUlkKHNjcmlwdC5zb3VyY2VJRCwgbG9jYXRpb24ubGluZU51bWJlciwgbG9jYXRpb24uY29s
dW1uTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQsIGRpZFNldEJyZWFrcG9pbnQuYmluZCh0aGlz
KSk7CiAgICAgICAgIH0KLSAgICAgICAgdGhpcy5fc291cmNlRmlsZXNbc291cmNlRmlsZUlkXS5y
ZXF1ZXN0U291cmNlTWFwcGluZyhkaWRSZXF1ZXN0U291cmNlTWFwcGluZy5iaW5kKHRoaXMpKTsK
KyAgICAgICAgc291cmNlRmlsZS5yZXF1ZXN0U291cmNlTWFwcGluZyhkaWRSZXF1ZXN0U291cmNl
TWFwcGluZy5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAgc2V0QnJlYWtwb2ludEVuYWJsZWQ6
IGZ1bmN0aW9uKHNvdXJjZUZpbGVJZCwgbGluZU51bWJlciwgZW5hYmxlZCkKICAgICB7CiAgICAg
ICAgIHZhciBicmVha3BvaW50ID0gdGhpcy5yZW1vdmVCcmVha3BvaW50KHNvdXJjZUZpbGVJZCwg
bGluZU51bWJlcik7Ci0gICAgICAgIHRoaXMuc2V0QnJlYWtwb2ludChzb3VyY2VGaWxlSWQsIGxp
bmVOdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBlbmFibGVkKTsKKyAgICAgICAgdGhpcy5z
ZXRCcmVha3BvaW50KHNvdXJjZUZpbGVJZCwgbGluZU51bWJlciwgYnJlYWtwb2ludC5jb25kaXRp
b24sIGVuYWJsZWQsIHRydWUpOwogICAgIH0sCiAKICAgICB1cGRhdGVCcmVha3BvaW50OiBmdW5j
dGlvbihzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCkKICAgICB7
CiAgICAgICAgIHRoaXMucmVtb3ZlQnJlYWtwb2ludChzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIp
OwotICAgICAgICB0aGlzLnNldEJyZWFrcG9pbnQoc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyLCBj
b25kaXRpb24sIGVuYWJsZWQpOworICAgICAgICB0aGlzLnNldEJyZWFrcG9pbnQoc291cmNlRmls
ZUlkLCBsaW5lTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQsIHRydWUpOwogICAgIH0sCiAKICAg
ICByZW1vdmVCcmVha3BvaW50OiBmdW5jdGlvbihzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIpCiAg
ICAgewogICAgICAgICB2YXIgYnJlYWtwb2ludCA9IHRoaXMuZmluZEJyZWFrcG9pbnQoc291cmNl
RmlsZUlkLCBsaW5lTnVtYmVyKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwu
cmVtb3ZlQnJlYWtwb2ludChicmVha3BvaW50Ll9pZCk7Ci0gICAgICAgIHRoaXMuX2JyZWFrcG9p
bnRSZW1vdmVkKGJyZWFrcG9pbnQuX2lkKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TW9kZWwucmVtb3ZlQnJlYWtwb2ludChicmVha3BvaW50LmRlYnVnZ2VySWQpOworICAgICAgICB0
aGlzLl9icmVha3BvaW50UmVtb3ZlZChicmVha3BvaW50LmRlYnVnZ2VySWQpOwogICAgICAgICB0
aGlzLl9zYXZlQnJlYWtwb2ludHMoKTsKICAgICAgICAgcmV0dXJuIGJyZWFrcG9pbnQ7CiAgICAg
fSwKQEAgLTMwNiw0MCArMzE2LDM0IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9icmVha3BvaW50QWRkZWQ6IGZ1bmN0aW9uKGJy
ZWFrcG9pbnQpCiAgICAgewotICAgICAgICB2YXIgc2NyaXB0OwotICAgICAgICBpZiAoYnJlYWtw
b2ludC51cmwpCi0gICAgICAgICAgICBzY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2Rl
bC5zY3JpcHRzRm9yVVJMKGJyZWFrcG9pbnQudXJsKVswXTsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNl
SUQoYnJlYWtwb2ludC5zb3VyY2VJRCk7Ci0gICAgICAgIGlmICghc2NyaXB0KQorICAgICAgICB2
YXIgc291cmNlRmlsZSA9IGJyZWFrcG9pbnQuc291cmNlRmlsZTsKKyAgICAgICAgaWYgKCFzb3Vy
Y2VGaWxlKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVl
c3RTb3VyY2VNYXBwaW5nKG1hcHBpbmcpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzY3Jp
cHRMb2NhdGlvbiA9IGJyZWFrcG9pbnQubG9jYXRpb25zLmxlbmd0aCA/IGJyZWFrcG9pbnQubG9j
YXRpb25zWzBdIDogYnJlYWtwb2ludDsKKyAgICAgICAgICAgIHZhciBzY3JpcHRMb2NhdGlvbiA9
IGJyZWFrcG9pbnQubG9jYXRpb24gPyBicmVha3BvaW50LmxvY2F0aW9uIDoge2xpbmVOdW1iZXI6
YnJlYWtwb2ludC5saW5lTnVtYmVyLCBjb2x1bW5OdW1iZXI6MH07CiAgICAgICAgICAgICB2YXIg
c291cmNlTG9jYXRpb24gPSBtYXBwaW5nLnNjcmlwdExvY2F0aW9uVG9Tb3VyY2VMb2NhdGlvbihz
Y3JpcHRMb2NhdGlvbi5saW5lTnVtYmVyLCBzY3JpcHRMb2NhdGlvbi5jb2x1bW5OdW1iZXIpOwog
ICAgICAgICAgICAgdmFyIGxpbmVOdW1iZXIgPSBzb3VyY2VMb2NhdGlvbi5saW5lTnVtYmVyOwog
CiAgICAgICAgICAgICBpZiAodGhpcy5maW5kQnJlYWtwb2ludChzb3VyY2VGaWxlLmlkLCBsaW5l
TnVtYmVyKSkgewogICAgICAgICAgICAgICAgIC8vIFdlIGNhbid0IHNob3cgbW9yZSB0aGFuIG9u
ZSBicmVha3BvaW50IG9uIGEgc2luZ2xlIHNvdXJjZSBmaWxlIGxpbmUuCi0gICAgICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwucmVtb3ZlQnJlYWtwb2ludChicmVha3BvaW50
LmlkKTsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5yZW1vdmVC
cmVha3BvaW50KGJyZWFrcG9pbnQuZGVidWdnZXJJZCk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgcHJlc2VudGF0aW9uQnJlYWtwb2lu
dCA9IG5ldyBXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQnJlYWtwb2ludChicmVha3BvaW50LCBz
b3VyY2VGaWxlLCBsaW5lTnVtYmVyKTsKLSAgICAgICAgICAgIHByZXNlbnRhdGlvbkJyZWFrcG9p
bnQuX2lkID0gYnJlYWtwb2ludC5pZDsKLSAgICAgICAgICAgIHRoaXMuX3ByZXNlbnRhdGlvbkJy
ZWFrcG9pbnRzW2JyZWFrcG9pbnQuaWRdID0gcHJlc2VudGF0aW9uQnJlYWtwb2ludDsKLSAgICAg
ICAgICAgIHNvdXJjZUZpbGUuYnJlYWtwb2ludHNbbGluZU51bWJlcl0gPSBwcmVzZW50YXRpb25C
cmVha3BvaW50OwotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLkJyZWFrcG9pbnRBZGRl
ZCwgcHJlc2VudGF0aW9uQnJlYWtwb2ludCk7CisgICAgICAgICAgICB0aGlzLl9wcmVzZW50YXRp
b25CcmVha3BvaW50c1ticmVha3BvaW50LmRlYnVnZ2VySWRdID0gYnJlYWtwb2ludDsKKyAgICAg
ICAgICAgIHNvdXJjZUZpbGUuYnJlYWtwb2ludHNbbGluZU51bWJlcl0gPSBicmVha3BvaW50Owor
ICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLkJyZWFrcG9pbnRBZGRlZCwgYnJlYWtwb2lu
dCk7CiAgICAgICAgIH0KLSAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9zb3VyY2VGaWxl
Rm9yU2NyaXB0KHNjcmlwdCk7Ci0gICAgICAgIHNvdXJjZUZpbGUucmVxdWVzdFNvdXJjZU1hcHBp
bmcoZGlkUmVxdWVzdFNvdXJjZU1hcHBpbmcuYmluZCh0aGlzKSk7CisKKyAgICAgICAgaWYgKGJy
ZWFrcG9pbnQuZGVidWdnZXJJZCkKKyAgICAgICAgICAgIHNvdXJjZUZpbGUucmVxdWVzdFNvdXJj
ZU1hcHBpbmcoZGlkUmVxdWVzdFNvdXJjZU1hcHBpbmcuYmluZCh0aGlzKSk7CiAgICAgfSwKIAot
ICAgIF9icmVha3BvaW50UmVtb3ZlZDogZnVuY3Rpb24oYnJlYWtwb2ludElkKQorICAgIF9icmVh
a3BvaW50UmVtb3ZlZDogZnVuY3Rpb24oZGVidWdnZXJJZCkKICAgICB7Ci0gICAgICAgIHZhciBi
cmVha3BvaW50ID0gdGhpcy5fcHJlc2VudGF0aW9uQnJlYWtwb2ludHNbYnJlYWtwb2ludElkXTsK
LSAgICAgICAgZGVsZXRlIHRoaXMuX3ByZXNlbnRhdGlvbkJyZWFrcG9pbnRzW2JyZWFrcG9pbnRJ
ZF07CisgICAgICAgIHZhciBicmVha3BvaW50ID0gdGhpcy5fcHJlc2VudGF0aW9uQnJlYWtwb2lu
dHNbZGVidWdnZXJJZF07CisgICAgICAgIGRlbGV0ZSB0aGlzLl9wcmVzZW50YXRpb25CcmVha3Bv
aW50c1tkZWJ1Z2dlcklkXTsKICAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLnNvdXJjZUZp
bGUoYnJlYWtwb2ludC5zb3VyY2VGaWxlSWQpOwogICAgICAgICBkZWxldGUgc291cmNlRmlsZS5i
cmVha3BvaW50c1ticmVha3BvaW50LmxpbmVOdW1iZXJdOwogICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5F
dmVudHMuQnJlYWtwb2ludFJlbW92ZWQsIGJyZWFrcG9pbnQpOwpAQCAtMzQ3LDM5ICszNTEsNTMg
QEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewog
CiAgICAgX2JyZWFrcG9pbnRSZXNvbHZlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAg
ICB2YXIgYnJlYWtwb2ludCA9IGV2ZW50LmRhdGE7Ci0gICAgICAgIGlmICghKGJyZWFrcG9pbnQu
aWQgaW4gdGhpcy5fcHJlc2VudGF0aW9uQnJlYWtwb2ludHMpKQorICAgICAgICB2YXIgZGVidWdn
ZXJJZCA9IGV2ZW50LmRhdGEuYnJlYWtwb2ludElkOworICAgICAgICBpZiAoIShkZWJ1Z2dlcklk
IGluIHRoaXMuX3ByZXNlbnRhdGlvbkJyZWFrcG9pbnRzKSkKICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgdGhpcy5fYnJlYWtwb2ludFJlbW92ZWQoYnJlYWtwb2ludC5pZCk7CisgICAgICAg
IHZhciBicmVha3BvaW50ID0gdGhpcy5fcHJlc2VudGF0aW9uQnJlYWtwb2ludHNbZGVidWdnZXJJ
ZF07CisgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRSZW1vdmVkKGRlYnVnZ2VySWQpOwogICAgICAg
ICB0aGlzLl9icmVha3BvaW50QWRkZWQoYnJlYWtwb2ludCk7CiAgICAgfSwKIAogICAgIF9yZXN0
b3JlQnJlYWtwb2ludHM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGRpZFNl
dEJyZWFrcG9pbnQoYnJlYWtwb2ludCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGJyZWFr
cG9pbnQpCi0gICAgICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludEFkZGVkKGJyZWFrcG9pbnQp
OwotICAgICAgICB9CiAgICAgICAgIHZhciBicmVha3BvaW50cyA9IFdlYkluc3BlY3Rvci5zZXR0
aW5ncy5icmVha3BvaW50czsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicmVha3BvaW50
cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBicmVha3BvaW50
c1tpXTsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNldEJyZWFrcG9p
bnQoYnJlYWtwb2ludC51cmwsIGJyZWFrcG9pbnQubGluZU51bWJlciwgYnJlYWtwb2ludC5jb2x1
bW5OdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBicmVha3BvaW50LmVuYWJsZWQsIGRpZFNl
dEJyZWFrcG9pbnQuYmluZCh0aGlzKSk7CisgICAgICAgICAgICB2YXIgYnJlYWtwb2ludERhdGEg
PSBicmVha3BvaW50c1tpXTsKKworICAgICAgICAgICAgaWYgKHRoaXMuX3Jlc3RvcmVCcmVha3Bv
aW50KGJyZWFrcG9pbnREYXRhKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAg
ICAgICAgLy8gQWRkIGJyZWFrcG9pbnQgb25jZSBzb3VyY2UgZmlsZSBiZWNvbWVzIGF2YWlsYWJs
ZS4KKyAgICAgICAgICAgIHZhciBwZW5kaW5nQnJlYWtwb2ludHMgPSB0aGlzLl9icmVha3BvaW50
c1dpdGhOb1NvdXJjZUZpbGVbYnJlYWtwb2ludERhdGEuc291cmNlRmlsZUlkXTsKKyAgICAgICAg
ICAgIGlmICghcGVuZGluZ0JyZWFrcG9pbnRzKSB7CisgICAgICAgICAgICAgICAgcGVuZGluZ0Jy
ZWFrcG9pbnRzID0gW107CisgICAgICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludHNXaXRoTm9T
b3VyY2VGaWxlW2JyZWFrcG9pbnREYXRhLnNvdXJjZUZpbGVJZF0gPSBwZW5kaW5nQnJlYWtwb2lu
dHM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwZW5kaW5nQnJlYWtwb2ludHMucHVzaChi
cmVha3BvaW50RGF0YSk7IAogICAgICAgICB9CiAgICAgfSwKIAorICAgIF9yZXN0b3JlQnJlYWtw
b2ludDogZnVuY3Rpb24oYnJlYWtwb2ludERhdGEpCisgICAgeworICAgICAgICB2YXIgc291cmNl
RmlsZSA9IHRoaXMuX3NvdXJjZUZpbGVzW2JyZWFrcG9pbnREYXRhLnNvdXJjZUZpbGVJZF07Cisg
ICAgICAgIGlmIChzb3VyY2VGaWxlKSB7CisgICAgICAgICAgICB0aGlzLnNldEJyZWFrcG9pbnQo
YnJlYWtwb2ludERhdGEuc291cmNlRmlsZUlkLCBicmVha3BvaW50RGF0YS5saW5lTnVtYmVyLCBi
cmVha3BvaW50RGF0YS5jb25kaXRpb24sIGJyZWFrcG9pbnREYXRhLmVuYWJsZWQsIGZhbHNlKTsK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9LAorCiAgICAgX3NhdmVCcmVha3BvaW50czogZnVuY3Rpb24oKQogICAgIHsKICAg
ICAgICAgdmFyIHNlcmlhbGl6ZWRCcmVha3BvaW50cyA9IFtdOwotICAgICAgICB2YXIgYnJlYWtw
b2ludHMgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5icmVha3BvaW50czsKLSAgICAgICAg
Zm9yICh2YXIgaWQgaW4gYnJlYWtwb2ludHMpIHsKLSAgICAgICAgICAgIHZhciBicmVha3BvaW50
ID0gYnJlYWtwb2ludHNbaWRdOwotICAgICAgICAgICAgaWYgKCFicmVha3BvaW50LnVybCkKKyAg
ICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5fcHJlc2VudGF0aW9uQnJlYWtwb2ludHMpIHsKKyAg
ICAgICAgICAgIHZhciBicmVha3BvaW50ID0gdGhpcy5fcHJlc2VudGF0aW9uQnJlYWtwb2ludHNb
aWRdOworICAgICAgICAgICAgaWYgKCFicmVha3BvaW50LnNvdXJjZUZpbGUpCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICB2YXIgc2VyaWFsaXplZEJyZWFrcG9pbnQgPSB7
fTsKLSAgICAgICAgICAgIHNlcmlhbGl6ZWRCcmVha3BvaW50LnVybCA9IGJyZWFrcG9pbnQudXJs
OworICAgICAgICAgICAgc2VyaWFsaXplZEJyZWFrcG9pbnQuc291cmNlRmlsZUlkID0gYnJlYWtw
b2ludC5zb3VyY2VGaWxlLmlkOwogICAgICAgICAgICAgc2VyaWFsaXplZEJyZWFrcG9pbnQubGlu
ZU51bWJlciA9IGJyZWFrcG9pbnQubGluZU51bWJlcjsKLSAgICAgICAgICAgIHNlcmlhbGl6ZWRC
cmVha3BvaW50LmNvbHVtbk51bWJlciA9IGJyZWFrcG9pbnQuY29sdW1uTnVtYmVyOwogICAgICAg
ICAgICAgc2VyaWFsaXplZEJyZWFrcG9pbnQuY29uZGl0aW9uID0gYnJlYWtwb2ludC5jb25kaXRp
b247CiAgICAgICAgICAgICBzZXJpYWxpemVkQnJlYWtwb2ludC5lbmFibGVkID0gYnJlYWtwb2lu
dC5lbmFibGVkOwogICAgICAgICAgICAgc2VyaWFsaXplZEJyZWFrcG9pbnRzLnB1c2goc2VyaWFs
aXplZEJyZWFrcG9pbnQpOwpAQCAtNDQ3LDcgKzQ2NSw2IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHRoaXMuX3Nv
dXJjZUZpbGVzID0ge307CiAgICAgICAgIHRoaXMuX21lc3NhZ2VzID0gW107Ci0gICAgICAgIHRo
aXMuX3ByZXNlbnRhdGlvbkJyZWFrcG9pbnRzID0ge307CiAgICAgICAgIHRoaXMuX3ByZXNlbnRh
dGlvbkNhbGxGcmFtZXMgPSBbXTsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRDYWxsRnJhbWVJbmRl
eCA9IDA7CiAgICAgfQpAQCAtNDU1LDQyICs0NzIsMzEgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
UHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogCiBXZWJJbnNwZWN0b3IuRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVj
dC5wcm90b3R5cGU7CiAKLVdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25CcmVha3BvaW50ID0gZnVu
Y3Rpb24oYnJlYWtwb2ludCwgc291cmNlRmlsZSwgbGluZU51bWJlcikKK1dlYkluc3BlY3Rvci5Q
cmVzZW50YXRpb25CcmVha3BvaW50ID0gZnVuY3Rpb24obW9kZWwsIHNvdXJjZUZpbGVJZCwgbGlu
ZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkLCBkZWJ1Z2dlcklkLCBsb2NhdGlvbikKIHsKLSAg
ICB0aGlzLl9icmVha3BvaW50ID0gYnJlYWtwb2ludDsKLSAgICB0aGlzLl9zb3VyY2VGaWxlID0g
c291cmNlRmlsZTsKLSAgICB0aGlzLl9saW5lTnVtYmVyID0gbGluZU51bWJlcjsKKyAgICB0aGlz
Ll9tb2RlbCA9IG1vZGVsOworICAgIHRoaXMuc291cmNlRmlsZUlkID0gc291cmNlRmlsZUlkOwor
ICAgIHRoaXMubGluZU51bWJlciA9IGxpbmVOdW1iZXI7CisgICAgdGhpcy5jb25kaXRpb24gPSBj
b25kaXRpb247CisgICAgdGhpcy5lbmFibGVkID0gZW5hYmxlZDsKKyAgICB0aGlzLmRlYnVnZ2Vy
SWQgPSBkZWJ1Z2dlcklkOworICAgIHRoaXMubG9jYXRpb24gPSBsb2NhdGlvbjsKIH0KIAogV2Vi
SW5zcGVjdG9yLlByZXNlbnRhdGlvbkJyZWFrcG9pbnQucHJvdG90eXBlID0gewotICAgIGdldCBz
b3VyY2VGaWxlSWQoKQorICAgIGdldCBzb3VyY2VGaWxlKCkKICAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLl9zb3VyY2VGaWxlLmlkOwotICAgIH0sCi0KLSAgICBnZXQgbGluZU51bWJlcigpCi0g
ICAgewotICAgICAgICByZXR1cm4gdGhpcy5fbGluZU51bWJlcjsKLSAgICB9LAotCi0gICAgZ2V0
IGNvbmRpdGlvbigpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fYnJlYWtwb2ludC5jb25k
aXRpb247Ci0gICAgfSwKLQotICAgIGdldCBlbmFibGVkKCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLl9icmVha3BvaW50LmVuYWJsZWQ7CisgICAgICAgIHJldHVybiB0aGlzLl9tb2RlbC5f
c291cmNlRmlsZXNbdGhpcy5zb3VyY2VGaWxlSWRdOwogICAgIH0sCiAKICAgICBnZXQgdXJsKCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9zb3VyY2VGaWxlLnVybDsKKyAgICAgICAgcmV0
dXJuIHRoaXMuc291cmNlRmlsZSA/IHRoaXMuc291cmNlRmlsZS51cmwgOiBzb3VyY2VGaWxlSWQ7
CiAgICAgfSwKIAogICAgIGdldCByZXNvbHZlZCgpCiAgICAgewotICAgICAgICByZXR1cm4gISF0
aGlzLl9icmVha3BvaW50LmxvY2F0aW9ucy5sZW5ndGgKKyAgICAgICAgcmV0dXJuICEhdGhpcy5s
b2NhdGlvbjsKICAgICB9LAogCiAgICAgbG9hZFNuaXBwZXQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQpA
QCAtNTAzLDcgKzUwOSwxMSBAQCBXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQnJlYWtwb2ludC5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgc25pcHBldCA9IGNvbnRlbnQuc3Vic3RyaW5n
KGxpbmVFbmRpbmdzW3RoaXMubGluZU51bWJlciAtIDFdLCBsaW5lRW5kaW5nc1t0aGlzLmxpbmVO
dW1iZXJdKTsKICAgICAgICAgICAgIGNhbGxiYWNrKHNuaXBwZXQpOwogICAgICAgICB9Ci0gICAg
ICAgIHRoaXMuX3NvdXJjZUZpbGUucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnQuYmlu
ZCh0aGlzKSk7CisgICAgICAgIGlmICghdGhpcy5zb3VyY2VGaWxlKSB7CisgICAgICAgICAgICBj
YWxsYmFjayhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk4vQSIpKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnNvdXJjZUZpbGUucmVxdWVzdENvbnRlbnQoZGlk
UmVxdWVzdENvbnRlbnQuYmluZCh0aGlzKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qcwppbmRl
eCBmYTJjNDRlMzVlOTIxNmQ2Yzk4Yzg1NmFlYzBmZGJiNGNhNjM3YmE3Li5hYjY0MDAzNjUyOWNj
N2JlOGI4ZTFiOTExNzI1ZDg1MGRjMTg5NGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKQEAgLTMxLDggKzMx
LDkgQEAKIAogV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsID0gZnVuY3Rpb24obmV0d29y
a01hbmFnZXIpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLm5ldHdvcmtNYW5hZ2VyLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLkV2ZW50VHlwZXMuUmVzb3VyY2VGaW5p
c2hlZCwgdGhpcy5fb25SZXNvdXJjZVVwZGF0ZWQsIHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5u
ZXR3b3JrTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdl
ci5FdmVudFR5cGVzLlJlc291cmNlU3RhcnRlZCwgdGhpcy5fb25SZXNvdXJjZVN0YXJ0ZWQsIHRo
aXMpOwogICAgIFdlYkluc3BlY3Rvci5uZXR3b3JrTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5FdmVudFR5cGVzLlJlc291cmNlVXBkYXRlZCwgdGhp
cy5fb25SZXNvdXJjZVVwZGF0ZWQsIHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5uZXR3b3JrTWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5FdmVudFR5
cGVzLlJlc291cmNlRmluaXNoZWQsIHRoaXMuX29uUmVzb3VyY2VVcGRhdGVkLCB0aGlzKTsKICAg
ICBXZWJJbnNwZWN0b3IubmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBlcy5GcmFtZURldGFjaGVkLCB0aGlzLl9vbkZyYW1l
RGV0YWNoZWRGcm9tUGFyZW50LCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3IubmV0d29ya01hbmFn
ZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBl
cy5GcmFtZUNvbW1pdHRlZExvYWQsIHRoaXMuX29uQ29tbWl0TG9hZCwgdGhpcyk7CiAKQEAgLTEz
MSw2ICsxMzIsMTMgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlJl
c291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVEZXRhY2hlZCwgZnJhbWVJZCk7CiAgICAg
fSwKIAorICAgIF9vblJlc291cmNlU3RhcnRlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAg
ICAgICBpZiAoIXRoaXMuX2NhY2hlZFJlc291cmNlc1Byb2Nlc3NlZCkKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgdGhpcy5fYmluZFJlc291cmNlVVJMKGV2ZW50LmRhdGEpOworICAgIH0s
CisKICAgICBfb25SZXNvdXJjZVVwZGF0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAg
ICAgaWYgKCF0aGlzLl9jYWNoZWRSZXNvdXJjZXNQcm9jZXNzZWQpCkBAIC0xNTEsOCArMTU5LDgg
QEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIHJlc291cmNlc0ZvckZyYW1lW3Jlc291
cmNlLnVybF0gPSByZXNvdXJjZTsKICAgICAgICAgdGhpcy5fYmluZFJlc291cmNlVVJMKHJlc291
cmNlKTsKKyAgICAgICAgcmVzb3VyY2VzRm9yRnJhbWVbcmVzb3VyY2UudXJsXSA9IHJlc291cmNl
OwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuUmVz
b3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5SZXNvdXJjZUFkZGVkLCByZXNvdXJjZSk7CiAgICAg
fSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3Jp
cHRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQ
YW5lbC5qcwppbmRleCBhMzVmZmExYWU1MWZmMGM5MjQ0NGE4MjhmNmM4NGRhYjBlNThhMmU4Li5h
MzIyNTVmZWEwNTEwZGY0OGM3N2QyNDc1MGQxNzcyZGFlZDBhODA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtMTkyLDYg
KzE5Miw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgdGhp
cy5fcHJlc2VudGF0aW9uTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMuU291cmNlRmlsZUNoYW5nZWQsIHRoaXMuX3NvdXJj
ZUZpbGVDaGFuZ2VkLCB0aGlzKTsKICAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5D
b25zb2xlTWVzc2FnZUFkZGVkLCB0aGlzLl9jb25zb2xlTWVzc2FnZUFkZGVkLCB0aGlzKTsKICAg
ICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5CcmVha3BvaW50QWRkZWQsIHRoaXMuX2Jy
ZWFrcG9pbnRBZGRlZCwgdGhpcyk7CisgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMu
QnJlYWtwb2ludFVwZGF0ZWQsIHRoaXMuX2JyZWFrcG9pbnRVcGRhdGVkLCB0aGlzKTsKICAgICB0
aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5CcmVha3BvaW50UmVtb3ZlZCwgdGhpcy5fYnJl
YWtwb2ludFJlbW92ZWQsIHRoaXMpOwogICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRz
LkRlYnVnZ2VyUGF1c2VkLCB0aGlzLl9kZWJ1Z2dlclBhdXNlZCwgdGhpcyk7CiAgICAgdGhpcy5f
cHJlc2VudGF0aW9uTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5FdmVudHMuRGVidWdnZXJSZXN1bWVkLCB0aGlzLl9kZWJ1Z2dlclJl
c3VtZWQsIHRoaXMpOwpAQCAtMzQyLDYgKzM0MywxOCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMuanNCcmVha3BvaW50
cy5hZGRCcmVha3BvaW50KGJyZWFrcG9pbnQpOwogICAgIH0sCiAKKyAgICBfYnJlYWtwb2ludFVw
ZGF0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBl
dmVudC5kYXRhOworCisgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMuX3NvdXJjZUZpbGVJ
ZFRvU291cmNlRnJhbWVbYnJlYWtwb2ludC5zb3VyY2VGaWxlSWRdOworICAgICAgICBpZiAoc291
cmNlRnJhbWUgJiYgc291cmNlRnJhbWUubG9hZGVkKSB7CisgICAgICAgICAgICBzb3VyY2VGcmFt
ZS5yZW1vdmVCcmVha3BvaW50KGJyZWFrcG9pbnQubGluZU51bWJlcik7CisgICAgICAgICAgICBz
b3VyY2VGcmFtZS5hZGRCcmVha3BvaW50KGJyZWFrcG9pbnQubGluZU51bWJlciwgYnJlYWtwb2lu
dC5yZXNvbHZlZCwgYnJlYWtwb2ludC5jb25kaXRpb24sIGJyZWFrcG9pbnQuZW5hYmxlZCk7Cisg
ICAgICAgIH0KKyAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMuanNCcmVha3BvaW50cy51cGRhdGVC
cmVha3BvaW50KGJyZWFrcG9pbnQpOworICAgIH0sCisKICAgICBfYnJlYWtwb2ludFJlbW92ZWQ6
IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBldmVudC5k
YXRhOwpAQCAtNDUzLDcgKzQ2Niw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90
eXBlID0gewogICAgICAgICB0aGlzLmZ1bmN0aW9uc1NlbGVjdEVsZW1lbnQucmVtb3ZlQ2hpbGRy
ZW4oKTsKICAgICAgICAgdGhpcy52aWV3c0NvbnRhaW5lckVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4o
KTsKIAotICAgICAgICB0aGlzLnNpZGViYXJQYW5lcy5qc0JyZWFrcG9pbnRzLnJlc2V0KCk7CiAg
ICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVzc2lvbnMucmVmcmVzaEV4cHJlc3Np
b25zKCk7CiAgICAgICAgIGlmICghcHJlc2VydmVJdGVtcykKICAgICAgICAgICAgIHRoaXMuc2lk
ZWJhclBhbmVzLndvcmtlcnMucmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvV2ViS2l0LnFyYwppbmRleCAwMDQxMTM4NzlmNDY3YmJhOWQ3ZDg5N2M3ZTRjZmFi
MTIzNjRjMDk3Li4wMjBhYzRhZGM5ZDIxNTIxZTQ1NzBlNmQwODhlMTE0MWU1ZDVlMWFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCkBAIC05LDcg
KzksNiBAQAogICAgIDxmaWxlPkF1ZGl0UnVsZXMuanM8L2ZpbGU+CiAgICAgPGZpbGU+QXVkaXRz
UGFuZWwuanM8L2ZpbGU+CiAgICAgPGZpbGU+Qm90dG9tVXBQcm9maWxlRGF0YUdyaWRUcmVlLmpz
PC9maWxlPgotICAgIDxmaWxlPkJyZWFrcG9pbnQuanM8L2ZpbGU+CiAgICAgPGZpbGU+QnJlYWtw
b2ludE1hbmFnZXIuanM8L2ZpbGU+CiAgICAgPGZpbGU+QnJlYWtwb2ludHNTaWRlYmFyUGFuZS5q
czwvZmlsZT4KICAgICA8ZmlsZT5DYWxsU3RhY2tTaWRlYmFyUGFuZS5qczwvZmlsZT4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCmluZGV4
IDMzYWQzOGFlOGI3Nzk2Mzc5NzVhZjU1NTYyNjQ2MmIyMDc0MGJmZmIuLmUwNThhZTBkYTQyYjc3
MzY0ZWUxODQzYjM2MjZiZTU2Mzc5ZWQ2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbApAQCAtNzMsNyArNzMsNiBAQCBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkNvb2tpZUl0ZW1zVmll
dy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
QXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iU2NyaXB0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJCcmVha3BvaW50LmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJCcmVha3BvaW50TWFuYWdlci5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iU2lk
ZWJhclBhbmUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9IkVsZW1lbnRzVHJlZU91dGxpbmUuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88611</attachid>
            <date>2011-04-07 05:40:51 -0700</date>
            <delta_ts>2011-04-07 07:40:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57949-20110407164044.patch</filename>
            <type>text/plain</type>
            <size>31087</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMwMzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyNDVmYzk4MzBjMWEzNmU0
ZTg5MDRiMmIwZjNlM2Q5ZTlmZjUzODI3Li5kNmJjMGJmOTUxZWY2ZjZkOGQwNTg4M2IxMjBjOGMw
MWEzYTQ1ZDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsNjQgQEAKIAogICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBnZXQgcmlkIG9m
IEJyZWFrcG9pbnQuanMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01Nzk0OQorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
QnJlYWtwb2ludC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Jy
ZWFrcG9pbnRzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlw
dEJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlLmFkZEJyZWFrcG9pbnQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRCcmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlw
ZS51cGRhdGVCcmVha3BvaW50LmRpZExvYWRTbmlwcGV0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5KYXZhU2NyaXB0QnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUudXBkYXRlQnJlYWtw
b2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdEJyZWFrcG9pbnRzU2lkZWJh
clBhbmUucHJvdG90eXBlLl9jb21wYXJlQnJlYWtwb2ludHMpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlck1vZGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlw
ZS5fZGVidWdnZXJXYXNEaXNhYmxlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJN
b2RlbC5wcm90b3R5cGUuc2V0QnJlYWtwb2ludC5kaWRTZXRCcmVha3BvaW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5zZXRCcmVha3BvaW50KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5zZXRCcmVha3BvaW50
QnlTb3VyY2VJZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5
cGUucmVtb3ZlQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2Rl
bC5wcm90b3R5cGUuX2JyZWFrcG9pbnRSZXNvbHZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNb2RlbC5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fcmVmcmVzaEJyZWFrcG9pbnRzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5f
dXBkYXRlQnJlYWtwb2ludHNBZnRlckxpdmVFZGl0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS50b2dnbGVGb3JtYXRTb3VyY2VGaWxl
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90
b3R5cGUuc2V0QnJlYWtwb2ludC5kaWRTZXRCcmVha3BvaW50KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5zZXRCcmVha3BvaW50KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlw
ZS5zZXRCcmVha3BvaW50RW5hYmxlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUudXBkYXRlQnJlYWtwb2ludCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUucmVtb3ZlQnJl
YWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5wcm90b3R5cGUuX2JyZWFrcG9pbnRBZGRlZC5kaWRSZXF1ZXN0U291cmNlTWFwcGluZyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUu
X2JyZWFrcG9pbnRBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50
YXRpb25Nb2RlbC5wcm90b3R5cGUuX2JyZWFrcG9pbnRSZW1vdmVkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fYnJlYWtwb2ludFJl
c29sdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZS5fcmVzdG9yZUJyZWFrcG9pbnRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fcmVzdG9yZUJyZWFrcG9pbnQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBl
Ll9zYXZlQnJlYWtwb2ludHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwucHJvdG90eXBlLl9yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJl
c2VudGF0aW9uQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9u
QnJlYWtwb2ludC5wcm90b3R5cGUuZ2V0IHNvdXJjZUZpbGUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlByZXNlbnRhdGlvbkJyZWFrcG9pbnQucHJvdG90eXBlLmdldCB1cmwpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByZXNlbnRhdGlvbkJyZWFrcG9pbnQucHJvdG90eXBlLmdldCByZXNvbHZl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQnJlYWtwb2ludC5wcm90b3R5
cGUubG9hZFNuaXBwZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VU
cmVlTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5fb25SZXNv
dXJjZVN0YXJ0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnBy
b3RvdHlwZS5fYWRkUmVzb3VyY2VUb0ZyYW1lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2JyZWFrcG9p
bnRVcGRhdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBl
LnJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKworMjAxMS0wNC0wNiAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAgV2ViIEluc3BlY3RvcjogbWlncmF0ZSBkZWJ1
Z2dlciBkb21haW4gdG8gdGhlIHVuaWZpZWQgYnJlYWtwb2ludCBsb2NhdGlvbiBub3Rpb24uCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzkyOAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggYTdlN2ZiYTI5MGJhMzAwNTQxNTcyZTk5NDJkNTVjNjE0NTM4MGJj
Yi4uYWY1OTRhYzMzOThjODBlMjEyMTA2NzhiYWU1YjgxN2IzMTE5ZmMzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtNjE0MSw3ICs2MTQxLDYgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQt
ZW5kL0F1ZGl0UnVsZXMuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQXVk
aXRzUGFuZWwuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQm90dG9tVXBQ
cm9maWxlRGF0YUdyaWRUcmVlLmpzJywKLSAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5k
L0JyZWFrcG9pbnQuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtw
b2ludE1hbmFnZXIuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtw
b2ludHNTaWRlYmFyUGFuZS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9D
YWxsU3RhY2tTaWRlYmFyUGFuZS5qcycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCmluZGV4IDRhZDU5YTg3MmM3ODY4NzUwMDAzMzYzZGJjODE3YWM2NWYz
NTIyMTUuLjc3YzE4MmMyODU0YTRlMDliNTZiMDI4MTAwNTAwZGRiY2Q1NGMwODMgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02NjYzNywxMCAr
NjY2MzcsNiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZl
UGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxCcmVha3BvaW50LmpzIgotCQkJCQk+Ci0JCQkJ
PC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250
LWVuZFxCcmVha3BvaW50TWFuYWdlci5qcyIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludC5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZDYwMmQ4MWViMzNkMThjN2M1YjE1MjgyNGYzMTlmNjNmOWM2
OTNlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnQuanMKKysrIC9kZXYvbnVs
bApAQCAtMSw0MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
ICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLVdlYkluc3BlY3Rvci5CcmVha3BvaW50ID0gZnVuY3Rpb24oaWQsIHVy
bCwgc291cmNlSUQsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9uLCBlbmFibGVk
KQotewotICAgIHRoaXMuaWQgPSBpZDsKLSAgICB0aGlzLnVybCA9IHVybDsKLSAgICB0aGlzLnNv
dXJjZUlEID0gc291cmNlSUQ7Ci0gICAgdGhpcy5saW5lTnVtYmVyID0gbGluZU51bWJlcjsKLSAg
ICB0aGlzLmNvbHVtbk51bWJlciA9IGNvbHVtbk51bWJlcjsKLSAgICB0aGlzLmNvbmRpdGlvbiA9
IGNvbmRpdGlvbjsKLSAgICB0aGlzLmVuYWJsZWQgPSBlbmFibGVkOwotICAgIHRoaXMubG9jYXRp
b25zID0gW107Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RlYnVnZ2VyTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0RlYnVnZ2VyTW9kZWwuanMKaW5kZXggMjM4ZGJkMzk1ZDFlZmJmMDc2ZDk0MDU4ZDYxMDA5ZGI0
ODNmZjdjYS4uZDk2ZmZkZjFiYzBjMDdjYTZhZjMxNDYxMjM4ZGYxMTg5OWFkMzE5NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5q
cwpAQCAtMzEsNyArMzEsNiBAQAogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwgPSBmdW5jdGlv
bigpCiB7CiAgICAgdGhpcy5fZGVidWdnZXJQYXVzZWREZXRhaWxzID0ge307Ci0gICAgdGhpcy5f
YnJlYWtwb2ludHMgPSB7fTsKICAgICB0aGlzLl9zY3JpcHRzID0ge307CiAKICAgICBJbnNwZWN0
b3JCYWNrZW5kLnJlZ2lzdGVyRG9tYWluRGlzcGF0Y2hlcigiRGVidWdnZXIiLCBuZXcgV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyRGlzcGF0Y2hlcih0aGlzKSk7CkBAIC02Niw3ICs2NSw2IEBAIFdlYklu
c3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9kZWJ1Z2dlcldhc0Rp
c2FibGVkOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9icmVha3BvaW50cyA9IHt9
OwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVi
dWdnZXJNb2RlbC5FdmVudHMuRGVidWdnZXJXYXNEaXNhYmxlZCk7CiAgICAgfSwKIApAQCAtODgs
MTQgKzg2LDggQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewogCiAg
ICAgICAgIGZ1bmN0aW9uIGRpZFNldEJyZWFrcG9pbnQoZXJyb3IsIGJyZWFrcG9pbnRJZCwgbG9j
YXRpb25zKQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgYnJlYWtwb2ludDsKLSAgICAgICAg
ICAgIGlmICghZXJyb3IgJiYgYnJlYWtwb2ludElkKSB7Ci0gICAgICAgICAgICAgICAgYnJlYWtw
b2ludCA9IG5ldyBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludChicmVha3BvaW50SWQsIHVybCwgIiIs
IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKTsKLSAgICAgICAg
ICAgICAgICBicmVha3BvaW50LmxvY2F0aW9ucyA9IGxvY2F0aW9uczsKLSAgICAgICAgICAgICAg
ICB0aGlzLl9icmVha3BvaW50c1ticmVha3BvaW50SWRdID0gYnJlYWtwb2ludDsKLSAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGlmIChjYWxsYmFjaykKLSAgICAgICAgICAgICAgICBjYWxsYmFj
ayhicmVha3BvaW50KTsKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnJvciA/IG51bGwgOiBi
cmVha3BvaW50SWQsIGxvY2F0aW9ucyk7CiAgICAgICAgIH0KICAgICAgICAgRGVidWdnZXJBZ2Vu
dC5zZXRCcmVha3BvaW50QnlVcmwodXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGNvbmRp
dGlvbiwgZW5hYmxlZCwgZGlkU2V0QnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKICAgICB9LApAQCAt
MTA0LDE0ICs5Niw4IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsK
ICAgICB7CiAgICAgICAgIGZ1bmN0aW9uIGRpZFNldEJyZWFrcG9pbnQoZXJyb3IsIGJyZWFrcG9p
bnRJZCwgbG9jYXRpb24pCiAgICAgICAgIHsKLSAgICAgICAgICAgIHZhciBicmVha3BvaW50Owot
ICAgICAgICAgICAgaWYgKCFlcnJvciAmJiBicmVha3BvaW50SWQpIHsKLSAgICAgICAgICAgICAg
ICBicmVha3BvaW50ID0gbmV3IFdlYkluc3BlY3Rvci5CcmVha3BvaW50KGJyZWFrcG9pbnRJZCwg
IiIsIHNvdXJjZUlELCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxl
ZCk7Ci0gICAgICAgICAgICAgICAgYnJlYWtwb2ludC5sb2NhdGlvbnMucHVzaChsb2NhdGlvbik7
Ci0gICAgICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludHNbYnJlYWtwb2ludElkXSA9IGJyZWFr
cG9pbnQ7Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoY2FsbGJhY2spCi0gICAgICAg
ICAgICAgICAgY2FsbGJhY2soYnJlYWtwb2ludCk7CisgICAgICAgICAgICAgICAgY2FsbGJhY2so
ZXJyb3IgPyBudWxsIDogYnJlYWtwb2ludElkLCBbbG9jYXRpb25dKTsKICAgICAgICAgfQogICAg
ICAgICBEZWJ1Z2dlckFnZW50LnNldEJyZWFrcG9pbnQoc291cmNlSUQsIGxpbmVOdW1iZXIsIGNv
bHVtbk51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkLCBkaWRTZXRCcmVha3BvaW50LmJpbmQodGhp
cykpOwogICAgIH0sCkBAIC0xMTksMzEgKzEwNSwxNiBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJN
b2RlbC5wcm90b3R5cGUgPSB7CiAgICAgcmVtb3ZlQnJlYWtwb2ludDogZnVuY3Rpb24oYnJlYWtw
b2ludElkKQogICAgIHsKICAgICAgICAgRGVidWdnZXJBZ2VudC5yZW1vdmVCcmVha3BvaW50KGJy
ZWFrcG9pbnRJZCk7Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9icmVha3BvaW50c1ticmVha3BvaW50
SWRdOwogICAgIH0sCiAKICAgICBfYnJlYWtwb2ludFJlc29sdmVkOiBmdW5jdGlvbihicmVha3Bv
aW50SWQsIGxvY2F0aW9uKQogICAgIHsKLSAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSB0aGlzLl9i
cmVha3BvaW50c1ticmVha3BvaW50SWRdOwotICAgICAgICBicmVha3BvaW50LmxvY2F0aW9ucy5w
dXNoKGxvY2F0aW9uKTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkJyZWFrcG9pbnRSZXNvbHZlZCwgYnJlYWtw
b2ludCk7Ci0gICAgfSwKLQotICAgIGdldCBicmVha3BvaW50cygpCi0gICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy5fYnJlYWtwb2ludHM7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5CcmVha3BvaW50UmVzb2x2
ZWQsIHticmVha3BvaW50SWQ6IGJyZWFrcG9pbnRJZCwgbG9jYXRpb246IGxvY2F0aW9ufSk7CiAg
ICAgfSwKIAogICAgIHJlc2V0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9kZWJ1
Z2dlclBhdXNlZERldGFpbHMgPSB7fTsKLSAgICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5fYnJl
YWtwb2ludHMpIHsKLSAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0gdGhpcy5fYnJlYWtwb2lu
dHNbaWRdOwotICAgICAgICAgICAgaWYgKCFicmVha3BvaW50LnVybCkKLSAgICAgICAgICAgICAg
ICBkZWxldGUgdGhpcy5fYnJlYWtwb2ludHNbaWRdOwotICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIGJyZWFrcG9pbnQubG9jYXRpb25zID0gW107Ci0gICAgICAgIH0KICAgICAgICAg
dGhpcy5fc2NyaXB0cyA9IHt9OwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuUmVzZXQpOwogICAgIH0sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXggMWExYjRhZDdkNGQxNTJjZTQyOTRiMDg2NjM4
ZGNiNmM3YmRlMTZjZi4uOGViNTY5NDNkZjhkNzk5ZmQ3ODJlZGFmYjBmNTY5NTkzZTNiNDkwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAtMzMsNiArMzMsNyBAQCBXZWJJbnNw
ZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9z
b3VyY2VGaWxlcyA9IHt9OwogICAgIHRoaXMuX21lc3NhZ2VzID0gW107CiAgICAgdGhpcy5fcHJl
c2VudGF0aW9uQnJlYWtwb2ludHMgPSB7fTsKKyAgICB0aGlzLl9icmVha3BvaW50c1dpdGhvdXRT
b3VyY2VGaWxlID0ge307CiAgICAgdGhpcy5fcHJlc2VudGF0aW9uQ2FsbEZyYW1lcyA9IFtdOwog
ICAgIHRoaXMuX3NlbGVjdGVkQ2FsbEZyYW1lSW5kZXggPSAwOwogCkBAIC00Miw3ICs0Myw3IEBA
IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsID0gZnVuY3Rpb24oKQogICAg
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkJyZWFrcG9pbnRSZXNvbHZlZCwgdGhpcy5fYnJlYWtwb2lu
dFJlc29sdmVkLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5EZWJ1Z2dlclBhdXNl
ZCwgdGhpcy5fZGVidWdnZXJQYXVzZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRz
LkRlYnVnZ2VyUmVzdW1lZCwgdGhpcy5fZGVidWdnZXJSZXN1bWVkLCB0aGlzKTsKLSAgICBXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlck1vZGVsLkV2ZW50cy5SZXNldCwgdGhpcy5fcmVzZXQsIHRoaXMpOworICAgIFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
TW9kZWwuRXZlbnRzLlJlc2V0LCB0aGlzLl9kZWJ1Z2dlclJlc2V0LCB0aGlzKTsKIH0KIAogV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzID0gewpAQCAtNTksNyAr
NjAsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMgPSB7
CiBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAg
ICAgX2RlYnVnZ2VyV2FzRW5hYmxlZDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5f
cmVzdG9yZUJyZWFrcG9pbnRzKCk7CisgICAgICAgIHRoaXMuX3Jlc3RvcmVCcmVha3BvaW50c0Zy
b21TZXR0aW5ncygpOwogICAgIH0sCiAKICAgICBzb3VyY2VGaWxlOiBmdW5jdGlvbihzb3VyY2VG
aWxlSWQpCkBAIC04MCwxMyArODEsMTEgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0
aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgIF9wYXJzZWRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9u
KGV2ZW50KQogICAgIHsKICAgICAgICAgdGhpcy5fYWRkU2NyaXB0KGV2ZW50LmRhdGEpOwotICAg
ICAgICB0aGlzLl9yZWZyZXNoQnJlYWtwb2ludHMoKTsKICAgICB9LAogCiAgICAgX2ZhaWxlZFRv
UGFyc2VTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgdGhpcy5f
YWRkU2NyaXB0KGV2ZW50LmRhdGEpOwotICAgICAgICB0aGlzLl9yZWZyZXNoQnJlYWtwb2ludHMo
KTsKICAgICB9LAogCiAgICAgX2FkZFNjcmlwdDogZnVuY3Rpb24oc2NyaXB0KQpAQCAtMTA3LDE2
ICsxMDYsMjMgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90
eXBlID0gewogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzb3VyY2VGaWxlID0gbmV3IFdlYklu
c3BlY3Rvci5Gb3JtYXR0ZWRTb3VyY2VGaWxlKHNvdXJjZUZpbGVJZCwgc2NyaXB0LCBjb250ZW50
Q2hhbmdlZC5iaW5kKHRoaXMpLCB0aGlzLl9mb3JtYXR0ZXIpOwogICAgICAgICB0aGlzLl9zb3Vy
Y2VGaWxlc1tzb3VyY2VGaWxlSWRdID0gc291cmNlRmlsZTsKKworICAgICAgICB0aGlzLl9yZXN0
b3JlQnJlYWtwb2ludHMoc291cmNlRmlsZSk7CisKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50
VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRz
LlNvdXJjZUZpbGVBZGRlZCwgc291cmNlRmlsZSk7CiAgICAgfSwKIAotICAgIF9yZWZyZXNoQnJl
YWtwb2ludHM6IGZ1bmN0aW9uKCkKKyAgICBfcmVzdG9yZUJyZWFrcG9pbnRzOiBmdW5jdGlvbihz
b3VyY2VGaWxlKQogICAgIHsKLSAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0gV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTW9kZWwuYnJlYWtwb2ludHM7Ci0gICAgICAgIGZvciAodmFyIGlkIGluIGJyZWFr
cG9pbnRzKSB7Ci0gICAgICAgICAgICBpZiAoIShpZCBpbiB0aGlzLl9wcmVzZW50YXRpb25CcmVh
a3BvaW50cykpCi0gICAgICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludEFkZGVkKGJyZWFrcG9p
bnRzW2lkXSk7CisgICAgICAgIHZhciBwZW5kaW5nQnJlYWtwb2ludHMgPSB0aGlzLl9icmVha3Bv
aW50c1dpdGhvdXRTb3VyY2VGaWxlW3NvdXJjZUZpbGUuaWRdOworICAgICAgICBmb3IgKHZhciBp
ID0gMDsgcGVuZGluZ0JyZWFrcG9pbnRzICYmIGkgPCBwZW5kaW5nQnJlYWtwb2ludHMubGVuZ3Ro
OyArK2kpIHsKKyAgICAgICAgICAgIHZhciBicmVha3BvaW50RGF0YSA9IHBlbmRpbmdCcmVha3Bv
aW50c1tpXTsKKyAgICAgICAgICAgIGlmICgiZGVidWdnZXJJZCIgaW4gYnJlYWtwb2ludERhdGEp
CisgICAgICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludEFkZGVkKG5ldyBXZWJJbnNwZWN0b3Iu
UHJlc2VudGF0aW9uQnJlYWtwb2ludChzb3VyY2VGaWxlLCBicmVha3BvaW50RGF0YS5saW5lTnVt
YmVyLCBicmVha3BvaW50RGF0YS5jb25kaXRpb24sIGJyZWFrcG9pbnREYXRhLmVuYWJsZWQsIGJy
ZWFrcG9pbnREYXRhLmRlYnVnZ2VySWQpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICB0aGlzLnNldEJyZWFrcG9pbnQoc291cmNlRmlsZS5pZCwgYnJlYWtwb2ludERhdGEubGlu
ZU51bWJlciwgYnJlYWtwb2ludERhdGEuY29uZGl0aW9uLCBicmVha3BvaW50RGF0YS5lbmFibGVk
LCBmYWxzZSk7CiAgICAgICAgIH0KKyAgICAgICAgZGVsZXRlIHRoaXMuX2JyZWFrcG9pbnRzV2l0
aG91dFNvdXJjZUZpbGVbc291cmNlRmlsZS5pZF07CiAgICAgfSwKIAogICAgIGNhbkVkaXRTY3Jp
cHRTb3VyY2U6IGZ1bmN0aW9uKHNvdXJjZUZpbGVJZCkKQEAgLTE3OCw3ICsxODQsNyBAQCBXZWJJ
bnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKG5ld0xpbmVOdW1iZXIg
IT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgICAgICB0aGlzLnNldEJyZWFrcG9pbnQoc291cmNl
RmlsZUlkLCBuZXdMaW5lTnVtYmVyLCBicmVha3BvaW50LmNvbmRpdGlvbiwgYnJlYWtwb2ludC5l
bmFibGVkKTsKKyAgICAgICAgICAgICAgICB0aGlzLnNldEJyZWFrcG9pbnQoc291cmNlRmlsZUlk
LCBuZXdMaW5lTnVtYmVyLCBicmVha3BvaW50LmNvbmRpdGlvbiwgYnJlYWtwb2ludC5lbmFibGVk
LCBmYWxzZSk7CiAgICAgICAgIH0KICAgICB9LAogCkBAIC0xODksMTAgKzE5NSw4IEBAIFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIHRoaXMuX2Zvcm1hdHRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyKCk7
CiAKICAgICAgICAgdmFyIG1lc3NhZ2VzID0gdGhpcy5fbWVzc2FnZXM7Ci0gICAgICAgIHRoaXMu
X3NvdXJjZUZpbGVzID0ge307Ci0gICAgICAgIHRoaXMuX21lc3NhZ2VzID0gW107Ci0gICAgICAg
IHRoaXMuX3ByZXNlbnRhdGlvbkJyZWFrcG9pbnRzID0ge307Ci0KKyAgICAgICAgdGhpcy5fcmVz
ZXQoKTsKKyAgICAgIAogICAgICAgICB2YXIgc2NyaXB0cyA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1vZGVsLnNjcmlwdHM7CiAgICAgICAgIGZvciAodmFyIGlkIGluIHNjcmlwdHMpCiAgICAgICAg
ICAgICB0aGlzLl9hZGRTY3JpcHQoc2NyaXB0c1tpZF0pOwpAQCAtMjAwLDggKzIwNCw2IEBAIFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXNzYWdlcy5sZW5ndGg7ICsraSkKICAgICAgICAgICAg
IHRoaXMuYWRkQ29uc29sZU1lc3NhZ2UobWVzc2FnZXNbaV0pOwogCi0gICAgICAgIHRoaXMuX3Jl
ZnJlc2hCcmVha3BvaW50cygpOwotCiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuZGVidWdnZXJN
b2RlbC5jYWxsRnJhbWVzKQogICAgICAgICAgICAgdGhpcy5fZGVidWdnZXJQYXVzZWQoKTsKICAg
ICB9LApAQCAtMjU0LDE0ICsyNTYsMjAgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0
aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gYnJlYWtwb2ludHM7CiAgICAg
fSwKIAotICAgIHNldEJyZWFrcG9pbnQ6IGZ1bmN0aW9uKHNvdXJjZUZpbGVJZCwgbGluZU51bWJl
ciwgY29uZGl0aW9uLCBlbmFibGVkKQorICAgIHNldEJyZWFrcG9pbnQ6IGZ1bmN0aW9uKHNvdXJj
ZUZpbGVJZCwgbGluZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkLCBzYXZlQnJlYWtwb2ludHMp
CiAgICAgewotICAgICAgICBmdW5jdGlvbiBkaWRTZXRCcmVha3BvaW50KGJyZWFrcG9pbnQpCisg
ICAgICAgIHZhciBzb3VyY2VGaWxlID0gdGhpcy5fc291cmNlRmlsZXNbc291cmNlRmlsZUlkXTsK
KyAgICAgICAgaWYgKCFzb3VyY2VGaWxlKSAKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBmdW5jdGlvbiBkaWRTZXRCcmVha3BvaW50KGJyZWFrcG9pbnRJZCwgbG9jYXRpb25zKQogICAg
ICAgICB7Ci0gICAgICAgICAgICBpZiAoYnJlYWtwb2ludCkgewotICAgICAgICAgICAgICAgIHRo
aXMuX2JyZWFrcG9pbnRBZGRlZChicmVha3BvaW50KTsKKyAgICAgICAgICAgIGlmICghYnJlYWtw
b2ludElkKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHRoaXMuX2JyZWFr
cG9pbnRBZGRlZChuZXcgV2ViSW5zcGVjdG9yLlByZXNlbnRhdGlvbkJyZWFrcG9pbnQoc291cmNl
RmlsZSwgbGluZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkLCBicmVha3BvaW50SWQsIGxvY2F0
aW9uc1swXSkpOworCisgICAgICAgICAgICBpZiAoc2F2ZUJyZWFrcG9pbnRzKQogICAgICAgICAg
ICAgICAgIHRoaXMuX3NhdmVCcmVha3BvaW50cygpOwotICAgICAgICAgICAgfQogICAgICAgICB9
CiAKICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdFNvdXJjZU1hcHBpbmcobWFwcGluZykKQEAg
LTI3MywyNiArMjgxLDI2IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJNb2RlbC5zZXRCcmVha3BvaW50QnlTb3VyY2VJZChzY3JpcHQuc291cmNl
SUQsIGxvY2F0aW9uLmxpbmVOdW1iZXIsIGxvY2F0aW9uLmNvbHVtbk51bWJlciwgY29uZGl0aW9u
LCBlbmFibGVkLCBkaWRTZXRCcmVha3BvaW50LmJpbmQodGhpcykpOwogICAgICAgICB9Ci0gICAg
ICAgIHRoaXMuX3NvdXJjZUZpbGVzW3NvdXJjZUZpbGVJZF0ucmVxdWVzdFNvdXJjZU1hcHBpbmco
ZGlkUmVxdWVzdFNvdXJjZU1hcHBpbmcuYmluZCh0aGlzKSk7CisgICAgICAgIHNvdXJjZUZpbGUu
cmVxdWVzdFNvdXJjZU1hcHBpbmcoZGlkUmVxdWVzdFNvdXJjZU1hcHBpbmcuYmluZCh0aGlzKSk7
CiAgICAgfSwKIAogICAgIHNldEJyZWFrcG9pbnRFbmFibGVkOiBmdW5jdGlvbihzb3VyY2VGaWxl
SWQsIGxpbmVOdW1iZXIsIGVuYWJsZWQpCiAgICAgewogICAgICAgICB2YXIgYnJlYWtwb2ludCA9
IHRoaXMucmVtb3ZlQnJlYWtwb2ludChzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIpOwotICAgICAg
ICB0aGlzLnNldEJyZWFrcG9pbnQoc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyLCBicmVha3BvaW50
LmNvbmRpdGlvbiwgZW5hYmxlZCk7CisgICAgICAgIHRoaXMuc2V0QnJlYWtwb2ludChzb3VyY2VG
aWxlSWQsIGxpbmVOdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBlbmFibGVkLCB0cnVlKTsK
ICAgICB9LAogCiAgICAgdXBkYXRlQnJlYWtwb2ludDogZnVuY3Rpb24oc291cmNlRmlsZUlkLCBs
aW5lTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQpCiAgICAgewogICAgICAgICB0aGlzLnJlbW92
ZUJyZWFrcG9pbnQoc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyKTsKLSAgICAgICAgdGhpcy5zZXRC
cmVha3BvaW50KHNvdXJjZUZpbGVJZCwgbGluZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKTsK
KyAgICAgICAgdGhpcy5zZXRCcmVha3BvaW50KHNvdXJjZUZpbGVJZCwgbGluZU51bWJlciwgY29u
ZGl0aW9uLCBlbmFibGVkLCB0cnVlKTsKICAgICB9LAogCiAgICAgcmVtb3ZlQnJlYWtwb2ludDog
ZnVuY3Rpb24oc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyKQogICAgIHsKICAgICAgICAgdmFyIGJy
ZWFrcG9pbnQgPSB0aGlzLmZpbmRCcmVha3BvaW50KHNvdXJjZUZpbGVJZCwgbGluZU51bWJlcik7
Ci0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnJlbW92ZUJyZWFrcG9pbnQoYnJl
YWtwb2ludC5faWQpOwotICAgICAgICB0aGlzLl9icmVha3BvaW50UmVtb3ZlZChicmVha3BvaW50
Ll9pZCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnJlbW92ZUJyZWFrcG9p
bnQoYnJlYWtwb2ludC5kZWJ1Z2dlcklkKTsKKyAgICAgICAgdGhpcy5fYnJlYWtwb2ludFJlbW92
ZWQoYnJlYWtwb2ludC5kZWJ1Z2dlcklkKTsKICAgICAgICAgdGhpcy5fc2F2ZUJyZWFrcG9pbnRz
KCk7CiAgICAgICAgIHJldHVybiBicmVha3BvaW50OwogICAgIH0sCkBAIC0zMDYsNDAgKzMxNCwz
MiBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7
CiAKICAgICBfYnJlYWtwb2ludEFkZGVkOiBmdW5jdGlvbihicmVha3BvaW50KQogICAgIHsKLSAg
ICAgICAgdmFyIHNjcmlwdDsKLSAgICAgICAgaWYgKGJyZWFrcG9pbnQudXJsKQotICAgICAgICAg
ICAgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0c0ZvclVSTChicmVh
a3BvaW50LnVybClbMF07Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNjcmlwdCA9IFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvclNvdXJjZUlEKGJyZWFrcG9pbnQuc291cmNl
SUQpOwotICAgICAgICBpZiAoIXNjcmlwdCkKKyAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSBicmVh
a3BvaW50LnNvdXJjZUZpbGU7CisgICAgICAgIGlmICghc291cmNlRmlsZSkKICAgICAgICAgICAg
IHJldHVybjsKIAogICAgICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0U291cmNlTWFwcGluZyhtYXBw
aW5nKQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0TG9jYXRpb24gPSBicmVha3Bv
aW50LmxvY2F0aW9ucy5sZW5ndGggPyBicmVha3BvaW50LmxvY2F0aW9uc1swXSA6IGJyZWFrcG9p
bnQ7CisgICAgICAgICAgICB2YXIgc2NyaXB0TG9jYXRpb24gPSBicmVha3BvaW50LmxvY2F0aW9u
ID8gYnJlYWtwb2ludC5sb2NhdGlvbiA6IHtsaW5lTnVtYmVyOmJyZWFrcG9pbnQubGluZU51bWJl
ciwgY29sdW1uTnVtYmVyOjB9OwogICAgICAgICAgICAgdmFyIHNvdXJjZUxvY2F0aW9uID0gbWFw
cGluZy5zY3JpcHRMb2NhdGlvblRvU291cmNlTG9jYXRpb24oc2NyaXB0TG9jYXRpb24ubGluZU51
bWJlciwgc2NyaXB0TG9jYXRpb24uY29sdW1uTnVtYmVyKTsKICAgICAgICAgICAgIHZhciBsaW5l
TnVtYmVyID0gc291cmNlTG9jYXRpb24ubGluZU51bWJlcjsKIAogICAgICAgICAgICAgaWYgKHRo
aXMuZmluZEJyZWFrcG9pbnQoc291cmNlRmlsZS5pZCwgbGluZU51bWJlcikpIHsKICAgICAgICAg
ICAgICAgICAvLyBXZSBjYW4ndCBzaG93IG1vcmUgdGhhbiBvbmUgYnJlYWtwb2ludCBvbiBhIHNp
bmdsZSBzb3VyY2UgZmlsZSBsaW5lLgotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1vZGVsLnJlbW92ZUJyZWFrcG9pbnQoYnJlYWtwb2ludC5pZCk7CisgICAgICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwucmVtb3ZlQnJlYWtwb2ludChicmVha3BvaW50
LmRlYnVnZ2VySWQpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgdmFyIHByZXNlbnRhdGlvbkJyZWFrcG9pbnQgPSBuZXcgV2ViSW5zcGVjdG9y
LlByZXNlbnRhdGlvbkJyZWFrcG9pbnQoYnJlYWtwb2ludCwgc291cmNlRmlsZSwgbGluZU51bWJl
cik7Ci0gICAgICAgICAgICBwcmVzZW50YXRpb25CcmVha3BvaW50Ll9pZCA9IGJyZWFrcG9pbnQu
aWQ7Ci0gICAgICAgICAgICB0aGlzLl9wcmVzZW50YXRpb25CcmVha3BvaW50c1ticmVha3BvaW50
LmlkXSA9IHByZXNlbnRhdGlvbkJyZWFrcG9pbnQ7Ci0gICAgICAgICAgICBzb3VyY2VGaWxlLmJy
ZWFrcG9pbnRzW2xpbmVOdW1iZXJdID0gcHJlc2VudGF0aW9uQnJlYWtwb2ludDsKLSAgICAgICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5CcmVha3BvaW50QWRkZWQsIHByZXNlbnRhdGlvbkJyZWFr
cG9pbnQpOworICAgICAgICAgICAgdGhpcy5fcHJlc2VudGF0aW9uQnJlYWtwb2ludHNbYnJlYWtw
b2ludC5kZWJ1Z2dlcklkXSA9IGJyZWFrcG9pbnQ7CisgICAgICAgICAgICBzb3VyY2VGaWxlLmJy
ZWFrcG9pbnRzW2xpbmVOdW1iZXJdID0gYnJlYWtwb2ludDsKKyAgICAgICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsLkV2ZW50cy5CcmVha3BvaW50QWRkZWQsIGJyZWFrcG9pbnQpOwogICAgICAgICB9Ci0gICAg
ICAgIHZhciBzb3VyY2VGaWxlID0gdGhpcy5fc291cmNlRmlsZUZvclNjcmlwdChzY3JpcHQpOwog
ICAgICAgICBzb3VyY2VGaWxlLnJlcXVlc3RTb3VyY2VNYXBwaW5nKGRpZFJlcXVlc3RTb3VyY2VN
YXBwaW5nLmJpbmQodGhpcykpOwogICAgIH0sCiAKLSAgICBfYnJlYWtwb2ludFJlbW92ZWQ6IGZ1
bmN0aW9uKGJyZWFrcG9pbnRJZCkKKyAgICBfYnJlYWtwb2ludFJlbW92ZWQ6IGZ1bmN0aW9uKGRl
YnVnZ2VySWQpCiAgICAgewotICAgICAgICB2YXIgYnJlYWtwb2ludCA9IHRoaXMuX3ByZXNlbnRh
dGlvbkJyZWFrcG9pbnRzW2JyZWFrcG9pbnRJZF07Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9wcmVz
ZW50YXRpb25CcmVha3BvaW50c1ticmVha3BvaW50SWRdOworICAgICAgICB2YXIgYnJlYWtwb2lu
dCA9IHRoaXMuX3ByZXNlbnRhdGlvbkJyZWFrcG9pbnRzW2RlYnVnZ2VySWRdOworICAgICAgICBk
ZWxldGUgdGhpcy5fcHJlc2VudGF0aW9uQnJlYWtwb2ludHNbZGVidWdnZXJJZF07CiAgICAgICAg
IHZhciBzb3VyY2VGaWxlID0gdGhpcy5zb3VyY2VGaWxlKGJyZWFrcG9pbnQuc291cmNlRmlsZUlk
KTsKICAgICAgICAgZGVsZXRlIHNvdXJjZUZpbGUuYnJlYWtwb2ludHNbYnJlYWtwb2ludC5saW5l
TnVtYmVyXTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLkJyZWFrcG9pbnRSZW1vdmVkLCBi
cmVha3BvaW50KTsKQEAgLTM0Nyw0MyArMzQ3LDU1IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9icmVha3BvaW50UmVzb2x2ZWQ6
IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBldmVudC5k
YXRhOwotICAgICAgICBpZiAoIShicmVha3BvaW50LmlkIGluIHRoaXMuX3ByZXNlbnRhdGlvbkJy
ZWFrcG9pbnRzKSkKKyAgICAgICAgdmFyIGRlYnVnZ2VySWQgPSBldmVudC5kYXRhLmJyZWFrcG9p
bnRJZDsKKyAgICAgICAgaWYgKCEoZGVidWdnZXJJZCBpbiB0aGlzLl9wcmVzZW50YXRpb25CcmVh
a3BvaW50cykpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHRoaXMuX2JyZWFrcG9pbnRS
ZW1vdmVkKGJyZWFrcG9pbnQuaWQpOworICAgICAgICB2YXIgYnJlYWtwb2ludCA9IHRoaXMuX3By
ZXNlbnRhdGlvbkJyZWFrcG9pbnRzW2RlYnVnZ2VySWRdOworICAgICAgICB0aGlzLl9icmVha3Bv
aW50UmVtb3ZlZChkZWJ1Z2dlcklkKTsKICAgICAgICAgdGhpcy5fYnJlYWtwb2ludEFkZGVkKGJy
ZWFrcG9pbnQpOwogICAgIH0sCiAKLSAgICBfcmVzdG9yZUJyZWFrcG9pbnRzOiBmdW5jdGlvbigp
CisgICAgX3Jlc3RvcmVCcmVha3BvaW50c0Zyb21TZXR0aW5nczogZnVuY3Rpb24oKQogICAgIHsK
LSAgICAgICAgZnVuY3Rpb24gZGlkU2V0QnJlYWtwb2ludChicmVha3BvaW50KQotICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAoYnJlYWtwb2ludCkKLSAgICAgICAgICAgICAgICB0aGlzLl9icmVh
a3BvaW50QWRkZWQoYnJlYWtwb2ludCk7Ci0gICAgICAgIH0KICAgICAgICAgdmFyIGJyZWFrcG9p
bnRzID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmJyZWFrcG9pbnRzOwogICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGJyZWFrcG9pbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIg
YnJlYWtwb2ludCA9IGJyZWFrcG9pbnRzW2ldOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTW9kZWwuc2V0QnJlYWtwb2ludChicmVha3BvaW50LnVybCwgYnJlYWtwb2ludC5saW5l
TnVtYmVyLCBicmVha3BvaW50LmNvbHVtbk51bWJlciwgYnJlYWtwb2ludC5jb25kaXRpb24sIGJy
ZWFrcG9pbnQuZW5hYmxlZCwgZGlkU2V0QnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKKyAgICAgICAg
ICAgIHZhciBicmVha3BvaW50RGF0YSA9IGJyZWFrcG9pbnRzW2ldOworICAgICAgICAgICAgdmFy
IHNvdXJjZUZpbGVJZCA9IGJyZWFrcG9pbnREYXRhLnNvdXJjZUZpbGVJZDsKKyAgICAgICAgICAg
IHZhciBzb3VyY2VGaWxlID0gdGhpcy5fc291cmNlRmlsZXNbc291cmNlRmlsZUlkXTsKKyAgICAg
ICAgICAgIGlmIChzb3VyY2VGaWxlKSB7CisgICAgICAgICAgICAgICAgdGhpcy5zZXRCcmVha3Bv
aW50KHNvdXJjZUZpbGVJZCwgYnJlYWtwb2ludERhdGEubGluZU51bWJlciwgYnJlYWtwb2ludERh
dGEuY29uZGl0aW9uLCBicmVha3BvaW50RGF0YS5lbmFibGVkLCBmYWxzZSk7CisgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEFkZCBicmVh
a3BvaW50IG9uY2Ugc291cmNlIGZpbGUgYmVjb21lcyBhdmFpbGFibGUuCisgICAgICAgICAgICB2
YXIgcGVuZGluZ0JyZWFrcG9pbnRzID0gdGhpcy5fYnJlYWtwb2ludHNXaXRob3V0U291cmNlRmls
ZVtzb3VyY2VGaWxlSWRdOworICAgICAgICAgICAgaWYgKCFwZW5kaW5nQnJlYWtwb2ludHMpIHsK
KyAgICAgICAgICAgICAgICBwZW5kaW5nQnJlYWtwb2ludHMgPSBbXTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9icmVha3BvaW50c1dpdGhvdXRTb3VyY2VGaWxlW3NvdXJjZUZpbGVJZF0gPSBwZW5k
aW5nQnJlYWtwb2ludHM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwZW5kaW5nQnJlYWtw
b2ludHMucHVzaChicmVha3BvaW50RGF0YSk7CiAgICAgICAgIH0KICAgICB9LAogCiAgICAgX3Nh
dmVCcmVha3BvaW50czogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIHNlcmlhbGl6ZWRC
cmVha3BvaW50cyA9IFtdOwotICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNb2RlbC5icmVha3BvaW50czsKLSAgICAgICAgZm9yICh2YXIgaWQgaW4gYnJlYWtw
b2ludHMpIHsKLSAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0gYnJlYWtwb2ludHNbaWRdOwot
ICAgICAgICAgICAgaWYgKCFicmVha3BvaW50LnVybCkKLSAgICAgICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgICAgIHZhciBzZXJpYWxpemVkQnJlYWtwb2ludCA9IHt9OwotICAgICAgICAg
ICAgc2VyaWFsaXplZEJyZWFrcG9pbnQudXJsID0gYnJlYWtwb2ludC51cmw7Ci0gICAgICAgICAg
ICBzZXJpYWxpemVkQnJlYWtwb2ludC5saW5lTnVtYmVyID0gYnJlYWtwb2ludC5saW5lTnVtYmVy
OwotICAgICAgICAgICAgc2VyaWFsaXplZEJyZWFrcG9pbnQuY29sdW1uTnVtYmVyID0gYnJlYWtw
b2ludC5jb2x1bW5OdW1iZXI7Ci0gICAgICAgICAgICBzZXJpYWxpemVkQnJlYWtwb2ludC5jb25k
aXRpb24gPSBicmVha3BvaW50LmNvbmRpdGlvbjsKLSAgICAgICAgICAgIHNlcmlhbGl6ZWRCcmVh
a3BvaW50LmVuYWJsZWQgPSBicmVha3BvaW50LmVuYWJsZWQ7Ci0gICAgICAgICAgICBzZXJpYWxp
emVkQnJlYWtwb2ludHMucHVzaChzZXJpYWxpemVkQnJlYWtwb2ludCk7CisKKyAgICAgICAgLy8g
U3RvcmUgYWN0aXZlIGJyZWFrcG9pbnRzLgorICAgICAgICBmb3IgKHZhciBpZCBpbiB0aGlzLl9w
cmVzZW50YXRpb25CcmVha3BvaW50cykgeworICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSB0
aGlzLl9wcmVzZW50YXRpb25CcmVha3BvaW50c1tpZF07CisgICAgICAgICAgICBpZiAoYnJlYWtw
b2ludC5zb3VyY2VGaWxlICYmIGJyZWFrcG9pbnQuc291cmNlRmlsZS51cmwpCisgICAgICAgICAg
ICAgICAgc2VyaWFsaXplZEJyZWFrcG9pbnRzLnB1c2goYnJlYWtwb2ludC5zZXJpYWxpemUoKSk7
CiAgICAgICAgIH0KKworICAgICAgICAvLyBTdG9yZSBpbmFjdGl2ZSBicmVha3BvaW50cy4KKyAg
ICAgICAgZm9yICh2YXIgc291cmNlRmlsZUlkIGluIHRoaXMuX2JyZWFrcG9pbnRzV2l0aG91dFNv
dXJjZUZpbGUpCisgICAgICAgICAgICBzZXJpYWxpemVkQnJlYWtwb2ludHMgPSBzZXJpYWxpemVk
QnJlYWtwb2ludHMuY29uY2F0KHRoaXMuX2JyZWFrcG9pbnRzV2l0aG91dFNvdXJjZUZpbGVbc291
cmNlRmlsZUlkXSk7CisKKyAgICAgICAgLy8gU2FuaXRpemUgZGVidWdnZXIgaWRzLgorICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHNlcmlhbGl6ZWRCcmVha3BvaW50cy5sZW5ndGg7ICsraSkK
KyAgICAgICAgICAgIGRlbGV0ZSBzZXJpYWxpemVkQnJlYWtwb2ludHNbaV0uZGVidWdnZXJJZDsK
KwogICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuYnJlYWtwb2ludHMgPSBzZXJpYWxpemVk
QnJlYWtwb2ludHM7CiAgICAgfSwKIApAQCAtNDQ1LDkgKzQ1NywyNiBAQCBXZWJJbnNwZWN0b3Iu
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICBfcmVzZXQ6IGZ1
bmN0aW9uKCkKICAgICB7CisgICAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuX3NvdXJjZUZpbGVz
KSB7CisgICAgICAgICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3NvdXJjZUZpbGVzW2lkXTsK
KyAgICAgICAgICAgIGZvciAodmFyIGxpbmUgaW4gc291cmNlRmlsZS5icmVha3BvaW50cykgewor
ICAgICAgICAgICAgICAgIHZhciBicmVha3BvaW50cyA9IHRoaXMuX2JyZWFrcG9pbnRzV2l0aG91
dFNvdXJjZUZpbGVbc291cmNlRmlsZS5pZF07CisgICAgICAgICAgICAgICAgaWYgKCFicmVha3Bv
aW50cykgeworICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50cyA9IFtdOworICAgICAgICAg
ICAgICAgICAgICB0aGlzLl9icmVha3BvaW50c1dpdGhvdXRTb3VyY2VGaWxlW3NvdXJjZUZpbGUu
aWRdID0gYnJlYWtwb2ludHM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJy
ZWFrcG9pbnRzLnB1c2goc291cmNlRmlsZS5icmVha3BvaW50c1tsaW5lXS5zZXJpYWxpemUoKSk7
CisgICAgICAgICAgICB9IAorICAgICAgICB9CisKICAgICAgICAgdGhpcy5fc291cmNlRmlsZXMg
PSB7fTsKICAgICAgICAgdGhpcy5fbWVzc2FnZXMgPSBbXTsKICAgICAgICAgdGhpcy5fcHJlc2Vu
dGF0aW9uQnJlYWtwb2ludHMgPSB7fTsKKyAgICB9LAorCisgICAgX2RlYnVnZ2VyUmVzZXQ6IGZ1
bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Jlc2V0KCk7CiAgICAgICAgIHRoaXMuX3By
ZXNlbnRhdGlvbkNhbGxGcmFtZXMgPSBbXTsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRDYWxsRnJh
bWVJbmRleCA9IDA7CiAgICAgfQpAQCAtNDU1LDQyICs0ODQsMjYgQEAgV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogCiBXZWJJbnNwZWN0b3IuRGVi
dWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9y
Lk9iamVjdC5wcm90b3R5cGU7CiAKLVdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25CcmVha3BvaW50
ID0gZnVuY3Rpb24oYnJlYWtwb2ludCwgc291cmNlRmlsZSwgbGluZU51bWJlcikKK1dlYkluc3Bl
Y3Rvci5QcmVzZW50YXRpb25CcmVha3BvaW50ID0gZnVuY3Rpb24oc291cmNlRmlsZSwgbGluZU51
bWJlciwgY29uZGl0aW9uLCBlbmFibGVkLCBkZWJ1Z2dlcklkLCBsb2NhdGlvbikKIHsKLSAgICB0
aGlzLl9icmVha3BvaW50ID0gYnJlYWtwb2ludDsKLSAgICB0aGlzLl9zb3VyY2VGaWxlID0gc291
cmNlRmlsZTsKLSAgICB0aGlzLl9saW5lTnVtYmVyID0gbGluZU51bWJlcjsKKyAgICB0aGlzLnNv
dXJjZUZpbGUgPSBzb3VyY2VGaWxlOworICAgIHRoaXMuc291cmNlRmlsZUlkID0gc291cmNlRmls
ZS5pZDsKKyAgICB0aGlzLmxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyOworICAgIHRoaXMuY29uZGl0
aW9uID0gY29uZGl0aW9uOworICAgIHRoaXMuZW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgdGhpcy5k
ZWJ1Z2dlcklkID0gZGVidWdnZXJJZDsKKyAgICB0aGlzLmxvY2F0aW9uID0gbG9jYXRpb247CiB9
CiAKIFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25CcmVha3BvaW50LnByb3RvdHlwZSA9IHsKLSAg
ICBnZXQgc291cmNlRmlsZUlkKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9zb3VyY2VG
aWxlLmlkOwotICAgIH0sCi0KLSAgICBnZXQgbGluZU51bWJlcigpCi0gICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy5fbGluZU51bWJlcjsKLSAgICB9LAotCi0gICAgZ2V0IGNvbmRpdGlvbigpCi0g
ICAgewotICAgICAgICByZXR1cm4gdGhpcy5fYnJlYWtwb2ludC5jb25kaXRpb247Ci0gICAgfSwK
LQotICAgIGdldCBlbmFibGVkKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9icmVha3Bv
aW50LmVuYWJsZWQ7Ci0gICAgfSwKLQogICAgIGdldCB1cmwoKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMuX3NvdXJjZUZpbGUudXJsOworICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VGaWxl
LnVybDsKICAgICB9LAogCiAgICAgZ2V0IHJlc29sdmVkKCkKICAgICB7Ci0gICAgICAgIHJldHVy
biAhIXRoaXMuX2JyZWFrcG9pbnQubG9jYXRpb25zLmxlbmd0aAorICAgICAgICByZXR1cm4gISF0
aGlzLmxvY2F0aW9uOwogICAgIH0sCiAKICAgICBsb2FkU25pcHBldDogZnVuY3Rpb24oY2FsbGJh
Y2spCkBAIC01MDMsNyArNTE2LDIyIEBAIFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25CcmVha3Bv
aW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBzbmlwcGV0ID0gY29udGVudC5zdWJz
dHJpbmcobGluZUVuZGluZ3NbdGhpcy5saW5lTnVtYmVyIC0gMV0sIGxpbmVFbmRpbmdzW3RoaXMu
bGluZU51bWJlcl0pOwogICAgICAgICAgICAgY2FsbGJhY2soc25pcHBldCk7CiAgICAgICAgIH0K
LSAgICAgICAgdGhpcy5fc291cmNlRmlsZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Q29udGVu
dC5iaW5kKHRoaXMpKTsKKyAgICAgICAgaWYgKCF0aGlzLnNvdXJjZUZpbGUpIHsKKyAgICAgICAg
ICAgIGNhbGxiYWNrKFdlYkluc3BlY3Rvci5VSVN0cmluZygiTi9BIikpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIHRoaXMuc291cmNlRmlsZS5yZXF1ZXN0Q29udGVu
dChkaWRSZXF1ZXN0Q29udGVudC5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgc2VyaWFsaXpl
OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgc2VyaWFsaXplZEJyZWFrcG9pbnQgPSB7
fTsKKyAgICAgICAgc2VyaWFsaXplZEJyZWFrcG9pbnQuc291cmNlRmlsZUlkID0gdGhpcy5zb3Vy
Y2VGaWxlLmlkOworICAgICAgICBzZXJpYWxpemVkQnJlYWtwb2ludC5saW5lTnVtYmVyID0gdGhp
cy5saW5lTnVtYmVyOworICAgICAgICBzZXJpYWxpemVkQnJlYWtwb2ludC5jb25kaXRpb24gPSB0
aGlzLmNvbmRpdGlvbjsKKyAgICAgICAgc2VyaWFsaXplZEJyZWFrcG9pbnQuZW5hYmxlZCA9IHRo
aXMuZW5hYmxlZDsKKyAgICAgICAgc2VyaWFsaXplZEJyZWFrcG9pbnQuZGVidWdnZXJJZCA9IHRo
aXMuZGVidWdnZXJJZDsKKyAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZWRCcmVha3BvaW50OwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZVRyZWVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VUcmVlTW9kZWwuanMKaW5kZXggZmEyYzQ0ZTM1ZTkyMTZkNmM5OGM4NTZhZWMwZmRi
YjRjYTYzN2JhNy4uZGI2YjVkMjFiZTkwMzQxOTA5YTRlYTFkZjhhMjkxMWZiNzM5YmEwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVN
b2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
VHJlZU1vZGVsLmpzCkBAIC0zMSw4ICszMSw5IEBACiAKIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRy
ZWVNb2RlbCA9IGZ1bmN0aW9uKG5ldHdvcmtNYW5hZ2VyKQogewotICAgIFdlYkluc3BlY3Rvci5u
ZXR3b3JrTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdl
ci5FdmVudFR5cGVzLlJlc291cmNlRmluaXNoZWQsIHRoaXMuX29uUmVzb3VyY2VVcGRhdGVkLCB0
aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IubmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBlcy5SZXNvdXJjZVN0YXJ0ZWQsIHRo
aXMuX29uUmVzb3VyY2VTdGFydGVkLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3IubmV0d29ya01h
bmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIuRXZlbnRU
eXBlcy5SZXNvdXJjZVVwZGF0ZWQsIHRoaXMuX29uUmVzb3VyY2VVcGRhdGVkLCB0aGlzKTsKKyAg
ICBXZWJJbnNwZWN0b3IubmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBlcy5SZXNvdXJjZUZpbmlzaGVkLCB0aGlzLl9vblJl
c291cmNlVXBkYXRlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLm5ldHdvcmtNYW5hZ2VyLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLkV2ZW50VHlwZXMuRnJh
bWVEZXRhY2hlZCwgdGhpcy5fb25GcmFtZURldGFjaGVkRnJvbVBhcmVudCwgdGhpcyk7CiAgICAg
V2ViSW5zcGVjdG9yLm5ldHdvcmtNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
Lk5ldHdvcmtNYW5hZ2VyLkV2ZW50VHlwZXMuRnJhbWVDb21taXR0ZWRMb2FkLCB0aGlzLl9vbkNv
bW1pdExvYWQsIHRoaXMpOwogCkBAIC0xMzEsNiArMTMyLDEzIEBAIFdlYkluc3BlY3Rvci5SZXNv
dXJjZVRyZWVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1l
RGV0YWNoZWQsIGZyYW1lSWQpOwogICAgIH0sCiAKKyAgICBfb25SZXNvdXJjZVN0YXJ0ZWQ6IGZ1
bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9jYWNoZWRSZXNvdXJjZXNQ
cm9jZXNzZWQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHRoaXMuX2JpbmRSZXNvdXJj
ZVVSTChldmVudC5kYXRhKTsKKyAgICB9LAorCiAgICAgX29uUmVzb3VyY2VVcGRhdGVkOiBmdW5j
dGlvbihldmVudCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fY2FjaGVkUmVzb3VyY2VzUHJv
Y2Vzc2VkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9X
ZWJLaXQucXJjIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJj
CmluZGV4IDAwNDExMzg3OWY0NjdiYmE5ZDdkODk3YzdlNGNmYWIxMjM2NGMwOTcuLjAyMGFjNGFk
YzlkMjE1MjFlNDU3MGU2ZDA4OGUxMTQxZTVkNWUxYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKQEAgLTksNyArOSw2IEBACiAgICAgPGZpbGU+
QXVkaXRSdWxlcy5qczwvZmlsZT4KICAgICA8ZmlsZT5BdWRpdHNQYW5lbC5qczwvZmlsZT4KICAg
ICA8ZmlsZT5Cb3R0b21VcFByb2ZpbGVEYXRhR3JpZFRyZWUuanM8L2ZpbGU+Ci0gICAgPGZpbGU+
QnJlYWtwb2ludC5qczwvZmlsZT4KICAgICA8ZmlsZT5CcmVha3BvaW50TWFuYWdlci5qczwvZmls
ZT4KICAgICA8ZmlsZT5CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzPC9maWxlPgogICAgIDxmaWxl
PkNhbGxTdGFja1NpZGViYXJQYW5lLmpzPC9maWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggMzNhZDM4YWU4Yjc3OTYzNzk3
NWFmNTU1NjI2NDYyYjIwNzQwYmZmYi4uZTA1OGFlMGRhNDJiNzczNjRlZTE4NDNiMzYyNmJlNTYz
NzllZDZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5odG1sCkBAIC03Myw3ICs3Myw2IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQ29va2llSXRlbXNWaWV3LmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJBcHBsaWNhdGlvbkNhY2hlSXRl
bXNWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJTY3JpcHQuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9IkJyZWFrcG9pbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9IkJyZWFrcG9pbnRNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTaWRlYmFyUGFuZS5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRWxlbWVudHNUcmVl
T3V0bGluZS5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88634</attachid>
            <date>2011-04-07 07:40:51 -0700</date>
            <delta_ts>2011-04-07 08:30:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57949-20110407184048.patch</filename>
            <type>text/plain</type>
            <size>31375</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMxNjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2OWQwMzU1MmM4MmFmNjMz
MDIzN2NiZDc2NGY1MjY4ZTUzOWQ3ZjcxLi4wOGNkMTYyMzRlZjBlNWNjMjdlZDY5NTVmODVmNzk4
ZjA1MTg4MDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTEtMDQtMDYgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGdldCByaWQgb2YgQnJlYWtw
b2ludC5qcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTU3OTQ5CisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3Bv
aW50LmpzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2lu
dHNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0QnJlYWtw
b2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUuYWRkQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuSmF2YVNjcmlwdEJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlLnVwZGF0
ZUJyZWFrcG9pbnQuZGlkTG9hZFNuaXBwZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFT
Y3JpcHRCcmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZS51cGRhdGVCcmVha3BvaW50KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0QnJlYWtwb2ludHNTaWRlYmFyUGFuZS5w
cm90b3R5cGUuX2NvbXBhcmVCcmVha3BvaW50cyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9EZWJ1Z2dlck1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9k
ZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlLl9kZWJ1
Z2dlcldhc0Rpc2FibGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnBy
b3RvdHlwZS5zZXRCcmVha3BvaW50LmRpZFNldEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlLnNldEJyZWFrcG9pbnQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlLnNldEJyZWFrcG9pbnRCeVNvdXJj
ZUlkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5yZW1v
dmVCcmVha3BvaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3Rv
dHlwZS5fYnJlYWtwb2ludFJlc29sdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
ck1vZGVsLnByb3RvdHlwZS5yZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9E
ZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9yZWZyZXNoQnJlYWtwb2ludHMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl91cGRhdGVC
cmVha3BvaW50c0FmdGVyTGl2ZUVkaXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
UHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLnRvZ2dsZUZvcm1hdFNvdXJjZUZpbGVzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5z
ZXRCcmVha3BvaW50LmRpZFNldEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLnNldEJyZWFrcG9pbnQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLnNldEJy
ZWFrcG9pbnRFbmFibGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRh
dGlvbk1vZGVsLnByb3RvdHlwZS51cGRhdGVCcmVha3BvaW50KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5yZW1vdmVCcmVha3BvaW50
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3Rv
dHlwZS5fYnJlYWtwb2ludEFkZGVkLmRpZFJlcXVlc3RTb3VyY2VNYXBwaW5nKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fYnJlYWtw
b2ludEFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsLnByb3RvdHlwZS5fYnJlYWtwb2ludFJlbW92ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9icmVha3BvaW50UmVzb2x2ZWQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90
eXBlLl9yZXN0b3JlQnJlYWtwb2ludHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
UHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9yZXN0b3JlQnJlYWtwb2ludCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3NhdmVC
cmVha3BvaW50cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25N
b2RlbC5wcm90b3R5cGUuX3Jlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QcmVzZW50YXRp
b25CcmVha3BvaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25CcmVha3Bv
aW50LnByb3RvdHlwZS5nZXQgc291cmNlRmlsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJl
c2VudGF0aW9uQnJlYWtwb2ludC5wcm90b3R5cGUuZ2V0IHVybCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUHJlc2VudGF0aW9uQnJlYWtwb2ludC5wcm90b3R5cGUuZ2V0IHJlc29sdmVkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25CcmVha3BvaW50LnByb3RvdHlwZS5sb2Fk
U25pcHBldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2Rl
bC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlLl9vblJlc291cmNlU3Rh
cnRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBl
Ll9hZGRSZXNvdXJjZVRvRnJhbWUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fYnJlYWtwb2ludFVwZGF0
ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUucmVzZXQp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYzoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sOgorCiAyMDExLTA0LTA3ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2Vp
ZGVsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGU5ZjdmMmFmY2RiODFjYmY4Y2RlYWIyMGNhYWM3MDI3
NDA1NWUxNGEuLmJhZDMxMTVlZjlhZWNjYmE4NDJhODFiYjhmYjc2ZTk1YTZmMTA2MTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTYxNDQsNyArNjE0NCw2IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9y
L2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQt
ZW5kL0F1ZGl0c1BhbmVsLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0Jv
dHRvbVVwUHJvZmlsZURhdGFHcmlkVHJlZS5qcycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9CcmVha3BvaW50LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5k
L0JyZWFrcG9pbnRNYW5hZ2VyLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5k
L0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBhYjIxMTc2ZDAyNzA1ZjQxZDgxZTYxZjQ3Njk2
NjVmNTJjZDk4ZWZlLi4xMzYxNDg1ZDlmMzYyOTQ2NWQxYmQwY2Y2YjlkNWI0MjgwZTU5NDM3IDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjY3
MDUsMTAgKzY2NzA1LDYgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcQnJlYWtwb2ludC5qcyIKLQkJCQkJ
PgotCQkJCTwvRmlsZT4KLQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rv
clxmcm9udC1lbmRcQnJlYWtwb2ludE1hbmFnZXIuanMiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnQu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnQuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2MDJkODFlYjMzZDE4YzdjNWIxNTI4MjRmMzE5
ZjYzZjljNjkzZTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50LmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi1XZWJJbnNwZWN0b3IuQnJlYWtwb2ludCA9IGZ1bmN0aW9u
KGlkLCB1cmwsIHNvdXJjZUlELCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGNvbmRpdGlvbiwg
ZW5hYmxlZCkKLXsKLSAgICB0aGlzLmlkID0gaWQ7Ci0gICAgdGhpcy51cmwgPSB1cmw7Ci0gICAg
dGhpcy5zb3VyY2VJRCA9IHNvdXJjZUlEOwotICAgIHRoaXMubGluZU51bWJlciA9IGxpbmVOdW1i
ZXI7Ci0gICAgdGhpcy5jb2x1bW5OdW1iZXIgPSBjb2x1bW5OdW1iZXI7Ci0gICAgdGhpcy5jb25k
aXRpb24gPSBjb25kaXRpb247Ci0gICAgdGhpcy5lbmFibGVkID0gZW5hYmxlZDsKLSAgICB0aGlz
LmxvY2F0aW9ucyA9IFtdOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCmluZGV4IDIzOGRiZDM5NWQxZWZiZjA3NmQ5NDA1OGQ2
MTAwOWRiNDgzZmY3Y2EuLmQ5NmZmZGYxYmMwYzA3Y2E2YWYzMTQ2MTIzOGRmMTE4OTlhZDMxOTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJN
b2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2Vy
TW9kZWwuanMKQEAgLTMxLDcgKzMxLDYgQEAKIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsID0g
ZnVuY3Rpb24oKQogewogICAgIHRoaXMuX2RlYnVnZ2VyUGF1c2VkRGV0YWlscyA9IHt9OwotICAg
IHRoaXMuX2JyZWFrcG9pbnRzID0ge307CiAgICAgdGhpcy5fc2NyaXB0cyA9IHt9OwogCiAgICAg
SW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckRvbWFpbkRpc3BhdGNoZXIoIkRlYnVnZ2VyIiwgbmV3
IFdlYkluc3BlY3Rvci5EZWJ1Z2dlckRpc3BhdGNoZXIodGhpcykpOwpAQCAtNjYsNyArNjUsNiBA
QCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICBfZGVidWdn
ZXJXYXNEaXNhYmxlZDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fYnJlYWtwb2lu
dHMgPSB7fTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkRlYnVnZ2VyV2FzRGlzYWJsZWQpOwogICAgIH0sCiAK
QEAgLTg4LDE0ICs4Niw4IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9
IHsKIAogICAgICAgICBmdW5jdGlvbiBkaWRTZXRCcmVha3BvaW50KGVycm9yLCBicmVha3BvaW50
SWQsIGxvY2F0aW9ucykKICAgICAgICAgewotICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQ7Ci0g
ICAgICAgICAgICBpZiAoIWVycm9yICYmIGJyZWFrcG9pbnRJZCkgewotICAgICAgICAgICAgICAg
IGJyZWFrcG9pbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQoYnJlYWtwb2ludElkLCB1
cmwsICIiLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCk7Ci0g
ICAgICAgICAgICAgICAgYnJlYWtwb2ludC5sb2NhdGlvbnMgPSBsb2NhdGlvbnM7Ci0gICAgICAg
ICAgICAgICAgdGhpcy5fYnJlYWtwb2ludHNbYnJlYWtwb2ludElkXSA9IGJyZWFrcG9pbnQ7Ci0g
ICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoY2FsbGJhY2spCi0gICAgICAgICAgICAgICAg
Y2FsbGJhY2soYnJlYWtwb2ludCk7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IgPyBu
dWxsIDogYnJlYWtwb2ludElkLCBsb2NhdGlvbnMpOwogICAgICAgICB9CiAgICAgICAgIERlYnVn
Z2VyQWdlbnQuc2V0QnJlYWtwb2ludEJ5VXJsKHVybCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVy
LCBjb25kaXRpb24sIGVuYWJsZWQsIGRpZFNldEJyZWFrcG9pbnQuYmluZCh0aGlzKSk7CiAgICAg
fSwKQEAgLTEwNCwxNCArOTYsOCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5
cGUgPSB7CiAgICAgewogICAgICAgICBmdW5jdGlvbiBkaWRTZXRCcmVha3BvaW50KGVycm9yLCBi
cmVha3BvaW50SWQsIGxvY2F0aW9uKQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgYnJlYWtw
b2ludDsKLSAgICAgICAgICAgIGlmICghZXJyb3IgJiYgYnJlYWtwb2ludElkKSB7Ci0gICAgICAg
ICAgICAgICAgYnJlYWtwb2ludCA9IG5ldyBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludChicmVha3Bv
aW50SWQsICIiLCBzb3VyY2VJRCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBjb25kaXRpb24s
IGVuYWJsZWQpOwotICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQubG9jYXRpb25zLnB1c2gobG9j
YXRpb24pOwotICAgICAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRzW2JyZWFrcG9pbnRJZF0g
PSBicmVha3BvaW50OwotICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGNhbGxiYWNrKQot
ICAgICAgICAgICAgICAgIGNhbGxiYWNrKGJyZWFrcG9pbnQpOworICAgICAgICAgICAgICAgIGNh
bGxiYWNrKGVycm9yID8gbnVsbCA6IGJyZWFrcG9pbnRJZCwgW2xvY2F0aW9uXSk7CiAgICAgICAg
IH0KICAgICAgICAgRGVidWdnZXJBZ2VudC5zZXRCcmVha3BvaW50KHNvdXJjZUlELCBsaW5lTnVt
YmVyLCBjb2x1bW5OdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCwgZGlkU2V0QnJlYWtwb2ludC5i
aW5kKHRoaXMpKTsKICAgICB9LApAQCAtMTE5LDMxICsxMDUsMTYgQEAgV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewogICAgIHJlbW92ZUJyZWFrcG9pbnQ6IGZ1bmN0aW9u
KGJyZWFrcG9pbnRJZCkKICAgICB7CiAgICAgICAgIERlYnVnZ2VyQWdlbnQucmVtb3ZlQnJlYWtw
b2ludChicmVha3BvaW50SWQpOwotICAgICAgICBkZWxldGUgdGhpcy5fYnJlYWtwb2ludHNbYnJl
YWtwb2ludElkXTsKICAgICB9LAogCiAgICAgX2JyZWFrcG9pbnRSZXNvbHZlZDogZnVuY3Rpb24o
YnJlYWtwb2ludElkLCBsb2NhdGlvbikKICAgICB7Ci0gICAgICAgIHZhciBicmVha3BvaW50ID0g
dGhpcy5fYnJlYWtwb2ludHNbYnJlYWtwb2ludElkXTsKLSAgICAgICAgYnJlYWtwb2ludC5sb2Nh
dGlvbnMucHVzaChsb2NhdGlvbik7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5CcmVha3BvaW50UmVzb2x2ZWQs
IGJyZWFrcG9pbnQpOwotICAgIH0sCi0KLSAgICBnZXQgYnJlYWtwb2ludHMoKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIHRoaXMuX2JyZWFrcG9pbnRzOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuQnJlYWtwb2lu
dFJlc29sdmVkLCB7YnJlYWtwb2ludElkOiBicmVha3BvaW50SWQsIGxvY2F0aW9uOiBsb2NhdGlv
bn0pOwogICAgIH0sCiAKICAgICByZXNldDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhp
cy5fZGVidWdnZXJQYXVzZWREZXRhaWxzID0ge307Ci0gICAgICAgIGZvciAodmFyIGlkIGluIHRo
aXMuX2JyZWFrcG9pbnRzKSB7Ci0gICAgICAgICAgICB2YXIgYnJlYWtwb2ludCA9IHRoaXMuX2Jy
ZWFrcG9pbnRzW2lkXTsKLSAgICAgICAgICAgIGlmICghYnJlYWtwb2ludC51cmwpCi0gICAgICAg
ICAgICAgICAgZGVsZXRlIHRoaXMuX2JyZWFrcG9pbnRzW2lkXTsKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBicmVha3BvaW50LmxvY2F0aW9ucyA9IFtdOwotICAgICAgICB9CiAg
ICAgICAgIHRoaXMuX3NjcmlwdHMgPSB7fTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLlJlc2V0KTsKICAgICB9
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCmluZGV4IDFhMWI0YWQ3ZDRkMTUyY2U0Mjk0
YjA4NjYzOGRjYjZjN2JkZTE2Y2YuLjc1ZWRiMDhkMTliYTZkYTg0OTU0YjNjZWM4MGYwOWVmMDIx
ZTExZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVi
dWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKQEAgLTMzLDYgKzMzLDcgQEAg
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwgPSBmdW5jdGlvbigpCiAgICAg
dGhpcy5fc291cmNlRmlsZXMgPSB7fTsKICAgICB0aGlzLl9tZXNzYWdlcyA9IFtdOwogICAgIHRo
aXMuX3ByZXNlbnRhdGlvbkJyZWFrcG9pbnRzID0ge307CisgICAgdGhpcy5fYnJlYWtwb2ludHNX
aXRob3V0U291cmNlRmlsZSA9IHt9OwogICAgIHRoaXMuX3ByZXNlbnRhdGlvbkNhbGxGcmFtZXMg
PSBbXTsKICAgICB0aGlzLl9zZWxlY3RlZENhbGxGcmFtZUluZGV4ID0gMDsKIApAQCAtNDIsNyAr
NDMsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IGZ1bmN0aW9u
KCkKICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5CcmVha3BvaW50UmVzb2x2ZWQsIHRoaXMuX2Jy
ZWFrcG9pbnRSZXNvbHZlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuRGVidWdn
ZXJQYXVzZWQsIHRoaXMuX2RlYnVnZ2VyUGF1c2VkLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVs
LkV2ZW50cy5EZWJ1Z2dlclJlc3VtZWQsIHRoaXMuX2RlYnVnZ2VyUmVzdW1lZCwgdGhpcyk7Ci0g
ICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuUmVzZXQsIHRoaXMuX3Jlc2V0LCB0aGlzKTsKKyAgICBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlck1vZGVsLkV2ZW50cy5SZXNldCwgdGhpcy5fZGVidWdnZXJSZXNldCwgdGhpcyk7CiB9
CiAKIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cyA9IHsKQEAg
LTU5LDcgKzYwLDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZl
bnRzID0gewogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBl
ID0gewogICAgIF9kZWJ1Z2dlcldhc0VuYWJsZWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAg
IHRoaXMuX3Jlc3RvcmVCcmVha3BvaW50cygpOworICAgICAgICB0aGlzLl9yZXN0b3JlQnJlYWtw
b2ludHNGcm9tU2V0dGluZ3MoKTsKICAgICB9LAogCiAgICAgc291cmNlRmlsZTogZnVuY3Rpb24o
c291cmNlRmlsZUlkKQpAQCAtODAsMTMgKzgxLDExIEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICBfcGFyc2VkU2NyaXB0U291cmNlOiBm
dW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIHRoaXMuX2FkZFNjcmlwdChldmVudC5kYXRh
KTsKLSAgICAgICAgdGhpcy5fcmVmcmVzaEJyZWFrcG9pbnRzKCk7CiAgICAgfSwKIAogICAgIF9m
YWlsZWRUb1BhcnNlU2NyaXB0U291cmNlOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAg
IHRoaXMuX2FkZFNjcmlwdChldmVudC5kYXRhKTsKLSAgICAgICAgdGhpcy5fcmVmcmVzaEJyZWFr
cG9pbnRzKCk7CiAgICAgfSwKIAogICAgIF9hZGRTY3JpcHQ6IGZ1bmN0aW9uKHNjcmlwdCkKQEAg
LTEwNywxNiArMTA2LDIzIEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgc291cmNlRmlsZSA9IG5l
dyBXZWJJbnNwZWN0b3IuRm9ybWF0dGVkU291cmNlRmlsZShzb3VyY2VGaWxlSWQsIHNjcmlwdCwg
Y29udGVudENoYW5nZWQuYmluZCh0aGlzKSwgdGhpcy5fZm9ybWF0dGVyKTsKICAgICAgICAgdGhp
cy5fc291cmNlRmlsZXNbc291cmNlRmlsZUlkXSA9IHNvdXJjZUZpbGU7CisKKyAgICAgICAgdGhp
cy5fcmVzdG9yZUJyZWFrcG9pbnRzKHNvdXJjZUZpbGUpOworCiAgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LkV2ZW50cy5Tb3VyY2VGaWxlQWRkZWQsIHNvdXJjZUZpbGUpOwogICAgIH0sCiAKLSAgICBfcmVm
cmVzaEJyZWFrcG9pbnRzOiBmdW5jdGlvbigpCisgICAgX3Jlc3RvcmVCcmVha3BvaW50czogZnVu
Y3Rpb24oc291cmNlRmlsZSkKICAgICB7Ci0gICAgICAgIHZhciBicmVha3BvaW50cyA9IFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmJyZWFrcG9pbnRzOwotICAgICAgICBmb3IgKHZhciBpZCBp
biBicmVha3BvaW50cykgewotICAgICAgICAgICAgaWYgKCEoaWQgaW4gdGhpcy5fcHJlc2VudGF0
aW9uQnJlYWtwb2ludHMpKQotICAgICAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRBZGRlZChi
cmVha3BvaW50c1tpZF0pOworICAgICAgICB2YXIgcGVuZGluZ0JyZWFrcG9pbnRzID0gdGhpcy5f
YnJlYWtwb2ludHNXaXRob3V0U291cmNlRmlsZVtzb3VyY2VGaWxlLmlkXTsKKyAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IHBlbmRpbmdCcmVha3BvaW50cyAmJiBpIDwgcGVuZGluZ0JyZWFrcG9pbnRz
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgYnJlYWtwb2ludERhdGEgPSBwZW5kaW5n
QnJlYWtwb2ludHNbaV07CisgICAgICAgICAgICBpZiAoImRlYnVnZ2VySWQiIGluIGJyZWFrcG9p
bnREYXRhKQorICAgICAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRBZGRlZChuZXcgV2ViSW5z
cGVjdG9yLlByZXNlbnRhdGlvbkJyZWFrcG9pbnQoc291cmNlRmlsZSwgYnJlYWtwb2ludERhdGEu
bGluZU51bWJlciwgYnJlYWtwb2ludERhdGEuY29uZGl0aW9uLCBicmVha3BvaW50RGF0YS5lbmFi
bGVkLCBicmVha3BvaW50RGF0YS5kZWJ1Z2dlcklkKSk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgdGhpcy5zZXRCcmVha3BvaW50KHNvdXJjZUZpbGUuaWQsIGJyZWFrcG9pbnRE
YXRhLmxpbmVOdW1iZXIsIGJyZWFrcG9pbnREYXRhLmNvbmRpdGlvbiwgYnJlYWtwb2ludERhdGEu
ZW5hYmxlZCwgZmFsc2UpOwogICAgICAgICB9CisgICAgICAgIGRlbGV0ZSB0aGlzLl9icmVha3Bv
aW50c1dpdGhvdXRTb3VyY2VGaWxlW3NvdXJjZUZpbGUuaWRdOwogICAgIH0sCiAKICAgICBjYW5F
ZGl0U2NyaXB0U291cmNlOiBmdW5jdGlvbihzb3VyY2VGaWxlSWQpCkBAIC0xNzgsNyArMTg0LDcg
QEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChuZXdMaW5l
TnVtYmVyICE9PSB1bmRlZmluZWQpCi0gICAgICAgICAgICAgICAgdGhpcy5zZXRCcmVha3BvaW50
KHNvdXJjZUZpbGVJZCwgbmV3TGluZU51bWJlciwgYnJlYWtwb2ludC5jb25kaXRpb24sIGJyZWFr
cG9pbnQuZW5hYmxlZCk7CisgICAgICAgICAgICAgICAgdGhpcy5zZXRCcmVha3BvaW50KHNvdXJj
ZUZpbGVJZCwgbmV3TGluZU51bWJlciwgYnJlYWtwb2ludC5jb25kaXRpb24sIGJyZWFrcG9pbnQu
ZW5hYmxlZCwgZmFsc2UpOwogICAgICAgICB9CiAgICAgfSwKIApAQCAtMTg5LDEwICsxOTUsOCBA
QCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICB0aGlzLl9mb3JtYXR0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1h
dHRlcigpOwogCiAgICAgICAgIHZhciBtZXNzYWdlcyA9IHRoaXMuX21lc3NhZ2VzOwotICAgICAg
ICB0aGlzLl9zb3VyY2VGaWxlcyA9IHt9OwotICAgICAgICB0aGlzLl9tZXNzYWdlcyA9IFtdOwot
ICAgICAgICB0aGlzLl9wcmVzZW50YXRpb25CcmVha3BvaW50cyA9IHt9OwotCisgICAgICAgIHRo
aXMuX3Jlc2V0KCk7CisgICAgICAKICAgICAgICAgdmFyIHNjcmlwdHMgPSBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNb2RlbC5zY3JpcHRzOwogICAgICAgICBmb3IgKHZhciBpZCBpbiBzY3JpcHRzKQog
ICAgICAgICAgICAgdGhpcy5fYWRkU2NyaXB0KHNjcmlwdHNbaWRdKTsKQEAgLTIwMCw4ICsyMDQs
NiBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpCiAgICAg
ICAgICAgICB0aGlzLmFkZENvbnNvbGVNZXNzYWdlKG1lc3NhZ2VzW2ldKTsKIAotICAgICAgICB0
aGlzLl9yZWZyZXNoQnJlYWtwb2ludHMoKTsKLQogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTW9kZWwuY2FsbEZyYW1lcykKICAgICAgICAgICAgIHRoaXMuX2RlYnVnZ2VyUGF1c2Vk
KCk7CiAgICAgfSwKQEAgLTI1NCwxNCArMjU2LDIwIEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIGJyZWFrcG9pbnRz
OwogICAgIH0sCiAKLSAgICBzZXRCcmVha3BvaW50OiBmdW5jdGlvbihzb3VyY2VGaWxlSWQsIGxp
bmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCkKKyAgICBzZXRCcmVha3BvaW50OiBmdW5jdGlv
bihzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCwgc2F2ZUJyZWFr
cG9pbnRzKQogICAgIHsKLSAgICAgICAgZnVuY3Rpb24gZGlkU2V0QnJlYWtwb2ludChicmVha3Bv
aW50KQorICAgICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3NvdXJjZUZpbGVzW3NvdXJjZUZp
bGVJZF07CisgICAgICAgIGlmICghc291cmNlRmlsZSkgCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgZnVuY3Rpb24gZGlkU2V0QnJlYWtwb2ludChicmVha3BvaW50SWQsIGxvY2F0aW9u
cykKICAgICAgICAgewotICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnQpIHsKLSAgICAgICAgICAg
ICAgICB0aGlzLl9icmVha3BvaW50QWRkZWQoYnJlYWtwb2ludCk7CisgICAgICAgICAgICBpZiAo
IWJyZWFrcG9pbnRJZCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB0aGlz
Ll9icmVha3BvaW50QWRkZWQobmV3IFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25CcmVha3BvaW50
KHNvdXJjZUZpbGUsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCwgYnJlYWtwb2ludElk
LCBsb2NhdGlvbnNbMF0pKTsKKworICAgICAgICAgICAgaWYgKHNhdmVCcmVha3BvaW50cykKICAg
ICAgICAgICAgICAgICB0aGlzLl9zYXZlQnJlYWtwb2ludHMoKTsKLSAgICAgICAgICAgIH0KICAg
ICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVlc3RTb3VyY2VNYXBwaW5nKG1hcHBp
bmcpCkBAIC0yNzMsMjYgKzI4MSwyNiBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRp
b25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2V0QnJlYWtwb2ludEJ5U291cmNlSWQoc2NyaXB0
LnNvdXJjZUlELCBsb2NhdGlvbi5saW5lTnVtYmVyLCBsb2NhdGlvbi5jb2x1bW5OdW1iZXIsIGNv
bmRpdGlvbiwgZW5hYmxlZCwgZGlkU2V0QnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKICAgICAgICAg
fQotICAgICAgICB0aGlzLl9zb3VyY2VGaWxlc1tzb3VyY2VGaWxlSWRdLnJlcXVlc3RTb3VyY2VN
YXBwaW5nKGRpZFJlcXVlc3RTb3VyY2VNYXBwaW5nLmJpbmQodGhpcykpOworICAgICAgICBzb3Vy
Y2VGaWxlLnJlcXVlc3RTb3VyY2VNYXBwaW5nKGRpZFJlcXVlc3RTb3VyY2VNYXBwaW5nLmJpbmQo
dGhpcykpOwogICAgIH0sCiAKICAgICBzZXRCcmVha3BvaW50RW5hYmxlZDogZnVuY3Rpb24oc291
cmNlRmlsZUlkLCBsaW5lTnVtYmVyLCBlbmFibGVkKQogICAgIHsKICAgICAgICAgdmFyIGJyZWFr
cG9pbnQgPSB0aGlzLnJlbW92ZUJyZWFrcG9pbnQoc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyKTsK
LSAgICAgICAgdGhpcy5zZXRCcmVha3BvaW50KHNvdXJjZUZpbGVJZCwgbGluZU51bWJlciwgYnJl
YWtwb2ludC5jb25kaXRpb24sIGVuYWJsZWQpOworICAgICAgICB0aGlzLnNldEJyZWFrcG9pbnQo
c291cmNlRmlsZUlkLCBsaW5lTnVtYmVyLCBicmVha3BvaW50LmNvbmRpdGlvbiwgZW5hYmxlZCwg
dHJ1ZSk7CiAgICAgfSwKIAogICAgIHVwZGF0ZUJyZWFrcG9pbnQ6IGZ1bmN0aW9uKHNvdXJjZUZp
bGVJZCwgbGluZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKQogICAgIHsKICAgICAgICAgdGhp
cy5yZW1vdmVCcmVha3BvaW50KHNvdXJjZUZpbGVJZCwgbGluZU51bWJlcik7Ci0gICAgICAgIHRo
aXMuc2V0QnJlYWtwb2ludChzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5h
YmxlZCk7CisgICAgICAgIHRoaXMuc2V0QnJlYWtwb2ludChzb3VyY2VGaWxlSWQsIGxpbmVOdW1i
ZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCwgdHJ1ZSk7CiAgICAgfSwKIAogICAgIHJlbW92ZUJyZWFr
cG9pbnQ6IGZ1bmN0aW9uKHNvdXJjZUZpbGVJZCwgbGluZU51bWJlcikKICAgICB7CiAgICAgICAg
IHZhciBicmVha3BvaW50ID0gdGhpcy5maW5kQnJlYWtwb2ludChzb3VyY2VGaWxlSWQsIGxpbmVO
dW1iZXIpOwotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5yZW1vdmVCcmVha3Bv
aW50KGJyZWFrcG9pbnQuX2lkKTsKLSAgICAgICAgdGhpcy5fYnJlYWtwb2ludFJlbW92ZWQoYnJl
YWtwb2ludC5faWQpOworICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5yZW1vdmVC
cmVha3BvaW50KGJyZWFrcG9pbnQuZGVidWdnZXJJZCk7CisgICAgICAgIHRoaXMuX2JyZWFrcG9p
bnRSZW1vdmVkKGJyZWFrcG9pbnQuZGVidWdnZXJJZCk7CiAgICAgICAgIHRoaXMuX3NhdmVCcmVh
a3BvaW50cygpOwogICAgICAgICByZXR1cm4gYnJlYWtwb2ludDsKICAgICB9LApAQCAtMzA2LDQw
ICszMTQsMzYgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90
eXBlID0gewogCiAgICAgX2JyZWFrcG9pbnRBZGRlZDogZnVuY3Rpb24oYnJlYWtwb2ludCkKICAg
ICB7Ci0gICAgICAgIHZhciBzY3JpcHQ7Ci0gICAgICAgIGlmIChicmVha3BvaW50LnVybCkKLSAg
ICAgICAgICAgIHNjcmlwdCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdHNGb3JV
UkwoYnJlYWtwb2ludC51cmwpWzBdOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBzY3JpcHQg
PSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChicmVha3BvaW50
LnNvdXJjZUlEKTsKLSAgICAgICAgaWYgKCFzY3JpcHQpCisgICAgICAgIHZhciBzb3VyY2VGaWxl
ID0gYnJlYWtwb2ludC5zb3VyY2VGaWxlOworICAgICAgICBpZiAoIXNvdXJjZUZpbGUpCiAgICAg
ICAgICAgICByZXR1cm47CiAKICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdFNvdXJjZU1hcHBp
bmcobWFwcGluZykKICAgICAgICAgewotICAgICAgICAgICAgdmFyIHNjcmlwdExvY2F0aW9uID0g
YnJlYWtwb2ludC5sb2NhdGlvbnMubGVuZ3RoID8gYnJlYWtwb2ludC5sb2NhdGlvbnNbMF0gOiBi
cmVha3BvaW50OwotICAgICAgICAgICAgdmFyIHNvdXJjZUxvY2F0aW9uID0gbWFwcGluZy5zY3Jp
cHRMb2NhdGlvblRvU291cmNlTG9jYXRpb24oc2NyaXB0TG9jYXRpb24ubGluZU51bWJlciwgc2Ny
aXB0TG9jYXRpb24uY29sdW1uTnVtYmVyKTsKLSAgICAgICAgICAgIHZhciBsaW5lTnVtYmVyID0g
c291cmNlTG9jYXRpb24ubGluZU51bWJlcjsKKyAgICAgICAgICAgIC8vIFJlZmluZSBsaW5lIG51
bWJlciBiYXNlZCBvbiByZXNvbHZlZCBsb2NhdGlvbi4KKyAgICAgICAgICAgIGlmIChicmVha3Bv
aW50LmxvY2F0aW9uKSB7CisgICAgICAgICAgICAgICAgdmFyIHNvdXJjZUxvY2F0aW9uID0gbWFw
cGluZy5zY3JpcHRMb2NhdGlvblRvU291cmNlTG9jYXRpb24oYnJlYWtwb2ludC5sb2NhdGlvbi5s
aW5lTnVtYmVyLCBicmVha3BvaW50LmxvY2F0aW9uLmNvbHVtbk51bWJlcik7CisgICAgICAgICAg
ICAgICAgYnJlYWtwb2ludC5saW5lTnVtYmVyID0gc291cmNlTG9jYXRpb24ubGluZU51bWJlcjsK
KyAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKHRoaXMuZmluZEJyZWFrcG9pbnQoc291
cmNlRmlsZS5pZCwgbGluZU51bWJlcikpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLmZpbmRCcmVh
a3BvaW50KHNvdXJjZUZpbGUuaWQsIGJyZWFrcG9pbnQubGluZU51bWJlcikpIHsKICAgICAgICAg
ICAgICAgICAvLyBXZSBjYW4ndCBzaG93IG1vcmUgdGhhbiBvbmUgYnJlYWtwb2ludCBvbiBhIHNp
bmdsZSBzb3VyY2UgZmlsZSBsaW5lLgotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1vZGVsLnJlbW92ZUJyZWFrcG9pbnQoYnJlYWtwb2ludC5pZCk7CisgICAgICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwucmVtb3ZlQnJlYWtwb2ludChicmVha3BvaW50
LmRlYnVnZ2VySWQpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgdmFyIHByZXNlbnRhdGlvbkJyZWFrcG9pbnQgPSBuZXcgV2ViSW5zcGVjdG9y
LlByZXNlbnRhdGlvbkJyZWFrcG9pbnQoYnJlYWtwb2ludCwgc291cmNlRmlsZSwgbGluZU51bWJl
cik7Ci0gICAgICAgICAgICBwcmVzZW50YXRpb25CcmVha3BvaW50Ll9pZCA9IGJyZWFrcG9pbnQu
aWQ7Ci0gICAgICAgICAgICB0aGlzLl9wcmVzZW50YXRpb25CcmVha3BvaW50c1ticmVha3BvaW50
LmlkXSA9IHByZXNlbnRhdGlvbkJyZWFrcG9pbnQ7Ci0gICAgICAgICAgICBzb3VyY2VGaWxlLmJy
ZWFrcG9pbnRzW2xpbmVOdW1iZXJdID0gcHJlc2VudGF0aW9uQnJlYWtwb2ludDsKLSAgICAgICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5CcmVha3BvaW50QWRkZWQsIHByZXNlbnRhdGlvbkJyZWFr
cG9pbnQpOworICAgICAgICAgICAgdGhpcy5fcHJlc2VudGF0aW9uQnJlYWtwb2ludHNbYnJlYWtw
b2ludC5kZWJ1Z2dlcklkXSA9IGJyZWFrcG9pbnQ7CisgICAgICAgICAgICBzb3VyY2VGaWxlLmJy
ZWFrcG9pbnRzW2JyZWFrcG9pbnQubGluZU51bWJlcl0gPSBicmVha3BvaW50OworICAgICAgICAg
ICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwuRXZlbnRzLkJyZWFrcG9pbnRBZGRlZCwgYnJlYWtwb2ludCk7CiAgICAg
ICAgIH0KLSAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9zb3VyY2VGaWxlRm9yU2NyaXB0
KHNjcmlwdCk7CiAgICAgICAgIHNvdXJjZUZpbGUucmVxdWVzdFNvdXJjZU1hcHBpbmcoZGlkUmVx
dWVzdFNvdXJjZU1hcHBpbmcuYmluZCh0aGlzKSk7CiAgICAgfSwKIAotICAgIF9icmVha3BvaW50
UmVtb3ZlZDogZnVuY3Rpb24oYnJlYWtwb2ludElkKQorICAgIF9icmVha3BvaW50UmVtb3ZlZDog
ZnVuY3Rpb24oZGVidWdnZXJJZCkKICAgICB7Ci0gICAgICAgIHZhciBicmVha3BvaW50ID0gdGhp
cy5fcHJlc2VudGF0aW9uQnJlYWtwb2ludHNbYnJlYWtwb2ludElkXTsKLSAgICAgICAgZGVsZXRl
IHRoaXMuX3ByZXNlbnRhdGlvbkJyZWFrcG9pbnRzW2JyZWFrcG9pbnRJZF07CisgICAgICAgIHZh
ciBicmVha3BvaW50ID0gdGhpcy5fcHJlc2VudGF0aW9uQnJlYWtwb2ludHNbZGVidWdnZXJJZF07
CisgICAgICAgIGlmICghYnJlYWtwb2ludCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ZGVsZXRlIHRoaXMuX3ByZXNlbnRhdGlvbkJyZWFrcG9pbnRzW2RlYnVnZ2VySWRdOwogICAgICAg
ICB2YXIgc291cmNlRmlsZSA9IHRoaXMuc291cmNlRmlsZShicmVha3BvaW50LnNvdXJjZUZpbGVJ
ZCk7CiAgICAgICAgIGRlbGV0ZSBzb3VyY2VGaWxlLmJyZWFrcG9pbnRzW2JyZWFrcG9pbnQubGlu
ZU51bWJlcl07CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5CcmVha3BvaW50UmVtb3ZlZCwg
YnJlYWtwb2ludCk7CkBAIC0zNDcsNDMgKzM1MSw1NyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICBfYnJlYWtwb2ludFJlc29sdmVk
OiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBicmVha3BvaW50ID0gZXZlbnQu
ZGF0YTsKLSAgICAgICAgaWYgKCEoYnJlYWtwb2ludC5pZCBpbiB0aGlzLl9wcmVzZW50YXRpb25C
cmVha3BvaW50cykpCisgICAgICAgIHZhciBkZWJ1Z2dlcklkID0gZXZlbnQuZGF0YS5icmVha3Bv
aW50SWQ7CisgICAgICAgIGlmICghKGRlYnVnZ2VySWQgaW4gdGhpcy5fcHJlc2VudGF0aW9uQnJl
YWtwb2ludHMpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlzLl9icmVha3BvaW50
UmVtb3ZlZChicmVha3BvaW50LmlkKTsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSB0aGlzLl9w
cmVzZW50YXRpb25CcmVha3BvaW50c1tkZWJ1Z2dlcklkXTsKKyAgICAgICAgdGhpcy5fYnJlYWtw
b2ludFJlbW92ZWQoZGVidWdnZXJJZCk7CiAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRBZGRlZChi
cmVha3BvaW50KTsKICAgICB9LAogCi0gICAgX3Jlc3RvcmVCcmVha3BvaW50czogZnVuY3Rpb24o
KQorICAgIF9yZXN0b3JlQnJlYWtwb2ludHNGcm9tU2V0dGluZ3M6IGZ1bmN0aW9uKCkKICAgICB7
Ci0gICAgICAgIGZ1bmN0aW9uIGRpZFNldEJyZWFrcG9pbnQoYnJlYWtwb2ludCkKLSAgICAgICAg
ewotICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnQpCi0gICAgICAgICAgICAgICAgdGhpcy5fYnJl
YWtwb2ludEFkZGVkKGJyZWFrcG9pbnQpOwotICAgICAgICB9CiAgICAgICAgIHZhciBicmVha3Bv
aW50cyA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5icmVha3BvaW50czsKICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBicmVha3BvaW50cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFy
IGJyZWFrcG9pbnQgPSBicmVha3BvaW50c1tpXTsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1vZGVsLnNldEJyZWFrcG9pbnQoYnJlYWtwb2ludC51cmwsIGJyZWFrcG9pbnQubGlu
ZU51bWJlciwgYnJlYWtwb2ludC5jb2x1bW5OdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBi
cmVha3BvaW50LmVuYWJsZWQsIGRpZFNldEJyZWFrcG9pbnQuYmluZCh0aGlzKSk7CisgICAgICAg
ICAgICB2YXIgYnJlYWtwb2ludERhdGEgPSBicmVha3BvaW50c1tpXTsKKyAgICAgICAgICAgIHZh
ciBzb3VyY2VGaWxlSWQgPSBicmVha3BvaW50RGF0YS5zb3VyY2VGaWxlSWQ7CisgICAgICAgICAg
ICBpZiAoIXNvdXJjZUZpbGVJZCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgIHZhciBzb3VyY2VGaWxlID0gdGhpcy5fc291cmNlRmlsZXNbc291cmNlRmlsZUlkXTsKKyAg
ICAgICAgICAgIGlmIChzb3VyY2VGaWxlKSB7CisgICAgICAgICAgICAgICAgdGhpcy5zZXRCcmVh
a3BvaW50KHNvdXJjZUZpbGVJZCwgYnJlYWtwb2ludERhdGEubGluZU51bWJlciwgYnJlYWtwb2lu
dERhdGEuY29uZGl0aW9uLCBicmVha3BvaW50RGF0YS5lbmFibGVkLCBmYWxzZSk7CisgICAgICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEFkZCBi
cmVha3BvaW50IG9uY2Ugc291cmNlIGZpbGUgYmVjb21lcyBhdmFpbGFibGUuCisgICAgICAgICAg
ICB2YXIgcGVuZGluZ0JyZWFrcG9pbnRzID0gdGhpcy5fYnJlYWtwb2ludHNXaXRob3V0U291cmNl
RmlsZVtzb3VyY2VGaWxlSWRdOworICAgICAgICAgICAgaWYgKCFwZW5kaW5nQnJlYWtwb2ludHMp
IHsKKyAgICAgICAgICAgICAgICBwZW5kaW5nQnJlYWtwb2ludHMgPSBbXTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9icmVha3BvaW50c1dpdGhvdXRTb3VyY2VGaWxlW3NvdXJjZUZpbGVJZF0gPSBw
ZW5kaW5nQnJlYWtwb2ludHM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwZW5kaW5nQnJl
YWtwb2ludHMucHVzaChicmVha3BvaW50RGF0YSk7CiAgICAgICAgIH0KICAgICB9LAogCiAgICAg
X3NhdmVCcmVha3BvaW50czogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIHNlcmlhbGl6
ZWRCcmVha3BvaW50cyA9IFtdOwotICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNb2RlbC5icmVha3BvaW50czsKLSAgICAgICAgZm9yICh2YXIgaWQgaW4gYnJl
YWtwb2ludHMpIHsKLSAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0gYnJlYWtwb2ludHNbaWRd
OwotICAgICAgICAgICAgaWYgKCFicmVha3BvaW50LnVybCkKLSAgICAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgICAgIHZhciBzZXJpYWxpemVkQnJlYWtwb2ludCA9IHt9OwotICAgICAg
ICAgICAgc2VyaWFsaXplZEJyZWFrcG9pbnQudXJsID0gYnJlYWtwb2ludC51cmw7Ci0gICAgICAg
ICAgICBzZXJpYWxpemVkQnJlYWtwb2ludC5saW5lTnVtYmVyID0gYnJlYWtwb2ludC5saW5lTnVt
YmVyOwotICAgICAgICAgICAgc2VyaWFsaXplZEJyZWFrcG9pbnQuY29sdW1uTnVtYmVyID0gYnJl
YWtwb2ludC5jb2x1bW5OdW1iZXI7Ci0gICAgICAgICAgICBzZXJpYWxpemVkQnJlYWtwb2ludC5j
b25kaXRpb24gPSBicmVha3BvaW50LmNvbmRpdGlvbjsKLSAgICAgICAgICAgIHNlcmlhbGl6ZWRC
cmVha3BvaW50LmVuYWJsZWQgPSBicmVha3BvaW50LmVuYWJsZWQ7Ci0gICAgICAgICAgICBzZXJp
YWxpemVkQnJlYWtwb2ludHMucHVzaChzZXJpYWxpemVkQnJlYWtwb2ludCk7CisKKyAgICAgICAg
Ly8gU3RvcmUgYWN0aXZlIGJyZWFrcG9pbnRzLgorICAgICAgICBmb3IgKHZhciBpZCBpbiB0aGlz
Ll9wcmVzZW50YXRpb25CcmVha3BvaW50cykgeworICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQg
PSB0aGlzLl9wcmVzZW50YXRpb25CcmVha3BvaW50c1tpZF07CisgICAgICAgICAgICBpZiAoYnJl
YWtwb2ludC5zb3VyY2VGaWxlICYmIGJyZWFrcG9pbnQuc291cmNlRmlsZS51cmwpCisgICAgICAg
ICAgICAgICAgc2VyaWFsaXplZEJyZWFrcG9pbnRzLnB1c2goYnJlYWtwb2ludC5zZXJpYWxpemUo
KSk7CiAgICAgICAgIH0KKworICAgICAgICAvLyBTdG9yZSBpbmFjdGl2ZSBicmVha3BvaW50cy4K
KyAgICAgICAgZm9yICh2YXIgc291cmNlRmlsZUlkIGluIHRoaXMuX2JyZWFrcG9pbnRzV2l0aG91
dFNvdXJjZUZpbGUpCisgICAgICAgICAgICBzZXJpYWxpemVkQnJlYWtwb2ludHMgPSBzZXJpYWxp
emVkQnJlYWtwb2ludHMuY29uY2F0KHRoaXMuX2JyZWFrcG9pbnRzV2l0aG91dFNvdXJjZUZpbGVb
c291cmNlRmlsZUlkXSk7CisKKyAgICAgICAgLy8gU2FuaXRpemUgZGVidWdnZXIgaWRzLgorICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlcmlhbGl6ZWRCcmVha3BvaW50cy5sZW5ndGg7ICsr
aSkKKyAgICAgICAgICAgIGRlbGV0ZSBzZXJpYWxpemVkQnJlYWtwb2ludHNbaV0uZGVidWdnZXJJ
ZDsKKwogICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuYnJlYWtwb2ludHMgPSBzZXJpYWxp
emVkQnJlYWtwb2ludHM7CiAgICAgfSwKIApAQCAtNDQ1LDkgKzQ2MywyNiBAQCBXZWJJbnNwZWN0
b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICBfcmVzZXQ6
IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuX3NvdXJjZUZp
bGVzKSB7CisgICAgICAgICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3NvdXJjZUZpbGVzW2lk
XTsKKyAgICAgICAgICAgIGZvciAodmFyIGxpbmUgaW4gc291cmNlRmlsZS5icmVha3BvaW50cykg
eworICAgICAgICAgICAgICAgIHZhciBicmVha3BvaW50cyA9IHRoaXMuX2JyZWFrcG9pbnRzV2l0
aG91dFNvdXJjZUZpbGVbc291cmNlRmlsZS5pZF07CisgICAgICAgICAgICAgICAgaWYgKCFicmVh
a3BvaW50cykgeworICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50cyA9IFtdOworICAgICAg
ICAgICAgICAgICAgICB0aGlzLl9icmVha3BvaW50c1dpdGhvdXRTb3VyY2VGaWxlW3NvdXJjZUZp
bGUuaWRdID0gYnJlYWtwb2ludHM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IGJyZWFrcG9pbnRzLnB1c2goc291cmNlRmlsZS5icmVha3BvaW50c1tsaW5lXS5zZXJpYWxpemUo
KSk7CisgICAgICAgICAgICB9IAorICAgICAgICB9CisKICAgICAgICAgdGhpcy5fc291cmNlRmls
ZXMgPSB7fTsKICAgICAgICAgdGhpcy5fbWVzc2FnZXMgPSBbXTsKICAgICAgICAgdGhpcy5fcHJl
c2VudGF0aW9uQnJlYWtwb2ludHMgPSB7fTsKKyAgICB9LAorCisgICAgX2RlYnVnZ2VyUmVzZXQ6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Jlc2V0KCk7CiAgICAgICAgIHRoaXMu
X3ByZXNlbnRhdGlvbkNhbGxGcmFtZXMgPSBbXTsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRDYWxs
RnJhbWVJbmRleCA9IDA7CiAgICAgfQpAQCAtNDU1LDQyICs0OTAsMjYgQEAgV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogCiBXZWJJbnNwZWN0b3Iu
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVj
dG9yLk9iamVjdC5wcm90b3R5cGU7CiAKLVdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25CcmVha3Bv
aW50ID0gZnVuY3Rpb24oYnJlYWtwb2ludCwgc291cmNlRmlsZSwgbGluZU51bWJlcikKK1dlYklu
c3BlY3Rvci5QcmVzZW50YXRpb25CcmVha3BvaW50ID0gZnVuY3Rpb24oc291cmNlRmlsZSwgbGlu
ZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkLCBkZWJ1Z2dlcklkLCBsb2NhdGlvbikKIHsKLSAg
ICB0aGlzLl9icmVha3BvaW50ID0gYnJlYWtwb2ludDsKLSAgICB0aGlzLl9zb3VyY2VGaWxlID0g
c291cmNlRmlsZTsKLSAgICB0aGlzLl9saW5lTnVtYmVyID0gbGluZU51bWJlcjsKKyAgICB0aGlz
LnNvdXJjZUZpbGUgPSBzb3VyY2VGaWxlOworICAgIHRoaXMuc291cmNlRmlsZUlkID0gc291cmNl
RmlsZS5pZDsKKyAgICB0aGlzLmxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyOworICAgIHRoaXMuY29u
ZGl0aW9uID0gY29uZGl0aW9uOworICAgIHRoaXMuZW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgdGhp
cy5kZWJ1Z2dlcklkID0gZGVidWdnZXJJZDsKKyAgICB0aGlzLmxvY2F0aW9uID0gbG9jYXRpb247
CiB9CiAKIFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25CcmVha3BvaW50LnByb3RvdHlwZSA9IHsK
LSAgICBnZXQgc291cmNlRmlsZUlkKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9zb3Vy
Y2VGaWxlLmlkOwotICAgIH0sCi0KLSAgICBnZXQgbGluZU51bWJlcigpCi0gICAgewotICAgICAg
ICByZXR1cm4gdGhpcy5fbGluZU51bWJlcjsKLSAgICB9LAotCi0gICAgZ2V0IGNvbmRpdGlvbigp
Ci0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fYnJlYWtwb2ludC5jb25kaXRpb247Ci0gICAg
fSwKLQotICAgIGdldCBlbmFibGVkKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9icmVh
a3BvaW50LmVuYWJsZWQ7Ci0gICAgfSwKLQogICAgIGdldCB1cmwoKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMuX3NvdXJjZUZpbGUudXJsOworICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VG
aWxlLnVybDsKICAgICB9LAogCiAgICAgZ2V0IHJlc29sdmVkKCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiAhIXRoaXMuX2JyZWFrcG9pbnQubG9jYXRpb25zLmxlbmd0aAorICAgICAgICByZXR1cm4g
ISF0aGlzLmxvY2F0aW9uOwogICAgIH0sCiAKICAgICBsb2FkU25pcHBldDogZnVuY3Rpb24oY2Fs
bGJhY2spCkBAIC01MDMsNyArNTIyLDIyIEBAIFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25CcmVh
a3BvaW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBzbmlwcGV0ID0gY29udGVudC5z
dWJzdHJpbmcobGluZUVuZGluZ3NbdGhpcy5saW5lTnVtYmVyIC0gMV0sIGxpbmVFbmRpbmdzW3Ro
aXMubGluZU51bWJlcl0pOwogICAgICAgICAgICAgY2FsbGJhY2soc25pcHBldCk7CiAgICAgICAg
IH0KLSAgICAgICAgdGhpcy5fc291cmNlRmlsZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Q29u
dGVudC5iaW5kKHRoaXMpKTsKKyAgICAgICAgaWYgKCF0aGlzLnNvdXJjZUZpbGUpIHsKKyAgICAg
ICAgICAgIGNhbGxiYWNrKFdlYkluc3BlY3Rvci5VSVN0cmluZygiTi9BIikpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHRoaXMuc291cmNlRmlsZS5yZXF1ZXN0Q29u
dGVudChkaWRSZXF1ZXN0Q29udGVudC5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgc2VyaWFs
aXplOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgc2VyaWFsaXplZEJyZWFrcG9pbnQg
PSB7fTsKKyAgICAgICAgc2VyaWFsaXplZEJyZWFrcG9pbnQuc291cmNlRmlsZUlkID0gdGhpcy5z
b3VyY2VGaWxlLmlkOworICAgICAgICBzZXJpYWxpemVkQnJlYWtwb2ludC5saW5lTnVtYmVyID0g
dGhpcy5saW5lTnVtYmVyOworICAgICAgICBzZXJpYWxpemVkQnJlYWtwb2ludC5jb25kaXRpb24g
PSB0aGlzLmNvbmRpdGlvbjsKKyAgICAgICAgc2VyaWFsaXplZEJyZWFrcG9pbnQuZW5hYmxlZCA9
IHRoaXMuZW5hYmxlZDsKKyAgICAgICAgc2VyaWFsaXplZEJyZWFrcG9pbnQuZGVidWdnZXJJZCA9
IHRoaXMuZGVidWdnZXJJZDsKKyAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZWRCcmVha3BvaW50Owog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXNvdXJjZVRyZWVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKaW5kZXggZmEyYzQ0ZTM1ZTkyMTZkNmM5OGM4NTZhZWMw
ZmRiYjRjYTYzN2JhNy4uZGI2YjVkMjFiZTkwMzQxOTA5YTRlYTFkZjhhMjkxMWZiNzM5YmEwNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRy
ZWVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlVHJlZU1vZGVsLmpzCkBAIC0zMSw4ICszMSw5IEBACiAKIFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVRyZWVNb2RlbCA9IGZ1bmN0aW9uKG5ldHdvcmtNYW5hZ2VyKQogewotICAgIFdlYkluc3BlY3Rv
ci5uZXR3b3JrTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFu
YWdlci5FdmVudFR5cGVzLlJlc291cmNlRmluaXNoZWQsIHRoaXMuX29uUmVzb3VyY2VVcGRhdGVk
LCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IubmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBlcy5SZXNvdXJjZVN0YXJ0ZWQs
IHRoaXMuX29uUmVzb3VyY2VTdGFydGVkLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3IubmV0d29y
a01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIuRXZl
bnRUeXBlcy5SZXNvdXJjZVVwZGF0ZWQsIHRoaXMuX29uUmVzb3VyY2VVcGRhdGVkLCB0aGlzKTsK
KyAgICBXZWJJbnNwZWN0b3IubmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBlcy5SZXNvdXJjZUZpbmlzaGVkLCB0aGlzLl9v
blJlc291cmNlVXBkYXRlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLm5ldHdvcmtNYW5hZ2Vy
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLkV2ZW50VHlwZXMu
RnJhbWVEZXRhY2hlZCwgdGhpcy5fb25GcmFtZURldGFjaGVkRnJvbVBhcmVudCwgdGhpcyk7CiAg
ICAgV2ViSW5zcGVjdG9yLm5ldHdvcmtNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLk5ldHdvcmtNYW5hZ2VyLkV2ZW50VHlwZXMuRnJhbWVDb21taXR0ZWRMb2FkLCB0aGlzLl9v
bkNvbW1pdExvYWQsIHRoaXMpOwogCkBAIC0xMzEsNiArMTMyLDEzIEBAIFdlYkluc3BlY3Rvci5S
ZXNvdXJjZVRyZWVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZy
YW1lRGV0YWNoZWQsIGZyYW1lSWQpOwogICAgIH0sCiAKKyAgICBfb25SZXNvdXJjZVN0YXJ0ZWQ6
IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9jYWNoZWRSZXNvdXJj
ZXNQcm9jZXNzZWQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHRoaXMuX2JpbmRSZXNv
dXJjZVVSTChldmVudC5kYXRhKTsKKyAgICB9LAorCiAgICAgX29uUmVzb3VyY2VVcGRhdGVkOiBm
dW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fY2FjaGVkUmVzb3VyY2Vz
UHJvY2Vzc2VkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9XZWJLaXQucXJjIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQu
cXJjCmluZGV4IDAwNDExMzg3OWY0NjdiYmE5ZDdkODk3YzdlNGNmYWIxMjM2NGMwOTcuLjAyMGFj
NGFkYzlkMjE1MjFlNDU3MGU2ZDA4OGUxMTQxZTVkNWUxYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKQEAgLTksNyArOSw2IEBACiAgICAgPGZp
bGU+QXVkaXRSdWxlcy5qczwvZmlsZT4KICAgICA8ZmlsZT5BdWRpdHNQYW5lbC5qczwvZmlsZT4K
ICAgICA8ZmlsZT5Cb3R0b21VcFByb2ZpbGVEYXRhR3JpZFRyZWUuanM8L2ZpbGU+Ci0gICAgPGZp
bGU+QnJlYWtwb2ludC5qczwvZmlsZT4KICAgICA8ZmlsZT5CcmVha3BvaW50TWFuYWdlci5qczwv
ZmlsZT4KICAgICA8ZmlsZT5CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzPC9maWxlPgogICAgIDxm
aWxlPkNhbGxTdGFja1NpZGViYXJQYW5lLmpzPC9maWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggMzNhZDM4YWU4Yjc3OTYz
Nzk3NWFmNTU1NjI2NDYyYjIwNzQwYmZmYi4uZTA1OGFlMGRhNDJiNzczNjRlZTE4NDNiMzYyNmJl
NTYzNzllZDZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5odG1sCkBAIC03Myw3ICs3Myw2IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQ29va2llSXRlbXNWaWV3LmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJBcHBsaWNhdGlvbkNhY2hl
SXRlbXNWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJTY3JpcHQuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9IkJyZWFrcG9pbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9IkJyZWFrcG9pbnRNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTaWRlYmFyUGFuZS5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRWxlbWVudHNU
cmVlT3V0bGluZS5qcyI+PC9zY3JpcHQ+Cg==
</data>
<flag name="review"
          id="81174"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>