<?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>103214</bug_id>
          
          <creation_ts>2012-11-25 20:31:58 -0800</creation_ts>
          <short_desc>[Shadow DOM] Node::isDescendant() should be able to take care of shadow boundary</short_desc>
          <delta_ts>2013-01-23 00:42:25 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>105066</dup_id>
          
          <bug_file_loc>http://jsfiddle.net/pjpR8/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>72352</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>abarth</cc>
    
    <cc>arv</cc>
    
    <cc>ojan</cc>
    
    <cc>webcomponents-bugzilla</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>775112</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-25 20:31:58 -0800</bug_when>
    <thetext>Node::contains() isn&apos;t aware Shadow DOM but it should,
because shadow tree is also a part of the DOM tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775209</commentid>
    <comment_count>1</comment_count>
      <attachid>175936</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-26 00:18:16 -0800</bug_when>
    <thetext>Created attachment 175936
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775452</commentid>
    <comment_count>2</comment_count>
      <attachid>175936</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-11-26 07:05:29 -0800</bug_when>
    <thetext>Comment on attachment 175936
Patch

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

Node::isDescendantOf (and the DOM exposed contains method) MUST only work on the light DOM.

&gt; Source/WebCore/ChangeLog:9
&gt; +        several cosisntency checks in DOM rely on this.

typo

&gt; LayoutTests/fast/dom/shadow/node-contains.html:14
&gt; +    shouldBeTrue(&quot;host.contains(shadow)&quot;);

This should be false.

contains is defined by DOM spec as

Node.prototype.contains = function(otherNode) {
  if (otherNode === this) return true;
  if (otherNode === null) return false;
  return this.contains(otherNode.parentNode);
};

and the shadow dom says:

The parentNode and parentElement attributes of the shadow root object must always return null.

In that way contains should return false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775659</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-26 10:50:50 -0800</bug_when>
    <thetext>Does this patch affect performance?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778633</commentid>
    <comment_count>4</comment_count>
      <attachid>176633</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-28 20:41:04 -0800</bug_when>
    <thetext>Created attachment 176633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778638</commentid>
    <comment_count>5</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-28 20:47:29 -0800</bug_when>
    <thetext>Thanks for comments. I updated the patch but it isn&apos;t for review yet.

I addressed Arv&apos;s comment. That means it also addresses Dimitri&apos;s suggestion which says
we shouldn&apos;t change Node::contains() behavior.

It has small perf slowdown. I checked dom-modify and html5-full-renderer and they show
sub-1% slowdown. I thought http://trac.webkit.org/changeset/136076 can mask it, 
but then changed my mind that more generic Shadow DOM speedup could minimize this slow down too.
I&apos;ll try that first then come back here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813955</commentid>
    <comment_count>6</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-01-23 00:42:25 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 105066 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175936</attachid>
            <date>2012-11-26 00:18:16 -0800</date>
            <delta_ts>2012-11-28 20:41:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103214-20121126171555.patch</filename>
            <type>text/plain</type>
            <size>12445</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM4NTc1MjIwZWQwNzc2
ZGMyZWIzNThkZjY2MWJlMGMzY2I2N2Q5MC4uMmVkNmFjN2JhNWQ0NWZkMTcwOTkxZTZiMzU4ODU5
NTk3NzkzNTk1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTExLTI2ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV0g
Tm9kZTo6Y29udGFpbnMoKSBzaG91bGQgcmV0dXJuIHRydWUgZm9yIG5vZGVzIGluIHRoZSBzaGFk
b3cgdHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAzMjE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Tm9kZTo6aXNEZXNjZW5kYW50T2YoKSBkaWRuJ3QgY3Jvc3MgdGhlIHNoYWRvdyBib3VuYXJ5LCBi
dXQgaXQgc2hvdWxkIHNpbmNlCisgICAgICAgIHNldmVyYWwgY29zaXNudGVuY3kgY2hlY2tzIGlu
IERPTSByZWx5IG9uIHRoaXMuCisgICAgICAgIFRoaXMgY2hhbmdlIEFsbG93IGlzRGVzY2VuZGFu
dE9mKCkgY3Jvc3NpbmcgdGhlIGJvdW5hcnkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL3No
YWRvdy9ub2RlLWFwcGVuZC1jaGlsZC1jcm9zcy1ib3VuZGFyeS1jaXJjbGUuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9kb20vc2hhZG93L25vZGUtY29udGFpbnMuaHRtbAorCisgICAgICAgICog
ZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEZXNjZW5kYW50T2YpOgor
CiAyMDEyLTExLTI1ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZWZhY3RvcmluZzogTW92ZSB0aGUgY29udGVudCBvZiBIVE1MSW5wdXRFbGVtZW50OjpzdWJ0
cmVlSGFzQ2hhbmdlZCB0byBUZXh0RmllbGRJbnB1dFR5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAy
YWQzMmU3M2E1MjhjZDdiYWVkMjY0ODc4YmQ0NjE0YzVlMzAxMjIwLi5jOGFjM2JiYzFmMDBiZThm
NzE5YzA5ZmQzODBmNjdiNjBjMWQ5NTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xMjMxLDExICsx
MjMxLDExIEBAIHZvaWQgTm9kZTo6Y2hlY2tBZGRDaGlsZChOb2RlICpuZXdDaGlsZCwgRXhjZXB0
aW9uQ29kZSYgZWMpCiBib29sIE5vZGU6OmlzRGVzY2VuZGFudE9mKGNvbnN0IE5vZGUgKm90aGVy
KSBjb25zdAogewogICAgIC8vIFJldHVybiB0cnVlIGlmIG90aGVyIGlzIGFuIGFuY2VzdG9yIG9m
IHRoaXMsIG90aGVyd2lzZSBmYWxzZQotICAgIGlmICghb3RoZXIgfHwgIW90aGVyLT5oYXNDaGls
ZE5vZGVzKCkgfHwgaW5Eb2N1bWVudCgpICE9IG90aGVyLT5pbkRvY3VtZW50KCkpCisgICAgaWYg
KCFvdGhlciB8fCAhKG90aGVyLT5oYXNDaGlsZE5vZGVzKCkgfHwgKG90aGVyLT5pc0VsZW1lbnRO
b2RlKCkgJiYgdG9FbGVtZW50KG90aGVyKS0+c2hhZG93KCkpKSB8fCBpbkRvY3VtZW50KCkgIT0g
b3RoZXItPmluRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChvdGhl
ciA9PSBvdGhlci0+ZG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuIGRvY3VtZW50KCkgPT0gb3Ro
ZXIgJiYgdGhpcyAhPSBkb2N1bWVudCgpICYmIGluRG9jdW1lbnQoKTsKLSAgICBmb3IgKGNvbnN0
IENvbnRhaW5lck5vZGUqIG4gPSBwYXJlbnROb2RlKCk7IG47IG4gPSBuLT5wYXJlbnROb2RlKCkp
IHsKKyAgICBmb3IgKGNvbnN0IENvbnRhaW5lck5vZGUqIG4gPSBwYXJlbnRPckhvc3ROb2RlKCk7
IG47IG4gPSBuLT5wYXJlbnRPckhvc3ROb2RlKCkpIHsKICAgICAgICAgaWYgKG4gPT0gb3RoZXIp
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODViNGFiMmRjM2UzYmUz
OTU0ZDhjMDc1NDlmODIyNmQ1MWI0YmEzNy4uYzY4OGY5NzgzZDQwMzUxNjhiOWQwMmZhZDdkNGE4
NDIwZmEyNWY1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTExLTI2ICBIYWppbWUgTW9y
cml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV0gTm9kZTo6
Y29udGFpbnMoKSBzaG91bGQgcmV0dXJuIHRydWUgZm9yIG5vZGVzIGluIHRoZSBzaGFkb3cgdHJl
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjE0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0
L2RvbS9zaGFkb3cvbm9kZS1hcHBlbmQtY2hpbGQtY3Jvc3MtYm91bmRhcnktY2lyY2xlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L25vZGUtYXBwZW5kLWNo
aWxkLWNyb3NzLWJvdW5kYXJ5LWNpcmNsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9zaGFkb3cvbm9kZS1jb250YWlucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL3NoYWRvdy9ub2RlLWNvbnRhaW5zLmh0bWw6IEFkZGVkLgorCiAyMDEyLTExLTI1ICBL
ZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEZp
eCBzdm46bWltZS10eXBlIGZvciBpbWFnZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9ub2RlLWFwcGVuZC1jaGlsZC1jcm9zcy1ib3VuZGFyeS1jaXJjbGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25vZGUtYXBwZW5kLWNoaWxkLWNy
b3NzLWJvdW5kYXJ5LWNpcmNsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJmYWU3OTM4ZWFi
NzdjYTJjNmEwZGExNTA0NWRkZDVhNDU3NWYxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9ub2RlLWFwcGVuZC1jaGlsZC1jcm9zcy1ib3VuZGFyeS1jaXJj
bGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKK05vZGU6OmFwcGVuZENoaWxkKCkgc2hv
dWxkIGJlIHByZXZlbnRlZCBhZ2FpbnN0IGNyb3NzIGJvdW5kYXJ5IGNpcmNsZQorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzaGFkb3cuYXBwZW5kQ2hpbGQoaG9zdCkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24g
My4KK1BBU1Mgc2hhZG93LmFwcGVuZENoaWxkKHBhcmVudCkgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KK1BBU1Mgc2hhZG93Q2hp
bGQuYXBwZW5kQ2hpbGQoaG9zdCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1
ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KK1BBU1Mgc2hhZG93Q2hpbGQuYXBwZW5kQ2hpbGQo
cGFyZW50KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9N
IEV4Y2VwdGlvbiAzLgorUEFTUyBzaGFkb3dDaGlsZC5hcHBlbmRDaGlsZChzaGFkb3cpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMu
CitQQVNTIGhvc3RJblNoYWRvdy5hcHBlbmRDaGlsZChob3N0KSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgorUEFTUyBob3N0SW5T
aGFkb3cuYXBwZW5kQ2hpbGQocGFyZW50KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNo
eVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgorUEFTUyBob3N0SW5TaGFkb3cuYXBwZW5k
Q2hpbGQoc2hhZG93KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJv
cjogRE9NIEV4Y2VwdGlvbiAzLgorUEFTUyBob3N0SW5TaGFkb3cuYXBwZW5kQ2hpbGQoc2hhZG93
Q2hpbGQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00g
RXhjZXB0aW9uIDMuCitQQVNTIG5lc3RlZFNoYWRvdy5hcHBlbmRDaGlsZChob3N0KSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgor
UEFTUyBuZXN0ZWRTaGFkb3cuYXBwZW5kQ2hpbGQocGFyZW50KSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgorUEFTUyBuZXN0ZWRT
aGFkb3cuYXBwZW5kQ2hpbGQoc2hhZG93KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNo
eVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgorUEFTUyBuZXN0ZWRTaGFkb3cuYXBwZW5k
Q2hpbGQoc2hhZG93Q2hpbGQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVz
dEVycm9yOiBET00gRXhjZXB0aW9uIDMuCitQQVNTIG5lc3RlZFNoYWRvdy5hcHBlbmRDaGlsZCho
b3N0SW5TaGFkb3cpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9y
OiBET00gRXhjZXB0aW9uIDMuCitQQVNTIG5lc3RlZFNoYWRvd0NoaWxkLmFwcGVuZENoaWxkKGhv
c3QpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhj
ZXB0aW9uIDMuCitQQVNTIG5lc3RlZFNoYWRvd0NoaWxkLmFwcGVuZENoaWxkKHBhcmVudCkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24g
My4KK1BBU1MgbmVzdGVkU2hhZG93Q2hpbGQuYXBwZW5kQ2hpbGQoc2hhZG93KSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgorUEFT
UyBuZXN0ZWRTaGFkb3dDaGlsZC5hcHBlbmRDaGlsZChzaGFkb3dDaGlsZCkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KK1BBU1Mg
bmVzdGVkU2hhZG93Q2hpbGQuYXBwZW5kQ2hpbGQoaG9zdEluU2hhZG93KSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgorUEFTUyBu
ZXN0ZWRTaGFkb3dDaGlsZC5hcHBlbmRDaGlsZChuZXN0ZWRTaGFkb3cpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMuCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25vZGUtYXBwZW5kLWNoaWxkLWNyb3NzLWJvdW5k
YXJ5LWNpcmNsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25vZGUtYXBwZW5k
LWNoaWxkLWNyb3NzLWJvdW5kYXJ5LWNpcmNsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwNTllNjE1Yjc2
NGE0YjQ4YjQ5NmEzYTBiZjVlMTBjZDRhZTgwNmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvbm9kZS1hcHBlbmQtY2hpbGQtY3Jvc3MtYm91bmRhcnktY2ly
Y2xlLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiTm9kZTo6YXBwZW5k
Q2hpbGQoKSBzaG91bGQgYmUgcHJldmVudGVkIGFnYWluc3QgY3Jvc3MgYm91bmRhcnkgY2lyY2xl
Iik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciBlcnJvciA9ICInRXJyb3I6IEhpZXJh
cmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzJyIKKyAgICBzaG91bGRUaHJvdygic2hh
ZG93LmFwcGVuZENoaWxkKGhvc3QpIiwgZXJyb3IpOworICAgIHNob3VsZFRocm93KCJzaGFkb3cu
YXBwZW5kQ2hpbGQocGFyZW50KSIsIGVycm9yKTsKKworICAgIHNob3VsZFRocm93KCJzaGFkb3dD
aGlsZC5hcHBlbmRDaGlsZChob3N0KSIsIGVycm9yKTsKKyAgICBzaG91bGRUaHJvdygic2hhZG93
Q2hpbGQuYXBwZW5kQ2hpbGQocGFyZW50KSIsIGVycm9yKTsKKyAgICBzaG91bGRUaHJvdygic2hh
ZG93Q2hpbGQuYXBwZW5kQ2hpbGQoc2hhZG93KSIsIGVycm9yKTsKKworICAgIHNob3VsZFRocm93
KCJob3N0SW5TaGFkb3cuYXBwZW5kQ2hpbGQoaG9zdCkiLCBlcnJvcik7CisgICAgc2hvdWxkVGhy
b3coImhvc3RJblNoYWRvdy5hcHBlbmRDaGlsZChwYXJlbnQpIiwgZXJyb3IpOworICAgIHNob3Vs
ZFRocm93KCJob3N0SW5TaGFkb3cuYXBwZW5kQ2hpbGQoc2hhZG93KSIsIGVycm9yKTsKKyAgICBz
aG91bGRUaHJvdygiaG9zdEluU2hhZG93LmFwcGVuZENoaWxkKHNoYWRvd0NoaWxkKSIsIGVycm9y
KTsKKworICAgIHNob3VsZFRocm93KCJuZXN0ZWRTaGFkb3cuYXBwZW5kQ2hpbGQoaG9zdCkiLCBl
cnJvcik7CisgICAgc2hvdWxkVGhyb3coIm5lc3RlZFNoYWRvdy5hcHBlbmRDaGlsZChwYXJlbnQp
IiwgZXJyb3IpOworICAgIHNob3VsZFRocm93KCJuZXN0ZWRTaGFkb3cuYXBwZW5kQ2hpbGQoc2hh
ZG93KSIsIGVycm9yKTsKKyAgICBzaG91bGRUaHJvdygibmVzdGVkU2hhZG93LmFwcGVuZENoaWxk
KHNoYWRvd0NoaWxkKSIsIGVycm9yKTsKKyAgICBzaG91bGRUaHJvdygibmVzdGVkU2hhZG93LmFw
cGVuZENoaWxkKGhvc3RJblNoYWRvdykiLCBlcnJvcik7CisKKyAgICBzaG91bGRUaHJvdygibmVz
dGVkU2hhZG93Q2hpbGQuYXBwZW5kQ2hpbGQoaG9zdCkiLCBlcnJvcik7CisgICAgc2hvdWxkVGhy
b3coIm5lc3RlZFNoYWRvd0NoaWxkLmFwcGVuZENoaWxkKHBhcmVudCkiLCBlcnJvcik7CisgICAg
c2hvdWxkVGhyb3coIm5lc3RlZFNoYWRvd0NoaWxkLmFwcGVuZENoaWxkKHNoYWRvdykiLCBlcnJv
cik7CisgICAgc2hvdWxkVGhyb3coIm5lc3RlZFNoYWRvd0NoaWxkLmFwcGVuZENoaWxkKHNoYWRv
d0NoaWxkKSIsIGVycm9yKTsKKyAgICBzaG91bGRUaHJvdygibmVzdGVkU2hhZG93Q2hpbGQuYXBw
ZW5kQ2hpbGQoaG9zdEluU2hhZG93KSIsIGVycm9yKTsKKyAgICBzaG91bGRUaHJvdygibmVzdGVk
U2hhZG93Q2hpbGQuYXBwZW5kQ2hpbGQobmVzdGVkU2hhZG93KSIsIGVycm9yKTsKKworfQorCit2
YXIgcGFyZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit2YXIgaG9zdCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworcGFyZW50LmFwcGVuZENoaWxkKGhvc3QpOwor
dmFyIHNoYWRvdyA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOwordmFyIHNoYWRvd0NoaWxk
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CitzaGFkb3cuYXBwZW5kQ2hpbGQoc2hh
ZG93Q2hpbGQpOwordmFyIGhvc3RJblNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpOworc2hhZG93Q2hpbGQuYXBwZW5kQ2hpbGQoaG9zdEluU2hhZG93KTsKK3ZhciBuZXN0ZWRT
aGFkb3cgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0SW5TaGFkb3cpOwordmFyIG5lc3RlZFNo
YWRvd0NoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CituZXN0ZWRTaGFkb3cu
YXBwZW5kQ2hpbGQobmVzdGVkU2hhZG93Q2hpbGQpOworCit0ZXN0KCk7CisKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L25vZGUtY29udGFpbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L25vZGUtY29udGFpbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNDI0N2JiYzI4NmM2
MmJiZTBjMTEyMDE2NDYxYjc0ZTg0ZWFlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvbm9kZS1jb250YWlucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
OSBAQAorTm9kZTo6Y29udGFpbnMoKSBzaG91bGQgd29yayBhY3Jvc3Mgc2hhZG93IGJvdW5kYXJ5
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitIb3N0IG91dCBvZiB0cmVlOgorUEFT
UyBob3N0LmNvbnRhaW5zKHNoYWRvdykgaXMgdHJ1ZQorUEFTUyBzaGFkb3cuY29udGFpbnMoc2hh
ZG93KSBpcyB0cnVlCitQQVNTIHNoYWRvdy5jb250YWlucyhob3N0KSBpcyBmYWxzZQorUEFTUyBo
b3N0LmNvbnRhaW5zKHNoYWRvd0NoaWxkKSBpcyB0cnVlCitQQVNTIGhvc3QuY29udGFpbnMoc2hh
ZG93R3JhbmRDaGlsZCkgaXMgdHJ1ZQorUEFTUyBzaGFkb3cuY29udGFpbnMoc2hhZG93R3JhbmRD
aGlsZCkgaXMgdHJ1ZQorUEFTUyBzaGFkb3dDaGlsZC5jb250YWlucyhzaGFkb3dHcmFuZENoaWxk
KSBpcyB0cnVlCitQQVNTIGhvc3QuY29udGFpbnMoYW5vdGhlclNoYWRvdykgaXMgdHJ1ZQorUEFT
UyBob3N0LmNvbnRhaW5zKG5lc3RlZFNoYWRvdykgaXMgdHJ1ZQorSG9zdCBvdXQgb2YgdHJlZSwg
d2l0aCBjaGlsZDoKK1BBU1MgaG9zdC5jb250YWlucyhzaGFkb3cpIGlzIHRydWUKK1BBU1Mgc2hh
ZG93LmNvbnRhaW5zKHNoYWRvdykgaXMgdHJ1ZQorUEFTUyBzaGFkb3cuY29udGFpbnMoaG9zdCkg
aXMgZmFsc2UKK1BBU1MgaG9zdC5jb250YWlucyhzaGFkb3dDaGlsZCkgaXMgdHJ1ZQorUEFTUyBo
b3N0LmNvbnRhaW5zKHNoYWRvd0dyYW5kQ2hpbGQpIGlzIHRydWUKK1BBU1Mgc2hhZG93LmNvbnRh
aW5zKHNoYWRvd0dyYW5kQ2hpbGQpIGlzIHRydWUKK1BBU1Mgc2hhZG93Q2hpbGQuY29udGFpbnMo
c2hhZG93R3JhbmRDaGlsZCkgaXMgdHJ1ZQorUEFTUyBob3N0LmNvbnRhaW5zKGFub3RoZXJTaGFk
b3cpIGlzIHRydWUKK1BBU1MgaG9zdC5jb250YWlucyhuZXN0ZWRTaGFkb3cpIGlzIHRydWUKK0hv
c3QgaW4gdHJlZToKK1BBU1MgaG9zdC5jb250YWlucyhzaGFkb3cpIGlzIHRydWUKK1BBU1Mgc2hh
ZG93LmNvbnRhaW5zKHNoYWRvdykgaXMgdHJ1ZQorUEFTUyBzaGFkb3cuY29udGFpbnMoaG9zdCkg
aXMgZmFsc2UKK1BBU1MgaG9zdC5jb250YWlucyhzaGFkb3dDaGlsZCkgaXMgdHJ1ZQorUEFTUyBo
b3N0LmNvbnRhaW5zKHNoYWRvd0dyYW5kQ2hpbGQpIGlzIHRydWUKK1BBU1Mgc2hhZG93LmNvbnRh
aW5zKHNoYWRvd0dyYW5kQ2hpbGQpIGlzIHRydWUKK1BBU1Mgc2hhZG93Q2hpbGQuY29udGFpbnMo
c2hhZG93R3JhbmRDaGlsZCkgaXMgdHJ1ZQorUEFTUyBob3N0LmNvbnRhaW5zKGFub3RoZXJTaGFk
b3cpIGlzIHRydWUKK1BBU1MgaG9zdC5jb250YWlucyhuZXN0ZWRTaGFkb3cpIGlzIHRydWUKK0hv
c3QgaW4gdHJlZSwgd2l0aCBjaGlsZDoKK1BBU1MgaG9zdC5jb250YWlucyhzaGFkb3cpIGlzIHRy
dWUKK1BBU1Mgc2hhZG93LmNvbnRhaW5zKHNoYWRvdykgaXMgdHJ1ZQorUEFTUyBzaGFkb3cuY29u
dGFpbnMoaG9zdCkgaXMgZmFsc2UKK1BBU1MgaG9zdC5jb250YWlucyhzaGFkb3dDaGlsZCkgaXMg
dHJ1ZQorUEFTUyBob3N0LmNvbnRhaW5zKHNoYWRvd0dyYW5kQ2hpbGQpIGlzIHRydWUKK1BBU1Mg
c2hhZG93LmNvbnRhaW5zKHNoYWRvd0dyYW5kQ2hpbGQpIGlzIHRydWUKK1BBU1Mgc2hhZG93Q2hp
bGQuY29udGFpbnMoc2hhZG93R3JhbmRDaGlsZCkgaXMgdHJ1ZQorUEFTUyBob3N0LmNvbnRhaW5z
KGFub3RoZXJTaGFkb3cpIGlzIHRydWUKK1BBU1MgaG9zdC5jb250YWlucyhuZXN0ZWRTaGFkb3cp
IGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbm9kZS1jb250YWlu
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25vZGUtY29udGFpbnMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43ZDYwN2U0MjIxZmNlMTYwMjcxMjM4MjgzMmZiOGZhODYxNGVmZWQ4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25vZGUtY29udGFpbnMu
aHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJOb2RlOjpjb250YWlucygp
IHNob3VsZCB3b3JrIGFjcm9zcyBzaGFkb3cgYm91bmRhcnkiKTsKKworZnVuY3Rpb24gdGVzdChn
aXZlbkhvc3QpCit7CisgICAgaG9zdCA9IGdpdmVuSG9zdDsKKyAgICBzaGFkb3cgPSBuZXcgV2Vi
S2l0U2hhZG93Um9vdChob3N0KTsKKyAgICBzaG91bGRCZVRydWUoImhvc3QuY29udGFpbnMoc2hh
ZG93KSIpOworICAgIHNob3VsZEJlVHJ1ZSgic2hhZG93LmNvbnRhaW5zKHNoYWRvdykiKTsKKyAg
ICBzaG91bGRCZUZhbHNlKCJzaGFkb3cuY29udGFpbnMoaG9zdCkiKTsKKworICAgIHNoYWRvd0No
aWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgIHNoYWRvdy5hcHBlbmRD
aGlsZChzaGFkb3dDaGlsZCk7CisgICAgc2hvdWxkQmVUcnVlKCJob3N0LmNvbnRhaW5zKHNoYWRv
d0NoaWxkKSIpOworCisgICAgc2hhZG93R3JhbmRDaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInNwYW4iKTsKKyAgICBzaGFkb3dDaGlsZC5hcHBlbmRDaGlsZChzaGFkb3dHcmFuZENoaWxk
KTsKKyAgICBzaG91bGRCZVRydWUoImhvc3QuY29udGFpbnMoc2hhZG93R3JhbmRDaGlsZCkiKTsK
KyAgICBzaG91bGRCZVRydWUoInNoYWRvdy5jb250YWlucyhzaGFkb3dHcmFuZENoaWxkKSIpOwor
ICAgIHNob3VsZEJlVHJ1ZSgic2hhZG93Q2hpbGQuY29udGFpbnMoc2hhZG93R3JhbmRDaGlsZCki
KTsKKworICAgIGFub3RoZXJTaGFkb3cgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAg
ICBzaG91bGRCZVRydWUoImhvc3QuY29udGFpbnMoYW5vdGhlclNoYWRvdykiKTsKKyAgICBuZXN0
ZWRTaGFkb3cgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChzaGFkb3dDaGlsZCk7CisgICAgc2hvdWxk
QmVUcnVlKCJob3N0LmNvbnRhaW5zKG5lc3RlZFNoYWRvdykiKTsKK30KKworZGVidWcoIkhvc3Qg
b3V0IG9mIHRyZWU6Iik7Cit2YXIgaG9zdE91dE9mVHJlZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOwordGVzdChob3N0T3V0T2ZUcmVlKTsKKworZGVidWcoIkhvc3Qgb3V0IG9mIHRy
ZWUsIHdpdGggY2hpbGQ6Iik7Cit2YXIgaG9zdE91dE9mVHJlZVdpdGhDaGlsZCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworaG9zdE91dE9mVHJlZVdpdGhDaGlsZC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpOwordGVzdChob3N0T3V0T2ZUcmVlV2l0
aENoaWxkKTsKKworZGVidWcoIkhvc3QgaW4gdHJlZToiKTsKK3ZhciBob3N0SW5UcmVlID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGhv
c3RJblRyZWUpOwordGVzdChob3N0SW5UcmVlKTsKKworZGVidWcoIkhvc3QgaW4gdHJlZSwgd2l0
aCBjaGlsZDoiKTsKK3ZhciBob3N0SW5UcmVlV2l0aENoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7Citob3N0SW5UcmVlV2l0aENoaWxkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInNwYW4iKSk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGhvc3RJblRy
ZWVXaXRoQ2hpbGQpOwordGVzdChob3N0SW5UcmVlV2l0aENoaWxkKTsKKworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176633</attachid>
            <date>2012-11-28 20:41:04 -0800</date>
            <delta_ts>2012-11-28 20:41:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103214-20121129133838.patch</filename>
            <type>text/plain</type>
            <size>11763</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1OTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDQ4MGEzZGQ1YTIwMWFj
Y2RiODc3OGJmZjA4YWM1ZWE5ZTRmNDAyMC4uZmJhNGJmOWQxNjdjZDBjNTgyYjBlNDFkZDBjZGUw
MzI0ZmNlNjg5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTExLTI4ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV0g
Tm9kZTo6aXNEZXNjZW5kYW50KCkgc2hvdWxkIGJlIGFibGUgdG8gdGFrZSBjYXJlIG9mIHNoYWRv
dyBib3VuZGFyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAzMjE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm9kZTo6aXNEZXNjZW5kYW50KCkgaXNuJ3QgYXdhcmUgc2hhZG93IGJvdW5kYXJ5LCBidXQg
aW4gc2FtZSBjYXNlCisgICAgICAgIGl0IHNob3VsZCBiZS4gVGhpcyBjaGFuZ2UgYWRkcyBOb2Rl
Ojppc0Rlc2NlbmRhbnRPZkFjcm9zc1Njb3BlcygpLAorICAgICAgICBhIHZhcmlhdGlvbiBvZiBp
c0Rlc2NlbmRhbnRPZigpIHdoaWNoIGNyb3NzZXMgb3ZlciBzaGFkb3cgYm91bmRhcnkKKyAgICAg
ICAgd2hlbiB3YWxraW5nIHRoZSB0cmVlIHVwLiBOb2RlOjpjb250YWluc0luY2x1ZGluZ1NoYWRv
d0RPTSgpIGlzCisgICAgICAgIHJld3JpdHRlbiBvbiB0b3Agb2YgaXQuCisKKyAgICAgICAgVGhl
cmUgYXJlIG1hbnkgaXNEZXNjZW5kYW50T2YoKSBhbmQgY29udGFpbnMoKSBjYWxscyBpbgorICAg
ICAgICBXZWJDb3JlLiBTb21lIG9mIHRoZW0gc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGgKKyAgICAg
ICAgaXNEZXNjZW5kYW50T2ZBY3Jvc3NTY29wZXMoKSBhbmQgY29udGFpbnNJbmNsdWRpbmdTaGFk
b3dET00oKS4KKyAgICAgICAgYW4gb2J2aW91cyBjYW5kaWRhdGUgaXMgb25lIGluIGNoZWNrQWNj
ZXB0Q2hpbGQoKS4gVGhpcyBjaGFuZ2UKKyAgICAgICAgYWRkcmVzc2VzIGl0IGFzIHRoZSBmaXJz
dCBzdGVwLiBGdXJ0aGVyIGluc3BlY3Rpb24gc2hvdWxkCisgICAgICAgIGZvbGxvdy4KKworICAg
ICAgICBUZXN0czogZmFzdC9kb20vc2hhZG93L25vZGUtYXBwZW5kLWNoaWxkLWNyb3NzLWJvdW5k
YXJ5LWN5Y2xlLmh0bWwKKworICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNoZWNrQWNjZXB0Q2hpbGQpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmlzRGVzY2VuZGFudE9mKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEZXNjZW5kYW50T2ZBY3Jvc3NTY29wZXMp
OgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpjb25zdGFu
dHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpjb250YWlu
c0luY2x1ZGluZ1NoYWRvd0RPTSk6CisKIDIwMTItMTEtMjggIEh1YW5nIERvbmdzdW5nICA8bHV4
dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgW1RleG1hcF0gUkVHUkVTU0lPTihyMTM1
NjIwKSBRdFRlc3RCcm93c2VyIGNyYXNoZXMgb24gR29vZ2xlLWdyYXZpdHkuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vQ29udGFpbmVyTm9kZS5jcHAKaW5kZXggZjNjNmFiZDM4YTc3NTg2ODkyYTJmMTVkOWQzY2Y2
ZDFmMGI0MTFjYS4uZTE3ZThiODc1OGIzYjgxYzUxOWQ0MGMyNzAyYjFkMGVkYTBiNGEwMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApAQCAtMTU2LDcgKzE1Niw3IEBAIHN0YXRp
YyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUqIG5l
d1BhcmVudCwgTm9kZSogbmV3CiAgICAgICAgIEFTU0VSVCghbmV3UGFyZW50LT5pc1JlYWRPbmx5
Tm9kZSgpKTsKICAgICAgICAgQVNTRVJUKCFuZXdQYXJlbnQtPmlzRG9jdW1lbnRUeXBlTm9kZSgp
KTsKICAgICAgICAgQVNTRVJUKGlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxk
KSk7Ci0gICAgICAgIGlmIChuZXdDaGlsZC0+Y29udGFpbnMobmV3UGFyZW50KSkKKyAgICAgICAg
aWYgKG5ld0NoaWxkLT5jb250YWluc0luY2x1ZGluZ1NoYWRvd0RPTShuZXdQYXJlbnQpKQogICAg
ICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgfQpAQCAtMTY1LDcgKzE2NSw3IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBj
aGVja0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3CiAgICAg
ICAgIHJldHVybiBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7CiAgICAgaWYgKG5ld0NoaWxk
LT5pbkRvY3VtZW50KCkgJiYgbmV3Q2hpbGQtPmlzRG9jdW1lbnRUeXBlTm9kZSgpKQogICAgICAg
ICByZXR1cm4gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwotICAgIGlmIChuZXdDaGlsZC0+Y29udGFp
bnMobmV3UGFyZW50KSkKKyAgICBpZiAobmV3Q2hpbGQtPmNvbnRhaW5zSW5jbHVkaW5nU2hhZG93
RE9NKG5ld1BhcmVudCkpCiAgICAgICAgIHJldHVybiBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAK
ICAgICBpZiAob2xkQ2hpbGQgJiYgbmV3UGFyZW50LT5pc0RvY3VtZW50Tm9kZSgpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKaW5kZXggZWE3NzQ3YTc4ZWI0ZGVjNDU3NzcyYmI0YjYzYjc2NTc3YzYxY2E3OC4u
MGNmYWI1ODYxN2RjM2Q4MGIxY2NkYTc0YmRmY2MzNzJiNWVkNDA3YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cApAQCAtMTE1Nyw3ICsxMTU3LDcgQEAgYm9vbCBOb2RlOjppc0Rlc2NlbmRhbnRPZihjb25zdCBO
b2RlICpvdGhlcikgY29uc3QKICAgICAvLyBSZXR1cm4gdHJ1ZSBpZiBvdGhlciBpcyBhbiBhbmNl
c3RvciBvZiB0aGlzLCBvdGhlcndpc2UgZmFsc2UKICAgICBpZiAoIW90aGVyIHx8ICFvdGhlci0+
aGFzQ2hpbGROb2RlcygpIHx8IGluRG9jdW1lbnQoKSAhPSBvdGhlci0+aW5Eb2N1bWVudCgpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG90aGVyID09IG90aGVyLT5kb2N1bWVudCgp
KQorICAgIGlmIChvdGhlci0+aXNEb2N1bWVudE5vZGUoKSkKICAgICAgICAgcmV0dXJuIGRvY3Vt
ZW50KCkgPT0gb3RoZXIgJiYgdGhpcyAhPSBkb2N1bWVudCgpICYmIGluRG9jdW1lbnQoKTsKICAg
ICBmb3IgKGNvbnN0IENvbnRhaW5lck5vZGUqIG4gPSBwYXJlbnROb2RlKCk7IG47IG4gPSBuLT5w
YXJlbnROb2RlKCkpIHsKICAgICAgICAgaWYgKG4gPT0gb3RoZXIpCkBAIC0xMTY2LDE5ICsxMTY2
LDE1IEBAIGJvb2wgTm9kZTo6aXNEZXNjZW5kYW50T2YoY29uc3QgTm9kZSAqb3RoZXIpIGNvbnN0
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIE5vZGU6OmNvbnRhaW5zKGNvbnN0IE5vZGUq
IG5vZGUpIGNvbnN0CisvLyBBIHZhcmlhdGlvbiBvZiBpc0Rlc2NlbmRhbnRPZigpIHdoaWNoIGNy
b3NzZXMgc2hhZG93IGJvdW5kYXJpZXMuCitib29sIE5vZGU6OmlzRGVzY2VuZGFudE9mQWNyb3Nz
U2NvcGVzKGNvbnN0IE5vZGUgKm90aGVyKSBjb25zdAogewotICAgIGlmICghbm9kZSkKKyAgICBp
ZiAoIW90aGVyIHx8IGluRG9jdW1lbnQoKSAhPSBvdGhlci0+aW5Eb2N1bWVudCgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHRoaXMgPT0gbm9kZSB8fCBub2RlLT5pc0Rlc2Nl
bmRhbnRPZih0aGlzKTsKLX0KLQotYm9vbCBOb2RlOjpjb250YWluc0luY2x1ZGluZ1NoYWRvd0RP
TShOb2RlKiBub2RlKQotewotICAgIGlmICghbm9kZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGZvciAoTm9kZSogbiA9IG5vZGU7IG47IG4gPSBuLT5wYXJlbnRPckhvc3ROb2RlKCkpIHsK
LSAgICAgICAgaWYgKG4gPT0gdGhpcykKKyAgICBpZiAob3RoZXItPmlzRG9jdW1lbnROb2RlKCkp
CisgICAgICAgIHJldHVybiBkb2N1bWVudCgpID09IG90aGVyICYmIHRoaXMgIT0gZG9jdW1lbnQo
KSAmJiBpbkRvY3VtZW50KCk7CisgICAgZm9yIChjb25zdCBDb250YWluZXJOb2RlKiBuID0gcGFy
ZW50T3JIb3N0Tm9kZSgpOyBuOyBuID0gbi0+cGFyZW50T3JIb3N0Tm9kZSgpKSB7CisgICAgICAg
IGlmIChuID09IG90aGVyKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDY1OTNmNzhlMjJhNWFkMjEzYWIxMjgyNmQ5OTc1
ZGYyMjU4OGIxYjQuLjQ4ZTIwYTUyM2Q3NmU0ZWQ3YzNlMjI1ZTBhMWYzZjY4YmE5ZDA2YWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuaApAQCAtNDg3LDggKzQ4Nyw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2hlY2tT
ZXRQcmVmaXgoY29uc3QgQXRvbWljU3RyaW5nJiBwcmVmaXgsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBib29sIGlzRGVzY2VuZGFudE9mKGNvbnN0IE5vZGUqKSBjb25zdDsKKyAgICBib29sIGlzRGVz
Y2VuZGFudE9mQWNyb3NzU2NvcGVzKGNvbnN0IE5vZGUqKSBjb25zdDsKICAgICBib29sIGNvbnRh
aW5zKGNvbnN0IE5vZGUqKSBjb25zdDsKLSAgICBib29sIGNvbnRhaW5zSW5jbHVkaW5nU2hhZG93
RE9NKE5vZGUqKTsKKyAgICBib29sIGNvbnRhaW5zSW5jbHVkaW5nU2hhZG93RE9NKGNvbnN0IE5v
ZGUqKSBjb25zdDsKIAogICAgIC8vIFVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgcmFuZ2Ugb2Zm
c2V0cyB1c2UgY2hhcmFjdGVycyBvciBub2RlIGluZGljZXMuCiAgICAgdmlydHVhbCBib29sIG9m
ZnNldEluQ2hhcmFjdGVycygpIGNvbnN0OwpAQCAtODkxLDYgKzg5MiwxNiBAQCBpbmxpbmUgdm9p
ZCBOb2RlOjpsYXp5UmVhdHRhY2goU2hvdWxkU2V0QXR0YWNoZWQgc2hvdWxkU2V0QXR0YWNoZWQp
CiAgICAgbGF6eUF0dGFjaChzaG91bGRTZXRBdHRhY2hlZCk7CiB9CiAKK2lubGluZSBib29sIE5v
ZGU6OmNvbnRhaW5zKGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIG5vZGUg
JiYgKG5vZGUgPT0gdGhpcyB8fCBub2RlLT5pc0Rlc2NlbmRhbnRPZih0aGlzKSk7Cit9CisKK2lu
bGluZSBib29sIE5vZGU6OmNvbnRhaW5zSW5jbHVkaW5nU2hhZG93RE9NKGNvbnN0IE5vZGUqIG5v
ZGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIG5vZGUgJiYgKG5vZGUgPT0gdGhpcyB8fCBub2RlLT5p
c0Rlc2NlbmRhbnRPZkFjcm9zc1Njb3Blcyh0aGlzKSk7Cit9CisKIH0gLy9uYW1lc3BhY2UKIAog
I2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlMjUyYWE5N2MwNzM5MWJjZjI0ODZiMTFiYTRkYTc4YTZk
OGZmNTEzLi45NzJmOGI5MTljZjdlZWI4MDU3MWU0NTQxNTU3OGUzY2I2M2YwM2ExIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTItMTEtMjYgIEhhamltZSBNb3JyaXRhICA8bW9ycml0YUBnb29n
bGUuY29tPgorCisgICAgICAgIFtTaGFkb3cgRE9NXSBOb2RlOjpjb250YWlucygpIHNob3VsZCBy
ZXR1cm4gdHJ1ZSBmb3Igbm9kZXMgaW4gdGhlIHNoYWRvdyB0cmVlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMyMTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9ub2RlLWFw
cGVuZC1jaGlsZC1jcm9zcy1ib3VuZGFyeS1jaXJjbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvbm9kZS1hcHBlbmQtY2hpbGQtY3Jvc3MtYm91bmRhcnkt
Y2lyY2xlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9ub2RlLWNvbnRh
aW5zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L25vZGUt
Y29udGFpbnMuaHRtbDogQWRkZWQuCisKIDIwMTItMTEtMjggIFRvbW15IFdpZGVuZmx5Y2h0ICA8
dG9tbXl3QGdvb2dsZS5jb20+CiAKICAgICAgICAgQWRkIGJhc2ljIGltcGxlbWVudGF0aW9uIGZv
ciBNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvbm9kZS1hcHBlbmQtY2hpbGQtY3Jvc3MtYm91bmRhcnktY3ljbGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25vZGUtYXBwZW5kLWNo
aWxkLWNyb3NzLWJvdW5kYXJ5LWN5Y2xlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmZhZTc5
MzhlYWI3N2NhMmM2YTBkYTE1MDQ1ZGRkNWE0NTc1ZjE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25vZGUtYXBwZW5kLWNoaWxkLWNyb3NzLWJvdW5kYXJ5
LWN5Y2xlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACitOb2RlOjphcHBlbmRDaGlsZCgp
IHNob3VsZCBiZSBwcmV2ZW50ZWQgYWdhaW5zdCBjcm9zcyBib3VuZGFyeSBjaXJjbGUKKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc2hhZG93LmFwcGVuZENoaWxkKGhvc3Qp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0
aW9uIDMuCitQQVNTIHNoYWRvdy5hcHBlbmRDaGlsZChwYXJlbnQpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMuCitQQVNTIHNoYWRv
d0NoaWxkLmFwcGVuZENoaWxkKGhvc3QpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5
UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMuCitQQVNTIHNoYWRvd0NoaWxkLmFwcGVuZENo
aWxkKHBhcmVudCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6
IERPTSBFeGNlcHRpb24gMy4KK1BBU1Mgc2hhZG93Q2hpbGQuYXBwZW5kQ2hpbGQoc2hhZG93KSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlv
biAzLgorUEFTUyBob3N0SW5TaGFkb3cuYXBwZW5kQ2hpbGQoaG9zdCkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KK1BBU1MgaG9z
dEluU2hhZG93LmFwcGVuZENoaWxkKHBhcmVudCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVy
YXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KK1BBU1MgaG9zdEluU2hhZG93LmFw
cGVuZENoaWxkKHNoYWRvdykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0
RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KK1BBU1MgaG9zdEluU2hhZG93LmFwcGVuZENoaWxkKHNo
YWRvd0NoaWxkKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjog
RE9NIEV4Y2VwdGlvbiAzLgorUEFTUyBuZXN0ZWRTaGFkb3cuYXBwZW5kQ2hpbGQoaG9zdCkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24g
My4KK1BBU1MgbmVzdGVkU2hhZG93LmFwcGVuZENoaWxkKHBhcmVudCkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KK1BBU1MgbmVz
dGVkU2hhZG93LmFwcGVuZENoaWxkKHNoYWRvdykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVy
YXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KK1BBU1MgbmVzdGVkU2hhZG93LmFw
cGVuZENoaWxkKHNoYWRvd0NoaWxkKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJl
cXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgorUEFTUyBuZXN0ZWRTaGFkb3cuYXBwZW5kQ2hp
bGQoaG9zdEluU2hhZG93KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RF
cnJvcjogRE9NIEV4Y2VwdGlvbiAzLgorUEFTUyBuZXN0ZWRTaGFkb3dDaGlsZC5hcHBlbmRDaGls
ZChob3N0KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9N
IEV4Y2VwdGlvbiAzLgorUEFTUyBuZXN0ZWRTaGFkb3dDaGlsZC5hcHBlbmRDaGlsZChwYXJlbnQp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0
aW9uIDMuCitQQVNTIG5lc3RlZFNoYWRvd0NoaWxkLmFwcGVuZENoaWxkKHNoYWRvdykgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4K
K1BBU1MgbmVzdGVkU2hhZG93Q2hpbGQuYXBwZW5kQ2hpbGQoc2hhZG93Q2hpbGQpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMuCitQ
QVNTIG5lc3RlZFNoYWRvd0NoaWxkLmFwcGVuZENoaWxkKGhvc3RJblNoYWRvdykgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KK1BB
U1MgbmVzdGVkU2hhZG93Q2hpbGQuYXBwZW5kQ2hpbGQobmVzdGVkU2hhZG93KSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9ub2RlLWFwcGVuZC1jaGlsZC1jcm9zcy1i
b3VuZGFyeS1jeWNsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25vZGUtYXBw
ZW5kLWNoaWxkLWNyb3NzLWJvdW5kYXJ5LWN5Y2xlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTA1OWU2MTVi
NzY0YTRiNDhiNDk2YTNhMGJmNWUxMGNkNGFlODA2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9ub2RlLWFwcGVuZC1jaGlsZC1jcm9zcy1ib3VuZGFyeS1j
eWNsZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIk5vZGU6OmFwcGVu
ZENoaWxkKCkgc2hvdWxkIGJlIHByZXZlbnRlZCBhZ2FpbnN0IGNyb3NzIGJvdW5kYXJ5IGNpcmNs
ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgZXJyb3IgPSAiJ0Vycm9yOiBIaWVy
YXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyciCisgICAgc2hvdWxkVGhyb3coInNo
YWRvdy5hcHBlbmRDaGlsZChob3N0KSIsIGVycm9yKTsKKyAgICBzaG91bGRUaHJvdygic2hhZG93
LmFwcGVuZENoaWxkKHBhcmVudCkiLCBlcnJvcik7CisKKyAgICBzaG91bGRUaHJvdygic2hhZG93
Q2hpbGQuYXBwZW5kQ2hpbGQoaG9zdCkiLCBlcnJvcik7CisgICAgc2hvdWxkVGhyb3coInNoYWRv
d0NoaWxkLmFwcGVuZENoaWxkKHBhcmVudCkiLCBlcnJvcik7CisgICAgc2hvdWxkVGhyb3coInNo
YWRvd0NoaWxkLmFwcGVuZENoaWxkKHNoYWRvdykiLCBlcnJvcik7CisKKyAgICBzaG91bGRUaHJv
dygiaG9zdEluU2hhZG93LmFwcGVuZENoaWxkKGhvc3QpIiwgZXJyb3IpOworICAgIHNob3VsZFRo
cm93KCJob3N0SW5TaGFkb3cuYXBwZW5kQ2hpbGQocGFyZW50KSIsIGVycm9yKTsKKyAgICBzaG91
bGRUaHJvdygiaG9zdEluU2hhZG93LmFwcGVuZENoaWxkKHNoYWRvdykiLCBlcnJvcik7CisgICAg
c2hvdWxkVGhyb3coImhvc3RJblNoYWRvdy5hcHBlbmRDaGlsZChzaGFkb3dDaGlsZCkiLCBlcnJv
cik7CisKKyAgICBzaG91bGRUaHJvdygibmVzdGVkU2hhZG93LmFwcGVuZENoaWxkKGhvc3QpIiwg
ZXJyb3IpOworICAgIHNob3VsZFRocm93KCJuZXN0ZWRTaGFkb3cuYXBwZW5kQ2hpbGQocGFyZW50
KSIsIGVycm9yKTsKKyAgICBzaG91bGRUaHJvdygibmVzdGVkU2hhZG93LmFwcGVuZENoaWxkKHNo
YWRvdykiLCBlcnJvcik7CisgICAgc2hvdWxkVGhyb3coIm5lc3RlZFNoYWRvdy5hcHBlbmRDaGls
ZChzaGFkb3dDaGlsZCkiLCBlcnJvcik7CisgICAgc2hvdWxkVGhyb3coIm5lc3RlZFNoYWRvdy5h
cHBlbmRDaGlsZChob3N0SW5TaGFkb3cpIiwgZXJyb3IpOworCisgICAgc2hvdWxkVGhyb3coIm5l
c3RlZFNoYWRvd0NoaWxkLmFwcGVuZENoaWxkKGhvc3QpIiwgZXJyb3IpOworICAgIHNob3VsZFRo
cm93KCJuZXN0ZWRTaGFkb3dDaGlsZC5hcHBlbmRDaGlsZChwYXJlbnQpIiwgZXJyb3IpOworICAg
IHNob3VsZFRocm93KCJuZXN0ZWRTaGFkb3dDaGlsZC5hcHBlbmRDaGlsZChzaGFkb3cpIiwgZXJy
b3IpOworICAgIHNob3VsZFRocm93KCJuZXN0ZWRTaGFkb3dDaGlsZC5hcHBlbmRDaGlsZChzaGFk
b3dDaGlsZCkiLCBlcnJvcik7CisgICAgc2hvdWxkVGhyb3coIm5lc3RlZFNoYWRvd0NoaWxkLmFw
cGVuZENoaWxkKGhvc3RJblNoYWRvdykiLCBlcnJvcik7CisgICAgc2hvdWxkVGhyb3coIm5lc3Rl
ZFNoYWRvd0NoaWxkLmFwcGVuZENoaWxkKG5lc3RlZFNoYWRvdykiLCBlcnJvcik7CisKK30KKwor
dmFyIHBhcmVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwordmFyIGhvc3QgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK3BhcmVudC5hcHBlbmRDaGlsZChob3N0KTsK
K3ZhciBzaGFkb3cgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKK3ZhciBzaGFkb3dDaGls
ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworc2hhZG93LmFwcGVuZENoaWxkKHNo
YWRvd0NoaWxkKTsKK3ZhciBob3N0SW5TaGFkb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKK3NoYWRvd0NoaWxkLmFwcGVuZENoaWxkKGhvc3RJblNoYWRvdyk7Cit2YXIgbmVzdGVk
U2hhZG93ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdEluU2hhZG93KTsKK3ZhciBuZXN0ZWRT
aGFkb3dDaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworbmVzdGVkU2hhZG93
LmFwcGVuZENoaWxkKG5lc3RlZFNoYWRvd0NoaWxkKTsKKwordGVzdCgpOworCis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>