<?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>98987</bug_id>
          
          <creation_ts>2012-10-10 20:57:02 -0700</creation_ts>
          <short_desc>ElementAttributeData shouldn&apos;t be managing Element&apos;s callbacks.</short_desc>
          <delta_ts>2012-10-11 15:51:38 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>andersca</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>739576</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-10-10 20:57:02 -0700</bug_when>
    <thetext>ElementAttributeData shouldn&apos;t be managing Element&apos;s callbacks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739592</commentid>
    <comment_count>1</comment_count>
      <attachid>168140</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-10-10 21:35:59 -0700</bug_when>
    <thetext>Created attachment 168140
poch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739593</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-10 21:37:21 -0700</bug_when>
    <thetext>is gud poch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739595</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-10-10 21:38:29 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; is gud poch!

anders pls</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739631</commentid>
    <comment_count>4</comment_count>
      <attachid>168146</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-10-10 23:07:37 -0700</bug_when>
    <thetext>Created attachment 168146
Rebasereded</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739650</commentid>
    <comment_count>5</comment_count>
      <attachid>168146</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-10 23:57:28 -0700</bug_when>
    <thetext>Comment on attachment 168146
Rebasereded

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

New failing tests:
dom/html/level1/core/hc_elementremoveattribute.html
dom/html/level1/core/hc_elementremoveattributenode.html
dom/xhtml/level1/core/hc_attrappendchild1.xhtml
dom/html/level1/core/hc_attrchildnodes2.html
dom/html/level1/core/hc_attrcreatetextnode2.html
dom/html/level1/core/hc_attrappendchild1.html
dom/html/level1/core/hc_attrappendchild3.html
dom/xhtml/level1/core/hc_attrappendchild5.xhtml
dom/html/level1/core/hc_attrinsertbefore1.html
dom/html/level1/core/hc_attrinsertbefore3.html
dom/html/level1/core/hc_attrinsertbefore2.html
dom/html/level1/core/hc_attrreplacechild1.html
dom/html/level1/core/hc_attrreplacechild2.html
dom/xhtml/level1/core/hc_attrcreatetextnode2.xhtml
dom/html/level1/core/hc_attrinsertbefore6.html
dom/html/level1/core/hc_attrappendchild5.html
dom/html/level1/core/hc_elementnormalize2.html
dom/html/level1/core/hc_attrsetvalue2.html
dom/html/level1/core/hc_attrinsertbefore4.html
dom/xhtml/level1/core/hc_attrchildnodes2.xhtml
dom/html/level1/core/hc_attrnormalize.html
dom/html/level1/core/hc_attrsetvalue1.html
accessibility/aria-hidden-updates-alldescendants.html
dom/xhtml/level1/core/hc_attrappendchild3.xhtml
dom/html/level1/core/hc_attrremovechild1.html
dom/xhtml/level1/core/hc_attrclonenode1.xhtml
canvas/philip/tests/size.attributes.removed.html
dom/html/level1/core/hc_namednodemapremovenameditem.html
dom/html/level1/core/hc_attrclonenode1.html
dom/html/level1/core/hc_attrcreatetextnode.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740171</commentid>
    <comment_count>6</comment_count>
      <attachid>168259</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-10-11 12:29:15 -0700</bug_when>
    <thetext>Created attachment 168259
sigh</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740254</commentid>
    <comment_count>7</comment_count>
      <attachid>168274</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-10-11 14:06:27 -0700</bug_when>
    <thetext>Created attachment 168274
please merge?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740347</commentid>
    <comment_count>8</comment_count>
      <attachid>168274</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-11 15:51:34 -0700</bug_when>
    <thetext>Comment on attachment 168274
please merge?

Clearing flags on attachment: 168274

Committed r131104: &lt;http://trac.webkit.org/changeset/131104&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740348</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-11 15:51:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168140</attachid>
            <date>2012-10-10 21:35:59 -0700</date>
            <delta_ts>2012-10-10 23:07:37 -0700</delta_ts>
            <desc>poch</desc>
            <filename>bug-98987.diff</filename>
            <type>text/plain</type>
            <size>13036</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ZjNjYzg1Li40MGUzMzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMTItMTAtMTAgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAg
ICAgIEVsZW1lbnRBdHRyaWJ1dGVEYXRhIHNob3VsZG4ndCBiZSBtYW5hZ2luZyBFbGVtZW50J3Mg
Y2FsbGJhY2tzLgorICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi85ODk4Nz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEaXNwYXRjaCB0aGUgZm9s
bG93aW5nIGF0dHJpYnV0ZS1yZWxhdGVkIEVsZW1lbnQgY2FsbGJhY2tzIGZyb20gd2l0aGluIEVs
ZW1lbnQKKyAgICAgICAgaW5zdGVhZCBvZiBFbGVtZW50QXR0cmlidXRlRGF0YSBvciBBdHRyLiBB
bHNvIG1hZGUgdGhlbSBwcml2YXRlLgorCisgICAgICAgICAgICAtIHdpbGxNb2RpZnlBdHRyaWJ1
dGUKKyAgICAgICAgICAgIC0gZGlkTW9kaWZ5QXR0cmlidXRlCisgICAgICAgICAgICAtIGRpZEFk
ZEF0dHJpYnV0ZQorICAgICAgICAgICAgLSBkaWRSZW1vdmVBdHRyaWJ1dGUKKworICAgICAgICBO
byBiZWhhdmlvciBjaGFuZ2UsIGp1c3QgbWFraW5nIEVsZW1lbnRBdHRyaWJ1dGVEYXRhIGEgYml0
IGR1bWJlciAoYSBnb29kIHRoaW5nLikKKworICAgICAgICAqIGRvbS9BdHRyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkF0dHI6OmNoaWxkcmVuQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpB
dHRyOjpzZXRWYWx1ZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudDo6ZGV0YWNoQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OnJlbW92ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRBdHRy
aWJ1dGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpyZW1vdmVBdHRyaWJ1
dGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjphZGRBdHRyaWJ1dGVJbnRl
cm5hbCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vRWxlbWVudEF0
dHJpYnV0ZURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudEF0dHJpYnV0ZURhdGE6
OmFkZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50QXR0cmlidXRlRGF0YTo6
cmVtb3ZlQXR0cmlidXRlKToKKyAgICAgICAgKiBkb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuaDoK
KwogMjAxMi0xMC0xMCAgTWlrZSBXZXN0ICA8bWt3c3RAZ29vZ2xlLmNvbT4KIAogICAgICAgICBF
ZGl0b3JDb21tYW5kIGNhbGxzIHNldFByb3BlcnR5IHdpdGggdGhlIHdyb25nIHBhcmFtZXRlcnMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQXR0ci5jcHAKaW5kZXggOTVjM2ZlMC4uZDYxY2Y1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0F0dHIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcApA
QCAtMTEzLDcgKzExMyw3IEBAIHZvaWQgQXR0cjo6c2V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5n
JiB2YWx1ZSkKICAgICBtX2lnbm9yZUNoaWxkcmVuQ2hhbmdlZCsrOwogICAgIHJlbW92ZUNoaWxk
cmVuKCk7CiAgICAgaWYgKG1fZWxlbWVudCkKLSAgICAgICAgZWxlbWVudEF0dHJpYnV0ZSgpLnNl
dFZhbHVlKHZhbHVlKTsKKyAgICAgICAgbV9lbGVtZW50LT5zZXRBdHRyaWJ1dGUocXVhbGlmaWVk
TmFtZSgpLCB2YWx1ZSk7CiAgICAgZWxzZQogICAgICAgICBtX3N0YW5kYWxvbmVWYWx1ZSA9IHZh
bHVlOwogICAgIGNyZWF0ZVRleHRDaGlsZCgpOwpAQCAtMTI0LDEzICsxMjQsNyBAQCB2b2lkIEF0
dHI6OnNldFZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiAKIHZvaWQgQXR0cjo6c2V0
VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYpCiB7Ci0gICAg
aWYgKG1fZWxlbWVudCkKLSAgICAgICAgbV9lbGVtZW50LT53aWxsTW9kaWZ5QXR0cmlidXRlKHF1
YWxpZmllZE5hbWUoKSwgdGhpcy0+dmFsdWUoKSwgdmFsdWUpOwotCiAgICAgc2V0VmFsdWUodmFs
dWUpOwotCi0gICAgaWYgKG1fZWxlbWVudCkKLSAgICAgICAgbV9lbGVtZW50LT5kaWRNb2RpZnlB
dHRyaWJ1dGUoZWxlbWVudEF0dHJpYnV0ZSgpKTsKIH0KIAogdm9pZCBBdHRyOjpzZXROb2RlVmFs
dWUoY29uc3QgU3RyaW5nJiB2LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTE3MywxNiArMTY3LDEx
IEBAIHZvaWQgQXR0cjo6Y2hpbGRyZW5DaGFuZ2VkKGJvb2wsIE5vZGUqLCBOb2RlKiwgaW50KQog
ICAgIH0KIAogICAgIEF0b21pY1N0cmluZyBuZXdWYWx1ZSA9IHZhbHVlQnVpbGRlci50b1N0cmlu
ZygpOwotICAgIGlmIChtX2VsZW1lbnQpCi0gICAgICAgIG1fZWxlbWVudC0+d2lsbE1vZGlmeUF0
dHJpYnV0ZShxdWFsaWZpZWROYW1lKCksIHZhbHVlKCksIG5ld1ZhbHVlKTsKIAogICAgIGlmICht
X2VsZW1lbnQpCi0gICAgICAgIGVsZW1lbnRBdHRyaWJ1dGUoKS5zZXRWYWx1ZShuZXdWYWx1ZSk7
CisgICAgICAgIG1fZWxlbWVudC0+c2V0QXR0cmlidXRlKHF1YWxpZmllZE5hbWUoKSwgbmV3VmFs
dWUpOwogICAgIGVsc2UKICAgICAgICAgbV9zdGFuZGFsb25lVmFsdWUgPSBuZXdWYWx1ZTsKLQot
ICAgIGlmIChtX2VsZW1lbnQpCi0gICAgICAgIG1fZWxlbWVudC0+YXR0cmlidXRlQ2hhbmdlZChl
bGVtZW50QXR0cmlidXRlKCkpOwogfQogCiBib29sIEF0dHI6OmlzSWQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCmluZGV4IGRkMTMxNjhkLi5hNGRmMjJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCkBAIC0yMTEsNyArMjExLDcgQEAgUGFzc1JlZlB0cjxBdHRyPiBFbGVtZW50OjpkZXRhY2hB
dHRyaWJ1dGUoc2l6ZV90IGluZGV4KQogICAgIGVsc2UKICAgICAgICAgYXR0ciA9IEF0dHI6OmNy
ZWF0ZShkb2N1bWVudCgpLCBhdHRyaWJ1dGUtPm5hbWUoKSwgYXR0cmlidXRlLT52YWx1ZSgpKTsK
IAotICAgIG11dGFibGVBdHRyaWJ1dGVEYXRhKCktPnJlbW92ZUF0dHJpYnV0ZShpbmRleCwgdGhp
cyk7CisgICAgcmVtb3ZlQXR0cmlidXRlSW50ZXJuYWwoaW5kZXgsIE5vdEluU3luY2hyb25pemF0
aW9uT2ZMYXp5QXR0cmlidXRlKTsKICAgICByZXR1cm4gYXR0ci5yZWxlYXNlKCk7CiB9CiAKQEAg
LTIyNyw3ICsyMjcsNyBAQCB2b2lkIEVsZW1lbnQ6OnJlbW92ZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lKQogICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgbXV0YWJsZUF0dHJpYnV0ZURhdGEoKS0+cmVtb3ZlQXR0cmlidXRlKGluZGV4
LCB0aGlzKTsKKyAgICByZW1vdmVBdHRyaWJ1dGVJbnRlcm5hbChpbmRleCwgTm90SW5TeW5jaHJv
bml6YXRpb25PZkxhenlBdHRyaWJ1dGUpOwogfQogCiB2b2lkIEVsZW1lbnQ6OnNldEJvb2xlYW5B
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgYm9vbCB2YWx1ZSkKQEAgLTY3Mywx
NiArNjczLDE2IEBAIGlubGluZSB2b2lkIEVsZW1lbnQ6OnNldEF0dHJpYnV0ZUludGVybmFsKHNp
emVfdCBpbmRleCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtCiAgICAgQXR0cmlidXRlKiBvbGQg
PSBpbmRleCAhPSBub3RGb3VuZCA/IGF0dHJpYnV0ZURhdGEtPmF0dHJpYnV0ZUl0ZW0oaW5kZXgp
IDogMDsKICAgICBpZiAodmFsdWUuaXNOdWxsKCkpIHsKICAgICAgICAgaWYgKG9sZCkKLSAgICAg
ICAgICAgIGF0dHJpYnV0ZURhdGEtPnJlbW92ZUF0dHJpYnV0ZShpbmRleCwgdGhpcywgaW5TeW5j
aHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpOworICAgICAgICAgICAgcmVtb3ZlQXR0cmlidXRl
SW50ZXJuYWwoaW5kZXgsIGluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmICghb2xkKSB7Ci0gICAgICAgIGF0dHJpYnV0ZURh
dGEtPmFkZEF0dHJpYnV0ZShBdHRyaWJ1dGUobmFtZSwgdmFsdWUpLCB0aGlzLCBpblN5bmNocm9u
aXphdGlvbk9mTGF6eUF0dHJpYnV0ZSk7CisgICAgICAgIGFkZEF0dHJpYnV0ZUludGVybmFsKG5h
bWUsIHZhbHVlLCBpblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBpZiAoaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUg
PT0gTm90SW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpCisgICAgaWYgKCFpblN5bmNo
cm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSkKICAgICAgICAgd2lsbE1vZGlmeUF0dHJpYnV0ZShu
YW1lLCBvbGQtPnZhbHVlKCksIHZhbHVlKTsKIAogICAgIGlmIChSZWZQdHI8QXR0cj4gYXR0ck5v
ZGUgPSBhdHRySWZFeGlzdHMobmFtZSkpCkBAIC02OTAsNyArNjkwLDcgQEAgaW5saW5lIHZvaWQg
RWxlbWVudDo6c2V0QXR0cmlidXRlSW50ZXJuYWwoc2l6ZV90IGluZGV4LCBjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW0KICAgICBlbHNlCiAgICAgICAgIG9sZC0+c2V0VmFsdWUodmFsdWUpOwogCi0g
ICAgaWYgKGluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlID09IE5vdEluU3luY2hyb25p
emF0aW9uT2ZMYXp5QXR0cmlidXRlKQorICAgIGlmICghaW5TeW5jaHJvbml6YXRpb25PZkxhenlB
dHRyaWJ1dGUpCiAgICAgICAgIGRpZE1vZGlmeUF0dHJpYnV0ZShBdHRyaWJ1dGUob2xkLT5uYW1l
KCksIG9sZC0+dmFsdWUoKSkpOwogfQogCkBAIC0xNTI3LDExICsxNTI3LDQwIEBAIHZvaWQgRWxl
bWVudDo6c2V0QXR0cmlidXRlTlMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNv
bnN0IEF0b21pY1N0cmluCiAgICAgc2V0QXR0cmlidXRlKHBhcnNlZE5hbWUsIHZhbHVlKTsKIH0K
IAotdm9pZCBFbGVtZW50OjpyZW1vdmVBdHRyaWJ1dGUoc2l6ZV90IGluZGV4KQordm9pZCBFbGVt
ZW50OjpyZW1vdmVBdHRyaWJ1dGVJbnRlcm5hbChzaXplX3QgaW5kZXgsIFN5bmNocm9uaXphdGlv
bk9mTGF6eUF0dHJpYnV0ZSBpblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSkKIHsKLSAg
ICBBU1NFUlQoYXR0cmlidXRlRGF0YSgpKTsKKyAgICBBU1NFUlQobV9hdHRyaWJ1dGVEYXRhKTsK
KyAgICBBU1NFUlQobV9hdHRyaWJ1dGVEYXRhLT5pc011dGFibGUoKSk7CiAgICAgQVNTRVJUKGlu
ZGV4IDw9IGF0dHJpYnV0ZUNvdW50KCkpOwotICAgIG11dGFibGVBdHRyaWJ1dGVEYXRhKCktPnJl
bW92ZUF0dHJpYnV0ZShpbmRleCwgdGhpcyk7CisKKyAgICBRdWFsaWZpZWROYW1lIG5hbWUgPSBt
X2F0dHJpYnV0ZURhdGEtPmF0dHJpYnV0ZUl0ZW0oaW5kZXgpLT5uYW1lKCk7CisgICAgQXRvbWlj
U3RyaW5nIHZhbHVlQmVpbmdSZW1vdmVkID0gbV9hdHRyaWJ1dGVEYXRhLT5hdHRyaWJ1dGVJdGVt
KGluZGV4KS0+dmFsdWUoKTsKKworICAgIGlmICghaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRy
aWJ1dGUpIHsKKyAgICAgICAgaWYgKCF2YWx1ZUJlaW5nUmVtb3ZlZC5pc051bGwoKSkKKyAgICAg
ICAgICAgIHdpbGxNb2RpZnlBdHRyaWJ1dGUobmFtZSwgdmFsdWVCZWluZ1JlbW92ZWQsIG51bGxB
dG9tKTsKKyAgICB9CisKKyAgICBpZiAoaGFzQXR0ckxpc3QoKSkgeworICAgICAgICBpZiAoUmVm
UHRyPEF0dHI+IGF0dHIgPSBtX2F0dHJpYnV0ZURhdGEtPmF0dHJJZkV4aXN0cyh0aGlzLCBuYW1l
KSkKKyAgICAgICAgICAgIGF0dHItPmRldGFjaEZyb21FbGVtZW50V2l0aFZhbHVlKG1fYXR0cmli
dXRlRGF0YS0+YXR0cmlidXRlSXRlbShpbmRleCktPnZhbHVlKCkpOworICAgIH0KKworICAgIG1f
YXR0cmlidXRlRGF0YS0+cmVtb3ZlQXR0cmlidXRlKGluZGV4KTsKKworICAgIGlmICghaW5TeW5j
aHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpCisgICAgICAgIGRpZFJlbW92ZUF0dHJpYnV0ZShu
YW1lKTsKK30KKwordm9pZCBFbGVtZW50OjphZGRBdHRyaWJ1dGVJbnRlcm5hbChjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBTeW5jaHJvbml6YXRp
b25PZkxhenlBdHRyaWJ1dGUgaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpCit7Cisg
ICAgQVNTRVJUKG1fYXR0cmlidXRlRGF0YSk7CisgICAgQVNTRVJUKG1fYXR0cmlidXRlRGF0YS0+
aXNNdXRhYmxlKCkpOworICAgIGlmICghaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUp
CisgICAgICAgIHdpbGxNb2RpZnlBdHRyaWJ1dGUobmFtZSwgbnVsbEF0b20sIHZhbHVlKTsKKyAg
ICBtX2F0dHJpYnV0ZURhdGEtPmFkZEF0dHJpYnV0ZShBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKTsK
KyAgICBpZiAoIWluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKQorICAgICAgICBkaWRB
ZGRBdHRyaWJ1dGUoQXR0cmlidXRlKG5hbWUsIHZhbHVlKSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6
cmVtb3ZlQXR0cmlidXRlKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKQEAgLTE1NDQsNyArMTU3
Myw3IEBAIHZvaWQgRWxlbWVudDo6cmVtb3ZlQXR0cmlidXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSkKICAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCiAgICAgICAgIHJldHVybjsKIAotICAg
IG11dGFibGVBdHRyaWJ1dGVEYXRhKCktPnJlbW92ZUF0dHJpYnV0ZShpbmRleCwgdGhpcyk7Cisg
ICAgcmVtb3ZlQXR0cmlidXRlSW50ZXJuYWwoaW5kZXgsIE5vdEluU3luY2hyb25pemF0aW9uT2ZM
YXp5QXR0cmlidXRlKTsKIH0KIAogdm9pZCBFbGVtZW50OjpyZW1vdmVBdHRyaWJ1dGVOUyhjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5h
bWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBjNzA4Nzc1Li5mN2RhOWI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKQEAgLTExOCw3ICsxMTgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpOwogICAgIHZv
aWQgc2V0U3luY2hyb25pemVkTGF6eUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSk7CiAgICAgdm9pZCByZW1vdmVBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpOwotICAgIHZvaWQgcmVtb3ZlQXR0cmlidXRlKHNpemVfdCBpbmRleCk7
CiAKICAgICAvLyBUeXBlZCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIGZvciBsYW5ndWFnZSBiaW5kaW5n
cy4KICAgICBpbnQgZ2V0SW50ZWdyYWxBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSkgY29uc3Q7CkBAIC0zMTcsMTIgKzMxNiw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IHVwZGF0ZUlkKFRyZWVTY29wZSosIGNvbnN0IEF0b21pY1N0cmluZyYgb2xkSWQsIGNvbnN0IEF0
b21pY1N0cmluZyYgbmV3SWQpOwogICAgIHZvaWQgdXBkYXRlTmFtZShjb25zdCBBdG9taWNTdHJp
bmcmIG9sZE5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3TmFtZSk7CiAKLSAgICB2b2lkIHdp
bGxNb2RpZnlBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3VmFsdWUpOwotICAgIHZvaWQgd2ls
bFJlbW92ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
JiB2YWx1ZSk7Ci0gICAgdm9pZCBkaWRBZGRBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJik7Ci0g
ICAgdm9pZCBkaWRNb2RpZnlBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJik7Ci0gICAgdm9pZCBk
aWRSZW1vdmVBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotCiAgICAgdm9pZCByZW1v
dmVDYWNoZWRIVE1MQ29sbGVjdGlvbihIVE1MQ29sbGVjdGlvbiosIENvbGxlY3Rpb25UeXBlKTsK
IAogICAgIExheW91dFNpemUgbWluaW11bVNpemVGb3JSZXNpemluZygpIGNvbnN0OwpAQCAtNDc1
LDYgKzQ2OCwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjbGFzc0F0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgQXRvbWljU3RyaW5nJiBuZXdDbGFzc1N0cmluZyk7CiAKIHByaXZhdGU6CisgICAgZW51
bSBTeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUgeyBOb3RJblN5bmNocm9uaXphdGlvbk9m
TGF6eUF0dHJpYnV0ZSA9IDAsIEluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlIH07CisK
KyAgICB2b2lkIHdpbGxNb2RpZnlBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3VmFsdWUpOwor
ICAgIHZvaWQgZGlkQWRkQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpOworICAgIHZvaWQgZGlk
TW9kaWZ5QXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpOworICAgIHZvaWQgZGlkUmVtb3ZlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKKwogICAgIHZvaWQgdXBkYXRlSW52YWxpZEF0
dHJpYnV0ZXMoKSBjb25zdDsKIAogICAgIHZvaWQgc2Nyb2xsQnlVbml0cyhpbnQgdW5pdHMsIFNj
cm9sbEdyYW51bGFyaXR5KTsKQEAgLTQ4NCw2ICs0ODQsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdDsKIAogICAgIHZvaWQgc2V0
QXR0cmlidXRlSW50ZXJuYWwoc2l6ZV90IGluZGV4LCBjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKTsK
KyAgICB2b2lkIGFkZEF0dHJpYnV0ZUludGVybmFsKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9taWNTdHJpbmcmIHZhbHVlLCBTeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpOwor
ICAgIHZvaWQgcmVtb3ZlQXR0cmlidXRlSW50ZXJuYWwoc2l6ZV90IGluZGV4LCBTeW5jaHJvbml6
YXRpb25PZkxhenlBdHRyaWJ1dGUpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9p
ZCBmb3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3Q7
CkBAIC02NDMsMTIgKzY0NSw2IEBAIGlubGluZSB2b2lkIEVsZW1lbnQ6OnVwZGF0ZUlkKFRyZWVT
Y29wZSogc2NvcGUsIGNvbnN0IEF0b21pY1N0cmluZyYgb2xkSWQsIGNvbnN0CiAgICAgICAgIHVw
ZGF0ZUV4dHJhTmFtZWRJdGVtUmVnaXN0cmF0aW9uKG9sZElkLCBuZXdJZCk7CiB9CiAKLWlubGlu
ZSB2b2lkIEVsZW1lbnQ6OndpbGxSZW1vdmVBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBpZiAoIXZhbHVlLmlzTnVs
bCgpKQotICAgICAgICB3aWxsTW9kaWZ5QXR0cmlidXRlKG5hbWUsIHZhbHVlLCBudWxsQXRvbSk7
Ci19Ci0KIGlubGluZSBib29sIEVsZW1lbnQ6OmZhc3RIYXNBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSkgY29uc3QKIHsKICAgICBBU1NFUlQoZmFzdEF0dHJpYnV0ZUxvb2t1cEFs
bG93ZWQobmFtZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRBdHRy
aWJ1dGVEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5j
cHAKaW5kZXggZTA0YjY2My4uOTgxYWU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dEF0dHJpYnV0ZURhdGEuY3BwCkBAIC0yMjYsMzcgKzIyNiwxNyBAQCB2b2lkIEVsZW1lbnRBdHRy
aWJ1dGVEYXRhOjpkZXN0cm95SW5saW5lU3R5bGUoU3R5bGVkRWxlbWVudCogZWxlbWVudCkKICAg
ICBtX2lubGluZVN0eWxlRGVjbCA9IDA7CiB9CiAKLXZvaWQgRWxlbWVudEF0dHJpYnV0ZURhdGE6
OmFkZEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSwgRWxlbWVudCogZWxlbWVu
dCwgU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlIGluU3luY2hyb25pemF0aW9uT2ZMYXp5
QXR0cmlidXRlKQordm9pZCBFbGVtZW50QXR0cmlidXRlRGF0YTo6YWRkQXR0cmlidXRlKGNvbnN0
IEF0dHJpYnV0ZSYgYXR0cmlidXRlKQogewogICAgIEFTU0VSVChpc011dGFibGUoKSk7Ci0KLSAg
ICBpZiAoZWxlbWVudCAmJiBpblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSA9PSBOb3RJ
blN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSkKLSAgICAgICAgZWxlbWVudC0+d2lsbE1v
ZGlmeUF0dHJpYnV0ZShhdHRyaWJ1dGUubmFtZSgpLCBudWxsQXRvbSwgYXR0cmlidXRlLnZhbHVl
KCkpOwotCiAgICAgbXV0YWJsZUF0dHJpYnV0ZVZlY3RvcigpLmFwcGVuZChhdHRyaWJ1dGUpOwot
Ci0gICAgaWYgKGVsZW1lbnQgJiYgaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUgPT0g
Tm90SW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpCi0gICAgICAgIGVsZW1lbnQtPmRp
ZEFkZEF0dHJpYnV0ZShhdHRyaWJ1dGUpOwogfQogCi12b2lkIEVsZW1lbnRBdHRyaWJ1dGVEYXRh
OjpyZW1vdmVBdHRyaWJ1dGUoc2l6ZV90IGluZGV4LCBFbGVtZW50KiBlbGVtZW50LCBTeW5jaHJv
bml6YXRpb25PZkxhenlBdHRyaWJ1dGUgaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUp
Cit2b2lkIEVsZW1lbnRBdHRyaWJ1dGVEYXRhOjpyZW1vdmVBdHRyaWJ1dGUoc2l6ZV90IGluZGV4
KQogewogICAgIEFTU0VSVChpc011dGFibGUoKSk7CiAgICAgQVNTRVJUKGluZGV4IDwgbGVuZ3Ro
KCkpOwotCi0gICAgQXR0cmlidXRlJiBhdHRyaWJ1dGUgPSBtdXRhYmxlQXR0cmlidXRlVmVjdG9y
KCkuYXQoaW5kZXgpOwotICAgIFF1YWxpZmllZE5hbWUgbmFtZSA9IGF0dHJpYnV0ZS5uYW1lKCk7
Ci0KLSAgICBpZiAoZWxlbWVudCAmJiBpblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSA9
PSBOb3RJblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSkKLSAgICAgICAgZWxlbWVudC0+
d2lsbFJlbW92ZUF0dHJpYnV0ZShuYW1lLCBhdHRyaWJ1dGUudmFsdWUoKSk7Ci0KLSAgICBpZiAo
UmVmUHRyPEF0dHI+IGF0dHIgPSBhdHRySWZFeGlzdHMoZWxlbWVudCwgbmFtZSkpCi0gICAgICAg
IGF0dHItPmRldGFjaEZyb21FbGVtZW50V2l0aFZhbHVlKGF0dHJpYnV0ZS52YWx1ZSgpKTsKLQog
ICAgIG11dGFibGVBdHRyaWJ1dGVWZWN0b3IoKS5yZW1vdmUoaW5kZXgpOwotCi0gICAgaWYgKGVs
ZW1lbnQgJiYgaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUgPT0gTm90SW5TeW5jaHJv
bml6YXRpb25PZkxhenlBdHRyaWJ1dGUpCi0gICAgICAgIGVsZW1lbnQtPmRpZFJlbW92ZUF0dHJp
YnV0ZShuYW1lKTsKIH0KIAogYm9vbCBFbGVtZW50QXR0cmlidXRlRGF0YTo6aXNFcXVpdmFsZW50
KGNvbnN0IEVsZW1lbnRBdHRyaWJ1dGVEYXRhKiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmgKaW5kZXggOTdkZmZkMS4uOGI4NDg4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmgKQEAgLTM4LDggKzM4LDYgQEAg
Y2xhc3MgRWxlbWVudDsKIGNsYXNzIEltbXV0YWJsZUVsZW1lbnRBdHRyaWJ1dGVEYXRhOwogY2xh
c3MgTXV0YWJsZUVsZW1lbnRBdHRyaWJ1dGVEYXRhOwogCi1lbnVtIFN5bmNocm9uaXphdGlvbk9m
TGF6eUF0dHJpYnV0ZSB7IE5vdEluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlLCBJblN5
bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSB9OwotCiBjbGFzcyBFbGVtZW50QXR0cmlidXRl
RGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPEVsZW1lbnRBdHRyaWJ1dGVEYXRhPiB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC04Myw5ICs4MSw4IEBAIHB1YmxpYzoK
ICAgICBzaXplX3QgZ2V0QXR0cmlidXRlSXRlbUluZGV4KGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSwgYm9vbCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKSBjb25zdDsKIAogICAgIC8vIFRoZXNl
IGZ1bmN0aW9ucyBkbyBubyBlcnJvciBjaGVja2luZy4KLSAgICB2b2lkIGFkZEF0dHJpYnV0ZShj
b25zdCBBdHRyaWJ1dGUmLCBFbGVtZW50KiwgU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRl
ID0gTm90SW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpOwotICAgIHZvaWQgcmVtb3Zl
QXR0cmlidXRlKHNpemVfdCBpbmRleCwgRWxlbWVudCosIFN5bmNocm9uaXphdGlvbk9mTGF6eUF0
dHJpYnV0ZSA9IE5vdEluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKTsKLSAgICBQYXNz
UmVmUHRyPEF0dHI+IHRha2VBdHRyaWJ1dGUoc2l6ZV90IGluZGV4LCBFbGVtZW50Kik7CisgICAg
dm9pZCBhZGRBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJik7CisgICAgdm9pZCByZW1vdmVBdHRy
aWJ1dGUoc2l6ZV90IGluZGV4KTsKIAogICAgIGJvb2wgaGFzSUQoKSBjb25zdCB7IHJldHVybiAh
bV9pZEZvclN0eWxlUmVzb2x1dGlvbi5pc051bGwoKTsgfQogICAgIGJvb2wgaGFzQ2xhc3MoKSBj
b25zdCB7IHJldHVybiAhbV9jbGFzc05hbWVzLmlzTnVsbCgpOyB9Cg==
</data>
<flag name="review"
          id="181049"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168146</attachid>
            <date>2012-10-10 23:07:37 -0700</date>
            <delta_ts>2012-10-11 12:29:15 -0700</delta_ts>
            <desc>Rebasereded</desc>
            <filename>land-98987.diff</filename>
            <type>text/plain</type>
            <size>13126</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlMjIwODc5Li4wYmM3NTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMTItMTAtMTAgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAg
ICAgIEVsZW1lbnRBdHRyaWJ1dGVEYXRhIHNob3VsZG4ndCBiZSBtYW5hZ2luZyBFbGVtZW50J3Mg
Y2FsbGJhY2tzLgorICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi85ODk4Nz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCisKKyAgICAgICAgRGlzcGF0Y2ggdGhlIGZv
bGxvd2luZyBhdHRyaWJ1dGUtcmVsYXRlZCBFbGVtZW50IGNhbGxiYWNrcyBmcm9tIHdpdGhpbiBF
bGVtZW50CisgICAgICAgIGluc3RlYWQgb2YgRWxlbWVudEF0dHJpYnV0ZURhdGEgb3IgQXR0ci4g
QWxzbyBtYWRlIHRoZW0gcHJpdmF0ZS4KKworICAgICAgICAgICAgLSB3aWxsTW9kaWZ5QXR0cmli
dXRlCisgICAgICAgICAgICAtIGRpZE1vZGlmeUF0dHJpYnV0ZQorICAgICAgICAgICAgLSBkaWRB
ZGRBdHRyaWJ1dGUKKyAgICAgICAgICAgIC0gZGlkUmVtb3ZlQXR0cmlidXRlCisKKyAgICAgICAg
Tm8gYmVoYXZpb3IgY2hhbmdlLCBqdXN0IG1ha2luZyBFbGVtZW50QXR0cmlidXRlRGF0YSBhIGJp
dCBkdW1iZXIgKGEgZ29vZCB0aGluZy4pCisKKyAgICAgICAgKiBkb20vQXR0ci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBdHRyOjpjaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
QXR0cjo6c2V0VmFsdWUpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkVsZW1lbnQ6OmRldGFjaEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpyZW1vdmVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0QXR0
cmlidXRlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVtb3ZlQXR0cmli
dXRlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6YWRkQXR0cmlidXRlSW50
ZXJuYWwpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogZG9tL0VsZW1lbnRB
dHRyaWJ1dGVEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRBdHRyaWJ1dGVEYXRh
OjphZGRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudEF0dHJpYnV0ZURhdGE6
OnJlbW92ZUF0dHJpYnV0ZSk6CisgICAgICAgICogZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmg6
CisKIDIwMTItMTAtMTAgIE1pa2UgV2VzdCAgPG1rd3N0QGdvb2dsZS5jb20+CiAKICAgICAgICAg
RG9jdW1lbnQgY2FsbHMgY3JlYXRlRWxlbWVudCB3aXRoIHRoZSB3cm9uZyBwYXJhbWV0ZXJzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0F0dHIuY3BwCmluZGV4IDk1YzNmZTAuLmQ2MWNmNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9BdHRyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKQEAg
LTExMyw3ICsxMTMsNyBAQCB2b2lkIEF0dHI6OnNldFZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYg
dmFsdWUpCiAgICAgbV9pZ25vcmVDaGlsZHJlbkNoYW5nZWQrKzsKICAgICByZW1vdmVDaGlsZHJl
bigpOwogICAgIGlmIChtX2VsZW1lbnQpCi0gICAgICAgIGVsZW1lbnRBdHRyaWJ1dGUoKS5zZXRW
YWx1ZSh2YWx1ZSk7CisgICAgICAgIG1fZWxlbWVudC0+c2V0QXR0cmlidXRlKHF1YWxpZmllZE5h
bWUoKSwgdmFsdWUpOwogICAgIGVsc2UKICAgICAgICAgbV9zdGFuZGFsb25lVmFsdWUgPSB2YWx1
ZTsKICAgICBjcmVhdGVUZXh0Q2hpbGQoKTsKQEAgLTEyNCwxMyArMTI0LDcgQEAgdm9pZCBBdHRy
OjpzZXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogCiB2b2lkIEF0dHI6OnNldFZh
bHVlKGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmKQogewotICAgIGlm
IChtX2VsZW1lbnQpCi0gICAgICAgIG1fZWxlbWVudC0+d2lsbE1vZGlmeUF0dHJpYnV0ZShxdWFs
aWZpZWROYW1lKCksIHRoaXMtPnZhbHVlKCksIHZhbHVlKTsKLQogICAgIHNldFZhbHVlKHZhbHVl
KTsKLQotICAgIGlmIChtX2VsZW1lbnQpCi0gICAgICAgIG1fZWxlbWVudC0+ZGlkTW9kaWZ5QXR0
cmlidXRlKGVsZW1lbnRBdHRyaWJ1dGUoKSk7CiB9CiAKIHZvaWQgQXR0cjo6c2V0Tm9kZVZhbHVl
KGNvbnN0IFN0cmluZyYgdiwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0xNzMsMTYgKzE2NywxMSBA
QCB2b2lkIEF0dHI6OmNoaWxkcmVuQ2hhbmdlZChib29sLCBOb2RlKiwgTm9kZSosIGludCkKICAg
ICB9CiAKICAgICBBdG9taWNTdHJpbmcgbmV3VmFsdWUgPSB2YWx1ZUJ1aWxkZXIudG9TdHJpbmco
KTsKLSAgICBpZiAobV9lbGVtZW50KQotICAgICAgICBtX2VsZW1lbnQtPndpbGxNb2RpZnlBdHRy
aWJ1dGUocXVhbGlmaWVkTmFtZSgpLCB2YWx1ZSgpLCBuZXdWYWx1ZSk7CiAKICAgICBpZiAobV9l
bGVtZW50KQotICAgICAgICBlbGVtZW50QXR0cmlidXRlKCkuc2V0VmFsdWUobmV3VmFsdWUpOwor
ICAgICAgICBtX2VsZW1lbnQtPnNldEF0dHJpYnV0ZShxdWFsaWZpZWROYW1lKCksIG5ld1ZhbHVl
KTsKICAgICBlbHNlCiAgICAgICAgIG1fc3RhbmRhbG9uZVZhbHVlID0gbmV3VmFsdWU7Ci0KLSAg
ICBpZiAobV9lbGVtZW50KQotICAgICAgICBtX2VsZW1lbnQtPmF0dHJpYnV0ZUNoYW5nZWQoZWxl
bWVudEF0dHJpYnV0ZSgpKTsKIH0KIAogYm9vbCBBdHRyOjppc0lkKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAppbmRleCA1OWRmZTZkLi5kMTNiYWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CkBAIC0yMTIsNyArMjEyLDcgQEAgUGFzc1JlZlB0cjxBdHRyPiBFbGVtZW50OjpkZXRhY2hBdHRy
aWJ1dGUoc2l6ZV90IGluZGV4KQogICAgIGVsc2UKICAgICAgICAgYXR0ciA9IEF0dHI6OmNyZWF0
ZShkb2N1bWVudCgpLCBhdHRyaWJ1dGUtPm5hbWUoKSwgYXR0cmlidXRlLT52YWx1ZSgpKTsKIAot
ICAgIG11dGFibGVBdHRyaWJ1dGVEYXRhKCktPnJlbW92ZUF0dHJpYnV0ZShpbmRleCwgdGhpcyk7
CisgICAgcmVtb3ZlQXR0cmlidXRlSW50ZXJuYWwoaW5kZXgsIE5vdEluU3luY2hyb25pemF0aW9u
T2ZMYXp5QXR0cmlidXRlKTsKICAgICByZXR1cm4gYXR0ci5yZWxlYXNlKCk7CiB9CiAKQEAgLTIy
OCw3ICsyMjgsNyBAQCB2b2lkIEVsZW1lbnQ6OnJlbW92ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lKQogICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgbXV0YWJsZUF0dHJpYnV0ZURhdGEoKS0+cmVtb3ZlQXR0cmlidXRlKGluZGV4LCB0
aGlzKTsKKyAgICByZW1vdmVBdHRyaWJ1dGVJbnRlcm5hbChpbmRleCwgTm90SW5TeW5jaHJvbml6
YXRpb25PZkxhenlBdHRyaWJ1dGUpOwogfQogCiB2b2lkIEVsZW1lbnQ6OnNldEJvb2xlYW5BdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgYm9vbCB2YWx1ZSkKQEAgLTY3NCwxNiAr
Njc0LDE2IEBAIGlubGluZSB2b2lkIEVsZW1lbnQ6OnNldEF0dHJpYnV0ZUludGVybmFsKHNpemVf
dCBpbmRleCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtCiAgICAgQXR0cmlidXRlKiBvbGQgPSBp
bmRleCAhPSBub3RGb3VuZCA/IGF0dHJpYnV0ZURhdGEtPmF0dHJpYnV0ZUl0ZW0oaW5kZXgpIDog
MDsKICAgICBpZiAodmFsdWUuaXNOdWxsKCkpIHsKICAgICAgICAgaWYgKG9sZCkKLSAgICAgICAg
ICAgIGF0dHJpYnV0ZURhdGEtPnJlbW92ZUF0dHJpYnV0ZShpbmRleCwgdGhpcywgaW5TeW5jaHJv
bml6YXRpb25PZkxhenlBdHRyaWJ1dGUpOworICAgICAgICAgICAgcmVtb3ZlQXR0cmlidXRlSW50
ZXJuYWwoaW5kZXgsIGluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIGlmICghb2xkKSB7Ci0gICAgICAgIGF0dHJpYnV0ZURhdGEt
PmFkZEF0dHJpYnV0ZShBdHRyaWJ1dGUobmFtZSwgdmFsdWUpLCB0aGlzLCBpblN5bmNocm9uaXph
dGlvbk9mTGF6eUF0dHJpYnV0ZSk7CisgICAgICAgIGFkZEF0dHJpYnV0ZUludGVybmFsKG5hbWUs
IHZhbHVlLCBpblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBpZiAoaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUgPT0g
Tm90SW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpCisgICAgaWYgKCFpblN5bmNocm9u
aXphdGlvbk9mTGF6eUF0dHJpYnV0ZSkKICAgICAgICAgd2lsbE1vZGlmeUF0dHJpYnV0ZShuYW1l
LCBvbGQtPnZhbHVlKCksIHZhbHVlKTsKIAogICAgIGlmIChSZWZQdHI8QXR0cj4gYXR0ck5vZGUg
PSBhdHRySWZFeGlzdHMobmFtZSkpCkBAIC02OTEsNyArNjkxLDcgQEAgaW5saW5lIHZvaWQgRWxl
bWVudDo6c2V0QXR0cmlidXRlSW50ZXJuYWwoc2l6ZV90IGluZGV4LCBjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW0KICAgICBlbHNlCiAgICAgICAgIG9sZC0+c2V0VmFsdWUodmFsdWUpOwogCi0gICAg
aWYgKGluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlID09IE5vdEluU3luY2hyb25pemF0
aW9uT2ZMYXp5QXR0cmlidXRlKQorICAgIGlmICghaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRy
aWJ1dGUpCiAgICAgICAgIGRpZE1vZGlmeUF0dHJpYnV0ZShBdHRyaWJ1dGUob2xkLT5uYW1lKCks
IG9sZC0+dmFsdWUoKSkpOwogfQogCkBAIC0xNTM2LDExICsxNTM2LDQwIEBAIHZvaWQgRWxlbWVu
dDo6c2V0QXR0cmlidXRlTlMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0
IEF0b21pY1N0cmluCiAgICAgc2V0QXR0cmlidXRlKHBhcnNlZE5hbWUsIHZhbHVlKTsKIH0KIAot
dm9pZCBFbGVtZW50OjpyZW1vdmVBdHRyaWJ1dGUoc2l6ZV90IGluZGV4KQordm9pZCBFbGVtZW50
OjpyZW1vdmVBdHRyaWJ1dGVJbnRlcm5hbChzaXplX3QgaW5kZXgsIFN5bmNocm9uaXphdGlvbk9m
TGF6eUF0dHJpYnV0ZSBpblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSkKIHsKLSAgICBB
U1NFUlQoYXR0cmlidXRlRGF0YSgpKTsKKyAgICBBU1NFUlQobV9hdHRyaWJ1dGVEYXRhKTsKKyAg
ICBBU1NFUlQobV9hdHRyaWJ1dGVEYXRhLT5pc011dGFibGUoKSk7CiAgICAgQVNTRVJUKGluZGV4
IDw9IGF0dHJpYnV0ZUNvdW50KCkpOwotICAgIG11dGFibGVBdHRyaWJ1dGVEYXRhKCktPnJlbW92
ZUF0dHJpYnV0ZShpbmRleCwgdGhpcyk7CisKKyAgICBRdWFsaWZpZWROYW1lIG5hbWUgPSBtX2F0
dHJpYnV0ZURhdGEtPmF0dHJpYnV0ZUl0ZW0oaW5kZXgpLT5uYW1lKCk7CisgICAgQXRvbWljU3Ry
aW5nIHZhbHVlQmVpbmdSZW1vdmVkID0gbV9hdHRyaWJ1dGVEYXRhLT5hdHRyaWJ1dGVJdGVtKGlu
ZGV4KS0+dmFsdWUoKTsKKworICAgIGlmICghaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1
dGUpIHsKKyAgICAgICAgaWYgKCF2YWx1ZUJlaW5nUmVtb3ZlZC5pc051bGwoKSkKKyAgICAgICAg
ICAgIHdpbGxNb2RpZnlBdHRyaWJ1dGUobmFtZSwgdmFsdWVCZWluZ1JlbW92ZWQsIG51bGxBdG9t
KTsKKyAgICB9CisKKyAgICBpZiAoaGFzQXR0ckxpc3QoKSkgeworICAgICAgICBpZiAoUmVmUHRy
PEF0dHI+IGF0dHIgPSBtX2F0dHJpYnV0ZURhdGEtPmF0dHJJZkV4aXN0cyh0aGlzLCBuYW1lKSkK
KyAgICAgICAgICAgIGF0dHItPmRldGFjaEZyb21FbGVtZW50V2l0aFZhbHVlKG1fYXR0cmlidXRl
RGF0YS0+YXR0cmlidXRlSXRlbShpbmRleCktPnZhbHVlKCkpOworICAgIH0KKworICAgIG1fYXR0
cmlidXRlRGF0YS0+cmVtb3ZlQXR0cmlidXRlKGluZGV4KTsKKworICAgIGlmICghaW5TeW5jaHJv
bml6YXRpb25PZkxhenlBdHRyaWJ1dGUpCisgICAgICAgIGRpZFJlbW92ZUF0dHJpYnV0ZShuYW1l
KTsKK30KKwordm9pZCBFbGVtZW50OjphZGRBdHRyaWJ1dGVJbnRlcm5hbChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBTeW5jaHJvbml6YXRpb25P
ZkxhenlBdHRyaWJ1dGUgaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpCit7CisgICAg
QVNTRVJUKG1fYXR0cmlidXRlRGF0YSk7CisgICAgQVNTRVJUKG1fYXR0cmlidXRlRGF0YS0+aXNN
dXRhYmxlKCkpOworICAgIGlmICghaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpCisg
ICAgICAgIHdpbGxNb2RpZnlBdHRyaWJ1dGUobmFtZSwgbnVsbEF0b20sIHZhbHVlKTsKKyAgICBt
X2F0dHJpYnV0ZURhdGEtPmFkZEF0dHJpYnV0ZShBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKTsKKyAg
ICBpZiAoIWluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKQorICAgICAgICBkaWRBZGRB
dHRyaWJ1dGUoQXR0cmlidXRlKG5hbWUsIHZhbHVlKSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6cmVt
b3ZlQXR0cmlidXRlKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKQEAgLTE1NTMsNyArMTU4Miw3
IEBAIHZvaWQgRWxlbWVudDo6cmVtb3ZlQXR0cmlidXRlKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSkKICAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG11
dGFibGVBdHRyaWJ1dGVEYXRhKCktPnJlbW92ZUF0dHJpYnV0ZShpbmRleCwgdGhpcyk7CisgICAg
cmVtb3ZlQXR0cmlidXRlSW50ZXJuYWwoaW5kZXgsIE5vdEluU3luY2hyb25pemF0aW9uT2ZMYXp5
QXR0cmlidXRlKTsKIH0KIAogdm9pZCBFbGVtZW50OjpyZW1vdmVBdHRyaWJ1dGVOUyhjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuaAppbmRleCBkOWI4YzQ5Li5iNGJkMjZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKQEAgLTExOSw3ICsxMTksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpOwogICAgIHZvaWQg
c2V0U3luY2hyb25pemVkTGF6eUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbWljU3RyaW5nJiB2YWx1ZSk7CiAgICAgdm9pZCByZW1vdmVBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYpOwotICAgIHZvaWQgcmVtb3ZlQXR0cmlidXRlKHNpemVfdCBpbmRleCk7CiAK
ICAgICAvLyBUeXBlZCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIGZvciBsYW5ndWFnZSBiaW5kaW5ncy4K
ICAgICBpbnQgZ2V0SW50ZWdyYWxBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmli
dXRlTmFtZSkgY29uc3Q7CkBAIC0zMTgsMTIgKzMxNyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHVw
ZGF0ZUlkKFRyZWVTY29wZSosIGNvbnN0IEF0b21pY1N0cmluZyYgb2xkSWQsIGNvbnN0IEF0b21p
Y1N0cmluZyYgbmV3SWQpOwogICAgIHZvaWQgdXBkYXRlTmFtZShjb25zdCBBdG9taWNTdHJpbmcm
IG9sZE5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3TmFtZSk7CiAKLSAgICB2b2lkIHdpbGxN
b2RpZnlBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3VmFsdWUpOwotICAgIHZvaWQgd2lsbFJl
bW92ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiB2
YWx1ZSk7Ci0gICAgdm9pZCBkaWRBZGRBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJik7Ci0gICAg
dm9pZCBkaWRNb2RpZnlBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJik7Ci0gICAgdm9pZCBkaWRS
ZW1vdmVBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotCiAgICAgdm9pZCByZW1vdmVD
YWNoZWRIVE1MQ29sbGVjdGlvbihIVE1MQ29sbGVjdGlvbiosIENvbGxlY3Rpb25UeXBlKTsKIAog
ICAgIExheW91dFNpemUgbWluaW11bVNpemVGb3JSZXNpemluZygpIGNvbnN0OwpAQCAtNDc2LDYg
KzQ2OSwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gY2xhc3NBdHRyaWJ1dGVDaGFuZ2VkKCkgZXhp
c3RzIHRvIHNoYXJlIGNvZGUgYmV0d2VlbgogICAgIC8vIHBhcnNlQXR0cmlidXRlIChjYWxsZWQg
dmlhIHNldEF0dHJpYnV0ZSgpKSBhbmQKICAgICAvLyBzdmdBdHRyaWJ1dGVDaGFuZ2VkIChjYWxs
ZWQgd2hlbiBlbGVtZW50LmNsYXNzTmFtZS5iYXNlVmFsdWUgaXMgc2V0KQorICAgIGVudW0gU3lu
Y2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlIHsgTm90SW5TeW5jaHJvbml6YXRpb25PZkxhenlB
dHRyaWJ1dGUgPSAwLCBJblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSB9OworCisgICAg
dm9pZCB3aWxsTW9kaWZ5QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
aWNTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5ld1ZhbHVlKTsKKyAgICB2
b2lkIGRpZEFkZEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKTsKKyAgICB2b2lkIGRpZE1vZGlm
eUF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKTsKKyAgICB2b2lkIGRpZFJlbW92ZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CisKICAgICB2b2lkIGNsYXNzQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBBdG9taWNTdHJpbmcmIG5ld0NsYXNzU3RyaW5nKTsKIAogcHJpdmF0ZToKQEAgLTQ5
MSw2ICs0OTEsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2Vk
KE5vZGVUeXBlKSBjb25zdDsKIAogICAgIHZvaWQgc2V0QXR0cmlidXRlSW50ZXJuYWwoc2l6ZV90
IGluZGV4LCBjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwg
U3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKTsKKyAgICB2b2lkIGFkZEF0dHJpYnV0ZUlu
dGVybmFsKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBT
eW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpOworICAgIHZvaWQgcmVtb3ZlQXR0cmlidXRl
SW50ZXJuYWwoc2l6ZV90IGluZGV4LCBTeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpOwog
CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBmb3JtYXRGb3JEZWJ1Z2dlcihjaGFy
KiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3Q7CkBAIC02NTAsMTIgKzY1Miw2IEBAIGlu
bGluZSB2b2lkIEVsZW1lbnQ6OnVwZGF0ZUlkKFRyZWVTY29wZSogc2NvcGUsIGNvbnN0IEF0b21p
Y1N0cmluZyYgb2xkSWQsIGNvbnN0CiAgICAgICAgIHVwZGF0ZUV4dHJhTmFtZWRJdGVtUmVnaXN0
cmF0aW9uKG9sZElkLCBuZXdJZCk7CiB9CiAKLWlubGluZSB2b2lkIEVsZW1lbnQ6OndpbGxSZW1v
dmVBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5n
JiB2YWx1ZSkKLXsKLSAgICBpZiAoIXZhbHVlLmlzTnVsbCgpKQotICAgICAgICB3aWxsTW9kaWZ5
QXR0cmlidXRlKG5hbWUsIHZhbHVlLCBudWxsQXRvbSk7Ci19Ci0KIGlubGluZSBib29sIEVsZW1l
bnQ6OmZhc3RIYXNBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKIHsK
ICAgICBBU1NFUlQoZmFzdEF0dHJpYnV0ZUxvb2t1cEFsbG93ZWQobmFtZSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAKaW5kZXggZTA0YjY2My4uOTgxYWU1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwCkBAIC0y
MjYsMzcgKzIyNiwxNyBAQCB2b2lkIEVsZW1lbnRBdHRyaWJ1dGVEYXRhOjpkZXN0cm95SW5saW5l
U3R5bGUoU3R5bGVkRWxlbWVudCogZWxlbWVudCkKICAgICBtX2lubGluZVN0eWxlRGVjbCA9IDA7
CiB9CiAKLXZvaWQgRWxlbWVudEF0dHJpYnV0ZURhdGE6OmFkZEF0dHJpYnV0ZShjb25zdCBBdHRy
aWJ1dGUmIGF0dHJpYnV0ZSwgRWxlbWVudCogZWxlbWVudCwgU3luY2hyb25pemF0aW9uT2ZMYXp5
QXR0cmlidXRlIGluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKQordm9pZCBFbGVtZW50
QXR0cmlidXRlRGF0YTo6YWRkQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKQog
ewogICAgIEFTU0VSVChpc011dGFibGUoKSk7Ci0KLSAgICBpZiAoZWxlbWVudCAmJiBpblN5bmNo
cm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSA9PSBOb3RJblN5bmNocm9uaXphdGlvbk9mTGF6eUF0
dHJpYnV0ZSkKLSAgICAgICAgZWxlbWVudC0+d2lsbE1vZGlmeUF0dHJpYnV0ZShhdHRyaWJ1dGUu
bmFtZSgpLCBudWxsQXRvbSwgYXR0cmlidXRlLnZhbHVlKCkpOwotCiAgICAgbXV0YWJsZUF0dHJp
YnV0ZVZlY3RvcigpLmFwcGVuZChhdHRyaWJ1dGUpOwotCi0gICAgaWYgKGVsZW1lbnQgJiYgaW5T
eW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUgPT0gTm90SW5TeW5jaHJvbml6YXRpb25PZkxh
enlBdHRyaWJ1dGUpCi0gICAgICAgIGVsZW1lbnQtPmRpZEFkZEF0dHJpYnV0ZShhdHRyaWJ1dGUp
OwogfQogCi12b2lkIEVsZW1lbnRBdHRyaWJ1dGVEYXRhOjpyZW1vdmVBdHRyaWJ1dGUoc2l6ZV90
IGluZGV4LCBFbGVtZW50KiBlbGVtZW50LCBTeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUg
aW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpCit2b2lkIEVsZW1lbnRBdHRyaWJ1dGVE
YXRhOjpyZW1vdmVBdHRyaWJ1dGUoc2l6ZV90IGluZGV4KQogewogICAgIEFTU0VSVChpc011dGFi
bGUoKSk7CiAgICAgQVNTRVJUKGluZGV4IDwgbGVuZ3RoKCkpOwotCi0gICAgQXR0cmlidXRlJiBh
dHRyaWJ1dGUgPSBtdXRhYmxlQXR0cmlidXRlVmVjdG9yKCkuYXQoaW5kZXgpOwotICAgIFF1YWxp
ZmllZE5hbWUgbmFtZSA9IGF0dHJpYnV0ZS5uYW1lKCk7Ci0KLSAgICBpZiAoZWxlbWVudCAmJiBp
blN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSA9PSBOb3RJblN5bmNocm9uaXphdGlvbk9m
TGF6eUF0dHJpYnV0ZSkKLSAgICAgICAgZWxlbWVudC0+d2lsbFJlbW92ZUF0dHJpYnV0ZShuYW1l
LCBhdHRyaWJ1dGUudmFsdWUoKSk7Ci0KLSAgICBpZiAoUmVmUHRyPEF0dHI+IGF0dHIgPSBhdHRy
SWZFeGlzdHMoZWxlbWVudCwgbmFtZSkpCi0gICAgICAgIGF0dHItPmRldGFjaEZyb21FbGVtZW50
V2l0aFZhbHVlKGF0dHJpYnV0ZS52YWx1ZSgpKTsKLQogICAgIG11dGFibGVBdHRyaWJ1dGVWZWN0
b3IoKS5yZW1vdmUoaW5kZXgpOwotCi0gICAgaWYgKGVsZW1lbnQgJiYgaW5TeW5jaHJvbml6YXRp
b25PZkxhenlBdHRyaWJ1dGUgPT0gTm90SW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUp
Ci0gICAgICAgIGVsZW1lbnQtPmRpZFJlbW92ZUF0dHJpYnV0ZShuYW1lKTsKIH0KIAogYm9vbCBF
bGVtZW50QXR0cmlidXRlRGF0YTo6aXNFcXVpdmFsZW50KGNvbnN0IEVsZW1lbnRBdHRyaWJ1dGVE
YXRhKiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
QXR0cmlidXRlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRh
LmgKaW5kZXggOTdkZmZkMS4uOGI4NDg4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRB
dHRyaWJ1dGVEYXRhLmgKQEAgLTM4LDggKzM4LDYgQEAgY2xhc3MgRWxlbWVudDsKIGNsYXNzIElt
bXV0YWJsZUVsZW1lbnRBdHRyaWJ1dGVEYXRhOwogY2xhc3MgTXV0YWJsZUVsZW1lbnRBdHRyaWJ1
dGVEYXRhOwogCi1lbnVtIFN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSB7IE5vdEluU3lu
Y2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlLCBJblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJp
YnV0ZSB9OwotCiBjbGFzcyBFbGVtZW50QXR0cmlidXRlRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVk
PEVsZW1lbnRBdHRyaWJ1dGVEYXRhPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CkBAIC04Myw5ICs4MSw4IEBAIHB1YmxpYzoKICAgICBzaXplX3QgZ2V0QXR0cmlidXRl
SXRlbUluZGV4KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgYm9vbCBzaG91bGRJZ25vcmVBdHRy
aWJ1dGVDYXNlKSBjb25zdDsKIAogICAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBkbyBubyBlcnJvciBj
aGVja2luZy4KLSAgICB2b2lkIGFkZEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmLCBFbGVtZW50
KiwgU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlID0gTm90SW5TeW5jaHJvbml6YXRpb25P
ZkxhenlBdHRyaWJ1dGUpOwotICAgIHZvaWQgcmVtb3ZlQXR0cmlidXRlKHNpemVfdCBpbmRleCwg
RWxlbWVudCosIFN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSA9IE5vdEluU3luY2hyb25p
emF0aW9uT2ZMYXp5QXR0cmlidXRlKTsKLSAgICBQYXNzUmVmUHRyPEF0dHI+IHRha2VBdHRyaWJ1
dGUoc2l6ZV90IGluZGV4LCBFbGVtZW50Kik7CisgICAgdm9pZCBhZGRBdHRyaWJ1dGUoY29uc3Qg
QXR0cmlidXRlJik7CisgICAgdm9pZCByZW1vdmVBdHRyaWJ1dGUoc2l6ZV90IGluZGV4KTsKIAog
ICAgIGJvb2wgaGFzSUQoKSBjb25zdCB7IHJldHVybiAhbV9pZEZvclN0eWxlUmVzb2x1dGlvbi5p
c051bGwoKTsgfQogICAgIGJvb2wgaGFzQ2xhc3MoKSBjb25zdCB7IHJldHVybiAhbV9jbGFzc05h
bWVzLmlzTnVsbCgpOyB9Cg==
</data>
<flag name="commit-queue"
          id="181060"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168259</attachid>
            <date>2012-10-11 12:29:15 -0700</date>
            <delta_ts>2012-10-11 14:06:27 -0700</delta_ts>
            <desc>sigh</desc>
            <filename>land-98987-2.diff</filename>
            <type>text/plain</type>
            <size>13055</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlNzQwYjk1Li43MzUzMDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTItMTAtMTEgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAg
ICAgIEVsZW1lbnRBdHRyaWJ1dGVEYXRhIHNob3VsZG4ndCBiZSBtYW5hZ2luZyBFbGVtZW50J3Mg
Y2FsbGJhY2tzLgorICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi85ODk4Nz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCisKKyAgICAgICAgRGlzcGF0Y2ggdGhlIGZv
bGxvd2luZyBhdHRyaWJ1dGUtcmVsYXRlZCBFbGVtZW50IGNhbGxiYWNrcyBmcm9tIHdpdGhpbiBF
bGVtZW50CisgICAgICAgIGluc3RlYWQgb2YgRWxlbWVudEF0dHJpYnV0ZURhdGEuIEFsc28gbWFk
ZSB0aGVtIHByaXZhdGUuCisKKyAgICAgICAgICAgIC0gd2lsbE1vZGlmeUF0dHJpYnV0ZQorICAg
ICAgICAgICAgLSBkaWRNb2RpZnlBdHRyaWJ1dGUKKyAgICAgICAgICAgIC0gZGlkQWRkQXR0cmli
dXRlCisgICAgICAgICAgICAtIGRpZFJlbW92ZUF0dHJpYnV0ZQorCisgICAgICAgIE5vIGJlaGF2
aW9yIGNoYW5nZSwganVzdCBtYWtpbmcgRWxlbWVudEF0dHJpYnV0ZURhdGEgYSBiaXQgZHVtYmVy
IChhIGdvb2QgdGhpbmcuKQorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6ZGV0YWNoQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6OnJlbW92ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRB
dHRyaWJ1dGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpyZW1vdmVBdHRy
aWJ1dGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjphZGRBdHRyaWJ1dGVJ
bnRlcm5hbCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vRWxlbWVu
dEF0dHJpYnV0ZURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudEF0dHJpYnV0ZURh
dGE6OmFkZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50QXR0cmlidXRlRGF0
YTo6cmVtb3ZlQXR0cmlidXRlKToKKyAgICAgICAgKiBkb20vRWxlbWVudEF0dHJpYnV0ZURhdGEu
aDoKKwogMjAxMi0xMC0xMCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBEaXNhbGxvdyBmdWxsIHNjcmVlbiBtb2RlIGtleWJvYXJkIGFjY2VzcyBieSBkZWZhdWx0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDU5ZGZlNmQuLjkzMzlkOTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKQEAgLTIxMiw3ICsyMTIsNyBAQCBQYXNzUmVmUHRyPEF0dHI+IEVsZW1lbnQ6
OmRldGFjaEF0dHJpYnV0ZShzaXplX3QgaW5kZXgpCiAgICAgZWxzZQogICAgICAgICBhdHRyID0g
QXR0cjo6Y3JlYXRlKGRvY3VtZW50KCksIGF0dHJpYnV0ZS0+bmFtZSgpLCBhdHRyaWJ1dGUtPnZh
bHVlKCkpOwogCi0gICAgbXV0YWJsZUF0dHJpYnV0ZURhdGEoKS0+cmVtb3ZlQXR0cmlidXRlKGlu
ZGV4LCB0aGlzKTsKKyAgICByZW1vdmVBdHRyaWJ1dGVJbnRlcm5hbChpbmRleCwgTm90SW5TeW5j
aHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpOwogICAgIHJldHVybiBhdHRyLnJlbGVhc2UoKTsK
IH0KIApAQCAtMjIxLDE0ICsyMjEsMTEgQEAgdm9pZCBFbGVtZW50OjpyZW1vdmVBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkKICAgICBpZiAoIWF0dHJpYnV0ZURhdGEoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKFJlZlB0cjxBdHRyPiBhdHRyID0gYXR0cklmRXhpc3Rz
KG5hbWUpKQotICAgICAgICBhdHRyLT5kZXRhY2hGcm9tRWxlbWVudFdpdGhWYWx1ZShhdHRyLT52
YWx1ZSgpKTsKLQogICAgIHNpemVfdCBpbmRleCA9IGF0dHJpYnV0ZURhdGEoKS0+Z2V0QXR0cmli
dXRlSXRlbUluZGV4KG5hbWUpOwogICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgbXV0YWJsZUF0dHJpYnV0ZURhdGEoKS0+cmVtb3ZlQXR0cmlidXRlKGlu
ZGV4LCB0aGlzKTsKKyAgICByZW1vdmVBdHRyaWJ1dGVJbnRlcm5hbChpbmRleCwgTm90SW5TeW5j
aHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpOwogfQogCiB2b2lkIEVsZW1lbnQ6OnNldEJvb2xl
YW5BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgYm9vbCB2YWx1ZSkKQEAgLTY2
NywzMiArNjY0LDM1IEBAIHZvaWQgRWxlbWVudDo6c2V0U3luY2hyb25pemVkTGF6eUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tCiAgICAgc2V0QXR0cmlidXRl
SW50ZXJuYWwobXV0YWJsZUF0dHJpYnV0ZURhdGEoKS0+Z2V0QXR0cmlidXRlSXRlbUluZGV4KG5h
bWUpLCBuYW1lLCB2YWx1ZSwgSW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpOwogfQog
Ci1pbmxpbmUgdm9pZCBFbGVtZW50OjpzZXRBdHRyaWJ1dGVJbnRlcm5hbChzaXplX3QgaW5kZXgs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIFN5
bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSBpblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJp
YnV0ZSkKK2lubGluZSB2b2lkIEVsZW1lbnQ6OnNldEF0dHJpYnV0ZUludGVybmFsKHNpemVfdCBp
bmRleCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuZXdW
YWx1ZSwgU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlIGluU3luY2hyb25pemF0aW9uT2ZM
YXp5QXR0cmlidXRlKQogewogICAgIEVsZW1lbnRBdHRyaWJ1dGVEYXRhKiBhdHRyaWJ1dGVEYXRh
ID0gbXV0YWJsZUF0dHJpYnV0ZURhdGEoKTsKIAotICAgIEF0dHJpYnV0ZSogb2xkID0gaW5kZXgg
IT0gbm90Rm91bmQgPyBhdHRyaWJ1dGVEYXRhLT5hdHRyaWJ1dGVJdGVtKGluZGV4KSA6IDA7Ci0g
ICAgaWYgKHZhbHVlLmlzTnVsbCgpKSB7Ci0gICAgICAgIGlmIChvbGQpCi0gICAgICAgICAgICBh
dHRyaWJ1dGVEYXRhLT5yZW1vdmVBdHRyaWJ1dGUoaW5kZXgsIHRoaXMsIGluU3luY2hyb25pemF0
aW9uT2ZMYXp5QXR0cmlidXRlKTsKKyAgICBBdHRyaWJ1dGUqIGV4aXN0aW5nQXR0cmlidXRlID0g
aW5kZXggIT0gbm90Rm91bmQgPyBhdHRyaWJ1dGVEYXRhLT5hdHRyaWJ1dGVJdGVtKGluZGV4KSA6
IDA7CisgICAgaWYgKG5ld1ZhbHVlLmlzTnVsbCgpKSB7CisgICAgICAgIGlmIChleGlzdGluZ0F0
dHJpYnV0ZSkKKyAgICAgICAgICAgIHJlbW92ZUF0dHJpYnV0ZUludGVybmFsKGluZGV4LCBpblN5
bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBpZiAoIW9sZCkgewotICAgICAgICBhdHRyaWJ1dGVEYXRhLT5hZGRBdHRyaWJ1dGUoQXR0
cmlidXRlKG5hbWUsIHZhbHVlKSwgdGhpcywgaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1
dGUpOworICAgIGlmICghZXhpc3RpbmdBdHRyaWJ1dGUpIHsKKyAgICAgICAgYWRkQXR0cmlidXRl
SW50ZXJuYWwobmFtZSwgbmV3VmFsdWUsIGluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRl
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChpblN5bmNocm9uaXphdGlvbk9m
TGF6eUF0dHJpYnV0ZSA9PSBOb3RJblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSkKLSAg
ICAgICAgd2lsbE1vZGlmeUF0dHJpYnV0ZShuYW1lLCBvbGQtPnZhbHVlKCksIHZhbHVlKTsKKyAg
ICBpZiAoIWluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKQorICAgICAgICB3aWxsTW9k
aWZ5QXR0cmlidXRlKG5hbWUsIGV4aXN0aW5nQXR0cmlidXRlLT52YWx1ZSgpLCBuZXdWYWx1ZSk7
CiAKKyAgICAvLyBJZiB0aGVyZSBpcyBhbiBBdHRyIG5vZGUgaG9va2VkIHRvIHRoaXMgYXR0cmli
dXRlLCB0aGUgQXR0cjo6c2V0VmFsdWUoKSBjYWxsIGJlbG93CisgICAgLy8gd2lsbCB3cml0ZSBp
bnRvIHRoZSBFbGVtZW50QXR0cmlidXRlRGF0YS4KKyAgICAvLyBGSVhNRTogUmVmYWN0b3IgdGhp
cyBzbyBpdCBtYWtlcyBzb21lIHNlbnNlLgogICAgIGlmIChSZWZQdHI8QXR0cj4gYXR0ck5vZGUg
PSBhdHRySWZFeGlzdHMobmFtZSkpCi0gICAgICAgIGF0dHJOb2RlLT5zZXRWYWx1ZSh2YWx1ZSk7
CisgICAgICAgIGF0dHJOb2RlLT5zZXRWYWx1ZShuZXdWYWx1ZSk7CiAgICAgZWxzZQotICAgICAg
ICBvbGQtPnNldFZhbHVlKHZhbHVlKTsKKyAgICAgICAgZXhpc3RpbmdBdHRyaWJ1dGUtPnNldFZh
bHVlKG5ld1ZhbHVlKTsKIAotICAgIGlmIChpblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0
ZSA9PSBOb3RJblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSkKLSAgICAgICAgZGlkTW9k
aWZ5QXR0cmlidXRlKEF0dHJpYnV0ZShvbGQtPm5hbWUoKSwgb2xkLT52YWx1ZSgpKSk7CisgICAg
aWYgKCFpblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSkKKyAgICAgICAgZGlkTW9kaWZ5
QXR0cmlidXRlKCpleGlzdGluZ0F0dHJpYnV0ZSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkKQEAgLTE1MzYsMTEgKzE1MzYs
NDAgQEAgdm9pZCBFbGVtZW50OjpzZXRBdHRyaWJ1dGVOUyhjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW4KICAgICBzZXRBdHRyaWJ1dGUocGFyc2VkTmFt
ZSwgdmFsdWUpOwogfQogCi12b2lkIEVsZW1lbnQ6OnJlbW92ZUF0dHJpYnV0ZShzaXplX3QgaW5k
ZXgpCit2b2lkIEVsZW1lbnQ6OnJlbW92ZUF0dHJpYnV0ZUludGVybmFsKHNpemVfdCBpbmRleCwg
U3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlIGluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0
cmlidXRlKQogewotICAgIEFTU0VSVChhdHRyaWJ1dGVEYXRhKCkpOwotICAgIEFTU0VSVChpbmRl
eCA8PSBhdHRyaWJ1dGVDb3VudCgpKTsKLSAgICBtdXRhYmxlQXR0cmlidXRlRGF0YSgpLT5yZW1v
dmVBdHRyaWJ1dGUoaW5kZXgsIHRoaXMpOworICAgIEFTU0VSVChpbmRleCA8IGF0dHJpYnV0ZUNv
dW50KCkpOworCisgICAgRWxlbWVudEF0dHJpYnV0ZURhdGEqIGF0dHJpYnV0ZURhdGEgPSBtdXRh
YmxlQXR0cmlidXRlRGF0YSgpOworCisgICAgUXVhbGlmaWVkTmFtZSBuYW1lID0gYXR0cmlidXRl
RGF0YS0+YXR0cmlidXRlSXRlbShpbmRleCktPm5hbWUoKTsKKyAgICBBdG9taWNTdHJpbmcgdmFs
dWVCZWluZ1JlbW92ZWQgPSBhdHRyaWJ1dGVEYXRhLT5hdHRyaWJ1dGVJdGVtKGluZGV4KS0+dmFs
dWUoKTsKKworICAgIGlmICghaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpIHsKKyAg
ICAgICAgaWYgKCF2YWx1ZUJlaW5nUmVtb3ZlZC5pc051bGwoKSkKKyAgICAgICAgICAgIHdpbGxN
b2RpZnlBdHRyaWJ1dGUobmFtZSwgdmFsdWVCZWluZ1JlbW92ZWQsIG51bGxBdG9tKTsKKyAgICB9
CisKKyAgICBpZiAoaGFzQXR0ckxpc3QoKSkgeworICAgICAgICBpZiAoUmVmUHRyPEF0dHI+IGF0
dHIgPSBhdHRyaWJ1dGVEYXRhLT5hdHRySWZFeGlzdHModGhpcywgbmFtZSkpCisgICAgICAgICAg
ICBhdHRyLT5kZXRhY2hGcm9tRWxlbWVudFdpdGhWYWx1ZShhdHRyaWJ1dGVEYXRhLT5hdHRyaWJ1
dGVJdGVtKGluZGV4KS0+dmFsdWUoKSk7CisgICAgfQorCisgICAgYXR0cmlidXRlRGF0YS0+cmVt
b3ZlQXR0cmlidXRlKGluZGV4KTsKKworICAgIGlmICghaW5TeW5jaHJvbml6YXRpb25PZkxhenlB
dHRyaWJ1dGUpCisgICAgICAgIGRpZFJlbW92ZUF0dHJpYnV0ZShuYW1lKTsKK30KKwordm9pZCBF
bGVtZW50OjphZGRBdHRyaWJ1dGVJbnRlcm5hbChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBTeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUg
aW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpCit7CisgICAgQVNTRVJUKG1fYXR0cmli
dXRlRGF0YSk7CisgICAgQVNTRVJUKG1fYXR0cmlidXRlRGF0YS0+aXNNdXRhYmxlKCkpOworICAg
IGlmICghaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpCisgICAgICAgIHdpbGxNb2Rp
ZnlBdHRyaWJ1dGUobmFtZSwgbnVsbEF0b20sIHZhbHVlKTsKKyAgICBtX2F0dHJpYnV0ZURhdGEt
PmFkZEF0dHJpYnV0ZShBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKTsKKyAgICBpZiAoIWluU3luY2hy
b25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKQorICAgICAgICBkaWRBZGRBdHRyaWJ1dGUoQXR0cmli
dXRlKG5hbWUsIHZhbHVlKSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6cmVtb3ZlQXR0cmlidXRlKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSkKQEAgLTE1NTMsNyArMTU4Miw3IEBAIHZvaWQgRWxlbWVu
dDo6cmVtb3ZlQXR0cmlidXRlKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKICAgICBpZiAoaW5k
ZXggPT0gbm90Rm91bmQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG11dGFibGVBdHRyaWJ1dGVE
YXRhKCktPnJlbW92ZUF0dHJpYnV0ZShpbmRleCwgdGhpcyk7CisgICAgcmVtb3ZlQXR0cmlidXRl
SW50ZXJuYWwoaW5kZXgsIE5vdEluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKTsKIH0K
IAogdm9pZCBFbGVtZW50OjpyZW1vdmVBdHRyaWJ1dGVOUyhjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aAppbmRleCBkOWI4YzQ5Li4wODlkN2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTExOSw3ICsx
MTksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpOwogICAgIHZvaWQgc2V0U3luY2hyb25pemVk
TGF6eUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiB2
YWx1ZSk7CiAgICAgdm9pZCByZW1vdmVBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwot
ICAgIHZvaWQgcmVtb3ZlQXR0cmlidXRlKHNpemVfdCBpbmRleCk7CiAKICAgICAvLyBUeXBlZCBn
ZXR0ZXJzIGFuZCBzZXR0ZXJzIGZvciBsYW5ndWFnZSBiaW5kaW5ncy4KICAgICBpbnQgZ2V0SW50
ZWdyYWxBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkgY29uc3Q7
CkBAIC0zMTgsMTIgKzMxNyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUlkKFRyZWVTY29w
ZSosIGNvbnN0IEF0b21pY1N0cmluZyYgb2xkSWQsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3SWQp
OwogICAgIHZvaWQgdXBkYXRlTmFtZShjb25zdCBBdG9taWNTdHJpbmcmIG9sZE5hbWUsIGNvbnN0
IEF0b21pY1N0cmluZyYgbmV3TmFtZSk7CiAKLSAgICB2b2lkIHdpbGxNb2RpZnlBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IEF0b21pY1N0cmluZyYgbmV3VmFsdWUpOwotICAgIHZvaWQgd2lsbFJlbW92ZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSk7Ci0gICAgdm9p
ZCBkaWRBZGRBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJik7Ci0gICAgdm9pZCBkaWRNb2RpZnlB
dHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJik7Ci0gICAgdm9pZCBkaWRSZW1vdmVBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpOwotCiAgICAgdm9pZCByZW1vdmVDYWNoZWRIVE1MQ29sbGVj
dGlvbihIVE1MQ29sbGVjdGlvbiosIENvbGxlY3Rpb25UeXBlKTsKIAogICAgIExheW91dFNpemUg
bWluaW11bVNpemVGb3JSZXNpemluZygpIGNvbnN0OwpAQCAtNDc5LDYgKzQ3MiwxNiBAQCBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBjbGFzc0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5n
JiBuZXdDbGFzc1N0cmluZyk7CiAKIHByaXZhdGU6CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGUg
bmVlZCBmb3IgQXR0ciB0byBjYWxsIHdpbGxNb2RpZnlBdHRyaWJ1dGUvZGlkTW9kaWZ5QXR0cmli
dXRlLgorICAgIGZyaWVuZCBjbGFzcyBBdHRyOworCisgICAgZW51bSBTeW5jaHJvbml6YXRpb25P
ZkxhenlBdHRyaWJ1dGUgeyBOb3RJblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSA9IDAs
IEluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlIH07CisKKyAgICB2b2lkIGRpZEFkZEF0
dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKTsKKyAgICB2b2lkIHdpbGxNb2RpZnlBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IEF0b21pY1N0cmluZyYgbmV3VmFsdWUpOworICAgIHZvaWQgZGlkTW9kaWZ5QXR0cmlidXRlKGNv
bnN0IEF0dHJpYnV0ZSYpOworICAgIHZvaWQgZGlkUmVtb3ZlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKTsKKwogICAgIHZvaWQgdXBkYXRlUHNldWRvRWxlbWVudChQc2V1ZG9JZCwgU3R5
bGVDaGFuZ2UgPSBOb0NoYW5nZSk7CiAgICAgUGFzc1JlZlB0cjxQc2V1ZG9FbGVtZW50PiBjcmVh
dGVQc2V1ZG9FbGVtZW50SWZOZWVkZWQoUHNldWRvSWQpOwogCkBAIC00OTEsNiArNDk0LDggQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29u
c3Q7CiAKICAgICB2b2lkIHNldEF0dHJpYnV0ZUludGVybmFsKHNpemVfdCBpbmRleCwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIFN5bmNocm9uaXphdGlv
bk9mTGF6eUF0dHJpYnV0ZSk7CisgICAgdm9pZCBhZGRBdHRyaWJ1dGVJbnRlcm5hbChjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgU3luY2hyb25pemF0aW9u
T2ZMYXp5QXR0cmlidXRlKTsKKyAgICB2b2lkIHJlbW92ZUF0dHJpYnV0ZUludGVybmFsKHNpemVf
dCBpbmRleCwgU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKTsKIAogI2lmbmRlZiBOREVC
VUcKICAgICB2aXJ0dWFsIHZvaWQgZm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNp
Z25lZCBsZW5ndGgpIGNvbnN0OwpAQCAtNjUwLDEyICs2NTUsNiBAQCBpbmxpbmUgdm9pZCBFbGVt
ZW50Ojp1cGRhdGVJZChUcmVlU2NvcGUqIHNjb3BlLCBjb25zdCBBdG9taWNTdHJpbmcmIG9sZElk
LCBjb25zdAogICAgICAgICB1cGRhdGVFeHRyYU5hbWVkSXRlbVJlZ2lzdHJhdGlvbihvbGRJZCwg
bmV3SWQpOwogfQogCi1pbmxpbmUgdm9pZCBFbGVtZW50Ojp3aWxsUmVtb3ZlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCi17Ci0g
ICAgaWYgKCF2YWx1ZS5pc051bGwoKSkKLSAgICAgICAgd2lsbE1vZGlmeUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSwgbnVsbEF0b20pOwotfQotCiBpbmxpbmUgYm9vbCBFbGVtZW50OjpmYXN0SGFzQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGZh
c3RBdHRyaWJ1dGVMb29rdXBBbGxvd2VkKG5hbWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudEF0dHJpYnV0ZURhdGEuY3BwCmluZGV4IGUwNGI2NjMuLjk4MWFlNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcApAQCAtMjI2LDM3ICsyMjYsMTcg
QEAgdm9pZCBFbGVtZW50QXR0cmlidXRlRGF0YTo6ZGVzdHJveUlubGluZVN0eWxlKFN0eWxlZEVs
ZW1lbnQqIGVsZW1lbnQpCiAgICAgbV9pbmxpbmVTdHlsZURlY2wgPSAwOwogfQogCi12b2lkIEVs
ZW1lbnRBdHRyaWJ1dGVEYXRhOjphZGRBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1
dGUsIEVsZW1lbnQqIGVsZW1lbnQsIFN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSBpblN5
bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSkKK3ZvaWQgRWxlbWVudEF0dHJpYnV0ZURhdGE6
OmFkZEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkKIHsKICAgICBBU1NFUlQo
aXNNdXRhYmxlKCkpOwotCi0gICAgaWYgKGVsZW1lbnQgJiYgaW5TeW5jaHJvbml6YXRpb25PZkxh
enlBdHRyaWJ1dGUgPT0gTm90SW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpCi0gICAg
ICAgIGVsZW1lbnQtPndpbGxNb2RpZnlBdHRyaWJ1dGUoYXR0cmlidXRlLm5hbWUoKSwgbnVsbEF0
b20sIGF0dHJpYnV0ZS52YWx1ZSgpKTsKLQogICAgIG11dGFibGVBdHRyaWJ1dGVWZWN0b3IoKS5h
cHBlbmQoYXR0cmlidXRlKTsKLQotICAgIGlmIChlbGVtZW50ICYmIGluU3luY2hyb25pemF0aW9u
T2ZMYXp5QXR0cmlidXRlID09IE5vdEluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKQot
ICAgICAgICBlbGVtZW50LT5kaWRBZGRBdHRyaWJ1dGUoYXR0cmlidXRlKTsKIH0KIAotdm9pZCBF
bGVtZW50QXR0cmlidXRlRGF0YTo6cmVtb3ZlQXR0cmlidXRlKHNpemVfdCBpbmRleCwgRWxlbWVu
dCogZWxlbWVudCwgU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlIGluU3luY2hyb25pemF0
aW9uT2ZMYXp5QXR0cmlidXRlKQordm9pZCBFbGVtZW50QXR0cmlidXRlRGF0YTo6cmVtb3ZlQXR0
cmlidXRlKHNpemVfdCBpbmRleCkKIHsKICAgICBBU1NFUlQoaXNNdXRhYmxlKCkpOwogICAgIEFT
U0VSVChpbmRleCA8IGxlbmd0aCgpKTsKLQotICAgIEF0dHJpYnV0ZSYgYXR0cmlidXRlID0gbXV0
YWJsZUF0dHJpYnV0ZVZlY3RvcigpLmF0KGluZGV4KTsKLSAgICBRdWFsaWZpZWROYW1lIG5hbWUg
PSBhdHRyaWJ1dGUubmFtZSgpOwotCi0gICAgaWYgKGVsZW1lbnQgJiYgaW5TeW5jaHJvbml6YXRp
b25PZkxhenlBdHRyaWJ1dGUgPT0gTm90SW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUp
Ci0gICAgICAgIGVsZW1lbnQtPndpbGxSZW1vdmVBdHRyaWJ1dGUobmFtZSwgYXR0cmlidXRlLnZh
bHVlKCkpOwotCi0gICAgaWYgKFJlZlB0cjxBdHRyPiBhdHRyID0gYXR0cklmRXhpc3RzKGVsZW1l
bnQsIG5hbWUpKQotICAgICAgICBhdHRyLT5kZXRhY2hGcm9tRWxlbWVudFdpdGhWYWx1ZShhdHRy
aWJ1dGUudmFsdWUoKSk7Ci0KICAgICBtdXRhYmxlQXR0cmlidXRlVmVjdG9yKCkucmVtb3ZlKGlu
ZGV4KTsKLQotICAgIGlmIChlbGVtZW50ICYmIGluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmli
dXRlID09IE5vdEluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKQotICAgICAgICBlbGVt
ZW50LT5kaWRSZW1vdmVBdHRyaWJ1dGUobmFtZSk7CiB9CiAKIGJvb2wgRWxlbWVudEF0dHJpYnV0
ZURhdGE6OmlzRXF1aXZhbGVudChjb25zdCBFbGVtZW50QXR0cmlidXRlRGF0YSogb3RoZXIpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5oCmluZGV4IDk3ZGZm
ZDEuLjhiODQ4ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmli
dXRlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5o
CkBAIC0zOCw4ICszOCw2IEBAIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBJbW11dGFibGVFbGVtZW50
QXR0cmlidXRlRGF0YTsKIGNsYXNzIE11dGFibGVFbGVtZW50QXR0cmlidXRlRGF0YTsKIAotZW51
bSBTeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUgeyBOb3RJblN5bmNocm9uaXphdGlvbk9m
TGF6eUF0dHJpYnV0ZSwgSW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUgfTsKLQogY2xh
c3MgRWxlbWVudEF0dHJpYnV0ZURhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxFbGVtZW50QXR0cmli
dXRlRGF0YT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtODMs
OSArODEsOCBAQCBwdWJsaWM6CiAgICAgc2l6ZV90IGdldEF0dHJpYnV0ZUl0ZW1JbmRleChjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUsIGJvb2wgc2hvdWxkSWdub3JlQXR0cmlidXRlQ2FzZSkgY29u
c3Q7CiAKICAgICAvLyBUaGVzZSBmdW5jdGlvbnMgZG8gbm8gZXJyb3IgY2hlY2tpbmcuCi0gICAg
dm9pZCBhZGRBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiwgRWxlbWVudCosIFN5bmNocm9uaXph
dGlvbk9mTGF6eUF0dHJpYnV0ZSA9IE5vdEluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRl
KTsKLSAgICB2b2lkIHJlbW92ZUF0dHJpYnV0ZShzaXplX3QgaW5kZXgsIEVsZW1lbnQqLCBTeW5j
aHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUgPSBOb3RJblN5bmNocm9uaXphdGlvbk9mTGF6eUF0
dHJpYnV0ZSk7Ci0gICAgUGFzc1JlZlB0cjxBdHRyPiB0YWtlQXR0cmlidXRlKHNpemVfdCBpbmRl
eCwgRWxlbWVudCopOworICAgIHZvaWQgYWRkQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpOwor
ICAgIHZvaWQgcmVtb3ZlQXR0cmlidXRlKHNpemVfdCBpbmRleCk7CiAKICAgICBib29sIGhhc0lE
KCkgY29uc3QgeyByZXR1cm4gIW1faWRGb3JTdHlsZVJlc29sdXRpb24uaXNOdWxsKCk7IH0KICAg
ICBib29sIGhhc0NsYXNzKCkgY29uc3QgeyByZXR1cm4gIW1fY2xhc3NOYW1lcy5pc051bGwoKTsg
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168274</attachid>
            <date>2012-10-11 14:06:27 -0700</date>
            <delta_ts>2012-10-11 15:51:34 -0700</delta_ts>
            <desc>please merge?</desc>
            <filename>land-98987-3.diff</filename>
            <type>text/plain</type>
            <size>13001</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhYjBjYjRmLi44MzAxZDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTItMTAtMTEgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAg
ICAgIEVsZW1lbnRBdHRyaWJ1dGVEYXRhIHNob3VsZG4ndCBiZSBtYW5hZ2luZyBFbGVtZW50J3Mg
Y2FsbGJhY2tzLgorICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi85ODk4Nz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCisKKyAgICAgICAgRGlzcGF0Y2ggdGhlIGZv
bGxvd2luZyBhdHRyaWJ1dGUtcmVsYXRlZCBFbGVtZW50IGNhbGxiYWNrcyBmcm9tIHdpdGhpbiBF
bGVtZW50CisgICAgICAgIGluc3RlYWQgb2YgRWxlbWVudEF0dHJpYnV0ZURhdGEuIEFsc28gbWFk
ZSB0aGVtIHByaXZhdGUuCisKKyAgICAgICAgICAgIC0gd2lsbE1vZGlmeUF0dHJpYnV0ZQorICAg
ICAgICAgICAgLSBkaWRNb2RpZnlBdHRyaWJ1dGUKKyAgICAgICAgICAgIC0gZGlkQWRkQXR0cmli
dXRlCisgICAgICAgICAgICAtIGRpZFJlbW92ZUF0dHJpYnV0ZQorCisgICAgICAgIE5vIGJlaGF2
aW9yIGNoYW5nZSwganVzdCBtYWtpbmcgRWxlbWVudEF0dHJpYnV0ZURhdGEgYSBiaXQgZHVtYmVy
IChhIGdvb2QgdGhpbmcuKQorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6ZGV0YWNoQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6OnJlbW92ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRB
dHRyaWJ1dGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpyZW1vdmVBdHRy
aWJ1dGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjphZGRBdHRyaWJ1dGVJ
bnRlcm5hbCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vRWxlbWVu
dEF0dHJpYnV0ZURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudEF0dHJpYnV0ZURh
dGE6OmFkZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50QXR0cmlidXRlRGF0
YTo6cmVtb3ZlQXR0cmlidXRlKToKKyAgICAgICAgKiBkb20vRWxlbWVudEF0dHJpYnV0ZURhdGEu
aDoKKwogMjAxMi0xMC0xMSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZWQgQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCmluZGV4IGRkMTMxNjhkLi43Y2JhNTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0y
MTEsNyArMjExLDcgQEAgUGFzc1JlZlB0cjxBdHRyPiBFbGVtZW50OjpkZXRhY2hBdHRyaWJ1dGUo
c2l6ZV90IGluZGV4KQogICAgIGVsc2UKICAgICAgICAgYXR0ciA9IEF0dHI6OmNyZWF0ZShkb2N1
bWVudCgpLCBhdHRyaWJ1dGUtPm5hbWUoKSwgYXR0cmlidXRlLT52YWx1ZSgpKTsKIAotICAgIG11
dGFibGVBdHRyaWJ1dGVEYXRhKCktPnJlbW92ZUF0dHJpYnV0ZShpbmRleCwgdGhpcyk7CisgICAg
cmVtb3ZlQXR0cmlidXRlSW50ZXJuYWwoaW5kZXgsIE5vdEluU3luY2hyb25pemF0aW9uT2ZMYXp5
QXR0cmlidXRlKTsKICAgICByZXR1cm4gYXR0ci5yZWxlYXNlKCk7CiB9CiAKQEAgLTIyMCwxNCAr
MjIwLDExIEBAIHZvaWQgRWxlbWVudDo6cmVtb3ZlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUpCiAgICAgaWYgKCFhdHRyaWJ1dGVEYXRhKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGlmIChSZWZQdHI8QXR0cj4gYXR0ciA9IGF0dHJJZkV4aXN0cyhuYW1lKSkKLSAgICAgICAg
YXR0ci0+ZGV0YWNoRnJvbUVsZW1lbnRXaXRoVmFsdWUoYXR0ci0+dmFsdWUoKSk7Ci0KICAgICBz
aXplX3QgaW5kZXggPSBhdHRyaWJ1dGVEYXRhKCktPmdldEF0dHJpYnV0ZUl0ZW1JbmRleChuYW1l
KTsKICAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG11
dGFibGVBdHRyaWJ1dGVEYXRhKCktPnJlbW92ZUF0dHJpYnV0ZShpbmRleCwgdGhpcyk7CisgICAg
cmVtb3ZlQXR0cmlidXRlSW50ZXJuYWwoaW5kZXgsIE5vdEluU3luY2hyb25pemF0aW9uT2ZMYXp5
QXR0cmlidXRlKTsKIH0KIAogdm9pZCBFbGVtZW50OjpzZXRCb29sZWFuQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGJvb2wgdmFsdWUpCkBAIC02NjYsMzIgKzY2MywzNSBAQCB2
b2lkIEVsZW1lbnQ6OnNldFN5bmNocm9uaXplZExhenlBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbQogICAgIHNldEF0dHJpYnV0ZUludGVybmFsKG11dGFibGVB
dHRyaWJ1dGVEYXRhKCktPmdldEF0dHJpYnV0ZUl0ZW1JbmRleChuYW1lKSwgbmFtZSwgdmFsdWUs
IEluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKTsKIH0KIAotaW5saW5lIHZvaWQgRWxl
bWVudDo6c2V0QXR0cmlidXRlSW50ZXJuYWwoc2l6ZV90IGluZGV4LCBjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBTeW5jaHJvbml6YXRpb25PZkxh
enlBdHRyaWJ1dGUgaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpCitpbmxpbmUgdm9p
ZCBFbGVtZW50OjpzZXRBdHRyaWJ1dGVJbnRlcm5hbChzaXplX3QgaW5kZXgsIGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3VmFsdWUsIFN5bmNocm9uaXph
dGlvbk9mTGF6eUF0dHJpYnV0ZSBpblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSkKIHsK
ICAgICBFbGVtZW50QXR0cmlidXRlRGF0YSogYXR0cmlidXRlRGF0YSA9IG11dGFibGVBdHRyaWJ1
dGVEYXRhKCk7CiAKLSAgICBBdHRyaWJ1dGUqIG9sZCA9IGluZGV4ICE9IG5vdEZvdW5kID8gYXR0
cmlidXRlRGF0YS0+YXR0cmlidXRlSXRlbShpbmRleCkgOiAwOwotICAgIGlmICh2YWx1ZS5pc051
bGwoKSkgewotICAgICAgICBpZiAob2xkKQotICAgICAgICAgICAgYXR0cmlidXRlRGF0YS0+cmVt
b3ZlQXR0cmlidXRlKGluZGV4LCB0aGlzLCBpblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0
ZSk7CisgICAgQXR0cmlidXRlKiBleGlzdGluZ0F0dHJpYnV0ZSA9IGluZGV4ICE9IG5vdEZvdW5k
ID8gYXR0cmlidXRlRGF0YS0+YXR0cmlidXRlSXRlbShpbmRleCkgOiAwOworICAgIGlmIChuZXdW
YWx1ZS5pc051bGwoKSkgeworICAgICAgICBpZiAoZXhpc3RpbmdBdHRyaWJ1dGUpCisgICAgICAg
ICAgICByZW1vdmVBdHRyaWJ1dGVJbnRlcm5hbChpbmRleCwgaW5TeW5jaHJvbml6YXRpb25PZkxh
enlBdHRyaWJ1dGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFvbGQpIHsK
LSAgICAgICAgYXR0cmlidXRlRGF0YS0+YWRkQXR0cmlidXRlKEF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSksIHRoaXMsIGluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKTsKKyAgICBpZiAoIWV4
aXN0aW5nQXR0cmlidXRlKSB7CisgICAgICAgIGFkZEF0dHJpYnV0ZUludGVybmFsKG5hbWUsIG5l
d1ZhbHVlLCBpblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBpZiAoaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUgPT0g
Tm90SW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpCi0gICAgICAgIHdpbGxNb2RpZnlB
dHRyaWJ1dGUobmFtZSwgb2xkLT52YWx1ZSgpLCB2YWx1ZSk7CisgICAgaWYgKCFpblN5bmNocm9u
aXphdGlvbk9mTGF6eUF0dHJpYnV0ZSkKKyAgICAgICAgd2lsbE1vZGlmeUF0dHJpYnV0ZShuYW1l
LCBleGlzdGluZ0F0dHJpYnV0ZS0+dmFsdWUoKSwgbmV3VmFsdWUpOwogCisgICAgLy8gSWYgdGhl
cmUgaXMgYW4gQXR0ciBub2RlIGhvb2tlZCB0byB0aGlzIGF0dHJpYnV0ZSwgdGhlIEF0dHI6OnNl
dFZhbHVlKCkgY2FsbCBiZWxvdworICAgIC8vIHdpbGwgd3JpdGUgaW50byB0aGUgRWxlbWVudEF0
dHJpYnV0ZURhdGEuCisgICAgLy8gRklYTUU6IFJlZmFjdG9yIHRoaXMgc28gaXQgbWFrZXMgc29t
ZSBzZW5zZS4KICAgICBpZiAoUmVmUHRyPEF0dHI+IGF0dHJOb2RlID0gYXR0cklmRXhpc3RzKG5h
bWUpKQotICAgICAgICBhdHRyTm9kZS0+c2V0VmFsdWUodmFsdWUpOworICAgICAgICBhdHRyTm9k
ZS0+c2V0VmFsdWUobmV3VmFsdWUpOwogICAgIGVsc2UKLSAgICAgICAgb2xkLT5zZXRWYWx1ZSh2
YWx1ZSk7CisgICAgICAgIGV4aXN0aW5nQXR0cmlidXRlLT5zZXRWYWx1ZShuZXdWYWx1ZSk7CiAK
LSAgICBpZiAoaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUgPT0gTm90SW5TeW5jaHJv
bml6YXRpb25PZkxhenlBdHRyaWJ1dGUpCi0gICAgICAgIGRpZE1vZGlmeUF0dHJpYnV0ZShBdHRy
aWJ1dGUob2xkLT5uYW1lKCksIG9sZC0+dmFsdWUoKSkpOworICAgIGlmICghaW5TeW5jaHJvbml6
YXRpb25PZkxhenlBdHRyaWJ1dGUpCisgICAgICAgIGRpZE1vZGlmeUF0dHJpYnV0ZSgqZXhpc3Rp
bmdBdHRyaWJ1dGUpOwogfQogCiB2b2lkIEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
QXR0cmlidXRlJiBhdHRyaWJ1dGUpCkBAIC0xNTI3LDExICsxNTI3LDQwIEBAIHZvaWQgRWxlbWVu
dDo6c2V0QXR0cmlidXRlTlMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0
IEF0b21pY1N0cmluCiAgICAgc2V0QXR0cmlidXRlKHBhcnNlZE5hbWUsIHZhbHVlKTsKIH0KIAot
dm9pZCBFbGVtZW50OjpyZW1vdmVBdHRyaWJ1dGUoc2l6ZV90IGluZGV4KQordm9pZCBFbGVtZW50
OjpyZW1vdmVBdHRyaWJ1dGVJbnRlcm5hbChzaXplX3QgaW5kZXgsIFN5bmNocm9uaXphdGlvbk9m
TGF6eUF0dHJpYnV0ZSBpblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSkKIHsKLSAgICBB
U1NFUlQoYXR0cmlidXRlRGF0YSgpKTsKLSAgICBBU1NFUlQoaW5kZXggPD0gYXR0cmlidXRlQ291
bnQoKSk7Ci0gICAgbXV0YWJsZUF0dHJpYnV0ZURhdGEoKS0+cmVtb3ZlQXR0cmlidXRlKGluZGV4
LCB0aGlzKTsKKyAgICBBU1NFUlQoaW5kZXggPCBhdHRyaWJ1dGVDb3VudCgpKTsKKworICAgIEVs
ZW1lbnRBdHRyaWJ1dGVEYXRhKiBhdHRyaWJ1dGVEYXRhID0gbXV0YWJsZUF0dHJpYnV0ZURhdGEo
KTsKKworICAgIFF1YWxpZmllZE5hbWUgbmFtZSA9IGF0dHJpYnV0ZURhdGEtPmF0dHJpYnV0ZUl0
ZW0oaW5kZXgpLT5uYW1lKCk7CisgICAgQXRvbWljU3RyaW5nIHZhbHVlQmVpbmdSZW1vdmVkID0g
YXR0cmlidXRlRGF0YS0+YXR0cmlidXRlSXRlbShpbmRleCktPnZhbHVlKCk7CisKKyAgICBpZiAo
IWluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKSB7CisgICAgICAgIGlmICghdmFsdWVC
ZWluZ1JlbW92ZWQuaXNOdWxsKCkpCisgICAgICAgICAgICB3aWxsTW9kaWZ5QXR0cmlidXRlKG5h
bWUsIHZhbHVlQmVpbmdSZW1vdmVkLCBudWxsQXRvbSk7CisgICAgfQorCisgICAgaWYgKGhhc0F0
dHJMaXN0KCkpIHsKKyAgICAgICAgaWYgKFJlZlB0cjxBdHRyPiBhdHRyID0gYXR0cmlidXRlRGF0
YS0+YXR0cklmRXhpc3RzKHRoaXMsIG5hbWUpKQorICAgICAgICAgICAgYXR0ci0+ZGV0YWNoRnJv
bUVsZW1lbnRXaXRoVmFsdWUoYXR0cmlidXRlRGF0YS0+YXR0cmlidXRlSXRlbShpbmRleCktPnZh
bHVlKCkpOworICAgIH0KKworICAgIGF0dHJpYnV0ZURhdGEtPnJlbW92ZUF0dHJpYnV0ZShpbmRl
eCk7CisKKyAgICBpZiAoIWluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKQorICAgICAg
ICBkaWRSZW1vdmVBdHRyaWJ1dGUobmFtZSk7Cit9CisKK3ZvaWQgRWxlbWVudDo6YWRkQXR0cmli
dXRlSW50ZXJuYWwoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5n
JiB2YWx1ZSwgU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlIGluU3luY2hyb25pemF0aW9u
T2ZMYXp5QXR0cmlidXRlKQoreworICAgIEFTU0VSVChtX2F0dHJpYnV0ZURhdGEpOworICAgIEFT
U0VSVChtX2F0dHJpYnV0ZURhdGEtPmlzTXV0YWJsZSgpKTsKKyAgICBpZiAoIWluU3luY2hyb25p
emF0aW9uT2ZMYXp5QXR0cmlidXRlKQorICAgICAgICB3aWxsTW9kaWZ5QXR0cmlidXRlKG5hbWUs
IG51bGxBdG9tLCB2YWx1ZSk7CisgICAgbV9hdHRyaWJ1dGVEYXRhLT5hZGRBdHRyaWJ1dGUoQXR0
cmlidXRlKG5hbWUsIHZhbHVlKSk7CisgICAgaWYgKCFpblN5bmNocm9uaXphdGlvbk9mTGF6eUF0
dHJpYnV0ZSkKKyAgICAgICAgZGlkQWRkQXR0cmlidXRlKEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkp
OwogfQogCiB2b2lkIEVsZW1lbnQ6OnJlbW92ZUF0dHJpYnV0ZShjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUpCkBAIC0xNTQ0LDcgKzE1NzMsNyBAQCB2b2lkIEVsZW1lbnQ6OnJlbW92ZUF0dHJpYnV0
ZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCiAgICAgaWYgKGluZGV4ID09IG5vdEZvdW5kKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtdXRhYmxlQXR0cmlidXRlRGF0YSgpLT5yZW1vdmVBdHRy
aWJ1dGUoaW5kZXgsIHRoaXMpOworICAgIHJlbW92ZUF0dHJpYnV0ZUludGVybmFsKGluZGV4LCBO
b3RJblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6
cmVtb3ZlQXR0cmlidXRlTlMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0
IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggYzcwODc3NS4u
NThlMjk3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0xMTgsNyArMTE4LDYgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlKTsKICAgICB2b2lkIHNldFN5bmNocm9uaXplZExhenlBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpOwogICAgIHZvaWQg
cmVtb3ZlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKLSAgICB2b2lkIHJlbW92ZUF0
dHJpYnV0ZShzaXplX3QgaW5kZXgpOwogCiAgICAgLy8gVHlwZWQgZ2V0dGVycyBhbmQgc2V0dGVy
cyBmb3IgbGFuZ3VhZ2UgYmluZGluZ3MuCiAgICAgaW50IGdldEludGVncmFsQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIGNvbnN0OwpAQCAtMzE3LDEyICszMTYs
NiBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVJZChUcmVlU2NvcGUqLCBjb25zdCBBdG9taWNT
dHJpbmcmIG9sZElkLCBjb25zdCBBdG9taWNTdHJpbmcmIG5ld0lkKTsKICAgICB2b2lkIHVwZGF0
ZU5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBvbGROYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIG5l
d05hbWUpOwogCi0gICAgdm9pZCB3aWxsTW9kaWZ5QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5l
d1ZhbHVlKTsKLSAgICB2b2lkIHdpbGxSZW1vdmVBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpOwotICAgIHZvaWQgZGlkQWRkQXR0cmlidXRl
KGNvbnN0IEF0dHJpYnV0ZSYpOwotICAgIHZvaWQgZGlkTW9kaWZ5QXR0cmlidXRlKGNvbnN0IEF0
dHJpYnV0ZSYpOwotICAgIHZvaWQgZGlkUmVtb3ZlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmKTsKLQogICAgIHZvaWQgcmVtb3ZlQ2FjaGVkSFRNTENvbGxlY3Rpb24oSFRNTENvbGxlY3Rp
b24qLCBDb2xsZWN0aW9uVHlwZSk7CiAKICAgICBMYXlvdXRTaXplIG1pbmltdW1TaXplRm9yUmVz
aXppbmcoKSBjb25zdDsKQEAgLTQ3NSw2ICs0NjgsMTYgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQg
Y2xhc3NBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbmV3Q2xhc3NTdHJpbmcp
OwogCiBwcml2YXRlOgorICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhlIG5lZWQgZm9yIEF0dHIgdG8g
Y2FsbCB3aWxsTW9kaWZ5QXR0cmlidXRlL2RpZE1vZGlmeUF0dHJpYnV0ZS4KKyAgICBmcmllbmQg
Y2xhc3MgQXR0cjsKKworICAgIGVudW0gU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlIHsg
Tm90SW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUgPSAwLCBJblN5bmNocm9uaXphdGlv
bk9mTGF6eUF0dHJpYnV0ZSB9OworCisgICAgdm9pZCBkaWRBZGRBdHRyaWJ1dGUoY29uc3QgQXR0
cmlidXRlJik7CisgICAgdm9pZCB3aWxsTW9kaWZ5QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5l
d1ZhbHVlKTsKKyAgICB2b2lkIGRpZE1vZGlmeUF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKTsK
KyAgICB2b2lkIGRpZFJlbW92ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CisKICAg
ICB2b2lkIHVwZGF0ZUludmFsaWRBdHRyaWJ1dGVzKCkgY29uc3Q7CiAKICAgICB2b2lkIHNjcm9s
bEJ5VW5pdHMoaW50IHVuaXRzLCBTY3JvbGxHcmFudWxhcml0eSk7CkBAIC00ODQsNiArNDg3LDgg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSkg
Y29uc3Q7CiAKICAgICB2b2lkIHNldEF0dHJpYnV0ZUludGVybmFsKHNpemVfdCBpbmRleCwgY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIFN5bmNocm9uaXph
dGlvbk9mTGF6eUF0dHJpYnV0ZSk7CisgICAgdm9pZCBhZGRBdHRyaWJ1dGVJbnRlcm5hbChjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgU3luY2hyb25pemF0
aW9uT2ZMYXp5QXR0cmlidXRlKTsKKyAgICB2b2lkIHJlbW92ZUF0dHJpYnV0ZUludGVybmFsKHNp
emVfdCBpbmRleCwgU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKTsKIAogI2lmbmRlZiBO
REVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1
bnNpZ25lZCBsZW5ndGgpIGNvbnN0OwpAQCAtNjQzLDEyICs2NDgsNiBAQCBpbmxpbmUgdm9pZCBF
bGVtZW50Ojp1cGRhdGVJZChUcmVlU2NvcGUqIHNjb3BlLCBjb25zdCBBdG9taWNTdHJpbmcmIG9s
ZElkLCBjb25zdAogICAgICAgICB1cGRhdGVFeHRyYU5hbWVkSXRlbVJlZ2lzdHJhdGlvbihvbGRJ
ZCwgbmV3SWQpOwogfQogCi1pbmxpbmUgdm9pZCBFbGVtZW50Ojp3aWxsUmVtb3ZlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCi17
Ci0gICAgaWYgKCF2YWx1ZS5pc051bGwoKSkKLSAgICAgICAgd2lsbE1vZGlmeUF0dHJpYnV0ZShu
YW1lLCB2YWx1ZSwgbnVsbEF0b20pOwotfQotCiBpbmxpbmUgYm9vbCBFbGVtZW50OjpmYXN0SGFz
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KGZhc3RBdHRyaWJ1dGVMb29rdXBBbGxvd2VkKG5hbWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwCmluZGV4IGUwNGI2NjMuLjk4MWFlNTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcApAQCAtMjI2LDM3ICsyMjYs
MTcgQEAgdm9pZCBFbGVtZW50QXR0cmlidXRlRGF0YTo6ZGVzdHJveUlubGluZVN0eWxlKFN0eWxl
ZEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgbV9pbmxpbmVTdHlsZURlY2wgPSAwOwogfQogCi12b2lk
IEVsZW1lbnRBdHRyaWJ1dGVEYXRhOjphZGRBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRy
aWJ1dGUsIEVsZW1lbnQqIGVsZW1lbnQsIFN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSBp
blN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSkKK3ZvaWQgRWxlbWVudEF0dHJpYnV0ZURh
dGE6OmFkZEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkKIHsKICAgICBBU1NF
UlQoaXNNdXRhYmxlKCkpOwotCi0gICAgaWYgKGVsZW1lbnQgJiYgaW5TeW5jaHJvbml6YXRpb25P
ZkxhenlBdHRyaWJ1dGUgPT0gTm90SW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpCi0g
ICAgICAgIGVsZW1lbnQtPndpbGxNb2RpZnlBdHRyaWJ1dGUoYXR0cmlidXRlLm5hbWUoKSwgbnVs
bEF0b20sIGF0dHJpYnV0ZS52YWx1ZSgpKTsKLQogICAgIG11dGFibGVBdHRyaWJ1dGVWZWN0b3Io
KS5hcHBlbmQoYXR0cmlidXRlKTsKLQotICAgIGlmIChlbGVtZW50ICYmIGluU3luY2hyb25pemF0
aW9uT2ZMYXp5QXR0cmlidXRlID09IE5vdEluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRl
KQotICAgICAgICBlbGVtZW50LT5kaWRBZGRBdHRyaWJ1dGUoYXR0cmlidXRlKTsKIH0KIAotdm9p
ZCBFbGVtZW50QXR0cmlidXRlRGF0YTo6cmVtb3ZlQXR0cmlidXRlKHNpemVfdCBpbmRleCwgRWxl
bWVudCogZWxlbWVudCwgU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlIGluU3luY2hyb25p
emF0aW9uT2ZMYXp5QXR0cmlidXRlKQordm9pZCBFbGVtZW50QXR0cmlidXRlRGF0YTo6cmVtb3Zl
QXR0cmlidXRlKHNpemVfdCBpbmRleCkKIHsKICAgICBBU1NFUlQoaXNNdXRhYmxlKCkpOwogICAg
IEFTU0VSVChpbmRleCA8IGxlbmd0aCgpKTsKLQotICAgIEF0dHJpYnV0ZSYgYXR0cmlidXRlID0g
bXV0YWJsZUF0dHJpYnV0ZVZlY3RvcigpLmF0KGluZGV4KTsKLSAgICBRdWFsaWZpZWROYW1lIG5h
bWUgPSBhdHRyaWJ1dGUubmFtZSgpOwotCi0gICAgaWYgKGVsZW1lbnQgJiYgaW5TeW5jaHJvbml6
YXRpb25PZkxhenlBdHRyaWJ1dGUgPT0gTm90SW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1
dGUpCi0gICAgICAgIGVsZW1lbnQtPndpbGxSZW1vdmVBdHRyaWJ1dGUobmFtZSwgYXR0cmlidXRl
LnZhbHVlKCkpOwotCi0gICAgaWYgKFJlZlB0cjxBdHRyPiBhdHRyID0gYXR0cklmRXhpc3RzKGVs
ZW1lbnQsIG5hbWUpKQotICAgICAgICBhdHRyLT5kZXRhY2hGcm9tRWxlbWVudFdpdGhWYWx1ZShh
dHRyaWJ1dGUudmFsdWUoKSk7Ci0KICAgICBtdXRhYmxlQXR0cmlidXRlVmVjdG9yKCkucmVtb3Zl
KGluZGV4KTsKLQotICAgIGlmIChlbGVtZW50ICYmIGluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0
cmlidXRlID09IE5vdEluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKQotICAgICAgICBl
bGVtZW50LT5kaWRSZW1vdmVBdHRyaWJ1dGUobmFtZSk7CiB9CiAKIGJvb2wgRWxlbWVudEF0dHJp
YnV0ZURhdGE6OmlzRXF1aXZhbGVudChjb25zdCBFbGVtZW50QXR0cmlidXRlRGF0YSogb3RoZXIp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURh
dGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5oCmluZGV4IDk3
ZGZmZDEuLjhiODQ4ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0
cmlidXRlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0
YS5oCkBAIC0zOCw4ICszOCw2IEBAIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBJbW11dGFibGVFbGVt
ZW50QXR0cmlidXRlRGF0YTsKIGNsYXNzIE11dGFibGVFbGVtZW50QXR0cmlidXRlRGF0YTsKIAot
ZW51bSBTeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUgeyBOb3RJblN5bmNocm9uaXphdGlv
bk9mTGF6eUF0dHJpYnV0ZSwgSW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUgfTsKLQog
Y2xhc3MgRWxlbWVudEF0dHJpYnV0ZURhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxFbGVtZW50QXR0
cmlidXRlRGF0YT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAt
ODMsOSArODEsOCBAQCBwdWJsaWM6CiAgICAgc2l6ZV90IGdldEF0dHJpYnV0ZUl0ZW1JbmRleChj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGJvb2wgc2hvdWxkSWdub3JlQXR0cmlidXRlQ2FzZSkg
Y29uc3Q7CiAKICAgICAvLyBUaGVzZSBmdW5jdGlvbnMgZG8gbm8gZXJyb3IgY2hlY2tpbmcuCi0g
ICAgdm9pZCBhZGRBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiwgRWxlbWVudCosIFN5bmNocm9u
aXphdGlvbk9mTGF6eUF0dHJpYnV0ZSA9IE5vdEluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmli
dXRlKTsKLSAgICB2b2lkIHJlbW92ZUF0dHJpYnV0ZShzaXplX3QgaW5kZXgsIEVsZW1lbnQqLCBT
eW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUgPSBOb3RJblN5bmNocm9uaXphdGlvbk9mTGF6
eUF0dHJpYnV0ZSk7Ci0gICAgUGFzc1JlZlB0cjxBdHRyPiB0YWtlQXR0cmlidXRlKHNpemVfdCBp
bmRleCwgRWxlbWVudCopOworICAgIHZvaWQgYWRkQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYp
OworICAgIHZvaWQgcmVtb3ZlQXR0cmlidXRlKHNpemVfdCBpbmRleCk7CiAKICAgICBib29sIGhh
c0lEKCkgY29uc3QgeyByZXR1cm4gIW1faWRGb3JTdHlsZVJlc29sdXRpb24uaXNOdWxsKCk7IH0K
ICAgICBib29sIGhhc0NsYXNzKCkgY29uc3QgeyByZXR1cm4gIW1fY2xhc3NOYW1lcy5pc051bGwo
KTsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>