<?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>63607</bug_id>
          
          <creation_ts>2011-06-28 22:11:07 -0700</creation_ts>
          <short_desc>Crash if ShadowRoot has a text node.</short_desc>
          <delta_ts>2011-06-30 00:43:57 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>63504</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>429426</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-06-28 22:11:07 -0700</bug_when>
    <thetext>Reproduction is coming.

Note that this happens only if you use internals testing API.
There is no shadow tree which has text node as its immediate child.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429467</commentid>
    <comment_count>1</comment_count>
      <attachid>99052</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-06-29 00:59:11 -0700</bug_when>
    <thetext>Created attachment 99052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429590</commentid>
    <comment_count>2</comment_count>
      <attachid>99052</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-29 07:23:36 -0700</bug_when>
    <thetext>Comment on attachment 99052
Patch

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

&gt; Source/WebCore/dom/Element.cpp:1109
&gt; +        RefPtr&lt;RenderStyle&gt; newStyle = styleForRenderer(NodeRenderingContext(this, 0));

Using NodeRenderingContext(this, 0) constructor as a way to avoid running initialization code in NodeRenderingContext(Node*) seems inelegant. It seems we are having an abstraction problem here. It&apos;s not obvious what (this, 0) means in the context of this call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429663</commentid>
    <comment_count>3</comment_count>
      <attachid>99052</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-29 09:18:38 -0700</bug_when>
    <thetext>Comment on attachment 99052
Patch

It seems like styleForRenderer is begging to be devirtualized and folded into NodeRenderingContext ... or something...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430170</commentid>
    <comment_count>4</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-06-29 22:12:27 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 99052 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=99052&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Element.cpp:1109
&gt; &gt; +        RefPtr&lt;RenderStyle&gt; newStyle = styleForRenderer(NodeRenderingContext(this, 0));
&gt; 
&gt; Using NodeRenderingContext(this, 0) constructor as a way to avoid running initialization code in NodeRenderingContext(Node*) seems inelegant. It seems we are having an abstraction problem here. It&apos;s not obvious what (this, 0) means in the context of this call.
Well, I&apos;ll introduce tag-type for making it clear.

(In reply to comment #3)
&gt; (From update of attachment 99052 [details])
&gt; It seems like styleForRenderer is begging to be devirtualized and folded into NodeRenderingContext ... or something...
Yes. That&apos;s what I tried to do at first...
or it might be a part of CSSSelector because it knows the parent node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430188</commentid>
    <comment_count>5</comment_count>
      <attachid>99052</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-29 22:54:55 -0700</bug_when>
    <thetext>Comment on attachment 99052
Patch

Rejecting attachment 99052 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=ec2-cq-02&apos;, &apos;--port...&quot; exit_code: 2

Last 500 characters of output:
57086529701d950b16c617d4401733e5f55b8e22
r90088 = 03758942d934755c9c03bc963fb16a1d5258ea7d
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.
Updating chromium port dependencies using gclient...

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/8966336</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430203</commentid>
    <comment_count>6</comment_count>
      <attachid>99243</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-06-29 23:47:00 -0700</bug_when>
    <thetext>Created attachment 99243
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430205</commentid>
    <comment_count>7</comment_count>
      <attachid>99244</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-06-29 23:50:14 -0700</bug_when>
    <thetext>Created attachment 99244
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430226</commentid>
    <comment_count>8</comment_count>
      <attachid>99244</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-30 00:43:53 -0700</bug_when>
    <thetext>Comment on attachment 99244
patch for landing

Clearing flags on attachment: 99244

Committed r90094: &lt;http://trac.webkit.org/changeset/90094&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430227</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-30 00:43:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99052</attachid>
            <date>2011-06-29 00:59:11 -0700</date>
            <delta_ts>2011-06-29 23:46:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63607-20110629165909.patch</filename>
            <type>text/plain</type>
            <size>12127</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODk5ODYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5ODU5MGE0NjllZjU1MjVhMjg5MmEz
ODUwY2E5MzVkNzQ4MDIyYTRmLi4xYjc4OTcxZGQyNjYwNjUzMzFiMzdkMDMyM2E2NTY1MjE1M2E1
NTA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDYtMjggIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ3Jhc2ggaWYgU2hhZG93Um9vdCBoYXMgYSB0ZXh0IG5vZGUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzYwNworCisgICAgICAg
IE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAg
KiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtdGV4dC1jaGlsZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC10ZXh0LWNoaWxkLmh0
bWw6IEFkZGVkLgorCiAyMDExLTA2LTI4ICBBZGFtIExhbmdsZXkgIDxhZ2xAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtdGV4dC1jaGlsZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtdGV4dC1jaGlsZC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTYxNDZhYWVhZTJjMTIzZTAxZGFjMjAyOTI5N2E1OGJkMTk2
MGRjZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctcm9vdC10ZXh0LWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTIHVubGVz
cyBjcmFzaApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1y
b290LXRleHQtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
cm9vdC10ZXh0LWNoaWxkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODUwZDQ1YTk4ZWIxYTgxN2NiYTcxZDNm
ODI4ZDhhMTc0MmI2NjRmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC10ZXh0LWNoaWxkLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0U2hvdWxkTm90Q3Jhc2goKQorewor
ICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICByZXR1cm47Cisg
ICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB2YXIgcm9v
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHZhciBzaGFkb3cgPSBpbnRl
cm5hbHMuZW5zdXJlU2hhZG93Um9vdChyb290KTsKKyAgICB2YXIgc2hhZG93QnVpbGRlciA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHNoYWRvd0J1aWxkZXIuaW5uZXJIVE1M
ID0gIjxkaXY+PC9kaXY+eCI7CisgICAgd2hpbGUgKHNoYWRvd0J1aWxkZXIuZmlyc3RDaGlsZCkK
KyAgICAgICAgc2hhZG93LmFwcGVuZENoaWxkKHNoYWRvd0J1aWxkZXIuZmlyc3RDaGlsZCk7Cisg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyb290KTsKKyAgICBkb2N1bWVudC5ib2R5Lm9m
ZnNldExlZnQ7CisgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiUEFTUyB1bmxlc3MgY3Jh
c2giOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RTaG91bGROb3RD
cmFzaCgpIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzZTM4ZDVmYzY0ZjA4ZjZk
ZGIxNTE1NTBmMGVjMjY3NjcyOWRmMzc0Li45MDRmNmNjOWY0NjYwNzk0NTI2NjcxZThhNmU0MzI0
MjM1NGZmZmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDYtMjkgIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ3Jhc2ggaWYgU2hhZG93Um9vdCBoYXMgYSB0ZXh0IG5v
ZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzYw
NworICAgICAgICAKKyAgICAgICAgTm9kZTo6c3R5bGVGb3JSZW5kZXJlcigpIGZvciBUZXh0IG5v
ZGUgd2Fzbid0IHNoYWRvdy1hd2FyZS4KKyAgICAgICAgVGhpcyBjaGFuZ2UgYWxsb3cgc3R5bGVG
b3JSZW5kZXJlcigpIHRvIGtub3cgaXRzIHZpc3VhbCBwYXJlbnQgYnkKKyAgICAgICAgcGFzc2lu
ZyBOb2RlUmVuZGVyaW5nQ29udGV4dC4KKyAgICAgICAgCisgICAgICAgIENoYW5nZXMgb3RoZXIg
dGhhbiBOb2RlUmVuZGVyaW5nQ29udGV4dCBhbmQgRWxlbWVudCBpcyBqdXN0IGEKKyAgICAgICAg
Zm9sbG93IHVwIGZvciBjaGFuZ2UgYWJvdmUuCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6
IHVzZSBOb2RlUmVuZGVyaW5nQ29udGV4dCB0byByZXNvbHZlIHBhcmVudCBub2RlLgorICAgICAg
ICAoV2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5bGUpOgorICAgICAgICAqIGRvbS9Ob2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnN0eWxlRm9yUmVuZGVyZXIpOiBBZGRlZCBOb2Rl
UmVuZGVyaW5nQ29udGV4dCBhcyBhIHBhcmFtZXRlci4KKyAgICAgICAgKiBkb20vTm9kZS5oOgor
ICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlckFuZFN0eWxlKToKKyAgICAgICAg
KiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9w
dEdyb3VwRWxlbWVudDo6YXR0YWNoKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50OjphdHRhY2gpOgorICAg
ICAgICAqIGh0bWwvSFRNTFRpdGxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VGl0bGVFbGVtZW50Ojp0ZXh0V2l0aERpcmVjdGlvbik6CisgICAgICAgICogaHRtbC9zaGFkb3cv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb250
cm9sSW5uZXJFbGVtZW50OjpzdHlsZUZvclJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6c3R5bGVGb3JSZW5kZXJlcik6CisgICAgICAgICog
aHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmg6CisKKyAgICAgICAgVGVzdDog
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXRleHQtY2hpbGQuaHRtbAorICAgICAgICAKIDIw
MTEtMDYtMjggIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGQxOTBlNTY3
MjYwYjcwODU2OTk5MjgwNDA0MmE5NzU2YTQwZDUxMzguLjkxMWVmOTFkYjFlYjNhNTc2NzM0ZTI4
YTViZTVkZjVjZDMzYzA4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTUwLDYgKzUwLDcg
QEAKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJOb2Rl
TGlzdC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIk5vZGVSZW5k
ZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVy
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgpAQCAtMTEwNSw3ICsxMTA2LDcgQEAgdm9pZCBF
bGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgICAgICAgICByYXJl
RGF0YSgpLT5yZXNldENvbXB1dGVkU3R5bGUoKTsKICAgICB9CiAgICAgaWYgKGhhc1BhcmVudFN0
eWxlICYmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCBuZWVkc1N0eWxlUmVjYWxjKCkpKSB7Ci0gICAg
ICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBzdHlsZUZvclJlbmRlcmVyKCk7Cisg
ICAgICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBzdHlsZUZvclJlbmRlcmVyKE5v
ZGVSZW5kZXJpbmdDb250ZXh0KHRoaXMsIDApKTsKICAgICAgICAgU3R5bGVDaGFuZ2UgY2ggPSBk
aWZmKGN1cnJlbnRTdHlsZS5nZXQoKSwgbmV3U3R5bGUuZ2V0KCkpOwogICAgICAgICBpZiAoY2gg
PT0gRGV0YWNoIHx8ICFjdXJyZW50U3R5bGUpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGUg
c3R5bGUgZ2V0cyBjb21wdXRlZCB0d2ljZSBieSBjYWxsaW5nIGF0dGFjaC4gV2UgY291bGQgZG8g
YmV0dGVyIGlmIHdlIHBhc3NlZCB0aGUgc3R5bGUgYWxvbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXgg
NzExNzQxOTU0NzM4YzRkZWQyNWRhZGM0OTE3NjliNWI4ODYxNTAzNC4uYTIzNTY0NDc1YjNkMTNm
NTQzY2Q3NWZjNDViNzQyNTFlZGU2ZGE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMTQ0OSw3ICsx
NDQ5LDcgQEAgdm9pZCBOb2RlOjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKCkKICAgICBOb2RlUmVu
ZGVyZXJGYWN0b3J5KHRoaXMpLmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQoKTsKIH0KIAotUGFzc1Jl
ZlB0cjxSZW5kZXJTdHlsZT4gTm9kZTo6c3R5bGVGb3JSZW5kZXJlcigpCitQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBOb2RlOjpzdHlsZUZvclJlbmRlcmVyKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250
ZXh0JiBjb250ZXh0KQogewogICAgIGlmIChpc0VsZW1lbnROb2RlKCkpIHsKICAgICAgICAgYm9v
bCBhbGxvd1NoYXJpbmcgPSB0cnVlOwpAQCAtMTQ1OSw3ICsxNDU5LDkgQEAgUGFzc1JlZlB0cjxS
ZW5kZXJTdHlsZT4gTm9kZTo6c3R5bGVGb3JSZW5kZXJlcigpCiAjZW5kaWYKICAgICAgICAgcmV0
dXJuIGRvY3VtZW50KCktPnN0eWxlU2VsZWN0b3IoKS0+c3R5bGVGb3JFbGVtZW50KHN0YXRpY19j
YXN0PEVsZW1lbnQqPih0aGlzKSwgMCwgYWxsb3dTaGFyaW5nKTsKICAgICB9Ci0gICAgcmV0dXJu
IHBhcmVudE5vZGUoKSAmJiBwYXJlbnROb2RlKCktPnJlbmRlcmVyKCkgPyBwYXJlbnROb2RlKCkt
PnJlbmRlcmVyKCktPnN0eWxlKCkgOiAwOworICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVy
ID0gY29udGV4dC5wYXJlbnRSZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gcmVuZGVyZXItPnN0
eWxlKCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIGJvb2wgTm9kZTo6cmVuZGVyZXJJc05lZWRlZChj
b25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDcyNTM3
Y2I4NjY5ZmQ2Njg3Y2Q4YmQ4M2JlMmU1Y2I5ZTQ5N2YwMWIuLjlkZmNlMDg3MGNmNGI1NGJjOGNk
NjNkNDI4NWEyNTY2MGJmNzYwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtNDU1LDcgKzQ1NSw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlKCk7CiAgICAgdm9pZCBjcmVhdGVS
ZW5kZXJlcklmTmVlZGVkKCk7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBz
dHlsZUZvclJlbmRlcmVyKCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBz
dHlsZUZvclJlbmRlcmVyKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0Jik7CiAgICAgdmlydHVh
bCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKTsKICAg
ICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihOb2RlKikgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihS
ZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5k
ZXJpbmdDb250ZXh0LmNwcAppbmRleCA3ZmM4N2I5NzM1MDI0ZTYyZjM0ZjRlODJjNjFhZmM2Yzlm
YjdmZWU3Li40M2U1OGVmZjY2NGRiMTQyNTc2ZDU0MmNkYzJmMWU4YzNmMjU3ZDNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTIzMiw3ICsyMzIs
NyBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJlckZhY3Rvcnk6OmNyZWF0ZVJlbmRlcmVyQW5k
U3R5bGUoKQogICAgIGlmICghbV9jb250ZXh0LnNob3VsZENyZWF0ZVJlbmRlcmVyKCkpCiAgICAg
ICAgIHJldHVybiAwOwogCi0gICAgbV9jb250ZXh0LnNldFN0eWxlKG5vZGUtPnN0eWxlRm9yUmVu
ZGVyZXIoKSk7CisgICAgbV9jb250ZXh0LnNldFN0eWxlKG5vZGUtPnN0eWxlRm9yUmVuZGVyZXIo
bV9jb250ZXh0KSk7CiAgICAgaWYgKCFub2RlLT5yZW5kZXJlcklzTmVlZGVkKG1fY29udGV4dCkp
CiAgICAgICAgIHJldHVybiAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPcHRHcm91cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBF
bGVtZW50LmNwcAppbmRleCA5ODdlYjUxY2VjZGIxMzkwOTE5YWMwNGU3YTIwMGE3MGQ0Nzg2NjRj
Li5mOGMyNGMzOTFjMTc5M2EyZjFhMThiMzNhMmIwODEzNmNiZDkwOTZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlck1lbnVMaXN0Lmgi
CiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0Nv
bnRleHQuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTg5LDcgKzkwLDcgQEAgdm9pZCBIVE1MT3B0R3JvdXBFbGVtZW50OjpyZWNhbGNT
ZWxlY3RPcHRpb25zKCkKIHZvaWQgSFRNTE9wdEdyb3VwRWxlbWVudDo6YXR0YWNoKCkKIHsKICAg
ICBpZiAocGFyZW50Tm9kZSgpLT5yZW5kZXJTdHlsZSgpKQotICAgICAgICBzZXRSZW5kZXJTdHls
ZShzdHlsZUZvclJlbmRlcmVyKCkpOworICAgICAgICBzZXRSZW5kZXJTdHlsZShzdHlsZUZvclJl
bmRlcmVyKE5vZGVSZW5kZXJpbmdDb250ZXh0KHRoaXMsIDApKSk7CiAgICAgSFRNTEZvcm1Db250
cm9sRWxlbWVudDo6YXR0YWNoKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9u
RWxlbWVudC5jcHAKaW5kZXggOTY2ZjgzNzRlMzMxOWJkMjJhM2FiMjA1MDVkZTI2OWUyODJhMzFi
My4uMjQxNjZkZTQwNjgyZWVmZWMxMDc2ZmM4OWY3YTdiZjE5M2I5ZTllYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgogI2luY2x1
ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIk5vZGVSZW5kZXJpbmdDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyTWVudUxpc3QuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtODEsNyArODIsNyBAQCBQYXNzUmVmUHRyPEhUTUxP
cHRpb25FbGVtZW50PiBIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlRm9ySlNDb25zdHJ1Y3RvcihE
b2N1bWVudAogdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6YXR0YWNoKCkKIHsKICAgICBpZiAocGFy
ZW50Tm9kZSgpLT5yZW5kZXJTdHlsZSgpKQotICAgICAgICBzZXRSZW5kZXJTdHlsZShzdHlsZUZv
clJlbmRlcmVyKCkpOworICAgICAgICBzZXRSZW5kZXJTdHlsZShzdHlsZUZvclJlbmRlcmVyKE5v
ZGVSZW5kZXJpbmdDb250ZXh0KHRoaXMsIDApKSk7CiAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVu
dDo6YXR0YWNoKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRp
dGxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuY3Bw
CmluZGV4IGIwNDZjN2I1OTA1ODJhMDkwMWU2YTg0MTAyZDZkMjg3MWEzYzEwNzcuLmMxZTk2ZjFm
NzdmZDg1MzZmZWI5MmJjODFhYjZjNTAyM2Y1MWFmZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGl0bGVFbGVtZW50LmNwcApAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJOb2RlUmVuZGVyaW5nQ29u
dGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCkBA
IC04MCw3ICs4MSw3IEBAIFN0cmluZ1dpdGhEaXJlY3Rpb24gSFRNTFRpdGxlRWxlbWVudDo6dGV4
dFdpdGhEaXJlY3Rpb24oKQogICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uID0gTFRSOwogICAg
IGlmIChSZW5kZXJTdHlsZSogc3R5bGUgPSBjb21wdXRlZFN0eWxlKCkpCiAgICAgICAgIGRpcmVj
dGlvbiA9IHN0eWxlLT5kaXJlY3Rpb24oKTsKLSAgICBlbHNlIGlmIChSZWZQdHI8UmVuZGVyU3R5
bGU+IHN0eWxlID0gc3R5bGVGb3JSZW5kZXJlcigpKQorICAgIGVsc2UgaWYgKFJlZlB0cjxSZW5k
ZXJTdHlsZT4gc3R5bGUgPSBzdHlsZUZvclJlbmRlcmVyKE5vZGVSZW5kZXJpbmdDb250ZXh0KHRo
aXMsIDApKSkKICAgICAgICAgZGlyZWN0aW9uID0gc3R5bGUtPmRpcmVjdGlvbigpOwogICAgIHJl
dHVybiBTdHJpbmdXaXRoRGlyZWN0aW9uKHRleHQoKSwgZGlyZWN0aW9uKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMu
Y3BwCmluZGV4IDk0YzkzYjEzOTdiMWFiYTY5YzgzMWUwNzRiNDEzZGM0ZGM0YzhjODguLjhiNmY5
OGVkZTFiODgwMzQwZDA4Zjg3MjIyODEwZjc3ZGUxNTg3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAt
NTgsNyArNTgsNyBAQCBQYXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJFbGVtZW50PiBUZXh0Q29u
dHJvbElubmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkbwogICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgVGV4dENvbnRyb2xJbm5lckVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAotUGFzc1JlZlB0
cjxSZW5kZXJTdHlsZT4gVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OnN0eWxlRm9yUmVuZGVyZXIo
KQorUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OnN0eWxl
Rm9yUmVuZGVyZXIoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKQogewogICAgIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZSogcGFyZW50UmVuZGVyZXIgPSB0b1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZShzaGFkb3dBbmNlc3Rvck5vZGUoKS0+cmVuZGVyZXIoKSk7CiAgICAgcmV0dXJu
IHBhcmVudFJlbmRlcmVyLT5jcmVhdGVJbm5lckJsb2NrU3R5bGUocGFyZW50UmVuZGVyZXItPnN0
eWxlKCkpOwpAQCAtMTA0LDcgKzEwNCw3IEBAIFJlbmRlck9iamVjdCogVGV4dENvbnRyb2xJbm5l
clRleHRFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlCiAgICAg
cmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jayh0aGlzLCBtdWx0
aUxpbmUpOwogfQogCi1QYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBUZXh0Q29udHJvbElubmVyVGV4
dEVsZW1lbnQ6OnN0eWxlRm9yUmVuZGVyZXIoKQorUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gVGV4
dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpzdHlsZUZvclJlbmRlcmVyKGNvbnN0IE5vZGVSZW5k
ZXJpbmdDb250ZXh0JikKIHsKICAgICBSZW5kZXJUZXh0Q29udHJvbCogcGFyZW50UmVuZGVyZXIg
PSB0b1JlbmRlclRleHRDb250cm9sKHNoYWRvd0FuY2VzdG9yTm9kZSgpLT5yZW5kZXJlcigpKTsK
ICAgICByZXR1cm4gcGFyZW50UmVuZGVyZXItPmNyZWF0ZUlubmVyVGV4dFN0eWxlKHBhcmVudFJl
bmRlcmVyLT5zdHlsZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKaW5kZXggOGI5YjBhYTNmYWU4MWMzYzc4NmE3OWJm
OGVkNmE5ZGY3ZDdkNGM0Mi4uNmQ0YTJiZjNlZDIwOGNhZjkzMjNhMDViMjdiMmVlZDc4YjIwMjI5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5l
ckVsZW1lbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnRzLmgKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAg
ICAgVGV4dENvbnRyb2xJbm5lckVsZW1lbnQoRG9jdW1lbnQqKTsKLSAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yUmVuZGVyZXIoKTsKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yUmVuZGVyZXIoY29uc3QgTm9kZVJlbmRlcmluZ0Nv
bnRleHQmKTsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50KERvY3VtZW50Kik7CiAgICAgdmly
dHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5
bGUqKTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yUmVuZGVy
ZXIoKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yUmVuZGVy
ZXIoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNNb3Vz
ZUZvY3VzYWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99243</attachid>
            <date>2011-06-29 23:47:00 -0700</date>
            <delta_ts>2011-06-29 23:50:07 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-63607-20110630154658.patch</filename>
            <type>text/plain</type>
            <size>12139</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAwODkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiYjFhMTBmYWFmZjg1YjllMzUyZDkw
MTg1NzJkMzBmNjFkMmEyNTAxLi5lYTNmY2Q3ZDA1MDViNWFlYmJhMWU2MmY5NzljMjlkNmRjNjA0
OTJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDYtMjggIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292
LgorCisgICAgICAgIENyYXNoIGlmIFNoYWRvd1Jvb3QgaGFzIGEgdGV4dCBub2RlLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM2MDcKKworICAgICAg
ICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAg
ICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXRleHQtY2hpbGQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtdGV4dC1jaGlsZC5o
dG1sOiBBZGRlZC4KKwogMjAxMS0wNi0yOSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXRleHQtY2hpbGQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXRleHQtY2hp
bGQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2MTQ2YWFlYWUyYzEyM2UwMWRhYzIwMjkyOTdh
NThiZDE5NjBkY2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LXJvb3QtdGV4dC1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorUEFT
UyB1bmxlc3MgY3Jhc2gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctcm9vdC10ZXh0LWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtdGV4dC1jaGlsZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1MGQ0NWE5OGViMWE4MTdj
YmE3MWQzZjgyOGQ4YTE3NDJiNjY0ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtdGV4dC1jaGlsZC5odG1sCkBAIC0wLDAgKzEsMjMg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdFNob3VsZE5vdENyYXNo
KCkKK3sKKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgcmV0
dXJuOworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAg
dmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICB2YXIgc2hhZG93
ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qocm9vdCk7CisgICAgdmFyIHNoYWRvd0J1aWxk
ZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBzaGFkb3dCdWlsZGVyLmlu
bmVySFRNTCA9ICI8ZGl2PjwvZGl2PngiOworICAgIHdoaWxlIChzaGFkb3dCdWlsZGVyLmZpcnN0
Q2hpbGQpCisgICAgICAgIHNoYWRvdy5hcHBlbmRDaGlsZChzaGFkb3dCdWlsZGVyLmZpcnN0Q2hp
bGQpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocm9vdCk7CisgICAgZG9jdW1lbnQu
Ym9keS5vZmZzZXRMZWZ0OworICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gIlBBU1MgdW5s
ZXNzIGNyYXNoIjsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0U2hv
dWxkTm90Q3Jhc2goKSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RiM2FiZjlm
ODAwYmYzOTFiNzJjY2JhODI5NmEwMWY5YTFkMzEyYS4uOGE0ZWUyNjIzOTVmYmJkYTY3MWRmOThl
NDU1YWFkOGQ4OWMyYjVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDExLTA2LTI5
ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IERpbWl0cmkgR2xhemtvdi4KKworICAgICAgICBDcmFzaCBpZiBTaGFkb3dSb290IGhhcyBh
IHRleHQgbm9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYzNjA3CisgICAgICAgIAorICAgICAgICBOb2RlOjpzdHlsZUZvclJlbmRlcmVyKCkgZm9y
IFRleHQgbm9kZSB3YXNuJ3Qgc2hhZG93LWF3YXJlLgorICAgICAgICBUaGlzIGNoYW5nZSBhbGxv
dyBzdHlsZUZvclJlbmRlcmVyKCkgdG8ga25vdyBpdHMgdmlzdWFsIHBhcmVudCBieQorICAgICAg
ICBwYXNzaW5nIE5vZGVSZW5kZXJpbmdDb250ZXh0LgorICAgICAgICAKKyAgICAgICAgQ2hhbmdl
cyBvdGhlciB0aGFuIE5vZGVSZW5kZXJpbmdDb250ZXh0IGFuZCBFbGVtZW50IGlzIGp1c3QgYQor
ICAgICAgICBmb2xsb3cgdXAgZm9yIGNoYW5nZSBhYm92ZS4KKworICAgICAgICAqIGRvbS9FbGVt
ZW50LmNwcDogdXNlIE5vZGVSZW5kZXJpbmdDb250ZXh0IHRvIHJlc29sdmUgcGFyZW50IG5vZGUu
CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpyZWNhbGNTdHlsZSk6CisgICAgICAgICogZG9t
L05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c3R5bGVGb3JSZW5kZXJlcik6IEFk
ZGVkIE5vZGVSZW5kZXJpbmdDb250ZXh0IGFzIGEgcGFyYW1ldGVyLgorICAgICAgICAqIGRvbS9O
b2RlLmg6CisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGVSZW5kZXJlckZhY3Rvcnk6OmNyZWF0ZVJlbmRlcmVyQW5kU3R5bGUpOgor
ICAgICAgICAqIGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MT3B0R3JvdXBFbGVtZW50OjphdHRhY2gpOgorICAgICAgICAqIGh0bWwvSFRNTE9wdGlv
bkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6OmF0dGFj
aCk6CisgICAgICAgICogaHRtbC9IVE1MVGl0bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUaXRsZUVsZW1lbnQ6OnRleHRXaXRoRGlyZWN0aW9uKToKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OnN0eWxlRm9yUmVuZGVyZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpzdHlsZUZvclJlbmRlcmVyKToKKyAg
ICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaDoKKworICAgICAg
ICBUZXN0OiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtdGV4dC1jaGlsZC5odG1sCisgICAg
ICAgIAogMjAxMS0wNi0yOSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmlu
ZGV4IDZjYzAyZTIwYzI5NDk5ZjI0YzlhNzg2YzdkMTY0Y2Y0YWFkYmMyMjMuLjk0MjI1Y2I2MjI1
NjYzZjYxMGFjOThmZTRkNzE3NDI4MTZmOWJlODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAg
LTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNp
bmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1
ZGUgIk5vZGVSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgpAQCAtMTEwNSw3ICsxMTA2
LDcgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAg
ICAgICAgICByYXJlRGF0YSgpLT5yZXNldENvbXB1dGVkU3R5bGUoKTsKICAgICB9CiAgICAgaWYg
KGhhc1BhcmVudFN0eWxlICYmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCBuZWVkc1N0eWxlUmVjYWxj
KCkpKSB7Ci0gICAgICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBzdHlsZUZvclJl
bmRlcmVyKCk7CisgICAgICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBzdHlsZUZv
clJlbmRlcmVyKE5vZGVSZW5kZXJpbmdDb250ZXh0KHRoaXMsIDApKTsKICAgICAgICAgU3R5bGVD
aGFuZ2UgY2ggPSBkaWZmKGN1cnJlbnRTdHlsZS5nZXQoKSwgbmV3U3R5bGUuZ2V0KCkpOwogICAg
ICAgICBpZiAoY2ggPT0gRGV0YWNoIHx8ICFjdXJyZW50U3R5bGUpIHsKICAgICAgICAgICAgIC8v
IEZJWE1FOiBUaGUgc3R5bGUgZ2V0cyBjb21wdXRlZCB0d2ljZSBieSBjYWxsaW5nIGF0dGFjaC4g
V2UgY291bGQgZG8gYmV0dGVyIGlmIHdlIHBhc3NlZCB0aGUgc3R5bGUgYWxvbmcuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5jcHAKaW5kZXggNzExNzQxOTU0NzM4YzRkZWQyNWRhZGM0OTE3NjliNWI4ODYxNTAzNC4uYTIz
NTY0NDc1YjNkMTNmNTQzY2Q3NWZjNDViNzQyNTFlZGU2ZGE2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApA
QCAtMTQ0OSw3ICsxNDQ5LDcgQEAgdm9pZCBOb2RlOjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKCkK
ICAgICBOb2RlUmVuZGVyZXJGYWN0b3J5KHRoaXMpLmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQoKTsK
IH0KIAotUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gTm9kZTo6c3R5bGVGb3JSZW5kZXJlcigpCitQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPiBOb2RlOjpzdHlsZUZvclJlbmRlcmVyKGNvbnN0IE5vZGVS
ZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KQogewogICAgIGlmIChpc0VsZW1lbnROb2RlKCkpIHsK
ICAgICAgICAgYm9vbCBhbGxvd1NoYXJpbmcgPSB0cnVlOwpAQCAtMTQ1OSw3ICsxNDU5LDkgQEAg
UGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gTm9kZTo6c3R5bGVGb3JSZW5kZXJlcigpCiAjZW5kaWYK
ICAgICAgICAgcmV0dXJuIGRvY3VtZW50KCktPnN0eWxlU2VsZWN0b3IoKS0+c3R5bGVGb3JFbGVt
ZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPih0aGlzKSwgMCwgYWxsb3dTaGFyaW5nKTsKICAgICB9
Ci0gICAgcmV0dXJuIHBhcmVudE5vZGUoKSAmJiBwYXJlbnROb2RlKCktPnJlbmRlcmVyKCkgPyBw
YXJlbnROb2RlKCktPnJlbmRlcmVyKCktPnN0eWxlKCkgOiAwOworICAgIGlmIChSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyID0gY29udGV4dC5wYXJlbnRSZW5kZXJlcigpKQorICAgICAgICByZXR1cm4g
cmVuZGVyZXItPnN0eWxlKCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIGJvb2wgTm9kZTo6cmVuZGVy
ZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
CmluZGV4IDcyNTM3Y2I4NjY5ZmQ2Njg3Y2Q4YmQ4M2JlMmU1Y2I5ZTQ5N2YwMWIuLjlkZmNlMDg3
MGNmNGI1NGJjOGNkNjNkNDI4NWEyNTY2MGJmNzYwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtNDU1LDcg
KzQ1NSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlKCk7CiAgICAg
dm9pZCBjcmVhdGVSZW5kZXJlcklmTmVlZGVkKCk7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBzdHlsZUZvclJlbmRlcmVyKCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBzdHlsZUZvclJlbmRlcmVyKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0Jik7
CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0Nv
bnRleHQmKTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihOb2Rl
KikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVh
dGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA3ZmM4N2I5NzM1MDI0ZTYyZjM0ZjRl
ODJjNjFhZmM2YzlmYjdmZWU3Li40M2U1OGVmZjY2NGRiMTQyNTc2ZDU0MmNkYzJmMWU4YzNmMjU3
ZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAg
LTIzMiw3ICsyMzIsNyBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJlckZhY3Rvcnk6OmNyZWF0
ZVJlbmRlcmVyQW5kU3R5bGUoKQogICAgIGlmICghbV9jb250ZXh0LnNob3VsZENyZWF0ZVJlbmRl
cmVyKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgbV9jb250ZXh0LnNldFN0eWxlKG5vZGUt
PnN0eWxlRm9yUmVuZGVyZXIoKSk7CisgICAgbV9jb250ZXh0LnNldFN0eWxlKG5vZGUtPnN0eWxl
Rm9yUmVuZGVyZXIobV9jb250ZXh0KSk7CiAgICAgaWYgKCFub2RlLT5yZW5kZXJlcklzTmVlZGVk
KG1fY29udGV4dCkpCiAgICAgICAgIHJldHVybiAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT3B0R3JvdXBFbGVtZW50LmNwcAppbmRleCA5ODdlYjUxY2VjZGIxMzkwOTE5YWMwNGU3YTIw
MGE3MGQ0Nzg2NjRjLi5mOGMyNGMzOTFjMTc5M2EyZjFhMThiMzNhMmIwODEzNmNiZDkwOTZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRl
ck1lbnVMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiTm9k
ZVJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTg5LDcgKzkwLDcgQEAgdm9pZCBIVE1MT3B0R3JvdXBFbGVt
ZW50OjpyZWNhbGNTZWxlY3RPcHRpb25zKCkKIHZvaWQgSFRNTE9wdEdyb3VwRWxlbWVudDo6YXR0
YWNoKCkKIHsKICAgICBpZiAocGFyZW50Tm9kZSgpLT5yZW5kZXJTdHlsZSgpKQotICAgICAgICBz
ZXRSZW5kZXJTdHlsZShzdHlsZUZvclJlbmRlcmVyKCkpOworICAgICAgICBzZXRSZW5kZXJTdHls
ZShzdHlsZUZvclJlbmRlcmVyKE5vZGVSZW5kZXJpbmdDb250ZXh0KHRoaXMsIDApKSk7CiAgICAg
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6YXR0YWNoKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKaW5kZXggOTY2ZjgzNzRlMzMxOWJkMjJhM2FiMjA1MDVk
ZTI2OWUyODJhMzFiMy4uMjQxNjZkZTQwNjgyZWVmZWMxMDc2ZmM4OWY3YTdiZjE5M2I5ZTllYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTMzLDYgKzMz
LDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVu
dC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIk5vZGVSZW5kZXJp
bmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyTWVudUxpc3QuaCIKICNpbmNsdWRlICJUZXh0
LmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtODEsNyArODIsNyBAQCBQYXNz
UmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlRm9ySlND
b25zdHJ1Y3RvcihEb2N1bWVudAogdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6YXR0YWNoKCkKIHsK
ICAgICBpZiAocGFyZW50Tm9kZSgpLT5yZW5kZXJTdHlsZSgpKQotICAgICAgICBzZXRSZW5kZXJT
dHlsZShzdHlsZUZvclJlbmRlcmVyKCkpOworICAgICAgICBzZXRSZW5kZXJTdHlsZShzdHlsZUZv
clJlbmRlcmVyKE5vZGVSZW5kZXJpbmdDb250ZXh0KHRoaXMsIDApKSk7CiAgICAgSFRNTEZvcm1D
b250cm9sRWxlbWVudDo6YXR0YWNoKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRpdGxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRs
ZUVsZW1lbnQuY3BwCmluZGV4IGIwNDZjN2I1OTA1ODJhMDkwMWU2YTg0MTAyZDZkMjg3MWEzYzEw
NzcuLmMxZTk2ZjFmNzdmZDg1MzZmZWI5MmJjODFhYjZjNTAyM2Y1MWFmZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmNwcApAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJOb2Rl
UmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAi
VGV4dC5oIgogCkBAIC04MCw3ICs4MSw3IEBAIFN0cmluZ1dpdGhEaXJlY3Rpb24gSFRNTFRpdGxl
RWxlbWVudDo6dGV4dFdpdGhEaXJlY3Rpb24oKQogICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9u
ID0gTFRSOwogICAgIGlmIChSZW5kZXJTdHlsZSogc3R5bGUgPSBjb21wdXRlZFN0eWxlKCkpCiAg
ICAgICAgIGRpcmVjdGlvbiA9IHN0eWxlLT5kaXJlY3Rpb24oKTsKLSAgICBlbHNlIGlmIChSZWZQ
dHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gc3R5bGVGb3JSZW5kZXJlcigpKQorICAgIGVsc2UgaWYg
KFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBzdHlsZUZvclJlbmRlcmVyKE5vZGVSZW5kZXJp
bmdDb250ZXh0KHRoaXMsIDApKSkKICAgICAgICAgZGlyZWN0aW9uID0gc3R5bGUtPmRpcmVjdGlv
bigpOwogICAgIHJldHVybiBTdHJpbmdXaXRoRGlyZWN0aW9uKHRleHQoKSwgZGlyZWN0aW9uKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuY3BwCmluZGV4IDk0YzkzYjEzOTdiMWFiYTY5YzgzMWUwNzRiNDEzZGM0ZGM0
YzhjODguLjhiNmY5OGVkZTFiODgwMzQwZDA4Zjg3MjIyODEwZjc3ZGUxNTg3OWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1l
bnRzLmNwcApAQCAtNTgsNyArNTgsNyBAQCBQYXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJFbGVt
ZW50PiBUZXh0Q29udHJvbElubmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkbwogICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgVGV4dENvbnRyb2xJbm5lckVsZW1lbnQoZG9jdW1lbnQpKTsKIH0K
IAotUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OnN0eWxl
Rm9yUmVuZGVyZXIoKQorUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gVGV4dENvbnRyb2xJbm5lckVs
ZW1lbnQ6OnN0eWxlRm9yUmVuZGVyZXIoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKQogewog
ICAgIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSogcGFyZW50UmVuZGVyZXIgPSB0b1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZShzaGFkb3dBbmNlc3Rvck5vZGUoKS0+cmVuZGVyZXIoKSk7
CiAgICAgcmV0dXJuIHBhcmVudFJlbmRlcmVyLT5jcmVhdGVJbm5lckJsb2NrU3R5bGUocGFyZW50
UmVuZGVyZXItPnN0eWxlKCkpOwpAQCAtMTA0LDcgKzEwNCw3IEBAIFJlbmRlck9iamVjdCogVGV4
dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJl
bmEsIFJlCiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9j
ayh0aGlzLCBtdWx0aUxpbmUpOwogfQogCi1QYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBUZXh0Q29u
dHJvbElubmVyVGV4dEVsZW1lbnQ6OnN0eWxlRm9yUmVuZGVyZXIoKQorUGFzc1JlZlB0cjxSZW5k
ZXJTdHlsZT4gVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpzdHlsZUZvclJlbmRlcmVyKGNv
bnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikKIHsKICAgICBSZW5kZXJUZXh0Q29udHJvbCogcGFy
ZW50UmVuZGVyZXIgPSB0b1JlbmRlclRleHRDb250cm9sKHNoYWRvd0FuY2VzdG9yTm9kZSgpLT5y
ZW5kZXJlcigpKTsKICAgICByZXR1cm4gcGFyZW50UmVuZGVyZXItPmNyZWF0ZUlubmVyVGV4dFN0
eWxlKHBhcmVudFJlbmRlcmVyLT5zdHlsZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKaW5kZXggOGI5YjBhYTNmYWU4
MWMzYzc4NmE3OWJmOGVkNmE5ZGY3ZDdkNGM0Mi4uNmQ0YTJiZjNlZDIwOGNhZjkzMjNhMDViMjdi
MmVlZDc4YjIwMjI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4
dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogCiBw
cm90ZWN0ZWQ6CiAgICAgVGV4dENvbnRyb2xJbm5lckVsZW1lbnQoRG9jdW1lbnQqKTsKLSAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yUmVuZGVyZXIoKTsKKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yUmVuZGVyZXIoY29uc3QgTm9k
ZVJlbmRlcmluZ0NvbnRleHQmKTsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNNb3Vz
ZUZvY3VzYWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC01Nyw3ICs1Nyw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50KERvY3VtZW50
Kik7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
KiwgUmVuZGVyU3R5bGUqKTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0
eWxlRm9yUmVuZGVyZXIoKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0
eWxlRm9yUmVuZGVyZXIoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKTsKICAgICB2aXJ0dWFs
IGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99244</attachid>
            <date>2011-06-29 23:50:14 -0700</date>
            <delta_ts>2011-06-30 00:43:53 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-63607-20110630155012.patch</filename>
            <type>text/plain</type>
            <size>12083</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAwODkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiYjFhMTBmYWFmZjg1YjllMzUyZDkw
MTg1NzJkMzBmNjFkMmEyNTAxLi5lOTA0NGEwYWIzNmY0YzBkMDlhZDMxOWU4M2JkNzhkNTU0ZDNi
ZTZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDYtMjggIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292
LgorCisgICAgICAgIENyYXNoIGlmIFNoYWRvd1Jvb3QgaGFzIGEgdGV4dCBub2RlLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM2MDcKKworICAgICAg
ICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC10ZXh0LWNoaWxkLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXRleHQtY2hpbGQu
aHRtbDogQWRkZWQuCisKIDIwMTEtMDYtMjkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC10ZXh0LWNoaWxkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC10ZXh0LWNo
aWxkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjE0NmFhZWFlMmMxMjNlMDFkYWMyMDI5Mjk3
YTU4YmQxOTYwZGNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1yb290LXRleHQtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BB
U1MgdW5sZXNzIGNyYXNoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtdGV4dC1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1yb290LXRleHQtY2hpbGQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTBkNDVhOThlYjFhODE3
Y2JhNzFkM2Y4MjhkOGExNzQyYjY2NGYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXRleHQtY2hpbGQuaHRtbApAQCAtMCwwICsxLDIz
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3RTaG91bGROb3RDcmFz
aCgpCit7CisgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIHJl
dHVybjsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
IHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgdmFyIHNoYWRv
dyA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHJvb3QpOworICAgIHZhciBzaGFkb3dCdWls
ZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgc2hhZG93QnVpbGRlci5p
bm5lckhUTUwgPSAiPGRpdj48L2Rpdj54IjsKKyAgICB3aGlsZSAoc2hhZG93QnVpbGRlci5maXJz
dENoaWxkKQorICAgICAgICBzaGFkb3cuYXBwZW5kQ2hpbGQoc2hhZG93QnVpbGRlci5maXJzdENo
aWxkKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJvb3QpOworICAgIGRvY3VtZW50
LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICJQQVNTIHVu
bGVzcyBjcmFzaCI7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdFNo
b3VsZE5vdENyYXNoKCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNkYjNhYmY5
ZjgwMGJmMzkxYjcyY2NiYTgyOTZhMDFmOWExZDMxMmEuLjhhNGVlMjYyMzk1ZmJiZGE2NzFkZjk4
ZTQ1NWFhZDhkODljMmI1ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMS0wNi0y
OSAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBEaW1pdHJpIEdsYXprb3YuCisKKyAgICAgICAgQ3Jhc2ggaWYgU2hhZG93Um9vdCBoYXMg
YSB0ZXh0IG5vZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MzYwNworICAgICAgICAKKyAgICAgICAgTm9kZTo6c3R5bGVGb3JSZW5kZXJlcigpIGZv
ciBUZXh0IG5vZGUgd2Fzbid0IHNoYWRvdy1hd2FyZS4KKyAgICAgICAgVGhpcyBjaGFuZ2UgYWxs
b3cgc3R5bGVGb3JSZW5kZXJlcigpIHRvIGtub3cgaXRzIHZpc3VhbCBwYXJlbnQgYnkKKyAgICAg
ICAgcGFzc2luZyBOb2RlUmVuZGVyaW5nQ29udGV4dC4KKyAgICAgICAgCisgICAgICAgIENoYW5n
ZXMgb3RoZXIgdGhhbiBOb2RlUmVuZGVyaW5nQ29udGV4dCBhbmQgRWxlbWVudCBpcyBqdXN0IGEK
KyAgICAgICAgZm9sbG93IHVwIGZvciBjaGFuZ2UgYWJvdmUuCisKKyAgICAgICAgKiBkb20vRWxl
bWVudC5jcHA6IHVzZSBOb2RlUmVuZGVyaW5nQ29udGV4dCB0byByZXNvbHZlIHBhcmVudCBub2Rl
LgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5bGUpOgorICAgICAgICAqIGRv
bS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnN0eWxlRm9yUmVuZGVyZXIpOiBB
ZGRlZCBOb2RlUmVuZGVyaW5nQ29udGV4dCBhcyBhIHBhcmFtZXRlci4KKyAgICAgICAgKiBkb20v
Tm9kZS5oOgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlckFuZFN0eWxlKToK
KyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6YXR0YWNoKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRp
b25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50OjphdHRh
Y2gpOgorICAgICAgICAqIGh0bWwvSFRNTFRpdGxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVGl0bGVFbGVtZW50Ojp0ZXh0V2l0aERpcmVjdGlvbik6CisgICAgICAgICogaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRDb250cm9sSW5uZXJFbGVtZW50OjpzdHlsZUZvclJlbmRlcmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6c3R5bGVGb3JSZW5kZXJlcik6Cisg
ICAgICAgICogaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmg6CisKKyAgICAg
ICAgVGVzdDogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXRleHQtY2hpbGQuaHRtbAorICAg
ICAgICAKIDIwMTEtMDYtMjkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApp
bmRleCA2Y2MwMmUyMGMyOTQ5OWYyNGM5YTc4NmM3ZDE2NGNmNGFhZGJjMjIzLi45NDIyNWNiNjIy
NTY2M2Y2MTBhYzk4ZmU0ZDcxNzQyODE2ZjliZTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBA
IC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKKyNpbmNs
dWRlICJOb2RlUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKQEAgLTExMDUsNyArMTEw
Niw3IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAg
ICAgICAgICAgcmFyZURhdGEoKS0+cmVzZXRDb21wdXRlZFN0eWxlKCk7CiAgICAgfQogICAgIGlm
IChoYXNQYXJlbnRTdHlsZSAmJiAoY2hhbmdlID49IEluaGVyaXQgfHwgbmVlZHNTdHlsZVJlY2Fs
YygpKSkgewotICAgICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gc3R5bGVGb3JS
ZW5kZXJlcigpOworICAgICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gc3R5bGVG
b3JSZW5kZXJlcihOb2RlUmVuZGVyaW5nQ29udGV4dCh0aGlzLCAwKSk7CiAgICAgICAgIFN0eWxl
Q2hhbmdlIGNoID0gZGlmZihjdXJyZW50U3R5bGUuZ2V0KCksIG5ld1N0eWxlLmdldCgpKTsKICAg
ICAgICAgaWYgKGNoID09IERldGFjaCB8fCAhY3VycmVudFN0eWxlKSB7CiAgICAgICAgICAgICAv
LyBGSVhNRTogVGhlIHN0eWxlIGdldHMgY29tcHV0ZWQgdHdpY2UgYnkgY2FsbGluZyBhdHRhY2gu
IFdlIGNvdWxkIGRvIGJldHRlciBpZiB3ZSBwYXNzZWQgdGhlIHN0eWxlIGFsb25nLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCmluZGV4IDcxMTc0MTk1NDczOGM0ZGVkMjVkYWRjNDkxNzY5YjViODg2MTUwMzQuLmEy
MzU2NDQ3NWIzZDEzZjU0M2NkNzVmYzQ1Yjc0MjUxZWRlNmRhNjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
QEAgLTE0NDksNyArMTQ0OSw3IEBAIHZvaWQgTm9kZTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCgp
CiAgICAgTm9kZVJlbmRlcmVyRmFjdG9yeSh0aGlzKS5jcmVhdGVSZW5kZXJlcklmTmVlZGVkKCk7
CiB9CiAKLVBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IE5vZGU6OnN0eWxlRm9yUmVuZGVyZXIoKQor
UGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gTm9kZTo6c3R5bGVGb3JSZW5kZXJlcihjb25zdCBOb2Rl
UmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCkKIHsKICAgICBpZiAoaXNFbGVtZW50Tm9kZSgpKSB7
CiAgICAgICAgIGJvb2wgYWxsb3dTaGFyaW5nID0gdHJ1ZTsKQEAgLTE0NTksNyArMTQ1OSw5IEBA
IFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IE5vZGU6OnN0eWxlRm9yUmVuZGVyZXIoKQogI2VuZGlm
CiAgICAgICAgIHJldHVybiBkb2N1bWVudCgpLT5zdHlsZVNlbGVjdG9yKCktPnN0eWxlRm9yRWxl
bWVudChzdGF0aWNfY2FzdDxFbGVtZW50Kj4odGhpcyksIDAsIGFsbG93U2hhcmluZyk7CiAgICAg
fQotICAgIHJldHVybiBwYXJlbnROb2RlKCkgJiYgcGFyZW50Tm9kZSgpLT5yZW5kZXJlcigpID8g
cGFyZW50Tm9kZSgpLT5yZW5kZXJlcigpLT5zdHlsZSgpIDogMDsKKyAgICBpZiAoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciA9IGNvbnRleHQucGFyZW50UmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJu
IHJlbmRlcmVyLT5zdHlsZSgpOworICAgIHJldHVybiAwOwogfQogCiBib29sIE5vZGU6OnJlbmRl
cmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aAppbmRleCA3MjUzN2NiODY2OWZkNjY4N2NkOGJkODNiZTJlNWNiOWU0OTdmMDFiLi45ZGZjZTA4
NzBjZjRiNTRiYzhjZDYzZDQyODVhMjU2NjBiZjc2MDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTQ1NSw3
ICs0NTUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZSgpOwogICAg
IHZvaWQgY3JlYXRlUmVuZGVyZXJJZk5lZWRlZCgpOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxS
ZW5kZXJTdHlsZT4gc3R5bGVGb3JSZW5kZXJlcigpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxS
ZW5kZXJTdHlsZT4gc3R5bGVGb3JSZW5kZXJlcihjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYp
OwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdD
b250ZXh0Jik7CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoTm9k
ZSopIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3Jl
YXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggN2ZjODdiOTczNTAyNGU2MmYzNGY0
ZTgyYzYxYWZjNmM5ZmI3ZmVlNy4uNDNlNThlZmY2NjRkYjE0MjU3NmQ1NDJjZGMyZjFlOGMzZjI1
N2QzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBA
IC0yMzIsNyArMjMyLDcgQEAgUmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVh
dGVSZW5kZXJlckFuZFN0eWxlKCkKICAgICBpZiAoIW1fY29udGV4dC5zaG91bGRDcmVhdGVSZW5k
ZXJlcigpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIG1fY29udGV4dC5zZXRTdHlsZShub2Rl
LT5zdHlsZUZvclJlbmRlcmVyKCkpOworICAgIG1fY29udGV4dC5zZXRTdHlsZShub2RlLT5zdHls
ZUZvclJlbmRlcmVyKG1fY29udGV4dCkpOwogICAgIGlmICghbm9kZS0+cmVuZGVyZXJJc05lZWRl
ZChtX2NvbnRleHQpKQogICAgICAgICByZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKaW5kZXggOTg3ZWI1MWNlY2RiMTM5MDkxOWFjMDRlN2Ey
MDBhNzBkNDc4NjY0Yy4uZjhjMjRjMzkxYzE3OTNhMmYxYTE4YjMzYTJiMDgxMzZjYmQ5MDk2YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5k
ZXJNZW51TGlzdC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIk5v
ZGVSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04OSw3ICs5MCw3IEBAIHZvaWQgSFRNTE9wdEdyb3VwRWxl
bWVudDo6cmVjYWxjU2VsZWN0T3B0aW9ucygpCiB2b2lkIEhUTUxPcHRHcm91cEVsZW1lbnQ6OmF0
dGFjaCgpCiB7CiAgICAgaWYgKHBhcmVudE5vZGUoKS0+cmVuZGVyU3R5bGUoKSkKLSAgICAgICAg
c2V0UmVuZGVyU3R5bGUoc3R5bGVGb3JSZW5kZXJlcigpKTsKKyAgICAgICAgc2V0UmVuZGVyU3R5
bGUoc3R5bGVGb3JSZW5kZXJlcihOb2RlUmVuZGVyaW5nQ29udGV4dCh0aGlzLCAwKSkpOwogICAg
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmF0dGFjaCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCmluZGV4IDk2NmY4Mzc0ZTMzMTliZDIyYTNhYjIwNTA1
ZGUyNjllMjgyYTMxYjMuLjI0MTY2ZGU0MDY4MmVlZmVjMTA3NmZjODlmN2E3YmYxOTNiOWU5ZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1l
bnQuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJOb2RlUmVuZGVy
aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlck1lbnVMaXN0LmgiCiAjaW5jbHVkZSAiVGV4
dC5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAgLTgxLDcgKzgyLDcgQEAgUGFz
c1JlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gSFRNTE9wdGlvbkVsZW1lbnQ6OmNyZWF0ZUZvckpT
Q29uc3RydWN0b3IoRG9jdW1lbnQKIHZvaWQgSFRNTE9wdGlvbkVsZW1lbnQ6OmF0dGFjaCgpCiB7
CiAgICAgaWYgKHBhcmVudE5vZGUoKS0+cmVuZGVyU3R5bGUoKSkKLSAgICAgICAgc2V0UmVuZGVy
U3R5bGUoc3R5bGVGb3JSZW5kZXJlcigpKTsKKyAgICAgICAgc2V0UmVuZGVyU3R5bGUoc3R5bGVG
b3JSZW5kZXJlcihOb2RlUmVuZGVyaW5nQ29udGV4dCh0aGlzLCAwKSkpOwogICAgIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQ6OmF0dGFjaCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0
bGVFbGVtZW50LmNwcAppbmRleCBiMDQ2YzdiNTkwNTgyYTA5MDFlNmE4NDEwMmQ2ZDI4NzFhM2Mx
MDc3Li5jMWU5NmYxZjc3ZmQ4NTM2ZmViOTJiYzgxYWI2YzUwMjNmNTFhZmQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiTm9k
ZVJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUg
IlRleHQuaCIKIApAQCAtODAsNyArODEsNyBAQCBTdHJpbmdXaXRoRGlyZWN0aW9uIEhUTUxUaXRs
ZUVsZW1lbnQ6OnRleHRXaXRoRGlyZWN0aW9uKCkKICAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlv
biA9IExUUjsKICAgICBpZiAoUmVuZGVyU3R5bGUqIHN0eWxlID0gY29tcHV0ZWRTdHlsZSgpKQog
ICAgICAgICBkaXJlY3Rpb24gPSBzdHlsZS0+ZGlyZWN0aW9uKCk7Ci0gICAgZWxzZSBpZiAoUmVm
UHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IHN0eWxlRm9yUmVuZGVyZXIoKSkKKyAgICBlbHNlIGlm
IChSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gc3R5bGVGb3JSZW5kZXJlcihOb2RlUmVuZGVy
aW5nQ29udGV4dCh0aGlzLCAwKSkpCiAgICAgICAgIGRpcmVjdGlvbiA9IHN0eWxlLT5kaXJlY3Rp
b24oKTsKICAgICByZXR1cm4gU3RyaW5nV2l0aERpcmVjdGlvbih0ZXh0KCksIGRpcmVjdGlvbik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnRzLmNwcAppbmRleCA5NGM5M2IxMzk3YjFhYmE2OWM4MzFlMDc0YjQxM2RjNGRj
NGM4Yzg4Li44YjZmOThlZGUxYjg4MDM0MGQwOGY4NzIyMjgxMGY3N2RlMTU4NzliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVt
ZW50cy5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgUGFzc1JlZlB0cjxUZXh0Q29udHJvbElubmVyRWxl
bWVudD4gVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG8KICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFRleHRDb250cm9sSW5uZXJFbGVtZW50KGRvY3VtZW50KSk7CiB9
CiAKLVBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFRleHRDb250cm9sSW5uZXJFbGVtZW50OjpzdHls
ZUZvclJlbmRlcmVyKCkKK1Bhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFRleHRDb250cm9sSW5uZXJF
bGVtZW50OjpzdHlsZUZvclJlbmRlcmVyKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikKIHsK
ICAgICBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUqIHBhcmVudFJlbmRlcmVyID0gdG9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUoc2hhZG93QW5jZXN0b3JOb2RlKCktPnJlbmRlcmVyKCkp
OwogICAgIHJldHVybiBwYXJlbnRSZW5kZXJlci0+Y3JlYXRlSW5uZXJCbG9ja1N0eWxlKHBhcmVu
dFJlbmRlcmVyLT5zdHlsZSgpKTsKQEAgLTEwNCw3ICsxMDQsNyBAQCBSZW5kZXJPYmplY3QqIFRl
eHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFy
ZW5hLCBSZQogICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxv
Y2sodGhpcywgbXVsdGlMaW5lKTsKIH0KIAotUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gVGV4dENv
bnRyb2xJbm5lclRleHRFbGVtZW50OjpzdHlsZUZvclJlbmRlcmVyKCkKK1Bhc3NSZWZQdHI8UmVu
ZGVyU3R5bGU+IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6c3R5bGVGb3JSZW5kZXJlcihj
b25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpCiB7CiAgICAgUmVuZGVyVGV4dENvbnRyb2wqIHBh
cmVudFJlbmRlcmVyID0gdG9SZW5kZXJUZXh0Q29udHJvbChzaGFkb3dBbmNlc3Rvck5vZGUoKS0+
cmVuZGVyZXIoKSk7CiAgICAgcmV0dXJuIHBhcmVudFJlbmRlcmVyLT5jcmVhdGVJbm5lclRleHRT
dHlsZShwYXJlbnRSZW5kZXJlci0+c3R5bGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oCmluZGV4IDhiOWIwYWEzZmFl
ODFjM2M3ODZhNzliZjhlZDZhOWRmN2Q3ZDRjNDIuLjZkNGEyYmYzZWQyMDhjYWY5MzIzYTA1YjI3
YjJlZWQ3OGIyMDIyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Rl
eHRDb250cm9sSW5uZXJFbGVtZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oCkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKIAog
cHJvdGVjdGVkOgogICAgIFRleHRDb250cm9sSW5uZXJFbGVtZW50KERvY3VtZW50Kik7Ci0gICAg
dmlydHVhbCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvclJlbmRlcmVyKCk7CisgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvclJlbmRlcmVyKGNvbnN0IE5v
ZGVSZW5kZXJpbmdDb250ZXh0Jik7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzTW91
c2VGb2N1c2FibGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpAQCAtNTcsNyArNTcsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudChEb2N1bWVu
dCopOwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSosIFJlbmRlclN0eWxlKik7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBz
dHlsZUZvclJlbmRlcmVyKCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBz
dHlsZUZvclJlbmRlcmVyKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0Jik7CiAgICAgdmlydHVh
bCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogfTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>