<?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>80900</bug_id>
          
          <creation_ts>2012-03-12 15:32:25 -0700</creation_ts>
          <short_desc>(register|unregister)DynamicSubtreeNodeList should be called only for labels and regions node lists</short_desc>
          <delta_ts>2012-03-14 20:52:49 -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>
          <dependson>81021</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>adamk</cc>
    
    <cc>ap</cc>
    
    <cc>arv</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>mihnea</cc>
    
    <cc>sam</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>576621</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-12 15:32:25 -0700</bug_when>
    <thetext>I don&apos;t think we need registerDynamicSubtreeNodeList and unregisterDynamicSubtreeNodeList.

In particular, the following comment seems no longer valid because TreeScopeAdopter::moveTreeToNewScope clears node list caches whenever nodes are adopted into a new tree scope.
    // We haven&apos;t been receiving notifications while there were no registered lists, so the cache is invalid now.
    if (data-&gt;nodeLists() &amp;&amp; (!treeScope() || !treeScope()-&gt;hasNodeListCaches()))
        data-&gt;nodeLists()-&gt;invalidateCaches();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576630</commentid>
    <comment_count>1</comment_count>
      <attachid>131427</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-12 15:42:07 -0700</bug_when>
    <thetext>Created attachment 131427
cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576654</commentid>
    <comment_count>2</comment_count>
      <attachid>131427</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-03-12 15:58:49 -0700</bug_when>
    <thetext>Comment on attachment 131427
cleanup

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576722</commentid>
    <comment_count>3</comment_count>
      <attachid>131427</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-12 16:48:25 -0700</bug_when>
    <thetext>Comment on attachment 131427
cleanup

Attachment 131427 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11941228

New failing tests:
fast/forms/label/labels-remove-parent-label.html
fast/forms/label/labels-set-htmlFor-attribute.html
fast/forms/label/labels-remove-htmlFor-attribute.html
fast/regions/get-regions-by-content-node-vert-rl.html
fast/regions/get-regions-by-content-node-horiz-bt.html
fast/forms/label/labels-add-htmlFor-label.html
fast/regions/get-regions-by-content-node-vert-lr.html
fast/regions/get-regions-by-content-node-horiz-tb.html
fast/forms/label/labels-change-htmlFor-attribute.html
fast/forms/label/labels-add-parent-label.html
fast/forms/label/labels-remove-htmlFor-label.html
fast/regions/get-regions-by-content-node2.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576725</commentid>
    <comment_count>4</comment_count>
      <attachid>131427</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-12 16:49:39 -0700</bug_when>
    <thetext>Comment on attachment 131427
cleanup

Ugh... this isn&apos;t quite right because of LabelsNodeList and RegionNodeList. They need to be notified of changes at the document level instead of at the node it belongs :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576874</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-12 18:38:57 -0700</bug_when>
    <thetext>Changing the scope of the bug a little bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576966</commentid>
    <comment_count>6</comment_count>
      <attachid>131501</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-12 20:25:40 -0700</bug_when>
    <thetext>Created attachment 131501
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577084</commentid>
    <comment_count>7</comment_count>
      <attachid>131501</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-12 23:26:17 -0700</bug_when>
    <thetext>Comment on attachment 131501
Patch

Attachment 131501 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11942360

New failing tests:
fast/regions/get-regions-by-content-node-vert-lr.html
fast/regions/get-regions-by-content-node-horiz-bt.html
fast/regions/get-regions-by-content-node-vert-rl.html
fast/regions/get-regions-by-content-node-horiz-tb.html
fast/regions/get-regions-by-content-node.html
fast/regions/get-regions-by-content-node2.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577100</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-12 23:49:08 -0700</bug_when>
    <thetext>Sigh... the bug 80638 is haunting me :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577114</commentid>
    <comment_count>9</comment_count>
      <attachid>131560</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-13 00:02:04 -0700</bug_when>
    <thetext>Created attachment 131560
Also fix the bug 80638</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577160</commentid>
    <comment_count>10</comment_count>
      <attachid>131560</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-13 01:34:43 -0700</bug_when>
    <thetext>Comment on attachment 131560
Also fix the bug 80638

Attachment 131560 did not pass win-ews (win):
Output: http://queues.webkit.org/results/11942407</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577162</commentid>
    <comment_count>11</comment_count>
      <attachid>131560</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-13 01:37:49 -0700</bug_when>
    <thetext>Comment on attachment 131560
Also fix the bug 80638

Attachment 131560 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11945371

New failing tests:
fast/regions/get-regions-by-content-node-vert-lr.html
fast/regions/get-regions-by-content-node-horiz-bt.html
fast/regions/get-regions-by-content-node-vert-rl.html
fast/regions/get-regions-by-content-node-horiz-tb.html
fast/regions/get-regions-by-content-node.html
fast/regions/get-regions-by-content-node2.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577511</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-13 10:34:25 -0700</bug_when>
    <thetext>ugh.... regions node lists were passing tests due to &quot;redundant&quot; cache invalidation magically updating otherwise stale node lists :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578130</commentid>
    <comment_count>13</comment_count>
      <attachid>131777</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-13 20:45:48 -0700</bug_when>
    <thetext>Created attachment 131777
Updated for ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578141</commentid>
    <comment_count>14</comment_count>
      <attachid>131777</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-13 21:16:56 -0700</bug_when>
    <thetext>Comment on attachment 131777
Updated for ToT

Attachment 131777 did not pass win-ews (win):
Output: http://queues.webkit.org/results/11948868</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578966</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-14 17:11:55 -0700</bug_when>
    <thetext>Committed in http://trac.webkit.org/changeset/110797.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579069</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-14 20:20:35 -0700</bug_when>
    <thetext>Apparently I mangled patches together when I was landing a patch for https://bugs.webkit.org/show_bug.cgi?id=80706.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579077</commentid>
    <comment_count>17</comment_count>
      <attachid>131777</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-03-14 20:35:30 -0700</bug_when>
    <thetext>Comment on attachment 131777
Updated for ToT

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

r=me but please remove references to region node lists from the code/changelog.

Bonus points for removing a parseAttribute() overload. :)

&gt; Source/WebCore/dom/DynamicNodeList.h:90
&gt; +    DynamicNodeList::invalidateCache;

Needs &quot;using&quot; to build on win, but you know that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579091</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-14 20:52:42 -0700</bug_when>
    <thetext>The patch was &quot;preemptively&quot; landed in http://trac.webkit.org/changeset/110797 by accident. Fixed the reviewer name in http://trac.webkit.org/changeset/110817.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131427</attachid>
            <date>2012-03-12 15:42:07 -0700</date>
            <delta_ts>2012-03-12 16:49:39 -0700</delta_ts>
            <desc>cleanup</desc>
            <filename>bug-80900-20120312154206.patch</filename>
            <type>text/plain</type>
            <size>8714</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDQ5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAzLTEyICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIHJlZ2lzdGVyRHluYW1pY1N1YnRy
ZWVOb2RlTGlzdCBhbmQgdW5yZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9kZUxpc3Qgc2VlbSB1bm5l
Y2Vzc2FyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODA5MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBH
ZXQgcmlkIG9mIE5vZGU6OnJlZ2lzdGVyRHluYW1pY1N1YnRyZWVOb2RlTGlzdCBhbmQgTm9kZTo6
dW5yZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9kZUxpc3QKKyAgICAgICAgYmVjYXVzZSB0aGV5IGFy
ZW4ndCBkb2luZyBhbnl0aGluZyB1c2VmdWwuCisKKyAgICAgICAgSW4gcGFydGljdWxhciwgdGhl
IGNvbW1lbnQgYWJvdXQgaG93IHdlIG5lZWQgdG8gaW52YWxpZGF0ZSBjYWNoZXMgd2hlbiBuZXcg
bm9kZSBsaXN0IGlzIGF0dGFjaGVkCisgICAgICAgIGlzIGJvZ3VzIGFzIGZhciBhcyBJJ20gY29u
Y2VybmVkIGJlY2F1c2Ugd2UgZG9uJ3QgYXR0YWNoIG5ldyBub2RlIGxpc3Qgd2hlbiBpbnNlcnRp
bmcgYSBub2RlIGJhY2sKKyAgICAgICAgaW50byB0aGUgdHJlZSwgd2hpY2ggbWVhbnMgdGhlIGlu
dmFsaWRhdGlvbiBpcyB0b28gbGF0ZSwgYW5kIHdlIGludmFsaWRhdGUgY2FjaGVzIHdoZW4gd2Ug
YWRvcHQKKyAgICAgICAgYSBub2RlIHRvIGEgbmV3IHRyZWUgc2NvcGUgYW55d2F5LgorCisgICAg
ICAgICogZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEeW5hbWlj
U3VidHJlZU5vZGVMaXN0OjpEeW5hbWljU3VidHJlZU5vZGVMaXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkR5bmFtaWNTdWJ0cmVlTm9kZUxpc3Q6On5EeW5hbWljU3VidHJlZU5vZGVMaXN0KToKKyAg
ICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OmludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyQ2hpbGRyZW5DaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJlbW92ZUNhY2hlZENsYXNzTm9kZUxpc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVtb3ZlQ2FjaGVkUmVnaW9uTm9kZUxpc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6cmVtb3ZlQ2FjaGVkTmFtZU5vZGVMaXN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok5vZGU6OnJlbW92ZUNhY2hlZFRhZ05vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OnJlbW92ZUNhY2hlZExhYmVsc05vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVMaXN0c05vZGVEYXRhOjppc0VtcHR5KToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAg
ICAoTm9kZSk6CisgICAgICAgICogZG9tL05vZGVSYXJlRGF0YS5oOgorICAgICAgICAoTm9kZUxp
c3RzTm9kZURhdGEpOgorCiAyMDEyLTAzLTEyICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBw
bGUuY29tPgogCiAgICAgICAgIGNsYW5nIGJ1aWxkIGZpeApJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L0R5bmFtaWNOb2RlTGlzdC5jcHAJKHJldmlzaW9uIDExMDMxOSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9EeW5hbWljTm9kZUxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxMiArMzEsMTAg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogRHluYW1pY1N1YnRyZWVOb2RlTGlzdDo6RHluYW1pY1N1
YnRyZWVOb2RlTGlzdChQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCiAgICAgOiBEeW5hbWljTm9kZUxp
c3Qobm9kZSkKIHsKLSAgICByb290Tm9kZSgpLT5yZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9kZUxp
c3QodGhpcyk7CiB9CiAKIER5bmFtaWNTdWJ0cmVlTm9kZUxpc3Q6On5EeW5hbWljU3VidHJlZU5v
ZGVMaXN0KCkKIHsKLSAgICByb290Tm9kZSgpLT51bnJlZ2lzdGVyRHluYW1pY1N1YnRyZWVOb2Rl
TGlzdCh0aGlzKTsKIH0KIAogdW5zaWduZWQgRHluYW1pY1N1YnRyZWVOb2RlTGlzdDo6bGVuZ3Ro
KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDExMDMyMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQwLDI1ICs5NDAsNiBA
QCBzdGF0aWMgdm9pZCByZW1vdmVOb2RlTGlzdENhY2hlSWZQb3NzaWJsCiAgICAgbm9kZS0+dHJl
ZVNjb3BlKCktPnJlbW92ZU5vZGVMaXN0Q2FjaGUoKTsKIH0KIAotdm9pZCBOb2RlOjpyZWdpc3Rl
ckR5bmFtaWNTdWJ0cmVlTm9kZUxpc3QoRHluYW1pY1N1YnRyZWVOb2RlTGlzdCogbGlzdCkKLXsK
LSAgICBOb2RlUmFyZURhdGEqIGRhdGEgPSBlbnN1cmVSYXJlRGF0YSgpOwotICAgIC8vIFdlIGhh
dmVuJ3QgYmVlbiByZWNlaXZpbmcgbm90aWZpY2F0aW9ucyB3aGlsZSB0aGVyZSB3ZXJlIG5vIHJl
Z2lzdGVyZWQgbGlzdHMsIHNvIHRoZSBjYWNoZSBpcyBpbnZhbGlkIG5vdy4KLSAgICBpZiAoZGF0
YS0+bm9kZUxpc3RzKCkgJiYgKCF0cmVlU2NvcGUoKSB8fCAhdHJlZVNjb3BlKCktPmhhc05vZGVM
aXN0Q2FjaGVzKCkpKQotICAgICAgICBkYXRhLT5ub2RlTGlzdHMoKS0+aW52YWxpZGF0ZUNhY2hl
cygpOwotCi0gICAgZGF0YS0+ZW5zdXJlTm9kZUxpc3RzKHRoaXMpLT5tX2xpc3RzV2l0aENhY2hl
cy5hZGQobGlzdCk7Ci19Ci0KLXZvaWQgTm9kZTo6dW5yZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9k
ZUxpc3QoRHluYW1pY1N1YnRyZWVOb2RlTGlzdCogbGlzdCkKLXsKLSAgICBBU1NFUlQoaGFzUmFy
ZURhdGEoKSk7Ci0gICAgQVNTRVJUKHJhcmVEYXRhKCktPm5vZGVMaXN0cygpKTsKLSAgICBOb2Rl
UmFyZURhdGEqIGRhdGEgPSByYXJlRGF0YSgpOwotICAgIGRhdGEtPm5vZGVMaXN0cygpLT5tX2xp
c3RzV2l0aENhY2hlcy5yZW1vdmUobGlzdCk7Ci0gICAgcmVtb3ZlTm9kZUxpc3RDYWNoZUlmUG9z
c2libGUodGhpcywgZGF0YSk7Ci19Ci0KIHZvaWQgTm9kZTo6aW52YWxpZGF0ZU5vZGVMaXN0c0Nh
Y2hlQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ewogICAgIGlmIChoYXNSYXJlRGF0YSgpICYmIGlzQXR0cmlidXRlTm9kZSgpKSB7CkBAIC0xMDA4
LDExICs5ODksNiBAQCB2b2lkIE5vZGU6OmludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyCiAg
ICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBkYXRhLT5ub2RlTGlzdHMoKS0+aW52YWxp
ZGF0ZUNhY2hlcygpOwotCi0gICAgICAgIE5vZGVMaXN0c05vZGVEYXRhOjpOb2RlTGlzdFNldDo6
aXRlcmF0b3IgZW5kID0gZGF0YS0+bm9kZUxpc3RzKCktPm1fbGlzdHNXaXRoQ2FjaGVzLmVuZCgp
OwotICAgICAgICBmb3IgKE5vZGVMaXN0c05vZGVEYXRhOjpOb2RlTGlzdFNldDo6aXRlcmF0b3Ig
aXQgPSBkYXRhLT5ub2RlTGlzdHMoKS0+bV9saXN0c1dpdGhDYWNoZXMuYmVnaW4oKTsgaXQgIT0g
ZW5kOyArK2l0KQotICAgICAgICAgICAgKCppdCktPmludmFsaWRhdGVDYWNoZSgpOwotCiAgICAg
ICAgIHJlbW92ZU5vZGVMaXN0Q2FjaGVJZlBvc3NpYmxlKG5vZGUsIGRhdGEpOwogICAgIH0KIH0K
QEAgLTEwMzQsOSArMTAxMCwxMSBAQCB2b2lkIE5vZGU6OnJlbW92ZUNhY2hlZENsYXNzTm9kZUxp
c3QoQ2xhCiAgICAgQVNTRVJUKHJhcmVEYXRhKCkpOwogICAgIEFTU0VSVChyYXJlRGF0YSgpLT5u
b2RlTGlzdHMoKSk7CiAKLSAgICBOb2RlTGlzdHNOb2RlRGF0YSogZGF0YSA9IHJhcmVEYXRhKCkt
Pm5vZGVMaXN0cygpOworICAgIE5vZGVSYXJlRGF0YSogbm9kZVJhcmVEYXRhID0gcmFyZURhdGEo
KTsKKyAgICBOb2RlTGlzdHNOb2RlRGF0YSogZGF0YSA9IG5vZGVSYXJlRGF0YS0+bm9kZUxpc3Rz
KCk7CiAgICAgQVNTRVJUX1VOVVNFRChsaXN0LCBsaXN0ID09IGRhdGEtPm1fY2xhc3NOb2RlTGlz
dENhY2hlLmdldChjbGFzc05hbWUpKTsKICAgICBkYXRhLT5tX2NsYXNzTm9kZUxpc3RDYWNoZS5y
ZW1vdmUoY2xhc3NOYW1lKTsKKyAgICByZW1vdmVOb2RlTGlzdENhY2hlSWZQb3NzaWJsZSh0aGlz
LCBub2RlUmFyZURhdGEpOwogfQogCiB2b2lkIE5vZGU6OnJlbW92ZUNhY2hlZFJlZ2lvbk5vZGVM
aXN0KFJlZ2lvbk5vZGVMaXN0KiBsaXN0LCBjb25zdCBBdG9taWNTdHJpbmcmIGZsb3dOYW1lKQpA
QCAtMTA0NCw5ICsxMDIyLDExIEBAIHZvaWQgTm9kZTo6cmVtb3ZlQ2FjaGVkUmVnaW9uTm9kZUxp
c3QoUmUKICAgICBBU1NFUlQocmFyZURhdGEoKSk7CiAgICAgQVNTRVJUKHJhcmVEYXRhKCktPm5v
ZGVMaXN0cygpKTsKIAotICAgIE5vZGVMaXN0c05vZGVEYXRhKiBkYXRhID0gcmFyZURhdGEoKS0+
bm9kZUxpc3RzKCk7CisgICAgTm9kZVJhcmVEYXRhKiBub2RlUmFyZURhdGEgPSByYXJlRGF0YSgp
OworICAgIE5vZGVMaXN0c05vZGVEYXRhKiBkYXRhID0gbm9kZVJhcmVEYXRhLT5ub2RlTGlzdHMo
KTsKICAgICBBU1NFUlRfVU5VU0VEKGxpc3QsIGxpc3QgPT0gZGF0YS0+bV9yZWdpb25Ob2RlTGlz
dENhY2hlLmdldChmbG93TmFtZSkpOwogICAgIGRhdGEtPm1fcmVnaW9uTm9kZUxpc3RDYWNoZS5y
ZW1vdmUoZmxvd05hbWUpOworICAgIHJlbW92ZU5vZGVMaXN0Q2FjaGVJZlBvc3NpYmxlKHRoaXMs
IG5vZGVSYXJlRGF0YSk7CiB9CiAKIHZvaWQgTm9kZTo6cmVtb3ZlQ2FjaGVkTmFtZU5vZGVMaXN0
KE5hbWVOb2RlTGlzdCogbGlzdCwgY29uc3QgU3RyaW5nJiBub2RlTmFtZSkKQEAgLTEwNTQsOSAr
MTAzNCwxMSBAQCB2b2lkIE5vZGU6OnJlbW92ZUNhY2hlZE5hbWVOb2RlTGlzdChOYW1lCiAgICAg
QVNTRVJUKHJhcmVEYXRhKCkpOwogICAgIEFTU0VSVChyYXJlRGF0YSgpLT5ub2RlTGlzdHMoKSk7
CiAKLSAgICBOb2RlTGlzdHNOb2RlRGF0YSogZGF0YSA9IHJhcmVEYXRhKCktPm5vZGVMaXN0cygp
OworICAgIE5vZGVSYXJlRGF0YSogbm9kZVJhcmVEYXRhID0gcmFyZURhdGEoKTsKKyAgICBOb2Rl
TGlzdHNOb2RlRGF0YSogZGF0YSA9IG5vZGVSYXJlRGF0YS0+bm9kZUxpc3RzKCk7CiAgICAgQVNT
RVJUX1VOVVNFRChsaXN0LCBsaXN0ID09IGRhdGEtPm1fbmFtZU5vZGVMaXN0Q2FjaGUuZ2V0KG5v
ZGVOYW1lKSk7CiAgICAgZGF0YS0+bV9uYW1lTm9kZUxpc3RDYWNoZS5yZW1vdmUobm9kZU5hbWUp
OworICAgIHJlbW92ZU5vZGVMaXN0Q2FjaGVJZlBvc3NpYmxlKHRoaXMsIG5vZGVSYXJlRGF0YSk7
CiB9CiAKIHZvaWQgTm9kZTo6cmVtb3ZlQ2FjaGVkVGFnTm9kZUxpc3QoVGFnTm9kZUxpc3QqIGxp
c3QsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKQEAgLTEwNjQsOSArMTA0NiwxMSBAQCB2b2lk
IE5vZGU6OnJlbW92ZUNhY2hlZFRhZ05vZGVMaXN0KFRhZ05vCiAgICAgQVNTRVJUKHJhcmVEYXRh
KCkpOwogICAgIEFTU0VSVChyYXJlRGF0YSgpLT5ub2RlTGlzdHMoKSk7CiAKLSAgICBOb2RlTGlz
dHNOb2RlRGF0YSogZGF0YSA9IHJhcmVEYXRhKCktPm5vZGVMaXN0cygpOworICAgIE5vZGVSYXJl
RGF0YSogbm9kZVJhcmVEYXRhID0gcmFyZURhdGEoKTsKKyAgICBOb2RlTGlzdHNOb2RlRGF0YSog
ZGF0YSA9IG5vZGVSYXJlRGF0YS0+bm9kZUxpc3RzKCk7CiAgICAgQVNTRVJUX1VOVVNFRChsaXN0
LCBsaXN0ID09IGRhdGEtPm1fdGFnTm9kZUxpc3RDYWNoZS5nZXQobmFtZS5pbXBsKCkpKTsKICAg
ICBkYXRhLT5tX3RhZ05vZGVMaXN0Q2FjaGUucmVtb3ZlKG5hbWUuaW1wbCgpKTsKKyAgICByZW1v
dmVOb2RlTGlzdENhY2hlSWZQb3NzaWJsZSh0aGlzLCBub2RlUmFyZURhdGEpOwogfQogCiB2b2lk
IE5vZGU6OnJlbW92ZUNhY2hlZFRhZ05vZGVMaXN0KFRhZ05vZGVMaXN0KiBsaXN0LCBjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lKQpAQCAtMTA3NCw5ICsxMDU4LDExIEBAIHZvaWQgTm9kZTo6cmVt
b3ZlQ2FjaGVkVGFnTm9kZUxpc3QoVGFnTm8KICAgICBBU1NFUlQocmFyZURhdGEoKSk7CiAgICAg
QVNTRVJUKHJhcmVEYXRhKCktPm5vZGVMaXN0cygpKTsKIAotICAgIE5vZGVMaXN0c05vZGVEYXRh
KiBkYXRhID0gcmFyZURhdGEoKS0+bm9kZUxpc3RzKCk7CisgICAgTm9kZVJhcmVEYXRhKiBub2Rl
UmFyZURhdGEgPSByYXJlRGF0YSgpOworICAgIE5vZGVMaXN0c05vZGVEYXRhKiBkYXRhID0gbm9k
ZVJhcmVEYXRhLT5ub2RlTGlzdHMoKTsKICAgICBBU1NFUlRfVU5VU0VEKGxpc3QsIGxpc3QgPT0g
ZGF0YS0+bV90YWdOb2RlTGlzdENhY2hlTlMuZ2V0KG5hbWUuaW1wbCgpKSk7CiAgICAgZGF0YS0+
bV90YWdOb2RlTGlzdENhY2hlTlMucmVtb3ZlKG5hbWUuaW1wbCgpKTsKKyAgICByZW1vdmVOb2Rl
TGlzdENhY2hlSWZQb3NzaWJsZSh0aGlzLCBub2RlUmFyZURhdGEpOwogfQogCiB2b2lkIE5vZGU6
OnJlbW92ZUNhY2hlZExhYmVsc05vZGVMaXN0KER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QqIGxpc3Qp
CkBAIC0xMDg0LDkgKzEwNzAsMTEgQEAgdm9pZCBOb2RlOjpyZW1vdmVDYWNoZWRMYWJlbHNOb2Rl
TGlzdChEeQogICAgIEFTU0VSVChyYXJlRGF0YSgpKTsKICAgICBBU1NFUlQocmFyZURhdGEoKS0+
bm9kZUxpc3RzKCkpOwogCi0gICAgTm9kZUxpc3RzTm9kZURhdGEqIGRhdGEgPSByYXJlRGF0YSgp
LT5ub2RlTGlzdHMoKTsKKyAgICBOb2RlUmFyZURhdGEqIG5vZGVSYXJlRGF0YSA9IHJhcmVEYXRh
KCk7CisgICAgTm9kZUxpc3RzTm9kZURhdGEqIGRhdGEgPSBub2RlUmFyZURhdGEtPm5vZGVMaXN0
cygpOwogICAgIEFTU0VSVF9VTlVTRUQobGlzdCwgbGlzdCA9PSBkYXRhLT5tX2xhYmVsc05vZGVM
aXN0Q2FjaGUpOwogICAgIGRhdGEtPm1fbGFiZWxzTm9kZUxpc3RDYWNoZSA9IDA7CisgICAgcmVt
b3ZlTm9kZUxpc3RDYWNoZUlmUG9zc2libGUodGhpcywgbm9kZVJhcmVEYXRhKTsKIH0KIAogdm9p
ZCBOb2RlOjpyZW1vdmVDYWNoZWRDaGlsZE5vZGVMaXN0KCkKQEAgLTIzNjQsOSArMjM1Miw2IEBA
IHZvaWQgTm9kZUxpc3RzTm9kZURhdGE6OmludmFsaWRhdGVDYWNoZXMKIAogYm9vbCBOb2RlTGlz
dHNOb2RlRGF0YTo6aXNFbXB0eSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2xpc3RzV2l0aENhY2hl
cy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIGlmICghbV90YWdOb2Rl
TGlzdENhY2hlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghbV90
YWdOb2RlTGlzdENhY2hlTlMuaXNFbXB0eSgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCShyZXZpc2lvbiAx
MTAzMTkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01
MjUsOCArNTI1LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2hvd1RyZWVGb3JUaGlzQWNyb3NzRnJh
bWUoKSBjb25zdDsKICNlbmRpZgogCi0gICAgdm9pZCByZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9k
ZUxpc3QoRHluYW1pY1N1YnRyZWVOb2RlTGlzdCopOwotICAgIHZvaWQgdW5yZWdpc3RlckR5bmFt
aWNTdWJ0cmVlTm9kZUxpc3QoRHluYW1pY1N1YnRyZWVOb2RlTGlzdCopOwogICAgIHZvaWQgaW52
YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKTsKICAgICB2b2lkIGludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyQ2hpbGRyZW5D
aGFuZ2VkKCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlUmVnaW9uTGlzdENhY2hlKCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCShyZXZpc2lvbiAxMTAzMTkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZVJhcmVEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDkgKzUxLDYgQEAg
Y2xhc3MgVHJlZVNjb3BlOwogc3RydWN0IE5vZGVMaXN0c05vZGVEYXRhIHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShOb2RlTGlzdHNOb2RlRGF0YSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIHR5cGVkZWYgSGFzaFNldDxEeW5hbWljU3VidHJlZU5vZGVMaXN0Kj4g
Tm9kZUxpc3RTZXQ7Ci0gICAgTm9kZUxpc3RTZXQgbV9saXN0c1dpdGhDYWNoZXM7Ci0KICAgICB0
eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBDbGFzc05vZGVMaXN0Kj4gQ2xhc3NOb2RlTGlzdENhY2hl
OwogICAgIENsYXNzTm9kZUxpc3RDYWNoZSBtX2NsYXNzTm9kZUxpc3RDYWNoZTsKIAo=
</data>
<flag name="review"
          id="134743"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="134772"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131501</attachid>
            <date>2012-03-12 20:25:40 -0700</date>
            <delta_ts>2012-03-13 00:02:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80900-20120312202539.patch</filename>
            <type>text/plain</type>
            <size>13664</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDUzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzIEBACisyMDEyLTAzLTEyICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIChyZWdpc3Rlcnx1bnJlZ2lzdGVy
KUR5bmFtaWNTdWJ0cmVlTm9kZUxpc3Qgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IGZvciBsYWJlbHMg
YW5kIHJlZ2lvbnMgbm9kZSBsaXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODA5MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDbGVhbmVkIHVwIGludmFsaWRhdGlvbiBjb2RlIGZvciBkeW5hbWljIG5v
ZGUgbGlzdHMuIEl0IHNlZW1zIGxpa2UgdGhlIGV4aXN0aW5nIGNvZGUgd2FzIHV0dGVybHkgY29u
ZnVzZWQKKyAgICAgICAgYWJvdXQgdGhlIGxpZmV0aW1lIG9mIG5vZGUgbGlzdHMgYW5kIGNhY2hl
cyB3aXRoaW4gdGhlbS4gRmlyc3QsIHJlZ2lzdGVyL3VucmVnc2l0ZXJEeW5hbWljU3VidHJlZU5v
ZGVMaXN0CisgICAgICAgIGFyZSBjYWxsZWQgZm9yIGFsbCBkeW5hbWljIG5vZGUgbGlzdHMgZXZl
biB0aG91Z2ggaXQncyBvbmx5IHVzZWZ1bCBmb3IgbGFiZWxzIGFuZCByZWdpb24gbm9kZSBsaXN0
cyBzaW5jZQorICAgICAgICBpdCdzIGEgbWVjaGFuaXNtIHRvIGFsbG93IG5vZGUgbGlzdHMgdG8g
YmUgaW52YWxpZGF0ZWQgYXQgYSBub2RlIHRvIHdoaWNoIHRoZSBub2RlIGxpc3QgZG9lc24ndCBi
ZWxvbmcuCisKKyAgICAgICAgU2Vjb25kLCBzb21lIG5vZGUgbGlzdHMgaGFkIGRlZGljYXRlZCBt
ZW1iZXIgZnVuY3Rpb25zIG9uIE5vZGUgdG8gZXhwbGljaXRseSBpbnZhbGlkYXRlIGNhY2hlcyBp
bgorICAgICAgICBwYXJzZWRBdHRyaWJ1dGUuIEhvd2V2ZXIsIHRoaXMgaXMgcmVkdW5kYW50IGJl
Y2F1c2UgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2VkIHNob3Vs
ZCBiZQorICAgICAgICBhYmxlIHRvIGludmFsaWRhdGUgY2FjaGVzIHdoZW4gdGhlIGF0dHJpYnV0
ZSB2YWx1ZSBjaGFuZ2VzLiBUaGlzIHBhdGNoIGdldHMgcmlkIG9mIHRoZSBsYXN0IGluc3RhbmNl
IG9mIHN1Y2gKKyAgICAgICAgZnVuY3Rpb24gaW4gSFRNTExhYmVsRWxlbWVudC4KKworICAgICAg
ICBBbmQgZmluYWxseSwgdGhpcyBwYXRjaCByZXN0cmljdHMgdGhlIGNhbGxlcnMgb2YgRHluYW1p
Y1N1YnRyZWVOb2RlTGlzdDo6aW52YWxpZGF0ZUNhY2hlIHRvIGJlIG1lbWJlcgorICAgICAgICBm
dW5jdGlvbnMgb2YgTm9kZUxpc3RzTm9kZURhdGEgKG5vdyBmcmllbmRzIG9mIER5bmFtaWNTdWJ0
cmVlTm9kZUxpc3QpIHRvIGFsbG93IGZ1dGhlciByZWZhY3RvcmluZy4KKworICAgICAgICAqIGRv
bS9EeW5hbWljTm9kZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHluYW1pY1N1YnRyZWVO
b2RlTGlzdDo6RHluYW1pY1N1YnRyZWVOb2RlTGlzdCk6IERvbid0IHJlZ2lzdGVyIHRoZSBub2Rl
IGxpc3Qgc2luY2UgaXQncyBvbmx5CisgICAgICAgIHVzZWZ1bCBmb3IgbGFiZWxzIGFuZCByZWdp
b24gbm9kZSBsaXN0cy4KKyAgICAgICAgKFdlYkNvcmU6OkR5bmFtaWNTdWJ0cmVlTm9kZUxpc3Q6
On5EeW5hbWljU3VidHJlZU5vZGVMaXN0KTogRGl0dG8uCisgICAgICAgICogZG9tL0R5bmFtaWNO
b2RlTGlzdC5oOgorICAgICAgICAoRHluYW1pY1N1YnRyZWVOb2RlTGlzdCk6CisgICAgICAgICog
ZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
OjpyZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9kZUxpc3QpOiBUaGUgY29tbWVudCBhYm91dCBub3cg
d2UgaGF2ZSB0byBpbnZhbGlkYXRlIGNhY2hlcworICAgICAgICB3aGVuIHRoZXJlIGhhZCBubyBj
YWNoZXMgaXMgaW5jb3JyZWN0IGJlY2F1c2UgcmVnaXN0ZXJEeW5hbWljU3VidHJlZU5vZGVMaXN0
IGlzIGNhbGxlZCB3aGVuIGEgbm9kZSBsaXN0CisgICAgICAgIGlzIGluaXRpYWxseSBjcmVhdGVk
LiBBbHNvLCBpZiB0aGUgdHJlZSBzY29wZSBkaWRuJ3QgaGF2ZSBhbnkgY2FjaGVzLCB0aGVuIHRo
aXMgaXMgdGhlIGZpcnN0IG5vZGUgbGlzdAorICAgICAgICB0byBiZSBhZGRlZCB0byB0aGUgbGlz
dCwgc28gdGhlcmUncyBubyBwb2ludCBpbiBjYWxsaW5nIEludmFsaWRhdGVDYWNoZXMgKG5vLW9w
KS4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnVucmVnaXN0ZXJEeW5hbWljU3VidHJlZU5vZGVM
aXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFm
dGVyQXR0cmlidXRlQ2hhbmdlZCk6IFRha2UgY2FyZSBvZiAiZm9yIiBjb250ZW50IGF0dHJpYnV0
ZS4KKyAgICAgICAgQWxzbyByZW1vdmUgdGhlIHJlZHVuZGFudCBjYWxsIHRvIHJlbW92ZU5vZGVM
aXN0Q2FjaGVJZlBvc3NpYmxlIHNpbmNlIHdlIG9ubHkgaW52YWxpZGF0ZXMgbm9kZSBsaXN0cwor
ICAgICAgICBhbmQgbmV2ZXIgcmVtb3ZlIGVudHJpZXMgZnJvbSBOb2RlTGlzdHNOb2RlRGF0YSBp
biB0aGlzIGZ1bmN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aW52YWxpZGF0ZU5vZGVM
aXN0c0NhY2hlQWZ0ZXJDaGlsZHJlbkNoYW5nZWQpOiBUaGUgY2FsbCB0byByZW1vdmVOb2RlTGlz
dENhY2hlSWZQb3NzaWJsZQorICAgICAgICBpcyBhbHNvIHJlZHVuZGFudCBoZXJlLiBBbHNvIHJl
bW92ZWQgdGhlIGludmFsaWRhdGlvbiBvZiBtX2xpc3RzV2l0aENhY2hlcyBzaW5jZSBpdCdzIGFs
cmVhZHkgZG9uZSBpbgorICAgICAgICBpbnZhbGlkYXRlQ2FjaGVzIHZpYSBpbnZhbGlkYXRlQ2Fj
aGVzVGhhdERlcGVuZE9uQXR0cmlidXRlcy4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05v
ZGVEYXRhOjppbnZhbGlkYXRlQ2FjaGVzKTogUmVtb3ZlZCB0aGUgaW52YWxpZGF0aW9uIG9mIG1f
bGFiZWxzTm9kZUxpc3RDYWNoZS4gSXQncworICAgICAgICBkb25lIGluIGludmFsaWRhdGVDYWNo
ZXNUaGF0RGVwZW5kT25BdHRyaWJ1dGVzLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9k
ZURhdGE6OmludmFsaWRhdGVDYWNoZXNUaGF0RGVwZW5kT25BdHRyaWJ1dGVzKTogSW52YWxpZGF0
ZQorICAgICAgICBtX2xpc3RzSW52YWxpZGF0ZWRBdERvY3VtZW50LCB3aGljaCBpcyByZW5hbWVk
IGZyb20gbV9saXN0c1dpdGhDYWNoZXMuCisgICAgICAgIChXZWJDb3JlOjpOb2RlTGlzdHNOb2Rl
RGF0YTo6aXNFbXB0eSk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKE5vZGUpOgor
ICAgICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuaDoKKyAgICAgICAgKE5vZGVMaXN0c05vZGVEYXRh
KToKKyAgICAgICAgKiBkb20vUmVnaW9uTm9kZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVnaW9uTm9kZUxpc3Q6OlJlZ2lvbk5vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lv
bk5vZGVMaXN0Ojp+UmVnaW9uTm9kZUxpc3QpOgorICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKTogUmVtb3ZlZCBwYXJzZUF0dHJpYnV0ZSBzaW5j
ZSB0aGUgaW52YWxpZGF0aW9uIGxhYmVscyBub2RlIGxpc3QgaXMgbm93IGRvbmUgYnkKKyAgICAg
ICAgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2VkIGFuZCBpbnZh
bGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckNoaWxkcmVuQ2hhbmdlZC4KKyAgICAgICAgKiBodG1s
L0hUTUxMYWJlbEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxMYWJlbEVsZW1lbnQpOgorICAgICAg
ICAqIGh0bWwvTGFiZWxzTm9kZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGFiZWxzTm9k
ZUxpc3Q6OkxhYmVsc05vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxhYmVsc05vZGVMaXN0
Ojp+TGFiZWxzTm9kZUxpc3QpOgorCiAyMDEyLTAzLTEyICBIYW5zIE11bGxlciAgPGhtdWxsZXJA
YWRvYmUuY29tPgogCiAgICAgICAgIFNWRyBzaG91bGQgc3VwcG9ydCB0cmFuc2Zvcm0tb3JpZ2lu
IGFuZCByZWxhdGl2ZSB2YWx1ZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9EeW5hbWljTm9k
ZUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9EeW5hbWljTm9kZUxp
c3QuY3BwCShyZXZpc2lvbiAxMTA0OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05v
ZGVMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTIgKzMxLDEwIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIER5bmFtaWNTdWJ0cmVlTm9kZUxpc3Q6OkR5bmFtaWNTdWJ0cmVlTm9kZUxpc3Qo
UGFzc1JlZlB0cjxOb2RlPiBub2RlKQogICAgIDogRHluYW1pY05vZGVMaXN0KG5vZGUpCiB7Ci0g
ICAgcm9vdE5vZGUoKS0+cmVnaXN0ZXJEeW5hbWljU3VidHJlZU5vZGVMaXN0KHRoaXMpOwogfQog
CiBEeW5hbWljU3VidHJlZU5vZGVMaXN0Ojp+RHluYW1pY1N1YnRyZWVOb2RlTGlzdCgpCiB7Ci0g
ICAgcm9vdE5vZGUoKS0+dW5yZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9kZUxpc3QodGhpcyk7CiB9
CiAKIHVuc2lnbmVkIER5bmFtaWNTdWJ0cmVlTm9kZUxpc3Q6Omxlbmd0aCgpIGNvbnN0CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5oCShyZXZpc2lvbiAxMTA0OTYpCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTg3
LDYgKzg3LDkgQEAgcHJvdGVjdGVkOgogICAgIER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QoUGFzc1Jl
ZlB0cjxOb2RlPiByb290Tm9kZSk7CiAKIHByaXZhdGU6CisgICAgRHluYW1pY05vZGVMaXN0Ojpp
bnZhbGlkYXRlQ2FjaGU7CisgICAgZnJpZW5kIGNsYXNzIE5vZGVMaXN0c05vZGVEYXRhOworCiAg
ICAgTm9kZSogaXRlbUZvcndhcmRzRnJvbUN1cnJlbnQoTm9kZSogc3RhcnQsIHVuc2lnbmVkIG9m
ZnNldCwgaW50IHJlbWFpbmluZ09mZnNldCkgY29uc3Q7CiAgICAgTm9kZSogaXRlbUJhY2t3YXJk
c0Zyb21DdXJyZW50KE5vZGUqIHN0YXJ0LCB1bnNpZ25lZCBvZmZzZXQsIGludCByZW1haW5pbmdP
ZmZzZXQpIGNvbnN0OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDExMDQ5NikK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQwLDIy
ICs5NDAsMjIgQEAgc3RhdGljIHZvaWQgcmVtb3ZlTm9kZUxpc3RDYWNoZUlmUG9zc2libAogICAg
IG5vZGUtPnRyZWVTY29wZSgpLT5yZW1vdmVOb2RlTGlzdENhY2hlKCk7CiB9CiAKKy8vIEZJWE1F
OiBNb3ZlIHRoaXMgZnVuY3Rpb24gdG8gRG9jdW1lbnQKIHZvaWQgTm9kZTo6cmVnaXN0ZXJEeW5h
bWljU3VidHJlZU5vZGVMaXN0KER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QqIGxpc3QpCiB7CisgICAg
QVNTRVJUKGlzRG9jdW1lbnROb2RlKCkpOwogICAgIE5vZGVSYXJlRGF0YSogZGF0YSA9IGVuc3Vy
ZVJhcmVEYXRhKCk7Ci0gICAgLy8gV2UgaGF2ZW4ndCBiZWVuIHJlY2VpdmluZyBub3RpZmljYXRp
b25zIHdoaWxlIHRoZXJlIHdlcmUgbm8gcmVnaXN0ZXJlZCBsaXN0cywgc28gdGhlIGNhY2hlIGlz
IGludmFsaWQgbm93LgotICAgIGlmIChkYXRhLT5ub2RlTGlzdHMoKSAmJiAoIXRyZWVTY29wZSgp
IHx8ICF0cmVlU2NvcGUoKS0+aGFzTm9kZUxpc3RDYWNoZXMoKSkpCi0gICAgICAgIGRhdGEtPm5v
ZGVMaXN0cygpLT5pbnZhbGlkYXRlQ2FjaGVzKCk7Ci0KLSAgICBkYXRhLT5lbnN1cmVOb2RlTGlz
dHModGhpcyktPm1fbGlzdHNXaXRoQ2FjaGVzLmFkZChsaXN0KTsKKyAgICBkYXRhLT5lbnN1cmVO
b2RlTGlzdHModGhpcyktPm1fbGlzdHNJbnZhbGlkYXRlZEF0RG9jdW1lbnQuYWRkKGxpc3QpOwog
fQogCisvLyBGSVhNRTogTW92ZSB0aGlzIGZ1bmN0aW9uIHRvIERvY3VtZW50CiB2b2lkIE5vZGU6
OnVucmVnaXN0ZXJEeW5hbWljU3VidHJlZU5vZGVMaXN0KER5bmFtaWNTdWJ0cmVlTm9kZUxpc3Qq
IGxpc3QpCiB7CisgICAgQVNTRVJUKGlzRG9jdW1lbnROb2RlKCkpOwogICAgIEFTU0VSVChoYXNS
YXJlRGF0YSgpKTsKICAgICBBU1NFUlQocmFyZURhdGEoKS0+bm9kZUxpc3RzKCkpOwogICAgIE5v
ZGVSYXJlRGF0YSogZGF0YSA9IHJhcmVEYXRhKCk7Ci0gICAgZGF0YS0+bm9kZUxpc3RzKCktPm1f
bGlzdHNXaXRoQ2FjaGVzLnJlbW92ZShsaXN0KTsKKyAgICBkYXRhLT5ub2RlTGlzdHMoKS0+bV9s
aXN0c0ludmFsaWRhdGVkQXREb2N1bWVudC5yZW1vdmUobGlzdCk7CiAgICAgcmVtb3ZlTm9kZUxp
c3RDYWNoZUlmUG9zc2libGUodGhpcywgZGF0YSk7CiB9CiAKQEAgLTk3NCw3ICs5NzQsOCBAQCB2
b2lkIE5vZGU6OmludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyCiAgICAgICAgICYmIGF0dHJO
YW1lICE9IGl0ZW1wcm9wQXR0cgogICAgICAgICAmJiBhdHRyTmFtZSAhPSBpdGVtdHlwZUF0dHIK
ICNlbmRpZgotICAgICAgICAmJiBhdHRyTmFtZSAhPSBuYW1lQXR0cikKKyAgICAgICAgJiYgYXR0
ck5hbWUgIT0gbmFtZUF0dHIKKyAgICAgICAgJiYgYXR0ck5hbWUgIT0gZm9yQXR0cikKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgaWYgKCF0cmVlU2NvcGUoKS0+aGFzTm9kZUxpc3RDYWNoZXMoKSkK
QEAgLTk4OSw3ICs5OTAsNiBAQCB2b2lkIE5vZGU6OmludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFm
dGVyCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBkYXRhLT5ub2RlTGlzdHMoKS0+
aW52YWxpZGF0ZUNhY2hlc1RoYXREZXBlbmRPbkF0dHJpYnV0ZXMoKTsKLSAgICAgICAgcmVtb3Zl
Tm9kZUxpc3RDYWNoZUlmUG9zc2libGUobm9kZSwgZGF0YSk7CiAgICAgfQogfQogCkBAIC0xMDA4
LDI3ICsxMDA4LDkgQEAgdm9pZCBOb2RlOjppbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlcgog
ICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgZGF0YS0+bm9kZUxpc3RzKCktPmludmFs
aWRhdGVDYWNoZXMoKTsKLQotICAgICAgICBOb2RlTGlzdHNOb2RlRGF0YTo6Tm9kZUxpc3RTZXQ6
Oml0ZXJhdG9yIGVuZCA9IGRhdGEtPm5vZGVMaXN0cygpLT5tX2xpc3RzV2l0aENhY2hlcy5lbmQo
KTsKLSAgICAgICAgZm9yIChOb2RlTGlzdHNOb2RlRGF0YTo6Tm9kZUxpc3RTZXQ6Oml0ZXJhdG9y
IGl0ID0gZGF0YS0+bm9kZUxpc3RzKCktPm1fbGlzdHNXaXRoQ2FjaGVzLmJlZ2luKCk7IGl0ICE9
IGVuZDsgKytpdCkKLSAgICAgICAgICAgICgqaXQpLT5pbnZhbGlkYXRlQ2FjaGUoKTsKLQotICAg
ICAgICByZW1vdmVOb2RlTGlzdENhY2hlSWZQb3NzaWJsZShub2RlLCBkYXRhKTsKICAgICB9CiB9
CiAKLXZvaWQgTm9kZTo6bm90aWZ5TG9jYWxOb2RlTGlzdHNMYWJlbENoYW5nZWQoKQotewotICAg
IGlmICghaGFzUmFyZURhdGEoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIE5vZGVSYXJlRGF0YSog
ZGF0YSA9IHJhcmVEYXRhKCk7Ci0gICAgaWYgKCFkYXRhLT5ub2RlTGlzdHMoKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgaWYgKGRhdGEtPm5vZGVMaXN0cygpLT5tX2xhYmVsc05vZGVMaXN0Q2Fj
aGUpCi0gICAgICAgIGRhdGEtPm5vZGVMaXN0cygpLT5tX2xhYmVsc05vZGVMaXN0Q2FjaGUtPmlu
dmFsaWRhdGVDYWNoZSgpOwotfQotCiB2b2lkIE5vZGU6OnJlbW92ZUNhY2hlZENsYXNzTm9kZUxp
c3QoQ2xhc3NOb2RlTGlzdCogbGlzdCwgY29uc3QgU3RyaW5nJiBjbGFzc05hbWUpCiB7CiAgICAg
QVNTRVJUKHJhcmVEYXRhKCkpOwpAQCAtMjMyOSw4ICsyMzExLDYgQEAgdm9pZCBOb2RlOjpzaG93
VHJlZUZvclRoaXNBY3Jvc3NGcmFtZSgpIAogCiB2b2lkIE5vZGVMaXN0c05vZGVEYXRhOjppbnZh
bGlkYXRlQ2FjaGVzKCkKIHsKLSAgICBpZiAobV9sYWJlbHNOb2RlTGlzdENhY2hlKQotICAgICAg
ICBtX2xhYmVsc05vZGVMaXN0Q2FjaGUtPmludmFsaWRhdGVDYWNoZSgpOwogICAgIFRhZ05vZGVM
aXN0Q2FjaGU6OmNvbnN0X2l0ZXJhdG9yIHRhZ0NhY2hlRW5kID0gbV90YWdOb2RlTGlzdENhY2hl
LmVuZCgpOwogICAgIGZvciAoVGFnTm9kZUxpc3RDYWNoZTo6Y29uc3RfaXRlcmF0b3IgaXQgPSBt
X3RhZ05vZGVMaXN0Q2FjaGUuYmVnaW4oKTsgaXQgIT0gdGFnQ2FjaGVFbmQ7ICsraXQpCiAgICAg
ICAgIGl0LT5zZWNvbmQtPmludmFsaWRhdGVDYWNoZSgpOwpAQCAtMjM0NSw2ICsyMzI1LDExIEBA
IHZvaWQgTm9kZUxpc3RzTm9kZURhdGE6OmludmFsaWRhdGVDYWNoZXMKIAogdm9pZCBOb2RlTGlz
dHNOb2RlRGF0YTo6aW52YWxpZGF0ZUNhY2hlc1RoYXREZXBlbmRPbkF0dHJpYnV0ZXMoKQogewor
ICAgIC8vIFVzZWQgYnkgbGFiZWxzIGFuZCByZWdpb24gbm9kZSBsaXN0cyBvbiBkb2N1bWVudC4K
KyAgICBOb2RlTGlzdHNOb2RlRGF0YTo6Tm9kZUxpc3RTZXQ6Oml0ZXJhdG9yIGVuZCA9IG1fbGlz
dHNJbnZhbGlkYXRlZEF0RG9jdW1lbnQuZW5kKCk7CisgICAgZm9yIChOb2RlTGlzdHNOb2RlRGF0
YTo6Tm9kZUxpc3RTZXQ6Oml0ZXJhdG9yIGl0ID0gbV9saXN0c0ludmFsaWRhdGVkQXREb2N1bWVu
dC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgICgqaXQpLT5pbnZhbGlkYXRlQ2Fj
aGUoKTsKKwogICAgIENsYXNzTm9kZUxpc3RDYWNoZTo6aXRlcmF0b3IgY2xhc3NDYWNoZUVuZCA9
IG1fY2xhc3NOb2RlTGlzdENhY2hlLmVuZCgpOwogICAgIGZvciAoQ2xhc3NOb2RlTGlzdENhY2hl
OjppdGVyYXRvciBpdCA9IG1fY2xhc3NOb2RlTGlzdENhY2hlLmJlZ2luKCk7IGl0ICE9IGNsYXNz
Q2FjaGVFbmQ7ICsraXQpCiAgICAgICAgIGl0LT5zZWNvbmQtPmludmFsaWRhdGVDYWNoZSgpOwpA
QCAtMjM2NCw3ICsyMzQ5LDcgQEAgdm9pZCBOb2RlTGlzdHNOb2RlRGF0YTo6aW52YWxpZGF0ZUNh
Y2hlcwogCiBib29sIE5vZGVMaXN0c05vZGVEYXRhOjppc0VtcHR5KCkgY29uc3QKIHsKLSAgICBp
ZiAoIW1fbGlzdHNXaXRoQ2FjaGVzLmlzRW1wdHkoKSkKKyAgICBpZiAoIW1fbGlzdHNJbnZhbGlk
YXRlZEF0RG9jdW1lbnQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBp
ZiAoIW1fdGFnTm9kZUxpc3RDYWNoZS5pc0VtcHR5KCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHJldmlz
aW9uIDExMDQ5NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTUyOSw4ICs1MjksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bnJlZ2lzdGVyRHluYW1pY1N1
YnRyZWVOb2RlTGlzdChEeW5hbWljU3VidHJlZU5vZGVMaXN0Kik7CiAgICAgdm9pZCBpbnZhbGlk
YXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpOwogICAgIHZvaWQgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJDaGlsZHJlbkNoYW5n
ZWQoKTsKLSAgICB2b2lkIGludmFsaWRhdGVSZWdpb25MaXN0Q2FjaGUoKTsKLSAgICB2b2lkIG5v
dGlmeUxvY2FsTm9kZUxpc3RzTGFiZWxDaGFuZ2VkKCk7CiAgICAgdm9pZCByZW1vdmVDYWNoZWRD
bGFzc05vZGVMaXN0KENsYXNzTm9kZUxpc3QqLCBjb25zdCBTdHJpbmcmKTsKIAogICAgIHZvaWQg
cmVtb3ZlQ2FjaGVkTmFtZU5vZGVMaXN0KE5hbWVOb2RlTGlzdCosIGNvbnN0IFN0cmluZyYpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAkocmV2aXNpb24gMTEwNDk2KQorKysgU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1
Miw3IEBAIHN0cnVjdCBOb2RlTGlzdHNOb2RlRGF0YSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoTm9kZUxpc3RzTm9kZURhdGEpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
ICAgICB0eXBlZGVmIEhhc2hTZXQ8RHluYW1pY1N1YnRyZWVOb2RlTGlzdCo+IE5vZGVMaXN0U2V0
OwotICAgIE5vZGVMaXN0U2V0IG1fbGlzdHNXaXRoQ2FjaGVzOworICAgIE5vZGVMaXN0U2V0IG1f
bGlzdHNJbnZhbGlkYXRlZEF0RG9jdW1lbnQ7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5n
LCBDbGFzc05vZGVMaXN0Kj4gQ2xhc3NOb2RlTGlzdENhY2hlOwogICAgIENsYXNzTm9kZUxpc3RD
YWNoZSBtX2NsYXNzTm9kZUxpc3RDYWNoZTsKQEAgLTgwLDcgKzgwLDcgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBOb2RlTGlzdHNOb2RlRGF0YSk7CiAgICAg
fQotICAgIAorCiAgICAgdm9pZCBpbnZhbGlkYXRlQ2FjaGVzKCk7CiAgICAgdm9pZCBpbnZhbGlk
YXRlQ2FjaGVzVGhhdERlcGVuZE9uQXR0cmlidXRlcygpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vUmVnaW9uTm9kZUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9SZWdpb25Ob2RlTGlzdC5jcHAJKHJldmlzaW9uIDExMDQ5NikKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9SZWdpb25Ob2RlTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDE1ICszOCwxNyBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWdpb25Ob2RlTGlzdDo6UmVnaW9uTm9kZUxpc3Qo
UGFzc1JlZlB0cjxOb2RlPiBub2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIGZsb3dOYW1lKQotOiBE
eW5hbWljU3VidHJlZU5vZGVMaXN0KG5vZGUtPmRvY3VtZW50KCkpCi0sIG1fY29udGVudE5vZGUo
bm9kZSkKLSwgbV9mbG93TmFtZShmbG93TmFtZSkKKyAgICA6IER5bmFtaWNTdWJ0cmVlTm9kZUxp
c3Qobm9kZS0+ZG9jdW1lbnQoKSkKKyAgICAsIG1fY29udGVudE5vZGUobm9kZSkKKyAgICAsIG1f
Zmxvd05hbWUoZmxvd05hbWUpCiB7CisgICAgbm9kZS0+ZG9jdW1lbnQoKS0+cmVnaXN0ZXJEeW5h
bWljU3VidHJlZU5vZGVMaXN0KHRoaXMpOwogfQogCiBSZWdpb25Ob2RlTGlzdDo6flJlZ2lvbk5v
ZGVMaXN0KCkKIHsKICAgICBtX2NvbnRlbnROb2RlLT5yZW1vdmVDYWNoZWRSZWdpb25Ob2RlTGlz
dCh0aGlzLCBtX2Zsb3dOYW1lKTsKKyAgICBtX2NvbnRlbnROb2RlLT5kb2N1bWVudCgpLT51bnJl
Z2lzdGVyRHluYW1pY1N1YnRyZWVOb2RlTGlzdCh0aGlzKTsKIH0gCiAKIGJvb2wgUmVnaW9uTm9k
ZUxpc3Q6Om5vZGVNYXRjaGVzKEVsZW1lbnQqIHRlc3ROb2RlKSBjb25zdApJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxMTA0OTYpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNTQsMTUgKzE1NCw0IEBAIHZvaWQgSFRNTExhYmVsRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9u
KGIKICAgICAgICAgSFRNTEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVudHMp
OwogfQogCi12b2lkIEhUTUxMYWJlbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKEF0dHJpYnV0ZSog
YXR0cmlidXRlKQotewotICAgIGlmIChhdHRyaWJ1dGUtPm5hbWUoKSA9PSBmb3JBdHRyKSB7Ci0g
ICAgICAgIC8vIGh0bWxGb3IgYXR0cmlidXRlIGNoYW5nZSBhZmZlY3RzIG90aGVyIG5vZGVzIHRo
YW4gdGhpcy4KLSAgICAgICAgLy8gQ2xlYXIgdGhlIGNhY2hlcyB0byBlbnN1cmUgdGhhdCB0aGUg
bGFiZWxzIGNhY2hlcyBhcmUgY2xlYXJlZC4KLSAgICAgICAgaWYgKGRvY3VtZW50KCkpCi0gICAg
ICAgICAgICBkb2N1bWVudCgpLT5ub3RpZnlMb2NhbE5vZGVMaXN0c0xhYmVsQ2hhbmdlZCgpOwot
ICAgIH0gZWxzZQotICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoYXR0cmlidXRl
KTsKLX0KLSAgICAgICAgICAgICAgICAKIH0gLy8gbmFtZXNwYWNlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAkocmV2aXNpb24gMTEwNDk2KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDggKzUw
LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCopOwogCiAgICAgdm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiA9IHRy
dWUpOwotCi0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKEF0dHJpYnV0ZSopIE9WRVJS
SURFOwogfTsKIAogfSAvL25hbWVzcGFjZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9MYWJl
bHNOb2RlTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9MYWJlbHNO
b2RlTGlzdC5jcHAJKHJldmlzaW9uIDExMDQ5NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvTGFi
ZWxzTm9kZUxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxMSArMzUsMTMgQEAgdXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKIExhYmVsc05vZGVMaXN0OjpMYWJlbHNOb2RlTGlzdChOb2Rl
KiBmb3JOb2RlICkKICAgICA6IER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QoZm9yTm9kZS0+ZG9jdW1l
bnQoKSkgLCBtX2Zvck5vZGUoZm9yTm9kZSkKIHsKKyAgICBtX2Zvck5vZGUtPmRvY3VtZW50KCkt
PnJlZ2lzdGVyRHluYW1pY1N1YnRyZWVOb2RlTGlzdCh0aGlzKTsKIH0KIAogTGFiZWxzTm9kZUxp
c3Q6On5MYWJlbHNOb2RlTGlzdCgpCiB7CiAgICAgbV9mb3JOb2RlLT5yZW1vdmVDYWNoZWRMYWJl
bHNOb2RlTGlzdCh0aGlzKTsKKyAgICBtX2Zvck5vZGUtPmRvY3VtZW50KCktPnVucmVnaXN0ZXJE
eW5hbWljU3VidHJlZU5vZGVMaXN0KHRoaXMpOwogfSAKICAgICAKIGJvb2wgTGFiZWxzTm9kZUxp
c3Q6Om5vZGVNYXRjaGVzKEVsZW1lbnQqIHRlc3ROb2RlKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131560</attachid>
            <date>2012-03-13 00:02:04 -0700</date>
            <delta_ts>2012-03-13 20:35:50 -0700</delta_ts>
            <desc>Also fix the bug 80638</desc>
            <filename>bug-80900-20120313000203.patch</filename>
            <type>text/plain</type>
            <size>14775</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDU0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzIEBACisyMDEyLTAzLTEyICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIChyZWdpc3Rlcnx1bnJlZ2lzdGVy
KUR5bmFtaWNTdWJ0cmVlTm9kZUxpc3Qgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IGZvciBsYWJlbHMg
YW5kIHJlZ2lvbnMgbm9kZSBsaXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODA5MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDbGVhbmVkIHVwIGludmFsaWRhdGlvbiBjb2RlIGZvciBkeW5hbWljIG5v
ZGUgbGlzdHMuIEl0IHNlZW1zIGxpa2UgdGhlIGV4aXN0aW5nIGNvZGUgd2FzIHV0dGVybHkgY29u
ZnVzZWQKKyAgICAgICAgYWJvdXQgdGhlIGxpZmV0aW1lIG9mIG5vZGUgbGlzdHMgYW5kIGNhY2hl
cyB3aXRoaW4gdGhlbS4gRmlyc3QsIHJlZ2lzdGVyL3VucmVnc2l0ZXJEeW5hbWljU3VidHJlZU5v
ZGVMaXN0CisgICAgICAgIGFyZSBjYWxsZWQgZm9yIGFsbCBkeW5hbWljIG5vZGUgbGlzdHMgZXZl
biB0aG91Z2ggaXQncyBvbmx5IHVzZWZ1bCBmb3IgbGFiZWxzIGFuZCByZWdpb24gbm9kZSBsaXN0
cyBzaW5jZQorICAgICAgICBpdCdzIGEgbWVjaGFuaXNtIHRvIGFsbG93IG5vZGUgbGlzdHMgdG8g
YmUgaW52YWxpZGF0ZWQgYXQgYSBub2RlIHRvIHdoaWNoIHRoZSBub2RlIGxpc3QgZG9lc24ndCBi
ZWxvbmcuCisKKyAgICAgICAgU2Vjb25kLCBzb21lIG5vZGUgbGlzdHMgaGFkIGRlZGljYXRlZCBt
ZW1iZXIgZnVuY3Rpb25zIG9uIE5vZGUgdG8gZXhwbGljaXRseSBpbnZhbGlkYXRlIGNhY2hlcyBp
bgorICAgICAgICBwYXJzZWRBdHRyaWJ1dGUuIEhvd2V2ZXIsIHRoaXMgaXMgcmVkdW5kYW50IGJl
Y2F1c2UgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2VkIHNob3Vs
ZCBiZQorICAgICAgICBhYmxlIHRvIGludmFsaWRhdGUgY2FjaGVzIHdoZW4gdGhlIGF0dHJpYnV0
ZSB2YWx1ZSBjaGFuZ2VzLiBUaGlzIHBhdGNoIGdldHMgcmlkIG9mIHRoZSBsYXN0IGluc3RhbmNl
IG9mIHN1Y2gKKyAgICAgICAgZnVuY3Rpb24gaW4gSFRNTExhYmVsRWxlbWVudC4KKworICAgICAg
ICBBbmQgZmluYWxseSwgdGhpcyBwYXRjaCByZXN0cmljdHMgdGhlIGNhbGxlcnMgb2YgRHluYW1p
Y1N1YnRyZWVOb2RlTGlzdDo6aW52YWxpZGF0ZUNhY2hlIHRvIGJlIG1lbWJlcgorICAgICAgICBm
dW5jdGlvbnMgb2YgTm9kZUxpc3RzTm9kZURhdGEgKG5vdyBmcmllbmRzIG9mIER5bmFtaWNTdWJ0
cmVlTm9kZUxpc3QpIHRvIGFsbG93IGZ1dGhlciByZWZhY3RvcmluZy4KKworICAgICAgICAqIGRv
bS9EeW5hbWljTm9kZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHluYW1pY1N1YnRyZWVO
b2RlTGlzdDo6RHluYW1pY1N1YnRyZWVOb2RlTGlzdCk6IERvbid0IHJlZ2lzdGVyIHRoZSBub2Rl
IGxpc3Qgc2luY2UgaXQncyBvbmx5CisgICAgICAgIHVzZWZ1bCBmb3IgbGFiZWxzIGFuZCByZWdp
b24gbm9kZSBsaXN0cy4KKyAgICAgICAgKFdlYkNvcmU6OkR5bmFtaWNTdWJ0cmVlTm9kZUxpc3Q6
On5EeW5hbWljU3VidHJlZU5vZGVMaXN0KTogRGl0dG8uCisgICAgICAgICogZG9tL0R5bmFtaWNO
b2RlTGlzdC5oOgorICAgICAgICAoRHluYW1pY1N1YnRyZWVOb2RlTGlzdCk6CisgICAgICAgICog
ZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
OjpyZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9kZUxpc3QpOiBUaGUgY29tbWVudCBhYm91dCBub3cg
d2UgaGF2ZSB0byBpbnZhbGlkYXRlIGNhY2hlcworICAgICAgICB3aGVuIHRoZXJlIGhhZCBubyBj
YWNoZXMgaXMgaW5jb3JyZWN0IGJlY2F1c2UgcmVnaXN0ZXJEeW5hbWljU3VidHJlZU5vZGVMaXN0
IGlzIGNhbGxlZCB3aGVuIGEgbm9kZSBsaXN0CisgICAgICAgIGlzIGluaXRpYWxseSBjcmVhdGVk
LiBBbHNvLCBpZiB0aGUgdHJlZSBzY29wZSBkaWRuJ3QgaGF2ZSBhbnkgY2FjaGVzLCB0aGVuIHRo
aXMgaXMgdGhlIGZpcnN0IG5vZGUgbGlzdAorICAgICAgICB0byBiZSBhZGRlZCB0byB0aGUgbGlz
dCwgc28gdGhlcmUncyBubyBwb2ludCBpbiBjYWxsaW5nIEludmFsaWRhdGVDYWNoZXMgKG5vLW9w
KS4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnVucmVnaXN0ZXJEeW5hbWljU3VidHJlZU5vZGVM
aXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFm
dGVyQXR0cmlidXRlQ2hhbmdlZCk6IFRha2UgY2FyZSBvZiAiZm9yIiBjb250ZW50IGF0dHJpYnV0
ZS4KKyAgICAgICAgQWxzbyByZW1vdmUgdGhlIHJlZHVuZGFudCBjYWxsIHRvIHJlbW92ZU5vZGVM
aXN0Q2FjaGVJZlBvc3NpYmxlIHNpbmNlIHdlIG9ubHkgaW52YWxpZGF0ZXMgbm9kZSBsaXN0cwor
ICAgICAgICBhbmQgbmV2ZXIgcmVtb3ZlIGVudHJpZXMgZnJvbSBOb2RlTGlzdHNOb2RlRGF0YSBp
biB0aGlzIGZ1bmN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aW52YWxpZGF0ZU5vZGVM
aXN0c0NhY2hlQWZ0ZXJDaGlsZHJlbkNoYW5nZWQpOiBUaGUgY2FsbCB0byByZW1vdmVOb2RlTGlz
dENhY2hlSWZQb3NzaWJsZQorICAgICAgICBpcyBhbHNvIHJlZHVuZGFudCBoZXJlLiBBbHNvIHJl
bW92ZWQgdGhlIGludmFsaWRhdGlvbiBvZiBtX2xpc3RzV2l0aENhY2hlcyBzaW5jZSBpdCdzIGFs
cmVhZHkgZG9uZSBpbgorICAgICAgICBpbnZhbGlkYXRlQ2FjaGVzIHZpYSBpbnZhbGlkYXRlQ2Fj
aGVzVGhhdERlcGVuZE9uQXR0cmlidXRlcy4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05v
ZGVEYXRhOjppbnZhbGlkYXRlQ2FjaGVzKTogUmVtb3ZlZCB0aGUgaW52YWxpZGF0aW9uIG9mIG1f
bGFiZWxzTm9kZUxpc3RDYWNoZS4gSXQncworICAgICAgICBkb25lIGluIGludmFsaWRhdGVDYWNo
ZXNUaGF0RGVwZW5kT25BdHRyaWJ1dGVzLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9k
ZURhdGE6OmludmFsaWRhdGVDYWNoZXNUaGF0RGVwZW5kT25BdHRyaWJ1dGVzKTogSW52YWxpZGF0
ZQorICAgICAgICBtX2xpc3RzSW52YWxpZGF0ZWRBdERvY3VtZW50LCB3aGljaCBpcyByZW5hbWVk
IGZyb20gbV9saXN0c1dpdGhDYWNoZXMuCisgICAgICAgIChXZWJDb3JlOjpOb2RlTGlzdHNOb2Rl
RGF0YTo6aXNFbXB0eSk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKE5vZGUpOgor
ICAgICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuaDoKKyAgICAgICAgKE5vZGVMaXN0c05vZGVEYXRh
KToKKyAgICAgICAgKiBkb20vUmVnaW9uTm9kZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVnaW9uTm9kZUxpc3Q6OlJlZ2lvbk5vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lv
bk5vZGVMaXN0Ojp+UmVnaW9uTm9kZUxpc3QpOgorICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKTogUmVtb3ZlZCBwYXJzZUF0dHJpYnV0ZSBzaW5j
ZSB0aGUgaW52YWxpZGF0aW9uIGxhYmVscyBub2RlIGxpc3QgaXMgbm93IGRvbmUgYnkKKyAgICAg
ICAgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2VkIGFuZCBpbnZh
bGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckNoaWxkcmVuQ2hhbmdlZC4KKyAgICAgICAgKiBodG1s
L0hUTUxMYWJlbEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxMYWJlbEVsZW1lbnQpOgorICAgICAg
ICAqIGh0bWwvTGFiZWxzTm9kZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGFiZWxzTm9k
ZUxpc3Q6OkxhYmVsc05vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxhYmVsc05vZGVMaXN0
Ojp+TGFiZWxzTm9kZUxpc3QpOgorCiAyMDEyLTAzLTEyICBNYXR0IEZhbGtlbmhhZ2VuICA8ZmFs
a2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBTd2l0Y2ggQ2hyb21pdW0gZnJvbSBMb2NhbGVU
b1NjcmlwdE1hcHBpbmdJQ1UuY3BwIHRvIExvY2FsZVRvU2NyaXB0TWFwcGluZ0RlZmF1bHQuY3Bw
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmNwcAkocmV2aXNpb24gMTEw
NTQxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDEyICszMSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBEeW5hbWljU3Vi
dHJlZU5vZGVMaXN0OjpEeW5hbWljU3VidHJlZU5vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZT4gbm9k
ZSkKICAgICA6IER5bmFtaWNOb2RlTGlzdChub2RlKQogewotICAgIHJvb3ROb2RlKCktPnJlZ2lz
dGVyRHluYW1pY1N1YnRyZWVOb2RlTGlzdCh0aGlzKTsKIH0KIAogRHluYW1pY1N1YnRyZWVOb2Rl
TGlzdDo6fkR5bmFtaWNTdWJ0cmVlTm9kZUxpc3QoKQogewotICAgIHJvb3ROb2RlKCktPnVucmVn
aXN0ZXJEeW5hbWljU3VidHJlZU5vZGVMaXN0KHRoaXMpOwogfQogCiB1bnNpZ25lZCBEeW5hbWlj
U3VidHJlZU5vZGVMaXN0OjpsZW5ndGgoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0R5bmFtaWNOb2RlTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9EeW5h
bWljTm9kZUxpc3QuaAkocmV2aXNpb24gMTEwNTQxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0R5
bmFtaWNOb2RlTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4Nyw5IEBAIHByb3RlY3Rl
ZDoKICAgICBEeW5hbWljU3VidHJlZU5vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUp
OwogCiBwcml2YXRlOgorICAgIER5bmFtaWNOb2RlTGlzdDo6aW52YWxpZGF0ZUNhY2hlOworICAg
IGZyaWVuZCBjbGFzcyBOb2RlTGlzdHNOb2RlRGF0YTsKKwogICAgIE5vZGUqIGl0ZW1Gb3J3YXJk
c0Zyb21DdXJyZW50KE5vZGUqIHN0YXJ0LCB1bnNpZ25lZCBvZmZzZXQsIGludCByZW1haW5pbmdP
ZmZzZXQpIGNvbnN0OwogICAgIE5vZGUqIGl0ZW1CYWNrd2FyZHNGcm9tQ3VycmVudChOb2RlKiBz
dGFydCwgdW5zaWduZWQgb2Zmc2V0LCBpbnQgcmVtYWluaW5nT2Zmc2V0KSBjb25zdDsKIH07Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwCShyZXZpc2lvbiAxMTA1NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk0MCwyMiArOTQwLDIyIEBAIHN0YXRpYyB2
b2lkIHJlbW92ZU5vZGVMaXN0Q2FjaGVJZlBvc3NpYmwKICAgICBub2RlLT50cmVlU2NvcGUoKS0+
cmVtb3ZlTm9kZUxpc3RDYWNoZSgpOwogfQogCisvLyBGSVhNRTogTW92ZSB0aGlzIGZ1bmN0aW9u
IHRvIERvY3VtZW50CiB2b2lkIE5vZGU6OnJlZ2lzdGVyRHluYW1pY1N1YnRyZWVOb2RlTGlzdChE
eW5hbWljU3VidHJlZU5vZGVMaXN0KiBsaXN0KQogeworICAgIEFTU0VSVChpc0RvY3VtZW50Tm9k
ZSgpKTsKICAgICBOb2RlUmFyZURhdGEqIGRhdGEgPSBlbnN1cmVSYXJlRGF0YSgpOwotICAgIC8v
IFdlIGhhdmVuJ3QgYmVlbiByZWNlaXZpbmcgbm90aWZpY2F0aW9ucyB3aGlsZSB0aGVyZSB3ZXJl
IG5vIHJlZ2lzdGVyZWQgbGlzdHMsIHNvIHRoZSBjYWNoZSBpcyBpbnZhbGlkIG5vdy4KLSAgICBp
ZiAoZGF0YS0+bm9kZUxpc3RzKCkgJiYgKCF0cmVlU2NvcGUoKSB8fCAhdHJlZVNjb3BlKCktPmhh
c05vZGVMaXN0Q2FjaGVzKCkpKQotICAgICAgICBkYXRhLT5ub2RlTGlzdHMoKS0+aW52YWxpZGF0
ZUNhY2hlcygpOwotCi0gICAgZGF0YS0+ZW5zdXJlTm9kZUxpc3RzKHRoaXMpLT5tX2xpc3RzV2l0
aENhY2hlcy5hZGQobGlzdCk7CisgICAgZGF0YS0+ZW5zdXJlTm9kZUxpc3RzKHRoaXMpLT5tX2xp
c3RzSW52YWxpZGF0ZWRBdERvY3VtZW50LmFkZChsaXN0KTsKIH0KIAorLy8gRklYTUU6IE1vdmUg
dGhpcyBmdW5jdGlvbiB0byBEb2N1bWVudAogdm9pZCBOb2RlOjp1bnJlZ2lzdGVyRHluYW1pY1N1
YnRyZWVOb2RlTGlzdChEeW5hbWljU3VidHJlZU5vZGVMaXN0KiBsaXN0KQogeworICAgIEFTU0VS
VChpc0RvY3VtZW50Tm9kZSgpKTsKICAgICBBU1NFUlQoaGFzUmFyZURhdGEoKSk7CiAgICAgQVNT
RVJUKHJhcmVEYXRhKCktPm5vZGVMaXN0cygpKTsKICAgICBOb2RlUmFyZURhdGEqIGRhdGEgPSBy
YXJlRGF0YSgpOwotICAgIGRhdGEtPm5vZGVMaXN0cygpLT5tX2xpc3RzV2l0aENhY2hlcy5yZW1v
dmUobGlzdCk7CisgICAgZGF0YS0+bm9kZUxpc3RzKCktPm1fbGlzdHNJbnZhbGlkYXRlZEF0RG9j
dW1lbnQucmVtb3ZlKGxpc3QpOwogICAgIHJlbW92ZU5vZGVMaXN0Q2FjaGVJZlBvc3NpYmxlKHRo
aXMsIGRhdGEpOwogfQogCkBAIC05NzQsNyArOTc0LDggQEAgdm9pZCBOb2RlOjppbnZhbGlkYXRl
Tm9kZUxpc3RzQ2FjaGVBZnRlcgogICAgICAgICAmJiBhdHRyTmFtZSAhPSBpdGVtcHJvcEF0dHIK
ICAgICAgICAgJiYgYXR0ck5hbWUgIT0gaXRlbXR5cGVBdHRyCiAjZW5kaWYKLSAgICAgICAgJiYg
YXR0ck5hbWUgIT0gbmFtZUF0dHIpCisgICAgICAgICYmIGF0dHJOYW1lICE9IG5hbWVBdHRyCisg
ICAgICAgICYmIGF0dHJOYW1lICE9IGZvckF0dHIpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
ICghdHJlZVNjb3BlKCktPmhhc05vZGVMaXN0Q2FjaGVzKCkpCkBAIC05ODksNyArOTkwLDYgQEAg
dm9pZCBOb2RlOjppbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlcgogICAgICAgICAgICAgY29u
dGludWU7CiAKICAgICAgICAgZGF0YS0+bm9kZUxpc3RzKCktPmludmFsaWRhdGVDYWNoZXNUaGF0
RGVwZW5kT25BdHRyaWJ1dGVzKCk7Ci0gICAgICAgIHJlbW92ZU5vZGVMaXN0Q2FjaGVJZlBvc3Np
YmxlKG5vZGUsIGRhdGEpOwogICAgIH0KIH0KIApAQCAtMTAwOCwyNyArMTAwOCw5IEBAIHZvaWQg
Tm9kZTo6aW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXIKICAgICAgICAgICAgIGNvbnRpbnVl
OwogCiAgICAgICAgIGRhdGEtPm5vZGVMaXN0cygpLT5pbnZhbGlkYXRlQ2FjaGVzKCk7Ci0KLSAg
ICAgICAgTm9kZUxpc3RzTm9kZURhdGE6Ok5vZGVMaXN0U2V0OjppdGVyYXRvciBlbmQgPSBkYXRh
LT5ub2RlTGlzdHMoKS0+bV9saXN0c1dpdGhDYWNoZXMuZW5kKCk7Ci0gICAgICAgIGZvciAoTm9k
ZUxpc3RzTm9kZURhdGE6Ok5vZGVMaXN0U2V0OjppdGVyYXRvciBpdCA9IGRhdGEtPm5vZGVMaXN0
cygpLT5tX2xpc3RzV2l0aENhY2hlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAg
ICAgICAoKml0KS0+aW52YWxpZGF0ZUNhY2hlKCk7Ci0KLSAgICAgICAgcmVtb3ZlTm9kZUxpc3RD
YWNoZUlmUG9zc2libGUobm9kZSwgZGF0YSk7CiAgICAgfQogfQogCi12b2lkIE5vZGU6Om5vdGlm
eUxvY2FsTm9kZUxpc3RzTGFiZWxDaGFuZ2VkKCkKLXsKLSAgICBpZiAoIWhhc1JhcmVEYXRhKCkp
Ci0gICAgICAgIHJldHVybjsKLSAgICBOb2RlUmFyZURhdGEqIGRhdGEgPSByYXJlRGF0YSgpOwot
ICAgIGlmICghZGF0YS0+bm9kZUxpc3RzKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChk
YXRhLT5ub2RlTGlzdHMoKS0+bV9sYWJlbHNOb2RlTGlzdENhY2hlKQotICAgICAgICBkYXRhLT5u
b2RlTGlzdHMoKS0+bV9sYWJlbHNOb2RlTGlzdENhY2hlLT5pbnZhbGlkYXRlQ2FjaGUoKTsKLX0K
LQogdm9pZCBOb2RlOjpyZW1vdmVDYWNoZWRDbGFzc05vZGVMaXN0KENsYXNzTm9kZUxpc3QqIGxp
c3QsIGNvbnN0IFN0cmluZyYgY2xhc3NOYW1lKQogewogICAgIEFTU0VSVChyYXJlRGF0YSgpKTsK
QEAgLTIzMjksMjIgKzIzMTEsMjYgQEAgdm9pZCBOb2RlOjpzaG93VHJlZUZvclRoaXNBY3Jvc3NG
cmFtZSgpIAogCiB2b2lkIE5vZGVMaXN0c05vZGVEYXRhOjppbnZhbGlkYXRlQ2FjaGVzKCkKIHsK
LSAgICBpZiAobV9sYWJlbHNOb2RlTGlzdENhY2hlKQotICAgICAgICBtX2xhYmVsc05vZGVMaXN0
Q2FjaGUtPmludmFsaWRhdGVDYWNoZSgpOwogICAgIFRhZ05vZGVMaXN0Q2FjaGU6OmNvbnN0X2l0
ZXJhdG9yIHRhZ0NhY2hlRW5kID0gbV90YWdOb2RlTGlzdENhY2hlLmVuZCgpOwogICAgIGZvciAo
VGFnTm9kZUxpc3RDYWNoZTo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3RhZ05vZGVMaXN0Q2FjaGUu
YmVnaW4oKTsgaXQgIT0gdGFnQ2FjaGVFbmQ7ICsraXQpCiAgICAgICAgIGl0LT5zZWNvbmQtPmlu
dmFsaWRhdGVDYWNoZSgpOwogICAgIFRhZ05vZGVMaXN0Q2FjaGVOUzo6Y29uc3RfaXRlcmF0b3Ig
dGFnQ2FjaGVOU0VuZCA9IG1fdGFnTm9kZUxpc3RDYWNoZU5TLmVuZCgpOwogICAgIGZvciAoVGFn
Tm9kZUxpc3RDYWNoZU5TOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fdGFnTm9kZUxpc3RDYWNoZU5T
LmJlZ2luKCk7IGl0ICE9IHRhZ0NhY2hlTlNFbmQ7ICsraXQpCiAgICAgICAgIGl0LT5zZWNvbmQt
PmludmFsaWRhdGVDYWNoZSgpOwotICAgIFJlZ2lvbk5vZGVMaXN0Q2FjaGU6OmNvbnN0X2l0ZXJh
dG9yIHJlZ2lvbkxpc3RDYWNoZUVuZCA9IG1fcmVnaW9uTm9kZUxpc3RDYWNoZS5lbmQoKTsKLSAg
ICBmb3IgKFJlZ2lvbk5vZGVMaXN0Q2FjaGU6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9yZWdpb25O
b2RlTGlzdENhY2hlLmJlZ2luKCk7IGl0ICE9IHJlZ2lvbkxpc3RDYWNoZUVuZDsgKytpdCkKLSAg
ICAgICAgaXQtPnNlY29uZC0+aW52YWxpZGF0ZUNhY2hlKCk7CiAgICAgaW52YWxpZGF0ZUNhY2hl
c1RoYXREZXBlbmRPbkF0dHJpYnV0ZXMoKTsKIH0KIAogdm9pZCBOb2RlTGlzdHNOb2RlRGF0YTo6
aW52YWxpZGF0ZUNhY2hlc1RoYXREZXBlbmRPbkF0dHJpYnV0ZXMoKQogeworICAgIC8vIFVzZWQg
YnkgbGFiZWxzIGFuZCByZWdpb24gbm9kZSBsaXN0cyBvbiBkb2N1bWVudC4KKyAgICBOb2RlTGlz
dHNOb2RlRGF0YTo6Tm9kZUxpc3RTZXQ6Oml0ZXJhdG9yIGVuZCA9IG1fbGlzdHNJbnZhbGlkYXRl
ZEF0RG9jdW1lbnQuZW5kKCk7CisgICAgZm9yIChOb2RlTGlzdHNOb2RlRGF0YTo6Tm9kZUxpc3RT
ZXQ6Oml0ZXJhdG9yIGl0ID0gbV9saXN0c0ludmFsaWRhdGVkQXREb2N1bWVudC5iZWdpbigpOyBp
dCAhPSBlbmQ7ICsraXQpCisgICAgICAgICgqaXQpLT5pbnZhbGlkYXRlQ2FjaGUoKTsKKworICAg
IFJlZ2lvbk5vZGVMaXN0Q2FjaGU6OmNvbnN0X2l0ZXJhdG9yIHJlZ2lvbkxpc3RDYWNoZUVuZCA9
IG1fcmVnaW9uTm9kZUxpc3RDYWNoZS5lbmQoKTsKKyAgICBmb3IgKFJlZ2lvbk5vZGVMaXN0Q2Fj
aGU6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9yZWdpb25Ob2RlTGlzdENhY2hlLmJlZ2luKCk7IGl0
ICE9IHJlZ2lvbkxpc3RDYWNoZUVuZDsgKytpdCkKKyAgICAgICAgaXQtPnNlY29uZC0+aW52YWxp
ZGF0ZUNhY2hlKCk7CisKICAgICBDbGFzc05vZGVMaXN0Q2FjaGU6Oml0ZXJhdG9yIGNsYXNzQ2Fj
aGVFbmQgPSBtX2NsYXNzTm9kZUxpc3RDYWNoZS5lbmQoKTsKICAgICBmb3IgKENsYXNzTm9kZUxp
c3RDYWNoZTo6aXRlcmF0b3IgaXQgPSBtX2NsYXNzTm9kZUxpc3RDYWNoZS5iZWdpbigpOyBpdCAh
PSBjbGFzc0NhY2hlRW5kOyArK2l0KQogICAgICAgICBpdC0+c2Vjb25kLT5pbnZhbGlkYXRlQ2Fj
aGUoKTsKQEAgLTIzNTIsNiArMjMzOCw3IEBAIHZvaWQgTm9kZUxpc3RzTm9kZURhdGE6OmludmFs
aWRhdGVDYWNoZXMKICAgICBOYW1lTm9kZUxpc3RDYWNoZTo6aXRlcmF0b3IgbmFtZUNhY2hlRW5k
ID0gbV9uYW1lTm9kZUxpc3RDYWNoZS5lbmQoKTsKICAgICBmb3IgKE5hbWVOb2RlTGlzdENhY2hl
OjppdGVyYXRvciBpdCA9IG1fbmFtZU5vZGVMaXN0Q2FjaGUuYmVnaW4oKTsgaXQgIT0gbmFtZUNh
Y2hlRW5kOyArK2l0KQogICAgICAgICBpdC0+c2Vjb25kLT5pbnZhbGlkYXRlQ2FjaGUoKTsKKwog
ICAgIGlmIChtX2xhYmVsc05vZGVMaXN0Q2FjaGUpCiAgICAgICAgIG1fbGFiZWxzTm9kZUxpc3RD
YWNoZS0+aW52YWxpZGF0ZUNhY2hlKCk7CiAKQEAgLTIzNjQsNyArMjM1MSw3IEBAIHZvaWQgTm9k
ZUxpc3RzTm9kZURhdGE6OmludmFsaWRhdGVDYWNoZXMKIAogYm9vbCBOb2RlTGlzdHNOb2RlRGF0
YTo6aXNFbXB0eSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2xpc3RzV2l0aENhY2hlcy5pc0VtcHR5
KCkpCisgICAgaWYgKCFtX2xpc3RzSW52YWxpZGF0ZWRBdERvY3VtZW50LmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFtX3RhZ05vZGVMaXN0Q2FjaGUuaXNFbXB0
eSgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5oCShyZXZpc2lvbiAxMTA1NDEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MjksOCArNTI5LDYgQEAgcHVibGljOgog
ICAgIHZvaWQgdW5yZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9kZUxpc3QoRHluYW1pY1N1YnRyZWVO
b2RlTGlzdCopOwogICAgIHZvaWQgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2b2lkIGludmFsaWRhdGVOb2Rl
TGlzdHNDYWNoZUFmdGVyQ2hpbGRyZW5DaGFuZ2VkKCk7Ci0gICAgdm9pZCBpbnZhbGlkYXRlUmVn
aW9uTGlzdENhY2hlKCk7Ci0gICAgdm9pZCBub3RpZnlMb2NhbE5vZGVMaXN0c0xhYmVsQ2hhbmdl
ZCgpOwogICAgIHZvaWQgcmVtb3ZlQ2FjaGVkQ2xhc3NOb2RlTGlzdChDbGFzc05vZGVMaXN0Kiwg
Y29uc3QgU3RyaW5nJik7CiAKICAgICB2b2lkIHJlbW92ZUNhY2hlZE5hbWVOb2RlTGlzdChOYW1l
Tm9kZUxpc3QqLCBjb25zdCBTdHJpbmcmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
UmFyZURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRh
LmgJKHJldmlzaW9uIDExMDU0MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEu
aAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBzdHJ1Y3QgTm9kZUxpc3RzTm9kZURh
dGEgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE5vZGVMaXN0c05vZGVEYXRhKTsgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBIYXNoU2V0PER5bmFtaWNT
dWJ0cmVlTm9kZUxpc3QqPiBOb2RlTGlzdFNldDsKLSAgICBOb2RlTGlzdFNldCBtX2xpc3RzV2l0
aENhY2hlczsKKyAgICBOb2RlTGlzdFNldCBtX2xpc3RzSW52YWxpZGF0ZWRBdERvY3VtZW50Owog
CiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgQ2xhc3NOb2RlTGlzdCo+IENsYXNzTm9kZUxp
c3RDYWNoZTsKICAgICBDbGFzc05vZGVMaXN0Q2FjaGUgbV9jbGFzc05vZGVMaXN0Q2FjaGU7CkBA
IC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgTm9kZUxpc3RzTm9kZURhdGEpOwogICAgIH0KLSAgICAKKwogICAgIHZvaWQgaW52YWxpZGF0
ZUNhY2hlcygpOwogICAgIHZvaWQgaW52YWxpZGF0ZUNhY2hlc1RoYXREZXBlbmRPbkF0dHJpYnV0
ZXMoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1JlZ2lvbk5vZGVMaXN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vUmVnaW9uTm9kZUxpc3QuY3BwCShyZXZpc2lv
biAxMTA1NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vUmVnaW9uTm9kZUxpc3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOCwxNSArMzgsMTcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVn
aW9uTm9kZUxpc3Q6OlJlZ2lvbk5vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgY29uc3Qg
QXRvbWljU3RyaW5nJiBmbG93TmFtZSkKLTogRHluYW1pY1N1YnRyZWVOb2RlTGlzdChub2RlLT5k
b2N1bWVudCgpKQotLCBtX2NvbnRlbnROb2RlKG5vZGUpCi0sIG1fZmxvd05hbWUoZmxvd05hbWUp
CisgICAgOiBEeW5hbWljU3VidHJlZU5vZGVMaXN0KG5vZGUtPmRvY3VtZW50KCkpCisgICAgLCBt
X2NvbnRlbnROb2RlKG5vZGUpCisgICAgLCBtX2Zsb3dOYW1lKGZsb3dOYW1lKQogeworICAgIG5v
ZGUtPmRvY3VtZW50KCktPnJlZ2lzdGVyRHluYW1pY1N1YnRyZWVOb2RlTGlzdCh0aGlzKTsKIH0K
IAogUmVnaW9uTm9kZUxpc3Q6On5SZWdpb25Ob2RlTGlzdCgpCiB7CiAgICAgbV9jb250ZW50Tm9k
ZS0+cmVtb3ZlQ2FjaGVkUmVnaW9uTm9kZUxpc3QodGhpcywgbV9mbG93TmFtZSk7CisgICAgbV9j
b250ZW50Tm9kZS0+ZG9jdW1lbnQoKS0+dW5yZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9kZUxpc3Qo
dGhpcyk7CiB9IAogCiBib29sIFJlZ2lvbk5vZGVMaXN0Ojpub2RlTWF0Y2hlcyhFbGVtZW50KiB0
ZXN0Tm9kZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50
LmNwcAkocmV2aXNpb24gMTEwNTQxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU0LDE1ICsxNTQsNCBAQCB2b2lkIEhUTUxM
YWJlbEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihiCiAgICAgICAgIEhUTUxFbGVtZW50OjphY2Nl
c3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsKIH0KIAotdm9pZCBIVE1MTGFiZWxFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHJpYnV0ZSkKLXsKLSAgICBpZiAoYXR0cmli
dXRlLT5uYW1lKCkgPT0gZm9yQXR0cikgewotICAgICAgICAvLyBodG1sRm9yIGF0dHJpYnV0ZSBj
aGFuZ2UgYWZmZWN0cyBvdGhlciBub2RlcyB0aGFuIHRoaXMuCi0gICAgICAgIC8vIENsZWFyIHRo
ZSBjYWNoZXMgdG8gZW5zdXJlIHRoYXQgdGhlIGxhYmVscyBjYWNoZXMgYXJlIGNsZWFyZWQuCi0g
ICAgICAgIGlmIChkb2N1bWVudCgpKQotICAgICAgICAgICAgZG9jdW1lbnQoKS0+bm90aWZ5TG9j
YWxOb2RlTGlzdHNMYWJlbENoYW5nZWQoKTsKLSAgICB9IGVsc2UKLSAgICAgICAgSFRNTEVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGF0dHJpYnV0ZSk7Ci19Ci0gICAgICAgICAgICAgICAgCiB9IC8v
IG5hbWVzcGFjZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgJKHJl
dmlzaW9uIDExMDU0MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC01MCw4ICs1MCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKIAogICAgIHZvaWQgZm9jdXMoYm9vbCBy
ZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24gPSB0cnVlKTsKLQotICAgIHZpcnR1YWwgdm9pZCBwYXJz
ZUF0dHJpYnV0ZShBdHRyaWJ1dGUqKSBPVkVSUklERTsKIH07CiAKIH0gLy9uYW1lc3BhY2UKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxzTm9kZUxpc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxzTm9kZUxpc3QuY3BwCShyZXZpc2lvbiAxMTA1NDEp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0xhYmVsc05vZGVMaXN0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzUsMTEgKzM1LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBMYWJlbHNO
b2RlTGlzdDo6TGFiZWxzTm9kZUxpc3QoTm9kZSogZm9yTm9kZSApCiAgICAgOiBEeW5hbWljU3Vi
dHJlZU5vZGVMaXN0KGZvck5vZGUtPmRvY3VtZW50KCkpICwgbV9mb3JOb2RlKGZvck5vZGUpCiB7
CisgICAgbV9mb3JOb2RlLT5kb2N1bWVudCgpLT5yZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9kZUxp
c3QodGhpcyk7CiB9CiAKIExhYmVsc05vZGVMaXN0Ojp+TGFiZWxzTm9kZUxpc3QoKQogewogICAg
IG1fZm9yTm9kZS0+cmVtb3ZlQ2FjaGVkTGFiZWxzTm9kZUxpc3QodGhpcyk7CisgICAgbV9mb3JO
b2RlLT5kb2N1bWVudCgpLT51bnJlZ2lzdGVyRHluYW1pY1N1YnRyZWVOb2RlTGlzdCh0aGlzKTsK
IH0gCiAgICAgCiBib29sIExhYmVsc05vZGVMaXN0Ojpub2RlTWF0Y2hlcyhFbGVtZW50KiB0ZXN0
Tm9kZSkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131777</attachid>
            <date>2012-03-13 20:45:48 -0700</date>
            <delta_ts>2012-03-14 20:35:29 -0700</delta_ts>
            <desc>Updated for ToT</desc>
            <filename>fix80900</filename>
            <type>text/plain</type>
            <size>12321</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaAkocmV2aXNpb24gMTEwNjU0KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTI4LDcgKzUyOCw2IEBACiAgICAgdm9pZCB1bnJl
Z2lzdGVyRHluYW1pY1N1YnRyZWVOb2RlTGlzdChEeW5hbWljU3VidHJlZU5vZGVMaXN0Kik7CiAg
ICAgdm9pZCBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZvaWQgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0
ZXJDaGlsZHJlbkNoYW5nZWQoKTsKLSAgICB2b2lkIG5vdGlmeUxvY2FsTm9kZUxpc3RzTGFiZWxD
aGFuZ2VkKCk7CiAgICAgdm9pZCByZW1vdmVDYWNoZWRDbGFzc05vZGVMaXN0KENsYXNzTm9kZUxp
c3QqLCBjb25zdCBTdHJpbmcmKTsKIAogICAgIHZvaWQgcmVtb3ZlQ2FjaGVkTmFtZU5vZGVMaXN0
KE5hbWVOb2RlTGlzdCosIGNvbnN0IFN0cmluZyYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0R5bmFtaWNOb2RlTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9EeW5h
bWljTm9kZUxpc3QuaAkocmV2aXNpb24gMTEwNDk2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0R5
bmFtaWNOb2RlTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4Nyw5IEBACiAgICAgRHlu
YW1pY1N1YnRyZWVOb2RlTGlzdChQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlKTsKIAogcHJpdmF0
ZToKKyAgICBEeW5hbWljTm9kZUxpc3Q6OmludmFsaWRhdGVDYWNoZTsKKyAgICBmcmllbmQgY2xh
c3MgTm9kZUxpc3RzTm9kZURhdGE7CisKICAgICBOb2RlKiBpdGVtRm9yd2FyZHNGcm9tQ3VycmVu
dChOb2RlKiBzdGFydCwgdW5zaWduZWQgb2Zmc2V0LCBpbnQgcmVtYWluaW5nT2Zmc2V0KSBjb25z
dDsKICAgICBOb2RlKiBpdGVtQmFja3dhcmRzRnJvbUN1cnJlbnQoTm9kZSogc3RhcnQsIHVuc2ln
bmVkIG9mZnNldCwgaW50IHJlbWFpbmluZ09mZnNldCkgY29uc3Q7CiB9OwpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmFyZURhdGEuaAkocmV2aXNpb24gMTEwNjU0KQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSYXJlRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBACiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoTm9kZUxpc3RzTm9kZURhdGEpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEhhc2hTZXQ8RHluYW1pY1N1YnRyZWVOb2Rl
TGlzdCo+IE5vZGVMaXN0U2V0OwotICAgIE5vZGVMaXN0U2V0IG1fbGlzdHNXaXRoQ2FjaGVzOwor
ICAgIE5vZGVMaXN0U2V0IG1fbGlzdHNJbnZhbGlkYXRlZEF0RG9jdW1lbnQ7CiAKICAgICB0eXBl
ZGVmIEhhc2hNYXA8U3RyaW5nLCBDbGFzc05vZGVMaXN0Kj4gQ2xhc3NOb2RlTGlzdENhY2hlOwog
ICAgIENsYXNzTm9kZUxpc3RDYWNoZSBtX2NsYXNzTm9kZUxpc3RDYWNoZTsKQEAgLTc2LDcgKzc2
LDcgQEAKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgTm9kZUxpc3RzTm9kZURh
dGEpOwogICAgIH0KLSAgICAKKwogICAgIHZvaWQgaW52YWxpZGF0ZUNhY2hlcygpOwogICAgIHZv
aWQgaW52YWxpZGF0ZUNhY2hlc1RoYXREZXBlbmRPbkF0dHJpYnV0ZXMoKTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcAkocmV2aXNpb24gMTEwNjU0KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NDAsMjIgKzk0MCwyMiBAQAogICAgIG5vZGUtPnRyZWVT
Y29wZSgpLT5yZW1vdmVOb2RlTGlzdENhY2hlKCk7CiB9CiAKKy8vIEZJWE1FOiBNb3ZlIHRoaXMg
ZnVuY3Rpb24gdG8gRG9jdW1lbnQKIHZvaWQgTm9kZTo6cmVnaXN0ZXJEeW5hbWljU3VidHJlZU5v
ZGVMaXN0KER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QqIGxpc3QpCiB7CisgICAgQVNTRVJUKGlzRG9j
dW1lbnROb2RlKCkpOwogICAgIE5vZGVSYXJlRGF0YSogZGF0YSA9IGVuc3VyZVJhcmVEYXRhKCk7
Ci0gICAgLy8gV2UgaGF2ZW4ndCBiZWVuIHJlY2VpdmluZyBub3RpZmljYXRpb25zIHdoaWxlIHRo
ZXJlIHdlcmUgbm8gcmVnaXN0ZXJlZCBsaXN0cywgc28gdGhlIGNhY2hlIGlzIGludmFsaWQgbm93
LgotICAgIGlmIChkYXRhLT5ub2RlTGlzdHMoKSAmJiAoIXRyZWVTY29wZSgpIHx8ICF0cmVlU2Nv
cGUoKS0+aGFzTm9kZUxpc3RDYWNoZXMoKSkpCi0gICAgICAgIGRhdGEtPm5vZGVMaXN0cygpLT5p
bnZhbGlkYXRlQ2FjaGVzKCk7Ci0KLSAgICBkYXRhLT5lbnN1cmVOb2RlTGlzdHModGhpcyktPm1f
bGlzdHNXaXRoQ2FjaGVzLmFkZChsaXN0KTsKKyAgICBkYXRhLT5lbnN1cmVOb2RlTGlzdHModGhp
cyktPm1fbGlzdHNJbnZhbGlkYXRlZEF0RG9jdW1lbnQuYWRkKGxpc3QpOwogfQogCisvLyBGSVhN
RTogTW92ZSB0aGlzIGZ1bmN0aW9uIHRvIERvY3VtZW50CiB2b2lkIE5vZGU6OnVucmVnaXN0ZXJE
eW5hbWljU3VidHJlZU5vZGVMaXN0KER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QqIGxpc3QpCiB7Cisg
ICAgQVNTRVJUKGlzRG9jdW1lbnROb2RlKCkpOwogICAgIEFTU0VSVChoYXNSYXJlRGF0YSgpKTsK
ICAgICBBU1NFUlQocmFyZURhdGEoKS0+bm9kZUxpc3RzKCkpOwogICAgIE5vZGVSYXJlRGF0YSog
ZGF0YSA9IHJhcmVEYXRhKCk7Ci0gICAgZGF0YS0+bm9kZUxpc3RzKCktPm1fbGlzdHNXaXRoQ2Fj
aGVzLnJlbW92ZShsaXN0KTsKKyAgICBkYXRhLT5ub2RlTGlzdHMoKS0+bV9saXN0c0ludmFsaWRh
dGVkQXREb2N1bWVudC5yZW1vdmUobGlzdCk7CiAgICAgcmVtb3ZlTm9kZUxpc3RDYWNoZUlmUG9z
c2libGUodGhpcywgZGF0YSk7CiB9CiAKQEAgLTk3NCw3ICs5NzQsOCBAQAogICAgICAgICAmJiBh
dHRyTmFtZSAhPSBpdGVtcHJvcEF0dHIKICAgICAgICAgJiYgYXR0ck5hbWUgIT0gaXRlbXR5cGVB
dHRyCiAjZW5kaWYKLSAgICAgICAgJiYgYXR0ck5hbWUgIT0gbmFtZUF0dHIpCisgICAgICAgICYm
IGF0dHJOYW1lICE9IG5hbWVBdHRyCisgICAgICAgICYmIGF0dHJOYW1lICE9IGZvckF0dHIpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGlmICghdHJlZVNjb3BlKCktPmhhc05vZGVMaXN0Q2FjaGVz
KCkpCkBAIC05ODksNyArOTkwLDYgQEAKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAg
IGRhdGEtPm5vZGVMaXN0cygpLT5pbnZhbGlkYXRlQ2FjaGVzVGhhdERlcGVuZE9uQXR0cmlidXRl
cygpOwotICAgICAgICByZW1vdmVOb2RlTGlzdENhY2hlSWZQb3NzaWJsZShub2RlLCBkYXRhKTsK
ICAgICB9CiB9CiAKQEAgLTEwMDgsMjcgKzEwMDgsOSBAQAogICAgICAgICAgICAgY29udGludWU7
CiAKICAgICAgICAgZGF0YS0+bm9kZUxpc3RzKCktPmludmFsaWRhdGVDYWNoZXMoKTsKLQotICAg
ICAgICBOb2RlTGlzdHNOb2RlRGF0YTo6Tm9kZUxpc3RTZXQ6Oml0ZXJhdG9yIGVuZCA9IGRhdGEt
Pm5vZGVMaXN0cygpLT5tX2xpc3RzV2l0aENhY2hlcy5lbmQoKTsKLSAgICAgICAgZm9yIChOb2Rl
TGlzdHNOb2RlRGF0YTo6Tm9kZUxpc3RTZXQ6Oml0ZXJhdG9yIGl0ID0gZGF0YS0+bm9kZUxpc3Rz
KCktPm1fbGlzdHNXaXRoQ2FjaGVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAg
ICAgICgqaXQpLT5pbnZhbGlkYXRlQ2FjaGUoKTsKLQotICAgICAgICByZW1vdmVOb2RlTGlzdENh
Y2hlSWZQb3NzaWJsZShub2RlLCBkYXRhKTsKICAgICB9CiB9CiAKLXZvaWQgTm9kZTo6bm90aWZ5
TG9jYWxOb2RlTGlzdHNMYWJlbENoYW5nZWQoKQotewotICAgIGlmICghaGFzUmFyZURhdGEoKSkK
LSAgICAgICAgcmV0dXJuOwotICAgIE5vZGVSYXJlRGF0YSogZGF0YSA9IHJhcmVEYXRhKCk7Ci0g
ICAgaWYgKCFkYXRhLT5ub2RlTGlzdHMoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGRh
dGEtPm5vZGVMaXN0cygpLT5tX2xhYmVsc05vZGVMaXN0Q2FjaGUpCi0gICAgICAgIGRhdGEtPm5v
ZGVMaXN0cygpLT5tX2xhYmVsc05vZGVMaXN0Q2FjaGUtPmludmFsaWRhdGVDYWNoZSgpOwotfQot
CiB2b2lkIE5vZGU6OnJlbW92ZUNhY2hlZENsYXNzTm9kZUxpc3QoQ2xhc3NOb2RlTGlzdCogbGlz
dCwgY29uc3QgU3RyaW5nJiBjbGFzc05hbWUpCiB7CiAgICAgQVNTRVJUKHJhcmVEYXRhKCkpOwpA
QCAtMjMwNyw4ICsyMjg5LDYgQEAKIAogdm9pZCBOb2RlTGlzdHNOb2RlRGF0YTo6aW52YWxpZGF0
ZUNhY2hlcygpCiB7Ci0gICAgaWYgKG1fbGFiZWxzTm9kZUxpc3RDYWNoZSkKLSAgICAgICAgbV9s
YWJlbHNOb2RlTGlzdENhY2hlLT5pbnZhbGlkYXRlQ2FjaGUoKTsKICAgICBUYWdOb2RlTGlzdENh
Y2hlOjpjb25zdF9pdGVyYXRvciB0YWdDYWNoZUVuZCA9IG1fdGFnTm9kZUxpc3RDYWNoZS5lbmQo
KTsKICAgICBmb3IgKFRhZ05vZGVMaXN0Q2FjaGU6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV90YWdO
b2RlTGlzdENhY2hlLmJlZ2luKCk7IGl0ICE9IHRhZ0NhY2hlRW5kOyArK2l0KQogICAgICAgICBp
dC0+c2Vjb25kLT5pbnZhbGlkYXRlQ2FjaGUoKTsKQEAgLTIzMjAsNiArMjMwMCwxMSBAQAogCiB2
b2lkIE5vZGVMaXN0c05vZGVEYXRhOjppbnZhbGlkYXRlQ2FjaGVzVGhhdERlcGVuZE9uQXR0cmli
dXRlcygpCiB7CisgICAgLy8gVXNlZCBieSBsYWJlbHMgYW5kIHJlZ2lvbiBub2RlIGxpc3RzIG9u
IGRvY3VtZW50LgorICAgIE5vZGVMaXN0c05vZGVEYXRhOjpOb2RlTGlzdFNldDo6aXRlcmF0b3Ig
ZW5kID0gbV9saXN0c0ludmFsaWRhdGVkQXREb2N1bWVudC5lbmQoKTsKKyAgICBmb3IgKE5vZGVM
aXN0c05vZGVEYXRhOjpOb2RlTGlzdFNldDo6aXRlcmF0b3IgaXQgPSBtX2xpc3RzSW52YWxpZGF0
ZWRBdERvY3VtZW50LmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgKCppdCktPmlu
dmFsaWRhdGVDYWNoZSgpOworCiAgICAgQ2xhc3NOb2RlTGlzdENhY2hlOjppdGVyYXRvciBjbGFz
c0NhY2hlRW5kID0gbV9jbGFzc05vZGVMaXN0Q2FjaGUuZW5kKCk7CiAgICAgZm9yIChDbGFzc05v
ZGVMaXN0Q2FjaGU6Oml0ZXJhdG9yIGl0ID0gbV9jbGFzc05vZGVMaXN0Q2FjaGUuYmVnaW4oKTsg
aXQgIT0gY2xhc3NDYWNoZUVuZDsgKytpdCkKICAgICAgICAgaXQtPnNlY29uZC0+aW52YWxpZGF0
ZUNhY2hlKCk7CkBAIC0yMzM5LDcgKzIzMjQsNyBAQAogCiBib29sIE5vZGVMaXN0c05vZGVEYXRh
Ojppc0VtcHR5KCkgY29uc3QKIHsKLSAgICBpZiAoIW1fbGlzdHNXaXRoQ2FjaGVzLmlzRW1wdHko
KSkKKyAgICBpZiAoIW1fbGlzdHNJbnZhbGlkYXRlZEF0RG9jdW1lbnQuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIW1fdGFnTm9kZUxpc3RDYWNoZS5pc0VtcHR5
KCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmNwcAkocmV2aXNpb24g
MTEwNDk2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDEyICszMSwxMCBAQAogRHluYW1pY1N1YnRyZWVOb2RlTGlzdDo6RHlu
YW1pY1N1YnRyZWVOb2RlTGlzdChQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCiAgICAgOiBEeW5hbWlj
Tm9kZUxpc3Qobm9kZSkKIHsKLSAgICByb290Tm9kZSgpLT5yZWdpc3RlckR5bmFtaWNTdWJ0cmVl
Tm9kZUxpc3QodGhpcyk7CiB9CiAKIER5bmFtaWNTdWJ0cmVlTm9kZUxpc3Q6On5EeW5hbWljU3Vi
dHJlZU5vZGVMaXN0KCkKIHsKLSAgICByb290Tm9kZSgpLT51bnJlZ2lzdGVyRHluYW1pY1N1YnRy
ZWVOb2RlTGlzdCh0aGlzKTsKIH0KIAogdW5zaWduZWQgRHluYW1pY1N1YnRyZWVOb2RlTGlzdDo6
bGVuZ3RoKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDY1NCkKKysrIFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzIEBACisyMDEy
LTAzLTEyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIChyZWdp
c3Rlcnx1bnJlZ2lzdGVyKUR5bmFtaWNTdWJ0cmVlTm9kZUxpc3Qgc2hvdWxkIGJlIGNhbGxlZCBv
bmx5IGZvciBsYWJlbHMgYW5kIHJlZ2lvbnMgbm9kZSBsaXN0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA5MDAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVhbmVkIHVwIGludmFsaWRhdGlvbiBjb2Rl
IGZvciBkeW5hbWljIG5vZGUgbGlzdHMuIEl0IHNlZW1zIGxpa2UgdGhlIGV4aXN0aW5nIGNvZGUg
d2FzIHV0dGVybHkgY29uZnVzZWQKKyAgICAgICAgYWJvdXQgdGhlIGxpZmV0aW1lIG9mIG5vZGUg
bGlzdHMgYW5kIGNhY2hlcyB3aXRoaW4gdGhlbS4gRmlyc3QsIHJlZ2lzdGVyL3VucmVnc2l0ZXJE
eW5hbWljU3VidHJlZU5vZGVMaXN0CisgICAgICAgIGFyZSBjYWxsZWQgZm9yIGFsbCBkeW5hbWlj
IG5vZGUgbGlzdHMgZXZlbiB0aG91Z2ggaXQncyBvbmx5IHVzZWZ1bCBmb3IgbGFiZWxzIGFuZCBy
ZWdpb24gbm9kZSBsaXN0cyBzaW5jZQorICAgICAgICBpdCdzIGEgbWVjaGFuaXNtIHRvIGFsbG93
IG5vZGUgbGlzdHMgdG8gYmUgaW52YWxpZGF0ZWQgYXQgYSBub2RlIHRvIHdoaWNoIHRoZSBub2Rl
IGxpc3QgZG9lc24ndCBiZWxvbmcuCisKKyAgICAgICAgU2Vjb25kLCBzb21lIG5vZGUgbGlzdHMg
aGFkIGRlZGljYXRlZCBtZW1iZXIgZnVuY3Rpb25zIG9uIE5vZGUgdG8gZXhwbGljaXRseSBpbnZh
bGlkYXRlIGNhY2hlcyBpbgorICAgICAgICBwYXJzZWRBdHRyaWJ1dGUuIEhvd2V2ZXIsIHRoaXMg
aXMgcmVkdW5kYW50IGJlY2F1c2UgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1
dGVDaGFuZ2VkIHNob3VsZCBiZQorICAgICAgICBhYmxlIHRvIGludmFsaWRhdGUgY2FjaGVzIHdo
ZW4gdGhlIGF0dHJpYnV0ZSB2YWx1ZSBjaGFuZ2VzLiBUaGlzIHBhdGNoIGdldHMgcmlkIG9mIHRo
ZSBsYXN0IGluc3RhbmNlIG9mIHN1Y2gKKyAgICAgICAgZnVuY3Rpb24gaW4gSFRNTExhYmVsRWxl
bWVudC4KKworICAgICAgICBBbmQgZmluYWxseSwgdGhpcyBwYXRjaCByZXN0cmljdHMgdGhlIGNh
bGxlcnMgb2YgRHluYW1pY1N1YnRyZWVOb2RlTGlzdDo6aW52YWxpZGF0ZUNhY2hlIHRvIGJlIG1l
bWJlcgorICAgICAgICBmdW5jdGlvbnMgb2YgTm9kZUxpc3RzTm9kZURhdGEgKG5vdyBmcmllbmRz
IG9mIER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QpIHRvIGFsbG93IGZ1dGhlciByZWZhY3RvcmluZy4K
KworICAgICAgICAqIGRvbS9EeW5hbWljTm9kZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RHluYW1pY1N1YnRyZWVOb2RlTGlzdDo6RHluYW1pY1N1YnRyZWVOb2RlTGlzdCk6IERvbid0IHJl
Z2lzdGVyIHRoZSBub2RlIGxpc3Qgc2luY2UgaXQncyBvbmx5CisgICAgICAgIHVzZWZ1bCBmb3Ig
bGFiZWxzIGFuZCByZWdpb24gbm9kZSBsaXN0cy4KKyAgICAgICAgKFdlYkNvcmU6OkR5bmFtaWNT
dWJ0cmVlTm9kZUxpc3Q6On5EeW5hbWljU3VidHJlZU5vZGVMaXN0KTogRGl0dG8uCisgICAgICAg
ICogZG9tL0R5bmFtaWNOb2RlTGlzdC5oOgorICAgICAgICAoRHluYW1pY1N1YnRyZWVOb2RlTGlz
dCk6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlOjpyZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9kZUxpc3QpOiBUaGUgY29t
bWVudCBhYm91dCBub3cgd2UgaGF2ZSB0byBpbnZhbGlkYXRlIGNhY2hlcworICAgICAgICB3aGVu
IHRoZXJlIGhhZCBubyBjYWNoZXMgaXMgaW5jb3JyZWN0IGJlY2F1c2UgcmVnaXN0ZXJEeW5hbWlj
U3VidHJlZU5vZGVMaXN0IGlzIGNhbGxlZCB3aGVuIGEgbm9kZSBsaXN0CisgICAgICAgIGlzIGlu
aXRpYWxseSBjcmVhdGVkLiBBbHNvLCBpZiB0aGUgdHJlZSBzY29wZSBkaWRuJ3QgaGF2ZSBhbnkg
Y2FjaGVzLCB0aGVuIHRoaXMgaXMgdGhlIGZpcnN0IG5vZGUgbGlzdAorICAgICAgICB0byBiZSBh
ZGRlZCB0byB0aGUgbGlzdCwgc28gdGhlcmUncyBubyBwb2ludCBpbiBjYWxsaW5nIEludmFsaWRh
dGVDYWNoZXMgKG5vLW9wKS4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnVucmVnaXN0ZXJEeW5h
bWljU3VidHJlZU5vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmludmFsaWRhdGVO
b2RlTGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZCk6IFRha2UgY2FyZSBvZiAiZm9yIiBj
b250ZW50IGF0dHJpYnV0ZS4KKyAgICAgICAgQWxzbyByZW1vdmUgdGhlIHJlZHVuZGFudCBjYWxs
IHRvIHJlbW92ZU5vZGVMaXN0Q2FjaGVJZlBvc3NpYmxlIHNpbmNlIHdlIG9ubHkgaW52YWxpZGF0
ZXMgbm9kZSBsaXN0cworICAgICAgICBhbmQgbmV2ZXIgcmVtb3ZlIGVudHJpZXMgZnJvbSBOb2Rl
TGlzdHNOb2RlRGF0YSBpbiB0aGlzIGZ1bmN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
aW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJDaGlsZHJlbkNoYW5nZWQpOiBUaGUgY2FsbCB0
byByZW1vdmVOb2RlTGlzdENhY2hlSWZQb3NzaWJsZQorICAgICAgICBpcyBhbHNvIHJlZHVuZGFu
dCBoZXJlLiBBbHNvIHJlbW92ZWQgdGhlIGludmFsaWRhdGlvbiBvZiBtX2xpc3RzV2l0aENhY2hl
cyBzaW5jZSBpdCdzIGFscmVhZHkgZG9uZSBpbgorICAgICAgICBpbnZhbGlkYXRlQ2FjaGVzIHZp
YSBpbnZhbGlkYXRlQ2FjaGVzVGhhdERlcGVuZE9uQXR0cmlidXRlcy4KKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGVMaXN0c05vZGVEYXRhOjppbnZhbGlkYXRlQ2FjaGVzKTogUmVtb3ZlZCB0aGUgaW52
YWxpZGF0aW9uIG9mIG1fbGFiZWxzTm9kZUxpc3RDYWNoZS4gSXQncworICAgICAgICBkb25lIGlu
IGludmFsaWRhdGVDYWNoZXNUaGF0RGVwZW5kT25BdHRyaWJ1dGVzLgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZUxpc3RzTm9kZURhdGE6OmludmFsaWRhdGVDYWNoZXNUaGF0RGVwZW5kT25BdHRyaWJ1
dGVzKTogSW52YWxpZGF0ZQorICAgICAgICBtX2xpc3RzSW52YWxpZGF0ZWRBdERvY3VtZW50LCB3
aGljaCBpcyByZW5hbWVkIGZyb20gbV9saXN0c1dpdGhDYWNoZXMuCisgICAgICAgIChXZWJDb3Jl
OjpOb2RlTGlzdHNOb2RlRGF0YTo6aXNFbXB0eSk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAg
ICAgICAgKE5vZGUpOgorICAgICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuaDoKKyAgICAgICAgKE5v
ZGVMaXN0c05vZGVEYXRhKToKKyAgICAgICAgKiBkb20vUmVnaW9uTm9kZUxpc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVnaW9uTm9kZUxpc3Q6OlJlZ2lvbk5vZGVMaXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlZ2lvbk5vZGVMaXN0Ojp+UmVnaW9uTm9kZUxpc3QpOgorICAgICAgICAqIGh0
bWwvSFRNTExhYmVsRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKTogUmVtb3ZlZCBwYXJz
ZUF0dHJpYnV0ZSBzaW5jZSB0aGUgaW52YWxpZGF0aW9uIGxhYmVscyBub2RlIGxpc3QgaXMgbm93
IGRvbmUgYnkKKyAgICAgICAgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVD
aGFuZ2VkIGFuZCBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckNoaWxkcmVuQ2hhbmdlZC4K
KyAgICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxMYWJlbEVs
ZW1lbnQpOgorICAgICAgICAqIGh0bWwvTGFiZWxzTm9kZUxpc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGFiZWxzTm9kZUxpc3Q6OkxhYmVsc05vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxhYmVsc05vZGVMaXN0Ojp+TGFiZWxzTm9kZUxpc3QpOgorCiAyMDEyLTAzLTEzICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBwb3RlbnRpYWwg
Y3Jhc2ggd2hlbiBsb2FkaW5nIHRlc3QgcmVzdWx0cwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGFiZWxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTGFiZWxFbGVtZW50LmgJKHJldmlzaW9uIDExMDQ5NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExhYmVsRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw4ICs1MCw2IEBACiAg
ICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKIAogICAgIHZvaWQg
Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24gPSB0cnVlKTsKLQotICAgIHZpcnR1
YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShBdHRyaWJ1dGUqKSBPVkVSUklERTsKIH07CiAKIH0gLy9u
YW1lc3BhY2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcAko
cmV2aXNpb24gMTEwNDk2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU0LDE1ICsxNTQsNCBAQAogICAgICAgICBIVE1MRWxl
bWVudDo6YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cyk7CiB9CiAKLXZvaWQgSFRNTExh
YmVsRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyaWJ1dGUpCi17Ci0gICAg
aWYgKGF0dHJpYnV0ZS0+bmFtZSgpID09IGZvckF0dHIpIHsKLSAgICAgICAgLy8gaHRtbEZvciBh
dHRyaWJ1dGUgY2hhbmdlIGFmZmVjdHMgb3RoZXIgbm9kZXMgdGhhbiB0aGlzLgotICAgICAgICAv
LyBDbGVhciB0aGUgY2FjaGVzIHRvIGVuc3VyZSB0aGF0IHRoZSBsYWJlbHMgY2FjaGVzIGFyZSBj
bGVhcmVkLgotICAgICAgICBpZiAoZG9jdW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3VtZW50KCkt
Pm5vdGlmeUxvY2FsTm9kZUxpc3RzTGFiZWxDaGFuZ2VkKCk7Ci0gICAgfSBlbHNlCi0gICAgICAg
IEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShhdHRyaWJ1dGUpOwotfQotICAgICAgICAgICAg
ICAgIAogfSAvLyBuYW1lc3BhY2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxzTm9k
ZUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxzTm9kZUxp
c3QuY3BwCShyZXZpc2lvbiAxMTA0OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0xhYmVsc05v
ZGVMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTEgKzM1LDEzIEBACiBMYWJlbHNOb2Rl
TGlzdDo6TGFiZWxzTm9kZUxpc3QoTm9kZSogZm9yTm9kZSApCiAgICAgOiBEeW5hbWljU3VidHJl
ZU5vZGVMaXN0KGZvck5vZGUtPmRvY3VtZW50KCkpICwgbV9mb3JOb2RlKGZvck5vZGUpCiB7Cisg
ICAgbV9mb3JOb2RlLT5kb2N1bWVudCgpLT5yZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9kZUxpc3Qo
dGhpcyk7CiB9CiAKIExhYmVsc05vZGVMaXN0Ojp+TGFiZWxzTm9kZUxpc3QoKQogewogICAgIG1f
Zm9yTm9kZS0+cmVtb3ZlQ2FjaGVkTGFiZWxzTm9kZUxpc3QodGhpcyk7CisgICAgbV9mb3JOb2Rl
LT5kb2N1bWVudCgpLT51bnJlZ2lzdGVyRHluYW1pY1N1YnRyZWVOb2RlTGlzdCh0aGlzKTsKIH0g
CiAgICAgCiBib29sIExhYmVsc05vZGVMaXN0Ojpub2RlTWF0Y2hlcyhFbGVtZW50KiB0ZXN0Tm9k
ZSkgY29uc3QK
</data>
<flag name="review"
          id="135198"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="135205"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>