<?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>58118</bug_id>
          
          <creation_ts>2011-04-07 23:57:33 -0700</creation_ts>
          <short_desc>Web Inspector: use &quot;locations&quot; for debugger scripts, &quot;lineNumbers&quot; for the UI elements.</short_desc>
          <delta_ts>2011-04-08 05:47:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>buildbot</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>382038</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-07 23:57:33 -0700</bug_when>
    <thetext>This change reuses location for call frames in the protocol + structures script location &lt;-&gt; source lines interaction better. When we need UI columns, we will add them, but we should distinguish between script and UI terms on the type level, not naming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382039</commentid>
    <comment_count>1</comment_count>
      <attachid>88774</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-07 23:59:32 -0700</bug_when>
    <thetext>Created attachment 88774
[PATCH] Work in progress, need to check tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382124</commentid>
    <comment_count>2</comment_count>
      <attachid>88791</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-08 03:32:47 -0700</bug_when>
    <thetext>Created attachment 88791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382130</commentid>
    <comment_count>3</comment_count>
      <attachid>88791</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-04-08 04:02:46 -0700</bug_when>
    <thetext>Comment on attachment 88791
Patch

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

Looks good.

&gt; Source/WebCore/inspector/front-end/ScriptsPanel.js:391
&gt;              {

didGetSourceLine here and below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382137</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-08 04:18:26 -0700</bug_when>
    <thetext>Attachment 88791 did not build on win:
Build output: http://queues.webkit.org/results/8373494</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382157</commentid>
    <comment_count>5</comment_count>
      <attachid>88791</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-04-08 05:07:07 -0700</bug_when>
    <thetext>Comment on attachment 88791
Patch

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

&gt; Source/WebCore/inspector/front-end/CallStackSidebarPane.js:-68
&gt; -                subtitle = WebInspector.UIString(&quot;(internal script)&quot;);

This should not have changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382161</commentid>
    <comment_count>6</comment_count>
      <attachid>88802</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-08 05:19:31 -0700</bug_when>
    <thetext>Created attachment 88802
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382163</commentid>
    <comment_count>7</comment_count>
      <attachid>88802</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-04-08 05:24:49 -0700</bug_when>
    <thetext>Comment on attachment 88802
Patch

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

&gt; Source/WebCore/inspector/InspectorDebuggerAgent.cpp:182
&gt; +        // FIXME: replace with input validation.

Please file a bug and put its number next to the FIXME

&gt; Source/WebCore/inspector/InspectorDebuggerAgent.cpp:225
&gt; +    if (!location-&gt;getString(&quot;sourceID&quot;, &amp;sourceId) || !location-&gt;getNumber(&quot;lineNumber&quot;, &amp;lineNumber)) {

This code repeats twice, consider extracting a method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382172</commentid>
    <comment_count>8</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-08 05:37:14 -0700</bug_when>
    <thetext>Committed r83290: &lt;http://trac.webkit.org/changeset/83290&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382178</commentid>
    <comment_count>9</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-08 05:47:22 -0700</bug_when>
    <thetext>Attachment 88802 did not build on win:
Build output: http://queues.webkit.org/results/8342921</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88774</attachid>
            <date>2011-04-07 23:59:32 -0700</date>
            <delta_ts>2011-04-08 03:32:35 -0700</delta_ts>
            <desc>[PATCH] Work in progress, need to check tests.</desc>
            <filename>bug-58118-20110408105930.patch</filename>
            <type>text/plain</type>
            <size>20689</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMyNTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyY2I3MjE0ODdhNDQ3Yjhh
NzMzNTdmYjgxZWMyM2RjYTY3NTExYWI1Li4zY2E1NmVjM2Q5NjJjMzc0YTZiMzU2NGNkNDc4YTNh
NjE4NTlmYWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDQtMDcgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdXNlICJsb2NhdGlvbnMi
IGZvciBkZWJ1Z2dlciBzY3JpcHRzLCAibGluZU51bWJlcnMiIGZvciB0aGUgVUkgZWxlbWVudHMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODExOAor
CisgICAgICAgIFRoaXMgY2hhbmdlIHJldXNlcyBsb2NhdGlvbiBmb3IgY2FsbCBmcmFtZXMgaW4g
dGhlIHByb3RvY29sICsgc3RydWN0dXJlcyBzY3JpcHQKKyAgICAgICAgbG9jYXRpb24gPC0+IHNv
dXJjZSBsaW5lcyBpbnRlcmFjdGlvbiBiZXR0ZXIuIFdoZW4gd2UgbmVlZCBVSSBjb2x1bW5zLCB3
ZSB3aWxsIGFkZAorICAgICAgICB0aGVtLCBidXQgd2Ugc2hvdWxkIGRpc3Rpbmd1aXNoIGJldHdl
ZW4gc2NyaXB0IGFuZCBVSSB0ZXJtcyBvbiB0aGUgdHlwZSBsZXZlbCwgbm90IG5hbWluZy4KKwor
ICAgICAgICAqIEVuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAgKiBi
aW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRTb3VyY2UuanM6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ2FsbFN0YWNrU2lkZWJhclBhbmUucHJvdG90eXBlLnVwZGF0
ZS5kaWRHZXRTb3VyY2VMaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRl
YmFyUGFuZS5wcm90b3R5cGUudXBkYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVi
dWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuYWRkQ29uc29sZU1lc3NhZ2UuZGlkUmVx
dWVzdFNvdXJjZU1hcHBpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwucHJvdG90eXBlLmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5jb250aW51ZVRvTGlu
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90
b3R5cGUuX3NldEJyZWFrcG9pbnRJbkRlYnVnZ2VyLmRpZFJlcXVlc3RTb3VyY2VNYXBwaW5nKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlw
ZS5fc2V0QnJlYWtwb2ludEluRGVidWdnZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9icmVha3BvaW50QWRkZWQuZGlkUmVxdWVz
dFNvdXJjZU1hcHBpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0
aW9uTW9kZWwucHJvdG90eXBlLl9icmVha3BvaW50QWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlByZXNlbmF0aW9uQ2FsbEZyYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QcmVzZW5h
dGlvbkNhbGxGcmFtZS5wcm90b3R5cGUuc291cmNlTGluZS5kaWRSZXF1ZXN0U291cmNlTWFwcGlu
Zyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJlc2VuYXRpb25DYWxsRnJhbWUucHJvdG90eXBl
LnNvdXJjZUxpbmUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0
dGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlci5sb2NhdGlvblRv
UG9zaXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlci5saW5lVG9Q
b3NpdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fZGVidWdnZXJQ
YXVzZWQuZWxzZS5kaWRHZXRTb3VyY2VMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fZGVidWdnZXJQYXVzZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuc2hvd0FuY2hvckxvY2F0aW9uKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9jYWxsRnJhbWVTZWxlY3Rl
ZC5kaWRHZXRTb3VyY2VMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1Bh
bmVsLnByb3RvdHlwZS5fY2FsbEZyYW1lU2VsZWN0ZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvU291cmNlRmlsZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBw
aW5nLnByb3RvdHlwZS5zY3JpcHRMb2NhdGlvblRvU291cmNlTGluZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU291cmNlTWFwcGluZy5wcm90b3R5cGUuc291cmNlTGluZVRvU2NyaXB0TG9jYXRp
b24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZvcm1hdHRlZFNvdXJjZU1hcHBpbmcucHJvdG90
eXBlLnNjcmlwdExvY2F0aW9uVG9Tb3VyY2VMaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5G
b3JtYXR0ZWRTb3VyY2VNYXBwaW5nLnByb3RvdHlwZS5zb3VyY2VMaW5lVG9TY3JpcHRMb2NhdGlv
bik6CisKIDIwMTEtMDQtMDcgIE5lZCBIb2xicm9vayAgPG5ob2xicm9va0BhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJDb3Jl
L0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCAxNTkzOGQ5N2Q5ODY3NmY4
MTA5MThkM2RiMGI4NTQwODUxZmVjNmRjLi5lZjBlYWIwYTlhOWU4ZDFlYTU2OTc3MzA0YTE4MTIz
ODc0NTZkOGQ4IDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDE0CldjbVoyNnBMeUxwPF8j
amtvQk0+Tl81YzdabG0oanIKCmRlbHRhIDk0CnpjbVoyQ2s5b3k+PF8jamsta0EofTM/JlN5M2BJ
YVhrcypnY2Z1V2NvOE9ZMElDOypDVUdBSj5gMD54fkJTY3lSYwpSRDJoaypXSk13VSVfNzI1ZGpR
P1E2WjhOOAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RlYnVnZ2Vy
U2NyaXB0LmpzIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanMK
aW5kZXggNjM2YzEwNjE0NDUwYTVjMzgxNzkwNWRiNWM3MGI3NWIwODY4YmI4NC4uMWEyOGM3ZjEy
MTExN2E0NzljYjMzMGFjMjM1OWMyMTcwZTJiYWU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanMKQEAgLTI1MCw3ICsyNTAsNiBAQCBEZWJ1Z2dlclNj
cmlwdC5fZnJhbWVNaXJyb3JUb0pTQ2FsbEZyYW1lID0gZnVuY3Rpb24oZnJhbWVNaXJyb3IsIGNh
bGxlckZyYW1lKQogICAgICAgICAibGluZSI6IGxvY2F0aW9uLmxpbmUsCiAgICAgICAgICJjb2x1
bW4iOiBsb2NhdGlvbi5jb2x1bW4sCiAgICAgICAgICJmdW5jdGlvbk5hbWUiOiBmdW5jdGlvbk5h
bWUsCi0gICAgICAgICJ0eXBlIjogImZ1bmN0aW9uIiwKICAgICAgICAgInRoaXNPYmplY3QiOiB0
aGlzT2JqZWN0LAogICAgICAgICAic2NvcGVDaGFpbiI6IHNjb3BlQ2hhaW4sCiAgICAgICAgICJz
Y29wZVR5cGUiOiBzY29wZVR5cGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHRTb3VyY2UuanMKaW5kZXggZTY3ZWYyY2Y4MWRjNWU3Y2Y0OTMzNzE5ZDRjZGFh
ZjAzODdhMjVlNy4uYTY3M2ZkNTM3MWU2YmYxNTVjYWJjMzE0OGE1Njk2MjQ5MDdhMTQ5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwpA
QCAtNDc0LDExICs0NzQsOCBAQCBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3QuZnJvbU9iamVj
dCA9IGZ1bmN0aW9uKG9iamVjdCwgb2JqZWN0SWQpCiBJbmplY3RlZFNjcmlwdC5DYWxsRnJhbWVQ
cm94eSA9IGZ1bmN0aW9uKG9yZGluYWwsIGNhbGxGcmFtZSkKIHsKICAgICB0aGlzLmlkID0gIntc
Im9yZGluYWxcIjoiICsgb3JkaW5hbCArICIsXCJpbmplY3RlZFNjcmlwdElkXCI6IiArIGluamVj
dGVkU2NyaXB0SWQgKyAifSI7Ci0gICAgdGhpcy50eXBlID0gY2FsbEZyYW1lLnR5cGU7CiAgICAg
dGhpcy5mdW5jdGlvbk5hbWUgPSAodGhpcy50eXBlID09PSAiZnVuY3Rpb24iID8gY2FsbEZyYW1l
LmZ1bmN0aW9uTmFtZSA6ICIiKTsKLSAgICB0aGlzLnNvdXJjZUlEID0gY2FsbEZyYW1lLnNvdXJj
ZUlEOwotICAgIHRoaXMubGluZSA9IGNhbGxGcmFtZS5saW5lOwotICAgIHRoaXMuY29sdW1uID0g
Y2FsbEZyYW1lLmNvbHVtbjsKKyAgICB0aGlzLmxvY2F0aW9uID0geyBzb3VyY2VJRDogY2FsbEZy
YW1lLnNvdXJjZUlELCBsaW5lTnVtYmVyOiBjYWxsRnJhbWUubGluZSwgY29sdW1uTnVtYmVyOiBj
YWxsRnJhbWUuY29sdW1uIH07CiAgICAgdGhpcy5zY29wZUNoYWluID0gdGhpcy5fd3JhcFNjb3Bl
Q2hhaW4oY2FsbEZyYW1lKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5q
c29uCmluZGV4IDY4NDUzYjM0NDFjMjZjNjZjZTExOGIxMjFiNzJkNTg0ZGEwZTZhY2QuLmQwMGUw
MzliNjc0NjljMWY2NzFjNjg1NmQ2Yzk5MzUyZjI5ZGRkNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTEyNDEsMTEgKzEyNDEsOCBAQAogICAgICAgICAgICAg
ICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAg
ICAgICAgICAgICAgICAgICAgICJpZCI6IHsgInR5cGUiOiAic3RyaW5nIiwgICJkZXNjcmlwdGlv
biI6ICJDYWxsIGZyYW1lIGlkZW50aWZpZXIiIH0sCi0gICAgICAgICAgICAgICAgICAgICJ0eXBl
IjogeyAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiQ2FsbCBmcmFtZSB0eXBlLiAv
LyBGSVhNRSIgfSwKICAgICAgICAgICAgICAgICAgICAgImZ1bmN0aW9uTmFtZSI6IHsgInR5cGUi
OiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIk5hbWUgb2YgdGhlIGZ1bmN0aW9uIGNhbGxlZCBv
biB0aGlzIGZyYW1lLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgInNvdXJjZUlEIjogeyAidHlw
ZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiU2NyaXB0IGlkZW50aWZpZXIuIiB9LAotICAg
ICAgICAgICAgICAgICAgICAibGluZSI6IHsgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlv
biI6ICJMaW5lIG51bWJlciBpbiB0aGUgc2NyaXB0LiIgfSwKLSAgICAgICAgICAgICAgICAgICAg
ImNvbHVtbiI6IHsgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJDb2x1bW4gbnVt
YmVyIGluIHRoZSBzY3JpcHQuIiB9LAorICAgICAgICAgICAgICAgICAgICAibG9jYXRpb24iOiB7
ICIkcmVmIjogIkxvY2F0aW9uIiwgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGluIHRoZSBzb3Vy
Y2UgY29kZS4iIH0sCiAgICAgICAgICAgICAgICAgICAgICJzY29wZUNoYWluIjogeyAidHlwZSI6
ICJhcnJheSIsICJpdGVtcyI6IHsgInR5cGUiOiAib2JqZWN0IiB9LCAiZGVzY3JpcHRpb24iOiAi
U2NvcGUgY2hhaW4gZm9yIGdpdmVuIGNhbGwgZnJhbWUuIC8vIEZJWE1FIiB9CiAgICAgICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGVidWdnZXIgY2FsbCBm
cmFtZS4gQXJyYXkgb2YgY2FsbCBmcmFtZXMgZm9ybSBjYWxsIHN0YWNrLiIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQ
YW5lLmpzCmluZGV4IDNkNzExMDE0MDRjZTExYTg4MmZhN2NjYmI1ZmM0M2M3MzM5YzdhNWIuLmEz
MjdmN2MxMjQ5M2NiZjk5MDk5NmVmYzhlMWY3ZDk3NzM0YmU1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DYWxsU3RhY2tTaWRlYmFyUGFu
ZS5qcwpAQCAtNDYsMzIgKzQ2LDE2IEBAIFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFu
ZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAg
ICB2YXIgdGl0bGU7Ci0gICAgICAgIHZhciBzdWJ0aXRsZTsKLSAgICAgICAgdmFyIHNjcmlwdDsK
LQogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhbGxGcmFtZXMubGVuZ3RoOyArK2kpIHsK
ICAgICAgICAgICAgIHZhciBjYWxsRnJhbWUgPSBjYWxsRnJhbWVzW2ldOwotICAgICAgICAgICAg
c3dpdGNoIChjYWxsRnJhbWUudHlwZSkgewotICAgICAgICAgICAgY2FzZSAiZnVuY3Rpb24iOgot
ICAgICAgICAgICAgICAgIHRpdGxlID0gY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIihhbm9ueW1vdXMgZnVuY3Rpb24pIik7Ci0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICBjYXNlICJwcm9ncmFtIjoKLSAgICAgICAgICAgICAgICB0aXRs
ZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiKHByb2dyYW0pIik7Ci0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZhciBzdWJ0aXRsZTsKLSAgICAg
ICAgICAgIGlmICghY2FsbEZyYW1lLmlzSW50ZXJuYWxTY3JpcHQpCi0gICAgICAgICAgICAgICAg
c3VidGl0bGUgPSBXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVGb3JVUkwoY2FsbEZyYW1lLnVybCk7
Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgc3VidGl0bGUgPSBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIihpbnRlcm5hbCBzY3JpcHQpIik7CisgICAgICAgICAgICB2YXIgdGl0bGUg
PSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8IFdlYkluc3BlY3Rvci5VSVN0cmluZygiKGFub255
bW91cyBmdW5jdGlvbikiKTsKKyAgICAgICAgICAgIHZhciBzdWJ0aXRsZSA9IFdlYkluc3BlY3Rv
ci5kaXNwbGF5TmFtZUZvclVSTChjYWxsRnJhbWUudXJsKTsKIAogICAgICAgICAgICAgdmFyIHBs
YWNhcmQgPSBuZXcgV2ViSW5zcGVjdG9yLlBsYWNhcmQodGl0bGUsIHN1YnRpdGxlKTsKICAgICAg
ICAgICAgIHBsYWNhcmQuY2FsbEZyYW1lID0gY2FsbEZyYW1lOwogICAgICAgICAgICAgcGxhY2Fy
ZC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fcGxhY2FyZFNlbGVjdGVk
LmJpbmQodGhpcywgcGxhY2FyZCksIGZhbHNlKTsKIAotICAgICAgICAgICAgZnVuY3Rpb24gZGlk
R2V0U291cmNlTG9jYXRpb24ocGxhY2FyZCwgc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyLCBjb2x1
bW5OdW1iZXIpCisgICAgICAgICAgICBmdW5jdGlvbiBkaWRHZXRTb3VyY2VMaW5lKHBsYWNhcmQs
IHNvdXJjZUZpbGVJZCwgbGluZU51bWJlcikKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICBpZiAocGxhY2FyZC5zdWJ0aXRsZSkKICAgICAgICAgICAgICAgICAgICAgcGxhY2FyZC5zdWJ0
aXRsZSArPSAiOiIgKyAobGluZU51bWJlciArIDEpOwpAQCAtNzksNyArNjMsNyBAQCBXZWJJbnNw
ZWN0b3IuQ2FsbFN0YWNrU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAg
ICAgICBwbGFjYXJkLnN1YnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJsaW5lICVkIiwg
bGluZU51bWJlciArIDEpOwogICAgICAgICAgICAgICAgIHBsYWNhcmQuX3RleHQgPSBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIiVzKCkgYXQgJXMiLCBwbGFjYXJkLnRpdGxlLCBwbGFjYXJkLnN1YnRp
dGxlKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhbGxGcmFtZS5zb3VyY2VMb2NhdGlv
bihkaWRHZXRTb3VyY2VMb2NhdGlvbi5iaW5kKHRoaXMsIHBsYWNhcmQpKTsKKyAgICAgICAgICAg
IGNhbGxGcmFtZS5zb3VyY2VMaW5lKGRpZEdldFNvdXJjZUxpbmUuYmluZCh0aGlzLCBwbGFjYXJk
KSk7CiAKICAgICAgICAgICAgIHRoaXMucGxhY2FyZHMucHVzaChwbGFjYXJkKTsKICAgICAgICAg
ICAgIHRoaXMuYm9keUVsZW1lbnQuYXBwZW5kQ2hpbGQocGxhY2FyZC5lbGVtZW50KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50
YXRpb25Nb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbC5qcwppbmRleCA0NzcyMGEyMDQ0OTA3ZmE5YTk2MTU1OTM4YzNk
MDdmZTY2NTM0ZmZiLi44NWM1OTBiMTRhMGQ3MTljZjIxNjgwYjEyZDNjN2ZiZjdlMTA0YTllIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCkBAIC0yMjQsNyArMjI0LDcgQEAgV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB7
CiAgICAgICAgICAgICB2YXIgcHJlc2VudGF0aW9uTWVzc2FnZSA9IHt9OwogICAgICAgICAgICAg
cHJlc2VudGF0aW9uTWVzc2FnZS5zb3VyY2VGaWxlSWQgPSBzb3VyY2VGaWxlLmlkOwotICAgICAg
ICAgICAgcHJlc2VudGF0aW9uTWVzc2FnZS5saW5lTnVtYmVyID0gbWFwcGluZy5zY3JpcHRMb2Nh
dGlvblRvU291cmNlTG9jYXRpb24obWVzc2FnZS5saW5lIC0gMSwgMCkubGluZU51bWJlcjsKKyAg
ICAgICAgICAgIHByZXNlbnRhdGlvbk1lc3NhZ2UubGluZU51bWJlciA9IG1hcHBpbmcuc2NyaXB0
TG9jYXRpb25Ub1NvdXJjZUxpbmUoe2xpbmVOdW1iZXI6bWVzc2FnZS5saW5lIC0gMSwgY29sdW1u
TnVtYmVyOjB9KTsKICAgICAgICAgICAgIHByZXNlbnRhdGlvbk1lc3NhZ2Uub3JpZ2luYWxNZXNz
YWdlID0gbWVzc2FnZTsKICAgICAgICAgICAgIHNvdXJjZUZpbGUubWVzc2FnZXMucHVzaChwcmVz
ZW50YXRpb25NZXNzYWdlKTsKICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5Db25zb2xl
TWVzc2FnZUFkZGVkLCBwcmVzZW50YXRpb25NZXNzYWdlKTsKQEAgLTI0Myw3ICsyNDMsNyBAQCBX
ZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAg
ewogICAgICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0U291cmNlTWFwcGluZyhtYXBwaW5nKQogICAg
ICAgICB7Ci0gICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBtYXBwaW5nLnNvdXJjZUxvY2F0aW9u
VG9TY3JpcHRMb2NhdGlvbihsaW5lTnVtYmVyLCAwKTsKKyAgICAgICAgICAgIHZhciBsb2NhdGlv
biA9IG1hcHBpbmcuc291cmNlTGluZVRvU2NyaXB0TG9jYXRpb24obGluZU51bWJlcik7CiAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5jb250aW51ZVRvTG9jYXRpb24obG9j
YXRpb24uc2NyaXB0SWQsIGxvY2F0aW9uLmxpbmVOdW1iZXIsIGxvY2F0aW9uLmNvbHVtbk51bWJl
cik7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fc291cmNlRmlsZXNbc291cmNlRmlsZUlkXS5y
ZXF1ZXN0U291cmNlTWFwcGluZyhkaWRSZXF1ZXN0U291cmNlTWFwcGluZy5iaW5kKHRoaXMpKTsK
QEAgLTI5Nyw3ICsyOTcsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdFNvdXJjZU1hcHBp
bmcobWFwcGluZykKICAgICAgICAgewotICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gbWFwcGlu
Zy5zb3VyY2VMb2NhdGlvblRvU2NyaXB0TG9jYXRpb24oYnJlYWtwb2ludC5saW5lTnVtYmVyLCAw
KTsKKyAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IG1hcHBpbmcuc291cmNlTGluZVRvU2NyaXB0
TG9jYXRpb24oYnJlYWtwb2ludC5saW5lTnVtYmVyKTsKICAgICAgICAgICAgIHZhciBzY3JpcHQg
PSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChsb2NhdGlvbi5z
Y3JpcHRJZCk7CiAgICAgICAgICAgICBpZiAoc2NyaXB0LnNvdXJjZVVSTCkKICAgICAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zZXRCcmVha3BvaW50KHNjcmlwdC5zb3Vy
Y2VVUkwsIGxvY2F0aW9uLmxpbmVOdW1iZXIsIGxvY2F0aW9uLmNvbHVtbk51bWJlciwgYnJlYWtw
b2ludC5jb25kaXRpb24sIGRpZFNldEJyZWFrcG9pbnQuYmluZCh0aGlzKSk7CkBAIC0zOTQsMTAg
KzM5NCw4IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdFNvdXJjZU1hcHBpbmcobWFwcGluZykK
ICAgICAgICAgewogICAgICAgICAgICAgLy8gUmVmaW5lIGxpbmUgbnVtYmVyIGJhc2VkIG9uIHJl
c29sdmVkIGxvY2F0aW9uLgotICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnQubG9jYXRpb24pIHsK
LSAgICAgICAgICAgICAgICB2YXIgc291cmNlTG9jYXRpb24gPSBtYXBwaW5nLnNjcmlwdExvY2F0
aW9uVG9Tb3VyY2VMb2NhdGlvbihicmVha3BvaW50LmxvY2F0aW9uLmxpbmVOdW1iZXIsIGJyZWFr
cG9pbnQubG9jYXRpb24uY29sdW1uTnVtYmVyKTsKLSAgICAgICAgICAgICAgICBicmVha3BvaW50
LmxpbmVOdW1iZXIgPSBzb3VyY2VMb2NhdGlvbi5saW5lTnVtYmVyOwotICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnQubG9jYXRpb24pCisgICAgICAgICAgICAgICAgYnJl
YWtwb2ludC5saW5lTnVtYmVyID0gbWFwcGluZy5zY3JpcHRMb2NhdGlvblRvU291cmNlTGluZShi
cmVha3BvaW50LmxvY2F0aW9uKTsKIAogICAgICAgICAgICAgdmFyIGV4aXN0aW5nQnJlYWtwb2lu
dCA9IHRoaXMuZmluZEJyZWFrcG9pbnQoc291cmNlRmlsZS5pZCwgYnJlYWtwb2ludC5saW5lTnVt
YmVyKTsKICAgICAgICAgICAgIGlmIChleGlzdGluZ0JyZWFrcG9pbnQpIHsKQEAgLTYyMSw3ICs2
MTksNyBAQCBXZWJJbnNwZWN0b3IuUHJlc2VuYXRpb25DYWxsRnJhbWUgPSBmdW5jdGlvbihjYWxs
RnJhbWUsIGluZGV4LCBzb3VyY2VGaWxlKQogICAgIHRoaXMuX2NhbGxGcmFtZSA9IGNhbGxGcmFt
ZTsKICAgICB0aGlzLl9pbmRleCA9IGluZGV4OwogICAgIHRoaXMuX3NvdXJjZUZpbGUgPSBzb3Vy
Y2VGaWxlOwotICAgIHRoaXMuX3NjcmlwdCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNj
cmlwdEZvclNvdXJjZUlEKGNhbGxGcmFtZS5zb3VyY2VJRCk7CisgICAgdGhpcy5fc2NyaXB0ID0g
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNlSUQoY2FsbEZyYW1lLmxv
Y2F0aW9uLnNvdXJjZUlEKTsKIH0KIAogV2ViSW5zcGVjdG9yLlByZXNlbmF0aW9uQ2FsbEZyYW1l
LnByb3RvdHlwZSA9IHsKQEAgLTY3MSwxNyArNjY5LDE2IEBAIFdlYkluc3BlY3Rvci5QcmVzZW5h
dGlvbkNhbGxGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIERlYnVnZ2VyQWdlbnQuZXZhbHVh
dGVPbkNhbGxGcmFtZSh0aGlzLl9jYWxsRnJhbWUuaWQsIGNvZGUsIG9iamVjdEdyb3VwLCBpbmNs
dWRlQ29tbWFuZExpbmVBUEksIGRpZEV2YWx1YXRlT25DYWxsRnJhbWUuYmluZCh0aGlzKSk7CiAg
ICAgfSwKIAotICAgIHNvdXJjZUxvY2F0aW9uOiBmdW5jdGlvbihjYWxsYmFjaykKKyAgICBzb3Vy
Y2VMaW5lOiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fc291
cmNlRmlsZSkgewotICAgICAgICAgICAgY2FsbGJhY2sodW5kZWZpbmVkLCB0aGlzLl9jYWxsRnJh
bWUubGluZSwgdGhpcy5fY2FsbEZyYW1lLmNvbHVtbik7CisgICAgICAgICAgICBjYWxsYmFjayh1
bmRlZmluZWQsIHRoaXMuX2NhbGxGcmFtZS5sb2NhdGlvbi5saW5lTnVtYmVyKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVlc3RTb3Vy
Y2VNYXBwaW5nKG1hcHBpbmcpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzb3VyY2VMb2Nh
dGlvbiA9IG1hcHBpbmcuc2NyaXB0TG9jYXRpb25Ub1NvdXJjZUxvY2F0aW9uKHRoaXMuX2NhbGxG
cmFtZS5saW5lLCB0aGlzLl9jYWxsRnJhbWUuY29sdW1uKTsKLSAgICAgICAgICAgIGNhbGxiYWNr
KHRoaXMuX3NvdXJjZUZpbGUuaWQsIHNvdXJjZUxvY2F0aW9uLmxpbmVOdW1iZXIsIHNvdXJjZUxv
Y2F0aW9uLmNvbHVtbk51bWJlcik7CisgICAgICAgICAgICBjYWxsYmFjayh0aGlzLl9zb3VyY2VG
aWxlLmlkLCBtYXBwaW5nLnNjcmlwdExvY2F0aW9uVG9Tb3VyY2VMaW5lKHRoaXMuX2NhbGxGcmFt
ZS5sb2NhdGlvbikpOwogICAgICAgICB9CiAgICAgICAgIHRoaXMuX3NvdXJjZUZpbGUucmVxdWVz
dFNvdXJjZU1hcHBpbmcoZGlkUmVxdWVzdFNvdXJjZU1hcHBpbmcuYmluZCh0aGlzKSk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRG
b3JtYXR0ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZv
cm1hdHRlci5qcwppbmRleCAyZTE2NmY0ZTkzNzIyNmQxN2I4MmY0MGZlMjM3MTMzNzc0ODdhZDli
Li44MDg1YzU1NjQ3MDkwZTEwYTljMDk2YTZiYjBkZDk0NmJlY2Y1MmE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlci5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlci5qcwpA
QCAtMzYsMTAgKzM2LDE1IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIgPSBmdW5jdGlv
bigpCiAgICAgdGhpcy5fdGFza3MgPSBbXTsKIH0KIAotV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1h
dHRlci5sb2NhdGlvblRvUG9zaXRpb24gPSBmdW5jdGlvbihsaW5lRW5kaW5ncywgbGluZU51bWJl
ciwgY29sdW1uTnVtYmVyKQorV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlci5sb2NhdGlvblRv
UG9zaXRpb24gPSBmdW5jdGlvbihsaW5lRW5kaW5ncywgbG9jYXRpb24pCiB7Ci0gICAgdmFyIHBv
c2l0aW9uID0gbGluZU51bWJlciA/IGxpbmVFbmRpbmdzW2xpbmVOdW1iZXIgLSAxXSArIDEgOiAw
OwotICAgIHJldHVybiBwb3NpdGlvbiArIGNvbHVtbk51bWJlcjsKKyAgICB2YXIgcG9zaXRpb24g
PSBsb2NhdGlvbi5saW5lTnVtYmVyID8gbGluZUVuZGluZ3NbbG9jYXRpb24ubGluZU51bWJlciAt
IDFdICsgMSA6IDA7CisgICAgcmV0dXJuIHBvc2l0aW9uICsgbG9jYXRpb24uY29sdW1uTnVtYmVy
OworfQorCitXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLmxpbmVUb1Bvc2l0aW9uID0gZnVu
Y3Rpb24obGluZUVuZGluZ3MsIGxpbmVOdW1iZXIpCit7CisgICAgcmV0dXJuIHRoaXMubG9jYXRp
b25Ub1Bvc2l0aW9uKGxpbmVFbmRpbmdzLCB7IGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlcjogMCB9KTsKIH0KIAogV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlci5wb3NpdGlv
blRvTG9jYXRpb24gPSBmdW5jdGlvbihsaW5lRW5kaW5ncywgcG9zaXRpb24pCkBAIC01OCw3ICs2
Myw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIuZmluZFNjcmlwdFJhbmdlcyA9IGZ1
bmN0aW9uKGxpbmVFbmRpbmdzLCBzY3JpcHRzKQogICAgIHZhciBzY3JpcHRSYW5nZXMgPSBbXTsK
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyArK2kpIHsKICAgICAgICAg
dmFyIHN0YXJ0ID0geyBsaW5lTnVtYmVyOiBzY3JpcHRzW2ldLmxpbmVPZmZzZXQsIGNvbHVtbk51
bWJlcjogc2NyaXB0c1tpXS5jb2x1bW5PZmZzZXQgfTsKLSAgICAgICAgc3RhcnQucG9zaXRpb24g
PSBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLmxvY2F0aW9uVG9Qb3NpdGlvbihsaW5lRW5k
aW5ncywgc3RhcnQubGluZU51bWJlciwgc3RhcnQuY29sdW1uTnVtYmVyKTsKKyAgICAgICAgc3Rh
cnQucG9zaXRpb24gPSBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLmxvY2F0aW9uVG9Qb3Np
dGlvbihsaW5lRW5kaW5ncywgc3RhcnQpOwogICAgICAgICB2YXIgZW5kUG9zaXRpb24gPSBzdGFy
dC5wb3NpdGlvbiArIHNjcmlwdHNbaV0ubGVuZ3RoOwogICAgICAgICB2YXIgZW5kID0gV2ViSW5z
cGVjdG9yLlNjcmlwdEZvcm1hdHRlci5wb3NpdGlvblRvTG9jYXRpb24obGluZUVuZGluZ3MsIGVu
ZFBvc2l0aW9uKTsKICAgICAgICAgZW5kLnBvc2l0aW9uID0gZW5kUG9zaXRpb247CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4
IGEzNWZmYTFhZTUxZmYwYzkyNDQ0YTgyOGY2Yzg0ZGFiMGU1OGEyZTguLjUzZTU5Y2E3Y2NhMzcw
MGU4MTVjNTI4NjFhMWE3YjQ2YTI0NDA0YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC0zODcsMTQgKzM4NywxNCBAQCBX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBz
dGF0dXMgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBhdXNlZCBvbiBhIFhNTEh0dHBSZXF1ZXN0
LiIpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZnVuY3Rp
b24gZGlkR2V0U291cmNlTG9jYXRpb24oc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyLCBjb2x1bW5O
dW1iZXIpCisgICAgICAgICAgICBmdW5jdGlvbiBkaWRHZXRTb3VyY2VMb2NhdGlvbihzb3VyY2VG
aWxlSWQsIGxpbmVOdW1iZXIpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgaWYgKCFz
b3VyY2VGaWxlSWQgfHwgIXRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmZpbmRCcmVha3BvaW50KHNv
dXJjZUZpbGVJZCwgbGluZU51bWJlcikpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgICAgICB0aGlzLnNpZGViYXJQYW5lcy5qc0JyZWFrcG9pbnRzLmhpZ2hsaWdodEJy
ZWFrcG9pbnQoc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyKTsKICAgICAgICAgICAgICAgICBzdGF0
dXMgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBhdXNlZCBvbiBhIEphdmFTY3JpcHQgYnJlYWtw
b2ludC4iKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhbGxGcmFtZXNbMF0uc291cmNl
TG9jYXRpb24oZGlkR2V0U291cmNlTG9jYXRpb24uYmluZCh0aGlzKSk7CisgICAgICAgICAgICBj
YWxsRnJhbWVzWzBdLnNvdXJjZUxpbmUoZGlkR2V0U291cmNlTG9jYXRpb24uYmluZCh0aGlzKSk7
CiAgICAgICAgIH0KICAgICAgICAgaWYgKHN0YXR1cykKICAgICAgICAgICAgIHRoaXMuc2lkZWJh
clBhbmVzLmNhbGxzdGFjay5zZXRTdGF0dXMoc3RhdHVzKTsKQEAgLTQ4Nyw4ICs0ODcsOCBAQCBX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGZ1
bmN0aW9uIGRpZFJlcXVlc3RTb3VyY2VNYXBwaW5nKG1hcHBpbmcpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHZhciBsb2NhdGlvbiA9IG1hcHBpbmcuc2NyaXB0TG9jYXRpb25Ub1NvdXJjZUxvY2F0
aW9uKGFuY2hvci5nZXRBdHRyaWJ1dGUoImxpbmVfbnVtYmVyIikgLSAxLCAwKTsKLSAgICAgICAg
ICAgIHRoaXMuX3Nob3dTb3VyY2VMaW5lKHNvdXJjZUZpbGUuaWQsIGxvY2F0aW9uLmxpbmVOdW1i
ZXIpOworICAgICAgICAgICAgdmFyIGxpbmVOdW1iZXIgPSBtYXBwaW5nLnNjcmlwdExvY2F0aW9u
VG9Tb3VyY2VMaW5lKHtsaW5lTnVtYmVyOmFuY2hvci5nZXRBdHRyaWJ1dGUoImxpbmVfbnVtYmVy
IikgLSAxLCBjb2x1bW5OdW1iZXI6MH0pOworICAgICAgICAgICAgdGhpcy5fc2hvd1NvdXJjZUxp
bmUoc291cmNlRmlsZS5pZCwgbGluZU51bWJlcik7CiAgICAgICAgIH0KICAgICAgICAgdmFyIHNv
dXJjZUZpbGUgPSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5zb3VyY2VGaWxlRm9yU2NyaXB0VVJM
KGFuY2hvci5ocmVmKTsKICAgICAgICAgc291cmNlRmlsZS5yZXF1ZXN0U291cmNlTWFwcGluZyhk
aWRSZXF1ZXN0U291cmNlTWFwcGluZy5iaW5kKHRoaXMpKTsKQEAgLTYyMSw3ICs2MjEsNyBAQCBX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5zaWRl
YmFyUGFuZXMud2F0Y2hFeHByZXNzaW9ucy5yZWZyZXNoRXhwcmVzc2lvbnMoKTsKICAgICAgICAg
dGhpcy5zaWRlYmFyUGFuZXMuY2FsbHN0YWNrLnNlbGVjdGVkQ2FsbEZyYW1lID0gdGhpcy5fcHJl
c2VudGF0aW9uTW9kZWwuc2VsZWN0ZWRDYWxsRnJhbWU7CiAKLSAgICAgICAgZnVuY3Rpb24gZGlk
R2V0U291cmNlTG9jYXRpb24oc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIp
CisgICAgICAgIGZ1bmN0aW9uIGRpZEdldFNvdXJjZUxvY2F0aW9uKHNvdXJjZUZpbGVJZCwgbGlu
ZU51bWJlcikKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFzb3VyY2VGaWxlSWQpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjM0LDcgKzYzNCw3IEBAIFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgc291cmNlRnJhbWUuc2V0RXhlY3V0
aW9uTGluZShsaW5lTnVtYmVyKTsKICAgICAgICAgICAgIHRoaXMuX2V4ZWN1dGlvblNvdXJjZUZy
YW1lID0gc291cmNlRnJhbWU7CiAgICAgICAgIH0KLSAgICAgICAgY2FsbEZyYW1lLnNvdXJjZUxv
Y2F0aW9uKGRpZEdldFNvdXJjZUxvY2F0aW9uLmJpbmQodGhpcykpOworICAgICAgICBjYWxsRnJh
bWUuc291cmNlTGluZShkaWRHZXRTb3VyY2VMb2NhdGlvbi5iaW5kKHRoaXMpKTsKICAgICB9LAog
CiAgICAgX2ZpbGVzU2VsZWN0Q2hhbmdlZDogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpzCmluZGV4IDRmNTZjMDBkMjJlMzFk
YzQxODlhYzc3ZGYyMjI4NDRlZDJiYjhhM2MuLjIzMmRjZmViNTEyNGMzZTkyYWY3ZGZhNGM3MGU2
NDQ5ZDFlMjJmZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU291cmNlRmlsZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NvdXJjZUZpbGUuanMKQEAgLTI1NCwxMyArMjU0LDE0IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VN
YXBwaW5nID0gZnVuY3Rpb24oc29ydGVkU2NyaXB0cykKIH0KIAogV2ViSW5zcGVjdG9yLlNvdXJj
ZU1hcHBpbmcucHJvdG90eXBlID0gewotICAgIHNjcmlwdExvY2F0aW9uVG9Tb3VyY2VMb2NhdGlv
bjogZnVuY3Rpb24obGluZU51bWJlciwgY29sdW1uTnVtYmVyKQorICAgIHNjcmlwdExvY2F0aW9u
VG9Tb3VyY2VMaW5lOiBmdW5jdGlvbihsb2NhdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiB7
IGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogY29sdW1uTnVtYmVyIH07Cisg
ICAgICAgIHJldHVybiByZXR1cm4gbG9jYXRpb24ubGluZU51bWJlcjsKICAgICB9LAogCi0gICAg
c291cmNlTG9jYXRpb25Ub1NjcmlwdExvY2F0aW9uOiBmdW5jdGlvbihsaW5lTnVtYmVyLCBjb2x1
bW5OdW1iZXIpCisgICAgc291cmNlTGluZVRvU2NyaXB0TG9jYXRpb246IGZ1bmN0aW9uKGxpbmVO
dW1iZXIpCiAgICAgeworICAgICAgICB2YXIgY29sdW1uTnVtYmVyID0gMDsKICAgICAgICAgdmFy
IGNsb3Nlc3RTY3JpcHQgPSB0aGlzLl9zb3J0ZWRTY3JpcHRzWzBdOwogICAgICAgICBmb3IgKHZh
ciBpID0gMTsgaSA8IHRoaXMuX3NvcnRlZFNjcmlwdHMubGVuZ3RoOyArK2kpIHsKICAgICAgICAg
ICAgIHNjcmlwdCA9IHRoaXMuX3NvcnRlZFNjcmlwdHNbaV07CkBAIC0yODEsMTkgKzI4MiwxOSBA
QCBXZWJJbnNwZWN0b3IuRm9ybWF0dGVkU291cmNlTWFwcGluZyA9IGZ1bmN0aW9uKHNvcnRlZFNj
cmlwdHMsIG9yaWdpbmFsVGV4dCwgZm9ybQogfQogCiBXZWJJbnNwZWN0b3IuRm9ybWF0dGVkU291
cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7Ci0gICAgc2NyaXB0TG9jYXRpb25Ub1NvdXJjZUxvY2F0
aW9uOiBmdW5jdGlvbihsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCisgICAgc2NyaXB0TG9jYXRp
b25Ub1NvdXJjZUxpbmU6IGZ1bmN0aW9uKGxvY2F0aW9uKQogICAgIHsKLSAgICAgICAgdmFyIG9y
aWdpbmFsUG9zaXRpb24gPSBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLmxvY2F0aW9uVG9Q
b3NpdGlvbih0aGlzLl9vcmlnaW5hbExpbmVFbmRpbmdzLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1i
ZXIpOworICAgICAgICB2YXIgb3JpZ2luYWxQb3NpdGlvbiA9IFdlYkluc3BlY3Rvci5TY3JpcHRG
b3JtYXR0ZXIubG9jYXRpb25Ub1Bvc2l0aW9uKHRoaXMuX29yaWdpbmFsTGluZUVuZGluZ3MsIGxv
Y2F0aW9uKTsKICAgICAgICAgdmFyIGZvcm1hdHRlZFBvc2l0aW9uID0gdGhpcy5fY29udmVydFBv
c2l0aW9uKHRoaXMuX21hcHBpbmcub3JpZ2luYWwsIHRoaXMuX21hcHBpbmcuZm9ybWF0dGVkLCBv
cmlnaW5hbFBvc2l0aW9uKTsKLSAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5TY3JpcHRGb3Jt
YXR0ZXIucG9zaXRpb25Ub0xvY2F0aW9uKHRoaXMuX2Zvcm1hdHRlZExpbmVFbmRpbmdzLCBmb3Jt
YXR0ZWRQb3NpdGlvbik7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0
dGVyLnBvc2l0aW9uVG9Mb2NhdGlvbih0aGlzLl9mb3JtYXR0ZWRMaW5lRW5kaW5ncywgZm9ybWF0
dGVkUG9zaXRpb24pLmxpbmVOdW1iZXI7CiAgICAgfSwKIAotICAgIHNvdXJjZUxvY2F0aW9uVG9T
Y3JpcHRMb2NhdGlvbjogZnVuY3Rpb24obGluZU51bWJlciwgY29sdW1uTnVtYmVyKQorICAgIHNv
dXJjZUxpbmVUb1NjcmlwdExvY2F0aW9uOiBmdW5jdGlvbihsaW5lTnVtYmVyKQogICAgIHsKLSAg
ICAgICAgdmFyIGZvcm1hdHRlZFBvc2l0aW9uID0gV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRl
ci5sb2NhdGlvblRvUG9zaXRpb24odGhpcy5fZm9ybWF0dGVkTGluZUVuZGluZ3MsIGxpbmVOdW1i
ZXIsIGNvbHVtbk51bWJlcik7CisgICAgICAgIHZhciBmb3JtYXR0ZWRQb3NpdGlvbiA9IFdlYklu
c3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIubGluZVRvUG9zaXRpb24odGhpcy5fZm9ybWF0dGVkTGlu
ZUVuZGluZ3MsIGxpbmVOdW1iZXIpOwogICAgICAgICB2YXIgb3JpZ2luYWxQb3NpdGlvbiA9IHRo
aXMuX2NvbnZlcnRQb3NpdGlvbih0aGlzLl9tYXBwaW5nLmZvcm1hdHRlZCwgdGhpcy5fbWFwcGlu
Zy5vcmlnaW5hbCwgZm9ybWF0dGVkUG9zaXRpb24pOwogICAgICAgICB2YXIgb3JpZ2luYWxMb2Nh
dGlvbiA9IFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIucG9zaXRpb25Ub0xvY2F0aW9uKHRo
aXMuX29yaWdpbmFsTGluZUVuZGluZ3MsIG9yaWdpbmFsUG9zaXRpb24pOwotICAgICAgICByZXR1
cm4gV2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmcucHJvdG90eXBlLnNvdXJjZUxvY2F0aW9uVG9T
Y3JpcHRMb2NhdGlvbi5jYWxsKHRoaXMsIG9yaWdpbmFsTG9jYXRpb24ubGluZU51bWJlciwgb3Jp
Z2luYWxMb2NhdGlvbi5jb2x1bW5OdW1iZXIpOworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9y
LlNvdXJjZU1hcHBpbmcucHJvdG90eXBlLnNvdXJjZUxpbmVUb1NjcmlwdExvY2F0aW9uLmNhbGwo
dGhpcywgb3JpZ2luYWxMb2NhdGlvbi5saW5lTnVtYmVyKTsKICAgICB9LAogCiAgICAgX2NvbnZl
cnRQb3NpdGlvbjogZnVuY3Rpb24ocG9zaXRpb25zMSwgcG9zaXRpb25zMiwgcG9zaXRpb24pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88791</attachid>
            <date>2011-04-08 03:32:47 -0700</date>
            <delta_ts>2011-04-08 05:19:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58118-20110408143242.patch</filename>
            <type>text/plain</type>
            <size>34553</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMyNjgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzCmluZGV4IDhkYTBmYTA1NWY2NmI5NDk3ZWM3N2I1
ZjZiYzE1Mjk4MDQ5ODVmYzcuLmQ5YzViZTQxNjg1YWY0YTAzMjM4YWFlMjRmZWNhNzg0OTQzYWYx
YjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
LXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIt
dGVzdC5qcwpAQCAtMTA2LDEzICsxMDYsMTMgQEAgSW5zcGVjdG9yVGVzdC5jYXB0dXJlU3RhY2tU
cmFjZSA9IGZ1bmN0aW9uKGNhbGxGcmFtZXMpCiAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IkNhbGwgc3RhY2s6Iik7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYWxsRnJhbWVzLmxlbmd0
aDsgaSsrKSB7CiAgICAgICAgIHZhciBmcmFtZSA9IGNhbGxGcmFtZXNbaV07Ci0gICAgICAgIHZh
ciBzY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChm
cmFtZS5zb3VyY2VJRCk7CisgICAgICAgIHZhciBzY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChmcmFtZS5sb2NhdGlvbi5zb3VyY2VJRCk7CiAgICAg
ICAgIHZhciB1cmw7CiAgICAgICAgIGlmIChzY3JpcHQpCiAgICAgICAgICAgICB1cmwgPSBXZWJJ
bnNwZWN0b3IuZGlzcGxheU5hbWVGb3JVUkwoc2NyaXB0LnNvdXJjZVVSTCk7CiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIHVybCA9ICIoaW50ZXJuYWwgc2NyaXB0KSIKLSAgICAgICAgdmFyIHMg
PSAiICAgICIgKyBpICsgIikgIiArIGZyYW1lLmZ1bmN0aW9uTmFtZSArICIgKCIgKyB1cmwgKyAi
OiIgKyAoZnJhbWUubGluZSArIDEpICsgIikiOworICAgICAgICB2YXIgcyA9ICIgICAgIiArIGkg
KyAiKSAiICsgZnJhbWUuZnVuY3Rpb25OYW1lICsgIiAoIiArIHVybCArICI6IiArIChmcmFtZS5s
b2NhdGlvbi5saW5lTnVtYmVyICsgMSkgKyAiKSI7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KHMpOwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBjN2JiNWM4NmExZThlZDFiMmRl
M2MwYTJjOTBhN2FhMjQwODI3ZC4uZGU4ZGI4MjI0MTZhY2JmN2M1ZDQwZWZjZWUwMzk1NWZjOTA1
NTlhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDExLTA0LTA4ICBQYXZlbCBGZWxk
bWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHVzZSAibG9jYXRpb25zIiBmb3Ig
ZGVidWdnZXIgc2NyaXB0cywgImxpbmVOdW1iZXJzIiBmb3IgdGhlIFVJIGVsZW1lbnRzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgxMTgKKworICAg
ICAgICBUaGlzIGNoYW5nZSByZXVzZXMgbG9jYXRpb24gZm9yIGNhbGwgZnJhbWVzIGluIHRoZSBw
cm90b2NvbCArIHN0cnVjdHVyZXMgc2NyaXB0CisgICAgICAgIGxvY2F0aW9uIDwtPiBzb3VyY2Ug
bGluZXMgaW50ZXJhY3Rpb24gYmV0dGVyLiBXaGVuIHdlIG5lZWQgVUkgY29sdW1ucywgd2Ugd2ls
bCBhZGQKKyAgICAgICAgdGhlbSwgYnV0IHdlIHNob3VsZCBkaXN0aW5ndWlzaCBiZXR3ZWVuIHNj
cmlwdCBhbmQgVUkgdGVybXMgb24gdGhlIHR5cGUgbGV2ZWwsIG5vdCBuYW1pbmcuCisKKyAgICAg
ICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogYmluZGlu
Z3MvdjgvRGVidWdnZXJTY3JpcHQuanM6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0U291cmNlLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQYW5lLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lLnByb3RvdHlwZS51cGRhdGUuZGlk
R2V0U291cmNlTGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ2FsbFN0YWNrU2lkZWJhclBh
bmUucHJvdG90eXBlLnVwZGF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
UHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLmFkZENvbnNvbGVNZXNzYWdlLmRpZFJlcXVlc3RT
b3VyY2VNYXBwaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLnByb3RvdHlwZS5hZGRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuY29udGludWVUb0xpbmUpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBl
Ll9zZXRCcmVha3BvaW50SW5EZWJ1Z2dlci5kaWRSZXF1ZXN0U291cmNlTWFwcGluZyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3Nl
dEJyZWFrcG9pbnRJbkRlYnVnZ2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fYnJlYWtwb2ludEFkZGVkLmRpZFJlcXVlc3RTb3Vy
Y2VNYXBwaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsLnByb3RvdHlwZS5fYnJlYWtwb2ludEFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Q
cmVzZW5hdGlvbkNhbGxGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJlc2VuYXRpb25D
YWxsRnJhbWUucHJvdG90eXBlLnNvdXJjZUxpbmUuZGlkUmVxdWVzdFNvdXJjZU1hcHBpbmcpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByZXNlbmF0aW9uQ2FsbEZyYW1lLnByb3RvdHlwZS5zb3Vy
Y2VMaW5lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIubG9jYXRpb25Ub1Bvc2l0
aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIubGluZVRvUG9zaXRp
b24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2RlYnVnZ2VyUGF1c2Vk
LmVsc2UuZGlkR2V0U291cmNlTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5wcm90b3R5cGUuX2RlYnVnZ2VyUGF1c2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLnNob3dBbmNob3JMb2NhdGlvbik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fY2FsbEZyYW1lU2VsZWN0ZWQuZGlk
R2V0U291cmNlTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUuX2NhbGxGcmFtZVNlbGVjdGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1NvdXJjZUZpbGUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlTWFwcGluZy5w
cm90b3R5cGUuc2NyaXB0TG9jYXRpb25Ub1NvdXJjZUxpbmUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNvdXJjZU1hcHBpbmcucHJvdG90eXBlLnNvdXJjZUxpbmVUb1NjcmlwdExvY2F0aW9uKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Gb3JtYXR0ZWRTb3VyY2VNYXBwaW5nLnByb3RvdHlwZS5z
Y3JpcHRMb2NhdGlvblRvU291cmNlTGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRm9ybWF0
dGVkU291cmNlTWFwcGluZy5wcm90b3R5cGUuc291cmNlTGluZVRvU2NyaXB0TG9jYXRpb24pOgor
CiAyMDExLTA0LTA4ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
QXR0ZW1wdCB0byBmaXggdGhlIFF0IGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkNvcmUvRW5nbGlz
aC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IDE1OTM4ZDk3ZDk4Njc2ZjgxMDkxOGQz
ZGIwYjg1NDA4NTFmZWM2ZGMuLmVmMGVhYjBhOWE5ZThkMWVhNTY5NzczMDRhMTgxMjM4NzQ1NmQ4
ZDggMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgMTQKV2NtWjI2cEx5THA8XyNqa29CTT5O
XzVjN1psbShqcgoKZGVsdGEgOTQKemNtWjJDazlveT48XyNqay1rQSh9Mz8mU3kzYElhWGtzKmdj
ZnVXY284T1kwSUM7KkNVR0FKPmAwPnh+QlNjeVJjClJEMmhrKldKTXdVJV83MjVkalE/UTZaOE44
CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQu
anMgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5qcwppbmRleCA2
MzZjMTA2MTQ0NTBhNWMzODE3OTA1ZGI1YzcwYjc1YjA4NjhiYjg0Li5lNTYwZWExNDNkMTgyZjA1
OTVmOGNmMmJhOWZiOTg0YTdjYTk5YzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9EZWJ1Z2dlclNjcmlwdC5qcwpAQCAtOTEsNyArOTEsNyBAQCBEZWJ1Z2dlclNjcmlwdC5fZm9y
bWF0U2NyaXB0ID0gZnVuY3Rpb24oc2NyaXB0KQogCiBEZWJ1Z2dlclNjcmlwdC5zZXRCcmVha3Bv
aW50ID0gZnVuY3Rpb24oZXhlY1N0YXRlLCBhcmdzKQogewotICAgIHZhciBicmVha0lkID0gRGVi
dWcuc2V0U2NyaXB0QnJlYWtQb2ludEJ5SWQoYXJncy5zY3JpcHRJZCwgYXJncy5saW5lTnVtYmVy
LCBhcmdzLmNvbHVtbk51bWJlciwgYXJncy5jb25kaXRpb24pOworICAgIHZhciBicmVha0lkID0g
RGVidWcuc2V0U2NyaXB0QnJlYWtQb2ludEJ5SWQoYXJncy5zb3VyY2VJRCwgYXJncy5saW5lTnVt
YmVyLCBhcmdzLmNvbHVtbk51bWJlciwgYXJncy5jb25kaXRpb24pOwogCiAgICAgdmFyIGxvY2F0
aW9ucyA9IERlYnVnLmZpbmRCcmVha1BvaW50QWN0dWFsTG9jYXRpb25zKGJyZWFrSWQpOwogICAg
IGlmICghbG9jYXRpb25zLmxlbmd0aCkKQEAgLTI1MCw3ICsyNTAsNiBAQCBEZWJ1Z2dlclNjcmlw
dC5fZnJhbWVNaXJyb3JUb0pTQ2FsbEZyYW1lID0gZnVuY3Rpb24oZnJhbWVNaXJyb3IsIGNhbGxl
ckZyYW1lKQogICAgICAgICAibGluZSI6IGxvY2F0aW9uLmxpbmUsCiAgICAgICAgICJjb2x1bW4i
OiBsb2NhdGlvbi5jb2x1bW4sCiAgICAgICAgICJmdW5jdGlvbk5hbWUiOiBmdW5jdGlvbk5hbWUs
Ci0gICAgICAgICJ0eXBlIjogImZ1bmN0aW9uIiwKICAgICAgICAgInRoaXNPYmplY3QiOiB0aGlz
T2JqZWN0LAogICAgICAgICAic2NvcGVDaGFpbiI6IHNjb3BlQ2hhaW4sCiAgICAgICAgICJzY29w
ZVR5cGUiOiBzY29wZVR5cGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3Jp
cHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggYzcwMjE2NGMzYTUzZTM1MjBmMzM2YzI4YjNmMDRiMjA1
MGRlZmYyMS4uZWU2M2FmODNhYTA4NzRiYTVmYzNkZTM2MzQ0MDJmZjJhY2VjNDgwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcApAQCAt
NjcsNyArNjcsNyBAQCBTdHJpbmcgU2NyaXB0RGVidWdTZXJ2ZXI6OnNldEJyZWFrcG9pbnQoY29u
c3QgU3RyaW5nJiBzb3VyY2VJRCwgY29uc3QgU2NyaXB0QnJlYQogICAgIHY4OjpDb250ZXh0OjpT
Y29wZSBjb250ZXh0U2NvcGUoZGVidWdnZXJDb250ZXh0KTsKIAogICAgIHY4OjpMb2NhbDx2ODo6
T2JqZWN0PiBhcmdzID0gdjg6Ok9iamVjdDo6TmV3KCk7Ci0gICAgYXJncy0+U2V0KHY4OjpTdHJp
bmc6Ok5ldygic2NyaXB0SWQiKSwgdjhTdHJpbmcoc291cmNlSUQpKTsKKyAgICBhcmdzLT5TZXQo
djg6OlN0cmluZzo6TmV3KCJzb3VyY2VJRCIpLCB2OFN0cmluZyhzb3VyY2VJRCkpOwogICAgIGFy
Z3MtPlNldCh2ODo6U3RyaW5nOjpOZXcoImxpbmVOdW1iZXIiKSwgdjg6OkludGVnZXI6Ok5ldyhz
Y3JpcHRCcmVha3BvaW50LmxpbmVOdW1iZXIpKTsKICAgICBhcmdzLT5TZXQodjg6OlN0cmluZzo6
TmV3KCJjb2x1bW5OdW1iZXIiKSwgdjg6OkludGVnZXI6Ok5ldyhzY3JpcHRCcmVha3BvaW50LmNv
bHVtbk51bWJlcikpOwogICAgIGFyZ3MtPlNldCh2ODo6U3RyaW5nOjpOZXcoImNvbmRpdGlvbiIp
LCB2OFN0cmluZyhzY3JpcHRCcmVha3BvaW50LmNvbmRpdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCmluZGV4IGU2N2VmMmNmODFk
YzVlN2NmNDkzMzcxOWQ0Y2RhYWYwMzg3YTI1ZTcuLjgyMzFkNzhmYzI0OGQ3YTVhOGFiNWYzOTQ3
MWMxYjU4NGEzNTUxZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRTb3VyY2UuanMKQEAgLTQ3NCwxMSArNDc0LDggQEAgSW5qZWN0ZWRTY3JpcHQuUmVt
b3RlT2JqZWN0LmZyb21PYmplY3QgPSBmdW5jdGlvbihvYmplY3QsIG9iamVjdElkKQogSW5qZWN0
ZWRTY3JpcHQuQ2FsbEZyYW1lUHJveHkgPSBmdW5jdGlvbihvcmRpbmFsLCBjYWxsRnJhbWUpCiB7
CiAgICAgdGhpcy5pZCA9ICJ7XCJvcmRpbmFsXCI6IiArIG9yZGluYWwgKyAiLFwiaW5qZWN0ZWRT
Y3JpcHRJZFwiOiIgKyBpbmplY3RlZFNjcmlwdElkICsgIn0iOwotICAgIHRoaXMudHlwZSA9IGNh
bGxGcmFtZS50eXBlOwotICAgIHRoaXMuZnVuY3Rpb25OYW1lID0gKHRoaXMudHlwZSA9PT0gImZ1
bmN0aW9uIiA/IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgOiAiIik7Ci0gICAgdGhpcy5zb3VyY2VJ
RCA9IGNhbGxGcmFtZS5zb3VyY2VJRDsKLSAgICB0aGlzLmxpbmUgPSBjYWxsRnJhbWUubGluZTsK
LSAgICB0aGlzLmNvbHVtbiA9IGNhbGxGcmFtZS5jb2x1bW47CisgICAgdGhpcy5mdW5jdGlvbk5h
bWUgPSAoY2FsbEZyYW1lLnR5cGUgPT09ICJmdW5jdGlvbiIgPyBjYWxsRnJhbWUuZnVuY3Rpb25O
YW1lIDogIiIpOworICAgIHRoaXMubG9jYXRpb24gPSB7IHNvdXJjZUlEOiBjYWxsRnJhbWUuc291
cmNlSUQsIGxpbmVOdW1iZXI6IGNhbGxGcmFtZS5saW5lLCBjb2x1bW5OdW1iZXI6IGNhbGxGcmFt
ZS5jb2x1bW4gfTsKICAgICB0aGlzLnNjb3BlQ2hhaW4gPSB0aGlzLl93cmFwU2NvcGVDaGFpbihj
YWxsRnJhbWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5k
ZXggNjg0NTNiMzQ0MWMyNmM2NmNlMTE4YjEyMWI3MmQ1ODRkYTBlNmFjZC4uZjJlNjliMGIzOTFh
Y2VlOWY1ZjMyYzRiYWZjZGY1ZTRmZWY0NmQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3IuanNvbgpAQCAtMTIzMiw3ICsxMjMyLDcgQEAKICAgICAgICAgICAgICAgICAicHJv
cGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAgICAgInNvdXJjZUlEIjogeyAidHlwZSI6ICJz
dHJpbmciLCAgImRlc2NyaXB0aW9uIjogIlNjcmlwdCBpZGVudGlmaWVyIGFzIHJlcG9ydGVkIGJ5
IHRoZSA8Y29kZT5zY3JpcHRQYXJzZWQ8L2NvZGU+IiB9LAogICAgICAgICAgICAgICAgICAgICAi
bGluZU51bWJlciI6IHsgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJMaW5lIG51
bWJlciBpbiB0aGUgc2NyaXB0LiIgfSwKLSAgICAgICAgICAgICAgICAgICAgImNvbHVtbk51bWJl
ciI6IHsgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJDb2x1bW4gbnVtYmVyIGlu
IHRoZSBzY3JpcHQuIiB9CisgICAgICAgICAgICAgICAgICAgICJjb2x1bW5OdW1iZXIiOiB7ICJ0
eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ29sdW1u
IG51bWJlciBpbiB0aGUgc2NyaXB0LiIgfQogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGluIHRoZSBzb3VyY2UgY29kZS4iCiAgICAg
ICAgICAgICB9LApAQCAtMTI0MSwxMSArMTI0MSw4IEBACiAgICAgICAgICAgICAgICAgInR5cGUi
OiAib2JqZWN0IiwKICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAg
ICAgICAgICAgImlkIjogeyAidHlwZSI6ICJzdHJpbmciLCAgImRlc2NyaXB0aW9uIjogIkNhbGwg
ZnJhbWUgaWRlbnRpZmllciIgfSwKLSAgICAgICAgICAgICAgICAgICAgInR5cGUiOiB7ICJ0eXBl
IjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJDYWxsIGZyYW1lIHR5cGUuIC8vIEZJWE1FIiB9
LAogICAgICAgICAgICAgICAgICAgICAiZnVuY3Rpb25OYW1lIjogeyAidHlwZSI6ICJzdHJpbmci
LCAiZGVzY3JpcHRpb24iOiAiTmFtZSBvZiB0aGUgZnVuY3Rpb24gY2FsbGVkIG9uIHRoaXMgZnJh
bWUuIiB9LAotICAgICAgICAgICAgICAgICAgICAic291cmNlSUQiOiB7ICJ0eXBlIjogInN0cmlu
ZyIsICJkZXNjcmlwdGlvbiI6ICJTY3JpcHQgaWRlbnRpZmllci4iIH0sCi0gICAgICAgICAgICAg
ICAgICAgICJsaW5lIjogeyAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIkxpbmUg
bnVtYmVyIGluIHRoZSBzY3JpcHQuIiB9LAotICAgICAgICAgICAgICAgICAgICAiY29sdW1uIjog
eyAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIkNvbHVtbiBudW1iZXIgaW4gdGhl
IHNjcmlwdC4iIH0sCisgICAgICAgICAgICAgICAgICAgICJsb2NhdGlvbiI6IHsgIiRyZWYiOiAi
TG9jYXRpb24iLCAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gaW4gdGhlIHNvdXJjZSBjb2RlLiIg
fSwKICAgICAgICAgICAgICAgICAgICAgInNjb3BlQ2hhaW4iOiB7ICJ0eXBlIjogImFycmF5Iiwg
Iml0ZW1zIjogeyAidHlwZSI6ICJvYmplY3QiIH0sICJkZXNjcmlwdGlvbiI6ICJTY29wZSBjaGFp
biBmb3IgZ2l2ZW4gY2FsbCBmcmFtZS4gLy8gRklYTUUiIH0KICAgICAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEZWJ1Z2dlciBjYWxsIGZyYW1lLiBBcnJh
eSBvZiBjYWxsIGZyYW1lcyBmb3JtIGNhbGwgc3RhY2suIgpAQCAtMTI4NCwxNCArMTI4MSwxMiBA
QAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogInNldEJyZWFrcG9pbnQi
LAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInNvdXJjZUlkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlNv
dXJjZSBJRCBvZiB0aGUgcmVzb3VyY2UgdG8gc2V0IGJyZWFrcG9pbnQgb24gKGFzIHJlcG9ydGVk
IGJ5IDxjb2RlPnNjcmlwdFBhcnNlZDwvY29kZT4pLiIgfSwKLSAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJsaW5lTnVtYmVyIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6
ICJMaW5lIG51bWJlciB0byBzZXQgYnJlYWtwb2ludCBhdC4iIH0sCi0gICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiY29sdW1uTnVtYmVyIiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25h
bCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJPZmZzZXQgaW4gdGhlIGxpbmUgdG8gc2V0IGJyZWFr
cG9pbnQgYXQuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImxvY2F0aW9uIiwg
IiRyZWYiOiAiTG9jYXRpb24iLCAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gdG8gc2V0IGJyZWFr
cG9pbnQgaW4uIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbmRpdGlvbiIs
ICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJFeHBy
ZXNzaW9uIHRvIHVzZSBhcyBhIGJyZWFrcG9pbnQgY29uZGl0aW9uLiBXaGVuIHNwZWNpZmllZCwg
ZGVidWdnZXIgd2lsbCBvbmx5IHN0b3Agb24gdGhlIGJyZWFrcG9pbnQgaWYgdGhpcyBleHByZXNz
aW9uIGV2YWx1YXRlcyB0byB0cnVlLiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAg
ICAgICAgInJldHVybnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnJlYWtw
b2ludElkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBjcmVh
dGVkIGJyZWFrcG9pbnQgZm9yIGZ1cnRoZXIgbWFuaXB1bGF0aW9ucy4iIH0sCi0gICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAibG9jYXRpb24iLCAiJHJlZiIgOiAiTG9jYXRpb24iLCAiZGVz
Y3JpcHRpb24iOiAiTG9jYXRpb24gdGhpcyBicmVha3BvaW50IHJlc29sdmVkIGludG8uIiB9Cisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYWN0dWFsTG9jYXRpb24iLCAiJHJlZiIgOiAi
TG9jYXRpb24iLCAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gdGhpcyBicmVha3BvaW50IHJlc29s
dmVkIGludG8uIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiU2V0cyBKYXZhU2NyaXB0IGJyZWFrcG9pbnQgYXQgYSBnaXZlbiBsb2NhdGlvbi4i
CiAgICAgICAgICAgICB9LApAQCAtMTMwNSw5ICsxMzAwLDcgQEAKICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAibmFtZSI6ICJjb250aW51ZVRvTG9jYXRpb24iLAogICAgICAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNvdXJj
ZUlkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlNvdXJjZSBJRCBvZiB0aGUg
cmVzb3VyY2UgdG8gY29udGludWUgdG8gKGFzIHJlcG9ydGVkIGJ5IDxjb2RlPnNjcmlwdFBhcnNl
ZDwvY29kZT4pLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsaW5lTnVtYmVy
IiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJMaW5lIG51bWJlciB0byBzdG9w
IGF0LiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb2x1bW5OdW1iZXIiLCAi
dHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIkNvbHVtbiBudW1iZXIgdG8gc3RvcCBh
dC4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsb2NhdGlvbiIsICIkcmVmIjog
IkxvY2F0aW9uIiwgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIHRvIGNvbnRpbnVlIHRvLiIgfQog
ICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNvbnRp
bnVlcyBleGVjdXRpb24gdW50aWwgc3BlY2lmaWMgbG9jYXRpb24gaXMgcmVhY2hlZC4iCiAgICAg
ICAgICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRl
YnVnZ2VyQWdlbnQuY3BwCmluZGV4IDZjZWI3N2RlNGY1M2JmYTE3NDk2MmYyMzNmZGVjOWEwOTNl
NDgzMGYuLjM2YTEwMGIzMzlhMDJiMzY1NjE2ZTQwNWZhZTZmNjUwNGU1NDQyZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAK
QEAgLTE3NCwxNyArMTc0LDI2IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0QnJl
YWtwb2ludEJ5VXJsKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiB1cmwsCiAgICAgKm91dEJy
ZWFrcG9pbnRJZCA9IGJyZWFrcG9pbnRJZDsKIH0KIAotdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjpzZXRCcmVha3BvaW50KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5n
JiBzb3VyY2VJZCwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IGludCogY29uc3Qgb3B0aW9uYWxDb2x1
bW5OdW1iZXIsIGNvbnN0IFN0cmluZyogY29uc3Qgb3B0aW9uYWxDb25kaXRpb24sIFN0cmluZyog
b3V0QnJlYWtwb2ludElkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogbG9jYXRpb24pCit2b2lk
IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldEJyZWFrcG9pbnQoRXJyb3JTdHJpbmcqIGVycm9y
U3RyaW5nLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gbG9jYXRpb24sIGNvbnN0IFN0cmlu
ZyogY29uc3Qgb3B0aW9uYWxDb25kaXRpb24sIFN0cmluZyogb3V0QnJlYWtwb2ludElkLCBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiogYWN0dWFsTG9jYXRpb24pCiB7Ci0gICAgaW50IGNvbHVtbk51
bWJlciA9IG9wdGlvbmFsQ29sdW1uTnVtYmVyID8gKm9wdGlvbmFsQ29sdW1uTnVtYmVyIDogMDsK
KyAgICBTdHJpbmcgc291cmNlSWQ7CisgICAgaW50IGxpbmVOdW1iZXI7CisgICAgaWYgKCFsb2Nh
dGlvbi0+Z2V0U3RyaW5nKCJzb3VyY2VJRCIsICZzb3VyY2VJZCkgfHwgIWxvY2F0aW9uLT5nZXRO
dW1iZXIoImxpbmVOdW1iZXIiLCAmbGluZU51bWJlcikpIHsKKyAgICAgICAgLy8gRklYTUU6IHJl
cGxhY2Ugd2l0aCBpbnB1dCB2YWxpZGF0aW9uLgorICAgICAgICAqZXJyb3JTdHJpbmcgPSAic291
cmNlSWQgYW5kIGxpbmVOdW1iZXIgYXJlIHJlcXVpcmVkLiI7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgaW50IGNvbHVtbk51bWJlciA9IDA7CisgICAgbG9jYXRpb24tPmdldE51bWJlcigi
Y29sdW1uTnVtYmVyIiwgJmNvbHVtbk51bWJlcik7CisKICAgICBTdHJpbmcgY29uZGl0aW9uID0g
b3B0aW9uYWxDb25kaXRpb24gPyAqb3B0aW9uYWxDb25kaXRpb24gOiAiIjsKIAogICAgIFN0cmlu
ZyBicmVha3BvaW50SWQgPSBtYWtlU3RyaW5nKHNvdXJjZUlkLCAiOiIsIFN0cmluZzo6bnVtYmVy
KGxpbmVOdW1iZXIpLCAiOiIsIFN0cmluZzo6bnVtYmVyKGNvbHVtbk51bWJlcikpOwogICAgIGlm
IChtX2JyZWFrcG9pbnRJZFRvRGVidWdTZXJ2ZXJCcmVha3BvaW50SWRzLmZpbmQoYnJlYWtwb2lu
dElkKSAhPSBtX2JyZWFrcG9pbnRJZFRvRGVidWdTZXJ2ZXJCcmVha3BvaW50SWRzLmVuZCgpKQog
ICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0QnJlYWtwb2ludCBicmVha3BvaW50KGxpbmVOdW1i
ZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9uKTsKLSAgICAqbG9jYXRpb24gPSByZXNvbHZlQnJl
YWtwb2ludChicmVha3BvaW50SWQsIHNvdXJjZUlkLCBicmVha3BvaW50KTsKLSAgICBpZiAoKmxv
Y2F0aW9uKQorICAgICphY3R1YWxMb2NhdGlvbiA9IHJlc29sdmVCcmVha3BvaW50KGJyZWFrcG9p
bnRJZCwgc291cmNlSWQsIGJyZWFrcG9pbnQpOworICAgIGlmICgqYWN0dWFsTG9jYXRpb24pCiAg
ICAgICAgICpvdXRCcmVha3BvaW50SWQgPSBicmVha3BvaW50SWQ7CiAgICAgZWxzZQogICAgICAg
ICAqZXJyb3JTdHJpbmcgPSAiQ291bGQgbm90IHJlc29sdmUgYnJlYWtwb2ludCI7CkBAIC0yMDQs
MTUgKzIxMywyNiBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnJlbW92ZUJyZWFrcG9p
bnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGJyZWFrcAogICAgIG1fYnJlYWtwb2ludElk
VG9EZWJ1Z1NlcnZlckJyZWFrcG9pbnRJZHMucmVtb3ZlKGRlYnVnU2VydmVyQnJlYWtwb2ludElk
c0l0ZXJhdG9yKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojpjb250aW51ZVRv
TG9jYXRpb24oRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlkLCBpbnQg
bGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlcikKK3ZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dDo6Y29udGludWVUb0xvY2F0aW9uKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgUGFzc1JlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IGxvY2F0aW9uKQogewogICAgIGlmICghbV9jb250aW51ZVRvTG9j
YXRpb25CcmVha3BvaW50SWQuaXNFbXB0eSgpKSB7CiAgICAgICAgIHNjcmlwdERlYnVnU2VydmVy
KCkucmVtb3ZlQnJlYWtwb2ludChtX2NvbnRpbnVlVG9Mb2NhdGlvbkJyZWFrcG9pbnRJZCk7CiAg
ICAgICAgIG1fY29udGludWVUb0xvY2F0aW9uQnJlYWtwb2ludElkID0gIiI7CiAgICAgfQorCisg
ICAgU3RyaW5nIHNvdXJjZUlkOworICAgIGludCBsaW5lTnVtYmVyOworICAgIGlmICghbG9jYXRp
b24tPmdldFN0cmluZygic291cmNlSUQiLCAmc291cmNlSWQpIHx8ICFsb2NhdGlvbi0+Z2V0TnVt
YmVyKCJsaW5lTnVtYmVyIiwgJmxpbmVOdW1iZXIpKSB7CisgICAgICAgIC8vIEZJWE1FOiByZXBs
YWNlIHdpdGggaW5wdXQgdmFsaWRhdGlvbi4KKyAgICAgICAgKmVycm9yU3RyaW5nID0gInNvdXJj
ZUlkIGFuZCBsaW5lTnVtYmVyIGFyZSByZXF1aXJlZC4iOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIGludCBjb2x1bW5OdW1iZXIgPSAwOworICAgIGxvY2F0aW9uLT5nZXROdW1iZXIoImNv
bHVtbk51bWJlciIsICZjb2x1bW5OdW1iZXIpOworCiAgICAgU2NyaXB0QnJlYWtwb2ludCBicmVh
a3BvaW50KGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgIiIpOwogICAgIG1fY29udGludWVUb0xv
Y2F0aW9uQnJlYWtwb2ludElkID0gc2NyaXB0RGVidWdTZXJ2ZXIoKS5zZXRCcmVha3BvaW50KHNv
dXJjZUlkLCBicmVha3BvaW50LCAmbGluZU51bWJlciwgJmNvbHVtbk51bWJlcik7Ci0gICAgcmVz
dW1lKGVycm9yKTsKKyAgICByZXN1bWUoZXJyb3JTdHJpbmcpOwogfQogCiBQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6cmVzb2x2ZUJyZWFrcG9pbnQo
Y29uc3QgU3RyaW5nJiBicmVha3BvaW50SWQsIGNvbnN0IFN0cmluZyYgc291cmNlSWQsIGNvbnN0
IFNjcmlwdEJyZWFrcG9pbnQmIGJyZWFrcG9pbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAppbmRleCA0N2U4ZTVkZjJiODc0YzA2NGQ4
YTk1MmU5NWI5MDliNTA5YTBkZjc4Li43YWUwMzAzZjhmZmYyNmYwYWVkMGJjZmUwZDFjOGU2MGEw
MmIyOTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50LmgKQEAgLTgxLDkgKzgxLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QnJlYWtw
b2ludHNBY3RpdmUoRXJyb3JTdHJpbmcqLCBib29sIGFjdGl2ZSk7CiAKICAgICB2b2lkIHNldEJy
ZWFrcG9pbnRCeVVybChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgbGluZU51
bWJlciwgY29uc3QgaW50KiBjb25zdCBvcHRpb25hbENvbHVtbk51bWJlciwgY29uc3QgU3RyaW5n
KiBjb25zdCBvcHRpb25hbENvbmRpdGlvbiwgU3RyaW5nKiBicmVha3BvaW50SWQsIFJlZlB0cjxJ
bnNwZWN0b3JBcnJheT4qIGxvY2F0aW9ucyk7Ci0gICAgdm9pZCBzZXRCcmVha3BvaW50KEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzb3VyY2VJZCwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IGlu
dCogY29uc3Qgb3B0aW9uYWxDb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyogY29uc3Qgb3B0aW9u
YWxDb25kaXRpb24sIFN0cmluZyogYnJlYWtwb2ludElkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiogbG9jYXRpb24pOworICAgIHZvaWQgc2V0QnJlYWtwb2ludChFcnJvclN0cmluZyosIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBsb2NhdGlvbiwgY29uc3QgU3RyaW5nKiBjb25zdCBvcHRp
b25hbENvbmRpdGlvbiwgU3RyaW5nKiBicmVha3BvaW50SWQsIFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+KiBhY3R1YWxMb2NhdGlvbik7CiAgICAgdm9pZCByZW1vdmVCcmVha3BvaW50KEVycm9yU3Ry
aW5nKiwgY29uc3QgU3RyaW5nJiBicmVha3BvaW50SWQpOwotICAgIHZvaWQgY29udGludWVUb0xv
Y2F0aW9uKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzb3VyY2VJZCwgaW50IGxpbmVOdW1i
ZXIsIGludCBjb2x1bW5OdW1iZXIpOworICAgIHZvaWQgY29udGludWVUb0xvY2F0aW9uKEVycm9y
U3RyaW5nKiwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGxvY2F0aW9uKTsKIAogICAgIHZv
aWQgZWRpdFNjcmlwdFNvdXJjZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc291cmNlSUQs
IGNvbnN0IFN0cmluZyYgbmV3Q29udGVudCwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogbmV3Q2Fs
bEZyYW1lcyk7CiAgICAgdm9pZCBnZXRTY3JpcHRTb3VyY2UoRXJyb3JTdHJpbmcqLCBjb25zdCBT
dHJpbmcmIHNvdXJjZUlELCBTdHJpbmcqIHNjcmlwdFNvdXJjZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQYW5lLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DYWxsU3RhY2tTaWRlYmFyUGFuZS5q
cwppbmRleCAzZDcxMTAxNDA0Y2UxMWE4ODJmYTdjY2JiNWZjNDNjNzMzOWM3YTViLi5hMzI3Zjdj
MTI0OTNjYmY5OTA5OTZlZmM4ZTFmN2Q5NzczNGJlNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQYW5lLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMK
QEAgLTQ2LDMyICs0NiwxNiBAQCBXZWJJbnNwZWN0b3IuQ2FsbFN0YWNrU2lkZWJhclBhbmUucHJv
dG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgdmFy
IHRpdGxlOwotICAgICAgICB2YXIgc3VidGl0bGU7Ci0gICAgICAgIHZhciBzY3JpcHQ7Ci0KICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYWxsRnJhbWVzLmxlbmd0aDsgKytpKSB7CiAgICAg
ICAgICAgICB2YXIgY2FsbEZyYW1lID0gY2FsbEZyYW1lc1tpXTsKLSAgICAgICAgICAgIHN3aXRj
aCAoY2FsbEZyYW1lLnR5cGUpIHsKLSAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoKLSAgICAg
ICAgICAgICAgICB0aXRsZSA9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCIoYW5vbnltb3VzIGZ1bmN0aW9uKSIpOwotICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgY2FzZSAicHJvZ3JhbSI6Ci0gICAgICAgICAgICAgICAgdGl0bGUgPSBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihwcm9ncmFtKSIpOwotICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgc3VidGl0bGU7Ci0gICAgICAgICAg
ICBpZiAoIWNhbGxGcmFtZS5pc0ludGVybmFsU2NyaXB0KQotICAgICAgICAgICAgICAgIHN1YnRp
dGxlID0gV2ViSW5zcGVjdG9yLmRpc3BsYXlOYW1lRm9yVVJMKGNhbGxGcmFtZS51cmwpOwotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHN1YnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCIoaW50ZXJuYWwgc2NyaXB0KSIpOworICAgICAgICAgICAgdmFyIHRpdGxlID0gY2Fs
bEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihhbm9ueW1vdXMg
ZnVuY3Rpb24pIik7CisgICAgICAgICAgICB2YXIgc3VidGl0bGUgPSBXZWJJbnNwZWN0b3IuZGlz
cGxheU5hbWVGb3JVUkwoY2FsbEZyYW1lLnVybCk7CiAKICAgICAgICAgICAgIHZhciBwbGFjYXJk
ID0gbmV3IFdlYkluc3BlY3Rvci5QbGFjYXJkKHRpdGxlLCBzdWJ0aXRsZSk7CiAgICAgICAgICAg
ICBwbGFjYXJkLmNhbGxGcmFtZSA9IGNhbGxGcmFtZTsKICAgICAgICAgICAgIHBsYWNhcmQuZWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3BsYWNhcmRTZWxlY3RlZC5iaW5k
KHRoaXMsIHBsYWNhcmQpLCBmYWxzZSk7CiAKLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZEdldFNv
dXJjZUxvY2F0aW9uKHBsYWNhcmQsIHNvdXJjZUZpbGVJZCwgbGluZU51bWJlciwgY29sdW1uTnVt
YmVyKQorICAgICAgICAgICAgZnVuY3Rpb24gZGlkR2V0U291cmNlTGluZShwbGFjYXJkLCBzb3Vy
Y2VGaWxlSWQsIGxpbmVOdW1iZXIpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgaWYg
KHBsYWNhcmQuc3VidGl0bGUpCiAgICAgICAgICAgICAgICAgICAgIHBsYWNhcmQuc3VidGl0bGUg
Kz0gIjoiICsgKGxpbmVOdW1iZXIgKyAxKTsKQEAgLTc5LDcgKzYzLDcgQEAgV2ViSW5zcGVjdG9y
LkNhbGxTdGFja1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICAg
cGxhY2FyZC5zdWJ0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygibGluZSAlZCIsIGxpbmVO
dW1iZXIgKyAxKTsKICAgICAgICAgICAgICAgICBwbGFjYXJkLl90ZXh0ID0gV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCIlcygpIGF0ICVzIiwgcGxhY2FyZC50aXRsZSwgcGxhY2FyZC5zdWJ0aXRsZSk7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYWxsRnJhbWUuc291cmNlTG9jYXRpb24oZGlk
R2V0U291cmNlTG9jYXRpb24uYmluZCh0aGlzLCBwbGFjYXJkKSk7CisgICAgICAgICAgICBjYWxs
RnJhbWUuc291cmNlTGluZShkaWRHZXRTb3VyY2VMaW5lLmJpbmQodGhpcywgcGxhY2FyZCkpOwog
CiAgICAgICAgICAgICB0aGlzLnBsYWNhcmRzLnB1c2gocGxhY2FyZCk7CiAgICAgICAgICAgICB0
aGlzLmJvZHlFbGVtZW50LmFwcGVuZENoaWxkKHBsYWNhcmQuZWxlbWVudCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKaW5kZXgg
YmQ2MjMzMmJjNmMxOWM1ZTRkNWMxMjM0MmRlMmQ5ZmNkZmEyNTU4NC4uYWM0YmJhZmQwYTYzOGMy
MDMzOTAwZWJiMjg1MjdjMjQwY2EwMjAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwpAQCAtNjgsOSArNjgsOSBAQCBXZWJJ
bnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5EZWJ1
Z2dlcldhc0Rpc2FibGVkKTsKICAgICB9LAogCi0gICAgY29udGludWVUb0xvY2F0aW9uOiBmdW5j
dGlvbihzb3VyY2VJRCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyKQorICAgIGNvbnRpbnVlVG9M
b2NhdGlvbjogZnVuY3Rpb24obG9jYXRpb24pCiAgICAgewotICAgICAgICBEZWJ1Z2dlckFnZW50
LmNvbnRpbnVlVG9Mb2NhdGlvbihzb3VyY2VJRCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyKTsK
KyAgICAgICAgRGVidWdnZXJBZ2VudC5jb250aW51ZVRvTG9jYXRpb24obG9jYXRpb24pOwogICAg
IH0sCiAKICAgICBzZXRCcmVha3BvaW50OiBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlciwgY29uZGl0aW9uLCBjYWxsYmFjaykKQEAgLTkyLDE0ICs5MiwxNCBAQCBXZWJJbnNw
ZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIERlYnVnZ2VyQWdlbnQu
c2V0QnJlYWtwb2ludEJ5VXJsKHVybCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBjb25kaXRp
b24sIGRpZFNldEJyZWFrcG9pbnQuYmluZCh0aGlzKSk7CiAgICAgfSwKIAotICAgIHNldEJyZWFr
cG9pbnRCeVNvdXJjZUlkOiBmdW5jdGlvbihzb3VyY2VJRCwgbGluZU51bWJlciwgY29sdW1uTnVt
YmVyLCBjb25kaXRpb24sIGNhbGxiYWNrKQorICAgIHNldEJyZWFrcG9pbnRCeVNvdXJjZUlkOiBm
dW5jdGlvbihsb2NhdGlvbiwgY29uZGl0aW9uLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIGZ1
bmN0aW9uIGRpZFNldEJyZWFrcG9pbnQoZXJyb3IsIGJyZWFrcG9pbnRJZCwgbG9jYXRpb24pCisg
ICAgICAgIGZ1bmN0aW9uIGRpZFNldEJyZWFrcG9pbnQoZXJyb3IsIGJyZWFrcG9pbnRJZCwgYWN0
dWFsTG9jYXRpb24pCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChjYWxsYmFjaykKLSAgICAg
ICAgICAgICAgICBjYWxsYmFjayhlcnJvciA/IG51bGwgOiBicmVha3BvaW50SWQsIFtsb2NhdGlv
bl0pOworICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yID8gbnVsbCA6IGJyZWFrcG9pbnRJ
ZCwgW2FjdHVhbExvY2F0aW9uXSk7CiAgICAgICAgIH0KLSAgICAgICAgRGVidWdnZXJBZ2VudC5z
ZXRCcmVha3BvaW50KHNvdXJjZUlELCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGNvbmRpdGlv
biwgZGlkU2V0QnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKKyAgICAgICAgRGVidWdnZXJBZ2VudC5z
ZXRCcmVha3BvaW50KGxvY2F0aW9uLCBjb25kaXRpb24sIGRpZFNldEJyZWFrcG9pbnQuYmluZCh0
aGlzKSk7CiAgICAgfSwKIAogICAgIHJlbW92ZUJyZWFrcG9pbnQ6IGZ1bmN0aW9uKGJyZWFrcG9p
bnRJZCwgY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXggNDc3MjBh
MjA0NDkwN2ZhOWE5NjE1NTkzOGMzZDA3ZmU2NjUzNGZmYi4uMWMwZWE0NTA5MDkzMzc2YzEyZGM0
ODY3ZmNiN2Q2Njc5ZjU3MzdhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAt
MjI0LDcgKzIyNCw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgewogICAgICAgICAgICAgdmFyIHByZXNlbnRhdGlvbk1lc3Nh
Z2UgPSB7fTsKICAgICAgICAgICAgIHByZXNlbnRhdGlvbk1lc3NhZ2Uuc291cmNlRmlsZUlkID0g
c291cmNlRmlsZS5pZDsKLSAgICAgICAgICAgIHByZXNlbnRhdGlvbk1lc3NhZ2UubGluZU51bWJl
ciA9IG1hcHBpbmcuc2NyaXB0TG9jYXRpb25Ub1NvdXJjZUxvY2F0aW9uKG1lc3NhZ2UubGluZSAt
IDEsIDApLmxpbmVOdW1iZXI7CisgICAgICAgICAgICBwcmVzZW50YXRpb25NZXNzYWdlLmxpbmVO
dW1iZXIgPSBtYXBwaW5nLnNjcmlwdExvY2F0aW9uVG9Tb3VyY2VMaW5lKHtsaW5lTnVtYmVyOm1l
c3NhZ2UubGluZSAtIDEsIGNvbHVtbk51bWJlcjowfSk7CiAgICAgICAgICAgICBwcmVzZW50YXRp
b25NZXNzYWdlLm9yaWdpbmFsTWVzc2FnZSA9IG1lc3NhZ2U7CiAgICAgICAgICAgICBzb3VyY2VG
aWxlLm1lc3NhZ2VzLnB1c2gocHJlc2VudGF0aW9uTWVzc2FnZSk7CiAgICAgICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRp
b25Nb2RlbC5FdmVudHMuQ29uc29sZU1lc3NhZ2VBZGRlZCwgcHJlc2VudGF0aW9uTWVzc2FnZSk7
CkBAIC0yNDMsOCArMjQzLDggQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9k
ZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdFNvdXJj
ZU1hcHBpbmcobWFwcGluZykKICAgICAgICAgewotICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0g
bWFwcGluZy5zb3VyY2VMb2NhdGlvblRvU2NyaXB0TG9jYXRpb24obGluZU51bWJlciwgMCk7Ci0g
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5jb250aW51ZVRvTG9jYXRpb24o
bG9jYXRpb24uc2NyaXB0SWQsIGxvY2F0aW9uLmxpbmVOdW1iZXIsIGxvY2F0aW9uLmNvbHVtbk51
bWJlcik7CisgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBtYXBwaW5nLnNvdXJjZUxpbmVUb1Nj
cmlwdExvY2F0aW9uKGxpbmVOdW1iZXIpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwuY29udGludWVUb0xvY2F0aW9uKGxvY2F0aW9uKTsKICAgICAgICAgfQogICAgICAg
ICB0aGlzLl9zb3VyY2VGaWxlc1tzb3VyY2VGaWxlSWRdLnJlcXVlc3RTb3VyY2VNYXBwaW5nKGRp
ZFJlcXVlc3RTb3VyY2VNYXBwaW5nLmJpbmQodGhpcykpOwogICAgIH0sCkBAIC0yOTcsMTIgKzI5
NywxNCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUg
PSB7CiAKICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdFNvdXJjZU1hcHBpbmcobWFwcGluZykK
ICAgICAgICAgewotICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gbWFwcGluZy5zb3VyY2VMb2Nh
dGlvblRvU2NyaXB0TG9jYXRpb24oYnJlYWtwb2ludC5saW5lTnVtYmVyLCAwKTsKLSAgICAgICAg
ICAgIHZhciBzY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3Vy
Y2VJRChsb2NhdGlvbi5zY3JpcHRJZCk7CisgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBtYXBw
aW5nLnNvdXJjZUxpbmVUb1NjcmlwdExvY2F0aW9uKGJyZWFrcG9pbnQubGluZU51bWJlcik7Cisg
ICAgICAgICAgICB2YXIgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0
Rm9yU291cmNlSUQobG9jYXRpb24uc291cmNlSUQpOwogICAgICAgICAgICAgaWYgKHNjcmlwdC5z
b3VyY2VVUkwpCiAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2V0
QnJlYWtwb2ludChzY3JpcHQuc291cmNlVVJMLCBsb2NhdGlvbi5saW5lTnVtYmVyLCBsb2NhdGlv
bi5jb2x1bW5OdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBkaWRTZXRCcmVha3BvaW50LmJp
bmQodGhpcykpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1vZGVsLnNldEJyZWFrcG9pbnRCeVNvdXJjZUlkKHNjcmlwdC5zb3VyY2VJRCwg
bG9jYXRpb24ubGluZU51bWJlciwgbG9jYXRpb24uY29sdW1uTnVtYmVyLCBicmVha3BvaW50LmNv
bmRpdGlvbiwgZGlkU2V0QnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgIGVsc2Ug
eworICAgICAgICAgICAgICAgIGxvY2F0aW9uLnNvdXJjZUlEID0gc2NyaXB0LnNvdXJjZUlEOwor
ICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNldEJyZWFrcG9pbnRC
eVNvdXJjZUlkKGxvY2F0aW9uLCBicmVha3BvaW50LmNvbmRpdGlvbiwgZGlkU2V0QnJlYWtwb2lu
dC5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBicmVha3Bv
aW50LnNvdXJjZUZpbGUucmVxdWVzdFNvdXJjZU1hcHBpbmcoZGlkUmVxdWVzdFNvdXJjZU1hcHBp
bmcuYmluZCh0aGlzKSk7CiAgICAgfSwKQEAgLTM5NCwxMCArMzk2LDggQEAgV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICBmdW5jdGlv
biBkaWRSZXF1ZXN0U291cmNlTWFwcGluZyhtYXBwaW5nKQogICAgICAgICB7CiAgICAgICAgICAg
ICAvLyBSZWZpbmUgbGluZSBudW1iZXIgYmFzZWQgb24gcmVzb2x2ZWQgbG9jYXRpb24uCi0gICAg
ICAgICAgICBpZiAoYnJlYWtwb2ludC5sb2NhdGlvbikgewotICAgICAgICAgICAgICAgIHZhciBz
b3VyY2VMb2NhdGlvbiA9IG1hcHBpbmcuc2NyaXB0TG9jYXRpb25Ub1NvdXJjZUxvY2F0aW9uKGJy
ZWFrcG9pbnQubG9jYXRpb24ubGluZU51bWJlciwgYnJlYWtwb2ludC5sb2NhdGlvbi5jb2x1bW5O
dW1iZXIpOwotICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQubGluZU51bWJlciA9IHNvdXJjZUxv
Y2F0aW9uLmxpbmVOdW1iZXI7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYnJlYWtw
b2ludC5sb2NhdGlvbikKKyAgICAgICAgICAgICAgICBicmVha3BvaW50LmxpbmVOdW1iZXIgPSBt
YXBwaW5nLnNjcmlwdExvY2F0aW9uVG9Tb3VyY2VMaW5lKGJyZWFrcG9pbnQubG9jYXRpb24pOwog
CiAgICAgICAgICAgICB2YXIgZXhpc3RpbmdCcmVha3BvaW50ID0gdGhpcy5maW5kQnJlYWtwb2lu
dChzb3VyY2VGaWxlLmlkLCBicmVha3BvaW50LmxpbmVOdW1iZXIpOwogICAgICAgICAgICAgaWYg
KGV4aXN0aW5nQnJlYWtwb2ludCkgewpAQCAtNDg5LDcgKzQ4OSw3IEBAIFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBjYWxsRnJhbWVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgY2Fs
bEZyYW1lID0gY2FsbEZyYW1lc1tpXTsKICAgICAgICAgICAgIHZhciBzb3VyY2VGaWxlOwotICAg
ICAgICAgICAgdmFyIHNjcmlwdCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZv
clNvdXJjZUlEKGNhbGxGcmFtZS5zb3VyY2VJRCk7CisgICAgICAgICAgICB2YXIgc2NyaXB0ID0g
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNlSUQoY2FsbEZyYW1lLmxv
Y2F0aW9uLnNvdXJjZUlEKTsKICAgICAgICAgICAgIGlmIChzY3JpcHQpCiAgICAgICAgICAgICAg
ICAgc291cmNlRmlsZSA9IHRoaXMuX3NvdXJjZUZpbGVGb3JTY3JpcHQoc2NyaXB0KTsKICAgICAg
ICAgICAgIHRoaXMuX3ByZXNlbnRhdGlvbkNhbGxGcmFtZXMucHVzaChuZXcgV2ViSW5zcGVjdG9y
LlByZXNlbmF0aW9uQ2FsbEZyYW1lKGNhbGxGcmFtZSwgaSwgc291cmNlRmlsZSkpOwpAQCAtNjIx
LDcgKzYyMSw3IEBAIFdlYkluc3BlY3Rvci5QcmVzZW5hdGlvbkNhbGxGcmFtZSA9IGZ1bmN0aW9u
KGNhbGxGcmFtZSwgaW5kZXgsIHNvdXJjZUZpbGUpCiAgICAgdGhpcy5fY2FsbEZyYW1lID0gY2Fs
bEZyYW1lOwogICAgIHRoaXMuX2luZGV4ID0gaW5kZXg7CiAgICAgdGhpcy5fc291cmNlRmlsZSA9
IHNvdXJjZUZpbGU7Ci0gICAgdGhpcy5fc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9k
ZWwuc2NyaXB0Rm9yU291cmNlSUQoY2FsbEZyYW1lLnNvdXJjZUlEKTsKKyAgICB0aGlzLl9zY3Jp
cHQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChjYWxsRnJh
bWUubG9jYXRpb24uc291cmNlSUQpOwogfQogCiBXZWJJbnNwZWN0b3IuUHJlc2VuYXRpb25DYWxs
RnJhbWUucHJvdG90eXBlID0gewpAQCAtNjcxLDE3ICs2NzEsMTYgQEAgV2ViSW5zcGVjdG9yLlBy
ZXNlbmF0aW9uQ2FsbEZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgRGVidWdnZXJBZ2VudC5l
dmFsdWF0ZU9uQ2FsbEZyYW1lKHRoaXMuX2NhbGxGcmFtZS5pZCwgY29kZSwgb2JqZWN0R3JvdXAs
IGluY2x1ZGVDb21tYW5kTGluZUFQSSwgZGlkRXZhbHVhdGVPbkNhbGxGcmFtZS5iaW5kKHRoaXMp
KTsKICAgICB9LAogCi0gICAgc291cmNlTG9jYXRpb246IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAg
IHNvdXJjZUxpbmU6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlz
Ll9zb3VyY2VGaWxlKSB7Ci0gICAgICAgICAgICBjYWxsYmFjayh1bmRlZmluZWQsIHRoaXMuX2Nh
bGxGcmFtZS5saW5lLCB0aGlzLl9jYWxsRnJhbWUuY29sdW1uKTsKKyAgICAgICAgICAgIGNhbGxi
YWNrKHVuZGVmaW5lZCwgdGhpcy5fY2FsbEZyYW1lLmxvY2F0aW9uLmxpbmVOdW1iZXIpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVz
dFNvdXJjZU1hcHBpbmcobWFwcGluZykKICAgICAgICAgewotICAgICAgICAgICAgdmFyIHNvdXJj
ZUxvY2F0aW9uID0gbWFwcGluZy5zY3JpcHRMb2NhdGlvblRvU291cmNlTG9jYXRpb24odGhpcy5f
Y2FsbEZyYW1lLmxpbmUsIHRoaXMuX2NhbGxGcmFtZS5jb2x1bW4pOwotICAgICAgICAgICAgY2Fs
bGJhY2sodGhpcy5fc291cmNlRmlsZS5pZCwgc291cmNlTG9jYXRpb24ubGluZU51bWJlciwgc291
cmNlTG9jYXRpb24uY29sdW1uTnVtYmVyKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMuX3Nv
dXJjZUZpbGUuaWQsIG1hcHBpbmcuc2NyaXB0TG9jYXRpb25Ub1NvdXJjZUxpbmUodGhpcy5fY2Fs
bEZyYW1lLmxvY2F0aW9uKSk7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fc291cmNlRmlsZS5y
ZXF1ZXN0U291cmNlTWFwcGluZyhkaWRSZXF1ZXN0U291cmNlTWFwcGluZy5iaW5kKHRoaXMpKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nj
cmlwdEZvcm1hdHRlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0Rm9ybWF0dGVyLmpzCmluZGV4IDJlMTY2ZjRlOTM3MjI2ZDE3YjgyZjQwZmUyMzcxMzM3NzQ4
N2FkOWIuLjgwODVjNTU2NDcwOTBlMTBhOWMwOTZhNmJiMGRkOTQ2YmVjZjUyYTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0dGVyLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0dGVy
LmpzCkBAIC0zNiwxMCArMzYsMTUgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlciA9IGZ1
bmN0aW9uKCkKICAgICB0aGlzLl90YXNrcyA9IFtdOwogfQogCi1XZWJJbnNwZWN0b3IuU2NyaXB0
Rm9ybWF0dGVyLmxvY2F0aW9uVG9Qb3NpdGlvbiA9IGZ1bmN0aW9uKGxpbmVFbmRpbmdzLCBsaW5l
TnVtYmVyLCBjb2x1bW5OdW1iZXIpCitXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLmxvY2F0
aW9uVG9Qb3NpdGlvbiA9IGZ1bmN0aW9uKGxpbmVFbmRpbmdzLCBsb2NhdGlvbikKIHsKLSAgICB2
YXIgcG9zaXRpb24gPSBsaW5lTnVtYmVyID8gbGluZUVuZGluZ3NbbGluZU51bWJlciAtIDFdICsg
MSA6IDA7Ci0gICAgcmV0dXJuIHBvc2l0aW9uICsgY29sdW1uTnVtYmVyOworICAgIHZhciBwb3Np
dGlvbiA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgPyBsaW5lRW5kaW5nc1tsb2NhdGlvbi5saW5lTnVt
YmVyIC0gMV0gKyAxIDogMDsKKyAgICByZXR1cm4gcG9zaXRpb24gKyBsb2NhdGlvbi5jb2x1bW5O
dW1iZXI7Cit9CisKK1dlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIubGluZVRvUG9zaXRpb24g
PSBmdW5jdGlvbihsaW5lRW5kaW5ncywgbGluZU51bWJlcikKK3sKKyAgICByZXR1cm4gdGhpcy5s
b2NhdGlvblRvUG9zaXRpb24obGluZUVuZGluZ3MsIHsgbGluZU51bWJlcjogbGluZU51bWJlciwg
Y29sdW1uTnVtYmVyOiAwIH0pOwogfQogCiBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLnBv
c2l0aW9uVG9Mb2NhdGlvbiA9IGZ1bmN0aW9uKGxpbmVFbmRpbmdzLCBwb3NpdGlvbikKQEAgLTU4
LDcgKzYzLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlci5maW5kU2NyaXB0UmFuZ2Vz
ID0gZnVuY3Rpb24obGluZUVuZGluZ3MsIHNjcmlwdHMpCiAgICAgdmFyIHNjcmlwdFJhbmdlcyA9
IFtdOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkgewogICAg
ICAgICB2YXIgc3RhcnQgPSB7IGxpbmVOdW1iZXI6IHNjcmlwdHNbaV0ubGluZU9mZnNldCwgY29s
dW1uTnVtYmVyOiBzY3JpcHRzW2ldLmNvbHVtbk9mZnNldCB9OwotICAgICAgICBzdGFydC5wb3Np
dGlvbiA9IFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIubG9jYXRpb25Ub1Bvc2l0aW9uKGxp
bmVFbmRpbmdzLCBzdGFydC5saW5lTnVtYmVyLCBzdGFydC5jb2x1bW5OdW1iZXIpOworICAgICAg
ICBzdGFydC5wb3NpdGlvbiA9IFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIubG9jYXRpb25U
b1Bvc2l0aW9uKGxpbmVFbmRpbmdzLCBzdGFydCk7CiAgICAgICAgIHZhciBlbmRQb3NpdGlvbiA9
IHN0YXJ0LnBvc2l0aW9uICsgc2NyaXB0c1tpXS5sZW5ndGg7CiAgICAgICAgIHZhciBlbmQgPSBX
ZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLnBvc2l0aW9uVG9Mb2NhdGlvbihsaW5lRW5kaW5n
cywgZW5kUG9zaXRpb24pOwogICAgICAgICBlbmQucG9zaXRpb24gPSBlbmRQb3NpdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVs
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMK
aW5kZXggYTM1ZmZhMWFlNTFmZjBjOTI0NDRhODI4ZjZjODRkYWIwZTU4YTJlOC4uNTNlNTljYTdj
Y2EzNzAwZTgxNWM1Mjg2MWExYTdiNDZhMjQ0MDRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTM4NywxNCArMzg3LDE0
IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAg
ICAgIHN0YXR1cyA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUGF1c2VkIG9uIGEgWE1MSHR0cFJl
cXVlc3QuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBm
dW5jdGlvbiBkaWRHZXRTb3VyY2VMb2NhdGlvbihzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIsIGNv
bHVtbk51bWJlcikKKyAgICAgICAgICAgIGZ1bmN0aW9uIGRpZEdldFNvdXJjZUxvY2F0aW9uKHNv
dXJjZUZpbGVJZCwgbGluZU51bWJlcikKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBp
ZiAoIXNvdXJjZUZpbGVJZCB8fCAhdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuZmluZEJyZWFrcG9p
bnQoc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLmpzQnJlYWtwb2ludHMuaGlnaGxp
Z2h0QnJlYWtwb2ludChzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIpOwogICAgICAgICAgICAgICAg
IHN0YXR1cyA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUGF1c2VkIG9uIGEgSmF2YVNjcmlwdCBi
cmVha3BvaW50LiIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FsbEZyYW1lc1swXS5z
b3VyY2VMb2NhdGlvbihkaWRHZXRTb3VyY2VMb2NhdGlvbi5iaW5kKHRoaXMpKTsKKyAgICAgICAg
ICAgIGNhbGxGcmFtZXNbMF0uc291cmNlTGluZShkaWRHZXRTb3VyY2VMb2NhdGlvbi5iaW5kKHRo
aXMpKTsKICAgICAgICAgfQogICAgICAgICBpZiAoc3RhdHVzKQogICAgICAgICAgICAgdGhpcy5z
aWRlYmFyUGFuZXMuY2FsbHN0YWNrLnNldFN0YXR1cyhzdGF0dXMpOwpAQCAtNDg3LDggKzQ4Nyw4
IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAg
ICAgZnVuY3Rpb24gZGlkUmVxdWVzdFNvdXJjZU1hcHBpbmcobWFwcGluZykKICAgICAgICAgewot
ICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gbWFwcGluZy5zY3JpcHRMb2NhdGlvblRvU291cmNl
TG9jYXRpb24oYW5jaG9yLmdldEF0dHJpYnV0ZSgibGluZV9udW1iZXIiKSAtIDEsIDApOwotICAg
ICAgICAgICAgdGhpcy5fc2hvd1NvdXJjZUxpbmUoc291cmNlRmlsZS5pZCwgbG9jYXRpb24ubGlu
ZU51bWJlcik7CisgICAgICAgICAgICB2YXIgbGluZU51bWJlciA9IG1hcHBpbmcuc2NyaXB0TG9j
YXRpb25Ub1NvdXJjZUxpbmUoe2xpbmVOdW1iZXI6YW5jaG9yLmdldEF0dHJpYnV0ZSgibGluZV9u
dW1iZXIiKSAtIDEsIGNvbHVtbk51bWJlcjowfSk7CisgICAgICAgICAgICB0aGlzLl9zaG93U291
cmNlTGluZShzb3VyY2VGaWxlLmlkLCBsaW5lTnVtYmVyKTsKICAgICAgICAgfQogICAgICAgICB2
YXIgc291cmNlRmlsZSA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLnNvdXJjZUZpbGVGb3JTY3Jp
cHRVUkwoYW5jaG9yLmhyZWYpOwogICAgICAgICBzb3VyY2VGaWxlLnJlcXVlc3RTb3VyY2VNYXBw
aW5nKGRpZFJlcXVlc3RTb3VyY2VNYXBwaW5nLmJpbmQodGhpcykpOwpAQCAtNjIxLDcgKzYyMSw3
IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlz
LnNpZGViYXJQYW5lcy53YXRjaEV4cHJlc3Npb25zLnJlZnJlc2hFeHByZXNzaW9ucygpOwogICAg
ICAgICB0aGlzLnNpZGViYXJQYW5lcy5jYWxsc3RhY2suc2VsZWN0ZWRDYWxsRnJhbWUgPSB0aGlz
Ll9wcmVzZW50YXRpb25Nb2RlbC5zZWxlY3RlZENhbGxGcmFtZTsKIAotICAgICAgICBmdW5jdGlv
biBkaWRHZXRTb3VyY2VMb2NhdGlvbihzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIsIGNvbHVtbk51
bWJlcikKKyAgICAgICAgZnVuY3Rpb24gZGlkR2V0U291cmNlTG9jYXRpb24oc291cmNlRmlsZUlk
LCBsaW5lTnVtYmVyKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIXNvdXJjZUZpbGVJZCkK
ICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC02MzQsNyArNjM0LDcgQEAgV2ViSW5zcGVjdG9y
LlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBzb3VyY2VGcmFtZS5zZXRF
eGVjdXRpb25MaW5lKGxpbmVOdW1iZXIpOwogICAgICAgICAgICAgdGhpcy5fZXhlY3V0aW9uU291
cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKICAgICAgICAgfQotICAgICAgICBjYWxsRnJhbWUuc291
cmNlTG9jYXRpb24oZGlkR2V0U291cmNlTG9jYXRpb24uYmluZCh0aGlzKSk7CisgICAgICAgIGNh
bGxGcmFtZS5zb3VyY2VMaW5lKGRpZEdldFNvdXJjZUxvY2F0aW9uLmJpbmQodGhpcykpOwogICAg
IH0sCiAKICAgICBfZmlsZXNTZWxlY3RDaGFuZ2VkOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMKaW5kZXggNGY1NmMwMGQy
MmUzMWRjNDE4OWFjNzdkZjIyMjg0NGVkMmJiOGEzYy4uMGM4NjkyMjRmZTgzMWM2ZjBhYjdkZTA2
N2ZiYjllYjQ5NzI3ZTg2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VGaWxlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU291cmNlRmlsZS5qcwpAQCAtMjU0LDEzICsyNTQsMTQgQEAgV2ViSW5zcGVjdG9yLlNv
dXJjZU1hcHBpbmcgPSBmdW5jdGlvbihzb3J0ZWRTY3JpcHRzKQogfQogCiBXZWJJbnNwZWN0b3Iu
U291cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7Ci0gICAgc2NyaXB0TG9jYXRpb25Ub1NvdXJjZUxv
Y2F0aW9uOiBmdW5jdGlvbihsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCisgICAgc2NyaXB0TG9j
YXRpb25Ub1NvdXJjZUxpbmU6IGZ1bmN0aW9uKGxvY2F0aW9uKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIHsgbGluZU51bWJlcjogbGluZU51bWJlciwgY29sdW1uTnVtYmVyOiBjb2x1bW5OdW1iZXIg
fTsKKyAgICAgICAgcmV0dXJuIGxvY2F0aW9uLmxpbmVOdW1iZXI7CiAgICAgfSwKIAotICAgIHNv
dXJjZUxvY2F0aW9uVG9TY3JpcHRMb2NhdGlvbjogZnVuY3Rpb24obGluZU51bWJlciwgY29sdW1u
TnVtYmVyKQorICAgIHNvdXJjZUxpbmVUb1NjcmlwdExvY2F0aW9uOiBmdW5jdGlvbihsaW5lTnVt
YmVyKQogICAgIHsKKyAgICAgICAgdmFyIGNvbHVtbk51bWJlciA9IDA7CiAgICAgICAgIHZhciBj
bG9zZXN0U2NyaXB0ID0gdGhpcy5fc29ydGVkU2NyaXB0c1swXTsKICAgICAgICAgZm9yICh2YXIg
aSA9IDE7IGkgPCB0aGlzLl9zb3J0ZWRTY3JpcHRzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAg
ICBzY3JpcHQgPSB0aGlzLl9zb3J0ZWRTY3JpcHRzW2ldOwpAQCAtMjY4LDcgKzI2OSw3IEBAIFdl
Ykluc3BlY3Rvci5Tb3VyY2VNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIGNsb3Nlc3RTY3JpcHQgPSBzY3JpcHQ7CiAgICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIHsgc2NyaXB0SWQ6IGNsb3Nlc3RTY3JpcHQuc291cmNlSUQsIGxpbmVOdW1i
ZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogY29sdW1uTnVtYmVyIH07CisgICAgICAgIHJl
dHVybiB7IHNvdXJjZUlEOiBjbG9zZXN0U2NyaXB0LnNvdXJjZUlELCBsaW5lTnVtYmVyOiBsaW5l
TnVtYmVyLCBjb2x1bW5OdW1iZXI6IGNvbHVtbk51bWJlciB9OwogICAgIH0KIH0KIApAQCAtMjgx
LDE5ICsyODIsMTkgQEAgV2ViSW5zcGVjdG9yLkZvcm1hdHRlZFNvdXJjZU1hcHBpbmcgPSBmdW5j
dGlvbihzb3J0ZWRTY3JpcHRzLCBvcmlnaW5hbFRleHQsIGZvcm0KIH0KIAogV2ViSW5zcGVjdG9y
LkZvcm1hdHRlZFNvdXJjZU1hcHBpbmcucHJvdG90eXBlID0gewotICAgIHNjcmlwdExvY2F0aW9u
VG9Tb3VyY2VMb2NhdGlvbjogZnVuY3Rpb24obGluZU51bWJlciwgY29sdW1uTnVtYmVyKQorICAg
IHNjcmlwdExvY2F0aW9uVG9Tb3VyY2VMaW5lOiBmdW5jdGlvbihsb2NhdGlvbikKICAgICB7Ci0g
ICAgICAgIHZhciBvcmlnaW5hbFBvc2l0aW9uID0gV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRl
ci5sb2NhdGlvblRvUG9zaXRpb24odGhpcy5fb3JpZ2luYWxMaW5lRW5kaW5ncywgbGluZU51bWJl
ciwgY29sdW1uTnVtYmVyKTsKKyAgICAgICAgdmFyIG9yaWdpbmFsUG9zaXRpb24gPSBXZWJJbnNw
ZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLmxvY2F0aW9uVG9Qb3NpdGlvbih0aGlzLl9vcmlnaW5hbExp
bmVFbmRpbmdzLCBsb2NhdGlvbik7CiAgICAgICAgIHZhciBmb3JtYXR0ZWRQb3NpdGlvbiA9IHRo
aXMuX2NvbnZlcnRQb3NpdGlvbih0aGlzLl9tYXBwaW5nLm9yaWdpbmFsLCB0aGlzLl9tYXBwaW5n
LmZvcm1hdHRlZCwgb3JpZ2luYWxQb3NpdGlvbik7Ci0gICAgICAgIHJldHVybiBXZWJJbnNwZWN0
b3IuU2NyaXB0Rm9ybWF0dGVyLnBvc2l0aW9uVG9Mb2NhdGlvbih0aGlzLl9mb3JtYXR0ZWRMaW5l
RW5kaW5ncywgZm9ybWF0dGVkUG9zaXRpb24pOworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9y
LlNjcmlwdEZvcm1hdHRlci5wb3NpdGlvblRvTG9jYXRpb24odGhpcy5fZm9ybWF0dGVkTGluZUVu
ZGluZ3MsIGZvcm1hdHRlZFBvc2l0aW9uKS5saW5lTnVtYmVyOwogICAgIH0sCiAKLSAgICBzb3Vy
Y2VMb2NhdGlvblRvU2NyaXB0TG9jYXRpb246IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGNvbHVtbk51
bWJlcikKKyAgICBzb3VyY2VMaW5lVG9TY3JpcHRMb2NhdGlvbjogZnVuY3Rpb24obGluZU51bWJl
cikKICAgICB7Ci0gICAgICAgIHZhciBmb3JtYXR0ZWRQb3NpdGlvbiA9IFdlYkluc3BlY3Rvci5T
Y3JpcHRGb3JtYXR0ZXIubG9jYXRpb25Ub1Bvc2l0aW9uKHRoaXMuX2Zvcm1hdHRlZExpbmVFbmRp
bmdzLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpOworICAgICAgICB2YXIgZm9ybWF0dGVkUG9z
aXRpb24gPSBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLmxpbmVUb1Bvc2l0aW9uKHRoaXMu
X2Zvcm1hdHRlZExpbmVFbmRpbmdzLCBsaW5lTnVtYmVyKTsKICAgICAgICAgdmFyIG9yaWdpbmFs
UG9zaXRpb24gPSB0aGlzLl9jb252ZXJ0UG9zaXRpb24odGhpcy5fbWFwcGluZy5mb3JtYXR0ZWQs
IHRoaXMuX21hcHBpbmcub3JpZ2luYWwsIGZvcm1hdHRlZFBvc2l0aW9uKTsKICAgICAgICAgdmFy
IG9yaWdpbmFsTG9jYXRpb24gPSBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLnBvc2l0aW9u
VG9Mb2NhdGlvbih0aGlzLl9vcmlnaW5hbExpbmVFbmRpbmdzLCBvcmlnaW5hbFBvc2l0aW9uKTsK
LSAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBwaW5nLnByb3RvdHlwZS5zb3Vy
Y2VMb2NhdGlvblRvU2NyaXB0TG9jYXRpb24uY2FsbCh0aGlzLCBvcmlnaW5hbExvY2F0aW9uLmxp
bmVOdW1iZXIsIG9yaWdpbmFsTG9jYXRpb24uY29sdW1uTnVtYmVyKTsKKyAgICAgICAgcmV0dXJu
IFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBwaW5nLnByb3RvdHlwZS5zb3VyY2VMaW5lVG9TY3JpcHRM
b2NhdGlvbi5jYWxsKHRoaXMsIG9yaWdpbmFsTG9jYXRpb24ubGluZU51bWJlcik7CiAgICAgfSwK
IAogICAgIF9jb252ZXJ0UG9zaXRpb246IGZ1bmN0aW9uKHBvc2l0aW9uczEsIHBvc2l0aW9uczIs
IHBvc2l0aW9uKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88802</attachid>
            <date>2011-04-08 05:19:31 -0700</date>
            <delta_ts>2011-04-08 05:24:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58118-20110408161928.patch</filename>
            <type>text/plain</type>
            <size>33934</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMyNjgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzCmluZGV4IDhkYTBmYTA1NWY2NmI5NDk3ZWM3N2I1
ZjZiYzE1Mjk4MDQ5ODVmYzcuLmQ5YzViZTQxNjg1YWY0YTAzMjM4YWFlMjRmZWNhNzg0OTQzYWYx
YjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
LXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIt
dGVzdC5qcwpAQCAtMTA2LDEzICsxMDYsMTMgQEAgSW5zcGVjdG9yVGVzdC5jYXB0dXJlU3RhY2tU
cmFjZSA9IGZ1bmN0aW9uKGNhbGxGcmFtZXMpCiAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IkNhbGwgc3RhY2s6Iik7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYWxsRnJhbWVzLmxlbmd0
aDsgaSsrKSB7CiAgICAgICAgIHZhciBmcmFtZSA9IGNhbGxGcmFtZXNbaV07Ci0gICAgICAgIHZh
ciBzY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChm
cmFtZS5zb3VyY2VJRCk7CisgICAgICAgIHZhciBzY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChmcmFtZS5sb2NhdGlvbi5zb3VyY2VJRCk7CiAgICAg
ICAgIHZhciB1cmw7CiAgICAgICAgIGlmIChzY3JpcHQpCiAgICAgICAgICAgICB1cmwgPSBXZWJJ
bnNwZWN0b3IuZGlzcGxheU5hbWVGb3JVUkwoc2NyaXB0LnNvdXJjZVVSTCk7CiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIHVybCA9ICIoaW50ZXJuYWwgc2NyaXB0KSIKLSAgICAgICAgdmFyIHMg
PSAiICAgICIgKyBpICsgIikgIiArIGZyYW1lLmZ1bmN0aW9uTmFtZSArICIgKCIgKyB1cmwgKyAi
OiIgKyAoZnJhbWUubGluZSArIDEpICsgIikiOworICAgICAgICB2YXIgcyA9ICIgICAgIiArIGkg
KyAiKSAiICsgZnJhbWUuZnVuY3Rpb25OYW1lICsgIiAoIiArIHVybCArICI6IiArIChmcmFtZS5s
b2NhdGlvbi5saW5lTnVtYmVyICsgMSkgKyAiKSI7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KHMpOwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBjN2JiNWM4NmExZThlZDFiMmRl
M2MwYTJjOTBhN2FhMjQwODI3ZC4uZGU4ZGI4MjI0MTZhY2JmN2M1ZDQwZWZjZWUwMzk1NWZjOTA1
NTlhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDExLTA0LTA4ICBQYXZlbCBGZWxk
bWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHVzZSAibG9jYXRpb25zIiBmb3Ig
ZGVidWdnZXIgc2NyaXB0cywgImxpbmVOdW1iZXJzIiBmb3IgdGhlIFVJIGVsZW1lbnRzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgxMTgKKworICAg
ICAgICBUaGlzIGNoYW5nZSByZXVzZXMgbG9jYXRpb24gZm9yIGNhbGwgZnJhbWVzIGluIHRoZSBw
cm90b2NvbCArIHN0cnVjdHVyZXMgc2NyaXB0CisgICAgICAgIGxvY2F0aW9uIDwtPiBzb3VyY2Ug
bGluZXMgaW50ZXJhY3Rpb24gYmV0dGVyLiBXaGVuIHdlIG5lZWQgVUkgY29sdW1ucywgd2Ugd2ls
bCBhZGQKKyAgICAgICAgdGhlbSwgYnV0IHdlIHNob3VsZCBkaXN0aW5ndWlzaCBiZXR3ZWVuIHNj
cmlwdCBhbmQgVUkgdGVybXMgb24gdGhlIHR5cGUgbGV2ZWwsIG5vdCBuYW1pbmcuCisKKyAgICAg
ICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogYmluZGlu
Z3MvdjgvRGVidWdnZXJTY3JpcHQuanM6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0U291cmNlLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQYW5lLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lLnByb3RvdHlwZS51cGRhdGUuZGlk
R2V0U291cmNlTGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ2FsbFN0YWNrU2lkZWJhclBh
bmUucHJvdG90eXBlLnVwZGF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
UHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLmFkZENvbnNvbGVNZXNzYWdlLmRpZFJlcXVlc3RT
b3VyY2VNYXBwaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLnByb3RvdHlwZS5hZGRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuY29udGludWVUb0xpbmUpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBl
Ll9zZXRCcmVha3BvaW50SW5EZWJ1Z2dlci5kaWRSZXF1ZXN0U291cmNlTWFwcGluZyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3Nl
dEJyZWFrcG9pbnRJbkRlYnVnZ2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fYnJlYWtwb2ludEFkZGVkLmRpZFJlcXVlc3RTb3Vy
Y2VNYXBwaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsLnByb3RvdHlwZS5fYnJlYWtwb2ludEFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Q
cmVzZW5hdGlvbkNhbGxGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJlc2VuYXRpb25D
YWxsRnJhbWUucHJvdG90eXBlLnNvdXJjZUxpbmUuZGlkUmVxdWVzdFNvdXJjZU1hcHBpbmcpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByZXNlbmF0aW9uQ2FsbEZyYW1lLnByb3RvdHlwZS5zb3Vy
Y2VMaW5lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIubG9jYXRpb25Ub1Bvc2l0
aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIubGluZVRvUG9zaXRp
b24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2RlYnVnZ2VyUGF1c2Vk
LmVsc2UuZGlkR2V0U291cmNlTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5wcm90b3R5cGUuX2RlYnVnZ2VyUGF1c2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLnNob3dBbmNob3JMb2NhdGlvbik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fY2FsbEZyYW1lU2VsZWN0ZWQuZGlk
R2V0U291cmNlTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUuX2NhbGxGcmFtZVNlbGVjdGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1NvdXJjZUZpbGUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlTWFwcGluZy5w
cm90b3R5cGUuc2NyaXB0TG9jYXRpb25Ub1NvdXJjZUxpbmUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNvdXJjZU1hcHBpbmcucHJvdG90eXBlLnNvdXJjZUxpbmVUb1NjcmlwdExvY2F0aW9uKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Gb3JtYXR0ZWRTb3VyY2VNYXBwaW5nLnByb3RvdHlwZS5z
Y3JpcHRMb2NhdGlvblRvU291cmNlTGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRm9ybWF0
dGVkU291cmNlTWFwcGluZy5wcm90b3R5cGUuc291cmNlTGluZVRvU2NyaXB0TG9jYXRpb24pOgor
CiAyMDExLTA0LTA4ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
QXR0ZW1wdCB0byBmaXggdGhlIFF0IGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanMgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9EZWJ1Z2dlclNjcmlwdC5qcwppbmRleCA2MzZjMTA2MTQ0NTBhNWMzODE3OTA1ZGI1YzcwYjc1
YjA4NjhiYjg0Li5lNTYwZWExNDNkMTgyZjA1OTVmOGNmMmJhOWZiOTg0YTdjYTk5YzZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5qcwpAQCAtOTEsNyAr
OTEsNyBAQCBEZWJ1Z2dlclNjcmlwdC5fZm9ybWF0U2NyaXB0ID0gZnVuY3Rpb24oc2NyaXB0KQog
CiBEZWJ1Z2dlclNjcmlwdC5zZXRCcmVha3BvaW50ID0gZnVuY3Rpb24oZXhlY1N0YXRlLCBhcmdz
KQogewotICAgIHZhciBicmVha0lkID0gRGVidWcuc2V0U2NyaXB0QnJlYWtQb2ludEJ5SWQoYXJn
cy5zY3JpcHRJZCwgYXJncy5saW5lTnVtYmVyLCBhcmdzLmNvbHVtbk51bWJlciwgYXJncy5jb25k
aXRpb24pOworICAgIHZhciBicmVha0lkID0gRGVidWcuc2V0U2NyaXB0QnJlYWtQb2ludEJ5SWQo
YXJncy5zb3VyY2VJRCwgYXJncy5saW5lTnVtYmVyLCBhcmdzLmNvbHVtbk51bWJlciwgYXJncy5j
b25kaXRpb24pOwogCiAgICAgdmFyIGxvY2F0aW9ucyA9IERlYnVnLmZpbmRCcmVha1BvaW50QWN0
dWFsTG9jYXRpb25zKGJyZWFrSWQpOwogICAgIGlmICghbG9jYXRpb25zLmxlbmd0aCkKQEAgLTI1
MCw3ICsyNTAsNiBAQCBEZWJ1Z2dlclNjcmlwdC5fZnJhbWVNaXJyb3JUb0pTQ2FsbEZyYW1lID0g
ZnVuY3Rpb24oZnJhbWVNaXJyb3IsIGNhbGxlckZyYW1lKQogICAgICAgICAibGluZSI6IGxvY2F0
aW9uLmxpbmUsCiAgICAgICAgICJjb2x1bW4iOiBsb2NhdGlvbi5jb2x1bW4sCiAgICAgICAgICJm
dW5jdGlvbk5hbWUiOiBmdW5jdGlvbk5hbWUsCi0gICAgICAgICJ0eXBlIjogImZ1bmN0aW9uIiwK
ICAgICAgICAgInRoaXNPYmplY3QiOiB0aGlzT2JqZWN0LAogICAgICAgICAic2NvcGVDaGFpbiI6
IHNjb3BlQ2hhaW4sCiAgICAgICAgICJzY29wZVR5cGUiOiBzY29wZVR5cGUsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggYzcwMjE2
NGMzYTUzZTM1MjBmMzM2YzI4YjNmMDRiMjA1MGRlZmYyMS4uZWU2M2FmODNhYTA4NzRiYTVmYzNk
ZTM2MzQ0MDJmZjJhY2VjNDgwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjcmlwdERlYnVnU2VydmVyLmNwcApAQCAtNjcsNyArNjcsNyBAQCBTdHJpbmcgU2NyaXB0RGVi
dWdTZXJ2ZXI6OnNldEJyZWFrcG9pbnQoY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgY29uc3QgU2Ny
aXB0QnJlYQogICAgIHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUoZGVidWdnZXJDb250
ZXh0KTsKIAogICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBhcmdzID0gdjg6Ok9iamVjdDo6TmV3
KCk7Ci0gICAgYXJncy0+U2V0KHY4OjpTdHJpbmc6Ok5ldygic2NyaXB0SWQiKSwgdjhTdHJpbmco
c291cmNlSUQpKTsKKyAgICBhcmdzLT5TZXQodjg6OlN0cmluZzo6TmV3KCJzb3VyY2VJRCIpLCB2
OFN0cmluZyhzb3VyY2VJRCkpOwogICAgIGFyZ3MtPlNldCh2ODo6U3RyaW5nOjpOZXcoImxpbmVO
dW1iZXIiKSwgdjg6OkludGVnZXI6Ok5ldyhzY3JpcHRCcmVha3BvaW50LmxpbmVOdW1iZXIpKTsK
ICAgICBhcmdzLT5TZXQodjg6OlN0cmluZzo6TmV3KCJjb2x1bW5OdW1iZXIiKSwgdjg6OkludGVn
ZXI6Ok5ldyhzY3JpcHRCcmVha3BvaW50LmNvbHVtbk51bWJlcikpOwogICAgIGFyZ3MtPlNldCh2
ODo6U3RyaW5nOjpOZXcoImNvbmRpdGlvbiIpLCB2OFN0cmluZyhzY3JpcHRCcmVha3BvaW50LmNv
bmRpdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0U291cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
U291cmNlLmpzCmluZGV4IGU2N2VmMmNmODFkYzVlN2NmNDkzMzcxOWQ0Y2RhYWYwMzg3YTI1ZTcu
LjgyMzFkNzhmYzI0OGQ3YTVhOGFiNWYzOTQ3MWMxYjU4NGEzNTUxZjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKQEAgLTQ3NCwxMSAr
NDc0LDggQEAgSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0LmZyb21PYmplY3QgPSBmdW5jdGlv
bihvYmplY3QsIG9iamVjdElkKQogSW5qZWN0ZWRTY3JpcHQuQ2FsbEZyYW1lUHJveHkgPSBmdW5j
dGlvbihvcmRpbmFsLCBjYWxsRnJhbWUpCiB7CiAgICAgdGhpcy5pZCA9ICJ7XCJvcmRpbmFsXCI6
IiArIG9yZGluYWwgKyAiLFwiaW5qZWN0ZWRTY3JpcHRJZFwiOiIgKyBpbmplY3RlZFNjcmlwdElk
ICsgIn0iOwotICAgIHRoaXMudHlwZSA9IGNhbGxGcmFtZS50eXBlOwotICAgIHRoaXMuZnVuY3Rp
b25OYW1lID0gKHRoaXMudHlwZSA9PT0gImZ1bmN0aW9uIiA/IGNhbGxGcmFtZS5mdW5jdGlvbk5h
bWUgOiAiIik7Ci0gICAgdGhpcy5zb3VyY2VJRCA9IGNhbGxGcmFtZS5zb3VyY2VJRDsKLSAgICB0
aGlzLmxpbmUgPSBjYWxsRnJhbWUubGluZTsKLSAgICB0aGlzLmNvbHVtbiA9IGNhbGxGcmFtZS5j
b2x1bW47CisgICAgdGhpcy5mdW5jdGlvbk5hbWUgPSAoY2FsbEZyYW1lLnR5cGUgPT09ICJmdW5j
dGlvbiIgPyBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIDogIiIpOworICAgIHRoaXMubG9jYXRpb24g
PSB7IHNvdXJjZUlEOiBjYWxsRnJhbWUuc291cmNlSUQsIGxpbmVOdW1iZXI6IGNhbGxGcmFtZS5s
aW5lLCBjb2x1bW5OdW1iZXI6IGNhbGxGcmFtZS5jb2x1bW4gfTsKICAgICB0aGlzLnNjb3BlQ2hh
aW4gPSB0aGlzLl93cmFwU2NvcGVDaGFpbihjYWxsRnJhbWUpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggNjg0NTNiMzQ0MWMyNmM2NmNlMTE4YjEyMWI3
MmQ1ODRkYTBlNmFjZC4uZjJlNjliMGIzOTFhY2VlOWY1ZjMyYzRiYWZjZGY1ZTRmZWY0NmQyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMTIzMiw3ICsxMjMy
LDcgQEAKICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAg
ICAgInNvdXJjZUlEIjogeyAidHlwZSI6ICJzdHJpbmciLCAgImRlc2NyaXB0aW9uIjogIlNjcmlw
dCBpZGVudGlmaWVyIGFzIHJlcG9ydGVkIGJ5IHRoZSA8Y29kZT5zY3JpcHRQYXJzZWQ8L2NvZGU+
IiB9LAogICAgICAgICAgICAgICAgICAgICAibGluZU51bWJlciI6IHsgInR5cGUiOiAiaW50ZWdl
ciIsICJkZXNjcmlwdGlvbiI6ICJMaW5lIG51bWJlciBpbiB0aGUgc2NyaXB0LiIgfSwKLSAgICAg
ICAgICAgICAgICAgICAgImNvbHVtbk51bWJlciI6IHsgInR5cGUiOiAiaW50ZWdlciIsICJkZXNj
cmlwdGlvbiI6ICJDb2x1bW4gbnVtYmVyIGluIHRoZSBzY3JpcHQuIiB9CisgICAgICAgICAgICAg
ICAgICAgICJjb2x1bW5OdW1iZXIiOiB7ICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiQ29sdW1uIG51bWJlciBpbiB0aGUgc2NyaXB0LiIgfQogICAg
ICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9u
IGluIHRoZSBzb3VyY2UgY29kZS4iCiAgICAgICAgICAgICB9LApAQCAtMTI0MSwxMSArMTI0MSw4
IEBACiAgICAgICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICAgICAi
cHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAgICAgImlkIjogeyAidHlwZSI6ICJzdHJp
bmciLCAgImRlc2NyaXB0aW9uIjogIkNhbGwgZnJhbWUgaWRlbnRpZmllciIgfSwKLSAgICAgICAg
ICAgICAgICAgICAgInR5cGUiOiB7ICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJD
YWxsIGZyYW1lIHR5cGUuIC8vIEZJWE1FIiB9LAogICAgICAgICAgICAgICAgICAgICAiZnVuY3Rp
b25OYW1lIjogeyAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiTmFtZSBvZiB0aGUg
ZnVuY3Rpb24gY2FsbGVkIG9uIHRoaXMgZnJhbWUuIiB9LAotICAgICAgICAgICAgICAgICAgICAi
c291cmNlSUQiOiB7ICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJTY3JpcHQgaWRl
bnRpZmllci4iIH0sCi0gICAgICAgICAgICAgICAgICAgICJsaW5lIjogeyAidHlwZSI6ICJpbnRl
Z2VyIiwgImRlc2NyaXB0aW9uIjogIkxpbmUgbnVtYmVyIGluIHRoZSBzY3JpcHQuIiB9LAotICAg
ICAgICAgICAgICAgICAgICAiY29sdW1uIjogeyAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0
aW9uIjogIkNvbHVtbiBudW1iZXIgaW4gdGhlIHNjcmlwdC4iIH0sCisgICAgICAgICAgICAgICAg
ICAgICJsb2NhdGlvbiI6IHsgIiRyZWYiOiAiTG9jYXRpb24iLCAiZGVzY3JpcHRpb24iOiAiTG9j
YXRpb24gaW4gdGhlIHNvdXJjZSBjb2RlLiIgfSwKICAgICAgICAgICAgICAgICAgICAgInNjb3Bl
Q2hhaW4iOiB7ICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAidHlwZSI6ICJvYmplY3QiIH0s
ICJkZXNjcmlwdGlvbiI6ICJTY29wZSBjaGFpbiBmb3IgZ2l2ZW4gY2FsbCBmcmFtZS4gLy8gRklY
TUUiIH0KICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJEZWJ1Z2dlciBjYWxsIGZyYW1lLiBBcnJheSBvZiBjYWxsIGZyYW1lcyBmb3JtIGNhbGwgc3Rh
Y2suIgpAQCAtMTI4NCwxNCArMTI4MSwxMiBAQAogICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICJuYW1lIjogInNldEJyZWFrcG9pbnQiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJz
IjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZUlkIiwgInR5cGUiOiAi
c3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlNvdXJjZSBJRCBvZiB0aGUgcmVzb3VyY2UgdG8gc2V0
IGJyZWFrcG9pbnQgb24gKGFzIHJlcG9ydGVkIGJ5IDxjb2RlPnNjcmlwdFBhcnNlZDwvY29kZT4p
LiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsaW5lTnVtYmVyIiwgInR5cGUi
OiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJMaW5lIG51bWJlciB0byBzZXQgYnJlYWtwb2lu
dCBhdC4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29sdW1uTnVtYmVyIiwg
InR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJPZmZz
ZXQgaW4gdGhlIGxpbmUgdG8gc2V0IGJyZWFrcG9pbnQgYXQuIiB9LAorICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImxvY2F0aW9uIiwgIiRyZWYiOiAiTG9jYXRpb24iLCAiZGVzY3JpcHRp
b24iOiAiTG9jYXRpb24gdG8gc2V0IGJyZWFrcG9pbnQgaW4uIiB9LAogICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImNvbmRpdGlvbiIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6
IHRydWUsICJkZXNjcmlwdGlvbiI6ICJFeHByZXNzaW9uIHRvIHVzZSBhcyBhIGJyZWFrcG9pbnQg
Y29uZGl0aW9uLiBXaGVuIHNwZWNpZmllZCwgZGVidWdnZXIgd2lsbCBvbmx5IHN0b3Agb24gdGhl
IGJyZWFrcG9pbnQgaWYgdGhpcyBleHByZXNzaW9uIGV2YWx1YXRlcyB0byB0cnVlLiIgfQogICAg
ICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCiAgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiYnJlYWtwb2ludElkIiwgInR5cGUiOiAic3RyaW5nIiwgImRl
c2NyaXB0aW9uIjogIklkIG9mIHRoZSBjcmVhdGVkIGJyZWFrcG9pbnQgZm9yIGZ1cnRoZXIgbWFu
aXB1bGF0aW9ucy4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibG9jYXRpb24i
LCAiJHJlZiIgOiAiTG9jYXRpb24iLCAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gdGhpcyBicmVh
a3BvaW50IHJlc29sdmVkIGludG8uIiB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
YWN0dWFsTG9jYXRpb24iLCAiJHJlZiIgOiAiTG9jYXRpb24iLCAiZGVzY3JpcHRpb24iOiAiTG9j
YXRpb24gdGhpcyBicmVha3BvaW50IHJlc29sdmVkIGludG8uIiB9CiAgICAgICAgICAgICAgICAg
XSwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2V0cyBKYXZhU2NyaXB0IGJyZWFr
cG9pbnQgYXQgYSBnaXZlbiBsb2NhdGlvbi4iCiAgICAgICAgICAgICB9LApAQCAtMTMwNSw5ICsx
MzAwLDcgQEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJjb250aW51
ZVRvTG9jYXRpb24iLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZUlkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2Ny
aXB0aW9uIjogIlNvdXJjZSBJRCBvZiB0aGUgcmVzb3VyY2UgdG8gY29udGludWUgdG8gKGFzIHJl
cG9ydGVkIGJ5IDxjb2RlPnNjcmlwdFBhcnNlZDwvY29kZT4pLiIgfSwKLSAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJsaW5lTnVtYmVyIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlw
dGlvbiI6ICJMaW5lIG51bWJlciB0byBzdG9wIGF0LiIgfSwKLSAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJjb2x1bW5OdW1iZXIiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9u
IjogIkNvbHVtbiBudW1iZXIgdG8gc3RvcCBhdC4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJsb2NhdGlvbiIsICIkcmVmIjogIkxvY2F0aW9uIiwgImRlc2NyaXB0aW9uIjogIkxv
Y2F0aW9uIHRvIGNvbnRpbnVlIHRvLiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkNvbnRpbnVlcyBleGVjdXRpb24gdW50aWwgc3BlY2lmaWMg
bG9jYXRpb24gaXMgcmVhY2hlZC4iCiAgICAgICAgICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDZjZWI3N2Rl
NGY1M2JmYTE3NDk2MmYyMzNmZGVjOWEwOTNlNDgzMGYuLjM2YTEwMGIzMzlhMDJiMzY1NjE2ZTQw
NWZhZTZmNjUwNGU1NDQyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTE3NCwxNyArMTc0LDI2IEBAIHZvaWQgSW5z
cGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0QnJlYWtwb2ludEJ5VXJsKEVycm9yU3RyaW5nKiwgY29u
c3QgU3RyaW5nJiB1cmwsCiAgICAgKm91dEJyZWFrcG9pbnRJZCA9IGJyZWFrcG9pbnRJZDsKIH0K
IAotdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRCcmVha3BvaW50KEVycm9yU3RyaW5n
KiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBzb3VyY2VJZCwgaW50IGxpbmVOdW1iZXIsIGNv
bnN0IGludCogY29uc3Qgb3B0aW9uYWxDb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyogY29uc3Qg
b3B0aW9uYWxDb25kaXRpb24sIFN0cmluZyogb3V0QnJlYWtwb2ludElkLCBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiogbG9jYXRpb24pCit2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldEJy
ZWFrcG9pbnQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gbG9jYXRpb24sIGNvbnN0IFN0cmluZyogY29uc3Qgb3B0aW9uYWxDb25kaXRpb24sIFN0
cmluZyogb3V0QnJlYWtwb2ludElkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogYWN0dWFsTG9j
YXRpb24pCiB7Ci0gICAgaW50IGNvbHVtbk51bWJlciA9IG9wdGlvbmFsQ29sdW1uTnVtYmVyID8g
Km9wdGlvbmFsQ29sdW1uTnVtYmVyIDogMDsKKyAgICBTdHJpbmcgc291cmNlSWQ7CisgICAgaW50
IGxpbmVOdW1iZXI7CisgICAgaWYgKCFsb2NhdGlvbi0+Z2V0U3RyaW5nKCJzb3VyY2VJRCIsICZz
b3VyY2VJZCkgfHwgIWxvY2F0aW9uLT5nZXROdW1iZXIoImxpbmVOdW1iZXIiLCAmbGluZU51bWJl
cikpIHsKKyAgICAgICAgLy8gRklYTUU6IHJlcGxhY2Ugd2l0aCBpbnB1dCB2YWxpZGF0aW9uLgor
ICAgICAgICAqZXJyb3JTdHJpbmcgPSAic291cmNlSWQgYW5kIGxpbmVOdW1iZXIgYXJlIHJlcXVp
cmVkLiI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaW50IGNvbHVtbk51bWJlciA9IDA7
CisgICAgbG9jYXRpb24tPmdldE51bWJlcigiY29sdW1uTnVtYmVyIiwgJmNvbHVtbk51bWJlcik7
CisKICAgICBTdHJpbmcgY29uZGl0aW9uID0gb3B0aW9uYWxDb25kaXRpb24gPyAqb3B0aW9uYWxD
b25kaXRpb24gOiAiIjsKIAogICAgIFN0cmluZyBicmVha3BvaW50SWQgPSBtYWtlU3RyaW5nKHNv
dXJjZUlkLCAiOiIsIFN0cmluZzo6bnVtYmVyKGxpbmVOdW1iZXIpLCAiOiIsIFN0cmluZzo6bnVt
YmVyKGNvbHVtbk51bWJlcikpOwogICAgIGlmIChtX2JyZWFrcG9pbnRJZFRvRGVidWdTZXJ2ZXJC
cmVha3BvaW50SWRzLmZpbmQoYnJlYWtwb2ludElkKSAhPSBtX2JyZWFrcG9pbnRJZFRvRGVidWdT
ZXJ2ZXJCcmVha3BvaW50SWRzLmVuZCgpKQogICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0QnJl
YWtwb2ludCBicmVha3BvaW50KGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9uKTsK
LSAgICAqbG9jYXRpb24gPSByZXNvbHZlQnJlYWtwb2ludChicmVha3BvaW50SWQsIHNvdXJjZUlk
LCBicmVha3BvaW50KTsKLSAgICBpZiAoKmxvY2F0aW9uKQorICAgICphY3R1YWxMb2NhdGlvbiA9
IHJlc29sdmVCcmVha3BvaW50KGJyZWFrcG9pbnRJZCwgc291cmNlSWQsIGJyZWFrcG9pbnQpOwor
ICAgIGlmICgqYWN0dWFsTG9jYXRpb24pCiAgICAgICAgICpvdXRCcmVha3BvaW50SWQgPSBicmVh
a3BvaW50SWQ7CiAgICAgZWxzZQogICAgICAgICAqZXJyb3JTdHJpbmcgPSAiQ291bGQgbm90IHJl
c29sdmUgYnJlYWtwb2ludCI7CkBAIC0yMDQsMTUgKzIxMywyNiBAQCB2b2lkIEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6OnJlbW92ZUJyZWFrcG9pbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcm
IGJyZWFrcAogICAgIG1fYnJlYWtwb2ludElkVG9EZWJ1Z1NlcnZlckJyZWFrcG9pbnRJZHMucmVt
b3ZlKGRlYnVnU2VydmVyQnJlYWtwb2ludElkc0l0ZXJhdG9yKTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50Ojpjb250aW51ZVRvTG9jYXRpb24oRXJyb3JTdHJpbmcqIGVycm9yLCBj
b25zdCBTdHJpbmcmIHNvdXJjZUlkLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlcikK
K3ZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Y29udGludWVUb0xvY2F0aW9uKEVycm9yU3Ry
aW5nKiBlcnJvclN0cmluZywgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGxvY2F0aW9uKQog
ewogICAgIGlmICghbV9jb250aW51ZVRvTG9jYXRpb25CcmVha3BvaW50SWQuaXNFbXB0eSgpKSB7
CiAgICAgICAgIHNjcmlwdERlYnVnU2VydmVyKCkucmVtb3ZlQnJlYWtwb2ludChtX2NvbnRpbnVl
VG9Mb2NhdGlvbkJyZWFrcG9pbnRJZCk7CiAgICAgICAgIG1fY29udGludWVUb0xvY2F0aW9uQnJl
YWtwb2ludElkID0gIiI7CiAgICAgfQorCisgICAgU3RyaW5nIHNvdXJjZUlkOworICAgIGludCBs
aW5lTnVtYmVyOworICAgIGlmICghbG9jYXRpb24tPmdldFN0cmluZygic291cmNlSUQiLCAmc291
cmNlSWQpIHx8ICFsb2NhdGlvbi0+Z2V0TnVtYmVyKCJsaW5lTnVtYmVyIiwgJmxpbmVOdW1iZXIp
KSB7CisgICAgICAgIC8vIEZJWE1FOiByZXBsYWNlIHdpdGggaW5wdXQgdmFsaWRhdGlvbi4KKyAg
ICAgICAgKmVycm9yU3RyaW5nID0gInNvdXJjZUlkIGFuZCBsaW5lTnVtYmVyIGFyZSByZXF1aXJl
ZC4iOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGludCBjb2x1bW5OdW1iZXIgPSAwOwor
ICAgIGxvY2F0aW9uLT5nZXROdW1iZXIoImNvbHVtbk51bWJlciIsICZjb2x1bW5OdW1iZXIpOwor
CiAgICAgU2NyaXB0QnJlYWtwb2ludCBicmVha3BvaW50KGxpbmVOdW1iZXIsIGNvbHVtbk51bWJl
ciwgIiIpOwogICAgIG1fY29udGludWVUb0xvY2F0aW9uQnJlYWtwb2ludElkID0gc2NyaXB0RGVi
dWdTZXJ2ZXIoKS5zZXRCcmVha3BvaW50KHNvdXJjZUlkLCBicmVha3BvaW50LCAmbGluZU51bWJl
ciwgJmNvbHVtbk51bWJlcik7Ci0gICAgcmVzdW1lKGVycm9yKTsKKyAgICByZXN1bWUoZXJyb3JT
dHJpbmcpOwogfQogCiBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6cmVzb2x2ZUJyZWFrcG9pbnQoY29uc3QgU3RyaW5nJiBicmVha3BvaW50SWQsIGNv
bnN0IFN0cmluZyYgc291cmNlSWQsIGNvbnN0IFNjcmlwdEJyZWFrcG9pbnQmIGJyZWFrcG9pbnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJB
Z2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQu
aAppbmRleCA0N2U4ZTVkZjJiODc0YzA2NGQ4YTk1MmU5NWI5MDliNTA5YTBkZjc4Li43YWUwMzAz
ZjhmZmYyNmYwYWVkMGJjZmUwZDFjOGU2MGEwMmIyOTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKQEAgLTgxLDkgKzgxLDkgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0QnJlYWtwb2ludHNBY3RpdmUoRXJyb3JTdHJpbmcqLCBib29s
IGFjdGl2ZSk7CiAKICAgICB2b2lkIHNldEJyZWFrcG9pbnRCeVVybChFcnJvclN0cmluZyosIGNv
bnN0IFN0cmluZyYgdXJsLCBpbnQgbGluZU51bWJlciwgY29uc3QgaW50KiBjb25zdCBvcHRpb25h
bENvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nKiBjb25zdCBvcHRpb25hbENvbmRpdGlvbiwgU3Ry
aW5nKiBicmVha3BvaW50SWQsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGxvY2F0aW9ucyk7Ci0g
ICAgdm9pZCBzZXRCcmVha3BvaW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzb3VyY2VJ
ZCwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IGludCogY29uc3Qgb3B0aW9uYWxDb2x1bW5OdW1iZXIs
IGNvbnN0IFN0cmluZyogY29uc3Qgb3B0aW9uYWxDb25kaXRpb24sIFN0cmluZyogYnJlYWtwb2lu
dElkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogbG9jYXRpb24pOworICAgIHZvaWQgc2V0QnJl
YWtwb2ludChFcnJvclN0cmluZyosIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBsb2NhdGlv
biwgY29uc3QgU3RyaW5nKiBjb25zdCBvcHRpb25hbENvbmRpdGlvbiwgU3RyaW5nKiBicmVha3Bv
aW50SWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBhY3R1YWxMb2NhdGlvbik7CiAgICAgdm9p
ZCByZW1vdmVCcmVha3BvaW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBicmVha3BvaW50
SWQpOwotICAgIHZvaWQgY29udGludWVUb0xvY2F0aW9uKEVycm9yU3RyaW5nKiwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VJZCwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIpOworICAgIHZv
aWQgY29udGludWVUb0xvY2F0aW9uKEVycm9yU3RyaW5nKiwgUGFzc1JlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IGxvY2F0aW9uKTsKIAogICAgIHZvaWQgZWRpdFNjcmlwdFNvdXJjZShFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYgc291cmNlSUQsIGNvbnN0IFN0cmluZyYgbmV3Q29udGVudCwgUmVm
UHRyPEluc3BlY3RvckFycmF5PiogbmV3Q2FsbEZyYW1lcyk7CiAgICAgdm9pZCBnZXRTY3JpcHRT
b3VyY2UoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlELCBTdHJpbmcqIHNjcmlw
dFNvdXJjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0NhbGxTdGFja1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9DYWxsU3RhY2tTaWRlYmFyUGFuZS5qcwppbmRleCAzZDcxMTAxNDA0Y2UxMWE4ODJmYTdj
Y2JiNWZjNDNjNzMzOWM3YTViLi5lZmQ2ZDZkNDg1MTYyODRhODc2NzY5MmU1ODMzZmUxODZlNjIz
MDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxT
dGFja1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMKQEAgLTQ2LDIwICs0Niw5IEBAIFdlYkluc3BlY3Rv
ci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAotICAgICAgICB2YXIgdGl0bGU7Ci0gICAgICAgIHZhciBzdWJ0aXRsZTsK
LSAgICAgICAgdmFyIHNjcmlwdDsKLQogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhbGxG
cmFtZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciBjYWxsRnJhbWUgPSBjYWxsRnJh
bWVzW2ldOwotICAgICAgICAgICAgc3dpdGNoIChjYWxsRnJhbWUudHlwZSkgewotICAgICAgICAg
ICAgY2FzZSAiZnVuY3Rpb24iOgotICAgICAgICAgICAgICAgIHRpdGxlID0gY2FsbEZyYW1lLmZ1
bmN0aW9uTmFtZSB8fCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihhbm9ueW1vdXMgZnVuY3Rpb24p
Iik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICJwcm9ncmFtIjoK
LSAgICAgICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiKHByb2dyYW0p
Iik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICB2
YXIgdGl0bGUgPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiKGFub255bW91cyBmdW5jdGlvbikiKTsKIAogICAgICAgICAgICAgdmFyIHN1YnRpdGxlOwog
ICAgICAgICAgICAgaWYgKCFjYWxsRnJhbWUuaXNJbnRlcm5hbFNjcmlwdCkKQEAgLTcxLDcgKzYw
LDcgQEAgV2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIHBsYWNhcmQuY2FsbEZyYW1lID0gY2FsbEZyYW1lOwogICAgICAgICAgICAgcGxh
Y2FyZC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fcGxhY2FyZFNlbGVj
dGVkLmJpbmQodGhpcywgcGxhY2FyZCksIGZhbHNlKTsKIAotICAgICAgICAgICAgZnVuY3Rpb24g
ZGlkR2V0U291cmNlTG9jYXRpb24ocGxhY2FyZCwgc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyLCBj
b2x1bW5OdW1iZXIpCisgICAgICAgICAgICBmdW5jdGlvbiBkaWRHZXRTb3VyY2VMaW5lKHBsYWNh
cmQsIHNvdXJjZUZpbGVJZCwgbGluZU51bWJlcikKICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICBpZiAocGxhY2FyZC5zdWJ0aXRsZSkKICAgICAgICAgICAgICAgICAgICAgcGxhY2FyZC5z
dWJ0aXRsZSArPSAiOiIgKyAobGluZU51bWJlciArIDEpOwpAQCAtNzksNyArNjgsNyBAQCBXZWJJ
bnNwZWN0b3IuQ2FsbFN0YWNrU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICAgICAg
ICAgICAgICBwbGFjYXJkLnN1YnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJsaW5lICVk
IiwgbGluZU51bWJlciArIDEpOwogICAgICAgICAgICAgICAgIHBsYWNhcmQuX3RleHQgPSBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIiVzKCkgYXQgJXMiLCBwbGFjYXJkLnRpdGxlLCBwbGFjYXJkLnN1
YnRpdGxlKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhbGxGcmFtZS5zb3VyY2VMb2Nh
dGlvbihkaWRHZXRTb3VyY2VMb2NhdGlvbi5iaW5kKHRoaXMsIHBsYWNhcmQpKTsKKyAgICAgICAg
ICAgIGNhbGxGcmFtZS5zb3VyY2VMaW5lKGRpZEdldFNvdXJjZUxpbmUuYmluZCh0aGlzLCBwbGFj
YXJkKSk7CiAKICAgICAgICAgICAgIHRoaXMucGxhY2FyZHMucHVzaChwbGFjYXJkKTsKICAgICAg
ICAgICAgIHRoaXMuYm9keUVsZW1lbnQuYXBwZW5kQ2hpbGQocGxhY2FyZC5lbGVtZW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2Rl
bC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5q
cwppbmRleCBiZDYyMzMyYmM2YzE5YzVlNGQ1YzEyMzQyZGUyZDlmY2RmYTI1NTg0Li5hYzRiYmFm
ZDBhNjM4YzIwMzM5MDBlYmIyODUyN2MyNDBjYTAyMDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCkBAIC02OCw5ICs2OCw5
IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhp
cy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZl
bnRzLkRlYnVnZ2VyV2FzRGlzYWJsZWQpOwogICAgIH0sCiAKLSAgICBjb250aW51ZVRvTG9jYXRp
b246IGZ1bmN0aW9uKHNvdXJjZUlELCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCisgICAgY29u
dGludWVUb0xvY2F0aW9uOiBmdW5jdGlvbihsb2NhdGlvbikKICAgICB7Ci0gICAgICAgIERlYnVn
Z2VyQWdlbnQuY29udGludWVUb0xvY2F0aW9uKHNvdXJjZUlELCBsaW5lTnVtYmVyLCBjb2x1bW5O
dW1iZXIpOworICAgICAgICBEZWJ1Z2dlckFnZW50LmNvbnRpbnVlVG9Mb2NhdGlvbihsb2NhdGlv
bik7CiAgICAgfSwKIAogICAgIHNldEJyZWFrcG9pbnQ6IGZ1bmN0aW9uKHVybCwgbGluZU51bWJl
ciwgY29sdW1uTnVtYmVyLCBjb25kaXRpb24sIGNhbGxiYWNrKQpAQCAtOTIsMTQgKzkyLDE0IEBA
IFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgRGVidWdn
ZXJBZ2VudC5zZXRCcmVha3BvaW50QnlVcmwodXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIs
IGNvbmRpdGlvbiwgZGlkU2V0QnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKICAgICB9LAogCi0gICAg
c2V0QnJlYWtwb2ludEJ5U291cmNlSWQ6IGZ1bmN0aW9uKHNvdXJjZUlELCBsaW5lTnVtYmVyLCBj
b2x1bW5OdW1iZXIsIGNvbmRpdGlvbiwgY2FsbGJhY2spCisgICAgc2V0QnJlYWtwb2ludEJ5U291
cmNlSWQ6IGZ1bmN0aW9uKGxvY2F0aW9uLCBjb25kaXRpb24sIGNhbGxiYWNrKQogICAgIHsKLSAg
ICAgICAgZnVuY3Rpb24gZGlkU2V0QnJlYWtwb2ludChlcnJvciwgYnJlYWtwb2ludElkLCBsb2Nh
dGlvbikKKyAgICAgICAgZnVuY3Rpb24gZGlkU2V0QnJlYWtwb2ludChlcnJvciwgYnJlYWtwb2lu
dElkLCBhY3R1YWxMb2NhdGlvbikKICAgICAgICAgewogICAgICAgICAgICAgaWYgKGNhbGxiYWNr
KQotICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yID8gbnVsbCA6IGJyZWFrcG9pbnRJZCwg
W2xvY2F0aW9uXSk7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IgPyBudWxsIDogYnJl
YWtwb2ludElkLCBbYWN0dWFsTG9jYXRpb25dKTsKICAgICAgICAgfQotICAgICAgICBEZWJ1Z2dl
ckFnZW50LnNldEJyZWFrcG9pbnQoc291cmNlSUQsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwg
Y29uZGl0aW9uLCBkaWRTZXRCcmVha3BvaW50LmJpbmQodGhpcykpOworICAgICAgICBEZWJ1Z2dl
ckFnZW50LnNldEJyZWFrcG9pbnQobG9jYXRpb24sIGNvbmRpdGlvbiwgZGlkU2V0QnJlYWtwb2lu
dC5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAgcmVtb3ZlQnJlYWtwb2ludDogZnVuY3Rpb24o
YnJlYWtwb2ludElkLCBjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwppbmRl
eCA0NzcyMGEyMDQ0OTA3ZmE5YTk2MTU1OTM4YzNkMDdmZTY2NTM0ZmZiLi4xYzBlYTQ1MDkwOTMz
NzZjMTJkYzQ4NjdmY2I3ZDY2NzlmNTczN2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LmpzCkBAIC0yMjQsNyArMjI0LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB7CiAgICAgICAgICAgICB2YXIgcHJlc2VudGF0
aW9uTWVzc2FnZSA9IHt9OwogICAgICAgICAgICAgcHJlc2VudGF0aW9uTWVzc2FnZS5zb3VyY2VG
aWxlSWQgPSBzb3VyY2VGaWxlLmlkOwotICAgICAgICAgICAgcHJlc2VudGF0aW9uTWVzc2FnZS5s
aW5lTnVtYmVyID0gbWFwcGluZy5zY3JpcHRMb2NhdGlvblRvU291cmNlTG9jYXRpb24obWVzc2Fn
ZS5saW5lIC0gMSwgMCkubGluZU51bWJlcjsKKyAgICAgICAgICAgIHByZXNlbnRhdGlvbk1lc3Nh
Z2UubGluZU51bWJlciA9IG1hcHBpbmcuc2NyaXB0TG9jYXRpb25Ub1NvdXJjZUxpbmUoe2xpbmVO
dW1iZXI6bWVzc2FnZS5saW5lIC0gMSwgY29sdW1uTnVtYmVyOjB9KTsKICAgICAgICAgICAgIHBy
ZXNlbnRhdGlvbk1lc3NhZ2Uub3JpZ2luYWxNZXNzYWdlID0gbWVzc2FnZTsKICAgICAgICAgICAg
IHNvdXJjZUZpbGUubWVzc2FnZXMucHVzaChwcmVzZW50YXRpb25NZXNzYWdlKTsKICAgICAgICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5Db25zb2xlTWVzc2FnZUFkZGVkLCBwcmVzZW50YXRpb25N
ZXNzYWdlKTsKQEAgLTI0Myw4ICsyNDMsOCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50
YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBmdW5jdGlvbiBkaWRSZXF1
ZXN0U291cmNlTWFwcGluZyhtYXBwaW5nKQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgbG9j
YXRpb24gPSBtYXBwaW5nLnNvdXJjZUxvY2F0aW9uVG9TY3JpcHRMb2NhdGlvbihsaW5lTnVtYmVy
LCAwKTsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmNvbnRpbnVlVG9M
b2NhdGlvbihsb2NhdGlvbi5zY3JpcHRJZCwgbG9jYXRpb24ubGluZU51bWJlciwgbG9jYXRpb24u
Y29sdW1uTnVtYmVyKTsKKyAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IG1hcHBpbmcuc291cmNl
TGluZVRvU2NyaXB0TG9jYXRpb24obGluZU51bWJlcik7CisgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNb2RlbC5jb250aW51ZVRvTG9jYXRpb24obG9jYXRpb24pOwogICAgICAgICB9
CiAgICAgICAgIHRoaXMuX3NvdXJjZUZpbGVzW3NvdXJjZUZpbGVJZF0ucmVxdWVzdFNvdXJjZU1h
cHBpbmcoZGlkUmVxdWVzdFNvdXJjZU1hcHBpbmcuYmluZCh0aGlzKSk7CiAgICAgfSwKQEAgLTI5
NywxMiArMjk3LDE0IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnBy
b3RvdHlwZSA9IHsKIAogICAgICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0U291cmNlTWFwcGluZyht
YXBwaW5nKQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBtYXBwaW5nLnNv
dXJjZUxvY2F0aW9uVG9TY3JpcHRMb2NhdGlvbihicmVha3BvaW50LmxpbmVOdW1iZXIsIDApOwot
ICAgICAgICAgICAgdmFyIHNjcmlwdCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlw
dEZvclNvdXJjZUlEKGxvY2F0aW9uLnNjcmlwdElkKTsKKyAgICAgICAgICAgIHZhciBsb2NhdGlv
biA9IG1hcHBpbmcuc291cmNlTGluZVRvU2NyaXB0TG9jYXRpb24oYnJlYWtwb2ludC5saW5lTnVt
YmVyKTsKKyAgICAgICAgICAgIHZhciBzY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2Rl
bC5zY3JpcHRGb3JTb3VyY2VJRChsb2NhdGlvbi5zb3VyY2VJRCk7CiAgICAgICAgICAgICBpZiAo
c2NyaXB0LnNvdXJjZVVSTCkKICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
b2RlbC5zZXRCcmVha3BvaW50KHNjcmlwdC5zb3VyY2VVUkwsIGxvY2F0aW9uLmxpbmVOdW1iZXIs
IGxvY2F0aW9uLmNvbHVtbk51bWJlciwgYnJlYWtwb2ludC5jb25kaXRpb24sIGRpZFNldEJyZWFr
cG9pbnQuYmluZCh0aGlzKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2V0QnJlYWtwb2ludEJ5U291cmNlSWQoc2NyaXB0LnNv
dXJjZUlELCBsb2NhdGlvbi5saW5lTnVtYmVyLCBsb2NhdGlvbi5jb2x1bW5OdW1iZXIsIGJyZWFr
cG9pbnQuY29uZGl0aW9uLCBkaWRTZXRCcmVha3BvaW50LmJpbmQodGhpcykpOworICAgICAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbG9jYXRpb24uc291cmNlSUQgPSBzY3JpcHQuc291
cmNlSUQ7CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2V0QnJl
YWtwb2ludEJ5U291cmNlSWQobG9jYXRpb24sIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBkaWRTZXRC
cmVha3BvaW50LmJpbmQodGhpcykpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAg
IGJyZWFrcG9pbnQuc291cmNlRmlsZS5yZXF1ZXN0U291cmNlTWFwcGluZyhkaWRSZXF1ZXN0U291
cmNlTWFwcGluZy5iaW5kKHRoaXMpKTsKICAgICB9LApAQCAtMzk0LDEwICszOTYsOCBAQCBXZWJJ
bnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAg
IGZ1bmN0aW9uIGRpZFJlcXVlc3RTb3VyY2VNYXBwaW5nKG1hcHBpbmcpCiAgICAgICAgIHsKICAg
ICAgICAgICAgIC8vIFJlZmluZSBsaW5lIG51bWJlciBiYXNlZCBvbiByZXNvbHZlZCBsb2NhdGlv
bi4KLSAgICAgICAgICAgIGlmIChicmVha3BvaW50LmxvY2F0aW9uKSB7Ci0gICAgICAgICAgICAg
ICAgdmFyIHNvdXJjZUxvY2F0aW9uID0gbWFwcGluZy5zY3JpcHRMb2NhdGlvblRvU291cmNlTG9j
YXRpb24oYnJlYWtwb2ludC5sb2NhdGlvbi5saW5lTnVtYmVyLCBicmVha3BvaW50LmxvY2F0aW9u
LmNvbHVtbk51bWJlcik7Ci0gICAgICAgICAgICAgICAgYnJlYWtwb2ludC5saW5lTnVtYmVyID0g
c291cmNlTG9jYXRpb24ubGluZU51bWJlcjsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlm
IChicmVha3BvaW50LmxvY2F0aW9uKQorICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQubGluZU51
bWJlciA9IG1hcHBpbmcuc2NyaXB0TG9jYXRpb25Ub1NvdXJjZUxpbmUoYnJlYWtwb2ludC5sb2Nh
dGlvbik7CiAKICAgICAgICAgICAgIHZhciBleGlzdGluZ0JyZWFrcG9pbnQgPSB0aGlzLmZpbmRC
cmVha3BvaW50KHNvdXJjZUZpbGUuaWQsIGJyZWFrcG9pbnQubGluZU51bWJlcik7CiAgICAgICAg
ICAgICBpZiAoZXhpc3RpbmdCcmVha3BvaW50KSB7CkBAIC00ODksNyArNDg5LDcgQEAgV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGNhbGxGcmFtZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAg
IHZhciBjYWxsRnJhbWUgPSBjYWxsRnJhbWVzW2ldOwogICAgICAgICAgICAgdmFyIHNvdXJjZUZp
bGU7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwu
c2NyaXB0Rm9yU291cmNlSUQoY2FsbEZyYW1lLnNvdXJjZUlEKTsKKyAgICAgICAgICAgIHZhciBz
Y3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChjYWxs
RnJhbWUubG9jYXRpb24uc291cmNlSUQpOwogICAgICAgICAgICAgaWYgKHNjcmlwdCkKICAgICAg
ICAgICAgICAgICBzb3VyY2VGaWxlID0gdGhpcy5fc291cmNlRmlsZUZvclNjcmlwdChzY3JpcHQp
OwogICAgICAgICAgICAgdGhpcy5fcHJlc2VudGF0aW9uQ2FsbEZyYW1lcy5wdXNoKG5ldyBXZWJJ
bnNwZWN0b3IuUHJlc2VuYXRpb25DYWxsRnJhbWUoY2FsbEZyYW1lLCBpLCBzb3VyY2VGaWxlKSk7
CkBAIC02MjEsNyArNjIxLDcgQEAgV2ViSW5zcGVjdG9yLlByZXNlbmF0aW9uQ2FsbEZyYW1lID0g
ZnVuY3Rpb24oY2FsbEZyYW1lLCBpbmRleCwgc291cmNlRmlsZSkKICAgICB0aGlzLl9jYWxsRnJh
bWUgPSBjYWxsRnJhbWU7CiAgICAgdGhpcy5faW5kZXggPSBpbmRleDsKICAgICB0aGlzLl9zb3Vy
Y2VGaWxlID0gc291cmNlRmlsZTsKLSAgICB0aGlzLl9zY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVi
dWdnZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChjYWxsRnJhbWUuc291cmNlSUQpOworICAgIHRo
aXMuX3NjcmlwdCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvclNvdXJjZUlE
KGNhbGxGcmFtZS5sb2NhdGlvbi5zb3VyY2VJRCk7CiB9CiAKIFdlYkluc3BlY3Rvci5QcmVzZW5h
dGlvbkNhbGxGcmFtZS5wcm90b3R5cGUgPSB7CkBAIC02NzEsMTcgKzY3MSwxNiBAQCBXZWJJbnNw
ZWN0b3IuUHJlc2VuYXRpb25DYWxsRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICBEZWJ1Z2dl
ckFnZW50LmV2YWx1YXRlT25DYWxsRnJhbWUodGhpcy5fY2FsbEZyYW1lLmlkLCBjb2RlLCBvYmpl
Y3RHcm91cCwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBkaWRFdmFsdWF0ZU9uQ2FsbEZyYW1lLmJp
bmQodGhpcykpOwogICAgIH0sCiAKLSAgICBzb3VyY2VMb2NhdGlvbjogZnVuY3Rpb24oY2FsbGJh
Y2spCisgICAgc291cmNlTGluZTogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewogICAgICAgICBp
ZiAoIXRoaXMuX3NvdXJjZUZpbGUpIHsKLSAgICAgICAgICAgIGNhbGxiYWNrKHVuZGVmaW5lZCwg
dGhpcy5fY2FsbEZyYW1lLmxpbmUsIHRoaXMuX2NhbGxGcmFtZS5jb2x1bW4pOworICAgICAgICAg
ICAgY2FsbGJhY2sodW5kZWZpbmVkLCB0aGlzLl9jYWxsRnJhbWUubG9jYXRpb24ubGluZU51bWJl
cik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiBk
aWRSZXF1ZXN0U291cmNlTWFwcGluZyhtYXBwaW5nKQogICAgICAgICB7Ci0gICAgICAgICAgICB2
YXIgc291cmNlTG9jYXRpb24gPSBtYXBwaW5nLnNjcmlwdExvY2F0aW9uVG9Tb3VyY2VMb2NhdGlv
bih0aGlzLl9jYWxsRnJhbWUubGluZSwgdGhpcy5fY2FsbEZyYW1lLmNvbHVtbik7Ci0gICAgICAg
ICAgICBjYWxsYmFjayh0aGlzLl9zb3VyY2VGaWxlLmlkLCBzb3VyY2VMb2NhdGlvbi5saW5lTnVt
YmVyLCBzb3VyY2VMb2NhdGlvbi5jb2x1bW5OdW1iZXIpOworICAgICAgICAgICAgY2FsbGJhY2so
dGhpcy5fc291cmNlRmlsZS5pZCwgbWFwcGluZy5zY3JpcHRMb2NhdGlvblRvU291cmNlTGluZSh0
aGlzLl9jYWxsRnJhbWUubG9jYXRpb24pKTsKICAgICAgICAgfQogICAgICAgICB0aGlzLl9zb3Vy
Y2VGaWxlLnJlcXVlc3RTb3VyY2VNYXBwaW5nKGRpZFJlcXVlc3RTb3VyY2VNYXBwaW5nLmJpbmQo
dGhpcykpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0Rm9ybWF0dGVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRGb3JtYXR0ZXIuanMKaW5kZXggMmUxNjZmNGU5MzcyMjZkMTdiODJmNDBmZTIz
NzEzMzc3NDg3YWQ5Yi4uODA4NWM1NTY0NzA5MGUxMGE5YzA5NmE2YmIwZGQ5NDZiZWNmNTJhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3Jt
YXR0ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRG
b3JtYXR0ZXIuanMKQEAgLTM2LDEwICszNiwxNSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0
dGVyID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX3Rhc2tzID0gW107CiB9CiAKLVdlYkluc3BlY3Rv
ci5TY3JpcHRGb3JtYXR0ZXIubG9jYXRpb25Ub1Bvc2l0aW9uID0gZnVuY3Rpb24obGluZUVuZGlu
Z3MsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKK1dlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0
ZXIubG9jYXRpb25Ub1Bvc2l0aW9uID0gZnVuY3Rpb24obGluZUVuZGluZ3MsIGxvY2F0aW9uKQog
ewotICAgIHZhciBwb3NpdGlvbiA9IGxpbmVOdW1iZXIgPyBsaW5lRW5kaW5nc1tsaW5lTnVtYmVy
IC0gMV0gKyAxIDogMDsKLSAgICByZXR1cm4gcG9zaXRpb24gKyBjb2x1bW5OdW1iZXI7CisgICAg
dmFyIHBvc2l0aW9uID0gbG9jYXRpb24ubGluZU51bWJlciA/IGxpbmVFbmRpbmdzW2xvY2F0aW9u
LmxpbmVOdW1iZXIgLSAxXSArIDEgOiAwOworICAgIHJldHVybiBwb3NpdGlvbiArIGxvY2F0aW9u
LmNvbHVtbk51bWJlcjsKK30KKworV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlci5saW5lVG9Q
b3NpdGlvbiA9IGZ1bmN0aW9uKGxpbmVFbmRpbmdzLCBsaW5lTnVtYmVyKQoreworICAgIHJldHVy
biB0aGlzLmxvY2F0aW9uVG9Qb3NpdGlvbihsaW5lRW5kaW5ncywgeyBsaW5lTnVtYmVyOiBsaW5l
TnVtYmVyLCBjb2x1bW5OdW1iZXI6IDAgfSk7CiB9CiAKIFdlYkluc3BlY3Rvci5TY3JpcHRGb3Jt
YXR0ZXIucG9zaXRpb25Ub0xvY2F0aW9uID0gZnVuY3Rpb24obGluZUVuZGluZ3MsIHBvc2l0aW9u
KQpAQCAtNTgsNyArNjMsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLmZpbmRTY3Jp
cHRSYW5nZXMgPSBmdW5jdGlvbihsaW5lRW5kaW5ncywgc2NyaXB0cykKICAgICB2YXIgc2NyaXB0
UmFuZ2VzID0gW107CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzY3JpcHRzLmxlbmd0aDsgKytp
KSB7CiAgICAgICAgIHZhciBzdGFydCA9IHsgbGluZU51bWJlcjogc2NyaXB0c1tpXS5saW5lT2Zm
c2V0LCBjb2x1bW5OdW1iZXI6IHNjcmlwdHNbaV0uY29sdW1uT2Zmc2V0IH07Ci0gICAgICAgIHN0
YXJ0LnBvc2l0aW9uID0gV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlci5sb2NhdGlvblRvUG9z
aXRpb24obGluZUVuZGluZ3MsIHN0YXJ0LmxpbmVOdW1iZXIsIHN0YXJ0LmNvbHVtbk51bWJlcik7
CisgICAgICAgIHN0YXJ0LnBvc2l0aW9uID0gV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlci5s
b2NhdGlvblRvUG9zaXRpb24obGluZUVuZGluZ3MsIHN0YXJ0KTsKICAgICAgICAgdmFyIGVuZFBv
c2l0aW9uID0gc3RhcnQucG9zaXRpb24gKyBzY3JpcHRzW2ldLmxlbmd0aDsKICAgICAgICAgdmFy
IGVuZCA9IFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIucG9zaXRpb25Ub0xvY2F0aW9uKGxp
bmVFbmRpbmdzLCBlbmRQb3NpdGlvbik7CiAgICAgICAgIGVuZC5wb3NpdGlvbiA9IGVuZFBvc2l0
aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3Jp
cHRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQ
YW5lbC5qcwppbmRleCBhMzVmZmExYWU1MWZmMGM5MjQ0NGE4MjhmNmM4NGRhYjBlNThhMmU4Li41
M2U1OWNhN2NjYTM3MDBlODE1YzUyODYxYTFhN2I0NmEyNDQwNGM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtMzg3LDE0
ICszODcsMTQgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICAgICAgc3RhdHVzID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQYXVzZWQgb24gYSBY
TUxIdHRwUmVxdWVzdC4iKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIGZ1bmN0aW9uIGRpZEdldFNvdXJjZUxvY2F0aW9uKHNvdXJjZUZpbGVJZCwgbGluZU51
bWJlciwgY29sdW1uTnVtYmVyKQorICAgICAgICAgICAgZnVuY3Rpb24gZGlkR2V0U291cmNlTG9j
YXRpb24oc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyKQogICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgIGlmICghc291cmNlRmlsZUlkIHx8ICF0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5maW5k
QnJlYWtwb2ludChzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIpKQogICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMuanNCcmVha3BvaW50
cy5oaWdobGlnaHRCcmVha3BvaW50KHNvdXJjZUZpbGVJZCwgbGluZU51bWJlcik7CiAgICAgICAg
ICAgICAgICAgc3RhdHVzID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQYXVzZWQgb24gYSBKYXZh
U2NyaXB0IGJyZWFrcG9pbnQuIik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYWxsRnJh
bWVzWzBdLnNvdXJjZUxvY2F0aW9uKGRpZEdldFNvdXJjZUxvY2F0aW9uLmJpbmQodGhpcykpOwor
ICAgICAgICAgICAgY2FsbEZyYW1lc1swXS5zb3VyY2VMaW5lKGRpZEdldFNvdXJjZUxvY2F0aW9u
LmJpbmQodGhpcykpOwogICAgICAgICB9CiAgICAgICAgIGlmIChzdGF0dXMpCiAgICAgICAgICAg
ICB0aGlzLnNpZGViYXJQYW5lcy5jYWxsc3RhY2suc2V0U3RhdHVzKHN0YXR1cyk7CkBAIC00ODcs
OCArNDg3LDggQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ewogICAgICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0U291cmNlTWFwcGluZyhtYXBwaW5nKQogICAg
ICAgICB7Ci0gICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBtYXBwaW5nLnNjcmlwdExvY2F0aW9u
VG9Tb3VyY2VMb2NhdGlvbihhbmNob3IuZ2V0QXR0cmlidXRlKCJsaW5lX251bWJlciIpIC0gMSwg
MCk7Ci0gICAgICAgICAgICB0aGlzLl9zaG93U291cmNlTGluZShzb3VyY2VGaWxlLmlkLCBsb2Nh
dGlvbi5saW5lTnVtYmVyKTsKKyAgICAgICAgICAgIHZhciBsaW5lTnVtYmVyID0gbWFwcGluZy5z
Y3JpcHRMb2NhdGlvblRvU291cmNlTGluZSh7bGluZU51bWJlcjphbmNob3IuZ2V0QXR0cmlidXRl
KCJsaW5lX251bWJlciIpIC0gMSwgY29sdW1uTnVtYmVyOjB9KTsKKyAgICAgICAgICAgIHRoaXMu
X3Nob3dTb3VyY2VMaW5lKHNvdXJjZUZpbGUuaWQsIGxpbmVOdW1iZXIpOwogICAgICAgICB9CiAg
ICAgICAgIHZhciBzb3VyY2VGaWxlID0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuc291cmNlRmls
ZUZvclNjcmlwdFVSTChhbmNob3IuaHJlZik7CiAgICAgICAgIHNvdXJjZUZpbGUucmVxdWVzdFNv
dXJjZU1hcHBpbmcoZGlkUmVxdWVzdFNvdXJjZU1hcHBpbmcuYmluZCh0aGlzKSk7CkBAIC02MjEs
NyArNjIxLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHRoaXMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVzc2lvbnMucmVmcmVzaEV4cHJlc3Npb25z
KCk7CiAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLmNhbGxzdGFjay5zZWxlY3RlZENhbGxGcmFt
ZSA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLnNlbGVjdGVkQ2FsbEZyYW1lOwogCi0gICAgICAg
IGZ1bmN0aW9uIGRpZEdldFNvdXJjZUxvY2F0aW9uKHNvdXJjZUZpbGVJZCwgbGluZU51bWJlciwg
Y29sdW1uTnVtYmVyKQorICAgICAgICBmdW5jdGlvbiBkaWRHZXRTb3VyY2VMb2NhdGlvbihzb3Vy
Y2VGaWxlSWQsIGxpbmVOdW1iZXIpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghc291cmNl
RmlsZUlkKQogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTYzNCw3ICs2MzQsNyBAQCBXZWJJ
bnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHNvdXJjZUZy
YW1lLnNldEV4ZWN1dGlvbkxpbmUobGluZU51bWJlcik7CiAgICAgICAgICAgICB0aGlzLl9leGVj
dXRpb25Tb3VyY2VGcmFtZSA9IHNvdXJjZUZyYW1lOwogICAgICAgICB9Ci0gICAgICAgIGNhbGxG
cmFtZS5zb3VyY2VMb2NhdGlvbihkaWRHZXRTb3VyY2VMb2NhdGlvbi5iaW5kKHRoaXMpKTsKKyAg
ICAgICAgY2FsbEZyYW1lLnNvdXJjZUxpbmUoZGlkR2V0U291cmNlTG9jYXRpb24uYmluZCh0aGlz
KSk7CiAgICAgfSwKIAogICAgIF9maWxlc1NlbGVjdENoYW5nZWQ6IGZ1bmN0aW9uKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qcwppbmRleCA0
ZjU2YzAwZDIyZTMxZGM0MTg5YWM3N2RmMjIyODQ0ZWQyYmI4YTNjLi4wYzg2OTIyNGZlODMxYzZm
MGFiN2RlMDY3ZmJiOWViNDk3MjdlODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpzCkBAIC0yNTQsMTMgKzI1NCwxNCBAQCBXZWJJbnNw
ZWN0b3IuU291cmNlTWFwcGluZyA9IGZ1bmN0aW9uKHNvcnRlZFNjcmlwdHMpCiB9CiAKIFdlYklu
c3BlY3Rvci5Tb3VyY2VNYXBwaW5nLnByb3RvdHlwZSA9IHsKLSAgICBzY3JpcHRMb2NhdGlvblRv
U291cmNlTG9jYXRpb246IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKKyAgICBz
Y3JpcHRMb2NhdGlvblRvU291cmNlTGluZTogZnVuY3Rpb24obG9jYXRpb24pCiAgICAgewotICAg
ICAgICByZXR1cm4geyBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXI6IGNvbHVt
bk51bWJlciB9OworICAgICAgICByZXR1cm4gbG9jYXRpb24ubGluZU51bWJlcjsKICAgICB9LAog
Ci0gICAgc291cmNlTG9jYXRpb25Ub1NjcmlwdExvY2F0aW9uOiBmdW5jdGlvbihsaW5lTnVtYmVy
LCBjb2x1bW5OdW1iZXIpCisgICAgc291cmNlTGluZVRvU2NyaXB0TG9jYXRpb246IGZ1bmN0aW9u
KGxpbmVOdW1iZXIpCiAgICAgeworICAgICAgICB2YXIgY29sdW1uTnVtYmVyID0gMDsKICAgICAg
ICAgdmFyIGNsb3Nlc3RTY3JpcHQgPSB0aGlzLl9zb3J0ZWRTY3JpcHRzWzBdOwogICAgICAgICBm
b3IgKHZhciBpID0gMTsgaSA8IHRoaXMuX3NvcnRlZFNjcmlwdHMubGVuZ3RoOyArK2kpIHsKICAg
ICAgICAgICAgIHNjcmlwdCA9IHRoaXMuX3NvcnRlZFNjcmlwdHNbaV07CkBAIC0yNjgsNyArMjY5
LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2xvc2VzdFNjcmlwdCA9IHNjcmlwdDsKICAgICAg
ICAgfQotICAgICAgICByZXR1cm4geyBzY3JpcHRJZDogY2xvc2VzdFNjcmlwdC5zb3VyY2VJRCwg
bGluZU51bWJlcjogbGluZU51bWJlciwgY29sdW1uTnVtYmVyOiBjb2x1bW5OdW1iZXIgfTsKKyAg
ICAgICAgcmV0dXJuIHsgc291cmNlSUQ6IGNsb3Nlc3RTY3JpcHQuc291cmNlSUQsIGxpbmVOdW1i
ZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogY29sdW1uTnVtYmVyIH07CiAgICAgfQogfQog
CkBAIC0yODEsMTkgKzI4MiwxOSBAQCBXZWJJbnNwZWN0b3IuRm9ybWF0dGVkU291cmNlTWFwcGlu
ZyA9IGZ1bmN0aW9uKHNvcnRlZFNjcmlwdHMsIG9yaWdpbmFsVGV4dCwgZm9ybQogfQogCiBXZWJJ
bnNwZWN0b3IuRm9ybWF0dGVkU291cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7Ci0gICAgc2NyaXB0
TG9jYXRpb25Ub1NvdXJjZUxvY2F0aW9uOiBmdW5jdGlvbihsaW5lTnVtYmVyLCBjb2x1bW5OdW1i
ZXIpCisgICAgc2NyaXB0TG9jYXRpb25Ub1NvdXJjZUxpbmU6IGZ1bmN0aW9uKGxvY2F0aW9uKQog
ICAgIHsKLSAgICAgICAgdmFyIG9yaWdpbmFsUG9zaXRpb24gPSBXZWJJbnNwZWN0b3IuU2NyaXB0
Rm9ybWF0dGVyLmxvY2F0aW9uVG9Qb3NpdGlvbih0aGlzLl9vcmlnaW5hbExpbmVFbmRpbmdzLCBs
aW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpOworICAgICAgICB2YXIgb3JpZ2luYWxQb3NpdGlvbiA9
IFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIubG9jYXRpb25Ub1Bvc2l0aW9uKHRoaXMuX29y
aWdpbmFsTGluZUVuZGluZ3MsIGxvY2F0aW9uKTsKICAgICAgICAgdmFyIGZvcm1hdHRlZFBvc2l0
aW9uID0gdGhpcy5fY29udmVydFBvc2l0aW9uKHRoaXMuX21hcHBpbmcub3JpZ2luYWwsIHRoaXMu
X21hcHBpbmcuZm9ybWF0dGVkLCBvcmlnaW5hbFBvc2l0aW9uKTsKLSAgICAgICAgcmV0dXJuIFdl
Ykluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIucG9zaXRpb25Ub0xvY2F0aW9uKHRoaXMuX2Zvcm1h
dHRlZExpbmVFbmRpbmdzLCBmb3JtYXR0ZWRQb3NpdGlvbik7CisgICAgICAgIHJldHVybiBXZWJJ
bnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLnBvc2l0aW9uVG9Mb2NhdGlvbih0aGlzLl9mb3JtYXR0
ZWRMaW5lRW5kaW5ncywgZm9ybWF0dGVkUG9zaXRpb24pLmxpbmVOdW1iZXI7CiAgICAgfSwKIAot
ICAgIHNvdXJjZUxvY2F0aW9uVG9TY3JpcHRMb2NhdGlvbjogZnVuY3Rpb24obGluZU51bWJlciwg
Y29sdW1uTnVtYmVyKQorICAgIHNvdXJjZUxpbmVUb1NjcmlwdExvY2F0aW9uOiBmdW5jdGlvbihs
aW5lTnVtYmVyKQogICAgIHsKLSAgICAgICAgdmFyIGZvcm1hdHRlZFBvc2l0aW9uID0gV2ViSW5z
cGVjdG9yLlNjcmlwdEZvcm1hdHRlci5sb2NhdGlvblRvUG9zaXRpb24odGhpcy5fZm9ybWF0dGVk
TGluZUVuZGluZ3MsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcik7CisgICAgICAgIHZhciBmb3Jt
YXR0ZWRQb3NpdGlvbiA9IFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIubGluZVRvUG9zaXRp
b24odGhpcy5fZm9ybWF0dGVkTGluZUVuZGluZ3MsIGxpbmVOdW1iZXIpOwogICAgICAgICB2YXIg
b3JpZ2luYWxQb3NpdGlvbiA9IHRoaXMuX2NvbnZlcnRQb3NpdGlvbih0aGlzLl9tYXBwaW5nLmZv
cm1hdHRlZCwgdGhpcy5fbWFwcGluZy5vcmlnaW5hbCwgZm9ybWF0dGVkUG9zaXRpb24pOwogICAg
ICAgICB2YXIgb3JpZ2luYWxMb2NhdGlvbiA9IFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIu
cG9zaXRpb25Ub0xvY2F0aW9uKHRoaXMuX29yaWdpbmFsTGluZUVuZGluZ3MsIG9yaWdpbmFsUG9z
aXRpb24pOwotICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmcucHJvdG90
eXBlLnNvdXJjZUxvY2F0aW9uVG9TY3JpcHRMb2NhdGlvbi5jYWxsKHRoaXMsIG9yaWdpbmFsTG9j
YXRpb24ubGluZU51bWJlciwgb3JpZ2luYWxMb2NhdGlvbi5jb2x1bW5OdW1iZXIpOworICAgICAg
ICByZXR1cm4gV2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmcucHJvdG90eXBlLnNvdXJjZUxpbmVU
b1NjcmlwdExvY2F0aW9uLmNhbGwodGhpcywgb3JpZ2luYWxMb2NhdGlvbi5saW5lTnVtYmVyKTsK
ICAgICB9LAogCiAgICAgX2NvbnZlcnRQb3NpdGlvbjogZnVuY3Rpb24ocG9zaXRpb25zMSwgcG9z
aXRpb25zMiwgcG9zaXRpb24pCg==
</data>
<flag name="review"
          id="81371"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>