<?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>101727</bug_id>
          
          <creation_ts>2012-11-09 01:41:38 -0800</creation_ts>
          <short_desc>[GTK] Isolate the GTK/Gail/Pango specific code in accessibility/gtk</short_desc>
          <delta_ts>2012-11-15 04:05:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>98895</blocked>
    
    <blocked>99578</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mario Sanchez Prada">mario</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jdiggs</cc>
    
    <cc>k.czech</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>762710</commentid>
    <comment_count>0</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-11-09 01:41:38 -0800</bug_when>
    <thetext>This is a bug to track work initially started in bug 99578, to provide conditional compilation units for isolating the GTK specific code in accessibility/gtk, so most of the code in there can be later reused in other ports, such as EFL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762736</commentid>
    <comment_count>1</comment_count>
      <attachid>173245</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-11-09 02:04:27 -0800</bug_when>
    <thetext>Created attachment 173245
Patch proposal

Here comes the patch, properly filling the ChangeLog and addressing the review comments from bug 99578.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763208</commentid>
    <comment_count>2</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-11-09 11:48:14 -0800</bug_when>
    <thetext>Committed r134094: &lt;http://trac.webkit.org/changeset/134094&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763219</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-11-09 12:04:17 -0800</bug_when>
    <thetext>I think we should just replace this code for both platforms with something platform-independent, if possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764193</commentid>
    <comment_count>4</comment_count>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2012-11-12 03:11:18 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; I think we should just replace this code for both platforms with something platform-independent, if possible.

This was discussed at bug 99578 comment 4, 5 and 6. The idea is replace the gail/pango code used to implement some methods of AtkText. Mario suggested stuff like TextIterator, that it is already in use. But that task can be long, so first step is isolate that code (this patch) while working on the final and platform-independent solution. In summary: this isolation is a temporary solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764451</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-11-12 08:25:45 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; I think we should just replace this code for both platforms with something platform-independent, if possible.
&gt; 
&gt; This was discussed at bug 99578 comment 4, 5 and 6. The idea is replace the gail/pango code used to implement some methods of AtkText. Mario suggested stuff like TextIterator, that it is already in use. But that task can be long, so first step is isolate that code (this patch) while working on the final and platform-independent solution. In summary: this isolation is a temporary solution.

Hrm. Do you mean that there will be many patches and the work will be incomplete during that time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767930</commentid>
    <comment_count>6</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-11-15 04:05:10 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; I think we should just replace this code for both platforms with something platform-independent, if possible.
&gt; &gt; 
&gt; &gt; This was discussed at bug 99578 comment 4, 5 and 6. The idea is replace the gail/pango code used to implement some methods of AtkText. Mario suggested stuff like TextIterator, that it is already in use. But that task can be long, so first step is isolate that code (this patch) while working on the final and platform-independent solution. In summary: this isolation is a temporary solution.
&gt; 
&gt; Hrm. Do you mean that there will be many patches and the work will be incomplete during that time?

As for WebKitGTK the work won&apos;t ever be incomplete (it will for other ports, though), since it will keep working as it used to do so far. These conditional compilation units were added just to ease the work of other ports (EFL) should they want to reuse the non-GTK dependant ATK code (which is 99% already).

However, I&apos;d expect that over time (probably while implementing those notimplemented() bits in the #if !PLATFORM(GTK) regions) most of those conditional bits (e.g. pango / gail) will be implemented in a more generic way so they could be shared by all the ports. Which I think is what you suggested in your first comment.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173245</attachid>
            <date>2012-11-09 02:04:27 -0800</date>
            <delta_ts>2012-11-09 09:03:09 -0800</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-2012-11-09-Mario-Sanchez-Prada-mario-webkit.org.patch</filename>
            <type>text/plain</type>
            <size>10852</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSA2ZTdlNTI4NDE4ZDIxZTM0MjA4NmM0YzhkMWVjOTI4NzViOWMwYWM3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtYXJpb0B3ZWJraXQub3Jn
PgpEYXRlOiBGcmksIDkgTm92IDIwMTIgMTA6NDI6NDUgKzAxMDAKU3ViamVjdDogW1BBVENIXSAy
MDEyLTExLTA5ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bWFyaW9Ad2Via2l0Lm9yZz4KCiAgICAg
ICAgW0dUS10gSXNvbGF0ZSB0aGUgR1RLL0dhaWwvUGFuZ28gc3BlY2lmaWMgY29kZSBpbiBhY2Nl
c3NpYmlsaXR5L2d0awogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDE3MjcKCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAg
IEFkZGVkIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGNoZWNrcyBmb3IgR1RLKyBzcGVjaWZpYwog
ICAgICAgIGFjY2Vzc2liaWxpdHkgY29kZSwgdG8gcGF2ZSB0aGUgd2F5IGZvciBzaGFyaW5nIHRo
aXMKICAgICAgICBpbXBsZW1lbnRhdGlvbiB3aXRoIG90aGVyIHBvcnRzIChlLmcgV2ViS2l0RUZM
KS4KCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNl
VGV4dC5jcHA6CiAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVUZXh0R2V0VGV4dEFmdGVyT2Zmc2V0
KTogQWRkZWQgY29uZGl0aW9uYWwKICAgICAgICBjb21waWxhdGlvbiBjaGVja3MsIG9ubHkgaW1w
bGVtZW50aW5nIGl0IGluIEdUSyBzbyBmYXIuCiAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVUZXh0
R2V0VGV4dEF0T2Zmc2V0KTogRGl0dG8uCiAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVUZXh0R2V0
VGV4dEJlZm9yZU9mZnNldCk6IERpdHRvLgogICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvV2Vi
S2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwOgogICAgICAgIChhdGtQYXJlbnRPZlJvb3RPYmpl
Y3QpOiBBZGRlZCBjb25kaXRpb25hbCBjb21waWxhdGlvbiBjaGVja3MsCiAgICAgICAgb25seSBp
bXBsZW1lbnRpbmcgaW4gR1RLIHRoZSBwYXJ0IG9mIGdldHRpbmcgdGhlIGFjY2Vzc2libGUgb2Jq
ZWN0CiAgICAgICAgZm9yIHRoZSByb290IG9iamVjdC4KICAgICAgICAod2Via2l0QWNjZXNzaWJs
ZUdldFBhcmVudCk6IFVwZGF0ZWQgY29tbWVudHMuCiAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVH
ZXROQ2hpbGRyZW4pOiBEaXR0by4KICAgICAgICAod2Via2l0QWNjZXNzaWJsZVJlZkNoaWxkKTog
RGl0dG8uCiAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVHZXRJbmRleEluUGFyZW50KTogRGl0dG8u
CiAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVHZXRBdHRyaWJ1dGVzKTogT25seSBzZXQgdGhlICd0
b29sa2l0JyBhdHRyaWJ1dGUKICAgICAgICBmb3IgR1RLLiBPdGhlciBwb3J0cyBtaWdodCBiZSBp
bnRlcmVzdGVkIGluIHRoaXMgdG9vLgogICAgICAgIChzZXRBdGtTdGF0ZVNldEZyb21Db3JlT2Jq
ZWN0KTogVXBkYXRlZCBjb21tZW50cy4KLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8IDI4ICsrKysrKysrKysrKysrKysrKysrKysKIC4uLi9n
dGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwICAgICAgICAgIHwgMjAgKysrKysr
KysrKysrKysrKwogLi4uL2d0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAgICAgICAg
ICAgICAgfCAyNyArKysrKysrKysrKysrLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNjUgaW5z
ZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGEwMzZiZDUuLjAwZmMy
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMi0xMS0wOSAgTWFyaW8gU2FuY2hl
eiBQcmFkYSAgPG1hcmlvQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0dUS10gSXNvbGF0ZSB0aGUg
R1RLL0dhaWwvUGFuZ28gc3BlY2lmaWMgY29kZSBpbiBhY2Nlc3NpYmlsaXR5L2d0aworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNzI3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgY29uZGl0aW9u
YWwgY29tcGlsYXRpb24gY2hlY2tzIGZvciBHVEsrIHNwZWNpZmljCisgICAgICAgIGFjY2Vzc2li
aWxpdHkgY29kZSwgdG8gcGF2ZSB0aGUgd2F5IGZvciBzaGFyaW5nIHRoaXMKKyAgICAgICAgaW1w
bGVtZW50YXRpb24gd2l0aCBvdGhlciBwb3J0cyAoZS5nIFdlYktpdEVGTCkuCisKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHA6Cisg
ICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlVGV4dEdldFRleHRBZnRlck9mZnNldCk6IEFkZGVkIGNv
bmRpdGlvbmFsCisgICAgICAgIGNvbXBpbGF0aW9uIGNoZWNrcywgb25seSBpbXBsZW1lbnRpbmcg
aXQgaW4gR1RLIHNvIGZhci4KKyAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVUZXh0R2V0VGV4dEF0
T2Zmc2V0KTogRGl0dG8uCisgICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlVGV4dEdldFRleHRCZWZv
cmVPZmZzZXQpOiBEaXR0by4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nl
c3NpYmxlV3JhcHBlckF0ay5jcHA6CisgICAgICAgIChhdGtQYXJlbnRPZlJvb3RPYmplY3QpOiBB
ZGRlZCBjb25kaXRpb25hbCBjb21waWxhdGlvbiBjaGVja3MsCisgICAgICAgIG9ubHkgaW1wbGVt
ZW50aW5nIGluIEdUSyB0aGUgcGFydCBvZiBnZXR0aW5nIHRoZSBhY2Nlc3NpYmxlIG9iamVjdAor
ICAgICAgICBmb3IgdGhlIHJvb3Qgb2JqZWN0LgorICAgICAgICAod2Via2l0QWNjZXNzaWJsZUdl
dFBhcmVudCk6IFVwZGF0ZWQgY29tbWVudHMuCisgICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlR2V0
TkNoaWxkcmVuKTogRGl0dG8uCisgICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlUmVmQ2hpbGQpOiBE
aXR0by4KKyAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVHZXRJbmRleEluUGFyZW50KTogRGl0dG8u
CisgICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlR2V0QXR0cmlidXRlcyk6IE9ubHkgc2V0IHRoZSAn
dG9vbGtpdCcgYXR0cmlidXRlCisgICAgICAgIGZvciBHVEsuIE90aGVyIHBvcnRzIG1pZ2h0IGJl
IGludGVyZXN0ZWQgaW4gdGhpcyB0b28uCisgICAgICAgIChzZXRBdGtTdGF0ZVNldEZyb21Db3Jl
T2JqZWN0KTogVXBkYXRlZCBjb21tZW50cy4KKwogMjAxMi0xMS0wOCAgRXVnZW5lIEtseXVjaG5p
a292ICA8ZXVzdGFzLmJ1Z0BnbWFpbC5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogVGlt
ZWxpbmU6IEltcHJvdmUgdGltZS90aW1lRW5kIGFwcGVhcmFuY2UuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3NpYmxl
SW50ZXJmYWNlVGV4dC5jcHAKaW5kZXggYTI5M2Q0MS4uMjllN2YxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL1dlYktpdEFjY2Vz
c2libGVJbnRlcmZhY2VUZXh0LmNwcApAQCAtNDcsOCArNDcsMTEgQEAKICNpbmNsdWRlICJXZWJL
aXRBY2Nlc3NpYmxlVXRpbC5oIgogI2luY2x1ZGUgIldlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRr
LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKKworI2lmIFBMQVRGT1JNKEdUSykKICNpbmNs
dWRlIDxsaWJnYWlsLXV0aWwvZ2FpbC11dGlsLmg+CiAjaW5jbHVkZSA8cGFuZ28vcGFuZ28uaD4K
KyNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTU2LDYgKzE1OSw3IEBA
IHN0YXRpYyBnY2hhciogdGV4dEZvck9iamVjdChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlT2Jq
ZWN0KQogCiBzdGF0aWMgZ2NoYXIqIHdlYmtpdEFjY2Vzc2libGVUZXh0R2V0VGV4dChBdGtUZXh0
KiwgZ2ludCBzdGFydE9mZnNldCwgZ2ludCBlbmRPZmZzZXQpOwogCisjaWYgUExBVEZPUk0oR1RL
KQogc3RhdGljIEdhaWxUZXh0VXRpbCogZ2V0R2FpbFRleHRVdGlsRm9yQXRrKEF0a1RleHQqIHRl
eHRPYmplY3QpCiB7CiAgICAgR2FpbFRleHRVdGlsKiBnYWlsVGV4dFV0aWwgPSBnYWlsX3RleHRf
dXRpbF9uZXcoKTsKQEAgLTE4Miw2ICsxODYsNyBAQCBzdGF0aWMgUGFuZ29MYXlvdXQqIGdldFBh
bmdvTGF5b3V0Rm9yQXRrKEF0a1RleHQqIHRleHRPYmplY3QpCiAgICAgUGFuZ29MYXlvdXQqIGxh
eW91dCA9IGd0a193aWRnZXRfY3JlYXRlX3BhbmdvX2xheW91dChzdGF0aWNfY2FzdDxHdGtXaWRn
ZXQqPih3ZWJWaWV3KSwgdGV4dEZvck9iamVjdChjb3JlT2JqZWN0KSk7CiAgICAgcmV0dXJuIGxh
eW91dDsKIH0KKyNlbmRpZgogCiBzdGF0aWMgaW50IGJhc2VsaW5lUG9zaXRpb25Gb3JSZW5kZXJP
YmplY3QoUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QpCiB7CkBAIC01NjEsMTcgKzU2NiwzMiBA
QCBzdGF0aWMgZ2NoYXIqIHdlYmtpdEFjY2Vzc2libGVUZXh0R2V0VGV4dChBdGtUZXh0KiB0ZXh0
LCBnaW50IHN0YXJ0T2Zmc2V0LCBnaW50CiAKIHN0YXRpYyBnY2hhciogd2Via2l0QWNjZXNzaWJs
ZVRleHRHZXRUZXh0QWZ0ZXJPZmZzZXQoQXRrVGV4dCogdGV4dCwgZ2ludCBvZmZzZXQsIEF0a1Rl
eHRCb3VuZGFyeSBib3VuZGFyeVR5cGUsIGdpbnQqIHN0YXJ0T2Zmc2V0LCBnaW50KiBlbmRPZmZz
ZXQpCiB7CisjaWYgUExBVEZPUk0oR1RLKQogICAgIHJldHVybiBnYWlsX3RleHRfdXRpbF9nZXRf
dGV4dChnZXRHYWlsVGV4dFV0aWxGb3JBdGsodGV4dCksIGdldFBhbmdvTGF5b3V0Rm9yQXRrKHRl
eHQpLCBHQUlMX0FGVEVSX09GRlNFVCwgYm91bmRhcnlUeXBlLCBvZmZzZXQsIHN0YXJ0T2Zmc2V0
LCBlbmRPZmZzZXQpOworI2Vsc2UKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAw
OworI2VuZGlmCiB9CiAKIHN0YXRpYyBnY2hhciogd2Via2l0QWNjZXNzaWJsZVRleHRHZXRUZXh0
QXRPZmZzZXQoQXRrVGV4dCogdGV4dCwgZ2ludCBvZmZzZXQsIEF0a1RleHRCb3VuZGFyeSBib3Vu
ZGFyeVR5cGUsIGdpbnQqIHN0YXJ0T2Zmc2V0LCBnaW50KiBlbmRPZmZzZXQpCiB7CisjaWYgUExB
VEZPUk0oR1RLKQogICAgIHJldHVybiBnYWlsX3RleHRfdXRpbF9nZXRfdGV4dChnZXRHYWlsVGV4
dFV0aWxGb3JBdGsodGV4dCksIGdldFBhbmdvTGF5b3V0Rm9yQXRrKHRleHQpLCBHQUlMX0FUX09G
RlNFVCwgYm91bmRhcnlUeXBlLCBvZmZzZXQsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOworI2Vs
c2UKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworI2VuZGlmCiB9CiAKIHN0
YXRpYyBnY2hhciogd2Via2l0QWNjZXNzaWJsZVRleHRHZXRUZXh0QmVmb3JlT2Zmc2V0KEF0a1Rl
eHQqIHRleHQsIGdpbnQgb2Zmc2V0LCBBdGtUZXh0Qm91bmRhcnkgYm91bmRhcnlUeXBlLCBnaW50
KiBzdGFydE9mZnNldCwgZ2ludCogZW5kT2Zmc2V0KQogeworI2lmIFBMQVRGT1JNKEdUSykKICAg
ICByZXR1cm4gZ2FpbF90ZXh0X3V0aWxfZ2V0X3RleHQoZ2V0R2FpbFRleHRVdGlsRm9yQXRrKHRl
eHQpLCBnZXRQYW5nb0xheW91dEZvckF0ayh0ZXh0KSwgR0FJTF9CRUZPUkVfT0ZGU0VULCBib3Vu
ZGFyeVR5cGUsIG9mZnNldCwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7CisjZWxzZQorICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7CisjZW5kaWYKIH0KIAogc3RhdGljIGd1bmlj
aGFyIHdlYmtpdEFjY2Vzc2libGVUZXh0R2V0Q2hhcmFjdGVyQXRPZmZzZXQoQXRrVGV4dCosIGdp
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRB
Y2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0
ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAKaW5kZXggYTFmNjQ3Yi4uNDZmZWVhNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNz
aWJsZVdyYXBwZXJBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3Rr
L1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcApAQCAtNTksNyArNTksMTAgQEAKICNpbmNs
dWRlICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgInZpc2libGVfdW5pdHMuaCIKICNpbmNsdWRl
IDxnbGliL2dwcmludGYuaD4KKworI2lmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlIDxndGsvZ3Rr
Lmg+CisjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTIzMiw2ICsyMzUs
NyBAQCBzdGF0aWMgQXRrT2JqZWN0KiBhdGtQYXJlbnRPZlJvb3RPYmplY3QoQXRrT2JqZWN0KiBv
YmplY3QpCiAgICAgICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgICAgICByZXR1cm4gMDsKIAor
I2lmIFBMQVRGT1JNKEdUSykKICAgICAgICAgSG9zdFdpbmRvdyogaG9zdFdpbmRvdyA9IGRvY3Vt
ZW50LT52aWV3KCktPmhvc3RXaW5kb3coKTsKICAgICAgICAgaWYgKGhvc3RXaW5kb3cpIHsKICAg
ICAgICAgICAgIFBsYXRmb3JtUGFnZUNsaWVudCBzY3JvbGxWaWV3ID0gaG9zdFdpbmRvdy0+cGxh
dGZvcm1QYWdlQ2xpZW50KCk7CkBAIC0yNDEsNiArMjQ1LDcgQEAgc3RhdGljIEF0a09iamVjdCog
YXRrUGFyZW50T2ZSb290T2JqZWN0KEF0a09iamVjdCogb2JqZWN0KQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZ3RrX3dpZGdldF9nZXRfYWNjZXNzaWJsZShzY3JvbGxWaWV3UGFyZW50KTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQorI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKICAgICB9
CiAKICAgICBpZiAoIWNvcmVQYXJlbnQpCkBAIC0yNjksNyArMjc0LDcgQEAgc3RhdGljIEF0a09i
amVjdCogd2Via2l0QWNjZXNzaWJsZUdldFBhcmVudChBdGtPYmplY3QqIG9iamVjdCkKICAgICBp
ZiAoIWNvcmVQYXJlbnQpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgLy8gR1RLIGRvZXNuJ3Qg
ZXhwb3NlIHRhYmxlIHJvd3MgdG8gQXNzaXN0aXZlIHRlY2hub2xvZ2llcywgYnV0IHdlCisgICAg
Ly8gV2UgZG9uJ3QgZXhwb3NlIHRhYmxlIHJvd3MgdG8gQXNzaXN0aXZlIHRlY2hub2xvZ2llcywg
YnV0IHdlCiAgICAgLy8gbmVlZCB0byBoYXZlIHRoZW0gYW55d2F5IGluIHRoZSBoaWVyYXJjaHkg
ZnJvbSBXZWJDb3JlIHRvCiAgICAgLy8gcHJvcGVybHkgcGVyZm9ybSBjb29yZGluYXRlcyBjYWxj
dWxhdGlvbnMgd2hlbiByZXF1ZXN0ZWQuCiAgICAgaWYgKGNvcmVQYXJlbnQtPmlzVGFibGVSb3co
KSAmJiBjb3JlT2JqZWN0LT5pc1RhYmxlQ2VsbCgpKQpAQCAtMzAxLDcgKzMwNiw3IEBAIHN0YXRp
YyBnaW50IHdlYmtpdEFjY2Vzc2libGVHZXROQ2hpbGRyZW4oQXRrT2JqZWN0KiBvYmplY3QpCiAg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCA9IGNvcmUob2JqZWN0KTsKIAogICAg
IC8vIFRhYmxlcyBzaG91bGQgYmUgdHJlYXRlZCBpbiBhIGRpZmZlcmVudCB3YXkgYmVjYXVzZSBy
b3dzIHNob3VsZAotICAgIC8vIGJlIGJ5cGFzc2VkIGZvciBHVEsgd2hlbiBleHBvc2luZyB0aGUg
YWNjZXNzaWJsZSBoaWVyYXJjaHkuCisgICAgLy8gYmUgYnlwYXNzZWQgd2hlbiBleHBvc2luZyB0
aGUgYWNjZXNzaWJsZSBoaWVyYXJjaHkuCiAgICAgaWYgKGNvcmVPYmplY3QtPmlzQWNjZXNzaWJp
bGl0eVRhYmxlKCkpCiAgICAgICAgIHJldHVybiBnZXROQ2hpbGRyZW5Gb3JUYWJsZShjb3JlT2Jq
ZWN0KTsKIApAQCAtMzQxLDggKzM0Niw4IEBAIHN0YXRpYyBBdGtPYmplY3QqIHdlYmtpdEFjY2Vz
c2libGVSZWZDaGlsZChBdGtPYmplY3QqIG9iamVjdCwgZ2ludCBpbmRleCkKICAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0ID0gY29yZShvYmplY3QpOwogICAgIEFjY2Vzc2liaWxp
dHlPYmplY3QqIGNvcmVDaGlsZCA9IDA7CiAKLSAgICAvLyBUYWJsZXMgYXJlIHNwZWNpYWwgY2Fz
ZXMgaW4gR1RLIGJlY2F1c2Ugcm93cyBzaG91bGQgYmUKLSAgICAvLyBieXBhc3NlZCwgYnV0IHN0
aWxsIHRha2luZyB0aGVpciBjZWxscyBpbnRvIGFjY291bnQuCisgICAgLy8gVGFibGVzIGFyZSBz
cGVjaWFsIGNhc2VzIGJlY2F1c2Ugcm93cyBzaG91bGQgYmUgYnlwYXNzZWQsIGJ1dAorICAgIC8v
IHN0aWxsIHRha2luZyB0aGVpciBjZWxscyBpbnRvIGFjY291bnQuCiAgICAgaWYgKGNvcmVPYmpl
Y3QtPmlzQWNjZXNzaWJpbGl0eVRhYmxlKCkpCiAgICAgICAgIGNvcmVDaGlsZCA9IGdldENoaWxk
Rm9yVGFibGUoY29yZU9iamVjdCwgaW5kZXgpOwogICAgIGVsc2UgewpAQCAtNDE4LDcgKzQyMyw3
IEBAIHN0YXRpYyBnaW50IHdlYmtpdEFjY2Vzc2libGVHZXRJbmRleEluUGFyZW50KEF0a09iamVj
dCogb2JqZWN0KQogICAgIH0KIAogICAgIC8vIE5lZWQgdG8gY2FsY3VsYXRlIHRoZSBpbmRleCBv
ZiB0aGUgY2VsbCBpbiB0aGUgdGFibGUsIGFzCi0gICAgLy8gcm93cyB3b24ndCBiZSBleHBvc2Vk
IHRvIGFzc2lzdGl2ZSB0ZWNobm9sb2dpZXMgaW4gR1RLLgorICAgIC8vIHJvd3Mgd29uJ3QgYmUg
ZXhwb3NlZCB0byBhc3Npc3RpdmUgdGVjaG5vbG9naWVzLgogICAgIGlmIChwYXJlbnQgJiYgcGFy
ZW50LT5pc1RhYmxlUm93KCkgJiYgY29yZU9iamVjdC0+aXNUYWJsZUNlbGwoKSkKICAgICAgICAg
cmV0dXJuIGdldEluZGV4SW5QYXJlbnRGb3JDZWxsSW5Sb3coY29yZU9iamVjdCk7CiAKQEAgLTQy
OSw3ICs0MzQsOSBAQCBzdGF0aWMgZ2ludCB3ZWJraXRBY2Nlc3NpYmxlR2V0SW5kZXhJblBhcmVu
dChBdGtPYmplY3QqIG9iamVjdCkKIHN0YXRpYyBBdGtBdHRyaWJ1dGVTZXQqIHdlYmtpdEFjY2Vz
c2libGVHZXRBdHRyaWJ1dGVzKEF0a09iamVjdCogb2JqZWN0KQogewogICAgIEF0a0F0dHJpYnV0
ZVNldCogYXR0cmlidXRlU2V0ID0gMDsKKyNpZiBQTEFURk9STShHVEspCiAgICAgYXR0cmlidXRl
U2V0ID0gYWRkVG9BdGtBdHRyaWJ1dGVTZXQoYXR0cmlidXRlU2V0LCAidG9vbGtpdCIsICJXZWJL
aXRHdGsiKTsKKyNlbmRpZgogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCA9
IGNvcmUob2JqZWN0KTsKICAgICBpZiAoIWNvcmVPYmplY3QpCkBAIC02NjAsMTYgKzY2NywxNiBA
QCBzdGF0aWMgdm9pZCBzZXRBdGtTdGF0ZVNldEZyb21Db3JlT2JqZWN0KEFjY2Vzc2liaWxpdHlP
YmplY3QqIGNvcmVPYmplY3QsIEF0a1N0YQogCiAgICAgaWYgKGNvcmVPYmplY3QtPmNhblNldFNl
bGVjdGVkQXR0cmlidXRlKCkpIHsKICAgICAgICAgYXRrX3N0YXRlX3NldF9hZGRfc3RhdGUoc3Rh
dGVTZXQsIEFUS19TVEFURV9TRUxFQ1RBQkxFKTsKLSAgICAgICAgLy8gSXRlbXMgaW4gZm9jdXNh
YmxlIGxpc3RzIGluIEd0ayBoYXZlIGJvdGggU1RBVEVfU0VMRUNUe0FCTEUsRUR9Ci0gICAgICAg
IC8vIGFuZCBTVEFURV9GT0NVU3tBQkxFLEVEfS4gV2UnbGwgZmFrZSB0aGUgbGF0dGVyIGJhc2Vk
IG9uIHRoZQotICAgICAgICAvLyBmb3JtZXIuCisgICAgICAgIC8vIEl0ZW1zIGluIGZvY3VzYWJs
ZSBsaXN0cyBoYXZlIGJvdGggU1RBVEVfU0VMRUNUe0FCTEUsRUR9CisgICAgICAgIC8vIGFuZCBT
VEFURV9GT0NVU3tBQkxFLEVEfS4gV2UnbGwgZmFrZSB0aGUgbGF0dGVyIGJhc2VkIG9uCisgICAg
ICAgIC8vIHRoZSBmb3JtZXIuCiAgICAgICAgIGlmIChpc0xpc3RCb3hPcHRpb24pCiAgICAgICAg
ICAgICBhdGtfc3RhdGVfc2V0X2FkZF9zdGF0ZShzdGF0ZVNldCwgQVRLX1NUQVRFX0ZPQ1VTQUJM
RSk7CiAgICAgfQogCiAgICAgaWYgKGNvcmVPYmplY3QtPmlzU2VsZWN0ZWQoKSkgewogICAgICAg
ICBhdGtfc3RhdGVfc2V0X2FkZF9zdGF0ZShzdGF0ZVNldCwgQVRLX1NUQVRFX1NFTEVDVEVEKTsK
LSAgICAgICAgLy8gSXRlbXMgaW4gZm9jdXNhYmxlIGxpc3RzIGluIEd0ayBoYXZlIGJvdGggU1RB
VEVfU0VMRUNUe0FCTEUsRUR9CisgICAgICAgIC8vIEl0ZW1zIGluIGZvY3VzYWJsZSBsaXN0cyBo
YXZlIGJvdGggU1RBVEVfU0VMRUNUe0FCTEUsRUR9CiAgICAgICAgIC8vIGFuZCBTVEFURV9GT0NV
U3tBQkxFLEVEfS4gV2UnbGwgZmFrZSB0aGUgbGF0dGVyIGJhc2VkIG9uIHRoZQogICAgICAgICAv
LyBmb3JtZXIuCiAgICAgICAgIGlmIChpc0xpc3RCb3hPcHRpb24pCkBAIC02NzksNyArNjg2LDcg
QEAgc3RhdGljIHZvaWQgc2V0QXRrU3RhdGVTZXRGcm9tQ29yZU9iamVjdChBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBjb3JlT2JqZWN0LCBBdGtTdGEKICAgICAvLyBGSVhNRTogR3JvdXAgYm90aCBTSE9X
SU5HIGFuZCBWSVNJQkxFIGhlcmUgZm9yIG5vdwogICAgIC8vIE5vdCBzdXJlIGhvdyB0byBoYW5k
bGUgdGhpcyBpbiBXZWJLaXQsIHNlZSBidWcKICAgICAvLyBodHRwOi8vYnVnemlsbGEuZ25vbWUu
b3JnL3Nob3dfYnVnLmNnaT9pZD01MDk2NTAgZm9yIG90aGVyCi0gICAgLy8gaXNzdWVzIHdpdGgg
U0hPV0lORyB2cyBWSVNJQkxFIHdpdGhpbiBHVEsrCisgICAgLy8gaXNzdWVzIHdpdGggU0hPV0lO
RyB2cyBWSVNJQkxFLgogICAgIGlmICghY29yZU9iamVjdC0+aXNPZmZTY3JlZW4oKSkgewogICAg
ICAgICBhdGtfc3RhdGVfc2V0X2FkZF9zdGF0ZShzdGF0ZVNldCwgQVRLX1NUQVRFX1NIT1dJTkcp
OwogICAgICAgICBhdGtfc3RhdGVfc2V0X2FkZF9zdGF0ZShzdGF0ZVNldCwgQVRLX1NUQVRFX1ZJ
U0lCTEUpOwotLSAKMS43LjExLjcKCg==
</data>
<flag name="review"
          id="187866"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
          </attachment>
      

    </bug>

</bugzilla>