<?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>99646</bug_id>
          
          <creation_ts>2012-10-17 15:30:46 -0700</creation_ts>
          <short_desc>Use virtual dispatch to create ContentData renderers</short_desc>
          <delta_ts>2012-10-18 17:46: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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>99498</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Elliott Sprehn">esprehn</reporter>
          <assigned_to name="Elliott Sprehn">esprehn</assigned_to>
          <cc>ap</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>744704</commentid>
    <comment_count>0</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-17 15:30:46 -0700</bug_when>
    <thetext>Use virtual dispatch to create ContentData renderers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744714</commentid>
    <comment_count>1</comment_count>
      <attachid>169277</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-17 15:40:02 -0700</bug_when>
    <thetext>Created attachment 169277
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744718</commentid>
    <comment_count>2</comment_count>
      <attachid>169277</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-17 15:44:37 -0700</bug_when>
    <thetext>Comment on attachment 169277
Patch

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

LGTM.

&gt; Source/WebCore/rendering/style/ContentData.cpp:88
&gt; +    RenderObject* renderer = new (doc-&gt;renderArena()) RenderTextFragment(doc /* anonymous object */, m_text.impl());

I don&apos;t think the /* anonymous object */ comment is particularly helpful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744721</commentid>
    <comment_count>3</comment_count>
      <attachid>169281</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-17 15:46:11 -0700</bug_when>
    <thetext>Created attachment 169281
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744722</commentid>
    <comment_count>4</comment_count>
      <attachid>169277</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-17 15:46:39 -0700</bug_when>
    <thetext>Comment on attachment 169277
Patch

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

&gt;&gt; Source/WebCore/rendering/style/ContentData.cpp:88
&gt;&gt; +    RenderObject* renderer = new (doc-&gt;renderArena()) RenderTextFragment(doc /* anonymous object */, m_text.impl());
&gt; 
&gt; I don&apos;t think the /* anonymous object */ comment is particularly helpful.

Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744771</commentid>
    <comment_count>5</comment_count>
      <attachid>169281</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 16:35:31 -0700</bug_when>
    <thetext>Comment on attachment 169281
Patch for landing

Clearing flags on attachment: 169281

Committed r131666: &lt;http://trac.webkit.org/changeset/131666&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744772</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 16:35:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745770</commentid>
    <comment_count>7</comment_count>
      <attachid>169281</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-18 17:20:45 -0700</bug_when>
    <thetext>Comment on attachment 169281
Patch for landing

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

&gt; Source/WebCore/ChangeLog:15
&gt; +        Previously we switched over the StyleContentType which required a
&gt; +        case for CONTENT_NONE and made the code look like it could return
&gt; +        null, but this case is actually impossible because no ContentData

Don&apos;t we usually go in the opposite direction, de-virtualizing calls for better performance? A switch has better jump prediction than virtual dispatch.

I didn&apos;t look at this specific case deeply, but this makes me wonder what kind of performance testing was performed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745774</commentid>
    <comment_count>8</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-18 17:25:59 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 169281 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169281&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:15
&gt; &gt; +        Previously we switched over the StyleContentType which required a
&gt; &gt; +        case for CONTENT_NONE and made the code look like it could return
&gt; &gt; +        null, but this case is actually impossible because no ContentData
&gt; 
&gt; Don&apos;t we usually go in the opposite direction, de-virtualizing calls for better performance? A switch has better jump prediction than virtual dispatch.
&gt; 
&gt; I didn&apos;t look at this specific case deeply, but this makes me wonder what kind of performance testing was performed.

There was already a virtual call in there from type() which is what the switch was over. I didn&apos;t do any perf testing on this because I can&apos;t imagine that having no switch and the same number of virtual calls is slower. :)

See the &quot;switch (content-&gt;type()) {&quot; that was deleted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745795</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-18 17:46:49 -0700</bug_when>
    <thetext>Thank you for the explanation.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169277</attachid>
            <date>2012-10-17 15:40:02 -0700</date>
            <delta_ts>2012-10-17 15:46:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99646-20121017153849.patch</filename>
            <type>text/plain</type>
            <size>11016</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDYxYjIxZTY3MGUwNjRh
MDM1NjA4OWViMGZhMDE4YWFlNDk2NWRmNC4uODg4Y2RkMmEzN2NhNGI2YWMwYTdkMTQwZGNjMzFl
Y2E4Zjk4YjVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTEwLTE3ICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFVzZSB2aXJ0dWFs
IGRpc3BhdGNoIHRvIGNyZWF0ZSBDb250ZW50RGF0YSByZW5kZXJlcnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NjQ2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29udGVudERhdGEgYXJlIGNvbmNlcHR1
YWxseSB2ZXJ5IHNpbWlsYXIgdG8gTm9kZXMgYW5kIHdlIGNhbiB1c2UKKyAgICAgICAgdGhlIHNh
bWUgY3JlYXRlUmVuZGVyZXIgcGF0dGVybiBvbiB0aGVtIHRvIHNpbXBsaWZ5IGNyZWF0aW5nCisg
ICAgICAgIHJlbmRlcmVycyBmb3IgZ2VuZXJhdGVkIGNvbnRlbnQuIE5vdyBlYWNoIENvbnRlbnRE
YXRhIGNsYXNzIGtub3dzCisgICAgICAgIGhvdyB0byBjcmVhdGUgaXRzIG93biByZW5kZXJlci4K
KworICAgICAgICBQcmV2aW91c2x5IHdlIHN3aXRjaGVkIG92ZXIgdGhlIFN0eWxlQ29udGVudFR5
cGUgd2hpY2ggcmVxdWlyZWQgYQorICAgICAgICBjYXNlIGZvciBDT05URU5UX05PTkUgYW5kIG1h
ZGUgdGhlIGNvZGUgbG9vayBsaWtlIGl0IGNvdWxkIHJldHVybgorICAgICAgICBudWxsLCBidXQg
dGhpcyBjYXNlIGlzIGFjdHVhbGx5IGltcG9zc2libGUgYmVjYXVzZSBubyBDb250ZW50RGF0YQor
ICAgICAgICBjbGFzcyBldmVyIGhhcyBhIHR5cGUgb2YgQ09OVEVOVF9OT05FIGFuZCBubyBudWxs
IGNoZWNrcyBhcmUgcmVhbGx5CisgICAgICAgIG5lZWRlZC4KKworICAgICAgICBUaGlzIGlzIHRo
ZSBmaW5hbCBzdGVwIGluIHJlbW92aW5nIGRlcGVuZGVuY2Ugb24gU3R5bGVDb250ZW50VHlwZS4K
KworICAgICAgICBObyBuZXcgdGVzdHMgbmVlZGVkLCB0aGlzIGlzIGp1c3QgYSByZWZhY3Rvci4K
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwOiBSZW1vdmUg
Y3JlYXRlUmVuZGVyZXJGb3JCZWZvcmVBZnRlckNvbnRlbnQuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJPYmplY3RDaGlsZExpc3Q6OnVwZGF0ZUJlZm9yZUFmdGVyQ29udGVudCk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQ29udGVudERhdGE6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dENvbnRlbnREYXRhOjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAg
IChXZWJDb3JlOjpDb3VudGVyQ29udGVudERhdGE6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlF1b3RlQ29udGVudERhdGE6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaDogQWRkZWQgYSBuZXcgdmlydHVhbCBtZXRob2Qg
Y3JlYXRlUmVuZGVyZXIuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENvbnRlbnREYXRh
KToKKyAgICAgICAgKEltYWdlQ29udGVudERhdGEpOgorICAgICAgICAoVGV4dENvbnRlbnREYXRh
KToKKyAgICAgICAgKENvdW50ZXJDb250ZW50RGF0YSk6CisgICAgICAgIChRdW90ZUNvbnRlbnRE
YXRhKToKKwogMjAxMi0xMC0xNyAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8cmFwaGFlbC5rdWJv
LmRhLmNvc3RhQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBSZW1vdmUgcmVkdW5kYW50IE9w
ZW5HTCBsaWJyYXJ5IGFkZGl0aW9uIGZyb20gdGhlIGJ1aWxkIHN5c3RlbS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAKaW5kZXggMDU4
ZjhlNmZkMjllY2Y4M2FiYWVlMGZiOTQ5MzE5YjdlYjk2NjNhOS4uYmVlNGNjMmY2MWU5OGMwZWRm
YWJiNzVjOWQzNDhiOTllZDVhMzNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAKQEAgLTMxLDE2ICszMSwxMSBAQAogI2luY2x1
ZGUgIkNvbnRlbnREYXRhLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKICNpbmNsdWRlICJS
ZW5kZXJDb3VudGVyLmgiCi0jaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKLSNpbmNsdWRlICJSZW5k
ZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZS5oIgotI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgog
I2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIKICNp
bmNsdWRlICJSZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCIKLSNpbmNsdWRlICJSZW5kZXJRdW90ZS5o
IgogI2luY2x1ZGUgIlJlbmRlclJlZ2lvbi5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCi0j
aW5jbHVkZSAiUmVuZGVyVGV4dEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zMDUsNDAgKzMwMCw2IEBAIHZvaWQgUmVuZGVyT2Jq
ZWN0Q2hpbGRMaXN0Ojp1cGRhdGVCZWZvcmVBZnRlclN0eWxlKFJlbmRlck9iamVjdCogY2hpbGQs
IFBzZXVkb0lkCiAgICAgfQogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJl
ckZvckJlZm9yZUFmdGVyQ29udGVudChSZW5kZXJPYmplY3QqIG93bmVyLCBjb25zdCBDb250ZW50
RGF0YSogY29udGVudCwgUmVuZGVyU3R5bGUqIHBzZXVkb0VsZW1lbnRTdHlsZSkKLXsKLSAgICBS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gMDsKLSAgICBzd2l0Y2ggKGNvbnRlbnQtPnR5cGUoKSkg
ewotICAgIGNhc2UgQ09OVEVOVF9OT05FOgotICAgICAgICBicmVhazsKLSAgICBjYXNlIENPTlRF
TlRfVEVYVDoKLSAgICAgICAgcmVuZGVyZXIgPSBuZXcgKG93bmVyLT5yZW5kZXJBcmVuYSgpKSBS
ZW5kZXJUZXh0RnJhZ21lbnQob3duZXItPmRvY3VtZW50KCkgLyogYW5vbnltb3VzIG9iamVjdCAq
Lywgc3RhdGljX2Nhc3Q8Y29uc3QgVGV4dENvbnRlbnREYXRhKj4oY29udGVudCktPnRleHQoKS5p
bXBsKCkpOwotICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDT05URU5UX09CSkVDVDogewotICAgICAgICBSZW5k
ZXJJbWFnZSogaW1hZ2UgPSBuZXcgKG93bmVyLT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJJbWFnZShv
d25lci0+ZG9jdW1lbnQoKSk7IC8vIGFub255bW91cyBvYmplY3QKLSAgICAgICAgUmVmUHRyPFJl
bmRlclN0eWxlPiBzdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKLSAgICAgICAgc3R5bGUt
PmluaGVyaXRGcm9tKHBzZXVkb0VsZW1lbnRTdHlsZSk7Ci0gICAgICAgIGltYWdlLT5zZXRTdHls
ZShzdHlsZS5yZWxlYXNlKCkpOwotICAgICAgICBpZiAoY29uc3QgU3R5bGVJbWFnZSogc3R5bGVJ
bWFnZSA9IHN0YXRpY19jYXN0PGNvbnN0IEltYWdlQ29udGVudERhdGEqPihjb250ZW50KS0+aW1h
Z2UoKSkKLSAgICAgICAgICAgIGltYWdlLT5zZXRJbWFnZVJlc291cmNlKFJlbmRlckltYWdlUmVz
b3VyY2VTdHlsZUltYWdlOjpjcmVhdGUoY29uc3RfY2FzdDxTdHlsZUltYWdlKj4oc3R5bGVJbWFn
ZSkpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgaW1hZ2UtPnNldEltYWdlUmVzb3VyY2Uo
UmVuZGVySW1hZ2VSZXNvdXJjZTo6Y3JlYXRlKCkpOwotICAgICAgICByZW5kZXJlciA9IGltYWdl
OwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBDT05URU5UX0NPVU5URVI6Ci0gICAg
ICAgIHJlbmRlcmVyID0gbmV3IChvd25lci0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyQ291bnRlcihv
d25lci0+ZG9jdW1lbnQoKSwgKnN0YXRpY19jYXN0PGNvbnN0IENvdW50ZXJDb250ZW50RGF0YSo+
KGNvbnRlbnQpLT5jb3VudGVyKCkpOwotICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocHNldWRv
RWxlbWVudFN0eWxlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDT05URU5UX1FVT1RFOgot
ICAgICAgICByZW5kZXJlciA9IG5ldyAob3duZXItPnJlbmRlckFyZW5hKCkpIFJlbmRlclF1b3Rl
KG93bmVyLT5kb2N1bWVudCgpLCBzdGF0aWNfY2FzdDxjb25zdCBRdW90ZUNvbnRlbnREYXRhKj4o
Y29udGVudCktPnF1b3RlKCkpOwotICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocHNldWRvRWxl
bWVudFN0eWxlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJldHVybiByZW5kZXJlcjsK
LX0KLQogc3RhdGljIFJlbmRlck9iamVjdCogZW5zdXJlQmVmb3JlQWZ0ZXJDb250YWluZXIoUmVu
ZGVyT2JqZWN0KiBvd25lciwgUHNldWRvSWQgdHlwZSwgUmVuZGVyU3R5bGUqIHBzZXVkb0VsZW1l
bnRTdHlsZSwgTm9kZSogZ2VuZXJhdGluZ05vZGUsIFJlbmRlck9iamVjdCogaW5zZXJ0QmVmb3Jl
KQogewogICAgIC8vIE1ha2UgYSBnZW5lcmF0ZWQgYm94IHRoYXQgbWlnaHQgYmUgYW55IGRpc3Bs
YXkgdHlwZSBub3cgdGhhdCB3ZSBhcmUgYWJsZSB0byBkcmlsbCBkb3duIGludG8gY2hpbGRyZW4K
QEAgLTQ2NSwyMSArNDI2LDE5IEBAIHZvaWQgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0Ojp1cGRhdGVC
ZWZvcmVBZnRlckNvbnRlbnQoUmVuZGVyT2JqZWN0KiBvd25lciwgUHNldWRvCiAgICAgZWxzZSB7
CiAgICAgICAgIC8vIFdhbGsgb3VyIGxpc3Qgb2YgZ2VuZXJhdGVkIGNvbnRlbnQgYW5kIGNyZWF0
ZSByZW5kZXIgb2JqZWN0cyBmb3IgZWFjaC4KICAgICAgICAgZm9yIChjb25zdCBDb250ZW50RGF0
YSogY29udGVudCA9IHBzZXVkb0VsZW1lbnRTdHlsZS0+Y29udGVudERhdGEoKTsgY29udGVudDsg
Y29udGVudCA9IGNvbnRlbnQtPm5leHQoKSkgewotICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlciA9IGNyZWF0ZVJlbmRlcmVyRm9yQmVmb3JlQWZ0ZXJDb250ZW50KG93bmVyLCBjb250
ZW50LCBwc2V1ZG9FbGVtZW50U3R5bGUpOworICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5k
ZXJlciA9IGNvbnRlbnQtPmNyZWF0ZVJlbmRlcmVyKG93bmVyLT5kb2N1bWVudCgpLCBwc2V1ZG9F
bGVtZW50U3R5bGUpOwogCi0gICAgICAgICAgICBpZiAocmVuZGVyZXIpIHsKKyAgICAgICAgICAg
IGlmICghZ2VuZXJhdGVkQ29udGVudENvbnRhaW5lcikgeworICAgICAgICAgICAgICAgIGdlbmVy
YXRlZENvbnRlbnRDb250YWluZXIgPSBlbnN1cmVCZWZvcmVBZnRlckNvbnRhaW5lcihvd25lciwg
dHlwZSwgcHNldWRvRWxlbWVudFN0eWxlLCBzdHlsZWRPYmplY3QtPm5vZGUoKSwgaW5zZXJ0QmVm
b3JlKTsKICAgICAgICAgICAgICAgICBpZiAoIWdlbmVyYXRlZENvbnRlbnRDb250YWluZXIpIHsK
LSAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVkQ29udGVudENvbnRhaW5lciA9IGVuc3VyZUJl
Zm9yZUFmdGVyQ29udGFpbmVyKG93bmVyLCB0eXBlLCBwc2V1ZG9FbGVtZW50U3R5bGUsIHN0eWxl
ZE9iamVjdC0+bm9kZSgpLCBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgICAgICAgICAgICBpZiAo
IWdlbmVyYXRlZENvbnRlbnRDb250YWluZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJl
bmRlcmVyLT5kZXN0cm95KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYg
KGdlbmVyYXRlZENvbnRlbnRDb250YWluZXItPmlzQ2hpbGRBbGxvd2VkKHJlbmRlcmVyLCBwc2V1
ZG9FbGVtZW50U3R5bGUpKQotICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZWRDb250ZW50Q29u
dGFpbmVyLT5hZGRDaGlsZChyZW5kZXJlcik7Ci0gICAgICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgICAgICByZW5kZXJlci0+ZGVzdHJveSgpOworICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KGdlbmVyYXRlZENvbnRlbnRDb250YWluZXItPmlzQ2hpbGRBbGxvd2VkKHJlbmRlcmVyLCBwc2V1
ZG9FbGVtZW50U3R5bGUpKQorICAgICAgICAgICAgICAgIGdlbmVyYXRlZENvbnRlbnRDb250YWlu
ZXItPmFkZENoaWxkKHJlbmRlcmVyKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICByZW5kZXJlci0+ZGVzdHJveSgpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcAppbmRleCA3Zjg3YTBjMmIwODRh
ZjgwNTY2NTg5MjQ5YTBiZGQxY2U4YmExMWY0Li4yZmFiOTliZGE1ZDBiNWIyM2Q0ZjZlYThmMzcy
YjEyYTRiYmFlNTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
Q29udGVudERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250
ZW50RGF0YS5jcHAKQEAgLTIyLDYgKzIyLDE1IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQ29udGVudERhdGEuaCIKIAorI2luY2x1ZGUgIlJlbmRlckNvdW50ZXIuaCIKKyNpbmNs
dWRlICJSZW5kZXJJbWFnZS5oIgorI2luY2x1ZGUgIlJlbmRlckltYWdlUmVzb3VyY2UuaCIKKyNp
bmNsdWRlICJSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZS5oIgorI2luY2x1ZGUgIlJlbmRl
clF1b3RlLmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJSZW5kZXJUZXh0
RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJTdHlsZUluaGVyaXRlZERhdGEuaCIKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBQYXNzT3duUHRyPENvbnRlbnREYXRhPiBDb250ZW50RGF0YTo6Y3JlYXRl
KFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gaW1hZ2UpCkBAIC01OCw0ICs2Nyw0MSBAQCBQYXNzT3du
UHRyPENvbnRlbnREYXRhPiBDb250ZW50RGF0YTo6Y2xvbmUoKSBjb25zdAogICAgIHJldHVybiBy
ZXN1bHQucmVsZWFzZSgpOwogfQogCitSZW5kZXJPYmplY3QqIEltYWdlQ29udGVudERhdGE6OmNy
ZWF0ZVJlbmRlcmVyKERvY3VtZW50KiBkb2MsIFJlbmRlclN0eWxlKiBwc2V1ZG9TdHlsZSkgY29u
c3QKK3sKKyAgICBSZW5kZXJJbWFnZSogaW1hZ2UgPSBuZXcgKGRvYy0+cmVuZGVyQXJlbmEoKSkg
UmVuZGVySW1hZ2UoZG9jKTsKKyAgICAvLyBJbWFnZXMgYXJlIHNwZWNpYWwgYW5kIG11c3QgaW5o
ZXJpdCB0aGUgcHNldWRvU3R5bGUgc28gdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YKKyAgICAvLyB0
aGUgcHNldWRvIGVsZW1lbnQgZG9uJ3QgY2hhbmdlIHRoZSBzaXplIG9mIHRoZSBpbWFnZS4gSW4g
YWxsIG90aGVyIGNhc2VzIHdlCisgICAgLy8gY2FuIGp1c3Qgc2hhcmUgdGhlIHN0eWxlLgorICAg
IFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7CisgICAg
c3R5bGUtPmluaGVyaXRGcm9tKHBzZXVkb1N0eWxlKTsKKyAgICBpbWFnZS0+c2V0U3R5bGUoc3R5
bGUucmVsZWFzZSgpKTsKKyAgICBpZiAobV9pbWFnZSkKKyAgICAgICAgaW1hZ2UtPnNldEltYWdl
UmVzb3VyY2UoUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2U6OmNyZWF0ZShtX2ltYWdlLmdl
dCgpKSk7CisgICAgZWxzZQorICAgICAgICBpbWFnZS0+c2V0SW1hZ2VSZXNvdXJjZShSZW5kZXJJ
bWFnZVJlc291cmNlOjpjcmVhdGUoKSk7CisgICAgcmV0dXJuIGltYWdlOworfQorCitSZW5kZXJP
YmplY3QqIFRleHRDb250ZW50RGF0YTo6Y3JlYXRlUmVuZGVyZXIoRG9jdW1lbnQqIGRvYywgUmVu
ZGVyU3R5bGUqIHBzZXVkb1N0eWxlKSBjb25zdAoreworICAgIFJlbmRlck9iamVjdCogcmVuZGVy
ZXIgPSBuZXcgKGRvYy0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyVGV4dEZyYWdtZW50KGRvYyAvKiBh
bm9ueW1vdXMgb2JqZWN0ICovLCBtX3RleHQuaW1wbCgpKTsKKyAgICByZW5kZXJlci0+c2V0U3R5
bGUocHNldWRvU3R5bGUpOworICAgIHJldHVybiByZW5kZXJlcjsKK30KKworUmVuZGVyT2JqZWN0
KiBDb3VudGVyQ29udGVudERhdGE6OmNyZWF0ZVJlbmRlcmVyKERvY3VtZW50KiBkb2MsIFJlbmRl
clN0eWxlKiBwc2V1ZG9TdHlsZSkgY29uc3QKK3sKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVy
ID0gbmV3IChkb2MtPnJlbmRlckFyZW5hKCkpIFJlbmRlckNvdW50ZXIoZG9jIC8qIGFub255bW91
cyBvYmplY3QgKi8sICptX2NvdW50ZXIpOworICAgIHJlbmRlcmVyLT5zZXRTdHlsZShwc2V1ZG9T
dHlsZSk7CisgICAgcmV0dXJuIHJlbmRlcmVyOworfQorCitSZW5kZXJPYmplY3QqIFF1b3RlQ29u
dGVudERhdGE6OmNyZWF0ZVJlbmRlcmVyKERvY3VtZW50KiBkb2MsIFJlbmRlclN0eWxlKiBwc2V1
ZG9TdHlsZSkgY29uc3QKK3sKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbmV3IChkb2Mt
PnJlbmRlckFyZW5hKCkpIFJlbmRlclF1b3RlKGRvYyAvKiBhbm9ueW1vdXMgb2JqZWN0ICovLCBt
X3F1b3RlKTsKKyAgICByZW5kZXJlci0+c2V0U3R5bGUocHNldWRvU3R5bGUpOworICAgIHJldHVy
biByZW5kZXJlcjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaAppbmRleCA4ODcxOGQ4NGY0YWJiM2I0Zjkw
ZjIxNWQ0YTExMjZhZDhjNTFhMzNmLi42OGExZDBhMzQ4YThhMWUxYWJhZWQxODYwMWU1Y2YwMTRj
MGM3ZTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVu
dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEu
aApAQCAtMzIsNyArMzIsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFN0eWxl
SW1hZ2U7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFJlbmRlck9iamVjdDsKK2NsYXNzIFJlbmRl
clN0eWxlOwogCiBjbGFzcyBDb250ZW50RGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CkBAIC00OSw2ICs1MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNRdW90ZSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzVGV4dCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVu
ZGVyZXIoRG9jdW1lbnQqLCBSZW5kZXJTdHlsZSopIGNvbnN0ID0gMDsKKwogICAgIHZpcnR1YWwg
U3R5bGVDb250ZW50VHlwZSB0eXBlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUGFzc093blB0
cjxDb250ZW50RGF0YT4gY2xvbmUoKSBjb25zdDsKIApAQCAtNzAsNiArNzQsOCBAQCBwdWJsaWM6
CiAgICAgU3R5bGVJbWFnZSogaW1hZ2UoKSB7IHJldHVybiBtX2ltYWdlLmdldCgpOyB9CiAgICAg
dm9pZCBzZXRJbWFnZShQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGltYWdlKSB7IG1faW1hZ2UgPSBp
bWFnZTsgfQogCisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKERvY3Vt
ZW50KiwgUmVuZGVyU3R5bGUqKSBjb25zdCBPVkVSUklERTsKKwogICAgIHZpcnR1YWwgYm9vbCBl
cXVhbHMoY29uc3QgQ29udGVudERhdGEmIGRhdGEpIGNvbnN0IE9WRVJSSURFCiAgICAgewogICAg
ICAgICBpZiAoIWRhdGEuaXNJbWFnZSgpKQpAQCAtMTAwLDYgKzEwNiw4IEBAIHB1YmxpYzoKICAg
ICBjb25zdCBTdHJpbmcmIHRleHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0KICAgICB2b2lk
IHNldFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KSB7IG1fdGV4dCA9IHRleHQ7IH0KIAorICAgIHZp
cnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihEb2N1bWVudCosIFJlbmRlclN0eWxl
KikgY29uc3QgT1ZFUlJJREU7CisKICAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IENvbnRl
bnREYXRhJiBkYXRhKSBjb25zdCBPVkVSUklERQogICAgIHsKICAgICAgICAgaWYgKCFkYXRhLmlz
VGV4dCgpKQpAQCAtMTI2LDYgKzEzNCw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBDb3VudGVyQ29u
dGVudCogY291bnRlcigpIGNvbnN0IHsgcmV0dXJuIG1fY291bnRlci5nZXQoKTsgfQogICAgIHZv
aWQgc2V0Q291bnRlcihQYXNzT3duUHRyPENvdW50ZXJDb250ZW50PiBjb3VudGVyKSB7IG1fY291
bnRlciA9IGNvdW50ZXI7IH0KIAorICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5k
ZXJlcihEb2N1bWVudCosIFJlbmRlclN0eWxlKikgY29uc3QgT1ZFUlJJREU7CisKIHByaXZhdGU6
CiAgICAgQ291bnRlckNvbnRlbnREYXRhKFBhc3NPd25QdHI8Q291bnRlckNvbnRlbnQ+IGNvdW50
ZXIpCiAgICAgICAgIDogbV9jb3VudGVyKGNvdW50ZXIpCkBAIC0xNTYsNiArMTY2LDggQEAgcHVi
bGljOgogICAgIFF1b3RlVHlwZSBxdW90ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcXVvdGU7IH0KICAg
ICB2b2lkIHNldFF1b3RlKFF1b3RlVHlwZSBxdW90ZSkgeyBtX3F1b3RlID0gcXVvdGU7IH0KIAor
ICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihEb2N1bWVudCosIFJlbmRl
clN0eWxlKikgY29uc3QgT1ZFUlJJREU7CisKICAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0
IENvbnRlbnREYXRhJiBkYXRhKSBjb25zdCBPVkVSUklERQogICAgIHsKICAgICAgICAgaWYgKCFk
YXRhLmlzUXVvdGUoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169281</attachid>
            <date>2012-10-17 15:46:11 -0700</date>
            <delta_ts>2012-10-18 17:20:45 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-99646-20121017154458.patch</filename>
            <type>text/plain</type>
            <size>10944</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDYxYjIxZTY3MGUwNjRh
MDM1NjA4OWViMGZhMDE4YWFlNDk2NWRmNC4uMTcyNzc5ZGE1N2M3NDY4NzUwZmIwNGI4OGZkOGM0
MTAwMWNjMTMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTEwLTE3ICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFVzZSB2aXJ0dWFs
IGRpc3BhdGNoIHRvIGNyZWF0ZSBDb250ZW50RGF0YSByZW5kZXJlcnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NjQ2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBTZWlkZWwuCisKKyAgICAgICAgQ29udGVudERhdGEgYXJlIGNvbmNlcHR1YWxs
eSB2ZXJ5IHNpbWlsYXIgdG8gTm9kZXMgYW5kIHdlIGNhbiB1c2UKKyAgICAgICAgdGhlIHNhbWUg
Y3JlYXRlUmVuZGVyZXIgcGF0dGVybiBvbiB0aGVtIHRvIHNpbXBsaWZ5IGNyZWF0aW5nCisgICAg
ICAgIHJlbmRlcmVycyBmb3IgZ2VuZXJhdGVkIGNvbnRlbnQuIE5vdyBlYWNoIENvbnRlbnREYXRh
IGNsYXNzIGtub3dzCisgICAgICAgIGhvdyB0byBjcmVhdGUgaXRzIG93biByZW5kZXJlci4KKwor
ICAgICAgICBQcmV2aW91c2x5IHdlIHN3aXRjaGVkIG92ZXIgdGhlIFN0eWxlQ29udGVudFR5cGUg
d2hpY2ggcmVxdWlyZWQgYQorICAgICAgICBjYXNlIGZvciBDT05URU5UX05PTkUgYW5kIG1hZGUg
dGhlIGNvZGUgbG9vayBsaWtlIGl0IGNvdWxkIHJldHVybgorICAgICAgICBudWxsLCBidXQgdGhp
cyBjYXNlIGlzIGFjdHVhbGx5IGltcG9zc2libGUgYmVjYXVzZSBubyBDb250ZW50RGF0YQorICAg
ICAgICBjbGFzcyBldmVyIGhhcyBhIHR5cGUgb2YgQ09OVEVOVF9OT05FIGFuZCBubyBudWxsIGNo
ZWNrcyBhcmUgcmVhbGx5CisgICAgICAgIG5lZWRlZC4KKworICAgICAgICBUaGlzIGlzIHRoZSBm
aW5hbCBzdGVwIGluIHJlbW92aW5nIGRlcGVuZGVuY2Ugb24gU3R5bGVDb250ZW50VHlwZS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMgbmVlZGVkLCB0aGlzIGlzIGp1c3QgYSByZWZhY3Rvci4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwOiBSZW1vdmUgY3Jl
YXRlUmVuZGVyZXJGb3JCZWZvcmVBZnRlckNvbnRlbnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJPYmplY3RDaGlsZExpc3Q6OnVwZGF0ZUJlZm9yZUFmdGVyQ29udGVudCk6CisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
Q29udGVudERhdGE6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dENvbnRlbnREYXRhOjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgIChX
ZWJDb3JlOjpDb3VudGVyQ29udGVudERhdGE6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlF1b3RlQ29udGVudERhdGE6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaDogQWRkZWQgYSBuZXcgdmlydHVhbCBtZXRob2QgY3Jl
YXRlUmVuZGVyZXIuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENvbnRlbnREYXRhKToK
KyAgICAgICAgKEltYWdlQ29udGVudERhdGEpOgorICAgICAgICAoVGV4dENvbnRlbnREYXRhKToK
KyAgICAgICAgKENvdW50ZXJDb250ZW50RGF0YSk6CisgICAgICAgIChRdW90ZUNvbnRlbnREYXRh
KToKKwogMjAxMi0xMC0xNyAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8cmFwaGFlbC5rdWJvLmRh
LmNvc3RhQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBSZW1vdmUgcmVkdW5kYW50IE9wZW5H
TCBsaWJyYXJ5IGFkZGl0aW9uIGZyb20gdGhlIGJ1aWxkIHN5c3RlbS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAKaW5kZXggMDU4Zjhl
NmZkMjllY2Y4M2FiYWVlMGZiOTQ5MzE5YjdlYjk2NjNhOS4uYmVlNGNjMmY2MWU5OGMwZWRmYWJi
NzVjOWQzNDhiOTllZDVhMzNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAKQEAgLTMxLDE2ICszMSwxMSBAQAogI2luY2x1ZGUg
IkNvbnRlbnREYXRhLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKICNpbmNsdWRlICJSZW5k
ZXJDb3VudGVyLmgiCi0jaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKLSNpbmNsdWRlICJSZW5kZXJJ
bWFnZVJlc291cmNlU3R5bGVJbWFnZS5oIgotI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIKICNpbmNs
dWRlICJSZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCIKLSNpbmNsdWRlICJSZW5kZXJRdW90ZS5oIgog
I2luY2x1ZGUgIlJlbmRlclJlZ2lvbi5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCi0jaW5j
bHVkZSAiUmVuZGVyVGV4dEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zMDUsNDAgKzMwMCw2IEBAIHZvaWQgUmVuZGVyT2JqZWN0
Q2hpbGRMaXN0Ojp1cGRhdGVCZWZvcmVBZnRlclN0eWxlKFJlbmRlck9iamVjdCogY2hpbGQsIFBz
ZXVkb0lkCiAgICAgfQogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlckZv
ckJlZm9yZUFmdGVyQ29udGVudChSZW5kZXJPYmplY3QqIG93bmVyLCBjb25zdCBDb250ZW50RGF0
YSogY29udGVudCwgUmVuZGVyU3R5bGUqIHBzZXVkb0VsZW1lbnRTdHlsZSkKLXsKLSAgICBSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyID0gMDsKLSAgICBzd2l0Y2ggKGNvbnRlbnQtPnR5cGUoKSkgewot
ICAgIGNhc2UgQ09OVEVOVF9OT05FOgotICAgICAgICBicmVhazsKLSAgICBjYXNlIENPTlRFTlRf
VEVYVDoKLSAgICAgICAgcmVuZGVyZXIgPSBuZXcgKG93bmVyLT5yZW5kZXJBcmVuYSgpKSBSZW5k
ZXJUZXh0RnJhZ21lbnQob3duZXItPmRvY3VtZW50KCkgLyogYW5vbnltb3VzIG9iamVjdCAqLywg
c3RhdGljX2Nhc3Q8Y29uc3QgVGV4dENvbnRlbnREYXRhKj4oY29udGVudCktPnRleHQoKS5pbXBs
KCkpOwotICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDT05URU5UX09CSkVDVDogewotICAgICAgICBSZW5kZXJJ
bWFnZSogaW1hZ2UgPSBuZXcgKG93bmVyLT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJJbWFnZShvd25l
ci0+ZG9jdW1lbnQoKSk7IC8vIGFub255bW91cyBvYmplY3QKLSAgICAgICAgUmVmUHRyPFJlbmRl
clN0eWxlPiBzdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKLSAgICAgICAgc3R5bGUtPmlu
aGVyaXRGcm9tKHBzZXVkb0VsZW1lbnRTdHlsZSk7Ci0gICAgICAgIGltYWdlLT5zZXRTdHlsZShz
dHlsZS5yZWxlYXNlKCkpOwotICAgICAgICBpZiAoY29uc3QgU3R5bGVJbWFnZSogc3R5bGVJbWFn
ZSA9IHN0YXRpY19jYXN0PGNvbnN0IEltYWdlQ29udGVudERhdGEqPihjb250ZW50KS0+aW1hZ2Uo
KSkKLSAgICAgICAgICAgIGltYWdlLT5zZXRJbWFnZVJlc291cmNlKFJlbmRlckltYWdlUmVzb3Vy
Y2VTdHlsZUltYWdlOjpjcmVhdGUoY29uc3RfY2FzdDxTdHlsZUltYWdlKj4oc3R5bGVJbWFnZSkp
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgaW1hZ2UtPnNldEltYWdlUmVzb3VyY2UoUmVu
ZGVySW1hZ2VSZXNvdXJjZTo6Y3JlYXRlKCkpOwotICAgICAgICByZW5kZXJlciA9IGltYWdlOwot
ICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBDT05URU5UX0NPVU5URVI6Ci0gICAgICAg
IHJlbmRlcmVyID0gbmV3IChvd25lci0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyQ291bnRlcihvd25l
ci0+ZG9jdW1lbnQoKSwgKnN0YXRpY19jYXN0PGNvbnN0IENvdW50ZXJDb250ZW50RGF0YSo+KGNv
bnRlbnQpLT5jb3VudGVyKCkpOwotICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocHNldWRvRWxl
bWVudFN0eWxlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDT05URU5UX1FVT1RFOgotICAg
ICAgICByZW5kZXJlciA9IG5ldyAob3duZXItPnJlbmRlckFyZW5hKCkpIFJlbmRlclF1b3RlKG93
bmVyLT5kb2N1bWVudCgpLCBzdGF0aWNfY2FzdDxjb25zdCBRdW90ZUNvbnRlbnREYXRhKj4oY29u
dGVudCktPnF1b3RlKCkpOwotICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocHNldWRvRWxlbWVu
dFN0eWxlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJldHVybiByZW5kZXJlcjsKLX0K
LQogc3RhdGljIFJlbmRlck9iamVjdCogZW5zdXJlQmVmb3JlQWZ0ZXJDb250YWluZXIoUmVuZGVy
T2JqZWN0KiBvd25lciwgUHNldWRvSWQgdHlwZSwgUmVuZGVyU3R5bGUqIHBzZXVkb0VsZW1lbnRT
dHlsZSwgTm9kZSogZ2VuZXJhdGluZ05vZGUsIFJlbmRlck9iamVjdCogaW5zZXJ0QmVmb3JlKQog
ewogICAgIC8vIE1ha2UgYSBnZW5lcmF0ZWQgYm94IHRoYXQgbWlnaHQgYmUgYW55IGRpc3BsYXkg
dHlwZSBub3cgdGhhdCB3ZSBhcmUgYWJsZSB0byBkcmlsbCBkb3duIGludG8gY2hpbGRyZW4KQEAg
LTQ2NSwyMSArNDI2LDE5IEBAIHZvaWQgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0Ojp1cGRhdGVCZWZv
cmVBZnRlckNvbnRlbnQoUmVuZGVyT2JqZWN0KiBvd25lciwgUHNldWRvCiAgICAgZWxzZSB7CiAg
ICAgICAgIC8vIFdhbGsgb3VyIGxpc3Qgb2YgZ2VuZXJhdGVkIGNvbnRlbnQgYW5kIGNyZWF0ZSBy
ZW5kZXIgb2JqZWN0cyBmb3IgZWFjaC4KICAgICAgICAgZm9yIChjb25zdCBDb250ZW50RGF0YSog
Y29udGVudCA9IHBzZXVkb0VsZW1lbnRTdHlsZS0+Y29udGVudERhdGEoKTsgY29udGVudDsgY29u
dGVudCA9IGNvbnRlbnQtPm5leHQoKSkgewotICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5k
ZXJlciA9IGNyZWF0ZVJlbmRlcmVyRm9yQmVmb3JlQWZ0ZXJDb250ZW50KG93bmVyLCBjb250ZW50
LCBwc2V1ZG9FbGVtZW50U3R5bGUpOworICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJl
ciA9IGNvbnRlbnQtPmNyZWF0ZVJlbmRlcmVyKG93bmVyLT5kb2N1bWVudCgpLCBwc2V1ZG9FbGVt
ZW50U3R5bGUpOwogCi0gICAgICAgICAgICBpZiAocmVuZGVyZXIpIHsKKyAgICAgICAgICAgIGlm
ICghZ2VuZXJhdGVkQ29udGVudENvbnRhaW5lcikgeworICAgICAgICAgICAgICAgIGdlbmVyYXRl
ZENvbnRlbnRDb250YWluZXIgPSBlbnN1cmVCZWZvcmVBZnRlckNvbnRhaW5lcihvd25lciwgdHlw
ZSwgcHNldWRvRWxlbWVudFN0eWxlLCBzdHlsZWRPYmplY3QtPm5vZGUoKSwgaW5zZXJ0QmVmb3Jl
KTsKICAgICAgICAgICAgICAgICBpZiAoIWdlbmVyYXRlZENvbnRlbnRDb250YWluZXIpIHsKLSAg
ICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVkQ29udGVudENvbnRhaW5lciA9IGVuc3VyZUJlZm9y
ZUFmdGVyQ29udGFpbmVyKG93bmVyLCB0eXBlLCBwc2V1ZG9FbGVtZW50U3R5bGUsIHN0eWxlZE9i
amVjdC0+bm9kZSgpLCBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgICAgICAgICAgICBpZiAoIWdl
bmVyYXRlZENvbnRlbnRDb250YWluZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRl
cmVyLT5kZXN0cm95KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGdl
bmVyYXRlZENvbnRlbnRDb250YWluZXItPmlzQ2hpbGRBbGxvd2VkKHJlbmRlcmVyLCBwc2V1ZG9F
bGVtZW50U3R5bGUpKQotICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZWRDb250ZW50Q29udGFp
bmVyLT5hZGRDaGlsZChyZW5kZXJlcik7Ci0gICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgICAgICByZW5kZXJlci0+ZGVzdHJveSgpOworICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGdl
bmVyYXRlZENvbnRlbnRDb250YWluZXItPmlzQ2hpbGRBbGxvd2VkKHJlbmRlcmVyLCBwc2V1ZG9F
bGVtZW50U3R5bGUpKQorICAgICAgICAgICAgICAgIGdlbmVyYXRlZENvbnRlbnRDb250YWluZXIt
PmFkZENoaWxkKHJlbmRlcmVyKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBy
ZW5kZXJlci0+ZGVzdHJveSgpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcAppbmRleCA3Zjg3YTBjMmIwODRhZjgw
NTY2NTg5MjQ5YTBiZGQxY2U4YmExMWY0Li45Y2FjMjU0Y2U5MjNiNGI4MmZhMGQwYmZkYmI4ZWRl
YjQ0OWI2YzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29u
dGVudERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50
RGF0YS5jcHAKQEAgLTIyLDYgKzIyLDE1IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiQ29udGVudERhdGEuaCIKIAorI2luY2x1ZGUgIlJlbmRlckNvdW50ZXIuaCIKKyNpbmNsdWRl
ICJSZW5kZXJJbWFnZS5oIgorI2luY2x1ZGUgIlJlbmRlckltYWdlUmVzb3VyY2UuaCIKKyNpbmNs
dWRlICJSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZS5oIgorI2luY2x1ZGUgIlJlbmRlclF1
b3RlLmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJSZW5kZXJUZXh0RnJh
Z21lbnQuaCIKKyNpbmNsdWRlICJTdHlsZUluaGVyaXRlZERhdGEuaCIKKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBQYXNzT3duUHRyPENvbnRlbnREYXRhPiBDb250ZW50RGF0YTo6Y3JlYXRlKFBh
c3NSZWZQdHI8U3R5bGVJbWFnZT4gaW1hZ2UpCkBAIC01OCw0ICs2Nyw0MSBAQCBQYXNzT3duUHRy
PENvbnRlbnREYXRhPiBDb250ZW50RGF0YTo6Y2xvbmUoKSBjb25zdAogICAgIHJldHVybiByZXN1
bHQucmVsZWFzZSgpOwogfQogCitSZW5kZXJPYmplY3QqIEltYWdlQ29udGVudERhdGE6OmNyZWF0
ZVJlbmRlcmVyKERvY3VtZW50KiBkb2MsIFJlbmRlclN0eWxlKiBwc2V1ZG9TdHlsZSkgY29uc3QK
K3sKKyAgICBSZW5kZXJJbWFnZSogaW1hZ2UgPSBuZXcgKGRvYy0+cmVuZGVyQXJlbmEoKSkgUmVu
ZGVySW1hZ2UoZG9jKTsKKyAgICAvLyBJbWFnZXMgYXJlIHNwZWNpYWwgYW5kIG11c3QgaW5oZXJp
dCB0aGUgcHNldWRvU3R5bGUgc28gdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YKKyAgICAvLyB0aGUg
cHNldWRvIGVsZW1lbnQgZG9uJ3QgY2hhbmdlIHRoZSBzaXplIG9mIHRoZSBpbWFnZS4gSW4gYWxs
IG90aGVyIGNhc2VzIHdlCisgICAgLy8gY2FuIGp1c3Qgc2hhcmUgdGhlIHN0eWxlLgorICAgIFJl
ZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7CisgICAgc3R5
bGUtPmluaGVyaXRGcm9tKHBzZXVkb1N0eWxlKTsKKyAgICBpbWFnZS0+c2V0U3R5bGUoc3R5bGUu
cmVsZWFzZSgpKTsKKyAgICBpZiAobV9pbWFnZSkKKyAgICAgICAgaW1hZ2UtPnNldEltYWdlUmVz
b3VyY2UoUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2U6OmNyZWF0ZShtX2ltYWdlLmdldCgp
KSk7CisgICAgZWxzZQorICAgICAgICBpbWFnZS0+c2V0SW1hZ2VSZXNvdXJjZShSZW5kZXJJbWFn
ZVJlc291cmNlOjpjcmVhdGUoKSk7CisgICAgcmV0dXJuIGltYWdlOworfQorCitSZW5kZXJPYmpl
Y3QqIFRleHRDb250ZW50RGF0YTo6Y3JlYXRlUmVuZGVyZXIoRG9jdW1lbnQqIGRvYywgUmVuZGVy
U3R5bGUqIHBzZXVkb1N0eWxlKSBjb25zdAoreworICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIg
PSBuZXcgKGRvYy0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyVGV4dEZyYWdtZW50KGRvYywgbV90ZXh0
LmltcGwoKSk7CisgICAgcmVuZGVyZXItPnNldFN0eWxlKHBzZXVkb1N0eWxlKTsKKyAgICByZXR1
cm4gcmVuZGVyZXI7Cit9CisKK1JlbmRlck9iamVjdCogQ291bnRlckNvbnRlbnREYXRhOjpjcmVh
dGVSZW5kZXJlcihEb2N1bWVudCogZG9jLCBSZW5kZXJTdHlsZSogcHNldWRvU3R5bGUpIGNvbnN0
Cit7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5ldyAoZG9jLT5yZW5kZXJBcmVuYSgp
KSBSZW5kZXJDb3VudGVyKGRvYywgKm1fY291bnRlcik7CisgICAgcmVuZGVyZXItPnNldFN0eWxl
KHBzZXVkb1N0eWxlKTsKKyAgICByZXR1cm4gcmVuZGVyZXI7Cit9CisKK1JlbmRlck9iamVjdCog
UXVvdGVDb250ZW50RGF0YTo6Y3JlYXRlUmVuZGVyZXIoRG9jdW1lbnQqIGRvYywgUmVuZGVyU3R5
bGUqIHBzZXVkb1N0eWxlKSBjb25zdAoreworICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBu
ZXcgKGRvYy0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyUXVvdGUoZG9jLCBtX3F1b3RlKTsKKyAgICBy
ZW5kZXJlci0+c2V0U3R5bGUocHNldWRvU3R5bGUpOworICAgIHJldHVybiByZW5kZXJlcjsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvQ29udGVudERhdGEuaAppbmRleCA4ODcxOGQ4NGY0YWJiM2I0ZjkwZjIxNWQ0YTExMjZhZDhj
NTFhMzNmLi42OGExZDBhMzQ4YThhMWUxYWJhZWQxODYwMWU1Y2YwMTRjMGM3ZTkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaApAQCAtMzIsNyArMzIs
OSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFN0eWxlSW1hZ2U7CitjbGFzcyBE
b2N1bWVudDsKK2NsYXNzIFJlbmRlck9iamVjdDsKK2NsYXNzIFJlbmRlclN0eWxlOwogCiBjbGFz
cyBDb250ZW50RGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC00OSw2ICs1
MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNRdW90ZSgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzVGV4dCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAKKyAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoRG9jdW1lbnQq
LCBSZW5kZXJTdHlsZSopIGNvbnN0ID0gMDsKKwogICAgIHZpcnR1YWwgU3R5bGVDb250ZW50VHlw
ZSB0eXBlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUGFzc093blB0cjxDb250ZW50RGF0YT4g
Y2xvbmUoKSBjb25zdDsKIApAQCAtNzAsNiArNzQsOCBAQCBwdWJsaWM6CiAgICAgU3R5bGVJbWFn
ZSogaW1hZ2UoKSB7IHJldHVybiBtX2ltYWdlLmdldCgpOyB9CiAgICAgdm9pZCBzZXRJbWFnZShQ
YXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGltYWdlKSB7IG1faW1hZ2UgPSBpbWFnZTsgfQogCisgICAg
dmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKERvY3VtZW50KiwgUmVuZGVyU3R5
bGUqKSBjb25zdCBPVkVSUklERTsKKwogICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29uc3QgQ29u
dGVudERhdGEmIGRhdGEpIGNvbnN0IE9WRVJSSURFCiAgICAgewogICAgICAgICBpZiAoIWRhdGEu
aXNJbWFnZSgpKQpAQCAtMTAwLDYgKzEwNiw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcm
IHRleHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0KICAgICB2b2lkIHNldFRleHQoY29uc3Qg
U3RyaW5nJiB0ZXh0KSB7IG1fdGV4dCA9IHRleHQ7IH0KIAorICAgIHZpcnR1YWwgUmVuZGVyT2Jq
ZWN0KiBjcmVhdGVSZW5kZXJlcihEb2N1bWVudCosIFJlbmRlclN0eWxlKikgY29uc3QgT1ZFUlJJ
REU7CisKICAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IENvbnRlbnREYXRhJiBkYXRhKSBj
b25zdCBPVkVSUklERQogICAgIHsKICAgICAgICAgaWYgKCFkYXRhLmlzVGV4dCgpKQpAQCAtMTI2
LDYgKzEzNCw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBDb3VudGVyQ29udGVudCogY291bnRlcigp
IGNvbnN0IHsgcmV0dXJuIG1fY291bnRlci5nZXQoKTsgfQogICAgIHZvaWQgc2V0Q291bnRlcihQ
YXNzT3duUHRyPENvdW50ZXJDb250ZW50PiBjb3VudGVyKSB7IG1fY291bnRlciA9IGNvdW50ZXI7
IH0KIAorICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihEb2N1bWVudCos
IFJlbmRlclN0eWxlKikgY29uc3QgT1ZFUlJJREU7CisKIHByaXZhdGU6CiAgICAgQ291bnRlckNv
bnRlbnREYXRhKFBhc3NPd25QdHI8Q291bnRlckNvbnRlbnQ+IGNvdW50ZXIpCiAgICAgICAgIDog
bV9jb3VudGVyKGNvdW50ZXIpCkBAIC0xNTYsNiArMTY2LDggQEAgcHVibGljOgogICAgIFF1b3Rl
VHlwZSBxdW90ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcXVvdGU7IH0KICAgICB2b2lkIHNldFF1b3Rl
KFF1b3RlVHlwZSBxdW90ZSkgeyBtX3F1b3RlID0gcXVvdGU7IH0KIAorICAgIHZpcnR1YWwgUmVu
ZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihEb2N1bWVudCosIFJlbmRlclN0eWxlKikgY29uc3Qg
T1ZFUlJJREU7CisKICAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IENvbnRlbnREYXRhJiBk
YXRhKSBjb25zdCBPVkVSUklERQogICAgIHsKICAgICAgICAgaWYgKCFkYXRhLmlzUXVvdGUoKSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>