<?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>77098</bug_id>
          
          <creation_ts>2012-01-26 05:50:55 -0800</creation_ts>
          <short_desc>Web Inspector: Scripts panel editor container should be based on UISourceCode objects, not SourceFrames.</short_desc>
          <delta_ts>2012-01-26 10:45:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>75093</blocked>
    
    <blocked>76912</blocked>
          <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>543083</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-26 05:50:55 -0800</bug_when>
    <thetext>This should significantly improve EditorContainer API. 
This will allow to make UISourceCodeReplaced handling logic easier and move specific details to EditorContainer implementations.
This is also required by https://bugs.webkit.org/show_bug.cgi?id=76912.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543098</commentid>
    <comment_count>1</comment_count>
      <attachid>124112</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-26 06:18:00 -0800</bug_when>
    <thetext>Created attachment 124112
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543264</commentid>
    <comment_count>2</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-26 10:45:33 -0800</bug_when>
    <thetext>Committed r106011: &lt;http://trac.webkit.org/changeset/106011&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124112</attachid>
            <date>2012-01-26 06:18:00 -0800</date>
            <delta_ts>2012-01-26 10:42:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77098-20120126181757.patch</filename>
            <type>text/plain</type>
            <size>28838</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1OTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjE0ODc2YzNmYzk3NDlk
NjBiYzM2Yjc5YjVjODlhZTUwMGJhZDNlNi4uOWRkMDg1YTM0MTAwNTdjMDllNTQzOWQ3YjY2Mjkw
MDNlYjk0YjYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTAxLTI2ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFNjcmlwdHMgcGFuZWwgZWRpdG9yIGNvbnRhaW5lciBzaG91bGQgYmUgYmFzZWQgb24gVUlT
b3VyY2VDb2RlIG9iamVjdHMsIG5vdCBTb3VyY2VGcmFtZXMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzA5OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRz
TmF2aWdhdG9yLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVs
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuc2V0U2Ny
aXB0U291cmNlSXNCZWluZ0VkaXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1Bh
bmVsLnByb3RvdHlwZS5nZXQgdmlzaWJsZVZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5wcm90b3R5cGUudmlld0ZvckZpbGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3VpU291cmNlQ29kZVJlcGxhY2VkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FZGl0b3JDb250YWluZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVk
aXRvckNvbnRhaW5lci5wcm90b3R5cGUuZ2V0IHZpc2libGVWaWV3KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5FZGl0b3JDb250YWluZXIucHJvdG90eXBlLnNob3dGaWxlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5FZGl0b3JDb250YWluZXIucHJvdG90eXBlLnNldEZpbGVJc0RpcnR5KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5FZGl0b3JDb250YWluZXIucHJvdG90eXBlLnJlcGxhY2VGaWxl
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZS5yZXNl
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWRpdG9yQ29udGFpbmVyRGVsZWdhdGUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkVkaXRvckNvbnRhaW5lckRlbGVnYXRlLnByb3RvdHlwZS52aWV3
Rm9yRmlsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLkNvbWJvQm94Rmls
ZVNlbGVjdG9yLnByb3RvdHlwZS5yZXBsYWNlVUlTb3VyY2VDb2Rlcyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU2NyaXB0c1BhbmVsLlNpbmdsZUZpbGVFZGl0b3JDb250YWluZXIpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5TaW5nbGVGaWxlRWRpdG9yQ29udGFpbmVyLnBy
b3RvdHlwZS5nZXQgdmlzaWJsZVZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQ
YW5lbC5TaW5nbGVGaWxlRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZS5zaG93RmlsZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLlNpbmdsZUZpbGVFZGl0b3JDb250YWluZXIu
cHJvdG90eXBlLnNldEZpbGVJc0RpcnR5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwuU2luZ2xlRmlsZUVkaXRvckNvbnRhaW5lci5wcm90b3R5cGUucmVwbGFjZUZpbGVzKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuU2luZ2xlRmlsZUVkaXRvckNvbnRh
aW5lci5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGFi
YmVkRWRpdG9yQ29udGFpbmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRv
ckNvbnRhaW5lcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVy
LnByb3RvdHlwZS5nZXQgdmlzaWJsZVZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJl
ZEVkaXRvckNvbnRhaW5lci5wcm90b3R5cGUuX3RpdGxlRm9yRmlsZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZS5fdG9vbHRpcEZvckZpbGUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5wcm90b3R5cGUu
X2FwcGVuZEZpbGVUYWIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRh
aW5lci5wcm90b3R5cGUuX3RhYkNsb3NlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVk
RWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZS5fdGFiU2VsZWN0ZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5wcm90b3R5cGUucmVwbGFjZUZpbGVzLmdldCBp
Zik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlw
ZS5yZXBsYWNlRmlsZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRh
aW5lci5wcm90b3R5cGUuc2V0RmlsZUlzRGlydHkuZ2V0IGlmKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlLnNldEZpbGVJc0RpcnR5KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlLnJlc2V0
KToKKwogMjAxMi0wMS0yNiAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNv
bT4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQuIEZpeCBtYWMgYnVpbGQgYWZ0ZXIgcjEwNTk4OC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c05h
dmlnYXRvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c05h
dmlnYXRvci5qcwppbmRleCAwOWI5ZjczMTE1YWNiOTcwMTg4NmYxZDYwODFlYjllNDBiNjM2YWM0
Li4zM2UxMGMzZjExNjI5YmUwOWUyZDlkMmUxYTllOGQ0NmZlOWVlNzFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNOYXZpZ2F0b3IuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzTmF2aWdhdG9yLmpz
CkBAIC0xNDYsMTYgKzE0NiwyMSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c05hdmlnYXRvci5wcm90
b3R5cGUgPSB7CiAgICAgICovCiAgICAgcmVwbGFjZVVJU291cmNlQ29kZXM6IGZ1bmN0aW9uKG9s
ZFVJU291cmNlQ29kZUxpc3QsIHVpU291cmNlQ29kZUxpc3QpCiAgICAgeworICAgICAgICB2YXIg
YWRkZWQgPSBmYWxzZTsKICAgICAgICAgdmFyIHNlbGVjdGVkID0gZmFsc2U7CiAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgb2xkVUlTb3VyY2VDb2RlTGlzdC5sZW5ndGg7ICsraSkgewogICAg
ICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG9sZFVJU291cmNlQ29kZUxpc3RbaV07Ci0gICAg
ICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLl9zY3JpcHRUcmVlRWxlbWVudHNCeVVJU291
cmNlQ29kZS5nZXQodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudCkg
ewotICAgICAgICAgICAgICAgIGlmICh0aGlzLl9sYXN0U2VsZWN0ZWRVSVNvdXJjZUNvZGUgJiYg
dGhpcy5fbGFzdFNlbGVjdGVkVUlTb3VyY2VDb2RlID09PSB1aVNvdXJjZUNvZGUpCi0gICAgICAg
ICAgICAgICAgICAgIHNlbGVjdGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0aGlzLnJlbW92
ZVVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAg
aWYgKCF0aGlzLl9zY3JpcHRUcmVlRWxlbWVudHNCeVVJU291cmNlQ29kZS5nZXQodWlTb3VyY2VD
b2RlKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGFkZGVkID0gdHJ1
ZTsKKworICAgICAgICAgICAgaWYgKHRoaXMuX2xhc3RTZWxlY3RlZFVJU291cmNlQ29kZSA9PT0g
dWlTb3VyY2VDb2RlKQorICAgICAgICAgICAgICAgIHNlbGVjdGVkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIHRoaXMuX3JlbW92ZVVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwogICAgICAgICB9Cisg
ICAgICAgIAorICAgICAgICBpZiAoIWFkZGVkKQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdWlTb3VyY2VDb2RlTGlzdC5sZW5n
dGg7ICsraSkKICAgICAgICAgICAgIHRoaXMuYWRkVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZUxp
c3RbaV0pOwpAQCAtMTc2LDcgKzE4MSw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzTmF2aWdhdG9y
LnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGV9IHVpU291cmNlQ29kZQogICAgICAqLwotICAgIHJlbW92ZVVJU291cmNlQ29kZTog
ZnVuY3Rpb24odWlTb3VyY2VDb2RlKQorICAgIF9yZW1vdmVVSVNvdXJjZUNvZGU6IGZ1bmN0aW9u
KHVpU291cmNlQ29kZSkKICAgICB7CiAgICAgICAgIHZhciB0cmVlRWxlbWVudCA9IHRoaXMuX3Nj
cmlwdFRyZWVFbGVtZW50c0J5VUlTb3VyY2VDb2RlLmdldCh1aVNvdXJjZUNvZGUpOwogICAgICAg
ICB3aGlsZSAodHJlZUVsZW1lbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5kZXggZmNkMDJiMDU4MTQ3MzY1NzFjMmQ2YzRi
YmViMjBjOWFmMDhjZGYwZS4uMzk4ZDdlMWViNjZjZjRiYzUyMWUyYjM4NjM1MmMzMDZhMmQwYzdi
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRz
UGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRz
UGFuZWwuanMKQEAgLTI2LDYgKzI2LDcgQEAKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKKyAqIEBp
bXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuRWRpdG9yQ29udGFpbmVyRGVsZWdhdGV9CiAgKiBAZXh0
ZW5kcyB7V2ViSW5zcGVjdG9yLlBhbmVsfQogICovCiBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
ID0gZnVuY3Rpb24ocHJlc2VudGF0aW9uTW9kZWwpCkBAIC03NywyMCArNzgsMjAgQEAgV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbCA9IGZ1bmN0aW9uKHByZXNlbnRhdGlvbk1vZGVsKQogICAgICAg
ICB0aGlzLmVkaXRvclZpZXcuaW5zdGFsbFJlc2l6ZXIodGhpcy5fbmF2aWdhdG9yUmVzaXplV2lk
Z2V0RWxlbWVudCk7CiAgICAgICAgIHRoaXMuZWRpdG9yVmlldy5zaWRlYmFyRWxlbWVudC5hcHBl
bmRDaGlsZCh0aGlzLl9uYXZpZ2F0b3JSZXNpemVXaWRnZXRFbGVtZW50KTsKIAotICAgICAgICB0
aGlzLl9lZGl0b3JDb250YWluZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRh
aW5lcigpOworICAgICAgICB0aGlzLl9lZGl0b3JDb250YWluZXIgPSBuZXcgV2ViSW5zcGVjdG9y
LlRhYmJlZEVkaXRvckNvbnRhaW5lcih0aGlzKTsKICAgICAgICAgdGhpcy5fZWRpdG9yQ29udGFp
bmVyLnNob3codGhpcy5lZGl0b3JWaWV3Lm1haW5FbGVtZW50KTsKICAgICAgICAgV2ViSW5zcGVj
dG9yLk9wZW5SZXNvdXJjZURpYWxvZy5pbnN0YWxsKHRoaXMsIHRoaXMuX3ByZXNlbnRhdGlvbk1v
ZGVsLCB0aGlzLmVkaXRvclZpZXcubWFpbkVsZW1lbnQpOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IHRoaXMuX2ZpbGVTZWxlY3RvciA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLkNvbWJv
Qm94RmlsZVNlbGVjdG9yKHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsKTsKICAgICAgICAgdGhpcy5f
ZmlsZVNlbGVjdG9yLnNob3codGhpcy5zcGxpdFZpZXcubWFpbkVsZW1lbnQpOwogCi0gICAgICAg
IHRoaXMuX2VkaXRvckNvbnRhaW5lciA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLlNp
bmdsZUZpbGVFZGl0b3JDb250YWluZXIoKTsKKyAgICAgICAgdGhpcy5fZWRpdG9yQ29udGFpbmVy
ID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuU2luZ2xlRmlsZUVkaXRvckNvbnRhaW5l
cih0aGlzKTsKICAgICAgICAgdGhpcy5fZWRpdG9yQ29udGFpbmVyLnNob3codGhpcy5zcGxpdFZp
ZXcubWFpbkVsZW1lbnQpOwogICAgICAgICBXZWJJbnNwZWN0b3IuT3BlblJlc291cmNlRGlhbG9n
Lmluc3RhbGwodGhpcywgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwsIHRoaXMuc3BsaXRWaWV3Lm1h
aW5FbGVtZW50KTsKICAgICB9CiAgICAgdGhpcy5fZmlsZVNlbGVjdG9yLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5GaWxlU2VsZWN0b3IuRXZlbnRzLkZpbGVTZWxl
Y3RlZCwgdGhpcy5fZmlsZVNlbGVjdGVkLCB0aGlzKTsKICAgICB0aGlzLl9maWxlU2VsZWN0b3Iu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLkZpbGVTZWxlY3Rvci5F
dmVudHMuUmVsZWFzZWRGb2N1c0FmdGVyU2VsZWN0aW9uLCB0aGlzLl9maWxlU2VsZWN0b3JSZWxl
YXNlZEZvY3VzLCB0aGlzKTsKLSAgICB0aGlzLl9lZGl0b3JDb250YWluZXIuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLkVkaXRvckNvbnRhaW5lci5FdmVudHMuRWRp
dG9yU2VsZWN0ZWQsIHRoaXMuX2VkaXRvclNlbGVjdGVkLCB0aGlzKTsKKyAgICB0aGlzLl9lZGl0
b3JDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRWRpdG9yQ29udGFpbmVy
LkV2ZW50cy5FZGl0b3JTZWxlY3RlZCwgdGhpcy5fZWRpdG9yU2VsZWN0ZWQsIHRoaXMpOwogCiAg
ICAgdGhpcy5zcGxpdFZpZXcubWFpbkVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5kZWJ1Z1NpZGVi
YXJSZXNpemVXaWRnZXRFbGVtZW50KTsKIApAQCAtMjgyLDkgKzI4Myw3IEBAIFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgIHNldFNjcmlwdFNvdXJjZUlzQmVpbmdF
ZGl0ZWQ6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgaW5FZGl0TW9kZSkKICAgICB7CiAgICAgICAg
IHRoaXMuX2ZpbGVTZWxlY3Rvci5zZXRTY3JpcHRTb3VyY2VJc0RpcnR5KHVpU291cmNlQ29kZSwg
aW5FZGl0TW9kZSk7Ci0gICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMuX3NvdXJjZUZyYW1l
c0J5VUlTb3VyY2VDb2RlLmdldCh1aVNvdXJjZUNvZGUpCi0gICAgICAgIGlmIChzb3VyY2VGcmFt
ZSkKLSAgICAgICAgICAgIHRoaXMuX2VkaXRvckNvbnRhaW5lci5zZXRTb3VyY2VGcmFtZUlzRGly
dHkoc291cmNlRnJhbWUsIGluRWRpdE1vZGUpOworICAgICAgICB0aGlzLl9lZGl0b3JDb250YWlu
ZXIuc2V0RmlsZUlzRGlydHkodWlTb3VyY2VDb2RlLCBpbkVkaXRNb2RlKTsKICAgICB9LAogCiAg
ICAgX2NvbnNvbGVNZXNzYWdlc0NsZWFyZWQ6IGZ1bmN0aW9uKCkKQEAgLTQyOSw3ICs0MjgsNyBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIGdldCB2aXNp
YmxlVmlldygpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fZWRpdG9yQ29udGFpbmVyLmN1
cnJlbnRTb3VyY2VGcmFtZTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2VkaXRvckNvbnRhaW5lci52
aXNpYmxlVmlldzsKICAgICB9LAogCiAgICAgX3VwZGF0ZVNjcmlwdFZpZXdTdGF0dXNCYXJJdGVt
czogZnVuY3Rpb24oKQpAQCAtNDg0LDkgKzQ4Myw5IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAqLwogICAgIF9zaG93RmlsZTogZnVuY3Rpb24odWlTb3Vy
Y2VDb2RlKQogICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gdGhpcy5fc291cmNlRnJh
bWVzQnlVSVNvdXJjZUNvZGUuZ2V0KHVpU291cmNlQ29kZSkgfHwgdGhpcy5fY3JlYXRlU291cmNl
RnJhbWUodWlTb3VyY2VDb2RlKTsKKyAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gdGhpcy5fZ2V0
T3JDcmVhdGVTb3VyY2VGcmFtZSh1aVNvdXJjZUNvZGUpOwogCi0gICAgICAgIHRoaXMuX2VkaXRv
ckNvbnRhaW5lci5zaG93U291cmNlRnJhbWUodWlTb3VyY2VDb2RlLmRpc3BsYXlOYW1lLCBzb3Vy
Y2VGcmFtZSwgdWlTb3VyY2VDb2RlLnVybCk7CisgICAgICAgIHRoaXMuX2VkaXRvckNvbnRhaW5l
ci5zaG93RmlsZSh1aVNvdXJjZUNvZGUpOwogICAgICAgICB0aGlzLl91cGRhdGVTY3JpcHRWaWV3
U3RhdHVzQmFySXRlbXMoKTsKIAogICAgICAgICBpZiAodWlTb3VyY2VDb2RlLnVybCkKQEAgLTUy
Niw2ICs1MjUsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKIAog
ICAgIC8qKgogICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3Vy
Y2VDb2RlCisgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lfQogICAgICAq
LwogICAgIF9jcmVhdGVTb3VyY2VGcmFtZTogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQogICAgIHsK
QEAgLTUzNiw2ICs1MzYsMjQgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHRoaXMuX3NvdXJjZUZyYW1lc0J5VUlTb3VyY2VDb2RlLnB1dCh1aVNvdXJj
ZUNvZGUsIHNvdXJjZUZyYW1lKTsKICAgICAgICAgcmV0dXJuIHNvdXJjZUZyYW1lOwogICAgIH0s
CisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
fSB1aVNvdXJjZUNvZGUKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuU291cmNlRnJhbWV9
CisgICAgICovCisgICAgX2dldE9yQ3JlYXRlU291cmNlRnJhbWU6IGZ1bmN0aW9uKHVpU291cmNl
Q29kZSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zb3VyY2VGcmFtZXNCeVVJU291cmNl
Q29kZS5nZXQodWlTb3VyY2VDb2RlKSB8fCB0aGlzLl9jcmVhdGVTb3VyY2VGcmFtZSh1aVNvdXJj
ZUNvZGUpOworICAgIH0sCisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0
b3IuU291cmNlRnJhbWV9CisgICAgICovCisgICAgdmlld0ZvckZpbGU6IGZ1bmN0aW9uKHVpU291
cmNlQ29kZSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9nZXRPckNyZWF0ZVNvdXJjZUZy
YW1lKHVpU291cmNlQ29kZSk7CisgICAgfSwKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCkBAIC01NTgsMzggKzU3NiwxMCBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIG9s
ZFVJU291cmNlQ29kZUxpc3QgPSAvKiogQHR5cGUge0FycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3Vy
Y2VDb2RlPn0gKi8gZXZlbnQuZGF0YS5vbGRVSVNvdXJjZUNvZGVMaXN0OwogICAgICAgICB2YXIg
dWlTb3VyY2VDb2RlTGlzdCA9IC8qKiBAdHlwZSB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGU+fSAqLyBldmVudC5kYXRhLnVpU291cmNlQ29kZUxpc3Q7CiAKLSAgICAgICAgdmFyIGFk
ZGVkVG9GaWxlU2VsZWN0b3IgPSBmYWxzZTsKLSAgICAgICAgdmFyIHNvdXJjZUZyYW1lcyA9IFtd
OwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9sZFVJU291cmNlQ29kZUxpc3QubGVuZ3Ro
OyArK2kpIHsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBvbGRVSVNvdXJjZUNvZGVM
aXN0W2ldOwotICAgICAgICAgICAgdmFyIG9sZFNvdXJjZUZyYW1lID0gdGhpcy5fc291cmNlRnJh
bWVzQnlVSVNvdXJjZUNvZGUuZ2V0KHVpU291cmNlQ29kZSk7Ci0KLSAgICAgICAgICAgIGlmICh0
aGlzLl9maWxlU2VsZWN0b3IuaXNTY3JpcHRTb3VyY2VBZGRlZCh1aVNvdXJjZUNvZGUpKSB7Ci0g
ICAgICAgICAgICAgICAgYWRkZWRUb0ZpbGVTZWxlY3RvciA9IHRydWU7Ci0KLSAgICAgICAgICAg
ICAgICBpZiAob2xkU291cmNlRnJhbWUpCi0gICAgICAgICAgICAgICAgICAgIHNvdXJjZUZyYW1l
cy5wdXNoKG9sZFNvdXJjZUZyYW1lKTsKLSAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVTb3Vy
Y2VGcmFtZSh1aVNvdXJjZUNvZGUpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAg
ICAgaWYgKGFkZGVkVG9GaWxlU2VsZWN0b3IpIHsKLSAgICAgICAgICAgIHRoaXMuX2ZpbGVTZWxl
Y3Rvci5yZXBsYWNlVUlTb3VyY2VDb2RlcyhvbGRVSVNvdXJjZUNvZGVMaXN0LCB1aVNvdXJjZUNv
ZGVMaXN0KTsKLQotICAgICAgICAgICAgdmFyIHNob3VsZFJlcGxhY2UgPSBmYWxzZTsKLSAgICAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc291cmNlRnJhbWVzLmxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKHRoaXMuX2VkaXRvckNvbnRhaW5lci5pc1NvdXJjZUZyYW1lT3Bl
bihzb3VyY2VGcmFtZXNbaV0pKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNob3VsZFJlcGxhY2Ug
PSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChzaG91bGRSZXBsYWNlKSB7Ci0gICAgICAg
ICAgICAgICAgdmFyIG5ld1VJU291cmNlQ29kZSA9IHVpU291cmNlQ29kZUxpc3RbMF07Ci0gICAg
ICAgICAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gdGhpcy5fc291cmNlRnJhbWVzQnlVSVNvdXJj
ZUNvZGUuZ2V0KG5ld1VJU291cmNlQ29kZSkgfHwgdGhpcy5fY3JlYXRlU291cmNlRnJhbWUobmV3
VUlTb3VyY2VDb2RlKTsKLSAgICAgICAgICAgICAgICB0aGlzLl9lZGl0b3JDb250YWluZXIucmVw
bGFjZVNvdXJjZUZyYW1lcyhzb3VyY2VGcmFtZXMsIG5ld1VJU291cmNlQ29kZS5kaXNwbGF5TmFt
ZSwgc291cmNlRnJhbWUsIG5ld1VJU291cmNlQ29kZS51cmwpOwotICAgICAgICAgICAgfQotICAg
ICAgICB9CisgICAgICAgIHRoaXMuX2ZpbGVTZWxlY3Rvci5yZXBsYWNlVUlTb3VyY2VDb2Rlcyhv
bGRVSVNvdXJjZUNvZGVMaXN0LCB1aVNvdXJjZUNvZGVMaXN0KTsKKyAgICAgICAgdGhpcy5fZWRp
dG9yQ29udGFpbmVyLnJlcGxhY2VGaWxlcyhvbGRVSVNvdXJjZUNvZGVMaXN0LCB1aVNvdXJjZUNv
ZGVMaXN0KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvbGRVSVNvdXJjZUNvZGVMaXN0
Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAgdGhpcy5fcmVtb3ZlU291cmNlRnJhbWUob2xkVUlT
b3VyY2VDb2RlTGlzdFtpXSk7CiAgICAgfSwKIAogICAgIF9zb3VyY2VGcmFtZUxvYWRlZDogZnVu
Y3Rpb24oZXZlbnQpCkBAIC0xMDg2LDE3ICsxMDc2LDE3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwuRmlsZVNlbGVjdG9yLnByb3RvdHlwZSA9IHsKIC8qKgogICogQGludGVyZmFjZQogICov
Ci1XZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLkVkaXRvckNvbnRhaW5lciA9IGZ1bmN0aW9uKCkg
eyB9CitXZWJJbnNwZWN0b3IuRWRpdG9yQ29udGFpbmVyID0gZnVuY3Rpb24oKSB7IH0KIAotV2Vi
SW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5FZGl0b3JDb250YWluZXIuRXZlbnRzID0geworV2ViSW5z
cGVjdG9yLkVkaXRvckNvbnRhaW5lci5FdmVudHMgPSB7CiAgICAgRWRpdG9yU2VsZWN0ZWQ6ICJF
ZGl0b3JTZWxlY3RlZCIKIH0KIAotV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5FZGl0b3JDb250
YWluZXIucHJvdG90eXBlID0geworV2ViSW5zcGVjdG9yLkVkaXRvckNvbnRhaW5lci5wcm90b3R5
cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHR5cGUge1dlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZX0K
ICAgICAgKi8KLSAgICBnZXQgY3VycmVudFNvdXJjZUZyYW1lKCkgeyB9LAorICAgIGdldCB2aXNp
YmxlVmlldygpIHsgfSwKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7RWxlbWVudH0gZWxlbWVu
dApAQCAtMTEwNCwzMyArMTA5NCwzNiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLkVkaXRv
ckNvbnRhaW5lci5wcm90b3R5cGUgPSB7CiAgICAgc2hvdzogZnVuY3Rpb24oZWxlbWVudCkgeyB9
LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlCi0gICAgICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuU291cmNlRnJhbWV9IHNvdXJjZUZyYW1lCi0gICAgICogQHBhcmFtIHtz
dHJpbmd9IHRvb2x0aXAKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9
IHVpU291cmNlQ29kZQogICAgICAqLwotICAgIHNob3dTb3VyY2VGcmFtZTogZnVuY3Rpb24odGl0
bGUsIHNvdXJjZUZyYW1lLCB0b29sdGlwKSB7IH0sCisgICAgc2hvd0ZpbGU6IGZ1bmN0aW9uKHVp
U291cmNlQ29kZSkgeyB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
U291cmNlRnJhbWV9IHNvdXJjZUZyYW1lCi0gICAgICogQHJldHVybiB7Ym9vbGVhbn0KKyAgICAg
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQorICAgICAq
IEBwYXJhbSB7Ym9vbGVhbn0gaXNEaXJ0eQogICAgICAqLwotICAgIGlzU291cmNlRnJhbWVPcGVu
OiBmdW5jdGlvbihzb3VyY2VGcmFtZSkgeyByZXR1cm4gZmFsc2U7IH0sCisgICAgc2V0RmlsZUlz
RGlydHk6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgaXNEaXJ0eSkgeyB9LAogCiAgICAgLyoqCi0g
ICAgICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lPn0gb2xkU291cmNl
RnJhbWVzCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlCi0gICAgICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuU291cmNlRnJhbWV9IHNvdXJjZUZyYW1lCi0gICAgICogQHBhcmFtIHtzdHJpbmd9
IHRvb2x0aXAKKyAgICAgKiBAcGFyYW0ge0FycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
Pn0gb2xkVUlTb3VyY2VDb2RlTGlzdAorICAgICAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGU+fSB1aVNvdXJjZUNvZGVMaXN0CiAgICAgICovCi0gICAgcmVwbGFjZVNv
dXJjZUZyYW1lczogZnVuY3Rpb24ob2xkU291cmNlRnJhbWVzLCB0aXRsZSwgc291cmNlRnJhbWUs
IHRvb2x0aXApIHsgfSwKKyAgICByZXBsYWNlRmlsZXM6IGZ1bmN0aW9uKG9sZFVJU291cmNlQ29k
ZUxpc3QsIHVpU291cmNlQ29kZUxpc3QpIHsgfSwKKyAgICAKKyAgICByZXNldDogZnVuY3Rpb24o
KSB7IH0KK30KIAorLyoqCisgKiBAaW50ZXJmYWNlCisgKi8KK1dlYkluc3BlY3Rvci5FZGl0b3JD
b250YWluZXJEZWxlZ2F0ZSA9IGZ1bmN0aW9uKCkgeyB9CisKK1dlYkluc3BlY3Rvci5FZGl0b3JD
b250YWluZXJEZWxlZ2F0ZS5wcm90b3R5cGUgPSB7CiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuU291cmNlRnJhbWV9IHNvdXJjZUZyYW1lCi0gICAgICogQHBhcmFtIHtib29s
ZWFufSBpc0RpcnR5CisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSB1
aVNvdXJjZUNvZGUKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuU291cmNlRnJhbWV9CiAg
ICAgICovCi0gICAgc2V0U291cmNlRnJhbWVJc0RpcnR5OiBmdW5jdGlvbihzb3VyY2VGcmFtZSwg
aXNEaXJ0eSkgeyB9LAotCi0gICAgcmVzZXQ6IGZ1bmN0aW9uKCkgeyB9CisgICAgdmlld0ZvckZp
bGU6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkgeyB9CiB9CiAKIC8qKgpAQCAtMTIzNSwyMyArMTIy
OCwzMiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLkNvbWJvQm94RmlsZVNlbGVjdG9yLnBy
b3RvdHlwZSA9IHsKICAgICAgKi8KICAgICByZXBsYWNlVUlTb3VyY2VDb2RlczogZnVuY3Rpb24o
b2xkVUlTb3VyY2VDb2RlTGlzdCwgdWlTb3VyY2VDb2RlTGlzdCkKICAgICB7Ci0gICAgICAgIHZh
ciB2aXNpYmxlID0gZmFsc2U7CisgICAgICAgIHZhciBzZWxlY3RlZCA9IGZhbHNlOworICAgICAg
ICB2YXIgYWRkZWQgPSBmYWxzZTsKICAgICAgICAgdmFyIHNlbGVjdGVkT3B0aW9uID0gdGhpcy5f
ZmlsZXNTZWxlY3RFbGVtZW50W3RoaXMuX2ZpbGVzU2VsZWN0RWxlbWVudC5zZWxlY3RlZEluZGV4
XTsKICAgICAgICAgdmFyIHNlbGVjdGVkVUlTb3VyY2VDb2RlID0gc2VsZWN0ZWRPcHRpb24gPyBz
ZWxlY3RlZE9wdGlvbi5fdWlTb3VyY2VDb2RlIDogbnVsbDsKICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBvbGRVSVNvdXJjZUNvZGVMaXN0Lmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2
YXIgdWlTb3VyY2VDb2RlID0gb2xkVUlTb3VyY2VDb2RlTGlzdFtpXTsKLSAgICAgICAgICAgIGlm
IChzZWxlY3RlZFVJU291cmNlQ29kZSA9PT0gb2xkVUlTb3VyY2VDb2RlTGlzdFtpXSkKLSAgICAg
ICAgICAgICAgICB2aXNpYmxlID0gdHJ1ZTsKICAgICAgICAgICAgIHZhciBvcHRpb24gPSB1aVNv
dXJjZUNvZGUuX29wdGlvbjsKKyAgICAgICAgICAgIGlmICghb3B0aW9uKQorICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICAgICAgYWRkZWQgPSB0cnVlOworICAgICAgICAgICAgCiAg
ICAgICAgICAgICAvLyBGSVhNRTogZmluZCBvdXQgd2h5IHdlIGFyZSBnZXR0aW5nIGhlcmUgd2l0
aCBvcHRpb24gZGV0YWNoZWQuCi0gICAgICAgICAgICBpZiAob3B0aW9uICYmIHRoaXMuX2ZpbGVz
U2VsZWN0RWxlbWVudCA9PT0gb3B0aW9uLnBhcmVudEVsZW1lbnQpCisgICAgICAgICAgICBpZiAo
dGhpcy5fZmlsZXNTZWxlY3RFbGVtZW50ID09PSBvcHRpb24ucGFyZW50RWxlbWVudCkKICAgICAg
ICAgICAgICAgICB0aGlzLl9maWxlc1NlbGVjdEVsZW1lbnQucmVtb3ZlQ2hpbGQob3B0aW9uKTsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHNlbGVjdGVkVUlTb3VyY2VDb2RlID09PSBv
bGRVSVNvdXJjZUNvZGVMaXN0W2ldKQorICAgICAgICAgICAgICAgIHNlbGVjdGVkID0gdHJ1ZTsK
ICAgICAgICAgfQogICAgICAgICAgICAgCisgICAgICAgIGlmICghYWRkZWQpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIAogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNl
Q29kZUxpc3QubGVuZ3RoOyArK2kpCiAgICAgICAgICAgICB0aGlzLl9hZGRPcHRpb25Ub0ZpbGVz
U2VsZWN0KHVpU291cmNlQ29kZUxpc3RbaV0pOwogCi0gICAgICAgIGlmICh2aXNpYmxlKQorICAg
ICAgICBpZiAoc2VsZWN0ZWQpCiAgICAgICAgICAgICB0aGlzLl9maWxlc1NlbGVjdEVsZW1lbnQu
c2VsZWN0ZWRJbmRleCA9IHVpU291cmNlQ29kZUxpc3RbMF0uX29wdGlvbi5pbmRleDsKICAgICB9
LAogICAgIApAQCAtMTM0OCw3ICsxMzUwLDYgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5D
b21ib0JveEZpbGVTZWxlY3Rvci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBzZWxlY3QuZm9s
ZGVyT3B0aW9ucyA9IHt9OwogCiAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJvcHRpb24iKTsKLSAgICAgICAgb3B0aW9uLl91aVNvdXJjZUNvZGUgPSB1aVNvdXJj
ZUNvZGU7CiAgICAgICAgIHZhciBwYXJzZWRVUkwgPSB1aVNvdXJjZUNvZGUudXJsLmFzUGFyc2Vk
VVJMKCk7CiAKICAgICAgICAgY29uc3QgaW5kZW50ID0gV2ViSW5zcGVjdG9yLmlzTWFjKCkgPyAi
IiA6ICJcdTAwYTBcdTAwYTBcdTAwYTBcdTAwYTAiOwpAQCAtMTQ4MiwxMiArMTQ4MywxNCBAQCBX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLkNvbWJvQm94RmlsZVNlbGVjdG9yLnByb3RvdHlwZSA9
IHsKIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuQ29tYm9Cb3hGaWxlU2VsZWN0b3IucHJvdG90
eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlOwogCiAvKioKLSAq
IEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLkVkaXRvckNvbnRhaW5lcn0K
KyAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuRWRpdG9yQ29udGFpbmVyfQogICogQGV4dGVu
ZHMge1dlYkluc3BlY3Rvci5PYmplY3R9CiAgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLkVkaXRvckNvbnRhaW5lckRlbGVnYXRlfSBkZWxlZ2F0ZQogICovCi1XZWJJbnNw
ZWN0b3IuU2NyaXB0c1BhbmVsLlNpbmdsZUZpbGVFZGl0b3JDb250YWluZXIgPSBmdW5jdGlvbigp
CitXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLlNpbmdsZUZpbGVFZGl0b3JDb250YWluZXIgPSBm
dW5jdGlvbihkZWxlZ2F0ZSkKIHsKKyAgICB0aGlzLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlOwogICAg
IHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgIHRoaXMu
ZWxlbWVudC5jbGFzc05hbWUgPSAic2NyaXB0cy12aWV3cy1jb250YWluZXIiOwogfQpAQCAtMTQ5
Niw3ICsxNDk5LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5TaW5nbGVGaWxlRWRpdG9y
Q29udGFpbmVyLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBAdHlwZSB7V2ViSW5zcGVj
dG9yLlNvdXJjZUZyYW1lfQogICAgICAqLwotICAgIGdldCBjdXJyZW50U291cmNlRnJhbWUoKQor
ICAgIGdldCB2aXNpYmxlVmlldygpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVu
dFNvdXJjZUZyYW1lOwogICAgIH0sCkBAIC0xNTA4LDE0ICsxNTExLDEzIEBAIFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwuU2luZ2xlRmlsZUVkaXRvckNvbnRhaW5lci5wcm90b3R5cGUgPSB7CiAg
ICAgewogICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudCk7CiAgICAgfSwK
LSAgICAKKwogICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0aXRsZQotICAgICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lfSBzb3VyY2VGcmFtZQotICAgICAqIEBwYXJh
bSB7c3RyaW5nfSB0b29sdGlwCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VD
b2RlfSB1aVNvdXJjZUNvZGUKICAgICAgKi8KLSAgICBzaG93U291cmNlRnJhbWU6IGZ1bmN0aW9u
KHRpdGxlLCBzb3VyY2VGcmFtZSwgdG9vbHRpcCkKKyAgICBzaG93RmlsZTogZnVuY3Rpb24odWlT
b3VyY2VDb2RlKQogICAgIHsKKyAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gdGhpcy5fZGVsZWdh
dGUudmlld0ZvckZpbGUodWlTb3VyY2VDb2RlKTsKICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRT
b3VyY2VGcmFtZSA9PT0gc291cmNlRnJhbWUpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTE1
MjMsNDggKzE1MjUsMzcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5TaW5nbGVGaWxlRWRp
dG9yQ29udGFpbmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRTb3Vy
Y2VGcmFtZS5kZXRhY2goKTsKIAogICAgICAgICB0aGlzLl9jdXJyZW50U291cmNlRnJhbWUgPSBz
b3VyY2VGcmFtZTsKKyAgICAgICAgdGhpcy5fY3VycmVudEZpbGUgPSB1aVNvdXJjZUNvZGU7CiAK
ICAgICAgICAgaWYgKHNvdXJjZUZyYW1lKQogICAgICAgICAgICAgc291cmNlRnJhbWUuc2hvdyh0
aGlzLmVsZW1lbnQpOwogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5Tb3VyY2VGcmFtZX0gc291cmNlRnJhbWUKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufQot
ICAgICAqLwotICAgIGlzU291cmNlRnJhbWVPcGVuOiBmdW5jdGlvbihzb3VyY2VGcmFtZSkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50U291cmNlRnJhbWUgJiYgdGhpcy5fY3Vy
cmVudFNvdXJjZUZyYW1lID09PSBzb3VyY2VGcmFtZTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAg
ICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lPn0gb2xkU291cmNlRnJh
bWVzCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlCi0gICAgICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWV9IHNvdXJjZUZyYW1lCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHRv
b2x0aXAKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNl
Q29kZQorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNEaXJ0eQogICAgICAqLwotICAgIHJlcGxh
Y2VTb3VyY2VGcmFtZXM6IGZ1bmN0aW9uKG9sZFNvdXJjZUZyYW1lcywgdGl0bGUsIHNvdXJjZUZy
YW1lLCB0b29sdGlwKQorICAgIHNldEZpbGVJc0RpcnR5OiBmdW5jdGlvbih1aVNvdXJjZUNvZGUs
IGlzRGlydHkpCiAgICAgewotICAgICAgICB0aGlzLl9jdXJyZW50U291cmNlRnJhbWUuZGV0YWNo
KCk7Ci0gICAgICAgIHRoaXMuX2N1cnJlbnRTb3VyY2VGcmFtZSA9IG51bGw7Ci0gICAgICAgIHRo
aXMuc2hvd1NvdXJjZUZyYW1lKHRpdGxlLCBzb3VyY2VGcmFtZSwgdG9vbHRpcCk7CisgICAgICAg
IC8vIERvIG5vdGhpbmcuCiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5z
cGVjdG9yLlNvdXJjZUZyYW1lfSBzb3VyY2VGcmFtZQotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0g
aXNEaXJ0eQorICAgICAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+
fSBvbGRVSVNvdXJjZUNvZGVMaXN0CisgICAgICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZT59IHVpU291cmNlQ29kZUxpc3QKICAgICAgKi8KLSAgICBzZXRTb3VyY2VG
cmFtZUlzRGlydHk6IGZ1bmN0aW9uKHNvdXJjZUZyYW1lLCBpc0RpcnR5KQorICAgIHJlcGxhY2VG
aWxlczogZnVuY3Rpb24ob2xkVUlTb3VyY2VDb2RlTGlzdCwgdWlTb3VyY2VDb2RlTGlzdCkKICAg
ICB7Ci0gICAgICAgIC8vIERvIG5vdGhpbmcuCisgICAgICAgIGlmIChvbGRVSVNvdXJjZUNvZGVM
aXN0LmluZGV4T2YodGhpcy5fY3VycmVudEZpbGUpICE9PSAtMSkKKyAgICAgICAgICAgIHRoaXMu
c2hvd0ZpbGUodWlTb3VyY2VDb2RlTGlzdFswXSk7CiAgICAgfSwKIAogICAgIHJlc2V0OiBmdW5j
dGlvbigpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fY3VycmVudFNvdXJjZUZyYW1lKSB7Cisg
ICAgICAgIGlmICh0aGlzLl9jdXJyZW50U291cmNlRnJhbWUpCiAgICAgICAgICAgICB0aGlzLl9j
dXJyZW50U291cmNlRnJhbWUuZGV0YWNoKCk7Ci0gICAgICAgICAgICB0aGlzLl9jdXJyZW50U291
cmNlRnJhbWUgPSBudWxsOwotICAgICAgICB9CisgICAgICAgIHRoaXMuX2N1cnJlbnRTb3VyY2VG
cmFtZSA9IG51bGw7CisgICAgICAgIHRoaXMuX2N1cnJlbnRGaWxlID0gbnVsbDsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVk
RWRpdG9yQ29udGFpbmVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9U
YWJiZWRFZGl0b3JDb250YWluZXIuanMKaW5kZXggZGJjZjc3Mzg1OTM3MmM4OTU2ZDg2Y2M0YWU0
Y2Q4NTE1OWUxM2ExMS4uY2QzM2IxZDVkMTBhZGU3ZGE0ZmJlOWQ1ODBmMGFjMDUzMDY1ZDY2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRFZGl0
b3JDb250YWluZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9U
YWJiZWRFZGl0b3JDb250YWluZXIuanMKQEAgLTI3LDEyICsyNywxNSBAQAogICovCiAKIC8qKgot
ICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuRWRpdG9yQ29udGFpbmVy
fQorICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5FZGl0b3JDb250YWluZXJ9CiAgKiBAZXh0
ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KICAqIEBjb25zdHJ1Y3RvcgorICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuRWRpdG9yQ29udGFpbmVyRGVsZWdhdGV9IGRlbGVnYXRlCiAgKi8KLVdlYklu
c3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIgPSBmdW5jdGlvbigpCitXZWJJbnNwZWN0b3Iu
VGFiYmVkRWRpdG9yQ29udGFpbmVyID0gZnVuY3Rpb24oZGVsZWdhdGUpCiB7CisgICAgdGhpcy5f
ZGVsZWdhdGUgPSBkZWxlZ2F0ZTsKKwogICAgIHRoaXMuX3RhYmJlZFBhbmUgPSBuZXcgV2ViSW5z
cGVjdG9yLlRhYmJlZFBhbmUoKTsKICAgICB0aGlzLl90YWJiZWRQYW5lLmNsb3NlYWJsZVRhYnMg
PSB0cnVlOwogICAgIHRoaXMuX3RhYmJlZFBhbmUuZWxlbWVudC5pZCA9ICJzY3JpcHRzLWVkaXRv
ci1jb250YWluZXItdGFiYmVkLXBhbmUiOwpAQCAtNDAsOSArNDMsOCBAQCBXZWJJbnNwZWN0b3Iu
VGFiYmVkRWRpdG9yQ29udGFpbmVyID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX3RhYmJlZFBhbmUu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5FdmVudFR5cGVzLlRhYkNs
b3NlZCwgdGhpcy5fdGFiQ2xvc2VkLCB0aGlzKTsKICAgICB0aGlzLl90YWJiZWRQYW5lLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUuRXZlbnRUeXBlcy5UYWJTZWxlY3Rl
ZCwgdGhpcy5fdGFiU2VsZWN0ZWQsIHRoaXMpOwogCi0gICAgdGhpcy5fdGl0bGVzID0gbmV3IE1h
cCgpOwotICAgIHRoaXMuX3Rvb2x0aXBzID0gbmV3IE1hcCgpOwogICAgIHRoaXMuX3RhYklkcyA9
IG5ldyBNYXAoKTsgIAorICAgIHRoaXMuX2ZpbGVzID0ge307ICAKIH0KIAogV2ViSW5zcGVjdG9y
LlRhYmJlZEVkaXRvckNvbnRhaW5lci5fdGFiSWQgPSAwOwpAQCAtNTEsNyArNTMsNyBAQCBXZWJJ
bnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAg
ICAgKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lfQogICAgICAqLwotICAgIGdldCBj
dXJyZW50U291cmNlRnJhbWUoKQorICAgIGdldCB2aXNpYmxlVmlldygpCiAgICAgewogICAgICAg
ICByZXR1cm4gdGhpcy5fdGFiYmVkUGFuZS52aXNpYmxlVmlldzsKICAgICB9LApAQCAtNjUsMzgg
KzY3LDU1IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlID0g
ewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUKLSAgICAg
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZX0gc291cmNlRnJhbWUKLSAgICAgKiBA
cGFyYW0ge3N0cmluZ30gdG9vbHRpcAorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291
cmNlQ29kZX0gdWlTb3VyY2VDb2RlCiAgICAgICovCi0gICAgc2hvd1NvdXJjZUZyYW1lOiBmdW5j
dGlvbih0aXRsZSwgc291cmNlRnJhbWUsIHRvb2x0aXApCisgICAgc2hvd0ZpbGU6IGZ1bmN0aW9u
KHVpU291cmNlQ29kZSkKICAgICB7Ci0gICAgICAgIHZhciB0YWJJZCA9IHRoaXMuX3RhYklkcy5n
ZXQoc291cmNlRnJhbWUpIHx8IHRoaXMuX2FwcGVuZFNvdXJjZUZyYW1lVGFiKHRpdGxlLCBzb3Vy
Y2VGcmFtZSwgdG9vbHRpcCk7CisgICAgICAgIHZhciB0YWJJZCA9IHRoaXMuX3RhYklkcy5nZXQo
dWlTb3VyY2VDb2RlKSB8fCB0aGlzLl9hcHBlbmRGaWxlVGFiKHVpU291cmNlQ29kZSk7CiAgICAg
ICAgIHRoaXMuX3RhYmJlZFBhbmUuc2VsZWN0VGFiKHRhYklkKTsKICAgICB9LAogCiAgICAgLyoq
Ci0gICAgICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuU291cmNlRnJhbWV9IHNvdXJjZUZyYW1lCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHRvb2x0
aXAKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29k
ZQorICAgICAqIEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KKyAgICBfdGl0bGVGb3JGaWxlOiBm
dW5jdGlvbih1aVNvdXJjZUNvZGUpCisgICAgeworICAgICAgICByZXR1cm4gdWlTb3VyY2VDb2Rl
LmRpc3BsYXlOYW1lOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQorICAgICAqIEByZXR1cm4ge3N0cmluZ30K
ICAgICAgKi8KLSAgICBfYXBwZW5kU291cmNlRnJhbWVUYWI6IGZ1bmN0aW9uKHRpdGxlLCBzb3Vy
Y2VGcmFtZSwgdG9vbHRpcCkKKyAgICBfdG9vbHRpcEZvckZpbGU6IGZ1bmN0aW9uKHVpU291cmNl
Q29kZSkKICAgICB7CisgICAgICAgIHJldHVybiB1aVNvdXJjZUNvZGUudXJsOworICAgIH0sCisK
KyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291
cmNlQ29kZQorICAgICAqLworICAgIF9hcHBlbmRGaWxlVGFiOiBmdW5jdGlvbih1aVNvdXJjZUNv
ZGUpCisgICAgeworICAgICAgICB2YXIgdmlldyA9IHRoaXMuX2RlbGVnYXRlLnZpZXdGb3JGaWxl
KHVpU291cmNlQ29kZSk7CisgICAgICAgIHZhciB0aXRsZSA9IHRoaXMuX3RpdGxlRm9yRmlsZSh1
aVNvdXJjZUNvZGUpOworICAgICAgICB2YXIgdG9vbHRpcCA9IHRoaXMuX3Rvb2x0aXBGb3JGaWxl
KHVpU291cmNlQ29kZSk7CisKICAgICAgICAgdmFyIHRhYklkID0gdGhpcy5fZ2VuZXJhdGVUYWJJ
ZCgpOwotICAgICAgICB0aGlzLl90YWJJZHMucHV0KHNvdXJjZUZyYW1lLCB0YWJJZCkKLSAgICAg
ICAgdGhpcy5fdGl0bGVzLnB1dChzb3VyY2VGcmFtZSwgdGl0bGUpCi0gICAgICAgIHRoaXMuX3Rv
b2x0aXBzLnB1dChzb3VyY2VGcmFtZSwgdG9vbHRpcCkKKyAgICAgICAgdGhpcy5fdGFiSWRzLnB1
dCh1aVNvdXJjZUNvZGUsIHRhYklkKTsKKyAgICAgICAgdGhpcy5fZmlsZXNbdGFiSWRdID0gdWlT
b3VyY2VDb2RlOwogICAgICAgICAKLSAgICAgICAgdGhpcy5fdGFiYmVkUGFuZS5hcHBlbmRUYWIo
dGFiSWQsIHRpdGxlLCBzb3VyY2VGcmFtZSwgdG9vbHRpcCk7CisgICAgICAgIHRoaXMuX3RhYmJl
ZFBhbmUuYXBwZW5kVGFiKHRhYklkLCB0aXRsZSwgdmlldywgdG9vbHRpcCk7CiAgICAgICAgIHJl
dHVybiB0YWJJZDsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuU291cmNlRnJhbWV9IHNvdXJjZUZyYW1lCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKICAgICAgKi8KLSAgICBfcmVtb3ZlU291cmNlRnJh
bWVUYWI6IGZ1bmN0aW9uKHNvdXJjZUZyYW1lKQorICAgIF9yZW1vdmVGaWxlVGFiOiBmdW5jdGlv
bih1aVNvdXJjZUNvZGUpCiAgICAgewotICAgICAgICB2YXIgdGFiSWQgPSB0aGlzLl90YWJJZHMu
Z2V0KHNvdXJjZUZyYW1lKTsKKyAgICAgICAgdmFyIHRhYklkID0gdGhpcy5fdGFiSWRzLmdldCh1
aVNvdXJjZUNvZGUpOwogICAgICAgICAKICAgICAgICAgaWYgKHRhYklkKQogICAgICAgICAgICAg
dGhpcy5fdGFiYmVkUGFuZS5jbG9zZVRhYih0YWJJZCk7CkBAIC0xMDcsMTAgKzEyNiw5IEBAIFdl
Ykluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlID0gewogICAgICAqLwog
ICAgIF90YWJDbG9zZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIHNvdXJj
ZUZyYW1lID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSAqLyBldmVudC5k
YXRhLnZpZXc7Ci0gICAgICAgIHRoaXMuX3RhYklkcy5yZW1vdmUoc291cmNlRnJhbWUpOwotICAg
ICAgICB0aGlzLl90aXRsZXMucmVtb3ZlKHNvdXJjZUZyYW1lKTsKLSAgICAgICAgdGhpcy5fdG9v
bHRpcHMucmVtb3ZlKHNvdXJjZUZyYW1lKTsKKyAgICAgICAgdmFyIHRhYklkID0gLyoqIEB0eXBl
IHtzdHJpbmd9ICovIGV2ZW50LmRhdGEudGFiSWQ7CisgICAgICAgIHRoaXMuX3RhYklkcy5yZW1v
dmUodGhpcy5fZmlsZXNbdGFiSWRdKTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX2ZpbGVzW3RhYklk
XTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xMTgsNzcgKzEzNiw2MyBAQCBXZWJJbnNwZWN0b3Iu
VGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfdGFiU2Vs
ZWN0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0g
LyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSAqLyBldmVudC5kYXRhLnZpZXc7
Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwuRWRpdG9yQ29udGFpbmVyLkV2ZW50cy5FZGl0b3JTZWxlY3RlZCwgc291cmNlRnJh
bWUpOworICAgICAgICB2YXIgdmlldyA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZX0gKi8gZXZlbnQuZGF0YS52aWV3OworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycyhXZWJJbnNwZWN0b3IuRWRpdG9yQ29udGFpbmVyLkV2ZW50cy5FZGl0b3JTZWxlY3Rl
ZCwgdmlldyk7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
LlNvdXJjZUZyYW1lfSBvbGRTb3VyY2VGcmFtZQotICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0aXRs
ZQotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lfSBzb3VyY2VGcmFtZQot
ICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0b29sdGlwCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlfSBvbGRVSVNvdXJjZUNvZGUKKyAgICAgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5VSVNvdXJjZUNvZGV9IG5ld1VJU291cmNlQ29kZQogICAgICAqLwotICAgIF9yZXBsYWNl
U291cmNlRnJhbWVUYWI6IGZ1bmN0aW9uKG9sZFNvdXJjZUZyYW1lLCB0aXRsZSwgc291cmNlRnJh
bWUsIHRvb2x0aXApCisgICAgX3JlcGxhY2VGaWxlVGFiOiBmdW5jdGlvbihvbGRVSVNvdXJjZUNv
ZGUsIG5ld1VJU291cmNlQ29kZSkKICAgICB7Ci0gICAgICAgIHZhciB0YWJJZCA9IHRoaXMuX3Rh
Yklkcy5nZXQob2xkU291cmNlRnJhbWUpOworICAgICAgICB2YXIgdGFiSWQgPSB0aGlzLl90YWJJ
ZHMuZ2V0KG9sZFVJU291cmNlQ29kZSk7CiAgICAgICAgIAotICAgICAgICBpZiAodGFiSWQpIHsK
LSAgICAgICAgICAgIHRoaXMuX3RhYklkcy5yZW1vdmUob2xkU291cmNlRnJhbWUpOwotICAgICAg
ICAgICAgdGhpcy5fdGl0bGVzLnJlbW92ZShvbGRTb3VyY2VGcmFtZSk7Ci0gICAgICAgICAgICB0
aGlzLl90b29sdGlwcy5yZW1vdmUob2xkU291cmNlRnJhbWUpOwotCi0gICAgICAgICAgICB0aGlz
Ll90YWJJZHMucHV0KHNvdXJjZUZyYW1lLCB0YWJJZCk7Ci0gICAgICAgICAgICB0aGlzLl90aXRs
ZXMucHV0KHNvdXJjZUZyYW1lLCB0aXRsZSk7Ci0gICAgICAgICAgICB0aGlzLl90b29sdGlwcy5w
dXQoc291cmNlRnJhbWUsIHRvb2x0aXApOwotCi0gICAgICAgICAgICB0aGlzLl90YWJiZWRQYW5l
LmNoYW5nZVRhYlRpdGxlKHRhYklkLCB0aXRsZSk7Ci0gICAgICAgICAgICB0aGlzLl90YWJiZWRQ
YW5lLmNoYW5nZVRhYlZpZXcodGFiSWQsIHNvdXJjZUZyYW1lKTsKLSAgICAgICAgICAgIHRoaXMu
X3RhYmJlZFBhbmUuY2hhbmdlVGFiVG9vbHRpcCh0YWJJZCwgdG9vbHRpcCk7Ci0gICAgICAgIH0K
LSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU291cmNlRnJh
bWV9IHNvdXJjZUZyYW1lCi0gICAgICogQHJldHVybiB7Ym9vbGVhbn0KLSAgICAgKi8KLSAgICBp
c1NvdXJjZUZyYW1lT3BlbjogZnVuY3Rpb24oc291cmNlRnJhbWUpCi0gICAgewotICAgICAgICBy
ZXR1cm4gISF0aGlzLl90YWJJZHMuZ2V0KHNvdXJjZUZyYW1lKTsKKyAgICAgICAgaWYgKCF0YWJJ
ZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIGRlbGV0ZSB0aGlzLl9m
aWxlc1t0aGlzLl90YWJJZHMuZ2V0KG9sZFVJU291cmNlQ29kZSldCisgICAgICAgIHRoaXMuX3Rh
Yklkcy5yZW1vdmUob2xkVUlTb3VyY2VDb2RlKTsKKyAgICAgICAgdGhpcy5fdGFiSWRzLnB1dChu
ZXdVSVNvdXJjZUNvZGUsIHRhYklkKTsKKyAgICAgICAgdGhpcy5fZmlsZXNbdGFiSWRdID0gbmV3
VUlTb3VyY2VDb2RlOworCisgICAgICAgIHRoaXMuX3RhYmJlZFBhbmUuY2hhbmdlVGFiVGl0bGUo
dGFiSWQsIHRoaXMuX3RpdGxlRm9yRmlsZShuZXdVSVNvdXJjZUNvZGUpKTsKKyAgICAgICAgdGhp
cy5fdGFiYmVkUGFuZS5jaGFuZ2VUYWJWaWV3KHRhYklkLCB0aGlzLl9kZWxlZ2F0ZS52aWV3Rm9y
RmlsZShuZXdVSVNvdXJjZUNvZGUpKTsKKyAgICAgICAgdGhpcy5fdGFiYmVkUGFuZS5jaGFuZ2VU
YWJUb29sdGlwKHRhYklkLCB0aGlzLl90b29sdGlwRm9yRmlsZShuZXdVSVNvdXJjZUNvZGUpKTsK
ICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVjdG9yLlNv
dXJjZUZyYW1lPn0gb2xkU291cmNlRnJhbWVzCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHRpdGxl
Ci0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU291cmNlRnJhbWV9IHNvdXJjZUZyYW1lCi0g
ICAgICogQHBhcmFtIHtzdHJpbmd9IHRvb2x0aXAKKyAgICAgKiBAcGFyYW0ge0FycmF5LjxXZWJJ
bnNwZWN0b3IuVUlTb3VyY2VDb2RlPn0gb2xkVUlTb3VyY2VDb2RlTGlzdAorICAgICAqIEBwYXJh
bSB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fSB1aVNvdXJjZUNvZGVMaXN0CiAg
ICAgICovCi0gICAgcmVwbGFjZVNvdXJjZUZyYW1lczogZnVuY3Rpb24ob2xkU291cmNlRnJhbWVz
LCB0aXRsZSwgc291cmNlRnJhbWUsIHRvb2x0aXApCisgICAgcmVwbGFjZUZpbGVzOiBmdW5jdGlv
bihvbGRVSVNvdXJjZUNvZGVMaXN0LCB1aVNvdXJjZUNvZGVMaXN0KQogICAgIHsKLSAgICAgICAg
dmFyIG1haW5Tb3VyY2VGcmFtZTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvbGRTb3Vy
Y2VGcmFtZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciB0YWJJZCA9IHRoaXMuX3Rh
Yklkcy5nZXQob2xkU291cmNlRnJhbWVzW2ldKTsKLSAgICAgICAgICAgIGlmICh0YWJJZCAmJiAo
IW1haW5Tb3VyY2VGcmFtZSB8fCB0aGlzLl90YWJiZWRQYW5lLnNlbGVjdGVkVGFiSWQgPT09IHRh
YklkKSkgewotICAgICAgICAgICAgICAgIG1haW5Tb3VyY2VGcmFtZSA9IG9sZFNvdXJjZUZyYW1l
c1tpXTsKKyAgICAgICAgdmFyIG1haW5GaWxlOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IG9sZFVJU291cmNlQ29kZUxpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciB0YWJJ
ZCA9IHRoaXMuX3RhYklkcy5nZXQob2xkVUlTb3VyY2VDb2RlTGlzdFtpXSk7CisgICAgICAgICAg
ICBpZiAodGFiSWQgJiYgKCFtYWluRmlsZSB8fCB0aGlzLl90YWJiZWRQYW5lLnNlbGVjdGVkVGFi
SWQgPT09IHRhYklkKSkgeworICAgICAgICAgICAgICAgIG1haW5GaWxlID0gb2xkVUlTb3VyY2VD
b2RlTGlzdFtpXTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0gCiAgICAg
ICAgIH0KICAgICAgICAgCi0gICAgICAgIGlmIChtYWluU291cmNlRnJhbWUpCi0gICAgICAgICAg
ICB0aGlzLl9yZXBsYWNlU291cmNlRnJhbWVUYWIobWFpblNvdXJjZUZyYW1lLCB0aXRsZSwgc291
cmNlRnJhbWUsIHRvb2x0aXApOworICAgICAgICBpZiAoIW1haW5GaWxlKQorICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvbGRTb3VyY2VG
cmFtZXMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICB0aGlzLl9yZW1vdmVTb3VyY2VGcmFtZVRh
YihvbGRTb3VyY2VGcmFtZXNbaV0pOworICAgICAgICB0aGlzLl9yZXBsYWNlRmlsZVRhYihtYWlu
RmlsZSwgdWlTb3VyY2VDb2RlTGlzdFswXSk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
b2xkVUlTb3VyY2VDb2RlTGlzdC5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHRoaXMuX3JlbW92
ZUZpbGVUYWIob2xkVUlTb3VyY2VDb2RlTGlzdFtpXSk7CiAgICAgfSwKLQorICAgIAogICAgIC8q
KgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lfSBzb3VyY2VGcmFtZQor
ICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCiAg
ICAgICogQHBhcmFtIHtib29sZWFufSBpc0RpcnR5CiAgICAgICovCi0gICAgc2V0U291cmNlRnJh
bWVJc0RpcnR5OiBmdW5jdGlvbihzb3VyY2VGcmFtZSwgaXNEaXJ0eSkKKyAgICBzZXRGaWxlSXNE
aXJ0eTogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBpc0RpcnR5KQogICAgIHsKLSAgICAgICAgdmFy
IHRhYklkID0gdGhpcy5fdGFiSWRzLmdldChzb3VyY2VGcmFtZSk7CisgICAgICAgIHZhciB0YWJJ
ZCA9IHRoaXMuX3RhYklkcy5nZXQodWlTb3VyY2VDb2RlKTsKICAgICAgICAgaWYgKHRhYklkKSB7
Ci0gICAgICAgICAgICB2YXIgdGl0bGUgPSB0aGlzLl90aXRsZXMuZ2V0KHNvdXJjZUZyYW1lKTsK
KyAgICAgICAgICAgIHZhciB0aXRsZSA9IHRoaXMuX3RpdGxlRm9yRmlsZSh1aVNvdXJjZUNvZGUp
OwogICAgICAgICAgICAgaWYgKGlzRGlydHkpCiAgICAgICAgICAgICAgICAgdGl0bGUgKz0gIioi
OwogICAgICAgICAgICAgdGhpcy5fdGFiYmVkUGFuZS5jaGFuZ2VUYWJUaXRsZSh0YWJJZCwgdGl0
bGUpOwpAQCAtMTk4LDkgKzIwMiw5IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWlu
ZXIucHJvdG90eXBlID0gewogICAgIHJlc2V0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0
aGlzLl90YWJiZWRQYW5lLmNsb3NlQWxsVGFicygpOwotICAgICAgICB0aGlzLl90aXRsZXMgPSBu
ZXcgTWFwKCk7Ci0gICAgICAgIHRoaXMuX3Rvb2x0aXBzID0gbmV3IE1hcCgpOwotICAgICAgICB0
aGlzLl90YWJJZHMgPSBuZXcgTWFwKCk7ICAKKyAgICAgICAgdGhpcy5fdGFiSWRzID0gbmV3IE1h
cCgpOworICAgICAgICB0aGlzLl9maWxlcyA9IHt9OworCiAgICAgfSwKIAogICAgIC8qKgo=
</data>
<flag name="review"
          id="125294"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>