<?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>132149</bug_id>
          
          <creation_ts>2014-04-24 15:20:11 -0700</creation_ts>
          <short_desc>Web Inspector: CodeMirror 4 CSS mode new state data structure breaks helpers.</short_desc>
          <delta_ts>2014-05-02 09:04:41 -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</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Wells">jonowells</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1003798</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Wells">jonowells</who>
    <bug_when>2014-04-24 15:20:11 -0700</bug_when>
    <thetext>CSS mode has done away with state.stack to track the mode hierarchy and instead uses a linked object structure. Pretty Printing and other CodeMirror helpers/addons are broken as a result and need to be updated for the new structure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003801</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-04-24 15:21:06 -0700</bug_when>
    <thetext>&lt;rdar://problem/16718309&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005957</commentid>
    <comment_count>2</comment_count>
      <attachid>230645</attachid>
    <who name="Jonathan Wells">jonowells</who>
    <bug_when>2014-05-01 19:31:00 -0700</bug_when>
    <thetext>Created attachment 230645
[PATCH] Proposed Fix: Change to CodeMirror controllers and additions.

Carefully went through and changed references to tokens and states appropriately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005958</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-05-01 19:53:05 -0700</bug_when>
    <thetext>Looks good to me. I&apos;d like Joe to take a look too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006026</commentid>
    <comment_count>4</comment_count>
      <attachid>230645</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-05-02 08:33:33 -0700</bug_when>
    <thetext>Comment on attachment 230645
[PATCH] Proposed Fix: Change to CodeMirror controllers and additions.

Looks good to me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006028</commentid>
    <comment_count>5</comment_count>
      <attachid>230645</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-02 09:04:38 -0700</bug_when>
    <thetext>Comment on attachment 230645
[PATCH] Proposed Fix: Change to CodeMirror controllers and additions.

Clearing flags on attachment: 230645

Committed r168170: &lt;http://trac.webkit.org/changeset/168170&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006029</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-02 09:04:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230645</attachid>
            <date>2014-05-01 19:31:00 -0700</date>
            <delta_ts>2014-05-02 09:04:37 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix: Change to CodeMirror controllers and additions.</desc>
            <filename>css_mode.diff</filename>
            <type>text/plain</type>
            <size>20570</size>
            <attacher name="Jonathan Wells">jonowells</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGFkNDVmZjguLjg4YjVkYzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTA1LTAxICBKb25vIFdlbGxzICA8
am9ub3dlbGxzQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBDb2RlTWlycm9y
IDQgQ1NTIG1vZGUgbmV3IHN0YXRlIGRhdGEgc3RydWN0dXJlIGJyZWFrcyBoZWxwZXJzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMTQ5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHVwZGF0ZSB0
byBDb2RlTWlycm9yIDQgaW5jbHVkZWQgZHJhbWF0aWMgY2hhbmdlcyB0byB0aGUgQ1NTIG1vZGUs
CisgICAgICAgIHBhcnRpY3VsYXJseSB0aGUgd2F5IGl0IGhhbmRsZXMgdG9rZW5zLiBgc3RhdGUu
c3RhY2tgIGlzIGdvbmUsIHJlcGxhY2VkCisgICAgICAgIGJ5IGBzdGF0ZS5jb250ZXh0YC4KKwor
ICAgICAgICAqIFRvb2xzL1ByZXR0eVByaW50aW5nL0NvZGVNaXJyb3JGb3JtYXR0ZXJzLmpzOgor
ICAgICAgICAqIFRvb2xzL1ByZXR0eVByaW50aW5nL2NvZGVtaXJyb3IuanM6CisgICAgICAgICog
VXNlckludGVyZmFjZS9FeHRlcm5hbC9Db2RlTWlycm9yL2NvZGVtaXJyb3IuanM6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9FeHRlcm5hbC9Db2RlTWlycm9yL2xpdmVzY3JpcHQuanM6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9FeHRlcm5hbC9Db2RlTWlycm9yL3J1bm1vZGUuanM6CisgICAg
ICAgIFVwZGF0ZXMgZnJvbSBUb1QgQ29kZU1pcnJvci4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvQ29udHJvbGxlcnMvQ29kZU1pcnJvckNvbXBsZXRpb25Db250cm9sbGVyLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JDb21wbGV0aW9uQ29udHJvbGxlci5wcm90b3R5cGUu
X2dlbmVyYXRlQ1NTQ29tcGxldGlvbnMpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
Q29kZU1pcnJvckFkZGl0aW9ucy5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0Nv
ZGVNaXJyb3JGb3JtYXR0ZXJzLmpzOiBgbGFzdFRva2VuYCBpcyBudWxsIG5vdyBmb3IgIjoiIGNo
YXJhY3RlcnMuCisgICAgICAgIENoYW5nZXMgdG8gbWF0Y2ggc3RydWN0dXJhbCBjaGFuZ2VzIHRv
IHRoZSBzdGF0ZSBvYmplY3QgYW5kIGNoYW5nZXMgdG8gZXhwZWN0ZWQgdmFsdWVzIG9mIGBsYXN0
VG9rZW5gLgorCiAyMDE0LTA0LTMwICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9u
LmVkdT4KCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGNsZWFuIHVwIGFuZCBkZWNvbXBvc2UgSW5z
cGVjdG9yQmFja2VuZCBmdW5jdGlvbmFsaXR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVG9vbHMvUHJldHR5UHJpbnRpbmcvQ29kZU1pcnJvckZvcm1hdHRlcnMuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVG9vbHMvUHJldHR5UHJpbnRpbmcvQ29kZU1pcnJvckZvcm1hdHRl
cnMuanMKaW5kZXggODQwYzBiMy4uMjk2ZDBlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1Rvb2xzL1ByZXR0eVByaW50aW5nL0NvZGVNaXJyb3JGb3JtYXR0ZXJzLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Ub29scy9QcmV0dHlQcmludGluZy9Db2RlTWlycm9yRm9y
bWF0dGVycy5qcwpAQCAtMzE2LDEyICszMTYsOCBAQCBDb2RlTWlycm9yLmV4dGVuZE1vZGUoImNz
cyIsIHsKICAgICAgICAgaWYgKCFsYXN0VG9rZW4pIHsKICAgICAgICAgICAgIGlmIChsYXN0Q29u
dGVudCA9PT0gIiwiKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKC9cYm9wZXJhdG9yXGIvLnRl
c3QobGFzdFRva2VuKSkgewogICAgICAgICAgICAgaWYgKGxhc3RDb250ZW50ID09PSAiOiIpIC8v
IFNwYWNlIGluICJwcm9wOiB2YWx1ZSIgYnV0IG5vdCBpbiBhIHNlbGVjdG9ycyAiYTpsaW5rIiBv
ciAiZGl2OjphZnRlciIgb3IgbWVkaWEgcXVlcmllcyAiKG1heC1kZXZpY2Utd2lkdGg6NDgwcHgp
Ii4KLSAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGUuc3RhY2subGFzdFZhbHVlID09PSAicHJv
cGVydHlWYWx1ZSI7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRlLnN0YXRlID09PSAicHJv
cCI7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KCkBAIC0zMzcsNyArMzMz
LDcgQEAgQ29kZU1pcnJvci5leHRlbmRNb2RlKCJjc3MiLCB7CiAgICAgICAgICAgICBpZiAoY29u
dGVudCA9PT0gIjsiKQogICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgaWYg
KGNvbnRlbnQgPT09ICIsIikgeyAvLyAiYSxiLGMsLi4uLHp7fSIgcnVsZSBsaXN0IGF0IHRvcCBs
ZXZlbCBvciBpbiBAbWVkaWEgdG9wIGxldmVsIGFuZCBvbmx5IGlmIHRoZSBsaW5lIGxlbmd0aCB3
aWxsIGJlIGxhcmdlLgotICAgICAgICAgICAgICAgIGlmICgoIXN0YXRlLnN0YWNrIHx8ICFzdGF0
ZS5zdGFjay5sZW5ndGggfHwgc3RhdGUuc3RhY2subGFzdFZhbHVlID09PSAiQG1lZGlheyIpICYm
IHN0YXRlLl9jc3NQcmV0dHlQcmludC5saW5lTGVuZ3RoID4gNjApIHsKKyAgICAgICAgICAgICAg
ICBpZiAoKHN0YXRlLnN0YXRlID09PSAidG9wIiB8fCBzdGF0ZS5zdGF0ZSA9PT0gIm1lZGlhIikg
JiYgc3RhdGUuX2Nzc1ByZXR0eVByaW50LmxpbmVMZW5ndGggPiA2MCkgewogICAgICAgICAgICAg
ICAgICAgICBzdGF0ZS5fY3NzUHJldHR5UHJpbnQubGluZUxlbmd0aCA9IDA7CiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgIH0KQEAgLTM5NSw3ICszOTEsNyBA
QCBDb2RlTWlycm9yLmV4dGVuZE1vZGUoImNzcyIsIHsKICAgICAgICAgLy8gSW4gb3JkZXIgaW5z
ZXJ0IG5ld2xpbmVzIGluIHNlbGVjdG9yIGxpc3RzIHdlIG5lZWQga2VlcCB0cmFjayBvZiB0aGUg
bGVuZ3RoIG9mIHRoZSBjdXJyZW50IGxpbmUuCiAgICAgICAgIC8vIFRoaXMgaXNuJ3QgZXhhY3Qg
bGluZSBsZW5ndGgsIG9ubHkgdGhlIGJ1aWxkZXIga25vd3MgdGhhdCwgYnV0IGl0IGlzIGdvb2Qg
ZW5vdWdoIHRvIGdldCBhbiBpZGVhLgogICAgICAgICAvLyBJZiB3ZSBhcmUgYXQgYSB0b3AgbGV2
ZWwsIGtlZXAgdHJhY2sgb2YgdGhlIGN1cnJlbnQgbGluZSBsZW5ndGgsIG90aGVyd2lzZSB3ZSBy
ZXNldCB0byAwLgotICAgICAgICBpZiAoIXN0YXRlLnN0YWNrIHx8ICFzdGF0ZS5zdGFjay5sZW5n
dGggfHwgc3RhdGUuc3RhY2subGFzdFZhbHVlID09PSAiQG1lZGlheyIpCisgICAgICAgIGlmIChz
dGF0ZS5zdGF0ZSA9PT0gInRvcCIgfHwgc3RhdGUuc3RhdGUgPT09ICJtZWRpYSIpCiAgICAgICAg
ICAgICBzdGF0ZS5fY3NzUHJldHR5UHJpbnQubGluZUxlbmd0aCArPSBjb250ZW50Lmxlbmd0aDsK
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgc3RhdGUuX2Nzc1ByZXR0eVByaW50LmxpbmVMZW5n
dGggPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Rvb2xzL1ByZXR0eVBy
aW50aW5nL2NvZGVtaXJyb3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVG9vbHMvUHJldHR5
UHJpbnRpbmcvY29kZW1pcnJvci5qcwppbmRleCAwYWIyMTc3Li5lMzUxODEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVG9vbHMvUHJldHR5UHJpbnRpbmcvY29kZW1pcnJvci5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVG9vbHMvUHJldHR5UHJpbnRpbmcvY29kZW1p
cnJvci5qcwpAQCAtMjMwLDYgKzIzMCwxMCBAQAoKICAgICAvLyBUcnVlIHdoZW4gc2hpZnQgaXMg
aGVsZCBkb3duLgogICAgIGQuc2hpZnQgPSBmYWxzZTsKKworICAgIC8vIFVzZWQgdG8gdHJhY2sg
d2hldGhlciBhbnl0aGluZyBoYXBwZW5lZCBzaW5jZSB0aGUgY29udGV4dCBtZW51CisgICAgLy8g
d2FzIG9wZW5lZC4KKyAgICBkLnNlbEZvckNvbnRleHRNZW51ID0gbnVsbDsKICAgfQoKICAgLy8g
U1RBVEUgVVBEQVRFUwpAQCAtMTYyMSw3ICsxNjI1LDcgQEAKICAgICAgICAgZWxzZQogICAgICAg
ICAgIHJlY3QgPSBudWxsUmVjdDsKICAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJlY3QgPSByYW5n
ZShub2RlLCBzdGFydCwgZW5kKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgcmVj
dCA9IHJhbmdlKG5vZGUsIHN0YXJ0LCBlbmQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIHx8IG51
bGxSZWN0OwogICAgICAgfQogICAgIH0gZWxzZSB7IC8vIElmIGl0IGlzIGEgd2lkZ2V0LCBzaW1w
bHkgZ2V0IHRoZSBib3ggZm9yIHRoZSB3aG9sZSB3aWRnZXQuCiAgICAgICBpZiAoc3RhcnQgPiAw
KSBjb2xsYXBzZSA9IGJpYXMgPSAicmlnaHQiOwpAQCAtMjI0Niw2ICsyMjUwLDggQEAKICAgICBp
ZiAod2l0aE9wKSBzdGFydE9wZXJhdGlvbihjbSk7CiAgICAgY20uZGlzcGxheS5zaGlmdCA9IGZh
bHNlOwoKKyAgICBpZiAodGV4dC5jaGFyQ29kZUF0KDApID09IDB4MjAwYiAmJiBkb2Muc2VsID09
IGNtLmRpc3BsYXkuc2VsRm9yQ29udGV4dE1lbnUgJiYgIXByZXZJbnB1dCkKKyAgICAgIHByZXZJ
bnB1dCA9ICJcdTIwMGIiOwogICAgIC8vIEZpbmQgdGhlIHBhcnQgb2YgdGhlIGlucHV0IHRoYXQg
aXMgYWN0dWFsbHkgbmV3CiAgICAgdmFyIHNhbWUgPSAwLCBsID0gTWF0aC5taW4ocHJldklucHV0
Lmxlbmd0aCwgdGV4dC5sZW5ndGgpOwogICAgIHdoaWxlIChzYW1lIDwgbCAmJiBwcmV2SW5wdXQu
Y2hhckNvZGVBdChzYW1lKSA9PSB0ZXh0LmNoYXJDb2RlQXQoc2FtZSkpICsrc2FtZTsKQEAgLTMx
MTAsNyArMzExNiw3IEBACiAgICAgICAvLyBUaGUgcHJldklucHV0IHRlc3QgcHJldmVudHMgdGhp
cyBmcm9tIGZpcmluZyB3aGVuIGEgY29udGV4dAogICAgICAgLy8gbWVudSBpcyBjbG9zZWQgKHNp
bmNlIHRoZSByZXNldElucHV0IHdvdWxkIGtpbGwgdGhlCiAgICAgICAvLyBzZWxlY3QtYWxsIGRl
dGVjdGlvbiBoYWNrKQotICAgICAgaWYgKCFjbS5jdXJPcCAmJiBjbS5kaXNwbGF5LnNlbEZvckNv
bnRleHRNZW51ID09IGNtLmRvYy5zZWwpIHsKKyAgICAgIGlmICghY20uY3VyT3AgJiYgY20uZGlz
cGxheS5zZWxGb3JDb250ZXh0TWVudSAhPSBjbS5kb2Muc2VsKSB7CiAgICAgICAgIHJlc2V0SW5w
dXQoY20pOwogICAgICAgICBpZiAod2Via2l0KSBzZXRUaW1lb3V0KGJpbmQocmVzZXRJbnB1dCwg
Y20sIHRydWUpLCAwKTsgLy8gSXNzdWUgIzE3MzAKICAgICAgIH0KQEAgLTMxMzAsNyArMzEzNiw2
IEBACgogICAvLyBDT05URVhUIE1FTlUgSEFORExJTkcKCi0gIHZhciBkZXRlY3RpbmdTZWxlY3RB
bGw7CiAgIC8vIFRvIG1ha2UgdGhlIGNvbnRleHQgbWVudSB3b3JrLCB3ZSBuZWVkIHRvIGJyaWVm
bHkgdW5oaWRlIHRoZQogICAvLyB0ZXh0YXJlYSAobWFraW5nIGl0IGFzIHVub2J0cnVzaXZlIGFz
IHBvc3NpYmxlKSB0byBsZXQgdGhlCiAgIC8vIHJpZ2h0LWNsaWNrIHRha2UgZWZmZWN0IG9uIGl0
LgpAQCAtMzE1OSw2ICszMTY0LDcgQEAKICAgICAvLyBBZGRzICJTZWxlY3QgYWxsIiB0byBjb250
ZXh0IG1lbnUgaW4gRkYKICAgICBpZiAoIWNtLnNvbWV0aGluZ1NlbGVjdGVkKCkpIGRpc3BsYXku
aW5wdXQudmFsdWUgPSBkaXNwbGF5LnByZXZJbnB1dCA9ICIgIjsKICAgICBkaXNwbGF5LnNlbEZv
ckNvbnRleHRNZW51ID0gY20uZG9jLnNlbDsKKyAgICBjbGVhclRpbWVvdXQoZGlzcGxheS5kZXRl
Y3RpbmdTZWxlY3RBbGwpOwoKICAgICAvLyBTZWxlY3QtYWxsIHdpbGwgYmUgZ3JleWVkIG91dCBp
ZiB0aGVyZSdzIG5vdGhpbmcgdG8gc2VsZWN0LCBzbwogICAgIC8vIHRoaXMgYWRkcyBhIHplcm8t
d2lkdGggc3BhY2Ugc28gdGhhdCB3ZSBjYW4gbGF0ZXIgY2hlY2sgd2hldGhlcgpAQCAtMzE4MCwx
NCArMzE4NiwxMyBAQAogICAgICAgLy8gVHJ5IHRvIGRldGVjdCB0aGUgdXNlciBjaG9vc2luZyBz
ZWxlY3QtYWxsCiAgICAgICBpZiAoZGlzcGxheS5pbnB1dC5zZWxlY3Rpb25TdGFydCAhPSBudWxs
KSB7CiAgICAgICAgIGlmICghaWUgfHwgaWVfdXB0bzgpIHByZXBhcmVTZWxlY3RBbGxIYWNrKCk7
Ci0gICAgICAgIGNsZWFyVGltZW91dChkZXRlY3RpbmdTZWxlY3RBbGwpOwogICAgICAgICB2YXIg
aSA9IDAsIHBvbGwgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICBpZiAoZGlzcGxheS5zZWxGb3JD
b250ZXh0TWVudSA9PSBjbS5kb2Muc2VsICYmIGRpc3BsYXkuaW5wdXQuc2VsZWN0aW9uU3RhcnQg
PT0gMCkKICAgICAgICAgICAgIG9wZXJhdGlvbihjbSwgY29tbWFuZHMuc2VsZWN0QWxsKShjbSk7
Ci0gICAgICAgICAgZWxzZSBpZiAoaSsrIDwgMTApIGRldGVjdGluZ1NlbGVjdEFsbCA9IHNldFRp
bWVvdXQocG9sbCwgNTAwKTsKKyAgICAgICAgICBlbHNlIGlmIChpKysgPCAxMCkgZGlzcGxheS5k
ZXRlY3RpbmdTZWxlY3RBbGwgPSBzZXRUaW1lb3V0KHBvbGwsIDUwMCk7CiAgICAgICAgICAgZWxz
ZSByZXNldElucHV0KGNtKTsKICAgICAgICAgfTsKLSAgICAgICAgZGV0ZWN0aW5nU2VsZWN0QWxs
ID0gc2V0VGltZW91dChwb2xsLCAyMDApOworICAgICAgICBkaXNwbGF5LmRldGVjdGluZ1NlbGVj
dEFsbCA9IHNldFRpbWVvdXQocG9sbCwgMjAwKTsKICAgICAgIH0KICAgICB9CgpAQCAtMzM4Myw3
ICszMzg4LDcgQEAKCiAgICAgICB2YXIgYWZ0ZXIgPSBpID8gY29tcHV0ZVNlbEFmdGVyQ2hhbmdl
KGRvYywgY2hhbmdlLCBudWxsKSA6IGxzdChzb3VyY2UpOwogICAgICAgbWFrZUNoYW5nZVNpbmds
ZURvYyhkb2MsIGNoYW5nZSwgYWZ0ZXIsIG1lcmdlT2xkU3BhbnMoZG9jLCBjaGFuZ2UpKTsKLSAg
ICAgIGlmIChkb2MuY20pIGVuc3VyZUN1cnNvclZpc2libGUoZG9jLmNtKTsKKyAgICAgIGlmICgh
aSAmJiBkb2MuY20pIGRvYy5jbS5zY3JvbGxJbnRvVmlldyhjaGFuZ2UpOwogICAgICAgdmFyIHJl
YmFzZWQgPSBbXTsKCiAgICAgICAvLyBQcm9wYWdhdGUgdG8gdGhlIGxpbmtlZCBkb2N1bWVudHMK
QEAgLTM0MDAsMTIgKzM0MDUsMTcgQEAKICAgLy8gU3ViLXZpZXdzIG5lZWQgdGhlaXIgbGluZSBu
dW1iZXJzIHNoaWZ0ZWQgd2hlbiB0ZXh0IGlzIGFkZGVkCiAgIC8vIGFib3ZlIG9yIGJlbG93IHRo
ZW0gaW4gdGhlIHBhcmVudCBkb2N1bWVudC4KICAgZnVuY3Rpb24gc2hpZnREb2MoZG9jLCBkaXN0
YW5jZSkgeworICAgIGlmIChkaXN0YW5jZSA9PSAwKSByZXR1cm47CiAgICAgZG9jLmZpcnN0ICs9
IGRpc3RhbmNlOwogICAgIGRvYy5zZWwgPSBuZXcgU2VsZWN0aW9uKG1hcChkb2Muc2VsLnJhbmdl
cywgZnVuY3Rpb24ocmFuZ2UpIHsKICAgICAgIHJldHVybiBuZXcgUmFuZ2UoUG9zKHJhbmdlLmFu
Y2hvci5saW5lICsgZGlzdGFuY2UsIHJhbmdlLmFuY2hvci5jaCksCiAgICAgICAgICAgICAgICAg
ICAgICAgIFBvcyhyYW5nZS5oZWFkLmxpbmUgKyBkaXN0YW5jZSwgcmFuZ2UuaGVhZC5jaCkpOwog
ICAgIH0pLCBkb2Muc2VsLnByaW1JbmRleCk7Ci0gICAgaWYgKGRvYy5jbSkgcmVnQ2hhbmdlKGRv
Yy5jbSwgZG9jLmZpcnN0LCBkb2MuZmlyc3QgLSBkaXN0YW5jZSwgZGlzdGFuY2UpOworICAgIGlm
IChkb2MuY20pIHsKKyAgICAgIHJlZ0NoYW5nZShkb2MuY20sIGRvYy5maXJzdCwgZG9jLmZpcnN0
IC0gZGlzdGFuY2UsIGRpc3RhbmNlKTsKKyAgICAgIGZvciAodmFyIGQgPSBkb2MuY20uZGlzcGxh
eSwgbCA9IGQudmlld0Zyb207IGwgPCBkLnZpZXdUbzsgbCsrKQorICAgICAgICByZWdMaW5lQ2hh
bmdlKGRvYy5jbSwgbCwgImd1dHRlciIpOworICAgIH0KICAgfQoKICAgLy8gTW9yZSBsb3dlci1s
ZXZlbCBjaGFuZ2UgZnVuY3Rpb24sIGhhbmRsaW5nIG9ubHkgYSBzaW5nbGUgZG9jdW1lbnQKQEAg
LTM0OTcsNiArMzUwNyw3IEBACiAgICAgICBpZiAoY2hhbmdlSGFuZGxlcikgc2lnbmFsTGF0ZXIo
Y20sICJjaGFuZ2UiLCBjbSwgb2JqKTsKICAgICAgIGlmIChjaGFuZ2VzSGFuZGxlcikgKGNtLmN1
ck9wLmNoYW5nZU9ianMgfHwgKGNtLmN1ck9wLmNoYW5nZU9ianMgPSBbXSkpLnB1c2gob2JqKTsK
ICAgICB9CisgICAgY20uZGlzcGxheS5zZWxGb3JDb250ZXh0TWVudSA9IG51bGw7CiAgIH0KCiAg
IGZ1bmN0aW9uIHJlcGxhY2VSYW5nZShkb2MsIGNvZGUsIGZyb20sIHRvLCBvcmlnaW4pIHsKQEAg
LTc1MjAsNyArNzUzMSw3IEBACgogICAvLyBUSEUgRU5ECgotICBDb2RlTWlycm9yLnZlcnNpb24g
PSAiNC4xLjAiOworICBDb2RlTWlycm9yLnZlcnNpb24gPSAiNC4xLjEiOwoKICAgcmV0dXJuIENv
ZGVNaXJyb3I7CiB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0NvZGVNaXJyb3JDb21wbGV0aW9uQ29udHJvbGxlci5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NvZGVNaXJyb3JD
b21wbGV0aW9uQ29udHJvbGxlci5qcwppbmRleCA4NDllOTAyLi5kMmZmNDVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9Db2RlTWly
cm9yQ29tcGxldGlvbkNvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ29kZU1pcnJvckNvbXBsZXRpb25Db250cm9sbGVyLmpz
CkBAIC01MTksNyArNTE5LDcgQEAgV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JDb21wbGV0aW9uQ29u
dHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAgX2dlbmVyYXRlQ1NTQ29tcGxldGlvbnM6IGZ1bmN0
aW9uKG1haW5Ub2tlbiwgYmFzZSwgc3VmZml4KQogICAgIHsKICAgICAgICAgLy8gV2Ugb25seSBz
dXBwb3J0IGNvbXBsZXRpb24gaW5zaWRlIENTUyBibG9jayBjb250ZXh0LgotICAgICAgICBpZiAo
IW1haW5Ub2tlbi5zdGF0ZSB8fCAhbWFpblRva2VuLnN0YXRlLnN0YXRlIHx8ICFtYWluVG9rZW4u
c3RhdGUuc3RhdGUgPT09ICJibG9jayIpCisgICAgICAgIGlmIChtYWluVG9rZW4uc3RhdGUuc3Rh
dGUgPT09ICJtZWRpYSIgfHwgbWFpblRva2VuLnN0YXRlLnN0YXRlID09PSAidG9wIiB8fCBtYWlu
VG9rZW4uc3RhdGUuc3RhdGUgPT09ICJwYXJlbnMiKQogICAgICAgICAgICAgcmV0dXJuIFtdOwoK
ICAgICAgICAgdmFyIHRva2VuID0gbWFpblRva2VuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRXh0ZXJuYWwvQ29kZU1pcnJvci9jb2RlbWlycm9yLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRXh0ZXJuYWwvQ29kZU1pcnJv
ci9jb2RlbWlycm9yLmpzCmluZGV4IDBhYjIxNzcuLmUzNTE4MTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJyb3IvY29kZW1p
cnJvci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRlcm5h
bC9Db2RlTWlycm9yL2NvZGVtaXJyb3IuanMKQEAgLTIzMCw2ICsyMzAsMTAgQEAKCiAgICAgLy8g
VHJ1ZSB3aGVuIHNoaWZ0IGlzIGhlbGQgZG93bi4KICAgICBkLnNoaWZ0ID0gZmFsc2U7CisKKyAg
ICAvLyBVc2VkIHRvIHRyYWNrIHdoZXRoZXIgYW55dGhpbmcgaGFwcGVuZWQgc2luY2UgdGhlIGNv
bnRleHQgbWVudQorICAgIC8vIHdhcyBvcGVuZWQuCisgICAgZC5zZWxGb3JDb250ZXh0TWVudSA9
IG51bGw7CiAgIH0KCiAgIC8vIFNUQVRFIFVQREFURVMKQEAgLTE2MjEsNyArMTYyNSw3IEBACiAg
ICAgICAgIGVsc2UKICAgICAgICAgICByZWN0ID0gbnVsbFJlY3Q7CiAgICAgICB9IGVsc2Ugewot
ICAgICAgICByZWN0ID0gcmFuZ2Uobm9kZSwgc3RhcnQsIGVuZCkuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCk7CisgICAgICAgIHJlY3QgPSByYW5nZShub2RlLCBzdGFydCwgZW5kKS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKSB8fCBudWxsUmVjdDsKICAgICAgIH0KICAgICB9IGVsc2UgeyAvLyBJZiBp
dCBpcyBhIHdpZGdldCwgc2ltcGx5IGdldCB0aGUgYm94IGZvciB0aGUgd2hvbGUgd2lkZ2V0Lgog
ICAgICAgaWYgKHN0YXJ0ID4gMCkgY29sbGFwc2UgPSBiaWFzID0gInJpZ2h0IjsKQEAgLTIyNDYs
NiArMjI1MCw4IEBACiAgICAgaWYgKHdpdGhPcCkgc3RhcnRPcGVyYXRpb24oY20pOwogICAgIGNt
LmRpc3BsYXkuc2hpZnQgPSBmYWxzZTsKCisgICAgaWYgKHRleHQuY2hhckNvZGVBdCgwKSA9PSAw
eDIwMGIgJiYgZG9jLnNlbCA9PSBjbS5kaXNwbGF5LnNlbEZvckNvbnRleHRNZW51ICYmICFwcmV2
SW5wdXQpCisgICAgICBwcmV2SW5wdXQgPSAiXHUyMDBiIjsKICAgICAvLyBGaW5kIHRoZSBwYXJ0
IG9mIHRoZSBpbnB1dCB0aGF0IGlzIGFjdHVhbGx5IG5ldwogICAgIHZhciBzYW1lID0gMCwgbCA9
IE1hdGgubWluKHByZXZJbnB1dC5sZW5ndGgsIHRleHQubGVuZ3RoKTsKICAgICB3aGlsZSAoc2Ft
ZSA8IGwgJiYgcHJldklucHV0LmNoYXJDb2RlQXQoc2FtZSkgPT0gdGV4dC5jaGFyQ29kZUF0KHNh
bWUpKSArK3NhbWU7CkBAIC0zMTEwLDcgKzMxMTYsNyBAQAogICAgICAgLy8gVGhlIHByZXZJbnB1
dCB0ZXN0IHByZXZlbnRzIHRoaXMgZnJvbSBmaXJpbmcgd2hlbiBhIGNvbnRleHQKICAgICAgIC8v
IG1lbnUgaXMgY2xvc2VkIChzaW5jZSB0aGUgcmVzZXRJbnB1dCB3b3VsZCBraWxsIHRoZQogICAg
ICAgLy8gc2VsZWN0LWFsbCBkZXRlY3Rpb24gaGFjaykKLSAgICAgIGlmICghY20uY3VyT3AgJiYg
Y20uZGlzcGxheS5zZWxGb3JDb250ZXh0TWVudSA9PSBjbS5kb2Muc2VsKSB7CisgICAgICBpZiAo
IWNtLmN1ck9wICYmIGNtLmRpc3BsYXkuc2VsRm9yQ29udGV4dE1lbnUgIT0gY20uZG9jLnNlbCkg
ewogICAgICAgICByZXNldElucHV0KGNtKTsKICAgICAgICAgaWYgKHdlYmtpdCkgc2V0VGltZW91
dChiaW5kKHJlc2V0SW5wdXQsIGNtLCB0cnVlKSwgMCk7IC8vIElzc3VlICMxNzMwCiAgICAgICB9
CkBAIC0zMTMwLDcgKzMxMzYsNiBAQAoKICAgLy8gQ09OVEVYVCBNRU5VIEhBTkRMSU5HCgotICB2
YXIgZGV0ZWN0aW5nU2VsZWN0QWxsOwogICAvLyBUbyBtYWtlIHRoZSBjb250ZXh0IG1lbnUgd29y
aywgd2UgbmVlZCB0byBicmllZmx5IHVuaGlkZSB0aGUKICAgLy8gdGV4dGFyZWEgKG1ha2luZyBp
dCBhcyB1bm9idHJ1c2l2ZSBhcyBwb3NzaWJsZSkgdG8gbGV0IHRoZQogICAvLyByaWdodC1jbGlj
ayB0YWtlIGVmZmVjdCBvbiBpdC4KQEAgLTMxNTksNiArMzE2NCw3IEBACiAgICAgLy8gQWRkcyAi
U2VsZWN0IGFsbCIgdG8gY29udGV4dCBtZW51IGluIEZGCiAgICAgaWYgKCFjbS5zb21ldGhpbmdT
ZWxlY3RlZCgpKSBkaXNwbGF5LmlucHV0LnZhbHVlID0gZGlzcGxheS5wcmV2SW5wdXQgPSAiICI7
CiAgICAgZGlzcGxheS5zZWxGb3JDb250ZXh0TWVudSA9IGNtLmRvYy5zZWw7CisgICAgY2xlYXJU
aW1lb3V0KGRpc3BsYXkuZGV0ZWN0aW5nU2VsZWN0QWxsKTsKCiAgICAgLy8gU2VsZWN0LWFsbCB3
aWxsIGJlIGdyZXllZCBvdXQgaWYgdGhlcmUncyBub3RoaW5nIHRvIHNlbGVjdCwgc28KICAgICAv
LyB0aGlzIGFkZHMgYSB6ZXJvLXdpZHRoIHNwYWNlIHNvIHRoYXQgd2UgY2FuIGxhdGVyIGNoZWNr
IHdoZXRoZXIKQEAgLTMxODAsMTQgKzMxODYsMTMgQEAKICAgICAgIC8vIFRyeSB0byBkZXRlY3Qg
dGhlIHVzZXIgY2hvb3Npbmcgc2VsZWN0LWFsbAogICAgICAgaWYgKGRpc3BsYXkuaW5wdXQuc2Vs
ZWN0aW9uU3RhcnQgIT0gbnVsbCkgewogICAgICAgICBpZiAoIWllIHx8IGllX3VwdG84KSBwcmVw
YXJlU2VsZWN0QWxsSGFjaygpOwotICAgICAgICBjbGVhclRpbWVvdXQoZGV0ZWN0aW5nU2VsZWN0
QWxsKTsKICAgICAgICAgdmFyIGkgPSAwLCBwb2xsID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
aWYgKGRpc3BsYXkuc2VsRm9yQ29udGV4dE1lbnUgPT0gY20uZG9jLnNlbCAmJiBkaXNwbGF5Lmlu
cHV0LnNlbGVjdGlvblN0YXJ0ID09IDApCiAgICAgICAgICAgICBvcGVyYXRpb24oY20sIGNvbW1h
bmRzLnNlbGVjdEFsbCkoY20pOwotICAgICAgICAgIGVsc2UgaWYgKGkrKyA8IDEwKSBkZXRlY3Rp
bmdTZWxlY3RBbGwgPSBzZXRUaW1lb3V0KHBvbGwsIDUwMCk7CisgICAgICAgICAgZWxzZSBpZiAo
aSsrIDwgMTApIGRpc3BsYXkuZGV0ZWN0aW5nU2VsZWN0QWxsID0gc2V0VGltZW91dChwb2xsLCA1
MDApOwogICAgICAgICAgIGVsc2UgcmVzZXRJbnB1dChjbSk7CiAgICAgICAgIH07Ci0gICAgICAg
IGRldGVjdGluZ1NlbGVjdEFsbCA9IHNldFRpbWVvdXQocG9sbCwgMjAwKTsKKyAgICAgICAgZGlz
cGxheS5kZXRlY3RpbmdTZWxlY3RBbGwgPSBzZXRUaW1lb3V0KHBvbGwsIDIwMCk7CiAgICAgICB9
CiAgICAgfQoKQEAgLTMzODMsNyArMzM4OCw3IEBACgogICAgICAgdmFyIGFmdGVyID0gaSA/IGNv
bXB1dGVTZWxBZnRlckNoYW5nZShkb2MsIGNoYW5nZSwgbnVsbCkgOiBsc3Qoc291cmNlKTsKICAg
ICAgIG1ha2VDaGFuZ2VTaW5nbGVEb2MoZG9jLCBjaGFuZ2UsIGFmdGVyLCBtZXJnZU9sZFNwYW5z
KGRvYywgY2hhbmdlKSk7Ci0gICAgICBpZiAoZG9jLmNtKSBlbnN1cmVDdXJzb3JWaXNpYmxlKGRv
Yy5jbSk7CisgICAgICBpZiAoIWkgJiYgZG9jLmNtKSBkb2MuY20uc2Nyb2xsSW50b1ZpZXcoY2hh
bmdlKTsKICAgICAgIHZhciByZWJhc2VkID0gW107CgogICAgICAgLy8gUHJvcGFnYXRlIHRvIHRo
ZSBsaW5rZWQgZG9jdW1lbnRzCkBAIC0zNDAwLDEyICszNDA1LDE3IEBACiAgIC8vIFN1Yi12aWV3
cyBuZWVkIHRoZWlyIGxpbmUgbnVtYmVycyBzaGlmdGVkIHdoZW4gdGV4dCBpcyBhZGRlZAogICAv
LyBhYm92ZSBvciBiZWxvdyB0aGVtIGluIHRoZSBwYXJlbnQgZG9jdW1lbnQuCiAgIGZ1bmN0aW9u
IHNoaWZ0RG9jKGRvYywgZGlzdGFuY2UpIHsKKyAgICBpZiAoZGlzdGFuY2UgPT0gMCkgcmV0dXJu
OwogICAgIGRvYy5maXJzdCArPSBkaXN0YW5jZTsKICAgICBkb2Muc2VsID0gbmV3IFNlbGVjdGlv
bihtYXAoZG9jLnNlbC5yYW5nZXMsIGZ1bmN0aW9uKHJhbmdlKSB7CiAgICAgICByZXR1cm4gbmV3
IFJhbmdlKFBvcyhyYW5nZS5hbmNob3IubGluZSArIGRpc3RhbmNlLCByYW5nZS5hbmNob3IuY2gp
LAogICAgICAgICAgICAgICAgICAgICAgICBQb3MocmFuZ2UuaGVhZC5saW5lICsgZGlzdGFuY2Us
IHJhbmdlLmhlYWQuY2gpKTsKICAgICB9KSwgZG9jLnNlbC5wcmltSW5kZXgpOwotICAgIGlmIChk
b2MuY20pIHJlZ0NoYW5nZShkb2MuY20sIGRvYy5maXJzdCwgZG9jLmZpcnN0IC0gZGlzdGFuY2Us
IGRpc3RhbmNlKTsKKyAgICBpZiAoZG9jLmNtKSB7CisgICAgICByZWdDaGFuZ2UoZG9jLmNtLCBk
b2MuZmlyc3QsIGRvYy5maXJzdCAtIGRpc3RhbmNlLCBkaXN0YW5jZSk7CisgICAgICBmb3IgKHZh
ciBkID0gZG9jLmNtLmRpc3BsYXksIGwgPSBkLnZpZXdGcm9tOyBsIDwgZC52aWV3VG87IGwrKykK
KyAgICAgICAgcmVnTGluZUNoYW5nZShkb2MuY20sIGwsICJndXR0ZXIiKTsKKyAgICB9CiAgIH0K
CiAgIC8vIE1vcmUgbG93ZXItbGV2ZWwgY2hhbmdlIGZ1bmN0aW9uLCBoYW5kbGluZyBvbmx5IGEg
c2luZ2xlIGRvY3VtZW50CkBAIC0zNDk3LDYgKzM1MDcsNyBAQAogICAgICAgaWYgKGNoYW5nZUhh
bmRsZXIpIHNpZ25hbExhdGVyKGNtLCAiY2hhbmdlIiwgY20sIG9iaik7CiAgICAgICBpZiAoY2hh
bmdlc0hhbmRsZXIpIChjbS5jdXJPcC5jaGFuZ2VPYmpzIHx8IChjbS5jdXJPcC5jaGFuZ2VPYmpz
ID0gW10pKS5wdXNoKG9iaik7CiAgICAgfQorICAgIGNtLmRpc3BsYXkuc2VsRm9yQ29udGV4dE1l
bnUgPSBudWxsOwogICB9CgogICBmdW5jdGlvbiByZXBsYWNlUmFuZ2UoZG9jLCBjb2RlLCBmcm9t
LCB0bywgb3JpZ2luKSB7CkBAIC03NTIwLDcgKzc1MzEsNyBAQAoKICAgLy8gVEhFIEVORAoKLSAg
Q29kZU1pcnJvci52ZXJzaW9uID0gIjQuMS4wIjsKKyAgQ29kZU1pcnJvci52ZXJzaW9uID0gIjQu
MS4xIjsKCiAgIHJldHVybiBDb2RlTWlycm9yOwogfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRlcm5hbC9Db2RlTWlycm9yL2xpdmVzY3JpcHQu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRlcm5hbC9Db2RlTWly
cm9yL2xpdmVzY3JpcHQuanMKaW5kZXggNzU2MTgxZi4uMWVmYzNlYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRXh0ZXJuYWwvQ29kZU1pcnJvci9saXZl
c2NyaXB0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVy
bmFsL0NvZGVNaXJyb3IvbGl2ZXNjcmlwdC5qcwpAQCAtMTEsMTggKzExLDE3IEBACiAgIGVsc2Ug
Ly8gUGxhaW4gYnJvd3NlciBlbnYKICAgICBtb2QoQ29kZU1pcnJvcik7CiB9KShmdW5jdGlvbihD
b2RlTWlycm9yKSB7Ci0idXNlIHN0cmljdCI7CisgICJ1c2Ugc3RyaWN0IjsKCi0oZnVuY3Rpb24o
KSB7CiAgIENvZGVNaXJyb3IuZGVmaW5lTW9kZSgnbGl2ZXNjcmlwdCcsIGZ1bmN0aW9uKCl7Ci0g
ICAgdmFyIHRva2VuQmFzZSwgZXh0ZXJuYWw7Ci0gICAgdG9rZW5CYXNlID0gZnVuY3Rpb24oc3Ry
ZWFtLCBzdGF0ZSl7Ci0gICAgICB2YXIgbmV4dF9ydWxlLCBuciwgaSQsIGxlbiQsIHIsIG07Ci0g
ICAgICBpZiAobmV4dF9ydWxlID0gc3RhdGUubmV4dCB8fCAnc3RhcnQnKSB7CisgICAgdmFyIHRv
a2VuQmFzZSA9IGZ1bmN0aW9uKHN0cmVhbSwgc3RhdGUpIHsKKyAgICAgIHZhciBuZXh0X3J1bGUg
PSBzdGF0ZS5uZXh0IHx8ICJzdGFydCI7CisgICAgICBpZiAobmV4dF9ydWxlKSB7CiAgICAgICAg
IHN0YXRlLm5leHQgPSBzdGF0ZS5uZXh0OwotICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShuciA9
IFJ1bGVzW25leHRfcnVsZV0pKSB7Ci0gICAgICAgICAgZm9yIChpJCA9IDAsIGxlbiQgPSBuci5s
ZW5ndGg7IGkkIDwgbGVuJDsgKytpJCkgewotICAgICAgICAgICAgciA9IG5yW2kkXTsKKyAgICAg
ICAgdmFyIG5yID0gUnVsZXNbbmV4dF9ydWxlXTsKKyAgICAgICAgaWYgKG5yLnNwbGljZSkgewor
ICAgICAgICAgIGZvciAodmFyIGkkID0gMDsgaSQgPCBuci5sZW5ndGg7ICsraSQpIHsKKyAgICAg
ICAgICAgIHZhciByID0gbnJbaSRdLCBtOwogICAgICAgICAgICAgaWYgKHIucmVnZXggJiYgKG0g
PSBzdHJlYW0ubWF0Y2goci5yZWdleCkpKSB7CiAgICAgICAgICAgICAgIHN0YXRlLm5leHQgPSBy
Lm5leHQgfHwgc3RhdGUubmV4dDsKICAgICAgICAgICAgICAgcmV0dXJuIHIudG9rZW47CkBAIC00
NCw3ICs0Myw3IEBACiAgICAgICBzdHJlYW0ubmV4dCgpOwogICAgICAgcmV0dXJuICdlcnJvcic7
CiAgICAgfTsKLSAgICBleHRlcm5hbCA9IHsKKyAgICB2YXIgZXh0ZXJuYWwgPSB7CiAgICAgICBz
dGFydFN0YXRlOiBmdW5jdGlvbigpewogICAgICAgICByZXR1cm4gewogICAgICAgICAgIG5leHQ6
ICdzdGFydCcsCkBAIC01Miw4ICs1MSw4IEBACiAgICAgICAgIH07CiAgICAgICB9LAogICAgICAg
dG9rZW46IGZ1bmN0aW9uKHN0cmVhbSwgc3RhdGUpewotICAgICAgICB2YXIgc3R5bGU7Ci0gICAg
ICAgIHN0eWxlID0gdG9rZW5CYXNlKHN0cmVhbSwgc3RhdGUpOworICAgICAgICB3aGlsZSAoc3Ry
ZWFtLnBvcyA9PSBzdHJlYW0uc3RhcnQpCisgICAgICAgICAgdmFyIHN0eWxlID0gdG9rZW5CYXNl
KHN0cmVhbSwgc3RhdGUpOwogICAgICAgICBzdGF0ZS5sYXN0VG9rZW4gPSB7CiAgICAgICAgICAg
c3R5bGU6IHN0eWxlLAogICAgICAgICAgIGluZGVudDogc3RyZWFtLmluZGVudGF0aW9uKCksCkBA
IC02Miw4ICs2MSw3IEBACiAgICAgICAgIHJldHVybiBzdHlsZS5yZXBsYWNlKC9cLi9nLCAnICcp
OwogICAgICAgfSwKICAgICAgIGluZGVudDogZnVuY3Rpb24oc3RhdGUpewotICAgICAgICB2YXIg
aW5kZW50YXRpb247Ci0gICAgICAgIGluZGVudGF0aW9uID0gc3RhdGUubGFzdFRva2VuLmluZGVu
dDsKKyAgICAgICAgdmFyIGluZGVudGF0aW9uID0gc3RhdGUubGFzdFRva2VuLmluZGVudDsKICAg
ICAgICAgaWYgKHN0YXRlLmxhc3RUb2tlbi5jb250ZW50Lm1hdGNoKGluZGVudGVyKSkgewogICAg
ICAgICAgIGluZGVudGF0aW9uICs9IDI7CiAgICAgICAgIH0KQEAgLTI2Miw3ICsyNjAsNyBAQAog
ICB9OwogICBmb3IgKHZhciBpZHggaW4gUnVsZXMpIHsKICAgICB2YXIgciA9IFJ1bGVzW2lkeF07
Ci0gICAgaWYgKEFycmF5LmlzQXJyYXkocikpIHsKKyAgICBpZiAoci5zcGxpY2UpIHsKICAgICAg
IGZvciAodmFyIGkgPSAwLCBsZW4gPSByLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7CiAgICAgICAg
IHZhciByciA9IHJbaV07CiAgICAgICAgIGlmICh0eXBlb2YgcnIucmVnZXggPT09ICdzdHJpbmcn
KSB7CkBAIC0yNzMsOCArMjcxLDcgQEAKICAgICAgIFJ1bGVzW2lkeF0ucmVnZXggPSBuZXcgUmVn
RXhwKCdeJyArIHIucmVnZXgpOwogICAgIH0KICAgfQotfSkoKTsKCi1Db2RlTWlycm9yLmRlZmlu
ZU1JTUUoJ3RleHQveC1saXZlc2NyaXB0JywgJ2xpdmVzY3JpcHQnKTsKKyAgQ29kZU1pcnJvci5k
ZWZpbmVNSU1FKCd0ZXh0L3gtbGl2ZXNjcmlwdCcsICdsaXZlc2NyaXB0Jyk7CgogfSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRlcm5hbC9Db2Rl
TWlycm9yL3J1bm1vZGUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9F
eHRlcm5hbC9Db2RlTWlycm9yL3J1bm1vZGUuanMKaW5kZXggNDRjMTdiMS4uNTU5MmE5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRXh0ZXJuYWwvQ29k
ZU1pcnJvci9ydW5tb2RlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0V4dGVybmFsL0NvZGVNaXJyb3IvcnVubW9kZS5qcwpAQCAtNTcsNyArNTcsNyBAQCBDb2Rl
TWlycm9yLnJ1bk1vZGUgPSBmdW5jdGlvbihzdHJpbmcsIG1vZGVzcGVjLCBjYWxsYmFjaywgb3B0
aW9ucykgewogICBmb3IgKHZhciBpID0gMCwgZSA9IGxpbmVzLmxlbmd0aDsgaSA8IGU7ICsraSkg
ewogICAgIGlmIChpKSBjYWxsYmFjaygiXG4iKTsKICAgICB2YXIgc3RyZWFtID0gbmV3IENvZGVN
aXJyb3IuU3RyaW5nU3RyZWFtKGxpbmVzW2ldKTsKLSAgICBpZiAoIXN0cmVhbS5zdHJpbmcgJiYg
bW9kZS5ibGFua0xpbmUpIG1vZGUuYmxhbmtMaW5lKCk7CisgICAgaWYgKCFzdHJlYW0uc3RyaW5n
ICYmIG1vZGUuYmxhbmtMaW5lKSBtb2RlLmJsYW5rTGluZShzdGF0ZSk7CiAgICAgd2hpbGUgKCFz
dHJlYW0uZW9sKCkpIHsKICAgICAgIHZhciBzdHlsZSA9IG1vZGUudG9rZW4oc3RyZWFtLCBzdGF0
ZSk7CiAgICAgICBjYWxsYmFjayhzdHJlYW0uY3VycmVudCgpLCBzdHlsZSwgaSwgc3RyZWFtLnN0
YXJ0LCBzdGF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Db2RlTWlycm9yQWRkaXRpb25zLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvckFkZGl0aW9ucy5qcwppbmRleCAwYWQ4ODI4
Li5jOGU0ZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Db2RlTWlycm9yQWRkaXRpb25zLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JBZGRpdGlvbnMuanMKQEAgLTE4NywxMCAr
MTg3LDEwIEBACiAgICAgICAgIHZhciBzdHlsZSA9IHRoaXMuX3Rva2VuKHN0cmVhbSwgc3RhdGUp
OwoKICAgICAgICAgaWYgKHN0eWxlKSB7Ci0gICAgICAgICAgICBpZiAoc3R5bGUgPT09ICJzdHJp
bmctMiIgJiYgc3RyZWFtLmN1cnJlbnQoKSA9PT0gInVybCIpIHsKKyAgICAgICAgICAgIGlmIChz
dHlsZSA9PT0gImF0b20iICYmIHN0cmVhbS5jdXJyZW50KCkgPT09ICJ1cmwiKSB7CiAgICAgICAg
ICAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgdGV4dCBpcyAidXJsIiB0aGVuIHdlIHNob3VsZCBl
eHBlY3QgdGhlIG5leHQgc3RyaW5nIHRva2VuIHRvIGJlIGEgbGluay4KICAgICAgICAgICAgICAg
ICBzdGF0ZS5fZXhwZWN0TGluayA9IHRydWU7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXRl
Ll9leHBlY3RMaW5rICYmIHN0eWxlID09PSAic3RyaW5nIikgeworICAgICAgICAgICAgfSBlbHNl
IGlmIChzdGF0ZS5fZXhwZWN0TGluayAmJiBzdHlsZSA9PT0gImF0b20iKSB7CiAgICAgICAgICAg
ICAgICAgLy8gV2UgZXhwZWN0ZWQgYSBzdHJpbmcgYW5kIGdvdCBpdC4gVGhpcyBpcyBhIGxpbmsu
IFBhcnNlIGl0IHRoZSB3YXkgd2Ugd2FudCBpdC4KICAgICAgICAgICAgICAgICBkZWxldGUgc3Rh
dGUuX2V4cGVjdExpbms7CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvckZvcm1hdHRlcnMuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yRm9ybWF0dGVycy5qcwppbmRleCA4
NDBjMGIzLi4yOTZkMGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yRm9ybWF0dGVycy5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yRm9ybWF0dGVycy5qcwpAQCAt
MzE2LDEyICszMTYsOCBAQCBDb2RlTWlycm9yLmV4dGVuZE1vZGUoImNzcyIsIHsKICAgICAgICAg
aWYgKCFsYXN0VG9rZW4pIHsKICAgICAgICAgICAgIGlmIChsYXN0Q29udGVudCA9PT0gIiwiKQog
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICB9Ci0KLSAgICAgICAgaWYgKC9cYm9wZXJhdG9yXGIvLnRlc3QobGFzdFRva2VuKSkg
ewogICAgICAgICAgICAgaWYgKGxhc3RDb250ZW50ID09PSAiOiIpIC8vIFNwYWNlIGluICJwcm9w
OiB2YWx1ZSIgYnV0IG5vdCBpbiBhIHNlbGVjdG9ycyAiYTpsaW5rIiBvciAiZGl2OjphZnRlciIg
b3IgbWVkaWEgcXVlcmllcyAiKG1heC1kZXZpY2Utd2lkdGg6NDgwcHgpIi4KLSAgICAgICAgICAg
ICAgICByZXR1cm4gc3RhdGUuc3RhY2subGFzdFZhbHVlID09PSAicHJvcGVydHlWYWx1ZSI7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRlLnN0YXRlID09PSAicHJvcCI7CiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KCkBAIC0zMzcsNyArMzMzLDcgQEAgQ29kZU1pcnJv
ci5leHRlbmRNb2RlKCJjc3MiLCB7CiAgICAgICAgICAgICBpZiAoY29udGVudCA9PT0gIjsiKQog
ICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgaWYgKGNvbnRlbnQgPT09ICIs
IikgeyAvLyAiYSxiLGMsLi4uLHp7fSIgcnVsZSBsaXN0IGF0IHRvcCBsZXZlbCBvciBpbiBAbWVk
aWEgdG9wIGxldmVsIGFuZCBvbmx5IGlmIHRoZSBsaW5lIGxlbmd0aCB3aWxsIGJlIGxhcmdlLgot
ICAgICAgICAgICAgICAgIGlmICgoIXN0YXRlLnN0YWNrIHx8ICFzdGF0ZS5zdGFjay5sZW5ndGgg
fHwgc3RhdGUuc3RhY2subGFzdFZhbHVlID09PSAiQG1lZGlheyIpICYmIHN0YXRlLl9jc3NQcmV0
dHlQcmludC5saW5lTGVuZ3RoID4gNjApIHsKKyAgICAgICAgICAgICAgICBpZiAoKHN0YXRlLnN0
YXRlID09PSAidG9wIiB8fCBzdGF0ZS5zdGF0ZSA9PT0gIm1lZGlhIikgJiYgc3RhdGUuX2Nzc1By
ZXR0eVByaW50LmxpbmVMZW5ndGggPiA2MCkgewogICAgICAgICAgICAgICAgICAgICBzdGF0ZS5f
Y3NzUHJldHR5UHJpbnQubGluZUxlbmd0aCA9IDA7CiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biAxOwogICAgICAgICAgICAgICAgIH0KQEAgLTM5NSw3ICszOTEsNyBAQCBDb2RlTWlycm9yLmV4
dGVuZE1vZGUoImNzcyIsIHsKICAgICAgICAgLy8gSW4gb3JkZXIgaW5zZXJ0IG5ld2xpbmVzIGlu
IHNlbGVjdG9yIGxpc3RzIHdlIG5lZWQga2VlcCB0cmFjayBvZiB0aGUgbGVuZ3RoIG9mIHRoZSBj
dXJyZW50IGxpbmUuCiAgICAgICAgIC8vIFRoaXMgaXNuJ3QgZXhhY3QgbGluZSBsZW5ndGgsIG9u
bHkgdGhlIGJ1aWxkZXIga25vd3MgdGhhdCwgYnV0IGl0IGlzIGdvb2QgZW5vdWdoIHRvIGdldCBh
biBpZGVhLgogICAgICAgICAvLyBJZiB3ZSBhcmUgYXQgYSB0b3AgbGV2ZWwsIGtlZXAgdHJhY2sg
b2YgdGhlIGN1cnJlbnQgbGluZSBsZW5ndGgsIG90aGVyd2lzZSB3ZSByZXNldCB0byAwLgotICAg
ICAgICBpZiAoIXN0YXRlLnN0YWNrIHx8ICFzdGF0ZS5zdGFjay5sZW5ndGggfHwgc3RhdGUuc3Rh
Y2subGFzdFZhbHVlID09PSAiQG1lZGlheyIpCisgICAgICAgIGlmIChzdGF0ZS5zdGF0ZSA9PT0g
InRvcCIgfHwgc3RhdGUuc3RhdGUgPT09ICJtZWRpYSIpCiAgICAgICAgICAgICBzdGF0ZS5fY3Nz
UHJldHR5UHJpbnQubGluZUxlbmd0aCArPSBjb250ZW50Lmxlbmd0aDsKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgc3RhdGUuX2Nzc1ByZXR0eVByaW50LmxpbmVMZW5ndGggPSAwOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>