<?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>98385</bug_id>
          
          <creation_ts>2012-10-04 01:08:57 -0700</creation_ts>
          <short_desc>Web Inspector: When uiSourceCode content has diverged from VM script, call frames should be shown in temporary script based uiSourceCodes.</short_desc>
          <delta_ts>2012-10-04 08:32:06 -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="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>734478</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-10-04 01:08:57 -0700</bug_when>
    <thetext>Patch to follow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734510</commentid>
    <comment_count>1</comment_count>
      <attachid>167053</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-10-04 01:50:24 -0700</bug_when>
    <thetext>Created attachment 167053
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734513</commentid>
    <comment_count>2</comment_count>
      <attachid>167055</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-10-04 01:54:18 -0700</bug_when>
    <thetext>Created attachment 167055
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734528</commentid>
    <comment_count>3</comment_count>
      <attachid>167055</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-04 02:23:27 -0700</bug_when>
    <thetext>Comment on attachment 167055
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Introduced uiSourceCode attribute concept and attributeChanged event.

Please split this change, it has too many random components.

&gt; Source/WebCore/inspector/front-end/DebuggerModel.js:779
&gt; +        return this._script.rawLocationToUILocation(this.location.lineNumber, this.location.columnNumber);

I think we should either expose live locations or location getters.

&gt; Source/WebCore/inspector/front-end/JavaScriptSourceFrame.js:163
&gt; +        var breakpoints = this._getBreakpointDecorations();

This is quite expensive (you are doing it per key press, right?)
no _get prefixes in WebKit

&gt; Source/WebCore/inspector/front-end/JavaScriptSourceFrame.js:172
&gt; +            this._setBreakpointDecorations(breakpoints);

You should instead get breakpoints from the vm version of UISourceCode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734698</commentid>
    <comment_count>4</comment_count>
      <attachid>167107</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-10-04 08:07:43 -0700</bug_when>
    <thetext>Created attachment 167107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734703</commentid>
    <comment_count>5</comment_count>
      <attachid>167107</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-04 08:11:59 -0700</bug_when>
    <thetext>Comment on attachment 167107
Patch

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

&gt; Source/WebCore/inspector/front-end/BreakpointManager.js:112
&gt; +        if (uiSourceCode.isDivergedReplacement)

divergedVersion: function()
{
    return uiSourceCode;
}

&gt; Source/WebCore/inspector/front-end/JavaScriptSource.js:80
&gt; +    fireHasDivergedFromVMChanged: function()

I would split it into &quot;fileHasDiverged&quot; and &quot;fileWasMerged&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734714</commentid>
    <comment_count>6</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-10-04 08:32:06 -0700</bug_when>
    <thetext>Committed r130393: &lt;http://trac.webkit.org/changeset/130393&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167053</attachid>
            <date>2012-10-04 01:50:24 -0700</date>
            <delta_ts>2012-10-04 01:54:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98385-20121004124934.patch</filename>
            <type>text/plain</type>
            <size>28105</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGE5ODlmMTA5NjBiYzM1
OWQyMDZlMjcwMjJkMWVlZjE2ODRiODgyMC4uYjdmMmIwMDM4Njk1Y2Q4NDY0OGY5OWE1MjlmNzU4
YWIxMGY1N2FlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTEwLTA0ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFdoZW4gdWlTb3VyY2VDb2RlIGNvbnRlbnQgaGFzIGRpdmVyZ2VkIGZyb20gVk0gc2NyaXB0
LCBjYWxsIGZyYW1lcyBzaG91bGQgYmUgc2hvd24gaW4gdGVtcG9yYXJ5IHNjcmlwdCBiYXNlZCB1
aVNvdXJjZUNvZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTgzODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbnRyb2R1Y2VkIHVpU291cmNlQ29kZSBhdHRyaWJ1dGUgY29uY2VwdCBhbmQgYXR0cmli
dXRlQ2hhbmdlZCBldmVudC4KKyAgICAgICAgQWRkZWQgaGFzRGl2ZXJnZWRGcm9tVk0gYXR0cmli
dXRlIHRvIFVJU291cmNlQ29kZS4KKyAgICAgICAgQ3VycmVudGx5IGhhc0RpdmVyZ2VkRnJvbVZN
IGF0dHJpYnV0ZSBpcyBtYW5hZ2VkIGJ5IEphdmFTY3JpcHRTb3VyY2UKKyAgICAgICAgUmVzb3Vy
Y2VTY3JpcHRNYXBwaW5nIGhhbmRsZXMgYXR0cmlidXRlIGNoYW5nZXMsIHdoZW4gdWlTb3VyY2VD
b2RlIGRpdmVyZ2VzCisgICAgICAgIGZyb20gVk0gZGVidWdnaW5nIHN3aXRjaGVzIHRvIHRlbXBv
cmFyeSBWTSBzY3JpcHQgYmFzZWQgdWlTb3VyY2VDb2RlLCB3aGVuCisgICAgICAgIHVpU291cmNl
Q29kZSBpcyBubyBsb25nZXIgZGl2ZXJnZWQsIHRlbXBvcmFyeSBzY3JpcHQgaXMgcmVtb3ZlZC4K
KyAgICAgICAgSmF2YVNjcmlwdFNvdXJjZUZyYW1lIGlzIHVwZGF0ZWQgdG8gcHJvY2VzcyBicmVh
a3BvaW50IGNoYW5nZXMgY29ycmVjdGx5LgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9CcmVha3BvaW50TWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50
TWFuYWdlci5wcm90b3R5cGUucmVzdG9yZUJyZWFrcG9pbnRzKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVi
dWdnZXJNb2RlbC5wcm90b3R5cGUuc2V0U2VsZWN0ZWRDYWxsRnJhbWUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuQ2FsbEZyYW1lLnByb3RvdHlwZS51aUxvY2F0aW9uKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2UuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZS5wcm90b3R5cGUud29ya2luZ0NvcHlD
b21taXR0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UucHJvdG90
eXBlLndvcmtpbmdDb3B5Q2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlw
dFNvdXJjZS5wcm90b3R5cGUuZmlyZVVJU291cmNlQ29kZUhhc0RpdmVyZ2VkRnJvbVZNQ2hhbmdl
ZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlRnJhbWUu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlw
ZS5jb21taXRFZGl0aW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNl
RnJhbWUucHJvdG90eXBlLl9oYXNEaXZlcmdlZEZyb21WTSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZS5vblRleHRDaGFuZ2VkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlLl9nZXRCcmVh
a3BvaW50RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3Vy
Y2VGcmFtZS5wcm90b3R5cGUuX3JlbW92ZUJyZWFrcG9pbnREZWNvcmF0aW9ucyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZS5fc2V0QnJlYWtw
b2ludERlY29yYXRpb25zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNl
RnJhbWUucHJvdG90eXBlLl9kaWRFZGl0Q29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
SmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZS5fcmVzdG9yZUJyZWFrcG9pbnRzQWZ0ZXJF
ZGl0aW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlU2NyaXB0TWFw
cGluZy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUucmF3
TG9jYXRpb25Ub1VJTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2Ny
aXB0TWFwcGluZy5wcm90b3R5cGUuX3VpU291cmNlQ29kZUF0dHJpYnV0ZUNoYW5nZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX2dldE9y
Q3JlYXRlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdFNuaXBwZXRNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRT
bmlwcGV0TW9kZWwucHJvdG90eXBlLl9jcmVhdGVVSVNvdXJjZUNvZGVGb3JTY3JpcHQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUuX3Jlc3RvcmVC
cmVha3BvaW50cyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9zZXRFeGVjdXRpb25MaW5lKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9yZXZlYWxFeGVjdXRpb25M
aW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9jYWxs
RnJhbWVTZWxlY3RlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3Rv
dHlwZS5fdWlTb3VyY2VDb2RlRm9ybWF0dGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1VJU291cmNlQ29kZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUu
cHJvdG90eXBlLmZvcm1hdHRlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3Jr
c3BhY2UuanM6CisKIDIwMTItMTAtMDQgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIERhdGVUaW1lWWVhckZpZWxkRWxlbWVudCBzaG91bGQgcmVzcGVjdCBtaW4v
bWF4IHZhbHVlcyBzcGVjaWZpZWQgYnkgcGFnZSBhdXRob3JzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcwppbmRleCAz
YjdlNmQ3ZGMzNTI5OGNiMDgzNDA1Zjk5ZjIzZjVhYzJiNDVjMmFiLi45MGI5YzA3ZjU4ZjI5NGZi
ZjY1ZTE3NzRiODQzMDI5NTZmNGZiZTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMKQEAgLTg2LDYgKzg2LDcg
QEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIHRoaXMuX2RlYnVnZ2VyTW9kZWwucmVtb3Zl
QnJlYWtwb2ludChkZWJ1Z2dlcklkKTsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9icmVha3Bv
aW50Rm9yRGVidWdnZXJJZFtkZWJ1Z2dlcklkXTsKKyAgICAgICAgICAgIGRlbGV0ZSBicmVha3Bv
aW50Ll9kZWJ1Z2dlcklkOwogICAgICAgICB9CiAgICAgICAgIHRoaXMuX3N0b3JhZ2UuX3Jlc3Rv
cmVCcmVha3BvaW50cyh1aVNvdXJjZUNvZGUpOwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKaW5kZXggMzI2YTliZTI0
M2NmZGM5N2Q5MTZmMzdhYWUxNWQyNTIzOWIxZjEwNy4uNjVmMTc0OWFkMzc5M2IyZWI0NGU2ZmYx
NWU3OTk1YTEzNTVlMWM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwpAQCAtODUsNyArODUsNiBAQCBXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNb2RlbC5FdmVudHMgPSB7CiAgICAgQnJlYWtwb2ludFJlc29sdmVkOiAiQnJlYWtw
b2ludFJlc29sdmVkIiwKICAgICBHbG9iYWxPYmplY3RDbGVhcmVkOiAiR2xvYmFsT2JqZWN0Q2xl
YXJlZCIsCiAgICAgQ2FsbEZyYW1lU2VsZWN0ZWQ6ICJDYWxsRnJhbWVTZWxlY3RlZCIsCi0gICAg
RXhlY3V0aW9uTGluZUNoYW5nZWQ6ICJFeGVjdXRpb25MaW5lQ2hhbmdlZCIsCiAgICAgQ29uc29s
ZUNvbW1hbmRFdmFsdWF0ZWRJblNlbGVjdGVkQ2FsbEZyYW1lOiAiQ29uc29sZUNvbW1hbmRFdmFs
dWF0ZWRJblNlbGVjdGVkQ2FsbEZyYW1lIiwKICAgICBCcmVha3BvaW50c0FjdGl2ZVN0YXRlQ2hh
bmdlZDogIkJyZWFrcG9pbnRzQWN0aXZlU3RhdGVDaGFuZ2VkIgogfQpAQCAtNDU2LDEyICs0NTUs
NiBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkNhbGxGcmFtZVNlbGVjdGVkLCBjYWxsRnJhbWUp
OwotCi0gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUV4ZWN1dGlvbkxpbmUodWlMb2NhdGlvbikKLSAg
ICAgICAgewotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkV4ZWN1dGlvbkxpbmVDaGFuZ2VkLCB1aUxvY2F0
aW9uKTsKLSAgICAgICAgfQotICAgICAgICB0aGlzLl9leGVjdXRpb25MaW5lTGl2ZUxvY2F0aW9u
ID0gY2FsbEZyYW1lLnNjcmlwdC5jcmVhdGVMaXZlTG9jYXRpb24oY2FsbEZyYW1lLmxvY2F0aW9u
LCB1cGRhdGVFeGVjdXRpb25MaW5lLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICAvKioKQEAg
LTc3OSw3ICs3NzIsMTYgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuQ2FsbEZyYW1lLnBy
b3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCisgICAgICogQHJldHVybiB7V2ViSW5zcGVj
dG9yLlVJTG9jYXRpb259CisgICAgICovCisgICAgdWlMb2NhdGlvbjogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3NjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbih0
aGlzLmxvY2F0aW9uLmxpbmVOdW1iZXIsIHRoaXMubG9jYXRpb24uY29sdW1uTnVtYmVyKTsKKyAg
ICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtmdW5jdGlvbihXZWJJbnNwZWN0b3IuVUlM
b2NhdGlvbik6KGJvb2xlYW58dW5kZWZpbmVkKX0gdXBkYXRlRGVsZWdhdGUKKyAgICAgKiBAcmV0
dXJuIHtXZWJJbnNwZWN0b3IuU2NyaXB0LkxvY2F0aW9ufQogICAgICAqLwogICAgIGNyZWF0ZUxp
dmVMb2NhdGlvbjogZnVuY3Rpb24odXBkYXRlRGVsZWdhdGUpCiAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlLmpzCmlu
ZGV4IDVhNjBlN2VmZjUyZDBlMjhiZGIyYzdiYmRkMDVjNmQ0MjJlYzA4Y2EuLjU5ZTAwMzZhOGU2
ZjUxYTdlNTBiOWYyNzY3NGQ5NWYyZDQ1OThmMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2UuanMKQEAgLTU1LDYgKzU1
LDcgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgICAgIHRoaXMuaGFzRGl2ZXJnZWRGcm9tVk0gPSB0cnVlOwogICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmhhc0RpdmVyZ2VkRnJvbVZNOworICAgICAg
ICAgICAgdGhpcy5maXJlVUlTb3VyY2VDb2RlSGFzRGl2ZXJnZWRGcm9tVk1DaGFuZ2VkKCk7CiAK
ICAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yKTsKICAgICAgICAgfQpAQCAtNjQsNyArNjUsMjAg
QEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIHZhciBzY3JpcHQgPSBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JJZChyYXdMb2NhdGlvbi5zY3JpcHRJZCk7Ci0gICAgICAg
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNldFNjcmlwdFNvdXJjZShzY3JpcHQuc2NyaXB0
SWQsIHRoaXMud29ya2luZ0NvcHkoKSwgaW5uZXJDYWxsYmFjayk7CisgICAgICAgIFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1vZGVsLnNldFNjcmlwdFNvdXJjZShzY3JpcHQuc2NyaXB0SWQsIHRoaXMu
d29ya2luZ0NvcHkoKSwgaW5uZXJDYWxsYmFjay5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAg
d29ya2luZ0NvcHlDaGFuZ2VkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLmZpcmVV
SVNvdXJjZUNvZGVIYXNEaXZlcmdlZEZyb21WTUNoYW5nZWQoKTsKKyAgICB9LAorCisgICAgZmly
ZVVJU291cmNlQ29kZUhhc0RpdmVyZ2VkRnJvbVZNQ2hhbmdlZDogZnVuY3Rpb24oKQorICAgIHsK
KyAgICAgICAgdmFyIGRhdGEgPSB7fTsKKyAgICAgICAgZGF0YS51aVNvdXJjZUNvZGUgPSB0aGlz
OworICAgICAgICBkYXRhLmF0dHJpYnV0ZU5hbWUgPSAiaGFzRGl2ZXJnZWRGcm9tVk0iOworICAg
ICAgICBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5VSVNvdXJjZUNvZGVBdHRyaWJ1dGVDaGFuZ2VkLCBk
YXRhKTsKICAgICB9LAogCiAgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
LnByb3RvdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9KYXZhU2NyaXB0U291cmNlRnJhbWUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0phdmFTY3JpcHRTb3VyY2VGcmFtZS5qcwppbmRleCA2NmZiYzQ2MGU5OTUwYjkxYWJl
NWY0MTkzN2YyNDViZjBjOWE3YWNmLi5hZWRhZTVlY2U1YjM5NzFmNTBmZDA3NGI3NjAwNzA1OTc1
ZWQ0YTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ph
dmFTY3JpcHRTb3VyY2VGcmFtZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0phdmFTY3JpcHRTb3VyY2VGcmFtZS5qcwpAQCAtOTIsNyArOTIsOCBAQCBXZWJJbnNw
ZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICB0aGlzLl9pc0NvbW1pdHRpbmdFZGl0aW5nID0gdHJ1ZTsKLSAgICAg
ICAgdGhpcy5famF2YVNjcmlwdFNvdXJjZS5jb21taXRXb3JraW5nQ29weSh0aGlzLl9kaWRFZGl0
Q29udGVudC5iaW5kKHRoaXMpKTsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0gdGhpcy5fZ2V0
QnJlYWtwb2ludERlY29yYXRpb25zKCk7CisgICAgICAgIHRoaXMuX2phdmFTY3JpcHRTb3VyY2Uu
Y29tbWl0V29ya2luZ0NvcHkodGhpcy5fZGlkRWRpdENvbnRlbnQuYmluZCh0aGlzLCBicmVha3Bv
aW50cykpOwogICAgICAgICBkZWxldGUgdGhpcy5faXNDb21taXR0aW5nRWRpdGluZzsKICAgICB9
LAogCkBAIC0xNDksMTIgKzE1MCw1OSBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZy
YW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kQXBwbGljYWJsZUl0
ZW1zKHRoaXMuX2phdmFTY3JpcHRTb3VyY2UpOwogICAgIH0sCiAKKyAgICBfaGFzRGl2ZXJnZWRG
cm9tVk06IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9qYXZhU2NyaXB0
U291cmNlLmlzRGlydHkoKSB8fCB0aGlzLl9qYXZhU2NyaXB0U291cmNlLmhhc0RpdmVyZ2VkRnJv
bVZNOworICAgIH0sCisKICAgICBvblRleHRDaGFuZ2VkOiBmdW5jdGlvbihvbGRSYW5nZSwgbmV3
UmFuZ2UpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBl
Lm9uVGV4dENoYW5nZWQuY2FsbCh0aGlzLCBvbGRSYW5nZSwgbmV3UmFuZ2UpOwotICAgICAgICB0
aGlzLl9yZW1vdmVCcmVha3BvaW50c0JlZm9yZUVkaXRpbmcoKTsKKworICAgICAgICB2YXIgd2Fz
RGl2ZXJnZWQgPSB0aGlzLl9oYXNEaXZlcmdlZEZyb21WTSgpOworICAgICAgICB2YXIgYnJlYWtw
b2ludHMgPSB0aGlzLl9nZXRCcmVha3BvaW50RGVjb3JhdGlvbnMoKTsKKwogICAgICAgICB0aGlz
Ll9qYXZhU2NyaXB0U291cmNlLnNldFdvcmtpbmdDb3B5KHRoaXMuX3RleHRFZGl0b3IudGV4dCgp
KTsKLSAgICAgICAgdGhpcy5fcmVzdG9yZUJyZWFrcG9pbnRzQWZ0ZXJFZGl0aW5nKCk7CisKKyAg
ICAgICAgdmFyIGlzRGl2ZXJnZWQgPSB0aGlzLl9oYXNEaXZlcmdlZEZyb21WTSgpOworICAgICAg
ICBpZiAodGhpcy5fc3VwcG9ydHNFbmFibGVkQnJlYWtwb2ludHNXaGlsZUVkaXRpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoIXdhc0RpdmVyZ2VkICYmIGlzRGl2ZXJn
ZWQpCisgICAgICAgICAgICB0aGlzLl9zZXRCcmVha3BvaW50RGVjb3JhdGlvbnMoYnJlYWtwb2lu
dHMpOworICAgICAgICBlbHNlIGlmICh3YXNEaXZlcmdlZCAmJiAhaXNEaXZlcmdlZCkKKyAgICAg
ICAgICAgIHRoaXMuX3Jlc3RvcmVCcmVha3BvaW50c0FmdGVyRWRpdGluZyhicmVha3BvaW50cyk7
CisgICAgfSwKKworICAgIF9nZXRCcmVha3BvaW50RGVjb3JhdGlvbnM6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHZhciBicmVha3BvaW50cyA9IHt9OworICAgICAgICAvLyBSZXN0b3JlIGFs
bCBtdXRlZCBicmVha3BvaW50cy4KKyAgICAgICAgZm9yICh2YXIgbGluZU51bWJlciA9IDA7IGxp
bmVOdW1iZXIgPCB0aGlzLl90ZXh0RWRpdG9yLmxpbmVzQ291bnQ7ICsrbGluZU51bWJlcikgewor
ICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnREZWNvcmF0aW9uID0gdGhpcy5fdGV4dEVkaXRvci5n
ZXRBdHRyaWJ1dGUobGluZU51bWJlciwgImJyZWFrcG9pbnQiKTsKKyAgICAgICAgICAgIGlmIChi
cmVha3BvaW50RGVjb3JhdGlvbikKKyAgICAgICAgICAgICAgICBicmVha3BvaW50c1tsaW5lTnVt
YmVyXSA9IGJyZWFrcG9pbnREZWNvcmF0aW9uOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJu
IGJyZWFrcG9pbnRzOworICAgIH0sCisKKyAgICBfcmVtb3ZlQnJlYWtwb2ludERlY29yYXRpb25z
OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBmb3IgKHZhciBsaW5lTnVtYmVyID0gMDsgbGlu
ZU51bWJlciA8IHRoaXMuX3RleHRFZGl0b3IubGluZXNDb3VudDsgKytsaW5lTnVtYmVyKQorICAg
ICAgICAgICAgdGhpcy5fcmVtb3ZlQnJlYWtwb2ludERlY29yYXRpb24obGluZU51bWJlcik7Cisg
ICAgfSwKKworICAgIF9zZXRCcmVha3BvaW50RGVjb3JhdGlvbnM6IGZ1bmN0aW9uKGJyZWFrcG9p
bnRzKQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVtb3ZlQnJlYWtwb2ludERlY29yYXRpb25zKCk7
CisgICAgICAgIGZvciAodmFyIGxpbmVOdW1iZXJTdHJpbmcgaW4gYnJlYWtwb2ludHMpIHsKKyAg
ICAgICAgICAgIHZhciBsaW5lTnVtYmVyID0gcGFyc2VJbnQobGluZU51bWJlclN0cmluZywgMTAp
OworICAgICAgICAgICAgaWYgKGlzTmFOKGxpbmVOdW1iZXIpKQorICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnREZWNvcmF0aW9uID0gYnJlYWtwb2lu
dHNbbGluZU51bWJlclN0cmluZ107CisgICAgICAgICAgICB0aGlzLl9hZGRCcmVha3BvaW50RGVj
b3JhdGlvbihsaW5lTnVtYmVyLCBicmVha3BvaW50RGVjb3JhdGlvbi5jb25kaXRpb24sIGJyZWFr
cG9pbnREZWNvcmF0aW9uLmVuYWJsZWQsIHRydWUpOworICAgICAgICB9CiAgICAgfSwKIAogICAg
IF9zdXBwb3J0c0VuYWJsZWRCcmVha3BvaW50c1doaWxlRWRpdGluZzogZnVuY3Rpb24oKQpAQCAt
MTYyLDUyICsyMTAsMzYgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9qYXZhU2NyaXB0U291cmNlLmlzU25pcHBl
dDsKICAgICB9LAogCi0gICAgX2RpZEVkaXRDb250ZW50OiBmdW5jdGlvbihlcnJvcikKKyAgICBf
ZGlkRWRpdENvbnRlbnQ6IGZ1bmN0aW9uKGJyZWFrcG9pbnRzLCBlcnJvcikKICAgICB7CisgICAg
ICAgIGlmICghdGhpcy5fc3VwcG9ydHNFbmFibGVkQnJlYWtwb2ludHNXaGlsZUVkaXRpbmcoKSkK
KyAgICAgICAgICAgIHRoaXMuX3Jlc3RvcmVCcmVha3BvaW50c0FmdGVyRWRpdGluZyhicmVha3Bv
aW50cyk7CisKICAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
c2hvd0Vycm9yTWVzc2FnZShlcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICAgICAgaWYgKCF0aGlzLl9zdXBwb3J0c0VuYWJsZWRCcmVha3BvaW50c1doaWxlRWRpdGlu
ZygpKQotICAgICAgICAgICAgdGhpcy5fcmVzdG9yZUJyZWFrcG9pbnRzQWZ0ZXJFZGl0aW5nKCk7
CiAgICAgfSwKIAotICAgIF9yZW1vdmVCcmVha3BvaW50c0JlZm9yZUVkaXRpbmc6IGZ1bmN0aW9u
KCkKKyAgICBfcmVzdG9yZUJyZWFrcG9pbnRzQWZ0ZXJFZGl0aW5nOiBmdW5jdGlvbihicmVha3Bv
aW50cykKICAgICB7Ci0gICAgICAgIHZhciBzdXBwb3J0c0JyZWFrcG9pbnRzT25FZGl0ID0gdGhp
cy5fc3VwcG9ydHNFbmFibGVkQnJlYWtwb2ludHNXaGlsZUVkaXRpbmcoKTsKLSAgICAgICAgaWYg
KCF0aGlzLl9qYXZhU2NyaXB0U291cmNlLmlzRGlydHkoKSB8fCBzdXBwb3J0c0JyZWFrcG9pbnRz
T25FZGl0KSB7Ci0gICAgICAgICAgICAvLyBEaXNhYmxlIGFsbCBicmVha3BvaW50cyBpbiB0aGUg
bW9kZWwsIHN0b3JlIHRoZW0gYXMgbXV0ZWQgYnJlYWtwb2ludHMuCi0gICAgICAgICAgICB2YXIg
YnJlYWtwb2ludExvY2F0aW9ucyA9IHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLmJyZWFrcG9pbnRM
b2NhdGlvbnNGb3JVSVNvdXJjZUNvZGUodGhpcy5famF2YVNjcmlwdFNvdXJjZSk7Ci0gICAgICAg
ICAgICB2YXIgbGluZU51bWJlcnMgPSB7fTsKLSAgICAgICAgICAgIHRoaXMuX3ByZXNlcnZlRGVj
b3JhdGlvbnMgPSB0cnVlOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicmVha3Bv
aW50TG9jYXRpb25zLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGJyZWFrcG9p
bnQgPSBicmVha3BvaW50TG9jYXRpb25zW2ldLmJyZWFrcG9pbnQ7Ci0gICAgICAgICAgICAgICAg
YnJlYWtwb2ludExvY2F0aW9uc1tpXS5icmVha3BvaW50LnJlbW92ZSgpOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3ByZXNlcnZlRGVjb3JhdGlvbnM7Ci0KLSAgICAg
ICAgICAgIGZvciAodmFyIGxpbmVOdW1iZXIgPSAwOyBsaW5lTnVtYmVyIDwgdGhpcy5fdGV4dEVk
aXRvci5saW5lc0NvdW50OyArK2xpbmVOdW1iZXIpIHsKLSAgICAgICAgICAgICAgICB2YXIgYnJl
YWtwb2ludERlY29yYXRpb24gPSB0aGlzLl90ZXh0RWRpdG9yLmdldEF0dHJpYnV0ZShsaW5lTnVt
YmVyLCAiYnJlYWtwb2ludCIpOwotICAgICAgICAgICAgICAgIGlmIChicmVha3BvaW50RGVjb3Jh
dGlvbikKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkQnJlYWtwb2ludERlY29yYXRpb24o
bGluZU51bWJlciwgYnJlYWtwb2ludERlY29yYXRpb24uY29uZGl0aW9uLCBicmVha3BvaW50RGVj
b3JhdGlvbi5lbmFibGVkLCAhc3VwcG9ydHNCcmVha3BvaW50c09uRWRpdCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB0aGlzLmNsZWFyRXhlY3V0aW9uTGluZSgpOworICAgICAgICB2YXIg
YnJlYWtwb2ludExvY2F0aW9ucyA9IHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLmJyZWFrcG9pbnRM
b2NhdGlvbnNGb3JVSVNvdXJjZUNvZGUodGhpcy5famF2YVNjcmlwdFNvdXJjZSk7CisgICAgICAg
IHZhciBsaW5lTnVtYmVycyA9IHt9OworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJyZWFr
cG9pbnRMb2NhdGlvbnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBicmVha3BvaW50
ID0gYnJlYWtwb2ludExvY2F0aW9uc1tpXS5icmVha3BvaW50OworICAgICAgICAgICAgYnJlYWtw
b2ludExvY2F0aW9uc1tpXS5icmVha3BvaW50LnJlbW92ZSgpOwogICAgICAgICB9Ci0gICAgfSwK
IAotICAgIF9yZXN0b3JlQnJlYWtwb2ludHNBZnRlckVkaXRpbmc6IGZ1bmN0aW9uKCkKLSAgICB7
Ci0gICAgICAgIGlmICghdGhpcy5famF2YVNjcmlwdFNvdXJjZS5pc0RpcnR5KCkgfHwgdGhpcy5f
c3VwcG9ydHNFbmFibGVkQnJlYWtwb2ludHNXaGlsZUVkaXRpbmcoKSkgewotICAgICAgICAgICAg
Ly8gUmVzdG9yZSBhbGwgbXV0ZWQgYnJlYWtwb2ludHMuCi0gICAgICAgICAgICBmb3IgKHZhciBs
aW5lTnVtYmVyID0gMDsgbGluZU51bWJlciA8IHRoaXMuX3RleHRFZGl0b3IubGluZXNDb3VudDsg
KytsaW5lTnVtYmVyKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnREZWNvcmF0aW9u
ID0gdGhpcy5fdGV4dEVkaXRvci5nZXRBdHRyaWJ1dGUobGluZU51bWJlciwgImJyZWFrcG9pbnQi
KTsKLSAgICAgICAgICAgICAgICBpZiAoYnJlYWtwb2ludERlY29yYXRpb24pIHsKLSAgICAgICAg
ICAgICAgICAgICAgLy8gUmVtb3ZlIGZha2UgZGVjb3JhdGlvbgotICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9yZW1vdmVCcmVha3BvaW50RGVjb3JhdGlvbihsaW5lTnVtYmVyKTsKLSAgICAgICAg
ICAgICAgICAgICAgLy8gU2V0IG5ldyBicmVha3BvaW50Ci0gICAgICAgICAgICAgICAgICAgIHRo
aXMuX3NldEJyZWFrcG9pbnQobGluZU51bWJlciwgYnJlYWtwb2ludERlY29yYXRpb24uY29uZGl0
aW9uLCBicmVha3BvaW50RGVjb3JhdGlvbi5lbmFibGVkKTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB9CisgICAgICAgIHRoaXMuX3JlbW92ZUJyZWFrcG9pbnREZWNvcmF0aW9ucygp
OworCisgICAgICAgIC8vIFJlc3RvcmUgYWxsIG11dGVkIGJyZWFrcG9pbnRzLgorICAgICAgICBm
b3IgKHZhciBsaW5lTnVtYmVyU3RyaW5nIGluIGJyZWFrcG9pbnRzKSB7CisgICAgICAgICAgICB2
YXIgbGluZU51bWJlciA9IHBhcnNlSW50KGxpbmVOdW1iZXJTdHJpbmcsIDEwKTsKKyAgICAgICAg
ICAgIGlmIChpc05hTihsaW5lTnVtYmVyKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgIHZhciBicmVha3BvaW50RGVjb3JhdGlvbiA9IGJyZWFrcG9pbnRzW2xpbmVOdW1i
ZXJTdHJpbmddOworICAgICAgICAgICAgLy8gU2V0IG5ldyBicmVha3BvaW50CisgICAgICAgICAg
ICB0aGlzLl9zZXRCcmVha3BvaW50KGxpbmVOdW1iZXIsIGJyZWFrcG9pbnREZWNvcmF0aW9uLmNv
bmRpdGlvbiwgYnJlYWtwb2ludERlY29yYXRpb24uZW5hYmxlZCk7CiAgICAgICAgIH0KICAgICB9
LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlU2NyaXB0TWFwcGluZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzCmluZGV4IGMzYTNhMDYzMzliN2RkNjdlNTQzZmI3NDU4
YTI1YTM5YTEyNjFmYzEuLjcwM2QxYjI3ZjIxMjVmM2VjZWE1NDIwOThmOGVmMGQ2MjQ3ZDU2YzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VT
Y3JpcHRNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzCkBAIC0zOCw2ICszOCw3IEBAIFdlYkluc3BlY3Rvci5S
ZXNvdXJjZVNjcmlwdE1hcHBpbmcgPSBmdW5jdGlvbih3b3Jrc3BhY2UpCiAgICAgdGhpcy5fd29y
a3NwYWNlID0gd29ya3NwYWNlOwogICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQsIHRoaXMuX3Jl
c2V0LCB0aGlzKTsKICAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB0aGlz
Ll91aVNvdXJjZUNvZGVBZGRlZFRvV29ya3NwYWNlLCB0aGlzKTsKKyAgICB0aGlzLl93b3Jrc3Bh
Y2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5VSVNvdXJj
ZUNvZGVBdHRyaWJ1dGVDaGFuZ2VkLCB0aGlzLl91aVNvdXJjZUNvZGVBdHRyaWJ1dGVDaGFuZ2Vk
LCB0aGlzKTsKIAogICAgIC8qKiBAdHlwZSB7T2JqZWN0LjxzdHJpbmcsIFdlYkluc3BlY3Rvci5V
SVNvdXJjZUNvZGU+fSAqLwogICAgIHRoaXMuX3RlbXBvcmFyeVVJU291cmNlQ29kZUZvclNjcmlw
dElkID0ge307CkBAIC01MywxMSArNTQsMjggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0
TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB2YXIgZGVidWdnZXJNb2RlbExv
Y2F0aW9uID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5Mb2NhdGlvbn0g
Ki8gcmF3TG9jYXRpb247CiAgICAgICAgIHZhciBzY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5zY3JpcHRGb3JJZChkZWJ1Z2dlck1vZGVsTG9jYXRpb24uc2NyaXB0SWQpOwotICAg
ICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNlVUlTb3VyY2VDb2RlRm9yU2Ny
aXB0KHNjcmlwdCkgfHwgdGhpcy5fZ2V0T3JDcmVhdGVUZW1wb3JhcnlVSVNvdXJjZUNvZGUoc2Ny
aXB0KTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZVVJU291cmNl
Q29kZUZvclNjcmlwdChzY3JpcHQpOworICAgICAgICBpZiAoIXVpU291cmNlQ29kZSB8fCB1aVNv
dXJjZUNvZGUuaXNEaXJ0eSgpIHx8IHVpU291cmNlQ29kZS5oYXNEaXZlcmdlZEZyb21WTSkKKyAg
ICAgICAgICAgIHVpU291cmNlQ29kZSA9IHRoaXMuX2dldE9yQ3JlYXRlVGVtcG9yYXJ5VUlTb3Vy
Y2VDb2RlKHNjcmlwdCk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCEhdWlTb3VyY2VDb2RlKTsK
ICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuVUlMb2NhdGlvbih1aVNvdXJjZUNvZGUs
IGRlYnVnZ2VyTW9kZWxMb2NhdGlvbi5saW5lTnVtYmVyLCBkZWJ1Z2dlck1vZGVsTG9jYXRpb24u
Y29sdW1uTnVtYmVyIHx8IDApOwogICAgIH0sCiAKKyAgICBfdWlTb3VyY2VDb2RlQXR0cmlidXRl
Q2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgdWlTb3VyY2VDb2Rl
ID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSAqLyBldmVudC5kYXRhLnVp
U291cmNlQ29kZTsKKyAgICAgICAgdmFyIGF0dHJpYnV0ZU5hbWUgPSAvKiogQHR5cGUge3N0cmlu
Z30gKi8gZXZlbnQuZGF0YS5hdHRyaWJ1dGVOYW1lOworICAgICAgICBpZiAoYXR0cmlidXRlTmFt
ZSAhPT0gImhhc0RpdmVyZ2VkRnJvbVZNIikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
dmFyIHNjcmlwdHMgPSB0aGlzLl9zY3JpcHRzRm9yVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7
CisgICAgICAgIGlmICghc2NyaXB0cy5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAg
IHNjcmlwdHNbaV0uc2V0U291cmNlTWFwcGluZyh0aGlzKTsKKyAgICAgICAgaWYgKCF1aVNvdXJj
ZUNvZGUuaXNEaXJ0eSgpICYmICF1aVNvdXJjZUNvZGUuaGFzRGl2ZXJnZWRGcm9tVk0pCisgICAg
ICAgICAgICB0aGlzLl9kZWxldGVUZW1wb3JhcnlVSVNvdXJjZUNvZGVGb3JTY3JpcHRzKHNjcmlw
dHMpOworICAgIH0sCisKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TY3Jp
cHR9IHNjcmlwdAogICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9CkBA
IC0xNzIsNyArMTkwLDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHZhciBjb250ZW50UHJvdmlkZXIgPSBzY3JpcHQuaXNJbmxpbmVT
Y3JpcHQoKSA/IG5ldyBXZWJJbnNwZWN0b3IuQ29uY2F0ZW5hdGVkU2NyaXB0c0NvbnRlbnRQcm92
aWRlcihzY3JpcHRzKSA6IHNjcmlwdDsKICAgICAgICAgdmFyIGlzRHluYW1pY1NjcmlwdCA9IHRo
aXMuX2lzRHluYW1pY1NjcmlwdChzY3JpcHQpOwogICAgICAgICB2YXIgdXJsID0gaXNEeW5hbWlj
U2NyaXB0ID8gIiIgOiBzY3JpcHQuc291cmNlVVJMOwotICAgICAgICB0ZW1wb3JhcnlVSVNvdXJj
ZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UodXJsLCBjb250ZW50UHJv
dmlkZXIsICFzY3JpcHQuaXNJbmxpbmVTY3JpcHQoKSk7CisgICAgICAgIHRlbXBvcmFyeVVJU291
cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZSh1cmwsIGNvbnRlbnRQ
cm92aWRlciwgZmFsc2UpOwogICAgICAgICB0ZW1wb3JhcnlVSVNvdXJjZUNvZGUuaXNUZW1wb3Jh
cnkgPSB0cnVlOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyAr
K2kpCiAgICAgICAgICAgICB0aGlzLl90ZW1wb3JhcnlVSVNvdXJjZUNvZGVGb3JTY3JpcHRJZFtz
Y3JpcHRzW2ldLnNjcmlwdElkXSA9IHRlbXBvcmFyeVVJU291cmNlQ29kZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1vZGVsLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0TW9kZWwu
anMKaW5kZXggMDEwMDE1Yzg2MWFkMDAwNGQzNGUxNTBkZGY5NzdiYzRjMDllOTExNC4uYzUzMzli
NGM4OWY3MDlmZmY5OTA2Zjg4MWNiNzBmMDYwODc0MTk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMKQEAg
LTE0Myw4ICsxNDMsMTAgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5
cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgICAgICB2YXIgYnJlYWtw
b2ludExvY2F0aW9ucyA9IHRoaXMuX3JlbW92ZUJyZWFrcG9pbnRzKHNuaXBwZXRKYXZhU2NyaXB0
U291cmNlKTsKLSAgICAgICAgdGhpcy5fcmVsZWFzZVNuaXBwZXRTY3JpcHQoc25pcHBldEphdmFT
Y3JpcHRTb3VyY2UpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fcmVsZWFzZVNu
aXBwZXRTY3JpcHQoc25pcHBldEphdmFTY3JpcHRTb3VyY2UpOwogICAgICAgICB0aGlzLl9yZXN0
b3JlQnJlYWtwb2ludHMoc25pcHBldEphdmFTY3JpcHRTb3VyY2UsIGJyZWFrcG9pbnRMb2NhdGlv
bnMpOworICAgICAgICBpZiAodWlTb3VyY2VDb2RlKQorICAgICAgICAgICAgdGhpcy5fcmVzdG9y
ZUJyZWFrcG9pbnRzKHVpU291cmNlQ29kZSwgYnJlYWtwb2ludExvY2F0aW9ucyk7CiAgICAgfSwK
IAogICAgIC8qKgpAQCAtMzEzLDE1ICszMTUsMTkgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBw
ZXRNb2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5TY3JpcHR9IHNjcmlwdAorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGV9IHVpU291cmNlQ29kZQogICAgICAqLwogICAgIF9jcmVhdGVVSVNvdXJjZUNvZGVGb3JT
Y3JpcHQ6IGZ1bmN0aW9uKHNjcmlwdCkKICAgICB7CiAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUg
PSBuZXcgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2Uoc2NyaXB0LnNvdXJjZVVSTCwgc2Ny
aXB0LCBmYWxzZSk7Ci0gICAgICAgIHVpU291cmNlQ29kZS5zZXRTb3VyY2VNYXBwaW5nKHRoaXMu
X3NuaXBwZXRTY3JpcHRNYXBwaW5nKTsgCisgICAgICAgIHVpU291cmNlQ29kZS5zZXRTb3VyY2VN
YXBwaW5nKHRoaXMuX3NuaXBwZXRTY3JpcHRNYXBwaW5nKTsKKyAgICAgICAgLy8gRklYTUU6IFNo
b3VsZCBiZSBhZGRlZCB0byB3b3Jrc3BhY2UgYXMgdGVtcG9yYXJ5LgorICAgICAgICB1aVNvdXJj
ZUNvZGUuaXNUZW1wb3JhcnkgPSB0cnVlOwogICAgICAgICB1aVNvdXJjZUNvZGUuaXNTbmlwcGV0
RXZhbHVhdGlvbiA9IHRydWU7CiAgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclNjcmlwdElk
W3NjcmlwdC5zY3JpcHRJZF0gPSB1aVNvdXJjZUNvZGU7CiAgICAgICAgIHRoaXMuX3NjcmlwdEZv
clVJU291cmNlQ29kZS5wdXQodWlTb3VyY2VDb2RlLCBzY3JpcHQpOwogICAgICAgICBzY3JpcHQu
c2V0U291cmNlTWFwcGluZyh0aGlzLl9zbmlwcGV0U2NyaXB0TWFwcGluZyk7CisgICAgICAgIHJl
dHVybiB1aVNvdXJjZUNvZGU7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMzM3LDMyICszNDMsMzMg
QEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgfSwK
IAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNuaXBwZXRKYXZhU2NyaXB0
U291cmNlfSBzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZQorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCiAgICAgICogQHBhcmFtIHtBcnJheS48T2Jq
ZWN0Pn0gYnJlYWtwb2ludExvY2F0aW9ucwogICAgICAqLwotICAgIF9yZXN0b3JlQnJlYWtwb2lu
dHM6IGZ1bmN0aW9uKHNuaXBwZXRKYXZhU2NyaXB0U291cmNlLCBicmVha3BvaW50TG9jYXRpb25z
KQorICAgIF9yZXN0b3JlQnJlYWtwb2ludHM6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgYnJlYWtw
b2ludExvY2F0aW9ucykKICAgICB7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnJlYWtw
b2ludExvY2F0aW9ucy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIHVpTG9jYXRpb24g
PSBicmVha3BvaW50TG9jYXRpb25zW2ldLnVpTG9jYXRpb247CiAgICAgICAgICAgICB2YXIgYnJl
YWtwb2ludCA9IGJyZWFrcG9pbnRMb2NhdGlvbnNbaV0uYnJlYWtwb2ludDsKLSAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5icmVha3BvaW50TWFuYWdlci5zZXRCcmVha3BvaW50KHVpTG9jYXRpb24u
dWlTb3VyY2VDb2RlLCB1aUxvY2F0aW9uLmxpbmVOdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9u
KCksIGJyZWFrcG9pbnQuZW5hYmxlZCgpKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5icmVh
a3BvaW50TWFuYWdlci5zZXRCcmVha3BvaW50KHVpU291cmNlQ29kZSwgdWlMb2NhdGlvbi5saW5l
TnVtYmVyLCBicmVha3BvaW50LmNvbmRpdGlvbigpLCBicmVha3BvaW50LmVuYWJsZWQoKSk7CiAg
ICAgICAgIH0KICAgICB9LAogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
U25pcHBldEphdmFTY3JpcHRTb3VyY2V9IHNuaXBwZXRKYXZhU2NyaXB0U291cmNlCisgICAgICog
QHJldHVybiB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0KICAgICAgKi8KICAgICBfcmVsZWFz
ZVNuaXBwZXRTY3JpcHQ6IGZ1bmN0aW9uKHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKQogICAgIHsK
ICAgICAgICAgdmFyIHNjcmlwdCA9IHRoaXMuX3NjcmlwdEZvclVJU291cmNlQ29kZS5nZXQoc25p
cHBldEphdmFTY3JpcHRTb3VyY2UpOwogICAgICAgICBpZiAoIXNjcmlwdCkKLSAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBudWxsOwogCiAgICAgICAgIHNuaXBwZXRKYXZh
U2NyaXB0U291cmNlLmhhc0RpdmVyZ2VkRnJvbVZNID0gdHJ1ZTsKICAgICAgICAgZGVsZXRlIHRo
aXMuX3VpU291cmNlQ29kZUZvclNjcmlwdElkW3NjcmlwdC5zY3JpcHRJZF07CiAgICAgICAgIHRo
aXMuX3NjcmlwdEZvclVJU291cmNlQ29kZS5yZW1vdmUoc25pcHBldEphdmFTY3JpcHRTb3VyY2Up
OwogICAgICAgICBkZWxldGUgc25pcHBldEphdmFTY3JpcHRTb3VyY2UuX2V2YWx1YXRpb25JbmRl
eDsKLSAgICAgICAgdGhpcy5fY3JlYXRlVUlTb3VyY2VDb2RlRm9yU2NyaXB0KHNjcmlwdCk7Cisg
ICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVVSVNvdXJjZUNvZGVGb3JTY3JpcHQoc2NyaXB0KTsK
ICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IDJmMGJmYmNjYzRiOTg0NWZhMmQwMzI5ZTM3YWUy
ZGJmMzIwYTM3ODMuLmNjNThlNjIwZGI2NTkyZGViNDc0MzJiNjYyODYyMjhkY2ZjZjg0MzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVs
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVs
LmpzCkBAIC0xODQsNyArMTg0LDYgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCA9IGZ1bmN0
aW9uKHdvcmtzcGFjZUZvclRlc3QpCiAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuRGVidWdnZXJS
ZXN1bWVkLCB0aGlzLl9kZWJ1Z2dlclJlc3VtZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwu
RXZlbnRzLkNhbGxGcmFtZVNlbGVjdGVkLCB0aGlzLl9jYWxsRnJhbWVTZWxlY3RlZCwgdGhpcyk7
CiAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuQ29uc29sZUNvbW1hbmRFdmFsdWF0ZWRJblNlbGVj
dGVkQ2FsbEZyYW1lLCB0aGlzLl9jb25zb2xlQ29tbWFuZEV2YWx1YXRlZEluU2VsZWN0ZWRDYWxs
RnJhbWUsIHRoaXMpOwotICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkV4ZWN1dGlvbkxpbmVDaGFu
Z2VkLCB0aGlzLl9leGVjdXRpb25MaW5lQ2hhbmdlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2Rl
bC5FdmVudHMuQnJlYWtwb2ludHNBY3RpdmVTdGF0ZUNoYW5nZWQsIHRoaXMuX2JyZWFrcG9pbnRz
QWN0aXZlU3RhdGVDaGFuZ2VkLCB0aGlzKTsKIAogICAgIFdlYkluc3BlY3Rvci5zdGFydEJhdGNo
VXBkYXRlKCk7CkBAIC00ODksMTAgKzQ4OCw4IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICBkZWxldGUgdGhpcy5fZXhlY3V0aW9uU291cmNlRnJhbWU7
CiAgICAgfSwKIAotICAgIF9leGVjdXRpb25MaW5lQ2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCisg
ICAgX3NldEV4ZWN1dGlvbkxpbmU6IGZ1bmN0aW9uKHVpTG9jYXRpb24pCiAgICAgewotICAgICAg
ICB2YXIgdWlMb2NhdGlvbiA9IGV2ZW50LmRhdGE7Ci0KICAgICAgICAgdGhpcy5fY2xlYXJDdXJy
ZW50RXhlY3V0aW9uTGluZSgpOwogICAgICAgICBpZiAoIXVpTG9jYXRpb24pCiAgICAgICAgICAg
ICByZXR1cm47CkBAIC01MDMsOSArNTAwLDE0IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwu
cHJvdG90eXBlID0gewogCiAgICAgX3JldmVhbEV4ZWN1dGlvbkxpbmU6IGZ1bmN0aW9uKHVpTG9j
YXRpb24pCiAgICAgeworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdWlMb2NhdGlvbi51aVNv
dXJjZUNvZGU7CiAgICAgICAgIC8vIFNvbWUgc2NyaXB0cyAoYW5vbnltb3VzIGFuZCBzbmlwcGV0
cyBldmFsdWF0aW9ucykgYXJlIG5vdCBhZGRlZCB0byBmaWxlcyBzZWxlY3QgYnkgZGVmYXVsdC4K
LSAgICAgICAgdGhpcy5fZWRpdG9yQ29udGFpbmVyLmFkZFVJU291cmNlQ29kZSh1aUxvY2F0aW9u
LnVpU291cmNlQ29kZSk7Ci0gICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMuX3Nob3dGaWxl
KHVpTG9jYXRpb24udWlTb3VyY2VDb2RlKTsKKyAgICAgICAgaWYgKHVpU291cmNlQ29kZS5pc1Rl
bXBvcmFyeSkgeworICAgICAgICAgICAgdGhpcy5fZWRpdG9yQ29udGFpbmVyLmFkZFVJU291cmNl
Q29kZSh1aVNvdXJjZUNvZGUpOworICAgICAgICAgICAgaWYgKHVpU291cmNlQ29kZS5mb3JtYXR0
ZWQoKSAhPT0gdGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlQnV0dG9uLnRvZ2dsZWQpCisgICAgICAg
ICAgICAgICAgdWlTb3VyY2VDb2RlLnNldEZvcm1hdHRlZCh0aGlzLl90b2dnbGVGb3JtYXRTb3Vy
Y2VCdXR0b24udG9nZ2xlZCwgdGhpcy5fdWlTb3VyY2VDb2RlRm9ybWF0dGVkLmJpbmQodGhpcywg
dWlTb3VyY2VDb2RlKSk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gdGhp
cy5fc2hvd0ZpbGUodWlTb3VyY2VDb2RlKTsKICAgICAgICAgc291cmNlRnJhbWUucmV2ZWFsTGlu
ZSh1aUxvY2F0aW9uLmxpbmVOdW1iZXIpOwogICAgICAgICBzb3VyY2VGcmFtZS5mb2N1cygpOwog
ICAgIH0sCkBAIC01MjAsNyArNTIyLDggQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLnNjb3BlY2hhaW4udXBkYXRlKGNh
bGxGcmFtZSk7CiAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVzc2lvbnMucmVm
cmVzaEV4cHJlc3Npb25zKCk7CiAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLmNhbGxzdGFjay5z
ZXRTZWxlY3RlZENhbGxGcmFtZShjYWxsRnJhbWUpOwotICAgICAgICBjYWxsRnJhbWUuY3JlYXRl
TGl2ZUxvY2F0aW9uKHRoaXMuX3JldmVhbEV4ZWN1dGlvbkxpbmUuYmluZCh0aGlzKSk7CisgICAg
ICAgIHRoaXMuX3JldmVhbEV4ZWN1dGlvbkxpbmUoY2FsbEZyYW1lLnVpTG9jYXRpb24oKSk7Cisg
ICAgICAgIGNhbGxGcmFtZS5jcmVhdGVMaXZlTG9jYXRpb24odGhpcy5fc2V0RXhlY3V0aW9uTGlu
ZS5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAgX2VkaXRvckNsb3NlZDogZnVuY3Rpb24oZXZl
bnQpCkBAIC05MTcsOCArOTIwLDE1IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90
eXBlID0gewogCiAgICAgX3VpU291cmNlQ29kZUZvcm1hdHRlZDogZnVuY3Rpb24odWlTb3VyY2VD
b2RlKQogICAgIHsKLSAgICAgICAgaWYgKHVpU291cmNlQ29kZSBpbnN0YW5jZW9mIFdlYkluc3Bl
Y3Rvci5KYXZhU2NyaXB0U291cmNlKQorICAgICAgICBpZiAodWlTb3VyY2VDb2RlIGluc3RhbmNl
b2YgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UpIHsKICAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5icmVha3BvaW50TWFuYWdlci5yZXN0b3JlQnJlYWtwb2ludHModWlTb3VyY2VDb2RlKTsK
KyAgICAgICAgICAgIHZhciBjYWxsRnJhbWUgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5z
ZWxlY3RlZENhbGxGcmFtZSgpOworICAgICAgICAgICAgaWYgKGNhbGxGcmFtZSkgeworICAgICAg
ICAgICAgICAgIHZhciB1aUxvY2F0aW9uID0gY2FsbEZyYW1lLnVpTG9jYXRpb24oKTsKKyAgICAg
ICAgICAgICAgICBpZiAodWlMb2NhdGlvbi51aVNvdXJjZUNvZGUgPT09IHVpU291cmNlQ29kZSkK
KyAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmV2ZWFsRXhlY3V0aW9uTGluZShjYWxsRnJhbWUu
dWlMb2NhdGlvbigpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0sCiAKICAgICBf
dG9nZ2xlRm9ybWF0U291cmNlOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzCmluZGV4IGJjZGNhNDliNjhkM2NkZGVk
YzU4NDEyZjA0YmRjMjBiN2JmNWUxZWMuLmQ5YTk3Mzc5MmM1YjkwMDY2M2ExYjM4MDU4N2FhYjY0
YWVhOGVkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VUlTb3VyY2VDb2RlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VUlTb3VyY2VDb2RlLmpzCkBAIC00ODUsNyArNDg1LDcgQEAgV2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgZm9ybWF0dGVkOiBmdW5jdGlvbigpCiAg
ICAgewotICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0dGVkOworICAgICAgICByZXR1cm4gISF0
aGlzLl9mb3JtYXR0ZWQ7CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3Jrc3BhY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtzcGFjZS5qcwppbmRleCAwYjZmOTQ0NDMzNDUyNDE5MzY0
YjE4OWNlODY3NjU3NDIzMjQzMDI2Li5mYmJmZGQ0YzZkNzA3ZDE2ZGI2ODJhNzI5NmQyMzI0Njg3
ODZjZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dv
cmtzcGFjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtz
cGFjZS5qcwpAQCAtMTM1LDYgKzEzNSw3IEBAIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UgPSBmdW5j
dGlvbigpCiAKIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzID0gewogICAgIFVJU291cmNl
Q29kZUNvbnRlbnRDb21taXR0ZWQ6ICJVSVNvdXJjZUNvZGVDb250ZW50Q29tbWl0dGVkIiwKKyAg
ICBVSVNvdXJjZUNvZGVBdHRyaWJ1dGVDaGFuZ2VkOiAiVUlTb3VyY2VDb2RlQXR0cmlidXRlQ2hh
bmdlZCIsCiAgICAgUHJvamVjdFdpbGxSZXNldDogIlByb2plY3RXaWxsUmVzZXQiLAogICAgIFBy
b2plY3REaWRSZXNldDogIlByb2plY3REaWRSZXNldCIKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzZWYxYWQ0YWY5NzI2
ODk5ZGRhNTYwMDM3MDllODIzNTUzMWE2ODI0Li44ZmFiNjRiZmNhMjA5NGE3MDkxYmFmY2Y2ZDkx
MTI0YjBkODRiZGE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTAtMDQgIFZzZXZvbG9k
IFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
V2hlbiB1aVNvdXJjZUNvZGUgY29udGVudCBoYXMgZGl2ZXJnZWQgZnJvbSBWTSBzY3JpcHQsIGNh
bGwgZnJhbWVzIHNob3VsZCBiZSBzaG93biBpbiB0ZW1wb3Jhcnkgc2NyaXB0IGJhc2VkIHVpU291
cmNlQ29kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05ODM4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0LXRhZy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVj
dGVkLnR4dDoKKwogMjAxMi0xMC0wMyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50IHNob3VsZCByZXNwZWN0IG1pbi9t
YXggdmFsdWVzIHNwZWNpZmllZCBieSBwYWdlIGF1dGhvcnMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10YWctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0LXRhZy1leHBlY3Rl
ZC50eHQKaW5kZXggNWQ1OTkxYzIyNmNkM2JkZjA5ZWM5ZTFjMjkyNDc2YjZhMDRjNWMwYi4uN2Fm
MmMxYWJlYTNmZjUxZDBiNTYxMzAyYzlhNGEyNjc2YzVmODJlNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0LXRhZy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0LXRhZy1l
eHBlY3RlZC50eHQKQEAgLTEwLDEyICsxMCwxMiBAQCBJcyBhbm9ueW1vdXM6ZmFsc2UKIElzIGlu
bGluZSBzY3JpcHQ6ZmFsc2UKIER1bXBpbmcgdWlTb3VyY2VDb2RlczoKIFVJU291cmNlQ29kZTog
Ci1VSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IHRydWUKK1VJU291cmNlQ29kZSBpcyBlZGl0YWJs
ZTogZmFsc2UKIFVJU291cmNlQ29kZSBpcyBjb250ZW50IHNjcmlwdDogZmFsc2UKIE1pbWUgdHlw
ZTogdGV4dC9qYXZhc2NyaXB0CiBVSVNvdXJjZUNvZGUgY29udGVudDogZnVuY3Rpb24gZm9vKCkg
eyB9CiBVSVNvdXJjZUNvZGU6IAotVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiB0cnVlCitVSVNv
dXJjZUNvZGUgaXMgZWRpdGFibGU6IGZhbHNlCiBVSVNvdXJjZUNvZGUgaXMgY29udGVudCBzY3Jp
cHQ6IGZhbHNlCiBNaW1lIHR5cGU6IHRleHQvamF2YXNjcmlwdAogVUlTb3VyY2VDb2RlIGNvbnRl
bnQ6IGZ1bmN0aW9uIGJhcigpIHsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy1leHBlY3RlZC50
eHQKaW5kZXggYWZhOWMyMTE2ZjhhMzViZjY4NzA5YTU1MThkNDY0NDBjNWU2MzY4My4uNzEwODk2
ZTcwMTIxM2U5YjFhMTQwNmU2ZTJiYTMwZmNmYjZhODY0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1h
cHBpbmctZXhwZWN0ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBUZXN0cyBSZXNvdXJjZVNjcmlwdE1h
cHBpbmcgY2xhc3MuCiBSdW5uaW5nOiB0ZXN0U2NyaXB0V2l0aFBlbmRpbmdSZXNvdXJjZQogQWRk
aW5nIHNjcmlwdCBmb3IgcGVuZGluZyByZXF1ZXN0LgogVUlTb3VyY2VDb2RlOiBmb28uanMKLVVJ
U291cmNlQ29kZSBpcyBlZGl0YWJsZTogdHJ1ZQorVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiBm
YWxzZQogVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiB0cnVlCiBNaW1lIHR5cGU6IHRl
eHQvamF2YXNjcmlwdAogVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxjb250ZW50IHNjcmlwdCBzb3Vy
Y2U+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167055</attachid>
            <date>2012-10-04 01:54:18 -0700</date>
            <delta_ts>2012-10-04 08:07:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98385-20121004125327.patch</filename>
            <type>text/plain</type>
            <size>28513</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGE5ODlmMTA5NjBiYzM1
OWQyMDZlMjcwMjJkMWVlZjE2ODRiODgyMC4uYjdmMmIwMDM4Njk1Y2Q4NDY0OGY5OWE1MjlmNzU4
YWIxMGY1N2FlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTEwLTA0ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFdoZW4gdWlTb3VyY2VDb2RlIGNvbnRlbnQgaGFzIGRpdmVyZ2VkIGZyb20gVk0gc2NyaXB0
LCBjYWxsIGZyYW1lcyBzaG91bGQgYmUgc2hvd24gaW4gdGVtcG9yYXJ5IHNjcmlwdCBiYXNlZCB1
aVNvdXJjZUNvZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTgzODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbnRyb2R1Y2VkIHVpU291cmNlQ29kZSBhdHRyaWJ1dGUgY29uY2VwdCBhbmQgYXR0cmli
dXRlQ2hhbmdlZCBldmVudC4KKyAgICAgICAgQWRkZWQgaGFzRGl2ZXJnZWRGcm9tVk0gYXR0cmli
dXRlIHRvIFVJU291cmNlQ29kZS4KKyAgICAgICAgQ3VycmVudGx5IGhhc0RpdmVyZ2VkRnJvbVZN
IGF0dHJpYnV0ZSBpcyBtYW5hZ2VkIGJ5IEphdmFTY3JpcHRTb3VyY2UKKyAgICAgICAgUmVzb3Vy
Y2VTY3JpcHRNYXBwaW5nIGhhbmRsZXMgYXR0cmlidXRlIGNoYW5nZXMsIHdoZW4gdWlTb3VyY2VD
b2RlIGRpdmVyZ2VzCisgICAgICAgIGZyb20gVk0gZGVidWdnaW5nIHN3aXRjaGVzIHRvIHRlbXBv
cmFyeSBWTSBzY3JpcHQgYmFzZWQgdWlTb3VyY2VDb2RlLCB3aGVuCisgICAgICAgIHVpU291cmNl
Q29kZSBpcyBubyBsb25nZXIgZGl2ZXJnZWQsIHRlbXBvcmFyeSBzY3JpcHQgaXMgcmVtb3ZlZC4K
KyAgICAgICAgSmF2YVNjcmlwdFNvdXJjZUZyYW1lIGlzIHVwZGF0ZWQgdG8gcHJvY2VzcyBicmVh
a3BvaW50IGNoYW5nZXMgY29ycmVjdGx5LgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9CcmVha3BvaW50TWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50
TWFuYWdlci5wcm90b3R5cGUucmVzdG9yZUJyZWFrcG9pbnRzKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVi
dWdnZXJNb2RlbC5wcm90b3R5cGUuc2V0U2VsZWN0ZWRDYWxsRnJhbWUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuQ2FsbEZyYW1lLnByb3RvdHlwZS51aUxvY2F0aW9uKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2UuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZS5wcm90b3R5cGUud29ya2luZ0NvcHlD
b21taXR0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UucHJvdG90
eXBlLndvcmtpbmdDb3B5Q2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlw
dFNvdXJjZS5wcm90b3R5cGUuZmlyZVVJU291cmNlQ29kZUhhc0RpdmVyZ2VkRnJvbVZNQ2hhbmdl
ZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlRnJhbWUu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlw
ZS5jb21taXRFZGl0aW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNl
RnJhbWUucHJvdG90eXBlLl9oYXNEaXZlcmdlZEZyb21WTSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZS5vblRleHRDaGFuZ2VkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlLl9nZXRCcmVh
a3BvaW50RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3Vy
Y2VGcmFtZS5wcm90b3R5cGUuX3JlbW92ZUJyZWFrcG9pbnREZWNvcmF0aW9ucyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZS5fc2V0QnJlYWtw
b2ludERlY29yYXRpb25zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNl
RnJhbWUucHJvdG90eXBlLl9kaWRFZGl0Q29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
SmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZS5fcmVzdG9yZUJyZWFrcG9pbnRzQWZ0ZXJF
ZGl0aW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlU2NyaXB0TWFw
cGluZy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUucmF3
TG9jYXRpb25Ub1VJTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2Ny
aXB0TWFwcGluZy5wcm90b3R5cGUuX3VpU291cmNlQ29kZUF0dHJpYnV0ZUNoYW5nZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX2dldE9y
Q3JlYXRlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdFNuaXBwZXRNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRT
bmlwcGV0TW9kZWwucHJvdG90eXBlLl9jcmVhdGVVSVNvdXJjZUNvZGVGb3JTY3JpcHQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUuX3Jlc3RvcmVC
cmVha3BvaW50cyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9zZXRFeGVjdXRpb25MaW5lKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9yZXZlYWxFeGVjdXRpb25M
aW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9jYWxs
RnJhbWVTZWxlY3RlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3Rv
dHlwZS5fdWlTb3VyY2VDb2RlRm9ybWF0dGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1VJU291cmNlQ29kZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUu
cHJvdG90eXBlLmZvcm1hdHRlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3Jr
c3BhY2UuanM6CisKIDIwMTItMTAtMDQgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIERhdGVUaW1lWWVhckZpZWxkRWxlbWVudCBzaG91bGQgcmVzcGVjdCBtaW4v
bWF4IHZhbHVlcyBzcGVjaWZpZWQgYnkgcGFnZSBhdXRob3JzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcwppbmRleCAz
YjdlNmQ3ZGMzNTI5OGNiMDgzNDA1Zjk5ZjIzZjVhYzJiNDVjMmFiLi45MGI5YzA3ZjU4ZjI5NGZi
ZjY1ZTE3NzRiODQzMDI5NTZmNGZiZTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMKQEAgLTg2LDYgKzg2LDcg
QEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIHRoaXMuX2RlYnVnZ2VyTW9kZWwucmVtb3Zl
QnJlYWtwb2ludChkZWJ1Z2dlcklkKTsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9icmVha3Bv
aW50Rm9yRGVidWdnZXJJZFtkZWJ1Z2dlcklkXTsKKyAgICAgICAgICAgIGRlbGV0ZSBicmVha3Bv
aW50Ll9kZWJ1Z2dlcklkOwogICAgICAgICB9CiAgICAgICAgIHRoaXMuX3N0b3JhZ2UuX3Jlc3Rv
cmVCcmVha3BvaW50cyh1aVNvdXJjZUNvZGUpOwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKaW5kZXggMzI2YTliZTI0
M2NmZGM5N2Q5MTZmMzdhYWUxNWQyNTIzOWIxZjEwNy4uNjVmMTc0OWFkMzc5M2IyZWI0NGU2ZmYx
NWU3OTk1YTEzNTVlMWM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwpAQCAtODUsNyArODUsNiBAQCBXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNb2RlbC5FdmVudHMgPSB7CiAgICAgQnJlYWtwb2ludFJlc29sdmVkOiAiQnJlYWtw
b2ludFJlc29sdmVkIiwKICAgICBHbG9iYWxPYmplY3RDbGVhcmVkOiAiR2xvYmFsT2JqZWN0Q2xl
YXJlZCIsCiAgICAgQ2FsbEZyYW1lU2VsZWN0ZWQ6ICJDYWxsRnJhbWVTZWxlY3RlZCIsCi0gICAg
RXhlY3V0aW9uTGluZUNoYW5nZWQ6ICJFeGVjdXRpb25MaW5lQ2hhbmdlZCIsCiAgICAgQ29uc29s
ZUNvbW1hbmRFdmFsdWF0ZWRJblNlbGVjdGVkQ2FsbEZyYW1lOiAiQ29uc29sZUNvbW1hbmRFdmFs
dWF0ZWRJblNlbGVjdGVkQ2FsbEZyYW1lIiwKICAgICBCcmVha3BvaW50c0FjdGl2ZVN0YXRlQ2hh
bmdlZDogIkJyZWFrcG9pbnRzQWN0aXZlU3RhdGVDaGFuZ2VkIgogfQpAQCAtNDU2LDEyICs0NTUs
NiBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkNhbGxGcmFtZVNlbGVjdGVkLCBjYWxsRnJhbWUp
OwotCi0gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUV4ZWN1dGlvbkxpbmUodWlMb2NhdGlvbikKLSAg
ICAgICAgewotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkV4ZWN1dGlvbkxpbmVDaGFuZ2VkLCB1aUxvY2F0
aW9uKTsKLSAgICAgICAgfQotICAgICAgICB0aGlzLl9leGVjdXRpb25MaW5lTGl2ZUxvY2F0aW9u
ID0gY2FsbEZyYW1lLnNjcmlwdC5jcmVhdGVMaXZlTG9jYXRpb24oY2FsbEZyYW1lLmxvY2F0aW9u
LCB1cGRhdGVFeGVjdXRpb25MaW5lLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICAvKioKQEAg
LTc3OSw3ICs3NzIsMTYgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuQ2FsbEZyYW1lLnBy
b3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCisgICAgICogQHJldHVybiB7V2ViSW5zcGVj
dG9yLlVJTG9jYXRpb259CisgICAgICovCisgICAgdWlMb2NhdGlvbjogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3NjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbih0
aGlzLmxvY2F0aW9uLmxpbmVOdW1iZXIsIHRoaXMubG9jYXRpb24uY29sdW1uTnVtYmVyKTsKKyAg
ICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtmdW5jdGlvbihXZWJJbnNwZWN0b3IuVUlM
b2NhdGlvbik6KGJvb2xlYW58dW5kZWZpbmVkKX0gdXBkYXRlRGVsZWdhdGUKKyAgICAgKiBAcmV0
dXJuIHtXZWJJbnNwZWN0b3IuU2NyaXB0LkxvY2F0aW9ufQogICAgICAqLwogICAgIGNyZWF0ZUxp
dmVMb2NhdGlvbjogZnVuY3Rpb24odXBkYXRlRGVsZWdhdGUpCiAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlLmpzCmlu
ZGV4IDVhNjBlN2VmZjUyZDBlMjhiZGIyYzdiYmRkMDVjNmQ0MjJlYzA4Y2EuLjU5ZTAwMzZhOGU2
ZjUxYTdlNTBiOWYyNzY3NGQ5NWYyZDQ1OThmMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2UuanMKQEAgLTU1LDYgKzU1
LDcgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgICAgIHRoaXMuaGFzRGl2ZXJnZWRGcm9tVk0gPSB0cnVlOwogICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmhhc0RpdmVyZ2VkRnJvbVZNOworICAgICAg
ICAgICAgdGhpcy5maXJlVUlTb3VyY2VDb2RlSGFzRGl2ZXJnZWRGcm9tVk1DaGFuZ2VkKCk7CiAK
ICAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yKTsKICAgICAgICAgfQpAQCAtNjQsNyArNjUsMjAg
QEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIHZhciBzY3JpcHQgPSBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JJZChyYXdMb2NhdGlvbi5zY3JpcHRJZCk7Ci0gICAgICAg
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNldFNjcmlwdFNvdXJjZShzY3JpcHQuc2NyaXB0
SWQsIHRoaXMud29ya2luZ0NvcHkoKSwgaW5uZXJDYWxsYmFjayk7CisgICAgICAgIFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1vZGVsLnNldFNjcmlwdFNvdXJjZShzY3JpcHQuc2NyaXB0SWQsIHRoaXMu
d29ya2luZ0NvcHkoKSwgaW5uZXJDYWxsYmFjay5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAg
d29ya2luZ0NvcHlDaGFuZ2VkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLmZpcmVV
SVNvdXJjZUNvZGVIYXNEaXZlcmdlZEZyb21WTUNoYW5nZWQoKTsKKyAgICB9LAorCisgICAgZmly
ZVVJU291cmNlQ29kZUhhc0RpdmVyZ2VkRnJvbVZNQ2hhbmdlZDogZnVuY3Rpb24oKQorICAgIHsK
KyAgICAgICAgdmFyIGRhdGEgPSB7fTsKKyAgICAgICAgZGF0YS51aVNvdXJjZUNvZGUgPSB0aGlz
OworICAgICAgICBkYXRhLmF0dHJpYnV0ZU5hbWUgPSAiaGFzRGl2ZXJnZWRGcm9tVk0iOworICAg
ICAgICBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5VSVNvdXJjZUNvZGVBdHRyaWJ1dGVDaGFuZ2VkLCBk
YXRhKTsKICAgICB9LAogCiAgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
LnByb3RvdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9KYXZhU2NyaXB0U291cmNlRnJhbWUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0phdmFTY3JpcHRTb3VyY2VGcmFtZS5qcwppbmRleCA2NmZiYzQ2MGU5OTUwYjkxYWJl
NWY0MTkzN2YyNDViZjBjOWE3YWNmLi5hZGI1ZTMzZDcyZDkyMzU0MjM3YmQxYzhmODUwOWQ3N2U2
YjkyYjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ph
dmFTY3JpcHRTb3VyY2VGcmFtZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0phdmFTY3JpcHRTb3VyY2VGcmFtZS5qcwpAQCAtOTIsNyArOTIsOCBAQCBXZWJJbnNw
ZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICB0aGlzLl9pc0NvbW1pdHRpbmdFZGl0aW5nID0gdHJ1ZTsKLSAgICAg
ICAgdGhpcy5famF2YVNjcmlwdFNvdXJjZS5jb21taXRXb3JraW5nQ29weSh0aGlzLl9kaWRFZGl0
Q29udGVudC5iaW5kKHRoaXMpKTsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0gdGhpcy5fZ2V0
QnJlYWtwb2ludERlY29yYXRpb25zKCk7CisgICAgICAgIHRoaXMuX2phdmFTY3JpcHRTb3VyY2Uu
Y29tbWl0V29ya2luZ0NvcHkodGhpcy5fZGlkRWRpdENvbnRlbnQuYmluZCh0aGlzLCBicmVha3Bv
aW50cykpOwogICAgICAgICBkZWxldGUgdGhpcy5faXNDb21taXR0aW5nRWRpdGluZzsKICAgICB9
LAogCkBAIC0xNDksMTIgKzE1MCw1OSBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZy
YW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kQXBwbGljYWJsZUl0
ZW1zKHRoaXMuX2phdmFTY3JpcHRTb3VyY2UpOwogICAgIH0sCiAKKyAgICBfaGFzRGl2ZXJnZWRG
cm9tVk06IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9qYXZhU2NyaXB0
U291cmNlLmlzRGlydHkoKSB8fCB0aGlzLl9qYXZhU2NyaXB0U291cmNlLmhhc0RpdmVyZ2VkRnJv
bVZNOworICAgIH0sCisKICAgICBvblRleHRDaGFuZ2VkOiBmdW5jdGlvbihvbGRSYW5nZSwgbmV3
UmFuZ2UpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBl
Lm9uVGV4dENoYW5nZWQuY2FsbCh0aGlzLCBvbGRSYW5nZSwgbmV3UmFuZ2UpOwotICAgICAgICB0
aGlzLl9yZW1vdmVCcmVha3BvaW50c0JlZm9yZUVkaXRpbmcoKTsKKworICAgICAgICB2YXIgd2Fz
RGl2ZXJnZWQgPSB0aGlzLl9oYXNEaXZlcmdlZEZyb21WTSgpOworICAgICAgICB2YXIgYnJlYWtw
b2ludHMgPSB0aGlzLl9nZXRCcmVha3BvaW50RGVjb3JhdGlvbnMoKTsKKwogICAgICAgICB0aGlz
Ll9qYXZhU2NyaXB0U291cmNlLnNldFdvcmtpbmdDb3B5KHRoaXMuX3RleHRFZGl0b3IudGV4dCgp
KTsKLSAgICAgICAgdGhpcy5fcmVzdG9yZUJyZWFrcG9pbnRzQWZ0ZXJFZGl0aW5nKCk7CisKKyAg
ICAgICAgdmFyIGlzRGl2ZXJnZWQgPSB0aGlzLl9oYXNEaXZlcmdlZEZyb21WTSgpOworICAgICAg
ICBpZiAodGhpcy5fc3VwcG9ydHNFbmFibGVkQnJlYWtwb2ludHNXaGlsZUVkaXRpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoIXdhc0RpdmVyZ2VkICYmIGlzRGl2ZXJn
ZWQpCisgICAgICAgICAgICB0aGlzLl9zZXRCcmVha3BvaW50RGVjb3JhdGlvbnMoYnJlYWtwb2lu
dHMpOworICAgICAgICBlbHNlIGlmICh3YXNEaXZlcmdlZCAmJiAhaXNEaXZlcmdlZCkKKyAgICAg
ICAgICAgIHRoaXMuX3Jlc3RvcmVCcmVha3BvaW50c0FmdGVyRWRpdGluZyhicmVha3BvaW50cyk7
CisgICAgfSwKKworICAgIF9nZXRCcmVha3BvaW50RGVjb3JhdGlvbnM6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHZhciBicmVha3BvaW50cyA9IHt9OworICAgICAgICAvLyBSZXN0b3JlIGFs
bCBtdXRlZCBicmVha3BvaW50cy4KKyAgICAgICAgZm9yICh2YXIgbGluZU51bWJlciA9IDA7IGxp
bmVOdW1iZXIgPCB0aGlzLl90ZXh0RWRpdG9yLmxpbmVzQ291bnQ7ICsrbGluZU51bWJlcikgewor
ICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnREZWNvcmF0aW9uID0gdGhpcy5fdGV4dEVkaXRvci5n
ZXRBdHRyaWJ1dGUobGluZU51bWJlciwgImJyZWFrcG9pbnQiKTsKKyAgICAgICAgICAgIGlmIChi
cmVha3BvaW50RGVjb3JhdGlvbikKKyAgICAgICAgICAgICAgICBicmVha3BvaW50c1tsaW5lTnVt
YmVyXSA9IGJyZWFrcG9pbnREZWNvcmF0aW9uOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJu
IGJyZWFrcG9pbnRzOworICAgIH0sCisKKyAgICBfcmVtb3ZlQnJlYWtwb2ludERlY29yYXRpb25z
OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBmb3IgKHZhciBsaW5lTnVtYmVyID0gMDsgbGlu
ZU51bWJlciA8IHRoaXMuX3RleHRFZGl0b3IubGluZXNDb3VudDsgKytsaW5lTnVtYmVyKQorICAg
ICAgICAgICAgdGhpcy5fcmVtb3ZlQnJlYWtwb2ludERlY29yYXRpb24obGluZU51bWJlcik7Cisg
ICAgfSwKKworICAgIF9zZXRCcmVha3BvaW50RGVjb3JhdGlvbnM6IGZ1bmN0aW9uKGJyZWFrcG9p
bnRzKQorICAgIHsKKyAgICAgICAgdGhpcy5fcmVtb3ZlQnJlYWtwb2ludERlY29yYXRpb25zKCk7
CisgICAgICAgIGZvciAodmFyIGxpbmVOdW1iZXJTdHJpbmcgaW4gYnJlYWtwb2ludHMpIHsKKyAg
ICAgICAgICAgIHZhciBsaW5lTnVtYmVyID0gcGFyc2VJbnQobGluZU51bWJlclN0cmluZywgMTAp
OworICAgICAgICAgICAgaWYgKGlzTmFOKGxpbmVOdW1iZXIpKQorICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnREZWNvcmF0aW9uID0gYnJlYWtwb2lu
dHNbbGluZU51bWJlclN0cmluZ107CisgICAgICAgICAgICB0aGlzLl9hZGRCcmVha3BvaW50RGVj
b3JhdGlvbihsaW5lTnVtYmVyLCBicmVha3BvaW50RGVjb3JhdGlvbi5jb25kaXRpb24sIGJyZWFr
cG9pbnREZWNvcmF0aW9uLmVuYWJsZWQsIHRydWUpOworICAgICAgICB9CiAgICAgfSwKIAogICAg
IF9zdXBwb3J0c0VuYWJsZWRCcmVha3BvaW50c1doaWxlRWRpdGluZzogZnVuY3Rpb24oKQpAQCAt
MTYyLDUyICsyMTAsMzYgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9qYXZhU2NyaXB0U291cmNlLmlzU25pcHBl
dDsKICAgICB9LAogCi0gICAgX2RpZEVkaXRDb250ZW50OiBmdW5jdGlvbihlcnJvcikKKyAgICBf
ZGlkRWRpdENvbnRlbnQ6IGZ1bmN0aW9uKGJyZWFrcG9pbnRzLCBlcnJvcikKICAgICB7CisgICAg
ICAgIGlmICghdGhpcy5fc3VwcG9ydHNFbmFibGVkQnJlYWtwb2ludHNXaGlsZUVkaXRpbmcoKSkK
KyAgICAgICAgICAgIHRoaXMuX3Jlc3RvcmVCcmVha3BvaW50c0FmdGVyRWRpdGluZyhicmVha3Bv
aW50cyk7CisKICAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
c2hvd0Vycm9yTWVzc2FnZShlcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICAgICAgaWYgKCF0aGlzLl9zdXBwb3J0c0VuYWJsZWRCcmVha3BvaW50c1doaWxlRWRpdGlu
ZygpKQotICAgICAgICAgICAgdGhpcy5fcmVzdG9yZUJyZWFrcG9pbnRzQWZ0ZXJFZGl0aW5nKCk7
CiAgICAgfSwKIAotICAgIF9yZW1vdmVCcmVha3BvaW50c0JlZm9yZUVkaXRpbmc6IGZ1bmN0aW9u
KCkKKyAgICBfcmVzdG9yZUJyZWFrcG9pbnRzQWZ0ZXJFZGl0aW5nOiBmdW5jdGlvbihicmVha3Bv
aW50cykKICAgICB7Ci0gICAgICAgIHZhciBzdXBwb3J0c0JyZWFrcG9pbnRzT25FZGl0ID0gdGhp
cy5fc3VwcG9ydHNFbmFibGVkQnJlYWtwb2ludHNXaGlsZUVkaXRpbmcoKTsKLSAgICAgICAgaWYg
KCF0aGlzLl9qYXZhU2NyaXB0U291cmNlLmlzRGlydHkoKSB8fCBzdXBwb3J0c0JyZWFrcG9pbnRz
T25FZGl0KSB7Ci0gICAgICAgICAgICAvLyBEaXNhYmxlIGFsbCBicmVha3BvaW50cyBpbiB0aGUg
bW9kZWwsIHN0b3JlIHRoZW0gYXMgbXV0ZWQgYnJlYWtwb2ludHMuCi0gICAgICAgICAgICB2YXIg
YnJlYWtwb2ludExvY2F0aW9ucyA9IHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLmJyZWFrcG9pbnRM
b2NhdGlvbnNGb3JVSVNvdXJjZUNvZGUodGhpcy5famF2YVNjcmlwdFNvdXJjZSk7Ci0gICAgICAg
ICAgICB2YXIgbGluZU51bWJlcnMgPSB7fTsKLSAgICAgICAgICAgIHRoaXMuX3ByZXNlcnZlRGVj
b3JhdGlvbnMgPSB0cnVlOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicmVha3Bv
aW50TG9jYXRpb25zLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGJyZWFrcG9p
bnQgPSBicmVha3BvaW50TG9jYXRpb25zW2ldLmJyZWFrcG9pbnQ7Ci0gICAgICAgICAgICAgICAg
YnJlYWtwb2ludExvY2F0aW9uc1tpXS5icmVha3BvaW50LnJlbW92ZSgpOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3ByZXNlcnZlRGVjb3JhdGlvbnM7Ci0KLSAgICAg
ICAgICAgIGZvciAodmFyIGxpbmVOdW1iZXIgPSAwOyBsaW5lTnVtYmVyIDwgdGhpcy5fdGV4dEVk
aXRvci5saW5lc0NvdW50OyArK2xpbmVOdW1iZXIpIHsKLSAgICAgICAgICAgICAgICB2YXIgYnJl
YWtwb2ludERlY29yYXRpb24gPSB0aGlzLl90ZXh0RWRpdG9yLmdldEF0dHJpYnV0ZShsaW5lTnVt
YmVyLCAiYnJlYWtwb2ludCIpOwotICAgICAgICAgICAgICAgIGlmIChicmVha3BvaW50RGVjb3Jh
dGlvbikKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkQnJlYWtwb2ludERlY29yYXRpb24o
bGluZU51bWJlciwgYnJlYWtwb2ludERlY29yYXRpb24uY29uZGl0aW9uLCBicmVha3BvaW50RGVj
b3JhdGlvbi5lbmFibGVkLCAhc3VwcG9ydHNCcmVha3BvaW50c09uRWRpdCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB0aGlzLmNsZWFyRXhlY3V0aW9uTGluZSgpOworICAgICAgICB2YXIg
YnJlYWtwb2ludExvY2F0aW9ucyA9IHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLmJyZWFrcG9pbnRM
b2NhdGlvbnNGb3JVSVNvdXJjZUNvZGUodGhpcy5famF2YVNjcmlwdFNvdXJjZSk7CisgICAgICAg
IHZhciBsaW5lTnVtYmVycyA9IHt9OworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJyZWFr
cG9pbnRMb2NhdGlvbnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBicmVha3BvaW50
ID0gYnJlYWtwb2ludExvY2F0aW9uc1tpXS5icmVha3BvaW50OworICAgICAgICAgICAgYnJlYWtw
b2ludExvY2F0aW9uc1tpXS5icmVha3BvaW50LnJlbW92ZSgpOwogICAgICAgICB9Ci0gICAgfSwK
IAotICAgIF9yZXN0b3JlQnJlYWtwb2ludHNBZnRlckVkaXRpbmc6IGZ1bmN0aW9uKCkKLSAgICB7
Ci0gICAgICAgIGlmICghdGhpcy5famF2YVNjcmlwdFNvdXJjZS5pc0RpcnR5KCkgfHwgdGhpcy5f
c3VwcG9ydHNFbmFibGVkQnJlYWtwb2ludHNXaGlsZUVkaXRpbmcoKSkgewotICAgICAgICAgICAg
Ly8gUmVzdG9yZSBhbGwgbXV0ZWQgYnJlYWtwb2ludHMuCi0gICAgICAgICAgICBmb3IgKHZhciBs
aW5lTnVtYmVyID0gMDsgbGluZU51bWJlciA8IHRoaXMuX3RleHRFZGl0b3IubGluZXNDb3VudDsg
KytsaW5lTnVtYmVyKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnREZWNvcmF0aW9u
ID0gdGhpcy5fdGV4dEVkaXRvci5nZXRBdHRyaWJ1dGUobGluZU51bWJlciwgImJyZWFrcG9pbnQi
KTsKLSAgICAgICAgICAgICAgICBpZiAoYnJlYWtwb2ludERlY29yYXRpb24pIHsKLSAgICAgICAg
ICAgICAgICAgICAgLy8gUmVtb3ZlIGZha2UgZGVjb3JhdGlvbgotICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9yZW1vdmVCcmVha3BvaW50RGVjb3JhdGlvbihsaW5lTnVtYmVyKTsKLSAgICAgICAg
ICAgICAgICAgICAgLy8gU2V0IG5ldyBicmVha3BvaW50Ci0gICAgICAgICAgICAgICAgICAgIHRo
aXMuX3NldEJyZWFrcG9pbnQobGluZU51bWJlciwgYnJlYWtwb2ludERlY29yYXRpb24uY29uZGl0
aW9uLCBicmVha3BvaW50RGVjb3JhdGlvbi5lbmFibGVkKTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB9CisgICAgICAgIHRoaXMuX3JlbW92ZUJyZWFrcG9pbnREZWNvcmF0aW9ucygp
OworCisgICAgICAgIC8vIFJlc3RvcmUgYWxsIG11dGVkIGJyZWFrcG9pbnRzLgorICAgICAgICBm
b3IgKHZhciBsaW5lTnVtYmVyU3RyaW5nIGluIGJyZWFrcG9pbnRzKSB7CisgICAgICAgICAgICB2
YXIgbGluZU51bWJlciA9IHBhcnNlSW50KGxpbmVOdW1iZXJTdHJpbmcsIDEwKTsKKyAgICAgICAg
ICAgIGlmIChpc05hTihsaW5lTnVtYmVyKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgIHZhciBicmVha3BvaW50RGVjb3JhdGlvbiA9IGJyZWFrcG9pbnRzW2xpbmVOdW1i
ZXJTdHJpbmddOworICAgICAgICAgICAgLy8gU2V0IG5ldyBicmVha3BvaW50CisgICAgICAgICAg
ICB0aGlzLl9zZXRCcmVha3BvaW50KGxpbmVOdW1iZXIsIGJyZWFrcG9pbnREZWNvcmF0aW9uLmNv
bmRpdGlvbiwgYnJlYWtwb2ludERlY29yYXRpb24uZW5hYmxlZCk7CiAgICAgICAgIH0KICAgICB9
LAogCkBAIC0zNDIsNyArMzc0LDcgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFt
ZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIH07CiAgICAgICAgIHRoaXMudGV4dEVkaXRvci5zZXRB
dHRyaWJ1dGUobGluZU51bWJlciwgImJyZWFrcG9pbnQiLCBicmVha3BvaW50KTsKIAotICAgICAg
ICB2YXIgZGlzYWJsZWQgPSAhZW5hYmxlZCB8fCAobXV0ZWRXaGlsZUVkaXRpbmcgJiYgIXRoaXMu
X3N1cHBvcnRzRW5hYmxlZEJyZWFrcG9pbnRzV2hpbGVFZGl0aW5nKCkpOworICAgICAgICB2YXIg
ZGlzYWJsZWQgPSAhZW5hYmxlZCB8fCBtdXRlZFdoaWxlRWRpdGluZzsKICAgICAgICAgdGhpcy50
ZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciwgZGlzYWJsZWQsICEhY29uZGl0aW9u
KTsKICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Jlc291cmNlU2NyaXB0TWFwcGluZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzCmluZGV4IGMzYTNhMDYzMzliN2RkNjdl
NTQzZmI3NDU4YTI1YTM5YTEyNjFmYzEuLjcwM2QxYjI3ZjIxMjVmM2VjZWE1NDIwOThmOGVmMGQ2
MjQ3ZDU2YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzCkBAIC0zOCw2ICszOCw3IEBAIFdlYklu
c3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcgPSBmdW5jdGlvbih3b3Jrc3BhY2UpCiAgICAg
dGhpcy5fd29ya3NwYWNlID0gd29ya3NwYWNlOwogICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQs
IHRoaXMuX3Jlc2V0LCB0aGlzKTsKICAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFk
ZGVkLCB0aGlzLl91aVNvdXJjZUNvZGVBZGRlZFRvV29ya3NwYWNlLCB0aGlzKTsKKyAgICB0aGlz
Ll93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50
cy5VSVNvdXJjZUNvZGVBdHRyaWJ1dGVDaGFuZ2VkLCB0aGlzLl91aVNvdXJjZUNvZGVBdHRyaWJ1
dGVDaGFuZ2VkLCB0aGlzKTsKIAogICAgIC8qKiBAdHlwZSB7T2JqZWN0LjxzdHJpbmcsIFdlYklu
c3BlY3Rvci5VSVNvdXJjZUNvZGU+fSAqLwogICAgIHRoaXMuX3RlbXBvcmFyeVVJU291cmNlQ29k
ZUZvclNjcmlwdElkID0ge307CkBAIC01MywxMSArNTQsMjggQEAgV2ViSW5zcGVjdG9yLlJlc291
cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB2YXIgZGVidWdn
ZXJNb2RlbExvY2F0aW9uID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5M
b2NhdGlvbn0gKi8gcmF3TG9jYXRpb247CiAgICAgICAgIHZhciBzY3JpcHQgPSBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JJZChkZWJ1Z2dlck1vZGVsTG9jYXRpb24uc2NyaXB0
SWQpOwotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNlVUlTb3VyY2VD
b2RlRm9yU2NyaXB0KHNjcmlwdCkgfHwgdGhpcy5fZ2V0T3JDcmVhdGVUZW1wb3JhcnlVSVNvdXJj
ZUNvZGUoc2NyaXB0KTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFj
ZVVJU291cmNlQ29kZUZvclNjcmlwdChzY3JpcHQpOworICAgICAgICBpZiAoIXVpU291cmNlQ29k
ZSB8fCB1aVNvdXJjZUNvZGUuaXNEaXJ0eSgpIHx8IHVpU291cmNlQ29kZS5oYXNEaXZlcmdlZEZy
b21WTSkKKyAgICAgICAgICAgIHVpU291cmNlQ29kZSA9IHRoaXMuX2dldE9yQ3JlYXRlVGVtcG9y
YXJ5VUlTb3VyY2VDb2RlKHNjcmlwdCk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCEhdWlTb3Vy
Y2VDb2RlKTsKICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuVUlMb2NhdGlvbih1aVNv
dXJjZUNvZGUsIGRlYnVnZ2VyTW9kZWxMb2NhdGlvbi5saW5lTnVtYmVyLCBkZWJ1Z2dlck1vZGVs
TG9jYXRpb24uY29sdW1uTnVtYmVyIHx8IDApOwogICAgIH0sCiAKKyAgICBfdWlTb3VyY2VDb2Rl
QXR0cmlidXRlQ2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgdWlT
b3VyY2VDb2RlID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSAqLyBldmVu
dC5kYXRhLnVpU291cmNlQ29kZTsKKyAgICAgICAgdmFyIGF0dHJpYnV0ZU5hbWUgPSAvKiogQHR5
cGUge3N0cmluZ30gKi8gZXZlbnQuZGF0YS5hdHRyaWJ1dGVOYW1lOworICAgICAgICBpZiAoYXR0
cmlidXRlTmFtZSAhPT0gImhhc0RpdmVyZ2VkRnJvbVZNIikKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgdmFyIHNjcmlwdHMgPSB0aGlzLl9zY3JpcHRzRm9yVUlTb3VyY2VDb2RlKHVpU291
cmNlQ29kZSk7CisgICAgICAgIGlmICghc2NyaXB0cy5sZW5ndGgpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkKKyAg
ICAgICAgICAgIHNjcmlwdHNbaV0uc2V0U291cmNlTWFwcGluZyh0aGlzKTsKKyAgICAgICAgaWYg
KCF1aVNvdXJjZUNvZGUuaXNEaXJ0eSgpICYmICF1aVNvdXJjZUNvZGUuaGFzRGl2ZXJnZWRGcm9t
Vk0pCisgICAgICAgICAgICB0aGlzLl9kZWxldGVUZW1wb3JhcnlVSVNvdXJjZUNvZGVGb3JTY3Jp
cHRzKHNjcmlwdHMpOworICAgIH0sCisKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5TY3JpcHR9IHNjcmlwdAogICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGV9CkBAIC0xNzIsNyArMTkwLDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFw
cGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBjb250ZW50UHJvdmlkZXIgPSBzY3JpcHQu
aXNJbmxpbmVTY3JpcHQoKSA/IG5ldyBXZWJJbnNwZWN0b3IuQ29uY2F0ZW5hdGVkU2NyaXB0c0Nv
bnRlbnRQcm92aWRlcihzY3JpcHRzKSA6IHNjcmlwdDsKICAgICAgICAgdmFyIGlzRHluYW1pY1Nj
cmlwdCA9IHRoaXMuX2lzRHluYW1pY1NjcmlwdChzY3JpcHQpOwogICAgICAgICB2YXIgdXJsID0g
aXNEeW5hbWljU2NyaXB0ID8gIiIgOiBzY3JpcHQuc291cmNlVVJMOwotICAgICAgICB0ZW1wb3Jh
cnlVSVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UodXJsLCBj
b250ZW50UHJvdmlkZXIsICFzY3JpcHQuaXNJbmxpbmVTY3JpcHQoKSk7CisgICAgICAgIHRlbXBv
cmFyeVVJU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZSh1cmws
IGNvbnRlbnRQcm92aWRlciwgZmFsc2UpOwogICAgICAgICB0ZW1wb3JhcnlVSVNvdXJjZUNvZGUu
aXNUZW1wb3JhcnkgPSB0cnVlOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNjcmlwdHMu
bGVuZ3RoOyArK2kpCiAgICAgICAgICAgICB0aGlzLl90ZW1wb3JhcnlVSVNvdXJjZUNvZGVGb3JT
Y3JpcHRJZFtzY3JpcHRzW2ldLnNjcmlwdElkXSA9IHRlbXBvcmFyeVVJU291cmNlQ29kZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25pcHBl
dE1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlw
cGV0TW9kZWwuanMKaW5kZXggMDEwMDE1Yzg2MWFkMDAwNGQzNGUxNTBkZGY5NzdiYzRjMDllOTEx
NC4uYzUzMzliNGM4OWY3MDlmZmY5OTA2Zjg4MWNiNzBmMDYwODc0MTk2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0TW9k
ZWwuanMKQEAgLTE0Myw4ICsxNDMsMTAgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2Rl
bC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgICAgICB2
YXIgYnJlYWtwb2ludExvY2F0aW9ucyA9IHRoaXMuX3JlbW92ZUJyZWFrcG9pbnRzKHNuaXBwZXRK
YXZhU2NyaXB0U291cmNlKTsKLSAgICAgICAgdGhpcy5fcmVsZWFzZVNuaXBwZXRTY3JpcHQoc25p
cHBldEphdmFTY3JpcHRTb3VyY2UpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5f
cmVsZWFzZVNuaXBwZXRTY3JpcHQoc25pcHBldEphdmFTY3JpcHRTb3VyY2UpOwogICAgICAgICB0
aGlzLl9yZXN0b3JlQnJlYWtwb2ludHMoc25pcHBldEphdmFTY3JpcHRTb3VyY2UsIGJyZWFrcG9p
bnRMb2NhdGlvbnMpOworICAgICAgICBpZiAodWlTb3VyY2VDb2RlKQorICAgICAgICAgICAgdGhp
cy5fcmVzdG9yZUJyZWFrcG9pbnRzKHVpU291cmNlQ29kZSwgYnJlYWtwb2ludExvY2F0aW9ucyk7
CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMzEzLDE1ICszMTUsMTkgQEAgV2ViSW5zcGVjdG9yLlNj
cmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5TY3JpcHR9IHNjcmlwdAorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQogICAgICAqLwogICAgIF9jcmVhdGVVSVNvdXJj
ZUNvZGVGb3JTY3JpcHQ6IGZ1bmN0aW9uKHNjcmlwdCkKICAgICB7CiAgICAgICAgIHZhciB1aVNv
dXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2Uoc2NyaXB0LnNvdXJj
ZVVSTCwgc2NyaXB0LCBmYWxzZSk7Ci0gICAgICAgIHVpU291cmNlQ29kZS5zZXRTb3VyY2VNYXBw
aW5nKHRoaXMuX3NuaXBwZXRTY3JpcHRNYXBwaW5nKTsgCisgICAgICAgIHVpU291cmNlQ29kZS5z
ZXRTb3VyY2VNYXBwaW5nKHRoaXMuX3NuaXBwZXRTY3JpcHRNYXBwaW5nKTsKKyAgICAgICAgLy8g
RklYTUU6IFNob3VsZCBiZSBhZGRlZCB0byB3b3Jrc3BhY2UgYXMgdGVtcG9yYXJ5LgorICAgICAg
ICB1aVNvdXJjZUNvZGUuaXNUZW1wb3JhcnkgPSB0cnVlOwogICAgICAgICB1aVNvdXJjZUNvZGUu
aXNTbmlwcGV0RXZhbHVhdGlvbiA9IHRydWU7CiAgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZUZv
clNjcmlwdElkW3NjcmlwdC5zY3JpcHRJZF0gPSB1aVNvdXJjZUNvZGU7CiAgICAgICAgIHRoaXMu
X3NjcmlwdEZvclVJU291cmNlQ29kZS5wdXQodWlTb3VyY2VDb2RlLCBzY3JpcHQpOwogICAgICAg
ICBzY3JpcHQuc2V0U291cmNlTWFwcGluZyh0aGlzLl9zbmlwcGV0U2NyaXB0TWFwcGluZyk7Cisg
ICAgICAgIHJldHVybiB1aVNvdXJjZUNvZGU7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMzM3LDMy
ICszNDMsMzMgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUgPSB7
CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNuaXBwZXRK
YXZhU2NyaXB0U291cmNlfSBzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZQorICAgICAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCiAgICAgICogQHBhcmFtIHtB
cnJheS48T2JqZWN0Pn0gYnJlYWtwb2ludExvY2F0aW9ucwogICAgICAqLwotICAgIF9yZXN0b3Jl
QnJlYWtwb2ludHM6IGZ1bmN0aW9uKHNuaXBwZXRKYXZhU2NyaXB0U291cmNlLCBicmVha3BvaW50
TG9jYXRpb25zKQorICAgIF9yZXN0b3JlQnJlYWtwb2ludHM6IGZ1bmN0aW9uKHVpU291cmNlQ29k
ZSwgYnJlYWtwb2ludExvY2F0aW9ucykKICAgICB7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgYnJlYWtwb2ludExvY2F0aW9ucy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIHVp
TG9jYXRpb24gPSBicmVha3BvaW50TG9jYXRpb25zW2ldLnVpTG9jYXRpb247CiAgICAgICAgICAg
ICB2YXIgYnJlYWtwb2ludCA9IGJyZWFrcG9pbnRMb2NhdGlvbnNbaV0uYnJlYWtwb2ludDsKLSAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5icmVha3BvaW50TWFuYWdlci5zZXRCcmVha3BvaW50KHVp
TG9jYXRpb24udWlTb3VyY2VDb2RlLCB1aUxvY2F0aW9uLmxpbmVOdW1iZXIsIGJyZWFrcG9pbnQu
Y29uZGl0aW9uKCksIGJyZWFrcG9pbnQuZW5hYmxlZCgpKTsKKyAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5icmVha3BvaW50TWFuYWdlci5zZXRCcmVha3BvaW50KHVpU291cmNlQ29kZSwgdWlMb2Nh
dGlvbi5saW5lTnVtYmVyLCBicmVha3BvaW50LmNvbmRpdGlvbigpLCBicmVha3BvaW50LmVuYWJs
ZWQoKSk7CiAgICAgICAgIH0KICAgICB9LAogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuU25pcHBldEphdmFTY3JpcHRTb3VyY2V9IHNuaXBwZXRKYXZhU2NyaXB0U291cmNl
CisgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0KICAgICAgKi8KICAg
ICBfcmVsZWFzZVNuaXBwZXRTY3JpcHQ6IGZ1bmN0aW9uKHNuaXBwZXRKYXZhU2NyaXB0U291cmNl
KQogICAgIHsKICAgICAgICAgdmFyIHNjcmlwdCA9IHRoaXMuX3NjcmlwdEZvclVJU291cmNlQ29k
ZS5nZXQoc25pcHBldEphdmFTY3JpcHRTb3VyY2UpOwogICAgICAgICBpZiAoIXNjcmlwdCkKLSAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBudWxsOwogCiAgICAgICAgIHNu
aXBwZXRKYXZhU2NyaXB0U291cmNlLmhhc0RpdmVyZ2VkRnJvbVZNID0gdHJ1ZTsKICAgICAgICAg
ZGVsZXRlIHRoaXMuX3VpU291cmNlQ29kZUZvclNjcmlwdElkW3NjcmlwdC5zY3JpcHRJZF07CiAg
ICAgICAgIHRoaXMuX3NjcmlwdEZvclVJU291cmNlQ29kZS5yZW1vdmUoc25pcHBldEphdmFTY3Jp
cHRTb3VyY2UpOwogICAgICAgICBkZWxldGUgc25pcHBldEphdmFTY3JpcHRTb3VyY2UuX2V2YWx1
YXRpb25JbmRleDsKLSAgICAgICAgdGhpcy5fY3JlYXRlVUlTb3VyY2VDb2RlRm9yU2NyaXB0KHNj
cmlwdCk7CisgICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVVSVNvdXJjZUNvZGVGb3JTY3JpcHQo
c2NyaXB0KTsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IDJmMGJmYmNjYzRiOTg0NWZhMmQw
MzI5ZTM3YWUyZGJmMzIwYTM3ODMuLmNjNThlNjIwZGI2NTkyZGViNDc0MzJiNjYyODYyMjhkY2Zj
Zjg0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzCkBAIC0xODQsNyArMTg0LDYgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5l
bCA9IGZ1bmN0aW9uKHdvcmtzcGFjZUZvclRlc3QpCiAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMu
RGVidWdnZXJSZXN1bWVkLCB0aGlzLl9kZWJ1Z2dlclJlc3VtZWQsIHRoaXMpOwogICAgIFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTW9kZWwuRXZlbnRzLkNhbGxGcmFtZVNlbGVjdGVkLCB0aGlzLl9jYWxsRnJhbWVTZWxlY3Rl
ZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuQ29uc29sZUNvbW1hbmRFdmFsdWF0
ZWRJblNlbGVjdGVkQ2FsbEZyYW1lLCB0aGlzLl9jb25zb2xlQ29tbWFuZEV2YWx1YXRlZEluU2Vs
ZWN0ZWRDYWxsRnJhbWUsIHRoaXMpOwotICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkV4ZWN1dGlv
bkxpbmVDaGFuZ2VkLCB0aGlzLl9leGVjdXRpb25MaW5lQ2hhbmdlZCwgdGhpcyk7CiAgICAgV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVi
dWdnZXJNb2RlbC5FdmVudHMuQnJlYWtwb2ludHNBY3RpdmVTdGF0ZUNoYW5nZWQsIHRoaXMuX2Jy
ZWFrcG9pbnRzQWN0aXZlU3RhdGVDaGFuZ2VkLCB0aGlzKTsKIAogICAgIFdlYkluc3BlY3Rvci5z
dGFydEJhdGNoVXBkYXRlKCk7CkBAIC00ODksMTAgKzQ4OCw4IEBAIFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBkZWxldGUgdGhpcy5fZXhlY3V0aW9uU291
cmNlRnJhbWU7CiAgICAgfSwKIAotICAgIF9leGVjdXRpb25MaW5lQ2hhbmdlZDogZnVuY3Rpb24o
ZXZlbnQpCisgICAgX3NldEV4ZWN1dGlvbkxpbmU6IGZ1bmN0aW9uKHVpTG9jYXRpb24pCiAgICAg
ewotICAgICAgICB2YXIgdWlMb2NhdGlvbiA9IGV2ZW50LmRhdGE7Ci0KICAgICAgICAgdGhpcy5f
Y2xlYXJDdXJyZW50RXhlY3V0aW9uTGluZSgpOwogICAgICAgICBpZiAoIXVpTG9jYXRpb24pCiAg
ICAgICAgICAgICByZXR1cm47CkBAIC01MDMsOSArNTAwLDE0IEBAIFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX3JldmVhbEV4ZWN1dGlvbkxpbmU6IGZ1bmN0
aW9uKHVpTG9jYXRpb24pCiAgICAgeworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdWlMb2Nh
dGlvbi51aVNvdXJjZUNvZGU7CiAgICAgICAgIC8vIFNvbWUgc2NyaXB0cyAoYW5vbnltb3VzIGFu
ZCBzbmlwcGV0cyBldmFsdWF0aW9ucykgYXJlIG5vdCBhZGRlZCB0byBmaWxlcyBzZWxlY3QgYnkg
ZGVmYXVsdC4KLSAgICAgICAgdGhpcy5fZWRpdG9yQ29udGFpbmVyLmFkZFVJU291cmNlQ29kZSh1
aUxvY2F0aW9uLnVpU291cmNlQ29kZSk7Ci0gICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMu
X3Nob3dGaWxlKHVpTG9jYXRpb24udWlTb3VyY2VDb2RlKTsKKyAgICAgICAgaWYgKHVpU291cmNl
Q29kZS5pc1RlbXBvcmFyeSkgeworICAgICAgICAgICAgdGhpcy5fZWRpdG9yQ29udGFpbmVyLmFk
ZFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOworICAgICAgICAgICAgaWYgKHVpU291cmNlQ29k
ZS5mb3JtYXR0ZWQoKSAhPT0gdGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlQnV0dG9uLnRvZ2dsZWQp
CisgICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldEZvcm1hdHRlZCh0aGlzLl90b2dnbGVG
b3JtYXRTb3VyY2VCdXR0b24udG9nZ2xlZCwgdGhpcy5fdWlTb3VyY2VDb2RlRm9ybWF0dGVkLmJp
bmQodGhpcywgdWlTb3VyY2VDb2RlKSk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHNvdXJjZUZy
YW1lID0gdGhpcy5fc2hvd0ZpbGUodWlTb3VyY2VDb2RlKTsKICAgICAgICAgc291cmNlRnJhbWUu
cmV2ZWFsTGluZSh1aUxvY2F0aW9uLmxpbmVOdW1iZXIpOwogICAgICAgICBzb3VyY2VGcmFtZS5m
b2N1cygpOwogICAgIH0sCkBAIC01MjAsNyArNTIyLDggQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQ
YW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLnNjb3BlY2hhaW4u
dXBkYXRlKGNhbGxGcmFtZSk7CiAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLndhdGNoRXhwcmVz
c2lvbnMucmVmcmVzaEV4cHJlc3Npb25zKCk7CiAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLmNh
bGxzdGFjay5zZXRTZWxlY3RlZENhbGxGcmFtZShjYWxsRnJhbWUpOwotICAgICAgICBjYWxsRnJh
bWUuY3JlYXRlTGl2ZUxvY2F0aW9uKHRoaXMuX3JldmVhbEV4ZWN1dGlvbkxpbmUuYmluZCh0aGlz
KSk7CisgICAgICAgIHRoaXMuX3JldmVhbEV4ZWN1dGlvbkxpbmUoY2FsbEZyYW1lLnVpTG9jYXRp
b24oKSk7CisgICAgICAgIGNhbGxGcmFtZS5jcmVhdGVMaXZlTG9jYXRpb24odGhpcy5fc2V0RXhl
Y3V0aW9uTGluZS5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAgX2VkaXRvckNsb3NlZDogZnVu
Y3Rpb24oZXZlbnQpCkBAIC05MTcsOCArOTIwLDE1IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwucHJvdG90eXBlID0gewogCiAgICAgX3VpU291cmNlQ29kZUZvcm1hdHRlZDogZnVuY3Rpb24o
dWlTb3VyY2VDb2RlKQogICAgIHsKLSAgICAgICAgaWYgKHVpU291cmNlQ29kZSBpbnN0YW5jZW9m
IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlKQorICAgICAgICBpZiAodWlTb3VyY2VDb2Rl
IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UpIHsKICAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5icmVha3BvaW50TWFuYWdlci5yZXN0b3JlQnJlYWtwb2ludHModWlTb3Vy
Y2VDb2RlKTsKKyAgICAgICAgICAgIHZhciBjYWxsRnJhbWUgPSBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5zZWxlY3RlZENhbGxGcmFtZSgpOworICAgICAgICAgICAgaWYgKGNhbGxGcmFtZSkg
eworICAgICAgICAgICAgICAgIHZhciB1aUxvY2F0aW9uID0gY2FsbEZyYW1lLnVpTG9jYXRpb24o
KTsKKyAgICAgICAgICAgICAgICBpZiAodWlMb2NhdGlvbi51aVNvdXJjZUNvZGUgPT09IHVpU291
cmNlQ29kZSkKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmV2ZWFsRXhlY3V0aW9uTGluZShj
YWxsRnJhbWUudWlMb2NhdGlvbigpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0s
CiAKICAgICBfdG9nZ2xlRm9ybWF0U291cmNlOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzCmluZGV4IGJjZGNhNDli
NjhkM2NkZGVkYzU4NDEyZjA0YmRjMjBiN2JmNWUxZWMuLmQ5YTk3Mzc5MmM1YjkwMDY2M2ExYjM4
MDU4N2FhYjY0YWVhOGVkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzCkBAIC00ODUsNyArNDg1LDcgQEAgV2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgZm9ybWF0dGVkOiBmdW5j
dGlvbigpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0dGVkOworICAgICAgICBy
ZXR1cm4gISF0aGlzLl9mb3JtYXR0ZWQ7CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3Jrc3BhY2UuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtzcGFjZS5qcwppbmRleCAwYjZmOTQ0NDMz
NDUyNDE5MzY0YjE4OWNlODY3NjU3NDIzMjQzMDI2Li5mYmJmZGQ0YzZkNzA3ZDE2ZGI2ODJhNzI5
NmQyMzI0Njg3ODZjZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1dvcmtzcGFjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1dvcmtzcGFjZS5qcwpAQCAtMTM1LDYgKzEzNSw3IEBAIFdlYkluc3BlY3Rvci5Xb3Jrc3Bh
Y2UgPSBmdW5jdGlvbigpCiAKIFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzID0gewogICAg
IFVJU291cmNlQ29kZUNvbnRlbnRDb21taXR0ZWQ6ICJVSVNvdXJjZUNvZGVDb250ZW50Q29tbWl0
dGVkIiwKKyAgICBVSVNvdXJjZUNvZGVBdHRyaWJ1dGVDaGFuZ2VkOiAiVUlTb3VyY2VDb2RlQXR0
cmlidXRlQ2hhbmdlZCIsCiAgICAgUHJvamVjdFdpbGxSZXNldDogIlByb2plY3RXaWxsUmVzZXQi
LAogICAgIFByb2plY3REaWRSZXNldDogIlByb2plY3REaWRSZXNldCIKIH0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzZWYx
YWQ0YWY5NzI2ODk5ZGRhNTYwMDM3MDllODIzNTUzMWE2ODI0Li44ZmFiNjRiZmNhMjA5NGE3MDkx
YmFmY2Y2ZDkxMTI0YjBkODRiZGE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTAtMDQg
IFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogV2hlbiB1aVNvdXJjZUNvZGUgY29udGVudCBoYXMgZGl2ZXJnZWQgZnJvbSBWTSBz
Y3JpcHQsIGNhbGwgZnJhbWVzIHNob3VsZCBiZSBzaG93biBpbiB0ZW1wb3Jhcnkgc2NyaXB0IGJh
c2VkIHVpU291cmNlQ29kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05ODM4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0LXRhZy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBw
aW5nLWV4cGVjdGVkLnR4dDoKKwogMjAxMi0xMC0wMyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50IHNob3VsZCByZXNw
ZWN0IG1pbi9tYXggdmFsdWVzIHNwZWNpZmllZCBieSBwYWdlIGF1dGhvcnMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10YWctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0LXRh
Zy1leHBlY3RlZC50eHQKaW5kZXggNWQ1OTkxYzIyNmNkM2JkZjA5ZWM5ZTFjMjkyNDc2YjZhMDRj
NWMwYi4uN2FmMmMxYWJlYTNmZjUxZDBiNTYxMzAyYzlhNGEyNjc2YzVmODJlNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0LXRhZy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2Ny
aXB0LXRhZy1leHBlY3RlZC50eHQKQEAgLTEwLDEyICsxMCwxMiBAQCBJcyBhbm9ueW1vdXM6ZmFs
c2UKIElzIGlubGluZSBzY3JpcHQ6ZmFsc2UKIER1bXBpbmcgdWlTb3VyY2VDb2RlczoKIFVJU291
cmNlQ29kZTogCi1VSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IHRydWUKK1VJU291cmNlQ29kZSBp
cyBlZGl0YWJsZTogZmFsc2UKIFVJU291cmNlQ29kZSBpcyBjb250ZW50IHNjcmlwdDogZmFsc2UK
IE1pbWUgdHlwZTogdGV4dC9qYXZhc2NyaXB0CiBVSVNvdXJjZUNvZGUgY29udGVudDogZnVuY3Rp
b24gZm9vKCkgeyB9CiBVSVNvdXJjZUNvZGU6IAotVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiB0
cnVlCitVSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IGZhbHNlCiBVSVNvdXJjZUNvZGUgaXMgY29u
dGVudCBzY3JpcHQ6IGZhbHNlCiBNaW1lIHR5cGU6IHRleHQvamF2YXNjcmlwdAogVUlTb3VyY2VD
b2RlIGNvbnRlbnQ6IGZ1bmN0aW9uIGJhcigpIHsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy1l
eHBlY3RlZC50eHQKaW5kZXggYWZhOWMyMTE2ZjhhMzViZjY4NzA5YTU1MThkNDY0NDBjNWU2MzY4
My4uNzEwODk2ZTcwMTIxM2U5YjFhMTQwNmU2ZTJiYTMwZmNmYjZhODY0ZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Ut
c2NyaXB0LW1hcHBpbmctZXhwZWN0ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBUZXN0cyBSZXNvdXJj
ZVNjcmlwdE1hcHBpbmcgY2xhc3MuCiBSdW5uaW5nOiB0ZXN0U2NyaXB0V2l0aFBlbmRpbmdSZXNv
dXJjZQogQWRkaW5nIHNjcmlwdCBmb3IgcGVuZGluZyByZXF1ZXN0LgogVUlTb3VyY2VDb2RlOiBm
b28uanMKLVVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogdHJ1ZQorVUlTb3VyY2VDb2RlIGlzIGVk
aXRhYmxlOiBmYWxzZQogVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiB0cnVlCiBNaW1l
IHR5cGU6IHRleHQvamF2YXNjcmlwdAogVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxjb250ZW50IHNj
cmlwdCBzb3VyY2U+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167107</attachid>
            <date>2012-10-04 08:07:43 -0700</date>
            <delta_ts>2012-10-04 08:11:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98385-20121004190653.patch</filename>
            <type>text/plain</type>
            <size>23636</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmUxMmRhMWRjZTg3ODZh
M2FmNDM1NjIwZmZlZDRmZTI1N2Y4MjY4OC4uYzRlNjIzZTY3ZDYyYWM0MDlkZmMzOGFmNDhkNzc2
ZWFlMWYwMmExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ2IEBACiAyMDEyLTEwLTA0ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFdoZW4gdWlTb3VyY2VDb2RlIGNvbnRlbnQgaGFzIGRpdmVyZ2VkIGZyb20gVk0gc2NyaXB0
LCBjYWxsIGZyYW1lcyBzaG91bGQgYmUgc2hvd24gaW4gdGVtcG9yYXJ5IHNjcmlwdCBiYXNlZCB1
aVNvdXJjZUNvZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTgzODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXaGVuIGphdmFTY3JpcHRTb3VyY2UgZGl2ZXJnZXMgZnJvbSBWTSwgUmVzb3VyY2VTY3Jp
cHRNYXBwaW5nIG5vdyBzd2l0Y2hlcyBkZWJ1Z2dpbmcKKyAgICAgICAgdG8gdGVtcG9yYXJ5IFZN
IHNjcmlwdHMgYmFzZWQgdWlTb3VyY2VDb2RlIHdpdGggaXNEaXZlcmdlZFJlcGxhY2VtZW50IHBy
b3BlcnR5IHNldC4KKyAgICAgICAgQWRkZWQgaGFzRGl2ZXJnZWRGcm9tVk0gYW5kIGlzRGl2ZXJn
aW5nRnJvbVZNIHByb3BlcnRpZXMgdG8gSmF2YVNjcmlwdFNvdXJjZS4KKyAgICAgICAgSmF2YVNj
cmlwdFNvdXJjZUZyYW1lIGFuZCBTY3JpcHRTbmlwcGV0c01vZGVsIGFyZSB1cGRhdGVkIHRvIHBy
b2Nlc3MgYnJlYWtwb2ludCBjaGFuZ2VzIGNvcnJlY3RseS4KKworICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
QnJlYWtwb2ludE1hbmFnZXIucHJvdG90eXBlLnJlc3RvcmVCcmVha3BvaW50cyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJvdG90eXBlLl91aVNvdXJjZUNvZGVS
ZW1vdmVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2Uu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZS5wcm90b3R5cGUud29y
a2luZ0NvcHlDb21taXR0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3Vy
Y2UucHJvdG90eXBlLndvcmtpbmdDb3B5Q2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
SmF2YVNjcmlwdFNvdXJjZS5wcm90b3R5cGUuZmlyZUhhc0RpdmVyZ2VkRnJvbVZNQ2hhbmdlZCk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlRnJhbWUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZS5j
b21taXRFZGl0aW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJh
bWUucHJvdG90eXBlLl9oYXNEaXZlcmdlZEZyb21WTSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
SmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZS5vblRleHRDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlLl9nZXRCcmVha3Bv
aW50RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VG
cmFtZS5wcm90b3R5cGUuX211dGVCcmVha3BvaW50c1doaWxlRWRpdGluZyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZS5fZGlkRWRpdENvbnRl
bnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5
cGUuX3Jlc3RvcmVCcmVha3BvaW50c0FmdGVyRWRpdGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZS5fYWRkQnJlYWtwb2ludERlY29yYXRp
b24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5n
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5
cGUucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291
cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX2hhc0RpdmVyZ2VkRnJvbVZNQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fYmlu
ZFVJU291cmNlQ29kZVRvU2NyaXB0cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VT
Y3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fZ2V0T3JDcmVhdGVUZW1wb3JhcnlVSVNvdXJjZUNvZGUp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1vZGVsLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUuX2NyZWF0
ZVVJU291cmNlQ29kZUZvclNjcmlwdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0U25p
cHBldE1vZGVsLnByb3RvdHlwZS5fcmVzdG9yZUJyZWFrcG9pbnRzKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwucHJvdG90eXBlLl9yZXZlYWxFeGVjdXRpb25MaW5lKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGUucHJvdG90eXBlLmZvcm1hdHRlZCk6CisKKzIwMTItMTAtMDQgIFZzZXZv
bG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogU2NyaXB0cyBwYW5lbCBzaG91bGQgbm90IGF1dG9tYXRpY2FsbHkgc3dpdGNoIHRvIHNuaXBw
ZXQgZXZhbHVhdGlvbiB3aGVuIHByZXZpb3VzbHkgZXZhbHVhdGVkIHNuaXBwZXQgaXMgZWRpdGVk
LgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg0MDIK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3Bv
aW50TWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtw
b2ludE1hbmFnZXIuanMKaW5kZXggM2I3ZTZkN2RjMzUyOThjYjA4MzQwNWY5OWYyM2Y1YWMyYjQ1
YzJhYi4uMDI4YmRkZDNkNDYzYzE1N2ZkZjg3OGMwNGY1ZTc4ODlkZWRjNmJlMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5h
Z2VyLmpzCkBAIC04Niw2ICs4Niw3IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB0aGlz
Ll9kZWJ1Z2dlck1vZGVsLnJlbW92ZUJyZWFrcG9pbnQoZGVidWdnZXJJZCk7CiAgICAgICAgICAg
ICBkZWxldGUgdGhpcy5fYnJlYWtwb2ludEZvckRlYnVnZ2VySWRbZGVidWdnZXJJZF07CisgICAg
ICAgICAgICBkZWxldGUgYnJlYWtwb2ludC5fZGVidWdnZXJJZDsKICAgICAgICAgfQogICAgICAg
ICB0aGlzLl9zdG9yYWdlLl9yZXN0b3JlQnJlYWtwb2ludHModWlTb3VyY2VDb2RlKTsKICAgICB9
LApAQCAtMTA4LDYgKzEwOSw4IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSAvKiogQHR5cGUge1dlYkluc3Bl
Y3Rvci5VSVNvdXJjZUNvZGV9ICovIGV2ZW50LmRhdGE7CiAgICAgICAgIGlmICghKHVpU291cmNl
Q29kZSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlKSkKICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgaWYgKHVpU291cmNlQ29kZS5pc0RpdmVyZ2VkUmVwbGFjZW1l
bnQpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgICAgICB2YXIgc291cmNlRmls
ZUlkID0gV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLmJyZWFrcG9pbnRTdG9yYWdlSWQo
dWlTb3VyY2VDb2RlKTsKICAgICAgICAgaWYgKCFzb3VyY2VGaWxlSWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2UuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2UuanMKaW5k
ZXggNWE2MGU3ZWZmNTJkMGUyOGJkYjJjN2JiZGQwNWM2ZDQyMmVjMDhjYS4uNTQzM2E3YTUxYzQ3
ZGNjNmMzMmYyYTg4MmMyM2U0NThhNGIyNjk4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJjZS5qcwpAQCAtNDAsNiArNDAs
MTAgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UgPSBmdW5jdGlvbih1cmwsIGNvbnRl
bnRQcm92aWRlciwgaXNFZGl0YWJsZSkKICAgICBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLmNh
bGwodGhpcywgdXJsLCBjb250ZW50UHJvdmlkZXIsIGlzRWRpdGFibGUpOwogfQogCitXZWJJbnNw
ZWN0b3IuSmF2YVNjcmlwdFNvdXJjZS5FdmVudHMgPSB7CisgICAgSGFzRGl2ZXJnZWRGcm9tVk1D
aGFuZ2VkOiAiSGFzRGl2ZXJnZWRGcm9tVk1DaGFuZ2VkIgorfQorCiBXZWJJbnNwZWN0b3IuSmF2
YVNjcmlwdFNvdXJjZS5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtmdW5j
dGlvbig/c3RyaW5nKX0gY2FsbGJhY2sKQEAgLTU1LDYgKzU5LDcgQEAgV2ViSW5zcGVjdG9yLkph
dmFTY3JpcHRTb3VyY2UucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHRoaXMuaGFzRGl2
ZXJnZWRGcm9tVk0gPSB0cnVlOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGRl
bGV0ZSB0aGlzLmhhc0RpdmVyZ2VkRnJvbVZNOworICAgICAgICAgICAgdGhpcy5maXJlSGFzRGl2
ZXJnZWRGcm9tVk1DaGFuZ2VkKCk7CiAKICAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yKTsKICAg
ICAgICAgfQpAQCAtNjQsNyArNjksMTkgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2Uu
cHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIHZh
ciBzY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JJZChyYXdMb2Nh
dGlvbi5zY3JpcHRJZCk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNldFNj
cmlwdFNvdXJjZShzY3JpcHQuc2NyaXB0SWQsIHRoaXMud29ya2luZ0NvcHkoKSwgaW5uZXJDYWxs
YmFjayk7CisgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNldFNjcmlwdFNvdXJj
ZShzY3JpcHQuc2NyaXB0SWQsIHRoaXMud29ya2luZ0NvcHkoKSwgaW5uZXJDYWxsYmFjay5iaW5k
KHRoaXMpKTsKKyAgICB9LAorCisgICAgd29ya2luZ0NvcHlDaGFuZ2VkOiBmdW5jdGlvbigpCisg
ICAgeworICAgICAgICB0aGlzLmZpcmVIYXNEaXZlcmdlZEZyb21WTUNoYW5nZWQoKTsKKyAgICB9
LAorCisgICAgZmlyZUhhc0RpdmVyZ2VkRnJvbVZNQ2hhbmdlZDogZnVuY3Rpb24oKQorICAgIHsK
KyAgICAgICAgdGhpcy5pc0RpdmVyZ2luZ0Zyb21WTSA9IHRydWU7CisgICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlLkV2ZW50
cy5IYXNEaXZlcmdlZEZyb21WTUNoYW5nZWQsIHRoaXMpOworICAgICAgICBkZWxldGUgdGhpcy5p
c0RpdmVyZ2luZ0Zyb21WTTsKICAgICB9LAogCiAgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlLnByb3RvdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlRnJhbWUuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2VGcmFtZS5qcwppbmRleCA2NmZiYzQ2
MGU5OTUwYjkxYWJlNWY0MTkzN2YyNDViZjBjOWE3YWNmLi5mOGYyYmIzZDM1NWNlMDkxNTRkM2Iy
MzkxMjBhMGRjYmZhM2M4MmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2VGcmFtZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2VGcmFtZS5qcwpAQCAtOTIsNyArOTIs
OCBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB0aGlzLl9pc0NvbW1pdHRpbmdFZGl0aW5nID0g
dHJ1ZTsKLSAgICAgICAgdGhpcy5famF2YVNjcmlwdFNvdXJjZS5jb21taXRXb3JraW5nQ29weSh0
aGlzLl9kaWRFZGl0Q29udGVudC5iaW5kKHRoaXMpKTsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnRz
ID0gdGhpcy5fZ2V0QnJlYWtwb2ludERlY29yYXRpb25zKCk7CisgICAgICAgIHRoaXMuX2phdmFT
Y3JpcHRTb3VyY2UuY29tbWl0V29ya2luZ0NvcHkodGhpcy5fZGlkRWRpdENvbnRlbnQuYmluZCh0
aGlzLCBicmVha3BvaW50cykpOwogICAgICAgICBkZWxldGUgdGhpcy5faXNDb21taXR0aW5nRWRp
dGluZzsKICAgICB9LAogCkBAIC0xNDksMTIgKzE1MCw1NiBAQCBXZWJJbnNwZWN0b3IuSmF2YVNj
cmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5k
QXBwbGljYWJsZUl0ZW1zKHRoaXMuX2phdmFTY3JpcHRTb3VyY2UpOwogICAgIH0sCiAKKyAgICBf
aGFzRGl2ZXJnZWRGcm9tVk06IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
Ll9qYXZhU2NyaXB0U291cmNlLmlzRGlydHkoKSB8fCB0aGlzLl9qYXZhU2NyaXB0U291cmNlLmhh
c0RpdmVyZ2VkRnJvbVZNOworICAgIH0sCisKICAgICBvblRleHRDaGFuZ2VkOiBmdW5jdGlvbihv
bGRSYW5nZSwgbmV3UmFuZ2UpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuU291cmNlRnJh
bWUucHJvdG90eXBlLm9uVGV4dENoYW5nZWQuY2FsbCh0aGlzLCBvbGRSYW5nZSwgbmV3UmFuZ2Up
OwotICAgICAgICB0aGlzLl9yZW1vdmVCcmVha3BvaW50c0JlZm9yZUVkaXRpbmcoKTsKKworICAg
ICAgICB2YXIgd2FzRGl2ZXJnZWQgPSB0aGlzLl9oYXNEaXZlcmdlZEZyb21WTSgpOworCisgICAg
ICAgIHRoaXMuX3ByZXNlcnZlRGVjb3JhdGlvbnMgPSB0cnVlOwogICAgICAgICB0aGlzLl9qYXZh
U2NyaXB0U291cmNlLnNldFdvcmtpbmdDb3B5KHRoaXMuX3RleHRFZGl0b3IudGV4dCgpKTsKLSAg
ICAgICAgdGhpcy5fcmVzdG9yZUJyZWFrcG9pbnRzQWZ0ZXJFZGl0aW5nKCk7CisgICAgICAgIGRl
bGV0ZSB0aGlzLl9wcmVzZXJ2ZURlY29yYXRpb25zOworCisgICAgICAgIGlmICh0aGlzLl9zdXBw
b3J0c0VuYWJsZWRCcmVha3BvaW50c1doaWxlRWRpdGluZygpKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIHZhciBpc0RpdmVyZ2VkID0gdGhpcy5faGFzRGl2ZXJnZWRGcm9tVk0oKTsK
KyAgICAgICAgaWYgKCF3YXNEaXZlcmdlZCAmJiBpc0RpdmVyZ2VkKQorICAgICAgICAgICAgdGhp
cy5fbXV0ZUJyZWFrcG9pbnRzV2hpbGVFZGl0aW5nKCk7CisgICAgICAgIGVsc2UgaWYgKHdhc0Rp
dmVyZ2VkICYmICFpc0RpdmVyZ2VkKSB7CisgICAgICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSB0
aGlzLl9nZXRCcmVha3BvaW50RGVjb3JhdGlvbnMoKTsKKyAgICAgICAgICAgIHRoaXMuX3Jlc3Rv
cmVCcmVha3BvaW50c0FmdGVyRWRpdGluZyhicmVha3BvaW50cyk7CisgICAgICAgIH0KKyAgICB9
LAorCisgICAgX2dldEJyZWFrcG9pbnREZWNvcmF0aW9uczogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgdmFyIGJyZWFrcG9pbnRzID0ge307CisgICAgICAgIC8vIFJlc3RvcmUgYWxsIG11dGVk
IGJyZWFrcG9pbnRzLgorICAgICAgICBmb3IgKHZhciBsaW5lTnVtYmVyID0gMDsgbGluZU51bWJl
ciA8IHRoaXMuX3RleHRFZGl0b3IubGluZXNDb3VudDsgKytsaW5lTnVtYmVyKSB7CisgICAgICAg
ICAgICB2YXIgYnJlYWtwb2ludERlY29yYXRpb24gPSB0aGlzLl90ZXh0RWRpdG9yLmdldEF0dHJp
YnV0ZShsaW5lTnVtYmVyLCAiYnJlYWtwb2ludCIpOworICAgICAgICAgICAgaWYgKGJyZWFrcG9p
bnREZWNvcmF0aW9uKQorICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRzW2xpbmVOdW1iZXJdID0g
YnJlYWtwb2ludERlY29yYXRpb247CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYnJlYWtw
b2ludHM7CisgICAgfSwKKworICAgIF9tdXRlQnJlYWtwb2ludHNXaGlsZUVkaXRpbmc6IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBicmVha3BvaW50cyA9IHRoaXMuX2dldEJyZWFrcG9p
bnREZWNvcmF0aW9ucygpOworICAgICAgICBmb3IgKHZhciBsaW5lTnVtYmVyID0gMDsgbGluZU51
bWJlciA8IHRoaXMuX3RleHRFZGl0b3IubGluZXNDb3VudDsgKytsaW5lTnVtYmVyKSB7CisgICAg
ICAgICAgICB2YXIgYnJlYWtwb2ludERlY29yYXRpb24gPSB0aGlzLl90ZXh0RWRpdG9yLmdldEF0
dHJpYnV0ZShsaW5lTnVtYmVyLCAiYnJlYWtwb2ludCIpOworICAgICAgICAgICAgaWYgKCFicmVh
a3BvaW50RGVjb3JhdGlvbikKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg
IHRoaXMuX3JlbW92ZUJyZWFrcG9pbnREZWNvcmF0aW9uKGxpbmVOdW1iZXIpOworICAgICAgICAg
ICAgdGhpcy5fYWRkQnJlYWtwb2ludERlY29yYXRpb24obGluZU51bWJlciwgYnJlYWtwb2ludERl
Y29yYXRpb24uY29uZGl0aW9uLCBicmVha3BvaW50RGVjb3JhdGlvbi5lbmFibGVkLCB0cnVlKTsK
KyAgICAgICAgfQogICAgIH0sCiAKICAgICBfc3VwcG9ydHNFbmFibGVkQnJlYWtwb2ludHNXaGls
ZUVkaXRpbmc6IGZ1bmN0aW9uKCkKQEAgLTE2Miw1MiArMjA3LDM3IEBAIFdlYkluc3BlY3Rvci5K
YXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5f
amF2YVNjcmlwdFNvdXJjZS5pc1NuaXBwZXQ7CiAgICAgfSwKIAotICAgIF9kaWRFZGl0Q29udGVu
dDogZnVuY3Rpb24oZXJyb3IpCisgICAgX2RpZEVkaXRDb250ZW50OiBmdW5jdGlvbihicmVha3Bv
aW50cywgZXJyb3IpCiAgICAgeworICAgICAgICBpZiAoIXRoaXMuX3N1cHBvcnRzRW5hYmxlZEJy
ZWFrcG9pbnRzV2hpbGVFZGl0aW5nKCkpCisgICAgICAgICAgICB0aGlzLl9yZXN0b3JlQnJlYWtw
b2ludHNBZnRlckVkaXRpbmcoYnJlYWtwb2ludHMpOworCiAgICAgICAgIGlmIChlcnJvcikgewog
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dFcnJvck1lc3NhZ2UoZXJyb3IpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGlmICghdGhpcy5fc3VwcG9ydHNFbmFi
bGVkQnJlYWtwb2ludHNXaGlsZUVkaXRpbmcoKSkKLSAgICAgICAgICAgIHRoaXMuX3Jlc3RvcmVC
cmVha3BvaW50c0FmdGVyRWRpdGluZygpOwogICAgIH0sCiAKLSAgICBfcmVtb3ZlQnJlYWtwb2lu
dHNCZWZvcmVFZGl0aW5nOiBmdW5jdGlvbigpCisgICAgX3Jlc3RvcmVCcmVha3BvaW50c0FmdGVy
RWRpdGluZzogZnVuY3Rpb24oYnJlYWtwb2ludHMpCiAgICAgewotICAgICAgICB2YXIgc3VwcG9y
dHNCcmVha3BvaW50c09uRWRpdCA9IHRoaXMuX3N1cHBvcnRzRW5hYmxlZEJyZWFrcG9pbnRzV2hp
bGVFZGl0aW5nKCk7Ci0gICAgICAgIGlmICghdGhpcy5famF2YVNjcmlwdFNvdXJjZS5pc0RpcnR5
KCkgfHwgc3VwcG9ydHNCcmVha3BvaW50c09uRWRpdCkgewotICAgICAgICAgICAgLy8gRGlzYWJs
ZSBhbGwgYnJlYWtwb2ludHMgaW4gdGhlIG1vZGVsLCBzdG9yZSB0aGVtIGFzIG11dGVkIGJyZWFr
cG9pbnRzLgotICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRMb2NhdGlvbnMgPSB0aGlzLl9icmVh
a3BvaW50TWFuYWdlci5icmVha3BvaW50TG9jYXRpb25zRm9yVUlTb3VyY2VDb2RlKHRoaXMuX2ph
dmFTY3JpcHRTb3VyY2UpOwotICAgICAgICAgICAgdmFyIGxpbmVOdW1iZXJzID0ge307Ci0gICAg
ICAgICAgICB0aGlzLl9wcmVzZXJ2ZURlY29yYXRpb25zID0gdHJ1ZTsKLSAgICAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgYnJlYWtwb2ludExvY2F0aW9ucy5sZW5ndGg7ICsraSkgewotICAg
ICAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0gYnJlYWtwb2ludExvY2F0aW9uc1tpXS5icmVh
a3BvaW50OwotICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRMb2NhdGlvbnNbaV0uYnJlYWtwb2lu
dC5yZW1vdmUoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9wcmVz
ZXJ2ZURlY29yYXRpb25zOwotCi0gICAgICAgICAgICBmb3IgKHZhciBsaW5lTnVtYmVyID0gMDsg
bGluZU51bWJlciA8IHRoaXMuX3RleHRFZGl0b3IubGluZXNDb3VudDsgKytsaW5lTnVtYmVyKSB7
Ci0gICAgICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnREZWNvcmF0aW9uID0gdGhpcy5fdGV4dEVk
aXRvci5nZXRBdHRyaWJ1dGUobGluZU51bWJlciwgImJyZWFrcG9pbnQiKTsKLSAgICAgICAgICAg
ICAgICBpZiAoYnJlYWtwb2ludERlY29yYXRpb24pCi0gICAgICAgICAgICAgICAgICAgIHRoaXMu
X2FkZEJyZWFrcG9pbnREZWNvcmF0aW9uKGxpbmVOdW1iZXIsIGJyZWFrcG9pbnREZWNvcmF0aW9u
LmNvbmRpdGlvbiwgYnJlYWtwb2ludERlY29yYXRpb24uZW5hYmxlZCwgIXN1cHBvcnRzQnJlYWtw
b2ludHNPbkVkaXQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGhpcy5jbGVhckV4ZWN1
dGlvbkxpbmUoKTsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnRMb2NhdGlvbnMgPSB0aGlzLl9icmVh
a3BvaW50TWFuYWdlci5icmVha3BvaW50TG9jYXRpb25zRm9yVUlTb3VyY2VDb2RlKHRoaXMuX2ph
dmFTY3JpcHRTb3VyY2UpOworICAgICAgICB2YXIgbGluZU51bWJlcnMgPSB7fTsKKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBicmVha3BvaW50TG9jYXRpb25zLmxlbmd0aDsgKytpKSB7Cisg
ICAgICAgICAgICB2YXIgYnJlYWtwb2ludCA9IGJyZWFrcG9pbnRMb2NhdGlvbnNbaV0uYnJlYWtw
b2ludDsKKyAgICAgICAgICAgIGJyZWFrcG9pbnRMb2NhdGlvbnNbaV0uYnJlYWtwb2ludC5yZW1v
dmUoKTsKICAgICAgICAgfQotICAgIH0sCiAKLSAgICBfcmVzdG9yZUJyZWFrcG9pbnRzQWZ0ZXJF
ZGl0aW5nOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2phdmFTY3JpcHRT
b3VyY2UuaXNEaXJ0eSgpIHx8IHRoaXMuX3N1cHBvcnRzRW5hYmxlZEJyZWFrcG9pbnRzV2hpbGVF
ZGl0aW5nKCkpIHsKLSAgICAgICAgICAgIC8vIFJlc3RvcmUgYWxsIG11dGVkIGJyZWFrcG9pbnRz
LgotICAgICAgICAgICAgZm9yICh2YXIgbGluZU51bWJlciA9IDA7IGxpbmVOdW1iZXIgPCB0aGlz
Ll90ZXh0RWRpdG9yLmxpbmVzQ291bnQ7ICsrbGluZU51bWJlcikgewotICAgICAgICAgICAgICAg
IHZhciBicmVha3BvaW50RGVjb3JhdGlvbiA9IHRoaXMuX3RleHRFZGl0b3IuZ2V0QXR0cmlidXRl
KGxpbmVOdW1iZXIsICJicmVha3BvaW50Iik7Ci0gICAgICAgICAgICAgICAgaWYgKGJyZWFrcG9p
bnREZWNvcmF0aW9uKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBmYWtlIGRlY29y
YXRpb24KLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQnJlYWtwb2ludERlY29yYXRp
b24obGluZU51bWJlcik7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFNldCBuZXcgYnJlYWtwb2lu
dAotICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXRCcmVha3BvaW50KGxpbmVOdW1iZXIsIGJy
ZWFrcG9pbnREZWNvcmF0aW9uLmNvbmRpdGlvbiwgYnJlYWtwb2ludERlY29yYXRpb24uZW5hYmxl
ZCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBs
aW5lTnVtYmVyID0gMDsgbGluZU51bWJlciA8IHRoaXMuX3RleHRFZGl0b3IubGluZXNDb3VudDsg
KytsaW5lTnVtYmVyKQorICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQnJlYWtwb2ludERlY29yYXRp
b24obGluZU51bWJlcik7CisKKyAgICAgICAgLy8gUmVzdG9yZSBhbGwgbXV0ZWQgYnJlYWtwb2lu
dHMuCisgICAgICAgIGZvciAodmFyIGxpbmVOdW1iZXJTdHJpbmcgaW4gYnJlYWtwb2ludHMpIHsK
KyAgICAgICAgICAgIHZhciBsaW5lTnVtYmVyID0gcGFyc2VJbnQobGluZU51bWJlclN0cmluZywg
MTApOworICAgICAgICAgICAgaWYgKGlzTmFOKGxpbmVOdW1iZXIpKQorICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnREZWNvcmF0aW9uID0gYnJlYWtw
b2ludHNbbGluZU51bWJlclN0cmluZ107CisgICAgICAgICAgICAvLyBTZXQgbmV3IGJyZWFrcG9p
bnQKKyAgICAgICAgICAgIHRoaXMuX3NldEJyZWFrcG9pbnQobGluZU51bWJlciwgYnJlYWtwb2lu
dERlY29yYXRpb24uY29uZGl0aW9uLCBicmVha3BvaW50RGVjb3JhdGlvbi5lbmFibGVkKTsKICAg
ICAgICAgfQogICAgIH0sCiAKQEAgLTMzNiwxMyArMzY2LDE1IEBAIFdlYkluc3BlY3Rvci5KYXZh
U2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAqLwogICAgIF9hZGRCcmVha3Bv
aW50RGVjb3JhdGlvbjogZnVuY3Rpb24obGluZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkLCBt
dXRlZFdoaWxlRWRpdGluZykKICAgICB7CisgICAgICAgIGlmICh0aGlzLl9wcmVzZXJ2ZURlY29y
YXRpb25zKQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB2YXIgYnJlYWtwb2ludCA9IHsK
ICAgICAgICAgICAgIGNvbmRpdGlvbjogY29uZGl0aW9uLAogICAgICAgICAgICAgZW5hYmxlZDog
ZW5hYmxlZAogICAgICAgICB9OwogICAgICAgICB0aGlzLnRleHRFZGl0b3Iuc2V0QXR0cmlidXRl
KGxpbmVOdW1iZXIsICJicmVha3BvaW50IiwgYnJlYWtwb2ludCk7CiAKLSAgICAgICAgdmFyIGRp
c2FibGVkID0gIWVuYWJsZWQgfHwgKG11dGVkV2hpbGVFZGl0aW5nICYmICF0aGlzLl9zdXBwb3J0
c0VuYWJsZWRCcmVha3BvaW50c1doaWxlRWRpdGluZygpKTsKKyAgICAgICAgdmFyIGRpc2FibGVk
ID0gIWVuYWJsZWQgfHwgbXV0ZWRXaGlsZUVkaXRpbmc7CiAgICAgICAgIHRoaXMudGV4dEVkaXRv
ci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIsIGRpc2FibGVkLCAhIWNvbmRpdGlvbik7CiAgICAg
fSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZVNjcmlwdE1hcHBpbmcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlU2NyaXB0TWFwcGluZy5qcwppbmRleCBjM2EzYTA2MzM5YjdkZDY3ZTU0M2ZiNzQ1
OGEyNWEzOWExMjYxZmMxLi4xYjM2ZDNiYTc5ZmY0MWZhNDFjMDk2MzM5NDVkMTY5ZTQwOTVhODMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
U2NyaXB0TWFwcGluZy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlU2NyaXB0TWFwcGluZy5qcwpAQCAtNTMsMTEgKzUzLDI5IEBAIFdlYkluc3BlY3Rv
ci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFy
IGRlYnVnZ2VyTW9kZWxMb2NhdGlvbiA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
TW9kZWwuTG9jYXRpb259ICovIHJhd0xvY2F0aW9uOwogICAgICAgICB2YXIgc2NyaXB0ID0gV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9ySWQoZGVidWdnZXJNb2RlbExvY2F0aW9u
LnNjcmlwdElkKTsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZVVJ
U291cmNlQ29kZUZvclNjcmlwdChzY3JpcHQpIHx8IHRoaXMuX2dldE9yQ3JlYXRlVGVtcG9yYXJ5
VUlTb3VyY2VDb2RlKHNjcmlwdCk7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl93
b3Jrc3BhY2VVSVNvdXJjZUNvZGVGb3JTY3JpcHQoc2NyaXB0KTsKKyAgICAgICAgaWYgKCF1aVNv
dXJjZUNvZGUpCisgICAgICAgICAgICB1aVNvdXJjZUNvZGUgPSB0aGlzLl9nZXRPckNyZWF0ZVRl
bXBvcmFyeVVJU291cmNlQ29kZShzY3JpcHQpOworICAgICAgICBlbHNlIGlmICh1aVNvdXJjZUNv
ZGUuaXNEaXJ0eSgpIHx8IHVpU291cmNlQ29kZS5oYXNEaXZlcmdlZEZyb21WTSkgeworICAgICAg
ICAgICAgdWlTb3VyY2VDb2RlID0gdGhpcy5fZ2V0T3JDcmVhdGVUZW1wb3JhcnlVSVNvdXJjZUNv
ZGUoc2NyaXB0KTsKKyAgICAgICAgICAgIHVpU291cmNlQ29kZS5pc0RpdmVyZ2VkUmVwbGFjZW1l
bnQgPSB0cnVlOworICAgICAgICB9CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCEhdWlTb3VyY2VD
b2RlKTsKICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuVUlMb2NhdGlvbih1aVNvdXJj
ZUNvZGUsIGRlYnVnZ2VyTW9kZWxMb2NhdGlvbi5saW5lTnVtYmVyLCBkZWJ1Z2dlck1vZGVsTG9j
YXRpb24uY29sdW1uTnVtYmVyIHx8IDApOwogICAgIH0sCiAKKyAgICBfaGFzRGl2ZXJnZWRGcm9t
Vk1DaGFuZ2VkOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHZhciB1aVNvdXJjZUNv
ZGUgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9ICovIGV2ZW50LmRhdGE7
CisgICAgICAgIHZhciBzY3JpcHRzID0gdGhpcy5fc2NyaXB0c0ZvclVJU291cmNlQ29kZSh1aVNv
dXJjZUNvZGUpOworICAgICAgICBpZiAoIXNjcmlwdHMubGVuZ3RoKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyArK2kpCisg
ICAgICAgICAgICBzY3JpcHRzW2ldLnNldFNvdXJjZU1hcHBpbmcodGhpcyk7CisgICAgICAgIGlm
ICghdWlTb3VyY2VDb2RlLmlzRGlydHkoKSAmJiAhdWlTb3VyY2VDb2RlLmhhc0RpdmVyZ2VkRnJv
bVZNKQorICAgICAgICAgICAgdGhpcy5fZGVsZXRlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlRm9yU2Ny
aXB0cyhzY3JpcHRzKTsKKyAgICB9LAorCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuU2NyaXB0fSBzY3JpcHQKICAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuVUlTb3Vy
Y2VDb2RlfQpAQCAtMTI5LDYgKzE0Nyw5IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1h
cHBpbmcucHJvdG90eXBlID0gewogICAgICAgICAgICAgc2NyaXB0c1tpXS5zZXRTb3VyY2VNYXBw
aW5nKHRoaXMpOwogICAgICAgICB1aVNvdXJjZUNvZGUuaXNDb250ZW50U2NyaXB0ID0gc2NyaXB0
c1swXS5pc0NvbnRlbnRTY3JpcHQ7CiAgICAgICAgIHVpU291cmNlQ29kZS5zZXRTb3VyY2VNYXBw
aW5nKHRoaXMpOworICAgICAgICBpZiAoIXVpU291cmNlQ29kZS5pc1RlbXBvcmFyeSkKKyAgICAg
ICAgICAgIHVpU291cmNlQ29kZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5KYXZhU2Ny
aXB0U291cmNlLkV2ZW50cy5IYXNEaXZlcmdlZEZyb21WTUNoYW5nZWQsIHRoaXMuX2hhc0RpdmVy
Z2VkRnJvbVZNQ2hhbmdlZCwgdGhpcyk7CisKICAgICB9LAogCiAgICAgLyoqCkBAIC0xNzIsNyAr
MTkzLDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHZhciBjb250ZW50UHJvdmlkZXIgPSBzY3JpcHQuaXNJbmxpbmVTY3JpcHQoKSA/
IG5ldyBXZWJJbnNwZWN0b3IuQ29uY2F0ZW5hdGVkU2NyaXB0c0NvbnRlbnRQcm92aWRlcihzY3Jp
cHRzKSA6IHNjcmlwdDsKICAgICAgICAgdmFyIGlzRHluYW1pY1NjcmlwdCA9IHRoaXMuX2lzRHlu
YW1pY1NjcmlwdChzY3JpcHQpOwogICAgICAgICB2YXIgdXJsID0gaXNEeW5hbWljU2NyaXB0ID8g
IiIgOiBzY3JpcHQuc291cmNlVVJMOwotICAgICAgICB0ZW1wb3JhcnlVSVNvdXJjZUNvZGUgPSBu
ZXcgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UodXJsLCBjb250ZW50UHJvdmlkZXIsICFz
Y3JpcHQuaXNJbmxpbmVTY3JpcHQoKSk7CisgICAgICAgIHRlbXBvcmFyeVVJU291cmNlQ29kZSA9
IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZSh1cmwsIGNvbnRlbnRQcm92aWRlciwg
ZmFsc2UpOwogICAgICAgICB0ZW1wb3JhcnlVSVNvdXJjZUNvZGUuaXNUZW1wb3JhcnkgPSB0cnVl
OwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyArK2kpCiAgICAg
ICAgICAgICB0aGlzLl90ZW1wb3JhcnlVSVNvdXJjZUNvZGVGb3JTY3JpcHRJZFtzY3JpcHRzW2ld
LnNjcmlwdElkXSA9IHRlbXBvcmFyeVVJU291cmNlQ29kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1vZGVsLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMKaW5kZXgg
MDBkMGM1YmFkY2FhYTIyYTQ1MTExOTdmZjE1M2QwYmMzZjkxYmVmYi4uOWZjMTNjMGU3ZTQ3NjM4
YzBhNGMwZTE3YTQ5YjE0MTg0ZmZjMDVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMKQEAgLTE0Myw4ICsx
NDMsMTAgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgICAgICB2YXIgYnJlYWtwb2ludExvY2F0
aW9ucyA9IHRoaXMuX3JlbW92ZUJyZWFrcG9pbnRzKHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKTsK
LSAgICAgICAgdGhpcy5fcmVsZWFzZVNuaXBwZXRTY3JpcHQoc25pcHBldEphdmFTY3JpcHRTb3Vy
Y2UpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fcmVsZWFzZVNuaXBwZXRTY3Jp
cHQoc25pcHBldEphdmFTY3JpcHRTb3VyY2UpOwogICAgICAgICB0aGlzLl9yZXN0b3JlQnJlYWtw
b2ludHMoc25pcHBldEphdmFTY3JpcHRTb3VyY2UsIGJyZWFrcG9pbnRMb2NhdGlvbnMpOworICAg
ICAgICBpZiAodWlTb3VyY2VDb2RlKQorICAgICAgICAgICAgdGhpcy5fcmVzdG9yZUJyZWFrcG9p
bnRzKHVpU291cmNlQ29kZSwgYnJlYWtwb2ludExvY2F0aW9ucyk7CiAgICAgfSwKIAogICAgIC8q
KgpAQCAtMzEzLDYgKzMxNSw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwucHJv
dG90eXBlID0gewogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2NyaXB0
fSBzY3JpcHQKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNv
dXJjZUNvZGUKICAgICAgKi8KICAgICBfY3JlYXRlVUlTb3VyY2VDb2RlRm9yU2NyaXB0OiBmdW5j
dGlvbihzY3JpcHQpCiAgICAgewpAQCAtMzI0LDYgKzMyNyw3IEBAIFdlYkluc3BlY3Rvci5TY3Jp
cHRTbmlwcGV0TW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVG
b3JTY3JpcHRJZFtzY3JpcHQuc2NyaXB0SWRdID0gdWlTb3VyY2VDb2RlOwogICAgICAgICB0aGlz
Ll9zY3JpcHRGb3JVSVNvdXJjZUNvZGUucHV0KHVpU291cmNlQ29kZSwgc2NyaXB0KTsKICAgICAg
ICAgc2NyaXB0LnNldFNvdXJjZU1hcHBpbmcodGhpcy5fc25pcHBldFNjcmlwdE1hcHBpbmcpOwor
ICAgICAgICByZXR1cm4gdWlTb3VyY2VDb2RlOwogICAgIH0sCiAKICAgICAvKioKQEAgLTMzOSwz
NCArMzQzLDM2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwucHJvdG90eXBlID0g
ewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TbmlwcGV0
SmF2YVNjcmlwdFNvdXJjZX0gc25pcHBldEphdmFTY3JpcHRTb3VyY2UKKyAgICAgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQogICAgICAqIEBwYXJhbSB7
QXJyYXkuPE9iamVjdD59IGJyZWFrcG9pbnRMb2NhdGlvbnMKICAgICAgKi8KLSAgICBfcmVzdG9y
ZUJyZWFrcG9pbnRzOiBmdW5jdGlvbihzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSwgYnJlYWtwb2lu
dExvY2F0aW9ucykKKyAgICBfcmVzdG9yZUJyZWFrcG9pbnRzOiBmdW5jdGlvbih1aVNvdXJjZUNv
ZGUsIGJyZWFrcG9pbnRMb2NhdGlvbnMpCiAgICAgewogICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGJyZWFrcG9pbnRMb2NhdGlvbnMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciB1
aUxvY2F0aW9uID0gYnJlYWtwb2ludExvY2F0aW9uc1tpXS51aUxvY2F0aW9uOwogICAgICAgICAg
ICAgdmFyIGJyZWFrcG9pbnQgPSBicmVha3BvaW50TG9jYXRpb25zW2ldLmJyZWFrcG9pbnQ7Ci0g
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludCh1
aUxvY2F0aW9uLnVpU291cmNlQ29kZSwgdWlMb2NhdGlvbi5saW5lTnVtYmVyLCBicmVha3BvaW50
LmNvbmRpdGlvbigpLCBicmVha3BvaW50LmVuYWJsZWQoKSk7CisgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludCh1aVNvdXJjZUNvZGUsIHVpTG9j
YXRpb24ubGluZU51bWJlciwgYnJlYWtwb2ludC5jb25kaXRpb24oKSwgYnJlYWtwb2ludC5lbmFi
bGVkKCkpOwogICAgICAgICB9CiAgICAgfSwKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLlNuaXBwZXRKYXZhU2NyaXB0U291cmNlfSBzbmlwcGV0SmF2YVNjcmlwdFNvdXJj
ZQorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9CiAgICAgICovCiAg
ICAgX3JlbGVhc2VTbmlwcGV0U2NyaXB0OiBmdW5jdGlvbihzbmlwcGV0SmF2YVNjcmlwdFNvdXJj
ZSkKICAgICB7CiAgICAgICAgIHZhciBzY3JpcHQgPSB0aGlzLl9zY3JpcHRGb3JVSVNvdXJjZUNv
ZGUuZ2V0KHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKTsKICAgICAgICAgaWYgKCFzY3JpcHQpCi0g
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKIAogICAgICAgICBz
bmlwcGV0SmF2YVNjcmlwdFNvdXJjZS5pc0RpdmVyZ2luZ0Zyb21WTSA9IHRydWU7CiAgICAgICAg
IHNuaXBwZXRKYXZhU2NyaXB0U291cmNlLmhhc0RpdmVyZ2VkRnJvbVZNID0gdHJ1ZTsKICAgICAg
ICAgZGVsZXRlIHRoaXMuX3VpU291cmNlQ29kZUZvclNjcmlwdElkW3NjcmlwdC5zY3JpcHRJZF07
CiAgICAgICAgIHRoaXMuX3NjcmlwdEZvclVJU291cmNlQ29kZS5yZW1vdmUoc25pcHBldEphdmFT
Y3JpcHRTb3VyY2UpOwogICAgICAgICBkZWxldGUgc25pcHBldEphdmFTY3JpcHRTb3VyY2UuX2V2
YWx1YXRpb25JbmRleDsKLSAgICAgICAgdGhpcy5fY3JlYXRlVUlTb3VyY2VDb2RlRm9yU2NyaXB0
KHNjcmlwdCk7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl9jcmVhdGVVSVNvdXJj
ZUNvZGVGb3JTY3JpcHQoc2NyaXB0KTsKICAgICAgICAgZGVsZXRlIHNuaXBwZXRKYXZhU2NyaXB0
U291cmNlLmlzRGl2ZXJnaW5nRnJvbVZNOworICAgICAgICByZXR1cm4gdWlTb3VyY2VDb2RlOwog
ICAgIH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5kZXggNjRkODQzNzZkZDk3ODdlMDg3NDdlMzFkZjdlZDE5
NjIxMTU5NzE2OS4uYTMzMjRkNjI2NWEwMTI4YmFmMDJkN2I3OTcwZTBmYzgxMzU2NGIxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwu
anMKQEAgLTUwOSw2ICs1MDksOCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIGlmICh0aGlzLl9jdXJyZW50VUlTb3VyY2VDb2RlICYmIHRoaXMu
X2N1cnJlbnRVSVNvdXJjZUNvZGUuaXNEaXZlcmdpbmdGcm9tVk0pCiAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgdGhpcy5fZWRpdG9yQ29udGFpbmVyLmFkZFVJU291cmNlQ29k
ZSh1aVNvdXJjZUNvZGUpOworICAgICAgICAgICAgaWYgKHVpU291cmNlQ29kZS5mb3JtYXR0ZWQo
KSAhPT0gdGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlQnV0dG9uLnRvZ2dsZWQpCisgICAgICAgICAg
ICAgICAgdWlTb3VyY2VDb2RlLnNldEZvcm1hdHRlZCh0aGlzLl90b2dnbGVGb3JtYXRTb3VyY2VC
dXR0b24udG9nZ2xlZCwgdGhpcy5fdWlTb3VyY2VDb2RlRm9ybWF0dGVkLmJpbmQodGhpcywgdWlT
b3VyY2VDb2RlKSk7CiAgICAgICAgIH0KICAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gdGhpcy5f
c2hvd0ZpbGUodWlTb3VyY2VDb2RlKTsKICAgICAgICAgc291cmNlRnJhbWUucmV2ZWFsTGluZSh1
aUxvY2F0aW9uLmxpbmVOdW1iZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcwppbmRleCBiY2RjYTQ5YjY4ZDNjZGRlZGM1ODQxMmYw
NGJkYzIwYjdiZjVlMWVjLi5kOWE5NzM3OTJjNWI5MDA2NjNhMWIzODA1ODdhYWI2NGFlYThlZDMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNl
Q29kZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNl
Q29kZS5qcwpAQCAtNDg1LDcgKzQ4NSw3IEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJv
dG90eXBlID0gewogICAgICAqLwogICAgIGZvcm1hdHRlZDogZnVuY3Rpb24oKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1hdHRlZDsKKyAgICAgICAgcmV0dXJuICEhdGhpcy5fZm9y
bWF0dGVkOwogICAgIH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3MjFkYTgzNTJjM2VkOTA3OTJlNTNh
NjgzMzlmYjBkYmNjMGZjN2RiLi41YzNiZjgyNDNmNjFkMjY0MDI0YzhhODA4NWI5YzRjMmJmNGJi
NmYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTAtMDQgIFZzZXZvbG9kIFZsYXNvdiAg
PHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogV2hlbiB1aVNv
dXJjZUNvZGUgY29udGVudCBoYXMgZGl2ZXJnZWQgZnJvbSBWTSBzY3JpcHQsIGNhbGwgZnJhbWVz
IHNob3VsZCBiZSBzaG93biBpbiB0ZW1wb3Jhcnkgc2NyaXB0IGJhc2VkIHVpU291cmNlQ29kZXMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODM4NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVj
dG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0LXRhZy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dDoK
KwogMjAxMi0xMC0wNCAgw4Fkw6FtIEthbGxhaSAgPGthZGFtQGluZi51LXN6ZWdlZC5odT4KIAog
ICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nIGFmdGVyIHIxMzAzODUuIFNraXAgYSBm
YWlsaW5nIHRlc3QuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
ZHluYW1pYy1zY3JpcHQtdGFnLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10YWctZXhwZWN0ZWQudHh0CmluZGV4IDVkNTk5MWMyMjZj
ZDNiZGYwOWVjOWUxYzI5MjQ3NmI2YTA0YzVjMGIuLjdhZjJjMWFiZWEzZmY1MWQwYjU2MTMwMmM5
YTRhMjY3NmM1ZjgyZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9keW5hbWljLXNjcmlwdC10YWctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10YWctZXhwZWN0ZWQudHh0CkBAIC0xMCwxMiAr
MTAsMTIgQEAgSXMgYW5vbnltb3VzOmZhbHNlCiBJcyBpbmxpbmUgc2NyaXB0OmZhbHNlCiBEdW1w
aW5nIHVpU291cmNlQ29kZXM6CiBVSVNvdXJjZUNvZGU6IAotVUlTb3VyY2VDb2RlIGlzIGVkaXRh
YmxlOiB0cnVlCitVSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IGZhbHNlCiBVSVNvdXJjZUNvZGUg
aXMgY29udGVudCBzY3JpcHQ6IGZhbHNlCiBNaW1lIHR5cGU6IHRleHQvamF2YXNjcmlwdAogVUlT
b3VyY2VDb2RlIGNvbnRlbnQ6IGZ1bmN0aW9uIGZvbygpIHsgfQogVUlTb3VyY2VDb2RlOiAKLVVJ
U291cmNlQ29kZSBpcyBlZGl0YWJsZTogdHJ1ZQorVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiBm
YWxzZQogVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiBmYWxzZQogTWltZSB0eXBlOiB0
ZXh0L2phdmFzY3JpcHQKIFVJU291cmNlQ29kZSBjb250ZW50OiBmdW5jdGlvbiBiYXIoKSB7IH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3Jp
cHQtbWFwcGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
cmVzb3VyY2Utc2NyaXB0LW1hcHBpbmctZXhwZWN0ZWQudHh0CmluZGV4IGFmYTljMjExNmY4YTM1
YmY2ODcwOWE1NTE4ZDQ2NDQwYzVlNjM2ODMuLjcxMDg5NmU3MDEyMTNlOWIxYTE0MDZlNmUyYmEz
MGZjZmI2YTg2NGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9y
ZXNvdXJjZS1zY3JpcHQtbWFwcGluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dApAQCAt
NCw3ICs0LDcgQEAgVGVzdHMgUmVzb3VyY2VTY3JpcHRNYXBwaW5nIGNsYXNzLgogUnVubmluZzog
dGVzdFNjcmlwdFdpdGhQZW5kaW5nUmVzb3VyY2UKIEFkZGluZyBzY3JpcHQgZm9yIHBlbmRpbmcg
cmVxdWVzdC4KIFVJU291cmNlQ29kZTogZm9vLmpzCi1VSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6
IHRydWUKK1VJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogZmFsc2UKIFVJU291cmNlQ29kZSBpcyBj
b250ZW50IHNjcmlwdDogdHJ1ZQogTWltZSB0eXBlOiB0ZXh0L2phdmFzY3JpcHQKIFVJU291cmNl
Q29kZSBjb250ZW50OiA8Y29udGVudCBzY3JpcHQgc291cmNlPgo=
</data>
<flag name="review"
          id="179673"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>